qcomicbook-0.8.2/TODO000644 001750 001750 00000000534 11644604741 014632 0ustar00pawelpawel000000 000000 - "split pages into 2" mode - smooth scroll - individual frame zooming + frames editor - dosage support - temporary directory setting - docbook help/docs - doxygen docs - image zooming - save Info window geometry - character encoding option for Info window - built-in decompression with third-party libraries - unpacking of single files on the fly qcomicbook-0.8.2/NEWS000644 001750 001750 00000000000 11644604741 014625 0ustar00pawelpawel000000 000000 qcomicbook-0.8.2/AUTHORS000644 001750 001750 00000000045 11644604741 015207 0ustar00pawelpawel000000 000000 Pawel Stolowski qcomicbook-0.8.2/COPYING000644 001750 001750 00000043110 11644604741 015172 0ustar00pawelpawel000000 000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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 Library General Public License instead of this License. qcomicbook-0.8.2/BROWSE000644 001750 001750 00000000000 11644604741 015052 0ustar00pawelpawel000000 000000 qcomicbook-0.8.2/THANKS000644 001750 001750 00000002063 11644604742 015055 0ustar00pawelpawel000000 000000 Adam Mateja - for two great splash screens Donn Ingle - for nice QComicBook app icon and bugreports/ideas Lasse Liehu - patches that allow Windows compilation and improve portability Michal Pena (Cyb.org) - for testing, bugfixes, debian and ubuntu package and man page Marin Glibic - good and helpful bugreports Jakub Narebski - tweaks for .spec file Doruk Fisek - improved .desktop file Adrian Schroeter - bugfix Andres Rand - 7z archives support Dulaunoy Fabrice - nice bugreport and patch verification Digikam developers - Digikam source code helped me a lot with imlib2 Cork - accurate and useful bugreports Alexandre Jodoin - bug reports * Translations: duzak_87 - German (de_DE) Marcio Moraes - Brazilian Portuguese (pt_BR) Pavel Fric - Czech (cs_CZ) Frank Smit - Dutch (nl_NL) Lasse Liehu - Finnish (fi_FI) Alexandre Jodoin - French (fr_FR, fr_CA) Valerio Perticone - Italian (it_IT) Kim YoungUk - Korean (ko_KR) Eugeny Rozhkov - Russian (ru_RU) lsl330 - Simplified Chinese (zh_CN) David Rubert - Spanish (es_ES) Max Shein - Ukrainian (uk_UA) qcomicbook-0.8.2/help/CMakeLists.txt000644 001750 001750 00000000067 11644604742 017634 0ustar00pawelpawel000000 000000 INSTALL(FILES qcomicbook.1 DESTINATION share/man/man1) qcomicbook-0.8.2/help/qcomicbook.1000644 001750 001750 00000017451 11644604742 017311 0ustar00pawelpawel000000 000000 .TH "QCOMICBOOK" "1" "july 31, 2005" "Michal Pena (Cyb.org)" "" .SH "NAME" QComicBook \- QT viewer for comic book archives (cbr/cbz) .SH "SYNOPSIS" .B qcomicbook .RI [archive] [dir] ... .br .SH "DESCRIPTION" QComicBook is a viewer for comic book archives containing jpeg/png/xpm/gif images, which aims at convenience and simplicity. .PP Features include: \- automatic decompression of zip (cbz), rar (cbr), ace (cba), targzipped (cbg) and tarbzip2ped (cbb) archives \- full\-screen mode \- two\-pages viewing \- page scaling \- mouse or keyboard navigation \- bookmarks \- thumbnails \- page caching and page preloading \- ... and more .PP QComicBook software requirements: \- rar/unrar (one of them), unzip, unace and tar (with gzip and bzip2 support compiled\-in) available somewhere in the PATH (e.g. in /usr/bin). If one of them is missing, you won't be able to open some archives \- a lot of disk space available in /tmp directory, for handling decompression of archives .SH "MENU" \fBFile\fR File menu provies basic operations for loading comic books: \- Open directory \- open directory containg images. \- Open archive \- open archived images. \- Recently opened \- list of ten recently opened archives / directories (most recently opened on the top). \- Info \- displays information about currenly opened comic book. This includes contents of file_id.diz *.nf o files (if any) as well as memory usage info. \- Settings \- allows you to fine\-tune some options. \- Close \- closes currently opened comic book. \- Quit \- quits QComicBook. QComicBook offers some tunable options, available via Settings menu option. These options include: \- Background color \- the color of the empty area around displayed image. \- Hide menubar in fullscreen mode \- menubar may be hidded in fullscreen mode if desired; together with toolbar hiding option, it may give you the whole screen for displaying page contents. \- Hide statusbar in fullscreen mode \- statusbar may be hidden in fullscreen mode, giving you even more space. \- Small mouse cursor \- toggles small (4x4 pixels) mouse cursor for QComicBook window. \- Scaling method \- the algorithm used for image scaling; either Smooth or Fast. Smooth scaling provides best quality, but is slower; it is recommened method unless you have really slow machine. \- Cache size \- the number of pages kept in memory. Value of 0 disables caching; 1 has no effect on performance; 2 or more may improve your experience. Keep in mind, that caching may consume a lot of memory \- for example, an 1280x1984 image may take as much as 9Mb of memory! \- Preload next page \- enables page preloading in the background. This setting takes effect only for cache size of 3 and greater. It is recommended to enable this option, as it may really improve overall experience. \- Use disk cache for thumbnails \- thumbnails are saved to disk, which speeds up things when loading them later. Set this option on if you tend to open comic books more then once. \- Number of days to keep thumbnails \- defines, for how long to keep thumbnails on disk; old thumbnails are deleted when exiting QComicBook. Value of 0 disables purging. \- Help browser \- allows to choose between simple built\-in browser (the default) or any other external web browser. \- Forward and backward two pages in two\-pages mode. \- Open info dialog after opening comic book \- when enabled, info dialog is opened after opening comic book. You may still open this dialog manually with File/Info menu option. \- Confirm exit. \fINote: changing cache size takes effect on new comic book.\fR \fBView\fR View submenu provides some basic settings for page view. You can select one of the following scaling modes: \- Original size \- no scaling is done and original image size is preserved. \- Fit width \- image is scaled to fit window width. \- Fit height \- image is scaled to fit window height. \- Whole page \- image is scaled to fit window. \- Best fit \- depending on image dimensions, QComicBook chooses the best method to scale image. The page can be rotated with 90 degree step, with these options: \- Rotate right \- rotates image clockwise. \- Rotate left \- rotates image counter clockwise. \- No rotation \- resets rotation, restores original image. \- Preserve rotation \- makes rotation "permanent" for viewing next pages. Other options in this menu: \- Fullscreen \- toggles beetween fullscreen and windowed mode; please note, that depending on you settings, menubar may be hidden in fullscreen mode, so to back to windowed mode you need to press F11 or ESC key. \- Two pages \- display two pages, side by side, just like when reading normal book. \- Japanese mode \- scrolls to top\-right corner on page change; in two pages mode additionaly swaps pages. \- Thumbnails \- toggles thumbnails window. \- Scrollbars \- toggles displaying of scrollbars for large pages; please note that scrollbars will be shown only if necessary. \- Toolbar \- toggles displaying of toolbar. \- Statusbar \- toggles displaying of statusbar. Settings in this menu are saved when quitting QComicBook (except for "fullscreen" option). \fBBookmarks\fR Bookmarks menu allows you to bookmark pages in comic books. These bookmarks are however somewhat different than, for example, in any webbrowser and are more similiar to real bookmarks. Each bookmark keeps bookmarked page number (as well as file name), so you can easily start with your comic book from the point, where you last stopped reading. Two options are available in this menu: \- Set bookmark for this comicbook \- creates bookmark for current comic book; existing bookmark for this comic book is deleted. \- Remove bookmark for this comicbook \- removes existing bookmark for current comic book; to remove other bookmarks, use Manage bookmarks option. \- Manage bookmarks \- opens bookmark manager, where bookmarks can be easily removed. Below these options you can see the list of currently saved bookmarks. Just click on one of them to go to bookmarked comic book and page. .SH "KEYBOARD" Keyboard reference: \- Ctrl+O \- Open archive \- Ctrl+D \- Open directory \- Alt+I \- Show comicbook info \- Arrows \- Scroll page contents \- Shift + Arrows \- Scroll page contents fast \- PageDown \- Go to next page \- PageUp \- Go to previous page \- Home \- Scroll to page top \- End \- Scroll to page bottom \- Space \- Scroll down by visible width (hint: enable \fBcontinuous scrolling\fR to jump to next page after reaching bottom) \- Backspace \- Scroll up by visible width (hint: enable \fBcontinuous scrolling\fR) \- Alt+O \- Original image size \- Alt+W \- Fit page width \- Alt+H \- Fit page height \- Alt+A \- Show whole page \- Alt+B \- Best fit \- Alt+T \- Toggle thumbnails window \- F11 \- Toggle fullscreen mode \- ESC \- Exit fullscreen mode .SH "INTERNALS" Here is some information for people interested in QComicBook internals. .PP 1. Settings handling QComicBook keeps settings in ~/.qcomicbook directory within these two files: \- qcomicbookrc \- main configuration file \- bookmarks \- bookmarks file Both files are plain text files and may be edited manually (with caution!), if needed. 2. Thumbnails handling Thumbnails are stored (if thumbnails disk caching is enabled) in ~/.qcomicbook/cache directory. 3. Archives handling Archived comic books are decompressed to temporary directory (/tmp/qcomicbook\-XXXXX, with XXXXX being some random number). This directory is purged when closing current comic book, opening a new one or quitting QComicBook. .SH "AUTHOR" QComicBook was written by Pawel Stolowski . .PP This manual page was written by Michal Pena (Cyb.org) , for the Debian project (but may be used by others). qcomicbook-0.8.2/TAGS000644 001750 001750 00000225160 11644604742 014630 0ustar00pawelpawel000000 000000 i18n/update_ts.sh,0 src/FrameView.cpp,984 FrameView::FrameView(QWidget *parent, int physicalPages, const ViewProperties& props)FrameView26,646 FrameView::~FrameView()~FrameView49,1409 void FrameView::setImage(const Page &img1)setImage54,1442 void FrameView::setImage(const Page &img1, const Page &img2)setImage62,1556 void FrameView::setFrames(const ComicFrameList &frames)setFrames70,1688 void FrameView::nextFrame()nextFrame81,1906 void FrameView::prevFrame()prevFrame94,2081 void FrameView::gotoFrame(int n)gotoFrame107,2237 void FrameView::clear()clear117,2397 void FrameView::gotoPage(int n)gotoPage122,2445 void FrameView::scrollToTop()scrollToTop141,2898 void FrameView::scrollToBottom()scrollToBottom147,3005 void FrameView::propsChanged()propsChanged152,3126 int FrameView::visiblePages() constvisiblePages158,3225 int FrameView::viewWidth() constviewWidth163,3277 int FrameView::currentPage() constcurrentPage169,3344 void FrameView::resizeEvent(QResizeEvent *e)resizeEvent174,3407 src/DirReader.cpp,300 DirReader::DirReader(QDir::SortFlags sortFlags, int maxDepth): flags(sortFlags), maxDirDepth(maxDepth)DirReader15,413 DirReader::~DirReader()~DirReader19,521 void DirReader::recurseDir(const QString &path, int curDepth)recurseDir23,550 void DirReader::visit(const QString &path) visit47,1138 src/ImageFormatsInfo.cpp,318 ImageFormatsInfo& ImageFormatsInfo::instance()instance20,525 ImageFormatsInfo::ImageFormatsInfo()ImageFormatsInfo29,670 ImageFormatsInfo::~ImageFormatsInfo()~ImageFormatsInfo44,1157 QStringList ImageFormatsInfo::extensions() constextensions49,1220 QStringList ImageFormatsInfo::formats() constformats54,1299 src/ViewProperties.cpp,1017 ViewProperties::ViewProperties()ViewProperties19,496 ViewProperties::ViewProperties(const ViewProperties &props)ViewProperties24,557 void ViewProperties::setFromSettings()setFromSettings35,877 int ViewProperties::angle() constangle47,1236 void ViewProperties::setAngle(Rotation r, bool notify)setAngle52,1295 Size ViewProperties::size() constsize71,1601 void ViewProperties::setSize(Size s)setSize76,1659 bool ViewProperties::pageNumbers() constpageNumbers85,1778 void ViewProperties::setPageNumbers(bool f)setPageNumbers90,1850 QColor ViewProperties::background() constbackground99,1990 void ViewProperties::setBackground(const QColor &c)setBackground104,2062 bool ViewProperties::continuousScrolling() constcontinuousScrolling113,2208 void ViewProperties::setTwoPagesMode(bool f)setTwoPagesMode118,2287 bool ViewProperties::twoPagesMode() consttwoPagesMode127,2430 void ViewProperties::setMangaMode(bool f)setMangaMode132,2504 bool ViewProperties::mangaMode() constmangaMode141,2638 src/PageLoaderThread.h,172 #define __PAGELOADERTHREAD_H__PAGELOADERTHREAD_H16,453 namespace QComicBookQComicBook20,514 class PageLoaderThread: public LoaderThreadBasePageLoaderThread25,589 src/ThumbnailsView.h,355 #define __THUMBNAILSVIEW_H__THUMBNAILSVIEW_H14,418 namespace QComicBookQComicBook24,573 class ThumbnailsView: public QListWidgetThumbnailsView28,615 int numpages;numpages33,683 QPixmap *emptypage;emptypage34,700 QVector icons;icons35,723 QMenu *menu;menu36,762 QListWidgetItem *selected;selected37,778 src/FileSignature.h,223 #define __FILE_SIGNATURE_H__FILE_SIGNATURE_H14,416 namespace QComicBookQComicBook19,484 class FileSignatureFileSignature21,507 unsigned int offset;offset33,849 QByteArray pattern;pattern34,878 src/Sink/ImgSink.h,1049 #define __IMGSINK_H__IMGSINK_H14,409 namespace QComicBookQComicBook20,465 enum SinkErrorSinkError27,559 SINKERR_ACCESS = 1, //! ImgSinkFactory::createImgSink(SinkType s)createImgSink41,802 QSharedPointer ImgSinkFactory::createImgSink(const QString &path)createImgSink52,1216 src/Sink/ImgArchiveSink.cpp,1425 ImgArchiveSink::ImgArchiveSink(): ImgDirSink()ImgArchiveSink34,832 ImgArchiveSink::ImgArchiveSink(const QString &path): ImgDirSink()ImgArchiveSink39,893 ImgArchiveSink::ImgArchiveSink(const ImgDirSink &sink): ImgDirSink(sink)ImgArchiveSink45,986 ImgArchiveSink::~ImgArchiveSink()~ImgArchiveSink50,1073 bool ImgArchiveSink::fileHandler(const QFileInfo &finfo)fileHandler55,1138 void ImgArchiveSink::init()init93,2182 void ImgArchiveSink::doCleanup()doCleanup103,2665 int ImgArchiveSink::waitForFinished(QProcess *p)waitForFinished120,2939 int ImgArchiveSink::extract(const QString &filename, const QString &destdir, QStringList extargs, QStringList infargs)extract135,3380 int ImgArchiveSink::open(const QString &path) //TODO: cleanup if already opened?open161,4077 void ImgArchiveSink::close()close198,4959 void ImgArchiveSink::infoExited(int code, QProcess::ExitStatus exitStatus)infoExited205,5059 void ImgArchiveSink::extractExited(int code, QProcess::ExitStatus exitStatus)extractExited209,5139 void ImgArchiveSink::infoStdoutReady()infoStdoutReady222,5475 void ImgArchiveSink::extractStdoutReady()extractStdoutReady230,5633 QString ImgArchiveSink::makeTempDir(const QString &parent)makeTempDir240,5942 bool ImgArchiveSink::supportsNext() constsupportsNext269,6541 QString ImgArchiveSink::getNext() constgetNext274,6602 QString ImgArchiveSink::getPrevious() constgetPrevious285,7075 src/Sink/ImgPdfSink.h,899 #define __IMGPDFSINK_H__IMGPDFSINK_H14,412 namespace QComicBookQComicBook21,524 class ImgPdfSink: public ImgSinkImgPdfSink23,547 QString getName(int maxlen = 50) { return ""; }getName33,772 QString getFullName() const { return ""; }getFullName34,823 QString getFullFileName(int page) const { return ""; }getFullFileName35,869 QStringList getDescription() const { return QStringList(); }getDescription36,927 bool timestampDiffers(int page) const { return false; }timestampDiffers37,991 bool hasModifiedFiles() const { return false; }hasModifiedFiles38,1050 bool supportsNext() const { return false; }supportsNext39,1101 QString getNext() const { return ""; }getNext40,1148 QString getPrevious() const { return ""; }getPrevious41,1190 Poppler::Document *pdfdoc;pdfdoc44,1248 mutable QMutex docmtx; //!< mutex for pdf documentdocmtx45,1278 src/Sink/ImgDirSink.h,1494 #define __IMGDIRSINK_H__IMGDIRSINK_H16,441 namespace QComicBookQComicBook29,643 class ImgDirSink: public ImgSink, protected DirReaderImgDirSink36,777 class FileStatusFileStatus39,848 bool modified;modified42,886 QDateTime timestamp;timestamp43,906 FileStatus(): modified(false) {}FileStatus45,944 FileStatus(const QDateTime &mtime): modified(false), timestamp(mtime) {}FileStatus46,982 void set(const QDateTime &mtime, bool m) { timestamp = mtime; modified = m; }set47,1060 bool isModified() const { return modified; }isModified48,1143 bool operator==(const QDateTime &d) const { return d == timestamp; }operator ==49,1193 bool operator!=(const QDateTime &d) const { return d != timestamp; }operator !=50,1267 operator QDateTime() const { return timestamp; }operator QDateTime51,1341 static const int MAX_TEXTFILE_SIZE;MAX_TEXTFILE_SIZE56,1440 mutable QMutex listmtx; //!< mutex for imgfileslistmtx61,1549 QStringList imgfiles; //!< list of images files in directoryimgfiles62,1600 QStringList txtfiles; //!< text files (.nfo, file_id.diz)txtfiles63,1664 QStringList otherfiles; //!< list of other filesotherfiles64,1725 QStringList dirs; //!< directoriesdirs65,1777 QString dirpath; //!< path to directorydirpath66,1815 QMap timestamps; //!< last modifications timestamps for all pagestimestamps67,1858 mutable QStringList desc; //txt filesdesc68,1948 src/Sink/ImgArchiveSink.h,834 #define __IMGARCHIVESINK_H__IMGARCHIVESINK_H16,449 namespace QComicBookQComicBook27,615 class ImgArchiveSink: public ImgDirSinkImgArchiveSink31,742 QProcess *pext; ///< extracting processpext36,811 QProcess *pinf; ///< file list extracing processpinf37,854 QString archivename; ///< archive file name, without patharchivename38,906 QString archivepath; ///< full path, including archive namearchivepath39,967 QString tmppath; ///< path to extracted archivetmppath40,1030 QStringList archfiles; ///< list of archive filesarchfiles41,1081 QStringList archdirs; ///< list of archive dirsarchdirs42,1134 int filesnum; ///< number of files gathered from parsing archiver output, used for progress barfilesnum43,1185 int extcnt; ///< extracted files counter for progress barextcnt44,1284 src/Sink/ImgPdfSink.cpp,351 ImgPdfSink::ImgPdfSink(int cacheSize): ImgSink(cacheSize), pdfdoc(0)ImgPdfSink21,529 ImgPdfSink::~ImgPdfSink()~ImgPdfSink25,603 int ImgPdfSink::open(const QString &path)open30,650 void ImgPdfSink::close()close51,1092 QImage ImgPdfSink::image(unsigned int num, int &result)image57,1152 int ImgPdfSink::numOfImages() constnumOfImages75,1543 src/Sink/ImgSinkFactory.h,256 #define __IMGSINKFACTORY_H__IMGSINKFACTORY_H14,418 namespace QComicBookQComicBook22,521 enum SinkTypeSinkType24,544 ArchiveSink = 1,ArchiveSink26,562 DirSink,DirSink27,581 PdfSinkPdfSink28,592 class ImgSinkFactoryImgSinkFactory33,624 src/ComicImageWidget.cpp,809 ComicImageWidget::ComicImageWidget(PageViewBase *parent, int w, int h)ComicImageWidget22,567 ComicImageWidget::~ComicImageWidget()~ComicImageWidget33,825 void ComicImageWidget::dispose()dispose38,886 bool ComicImageWidget::isDisposed() constisDisposed45,994 void ComicImageWidget::setSourceSize(int w, int h)setSourceSize50,1070 QSize ComicImageWidget::getSourceSize() constgetSourceSize57,1197 QSize ComicImageWidget::getScaledSize() constgetScaledSize62,1267 void ComicImageWidget::recalcScaledSize()recalcScaledSize67,1338 void ComicImageWidget::paintEvent(QPaintEvent *event)paintEvent151,3661 void ComicImageWidget::redrawScaledImage()redrawScaledImage165,4033 const QPixmap* ComicImageWidget::pixmap() constpixmap196,4775 PageViewBase* ComicImageWidget::view() constview201,4849 src/IconViewThumbnail.h,194 #define __ICONVIEWTHUMBNAIL_H__ICONVIEWTHUMBNAIL_H14,421 namespace QComicBookQComicBook21,541 class IconViewThumbnail: public QListWidgetItem, public ThumbnailItemIconViewThumbnail23,564 src/PrintProgressDialog.cpp,141 PrintProgressDialog::PrintProgressDialog(QWidget *parent)PrintProgressDialog17,452 void PrintProgressDialog::setPage(int n)setPage25,660 src/BookmarkManager.h,328 #define __BOOKMARKMANAGER_H__BOOKMARKMANAGER_H16,451 namespace QComicBookQComicBook25,599 class BookmarkManager: public QWidget, private Ui::BookmarkManagerBookmarkManager33,710 QSharedPointer bookmarks;bookmarks38,804 QList invalid; //! b): QWidget(parent, Qt::Dialog), bookmarks(b)BookmarkManager23,575 BookmarkManager::~BookmarkManager()~BookmarkManager40,1277 void BookmarkManager::selectionChanged()selectionChanged44,1318 void BookmarkManager::initBookmarkView()initBookmarkView49,1424 void BookmarkManager::invertSelection()invertSelection70,1906 void BookmarkManager::removeSelected()removeSelected78,2054 void BookmarkManager::selectInvalid()selectInvalid93,2480 src/SystemInfoDialog.cpp,155 SystemInfoDialog::SystemInfoDialog(QWidget *parent): QDialog(parent)SystemInfoDialog19,525 void SystemInfoDialog::updateInfoText()updateInfoText25,640 src/ThumbnailLoaderThread.h,259 #define __THUMBNAILLOADER_H__THUMBNAILLOADER_H16,451 namespace QComicBookQComicBook21,529 class ThumbnailLoaderThread: public LoaderThreadBaseThumbnailLoaderThread25,574 QMutex mtx;mtx41,971 volatile bool usecache;usecache42,991 src/ColorPushButton.h,153 #define __COLOR_PUSH_BUTTON_H__COLOR_PUSH_BUTTON_H14,419 class ColorPushButton: public QPushButtonColorPushButton19,539 QColor color;color34,839 src/Bookmark.cpp,583 Bookmark::Bookmark()Bookmark19,483 Bookmark::Bookmark(const QString &cbname, int cbpage): name(cbname), page(cbpage), id(NULL)Bookmark23,509 Bookmark::~Bookmark()~Bookmark27,606 const QString& Bookmark::getName() constgetName31,635 int Bookmark::getPage() const getPage36,696 QAction* Bookmark::getId() constgetId41,747 void Bookmark::setName(const QString &cbname)setName46,798 void Bookmark::setPage(int cbpage)setPage51,866 void Bookmark::setId(QAction *n)setId56,922 bool Bookmark::isValid()isValid61,969 QString Bookmark::menuItemName()menuItemName66,1042 src/ComicBookInfo.h,194 #define __CBINFO_H__CBINFO_H14,410 namespace QComicBookQComicBook22,505 class ComicBookInfo: public QDialogComicBookInfo26,546 QTabWidget *tabs;tabs29,597 QFont font;font32,632 src/ComicBookSettings.cpp,6350 #define GRP_VIEW GRP_VIEW25,639 #define OPT_TWOPAGES OPT_TWOPAGES26,684 #define OPT_JAPANESEMODE OPT_JAPANESEMODE27,733 #define OPT_SCROLLBARS OPT_SCROLLBARS28,786 #define OPT_SMOOTHSCALING OPT_SMOOTHSCALING29,837 #define OPT_PAGESIZE OPT_PAGESIZE30,891 #define OPT_BACKGROUND OPT_BACKGROUND31,940 #define OPT_FULLSCREENHIDEMENU OPT_FULLSCREENHIDEMENU32,991 #define OPT_FULLSCREENHIDESTATUS OPT_FULLSCREENHIDESTATUS33,1050 #define OPT_FULLSCREENHIDETOOLBAR OPT_FULLSCREENHIDETOOLBAR34,1114 #define OPT_STATUSBAR OPT_STATUSBAR35,1176 #define OPT_FONT OPT_FONT36,1226 #define OPT_SMALLCURSOR OPT_SMALLCURSOR37,1275 #define OPT_EMBEDPAGENUMBERS OPT_EMBEDPAGENUMBERS38,1327 #define OPT_CONTSCROLL OPT_CONTSCROLL39,1384 #define OPT_VIEWTYPE OPT_VIEWTYPE40,1441 #define GRP_NAVI GRP_NAVI42,1491 #define GRP_WINDOW GRP_WINDOW44,1543 #define OPT_GEOMETRY OPT_GEOMETRY45,1577 #define OPT_DOCKLAYOUT OPT_DOCKLAYOUT46,1613 #define GRP_RUNTIME GRP_RUNTIME48,1652 #define OPT_LASTDIR OPT_LASTDIR49,1687 #define OPT_RECENT OPT_RECENT50,1722 #define GRP_MISC GRP_MISC52,1765 #define OPT_AUTOINFO OPT_AUTOINFO53,1797 #define OPT_CACHESIZE OPT_CACHESIZE54,1835 #define OPT_CACHEADJUST OPT_CACHEADJUST55,1872 #define OPT_THUMBSAGE OPT_THUMBSAGE56,1915 #define OPT_CACHETHUMBS OPT_CACHETHUMBS57,1956 #define OPT_PRELOAD OPT_PRELOAD58,1999 #define OPT_CONFIRMEXIT OPT_CONFIRMEXIT59,2034 #define OPT_SHOWSPLASH OPT_SHOWSPLASH60,2073 #define OPT_TMPDIR OPT_TMPDIR61,2117 #define OPT_DONATION OPT_DONATION62,2151 const EnumMap ComicBookSettings::size2string[] = {size2string66,2223 const EnumMap ComicBookSettings::viewtype2string[] = {viewtype2string75,2432 ComicBookSettings& ComicBookSettings::instance()instance82,2588 ComicBookSettings::ComicBookSettings(): QObject()ComicBookSettings88,2692 ComicBookSettings::~ComicBookSettings()~ComicBookSettings98,3073 bool ComicBookSettings::checkDirs()checkDirs104,3153 const QString& ComicBookSettings::bookmarksDir()bookmarksDir131,3765 const QString& ComicBookSettings::thumbnailsDir()thumbnailsDir136,3837 void ComicBookSettings::load()load141,3910 bool ComicBookSettings::embedPageNumbers() constembedPageNumbers193,6291 bool ComicBookSettings::smallCursor() constsmallCursor198,6376 bool ComicBookSettings::twoPagesMode() consttwoPagesMode203,6451 bool ComicBookSettings::japaneseMode() constjapaneseMode208,6524 bool ComicBookSettings::continuousScrolling() constcontinuousScrolling213,6597 ViewType ComicBookSettings::viewType() constviewType218,6679 bool ComicBookSettings::scrollbarsVisible() constscrollbarsVisible223,6749 void ComicBookSettings::restoreGeometry(ComicMainWindow *w) constrestoreGeometry228,6829 Size ComicBookSettings::pageSize() constpageSize233,6977 bool ComicBookSettings::smoothScaling() constsmoothScaling238,7046 QString ComicBookSettings::lastDir() constlastDir243,7125 const QStringList& ComicBookSettings::recentlyOpened() constrecentlyOpened248,7195 QColor ComicBookSettings::background() constbackground253,7282 int ComicBookSettings::cacheSize() constcacheSize258,7351 bool ComicBookSettings::cacheAutoAdjust() constcacheAutoAdjust263,7421 bool ComicBookSettings::cacheThumbnails() constcacheThumbnails268,7500 int ComicBookSettings::thumbnailsAge() constthumbnailsAge273,7579 bool ComicBookSettings::preloadPages() constpreloadPages278,7653 bool ComicBookSettings::confirmExit() constconfirmExit283,7725 bool ComicBookSettings::autoInfo() constautoInfo288,7797 bool ComicBookSettings::fullScreenHideMenu() constfullScreenHideMenu293,7866 bool ComicBookSettings::fullScreenHideStatusbar() constfullScreenHideStatusbar298,7949 bool ComicBookSettings::fullScreenHideToolbar() constfullScreenHideToolbar303,8039 bool ComicBookSettings::showStatusbar() constshowStatusbar308,8128 const QFont& ComicBookSettings::infoFont() constinfoFont313,8203 bool ComicBookSettings::showSplash() constshowSplash318,8276 void ComicBookSettings::restoreDockLayout(ComicMainWindow *w) constrestoreDockLayout323,8349 QString ComicBookSettings::tmpDir() consttmpDir328,8498 bool ComicBookSettings::showDonationDialog() constshowDonationDialog333,8566 void ComicBookSettings::embedPageNumbers(bool f)embedPageNumbers338,8645 void ComicBookSettings::smallCursor(bool f)smallCursor347,8883 void ComicBookSettings::twoPagesMode(bool f)twoPagesMode356,9096 void ComicBookSettings::japaneseMode(bool f)japaneseMode365,9298 void ComicBookSettings::continuousScrolling(bool f)continuousScrolling374,9508 void ComicBookSettings::viewType(ViewType t)viewType382,9672 void ComicBookSettings::scrollbarsVisible(bool f)scrollbarsVisible390,9834 void ComicBookSettings::saveGeometry(ComicMainWindow *w)saveGeometry398,9996 void ComicBookSettings::pageSize(Size s)pageSize403,10123 void ComicBookSettings::smoothScaling(bool s)smoothScaling411,10292 void ComicBookSettings::lastDir(const QString &d)lastDir420,10515 void ComicBookSettings::recentlyOpened(const QStringList &hist)recentlyOpened428,10671 void ComicBookSettings::background(const QColor &color)background434,10816 void ComicBookSettings::cacheSize(int s)cacheSize444,11065 void ComicBookSettings::cacheAutoAdjust(bool f)cacheAutoAdjust456,11273 void ComicBookSettings::cacheThumbnails(bool f)cacheThumbnails465,11463 void ComicBookSettings::thumbnailsAge(int n)thumbnailsAge473,11626 void ComicBookSettings::preloadPages(bool f)preloadPages481,11780 void ComicBookSettings::confirmExit(bool f)confirmExit489,11928 void ComicBookSettings::autoInfo(bool f)autoInfo497,12087 void ComicBookSettings::fullScreenHideMenu(bool f)fullScreenHideMenu505,12234 void ComicBookSettings::fullScreenHideStatusbar(bool f)fullScreenHideStatusbar513,12409 void ComicBookSettings::fullScreenHideToolbar(bool f)fullScreenHideToolbar521,12595 void ComicBookSettings::showStatusbar(bool f)showStatusbar529,12782 void ComicBookSettings::infoFont(const QFont &s)infoFont537,12937 void ComicBookSettings::saveDockLayout(ComicMainWindow *w)saveDockLayout546,13107 void ComicBookSettings::showSplash(bool f)showSplash551,13235 void ComicBookSettings::tmpDir(const QString &dir)tmpDir559,13390 bool ComicBookSettings::showDonationDialog(bool f)showDonationDialog567,13548 src/EnumMap.h,405 #define __ENUMMAP_H__ENUMMAP_H14,411 namespace UtilityUtility18,452 template struct EnumMapEnumMap20,472 QString str;str22,524 T val;val23,553 template const QString& convert(const EnumMap *tab, const T &v) convert26,588 template const T& convert(const EnumMap *tab, const QString &s) convert34,888 src/ThumbnailLoaderThread.cpp,344 ThumbnailLoaderThread::ThumbnailLoaderThread(bool cache): LoaderThreadBase(), usecache(cache)ThumbnailLoaderThread20,527 ThumbnailLoaderThread::~ThumbnailLoaderThread()~ThumbnailLoaderThread24,626 bool ThumbnailLoaderThread::process(const LoadRequest &req)process28,679 void ThumbnailLoaderThread::setUseCache(bool f)setUseCache43,1073 src/ListViewThumbnail.h,194 #define __LISTVIEWTHUMBNAIL_H__LISTVIEWTHUMBNAIL_H14,421 namespace QComicBookQComicBook23,561 class ListViewThumbnail: public QListWidgetItem, public ThumbnailItemListViewThumbnail25,584 src/FrameDetect/ComicFrameList.cpp,329 ComicFrameList::ComicFrameList(int page, int width, int height)ComicFrameList20,513 ComicFrameList::~ComicFrameList()~ComicFrameList27,648 void ComicFrameList::append(const ComicFrame &f)append31,687 void ComicFrameList::sort(bool manga)sort36,762 const ComicFrame& ComicFrameList::operator[](int idx)operator []42,944 src/FrameDetect/CompareFrames.h,553 #define __COMPARE_FRAMES_H__COMPARE_FRAMES_H14,416 namespace QComicBookQComicBook18,469 class CompareFramesCompareFrames25,670 CompareFrames(int ytolerance, bool manga): m_ytolerance(ytolerance), m_manga(manga) {}CompareFrames28,704 static bool between(int x, int a, int b)between30,795 static int sharedHeight(int y1, int h1, int y2, int h2)sharedHeight35,877 bool operator()(const ComicFrame &f1, const ComicFrame &f2)operator ()40,1005 const int m_ytolerance;m_ytolerance74,1990 const bool m_manga;m_manga75,2017 src/FrameDetect/BinarizedImage.cpp,176 BinarizedImage::BinarizedImage(const QImage &img, int thmin)BinarizedImage18,465 void BinarizedImage::invert()invert40,949 QImage BinarizedImage::toImage()toImage48,1057 src/FrameDetect/FrameDetectThread.h,382 #define __FRAME_DETECT_THREAD_H__FRAME_DETECT_THREAD_H14,421 namespace QComicBookQComicBook22,563 class FrameDetectThread: public QThreadFrameDetectThread26,600 volatile bool m_stop;m_stop45,896 QList m_pages;m_pages46,921 QMutex m_processListMtx;m_processListMtx47,945 QMutex m_condMtx;m_condMtx48,973 QWaitCondition m_reqCond;m_reqCond49,994 src/FrameDetect/AbstractImage.h,674 #define ABSTRACTIMAGE_HABSTRACTIMAGE_H14,413 namespace QComicBookQComicBook16,438 class AbstractImageAbstractImage19,484 typedef T ImageDataType;ImageDataType22,521 AbstractImage(int w, int h)AbstractImage24,551 virtual ~AbstractImage()~AbstractImage31,660 T& operator()(int x, int y)operator ()36,723 T& at(int x, int y)at41,801 const T& at(int x, int y) constat46,871 const T* scanline(int y) constscanline51,953 void fill(const T &val)fill56,1031 int width() constwidth64,1151 int height() constheight69,1207 T *data;data75,1279 int m_width;m_width76,1292 int m_height;m_height77,1309 src/FrameDetect/ComicFrame.h,684 #define __COMIC_FRAME_H__COMIC_FRAME_H14,413 namespace QComicBookQComicBook16,438 class ComicFrameComicFrame18,461 ComicFrame() {}ComicFrame21,492 ComicFrame(int x, int y, int w, int h, int label): x(x), y(y), w(w), h(h), lbl(label) {}ComicFrame22,511 ~ComicFrame() {};~ComicFrame23,603 int width() const { return w; }width25,625 int height() const { return h; }height26,660 int xPos() const { return x; }xPos27,696 int yPos() const { return y; }yPos28,730 int label() const { return lbl; }label29,764 int x, y, w, h;x32,813 int x, y, w, h;y32,813 int x, y, w, h;w32,813 int x, y, w, h;h32,813 int lbl;lbl33,832 src/FrameDetect/FrameCache.cpp,351 FrameCache& FrameCache::instance()instance17,443 FrameCache::FrameCache()FrameCache23,524 FrameCache::~FrameCache()~FrameCache27,554 void FrameCache::insert(const ComicFrameList &frames)insert31,585 bool FrameCache::has(int page) consthas36,685 ComicFrameList FrameCache::get(int page) constget41,760 void FrameCache::clear()clear46,836 src/FrameDetect/FrameDetect.h,785 #define __FRAMEDETECT_H__FRAMEDETECT_H14,413 namespace QComicBookQComicBook24,571 typedef AbstractImage LabelData;LabelData30,656 class FrameDetectFrameDetect32,699 struct Point {Point46,1039 int x, y;x47,1059 int x, y;y47,1059 Point(int x, int y): x(x), y(y) {}Point48,1071 bool operator==(const Point &p) const { return x == p.x && y == p.y; }operator ==49,1108 inline static void nextPoint(int &x, int &y, int pos) nextPoint55,1278 inline void nextPoint(int &offset, int pos)nextPoint72,1647 BinarizedImage *bimg;bimg92,2221 int page;page93,2248 int ccolor; //contour colorccolor94,2260 int bcolor; //background colorbcolor95,2293 int label;label96,2329 int w, h;w97,2345 int w, h;h97,2345 src/FrameDetect/BinarizedImage.h,169 #define BINARIZEDIMAGE_HBINARIZEDIMAGE_H14,414 namespace QComicBookQComicBook20,483 class BinarizedImage: public AbstractImageBinarizedImage22,506 src/FrameDetect/ComicFrameList.h,424 #define __COMIC_FRAME_LIST_H__COMIC_FRAME_LIST_H14,418 namespace QComicBookQComicBook19,492 class ComicFrameListComicFrameList21,515 int count() const { return m_frames.count(); }count30,751 int pageNumber() const { return m_page; }pageNumber31,801 int m_page;m_page34,858 int m_pageWidth;m_pageWidth35,873 int m_pageHeight;m_pageHeight36,893 QVector m_frames;m_frames37,914 src/FrameDetect/FrameDetectThread.cpp,324 FrameDetectThread::FrameDetectThread()FrameDetectThread21,541 FrameDetectThread::~FrameDetectThread()~FrameDetectThread28,616 void FrameDetectThread::run()run33,662 void FrameDetectThread::clear()clear80,1540 void FrameDetectThread::process(const Page &p)process88,1682 void FrameDetectThread::stop()stop97,1897 src/FrameDetect/FrameDetect.cpp,837 FrameDetect::FrameDetect(const Page &page)FrameDetect25,614 FrameDetect::~FrameDetect()~FrameDetect40,925 void FrameDetect::addWhiteBorders()addWhiteBorders45,975 ComicFrameList FrameDetect::process()process58,1224 ComicFrameList FrameDetect::process(int px, int py, int pw, int ph)process63,1323 FrameDetect::Point FrameDetect::tracer(LabelData *ldata, int x, int y, int &pos, int lbl)tracer111,2373 void FrameDetect::contourTracking(LabelData *ldata, int x, int y, int initialPos, int lbl)contourTracking135,2879 QImage FrameDetect::labelToImage(const LabelData *ldata)labelToImage188,3684 void FrameDetect::dump(const LabelData *ldata)dump206,4059 int FrameDetect::determineBackground(const BinarizedImage &img)determineBackground220,4296 ComicFrameList FrameDetect::frames(LabelData *ldata) constframes255,4783 src/FrameDetect/FrameCache.h,193 #define __FRAME_CACHE_H__FRAME_CACHE_H14,413 namespace QComicBookQComicBook20,502 class FrameCache: public QObjectFrameCache22,525 QMap m_frames;m_frames40,851 src/ImageFormatsInfo.h,310 #define __IMAGE_FORMATS_INFO_H__IMAGE_FORMATS_INFO_H14,420 namespace QComicBookQComicBook18,476 class ImageFormatsInfoImageFormatsInfo20,499 static ImageFormatsInfo *sm_info;sm_info33,791 QStringList m_extensions;m_extensions34,833 QStringList m_formats;m_formats35,867 src/Page.h,335 #define __PAGE_H__PAGE_H16,427 namespace QComicBookQComicBook21,485 class PagePage23,508 operator const QImage&() const { return m_image; }operator const QImage&36,771 operator int() const { return m_number; }operator int37,830 int m_number;m_number40,894 QImage m_image;m_image41,916 src/ThumbnailsWindow.h,205 #define __THUMBNAILSWIN_H__THUMBNAILSWIN_H14,417 namespace QComicBookQComicBook19,486 class ThumbnailsWindow: public QDockWidgetThumbnailsWindow24,557 ThumbnailsView *tview;tview29,637 src/ThumbnailsWindow.cpp,362 ThumbnailsWindow::ThumbnailsWindow(QWidget *parent): QDockWidget(parent)ThumbnailsWindow19,502 ThumbnailsWindow::~ThumbnailsWindow()~ThumbnailsWindow31,932 void ThumbnailsWindow::setThumbnail(const Thumbnail &t)setThumbnail35,975 void ThumbnailsWindow::showEvent(QShowEvent *e)showEvent40,1059 ThumbnailsView* ThumbnailsWindow::view() constview51,1318 src/AboutDialog.cpp,254 AboutDialog::AboutDialog(QWidget *parent, const QString &caption, const QString &text, const QPixmap &logo): QDialog(parent)AboutDialog23,566 AboutDialog::~AboutDialog()~AboutDialog34,891 void AboutDialog::setText(const QString &text)setText38,924 src/PrintProgressDialog.h,212 #define __PRINT_PROGRESS_DIALOG_H__PRINT_PROGRESS_DIALOG_H14,423 namespace QComicBookQComicBook19,514 class PrintProgressDialog: public QDialog, private Ui::PrintProgressDialogPrintProgressDialog21,537 src/Bookmark.h,267 #define __BOOKMARK_H__BOOKMARK_H16,437 namespace QComicBookQComicBook22,495 class BookmarkBookmark24,518 QString name; //! cache;cache27,562 bool autoAdjust;autoAdjust28,592 int maxItemSizeSoFar;maxItemSizeSoFar29,612 QMutex mtx;mtx30,637 src/LoaderThreadBase.h,962 #define __LOADERTHREADBASE_H__LOADERTHREADBASE_H14,418 namespace QComicBookQComicBook23,581 struct LoadRequestLoadRequest27,625 int pageNumber;pageNumber29,654 bool twoPages;twoPages30,678 LoadRequest(int page, bool twoPages): pageNumber(page), twoPages(twoPages) {}LoadRequest32,710 bool operator==(const LoadRequest &r)operator ==33,796 class LoaderThreadBase: public QThreadLoaderThreadBase39,947 volatile QThread::Priority prio; //! requests; //! sink;sink46,1187 QMutex loaderMutex;loaderMutex47,1233 QMutex condMutex;condMutex48,1269 QMutex sinkMutex;sinkMutex49,1303 QWaitCondition reqCond;reqCond50,1337 volatile bool stopped;stopped51,1377 src/RecentFilesMenu.h,294 #define __RECENT_FILES_MENU_H__RECENT_FILES_MENU_H14,419 namespace QComicBookQComicBook21,503 class RecentFilesMenu: public QMenuRecentFilesMenu23,526 QAction *clearRecent;clearRecent45,1077 QAction *separator;separator46,1107 int maxSize;maxSize47,1135 src/main.cpp,45 int main(int argc, char *argv[])main27,695 src/PageViewBase.cpp,3079 const float PageViewBase::JUMP_FACTOR = 0.85f;JUMP_FACTOR11,182 PageViewBase::PageViewBase(QWidget *parent, int physicalPages, const ViewProperties &props)PageViewBase13,230 PageViewBase::~PageViewBase()~PageViewBase25,610 void PageViewBase::scrollByDelta(int dx, int dy)scrollByDelta29,645 void PageViewBase::contextMenuEvent(QContextMenuEvent *e)contextMenuEvent38,858 void PageViewBase::mouseMoveEvent(QMouseEvent *e)mouseMoveEvent44,982 void PageViewBase::mousePressEvent(QMouseEvent *e)mousePressEvent61,1372 void PageViewBase::mouseReleaseEvent(QMouseEvent *e)mouseReleaseEvent67,1505 void PageViewBase::mouseDoubleClickEvent(QMouseEvent *e)mouseDoubleClickEvent75,1660 bool PageViewBase::onTop()onTop81,1757 bool PageViewBase::onBottom()onBottom86,1868 void PageViewBase::scrollUp()scrollUp91,1982 void PageViewBase::scrollDown()scrollDown104,2200 void PageViewBase::scrollUpFast()scrollUpFast117,2425 void PageViewBase::scrollDownFast()scrollDownFast129,2602 void PageViewBase::scrollRight()scrollRight141,2793 void PageViewBase::scrollLeft()scrollLeft146,2863 void PageViewBase::scrollRightFast()scrollRightFast151,2933 void PageViewBase::scrollLeftFast()scrollLeftFast156,3009 void PageViewBase::jumpUp()jumpUp161,3085 void PageViewBase::jumpDown()jumpDown173,3277 void PageViewBase::setFrames(int page, const QList &frames)setFrames185,3478 void PageViewBase::nextFrame()nextFrame190,3595 void PageViewBase::prevFrame()prevFrame194,3631 void PageViewBase::setNumOfPages(int n)setNumOfPages198,3667 int PageViewBase::numOfPages() constnumOfPages203,3737 void PageViewBase::setRotation(Rotation r)setRotation208,3807 void PageViewBase::rotateRight()rotateRight213,3878 void PageViewBase::rotateLeft()rotateLeft218,3956 void PageViewBase::resetRotation()resetRotation223,4032 void PageViewBase::setSize(Size s)setSize228,4099 void PageViewBase::setBackground(const QColor &color)setBackground233,4161 void PageViewBase::setTwoPagesMode(bool f)setTwoPagesMode241,4346 void PageViewBase::setMangaMode(bool f)setMangaMode246,4424 void PageViewBase::setSmallCursor(bool f)setSmallCursor251,4496 void PageViewBase::showPageNumbers(bool f)showPageNumbers285,5380 void PageViewBase::enableScrollbars(bool f)enableScrollbars290,5457 QMenu *PageViewBase::contextMenu() constcontextMenu297,5676 ViewProperties& PageViewBase::properties()properties302,5751 bool PageViewBase::hasRequest(int page) consthasRequest307,5817 void PageViewBase::addRequest(int page, bool twoPages)addRequest312,5916 void PageViewBase::delRequest(int page, bool twoPages, bool cancel)delRequest321,6106 int PageViewBase::nextPage(int page) constnextPage337,6474 int PageViewBase::previousPage(int page) constpreviousPage354,6749 int PageViewBase::roundPageNumber(int page) constroundPageNumber367,6916 void PageViewBase::delRequests()delRequests372,7029 void PageViewBase::recalculateScrollSpeeds()recalculateScrollSpeeds377,7097 void PageViewBase::resizeEvent(QResizeEvent *e)resizeEvent383,7218 src/ContinuousPageView.h,718 #define __CONTINUOUSPAGEVIEW_H__CONTINUOUSPAGEVIEW_H14,417 namespace QComicBookQComicBook22,553 class ContinuousPageView: public PageViewBaseContinuousPageView26,599 static bool isInView(int y1, int y2, int vy1, int vy2)isInView45,1353 QVector imgLabel;imgLabel68,2221 int *m_y1pos;m_y1pos69,2255 int *m_y2pos;m_y2pos70,2293 int m_firstVisible; //first visible page in the viewm_firstVisible71,2331 double m_firstVisibleOffset; //visible portion (%) of first visible pagem_firstVisibleOffset72,2408 QVBoxLayout *m_layout;m_layout73,2505 src/FrameWidget.h,219 #define __FRAME_WIDGET_H__FRAME_WIDGET_H14,414 namespace QComicBookQComicBook21,503 class FrameWidget: public ComicImageWidgetFrameWidget27,577 QImage *m_image;m_image38,823 QRect m_frame;m_frame39,843 src/SimplePageView.h,687 #define __SIMPLEPAGEVIEW_H__SIMPLEPAGEVIEW_H14,416 namespace QComicBookQComicBook22,526 class SimplePageView: public PageViewBaseSimplePageView26,572 int wheelupcnt, wheeldowncnt;wheelupcnt57,1589 int wheelupcnt, wheeldowncnt;wheeldowncnt57,1589 static const int EXTRA_WHEEL_SPIN; //number of extra wheel spins to flip the pageEXTRA_WHEEL_SPIN58,1622 static const float JUMP_FACTOR; //factor used to calculate the amount of space to scroll when scrolling page with spaceJUMP_FACTOR59,1707 QVBoxLayout *m_layout;m_layout60,1830 PageWidget* imgLabel;imgLabel61,1877 int m_currentPage;m_currentPage62,1902 src/SimplePageView.cpp,1203 const int SimplePageView::EXTRA_WHEEL_SPIN = 3;EXTRA_WHEEL_SPIN28,687 SimplePageView::SimplePageView(QWidget *parent, int physicalPages, const ViewProperties& props)SimplePageView30,736 SimplePageView::~SimplePageView()~SimplePageView53,1491 void SimplePageView::recreatePageWidget()recreatePageWidget57,1530 void SimplePageView::setNumOfPages(int n)setNumOfPages73,1915 void SimplePageView::propsChanged()propsChanged79,2024 void SimplePageView::scrollContentsBy(int dx, int dy)scrollContentsBy94,2406 void SimplePageView::setImage(const Page &img1)setImage99,2509 void SimplePageView::setImage(const Page &img1, const Page &img2)setImage112,2919 void SimplePageView::gotoPage(int n)gotoPage125,3366 void SimplePageView::resizeEvent(QResizeEvent *e)resizeEvent148,4022 void SimplePageView::wheelEvent(QWheelEvent *e)wheelEvent157,4175 void SimplePageView::scrollToTop()scrollToTop192,5168 void SimplePageView::scrollToBottom()scrollToBottom197,5279 void SimplePageView::clear()clear202,5393 int SimplePageView::visiblePages() constvisiblePages208,5471 int SimplePageView::viewWidth() constviewWidth213,5567 int SimplePageView::currentPage() constcurrentPage219,5701 src/ComicBookInfo.cpp,345 ComicBookInfo::ComicBookInfo(QWidget *parent, ImgSink &sink, const QFont &f): QDialog(parent), font(f)ComicBookInfo24,604 void ComicBookInfo::setupDescriptionTabs(const ImgSink &sink)setupDescriptionTabs44,1150 void ComicBookInfo::setupGeneralTab(ImgSink &sink)setupGeneralTab65,1626 ComicBookInfo::~ComicBookInfo()~ComicBookInfo78,1932 src/ComicImageWidget.h,483 #define __COMIC_IMAGE_WIDGET_H__COMIC_IMAGE_WIDGET_H14,420 namespace QComicBookQComicBook23,540 class ComicImageWidget: public QWidgetComicImageWidget27,585 PageViewBase *m_view;m_view51,1160 QPixmap *m_pixmap;m_pixmap52,1185 int xoff, yoff;xoff53,1207 int xoff, yoff;yoff53,1207 QMatrix rmtx;rmtx54,1226 QSize imageSize; //image size without scalingimageSize55,1243 QSize scaledSize; //image size with scaling and rotationscaledSize56,1292 src/ViewProperties.h,1616 #define __VIEW_PROPERTIES_H__VIEW_PROPERTIES_H14,417 namespace QComicBookQComicBook20,503 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };Size22,526 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };Original22,526 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };FitWidth22,526 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };FitHeight22,526 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };WholePage22,526 enum Size { Original, FitWidth, FitHeight, WholePage, BestFit };BestFit22,526 enum Rotation { None, Left, Right };Rotation23,595 enum Rotation { None, Left, Right };None23,595 enum Rotation { None, Left, Right };Left23,595 enum Rotation { None, Left, Right };Right23,595 enum ViewType { Simple, Continuous, Frame };ViewType24,636 enum ViewType { Simple, Continuous, Frame };Simple24,636 enum ViewType { Simple, Continuous, Frame };Continuous24,636 enum ViewType { Simple, Continuous, Frame };Frame24,636 class ViewProperties: public QObjectViewProperties26,683 unsigned char m_angle; //rotation angle, 0..3, multipled by 90m_angle53,1390 Size m_size;m_size54,1461 QMatrix m_rmatrix; //rotation matrixm_rmatrix55,1482 QColor m_background; //background colorm_background56,1528 bool m_pageNumbers; //if page numbers should be embeddedm_pageNumbers57,1576 bool m_twoPagesMode;m_twoPagesMode58,1642 bool m_mangaMode;m_mangaMode59,1671 bool m_contScroll;m_contScroll60,1697 src/Page.cpp,313 Page::Page()Page17,437 Page::Page(const Page &p)Page22,474 Page::Page(int number, const QImage &image)Page28,557 Page::~Page()~Page34,651 QImage Page::getImage() constgetImage38,670 int Page::getNumber() constgetNumber43,725 int Page::width() constwidth48,779 int Page::height() constheight53,836 src/SystemInfoDialog.h,197 #define __SYSTEM_INFO_DIALOG_H__SYSTEM_INFO_DIALOG_H14,420 namespace QComicBookQComicBook19,505 class SystemInfoDialog: public QDialog, private Ui::SystemInfoDialogSystemInfoDialog21,528 src/GoToPageWidget.cpp,216 GoToPageWidget::GoToPageWidget(QWidget *parent, int value, int max): QDialog(parent)GoToPageWidget18,472 GoToPageWidget::~GoToPageWidget()~GoToPageWidget40,1083 void GoToPageWidget::goClicked()goClicked44,1122 src/PrinterThread.cpp,305 PrinterThread::PrinterThread(QSharedPointer sink, QSharedPointer printer, QAbstractPrintDialog::PrintRange range, int from, int to)PrinterThread21,530 PrinterThread::~PrinterThread()~PrinterThread37,939 void PrinterThread::run()run42,996 void PrinterThread::abort()abort72,1634 src/AboutDialog.h,170 #define __ABOUT_DIALOG_H__ABOUT_DIALOG_H14,416 namespace QComicBookQComicBook19,490 class AboutDialog: public QDialog, private Ui::AboutDialogAboutDialog21,513 src/GoToPageWidget.h,180 #define __GOTOPAGEWIDGET_H__GOTOPAGEWIDGET_H14,416 namespace QComicBookQComicBook19,495 class GoToPageWidget: public QDialog, private Ui::GoToPageWidgetGoToPageWidget21,518 src/ComicBookSettings.h,1780 #define __SETTINGS_H__SETTINGS_H14,410 namespace QComicBookQComicBook25,570 class ComicBookSettings: public QObjectComicBookSettings31,653 QSettings *m_cfg;m_cfg111,2987 bool m_embedpagenumbers;m_embedpagenumbers112,3008 bool m_smallcursor;m_smallcursor113,3036 bool m_twopages;m_twopages114,3059 bool m_twopagesstep;m_twopagesstep115,3079 bool m_japanese;m_japanese116,3103 bool m_contscroll;m_contscroll117,3123 bool m_scrollbars;m_scrollbars118,3145 bool m_preload;m_preload119,3167 bool m_fscrhidemenu;m_fscrhidemenu120,3186 bool m_fscrhidestatus;m_fscrhidestatus121,3210 bool m_fscrhidetoolbar;m_fscrhidetoolbar122,3236 Size m_pagesize;m_pagesize123,3263 ViewType m_viewtype;m_viewtype124,3283 bool m_smoothscaling;m_smoothscaling125,3307 QString m_lastdir;m_lastdir126,3332 QColor m_bgcolor;m_bgcolor127,3354 QStringList m_recent;m_recent128,3375 int m_cachesize;m_cachesize129,3400 int m_thumbsage;m_thumbsage130,3420 bool m_cacheadjust;m_cacheadjust131,3440 bool m_cachethumbs;m_cachethumbs132,3463 bool m_autoinfo;m_autoinfo133,3486 bool m_confirmexit;m_confirmexit134,3506 bool m_statusbar;m_statusbar135,3529 bool m_intbrowser;m_intbrowser136,3550 bool m_showsplash;m_showsplash137,3572 bool m_donationdlg;m_donationdlg138,3594 QString m_tmpdir;m_tmpdir139,3617 QFont m_font;m_font140,3638 QString m_bkpath; //bookmarks pathm_bkpath142,3656 QString m_thpath; //thumbnails cache pathm_thpath143,3694 bool m_dirsok; //is above dirs are okm_dirsok144,3739 static const EnumMap size2string[];size2string146,3781 static const EnumMap viewtype2string[];viewtype2string147,3826 src/PrinterThread.h,484 #define __PRINTER_THREAD_H__PRINTER_THREAD_H14,416 namespace QComicBookQComicBook23,557 class PrinterThread: public QThreadPrinterThread27,600 QMutex m_printMtx;m_printMtx43,961 bool m_abort;m_abort44,988 QSharedPointer m_printer;m_printer45,1010 QSharedPointer m_sink;m_sink46,1054 QAbstractPrintDialog::PrintRange m_range;m_range47,1094 int m_from;m_from48,1144 int m_to;m_to49,1164 src/Utility.h,74 #define __MISCUTIL_H__MISCUTIL_H14,412 namespace UtilityUtility18,450 src/History.h,189 #define __HISTORY_H__HISTORY_H14,411 namespace UtilityUtility18,456 class HistoryHistory20,476 QStringList hlist;hlist23,505 QString key;key24,527 int size;size25,543 src/PageWidget.cpp,1111 PageWidget::PageWidget(PageViewBase *parent, int w, int h, int pageNum, bool twoPages)PageWidget26,645 PageWidget::~PageWidget()~PageWidget36,905 void PageWidget::deletePages()deletePages41,952 void PageWidget::setImage(const Page &img1)setImage50,1082 void PageWidget::setImage(const Page &img1, const Page &img2)setImage59,1247 Page PageWidget::getPage(int n)getPage69,1462 void PageWidget::dispose()dispose78,1626 bool PageWidget::isDisposed() constisDisposed84,1709 void PageWidget::setEstimatedSize(int w, int h)setEstimatedSize89,1814 bool PageWidget::estimatedSize() constestimatedSize101,2123 bool PageWidget::isInView(int vy1, int vy2) constisInView106,2189 int PageWidget::pageNumber() constpageNumber112,2344 bool PageWidget::hasTwoPages() consthasTwoPages117,2406 void PageWidget::drawPageNumber(int page, QPainter &p, int x, int y)drawPageNumber122,2471 void PageWidget::redraw(QPainter &p)redraw132,2846 void PageWidget::redrawImages()redrawImages170,4029 int PageWidget::numOfPages() constnumOfPages200,4714 void PageWidget::propsChanged()propsChanged211,4859 src/PageLoaderThread.cpp,214 PageLoaderThread::PageLoaderThread(): LoaderThreadBase()PageLoaderThread19,498 PageLoaderThread::~PageLoaderThread()~PageLoaderThread23,560 bool PageLoaderThread::process(const LoadRequest &req)process27,603 src/ComicBookCfgDialog.h,251 #define __CBCONFIGDIALOG_H__CBCONFIGDIALOG_H14,418 namespace QComicBookQComicBook19,495 class ComicBookCfgDialog: public QDialog, private Ui::ConfigDialogComicBookCfgDialog22,544 ComicBookSettings *cfg;cfg27,638 QFont font;font28,665 src/PageWidget.h,525 #define __PAGEWIDGET_H__PAGEWIDGET_H14,412 namespace QComicBookQComicBook18,467 class PageWidget: public ComicImageWidgetPageWidget23,531 int m_pageNum; //number of physical pagem_pageNum55,1404 Page *m_image[2];m_image56,1453 QSize pageSize; //size of 1 or 2 pages without scalingpageSize57,1479 bool estimated;estimated58,1542 bool m_twoPages; //whether this widget holds one or two pages; this is independent from current two pages mode settingm_twoPages59,1566 src/IconViewThumbnail.cpp,257 IconViewThumbnail::IconViewThumbnail(QListWidget *view, int page, const QPixmap &pixmap): QListWidgetItem(pixmap, QString::number(page+1), view), ThumbnailItem(page)IconViewThumbnail17,452 IconViewThumbnail::~IconViewThumbnail()~IconViewThumbnail21,623 src/PageViewBase.h,1136 #define __PAGEVIEWBASE_H__PAGEVIEWBASE_H2,25 namespace QComicBookQComicBook10,141 enum Scaling { Smooth, Fast };Scaling15,203 enum Scaling { Smooth, Fast };Smooth15,203 enum Scaling { Smooth, Fast };Fast15,203 class PageViewBase: public QScrollAreaPageViewBase17,236 ViewProperties props;props100,3467 static const float JUMP_FACTOR; //factor used to calculate the amount of space to scroll when scrolling page with spaceJUMP_FACTOR103,3519 QMenu *context_menu;context_menu104,3651 int m_physicalPages;m_physicalPages105,3684 int lx, ly; //last mouse position when tracking mouse movementslx106,3717 int lx, ly; //last mouse position when tracking mouse movementsly106,3717 int spdx, spdy; //scroll speedspdx107,3793 int spdx, spdy; //scroll speedspdy107,3793 int wheelupcnt, wheeldowncnt;wheelupcnt108,3836 int wheelupcnt, wheeldowncnt;wheeldowncnt108,3836 QCursor *smallcursor;smallcursor109,3878 QList m_requestedPages;m_requestedPages110,3912 src/Bookmarks.cpp,549 Bookmarks::Bookmarks(QMenu *menu): bmenu(menu), changed(false)Bookmarks22,548 Bookmarks::~Bookmarks()~Bookmarks27,689 bool Bookmarks::load()load31,718 bool Bookmarks::save()save52,1046 void Bookmarks::set(const QString &cbname, int page)set72,1387 bool Bookmarks::remove(const QString &cbname)remove102,2033 bool Bookmarks::remove(QAction *id)remove112,2220 bool Bookmarks::get(QAction *action, Bookmark &b)get131,2613 QList Bookmarks::get() constget141,2753 bool Bookmarks::exists(const QString &cbname)exists149,2883 src/FrameWidget.cpp,296 FrameWidget::FrameWidget(FrameView *parent, int w, int h)FrameWidget22,547 FrameWidget::~FrameWidget()~FrameWidget28,660 void FrameWidget::setFrame(const Page &p, const ComicFrame &f)setFrame33,710 void FrameWidget::redraw(QPainter &p)redraw42,938 void FrameWidget::clear()clear50,1093 src/DirReader.h,152 #define __DIRREADER_H__DIRREADER_H14,411 class DirReaderDirReader19,472 QDir::SortFlags flags;flags22,500 int maxDirDepth;maxDirDepth23,525 src/ColorPushButton.cpp,397 ColorPushButton::ColorPushButton(QWidget *parent): QPushButton(parent)ColorPushButton17,462 ColorPushButton::ColorPushButton(const QString &text, QWidget *parent): QPushButton(parent)ColorPushButton21,538 QColor ColorPushButton::getColor() constgetColor25,635 void ColorPushButton::setColor(const QColor &c)setColor30,696 void ColorPushButton::paintEvent(QPaintEvent *e)paintEvent36,775 src/Archivers/RarArchiverStrategy.h,237 #define __RAR_ARCHIVER_STRATEGY_H__RAR_ARCHIVER_STRATEGY_H14,423 namespace QComicBookQComicBook18,489 class RarArchiverStrategy: public ArchiverStrategyRarArchiverStrategy20,512 bool nonfree_unrar;nonfree_unrar30,759 src/Archivers/P7zipArchiverStrategy.cpp,211 P7zipArchiverStrategy::P7zipArchiverStrategy()P7zipArchiverStrategy19,497 P7zipArchiverStrategy::~P7zipArchiverStrategy()~P7zipArchiverStrategy24,598 void P7zipArchiverStrategy::configure()configure28,651 src/Archivers/P7zipArchiverStrategy.h,196 #define __P7ZIP_ARCHIVER_STRATEGY_H__P7ZIP_ARCHIVER_STRATEGY_H14,425 namespace QComicBookQComicBook18,493 class P7zipArchiverStrategy: public ArchiverStrategyP7zipArchiverStrategy20,516 src/Archivers/AceArchiverStrategy.h,188 #define __ACE_ARCHIVER_STRATEGY_H__ACE_ARCHIVER_STRATEGY_H14,423 namespace QComicBookQComicBook18,489 class AceArchiverStrategy: public ArchiverStrategyAceArchiverStrategy20,512 src/Archivers/ArchiverStrategy.h,483 #define __ARCHIVER_STRATEGY__ARCHIVER_STRATEGY16,450 namespace QComicBookQComicBook26,617 class ArchiverStrategyArchiverStrategy31,763 FileSignature signature;signature101,3007 QString name;name102,3040 bool supported;supported103,3062 QStringList executables;executables104,3086 QStringList extensions;extensions105,3119 QStringList extractArgs;extractArgs106,3151 QStringList listArgs;listArgs107,3184 src/Archivers/ArchiverHint.cpp,141 ArchiverHint::ArchiverHint(const QString &message, Severity severity)ArchiverHint17,445 ArchiverHint::~ArchiverHint()~ArchiverHint23,559 src/Archivers/ArchiverStrategy.cpp,1631 ArchiverStrategy::ArchiverStrategy(const QString &name, const FileSignature &sig)ArchiverStrategy19,484 ArchiverStrategy::~ArchiverStrategy()~ArchiverStrategy26,632 void ArchiverStrategy::setSupported(bool f)setSupported30,675 void ArchiverStrategy::addExtension(const QString &ext)addExtension35,743 void ArchiverStrategy::setFileMagic(const FileSignature &sig)setFileMagic43,885 QStringList ArchiverStrategy::fillTemplateArguments(const QStringList & inargs, const QString &filename)fillTemplateArguments48,973 void ArchiverStrategy::setExtractArguments(const QString &command)setExtractArguments65,1295 void ArchiverStrategy::setListArguments(const QString &command)setListArguments70,1430 void ArchiverStrategy::setExecutables(const QString &exec1, const QString &exec2)setExecutables75,1559 QStringList ArchiverStrategy::getExtractArguments(const QString &filename) constgetExtractArguments85,1781 QStringList ArchiverStrategy::getExtractArguments() constgetExtractArguments90,1924 QStringList ArchiverStrategy::getListArguments(const QString &filename) constgetListArguments95,2011 QStringList ArchiverStrategy::getListArguments() constgetListArguments100,2148 QStringList ArchiverStrategy::getExtensions() constgetExtensions105,2229 bool ArchiverStrategy::canOpen(QFile *f) constcanOpen110,2309 bool ArchiverStrategy::canOpen(const QString &filename) constcanOpen115,2407 QList ArchiverStrategy::getHints() constgetHints124,2583 bool ArchiverStrategy::isSupported() constisSupported129,2700 ArchiverStrategy::operator ArchiverStatus() constoperator ArchiverStatus134,2770 src/Archivers/TargzArchiverStrategy.cpp,211 TargzArchiverStrategy::TargzArchiverStrategy()TargzArchiverStrategy19,497 TargzArchiverStrategy::~TargzArchiverStrategy()~TargzArchiverStrategy24,599 void TargzArchiverStrategy::configure()configure28,652 src/Archivers/ArchiverStatus.cpp,618 ArchiverStatus::ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QString &exec1, const QString &exec2)ArchiverStatus17,447 ArchiverStatus::ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QStringList &execlist)ArchiverStatus29,790 ArchiverStatus::~ArchiverStatus()~ArchiverStatus37,1035 bool ArchiverStatus::isSupported() constisSupported41,1074 QString ArchiverStatus::name() constname46,1144 QStringList ArchiverStatus::executables() constexecutables51,1205 QStringList ArchiverStatus::extensions() constextensions56,1284 src/Archivers/ArchiversConfiguration.h,252 #define __ARCHIVERS_CONFIGURATION_H__ARCHIVERS_CONFIGURATION_H14,425 namespace QComicBookQComicBook21,550 class ArchiversConfiguration: public QObjectArchiversConfiguration25,602 QList archivers;archivers43,1293 src/Archivers/RarArchiverStrategy.cpp,272 RarArchiverStrategy::RarArchiverStrategy()RarArchiverStrategy22,573 RarArchiverStrategy::~RarArchiverStrategy()~RarArchiverStrategy27,714 void RarArchiverStrategy::configure()configure31,763 QList RarArchiverStrategy::getHints() constgetHints81,2131 src/Archivers/Tarbz2ArchiverStrategy.h,200 #define __TARBZ2_ARCHIVER_STRATEGY_H__TARBZ2_ARCHIVER_STRATEGY_H14,426 namespace QComicBookQComicBook18,495 class Tarbz2ArchiverStrategy: public ArchiverStrategyTarbz2ArchiverStrategy20,518 src/Archivers/ArchiversConfiguration.cpp,998 ArchiversConfiguration& ArchiversConfiguration::instance()instance24,690 ArchiversConfiguration::ArchiversConfiguration()ArchiversConfiguration30,809 ArchiversConfiguration::~ArchiversConfiguration()~ArchiversConfiguration45,1246 ArchiverStrategy* ArchiversConfiguration::findStrategy(const QString &filename) constfindStrategy53,1376 void ArchiversConfiguration::getExtractArguments(const QString &filename, QStringList &extract, QStringList &list) constgetExtractArguments81,2054 QStringList ArchiversConfiguration::getExtractArguments(const QString &filename) constgetExtractArguments96,2419 QStringList ArchiversConfiguration::getListArguments(const QString &filename) constgetListArguments106,2659 QStringList ArchiversConfiguration::supportedOpenExtensions() constsupportedOpenExtensions116,2893 QList ArchiversConfiguration::getArchiversStatus() constgetArchiversStatus129,3183 QList ArchiversConfiguration::getHints() constgetHints141,3416 src/Archivers/ArchiverHint.h,555 #define __ARCHIVER_HINT_H__ARCHIVER_HINT_H14,415 namespace QComicBookQComicBook18,462 class ArchiverHintArchiverHint20,485 enum Severity { Info, Warning, Error };Severity23,526 enum Severity { Info, Warning, Error };Info23,526 enum Severity { Info, Warning, Error };Warning23,526 enum Severity { Info, Warning, Error };Error23,526 Severity getSeverity() constgetSeverity28,671 QString getMessage() constgetMessage33,753 QString msg;msg39,846 Severity sev;sev40,867 src/Archivers/ArchiverStatus.h,338 #define __ARCHIVER_STATUS_H__ARCHIVER_STATUS_H14,417 namespace QComicBookQComicBook21,532 class ArchiverStatusArchiverStatus23,555 QString m_name;m_name36,1056 QStringList m_executables;m_executables37,1080 QStringList m_extensions;m_extensions38,1115 bool m_supported;m_supported39,1149 src/Archivers/Tarbz2ArchiverStrategy.cpp,218 Tarbz2ArchiverStrategy::Tarbz2ArchiverStrategy()Tarbz2ArchiverStrategy19,498 Tarbz2ArchiverStrategy::~Tarbz2ArchiverStrategy()~Tarbz2ArchiverStrategy24,603 void Tarbz2ArchiverStrategy::configure()configure28,658 src/Archivers/AceArchiverStrategy.cpp,197 AceArchiverStrategy::AceArchiverStrategy()AceArchiverStrategy19,495 AceArchiverStrategy::~AceArchiverStrategy()~AceArchiverStrategy24,614 void AceArchiverStrategy::configure()configure28,663 src/Archivers/ZipArchiverStrategy.cpp,197 ZipArchiverStrategy::ZipArchiverStrategy()ZipArchiverStrategy19,495 ZipArchiverStrategy::~ZipArchiverStrategy()~ZipArchiverStrategy24,614 void ZipArchiverStrategy::configure()configure28,663 src/Archivers/ZipArchiverStrategy.h,188 #define __ZIP_ARCHIVER_STRATEGY_H__ZIP_ARCHIVER_STRATEGY_H14,423 namespace QComicBookQComicBook18,489 class ZipArchiverStrategy: public ArchiverStrategyZipArchiverStrategy20,512 src/Archivers/TargzArchiverStrategy.h,196 #define __TARGZ_ARCHIVER_STRATEGY_H__TARGZ_ARCHIVER_STRATEGY_H14,425 namespace QComicBookQComicBook18,493 class TargzArchiverStrategy: public ArchiverStrategyTargzArchiverStrategy20,516 src/Thumbnail.h,368 #define __THUMBNAIL_H__THUMBNAIL_H14,413 namespace QComicBookQComicBook20,498 class ThumbnailThumbnail22,521 int num;num25,552 QByteArray hash;hash26,564 QImage img;img27,584 static int thwidth, thheight; //default thumbnail width and heightthwidth28,599 static int thwidth, thheight; //default thumbnail width and heightthheight28,599 src/ComicBookCfgDialog.cpp,539 ComicBookCfgDialog::ComicBookCfgDialog(QWidget *parent, ComicBookSettings *cfg): QDialog(parent), cfg(cfg)ComicBookCfgDialog22,578 ComicBookCfgDialog::~ComicBookCfgDialog()~ComicBookCfgDialog61,2018 void ComicBookCfgDialog::accept()accept65,2065 void ComicBookCfgDialog::updateFontPreview()updateFontPreview94,3007 void ComicBookCfgDialog::showBackgroundDialog()showBackgroundDialog100,3161 void ComicBookCfgDialog::showFontDialog()showFontDialog109,3324 void ComicBookCfgDialog::showTempDirDialog()showTempDirDialog117,3460 src/FileSignature.cpp,440 FileSignature::FileSignature(unsigned int offset, const char *pattern, unsigned int len)FileSignature17,446 FileSignature::FileSignature()FileSignature23,607 FileSignature::FileSignature(const FileSignature &sig)FileSignature28,659 FileSignature::~FileSignature()~FileSignature34,771 bool FileSignature::matches(QFile *file) constmatches38,808 FileSignature& FileSignature::operator =(const FileSignature &sig)operator =55,1178 src/ComicMainWindow.cpp,4083 ComicMainWindow::ComicMainWindow(QWidget *parent): QMainWindow(parent), currpage(0)ComicMainWindow62,1597 ComicMainWindow::~ComicMainWindow()~ComicMainWindow240,9475 void ComicMainWindow::setupContextMenu()setupContextMenu265,9915 void ComicMainWindow::setupComicImageView()setupComicImageView295,10941 void ComicMainWindow::applyFullscreenSettings()applyFullscreenSettings380,14758 void ComicMainWindow::enableComicBookActions(bool f)enableComicBookActions395,15134 void ComicMainWindow::dragEnterEvent(QDragEnterEvent *e)dragEnterEvent433,16316 void ComicMainWindow::dropEvent(QDropEvent *e)dropEvent439,16438 void ComicMainWindow::keyPressEvent(QKeyEvent *e)keyPressEvent446,16598 void ComicMainWindow::closeEvent(QCloseEvent *e)closeEvent457,16865 bool ComicMainWindow::confirmExit()confirmExit462,17002 void ComicMainWindow::thumbnailsWindowShown()thumbnailsWindowShown467,17213 void ComicMainWindow::toggleScrollbars(bool f)toggleScrollbars482,17505 void ComicMainWindow::toggleContinousView(bool f)toggleContinousView488,17619 void ComicMainWindow::toggleTwoPages(bool f)toggleTwoPages494,17734 void ComicMainWindow::toggleJapaneseMode(bool f)toggleJapaneseMode501,17878 void ComicMainWindow::setPageSize(QAction *action)setPageSize507,17985 void ComicMainWindow::reloadPage()reloadPage535,18479 void ComicMainWindow::updateCaption()updateCaption543,18581 void ComicMainWindow::recentSelected(const QString &fname) recentSelected553,18741 void ComicMainWindow::pageLoaded(const Page &page)pageLoaded563,18931 void ComicMainWindow::pageLoaded(const Page &page1, const Page &page2)pageLoaded572,19128 void ComicMainWindow::sinkReady(const QString &path)sinkReady581,19418 void ComicMainWindow::sinkError(int code)sinkError611,20401 void ComicMainWindow::browseDirectory()browseDirectory632,21498 void ComicMainWindow::browseArchive()browseArchive639,21705 void ComicMainWindow::open(const QString &path, int page)open646,22013 void ComicMainWindow::openNext()openNext677,22943 void ComicMainWindow::openPrevious()openPrevious687,23114 void ComicMainWindow::toggleFullScreen()toggleFullScreen697,23314 void ComicMainWindow::exitFullscreen()exitFullscreen710,23530 void ComicMainWindow::nextPage()nextPage727,23924 void ComicMainWindow::prevPage()prevPage736,24056 void ComicMainWindow::prevFrame()prevFrame745,24192 void ComicMainWindow::nextFrame()nextFrame750,24254 void ComicMainWindow::prevPageBottom()prevPageBottom755,24316 void ComicMainWindow::firstPage()firstPage764,24476 void ComicMainWindow::lastPage()lastPage769,24538 void ComicMainWindow::forwardPages()forwardPages777,24647 void ComicMainWindow::backwardPages()backwardPages782,24720 void ComicMainWindow::jumpToPage(int n, bool force)jumpToPage787,24793 void ComicMainWindow::currentPageChanged(int n)currentPageChanged812,25275 void ComicMainWindow::showInfo()showInfo845,26213 void ComicMainWindow::showSysInfo()showSysInfo854,26400 void ComicMainWindow::showAbout()showAbout860,26497 void ComicMainWindow::showAboutDonating(bool startup)showAboutDonating871,27114 void ComicMainWindow::showConfigDialog()showConfigDialog894,27463 void ComicMainWindow::showJumpToPage(const QString &number)showJumpToPage901,27683 void ComicMainWindow::showAboutQt()showAboutQt911,27983 void ComicMainWindow::closeSink()closeSink916,28051 void ComicMainWindow::setBookmark()setBookmark935,28431 void ComicMainWindow::removeBookmark()removeBookmark941,28553 void ComicMainWindow::openBookmarksManager()openBookmarksManager949,28955 void ComicMainWindow::savePageAs()savePageAs955,29095 void ComicMainWindow::openPrintDialog()openPrintDialog984,30185 void ComicMainWindow::bookmarkSelected(QAction *action) bookmarkSelected1001,30958 void ComicMainWindow::changeViewType(QAction *action)changeViewType1029,32186 void ComicMainWindow::saveSettings()saveSettings1046,32492 void ComicMainWindow::reconfigureDisplay()reconfigureDisplay1058,32795 void ComicMainWindow::printingFinished()printingFinished1065,32985 src/ListViewThumbnail.cpp,312 ListViewThumbnail::ListViewThumbnail(QListWidget *parent, QListWidgetItem *after, int page) : ThumbnailItem(page) //: QListWidgetItem(parent, after, QString::number(page+1), QCheckListItem::CheckBox), ThumbnailItem(page)ListViewThumbnail17,452 ListViewThumbnail::~ListViewThumbnail()~ListViewThumbnail21,678 src/LoaderThreadBase.cpp,802 LoaderThreadBase::LoaderThreadBase(): QThread(), prio(QThread::LowPriority), sink(NULL), stopped(false)LoaderThreadBase19,512 LoaderThreadBase::~LoaderThreadBase()~LoaderThreadBase23,621 void LoaderThreadBase::setPriority(QThread::Priority p)setPriority27,664 void LoaderThreadBase::setSink(QSharedPointer sink)setSink34,789 void LoaderThreadBase::request(int page)request41,924 void LoaderThreadBase::requestTwoPages(int page)requestTwoPages58,1300 void LoaderThreadBase::request(int first, int n)request75,1696 void LoaderThreadBase::cancel(int page)cancel83,1820 void LoaderThreadBase::cancelTwoPages(int page)cancelTwoPages92,2025 void LoaderThreadBase::cancelAll()cancelAll101,2240 void LoaderThreadBase::stop()stop109,2390 void LoaderThreadBase::run()run117,2518 src/FrameView.h,389 #define __FRAME_VIEW_H__FRAME_VIEW_H14,412 namespace QComicBookQComicBook23,543 class FrameView: public PageViewBaseFrameView27,587 int m_currentPage;m_currentPage54,1440 int m_currentFrame;m_currentFrame55,1462 FrameWidget *m_frame;m_frame56,1485 Page m_page;m_page57,1510 ComicFrameList m_frames;m_frames58,1526 QVBoxLayout *m_layout;m_layout59,1554 src/ContinuousPageView.cpp,1760 ContinuousPageView::ContinuousPageView(QWidget *parent, int physicalPages, const ViewProperties& props)ContinuousPageView28,689 ContinuousPageView::~ContinuousPageView()~ContinuousPageView57,1670 void ContinuousPageView::setNumOfPages(int n)setNumOfPages63,1763 void ContinuousPageView::propsChanged()propsChanged71,1934 void ContinuousPageView::scrollbarRangeChanged(int min, int max)scrollbarRangeChanged87,2352 void ContinuousPageView::recreatePageWidgets()recreatePageWidgets100,2865 PageWidget* ContinuousPageView::findPageWidget(int pageNum) constfindPageWidget154,4409 void ContinuousPageView::disposeOrRequestPages()disposeOrRequestPages170,4733 QList ContinuousPageView::findPageWidgetsInView() constfindPageWidgetsInView243,7435 void ContinuousPageView::recalculatePageSizes()recalculatePageSizes265,7931 void ContinuousPageView::scrollContentsBy(int dx, int dy)scrollContentsBy320,9336 void ContinuousPageView::setImage(const Page &img1)setImage333,9663 void ContinuousPageView::setImage(const Page &img1, const Page &img2)setImage347,10043 void ContinuousPageView::resizeEvent(QResizeEvent *e)resizeEvent361,10472 void ContinuousPageView::wheelEvent(QWheelEvent *e)wheelEvent378,10829 void ContinuousPageView::gotoPage(int n)gotoPage383,10919 void ContinuousPageView::scrollToTop()scrollToTop403,11395 void ContinuousPageView::scrollToBottom()scrollToBottom414,11628 void ContinuousPageView::clear()clear425,11887 int ContinuousPageView::visiblePages() constvisiblePages432,11994 int ContinuousPageView::viewWidth() constviewWidth438,12120 PageWidget *ContinuousPageView::currentPageWidget() constcurrentPageWidget444,12258 int ContinuousPageView::currentPage() constcurrentPage490,13337 src/ThumbnailsView.cpp,767 ThumbnailsView::ThumbnailsView(QWidget *parent): QListWidget(parent), selected(NULL), numpages(0)ThumbnailsView25,632 ThumbnailsView::~ThumbnailsView()~ThumbnailsView55,1618 void ThumbnailsView::onDoubleClick(QListWidgetItem *item)onDoubleClick60,1676 void ThumbnailsView::setPages(int pages)setPages65,1812 void ThumbnailsView::setPage(int n, const QPixmap &img)setPage76,2102 void ThumbnailsView::setPage(const Thumbnail &t)setPage86,2272 void ThumbnailsView::clear()clear91,2377 void ThumbnailsView::scrollToPage(int n)scrollToPage99,2483 void ThumbnailsView::contextMenuEvent(QContextMenuEvent *e)contextMenuEvent111,2744 void ThumbnailsView::goToPageAction()goToPageAction122,2930 bool ThumbnailsView::isLoaded(int n) constisLoaded128,3015 src/History.cpp,403 History::History(const QStringList &l, int max): size(max)History17,439 History::History(int max)History22,515 History::~History()~History27,559 void History::append(const QString &txt)append31,584 void History::remove(const QString &txt)remove52,956 void History::set(const QStringList &l)set59,1071 QString History::first()first64,1128 QStringList History::getAll() constgetAll69,1182 src/Bookmarks.h,482 #define __BOOKMARKS_H__BOOKMARKS_H16,439 namespace QComicBookQComicBook26,570 class BookmarksBookmarks28,593 QList blist; //! bmap; //!bookmark lookupbmap32,685 QMenu *bmenu; //! sink;sink50,1062 QPointer view;view51,1095 QPointer thumbswin;thumbswin52,1127 QSharedPointer bookmarks;bookmarks53,1168 StatusBar *statusbar;statusbar54,1208 ComicBookSettings *cfg;cfg55,1233 int currpage; //! printer;printer66,1667 PrinterThread *printThread;printThread67,1704 FrameDetectThread *frameDetect;frameDetect68,1735 src/Utility.cpp,221 QString Utility::which(const QString &command)which20,524 void Utility::touch(const QString &fname)touch42,1077 QString Utility::shortenPath(const QString &path, const QString &filler, int maxlen)shortenPath47,1162 src/ThumbnailItem.h,229 #define __THUMBNAILITEM_H__THUMBNAILITEM_H14,417 namespace QComicBookQComicBook16,444 class ThumbnailItemThumbnailItem20,486 int pnum; //page numberpnum23,523 bool loaded; //has image or is it empty?loaded24,550 qcomicbook-0.8.2/data/bookmark.png000644 001750 001750 00000001707 11644604742 017372 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ((WNñdtEXtCommentöÌ–¿@IDATXõ—AH#WÇo:HéúH€t—R/iãJVi*ÊæÜ=¤BŠ =xé½Ï{²‡=l/‚ôг7ÆÛ ÉA ‹…6[êAbKe¦fÖ•Í:óö°™0u'ÉLŒ óÞ7ß›ï?ÿ÷ï{#褔±â5MÃó<ÇùðÙm&×´÷¯÷<¯eŒÞË/íÆôN†a`YVÐ¥€2l3ì+àÏÃÿ[Š( ¬­­‘J¥Èår*T;;î¡У¼!•J‘Édüî¾eY£APavvvÆÌÌŒÏXwS „@)Õ ”—ÉdZŠøääÄozm…… !„ˆ2& ü›hJE­z àËÆý£ˆ Ü»1€k¬âûÀ\פ3-Fbß÷& è««+¿ùæV4C„½Õ€âŸ(qõzÝoVzÀ0Œ¯ ÃØB|!„nL¡655…®ë7_†º®kù|þ ðxommµ]~†aÇÓ5MÓú€çÀS€¥¥%NOO?Ïår¡ñµZééi¿û‰_kLÄÛŠð ð-ðrww7=<<Ü–­±±1ÎÏÏjÀåʱR*é/E˲ÒQÊvÃÊÀ\ð™mÛñ§@1èºî÷>ìøµZ ¥žçýH$ÿEIÞI?üøìÙÿœa5½R©àº.žç%S)y'¯®;ާ\.·Útö=ÏöíHÉ;MA°qqÁüü<¦i277ÇÎÎNØúVí qø4¸¶988xíº. ÚÞÞ^9Ní  )ëååå«íím„u Û××÷ÜqfggÞÖ××YYYÑ5MSJ©"ð²^¯—N§ÿ²m›b±¨ŽŽŽ"žXfÆïRJå_£££?H)ñ¯ÕÕÕþ‰‰‰·RJ588èÇmÇþkj#Âæa ŸÏÿü|íŒðjcc㳑‘‘ÊååeïH&“H)U¡P¸(•JýRJ‰Dó_AJIµZÅ4M™Íf}~íÀýF1¹ãï CCCÍÈq677œFœ ==Õ$“Éæœ‹ÅИjµÊää$A}ô@¡P T*µ¬ÿ¦i’Íf»ðƒÿ?±…ª¡êIEND®B`‚qcomicbook-0.8.2/data/fforward.png000644 001750 001750 00000001122 11644604742 017366 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ  &€\DtEXtCommentöÌ–¿ËIDATXÃíÖ=hAÆñ_ÎMàŠˆ‚`©E°±T$…‚(XX(6ñ@›…ëÕFDNE,ì,6v ŠP´±1˜* &"¹³™ƒÍ±¹ýpï°ðeg–ÿ>ﳳí׶óCu«89">WßÐCW±©f>Wïƒáïp_ÀÖù\õÐkÇq_Âü3öÕÄgª‘õ°ÇÛñ;𠆙”åÓš¨H;Ž×$éî>æð£"ŸÛ'T7œÂ+ìªÈç&pxH‹§ñ»ñ'*ðÅ×À¦3˜Çf<¬À_CTz d©“$k˜„ó­–f³Y”_À1,—îÀ@u“ýq^ð¿„ýx‡Õªê$ÉsÌb mÜl£Úq<†nàÊXHux5Lg¢qï$Énaqvܸƒ)\ÇQ|*Vò‡J|¶}þÎá®Ôb(üc?xI~Gð¶ÒN̾cç IA~OÖ{Á»a[}€ƒøÅ,.*`t§Ã¦u —ë䣳×Álgð¨N~h$YÂ^|ÂñpTŸwÆûæ/±¥&¾X©ëvÿ—[_8.Z#à .†Ã(øBš1ÿïé•Î3"´ íIEND®B`‚qcomicbook-0.8.2/data/nextpage.png000644 001750 001750 00000001045 11644604742 017373 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDtqq‡ ¾½ pHYs  šœtIMEÕ 4OWÚktEXtCommentöÌ–¿žIDATXÃí×1hAÆñ_t“.b£ ZÆ"ØX *b¡`#,, ›h!ÂÂõj#"+ƒ vŠ‚…ÁE0ÄBlÄF1U@MDD¹µyÅ)I¸Ëeç@|°ìÎ2ó¾?ß¾™át[)~K81(€/¨ÑÆUlÌ ð&~Åý¶ä¨Q·Ê²Æ§hÀÞ~oèu@«,·áv`çûêÁ­²üãe•R9îaßšràÉ n a'ñ;›8¼Ê'Å[ìÂŽ7Z+@Œã6á!®¡h¼–‹*¥ŸŽ©:…ÆøËaÌc^cV€Ž©:ƒíxŠ Yâ`<¸+Y:jf)šãËõ)š¯RšÄMŒâ1Îävà6FpGñ9‹UJS8„8‹;«õ/ÖYü]ˆ/à^eY Cü+ÆBtw7âëP¥ÔŽeø>àc·c‹>…ïâT,é—p¹×Eâ³!¾ˆÓx´–<ÅÅç±ïq,öŒÙö„ߣý›³nJ;®[ñË• sƒ8˜Ô1µ&y<ù'O¼¿ºqì$ˆ]IEND®B`‚qcomicbook-0.8.2/data/rleft.png000644 001750 001750 00000001632 11644604742 016676 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ $(ŽŒšÕtEXtCommentöÌ–¿IDATXÃí—?H+Y‡¿ #®c"ŠåBDEÔFxE„€vB;I'[Ù¬•¤[°yh!l¥²Ø*}„±ÑÅbÅh¨Q7úÛbw‚1™§&Y^ó~pár9wÎwîŸsÏÀw9ËøVŽ~r€jÐRÀÏÀàÓ[ÎMMMª‘cêííÕÀÀÀ˱©¯ü( éòòRµR:V4µN€:'€?TåðññQ‰DB±XL;;;’¤|>/˲lˆ'€?}Øi*•Òââ¢úûû‹¶ ‰lzzzJê_x<Ï»Ol<gaax<^s»ÝƒAFGG)Œ???ºNßËÊd2oF|~~®P(TˆÔåriffFëëëÊåreçtvvÚöUìííɾ-¦ijiiI÷÷÷oB P1ÀÚÚšêêê(ëæææÝ礽½Ýh¯`ssS†aÈ0 ­¬¬|ø ¶µµÙm8==•Çã åå劮§ßï·üN×€®¯¯K& ÐÄÄDÅùÁçóÙ>'€+@WWWE···Ȳ¬²pï•×ëµ¼Ni@étºhâð𰀊öý¥Z[[m€V'€K èH¥R…èªx‘Š-ÛáëGA’Èd2¬®®‡ÿ}&¢lW‰$ù)§ @ÇÇÇŠÅbêêê’aÔÐР±±1íîîV¼---ö ´8üh_CCC%o»išš››«)Àë-x¸½½%‘H”ÐÝÝÝ•¯FeêëëñùJ¯ªÛíÆëõþÿ–e199Ybì÷û™ššªØYccc¡ëTäš››™ŸŸ`kk‹t:M__‘H„éééŠÜnwQÝQN¿ÚØØÐÓÓ“...ttt¤ÃÃC%“ɪ²`2™´oTp9­À*0Féèè »»Ó41M€l6K6›ýpä'''ÌÎÎÚyà3ð·“­+ Ö´,ÙüðÖßøé¿úÝS£Ãž~¿V~×7Ñ? ™gÉ ÝIEND®B`‚qcomicbook-0.8.2/data/fitwidth.png000644 001750 001750 00000001004 11644604742 017375 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ  ô9¨tEXtCommentöÌ–¿}IDATXÃí—±NÂP†¿%m$ÃÀ`ÂoàÀèäÆÎðÆÅ7PÞÁÁ— !ŽݨÝq(=.^‚µ·´x+ ý““œážs¾{îíÉ-úYY_/Àðˆ[ÏÀÅ®âW*¨×ëI»ÝCH­VàLW¼¼2Å÷}1¥år)ƒÁ@<èÎi4˜Öl6S¯Ñ]ÿP½^§\.¿…ÍfS¹':€ Ã\>×u7®` °^¯s°m[¹•ƒt éæ+ €ˆ¿ç¨eeŸ½)c*IûŽƒ‘í¼’ªÑâ–ee²hlf€èQ¨]¤µ¸Ø8€Ä#Ðu#­âr¥î€.Ñ>ÅÓäª`kćG à8Žs0 Z­æÁÆÕ|Ÿžç1ŸÏL§SåúIïõ{`Ôjµ˜L&t:#Å‹ÃáÏóFÀ£níi¿ß7úß¶n·+€½ë¥Ü×ÑçÓ´ž€›o¿Ðñè î¤×“ /ÖIEND®B`‚qcomicbook-0.8.2/data/nextframe.png000644 001750 001750 00000001341 11644604742 017550 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÚ A¦¨‰ iTXtComment¼®²™IIDATXÃí—¿kaÇ?IÔ «˜á bqÈPÈq:ÜØ©[³„, ¶C† í,¤í þ Jɉ£:–´Û]‡€nA¬ >’;LâÅ»ä*ò…ž{ïýñ}~Üó>˜ÜL~|Þ?ñ@úÀWàù¬Ã_š‹R©”$“Iñˆ€ …Pì_~R(¤ÛíŠWèt:¢ªªIä“g€D£Q‡â5NOOM?&õÝd‡YZZºÌœ…Ù¹#"ŽkeeÅTŸÜt»‰1Àx<þ'ŸA0´T;ŒF£‘#+xg~¿ª×çæ»2ß2tVL»ÝîTOÌOÔj5‰•JÅËårö€Ï)““úý>[[[´Z-²Ù,õz€·Ö¼Ùß÷.Åb‘r¹Ìòò2ÇÇÇôz=Ç–Nì+÷Î|>O£Ñ`uu€jµ:_™L†v» ÀÅÅÅü (Êå}²±±aéÎü˜PUÕÒK¥ß®Ò Ÿ£nÂAÕ‹Åbhš†¦i(ŠÂë×xÞîîZúùùù½B0uÑ`0@D¦ÊÑÑѵù@€H$rk¯‰?vsS'8ÜÛ³}gGàZr¢(Š«FÃI+&"¢ëºù¬Û… èÖb7‡–jGà7ðÇ0 ÎÎÎ\˜YÐl6­Kõ®~ý#°Ç)—ˬ­­yb½®ëlnnbÀ6ðÙnîÓt:íi+>)ëëëøgý±,‡À+§…ÊúÀàÝ•þˆÿ¦!yeÌœUIEND®B`‚qcomicbook-0.8.2/data/hint_warning.png000644 001750 001750 00000001570 11644604742 020252 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôsRGB®Îé pHYs  šœtIMEÚÇ”†iTXtCommentCreated with GIMPd.eáIDATXÃÅWÏOA}Ót¯e·Ò6¢ÁC0á r(å Ü0À1$kñ† G‰Üá&¸ HðD®š´zÄp©¥Ð6]’ÏvÚ]·°»må%“ì7»³ó½÷Í›ÙÙD&“¡ááa*°;ðM8L²$ÑîînY 0""XD6›ÅƒÖV¨ª QqÃ.v½[\„ªª€d2‰÷KK¶°¬@1û<AÀq<ŽÚÚÚê+ðvaA39¨ªŠ±±±ê+ gÏC~8c ßÑÞÞ^=ŠkÏßOàr¹D„磣Ö%°â{¯ÇC²$‘,Iôt`€ˆ@+++¼O–$ÚÛÛ«Î>ðjf†Oâ–eJ&Ùßá ‡mmüžßï·”€Ãlí777y ÑØXX:×ÖøõïD‘ååÊ–@Ïþì¬À>ߺ»»ù3^‡...*£€û††+önY‚[–ŠrŒ1nË•Q`fzZÃ>•*°Ï÷çãg##šgc±Xy‹P¿ò‡5²ëÈå@>¯—÷ººÊ+ÁÂü¼Æ÷ë_®US€×á0£Ñ(ö÷÷í• “ɧ¹¹À~h蟅§WÀÈ–m7ز¤óss¸¼¼,°_ß1í¬b[& D"k ˜aOj¹ÛD÷Zš ¥¡s:öÆìE‘ ŠÆg™Þ–ãããæ£l6‹Ï[[<î …PWg<‰ØDh,‘€Ï÷ ýýý<þzp€X4zs ^NMqéî¸Ýt~Î %6Ór9hlldK‡ž½¢(<õö–do‚ÌÎÎ^oËëØïzF­” ­Ø’+N§5ì{B!Ô×Ûg_Œ««¥m™ÏdrrR³—S{£ö8àï÷y½Ü–Œˆhg{ºÓËê·ÝM8K¥ðëäD³¾E¹ú(}ÔÑÓÓSüO0Æðýèè*·,ã6ÐÙÙ 'ôõõŒ¡¦¦N§“ï`Õ†K`ëß°’pà–ñt›~S’‘¼IEND®B`‚qcomicbook-0.8.2/data/hint_error.png000644 001750 001750 00000001540 11644604742 017733 0ustar00pawelpawel000000 000000 ‰PNG  IHDR üí£sRGB®Îé pHYs  šœtIMEÚ)1>™iTXtCommentCreated with GIMPd.eÉIDATHǽ–KHjQ†—Õ䘥]MD 90Äp” $E¡3IE#' ‚‚FN%‚ *# ‡=¦ z‰ôâ>þ;HïÉãÞjÜÛ]ì‰û_ûÿÀ³÷ZK€~2ªè¹Åb´¿O§§tyIé454FCíídµ’ËEccT__ɼH& B¯‡ TZz=‚A$“< †Z]ÅúëR«×ÈdàõJ'ÍfÌÍÕŠñz‘ÉTˆ"Üné€Í†‡˜åš !ƒRYøévCùG:ÙÛ‹ÇÇÂ~>©)†ûø8òyX]•6= ’’FGñöVÂþøÀðp‰ûä$r9)aiI’B¡2@"!ÉÓÓì//Š°Û 9²Yy‚d’H”ü~I ¸w÷î&ff¸ n„ßÿJÉÿÜùùJŒ qt$™¤RE@$Âø€ËËønlnB¥’"‘"ÀçcT*Äãßp_Y‘.ëçòùŠ«•}ǵZœœÔäËÝVk ÓqßQ[ÎÏ«¸/.²ÏêtꈈD‘[ ŸŸéêªR±ŒF)bK¢HDuDD‚ÀÎP*ik‹+&&ÈåbK‚P ¹¹™b1êï¯Ò0 ÚØ în†d4‹\ûõ‹öö¨¯¯¦¦%Sg§|ßb)œÎÁ` ƒêéùFcli¡ímjm-Ùü´•¿d³··Ü óô„®z| ­–õ’¿Ö"§“QÅ>ãå”JD£\ÆÚ«ɪ©Ã÷wùÉtZ*¥j5î0™8ÕTÖ¼¾JÒõµüµ 8;“—9ƒßÊ;ÚÀ@aóþ]]Œ‡j2IÃÄî.4šj­¼'ŒàæÜBb·#›Åú:ššjëÉåSEÕe³¡±±æ©âÌEÿz²ST~ÿz6Uüôt]G?¿ý9ó1å=IEND®B`‚qcomicbook-0.8.2/data/settings.png000644 001750 001750 00000001454 11644604742 017424 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ9,úmtEXtCommentöÌ–¿¥IDATXÃí—»NA†?|!¶ŒvƒL"‚+„"Q$Óšà*N5EÜØm”G HRÐð‘HãG@‚”Æ1¶¥uDÁÚhx½“",ñìÅ—Ø„üÒHgÏÌ9ûíÌžÙYxÔ¿ÑH?ƒ_ßTEÀw@ ¡]_—ÝnþÆ REÜB ­ à™×Í}@ ÙlVÔëuᦽ½½¾üB¡ëºX^^¶@>yÄ1>>. Ãp$Ñ4M,ÆãBU‘Éd¤¾L&#TE‹ñ¸Ð4ÍâààÀ(ØŸZ’¢(øý~ÉW)—YJ$(~ÇV«U©ÿèÖ_(XJ$¨”ËŽ§›˜˜°Ìˆ€ `š¦hš&«©º®ßùžªªÚ’®ë¬¦RŽ<ápøÎôh´Z-)0ŸÏS­T$Ÿ?klD®²j¥B>Ÿ—|Á`Ð2}Í@©TrL§}Œ›Üâ¼Þ|K@! x>9麼¼”®í1^q°’L¢ÚÖüæúº#€ªª¬$“ÈD"ds9iÏÎΤ1çççR6—#‰ôèN§)±»» Àññ1ÛÛÛ\\\pxx@³Ùd}}t:íÈÑ–WxÁDFE'½ÛܼۦÛÛ«ùùŽqFÃÚˆ}-]§§§®~ÃV¾½Î@ßöš·4ú§ÎÀçó ÐÛÉ ø½Ü4› `thÛ¾ÍNNNÜ c`€@(ê˜èÅô´«ÿI—¸^£££÷R†m3dxmÅ?€ŸµZ-T,™uM´µµE,sø“]>>ûûû–Yït^ÿlLMM±³³ÃÌÌÌP~ 4McmmZ­°|ö«.,, õ(ÞÞæææìöÇâ>oíǧt|ÞßÚúô ÆTÇÃ¥ÀIEND®B`‚qcomicbook-0.8.2/data/twopages.png000644 001750 001750 00000001377 11644604742 017421 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ.SÕÆªtEXtCommentöÌ–¿xIDATXÃí–ÏKaÇ?3î æp]dIØ\ÁC tPO‚i;yp¯ ‚`/C£±›!´‹YǰhÁ?@DÌC» ‹ìlm°ƒk¬8î<j¶U™ÜÙÚõâ^xÞ™çÇw¾<ó¼/œ£:PNs¸¬O€ @J\}ÀUþä€÷À«øMëeww·'Éæ€w  ø6 …B¢ëº8•Ì 2™Œ Y±Ï¤¹¹YÅ)Ê! "²²²bÅ~Vššš¨©©©ZGz½^ˬWLÓ¬ê/QWWW0U€|>_Un·Û2]g¢@1T~uÑ93#à²#`ŸVWÙˆÇÙŒÅx09YRÂý\Ž7sslÄbp9`8¤¥¥¥àSTOlø±·ÇúÚloo—üE†aÐÞÑÁýñqOOs©­×‘ÈŸbâñxl§Ö·tZ–= µdRîy¦ëº«W¼¾g³\¨¯·U ¢òù<‹Ñ(}ýý'P ˜¦É«pok+ýƒƒ¶\•*>‰ * ÃÁ ªªVW |M¥¸=2r¢ø±Ñoþw_R)£Q®õö²·»ËN6ËN6kK@Äçó‘N§8é™ O'& à¶¶—ËÅ£©©?7ME9.)—–˜‡O{63S°5MÃï÷hâ÷û¥”{#J$VlBö5M#Wmþ///„v/EäÎÀÀ³³³tvv:N¸µµU²o2™$ YÛ{zz_«ÿuuuu àVŠŽå à–uBÚ ýØþ°wðir䀷ÀÃßö9Î?ԢРœ &ÒIEND®B`‚qcomicbook-0.8.2/data/thumbnails.png000644 001750 001750 00000000707 11644604742 017732 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ.4ŽíwôtEXtCommentöÌ–¿@IDATXÃí•AjÄ …Ÿu/˜ oPð0½H½B½Îlz‚™#pWèÂjþY4’Mt:$þï÷i¢xè€: ßý36^GÌg³¨óP¬µ&¥Ô VJ‘ÖzÜìRÀ|¥& 1d­¥¹¬µdŒ¹5$"ä2)ÏHJIÞ{ŠÉ{ORʉfiÕ !À9ºäœCq7³d €®ëVÿÒyM ³d @aµÙ¼¦„9äüýQD«Íæ5%Ì’_pÎ%·4„çÜä] “ßz¦c¡_UÃKxßz«qÎ?zYLê¸zðÓ_›.q¯¿Ñðm73«³7Mƒ¡ñžÃZ»ŽvàT% ûÉK4~\k¦!þ}¢v vcj¦av²µm[7 K˜]Ó°„Ù5 ïd\õDïz¯IEND®B`‚qcomicbook-0.8.2/data/qcomicbook-splash.png000644 001750 001750 00001670026 11644604742 021212 0ustar00pawelpawel000000 000000 ‰PNG  IHDRX¼ 3sRGB®Îé pHYs  šœ IDATxÚì½idÙuösßË¥ö¥«º»ºª÷½{ö f°p€!“Hˆ&d.A&ƒ–CfPfP²EK Z¢ä!:LQa™¢,PEq È%$8`0 f¦{z_¦÷¥º«º¶ÌÊå½{Ïñsßˬn$!x ùc¦º*_æ{w9Ëw¾ï\úÉŸþ[PBñ""U (‘Sõª¤DL @Ï   @¡ªÀÛg b2H!€ "Ì,ĬbW*%"NS ¡øR%‚ˆ4+­fCT6Mnž€)˜" U××» @¢J¤ VuŽBPQQ ¢Dª¢ •{‹ÍöÚÄÄÖ´RWÇ.qìƒø T•ˆDUAªªªA]âB@@ÀÊBB *ÆJ R‚S"b8GD䈕ÞŸxýÅñÑñÇßþ+”¸Šc8ÇL_AB'÷Þk–åÞg^D‚ˆ ƒ@"&*&ˆ™”T”™  U"G ( À‘4ÖVÖVWØÑ¶™9rÄÄÌÌÄj ;N®¤)€ÔçÞû&‘8 è½”PVÕÅ»wΟ;142ï°xRg/b³ Ì s\2DêœÀÌåP0³ä8±‘#"—¸„3}Ï¢Ì\Z'…/Þ‡JÅ^ê³_rcï¡BÑ5@áH!˜Ç©z"%bQ$ Ö a‚H±^5!DûN ATˆIDÌì‚dõFce9¨Žoš™ÙžTkö %°s©ãçX_ÏãƒìH⽈ سið­Vkyiapd|óô.³ I’2©Í}ˆö¤ Q¨ œc"öy`"DsSÚ%«ÒŽPñe—D/RÒõå{§Þ|é±Çß½mû®ÄÁ1+°Ys(ADB…æ^¼Wï½÷¹ˆÙ"1GËÄ íÛì´ÖÍY•Ë6-‚fsiyiqlt|Ûìv—0)¡¤@Ô±«W“$Ið¢¹÷!5_RN:Qá¿@ŠÜ[˜¿pöäðÈÈãO¾£6PW@E@Dæ%‘ÒèÐÐJcÍV›ˆDƒÉ%(ÛFè3kpÌLà Û`s^Xºè†A*õ<´Š8W±`‚âV&IánÁŽE•6ˆZظNÈ%ˆ#VE½^¸{o$5ûâPš½|õ:À Nœó"*ÑBÛDq%ÄÝC¤€S"…’ªLÐN·½¶´X©V¶ÌÌ9J²LD…–×FtÔ‹C⃫ùœ,ËjO-¼’=`ÜÎq}šóTö™‹ç‚ÖªµnÖÕõF×b‘‡ÙU—rêœéú jŸŒ^P,4àìZ¢Ï™’r0‘‘¹tŠ·g.Ê|v¹ T¥gýí«Í~•+³78Ñ ;…šGÿ=Ë8ÚñÂé~wUþé¼ç?òU>E/ò`ê®·N8þÝü0Å0°|s(ßÙ¹ª ÀÅ$“;(YâQ@Ef†1ÈQ/²Ä©P1ˆŒþp¡4 ªJ\q¡¢k!é-…3±[Š¡;‰ìCþ©Oü›MSSå£5IÒò çÊqÚ¦°XP Cf'Å )²¬Ä¼¯=b’$Dd{DÕ"'»3Û0ª""¢yî‰(©T³¼¡®x¶‘ˆ1htü8"ˆ’*”„Ô)Șˆ•!6PhÈmõK_˜ª ˆ$gá`á€@ Æê½æÚ’K*õÁ­³;]Ra[-ÌE"À€†g޹V©t;]›°JšfyÁ«¦PE–ew篧•úæ™]‹Jò³ e>˜ÛgE¼Ò¶¢‚zµN,,,*ÚŸ<ƒ™KÏŒ$qvµå^ϼ¶¶ºðüw}dhhÐØ‘9›…9?&h'!¨÷¹÷!ú@XT™b°ùEs„Þ{m‚Z"­FóÞâüèØÄŽ]ûA9vf IÅ‹ªK\¥æ*IªP$÷Á{ˆìqÊp©LˆqûÆÍ‹çNŽO>õô;ÓJ ¤P0” êíÝPÕµf3nZR""&ÞT‹av‹™‰‰’b«D7f Å>´LQDroI'¥iÚít)DU3Ê e‘xfRT‰YI´øô"ð³l‰ÀD>ÏÖš öUfê:»™@Žœ'óëª,ȵ›,-E\­€¤H4¼Ïïܨ×¶Ì̦i5ë†n€«ƒá %r6æ žSÔhÑ,œ‡Žlù[4R…­îxmô$HL½”8a‚AkHƒÄ]_ø 3/Õšc¸Ì‡,÷ ªV«ÝvkƒËEL÷R‡2xŠæL)Ä £*lÈ¡û—‘\¼aBJ$Å0ö&ç6:*-oø¾¼°H}zhDñWíYóN¥ßóõcc÷%£ß’×}þ;Þ@/¿üÂc?åÒjxÛwŸñÇþ.§ÛÁö‹.ÄŒ[t (˜µˆ«xczÊL*Ñ/ÛXnŒâF†’ªD¤pãÍ—S *L\øJ%ôМ–ˆSw}ý÷÷7{ìÉÇ}»èkµoÆ™˜£/4|Á¼O‚¾| ŒEírç\±M”³=/S?²eÛ'Þ-4÷Þþ–ä¾ M¢yŽ7î Äœˆ(@ %€D †] €0˜ žÉA…ˆBhƒR¢„  ••y¬”&LÞgPÎ}Þ\[ʳ®ª NÎî:HˆÃ "e *biE}Š8¶UïT¥ÛõÁ F8RR•V»¹´¸HÄ[gvUQ‚Š1&‰*åÞ3¨l˜ 6ÛDH@ÂPA;xV$Ž!÷ãWLªp‰«&ndt¤Ù\gH§Û}í•?šÝ¾ûmoû—$pJHˆÁ(‰"û:ä>Ïò\½æyæ}0L2D ¬Ê° R å& Ýn7Î:ˆH”u;wïÞª×ë»ví%NO Ä9&‘ˆÉÒ4©WÒJB¢”ûy/AUÕ‘+c=b©r©"W/]¼}ëú¦©éw¼û»8aH4¹êÇUh../ÜJÄ ¡$ ËgˤÎ\9aÀN¬ X‹\@Ä‘-¶8‘¤;!PÐï3.R&LIZeQÉó,x…N«m_¾! 3@€‰cZ*ŽI”!R@¨Ú„Cm¦QdD–©dFÐL»A`†È™ñ‚*1[m%"Pê 'ĬÌRhRA,tôÜ EˆBÁ€p5Ü—öù*ƒöâf‹Ï·Ð)ׯ¾<5==»}·~¿[B’%8I ‚ZÍD@°!¶P‰ˆa‹ƒÄ쨒Y”þË‹ˆ…@¤,€c¨lLšµ@ÄT*B¿y3G‘X¡ +[@E-{Œ ­-¯~êÿæ¹çÞ·ÿÀ¡²ÐEP˜8XƒÓ³}§Í¹ˆ0SÌÉb°#°y«ˆW‘9ãè³Cïs[°ž¨ sÊ‚Nÿú‰µ%Î2µ$O…D©"Ø-2Ø Û6ƒX‹A<Á)paÒ,ïdíÎZcJR©×·Â%E¡ÈàW‹²¡e%UÇb«xÍõ6Ø  /ATEÍ[íÖʽ;.­NNoØ©ÌTE$IS€2ï%†?¶^BtíŠ*(ᄵÆÕF»°ƒ JÐ aç*Išpâw;Þ¹}ëü™¯<ýöïܲy†G†49& V(Q¨ÉrŸ‹äyîC°œ=hˆ#onƒÈ‹“ U¹7ÅÒÛ™Ïf¶Í¥IÅâBV¤† ¨ Ì4P­V’„ˆº¹äyf'1±• Šuä8"øVûê•·ÖÖ–·mÛñ̳ïá4a[Û¥'E´ ¨ÝR"™>&r$–‘Yæ³³ 3ä„þÌ@U…8‚œJ•j5Ë»!…úT) Íw¬ŸR±í¬ ó£àeÀ9Çe¨kæÁI±Ãbò ÚXõ€bp¡S¶!¦¸?ÙñæñêíÅV«-ª  A¤ÕXY__Ù¾}'%Éj£é}"öl½r}±ÝÉ¢u•Õûà͘ZTÆÌŸG›ì˜ƒÆ}ó%Cõ#¸¤1ÞJ[-ßçe6xÍSå’Ä¥ ‹ ﱋ%`½?Ù€&öý êQJê5ÀK™ °}K"b6of%),½³;'fAoÅõÖO §H{Ö»ÅÂv¢(,lÌû ÛR·o5:Z~®÷áø«/§µúÑ#O(¤ôv_Pµ%¨ªebÄD›4V¡ÑñQ¬•yR ?R™I Åh„È(¦èõld¨Èº@•ˆ›‘Bc„Ð7:ª” Ê„²EöRVj6Ÿøýüóßµwï!3w ߈ˆWŒ,ׇˆERFG†70sY9"8bÃá’„@_å6_h?ûÜ ˆÕ6Trß[cœƒ‚ Dª¬‚á?Jщü‚>)‚‚9$HN ƒ *+K ív @¥R©ÔªÛ¶í æXñ¥ÄQáÜc–)E’n$b¢¥åUƒzKöƒÏA,"!xºíÖÂÝÛÕúàÔÖÎ¥"šùàƒZV IÇÜÍ}]Mˆ*f·¨¢#ËCÂ¼Ž®¤È9¨¹nÇ‹¨sI¥’8f"V¨HðŠ3Ç_Yëù÷d >v+W "Y…N$|>øÜ«ÏÝ'˜/ÁK9M %í+˜—¥”n»uçΩé-›††#Š rì[„% Õk‰ã ÈƒdynA8,2>{ƒ•«««×._L+é̶ÙCGxvq‡‚8‚!–tÙrWbQ+la§ÊQ€qS3þLPØ™GÑÞVhiðY$¨j°}bøIQyÔ¾‚yDñ™¬Ò}$î«>ÌP‰ˆUŠ,ÄÜoÎËÔZB”uEÅ-z§¢j LT«Ô€¼Ïî.ÜrÌCÃcs»"ˆäÝà½1¬¸Ó̓D+™0½úG¹{{ÈgDÆ níUnâ=•*vJi¿â½wÚ!†î÷aj£÷žãH%MQét½¢c*Oæ+%·®Eaþ&†‘-dÐqzˆ99Ä ý¶Ÿ‰cÄmEUü)Ã[6ì #kü ‘"”‰³J(¢‚žwÑ‚ttŸõ¾/ìCP7ænßj\teeåÕ/}anÇÎCG±ê\¹ú9;¸&-«øF:#+ÌFØ‹© ¦õÓlŠ¿°ö`@‚eÕ "ÝPs.y½Òuoð¢Ÿ,¦¾x!EÁ¹òNÐZoüöoþÚûßÿ¡Ý{öÇœ£üôXR3` RÛJ¶jáúc™ÙÌ#Û—:GÌä˜Ù B¬U£{7Ìœˆú<ˆÈÀØøŽ„àjµJ»Ý"ô‚P7NjÞ{-Š-""=“`÷Av÷«r1*Q€»Ý¬µ¾¦ÚívâÒ abbrÓÔ–_ 9GÊ%ç jŽLdE`"v–â 52T[oe€ª ]ç% ´º²ÜX[ªÖ7oÛÉJ€¤ŽDDÍ;¢ÌKè½ùŠÕfG#ƒ‹ ‹´’G£8rãcCkk4IÊõ"ªh·›'^ûÜÞ½Gözı3ê’™ˆ !Ð=AòÜŸK潨¨R!"•E,V.6ŽdD.*\±Ä³8'h¾sç>ÃúHÕ%”8G1Ñj%­UUͳ<óE)… j"GpŠÚͺ+‹‹­V«^¯=úÄÛú7¯¥ÑL•V¿½pLªä  *Ö¨…lø-#2kœEQ)ÓoçPõ€€SŠ„%¹ä"A…¬ì³bl“ÖÖ*i(©D‘t“<óäEZòi ¶ìmIGò±@E‰!0*AtH°2€²;ʼ@9Ëå­ëËÝvkue‰ÛºmGµR!py׫­7ª0‘^¹qÏœŸ*KLN,ÖW¡ü·– ƹùRUƒEä±òa5V'0Jl$ñ±# "1= iê*^‰RB"*"ÎY(C5ç’„ƒ„N׃¥,?ZlZšj""HÉn1zYý…˜·FàZ]‘ÙYaÅÚDÌ΂‹ÅrTGÓ«íQÌÄ]ÛªSîKwâpáÒ¸W úÚ¥Aí‘EË„²|X‡~šŒö½ó›õ‚Ú3ßk+K§O½Ùj®?ýŽwŽN(6|Ùƒ^ðÀfHÉ/í'V|)ñs*Æ1æ<Ì0À$A¡HKp RµÔ›˜YE”k×Ê ¹ÏMF(¤E%D`é‡9Wé´šŸüÝßxþùïÙ¹s¯Š ©+HEÀAÜCEmÕKTø*ƒ¢2@#f0ƒËä¸g †H9žÔ*P¤ê’ȇS@DU]o5Ñ—j,ÂçÝ"Á¶d)a 8…" ñ!ø¶HhµÖ»YæÈ‘ÁÁáJ­^I«›Rr)¤8)º˜å°@Ÿ¢,ƒØH‰é«ª½výN€,¢$A‚Š4+k«KÃ#Ó3»S‚PD‚ ?”‰…™|´’ à}Ž˜»‘}ËØÙð%@G"QAP"0»JÂDººÚ±> ¨"zº;åêùcO>ó¾éé- 'Ž{¼íX© XÞõA$„,÷y™FÆ#¿)ц‚>WîaŽöB¡yÖ½sûúÔÔæÁab±*‰ãPQ M]¥šÚÍ}žy ‡‚ªÇ…Q¢Òl4ò,S`|Ó¦­µºž"B¸±Ý£n÷ÓtòQa…±°)b—$ZÔœ#",^¹¥Z©QG20Œø'Á6K¬j$‰ ,nT ©y2æ‘Ñ{Õx‰‚É•þ:fe‰¥S»XCZ©æ¹OÚµsóõ ­·3%Ç÷Y¨h!$€ª\o´—šÍŸgIRߺ}W é么ôTA¤ƒÕN+*JZ0´p*Zr’À4Vô¨}É–9«áC‡cv+m‘A`†ëÕµv[K6¸Q IâRç‚„,óVªe°FA‰Šè}¡Þo ¥@"{ö‚z„y)Œ"ªÏ&  ,ȤØ­ß§v *‰Ç l˜—Ró´ܺçÔ¯™™=´ÝÏm}+`PvÁç‹wïœ?w:9täèæ-³äèþD»OeÑŸ6ÉE™E˜]¼I) i¦Æ÷ÙN¾/%2‹´ÁÉ+ŠÝQ`Ö1ªT™ žÃK1KóØ,Äà̰ ²Î§ÿ·ßñÌ»wïÙ_˜ì› $ŒcÖ&Žñù1TÅÙjS$ /¦¼U½?úHq !„B)g4*£ÒP †QË8TDIÛçBU_ødʲlié®MUžûZ­ÆÌÎ¥ccÓi¥ ˆ¨2'Ô èŒÄT¡Â “e8* GPe§â™UD@LìDÉ©ªRe—äA„D‚!,Þ½å~dxtëÜDx‘ÄHK`Uˆ©› ‰sJ”g b넹Ø>ÑÜHTšf—:g\R¡Ëk $žá‚œ;þe ÝçÞÿ‘z½žD… ±ÂC¹ø ÆÒÌónž‹(^$r|DBJý¼>l´D€ ¹º´Þnl›Ûá\ÅìCBäC,Å9¶b ÒíZTÙõí«¢tdÉOahd„ØQa€JMUÅ€[úˆ‘8Ø“õÛBIyèm?b N HE{ˆY´Y–Q QßQxG ¤^huÛ·ÆMVÐ5ƒˆm¡b=cÃ#Ë͆ôèþpÎ…à’È›+òH”,!t²Ìj¨o]º£$Ê}ˆ´U³¬½´¸@ÌABµVtI¥’’sÌÄ!h–ûSPª­®wKº @­õnÄšÔÊ3 õ±ÔÅ\§PiÁ.¥êFÊÔÇã08Ñ9îÿ)MX]o¹­$ 2ˆ'ŽU%Ï}¯,d^ð~pI AMψòc«ɨ*«IžâdÇj.¬LËŠ50^È®”!—c¾ÆŒ`|`Õ¯ãÌQ‹eãUïw”ýúË„÷p,!Ó YfuuõâùSwîNNnzøÑ'ÆÇ&Á…²Œ¸1Ú ß(#µèI"%˜˜Y ‹«VDP£ÝRY—Ý€ "æŸTL[!ié¥ÿb©  ÙÄÅj¥[ÙÞ†¡ñŽ•H Aü¿ýÄo>úø“{÷?´1)G!q) ¨‘iñzQ@J‡'¢Dd:C.2ì8ÅÚØ÷¹OÑLf¥%qªŒéÍé'ehIP!‡¨ŽÔr ¡“w›Í5¨v;Ý4­æ¾]¯MMm+|¹³"¶Fê;©:G%8CƆ5i ±‹$$q/Yúr–B5XT‰(ˆŽ T³F3˜B^%Ïò¥{óò©é¹Z}À‡Hü` óÞ9ËcØr û&¤‰Ë¼øàAL…ÐDA/ÅñI8a¦Š#bVcÙ†, Ž·ºm”H™õÕ³¯}~÷þ#û>ÊÌŽ9j`$¸ZðÜÄœI'Ï¢*P¨ˆˆW¨4„`4$¢l³öDe ÁÝùÕZ:³m§‹É’…u:Vœc/²ÞÍBˆ1<3+À‘@B寰 V­VÑÇSEŽR¬¦ {[]€é—¢—/dE 5\_b`nÉ¨Æ ‘¹s RqÇºŽ™CÙt‡0+´›­;G¢Ž‹ÊÙ}6BU;K=•µÙj*Œ •J-÷¹rBe`ËQ²L‰Êò"C”Ù™óA¬/9ÚíF§½žûÌçD«µÁÉ-ÛY-޹ê*DšIÞÉ%“Ü k­\ûue$ai“ÿ¨7âbÊ0z«èVâŠÕB“GqÄeCa•$È”À¡“²u“)rlVÀÄâÕ6D¨TX™ãD¸Mý5*R;Õ€HjŽv#z‚a)‰‹uA E"‰ ·QÎ1+±2”¬]æÂ10&©ÑÚ•¤\…¨s® E(Ȥx%à¦ý:ú9íó‘ß!…Û3æãŸ5)Œåq% ëvî^¿veue¥>Pß»ÿàO=£%XÞ©H_7=-JÄ$d" Žú.‘ņå¨s¡ÿS*¤„ª\8‰sK›¢ÂÁ2£áöPh-íŽFEF\ DJŠ Q.ŠPƒõe…^ þÝ¿ý­û>ü˜ª2EÂZ¡rWï(a¸Ø@a¤lE`K…`YiÔUµd2%\÷Šd”#„c]%J³­ñF„¸ ɇ9|M@1D`5õš„n7kµZ¹Ï4Hâܹ3Ç]ZI’ %ªÆˆú:Žôÿ¸,ªSÙnešOÔ׋¤¬åôÂ7;!„ L,*L>_\\ÛT©TïܺFluŽBšO©‹±j ¢–’y f•úD2u¤{ÇlR‘ R¤P®/æ²ÊYgýéw÷Ôä4;rLŽ5‚(+l&Ê$÷>÷>÷!„‚Ò-ð*>&º¡„ݬ¸«\…|ª!ܼsubbzhp8Mœs±Ç‡TÓ¤š:%´³<Ï|9Îqä‹8¥ßöškô¥qGeùÙ6•µ·˜…0q„€‹ÈŸ *ˆ±ªÁçTô9Q+YY®nVÔ`7)Š£DÊìz•¨"#Óј. ð…ι^=\‰ˆƒ†  çbq؇ˆ3ÄK ·*ŒœEL “ç…ÀœêÍ[·9q!χ†Çªµá‘J8¶Â±bk’Â9‚Šä™ïJ BÀj)‹éQ£s-¼B\ê¡Àâ îLDKBAíme%{“ù&I’º´Ûm±ÎÌ.V#½ÖpH)œ1…ƒ”@y¥’‘Ïó¢Šõls_.¥ÑžöR00•Ц%¦g@ĨËB¿®¹ØZ½ìN™÷ô`ÿ¨Â2E3[æBû”g¤J!(3‡¸÷a=1@YŽ‚~#‹}ë7STP·½~ëæׯy6mšÜ¿ÿàÐÈhR©FIaÒŸ*º/«Ÿ¶JUÈoÅ}¢ý´X@#£NÌŠÍ?Æ ˆX Š M“B¥Ðö'©G.G¸J…ˆ.ÂlÅd()ÿÑ¿ÿä–Í[}ìáâ“ûbBt½ÑÙ³›ëµ\¢XŠI J IDATÒxve%8þ¿´½!ó‚F?,[LÜ×WÁFe+Œ‡ K‹wEáØqšŽŽ%IEI.œ>}òͯöD‘P°ôO‘ÉPìÜc§ô~Ù×NãÁ÷”?•ûåõ²¦½‹úhmE}pÑ÷ݲ~HlC ÷Q0º£þ†€~ÿMOmaçJ¿Íu(0U A|Ý<!x//K‚„`ªÁ4Jœ"1(ûcD‹à½Ÿ¿ùÖ̶]IZUÒ”­oIW¯’c—ù¼›…j)ðŠå=c6˜ýå>†¤…ùÎ%%ZÜ_˜‰i>HT•Ù‰ø’/™$ެ“¤ Â£@ 8¶8³3PHlâÅD^"díý X-ŠqÁD‹;¡œSíg™÷š¡€Dà8Q²9!P|(Î颥Y,R†õÆj³¹’ºŠ÷ÝJµ^¯×FG†¶nÝe¹¥€Nœ³¤ÁKžÃ£MËt ‚3‰Q0*Žö¤ñ÷7ñ)ÔÊ`%´ EŽ^ÎWQË,ÅÏQÈÊT«%YÇĘæN"‰Ùq©N`¶zjP)+—kžåO»gqzÀ~ÑŠ BüÑ8Ǥ³4Ù·2‘2„8²~ìNl‡PsƒA‘€ÁJÄŽÙ0óxŠ>8µhP¹õQcÊ…°š­Šéœ“ %YÆ9§*!øþ“E_ƒŠÂ½½ÿç'Èœ>q¬Ñhl™yÛ3ï¨Öj(ªž1Sì“?}í^kEp.er£ÑÙ—Æ”J mÙEEž±7‹– ,µÈ¤Ùv‰E jOLû ´ïQ¸ Ö>™JPR•˜‡¬û"-‹‹Z…$ùÒKŸM«•·?ûêÛ¥7!ŠMÔð÷æ¾ß”&‹í’¢ðdpWŸ³,ƒŠÅ¦žüZuΕ¾VK5) I£±Úíf!(6MÏnX´}QVbUýð‡?ü}ß÷}øö ð©O}ꓟü$1UV5 )r;Q%Õ‚÷¾›çÁ±\DI``µÍ¥²SãwõmOkÿ´Ö×V—¶ï:@€#8"“2£RISG¢Úju‚ˆ#6àL±:S á£Â– ƒÁNc2ª>ÏNŸ:qûÖññMÛ·oóÍc›§·Ô«.uËKKG~¬V­m5%B©¶WKÕXѤ‘€D`r~Ä )Á R P–È“7 }q"m  (‚"a$Â’¢­hŒ¡…èœMÆf`4! QÚÈ`R•özƒNËÀŠ,Ï&'7OLlÊs¡RB&¤Î\ ˆ‰‰“ذU!T3Ÿ‡@bx16µ©Q­T³n^² # °î Žmr#ß. hÕXôIae‰t_d-6 Jê ª!ón°`Û‘ÂÄ©sBÊ€czíËŸyõKŸùN ÷ÿÿWA!昩~Û‚ý¿öú“?þƒÿÏïá§êxß{ß¾Ô³ìáõÅ*‰K+CcL‰‚•ò’Àiº+¨XûŒG}ô£ýè·çÕ^W¯^ýä'?É· ª^D(’¬˜"y<„n7 QXbá’Ć6ª¥ºó¾,Pdmi±›µgæv²Â9rŽ iâ*Uh'ëú<ªã7öHD™@|Mšª2%¤ºÞ\½qíÊÅ çnݺÕl¬6›ÍÁÁáC‡ŸxãÕ$uùzk]Çßxí×^Ÿ˜œ˜œ˜008X¯¦•JÑP’Dåyxü¡¨Ÿ•Ñn¯óƒuvb2*Yà1E&&W(J­€‘^>U ¢LTLÔÁeFî×k «t¢Zh|`´È9ÀD^„%…j±m© ³yzQÕ<¬‹¨šKûóUͽ”*ï2&-2R)äåå9’ªV*¨ÂVÙUí`"˜\²–—›qÐXM4P­´ó¼Iþß­–ml}°›Ú·_ÿ‰/€ |‰€fŸѤ^RUe“Zr %cMQîïñí‘í+œ@T‚F.ªBÝnæ}(ºó‘ )UÓKHÑ«cƒ9ž~ ê²pçfµZÙ¼u;‰cÇL¤ì´š&‰£àóN– Ì®ììWž¡Qvix ÚÓj6Ïž>qáÜé›×¯µZë ñ\Ï G½U¬¶+õA÷¸¿4õÕÓÿá÷VÐû[ùÖþ­¯5šFv#вqß^IZ!hðaxt¬R©T«Õå¥{Íf£üª‘Ññ­[¶ßº}mueyËÌÔðÈØ;7zhïÁ£Îú¹Sož:qlphä]Ï=ßnwæo^?}ú„Ï»³³;fff²<ˆ¨Þºushh(­V:íN»ÓY]Zìæyš&Á‡´R‘`ŒºÐ׬¯ Y´6é5\’ ŒŽO4k{öìK*•æÚÊåKo5kÓ[fºÝN{½Õív¤)ÄVñˆ«¢¾‡rËGUß}ó\vÔ»Oò[Œg4QÒT2‰H¬3O_%;v~ï MîSj–ŠV”a_O9Tø½ŸTöŒLÍJ.H/›ßÐìE#q½OWºñŸµñQ«R0Q¤j!)5(EW:Û9¢ rÖ«‚¿~ÍŒÐðMî+ÿŠj–åyžÇ†@±,-*°VœRL@o)B‚•ž@N)ϳüÞë›·í¬Ån hšrš:²,Ëó<.ظ9þL½Z·º¢q•õ¦o7›7¯_~óø—/]ðY>>9õ̳ßqèðC;vížÚ4U­Ö—X·WçøÄ›o|úÿúÔî]{~äG>ú3?ó?þã_üŸ‡‡†>ü—þóŸý;ÿÓ•‹ç/_¾têÔ©¡¡•奷.žŸžÞ¼ÿ™m³ÃÃÃgΜþ‹ìsï—ç~Ïž}DîÙïx¾>8¼twþ /|f|bêÑ'Þ>:6n:¦‡µì4%TÀcS7°‹E‰¸¨ôíY³n§ÑXMÓêÐÈ0!ñQ¶Íˆ‡5$ˆy‘ËóÜÜ„F5¦ gQ "!&JÓÊÀðàÐàÐÜìÜøØØòÊÊ+/¿täè£íõµfkýï~¯ÅjÕê3/Þ[øõù+<òØè褊ܸqõرWËùZ^º7==3³u¶ÝjÞ¿57·srrúâùs£cãc“›}dueùÚÕK'¿qàÐCSSS:{æÔ×’$Ù²e&­T«õÚ–m³'O;òðãµzíæk_yy!M’™™¹ë×®íÝw¨:0ÔZo\<{zhhhÛì—$>Ï––toiñ‘GžËºëë«/ñOöì=@”¬,Ý9}òÄ%µÁ<äíN ЊK5ö2„ž)IÒ4ùf ’$#c£Ýn{þî]"J’ÄÚ„Ѿ{»N§ ç(Iˆ¶ÍÎ,,Þ9{æüÌÖ™JZ[Y]^ZYTÕáááV«U¯ l™™©ÕG‰ÙgÝ<UmµZKK÷*•tÇö]ݬ3??Ÿ:7PXm®v²l 6çˆT‚Ù‰†‹1ò=¹O+ „>Úpõ‘w¨ß/&Iêí‰>/800´¾Þèÿ¥¨:-NZ¥(7p.„à}ž èeo$#YÏT²ÓÀß ì_ðŒQ“("ˆp¨öBÙ³]!b &ž\5·±‹n  òvs­±º¼mnwZqfŠ˜´VM™!"íÌÉMˆç\¹´×-¤4Â"ríò[§O¿pþìz³1=µù]ï~ïÍ×ì'þÚÈðH­Z«$i’&ìè­KózôÈ­ÛóûZ]müîïüÖ÷|èû?÷Ùwóúµ‹çÏœ8þÚ~ô¯mšdÚQ¢eó3˜/6ƒ‚ˆÔމ”²@9ê0B¶x÷NRœœÚLd’#u”2ƒcÖ š{ø\BðjÜ« äy*bkmaвµt‰ˆs7ƒAIâ|îYQI]ˆ@…;Z#÷Šceß Q)ÒßÅŽÕz+Xö+ƒÚÉÊFAŠÝ5jiš‹æ¡8˺ªÄHŽ3©.»(’ëk©s߯­×‡’JZ©ÔÒJ5­T“´š¤i’V’J¥Z¬VkiZm6W&&7'©#&@BðÆŠKÓÌûîúzæóúÀÀê½ÅÁÁÁn·;04¸xëææ¹I¥š&)1‘ˆït¿ú…Ï}ô±;v,//ŽŽ‘"M’J¥šV*œ8&¦$%ç\’sœ¤Ž@ÌÎ1”&†Ÿxøè½¥åÿú¿šÛþô³ïøßüþÑŽ›ÞÐ:æ×j»÷ì½zåÊcOn>Û¼yK½>Ðj­—‹—T¶Îl¿zåÂòÊÒØèøÕ«—®\º¸›©>0ØZoŠè•Ë·Ím¯Õê““›öìÙwöìé;wîLNl"¢$aW­9úðñc_}òmÏLOoyâ©·UÒôîÝù·.œ{ôÉ·óÈøðÈh³±ê’¤>0tíòÅùÛ·,ú¼}ûÆÜö§N¾Ùév†‡Q­Õ  "/>ϲàýzcÍM8ü9yìõkWßÚwða—¦µÁ‘ñÉÍ›ÏOn™Ý±çåÏfhp¤ÛY?°ó @_=ý €ÛöŒ ŒVˆ[ÝÖÙçÞöä{¶î:V«‰#êtµÛzìáÃ{íùëó§˜xfÓÔ­{ ¶äž{öïç{Ï>—AµRåz%©~Ç;žÞ:7ýC?òƒÏ¿û½;¶nÿÒW_nµ×ÍÙ4GyäïýÂ?ºz}ñ­+×åæÚr·Ýôy&Áßž¿5?bçÎüà÷Îßšùå/íÛydï¡4©¼vúõs—.¼÷Ùï8}áôæ©ÍËËKç._˜Ÿ\Xº»}nÇcG_X^øÒ+/íÞ½oÓäôüü­[·®îÝ»oóæé¯¼úêÀÀÀ`}`mmuóä”Ïý­Å;íN‡™>täÜÅ ín§Ü\=ôè±c_ÝØöû÷|ãØWûÛâ‹ë¢&=$/>„ ’¢çÈDÆ[—-u„¾YÄüÁ&îß@=ó§ k°ád)úâ¿¥WýY^È¡‚!Ïó<÷ˆv˜Úè‹BK¡ÑÜK}‚RïÜ•¥»!øÙ¹ÝiŒïQI]š ínî}ƱŸØ‰Ì(T›&°Õ²Ý®Êü­ùsgNœ>y¬¹¾699õÄ“o{ü‰·mß±»ÓiþO>;73W«¦ë­Ö©Óo~æ?|ziù^»ÝžÚ4ý÷ÿþ?|ü¡Ç{èQ"Z__¯Õë!„Çüù‡ÿù¯ü³Ã+ùßùíß½~ãÚåËWïÌ/Žþïÿì—Þÿþÿ,xœ>}zï¾Ý7o^ÿòË_9vüÍ}ìŸûÜŸ;{üÙgŸÛºuZ}võÊ[üÐ÷_ºtiiñÎÊÚòÄæi•‚nÊÊ”ô5ÓrEjBª”Äó6‹YskUò{ w‰ÜÖ™91ì\̆íÀÅnn'®X&îuÌ!©„ˆ¶•ñ¦JìVÕkr®=°ìU}LƘåNISˆ‘N\io9zÙ6‘;cÔÝpРuä$²&œÅ÷ ìUc[1q ÒÚa,v¸—ckVXöMT°’$Ϊ~ |äÇÿÆÀðN& ënsdܽuu˶•Z °ÄY\ðÍ›+“[f‰¹68°8»Z¯oݹcáÆ©m³ëµ‰-3Í奩¹ÄÐ DzûæUQÙºmÛ™Ó§ö<‚O\Rj/˜³cÈ[ìãØ¸Âä˜vnŸ­$îµ×_{ý•—ôÇþëßûíß|î=ï³6«D ;R½6øøOÿþ'þu·óp­^câÙÙ.œÑ7\]]Ù²evxhtjjëÂÂüÐÐðôæ-.œ »÷쟘\YY §N{û3ïò.™œ˜Z_oœ;fÏî}.Iœó•ÚÀƒ‡¿úÊËO=ýì¶¹íçΞ¹|ñ\§Ýpæä±Ã=6·s×É7^½woq÷ØøÔ–ÍæJðþðÑGN{}zËÌðÈH£±²¼¼055Ãlí=çoÏO2ëÎ{¦ ΋âÔ´Ù³Ûw_ºpjë¶]Ó[fO¾ñ%b·¸º²ylº^hu[,J}È/ÞzëÐÞǧ¦·'i½^Ð,ÓЪ¤vüKÿô—æoÝ>¼}ÿÍ¥yø¡C‡ÛûЙgCš¦¨Vk\{dzOíÜ3÷_þWåრVjŸøƒß[m®† p‰{î¹÷üøý7¯¿~æÎÝ»æZ³¹’w[!ä>óç/œ¾}ûöüÈðú§ÿä—Ÿxstpxu­qöò…±¡á„·îܰf*³3sç.]P5›k?òÄ•›×¾ôå/Þ¼yýïûÐé3'¿ãÙw¶ͯž|më¦-»wíº½0ÿO~ñ[Y¸÷ê_¾|íÊ}å Ýò›%KZ4ó½pîÌÙSo..ÎתõC‡z쉧vìÜ;4|òø±Ã?Òêæ•ÔººÈpR$þ kÉdGPš?66:³yòÖüÂÇ?ö«ßý½>öÆ«£ã#Ž<̱u— yR"Çiê><ñÂô[Ï=ñäÛ½ {ö¸xñ\ÁUÒÛ·®¯®.ïÙspÓÔôz«qûÖµ;öÎÌÌ]zë< s;vïÞ»ÿ¥ÏniqñÜÙÓ;vìti²oß¡·Þ:ßh¬=wúÀCI²‰²n­Vß¾sçW^y鉧ŸÉ:m¶®¹ªk+ËçÎè‘'§·l[\¸}ðБ¹í{F‡‡_þÒK§NWàîù;wŸ9sÂûlyyarÓ4b}™¸}û殽EÜðÈHk}}½¹¶´´8:ºÉ¥)‘nžÝùê—_\\¸ã½Tj#Cc·î^žowÚÝn[”®-\ßÚÕõ¶¨pÞå,w©{áóŸá />ûÐÓó‹·W«&ÆFŸ}ä™[wîq’R¥– TS®=²gzzü'ê¿J븯#Mœµø˜Ú<õ3?ýßN}é¥×Õvg½Ýmv»B§Ó>y☈üÜÏý‰‰ÉŸýÙ¿µº´Ün7WÖ–ªõf»9´çàòêŠç.žŸœœ^k®MOMeǼ´²¼¼²,>(ÐívîÝ[¨×_øü‹÷V:øP§ÓZXXü»?÷óÎ%woÍwÖ[CƒC»fw\¼~ùøéÛff´¯÷ä×|ݺukƒ´Ö((´ÑF›Ð0îo÷Ô3ï)äM±¡‘ºãig ÅÅù+o}Ï{ÞóÜsÏ}^°Ûí~üã?vìØ±cÇ.]ºä½÷ÞŒŒ|MïòÒK/ÍÎÎÒƒ€Nßë•W^™ššrÎýÙ;"zá…¶nÝúçºê¼^|ñÅ^xa÷¾£›f|æ»!·ÃGƒŠÆ€ÃB *E7=êo +ŽHcˬ0ýòøääøØ&vÄŒz%I«‰ív7Ï<±RÄ­‰Ødm}b bnݸöâÿûÿø/]<;½eËw>ÿ¿ô?ôÌÛß9;·slldlxtùÞßþ­ïÝ»÷áGOˆ|ž=ñÄS?þD»ÝžÝþÈ#‰È/ÿò/½ë]ï¶Õ“ç¹÷>Ïs€ÞüÖ¦£`HQ_´meGZ Vò *%•_U5÷Yð¹Ï»—Ï¿~ü•ÏtZ«[·ï'J £aâèSíðÓâPs‰U1]Ô‹2Y¿C”Çq(ôæõK7¯],Ÿù¡'ž©T²<ר3Ö„ö±¹ö­Ë秷͈4{ H;vÖY›X[^¥ÄÝ›¿569=84`ß94äããSƒƒC w}È''§+•êëW™Q«Ö/]º$,-ݯ att<˲Fcuuuelt¼Z­»¡¡af¾tþì“O¿cfÛìÈÈX·Ûmµ[vûÞâÂCGÖVVÙñνû_}ååÆÚ²ªn›¿}{çî}•4]Y^Êó.;700äœã4½yýòÖ™íIR9ùæçÏR`rÒTIäœsI5­ÔNŸxuß¾'rŸ/ܹADkÍå[÷-®Ü¨ ¹´rgéæÎ¹ÚHâ˜]"™Àç"Új6?û…?Ø9³+˳³×Ωj’$ßùÌwÁ3%®&Ci­>³yÓ¦©‰_øweaivëöÓÎ Õnܽ­*»¶ïùÙŸùÛK k§Ož]o6š­F'[ït³üz³qüøëIâ>øï]\¸÷þê¯vZëKk+>øñ¡±ñáÑF»¹id,Ë³åÆŠÕ¡ºuó–soÊò̋߾uGžå§ÏŸÑ›×Ož=99>17={ùÆ•ÉÁñ=Ûv,Îß½wóÖ—¾üåµöúśמzò)b¾qëæ¾»«iíÿæí½ãã¼Ê´ÿSž2½ÏHI#šÕ-÷[¶ãÄq§ÊRXR^²°Ù,e——NH–„MB H%Åiî½[Vï£2iz/ÏsÎùýqfʲd¯þðGöȲüÌóœsîû¾®ëOÆÿt›øKkûÚÕ¼µuŒGÀ1Æ›t„5üüq¸ïRBé¡J™„¡L!ùt"þþwŽ'žx¢¶¶v×®]>úh{{ûg?ûž·° IDATÙ?Å€B¾øÅ/¾ð eee¶ŸÉ?ÿö·¿ýï|§££ã=%æ_9 üi4åÿJƒTQh.¯0JÂE– `„ªü<ÁiO”ƒY‰¡ÃŠe .oJÉÜÌxUU­¬‘!£F²,Èò9EU *BÅ(Ì’#,ºÏ`„¨ÃÃçN›¶;]7u¯\µ®¬Ü­×ê$IÒȲFcŒ&ò±=7^ÿîwObA{÷]_²X,kÖ¬[³j pR.CnÝze.›+(J"Ÿ› „B ~ÿìììŒvæG?þ~¡Ïf³à²9¤Åb©««koo_º´³¾¾¾²²ÒjµšL&­V[<‹¥ .\¸¸÷7çü3§NZ·q«¤Ñ=üN¾PظuÄ3Ä¥€ÉR;…E„ªBʙ߀!€(  ÈD%V#¬pÕ0„™t4:ÐÊ%½9“JŽôž…˜B¹ #Œ8¸ªX?£R Š@FÞÍÒä¡6är’`¡P T1Rr3žÿ€r©PÒ舒SK!±QÖ¢LÖàp„çæœnw<²8ËÁ`"49íÅÀA,TÖÕM 5t.Õê ¶]i7›¦ýs¹\C„ F°”IP¬ÝÄ <+"„‚.›Ååt¼ùæÞ`0´û¦+ŸxøÁÜx³V–yv2-:[(ªb1i]ÚÕ~©ëäÉ#7Üô•ËW­››-(Ê"!‰èuF›Ýåñx§¦Æ$Q.+¯ˆE#¹Ù²²òú†æL&¹0ÌùÍf Æ‚(1o]‚0Zèï¿Ôյ€1„°ÂíNÄc³³ÓžšZFSUSûÆ+/är¹T2qæä±æ–6ßäøìôÔŠµ Q ‘p0-”WÖdÓiÿÜL"‘d­Õf—D BX¥d2)JÚ¦–Ž)ßX6è½à(s«„(…‚,ë**ëÎ{'‘Œa„³¹4 —ËF“ÑŽÆõ„*s‘)­Æ˜ËçSó㑈h±º\ör‚   gè|>ŸMfR³ó>~àk¨Z‚©&«Y«…z–µƒN«×}ÿ‡ßMÇ“kºV9}$§ä炘,Ë[6l¹pº7_ȨŒfI>GRP()¤’ÉžKç4íꕆúG! ©LšŸÙlf`Ь3Ì…ç5²ŽK< !élš;‚´²6âÁp,¨‘t|=sØË»Ú—OŽÎ-š«–C•ŽÎ†‚n§clvêÖÛo5¡T^<ŸÍö\³{hlTÖh?FÛcï,_¾þs3,*æx9¨.bw)ÿ"°È],zãÔh2 , øïôòF–åO|âÇ_±bÅ7Þxüøñ—_~ùñÇÿ¾ÐÙÙy÷Ýwçóù/|á ;wîä{õW¾ò•ááá¯}ík‹å›ßüf>ŸÿÿøéééGyÄår}ùË_>yòä·¾õ­'žxB–åÇüñÇ7›Í>øàÞ½{Ÿyæ›Íöýïÿž{î1›Íýýýmmm.\xüñÇŸ|òÉæææßþö·/½ô’ËåºÿþûËÊÊþî½pцIT"Š<á‰Bøü‡”Ô1—j‹_¸¸/B. ¦kΗ•WÝtËÇÚÚ—éõzY£1èôYÖȲ( Adæ'}§N—ëíëÑʺζå±Php¨?¯äTUe%±z4™°™¬«mdjÂf渠‘åL6£* Àf³‚sÀ\>‘T:­‘¾þž2{¹Æ,êdVû¦Ft²®ÌnšlnZræôWyY, øçýÏ¿úü\pB˜/äùHÅétÎÏÏÿ¥åšPªRÂÃÔ¸hC¥ä2h<ñ¤ðž±S.—óO 錖šÚFQ6ø»ë§?; \¿~ýš5kyä‘ýû÷ëõúxàÚk¯å_së­·Æb±ÿøÇ&“i||cüÈ#lÚ´©¶¶VE§Ó¹fÍš¯~õ«ðï|gß¾}333@àØ»wïo~ó›_ü⣣£?ûÙϾñolÛ¶-“Éœ={vbbbddä±Ç;pà@OO÷ϾOÕ(eLŒX¡@)c„Q®Ì¥”§ˆÐb[®.iå)_@ˆ"‘@Ey…( ¢(" fsy•)Ä‹«Dz)Ug§§Ž9077]åö|ø#Ÿjjn“5² ²¬Ñi´F½N$­¾JM½þÖáƒûŽMNú7mÞüå/ß³¤¹##ƻ֪ªFB¡S§Ož;w¦°aaþrY|E…»¥¥²²²jIÓ§Æé*³Z,¼98ÔöÌÙX<šJ'§§g6lÜÔÚÚ {ì—wÜñ9I’¦¦¦Nž<þàƒÎÍÍa„uz½V«5 z½A’d,ˆñx¢ÖÛX(ä_ûÃo-6{eUmIýÊ B°ˆN(ó  ÕB>EãgIU¡œR[ºK¬ÕwS€ZŒ%$ˆ3ÀyË”C•!´„3÷PYÚa‰õÊш! ‹F¾R”ðñ¥äiÊrÙì`ïÑ¡Þã5ÞÖ]7ÜŠ(•Ñfw]¹ëSÉdÏ™·%Í]Ë+‹cQJús"¯’¿BÄæb !Á‹êÝÞIѬ‰ð"[»ôn¾{ûòÊgÖÅÒª˜ªäsTU5’†2C´ Dy¦6§3º°N']•U…\NÅêúÆ™±‘šæV!À°Î[ç0_yáùæ%ͰùH¤4ø+hø'óO1Æa„0Š€UwEYUEù/þóÁš†%428ð©ÏÞÎ'‰<0avY´ß U¡ÕæèìX~áüÙå+×èˆný›G†ûc…B¡Ô+bÙLZÖÊîŠjUÉûggš—´9®‰‰Q“ÉdµÙìvG"Å"çΩ¨¨,/+$±iIëøØH à?{æTײ•v›]’5îÊÊãG®Û¸Éh455wÔÖÖôõ õR˜λ«<ÃËV®ÑëõC}þ™é\.;ØwiåšM+WwŸ:¾?•Šùg'DUžZ›£lbl ®¡Ýb·o»úúÃû_e€ùÆGj9È+YR¹ôKuV Òë Ö²`40à›j®iЧ£“þ$àù@ °0÷ì Ï•9œXÀ¹\¾£¹}Ëúm{¾1·à)Û‰D⯩iiJH¹@Fe—‘Ï#Ñ…BAø:J&’‰h>_Ðh´µÞ%¼ÓB¡%ËÒßQ^΃¾S]]ý>Å2\^žË«¥R€•*Aâ‰Ï‚”#ŠÃ'È DN'"f£I¯×J¢!Èh6ŸCE eI?ÉçBeõÎLNœ9yxfÚç*«øð?|º­u)IdI’e­V#‡ƒóCýcï=î¢×ëÝ´iÓ·¾u½Vc"TM%’œÌ•Íd.\8ûö;oôõ]âVF£Õj?ûÙ[!D±Wï‚ ‚# !B|¶üôSO8qtp°_£ÑÜtã-ÕÕ5.g¹Ùlƒ·Þz{MM­·¶vù²å;wî0 åååccsssÑh$ŽÌ/,D‘H$2Ÿž÷MŽÇcÀ Ï>¾}Çõ®² ³Õ.J2` †Šu ‚" -²©ä(¢„§€óýÄ¥„oo<ç"¨Ò×€2·c)¤¥ÈʪJ¸µC ÅI^i[.b„å¡êÊ]îÅØkÌa„Ap4Nõè=N‰ºjÃÎx4ðÊs-]~…V£w{–ÌN_ ÌL4w]ᮬ+F°¾k\GV ï.jH!ƒR ¼}1Œ Œ!  ¨è)æt@âD! ªÍ;\勸ßRE¨,fdÕZ„D'†zkZrù¬ˆ…¢¡Ÿ§©S’N$ +FØ`µ2Æ‚þ·ÇËÐ v§3Y®r‡C«_Û¿ÍæîÞóçDQT(Š… @AÄ0XÀ€OE‰ÊDAà_!ŠBS­§Ï½òê+Ÿ¼íŸ_yþwW_³K£ÕHAQ¨[Ä`2€ÐbÎ;à*zEw÷CÞ?åonk¥êuë7<ð7Ï­”P•h4OM}4õO{j¼‰D¼¯¯§¥¥#•N+Jç2ƒóÁà|EEe…»rùŠUã㣣#çOë\º¢¬¬¬¾®qjÊ÷ÚËÏôƪšZ—Ó½tÅ*»ÃqâØáñÑa“Ñ’/äê–ØޱáAn_XðÚÿú²UV­í¾pîh,ž0®ô4huÆ‹çmèÞ•Jg!ÝÝÛŽ9œLÅ & %€1&k nwÃðÀ©ö®Í‰Xhpð$ "xñÂÛ›ºo}­±Ål¶¤’‘|!Ë“o1ÆzU% !J.ŸU•B^U³… £Èb6À  r¹\<žZ¹¢;‘JLŒèt†d*îp¸²™\÷Úm²(ScI›+¤A ÓÓÓáHhÍòõñh¤oôR¡ï‚ JH4³™¬ ªÊˆ„2•‘IoBóÁ£"çp©J¾ÉÛ©Ò=c=’ -m^6;7MÇ„Öu®Ê(¹çÞxyϵ×Y –'~ÿL.Ÿ[Úѵ¤±ÙUUõУÄ“1@i^ó—6B¦ªE¿XÉ A¨ÒÓsqÍê Øí®ŠÆ¢ «Ýîté FXBÀÂáP`rl°»»û*–¹üÃjµ¶´´8NN×ÒÒRQQQ^^þ¡}hnn.ÜtÓMf³Bh±Xª««“Éä¾ð…-[¶ÌÎΆB¡n¸¡¹¹ùرc«W¯¾ñÆëêꆆ†–-[¦Ñh¶nÝzüøñæææ={ölÙ²åäɓ˗/ÿÈG>b2™Ö¬Yc6›;;;ív{kk«ÇãÙ°aCww÷Ñ£G×®]»uëÖ÷#œ9pàÀÁƒ½f«‹PR?¶ È ¤*õÏLîûµ³§Žj4:¯·®{ë5ÍmYÖjdF§×éUÿóÁ?õä9rx`°·©©íÿÜñù«®º–P`6ÙáHx!\ô÷ýáåŸzæ±÷e³Ù¶¶Î;v~â㟼vç®O}êÓ»víÚ°aC[[»ÉdŠF#ÇO“5’N«“%‰³í6[gÇÒ©)_$‚?~txdðÄñã'Ožzûí·öî}ý©§ž|ú™§Þzë­gŸ}öèÑ£™L:—Ëò:¬½½ýú=7lß~Õ¦îmË–­±X->ßÄðÀ¥sgŽŸ>qh|t0“J˜Œ&£ÉÈSnD,ÀR ‰J@)@ ©Bœ´JÙq‹'\DÈ–¢-.ø•0f%K8âÕOò²('ƒ¥(QKHߢ#½¨AaJ!€¡àÌ‘·~;7;æmìr¸Ü3¾yÿTkÇ‹Õîï9isÕ4´®6­Åº @QDôÝ„AÀX%ŒEQ’A”DIùôcŒ‚å®%ÞÚgž~Jguˆ²89<Ü}å•¥,p:Œ¿ÃPUÕX4Z”– l6[¦§§z×®Ûˆ‘Píñ %“ñË4:]NIÔH’f.0¥ªŠ»Ò‹Fm­×jµ—•»Óéd6›Óéô’,ONŽg2™ÆÆf‡Ãff}¹9˜ÇëõzëívG,ëï?¨®­›_ðgRéB!OˆRÈåW¬Z¿fÝšM›º9Â-ª³3>NWÛЖÉ$³éd<Ñé U5õ¾ñ!A”kj;—¯ë»x*¸0ŸËe**êy/Bl´8§}ƒ‘°ßh´ &kMmçÂü”Ý^~ñâ¡|>Y^áõxÛBÁÙ|®è¡$D­÷¶c$$SQX$˜™óM ú&ú‰ˆÑ`Csf“upðœÑdÒë ÙLºûŠ+mV’dAo )*¡*E”Csc£ƒmË(a3sÉTòOWEA`Š¢túX*! ‚¢(³Ñ”H%j=õ„Aós„Qó…|(¼À°˜ÉTlxrÀ[Uç°”ø†æ#oemƒ»v24Ó±t醵ëW.[ýÄožŒ'âf³ù Ÿÿ»ÃžJå2ÙÌ„oì¿]®—/_]]]C åÑe2Ðßw©¼Üm0˜àmŸÿz±‘Â!ŒB ¡b‚ÂÐÀ¹ýo¾ôo|ãë_ÿúû,¡þ\ÒÏå(aö«ß{ÊÐË_ýo52åû¿Cá=÷Üóo|cóU¬_²¼ˆØåˆLty,d1Âc‘¬' ^[i.•p8픲\^Q……¡â‚ÞS3 zkfjÒápnÚrUK[×É£Ö®ßdwº4¢¨Ñh ½½ç_}åÅþþKÕU5øÀžõë®Ðë™LÊïŸëèkijó¦ûú/õõ]œ›óSÆÚÛ;w\½cS÷æò²2Y–õzý©S'º»»!ªJÓ©´JH4{ó­½ssþÚZïÖ-ÛÚZÛørhhðÍ·öF"Q›Õ*Ë2B, õ÷÷-,Ìçr9£ÑXVVVVV–Ïçxúƒ¢(ù|žRÊ(Ë+­Fãpº<oUUesK‡Ñhœ›ºxáÜøØh}Ã’«7´v,—e £´@¨+1㌠LKÔ=Î6"\SÁ ”@x¾·ÙS¦ÊŒ©ŒPZDéErñþ_¼ûPÉðNÃ%d;ÇvB9ñ2DS•ÜÞ瑌‡k–LVšOùgÇ¡  ¶¡­¬¢!“Mä²¹hh¶¢²¡µkÄ$kP®À(a1H‹ŽPÀo­‹|„aÄÇdPà"{O£…‹Y†°ù9Ÿ^oÖM€SGß<}ü­ÅÇdÓ5ô4´ò ‡b)ÉÀÌÔ¨N«D#@T%›K[6B¥*‹Y«Óë `Éh4¾0_Q[EA  "X]é¶Y-O<üðºmÛ*]å ¡àÈà@4\¾fFHÀcQDY–EYA%I’ €„Æ#ãõ«–éeùŽ;?wã?|ò¹§Ÿ\¿qSUU5eÊâ{Tš ^ôÆ~¿Ñh6šLaˆ obâŸþèŸnÿ?-­¹\nvÚ÷È/~–MgÙe“E«ÍÞÖÖ¥RšLLŒ †ŠŠª‰‰1„ÑÒ¥Ë`gϜĂèñÔÚlŽph!“IGcQ§³Ìét…ƒ ¡p(™ˆ—•»Û;»¬v› È€ÇÙ쇣üøÑýŠRðÖ5MŒ._µnÓ–«¶nZ÷ÒËÏ=ôàOš–Žö ¹oK]S»ol`r|й|#@`¤ÿµ7|B«1Œ ž9ylA-4·®ªoZ Å ¢zû7KZ׺+ë!„ù\nÿ[O‰¢l³ºfü£Üîºd*ùKÉd#$˺l&ÁJ´Ë">YÖ9¡Ð\EY•(I““ĨZ­Îawm¹b'Á §X J^Éå ¹\48thoË’öJ{ÅèÄÐìül*›þÓ…·ÉS7éŸVˆê²ÚƒÑ¨ÛU>³à€•ÙËBókVm †æã‰X4¡” žv¡ªø© #ì­®ŸÎUVT×W6$RaŸªÉS%\á*7è Ͼú\(jom{≧ƒ…þ‹CGOyî¥ßþ·Ëõg>ý¹ ë7BØe¹Q€d2yéÒ…U«Ö õ1FC?ZŒa„ EF0û_ˆXû«Ð×÷îREûg¿Ï_2Ë¿'fúòß¾OÉhé±”R>C‚è]§"‚Œ]— CH¸h $!›Î˜­ÖlNÉ+ +’ã½åE:/˜šNÆÏž84ÔÑårßü¡·¶w XEìp9++«D,Œ;¶ÿìÙSÙl¶³sÙ¿ùž¶¶U%©Tfa!”Ëf}S##ƒ/¾øl$b ”¹Ê®Ýµû×í^¶|©Ãa×ëµÜ¸=22²lÙr„0¥”¨”«1ìvûoþ·öô9rä…Ÿ++«Øuíuííímmmœõ "”BÔ%"j ÂD"œ Mù¦kkê°€1ÆV«ÙápŠ¢(‚Ëår8##£ñxìĉ‡í[XÖ×7¶¶µßrËGŒ&Ëð`ßÑ£‡_ÿÃﺷî…ƒf“­¥s™Õ^V„¢ð %ƒ%6ßbl)…QŠb˜1WJ €BbL¨ÈV#An!ž6ä¸+RJ”(%]2ÎÉ-Ýh ÈŠt[¨2€ ”%Ýîÿ‹RÈc ¦FÎ=p ®¾>\D1—Éž<ô"Ì`²-[sueM{™ÅH>Ç(OŠ+å*ru „—r *e¢"$’1€ožRJY(£±HP­ÎÈ!Ѭˆ* T…1Æ(á™90X,è¯YuE>ŸIÅÃCRÈÄCÄ`µB! ³Í1?;1F¢¨Ó˜ÌùÆ*ëDî2g­§zÿÛo–WW[M¦t>ŸL¦*«kséÌp_Ok× $ cA°(a,‚ˆpÉ,!`ÆØå°—9O?ù«Žå+#Áy£ÑTSWG ˜H™‚q©5Ê¥4¸°P^^ª¨ª¬Ñé,T{j[ÛÚígÝÚ !U©¬®ÞuÝžßÿî×Eæ%c€h$⟙v{jÎr½Á8>6419ZíñNŒ _ê9×ÖÞµaãfBè@ïðP?c@§ÓºÊ*Ò©äÂ|Àn³wu­ðMMNû&ö½=gµ9j½uîJÏÚ [N;Íæv]ÿ$€w•÷àþ×’©T:“ïÞzÍÒŽ.³Ýõ¥»þybbdr¼?Š7µ­´9\Îî¿tjÓ•{FaÏØP_SÛJOmË铇¡ªŽ ]t8LV;"I’®®±k°ï˜Åâ0[œœèÞ~ÓìôèðÀwe}}c×Äø¥L& ’$(Šu ]ét||´‡‹‰´:s**EÆÂ|.㟄#YÖ)JB˜É¤×n4z ‰ !¦@¡„E…eNœØ·´u™Í`ñùÆ4‚”ΦK©³46éÍùQb©¤( 5o <¯šÊ¤ÓÜš»‹ IDATþéT*G,ôfIív—§²þÌù£ñD”?· UÍ&K¹ËÝ;ÖKD4¢|ðÜÑúÊš¹¹¹Î¶îh G¢çNœ†e:.›Íþ7ÛªªYÙ´ø+ŠrúÌÉ+6n&ŒªTŠ´(ÀbõÂ' QĈ¡ÿ'ÙjÑhÔd2Ö¿ùƒ2;;k2™TUµÛíÿsàø8PÂø€ -ßÂâÂÄ Ä‚‚Œ€’Í1ˆ3¹¡ò,iôG¤à[È'G.œ9†¼æÚV¬Ú ÕjEA”$A¤µ«6Š">{êøÃÿ!¡kéòíÛ¯ñT×2ƒ ál.‹…ûúzNŸ=  QeYÓÙ¹lÛÖ«®¸bc]]­Ýa7ô‚ @È(e¹\–RÕårnú”2 \|GÚÛ;ªªªž{î¹=×ß …„¸è‚†!L!E‚ÕX,ø­¯Üãp˜«««$IJ¥r‚„Ö/_}ÅÆõN—SeU%”PA”(¡©TJ«•Ž?n·›ív„00èë»”Ëå Fão¹å_ïú·…àüÁƒû}ãÃñXô­½/¬Y¿ec÷Õ&³ ñà»Gœ"÷"î/”Å”BN'åN‡Ò¡°ä¬/žÀ*ß`E<ª†rê}÷/%ÈÐEÂ=d"  €€$`—Ãøö+OÆ"ó7ÞxÓÈȰª(þÙ1Vר²fIû:Q£çyʼ-Yšs­‹1ã`Œ;äŒR\ÔÑ–D0åãcÞ¼¥ ©d8ŸK——×S!åétï.W”Àh1K‘1À‚²Ì] €šÉ$tZ)Ik´Úh$‚EAÖécŠ¢`Qc/¯X˜™vU{r…¼Ö¨Œ0ÊŒcUee>“ì\qÅFBX:à ›Û;/œ>á÷MÖ54A, n“ÀÅL™Ë¤P…ÚêÊ\&==è\µvh°ûÎB$ŒªŠDU)*%"Alv{ ¨¨¨€445ŒTUVá‚ÀÛ³çÆï|ûž~zŸªª„¢*¢ ªªºaãÓÓ3“cЉÉQ›Ó©‘´ƒ¡¥µs`àR,jni8þtSS«ÙlŠ%b‹V›Õl¶Œku:£ÉOÆNŸ9îñxÛ:ºÆÇF"á`$¼tñ‚«¬bÙŠõþÙ©7_¡­c¹ËU­¶ru÷Ù“ ù<hŲ¶r—«Î[;>> ! ý‰co®\UÇò =§œ?u ±¥«ïâ ÿìTUuƒ$j\µ3“ƒƒGV®»N2Üм4œ>}üGyÍÊUÝ«ÕS]W]ÓtêèÞÓÇ_+¯lèX¶™P øÂAÿÄÄ%§«¦kå•V[EÀ?>Ð{œwÎùí$JšB!K¥©TÑ'Š¢»¦Ê2DP C”j´šƒÿPç©·­SScf£9ŸËAcZ6›Ï1î÷0YP‰ÊOóN‹K/Û;{‡.j4Z@ 0-ËšÕ«Ö¯Y³V«ÕÏÎÎ ^ì=Î$0F:­aI}ûÈÄ@< EƒŠªPJÓ( ! Åcè.s‡£¡h$ÒÛÓWæ¨$i~>ð·,ÔܼŽ~×6È@ÿ@OSãB©JTBˆCQ„Ê"Äý' ¤ZDÅŒtADEcó\™RP"ñ¤Vg@ŒW=È?A%83SeðÒ¹¾Þs™Trõº›7_mµÚŒ9V&™ˆeIÂïŸyõÕ}¾‰5«7lß¾Ó]Q¥ªj:N¥ÒSÓ“/œH$b³É²uëÖÍÝÛÚÛ;**\v›U§Ó æÈ=ª266ÖØØ!@ˆ¦ Æ Ÿ»-ÒŸ)£¿ùÍo4Ñh4M„R ¡€`&•žœ˜ììè€fòùÛn¿chh¼‹Øå®cÇŽ¼ñÆ^J„H£Ñê †:¯×`0@„ò¹,càê;î¹ç›Ùl!O†Ã቉‰þÞÞK¯þá_€ÝæX¹zíî={Ξ9óÆë¯ž>y¸}éʵë7UyÀ»Fyþ“óiÑ„ïv".A)©–Þ“OÏO›!@ÀbÔ `•Ò¥9°š]‰@yR `Ȉ’››óT9«›–ÝñÏwÕTUÏøç}ñ󳓵º®³¾e…VoÆPÀ‰‰ÜíW qb¥B°˜"Ç¢¥XòËÃcqic桤Œsí…&¡Xt¡ÚÓDá{»Èíìò¬)0 (rš fÛ–¯€Z-æÿŒV«UÅd0.øgË«=H¨¢`IBXtº+ƒÓ³ežÊd,n°X%I²Ù­f‹åÅgŸ-¯õPÊR©T¾GHˆa¯\·ñøáý&‹¹¢²‹"° ‹[`ID v[¹Ó~øð‘%míBMÍKdQËXI°C(@(j"Õ¼ŸÍ¤‰¸ÅbE555MNN–9]³33›7oæ‡ËÑfŒ±ññ‰M›·LNŒ[­V½Þ ‡¼Þ…A”½ÞúK=ç½ K–/[50ÐÛß×SS[ß½y›Ùjµ;œ…‚b0šþ™ù€¿µ}©Ao¼té¼(Iuuõ 3Ó¾h$<3= Î5-élíX19>rôÐ[Š¢ðH¹Á¾s¡|.wñÂÙC‡..N…Bîü©wÖoÞUÓØ<>Ü—ŒÇ &K6ì=¹mLJ"¡9³É6ÐwêÒùË·‰‚€eí–«?œŽ‡ JÖfw ¥sQ»Óvýÿit´odðü¹“—LGEUN«M%£}=G4ÕæÖjµÙl hµ8L§Ùj¿tþH ˆQ\2 !¯¾ü´Î`€ Øì®¦¦v›Õ•ϤcÁPó²ussSvƒ#A)QJxàç壹P€§©Šj±X¦æ§‚a8’eͺµ›?þ±K2Þ`ÿþðüÔôŒÅbu9*¼µÍ½^§5Æ&¦†yÐD)4”U—¹ÍF£?„µÕ7 Õ×5”YªJ&f‡ûGúý]M,Ã((æÓO´ss3”0§ÓI8>(€0Ž2ç€PBŒA@!‚ŒŸyÿÞÖh6›ýùÏî÷ûwîÜ988xîܹ[n¹eÆ ?üá'&&®¾úê믿þþûïƒ333ù|þÀ¿úÕ¯V­Zõ™Ï|æ'?ùI8Þ¾}û¶mÛfffî½÷^Nw×]wE£ÑxÀl6ß~ûíßûÞ÷Aðù|çÎ{ì±Çt:݆ ž~úé»ï¾ûÁܶmÛC=¤ªêwÜΜ9“Íf¯»îºÇ{¬¬¬ì®»î2ï§5 CbÄŸÙw< ¡ !Y”D„‚Œ¢œª* I$#Fƒ¹ÈÓáðž.×ZBú{/^8}0е|Uw÷ÕN§ c,ˆK?þÑ·zzδZÝ»ï¸ã_ìvg>›Ëf3@àô™cgΞŠFC\¬ÞÙÙù±}|Û•ÛeY£×iôz½F£)6hßµX1€Ûí–$‰RJ#„ò*%ïG`RˆØŒo& ~åË_UUÂ"AUVÖ¼öÚ+ßûÞ·ïüÜçÛÛ;n¿íŽÃ‡³”Bˆ,ɲ,kµ:wEµ,Ë’„%Y–D) §ÓÙ²²²OCAÉ>tü›ÿ÷; õMk׮߽{÷5;wª*Éçó@`Ê7 ÓÉø—¿ô¥½ë®}ûö=ÿÜï~ùóûÜÕu[®¼¶®±"TôK!f|jˆ¸¼Ž2 !À© @  ŒBå>žp!¥„.†¨QÊxYVÙã` P¤É£¢ð@5?;;*AeÕŠõKZÃáh(Ïdh*£|ð“_L&³™|Žj3 à{'€X¬+ùt€Ð¢Ñ€'K3^vCÎ,ænÆ(Ãñb”òª˜aˆÇ¢©d¤ÚÓ@ÅPDD´$(ÉäO.Db‘Áj„E-p”•ÍÏÌht:Y«5™-þ‰IgU¥F§§”AQ2ڬхKYS‰Á¨¯*wÏú|3~}K{>Ÿ'XE@’QÄ­ÛÔ}è­7·ïrŒfÄÃJVB!B@£ÑÔTVÈ’<4<ÜÐÖ  Û,R6)$H„N—kßÛonÚ² cätUø|:­A«Ó‚ÐPW ¬ß´ñ—¿ü…orcár"BxvÆ7ÐwI–¥Ö¶Î®«ØWPó²¬gŒ¸œ&óÄÌÔdskçÊUk‡‡û§|ãS“cÞú†î­Ûkj=îJ÷ðÐPïÅóÓS¾d"¦ÑéÊÊ*FF‡)!eî*·Û3==Ez{Î0Àìö²Îåkó™ìäÄH:ôõœñMŒlÝqc}Së`ïÅîˆ)õð;/u,ßеÒå¬ÃXØ÷ösÝÛnv–ÕŒ _ôû Äí]W`Q’!Æ:Wî®…‚ ×iÔ\lߞǣÕ5õÍ-]í«ôã¼ß?;11:–N§õC.—ž™î§„A€$Öî¬4Ù\LÍA€(SK‰šˆw†Â¡@8ÓS£—.ž^¹rc&oð.”:LV¢ãb~‰Ÿ´XP.^sÊhßð%îäq8\ ­•îJˆÈý?ûáèèh§ÖëmîhÛ¨Õù˜#ŸÏ¥R±¹€/›Ë•ÒÒ$IFa.8_P ”°¾‰¡…à|:›V¨:曈%bmm²(ÿmðÈ"©‡[cUU]µj½J)¥T!JNÉ ¨”.LŸ¶#Þ9YĈ¿×y¡PøùÏþôÓO÷ôôÜwß}«W¯¾óÎ;_~ùeî¶þÚ×¾¦Óéöïßï½÷þþ÷¿ƒŸúÔ§6oÞüÃþ°££ã¿øÅC=ÔÜÜ 8vìØÂÂBmmíéÓ§ï»ï¾»îºkhhè»ßýîŽ;‚Áàž={Ž=ºqãÆÛo¿}aaá—¿ü%W™¶µµ­Y³æ¥—^zôÑGËËËÇÇÇo»í¶;²²òèÑ£.—ëöÛou!7 ’,•@1†‚€AÏÐRÔ<É•ÒB.«¨yƒÁùd‚’9ëðA08wúèPpnùÊõ›6ow8"dY£(¹Éñ•¨óÙþKF£¹{ó¶kvìr8ËEM§Ó““ã‡ì?á4‡±É²¼aÃÆOú3k×®Õjt¢$h4’(J—á»Þ{¬1›ÍªJT• Q o£_.kRUõÙgŸýô§?à DÊñE”RJ‘(Þzëí?ýéý_ø—;·to»í¶;6mêfŒ—ŒuzzBf¶N<_ë­vW¸sÙ\¡ Æbñ……`_ÿ¥D"‘Ïg;::‚GŽ~á…ç++«–v-óÖÖ­^½Úfµz<Õ²,‰¢ÈoÅë¯ß}ÕUW üþ¹ßüþ×TÖ4~à†›MV^VÔ1‹IÚPå Åâ£y¡È žE;àbï³T(Ÿ/VbŒe³YÞEbŒ*`€¡B!^˜±è„MÖØlö#£S¹|žZˆ¤2ŠB! dÑ Xz”»¡ÅhûÅWyK·”Ÿ‡Šð9ðnMW²t0Pd6q“0‡fU…TV×1J£”A„„Œ¨*ùã•‚Q@ !ã²™ñÁÖå«)`€ñ–®òòù€_”$“Ù¢u~fÖYY¡ÕéùÕ1Œ‘d(lqÚËì«ÙôÂo]Uß@Kg+Xj˜ÆF:½iÝ–mG÷¿sõîµ’KB.|±à²Ûl6[(6Z¬ü4à ®q0årJ>ŸõÔx9ܽe „ ¦¦vb|ÜëõbŒ!b.§“RÒ×ÛÛÐÐ0<<|yÅÏ‘$ùbÏÅ5kÖ–»ÝωÇ" U«×óŒ¶öΓÇêôuõíËëë›ff|>ßįŸzbã›–.[ÞÕÕUUåyê‰G”‚Öb¶9œe³3Ó°D4273¥×ìvW.—Éf3‘ÐB"Ù²ãÆÎ•/ž=6ØwÖî( -ö¾ôŒV¯ßÐ}Ue¹ëÙß>©Óè?þ™~þ÷OŸ;ñŽ$ëf»Ý^‰Ìa„A~ãµ_m»ò£›kÞŸžìÇ,]¾hd˜Ùâ4™-¢€,fÓÒΦî-› :Ñ791<:<:4rîôÙO~òö¦––Y¿ß?3;5å ø}³Ó¾ph!M)Jfb¬GðIŠªB Rœ H’Œ Ê Å  „(§NôT׉¨TÏ(e€QÀ¸Ä÷òÿÔã"`€A,[·±¢¼"žHLLŽœ=wL’䦯ökwÞ"ËZ¢ @„1D PŒ±šËå|¾1“ÉœÎ$ùW(ò¢Rá*£„Es±‹`’ Œò<ˆ)ÿÔblï¿•ü§”ÒsçNµ·/ð¾h¾P`Œ <Þ˜Mß”&â"¿¥˜qûþZ£Z­vÕªUÓÓÓn·ûŸø„×ëõù|ûöíÛ¸q#¥´P(˜Ífn–犛o¾¹®®Îf³Y,–eË–9€ÍfÛ±cDZcÇNœ8‘Íf«««ãñxOOÝnÏçóN§S–åúúz·ÛýÌ3ÏÜqÇwß}÷}÷ÝwäÈ‘x<ît:3™  £££¥¥%›ÍîÞ½;‘HÔÕÕ½oíQJ$„%YDò³:%j*§ªªªr¦9ƒÉDL¯ÓˉÃêX1&£Ø£K%SÎî¿är¹>öÉ;–,iQ”$F”ÁÁž}ï¼ÑÓsA¤Óé®»vϵ»®·Û„t:‹F^}õåC‡ßÎå²üœ¹k×µwÞyçš5ëòA¤ÕI¢ ðÅýrŒâÏY™ªREQ•‚Ê) ‹‡,ˆ#€RÐßß¿¤i‰ÓQÆ_¥”.Ø3ªŠá_ïþ·µkÖþçÏú‰O~ôK_ü ®À;vø•W_ŠÆBUUÞºê ç/ÍÎÎßpÃŽ×lniª„rQ\*ˆ:ËŠJD"ñt*›Ëå2™\:ž™™yøá‡úúú6«¥²²riWWCCckk«É¨ojnú×»¿òáýÃîûÁþè›ÿðÉ;j¼KTR¢ì{ŽB^ô‘â Î`ŒÎ)„²"™Œ§¯QÂõ4 CŸËòQ.â4[•’Ï¢!ÿüìxuuÕ–MkËÝ•©Tf>Ke²ªJT•åsJA%<¾ŒÓ)£p±—Pú .b•Ky:%"ß*8r‹A…³E˜ [´¼3ßä°ÁdrºÝQÊP@B@TÆ5ºì©"<3@ŒF´ˆJãr-ˆE»ÃŽ„T5i³Ù!„s¾©2G¯×óˆ3ƒÅ’N¦ î2×èÐ`žP»NÏ(áJ%TtBT*¨N—·iÉáýo^½ë†Ë;¢\1c3›EQ(¨ªÇ[¯* G³ð=~%(e UUU Ì͵wtôö\œšôyë¼¢šÏÔÔ”×ë•DÉí®xáùçêëëc±ùã"¸víúþ¾‘á¡›· ô÷û|ã5µÞÁ¾Ž¥ËcåU«Ö¬?wæ`¬¥}©¬Ñ–»«›–´Ÿ>uôͽ¯:¸oIsÛ–m×ÜóÍï[ÍF‹Ízë§ÿ1“I‰¢œÍekkæÑhÐl¶ÙåÑÈB:™˜©®iZ³áª†%K-ö²ÁÞS“cÁùU¥UõíuõK®¿áÆl6 L3óùt~! YQrXLÃñ#/5¶¬‡Ææç&¾ýk‡£BgÐ'â‘öö•„¨ƒƒ—ÞÙûl2“DŒÝxÓ-×ï¾áKÿvW{kËï~ûØÒ®®ï~ç»=½”­§ÍÏGüsþ¹Ù)ßäØèPÿÌÌ$ a`¬Õjóù¼¢›Í®£j(øã%ŽNMÅô›ÞTŒÃb ]Þ©¿¬=–Ëåv»«¡¾Éë­0îíëy{ßë™LÖb¶66t–»*ƒ¡ùñ±QIÒè´ÆòŠ*Q#Pdj+Êjì›#çpfüÇ(šâÍWQk–·,=yéìˆoŒË¾Àß¶+-‚Á“¾Q‹Å®ÑêU¢*„ä YB L@RŠ @Ì„!†ŒÐRϨäRú{Z£¢(nß¾°sçÎÓ§Oß{ï½7ß|³×ë%„„B¡Ý»woÙ²åÈ‘#ÿøÿ¸gÏžŽŽŽï}ï{÷Ýw_gg§ÇãÙºu+aŒUVV>øàƒ”Ò;ï¼óøÀW¿úU£Ñøío{||Üb±ÔÔÔØl¶{î¹çÎ;ï|þùç?úÑž={öšk®Éd2?üðÍ7ßÇxæý÷ßï½÷ÚíöÝ»wß}÷Ý_ýêW¹…ñï$L1¤ª2FBQšS( „ðã6”Î& F@Š ebÞP)äûzÏ\8uÌh2z<µûämf³U”„àœÿ¥—~Û×׫ªÆ€Óél¨oZÚ¹b×®ë(…¹\6OLNŽ?õÌMMM0Æt:ÝÎ;çççúÓŸ–——Bô:™—P‹0¡âí]½+?v©ƒƒƒ^¯·PP]Œ!”Æ¡*`PQ”@ PUíÉò”0BŒ;¸Y•!\Úµâg<üä¯ÿÚ×ÿýŽ;î¼úêk®JEaÎ÷ÌLÞØ{°P( ïýÁÃ?¼÷\[¤ÓéÚ;—tt´44zk=Þ ·Ûå,óÖ×"ˆ)Œ®ùЇob dÒY¿þÈ‘CÿõËG§¦¦²ÙìŠ+>øÁoظ¹Ü]õÕ¯ÿß×^}åçÿù“•«7voߥ3˜‰d!£Vç³U®¼bÆ_ChIÃøˆÖX´ ÂËÔ-‹„Š¢= n…ˆ1ÓéDÀï«öÔK²–J `Ì…dsy.©¹CO™ QqŽ:5:ÔÐÑE)a”"FÕÒ2‡ÒÊÚT2‘(Ĭ6‡(Jó3SV»ÓêpQÆ:ƒ±ÎSm0èûÎ[U- Y1ïP¾ÍŒQ‘Ö‹[;—òÙ3Ç­ß¼‡Í`Œ$Q¬(s gryŽ›æ<¦âÔ ŒQA@XÀ‰x¼®¾±¯¯÷ºÝ×?öˇ?õO·I’,˲Óé ‡ÃmíZôöÛo9ÎÞÞ^@CCSsKËk¯þáæ›o¾öÚkÍÛé3gð½ïüä‡ßs8\7ÝüaÇó£û~‰»ºVÙÎêšZY£9zð“ÉTUSWP £iÛöápd|l¨¿ïR_oφ›¯¼êÚ.³õ{÷þ¸¿ï⯟yzfvfÕêµ{÷¾Â0˜L3¾QDÐ?;öÎë¿s•W•¹½€Öε­ëNyíÔ±w&LJ¯Ý}KcóŠŸû•V§_Öµzjj03=¡(9 %¬¼¶Ã?Ó›ˆG+=]™¾¦¦•¾ÉÞñ±€ÓY¡æ33Sƒ{_û]Gç²-[¶¦þà»ß¬®­ì¿ä¹f×cO>=;5%k´_ùÒ¿ìØqÍWþý?þë—¹]æ­›?‹%òy%“ËŽŽ ÷ÏÌLÊ(ÍüI’¥Ào5ˆ×—ÕÕÔ‡ã1@‰]o ôúhBe”"ˆv{CÃ’ªªj¢ª‚ Á¢855ñξ7Âá Ao,wÕÚ¬N½Þ$Ê¢ojttì_5 c’,†ò~++j½5-Z­Ž;?xm™Ê³iœ6ç«7ØÍN½Þ‰¿]œ‘ÿÏPB1‰…¢Ñh{G—JT…¨y%G¨b ÂÛ?ÿuZ´ 7â˶= ¸¸ÿÍþáßèüS®ÐŸ3ý%OáßrEþÒü݆¢pûMM­+8 FQi±òàjxÆh6›–5’  PBts™B6›ÚÿÆK ÿ›·nîî>yâðÍ·ìÒéÙÙS“?öd4.(…Šr÷®»¡{ó¶7Þ|­¾®¡µµ3‹ŽŽŽ¼³ïžKçòùœ^oسgÏç>÷´Zí÷¿ÿý‡zˆ;”·ÀË ‚R})e„UUC¡ßïohhP „·#c”ªŒAnØâUû^y©¥¥­ªÚCUB(Q QUµ1áz*Æ.£½øâï_xñ÷Ÿÿç«oXr`ÿ›¯¿þJ…Û­(…@ ÀUšŒQU%v‡]Öh©ªf³Bh!ŸSUE£•=žêÏÝy[C}­ÙlÕheƒA/J`˜RtòÄ™û¡¡!•ÌÄâQß”Ïí®Ôh4 ùØÇÿë—ž?{fÏÍëX±>—ͪJáBnD#„AQ(b@¡„¿@K©%”RB‹ñƒ‹—!¤*"JD ³»½¾¾µÒãDˆE£éh4‘/¨„1E¡…¼ªP (DˆÒÒ©1pyÔ'%’ðÍ1FK"ŽáSc~µÆˆRŠ0à²XŒ A<˜R …òêZcJ‹oFPE!¥AzîÔ¡³§-ÞÍËV®Ü´•‡báO}# „ª*1>†¥P˜0*£f›•a†vƘ1&k4kV.÷ œ¾ÔãtW1Æ0dŒ†c,IBXEŒQeICtðµ?x–®\£(Êãªr×ê]Î_Èÿì½g|\Õ¹ö½ÊÞ{z×hÔ»%YÍr/lŒm „bªIBˆ$'9IH9)„@)$„H€Ià€1SlÜ»°­.Y½k4EÓgvYk=Ö!HNNÎó>ŸÞßÑ‘؃„F{ïû^÷}]ÿ+1‚aŒQVÓK³´ BÈøø¸bl± IDAT¦ª’(„Ãá³gÎÜ|Ë-aƘ’É,]²Ä?=ñÅ/~Ñápô÷÷C×­¿üsŸýÜo~óëÑÑÑÝ»w—––÷ ìÜùÚoŸz2N‰’AÓ´úºúU«W:tHÓÈ¢%+MfS_owëùsU jªÔ!,2Æ8 ´·žóû'$ƒT]]¿öÒõ ÖÛìfƒˆò|ùïíß !ž˜˜üÿøSCÓr«Ý}úØ^›Ã‘N¥‰¦Ú®¼Âr_~±3'o¨§­£íÆÂêuW74-%qXŒ²½ïügûù“Ee5£Ã=0ƒÑ^Q½643˜ˆûy‚zMu£A4ö ´ÇQ_^¡ÇííêjýÆ7¿}íu×Y,–žžž7v½º{÷ë×^wí},ʃÁ·~â ;î½{ÇŽOo¿uåÊ•ßýÞƒ©TZUµD*504ÞÛ7%&Æ;Û?ˆGC““#Š*[̶L&Y\Rµ|ÅzÈh[ëûígøÕk5Y—V7¤åÔÌl8`IÈËÍ«(«ôåä2R²…GƆ¦¦Ç)99¹nw®Él1FXEÃl4páü1@ž¯D4d9JÆ’É8!ÄãÉa”…g ’Áɤ].Ïìldém‚ü"›Éb6YÌfó¹¶séL B(I’,ËÿÌãúSÛï^±b¦©-ïŸZ²dB‚Æ4Y•5M›Ë¯tŸ%ÀN߇2úÿÝ>ø·6v8/?ècž¿YéÿvCùwëÙU#çžÿ½þŸäÎIûD#@ áp5ÊwQ0 !cZ*™0[M  Í¾× €pÐäÀ9øü?³tIýý‡[/œí½âŠ:œBI2Üró×^»Íjµ''Çë.jmûàÍ7wut¶jšj2™>ó™Oß{ï}‹c_ÿú×ï½÷^Qùlj¾f~¤:m¨*Ñ4ubbÂf³É²¬*¦”R¦†8žP’H&Ïž=»ñŠÍŒå…Mc„ÿø”R ˲¦¨µ5õW\‹Çâ@°¶¦©zA€O%ƒÄ¹Ñ±h¤¼¢B”Œ’Q¤T ‡ÃéTBQÕ±ÑÑL:}ìØ{Þ< OŒŒX,–ººÚE‹Ö­[¿bÅ’_?ù‹¾‹}+V®¤D‹Å|æO/¿üê–-WOŒãþº::~è»ÉxdÕ×Ç©t:B:³™ûaù¹Ž1Ê8ćð…gvhòÓwzµÄX§Œs ÌÚ! ÜÙÉÿ„' F5Mðzó½ù…€2J5^@B”jŠ¢iš E€Íƒ•ff”$q³Õ635^\^Á(ƒÙ0àátpãæ-€P_Q¡Åj:pà€ÉdcŒy<ž{ï½÷رãßüæ·¾ûÝïÜtÓM¯¼òjYié 7\o³Ú~þóŸÆc1¡Åf° ü‡¼³ö² µ AºpîT8\¶rÆXÓD2Z–¯Y? õ¶·Ÿïì¼PQ¹`Ù²5ËV¬”$ãæ-טÍfÈè•›7””¶^èh=wôêko {ßþOUS&GºÚß0ÆX€(ræè{¯wœ?åõçÖÚ\¹…¥‹l®â¢‚òÑá3™øÈ@ ,/¯¦¸ Ši1‹ÅdµÚÊK«¢ñpN®§¤´8™ˆ<õä/ßÜýjSÓâÓ-'Ö®Û ¨ ï]Íf“Õjb€Z­%# oÙrœI?ùë'>sçg}^ è={ÞÛ÷n<öÏLBѰæ’ñXlrrxÑâKúû:%Qt»<¢ !Œ’$ž½Ø®(òÚU«·-j6 3Sx"99>5<56=3Eì6wQa•Û“ƒ¡È"D‹Ec6»ÃbµÍøG)!9¹ùE•‹_bµÚ’™êh9}Äd0Y­NEÉd2)@8ä-oc“ScºUÑîЈ6'@ù'Ô”QÆXËû'êê›Õ¢hšÆá6 =jz+!@LÂ"¦iôÿZ5ú¼íÿàOþ±•þï¾æ¿øgVý_ÃÄy".`T¥”P†¹?™NT唢Èv‡åÅó~ÂÁ@Ç…3}½í……¾o~ó_$ÏüþÙ÷ßoC.YZÙÚ6qüÈ»k×^vç§¿àÍõ)r¦½­Õl¶ª*}u狜?C)**úô§?}Ï=÷y<~h ƒÐåË—Ï?²M3\]!„PîªQUUSÉðððòe+“‰4a²ûÝ\N)dð½÷öÞøÉ›IÔ4BTF4^J)!0ÀÕ¡™Œ¢d2‘èì… çÜÎÀDÉ`”̌Ѣ¢RI’(!%f“YÕ´h$ ðæäš-ÖP(ìr95/©¯kX±lMNŽÛ`2"Œ„E'S‰Á¾™™™ßýö¹Éɱââššªx"^XX˜ë˽ïK÷­\uIßÅþP`:×ãð\vÙÏõÛ>ø‹}ÝwÜù%£AHË Cˆ¢0ªÊ„Ò¬"4J9ì;;t¡€!A‚€fƒÓ±XP@Ød›/g”MNù“iUU‰ªQM%Œé!½zö!  Î΀T¿Èˆ~Ìž!#€bÀÒ t„î†2F ‚€xæ.E2J§ý£étª¼¢ëRO† T4EQF(‡TëÊdHçWbMÕ £©H˜j Ùã§Û“ÓÕÖºbõê슔‰¹T§21ÝnÏ@_só¢Ó-§®¹æš“'Ov¶^X´d±Ïç£ݹs§Ùl曪+Wn¾å¦}{÷=õÔoï»ïÞmÛ¶¾üòËÅÅÅ›6oÎñz~øAÿôtË©ã-§ŽM–k¯½Bøúë»ê—T×6º=¾Gß;¼ÿÍšúæ‚ À§—;=Þ%9y =ç‡ú/övïÞõrã¢æU«×åÚìö\_®ªjj×ß°íüÙ£ãc£’(\·í³G½™—çùÖ·¾µvíZÀÞ½{øÃÎÌL†f&{;Ïx¼%E¥NWþt0’W°0ŽçxUT)È«2@4Ø$;lÖÜü³¹¡rA™"+7l½ýÕW^XºlùÞwß½~붺†æ??ÿ'ƒÁ422%J(‹3 4MEeE¶ÙmÉ´ÒÚÚzüøñ-[¶8–Lzv ¿d-šš9ÓrDU•¼¼b Áû-¹Ú¦jÉè0Ï®¾‹%­í…î‚H2˜ Mf_nAÝÂ¥¢d¢TK§3)5Î(5 ¹¾"I2H&oŒ–­ØèÉÉK§DKsóê5­¹|íçvÜÛúÁ©W_zahhP%UUEQ€,nXÞÞ{>•Jq©FX¥h,–µ­ýJc »·£°°Äd¶¨TS4UÓTØÆôã ï^õ‡AÀ@&јÖdÀ>}ò¿óË'!”ïÒÝ’Ç8¢'“L v:l\…È;z¦*-'Žtw^`T]µ¦ñλ¶B~ð§gü᪪“Éxð@k~^áwþý¡¥KV0F‡‡ÛÚZ%ÑÐræèùógUU+))þâï¹í¶[}>Ÿ^òŽûÔ©Û·oŸ¿œûL)/”RªiDUTþ¡(Š,Ë“S©ú4¿²°nÖþPÍ¿B0¼úšOýäG4M£Tw(U…Ä¢±©©É³g[>8&æù ’1æ¸sEQ φƒÁʘ€± ¦§&≄¨¢|BU!ÕU5Šª:°ÿÕW^™L–ªªÍÍKKJKív‡Ål),,­©©ß´ùjE‘§§'].×èèð™3mSSSšFÒiYQNNNggG}}csSÓ/žxê?úÄO¿ãmŸõäP¨Ȩž; bz6㉻€/=O—ˆÇØË™¤šI$â³€U5N—'‹'Ь¨šÊ4Jæi†ÈFNf7 Èó™ø÷Cóç ô¸ ,èÿnÖñÇ5Û!Ä#Ü€2@:“˜ÌÍÍóùŠgÍ(¼e²œQT«I9ŠúwÔ dRi9r»Ý©DÜd&¢ rV®.„ÖÑH*.)›*]PC)C˜åæxr<î/ss\jV“}JèññBˆ²)„ Þø‰:>8Ó×ÙѼbÙ¡ƒÛÚÚoØöÉL:ÃíªB5#G£NÌçS~NfŒ••–ô7Ö7´¶¶­\¹*™L8ì»Ý¾ëµW5M›™™á³uëÖÀfñ-[®êéî|úé§ï»ï¾n¸á‘G½lÝúššê÷üË¿øIt6 ¬¯oªkXj4à=oî¾pöäÌôDSóêõ›®»ØÓÞßÛW`ÁÀfšíÎ¥k®¨‹'G†z†ú;[Nÿàì™â²*„D£É¬*©D,pݵ×ßÿ¯ÌÎF^zé¥}{þš“ãÜ»÷Ý¢¢bþVTTLLL<òÈ# ŒàÌH(0j±º=¹%¥UK!6B¢…#’h41†Æ@àpX½€ˆhÊèØðSO=þµ¯ÝOˆ¼bã5'Nªô¾ðÜ3ªªŒÿô ÑH,ž˜™ ¥Rép( Ç0BñX|^!PYN€r¼y&³Íl¶%S1Ý=õÑS?à÷ûý oÊÍ/©ªi´YÝŠªfÒ™L:©(Š¢¤S™d^n‰Óá5ˆ¼÷œÃå±;=“}²œ°Ûªh˜ (V—¡¨ª°´0ï²K—޴톭7\ †*Ëj&§ÇÓ™”ÓéV•ÏMŠò‹œNwwO[Ʋ²ªîžŽÁ¾~M8::Xc®/¯X Q¢ª*¥„Èô`Wnà†Ü10„” ¤UYÕ4ž†ý¿•ï¿(‡ !yª©TRÓ›ÍÊc xQ™B&±®¶³F³ùÓw~rÉÒòƒï=°ït"™¬©-…"ã¡íÛ?{Õ•×!„üÓþsçßEbíº{ÚEin^t÷Ý_¸á†ëÝînøCJ’ĵ-ccc[·nC2€t ÿ €P¢(ªª*™´¬iª,+Š¢œ9s¦«»{ý†+B@Êòqpñ!>ÆXU àøN=º2E=w¶åäÉc]]9m±ØKKªê›ý3ÓÑØ¬ÙlšsØÝ’$ihDUT…RZTTäv{-f‹Ýæp;=&“¹¬¸’1Æõû§O¶:zô@a~‰¬Ê”—ÓSQYYRRêÍõº].µH«­©¯«k„j”ŽŒŒ?~´££óõ×_ËÍõ]wÝõ®Øô½üè…žÿÓ?ÙvË jñ­”†Ð4`z?L‡Œü£ñXÔd²(rŠ1Õæõ§³ŠBt-0ƒ€'r °Þ/êKvÆtM t^œ›Ò3Æt.¸'¯;J@”},)û î¥T+¯X€‰ïä0ÆŒ€¦)²¬B  Ö£ûûø`@Œ ¢òG.—A’’±ˆÍæà³t†pŸ8 RŠJ˧§&/v´Ö-^f4+ÊJG$$`FF0›0Ã+"È.ó™•+Wnܸ‰WÁ¹(.ÐÛpå-gOïÌ „‰x0ù'úlö\ˆQåêšfQ`Œ¡Ïç±Ù-#ãá`Ôîv«,.Ëé¥KW>þø¯ºúÆ¶ŽŽ½ïî øró~ùóŸ>ô^UÕ„ Õj•D#ÆX¥x,95=­¨$މœššž`‚WUÖåø V,_xùúkÞ~ç?ç áGöAS@e«W^NK¦SÉxB$+É©é±X|6Ç]PV²Ðfs™-†Ññ––¹¹ù·]V2£Ã=çòò‹«ªë3)‹BdÑ z]E¶—æçåf+–®=sþDwo󯀡ÑhJ&cEE¥—¯ÙØ?ÔãÍÍ»öÚw¿±s`h€¯Z¸Àê¿ýDCuõBP•¨”š½1X¶•Õkz³ ¹€Sª1FÆ" þß, ÿÿô1÷n )1¢’T:a2l63‡9Ÿ…1C'bѽoügAQÉöO}þô©üý+²¢ð¹ÑäDxãÆ+¯»ö&“Q ‡g{z:ÆÆ‡'&&O·Õ4uÉ’%ßøÆ7®»î!!DÓAÒÉ¥€ööŽË.»,{€ƒ”Rt61£P#š¦©rFáÀkYVûûû=„‘ë˽ô²Ë¸Š„?¦A ”¢ajÂM7« å3UF¹LÈdgÏžyýõWû „Þœ¼ÕkívçøøÐ©–Ãáp¦¨™â¢2 €A @¢(Še¢¦i‘Hh||HV2²œN&F£Åd4Ymö<_ÁøØ`SCsÝÂF£ÑÌÏÞ¡phffª«³S½ ©ª‰†‰¦67/Y·nCEÕ»Årõ•×W¬还I'gügžþýÀàÀM7oÏÉñýú‰Ÿl½éÓuˈF”ƒÍ($º£>[h¨ ‡f"¡OnÛ[8Òßawº}ùÅ€²h,£QÜÍÓd‰FnòY2 (­iºòŸA8G åɺò$) gŸ0¨—AþDÙëŠA@ù‘. O•”UY­6#$ŠÜûAÓMUUé€â™+~óþ&'€æäæ2Bñ¸ÅjUÅ`0pàßœ²‡qBD#ÉDÜ—_`µYÚζ,^¾Òe³ï{û-O~T7ýÁ¹c¡À±òX Ƈ„A!ÀˆŠAW¬¾äbgû™Ó§Í‹hJKK`6`Bèp8TEéîꪯ¯Ç‚ Cì!`Œ¹½ÞÙXÌjµúýS^¯Çírüå/‰F£©TŠK nºùfƒÁ I’Á A#‘ˆÙb*(,zî¹ÿøõ¯ŸøÉO~ÒÕÙùóŸ?ѼdùÝ;þåÅçÿ0;;˜™‡·Þ~g]CÃÑ#9ÓÙöþÌÔØ’e«1 F“j¬íÌ ÊT‹Åât:+**Ö_¶¹¾¾~É’%>ŸÏëõ"„~ñ‹_øýþüàÁêš] €ËåZ¾bϬ€Y\ƒ¦ªö¨oZf¶Úš—] MÍL¦†²œÔfÇ0‘ÈLŽË ‰¦ii«ÃX__‹Å"‘8@BhÖ/ˆ†?¿øÂ¥> ‡v½ò—O\»õ÷ãc?~øû•øãó3ÓÓ/ÿõÏÿôÇ·mÿŒ×›[[SK˜‹EÌ{(8K‰6íŸâ ºî(b´÷b{yeÝäôè»o½äõæÿ­ŠÐl¶.¬]´|ñ%­íg†. ¢H•3©ñ‰áiÿ˜Íæ,/«Í÷•c,ðqc,=}ú$ -j^²rÍÚ±‰©³§Ž]¼Ø‰„jjcÉÏ]X×è6›š—ö÷÷ ‚аpqÿ@÷èäh"Œ ·vw»=V‹0699¾õ†­ÿrßW<öØÏÆ&“Éü¸öùòc¢R¢ˆå³v=C›»…¹&…‹æ!D’Q”eÊ @h„PÊ „GŽyðÁÿw@Êß®#GŽð=B–J¥£‡õ£&6ÀK €áÄØð»{^óù îÚñ¥¾žŽcGQB .—gÃ囯¸âJ³ÙšNeFGFzz;ýþ©sçÞŸ‹‹K¾ýíooÛ¶Õb±òãBH„y¦ÆK§å’’JÏQÐ1„QJUVMQÔL&‰Ìvww÷ôöNOO/_±¼±±IQ”Ý»_¯««ÏfÜÀ¹Š87ÎUT%‹æxrù¸Lp$?uêäk»^Ÿ³Yí«V^R\\ú.vSJ‹ŠJ/½dÓþƒ{’Éøúu›¬V§,Ë2ˆ°ž½¡‹70ÆTÂTÓäÁÁþÁáŠÊÒžž¾D*þþÙã“Cå¥ÅÅE999…E΂÷äÄôðȰ/7wó¦-€¡Á‹Oÿáwª¦ÖÕÕ¯X¹Úápötvö\L&â+W­j^´ø//<Ŧ«¾pÏ¿>÷ÌSá``Õ¥› ÑåÁÚÜì˜KˆÂ¡Àl$à°{+ªê„‚¢²jŒ ™ŒÆ÷fl˜R:ÿ›r 1,ˆHNÂùQÊóê-¯ÃY‘ ›ËŽÒÝý:ÿ"ʆTÓ´±á‹F“¡vaÆ(FP@\XJeE#„PJcqÆ~õýƒ«×`¶ ¢¨¦Sˆ1£D4bw:ùÒ¬<-;(fšL&ãPpÆb³.Y¾Ê€àž7vÇÉ\wNÀ]YpF¢( , ADY3æ~ Œ° B„-fæM›&ÆG5xs}v§fYB—ËÕÝÕU\\<88X]]}@1ÂxAUQÕââbŸÏFŸ}öY¯×ÛÙÙ X³æ’ÊÊJI’$IA’$Œq00 òæxî¹ç¾ªªê¯|å+Û·ßz×ªýüޝ¼ðüýSc„ÿ|éÅÚ…µ‘HBh³ÙBá™ÃßF—¯[»fñ—ﮨ¨\°`Çãq8ós? „íím=ö˜(Iv»}Þ†‚füÓgΜÛÿÞ{›6mæ7щ“'Oœy“Ñ$¹Ýž¦Ææ3gOý÷¬QBdM¥”2 ¡L.Öõóü ÌMZY–x©È ÖO3tÁäȑÇÿoüˆ0FH25›-’óGœç£s ¡$‰'Žìo9ut媵+–¯:vxïéSÇN[(8»~ýæ­[o¶Ù™L&0èìh ýÝ=ƒ­Vë<°cÇ=‡/#³±mˆ1]Pη&YH$Ün7%Ü O5¢)ªªªš’‘UUíèèhi9%IF»Ý¾ ºfÓ¦-‚ QB14U›:çOyŒ± BˆªD2~øð¡›>y« ÉdòÉ_ÿâü…üþéüü‚OÝñùŠòÊÓ§O>¼?'Ç»zÕ¥wB€ApÕ•7ì}o÷èøÐê5ë“©$c! 8—œ3¦(”b,H6›„‚|Å7¬ÿÄÆ ,•Jþ¡¡£ÇNjªâp:ÂÉdêÒµ+kë ¼¹!Ðå©_º´!OŽŽ¿µgw,5Í5µ ‹‹ŠÇÇ'E»ïË_9|èPm]Ó]÷|õ™ßþ’2¶ò’1BÔl.Ò4EpEeŸ'3ŽîÄÜñÂ׿: Fjð!(ÔÍ¢ 4ÎÌW)g Ê<é(dPïB¹Hr"Ò=Ê éõ•"Àf¦&gggÊÊ«-f ‡‘bÄDŒš¦ª¥ŒpÞÆ êÙ3ü/¹S±piÄd4G"!ŒÂh6tºÜãù£ý¤ËãS%1'׉ÌM»ñ¶[ßÙ³Çã+D0븄sjF¼Qãs,ˆXAàyŠ!$H· sØl·ûŽ;?{üØñüüˆ²R¶à-X° ¿¿ÏétúýS&“Åb± „ n«ÀH„ƒèóå>úÈÝn·ßïXmö[o»]Q%Iâl^>£ ‡#šF].Çå6¼øç?ýk_{ð{l¸âÊšºÆÚššàÌ!¡jG{[uuu]]]cccCCc~~Þ<ðÅ{î¹ý¶Û>ý6;E)ýú×ïÇÓ‡gçÎ[·n5 ü¯ÆÇÇ[Þ?k0˜ï¼ós»v½¶bÅ Y–¿ÿýï§ÓiÀÀÄXÿ<ÞÄ‚N A”*kš]ž|ˆÄd2Qbílï‰&B3AÿôÌT$$”@Àº»>ðå•nØrC,4922ºvÝ•ÿvÿW]Μo÷Q׳÷­×m6Ç´?øä“¿|s÷«K—­®ª\O$åL&Ì×ÒCm6GÝÂæÝo¼8=564Ük F£1N§S)£ÑS.ã0 IDAT‰DÞ;°[–åÁ¡^þ_;55j·»LÆ£Áb2­f·Þ}3 c ZDJ4«ÕGûû/þþ׿\PSž3šmÞÜ<„Õˆœ‘gfü㣖J3!(/¯ #áª+·9¾obb$‹fUUuÖl¶¨Šât¹­Vk,š D“åÌ?3ªÔ¨¦Q ¼©å¾%(£ˆƒ$æ~»`Brì>Õu‘µ £,×Xç@ˆpvÐ w^i<6 è»`¼qþÕÁ¹ÿ-ÇÄ€16šêëÌÍ+*+¯B¾jщºÝ›Wîÿ¢:r2ÂæÝ¿0FôoÌ…òñðìe&Ùã?ÓKDÜ<"dÃN5ÂGF:Ñ f;{aIi¥¢¥\.'€zf`âì&#ƒ ½ýæ«ÝíÛoÿlóâæ¿üõ™¡ÈlT wÜq׺K¯ ”D£‘Þî®`h&•Nìßÿ„pûöí=ôÏçËž)¹ìéJ`6—®¬›ßR©T0,,($„iDSoãñø‰S'JKK¯¾æzB(@CÀ{¢$d2Z~~~V@¬ãÇAàÃRMÓ0BA F1¨*™Ó-'£ÑÈ¢EÍÛ·ßyôØá·ÞÚU½ îŽ;>k³:TUáaLHmn»ûœ7ôÛœ6Š!b€ûÏø“@Ä ~ Ñ T,¨mk¿ 𬂀­öœü‚òæÅ+`„èl$˜ŽÅ¢ÓSSýƒý'O>OÄ\.‡Óéðù¼E……Þ\ïå—¯¶Ys…ô ½ôÒ_Æ'Fsrr[/œolZ’N¥‹ŠJ·öž?<ùS—Û[UÛȰÀ4ˆ•"%É(z „_BÝæ¢÷:úƲ¾Z¦“ ùÙN÷I@Џ”Í¥ÇêB„ùÿÒÓî9$”Ó¯u„ „€1Duã,™Œõ”ç,b 0@1„„ ¿Ñ(‚|J?d}|tdƒDó§`ˆ†/vûò œ.Ïl(L4B‰FœNÍJ[ù­@A À0D c§ÛÝT·pxpp`x¸°¢ †ù5 „ !( ,ÆX XI€‚À«#@a¤ã´šL«PšL¦ú{z|^¯¸c8ëüFIí6ëÄØxU+ äää`Q‚T÷„¸Ýî±ÑÑÝ»w_sÍ5/¼ðBhûöí¥¥¥s…cQD.A¥”MLN¾º%‹;v4f2™ýï½ÓÝÕV[[»cÇšššêëëëêê\.×\{}÷ë§NŸ^±bÅí·ÝšL¦†‡‡;::úúo¾é檪ª9ÚûóÏ?wúôûÞüâàôø®]»þøÌ¿°ãnŒJé£>êpùV¬½úðÞ—yä‘¿üå/&“éüãÖ­Ûúú’!#g „ 0MS‰ªj@U”„0™ŒeRqÙl®,[(‰âïOLB€v»«ªjAaI¥drR(X­–¡þÞâòªÝoî o¹~»B`_oWWçW¿þïû÷½yæýÓ×ßx뚦Èl¸·§Ënµe‰~Bd±ÚׯÛR]Óx`ÿžD"ºjåå.§grjdll(“I§Ò©T:Žœ„ÖÖ4@ìv'„ðá> Dzz»zz:[ÎD­\yEyqµÙh±ZÍ¢¤3©·ööOÅ"¡þþÁt&c²ÚC³Éž.¿ˆX0Æ4EÍ$’ Á NgŽÙdÒ4Íiw™¦ù ß?%I¢ÓnÃD£ápÐíòüsö (T <È×ohTg= hžÁñ®"’½ÚøEYS»fI¹H' "Æ!Œ0FaŒñz!¤t¢HùC"ÌÁ®#ˆ²Š2ˆtã7 ‰Dl|¨/˜r87Þ¶Ãîtñ¶Å™ J%”B( ÌÃ2Êx°#¼çÓ«l°¸Ž€eÏ$"Ç_A}Ÿ§O¨11äôB¨¾Á܇Æ×ùTÓ”d:a±±€?ä·Ï{  ƒÑ8Ôw±ýÂÙíw|nÝåë:Ú[B`*™)/¯Ú¶í– ¦e9™½ÐzÞd;:Z/öu-]ºìá‡^¹r¥( ü 67Ç×4RÚÑÑÁ]ƒsAFÁ›o¾¹ýö;dYÕ4MQEÑfgg[ZZÆÇG57×Õ5P 4MÃSJ4Æ0F‚(‚˜ˆ]Na!âß‘ûÏ!’ BˆEv8ì<òo|b2‹ÀFGGŸøÕãÍ‹–~ùË÷{<^YÎ(Š"IÑT!a”Q&‚Ñ`’$I€ˆcF0Æ‚ ‚€AD!,!,‰"Q^~~^O$AÄŒoWŠŠ‹l¢„hªª)J<‹Æb»^{¥®®~rròbßȱc-™Œìr¹òòògðlðÚO|2 ^8vß¾·-kEUÍâ%k6^yí;{^¹»¤B4Yµ‰ÐèßÀç €Þ?é¦ÛÿxZcÙ ¦7Rú$ù#uˆ7Y"Ä\›–íºô çû2˜¦(ÃcýÁêMf‹YQ„FcPU…¾ €¤§/ý£Ž  ‰6£€$c8ˆ„Ã9Å…éDRI&UU–MfI2ÌóþfsÆ ŒbÛÌ–ò²²S'NØìHäßž“•1Fa 1†2Œ!Æc òŸCˆxEFü®7MF£1™JiŠºrõjŸÏÇ „Y!dvv¶¶¶öìÙ³+–.kko¯¯¯O¦’§‘ß߃äv9}äGW_}Mgg'„°ªjÁæÍWŠ¢("Æ‚œ‘gg§ººº;f4™Âá0‚Ìçó!‹‹‹ö³Ÿ544¸\.«Õšµ°ùšðD"ñÓŸ<ærºöîÝÛÞÞ1<<è÷R©ä–-[¾õÍoÍ]-ã?ü£e«6W7eññѾoÿû¿gäÌW¿úÕP(ÔÙÙð¿ýÚÓŒ’'žxÂd2Aóóó‡Ñ`DÑa´ˆ¢ LÌFfC k T•ÌØh/ß1OM_véÕÀ$¯‚’ÁXZV¹éªëlVs*-ÇÉdJ®XP{æÔÑÒ²êD26Ðw1:q¹7Þò…ý{w~pöÌúË·LŽŽ?|ÐárU”Uí9ß‚ Ä¢¨ªLΤ§¦Æ‡‡û:;ÏÀT5]VZ¹rù% ‘h(̦ܓŸW”ç+ìémßxÅ• (Ÿ¹óv„"“X<ÞÛÝ÷Ö›ûÿúÊŸÚÛO}rëgÑl2 ÓŸþðäo~ó¤ÍjŒeTmp|꯯¼ÖÕ~~jrÄh0•”.ÀA‹ ‰Øh1Š cQ@©:/ÖâC#ܾƒûŒFãk¯ï\±xU"¯^P}äØÿ–»Í Y–ÇG±¹Þ?ûa£{vù`O?`é—8ä…IGjÂ(P”ͽËM!ÕºüèÐDƇ'"þ CD4yzrd|´_S«ÍV\VÕмTÀƒ$ ºDã%–?¬ ×ëñªŒÆ#TG†Ó9ÒIÅüdQ°¾’a\ÄY”úH B `Ì×ú¥„dI Û*@!CD£I’ÜN7B‚o(£<| !d0’AEENˆ\ÇÏöHggg}}ÓC}3///“VåŒ<íŸìéíŒÇ"o½uXð÷¾÷ý»ïþ‚ÑhÔûl $„ì۷綾^Ú±cÇ£>úÊ+¯ñ'ï9’‰äÀà ÓíNe2™TfrrâÌÙ–d"]WWßÜÜ,+DS5!EQ”0„A,IÇÃg®#J(cñ: Àì}>ép8ƒÁÐÄÄXUUÍÚµë3rzù²•uuM&³‰B‘ 0Ô4•©LÓ4ž•+Jbn®÷øR„ ÆH(bAÄ¢(r—( ¢ ”•• ’ H’È©å!ÌÐÍYpnÈK&’Ï?¹þúmŠªÊ²¢Èiÿtà•Wÿ2>>>:6R]½ÐawVVÔäz}¯ìüs2™h¿p®£í|~Aq"è©­_8æŒý’dŽ¥Î(F€6'Q½€Q}L„€êU~ 1¿,ˆ&“顇šÛ&@ôãc,:æÓ‡vf&¼ÞB ª*¯×ûæ›onÞ|e[G£Z[[›Ùlîëë{üñÇO:i2Û-6/üéd<2ÂH()­Hg’ÓS£Ùfs&â‘t:‹G~ƒR!F(rº£ý¬¯°´¹±Áã±çy!^—#qrr<7¯XVäðl(žˆ *O?°zíÆ‘á¡`Èé¥ FóÞw_EÃ_^aQAi2hm=ͽÇN‡ëü…3œ?ãÉkhhn¨]\]U»¨qiÃÂE6»mçkf 4Ô/¹ãS· VVV‚(¹›ú¼yÓý5U‹ö¼µst|è’Õë¿|ïýOÿñ‰_=ñäwÞuàÐ>g®Ï’›äÀÞÎÖ³…%åã#C³á™’òêÀÔØŒ7wéšµLUÓ™4Ƙ⟙ú•EUÕ§ŽšÍfEQÏ=›‘3²,ÿ3£QÆ€F³ð%ÈQ1€òÛ0Ë}hV÷ÌE¼_åÏ/¬q ¥Õx”d"  ×£@¯2ÓdC²Í®D4úñh:Ñ—_´tÅ¥‹e!A PªA5•0ÀvÆôüp@)Óµþú–“2ªP–:ñ Gp»tvŽÅÑŒBÂ,‹3Ö« „ €1Â1¦-;2ÕP7ù²L:­*—Û…ø2ðÖòg‡( £Á( ’Á ù§&/ötÙl¶'õK»ÍqóÍÛ·l¹V$YVâ‰ØÉSG†‡&'Ʀ§'7_yÕ~ðƒ²²rƒA’$Qôþ4•JíÚµëÙgŸ---ýÞ÷Ü»woqq)w1 ¥ªªŒŒ8ÎL:£¨ª¢(½}—-_)"Ñh:£rñ ¥*T‰ÆHÂŒåçùŠ‹ æžõÙÒ«Gp˜¨¢(­m­ƒCCë×oH$R÷Ý÷¯ÜBÈg§%”‡VRJ$ñ±±ñÊÕf³Ùh2Îø§UÍÀ D(˜ÉË+@ˆ ö F‚//ßê°›ÌUQ„ª~ràt !Äro¯~KØ,‚ :ÝRªªªJÜžœ|7•J>tðð‘}~ÿT2•¨^P—“㘞Ÿ†Îø§jê³»J D€iH?fÍù ~ÈÓ |qEçú!Üê ‡»06¯ 2¹k‚.õ6”A²ùGÍq¾!#D›žIÆ#…Å•6»sNo%Šˆ‡«š烀AFi‹úwØ‚€EŒ5BµÅ0†%¡¤¼jjbÌd6ô÷X./7OªªÊ˹1 Ö3ìM’T˜_011žLg|fLÿýÌ;bŒ°€1B#=†—KdÀi!16 v»ýxë_n>c 3Ƴ¦\Ng2™ŒFgN7Ði³C&·¢ªª×ë ‡Ã\LEvíÚUPP°{÷®x<ÎxöOÏø|¾²²²ÊÊÊÏ}îs .¬ªªr¹\ƒa>Uª³³ó7Þ(¯(Åb¢(ŽŒŒœ:}ª¸¨xÇŽsu1™Lþð¡)²24Z½f“Ål:qâÈøØðý÷ßßÜÜ<÷?þâ /X­ÖHpôÆë7777ßvÛí…E;v|!ÈK¥2ÓS“f“%•Jmݺ ©(cv»Ûáôò_U*1«ªŠhÖ®¹üÒõ—¿øü3ËW^vý'· ÒàÅŽñ±!_^Á‹ÿñ§†Æz§'¿£½5“IX-vÉ %RiQ €V«ÙçsÇâ¾LZv8<|ý¦A™õæ"ˆ‡‡/^¿õŽ‹½í½½™tŠG•ù§&©K/ݼmëgººÎïzýEÁ%—¬Ý¾ýS©tâµ×v;vôÐáw!9žÜŠŠ›Å>26`·9r\¹¿ÿÝï«kªv·Á`Ìtº¬‹Ù`À#ã€ý‡Þ~{ï.›Íö£=tìØ‰Ã‡ö ’äñú ËÊ–®]—ˆE”¾ÌÐPßÄäh^Aá…g{ä½·¥©D¢À›?>9Ò{±KÓ”¿ê ‚Àóè'§&þyIåë$ç”dY>Ⱥ‡€õ"ÈŽŽ‡è¦+B¥Œ2 0J9€?Û&r—0LÀˆPšU‡dsa‚ ‰¬ÄÁH ‡!N‡Û•ã+*«2›­< ˜ïEæÃP8ú™Pn€f„Íeÿéã@|øzJËN-ç0Åü‰†²Ñ5PŸÆê9«Äõy`ùÅHžYJ³R€¸¸‡ú0JI4µZ-V«‹£BÁG˜p1f%³É( ¢Ñh4›Œ½óçÏ`Œ×¯ßøÉ›nsØ=Ь¤Óéî¶ 33S==v»ý‘GzÛm·™L&“É$IoJ’ÉäË/¿ü§?ý©¡¡á—¿üeUUU xî¹ç~øÃUhš¦U‘µT*‹ÅZ[Û ‚yyyõu ”2U!ªªNI ã¹åÞc ºCnÑ:œ3ž}oÿÞDAEEY[[[EEÅû--M‹š†‡‡Ož8184ÔÛÛ›I'BN§Ó`0<øàƒ¢(¾öÚk»vír»ÝsBÿNZÀï~÷Û¢¢Òþ¾þmÛ¶MMM§R©L&‹Å.\8?Løì³ÏŽŒŽû.2ÆJŠ ÝΜ¢¢¢/}éKó•ó²,ïÞ½»¶¶ÖãñH’ …\Ng$}þùçV­ZÝ×Û÷øÏKɰ²vq:kûà¸Õî²X¬FƒUDÊF8¡Œxss¼ÞšŸ>ö“ÿÌóÏÒŸýâçTUn¿ý–PpfõšK¯¾öú/~ñ+ýës÷íñúòoºõÓÑH(uØí c›ÁXRœðûƒÉ´  šbµÚ|yEãÃeµŠB‡†úKŠÊ§¦'R©„ L&s,9zd¯Q275,©ª\80Øýö;{9¸té²O|âºÏ}îî`Ðþ\û©“'::>Èd2UUµÀôo~÷³E‹‚Ó›6]ÉqrZŽÅ™tÊf·yÜžK/Ù0˜ÌÈé®î®xúqÓ ·µu^èìnÿêüuM„ˆ ç”Ûú¶1AÐ|å¥L¡z‘dY BèUþONAÂL5åAÝÙ B©øìäø ’ÉŒF»Ý]PVj·-‚Q• bHˆQ ËXçH˜”hœ9Ó™°ÈBõám¶s§ºÞŽév}& ?œŠrmzvx¥V!H÷=ñx-B³p­Ä¿!H$â°Ü÷Ü{>äDêÇv³Ñd2’Áh4šM¦=oîܽ{gNŽ÷®»ïilX¢(Z&N¥“íKÄãííçó¢Å?|øGM‹Ù¬f“É„1ä‰ä'Nœø·û·òòò§žzjam-òãÿxåÊkÖ¬ÉddM#„LFN$û¼————›ëE¾>ÕˆªjLç>eÔGUaˆAYÙÿÍê`6Àøç@`æõ×_O¦’—®]ïËÍÓû)΂@Õ´Œ’á%PÓ4B4ÆØÄøè@ßÅêÚ…n—2¦ÍìòÍ9n×[{Þ‡ áÆÆÅÓ­¡PP³Åd4¸µCQE–“Éÿ NN€nŽ=*IbCCC$M$.—«¼¬¢¬¼¼¼¼býúõŒQniGb„±h”ŒEÑ ²Ùd±Ø®h,ÒÙцøî¾Ý#Ãýš¦ùò ˪j@Œió–‚ çæÏÆæ®¥9)àéEz²*›‹Ì³K=Sžê©“LÏÔ¥PŸé3@e99=9бãõ—"ïÎ °®¿Ñ4 € lPž"üßÎøô[@PÕ4MåÜÄ8ô%£˜žNÄcž¼|Œ…ü¢•Q@(€ˆJ)…*€’¨£ˆ`H¢XVZFGFFªëu=€ÜÌŠ‘ˆ±€±îÇë0++€({¯ Øh’¬&Ó‹»_¿êºëaAÈ8@7ð”——u¶µK’àp¹Ž>ÜÚÚúÔSOú§§¹¹pñâÅ+–/½é“Û A|ó›ßœ5 ó«àß:áÆÇÇ^}uç—¾üµP0¼uáÂ’âÒï~çÊŠÒššš¹×‡Ãá'žxÂårG#³“c}™‰‘‚â ­g¿óïÍ[nذ!{Î&“““„É`ùÞƒ?’ÓqEQŠJkW]v5ƒèbg‹Ñh©¬iÂX$ª C‰’aj¢¿¶¶aÓ¦·ÝvkaAáääxaaaiQáá#‡.]»¶¼²êô©S­œ™öO»\¹áÐ,,¼ôçg4UE_qÅ“qÇã1ÈËõBˆdYÉdÂŒ1F 0¿ ÿΞÖgžûÕê•—QB_|ééÑñAAÀ¾<ŸÙl¾ãöO1 4Æãq‹ÙB»iÛ­5uå¢$NOù÷íÛûλoï}{׿~çGCÃ{zFúº­X516& ‚¬’²ÊÚÆ¦3ÇŽ(r&•L³9)öß õ“ ‰xüjj×ûXÝ*•]àg#8=BàIk„C£?’TÀûV @Àd pÙ4Tc ©z› ÑÂéPØOTÙáðÖÔ4J&³€0—Z"=ÄF”âÉaYô?å#)~Ï@¹à“Æÿ$ûì”eë߇¥B]؉€ R”…ö€²›LÄúH J¢ÈŸ8D£”Qˆx#„ðµ@U”d*îr8DA˜ëÒõÓ\J1¶˜¬F£Ñ I“)‘Š?÷§§ZZN\rÉewÝuÂb&-'“‰®îŽþþ‹ápðƒN ¦/ì¸ç+_ùJNŽÇb5I‚ÈïÀ`0ô½ï}ïÌ™3?yäѵk×B¤Ï(Çúé?*²¦iZGgG:•)¯¨UUIÖhÃí8ª¦*jF‘U•ƨªª€¿·§×ív¯Y»Žfû%-'ñšÚ…éd\ÓÔüübB¨Ñd– fÁ§>õ¹ ª$&Hc$Šˆ1 !ˆ1Ð4:::ÑÙÑ7:<¡*ÐåväåçÆc‰ÉÉéhlöèÑá]¯íŒÇã¿}êÉú†Æµk/[´h‘//_–cQbHD¢Ù(¥ÊÕkÖ^±aã–C÷ž8~hû§ï²¹reEå )ªó_÷×"¦‹Œé‡× ¢1ÔÙž NfÒ“Yöò£Yˆ dXÖ@Ÿôcñh8•ˆ¦å”Éd+-¯ÖWMŒ%Ad” 1Âë`äLpD™öî=© I„‘Xœƒùˆ¦ê*jjúººR©daq9’D…€q«d”éŽU¤[>@aažÅb>rôˆÉlŒˆ0ƺú…AAoF07‹"0D#! À¯:FÍ’`3[zº:9F‚0  õ]ì¹xñ¢Ùl–eÙív[­Öááá믿þê«®¬ªªjjj*,,üÛœpÆ@0xõÕWgff !ãcã½{[ZZdY~ì±ÇøÒ‘ß°Ï?ÿÀÕ—¬ñz}ƒ„fggfϽÏó|Ÿo‘ ÑTÕ'P2˜*g.5Zl²ðxÓåpxx¨'%=×›œyîÌ¡Üd4•”–——ÙÎŽžþ‹}YÙ9½ƒ¯ÿýÕ—þúz (O­˜ƒÝùù–wßþ»#1ñÞŸþâûß»í‰ÇÙµósÀÚ5oC¯»îæ[¾sF(ËbeBr(` ëhn¾À­©YÐÕyQ‘e¨ÅšMMÉèìhiïhJOϾzùjŸìÀÁ}¡Pàž»ï·;œçÏÕïÛ÷ÅÓÏ[[{dÕªë¼É©3fÌš>c£„PJ(U•1†äRfžfÉ©(P/]ÉÀ>vþÚÚÚ÷efd/¾âª›“/fè%â.шU¢DÑ4JMUÂÑ@p¢³«GÀ°²ª ¥”éÚ Ž Ýá0™Œwüà.«ÝÁKJzFÆÀ@o¢'=bQ…Z,2€ L¡Ý Mf(ŠØ Å¥9˯ÎÇ‚‰(‘%šލ¿(¿<>:®±¹éBKk£"«))©óç/œ>£&)9!‘·R)©i^oŠÙbB‚çÛß½ý?üá¶­Ÿž:ubú¬Å:uøR@#oq(BPÓp—Ð~F„ =ŸHª)r4¢„ÃQ%¢¨2ïØt_1„`Œ‚HašÊ¥‡«ÝîNò$³n<Êt׌ `!@‰Ê(5$JyG(†$|Eðß/uަú|ãšFŒ&sBB×cŒ¿¡p^AAKcÓ@o·Ûë5˜,:—ÄR/ˆ.æàóefFF(9}ú¬75«,cX¸Ø†_;˜“à0Ɖ"wU§‰ˆ!16H»ÕòÖŽíW¯\ þû«²Ûíå×]wÛíæÚµöööwß}×b±<óÌ3|ûz{}°ÿþþþþÜܼ;ï¼=†Ba«Õ2<<|ß}÷™ÍæøÏF"‘7Þøç½÷þÄ›”‚1âZÖ¿¿öÊ’ÅK¦M›Á‰‰‰ýû÷ßu×]+W®œ:uª×ë}íµ×üñÇ{Ìd21ÆÆÇÇ/¶]1>(`,G"‚Á Ïl6 bAèïè¸pîLyyEíáW¯ºc)˜@X$D]¶üÚ¢’Ò¾öÒ¿ßúǬššßþöØîÝ;ùm²þ\ýаjÅââ|§Ã908Ò¥´±Ñ‡ÝyâØ>N IIÉèèhꫯ?n³ÙË˧»]©ŒQ„Ä[¿}û‹.[SSÃÛï¼ñÏ7þ^Z:å…?¾²|ÙÊ_þß-Ÿ ().‡!$”O1M½}ÝŒ2U“ÇÇ}o½ù– ‘HH•™ªj‘px 4‘mN߆‚QU€µ\8›èI.-Ö×Û ‡Ý‰‰r8zÍMߦ§gܳ³§·h2š)%Š*ók3¾íE‰÷g999MM ßpGHbaJcJéeªŒ1Î äk’˜˜oÊb¾ŒqŸD£ƒýÝÃ=v‡» hªÅjç¢7n8ó‹b\8çé0ªã©<LJè[Eà7eÀ_Œ]ÍC/ÑÖAÌŽ}‰ˆÇbÒè¸í/F(Ž` ¸Š"œ$ Î}¥4ö!CAÄI4 à÷1F\BˆB†&­‡.»ùî !È¥Ãkßk` ï‘GÝÐpnllôómŸºÜ‰U•UÛ·¶wß.BÈUW]ýìsÏåæä˜L¦¸7Å®]»}ôÑÌÌÌ¿þõåêª*¬Q (¡`ôÀÁýï½÷žÕjŸHt{ŸáE^«tš/ƒŠ¢(DƒK‚ÎÓÄ‹¢(]†Œôù8ΔŒiš …>ùäãsçë«*gÜyûÿp)G;y3Á³–TEQ‰ªÒÛÓ½uËÆþ>áí·ße³;£DS¹%#!ðs7Åä”Ô ÕË„Ƙ"G7¬Ïét DÍé¶x“ív“Ùb´Û-§Åî°I"D& ªÁ :]P4 IЉ„„ˆš*°±©ýÐÚ‹m”h‡íýè£u ŽÅ‹—,¸b©ÅfÏÎÎÅHP… ‚¦¤xt×Ý?üáµwW¸“(€zX®nÁ£œÄ¢]Âà …„A%#ƒÝÑhcl0f³Õé#‚qÝÑ%€Q ã Î>Eºü^?κ ÃX2E È45©Z¢`#$ªQõ’7ÍW&‘È3™L‹èj[_x|éÉÙl ~¿/%+£·½#Íæ˜¤étW !c˜'Ñí´'\hhŠF£¢A⯀€b, ½ÚAŘ£‚€!Â"Uª tvôö !‰îÄãF)ÑãÁ‚xêdÝ{ï¼S^^öòK/Θ1ƒëå'­íÛ·766677§§§_–Î6ÙÕ…1¶víÚ•+W]Ã-›7o˜=knaQ‘ß7ñãßsçwNŒoÚ´)‘—\y• `MU  ttvŸs’hw:/¹j×ÎÍ&ƒ%âþÞî¡ÞƒÁrÝ-ßÛôáûFƒ1%9Ãírõöõ–Ö=0yô$Q2H¼6µµµ}Cˆ”éî:!”1ÞçrocÝ´HpLgœ] z„z<ÏìÕœãG½ÝÇF†RR2¦ÏZ¤Ó/cµÅN*åÜwÊ(#%Œ€ÕWßÇt`Ä ¥”è2¼ ˆ „ª@ÊeÓdyïÎ €jÕs®tº½:/æã‡t“*èÓM ° 0¦Q}Û‚ €:»AÈ bÁ€¨šÃáÀ’Àãr°’ª/¹H9VŽ‘n1‚hÝšwZ[›Ÿ|ò÷©iÇžðM¬\y]ssóó/<=44”äõ<òÈã·Ýö½›YE~iš¶aƧžzêÍ7Þ˜1£:F ‚%Î7|ðÑúÏ?ÿ,++gåÊÕ3gΤ¤f¬Z[NBßRJ°€E, ‰¢ D½Âø²qD”RF4284¸eó§ÍÍW]µbÉâ«dY%„pí)c@HU¢²J4EU5J)Q»;;vîø¼¾þ4cÌ`0BΟ;;}Æž§Ê§UE-)+ÇsY:Ĩœ>#)9y|t4àŸÐ4‚ñµµ4ɲÌ(2$EQL&SVvF^~~FFšÛíôz £É -Vf2i¢¤BØ`D5OyåÍr„ž9Õ¼wÏaAÌVÛÙ3'7}º!7·`þÂ%S¦N•D#Ñ4 RP$êî쪵ÚÎÄ$>ñsˆ R¢ûÊ ó…`€PÍ71 ‡d9ô&¥‹&s<ÁPÁHEQ–eˆ°ˆq\Âa@,9Æà„¸5dŒJ! 2®Éˆ º ‰P¦2zÉ)æKÉÕ1@~߸ªªÉ©)\0zÙ¤¨³Ú&ë´Z­ENÍÊÖ4•» ôçQcŒ2ADÙéišFÖIIË`B†ta%ã¶Äa C€° ĵ„'Žj:w¶§£=99933Ód2 †ÖÆó„²ŠÊªµïþûúë¯{ñÅFãæx«ª‰D!ëׯŸ6mZww÷É“'Ïœ9SWW÷ì³ÏΟ??^á.¶]Ü·oß_^|¥¦fÆÜ¹sxƳÏünÖ¬™%%%ñ§E£Ñ×^{mÖ¬9ÿxõ•úsçÎ;SVVîñ$-X°`Μ9—µ¶|˜V¥¹¹ùÔ©S;vìhnnY¸p¡¦“Éâr{róKÄ‚ PÂ"áª* ‚"™ìÅ峬®±±AŒq$ìÓ¨‚ˆÀXHÏÌs;^¯»«½é½·ÿ–š–‘““ë›— R ௞^óÐ/ÙøñG¾‰Ñ´Ôt‡Ý!+ŠÅb‰DÅ18á ÈQãïÿÅ/¼÷þûîZºôJ›-á|á\ýù#µGþõ?Úìvø³GJJŠò²ÓL&éСƒS§”¾²{KlŒa@oOû¹ó§++j’3²ûúºššëF#ÆøçÞ_TT †«««¯¸b %¸§§÷BÙ g3ªçŽŒRF“½É‘p8%92ÚÝÝÙÙÝzúLÝü¹‹—.\é°;'ücš¦¾÷Á[õÎ,Z°¤´tÊ´„r£Ñ044pë­w64^p8\³f-<|hß¼y‹÷ìù|Ñ‚+÷ØÑÛÕùÊŸ~«*²¢(Oò·nºóBã™óΜ8y$œ Ùìö@0ÀÏ‹ªÊß$}/8(åDgÆ(ƒ"Àû+ ÓÓ³Ò3³øㆠ’ `ˆ "~ý¯ýè®ÿ1H¿ß×ÒÒÒÜÔpæT} ` Úl™™™Ù)Y)‰.£Ý j¢ ÖÌΚZ‘=>:y¢áرSY™9€±ý{v}òñ‡«®½!'·ab4J%%ÅCC—‹¿1~@ ® à”0€¤D£ÁÁÞ^JU»ÓíLô$³Ž<Ä(£ÄÌ9)Qeû21…M¢¡óµçF«ÜDšˆ 奎—î“ Õh„ï2¾¥”Ðá¡!‡Óžäõr.ñ7Ù—Ä1OlÜWc—LbaŒJn‡ÝÑ×ß?48TTž‚d ˆ@Š*«‘€EQ4LV›ÍˆÂb4úèƒ5š,ÿàÎÛ¯¿á†ÔÔT³ÙÌ剌±¡¡¡Y³fïßóÆø×¿þuœÛÂ/«‰‰ ƘËåR%WWW¯]»vË–-£££™™™ÃÃà ¥¥¥“dÓ§›rróË*Ê%Iâ¶}}½[?Ûú ÏOVMœ:uª¾¾Þår—––ÞtÓõ¿ÿýÓ÷ßÿ™3gÖ­[‹pÑW3uuu‡ª­­½páB4* ¢†"Ì4M ‡‚@£Ñ¤R"‘0¢jBð¢hTTÅíI&Š216ÄïxXRÓó$ƒ(¤‰ÑO?YW3s6‚àÇÏ=w÷ÿÜ•’’ÚÔÔ4wÞ‚];w\wýûX¼t©¦ƒ$Å­L6Ù,ËrXŒîÚ±mþü…GŽ>qâøÊ•«6nÜø«_ýæðáƒáp0 77·f¤§'ØÌFQTëïí …Bq̃ç‚dfæÈQùÄÉ#ƒCý¹9y"AøjåÊ•™™™|ðÑŸÿüB[[+wÇó&¥$$8GLJÚ;Z÷ôs׬¾&i ŒDåþÞ£G|öùÆ_l­=v`ÑüeÓ+çÜrýmŸlýàì¹gêO$C~^ÁÒeW1F)!N§û§÷?ÒÑÝuÛmw­Y÷VeåÌ@$äp¸ÆFƒ›¹9¢$pÞI<\‚×B»Ý¡(Š,u¯Åb ƒ_Ïåê†KWˆ– 0áˈrO€ã²* »ÚCÿÄhÇÅFoJFåÌ"†ç>ÅÒ|¹í‡b©î`c¿sÂÂÕ£º‰iì˜ÊJ”¿š®>ä;ûºÚêïÂå–ôuDöîØ`³9jæ.ÍÈ+†:'n Åâ 0Ý éµÐ b.ÊÖ¨në… „ˆA]`ÏüþqBT›ÅêHö" &dó[7ˆL_Šù·íÃþ¾®wÞþÇÜy š›Î •îÜõÙ‹/½FÇ£>~Û÷¾çr:s 7¾H»é¦›fÖÔ¼öê«’AàD¡hDyáOú|ûç÷Ü}ÿÌY³DЬ†ÃU%1'MÓFGGUUõz½#  Ñh$"=ï€RÊõ]º·#c”Ò¡¡¡7Þ|=–—-»êÆ¿‰Èáˆ!·«cBB©B4EQ4MS5hZÃ…ú/voomiæŸ×h4 ‚™™“•'BâX,‚ÀWcˆÆ„#6[BwWÛ©uËW_ˆ?zÄl²L-/G@LLD£Q˜Óé68&‹EUä©åéYI„œ²Ši#JY4éëïko¿ØÝÝyôÈ‘þ»#9Å[TRP^‘[:5[ƒšÍnZ°¨bÁñîîцsmgÏœÚøñÁ@àwÝ?µ8ÿÃÖìÛ·`³Ù/Gº%_viéé¹ÈT%5=KŒÜO‚Xæû%Ño’8›”‹,®¦!óp/ncˆ!‚ß„OSeBˆ(ˆªFìGZfÖŠkoصusjRâ¿ß}7##ó’±Nìª1 °Ž¶Ö²²²¤¤¤É£X{{ûÊ•+eY¾õÖ[o¿ývY–ï¹ç>Ào4O:ÑÙÙ™’’–——ãv»ã0)¥ôã×Ï›·Àbµ ‚À{¿#GC–.]:ùCÛl¶-[¶:A(¥•••ÂU«VÂáð¾}ûxñ;{öìÈȈÁ`˜V=£¨´LD¢hª¦iªÊ££Ccãc B„ D¢$%$8hàh6ÆÈlN DE£ ¢Aˆ%¸<”BJµ÷ßþ{ÇÅæ‡ybÕÕË¢²œ‘‘984—““ÅÍï‹£”îÚµëÈ‘#~áO¢(0ÆŽ;680üâK/egç¼õæ»âhD½}=O²Åb1¨ª2YUmm­UUU¢( ¢$I@W{BAÐEm F>ùdCkkËw¾ó½Ô”´hTøÃQ`acŒE”KÉõQ/^lÙ²qCGg@¤‚üâŠòj«-"d‘-AìèjƒšL&$ðH! €”ˆûúú ¢øáº÷2Ò³¨F`m-çΜøtãG„h: K¤Ã„„[‚Ý›ä}µÀd2§Ó•š–žžžž’’š_XPPT¸pÑ">U(ªÚÛÓÛÓÝÕÒÒôÑšíýƒý•U³f×dçdŒfJ•$o¢Ûã2ŒŸmÞ<66ÊýÇk/O+/ |ål±$@ bìÒõ€(Ѹ}¨vv´x½© n Hlvœ´* 2!ï­â ¸ W·¹Õ¨{ø A@ %€rE/åY{1*f*;RB‘ Y 2ðµa/ãcã‘p0/7 XU¿Ñ,x‰M€D8“€rº¨nÊ0‚Z¬V·Û=8<ÜÑÑ‘—O‰vþÌéî‹­ .¼ëŽïWWW{½^»Ý ý~ÿÁƒï¿ÿ'îDwGksccƒ×ëå Ïä(¾ àF€Ü2iòr.--íž{îÙ´iÓ›o¾¹eËŸÏ×ÖÖzõŠãi•UŸ|òñó|î‰'› É455ÕÖ}ôÑ'N?~òDÝèèÈw¿{Û®»n¹å[n·kò§ž:uê%^Æeee&“éùçŸ?pàÀéÓ§m6[MMÍ¢E‹gÍžýÇ?ü¡¤dJFfF0$„ÈQÀFHIMs{’Ã!8&”PJ£‘ð@wŒoÅx¢2BÈ`4 ¢ÙçA[,±¢(ã¿oÜåN”$coÿ°¢jSË+·nþdZÕÌÓ§NaQ|áùg§–•«š•£¢ˆAÂ0EQèlo[÷þÛÏ<ó\cS£(‰Š"¿ø—?O«œ~þ\½Ùd6[¬UÓgkšÖÞÙãv9úûû§UV÷÷÷¥¦¦wvvÀDQìëíVUMÕEQ"‘ðØØHww» HFƒÍíò-Y²DÓȦMŸ®[ûÁ²%7@ |ôñ;.—»±©^–#Œ±Ö‹-ápÐá°Š’hµ™UU“eÅb5=úè/ï¸ãöõ>ڳ狆††ºSµV‹MQea(hl<ïq&ן;ÕÔÒ°äŠUÁpøä‰Úy‹–…£á¡Áþ)åÕízÊ.Æ·lììº8êÔs<†ûÿ ÊiÒ_Ǫ¦ )] žŒ &R¸‡§JrEྶ!ˆ ½í£#£ùE¥VKøò<[pAq\ÿA991F ш(ç—¢FcbÆC 082Ð ² KxQãï‘hÑÃ{¶%¸rÕ YÙ¹ïüûíºǬ6»¦ª#Ãý³§VâÉ}2@Œãq0\GùÐ4Âç­¸Ù¥$ (ªìLpî~1ÙWþËä4øñôL_RUSkjn2™LùùEçÏŸÙþùæ`0XRRòØc­ZµÒb±rИRÊAa^l^}õosæÌIÏH'„ªªúðC¤e¤?üðcV«ãÐáCõçê[[[¿Ýîd <þØS#B˜ªª*a#Qă½Ç¢$ ¨[“3¥º+‡s èînß²uSWg÷Ò¥W­\q-¥,ލD#ÈQ¨Fô®WS5Jiÿ@ÏÎíÛÎÕŸQUY¤¼¼ÂÊÊ‹9ËÚœ‰$ÑË06 Ú±€°7×Eu„ÐÔÔTE‘UEŽÊ²ˆñæM<‰žû~úPOw×ñcµš¦šÍfI2(²¢ªJ c££²¥:ZÀ’$Z­ÖÔÔô)S¦””–™-ã´ôÔü‚¼EW,Ò4224\{äðÖÍcó)v IDAT;ú=IIUÕUSËÊ F±£½W#šËåQ5™hdtt”/ ƒîª§÷Q΢†N ŒûFrr ÑÀb… Æ.ÈK æX |ì ç¼23äÓŸƒĈ#ì„R eº[[l‚ä°(PùRÛŽ7 _QÉ(ëíë5™L¹¹¹cŽ^ÿŸDUB ÷ ä¶« @UÓB~ßÄȰb|ldAˆ0îiiˆFeÑhd 4Ÿ=£ý[·n5k‡4ù›·Ûíiii.—ëþûï›3{vRRÒä…‹,Ëï¿ÿ¾ÙlŽ©î`rJZks#׆Nxà{ï½wll¬¾¾~Ó¦MÿüçëgΞùÅ/6›­žÄÄÄÄÄ9sæLž/?þøcÆØ~ôCYQÒRSŒFãÆŸBŸzê‰Ë¾=^ÿB¡PooïŽ;8P[[«idÛ¶m~¿ÿç?ÿùw¿û]›Í>áó=ùÄcŒ±¬œ@¨$ cƒ` J9S£Õ*ŒÊ(£”hZ\lJTMQd‘¦)‚€&&†4@dU–£AÒˆ¢æ”^l>·mëæ‘±±D×íIzá¹§£••Ó<ž¤;w.ZrµË=!"ÆXBÉG~¸wïÞ'Ÿ|ò¯/¿¼k÷Îé3f%%¥*ZtéÒ•ë×ÿûd]]jj†×ëFäp(<1¤”Úl¶P8cC4ì×4•1”œœ®j*`0ôwuv§§¥šÍ,‘ˆßXkÛ ǓdL}=~ŸÏ“äm<†×ƒÁ`1›ÃáÐØØÈ7!Â|ÄzpPFu½ÜŸéBaêþ`ºƒ| ‚!E‰4ž;˜œZQ5 Æ8Rùr] õ†Pçâè?‡þXÌ&ŸWÞ/õ¤2@QË…SgO™³xÔ1QžZAìù A¥¢¬:=-í忾ØÐØh4šTEÎÊ›RY3_>ôè“„|vDîŠA¡„¹¬žB&&FV›Íátzž(›ì29™i6Ùqñ( tf`0‚º;/v55!Ä.X8mõÊ$¯×d4ƒÁö‹íìïë4™L}]Ÿoûlæ¬Y“r¦.- 4MCªŠ’äñ\6 ýìg? ‡ÃùùùÏ?ÿûìÔ©S Qw´ ‡×¬YóÌ3χÃõðC¿d ÔÖ®©™YUY¥(*!DU•™3k$ɸ`Áb—Óm2L&É `•PY¦7Þô­7ßx½°¤Ìh0˜ŒF£Q±O–çÍ] Õ• XB1/½}{÷ìØñyzZÆx¯Ñ`T5ª**÷U¹E(”¨ªªj„(ªâ›ðùäÒeK÷ïß÷Ú«›\5Fã¿þõ¯ÉàMqqqr²÷Ö[oE±³³óÌ™3Û¶m;pà@WWw^~þÌ™³ïÿÉÏ*«¦Û“$9\Ö‘¡ÑuëÖÞu×] 6B4EÕÖ­]'ˑܼ)QdF BFTMÃ#JE0^£1H(ÒmØu# %0ŠDìJNQ#‘®ÖóMõãÆ³“3òQM•›ÏŸ¿¿¹µepxD–åm›7ƒ›o¾ùÚk¯=gþtOÿàp(™9kþ¡ƒ{Ž=ÈÿÌ~ÿøÑCû?ýtƒ ß½ít0ù’!ŸÏ? ¤Œ ¦KKF«Á`ÚýÅv§Ã‰1D£ƒY‘µP8ÜÐØÀO4¥DD«5!Ø××ó×W^Z²d©Åb —Ûòƒ³!„Ü}TÑøxÉ‹®£,ƙܨ^’Ä"81>òŶMŒ‘e«¾eµ;øêÙµu}(°HH°OLø#Ókæå”™ìc%f…t¶'s£A$bˆ¡„1 BÀd9ðûƒÛÈE„2ŒcÙqÿáUqy’À¥/êÚGý¯(%š¬9sðÀÜÿO;gÄBOœ¨{â‰'rrò:;ÛçÌ™C¥”|ñÅžeË®TUSeF4 ÁC?û‰¬hf£d2ˆBÊhXV Q ©¥¥AhO°J’îb•_g0Ù%[8>zÒžžÞ5kÞõ&'ÿè‡?–$³F´p4›5J©¢(”1Uã ¨B4- 9¸÷ðá}¢‚ü"US[š›¼ÞÔ…ó¯´Ù V«àJÉÉÈåDAlnÛøñ‘¡ÁТEËJJ¦ðà®Äfú—£ñÄ(X]݉)SË!Ë®Z1kî\Æ€Ùd° ˆ"e¨išß718ÔÛÒÒ G¡p$†¤¦z ‹²“½žÔtOfVªËi¿biÁ’eS)Åš*iMŒD¿?ØÓÝuæô‰M7>´c!Ñã™1£¦fÖœ¥Ë®žQ3§®®VSAEõ Q”$stÒîpÀX–#tll¤¿·;-3Ób¶SFøþ‡ZB×èÒ£X·„rb±^v.9Ñ€0Ä!Ý^@‹[µÅ‘¯tÍþï×v8îÏË/4š !¾lûÚ+RFi0ä6èünÂÛmVs4è[¼p~qqÑsÏýáüÉã#ý}ëÖ®]~õÕ_)Z·Z­Œ1JhaAáeï¶¹¹ù»ßý®ÍfûÉO~2oÞwþ\^~ÑØØ¨ š„Bazù-"ŠR<œ(`œ•™36>üÖ;¯­ß°&/¯hÔf³ÍŸ¿ldxT§Ä F„¡,+z„¢ù}A—[‘$ƒÁ(Äv{XÓ4Þ ¨ªª*Z$,ŽŽ!r²òÝž‘Ñ!£Ñ¤ªŠ¦iÑh@UÕ KKÊΞ9!`ÄÌÏ/ÊÊÎ…BÁ?Žx½)ýý½“myMs{’|cqBé7ÔÇE¡n\gwS]¤„Iô6È[¼–†ú‚â©–„„X†¨¦À˜§T\þÀO!_r¾à³ÉhBéä]¾”¤88سû³ kÂâå7™ c°h$¼wçæh4 ¢”Ʊ±ñœùK¦TÎ%T#„;°«¯§cÉŠöDÞ’sgN97 ‚ÓˆF)ECDFGF!£f«55%•s'ˆƒ©èæt™Dwò½àRQ¤RÊoñ<›•ht||lû矶_lÉÍÍýÇ?þ1gÎî|Ó4:00pûíw¾n¸ñ–[¾uçw”””BOOWÈá €„Ѩ#ƒÙ$ X äZH a¤@£N‡Ål6@ )}å¯7ßü­ÌÌ̸4p` ëÖM‘HtùòîÄM%²%„ Ñ¥ªÊ§OUQ9 N9{¦n÷®ÏeEÉË+ ½}½ÉÞôó®´X¬‚€ÍêI/s'Š‚„OÖu~±ã¼(zjj®ÌÌÈih¨üIIÉBÂT7]Ô4 b$ˆÂÔ©S¹+º Š.·›QÄ9“@,bI”$QÌÉÍ–¤„P[KSÉ”2MSÆÆF;Û;{z:OœhßöÙÑÞ¾IÂÉɉ•W\QSRšk2bB4ÁMVäò$•LYátÞxý½P(4Ðß·eó¦­[6§¥gÔÌšSU=IPˆDäv»v§ p£í-MXDÅ¥Sb‘¼·t g™Î‰І¨ªÐI–F“Àuˆu@‰ÆE“ò'tçRH'Í_‹üÀIk(ÊÌÌ•$cÄ)MÿåÊGîÙ³»©á„ //ïú믟1cF^^^^^^fV¦ÛåæìÑ£G×®ùà–oݼìÊ+¿² B-‹(Š”’þþ˶–N§ÓívïܹóèÑ£÷ÝwŸ(‰v§Ëd6¯[·î®»îúÏ]ÆØëM¾å–[/^¼üª«"²|üXÝ­·Þêp8ª««¯¹æšU«VÅ® Ÿ&“’’Ö­]3{ö¬ÄÄÄÿü–"‘HKKËÁƒ7mÚtáÂ…‰‰‰¤$oUÕŒ_<ôHqq‰Çãá- ãQmŒRÆDI0…‹/nØðñûkÖ¹\îhTŽDå dçäÕÕñû}«W_+‰ff„„ßã(ÑU‰ÊÑHÄ n70¢LU kAB@$„©Q9 úÇÆUU)((œ9k¦ËáÉ)ÈKJÉmhêê¦DƒŒ¦"l£7Ù“›•ž™™ &&üCC#á@0`8ðÎ;ÿ®¬ª …"e„áQZ^QÝpþ¬79Å盈D"V‹uáˈ¦!,ŽO´¶¶^vÀøíKEQ4¢"ˆBf“Ùåöú|£ý}=Ç×òwøÈI2EQ*,¨åˆF¸×@OLþ(`A´Ä{‘Xò6T¯ÕªªcRRÊðèPJrB¨»»# 57ŸgTKLt­=8>>Æ=è}þñ@ h4šZšTMîï÷%º½6›íb{«Åbæ/€ °¸äô‰cÿ§B?¶”³a¢”Ä2tHG@0ˆ!`¢¾ž¶‰ _匹œ^ uWÈ…Œ€c„Q¨{„2J $q»—IÎcJÓ ch @E‘Ïž¬=w¦®´¼zúÌѺÛZ<É)AßxíªÆs­E8•$ãU+oHÉÌ× üvoîëéHM϶Xl/ü”q ¨ BŒ•PÐp0 Ê2@À›”Œ1æùÌ™°1 ñlXVoÜFùrŽ‹ÙeéQ¤*jýÙ“{¾Ø!IÒÃ?òÄq€ˆ1@)Uõ½÷Þ«­­6­â©§~ãñ$½óöÓ§Ï0ÍѨ|ôØñp8 ©jÀ”CÔ‚DŒ!BºQ3CƒÑ|èÐþ¬¬l‹Å"ˆ8¦^c-Í¡@8:26::R[[k4®ºr¥ HŠªE£2¨¹™Ñ´!TUU- ÔŸ=µgÏNI’¦–Uô÷‡BᢂŠ›“2M°-{S©79œÒøDð“õ§j´ge.ºâf¯'EUåC‡ö—¦¦¦Aˆ!€Q@!DU9,Î,’2À "LC Q‘ŽdCªÿÕ„P”$Q”LÓáÃû;:.Ξ=`·;²³s93™7(ãc£íO>õÌoßÎÈL..É-(ÌÈÊöº“Üî„o®Z¸$ë§ö~qª½­—1ÖÓÝÙÓݹeÓ†‚‚Âá‘‘»ïû‰(HwÜyǑڣw"„,ò·´4¥¥fÙv~£ÔC'Ð35ˆïÒ'ev"@TpÌl)F$æI&cD¡º‚6¦ÛÓõHq“ù8äÊ8\téwÅøO41>ðû²²ò‰R5úß« Àçó ônÜøÉܹsívûט“ÁÛnûÞúõOŸ>ý²ò …öîÝ›––6eÊîRf6[ÛZÛäˆl4ã?îñx¶lÙÒÚÚúÅ_ìØ±C„m7ä?ýôÓÓ¦M›1}ì²Ñwç…?ýiÅŠ”‘ÿû߯¿þúºuëÞ{ï½½{÷r:Ìä{·,Ëš¦­^½:ŽBE"‘¦¦¦'NìܹsÿþýãããÓ®¾úêŸ?øÐ´iÓAb“ºà’éQ À'N˜ÍæéÕ3Ïœ9½wï¾}û¾œ>U—’šQPTZ\4Ån· ŽŽŽŒŽŒŒ ö‡Âa£É$ ¢ÅbQµ§»+¿ „2ÂÕT¹ f“™jª"+Á 2 L”••ÿú7¿ééxëí7ÿúÊ‹’d(©˜SZ9Û(l£ÇmÏÎLNò¸’(«JÿÀøøøÈÈX4*geg<°÷7ßæ-¯( "xÂÇÄØXsÓ`$yø—ìݳG–µh$b6›eY‰F"Ý]=qÆC|zج«Õî÷û9«€P¢iªËåMO+PùÀáíDSTUVUB ªrwOKbbÆøøh|)880f4ˆ¦È$I€‰¢gŋƂ B"”‚`¨Ùjµq7{‚«¨¸, ùýƒý-­„3Í ú%¥ÓÆÇ‡5MÃNËȶXm&‹¥³£5~j›€iéY½½Ý—¸iÿõA8P*PB ‚Üè“{ùB^ £-ÍçmV[iYe,LLòYs(`€h\xFÁ×D‚òå­îú °¢Èí­ gNõOŒO›1;=3ÿì©cí­á ?¿°´¤¸¸²²fçŽ-ñ6ÜéJ¬™5W0˜5Bú{:îþ,œHÏÈ™»h¹Á`ä žƒ$a¤)ª?žðù° "ív‡ÓåÆºs"@@Àp\ì< å2|â&šÚÚÖÚÒØPV1-'7ÿ²f–R åÑNÝÝûöìêéî˜3gÞï~÷»3fH’ÀÛ UÕEùûß_{ùå—~ûÛ§—_µB’$MÓöìݳ|ùJ  …×®]“•™æq;%¡häð‘Ú­Û¶O¯®zä?…º§9 €¢ V®Zm4š€îËÎßÀÀ`vvöÀ@{{Gooï²eW!(hš‰Ê*G&¹Ò@Óø «( ÑH0诫;rèà>h ,5›m'NÖä–ØlÂÔá€iéÌí%V›8<äÿçë';ÚeeÕßûþ•½Ý={víXµú:‡Ã}å•WsŽ8¥ü@JYoo×»·‡‚¡+–,+--åzüKÎX”„UáRnF9Àå£êŽÛ~ýë§-äëg£Šªq>—;ÑåN¬œ>C‘UŸÏ×ÔxáÈáƒCƒ-®Ý++É€rsÓ+* ç-˜¾òš…[†>ÿì衃Ç#á¢DÏŸ? |óõW¿uÃ555³EQt:ݽ£cãÅ…Å‚(i“hñ['ørªWL?ƒØe\*È ®XåÁÎ!D¡Œè©Ô Æ,ƒ,öïIWVÝ1A@©Útáljz†Ë‘H!bTß|~ù¾ çµQJb ÎdK0Ù*ð€ÁŽö†Ãû¾'Dɘ™“ßÒp.à›(:½°hêøHŸÁ ÔŸ=ÝÕݯ‚v‡Ób¶ìÞñ™Õ–’–ÝÜxš–“?¥¤¬ÒéòHÄR!Fˆ©jw_Ÿ€%‹5!5=C÷ãäS›†@‚,>ùMf»AȆ‡UM ù…wÃïû&&rróâêüKÚ$P5ºoÏG$£øÄ¿ºÿþû0Æ”j„PEQå¨êóO¼óÎÛùÓÿ^yå•”RE%>Ÿ¯¥¥åÞ率#rCÃ…Ûn½ õƒM[ßþ÷»¡¨rÍê•3fÌÚ°ñ“ûî¹[” 1'’$¡«E0R0 IDAT§óbûÅ»ï¾/.‚Fötw{<ž“'O½ò·—ÿç®Ï›c@V5îˆÆ%›š¦ñ°Ü˜rKŽF"o½õ·ö‹­Œâ¢)íÛ€¥…F“E˜+¦e2g"¶%:;†ßyóxoOhÞ¼‹TEõ£ÞOINY¾|u¢Ëƒ°!ƒÅסPhÛ矫=’—_`4Ž94eJi$½ÔN1À  D£zïD˜éîª™ŒF¯7™€"‚!Æ ÁÀÓHˆ¦RÂ(!DÀB$ûDÍþÁ>§†5žãA¯©*ÆàÞÍZ­–²²2E–ëÎöx<óæÎýüÃò{ï ?ÙõÕŽ½»wM›YA•EQ#Zôx1𪫮~ë­·L&+Ã2_ýU_o_CCÇóåÓ+ï¾÷aQMKHJvŒŒ¤&g´µ7geçZmvY’&Y¯Ð÷úý>›5NÃËúü~ŸÛãñûÜápB¤(ª¬È©)¹z½=ñu‚`29MS1V !»¾ýübã¹e׬˜9cVœÕf·Û=ã~³Å¨Ó <ÏëtDPU4EÑ0цqز, ‚ iB@QdLHFF^OO{bRZ||2ƒXˆ Ç=*Š!`rR†Åfýƒ}~¿{bŒºfÅš”ô¬SÇC¦L-«¯=õo´F£lê v¬-4M£§Q68»;§–ð‚ŽDáN~|cNE+Œ(k |oŒ^aL¨‹¶_©­¹±®æðn½Á”7¥Ød±Öמ6è &KœÍ××ÓftçNïïï7™L‚ H’”–ž5<Ôïóz8Ž üÍçõzSÑŒéÙùSÓ Ât !d3>6¤aœ’’ͦ€‰Â5bhâ ‚GÃ?©ò^Öä…Ãá¯vlmk¹T8µxí-·wvu|ñɇÅeÓ–,½†\V%BÄ ÑááÝ_o}ø‘G6mº'33ƒeyêC;wnÛ»wßk¯þáøñc³yùµKÐT¢)ŠÜÜ|)ŽFóø˜×ï÷ ôô Ýv÷&žç7Þ}×ܪ¾@ öÜÙ{7Ý#jP•° °"À³µçŸzêÉÙ³«fUUÅòì1Ÿ?î¾{7?÷ó_%%¦ªš*IŠ"+Ôá«jš¦iŠª¨š¦©ª,«’©=wúС=^¯`µÚ­VGVf˰¼$$“”4b·sz{©iðËíµŸºpáâÕ7L# :W{R¯7>ðàc<Ë14³AŒ }Þ ž?{êø‰š¬ììzâ|íiMÅMMõ¡pDŒH“4Ôž¶ÙÏŸ<™•“—•“-˲(ŠuµµÓgÌEcŽš )‘‹rÈb9^ãKOZjÏΟWŸŸ§a¢œœ˜à°Û Ц.¹úªH8ÜÖÒzäÈ¡mŸï/*.»zÙò)…S·~þñÌ™³Oœ¨èï{óÍ7Y–+/Ÿfw$aŒ!*½¡ ¦ùÐô„éÜSÄ,ÔÀÄ⡳=Â@HFQ.7Bô£BBÅ»DåÇÈHeÂSOËʘ™(ñc·$ˆudphh€å9‡#žAPàXLˆ,+1péÿJLN=pàÐØØØ£µþþþ÷Þ{¯££ã|mmÓ)+jÁ”ü`0HkGúÒét<òÈC=ÔÞÞ¾k×®­[·ž;u<=#ëƒ-[*++7nÜ8Á¼‚¸ÄsÜk¯½öÅ_×^{­££ãŸÿüçîÝ»ƒÁà3Ï)9© wNU5ƒ8£É† BktX3q‘GÇFB!0àïêjó¸Çx^DZ¼$)‚ C C$5fd”«*Å0ò„(„Ô‚.Wï˜Û¥È’ÓÙ¹åÃÿª­;³tɲì¬l½Î¤tqqVƒQϲŒÅjâ8^Å@0ìó:»Ú ¡PÀh4ÈŠE<žñp8 m¶8{\‚ßçs»G2³§dfäµ¶5˜-q Iý½ÃÃ=W¿–åøïöïìµÛ\ÿfN},E›na8:_"€¦¶§»³°°˜¡öáXP/KÌcÓ+ôÓÑ ¢â“IF{ àÁd¶ä–N›9wï7[!‘H„cÑ7;>öŒêõzUӨǀJ1ú{i„…ªª–EÓ+ç•Vp:!ˆ „«ÒðHŸÍš 7š5š‚M±7ÔS Š•v. ‚êÎ;sš|ÝÊÕ3*gw¶µ|µcëô™•+VÝiÓÄóB ªÊß|µ-#=ýµßÿ~é’ET¿N-º§NzõÕWEùå/^|ûÍ7˯½†A`¬iZ0ü¯·ßZ°`±ÇíÇšÚ×ï4MÁ@øÍôô¼ýÞû#®‘oX3cFŒ  €žq÷K/ýfÆ»Vß°†¥Ñ!„ˆ¢xêÔ)«ÕvÓM7Ç;’ &£¬È¢$ÓÈ$MÓTMSUUSUJžÅPãźC‡öŒ RvIFzöÌ zAoŽ-9…spœ€.5 }½ó¬ªóç/ÎÎ-bôñïåääÌ©š¥!Cu 9r¨­½UQä©S7Ý÷“„„ä×0Ïë#ZH¯7(Š¢jÊe4+t{öõ:G†‡Ë§WFDYÓÁ—š›Ö­»EEMÓŸÜI›ÌÌcéééÙ°a#ËFµd «2 dIUU–ã¦L™’•›ëýâ³O·ly‡cXAÐ9]«V®²ÛíÝÝݶ8‡Ý‘pù¨H4€£V[B&ß½ Ö%)Í‚ 17iΠ´˜MÃZ,׉ʯ0 RàÙð_ŦODF“˸20У7m6;B€ãy,É“c„ÿÛה¦‹uÛ¶m»ï¾û&¯ÙP(ôÇ?¾n4™’RÒæ/\ªjꉣ‡?¾bÅŠ+:<ñÄ›7oþøã~þóç ‰O>ùTmmí¦M› u:Ýä¢þRqqq7ÜpÇ~(Ëò+¯¼rÇwœ?þÚk¯½âÍC¡Pcc#„p||ÜëõBEQŒD"uuu‡Ú¿ÿ&øŸ<´f̓aõêÕ‚ÀŸ={&)9uúô?œ;—|ðÁ–ššc´ßîqC¡ºººáá¡@ I¢Ûíöz½¹yùÕÕ‹‡‡‡žzê±ô´Ìûî{ jÎŽçT¬Ê ‡–Š‹‹ÂÁ€$F"‘P$ N§Óï÷û|¾`0¨( Ïó½ç1ât:^ç¸ñ–{¶úÏÛ7>ØxñÜ@_wõu«V­YôðÞ1—ûú5ëþú§ßíþjÇ]÷=•‘étv?öØ#®áþ>× Ft¦8 ‰Tò-ËbÐçëíuöõöø|Þ„„ç6lØÐÑÑ …‡†Îî‘—Áhr8ŽøD›ÃÞzòX$ €‘Ã0^Ÿ;.Ξ•ÛÝÕ9±v4MDæ‹ ÷G"B "в¢H’HÏ )‘p"‚‰êó udfMÓ z ËhÑŒfKœ=Y–C¿ÛãuŸ?¦¡¡>';·¸¨¬¥µ©¢bÎÌ•‰ Éf‹A§4¬yÜþááá±1„P’Ä`Ї1òzÝ£c®øøDÀŸ®jªÇë ½ƒÎÜœ©% Ãý##}ÿbÚ§iÝ횆†wÅŠ®ÿ¾&Œ…ªBŒ£#ˆtQÆ2[\R &Ñ?'¦b±›› ËÛ&ôÉ0a¿›˜nЊkÒ ’;¥(5#Sà ˆ…ËVÝÔPw–gYŸgÜ놨š(DŸ~T³Ç0 !Zfvan~1/ÑÌdYôŒ¹ô}Rr&b@BPO €Eñ¬L4•L6H@ˆ0Q.6ìß·[Ð 6›íæ[ï0›-‡öí9yâØÜ‹/YcñÉ%/¤ÇÙÅ2èÅ—^šZXÀóÆXQÔžžž§žzª··÷á‡Þ±s‡ªªŠ¢^¨¿°qíhXÓdYlii½p¡î¹ç_VU…g¹Â‚©ùó&%&ø|Þ?þå¯þ``Ù5+î™=Ëj1XMÇ1,Â}÷ƒ-?þñ†k—¯ dEU:xúô©é3*22²î¼ó>žeEQŽˆ2&QS‡¢(ª¦jkŠªªrýźCû¾ ì¬øøä²’ŠÔ´Tƒ:HbcOÐ èÔ©ŽÝ__€Ð¸pÑòÌÌÂP(²ý‹ÏE1²qãý·ß~§Åb%„0ôŠ" É‘¯¿Þyú̉%K®¾ûîû’’R!²¤ŠrDÅ™3+·ly;J¢jdRGQS …+´¶69|€a™·üWNNþõ×ßB&“Ùçóét:UÕ ÏqmºBX–¥Ñ„`0(ðù$77÷šk®yøá‡SSS¯ø'UUU}ô%¨•—————ÿÐòÿÞ{ï '&&®Y³Æl6#„DQKNNž7oÁ欨¨´Å9Aà8ðöÛo?øÐc1“/ㄬ©jμª9óï½ûÎë¯ÿqtÔEûÏ:ŽòE+*f=ûìsS‹J·oý\UTIŠœ8Y³gﮫ®¾vÞ‚E14:êŽ!˜Þ‘HXÄ`½^§ª2Bç†a4UêÓ̼²;JË*.œšQQ ´È™Ó'1OýôyŽåMÛtÿÃÇׂñÅžÏÈ̼ïÞûÿø§¿ýõÏaôV³5Ñ ÓI¹³µÕélu…‚AN7wîÜë¯_=þüöŽö·|´|ùu`Èëêô†ôŒl½Áä9Vó]CÝùÑÑÁ >DUUgüðƒkoZ×ÒÚêq{rrr/ÊR$7#“’–ü>o}C£Ýž`·;X–£ˆ¿?°}Çç¡pdýúM-(4õ6‹N§Óñˆ úùÖ`$²ö¦õŽ„Œ¦H/^Üw`oQQéý›Ä¸x±Îf³â,ËT¯¦Ò]ε£­åÛÝ;{œÝôAαByéÌ‚‚R£Ù$1…IHâ:u¢mç¶Z‹9~ÉÕ7¦§æ Ki|ÔŸP^6ÝjµÑê!®ÕÕß¶ý³’â²_xÕd6S#­¢(àp8˜ŸØ×ß=<4pË­ˆ†!šJhª¦)n¸Xwöì‰ÂÂâ²òéiii‹U¯7¸F»++g3 RU5+Š9çt:=Ã0ÇÆî`!¸t©©pêTŒ Žª0à ºå°+ „¤»³+.Þn4*fÍÆWÍšU8uêþð{BHfV6Ë IÃ@‚1ˆ½hÿ?¶’Ø`>vÀ„æjÐŒ 1´Ï©a@§&Dk(v~ @8©;Lb=™‰ýoÒ¢*JÃo4[$,Ë"ªª¢iÛýï;ˆ!89%uï:»JJK&Ç m¼sÃSO=U˜ŸWUU‡ÿøÇ×Ož:ýðÃýíooÆÉ[àd—í]wÝýÙgŸŸ>aÄ58ñ׎µÀøØ€aÙysuuv””N·˜-uuçÜî±²ò-ÍM‰ IΞ®ùóªþn¯Áh¶Y}@††œ„«%>=½hh¨+hnm=!Þ`Tü’$‰CƒNŸw,+;Ïd2Ùí —šó§”–ÎìèéêlõzÜn÷ØÅÆ:@€Ñh*((JOËÁ44E–ûz»tz“¢(‚N'ð< @tééY®‘p8‚U%ô;UU¹¢ùcó7Ô¾ž¶ÿ‘¡ž6Ã0Ñ ÑP%1Àˆ `ª`gIŒå4QÆä Ñ= M²”#)­?úÁ&u“~è† J…ˆÑé)êio|õ·//Yz• ê뇇GO­S- ‹¢È²l\œ"Äñ<Ës€ p(àóxÆÍ&kvN.BŒª)T›cê— «¢¤'x1±ÏFúû{ö|»‹ã¸û6ÿ¤¥µõ·þqÏ}$&&îÜþIYy…Ã?©þû¾—‹@ˆ¢(f“IUµ@ ¨©Ø`Ðuww€×¬^-ðüÁTW«ªúòo#ËŠÑ Så°Q‚AYQ4!ÏqYV^ý•䔤•+×äO™b3¬&ƒÉÀsÃ84êÚ¾c‡ÛX¹êúÔÔLMò,_¼páèÑšä””[´çU%š¦Ö×_0™­F£YŘú ƪªI²Ôçì:|xoKk“¦*"žãRS³ŠŠÊí¶£¦gñ™'h õ};¶áXËuË×¥edGÂ2'ÏHIN-/ŸVQQEÝ ñÜß~»kttäÎ›Š ËÀ”-@!®,ËJ¢hs˜.^œ7¡^¯E‘hMU5MQ[[ë/œ7-ëÖß¼ÔÔ¸ûÛ¯SRRoXsc$)**¢]è{†Býýý½}=™™ÙEEEŠ,q<ïpÄCHœÎî«®ºZ–å˜+Ä(Ьj*5BššÊʦ1ÁMM3§O …BMMM1¹yS4M£ÆgÅÅ Œ1}øM(ÂH4{+–IA|±kZ4>>.!^G 1äy=&XQñ•s{¾Ÿ}Fh"´Ïç÷xÆSRÓy^ ÍU–e4 «ªöïwD'W±é™‰‰ÉÛ·o+)-žü«W¯^²d‰ÕjefppðÝwßÍÎÉûò«]NgÏc=6wî\º“]±½éõúÛn»­¦¦flllãÆsæÌÙ¿ÿ”)S~øÓ»»»ižßLƒþFFF¾ùf×ûï008ðØãOUUÍAfgg³,;}ú «Õ4Œ1AŠgåyNà9Àñã'-^òÀ\ÆÛFÿ{úÔÉÇÌl6-Z´hÚ´iW]u5õB"i||¼££ãbCÃÀÀ ¦iÓfTܽ龹óªŸ|âá+Wýî•W^xá…뤥¥å,Ç2 bYFUMÓX–UUuöìÙ²,Ÿ8qÂëõbŒív»ÙbeBÀs,Dzq¶¸Ì̬ÎöæieÅ‚Àÿí¯mn¾ÔÓÛóáïþôÙ犋Šï¹ûdzæ8;ÛÖ®Y¥™³/½.èõîÜúN¼Ýñ7ÿ³  @–åÑѱ†Ææþþ¾‘‘Y–byžMLHhiiY½ú£Q/ðLGGûßßø“Ñh¾\gÇž»Ž„äÙUÕBDPBBò¼yÕm·þh£Õ×ÔX_Y1·¯¯WAà““2=h'Oí§„#“Ñ !¡pÀ5ÞO€:ÁŠxÄÇ'‹‘B0#³`p°§µ¹QÐë†-.)Ñ ¦ööæÁÁ¾¸8Gjj¶×;:>æ …C¡p°®îì… g†šè ¢¨vG¼ ÁÔÆ2Ðb¶¹"AQ!2ƒC]±î$ß·ßp‚A‘EBÍ€àD–4ƒ—Nɤýkb ²øA*ÅÀ3’(™— ¯ ­P¸YtÛ#ßëÔOnYLx‚ãÃ}=½%ÅÅ/¾ôByq™¢ªï¾ûî¶íÛçÌ]ˆH:ƒ `Žé¼!@Ñ&€’v š-æìœ<* PU<xyg†BBÁ!Ô¡²?†aº;ÚŽÕéëíY~Ý £ÑÐß×·z媪ÙsÇÆF\®¡¡ÁA[œcæ¬ÙWˆ'ÿÊ Ëªªª×ëEeF§x?}êTÑÔ© v»¬áïŽzú©ŸƒÁææ&‡=ŽUS(ɲ¦É²:B§jA–…?öS½Ž³š 6“žçY„ÐÈðȧ۶—-¿.>>IU±,ËNgÏÖmŸggåÞtÓ:^ÐÓ"Æš,+áH8"Š ËS§„¦iŠ,]jj8yª¦ùR#¥~šÍ¶üÜ©YYy&“•娸}FŽŸ¨9Õ´{×yBŒÕ Wegçóïu½óößo^wû²k®ã8îòñ×Èà±ãGÌ&Ë’%W§¥¦ Ñ0š¦ÒŽ%XU±×çÕŒù¹¹EÅ¥Áp„Ö7XÓF†Ïœ: æÎ™‡Ø3â€222SRSAP̰b!÷îù&55}vÕœÎÎŽ_ýò¹ÁÁþ„„¤'žü©Ýᑈ¤(*dMÕ‚]nÙ2³bÆÊ•«©DV‘ÕžÞ®êEKü^÷ÎÛ;Ú[×ß|SKK³ÛíNLJ‰OJ‚° ‚‚1@”ýB˜˜æ9šB ³%àr—«˜áYMU1Q¢ý‡Ø(ùrûa¶E0&¢áI&w@à¿èlBý~Ÿ×ë6™Y9@@4˲„`UÑþ‘„ÿMÈdRÓ3¿ØºõáG±Ùl“=v»~’’²xñ⦖öœÜüŽŽŽM›6Y,–êêêÇ|²S‚®èêêjŽã"‘Ƹ¨¨¨¨¨è‡sI’>øàƒ´´´>ø ³³Ób±È²<>>ÞÕÕåt:³³s*gÍ~äÑ'ãìv:ŰÙl6›­»»»»ÛiµZgΜ b‰4Bƒ^ϲŒªjgΞݼù!z>€ q¢Q1çÏŸ»ë®;}ôÑ믿Þd2AÇÆÆ!l.n IDATöîÝ{ôèQ¿?Ÿ››[VZºtÉRakkë¯ùÜ©S'­VÛÑ#G^zñåŸÿüg:1+3“ãxUVX–¥bZZjšVYY‰Dêë뀢(>¿Ïž$<‚€uÞüê“'Žß~Û­<Ï!ÄcŒÏœ>S^Vú«çŸ{åµÿxéåßoùàÝKV›=Çnì‰gï¼ýw¢O>ý,=#£¯¯¿¥¥µ¹¹%¤)„a0„(!!áĉcˆA “†ú ,Ã^jj wÅb±Úì‚ KIN±Ù çƒÀÌ™³ÒÒ²«æ,hoo=}ºfÞ¼Åi)²¢¤¥f´w´M-¿Ô\_[wŠ`l6[“3›[ÎëtFP0ècYNàŒî±¬„xN¯(¢Ïçöù=Ö|^÷´ÒY’*YÍfcUQÛÛ.ÄÅ%&'g°,Ÿš’››[âñŽ»Ýc}½m"@Sù/²¢Œº†ÒÒ3MfÛðHÿ@7!!ÊhŒZ• ÄßqC˜›?M‘¥®öZ@Àÿ¬¤Ä3‹ ¿<¿üg'Š?MÃP]4_懻`T*[ýFû5Þ軑ˢêöæú¸8ëúuëgÌœ–œ˜ÒÖÑñé§ŸÖ^¨›³à*o ‹ƒšô4€6<8Ä &;'çXÖ0­?¢XF&I ºMA d ¿ïÀ¾oÝããùùSâIlm2™0ÆÓgFGG~è`0xîÌ)‹Õ–››OO%ôm6»=&·Ó B[kóêÕ7èt¼^¯ã8N’ÄmÛ·?õÄã<Ï ¸<oœÝ®É¬aG\œŽç4¨ …ÄÏ?ÿðÆ5ëyA^ò F£Îf1š‚À²ãï'Ÿ~Âñº›×ë &QVEQr:{:€së6°,«¨X‘UU£rMVI”dE K"Àc,EÄO?}¯¶ö uF&%¤OKIÉdXVÐsñ †ÔtVo$§N^ܳë”Õš´xÉÍYÙ9ãïí[²ôêÔ”´_üâ·:ŽFFƒó dYÖô ¬½ñj5SU5éÀ„› ùNŸ:~çÆ{+fÏõù|ô¯?>6òÝÁýcã®iÓ*-fëÑ#‡|~ÏDP!˜aÄ ÔÔ4Œ1€°»»»µ¥Åí¿yÝ-Fƒù«¯¶ïÚµÓh4ΘQ±ným‡ÃíËÈȇÃcc¬agwçÛo½¹æÆµÕ‹¯RcMQÔîîN«%nh°ÿýwßñû½ƒ!77ïÏú  ´¬Ì¤×SÒ€ªaŒ }'Œ1!Z´Àƒ„f´J$™h’ F’DBbX5 !Ñ4+BÓtì€5*1f^OÄ R——Ïç—eI’DƒÁ˜™™M%µ4Bžc„€,ÇžäºúýY9yßì8þüù«®ºê‡à$úõúõë7ܹ199%==ý¥—^zà¶lÙrøðẺ:‡Ã1ù;ÓÒÒèó0}”ëëõx{ì±Áß¾òÚW;·Ÿ={>>!B˜ž™qÝŠë§L)0™L,ËFÏ[”\Ï0<Ïð<C¹þô€¡^øü¿?H“•0Æ!@‰¦Ž×ÐÐ}÷nJMM}çwŠ‹‹BN§ó7Þ8~üøõ×_ÿÌ3ÏdggOdYcBTUËËË/..1 &“9 =øàæâââ§~úÌK/þêçÏý’×ëU-Š¥§E!²h*îììJMM5­n'9»»RU5ÞaÍšU¹õó¶¶¶¼ð ëׯÿýï_ÜvÛmÿ|ó{ï×ë{è¾k¯»þDÍáƒwWW_óÌ3?ò±‡jŽíê쌳ÇÛíñôQù!$0 œ7o>Á„g9ÀO™’_X\tôèñxGB$V5¥¿§§¿¿çDW;ݹ9ŽƒîÝû,‹ ,Þ³g—$Jn÷x_¯$E@]­CCýzƒ‘ç¹ñqWYùÜÔ´“Ñäõ ùý^ŸoD–DBÈØø ˜çt“BðxFÝGYÙL¯ÏøúúºGdžÓY–mn®s8Rl6{"ŸÎ nÔÕǰlÑÔ ^§ïh»xÌf+"‰a£Ùh0˜|Þ±¾Þ.šÒ‰F0Œ™^p,˜>Z¦ged—Œ ÃL:bÆØeÑ‘š¨'Áà &  Ò0¡A „ &H°Qµ!(ºÖðãg¯X<ß+û¨ˆ!|Yü Ÿ›Ÿ’’‚ ©«­½PwþB]m00M…,ƒŽ;†4múLM#Š¢Æ¸ðh‚)C0ÄD£x¢QÇÑåUbR–e!Dªª‚X¿$6$€`4‰qlâ=2Bxy½p8,Ë’N/ f£Ñ$I"ÍÚXi ‹TMÓ4ü¼ññ™Ù9Û¶m[ºtéR:âõûý‚ÀóGp¹\•••GŽùä“OB¡Ð¼P@0¤ÊQ Ãd±¨Çã9tèÀ«¯þÇȈëáGKMI&Ü÷ÀC:ŽaÃ0Úf¼Âz1A_ÃX£áÎ"€Ñ``YF’”–––´´Túh‹ù• PUäãÇj¾ür'DZ·ß~{aaaOOÏÛo¿}üøñÛo¿ý׿þ5- c4H}ÐÁÁ¡c5G»º?ûÙ3F£ñ‰'žüóŸ_ÿË_ÞX¶lùw‡^}ír¬jcŒ Ça Se1P´€ ÓŒŒx|þøø¤äÔ “9Îb3LX–‰7 ííí999o¿ývss³ÓéÌÉÉùç?ÿùÈ#šŽ‘px×WÛG†¡HiiEnNzÕœ9/½ø¢,Ë…S‹6mºã¸(<Œ`Q”ÆÆÆº»:úûûsssW®º¾¯¯GSU C‹9Î`0ìújk8PU-F¾Œ^Y–ëègß¾oE>}ú8¹,ø×ÆÇFÓÓ²ŠŠ§§$guw·Øãâ}>os[½Ù—”œg—F†.W8:Ù†(%9kd´_‘%ª+êÏÎÉ ‡C¡PØíOLJ·Yí#®‚‰{|hl´¿·§CQ%Þ4}úBžF\ýÁ ×h²‚ !c4Z††zÚüˆ˰kXƒà²ií2!„±j4XT%"K"Ðh´üc—ñiƀ،ÉbKÍ,ho8¾ÿ6QOðe+Dt,«ÛX ãè Ÿü0ÏN>úM¢‰þ‹óàDÚ-„eƒ^gÐó‘䤄)¹9&³¡­­ãwß™9³Êd±»ƒíòˆ—> ¢ ~Ì5 ÉÈÌbX–aÖbMKt™ £½&€":}!cõı£'OÔL™’ÿøÓ’Å‹y?~üxMÍÑŒŒŒÇ<==]Q´pXbfÍ 7}¾õ³Í›zõÕ—›/MÑ0ÁÑÔF@€X¬æ¯wžX±b…ÙlfØ(ózû¶mï½÷ŽÅh#RͱšiÓ§ó,êï øƒ›ïÝ ©DVIÑË2 #èô¼Àò ðàÞ_þâ× Çº½¾O>þpÊ”)6Þ1ŠrKsóþýûRRÒ¯½vÇ ²¬Hr(« 5EŒ%Y–dYVÕ²é’$kªªÈr ðû„`{\‚ª©éiÖ8srª>!™×éqíÙæ=ßžTöªknÊÊÌ#@«¿pþôÉšwmæyŽÓꎧG2ˆ0 >Ÿop ¯¨¨˜G ÂDÁ†2(úb ‚ ¢Ìš={vÅÅÙ322/^¬ß»ç›„„¤Ysæ›MæîîÎp08<<`6[V­ZË0(.ÎñþûoƒA»Ý¾båªp8!”$!˜–––ššÖãì:tè`KK³ÏçE‰šp¥%媪™Ífú•$©··÷Ô©W_½ìÄñ£ÍÍM¢ÎÊΙ3gÁŒŠÙÍÍMii™+®¿aphp|Ô5»r¦ÓÙÝÝÝ““k4še™¦’DyžXB4¯á€NgŽˆa¢iTñ bK‡aX„¬j4n¢‰Húh0Ùd™ eæ•0w£ÑHaÖE‘cÜr„ „°Q•Û3øÿ"“ÙºcûŽ—_~yrø…¶üõ¯mll@ˆu8âûz»B¡PZZÚSO=õ/ûK„¿ùæ›YYYÇ…ÃáÎÎÎ .ÔÖÖŽ»çί¾nÕšää$¯×#+ ˲t¢ƒfX&vÒÑì®8[#@€hJÇ z½@0‰D¤;v._¾ì²Þ²˜|ôÑ–m[¿hkkËÎÎJKK{àÚÛÛ7lØðôÓOÛívø}:„@’Ô#GŽ|ùåŽp$²råõS‹Š?ûìã‚‚¢²²i:½îà«×ÜøÐ÷]}í A4U¥Í-úiQWWw|BrVNA$éíëé뿘ž–m²3<à hÐëgÍš}âĉÒÒR„Peeå\.ל9sâãFƒcÅl² ‚ðà#O—Xmñªªäåç775MÊó<ÇñF$Ièokkåy¡¤¤tAõÂH$òÛ—ãv»o¾ù–À…º Î F“Ùäq{$1B•ßG4jJ‰6ì'äZªšêóûêêN &öõöuƒûm¶ø´Ô<1êïëC¼#5IÌr¹úL&[^þ´ìÌB׈³æø.ZˆbÈÙÓ¥×F\}©)F³…怽%#=?ðZ¬ŽŒŒB kã£ÃC=@»#@€ !q(ŠL“x“’2}Þ±H$H÷½ää´±±z $$¤$$&77Õuu^ìêj”Ä $Ÿ¸sx½Qàõ¢VåÍ?ïíj$ˆÂ N¸GM+&ræ?üÚ/ó¯Î&)&Éq.[êi1(¬Éhà9äöº‡Ö¯¿Y¯×>ô]}CõËV%Å b Áe÷aLû«È##CG‚ÑdB±ˆ2Kcwÿ$KCTŠ“Æ¡PhÇŸ†B¡_ýê×7­]«×éN:±eË–ÁuëÖß»é^ˆªª —,½ú‹­Ÿ554”—O?súdEe•Ñd‚Át°­­åþÍhšÚØÐçÈÎÎèìì,*( šâ /Ô×ÿæ¦uFž;ÑÑg›’— Áj„Ý¿ooIq©ÙlÔéx†a%I|ó?ÿa6›““’×Þ|‹Íj—d<::¶cÇö8»cý-·‚$IŠHÁXQUMʼn‚’$˲¢(’,B‚Á ¦(¢,G"’ ×3 ;}FåéÓ59ÖÌ,+Ã‘Ž–ž>ü–ç, ®ÈÉâóy÷ìÞÑÕÕ1þÂÇû©Åa”œÉ@†~Ñ?Ôÿí7_•—TVÌá9!†W%ê}2L”?‚UŒ5­±áBmݹ‡|ò÷Þli¹Ä±lÕÜqqqš 33r"‘ÓÙÕÓÔÕÛÛ]V6Ãëó””LëïïÉÌÌélïgÏœ¾yízƒA¯×›Ús©©qæÌ ‡Ã><<8ñ dVS4UVõ‚Î5<Ìët' ¦ô´¬-¼+ËQÛ~O·³¢¢ª¯Ç¹pÑÒ©%n÷˜Õdîhi¾îºë¾þú+I’fVÎÁ’(û…Lì‚—F cUÅŠѤió1~.H•䉠¥ ”!„Ìä„ õ:°i?X_±/4:X5K£cuˆBHQð„û>v¾üß¼—kdÏž=·ÞzëäŠøï¾;RPTZV9×l±øýþKMõ¢(^9éýo[[ÛK/¾8sÖ\«-îÏù›,Ëôqgwdåä\·ú&Ú8e Òëtµugó ¦jCÆM£×¡íMzýc v} M².Qˇßìéé›Í–þþ>UUÃá Óélhhp;vÔï÷Sˆî±c'~üã;«««9Ž™ø5Mjmm=wîÜ™3gFFFæÏŸ¿fͧӹëë/A¨®^8uêžç~öÌsO?ñØÒk®™;þ¹3gfÍ©âUL¨¾ "ãÜœ|goO{G„0--37o*Ãñ² âXŽ…•••]¸pþ½X–]¾|ùþýû?ÞÒÒ24Ôï½iÝŽÕž9³Â`´ˆ¢XSSc·°¦¿ûî»E‹—pƒ!8}úÁdÑâ¥Usæ o±XM&³ªjwn¼ç·ßÚòá{×\³‚çøÁ¾X,;ÙlÖ”ÔtGœ½þb]8ÊÉÉ3L u⺄óò F].ƒÁ022<6æB±,çñŒyÜ£1Æ<èîn ÐãÏéîª/)ª0™¬É)im­ ÀÁžÃZãì@Žå &¡ /ôÏš} @Q•°o<òúýîøødA0a¢"‚„k,Ë"†³ZâýÞñH$@?^vN~ΔÂïö;qû ºb$ô}U4€èt&–×ã´…§H¢"‰±”lí{ˆ5@6˜ªµéðuB þËjoòˆmE“£Gᤴ3ÚQ%Aƒ^g4è Ð.]j°ZL?ºeBhçŽ/1³«æ‚‘@(Lwä(–#Z×ŸÏ ERS3XŽe–Aˆ¦ËÝê&òÛÅ(š#=öBHêëÎwè`YYÙ‹/¾XPPàrüöå—Àwü¸³³ëÚk¯…b S((ÖH$,"Ä­]»þÃß¿å–;Z[›>þ胻î¹"¦|I“É$ËÁdÿ¾o_ùíKyyù<òh]mmÁ”|AITGâñ6³™gÙUεק¦¤e=wøXÍwo¼ñ–Ùdf9èt:E3›Ì?ºå¶¼¼<Œ±(JõõΟ?¿|ù ƒÞ()Š$‰”Ží…b¬*Ьª¢,)’,IÕˆR„ªªªŠ‚£Žãy“Y¬“™46´;Z;88¾xɲÌì1ñzÆdYÌÍÉ¿aõÍVkܤÖfÔûBe/c.WAAÁÂ…WQ\!@ȳ,‚(.§À9Bž‘HøÀÁ}Óʧ×]8ÛÜ܈šYYUPX¢(²ª(’( ô;€¯°°¤¼|¦Õ§(ÒÈÈ€¬ÈŠ$Íž]ŲÜðð˲ƒ8ÁÂٳ惡ÁÁ!gÜf‹›V>³²¢*#3#kjŽ$%'çää*Dñûý»¾Ù®(òäSšßà9WQé´‹j¿úr›¢(ã?ýéõ¦¦¦ÄÄ”œÜüIõßå2Pc-€À ã¦RÓàyªÈ„ˆ¢±_ßCI\9A€˜Rý.WrÑNÉi…´µÿƒÕ8ŽŠÂÔ+Ú˜ÿËâD•¬;wî\»v-5äÑלÙUé²")Šâ3 ², åååMSÁçûö³gYA_Q9K0šK§Ï„Ð&9ÍŸ‹¦jâ]³wÚŒJÓ¢«p±ß6æ1žœÎv¥·AØÛÛ³ëëçÎ×:ñv»c×®]4®Ýd6åäälÞ¼Ùçõž;wÆår=ûì³›6mJHHP…:1ššš.]ºÔÖÖ6<)9ÕŒøCá(¦-¶­€!ƒCƒz½!-- @ȱ,B Ò£ØÓb D€Ä\ï4ýMkoo­9r8 lÞ|ÿ¦M÷ †;wnß¾õ®»îYºt©Ñh|ÿý÷;Ý]Y Bccn !¨š=ÿËÛÏž=yóÍ·}ôÑ{§N˜;w>ˆ¬×ë :ýÏý¼gÜÝÙÑõ«_¾8wî<Ž{þùgÖ¯]‹U5CÙ 7Þq÷7­Z±ùî;žÿé:¯¨„aÔï¾;tãMk+*fÒ]'??ÿ‹Ï·Óƒ°¢h==½»wïÊË˿馛U…C³åML%E‘dI¡êYÁXóù½uçN@¼^ÏÂÅËñ²ØÌ9¹©-Í-’¬þå:sEeÕµ×?öݾ}ß,¬^2«rŽÅbeY†a8BˆŒ¹BmÙÙ¹,b±†³2³ š¦"1 ‡bâ½è„‹fRç„‘ˆ8­|ÆÙs§z{œ“¤ääÙsæ‹¢4Ðëìëïa6+3{ùµ«!@Y9NÈÍ›âóúŒzm^Y-6†åH$òåW;!×^»bÞ¼ƒƒƒ©©©íuÎúüž””´E‹c STU•c…'QÁô¥¥e55‡OŸ>Ñ××K}HUUsŠ‹K¶mݶò†µ+¨š½û1$åùþF©¹bt:SHõĬôð‡L“I¡¹È4šC cÿO¢©Åz5GËǨ²Œ@@¢¨êÿ”ý¿Ú ààÁƒ===“ݼNX½zõ;ï¾_:½2ð»FG1Æ'OžÌË˳Ùl’$ƒÁîîîãÇûí·êëgÌœ]1kÏs "Â0t#¤í2£2gî<–Ó¬Acß0‘BLp ‡=ɸL&¶FI’¶}ñ%„dᢥwn¼G§Ó³gbÐ1xË‘#UUUv»}ùòå»wï>yòdCCƒßïÏÌÌ,)))...++ëèè¦WÒl6/Y²¤  €æiLüÑY@€áïºûž_ýê—¯ýþ?FG‡Ã@ý>o{{‹ª¨¥¥¥:N”5% óª"› †EK®ÉHOÏÌL·[uz~JÁ”ÞÞÞP(d±Xè/{èÐ¡ššš¿ÿýïŸ~ú©ªi³«JËg¾ÿÎ?>þðƒgŸûuZZj(***¾x±Þd2›ŒF–e©­‰]^Ú­Ñ4M’d¿?ÔÜÜ2>>NûbA†aE©^x×3vîì I’òò GGG¾gHG Ÿ‘‘³ìÚ•oþãOÓ§WÌ™;¯¿¯Ä5ÜÕséü…c³gÍY´xé]Uw1 DQ"˜„B¢³§wlÌ=âèhov¹†ü!X’DŸÏM0ϨÇ3!E[@1ÃpÝ]‚ Ã4_: v8’E%Ì@Ä & GÂ~.眣èÓ÷8»zœ„ƒA/Šâÿm œèùHÌf»=>Õ‘˜b´ØŒF3eKzÝ®II¢âPŠ‹B$" !Ô4À@ˆa'­môÃáßeVdŒ¦ö½9&¤špÈóœÙ(ð'‰á¾þÞuëÖZ,–þ¡£5ÇRSÓMÛ¨Ï/Š  ­XIƒ 5YLLNæuz!–e @”­øbß I4G"2!m¸xþø±#ª¬¬¼~Õý÷oÎÎÎi¾ÔðÞ{ïÏŸ?oÇŽ´³D/¨ÀëjjŽ–•N÷x¼@ˆ± ÖX£É4oAõ—;·–O›QRRvòØÑiÓgètz„`(8z©‘AÌ /ýfÝÍë9Ž…€47]lkm+/)Vd%ŠXM³Éžúðw§¦$jðGdpd¨ñRÃûï~Hõ–1XÑ4R[{®¦¦Æf³¬]{ 0’M£ÊY‘±†UUUT5"ŠŠªˆ‘H(TMÓð@¿sÿÞ¯Ýî1ÆxÚŒŠ””t‹•3y†º:;“’V߸>%-ýØ‘C®áÁÕ‹-º*!!‘e8ŽåŠ®), öôôö:gWÍãÕ÷N IDAT8@x¡þÜm·ÝÅ@ÀóBTѽƒ ¦© k“ÄZÄb±:{ºúDIdY¶²¢êÔ‰c>Ÿ'%9­¤¤\¯3AdI©¯?ÛÛÛíöŒ«ªrÕÒååÓ=ãns¦Åç 2 €Ñ —ÜÜ)ï¼çàÁýgÏáykš,«‰‰)éµugã{{—.]F0¡±&“åꫯݾýsz²,»üºU‡¨¯??9ƒ,33£¡á¢ÕWXXty$AšŸù½µ³d¡Ë÷>Áá€Æâ¹bIÎ(š/˲žà±}¿n#11¤†û APÓpTb•Yc޽N–B4v¢)J€öÿ7(Œ®W·Ûýõ×_?þøã—W7ëׯã7/œKLJ±X­S¦ÿæåß=ÿü/ FÁD–dƒÑèˆOHÏÈÜp÷fABñÜ (&uǘ ÄD]O)’dµ9ÂᢹµQ› ñžt:Ö4Œ1u³,#[Zš÷ïÛsçwQht‚ÐÄqBÒ××÷å—;dY~ê©§*+g/[¶ìÙgŸMMM­­­mjjòx<éééwÜqGnnng:ÑwÔë@ C8‚23Ò}^ÅjÕñ¼ßïáy}|B‚Ùb–"Q%EáyÌñ¨¸¼œL«Õj2é!Á}}}ß~µµ©±ÁéìÞ´i]òôýwîÜùç?ÿyÁ‚<Ïÿâ—¿ºkSõgŸ|¼aã}}}]M—.f¥e8íF£áÂ… 7Þx£Á` Õ`(g·s ƒ,Ë9âEÑüÁ #!õêkV¶·µôôtOÜÏï¨ÇíÉÏ+èèlmi¹ ù®°ÙaŒ%IîîîxóBˆ¹í¶;ʧMëêrºÝ^£ÑDˆzæÌÉÞÿ¯ßýö…‚‚¢¢â”””ÔÔ´ø„äääxE•639%]UdÊc ‡ƒ>¯'ô‹bc,K¢Ë5$IÄ0E–/5™üÓ{zZ©&%6BŠ6 ‡CcÃ\‡cı‰… !@ g0˜ŒF³þÿ°öžav]åÙðj{ïÓëôÞ¥Ñh¤Q—¬nɲldlãnŒƒ›$NB€‡”7ÁÉ÷ñšbÛ`6^FuFmf4½·ÓûÙ{¯òýXçœÉ&ï÷^É\ú!Éò™3g¯µžõÜÏ]l‹Íîrû.DB ÍUôlHiƒ7q½ŽP:©Aˆ ÄeŠ‘€\0!YÜ~¤.>Š q}RLΆ_@«¦X­ªª’T" ÷ܲ[Q´©É™ÁšÚz!P8’0ËñË¡ìO€ ™JD"áŠêjŒ„ Á(£ss¿…% r¿Ð‚|þ豺Ïݵû–;ïüÄŠöv„Àÿúç0 ú­o}»¢¢BVhJi&“™žžzéå—¬VûÜܼiÈL. Ò©dº¤¤¼¾¾éȑà õñxôR÷…u7+?ûì3 ÿƒjll¤”bŒ ÓøÆ7¾ñ…'þТ*©DJ7¹×mýçï}Ënׂ¥rQ@zû½7mÚâóùeV‘L‡ïîî>tøP}]ݽ÷ÞoÑlÙ¬aš¥Œ n˜¦|?ºif ]7 #«'‰t2¥F 0ÝÕ}fltÄ4õҲʶ¶|ðn6›¶Ù¬à »wïÛ´a‡ÝåšK&ã+WÛí¿ßOˆ‚1Æ’Ý‚qî Íf¦g¦,šuË–ò¦ Ì[m6Ÿ× FhÁj“sÎ…Ì%É‘‘ʃ½ 0Mjš†Ãáì_ÒÚÞÜÒfÕ,!JÍl6=55qö\§4pÇXñùü‘pÈëõ…®®óCC––¥;vì¶ ‹EÓ¶oßyíZo÷Å®P(жlÅÝwÝZ¹b|ÛŒÑL&³ÿÀ[ª¦NMNÊ "Û·gÏm}}½—/w$í2-ïŽ;îxüñÇ׬ݨiÎ3‰í.ø[/ÆèM¤9 ¼akHUÅb8D^i”…0ß…ý’:¦Â© .bD3(3x† )¥‹gþ§¾„¯¿þúOÝY[×077WUU¥g3çÏŸ½ÖßW^^ùðÃPÓè½ÜuéÒ¥t*G…ôöò²ÊàüÜéÓÇ—x=¾'|DV3B~¿?“ɬ]·±}E{&“‰'Sãt6-XѱnÕêéT|bblzzª¿`nn6•”ÔT×[-v‹ÝaµØ1V¢ØíNUµøýūݮjªiRJ©af!†¡'‰ž‹ƒƒ×„àˆªªºL:€n¯Ïb±!&š¦AcÑH6“árxŸ«_¹aªi‡Ëéôx¼~‹ÍA BÄs“xăÒÈ­„"ï/bV (“á > Ý—û—,†@c¤²Zä¯É¹Û“ì.!\pɶ°Û4‹ªj Ž%báP`ãÆÀ ç/”úüʼnT&‘NqÆs=´ê@X‡©¡×ÖÔ ˆ„#!§L 9ã¢A‘Óg§§»»Îº®Ç>÷Äî]{JKý££Ã/½ôÒ=÷ܽgÏ^)½@˜¦¡ëúo¼A°¶²} Æ„RàLpÎÓéôÑ£‡%%%Å%%×úzÛ–w ?{ÆëóWTV†~÷½X¬Ã0³8‹Þ¿ÿ-ŸÏ·oïnF ¹ßm±X•`„ €È!Ñ)xñ¥_þâåW~ø¯ÿ†fŒ !ù«WÊË*vlßÙÔÔ’Ië‰DŠ Æ83)å”RÎ)¥Ý0©nèF"O$“ét:˜¿páÔØøˆ°×7´ì¾uo_ÏMUË+*ÁÆ„Ç[äñýöׯ,oo¯ªª+-+W!˜<Ï37’…Ø4õɉ ŸÏ³¤e™,sB„ÈøøèÊöÕ„`!Ãñ$½ ÎË{ú8”Ò«=—NŸ>±qÓ–k&56mÚ8Óy4:]žêªúÕ«×õ÷÷1f®êXsérclóM;ü¾âD2Æ…xù•Ÿûýþ-[vƒ³'O½Ðu^Ó´t:­ë™BHŠJTN9¥çaÄ8›ŸŸ=pðÝÆÆæË—º}þâÕ«Ö÷÷÷ÙŽé™iYów&¸víÚù—>óÌMÓ\µj-çp!ý¥2‚q.ÄGÝù % !˜ßJùjW¸ä¼Oå·û0|ÈPTúæ$†‹äMÆ )FXPÊþK@è¿õ%[¥Õ«WÇb±ýû÷=z´«««¿¿¿}ÝÆT<ªiVŸßr.õBHr-¸ŽÐ.8ÈyŽ='›:Œ1Æ„9¿Ö×38ЛJ¤lv{YYYKk[iI©Ýn#«ª¦ªªª*V«MUTÍ¢Y4Õ¢iAÓ¤§SÓ4Æ#$ˆ„ÃW®\9{öô¹s熇‡«««wìØñ×ý×ííí·ÞzkGGBèÙglš´ªªbûöí555EkGy¥ó.O6=•EirôØ‘Á‘O>ò©=·ìùààáõ6œîìÜ´i‹B°Õ¦ n‡¨ ±X4UÕ¨a¾þ»ß¾ûÞ;©dò¡‡ú‹¿xªµµµ¢¢B¶ËðúKRmm­bffÆårýíwÿîKòÇ““£ÝÝF†‡ŸüÂ}>ïÕ«W†‡†{÷î}ùå—¦gfCÁ`(8_\TÜÙyêÚµ!D&üÉ r3’˜”r¹žV BƒC×êWu¬yÿýw>ìÛ »‚Ï~ö1‡Ã93;/åpÆ8c&:"Jm}s]ý("÷õ^ІCñx,NY­V«Õa±Z-«Ãé**-óò"7ñk6MáØ5!‚`äxßÐPŸäUVÖÖÖ7œ:~àñúöÞu¯¦jùP{¤ª„`6“2t™f>;Ž !0ÁcÊå‚3&“O¹à0ÇÏd ×úå4x\ðt2‡æf'g×Oñ - `ÏûnÚPD @¹Aò*šóì‘’a9æ€"繘û–!¤`bµ¨ŒÐôÌt*/))9~â¸i°Úº·Í‰§3Ù,¹ .rN ÌÍ*šâ/¯„eœ)“NWyû›…Ë8çPÞà„EB7^{uÅÊÕ÷Ý÷`Ey¹Ãa}饳Ùìw¿ówþ"oÞmQÊz{{Nž8¹mÛNMuE‚M“¦~þü¹Ñ±ÁŽŽµÇ>{öLsSËÈð¨Õj[ºdÙ¡Cû_zá9‡Ã™N§&'&*ÊÊS© “É<ûì³?ú׆ÌDŒi*)ADÊ@(–ú»ï}ïÒåË¿|å7.—‹1‰D^ÿÝk¦aüñ“_:phÿøødIq¥´Æ¦¦ÁxŽª†aêºa¤RéD<‘Œ&S©dßµË]Ýg(¥ˆŠªêµk6.[YWQ•¯ß´²¨Ä/„ ”aŒ!ª¢~òÑÇ¢¨„ä&,o-HvÓB ô÷¦Ò©5kÖAD€`@EQÂa»Ãa³Û$’'uú¹¦Y>8Χ\Ji&“¾rõÒ¿ûMuMýŋݡ`°¦º¡È_rôØééI¡˜ æLCß¶m—ì)-V[iqYeeM*•t»¼}}W››Z·oÛ !ç9ét2•JB("Š¢Ô×7®[{SKã’T*#ïí½453Í8 ‡K[—·´,[ºtB!Üܲ$Ÿê<æv{£Ñˆ\õ§ó±Ï}^׳o¼ñƲe+.Œ ©R¢ ]4ÞÃåbYr”3@ä&È¡{€3†0Îpvûm;vìÔT+Pp5ôd2ùÎÛïX,¶m[w êjë8ŒSJéÜÜìÑ£GjjêlVçË/½ØÒÒ¶~m],¶Y­ÏýôÿM§ÓÒìÇ0ÌÖeËëê Ê2i …ÒéTq‘×0©,/"€˜ œ5ر㧿÷÷ßóz‹þí™9.à/vékÑñ“3[¹t…LŠ!„™t @Á“¯ƒ1–¢I„gô¼ ÊŸýرceUÕë·ï²»Ü˜ä¤0ƒ==󳳕UÕÅååEEÅš¦òÃHzÂ(Š¢(ªŠdþ‚©DâÒµÞéÉñ†¦–Ý·ìu¹½ˆ`‚‘`¦à €1TM!D!ù¶‘B0¥F$êëëííé æ‚%%%K–´¶µ-»ÿþû*++N'ÆxvvöÂ… ,..^»víÎ;3™ÌË/¿¼aÆ™™™#GŽ8ÎGy亾\Á¯ó‘ =ç|ffÆçñYl–—^~ùëù †Ø{ÇÞuúœÑt¸mÙ F©¦*¦aø}ÊX4íîºpìØ±®® 6løÕ¯^ihh°íG¦euwwGy䥗^þÎwäÈù|¾Ç?ÿù® ç¾ýío•••Åãñysu8étzzz2Ÿç^mçΛï¾ûîÚÚÚ¯~õ«EE%òhÅ#Šl6[cÓ’º†¦H$pâø‘Pp~rr|‘êFhÛªŽ5œÑ¾k=<ðVHh*’Τ…`×)ˆ/¯¨²Ûí‘HAls:4Í"ÙËB9¸È_â+.+ Ã0 #‘ˆMMN„óÔ0„s³“‚µ7m_Þ±!øê‹Ï¥Ó©½¿³}õ:„aPÎ8B(›Ne’IIDçŒCc”2F©a꺮§R©L&c†žÕÓ©d:•Ìf2†¡çîè2w!§Á+Ü€€! 8àßB§¾€HÂ8pr¬gÑŒycZl<_0¡.¸»B5MÓŒ1‚u_¼@©^W[_WÛ Ìêz"c¤ÒéEá ‹ À'ÆGKJÊ,6;!Üq—Êàõ’ò"´×Õ}~rb¬¹eIUeõÈÈЉãÇÿô‹_®¨(‡SÊä!~úôésçέ^½¶¶¶ž3‘ͦŽ=´sç-¦i8°?“I{<Þßýî?+*ª7mÜÞ?ðæðÈ aêrZWß°yëöýï¾¹rå*&„aPªÐt:c·ÚÅ’Hd<.¯B@(D@Åd MüÝÓOOÏÍ>üð£7ß¼KÓ¬©TâÕW_µXµÇ?÷Êh4š0L3;—ºLÓ ”ÊB¨†AM=›Í¤3Ñh4OF#ѳçNX,–x"VZVÞ¶¼cÙ²ººf1ÐßóëWÖ¬[vïÍÌ@ªªÍÏÎ6Õ7BB0€ªªbˆF¡CcØ×Û“HÄËË+·lÞ.Mõå¡&ï?<9ÙÓs…1¶ní&EQ9Ï휄ƒQ“ÒÑ‘áwß{£çê%¹ u]ŸœšnŒÑLšf2éü³Ë­šÁÁkÍMË ñDâ·~G¥ѤæË¯<'Âò(/¯øØmŸp¹Ü‚³T2=;7­ë™‰©±L&3>1\˜Ÿ‹PUUÝyê€h×®[«ªª?<99!!‡Ó•HD O<ñ„®g7oÞá/*•2"Ù€|Ìt¾ìÝX å²GçÝ ¥Y/¤,âÆäï±tÄXŒ¹-p1P.ŒÈÏØ"•qS!D²Ÿä«Yl™t:Kø?\ =^¿·¨æ>¬mltz8xÿ}¼üÊËÅÅþ²²²P(øä“˜J¥FGGwîÜù7ó­o|ãësss‹˜V°¤¤lÅÊŽï¿‹~â‰'oºé¦ïÿ{ýµu†aò2KJJûz.º\^‡Ý>3•Í'íAÉA[Ù±ÊåñüâçÏí»ãΖ––t:†äb[TÅ…Ä…ÀªªŠ1RUEþ³Ü @0é»”#+"¤(ŠªYlNGIy…òzˆf'G_ýùÏ–¶µ»<ÞË]gãáÐòŽÕÅEÅ=Ýç#‘p,–àŒaBæg¦ççfF’S®* ÆXÂc”R.¿/ÌëXhêrž€©ªÅå)²ÚÝRÒ¥Y^‰ªYÏ›šú¢D.ÝoQz`~«>5Úkw¸ÉuQ7øÈ€à gR¬`€ f¯]ëq:]ë×m²ZmŒ3ƒòhv'!*gœ ‹Å4ÍÒÙy¢§çJyyy÷Ån…¨›7í2t£»ëìé³'ÒÙ!\QY¹eëÍ M-ããÃÙ¬^][ÏLJMÝ4!à•+Ý¡p Oû‹˜a‚°à8CÍã'NþÝÓO?øÀÃ_û«¿fŒ›¦Ñßßwþü¹-[¶ø|Å©TZR¥"Âívg Ý0ͬL5Œl6;;5uêÔñ¡¡>Mµ*ŠRQQ“Hƶm»yi[EU-î}ñù‘•«–<üè§2)ïûïìÿ£'¿„eë–íB‹ªÉ.°@¶!ff§''Ç›šZÚ–¯œK33Œ B mSôlöì¹Óo¾õZOÏåwß{ë®»îm_Þáóú¼¾bÊ J¥lbrôÝwÞ¸|ù"çôú²!›«¥u^¥ndM“ŽŽõŸ˜‡:D^²ÀyÉëÝrò9–ùíÈ9Gp!Äœ1É® Á µP»Ý™M%å+3ÀŠª†‘ÛƒÌà™”«* 4矔Iů'²¢Â˜ãÿÚU&w•¼®–L0„&ñ€£¡™t"~íêåÒòòâÒr"Ø¢ªªªhDÅ„@„„±hxdh0œ§”Z,–ʪê+W—WVŒ¥¿¥¢…`c„1QT‚ ‚3:?;;<<ÐßßßßwmbrÂív-]ÚºvÝÚ/~éKMMMšªJu#B(ž9s¦¯¯'ú|¾={öVWW_ÏWà€ Aä»ßýî·¾õ-Ç—“E³‚Ä ÈûV¦3™¬ž5 #•J•––†caÆXûŠåí+Û1&N§£¤$¸‹Åüñ­[·>ýô÷÷íÛ÷—ù—V«UîáÔÔT4u:MMMÉdò7Þxæ™gNœ8a†ªª]]]Òálß¾}BˆçŸþÀ¯¿þ:B¨ªªê÷ÝŸH%â±è·¿ýíÒÒÒ––%;wîxðÁëê¾ö—_+TAUµ¸\NEQ¾ùÍïìÿ¹ ^{í·c㯽þ;UUO<ºø¨ŒFÃÇŽ}@) …‚\8®ªêšÚúMS™àG°;ì÷ßÿ€Õb™™›O¦R’Ä—c=q …œçç&Ç'tðZ­þ¢"»ÍÊòkž •Óÿ „¥  –h„ ¨÷ÒE§Ëíôø‚ÁÙYÑðàBÀ0˜Ýf-))Ò4M×õÞËÝNL`FŽm–ØÁEéè+ŠÅbÕ,‹Íápxlv—Ýé¶;ݪŎ984wsL§“72>!P@ØR Gï¾âñ–¹=Å-JŸ‘ü—þçO B0ÁB40Ð ‡ëjkZºaf²4ÉRÎá—P ¤Fvvfº¦º–c ¡d+™"á ü‚33;)…™Å%eë×ojnYjuØ1FçNŸ\µjÅjåœËØ!ÌH8üàƒ¸=e bdpxô‡?üa,û§ü—ÚÚZy•é뻀Ø{ë>Ã0㱤Äß%ªm·Ûƒ¡ QƒR“šR ŸŒÇ?øà½«@ LX­öªšŠÛ÷­­iÀCƒƒ¿~i¬eYË}>,¸/ ŠBN?T]S/ÓAåõ\Á¹èÚ|€-ˆÅÂSÓS·gÆÍŒ "*B2|™Ô æ;;OŒ^¸p>œ+¬š×^ûõë¯ýÆj³ut¬ÝsËmûß>}úD^™‹n­U1šË‰t(wˆ{=þ‹—Î\è:³où_5+@ÿóõWfç¦óE÷ÃbT[ÛpÓMÛ¦§§~ýë_ÄbÑÅkÕ0ŒÓgGF†1Æ;vì!3Á €R9¸82t•—4(®ƒ1r1d…ËXÞVbEPœIÓ‡\0=ç@É‚K§“‚±²‚ \ ‹ÍbB!A)£BÑl¦‘¹^iþßÒM@9ÌËÜåæìL†óÁ``iÛr‹ÝA0Q5Å¢ªE#ŠB06 }|dtjr<ú‹K—,]vÓ–­6› †BU¢HÌ”¨˜`¤‚ ŽÅcƒƒý§Oèéé1 ½º¦¦­­íÓŸýLKK‹×ëµÙl„MÓTUÌÎÎ^¼xñÊ•+N§³½½ýî»ïñù|KvÒb›´ü¡ Ðj±å3½!ç<‘HD"‘x<–H& !¥¥¥‰XÂï÷‡B!‡Ëáóù4«Åb±H„"PQY†òR‡ÂCyüñÇׯ_ߨØ(y§ét:ƒÁP(„1®®®.))éìì|úé§8055%S™î»ï¾Ç{¬©©éâÅ‹ŸùÌg"‘ˆÓ鬩©¹rå Æ¸±±±¯¯ovfæ¶½·ìc·;ö¿ýÛ¿½zõÊO~òÓÊʪééÙÑÑQùîºëžD"vòä ‘®¥%å@@ŒÑì|hdxbnvÆíö„ÃÁ¼õkBd 8ÆÄérÖÔÔøKJ ! “š©xxllô“<򯯬ëF4[tÂç  ðiè†Õfóù !XQ¤¬+§¼åù´' ÁBÀ!È‹<«BšÉŒ .]¾\³X D™tbɲ¶zÈY\6; )ŠjQU‹ª–”WŽŽŒd2Æ(gL×uÁY4rzünßb·Z,öt<ÚÒºÜ`#$† Á(c5ͬÁ8EçôlFQmn¯Ojx„…+é pÀuÐ&œ‚©‘noQ…Ë]Ä'‹Ù¡ù0B¸hÀ —eù‚éTlx¸°lÙòÒÒ2!„n°d*›5ô¡%—¾T(¨@Ϧçç竪jM•½©É™Œ}C…ø¸­‚óùN0Æ6›Íítœ?ÓÉÛ÷±·´´X,!dl|¬¡¡A×õžž«‡k떦Ʉ„@JéÔôø¯^}%•Lƒ!ʆWwlpØœS“£§ÏŸ˜™‘‘v»sëÖíkmv»¢©A=«'É5kë"r^H)ƒÙ펣Ç>X³zÍ®mÛ§gg~úÜs§:Oýá<¹{בaäÚúšêšt:Æ$¼^ÐÈáx"ŽDð"ÀA×õÙ™ÙÉÉQiÑSUYºï®uË;JƇÆ_z¡¿¤¤î¶;ïÌ¥ëÊ¥ çÆ'Æûìüõß¡S&ëÞ0Mù¨)PUËòå¿{ãÕÂ.ýð?óyýËZÛçæfß|ó7™tz‘•°”Õ[ž{þ§BˆU«68. ”I¶3±xÿ#ˆE~Ú—«н¸î s  æ=Õ„‚–µÙ¬†n@” PƒJûò;K3öZîØ"@%€3ž5¹œ™D,È6þ/-FÉhÏÕËŒ²PpÀ0QˆÜ^@€×ãVIƒÕéVTÅj±hE… £txàÚØÈࢮ¾qãÆ­ÅÅ%ç‚ú…Èß#Œ1Bòj‹" J'GNžD™Êm”à ð ê..­rºŠ˜c"“P £E¼˜E Qp BpzjtfvªÈç_½jµ@È0ͬN“© ÏÇ$cˆ¤B(Ïj‰D2 ÖÖÖK2?çœRóZmÀ Îá"/”Òe^°ÛœgR Néå‹]„àÝ{ö¨D‘OúÙgÿEQ*+*V,_™ÕMÃ0!”Òˆìo_ûUoïÕD"™Íf7oÚfÕsós'Nî“õ^UµÆÆ¦‡ú´ÇãµX4„1\Ïêéx"@UÁ„5Mu»œûö}ìòåî/ù››æƒ?ùÂ}õÏþL9¥ºÁ87 =“Φ3ÙlÖ`ÌdŒ™ŒQJƒÁ¹ãÇ:t  74´Ü{ïÈ`ˆef<?xèÝt:ítÙîüĦõ›j²zæ·¿:LØ7m¹Çª¹õŒ2ÐUSÔòÊŠµk×+D±¸-ª¢¢ úû¯Ž ;®l6ÓÕ}Îép©ªV\\¼gÏív»(!å\>>6öíïüÕb,QÞ"].wMMÃáJ¦RÑh$fÒéX,E 1(É‚%“1UÕ C…ç‘ ×[TQ^½¬eÅäôh0ytnn®½½ýž{ï_¿~“ÝaSU!ÂIS~ÁìÌtooïôô´à¬£cÕcŸyÌ’'^â<4•Ÿàr  }$þÉ)”DvÆØÄäD(‚´¶¶fÒÙm[¶«„p LJß~ãí¥µ­U%•Ͻú|†¦ýô£E~?À!T][UUSùáÏyrrrjjŠ1f³Ù6n܈1–ëjllì¿øÅsÏ=‡¥·gyyùO<ñÀTW×JÊw Ìd²™¬n˜FEEÅ¡C‡KÊ+ÓÉÌþèÏÞ|ýµ÷¼Í™¨©©­¬¬¼v­ÿ¯þê¯(¥B€+W®†Ã!Î9Q°¦¶®³ód,Ývû“SS7nnYºbb|A”ͦ!Àñx¼´´<)Š’M§ªkëËJKÓ™TM]Ã`¿Óí:uüXÇê5n¯cŒND£@ð‰'þ¨¦ªœq „dÞ/çޤäç !‡ †C!€Q‘µ„C àyÃ]9©ÊÍrQLPU"À8ågOo[µÚér™Œ~÷­í»ni^²d`x̤¼ð|A^ÉPøôàŠB®\ì*©¨R­v @$ÜlY²,‰ ˆLªë†©Uff+Dµ»=Ô0²FVèÜbµ#$ ÀBÈfàÆq”}”jB¸PRVëpù€2Љ`Œ ¢Å{.d_¢L:10ÐcµÚšª«jLÊ™àzÖÈèF.FQ65‹à&(`,MgRõõ c!¥fžP·0–y,t:Êež{<Ãù‹<.w6“ž˜kjj®­­©©©žžžžŸŸ_ÒÒêv{ÓCšÅgÒ™óÎvu¥”NNN­]³¡¼¤2K]¸Øyîx2•}geeusó’5«×664ÈGcÊ(°¯ïª¡gKKKLœ6[‘ßçt8¬V«Íbûûïÿ}:ï›ïÿãW&9tà½7難ª•Y\§-VENt @ª¦¤3éÞ®«þ¢’ÍÛoq» QU¢XTEÕT‚‰BTBAe=5>ÞÝu¾ëÂ9!DMm}ë²¶½·í+«¨ÄªJ ÀÔ4z¯öžéìôx½­­Ko¹åVŸß‡É¢*]:8œ3ŒsÔŖ`9îE.%'ïSùæ-›wª;º»»!Édrù²¶÷ßr|¢¼²âÒÅKÍÍÍÛ·m-)-Y¹¦ãÐ¥Ãv»³¤ÄÿÀÃ(ªr¸\ø<“ɤÓé,...ü§`0øüóÏÿêW¿’¾eË–­]»vïÞ½«W¯–sèT*sáB×Áƒ{zzÆÇ'ÊÊ+ÚÛ;(㊪ÙöT*L%^xáùîî «å‰-ãããË—·S*ë=^²diyE¥ÆôÌ à;îzÀ[TjPŠ19qü˜œ»'â1—Ûkš:Ðç+ºy×­5uõA‹Í¶zÝ:tPÎñ„×ë•x£  ªªªªBˆx<>55ùéÏ|®¾¾Ž †dð¯l¥z.0¥àR^U‹FSé´Å¢aMͱW4“‡ +#( ˆ8„çO«¨®­¨®6õÌÉCï¹ÿÒÒ²žÁ!Ý0Ñ"„?W· ’É¡a‹Õîöù¡‘`sÖP_ŸL¦c‰$Àïõgí·ß¯ëÙT2Á3)ʹišÔ0‰Å‚ˆ*å¾e|㢇ùÑáùioq¹Åê*ð¸%®K ¤¬Bj(^ÄÅî3Ô0++«—.]¦lfÖ ÒÑ`‘àOJô &m|>0G©¨¨€1Γ¯¿ø¤@ ê@.†iÄ¢a €Ûëñú|BEQ„€PHÄ)‡Ã¹mûC7Vêëë§ÕjŸœœxó­×ß|ówÅÅ¥ºžn]ÚöòË/ù|þm7펄##£C¯œ•_°dÉÒO=ò˜×ëyîùŸ|ùO¿¢iZÞƒ¥S‰üàûCÉxüž{¼y×-v«¦) !IZŒR€°! J¹ÍîüíoÞ2LsbjÂ0¨œš”¦SéóμûÎï¢Ñ€¥±qɆ ›€==M%*–&e H‹ÕÖÐÜÒº¬Ýç/6²Ùk×z«*kŠKKwÝr»Õb@¬NÏœ9÷λoÎÍÏîÚµû›ßüeuum$‹Å‰Tâ~ðÝd*‰†ïýÄC~_ɶ­%[6ï0ŒìÄäÄüül0¸Öß799!+/¯˜™ž‚644~þþa4šOeRÉD<‹RÓ<|ð€Eµ0ÆÁ9ÄÌÌÄèXo&“)p¬96aEQ Ý Šâtº“ɸÂívƒ³ÁପªŒ1)Œ“Ë£¤¸2 'QY>-‹Íjcœ3JMÓçcW{.‚=ü ÕjeLÆU#E!ŒÓT:ÙÔ¼ôÜÙÎ\R±X|eÇšm[oV5›œqsÁ%F–Cqη ™9A.džR#?%Ê Vs$,˜æàŽy»0M‡ ÈÀÄ‘ô|‚À8'q0DCU±Pf¤ßza¯¬¬ ·ø=UðÃÞO¿×>æ\çú›+«ªÈZ~í"°[­6‹E˜Ÿ™™šòû|;o¹Ínµ*„hš¦(DSE! QV²™ôôÔìììôðÐÐØèH:•,-­XѱêKö^_Ñb¹7MN& Îó.·ëñ'Ÿ LÁ$—^Œñð(í(‚rÆÄLÎP‘¤Ï ’´&±p×…óétº¸¸xéÒÖ+W®ööö¾Ð­¹¹¹­­-›ÕïþÄÝ^¯ €Ú°iý—xçKáï=Ïâ6åk_ûÚ[o½eµZ—.]úÅ/~q÷îÝEEÅœóD"922vâĉ3gÎ\¾|9›Í–””†Ñ²¤UµX§gg !ªjÉfôH$:7?#xÛ×Pßpö\§iš îîîT*PU½tñ|2™ ”Þ÷ЧKJÊ#áÀþw'ë ÿ»îºrrŒ ÖÒÔªiœsˆ .). ƒ©T!ètº1ÀœGk\ô^¹\VV¾oß>—Ó Gçs éf„ä]2 d ,j˜s3Ó@«Ãaw¹€@Ê;óŒe ’ƒ7i7Ppzb´¿ïþÏþ!ÁøÜÙÓV«õî{îÉfõùù0BÈ9J3^ˆR5õƒ#¬Ù¸ ¢cQHÖ0t“BMÊãÑp(X`„%Úi:ÂØ†•üüO>YÆs¹fâ:Ž T"êöE }WÎu’|Øä{‘Ö˜uwŸÍê™Ö¥mååa“ŠLV§l˜¶.ú!¥¥Ýnõû‹e  7ð¾Àõm+7M# +DñùŠ‹ECù ö¿7;;»}ÇͪŒL¦ b9¬ªÚþá{¦anÙ²= ÍLÏ:_»f³‘1¯ô\ºÖ5–ËCÆjµîºùÖ;ï¼Ënw¼ôÒ O>ñ…²²r Á!úúûŽ9ºiÓMë×møÉOÿ÷ÒÖ¥VÍ"Í9 ï™2–Õ3—.]zõÕW>ýéÇJK+“Éd<‘Ðuݤ&5©®ëSÓSo¿õÚðÐ5.¸B´Úº†•+V{<>¢h³sS†iZ,Öš`„n¿ã.»Ý-ý)gÅ%%ŸÉЀ²™ÌÙΓǎBÝ{ï}÷|âÞ¦¦&!D:“žŸÏvž>Q]SýôÓðàïíç?~þ“‡þt>¥ VUÕTUÕ!vî¸Å0 !ü…ÚyúÄüüÜÄä˜Íîèë½záÜ™H$HMªª&ŠE³ú|ŪªÍÌN a¤Óéš>C„Њå롹ò²Êx,À3¥%•Ó3r9e³ÙÅGöêŽ ŒQÁ5 ]×g”R]7\.×ëSUcbF2E£ÑX¨p9㜧R)yvt†~íZX$¸QåöÛï^²¤-/Z‡y\TìÐr²¼\Ž Öl#(d´å‹æ‚²Ìø‚­EQ––Üj—Í+G2ÎòÄRA0æ@(DÁpÀ S7¨)a(¶ˆ,#ëà£ÀGîÊÿ:˜007訪þ/*e4ŒÇb™tª®±yûΛ-v»F4MUTUÑT•`Œ±¿rùÒ±#‡B¡`iiYUUMÇÊŽ;ïºÇápAŒ%_EºïJ*²B!€`‚ (--­ªªÂa„!BÎ9ƒ€@,°ôšËÝØ!œ¹ìì9⑺Á€‚q684øÁ,6ËÍ;v:Ž·Þzëë_ÿºÅbyðÁ‡††ž}öÙ§žzê©§žZôÁ "÷Œ„>ò–”œG}TÓ´íÛ·oÚ´ cL)M$â©T*ÍÎÌMMMSJ+Ê+c±x*™ÌÌÌx<>…«ÃA7M#˜Y·nsEeÕ¥‹g¯^¹tªs&¯häÉdJ³X0Â[·ìì齜G5`*ï_úàƒwÆ«V­ŽDÂ%%eK–´Ô¨©kPEÁ¤0(À½wp08ïr¹+**¥B(ÇCQ–ŒÇ§&§>÷ùÇëêjãS33†a°M„c"„€DÒ¯Eiln6 #“ÍrÆr­8€ð\Ëžk_PA&„ ¢€ž8x ¶¡±®¡pq¾óÄ'?ù¨Çç¿68D©A äBüœ.§.dm= BÕ Mºžeôßsß½”šÉd–ŽE¦¦&’éDQQ±ªY…´>„‚sAM dœ#€œq‘ôg_œ?sZ/`sºóò׃ä)¬ I™áœÊ饋]‘hhýú-¥%¥”R“”r.®cô-fçfÎScÅÅ%N§‹Ñ\dO¡Qýa›†F5M•,/ñ!ÓtƼëÂ9Ä–mۣѸJˆ`ü½÷Þ>|äÝn߸á¦K—.ž9}¢¢¢fÝš-éDúò¥î¡‘k‰DLê(ŠºnÝÆÛöî[²¤Åb±^¸pö‰'žôz=Ò3 ½øâ ‡ówßÃü÷ÿ_EEÅKZZ!r› 8Œòg޽òÊ/\n÷]wßgµ9ƒ¡nñDTƒ°v IDAT<›ÕMj¦“©ñ±±·ÞúM:RUKYYåòå«}>?D"’gœMÕ !B»Ã €ÄˆÍf³Ûí„…(ŒéG?ÝyBQ”‡úÔ§}´¶®ÖbQÞ}÷ísç.8®šêÚ[oÝ]^QŽòx<§NðúýéLc’?ÜÁÈÈà™ÓÀ\KsëΛw öÞ~ÇÔÔÄÄøèo~õRKkÛ©ã‡cáÖ%+‹‹Ë¡P`x´/‘ˆ&s7t!BUµTW5x}èàþÒÒ²Ûoß×¼¤5oÒ'rož3„%kË)”@€¤J ù÷¹¬G‘33ÀË\*Äsg&ˆKÁŠ¢@ ã"„àLŠá|`þÅ_¼XS]óè#Ÿv»ÝÇO=räÈ£>úË_þòÔ©S[·nµZ­ï¿ÿþòå˯˔Èeμùâcj‘—–øðmcÉ’%ÅÅÅ>ŸO R©t2‘ „ÂÓÓS£Ã£ýƒóóó™lJ×d"žH&W6“.)-³ ;Æ8 Æãñd2vøÐÕÑ‘AÎ…¢`„4ÃÈ€V¯ZOÆ£ÑÈ•«ÝSS“«ÕzçÇïwù|g:OøüÅ6lÑTmp àñx]o2'„Â9àqQ*™¤ôòŠŠ`0èv»B’h!Bôôôøýþ;>~§Ãa Gb@Hò­8ÁF0\”+r‰Pðø±£œ3QIYU¥¿¤DpÎƯç0çèBÁìøÄ`ß#Ÿ’(JßåˢݷÞÊLsvv!(À Þ,°!„š¯§Ž­»i³A©€Jx~ÚípTVÖDb±D2 Ñ)7L]PcbtÈ0M. y!YmvI…Ån“÷b„ „¾¾!䈠< òØ3×—T»ÿµ÷޲ó,ϽŸò¶Ýëô>£I£Þ-Kr“-Y²%l°)nØÔ!$s‡dð $œ/ôÃ!,š‘»-Ù–dIÕ)Òô¾§í=»··<Ïýýñ¼{ÏH6IVòÍb±,i4³ß÷)÷}_×ï"€#B A˜1F1¶£ŽD"“û÷Ýëv»-‹YçŒsT.þÈ2ýBÉ^ <2=Y]]ëp8˜e»5ÊÌï%E80L#™LH²\YUUº–ÛMÞå·cË²æ£ ùB¶mE‡Ó噟›ë¿zõÙg•Ë›š~ñËŸ‹yÎabrbrrj1>_,ŠV–$yíš ÷Þ{_[[«ßïw8‡z÷ÝwS*!„LÓxö7¿»|åÒ‡>ø‘ÆÆÆB¡ ä9Â×Bá Y˜Kˆ&ÑïÿŸu½ðøãO‡BUº^L§3¦it=“ÉŠ…äbüÂ…·ÇÇFjë1àšêºp¸šJTQUJ cLHîeEŸŸYJù(a/Kù©c¢È²eZ'ϼzá|WEEèé§?ñ‡®¯¯ÏæR?ùɆ††Ž9òå/‰R,™L®h’ÉôÜB´©­}ÓÆíº^$Dšœ;{öT8Xéõùnß»Ïëões™kC¹\ÆåñÜ~磿øéÂÂÜüü¼Ãá¨[[Viš¶°0715œN§Ä}Ý¡©…bþ†˜UoX·]7ŠcドÄÂb<ºô–ÚNv%­©Î¦Æ¶p¨Êb&!x~~æJÏùl.‹×u†®§9ø¼Àì+W95©|þñå¹™MÍ­wîÝ_YYÇ9DT-3áqV~KÅnhgù0S×Å7áÜBˆGÙË‹9âØ²0%£’-©äÈÃ/Ý4%@…ÊAb1Kdv”®J²('iŠ*@€ÜþmŒ¸#bHœÃe†¦eÅãñ™ÈT6“Vd¥©­­²²ú— ¼<4fÕªuÕµõn—ÓéÔE’e•27?{î왡þ«†i®[»î3ô'¡P8gÌäb¬¨Ê¶M¢Ü¢BŒÅX¤=ÛáyPJ9$tö !̰ˆÃÂ%T¢˜"!‚Étdr1ºèòºZÛdJ1`Æ­_=û›¹Ù¹§ž|ÊãñJÞ<õúÕ«W¿ð…/H’$ª·¶¶¶/}éKeq€Àq»ê-0ÌËoï»˽›xtt´©©¹©©%É$©h46=====ŨD3ÙT2™TÅç÷××7™¦Á†q:µ«ÓЦ\¼xV´¯ji]ápzæf§._ì*‹'^I¼K«;×r€Ù™iÎ9‘(ÆhóÖŒ1`¬XÈZÌ@¹|njr¢¾®Q× %T–Æ\æ2Ã`¦˜P„B‰D¢¼eY¢”ÎÏÏÍÍÏ|òcŸj¬¯7Mkrrڲ̥iZÁvJ0¶³“µ‡ ˆ6r鉑á;öÎëváôÝ'SšH¦-£Pe•/°LÝ4 Æ-‘KÎì" ÐÒˆ“ž`Œ%ùz½µ|pB°˜àb Îdc\BDpù ´¾ÅxjjdbbôÀÝ÷ɲÌ,i”ËN±åþhµˆfg¦jjê4MAcå?/F€bñp‹YñÅ¥4 aB®!oÝÀµ¾^fñ ·\¾ØõÖ©“±Å¨Óá ýÑ…ùÁ~ü†1Á"3ãPÊ[ojjÝ{Ǿ5뫪+<·Ã¡9NUU(%œó¡á¡ŸüäG›6mþÒ—¾¤ÈÓ´4 $Izüñ§¾ð…?îî¾¼{÷­œ³|ÁxãÄkƒƒ·ßº·©¹U7ÌL&]Ћ6¦Ç’c#çÏŸÁˆøþšªº` ,˪¦©²"—èádvnêÒÅs¯gÇÎ=ï4ÂEQŠ…Ü™s§{º/UVU}þ?ÿž÷ÜßÜÒH)ùéOúÆ'üñ§Ÿ~ZQTÛ€ P(ŽŽŽMÎ-Ì564й"&œñl¾°nÃMÓ|þ ³¬S'Oœ={Ê´,<®¾içž-[vž:u!îvyÚW¬˜]ˆN‹yA™öú‚Õ• éL¼0;±ü”$©¡¾­¾®5žŒ f²)ÓÔß™¸Pòç!UuîÚy‡ËáA%S‰ñÉÃÈçò™w­WTÕyàîû×oX[__sñâùúßß1 Ãáp„Ãóósº®—®GØåríÜyëÆ›eY³9mvB˜hÚ×åò±t–Â9 €±$<€%Ó„{G!B8³±Ú€#‹"CBå6*µÿµ98BÜ2¡„ËA€(¦â⸄1çl¹¬íÙ/ïo—¶¸•I'g"‘Xtq ›š½>?¡~—öÆÿ'à÷ûü^·Ã¡(2Ftbbø×ÏüR–ä›vîÜ×0H$1Ó0 Œ±¢¨ŠBÊ&B/Û00ǘÈT˜cf„¢b\BL$$K[H’${J˜RJ%Фөó]ç÷íÝÇsÊÎ$IAŒL‘:£#Ïüæ™»îÜ÷Àýï5 ãr÷åé©éÞ¾î/|ñPB¢(>Ÿo``x‰¸…•Bˆ”¢s‡É;û¥ï<Ë.ØT*Õ}¥§mEG"‘ŒÅâ‘ééÅÅh"‘ŒÅ¢cãc>ŸÏçóe³Yà`1Ëíöº=^US\N!4‹º]^—ÇS,LÎbÑÞË/‰Ç-K¡UUÕlß¶ûܹ“³3Ë4£ÑÆ-$Q‰ˆÔPL‚|>çtº90]×5U㜉7 alY& ŒEµPÆÍßtónŒpOO÷ÊŽU÷º×éÔ¦"³ñD¿ã«„I"œ‚ GLL!UÕ5áŠ*‹YÙl6™ŽÎÎ5´´¸ÜnñØÒLÄ9:=‰LM<üøS˜àÅhtjlìÏ¿ôen²™ù…Ô¡Ri…rŒ0G˜bÜuþÜÖ›v„p"Íg’»öìIçóél#Œ8†J%Î9— qŒXe\”èaÌ9ˆîæònÁ6Zª™½4­—Q‰È’D„495211vËž»¡Œ3À ä ¶]U”/ësbŒÁ“ããµµ’*Üâ7‚FËþØD"Á¹ †)•„ l¹*ý]ÛB““c’,=s22=-ËR *êÅÙÙ™ø˜jš£X,@)ÈÊét¯ìXµÿîÃõõõ¡Ïëñ¸\®' †ñýüs4ýÄ'>ÙÔØÈæ º®‹vl±XL¦âÏ?ÿüº5ë~ðÜC2²LË4­œž³LžËå#ã“ç/žÉe³²,×74UW7*’ìph’"Q* O¡?ýÖëº^Ü»ïÀñW_jo_mXú Ûœ&«–©Ÿ;óæ¥ o‡ÃŸùÌ9òÞÆ†z§K»xñâ÷¾÷ÏÛ·oÿÁ~àt:ÅM…s0Mk~.zúôÙ׎¿OÄ/\8ø:¢Èšešn¯û…cÏ^»Ú][Wß±²Óblý¦­33à,“JÍNÏø¼áÎÕ›ú®Äçú®^4Œ¢8Ò\.sC;Ádt¢?—ÏÜP”X–56>0¿1 Ý4ÍÿB U¯\±îêµK†e¸œn‰È–© ÷Ef'F†i–Çr7<å޼ï¾ûûýþùùOñ‹†­ªªªÉÉiÆÌ²BgÍš »wßæ „JæÈýÌ®Cí¡>! ³Ì$¥¦.lj•ý‚aD8¶³vÃ08‚ § 2 ŠhùÎG ¢’dçtpÎC3a—6^qs‘ʆ¹8a¹ÙûnÍÏÎÂëOD¬ëùÁÙ™i¯Ï_WßÐÖÖ®j e9¸Á7ü.¬Ò`0àu¹e™ÎÏÍ=óËŸ‡‡ù`[["’D1Æ„1ˆ(Š‹EóùlGÇ*Lˆ=²ŒìÙ¹‚'@%”.ISD$Ë„JTQ$*Ù¡~#á^ „`‚ð3¿x†rì7Ç÷ÜsW®\ùâ¿èç£ @E$²‹Ec±…d<‘N§‹Å<ã–Óé0McðDRŠ®#3“--íªª‹…‘‘Á`8”L'³\>—N'„ cÜÐÐܾru.Ÿs»\©L‚ØVtžÉ¦Eð©¦9 ±ëº.r“™†e)\HưeY&3K‡7cÌJ&“uuucÆ-EsLOMæ²¹èÃõõu¹\.™eÈrkÊ2¬îu5â²[ÁH¢Ôãv¯\¹ÊbV|1Ž.*I#‘Õ%Ú”HW.¼Ý¼¢½±¥!tá­Ó[¶om_Ñ>‰ Å‹;¢ýgïõÂËÆÌè½òÉÏ}!§›£‹gOÝ}ð¦j“‘yS×™e39··³ìŒs`qÆí¨sVÞ ‘JŒ\º¼/6@ƒˆ‰u4€„0‹!B€#LðµkWfwíÞK(%`G¦ÙíÀ‚[LJ¶’²ö{r|¸¡¾•”¸4eë ŸÏ§3É@ ¨9œ6ï s(…P/Q§*PXy2™ÑÑaC×M؉L ¤o4:_þÍE´c>Ÿa#>oÀbæÃ=ÚÚÖ66:H°ÕÔx³/à×U’¤d2þ÷ÿðí……ù|äÑÛo¿]4?ÅÒÄ&pÝÝ—ã¿úÕÏÿþï¿~ûíw>òÁÇ9ã]×u=›Ï™–i˜F>[œ™žèé¾”L'ƒÇç_ݱN+}aBÅ”JüÒ¥sÃÃý{n¹cÝÆ-†® -gHäáa„5E3ŒÂ[§^¿x±«¶¦îóügGŽ©­­QTéìÙ3G­­­ýú׿ ÅÄ…3n˜z<ž:ùæÉÿäGÓÓƒŸ6pmÒ´ÌX4ºrx¨©­c¸ÿêØèÐÈÐ ¥Ò®[ö‚¡áþkÉx"“L™¦‘Íf._z{ÕÊ U•uããC¹|:‘Œ"„$Iiª_YYQ3=;>y×ñIÉ_•Yνa•Ïg]š{ËÆÝTÂéLzxìêÄÔèòÂñ“0¨¨¨xêé'Μyëþáï#‘HY,3::*¦ ’¬¬\µú–=wƒA{È9­z„—ŽCˆc‚âL0/„X\¼®¼„rC\œr"”qb[E-Ç –0p„ ç€ .§î‰=[–XV)DÚ¢˜ „bX(½Ä™/Ĩ óRV/·cBK»Ïr¾`YMº¼é’Ëç®^¹˜Ê¤;Vu®Y»Ñö8â’;d©´\Å È6à]÷™™íëëêOÄïè‘õ6a,1˜D¦&{zºG†$IÞ´ióÖ›vš#˜ D(¦ÌâÀ² İí”'¨&S‰Jš,IX–Éüܬan.%bTê„9f:ü¡Ç"DÁ©tbf.ÒÕÝMÄ®\¹´}Ƕ¯ò™£¿X\ŒïÞ½ç>ûÇv&8F `>tß /¼À-ø×ù—?ñ „K‚èx@ l#ôÞþÄæççûúúNž<955USSÓÔÔôôÓ BgϾ]ˆÞ|S8'“ñl&](ä‹z^׋ù|> ‰ ˜t:•Ëå9ç@°­µÃë ȪÚuê-á8¦aeSIES—²¢®ëù|Á0ŒB¡hqS\Éò¹¬CÓlWp@ ¼–eB1FÀ8gÆ!nYÀ,“’%!Ä,V(“‰EÓ4 %SÂÙÈðжmÛvíÚM›œIg2xy¸´­éZŠºC¥ÔžZL2Ë•e™*!ÌÈ„V†Ã€JBa(¤”`É´Øàµ¾G>úqŠH$2}µ÷òßýýwcÓ‘Ù2‰Þ~]0!À„0Š¡ëÜ™;÷ J1˜éD<¾0{Çwu=[´ ,Ìê¾pf~vÆár…«ª}þ,«ÀfC´1GˆPLÆ„J0¥’‚—ïO`Å`é ÔNµcÒ0Æ¡2âYÌè¹|%—KïÙ}'&´J!ºf´×6)9‘ñ驱ÚÚ¦e+™Ø¥¥dÎùââ¢$I5Õµ¸žîXÞÒõâøøèµÞž¹ÙH¡/—–e•ÏáÆ-[Óœšc×Íw$S1 ØÞÑî÷:Ú¦R‰^xþžC‡ÔpøÌÙSßûÞÿ{ß}GÞ÷Þ÷{¼îÒRfÙýι%ñÊŠj˜™‰<üÐGn¿}gÜ0ŒB¡Íf3z®-F¦&º»/‹ºßúBá`UUUÃáÔ4ÍÆ^S‚ èïí½z¥³sÝÇ>ýyU‘™eBTYB@BTS5]/¼}îÔ¥ o‡+*>û™ÏÝß{[Z0Fo¾ùúoû›7þùŸÿymm­-¯cÌ4ÌD"ýæ›§~üãïGfG×mh jêü=yxd¤ðÒóo"D€±¶íµµ ‹±hcS«Ïç+äôŠÊ:=_ô{+-Ë´ 32;™N'†Fúrù´Ø/*+ª›VŒûú/d²©ÿ‚³ …¼eš=™˜Ÿ²JÅܺB>üôÓO ”1ÆØ4M¤¨ÊêUë¶ïØYYQƒ0¥Î<*MÙJÑx!qû/9ˆ0ˆ}›s±8í«œ­‡Ã 8^ ÚNA‚©,™–A€ „"I"â>Î-€2oÃn´ ’g—–ïÖ7¤Þ/›ö-a|Ã)xCEÈ,s ÿêìÌÔšõ…šiù÷ùƒâRDJs|²\JŽ1>÷Ö›+ÚWîÛwïªÎN‡ÓÉ8Ë¥Óc£#½=—Ýï†M›|ø¿?€¹ŽsŒ6`B$ÑZ¦„Ȅʕ©¤Ê’DTU.äòW.÷c«;;[š[TMµ)”!àa¡¬Î§óÉ…øÜÜ\4:—Ì¥1Âáp¸¦¦¶sCg.Ÿ«­«ÖTGuuõλüþƘYS[ n‡+18¼ÿðñŽ ºî…d´²ºQŸ*ZVKpÁ°»Çâb´§§ç­·ÞêëëÓ4mãÆŒñ®®óƒ>_ ±±éùçŸÓ‹Fuuu:“L§R¹\&—ÏèºÎ“eyaa!‘ˆ ¯×ߨÐìñxN·@A§Óé+=½^)+#„LÝ(?C×sùl!Ÿ•% ˜e!;£`šBX8Vâ–e-!‰Ðr 8ØŠþЩ†ÁºD<žJ¥zèáŠÊŠXlqvvÖè.‘ ÄzYò–·_ù™Ï'29ŒÐðÀµ-[·‘±ÉB¡À2°†¦ÖºÆ¶B¾I.ÎLŽaBMST‡×ãç€-ÊÐÒèciˆsÃìIüŽÀE/â`Ó“RÛ@âœÉ”¤RÉÑÑE‘6n¼IÞÈÒý€ˆ±±áï"…ƒÀàÐ@Sc›,+°Ì†±|ΗÏe3™t0¦’TÛáÒôì†Á²¬¾+—._¾¸›¿!ׯ¶s-EIñe¨=z÷ûªªª~ÿûžûîÐï÷‡BP0P[[ÝÑÑ1=3ý¿ÿéóùì‘#<õÔÓËÙªŒ1$Ä9Çð»îÚ÷›ß=p÷½Û·íbÜÒuÓ0t]׳ÙìÈððÅKç3eI *ü`UE­ª*N§S0%I’yd¤ÿí·ßZÑÑñØ„Üá§”65· ýˆ$‘‹ºÞ8ñŠ¢¨O=õ‰|cC£Ë­=úÌË/¿|Ûm·}ûÛßöx<"j‹snV&=~üø÷¾÷ϱølÇÊšzÙ]UwíÚ[,VÌÏYTJ‡pe¥ø<4—vèðû8G©xÖ(èº^´L&bi šÊ†k—ÓéDÙ«T[ÕªHÚèäµL6ù_úéºrºPÌ]çRÿ_•••MMM‹‹‹ßýîwËE¼‚°vÝÆ­[v„+« 8âKàìRÚ&ØvGØÙ¡Ò —LB˜PUÓôB^¼2„”\ p‰ÐRü"˜lÏà1%”3K‘‚®&p[œs:\N§c"LûÑÒÈA„8²rÈ»Lû®'ŽbŒÑ;„£¢‡T(N½þJm}ãmwÜM¨(4*ý[H>J)•%U´× ‰JeJ†¦iŸÿÂÿDˆMŒ¾ôü‡¢Ñ—ËÝܺ¢sͺƒ÷Þïñø-‹!“›Ž,ÀØ;¢SB(Ƶ ö’¤(²"˪"3Ëxë“n§kˆ-þ@aD)n°©ñÉ'ç²9EV\ŠË!;|AmCõº5ë¾ • ‘ ‘ðôÌ´[õܹç.ñd)!`2D¡,@¢åÍ0 Ž V4ù¯ÿúkï¹ûlי߿´âñGÎ1Á…Lû€ …â™3gNŸ>}á§S[¿~ým·ÝöØcéº~æÌ‡ÃñWõW†aLNN9sÚíñJâÑX.—Îçó¦iÆb±……9ÿÔÐPŸNgS©ÔLdjíúÍuõ͇#žˆÿú×?÷züªSËçóœÈÔéñ腼ݽ@HDÍ$“ñl:]×ÐÄ‹²XÈ—s°9ç ¸@`‹'hW~œ[–A“ΙæÐ0ÆœYE½ Z¬%t||¼¹¹yÿþý¦i Œ2Ƶí°Ëcj˲-1çÃ/I’ÀØèH>W\·a½Óédâ¾)Ì1âÜ´Õž„`bf×Ù3<ò!JÉ•‹—-Ó|äÃ2fNMO‹d½òu”Ü `·H%¶lÝn~™ñ‘'Ÿ|Š[ÖÜÜ‚æ fQï¹Ø…1¶,Ód–ª9‚áJ¿/¤hšeY¢;Š9b‚ëK)Loh €AˆT^zK÷N@DBÚÚ:œN'‹ Ó%1•}Øwk[f˜ÆÈhÿŠÖÕ”R^Љ±-!1ÑhT’¥êª:Ž Fl öuO…|¶¯÷ÊÅóç2™ÌroƸ¦¦Þëõ õŒ³àzß!äæ›o[¿nãïýjÿ]÷TV†€ÛãA˜0f½vü•®®®Ï}îs>Ÿ¯¹¹¹_(“ΆñÒKÏoX¿E7 Ý2ò™ÂèèЩӯ ù•kMS÷xü—W–e—Ë%Ë’D$*QEU,f=ÿܯ.íɧ? …펗 ÜÎç< ¼Þþþ«Ï?ÿ{]Ïô£O=öØãuµµ§zîܹgžyææ›oþÁ~ Ë2Æ„sÀ‹E#¾˜xñ¥ðýï¥3ÉšÚPMÚÜ*¿çȽ…tãܬ;•Îd2鱡áÅÅèÄØhkë Le#_(t½  æ'0^ö«p rÅìBl®|Ë«­jp¹¼=;7?ùŸ¨ßyÔe²‰?@ËD7Ä †ÑÕÕÕÚÚÚØØ811aûË1ÒÎ5kÖÝtómn·cŒ˜8ÿ8/§­€Íªøëëò6E–3Æ …ว« IDAT8Âq΋ù¼˜"ܘ¯‚ `TÇɨ&†t‚ˆªÉœ³¢a"D2Ùôù §ÛWt†ÃUQÀÂXˆ”A”P l—¼=eÑh€–¹éK@¦˜{ÉÑ‹E»Þ>½cç­eÇ·HÅF˜½kN!ÆX¢’¢*αa1ËbÀdl¹Šô›_ÿ_Ñè\]}ãú ›úÀ‡êë›%L,Üd–É­´ÉtÆLŽ)¢A Â2c!‚¡ Iˆ*TUI•ev©ëm]×÷ܼÇåtaL¸Î Æ ±l&óúkoŒŒÔU×ÝsÓ½~·«˜¨„*DÆ@øèôØôLDQ”ºêšæúác!D|¨2KHe F¥s„¨/à}à½|ë[ß<}òÔ£~c „×3‹]»víÔ©SÝÝWr¹ìöíÛo»í¶/|áOE9wî\ooo*•êè蘘˜xâ‰ÖÔÔøC:þ›¿ùÃÐÜ}o*‘È岆aˆÃÉï÷†1::200Éd³5Æ’¢Ö×5ÌÎEžýÝ/ƒÁÊuë7>ÿÜo¤H¢jª¦eRI£¨#„LË,æsÉDÜÐõØÂ¼ßïOÅ0LΡ¨ë¦¥Ë²ãâ"Ș)Hî"Vœ"ˆXÌBœ ×<ç\/ê#Ž8"¸X(ÌÍÎþ÷ÿþEY‘‡†G“©4‘¨] —¬#¥%IÊÄy„¡FHRäÖÖÖêêêb±°°Íd2ÕÕÕ€)`¼dFA`7#1zóÄ+kÖ­…ÖÉΜ<þÀûª©©žšŽdsE â°…ël?€JÀC¤hÚüìÌîÛnÆSÎX6_µråb<™Éæç¢s¢*ŽÖ•«G¡*‡Ó‰0Bœçói“é’¤qÎÊ9ƒ˜sŒ)U–E®0ñiÈ–©aaT¥ö`Bêî¹X_ßUr`²,ë†qùc;Ö PL¥¡B±‰L¶µ¬¶SÜlp¶mÑ@qfÍEç‚ ª:J*\žÐÞ ŠáœýåÏ¢ ób’Y.×­ß°rõŸ/È,èX¹F–äd2‘ͦ3™ÔÐÐ5Q7t´wî½cßœª*;oÞåø5MÅ€{z¯¼øÂ ·Þºç;ßùŽËåúò—¿ôñ—"öE¼@ãl6óò+/ lݲMSÝ3‘ù|!§ëFgçºl.—/äæç£owŽD&MÃthNEVþ M•5Í¡iš8±4U£¾z­ûÂÅs·Þvû¶m»$E²Ù$Œ›†ÉLS¢Ô¡jÅBþÇ?þþèèàÎ;¿õ­outtBæ_|ét}}ýW¿úUMÓÄñiY–¡[ÉdêåW^þ§ï~'•N‚~IÂ+ýzì^nV'f}©KgÓó ¯Ÿxù|×fñ¯¾Ðª¨«oš™ž +ý¾°ª9 Æ–iŒ_õy¡Zàh~aš1›ùâtzÛæãCÿ¹Ž(P*;4G¡˜{'œáß8>cÁ`ðÉ'Ÿ,‹?ÿùÏ;Æétmظy㦭>o@\ 1BÀ¸í\m•Ú’|©Aá‹û2Æ„˜Óö? ^ /S®ë7pŽÊ÷e¡Äç˜L ¶LýòÅ‹W¯öfs©Ö–U³³S»n¾½¾® 8²ì†lÙS&”–ø4Ìv..Áì—šŸäúáòª˜é¹|a÷-wxÜ^~}Mù®IÀ0e™2Ž ºi™%sû#r:]>òHmMËáA€1àØ´8X`3,‹[D"X*S,‚¦˜`B$‰RIQUESœª¬*™žžÚ¾mGee%¡”زp˜˜ýµz¼¸kãîƒwÞ­ù¼ÀgT#ºYˆ¥Ò“S““³“óóóT¢«W­^·f]8TA ‚1E„b„!N)…¨Ú¦{QZ zßûÞÿíoÿÝ™3g‰¥tppðÍ7ß¼téR¡PXµjÕ-·ÜòØcVUUʲ<;;û«_ýjjjꦛnzôÑG¯]»–Íf÷íÛ'ÖšeYº®¿ð gÏžñùüápE±X`Là¢Ìt:Ù×wµ¿¿¿DêG[[ûÖí;ú®^9þm¯×³fífYU6oÞ~ér—¬+¾P3f1¦È²}&cL\àòùœÏç»q±X@ægg¢s«V¯E¥·BËÕˆeY„œ猩ªVN°!”bÀ“á±!Ó4ñ‹_D£q§Û]SS§I’=:·¢K­@è—°DèðèØË/¿ êêê;;;m˸`ýˆ‹Ö&LNNÎÍÌ<øØ‘©É‘t*}ï{Yº993»•JTUV ÇzGwh™µâ‰Äâ¬,µµm¡m;vµ·¯bŒsÆñŠP WiššI'‡‡Ðî]·ÞuçA—ÇýÒKÇ|èƒn›Ribbô·¿=ººsÍ_üåWêëeI¦à…BÞéÔJV_8}úô‹/¾¸{מ÷¿ïáøb2K‹½Xôùü-“‘髽Ýýý½’,ç²¹–¦--+EÖ4‡ÃáeI¦²$QÕ¡ \;yêõ¶¶ö§žúT¨¢RhÕ8±À(!·{~nöØïsõZÏwÜñ‘°¶®¦³³S×õ'N4449r¤üÉ0Æ‹E#“ÎŒŒþíß~­··'\QQß¾yךÍ[×{Ý5‰Y¥¨“B1—L¥‡Gù‹ŸÆb å—lq1*è¦ÑØÆØíò¶5wÀìÜÔ¬*;B3³“â_SGçªM²,÷ö$’ ÿiг×ãÏæÒÿñSPÈA?þñ/..þð‡?.(—˵eËŽ ¶8=!&RÎ9e”`§‰ü3D_OåF’ˆPµHƒà("Î=W³±^ËOAbËÑ?vb"dll@–h*¿Ò}!›M … O¯[»¹±¡Åˆ J}Œâ²qÛzhNp)-ù1¢¥†?[žwf—³¢Ñ…KÎÝvÇ>‡ÃyÃü®­fI’4M#„Ï ÜÎöƨœÙS‚メö(ˆh @¦i1EqÀ²^a@ÔÞPd‰R™*˪ᨚâPe™ÒÙÙÈÕ«WW®Z}ï{S,ØÙˆë:wæüÛ]5ÞÚ}÷…|a¥F‘=0˜Î=ÿâsÙ\Úðúýú†ú={n© WÙXTÑ”Š¾½áR&*åx àÊ–øºººø#?üázèý’$·µ­Ø³gÏ}÷Ý×ÐÐ I’$Iº^<~üøÌÌŒÇã¹õÖ[[ZZBƒƒƒ’$mÚ´ ,‹3Æfgç¾ñod2©}ðQιaè±X¬··wddhqq±ìO „ƒÁ†Æ‰J©têç?û‰i•U5+W­ÉSyTÖÔmĸ§ûÂ|$"ËZ†xãœëÅ¢,Kº^N8q>äó9Ó4’É·Øb,‡ÊТ¿®aè"Ðâ 1îr¹Ë¬ÔU+;5ÍaÆðð¢Èýýýýý˜ÚÚú½ûöoݺ}y'lé]"xù¤‰1&0M+W­ª­­/Ã#\€­>¢oeÏÞ»dYá9ùƃ÷ýÑɉL¶€K—L–ˆ`GÓ"HQÕÙÈdGǪh" q€®sg>õÉOfs¹Dª¬ÅÆLÆ ^SßTßÔ*ˆŒ ·˜Å˜3̸Å9"" HœŘP nD–Å›˜snÊ–g@’$«Âç/怊,›†C)YÎkŸf<±¸¸kmi¿á’ÅaŽΤSºnTUÖ.e‚—¹þe0Û2 F¤¢¢ª¾®i:2éq{;׬]Õ¹6ª`&cŒ!!,aŒeMV5M¥}õ•S¦iÔÖÖÝsï¯×=>>ró®=ÕÕÕétê÷ÏþØëóþÏ/ÿesK£¢(², ׄMÁA¿úÑ~W|ôɧS©ôìÌ|"™*êf¾˜K¥Ò[·Ý<66:<4ùBVQ´Ûnñùü‡Ã¡9dE‘e*ËŠ¬ÈãÃçºÞªª®þä'> …íÉ6˲8·¢§kdxðå—Ÿï¸z÷Ýwëï¾±mÛö¯~õÜxàÔ©Sœó;„áËâÅ|1›Í'“™_>óóþÞ?ƒáº†Ê»ömÝ{çŽbAɧݩE(ê…l.O%G†Ž>ó3™ÌŠ«€l.=4Ö Tµ4v,Ë’Ú;pÞbBHS›Öï4ÌâÅËoe²ÉÿBòÝé¬qŠE6Msvvö+_ùŠXZ^ŸÆÍ7ïÝË,õ- Žlˆ-*+1Å€c Àa!N–ý;¥41AS^êC”â/EÂí`[qç{û/JD6­BsÓ ‡êL§’…bžsp8œ-ÍK ‰7cŒ(Æ ~NŠƒÑ¶gQ™[ÖÒÚA„åÍŽäö áú!`–I¦ºÎžÜ{×=‚›ÅßMJ³d$I’Ë¡1Ž29Ý´Ø æA\â aæpXœޏ¥ƒU`–iZ–H‚‰@ä.QBeI‘EQ—S“¢RÇûûûÃáƒ÷’ˆŒ9/d²ÃC#ããÉùĺÖõßù$¦ V*T"£Þ‹=¯œxÕë÷<ðà{¡ FˆYs̸%DúŒˆQ.`„À²!Bl1æÌX¦6 œÏ<_ÕÕÖÕÖÕ;ÎÉ©‰î+—r¹\eeÕºuççç¨D³Ù,ÆS¬ëE·Ç³ã¦=‘©‰Øb4ŸË¦Yfèz¡œðg†,SÓ䆡'qË2A*¹èv»ÄóÓõ¢eYœ3BˆiX„™ÙÈI„Aqh²,›¦™JÄWuv*Têééq¹\Gþêµã'ŽûýøØØôôäO~øýçžýݦÍ[ׯßÐÔܬj/ õ˵&LOMÎD¦£ ó ÍwÞµßÖ$Œ8"%ÇL0`Ä9`,ÍD¦Â--€ÉÔØÈÂÜÜCýõ|±0>±s7Á²‘eÃ:"Ø¢û¼®Ù)ž+œs„qdjTSèæm[¯ Œ&ÀBË/$¦©t|°¯GRä@ äöùdIåœ!Ž0°ARœ£X–0¦„bJU»¾rÜ,ã’@p<63?;&Œ¼^O"‘"„–ÃKK7å¥BÂhffÒ4­–æÖwBñ…X9‘HŒÂá°%ÙJñåâÝÒAׯð[÷î_\\hmms8Ý€³v„`Ѝ˜è*²DYŒÅúúœN÷#x,ɲdZÖΛn>þíÞÞ+?öÄÆë]n—8EdTW׸ݞl6÷ê«¯Ž >tŸæpÌÌÎ/.&òùB:›I&3‰øâLdº«ë-Y–BéLª¹©£¹©Õãñ:MUeI’$Éát¦3ñ_~9ªøÐ‡¯ªªB*ÞáœQ„(QÆÆ†^|ñØÄÄØwìýÆ7þvë¶Í‡£§§Çétær¹-[¶hš†á1Æ =™H¿ú꫹\ö¹çŽ<õzGGë]û·ÞuçNMó¦âÎbA6ôb6›››»r©K/0&åá뻞D”ÊÓ‘ÑúÚæªŠšÉÈ`±˜|(\50Ò“H, ºÊ¿šûŸ?$(¥n·7N!ÍÍ---Í'N¾WUÓ¶n¹iÃÆÍ—cÄ—…EQ²ã0‰1•8µ—e¢ØNŽa–°/g¢]oŸoæd{°–ñ¦>2:ðª«ê8p„ÈÜüäožý—ƆÖ5«Ö8]î¡‘þžÞ˦eR*u®^·sÇí~¿!ŽA@¬8F¥ÃÕ´‘0âŒ1L°ÅÌeîY.†%6íMü´Ä¶U-7ÚºyæÌ»÷ì§àþX‰¸ðJ”:N‹ó\¡hYïb–¸Á0¥i½h"¸È¢Á ØA1€ÁB$I¢T¢-‹Œf˜3™tt.ðoÚ´SáJa,7;7;8Ü8ZÑÔ~KÇ-ÎM. ˆª«(YL]=wîì…3­+Û}òÃoˆ1΋Œ3†(Æ#™ŠÉÆdy/a¹-L£—¶#«¼/Bz»»Ó™ôÁƒŸxâ‰X,vøð½½}½íí+úû®]»V__·aÆêêjqld2™t:}ìØ±ªªªC‡QJÇÆFüãŸ?Þëõ2ÆWuuªh·ì¹õÂ…®ØbL oÚqóÆ›óù¢ÓéÈd2ç/œfÌji]ѹz}(T¹¿|åglvv¦­­Ýåõf³9IÒUI®©­‡+ ùüèØp6› cL’¤P(TÔuLˆ¦i"Ñ,“±ÓÊŠÅb.—·#!®I$Á@€s.E;¹ q¨¨¨œI§ÓÙTšR:==ù¡~°¶®¾¹¥íÑ'>–ͤÞ|ýÄ[§ß\\Œ¾òòó'Ž¿\QYµsç®M[¶VTTŠ¡ øxýĉªªJUÓ‰D.—+AQÊP0q1Æv Àûz®¬Ý° K2B赞;pÏÁ†ÚÚk££EÓŒ€/Wàú|\phêøèhK[{*["Øs§O>üÐrùâB,A6M‹1f1Ë4b1—I'V­[„ L€•ÁÖ Äßœáv_„”²¬Üà#´ÅsvQT,æF.inÏÊ5;$„p.W²·²ˆ ÜJ… Ø_&''TU­¯¯³ÆvÙ¿ô/ÆEq»=¥¾j™ÇsCU©&]¢£ÚÚÚÚÚÚr 8"˜¡VÅ„He]¡Ò™3orÎÝ{ߪժªærÙíÛvüþ÷¿ñù<ÿÏWÿ:¨š¬(²$ÉˬèÀƒÝÝÝ_ûÚ×ZZZž~êãÉTfzz.Of³ÙÅÅx".Ì÷ö^^ˆ.(²]˜¯¨¨Ù¶eßp»]‡SUUY– €¿züùt:qàÀáöŽÕXŒ`9ãgEV®;öÛ±ñá{úößýݦ͛œN­ŒwúÜç>'ªËb¦©›ˤ3…|±ë|×'>ùQåùâÿÄ{·Ë’’Ë:’‹²a²l.Ù××ûÊ+/\»Ö»,í–ü;Ñå€Òé8!$››[ˆX–íg¯¬¨›››ß§lƒùÿý,Ç»d2)—ËuøÐ{}ô±Ÿþßÿ#žrMMÃw©Ç¥(B£¥‹*Aee >?"*LI)S‚LÐ:„ß(Ú&ø†X`ñ2w÷t½}á4%äû>,ªÁ¡ÑÞ^úMUeÍšUëNœ|8óx½™lº²²úŽÛî©©n Da(Å G…ˆL¬ÎMD†²Ôš#!åGöü¸ ZâŸ2‚ ,[t¡ÞîKí+V{ýòåæ]/(Ü~ú ټn±¥6 Tе¾ASƒ5‡ `ºÁ,0‘…Œ0¦$I¢D²ƒæ%¹˜Í ŽÔTUJ¬,‘(ÎúÃÍ+[Í´yåõ+ÉlB–實ú»”¥‚‡‚â‰øë'O,,.¸Ü޶U+?÷'ŸW°Ì7  À*L!;†Š#“1(w€91ySÀÅ!.ÚQÔÎ&›6mÆŠÅÖñ•¯üåÇ>öT0<þü_ýÕW³ÙÌ7¿ùÍÁÁÁT*%ËrmmíŠ+zè¡U«Vuwwÿð‡?üõ¯½cÇŽ=ztq1þ¾÷¾ÿøëÇ?ðȇÀÙsg††›šš|ÿêêLÓ\X讬¬ÙsËí55µUUu¦eÍÎÍLMüÁÅxÌÔ‹ƒƒ×V´¯rº<º^Ô y‡æÀ‰ÖÕÕ rÎÜn·èß‹E—ÛMeIQñ|3™tÙÚÍf˱ù\.6?ïÒ4I’9ç¦i•«ÎykÛŠ¹¹9>2<Ì9Såá<219•L§Yñû‡ïïM7ï:ßõöå‹¢Ñù¹Ù™ßüú—ÏûÝêε·ßqçêÎ5b¸ÜÞ;wŽŽg³Ù›oÞèp8¸MOàh)ÉCɘŒÇ‡úoÛ€ <2ØŸŠÇ¼ïÁ|±8™³AÖy €ËIÔ%>"äóx#c#E‹1„0FSخݷLLÏä “q°˜Å¸%6U½hÌNGFÄB)uz<Õ5n¯ñR§ ËD@8—e冴ÒÊlG £±±žèüÄêµ7{¼A Hâ €3*cÎ5ƒ”ÑÀvl4€i™£#CU>Ÿ]'Ú„rE[Œ:.·Ë]šˆ@¼d¥´OÅëâO—•ƒ\>•áâ¾O¨Ê Ѱ¦©³³‘Á¾ÖÖ¶½wís¹n;23ÜÕ5ðž÷Þ¶m›ª(Š* A[ˆÀ#€X,ú ώñ ÿCU³sÑùùèâb|q1žL&b±ØÕ¾Ë㣄b1 VmÙ´; :N—Ó¡jšªi.—+_H¿yòÔBtvÿ¾ƒë×oe•H¶ˆ€"„=Ô‰Lþâ—?›»÷Ðý?úñV®ìp8ÔRƒçrÙµk×2Æ Ã2 £7r¹\!§›×õâT$Âì:‡BËðæRŠnðL&~ìØ³¯)—ËRJU•Ȳ‹RB©°¬a!€µ,fšÌw)%ÝT†êü¾ T(f …Üb<ª(Êê•ú»ç¦q™†¹D‚ýwÎÖå@›ÏùNч ç´‡üN§kãÆ/^¼¶aÃñè·lÙVY]·¬ï`»sl‹/ 1FG€(%D`{9F i@9cŒĉ­f&K`eV2Зx0¦ ØØøàk¯Ër»wîÝ´þ&B±agß~ýÂåÓÍÍ+^{ó·#Bq¾¿uÏ-»wïÈ0Œ[„IAÓˆ Ωˤ¤KìùJ)ÝI䪔æðTl¶Ê!Ó4"[¶ì@%4) „€•¸i‚HSJq.oX% r)ÃV´²ì•h‰=ãzÖ°€•Ë’‚)¦„Ê•dI¢²Jd$+Ôh]Y S„ÁB`ál>;::ÜËz>ÇÖm›ƒ!,a‚°eA!.¼v긬I{÷ï W„1`³`!ÈBaE é(gBèÀ˜pΕ¯&¢#Êì?`·ï8GÂì€(¥ЉýÞc¢õ®óo_¾|¹PÈèCù›¿ùš,+ögºeË–ÏþÑgŸ|ò£õõ n #4?¿pâĉ?ýÓ?éîî9räþ£GrŸüä'šW¯Z{üÄñ{ï=462²råª-[¶ï»ë`8\111ö Çú®öú|¾ÖÖŽ'žøTMm}Q/`—'“J½uêøøØh¹è‘¨Ä™µ0;C$êt¹X61¦T¢’ä÷ C…*r¹<çÌ4ÍT2©‹„Ú¯k±X,Ïò¹¬Ø1 —ËärÙhtÁåò¨R*K2ÁX€FÃUU M“ãã±Ø<üÈÜnÏÅËݸ½B0TW×:|ß{î;26:|êÍ7úúz³Ù̕˯\¾®¨X¹rUUuM( CwÞ¹?“N÷öö¬_¿^U5 )ÁËÄ„ç3ýËŸo¹i§¦j¦®¿ö±Ã÷Ý_SY}mdİ QÀsàöX®t¡+ï3N§«K¹}þbA·øÓÇ_~죵Š,,‚pvˆÿç¯gëî[£ós^Ÿgœ3áW†1A #"Q SûT!KT½¡ôÎ)Á@1ˆGgúÎÖÔµm»ù^±¤0GÆ„ ¸0bbi“_U\]uÝ®«kt8\eøòB(¶s»=‡ã¿ÔRÞÓ²ú¯œ2QÞ@íÎeY3„('†’$Y–e‡ª]ë»PWú੹_|ñ_‚ÁÀƒ?òÈCšê$Y–%á8FvwôbáÙgwþüÅ»îÚwàà¡l6?9‰DfãéT:J÷ô^ŸÎçsŒ1¿Ï¿zå†@ Â©i§CÓ4UU]n—$“³çN¤3ÉÛoÛ»qã&—Û¥ª’$aŒ²$™–ÙÓ{®»ûìáCû|oÛŠ6‡C£¥,ËüÆ7¾ùß>ýËb†ae3ùB¡È³,n†ÅÌ›nÚÜØØ899‰ôõÌ7Õ+†aLE&ò¾799ìrªUUÕ>ŸËçõx½N‡SQU‰`‘q¦aòF:“M¥óÉT.Êes]7-“¥3ñL6YÔEšAU„«`YV0˜ E’5M•e “Çö÷ζ'pd𦮛†i•ô™˜R¢ªŠËé’D;ÚWrƒ}€xÿ橇G®ùáßûDue=6¿0s¦ë•|!y÷¾;].9™ž¿ýŽš¦hªÖÚ²®­e­ÅgÌ0LÓ@ºaæóESç†iš&¡!‚)c‡ c²°ë"Ž0Òdqi¡¥$v´L˜ƒ¡|¥@xhäêÆ›<^n lqƸMrã¶j8ǘhŠbZ̰ÌÒ7,ß'Jp'|½ êPMÂdJ’¢IV¨ªªŠ¦:dY¥ªƒJ„RE‘€µc€LØ` IDAT”LÅÇÆ†™„×Ý´6X&Œ¹Å3É ‘¨Ûã4ëéëÁ¿÷8.f1^s,L('á„ \ Œ¿œèksÛà‚0æ’m˲Ñжý0&T$‹•4ºn\½Ö{æÌÓ47oÚ|èС³gÏ;öû={néêê’$233íu{ZZZRÉäÙso=úL___(>xððw¾óŠp嫯½ôÿðO>ùä¹³o ôÿñç>úô©ææ„p[kûÐpÿ˯<—LÅW´u|æ¿}¶±©]UUÜ2-ËrF 7ÕÇîˆFç§§'‰„aX‘ééºúBp"u{<„„tŒI(/b]]]4º BÊÄ_g']&h//1Ñ ¥”Fqr|,—Ëi𣢢"iŠ÷Ö[öV_»Ú×#IÒ¡{ß3e³9Y–ÑõŠPhnikimËf³—.œããóssÑ……XtA¼&Š¢ø|þ­ÛvlÚ²Eu:ãe—‘m/9}zº¯óùõ›¶rÎû®\ʦÒï{ÿƒélvv~¡d.àÐò°½òÏ1}Ý—ƒ•5†É‚ÉÑa§Ë¹}ëöÙùh>_FÊ¥^ÁÈbˆƒ×ç§1ÁK)N`'c É !Hø*Q!©½®1D)縘Ïô÷.êÅÍÛîRÝ^Ì» “YŒY–ñÄT!ôüØøHKs»¢¨ox¹~'â[U4Œ–€:¶ ´TüÝD-;—:HeqùòNiùær¹Ñ¡þŽŽöT±Øº¢±®Îqëž}Û¶m¸tùÂØøÄ•ž“§®Š=…âóùëëëÛÛW¬_¿~ëÖm…BúèÑ ‡>õ©OOMNÏÏ/LŒOÏÍEÓét&ŽEcÓÓã³ó‘t:áv{[›W…‚Uº‘WÉíñjªâp:‚¡àìÜÄ…K§ïÜ»×®Ý>ŸË0 }}W‡¦¦¦cјaœƒ$Éù|JQQûŠ5NW I*Š$ITÄúˆ_§·§¯¶ºatxZtùÅóæŒ1ÆÃ’átj²¤:tsÓŠD2vöܙǟÃÄÜ´qEccuMm@/˜ó ‰x<=95ŸÏë¥)R5Ùïw‡Ãþí^6;ŸšZ˜™YŒF“Ù¬n™e¼G‹ñ…XôUÝÒ Á.§£¶.X__Uò(ªü?Eûß0Ìøbzjzaff1“)pÎ%I …½m­ -Íõk6´¯XÝ?xyx¨»µeÛ²¿ ¡•«Ö777Ö«èà‹Ò4ÌlVO&rÙ¬TEõú\€ËåÔÄ­¼&m6‚ÿ·÷³ª:÷Çßµv9½Í™Þ;3ÌЋ4i"**Äc4˜¨57Æ{sonª¹‰ÑS‰Æ´c‰±‹ˆ" ½3´¦ÁôzzÝ{¯õ~ÿØûœˆÑ3àïwžy`ÎÙ嬽Þö)„ê“;½+ÈTÃáxЋFœ¢¨2eßÁí{önOª‰²’ÊëWÝê°;9ª‡ïðùÏVUeUV6:œ¶ÞÞ†ž®áP(FùÀs”¾C€x²œ99ÙÅÅEå•“‹CÑD(‡±ˆ¢¨ªÆu½bˆˆpD®+(™L²Ûesº¬6«,ˆ!†Ç¤œ.`œ;cÝ••SdÙ¬Û•è^ÖãcŠÊEM*,‘Ô…«ŠªK}GI`bèEQÃ*¹áj;æ°n—Ån–1LÖ¤hË5«ÎHkkS{ûÙáßÀ` Ð-¥‚Ålöf9ò òæÏ_vÙ¬Y£¾þþaAV™ä´Š&a(ž @ú{ûÉDý”z—ËÍW"0äÀ¨LQNãŒ3ŽŒ3Cr’ëtlèê=xðP{{{OwÏààçŒs®9åçç———Mš4iîÜ9yyú°PQ´Mï¼wºùtcÃÔÛo_›åÉ✠öQJ;;;ŸúÝï %?þ£`°ýÛÏ&’#l{[Søõ×}ö»ßþ^aa)¦$”-¼vðàþoü×ÇšöNV½îÞ{E³;V8pàoŸ9sÚãq-]ºdéÒe………” †õ‰ž GŽŒ©‰„½¼Â;eZE2™Ú±cGÓ±“@¤­µÙátegç*J23¦˜­6³É¬+˜Í–ââÒÑѿߗÆ!Š’¤©ªÞ Ò@‡Ã¡C© jš+™Lü¾¾¾^ýÏm·Z­µ“ê§Ï˜]×иßÞÕ«W>z\wŽKc¤Ó­T ‚àp8/]>oþÂæÓ§Ž;rîlçÈȰ¢¨Š¢ mܰ~÷®ëê'×ÕM.«(§‚h Mt¼‰¢(Û7¿·hù ÙlbŒíݽcÕêënwk{gBQÉ8ëÿhjÛl6UM*š–P5‚ŒïÚ¾õî/™!éf¨KÀC7³„j”èaŠ‘Ø¦fï†\èL ‘EA¾…ŒwŸ=yúø¾ú©óKJë)% H¨.HôÍÿ~TÇhɲ¤(Œ(ÕµwÑ@wwפšÉ†âšÎâI)µëy°Ï?j5[Íf3ŽÃæQA@ƒÏ?&D¿™†¬€Á6~`iöLú&ªŠrøàþÖ3'§MŸÂµÈgo¹µ¿¯uLJ{Ž7uˆB°¾ëê ªœº½œêªBÒÕƒmm¤µº{Íõ“ªn¹õö+W^EAسgo0‰£‘H´³³m`°{dd˜PRY^—§×Cƒ½EE%Þ¬—Ç90ØÛ|æÈ¤I57|æD¾eóÖÍ[·tŸk­®fõõ¤º ˆ,£$¦Ž…î>hk#ííØÓkž;wÁ7Þ¸æ3«óró“‰Dss{4œŒFcÞy3¯½ã.Θ!ªÄ9g"»åÖϘL–ïÿ‘ÇìÞ½R¥¦¶¸ª²0Ÿ8qötsg^¶R[‡“&‘Òbp{Œš™1…Iž<ímØÕ-×Ô”ÕO.ÍÉvëj=ÓÝ7à‹†c’d€X,’ÎÏdY,+Ïkl¨èèè'`L\2Ÿêš¿ˆ¤¢<¯­½¿­­GQXQQÁ¬Y“¢ÑP$Ì,VA q®ýÓøšÍŽ´èø~+CîÍʾúêU~Ÿ’L¨nÍdâo¾ùF<Keh¡ p,--¿úÊëz{ü‘X" ¼ñÖóýÝ” 3§Ï_8oYçÙæü¼œhbÐî䫹¹¹£éX[,6RU XQùyT”¸(RMãÈah„öõaK ´·ÃÐeæÌ™‹/ŸßØ85‘Àá¡`$¢¨ Æ8ãÈôX¨«‹¢äɲXÌðÆ›oÄQÐ?ñ„“e+p¹úþK€x£¤´°pß®yÅeœ 8ØÛ»kËÆ§ÿðçs='Û:!Ó4¦ª*Ó˜ª¨š¢ªl¨¿ûÌÉãŒs«Ã‘[Xd³98"A’XθA&„P*ˆ‚'Þ[ÿçt0eÚ’`pX2Y.›¿J6™tÚ0ŽO¨D”LÑTM ¡€È˜F"ÑÀàÐ@]mcJ [ŸOÍJ)¡,&³Þ+¦ŒÝSZWcc zz»¨ äæåɲLPAD)ÝtÕ±:ý}}[ÞÇé´­ZuU2Ñ_\\ÿy¡«ëð5Wißþ™:{<@iÚÜÒ£%½îžÄæ-'^|ñ;¿ùõ/—/_1mÆ$›ÍM†4¿øXÓ‘¡á%™,/«ÉÍ-2›Mf³Ål2›M¦œÆé‡ƒñÄö7–•?øµ¯ОþýŽÚ1kVì»ß†…óYN.1™Æ«…¤=ÛbOOróÖ­/¾¸õ±Ç~t㟽õÖÏ÷tŸmk=k1;Ÿá¯ÿñÿ­©*4Å9cšÆ‚ÁP<WUõñǬ®*lhløbo¼ù¡Ëî»í6üýïHy%ºœTÇþÂØ…ó´B$ý}ÊÆm/¾ÜúÁfǼùS–/›ÞÒÒÓÒÒ32ŠÅÎ3¾e±  {`ÀWRܹêZN&‚%)Í÷6“Þ^¹¼,·§wÈj5ÛíæÚÚò¿=ûÊý_ åxS~"ÿüɆÆ}zš>~.Iö3˜5k¦ÛU„ \Nû»›Þ²˜·ßt~Œ»Ð8ó=‹ÃÛŲef‹)S6m~³ »¨ ´o ' nþàu a‡g’7ǾkW[_ß™E ’¿û-Ìœ‰Ù^$ ÀSƒ<–Ò±æ:©-&=ݱ·ßÙùÊ«»ÿòç¬ë¯ÿÌÒ%‹£Q62 ‡ã*C£_ @€q8­ï¿¿ÁbÙ~ãMH>ââ¸r͘¹s€€TÕÈ톇¨o„7Ÿ$Ý=DQLåU3gM›1s¦(Y ¾@8WC2Þ­‘Ÿ7n@Q=ng21IpfúÎó3zö¦›Ø}ŸÔMB—Ëà‘±{K È`"Nûûµ­ûÇKMëß{û¦5·ÝûàWrs ôæ%ãœÅ4®!ŠfäŒë~¼úÈZ·k ”H"i>}â7OþæÔÉ}W_ÿÍ8{&ñzõ Çý¡’ÃT52:Êwï=ùÊ+§_x^ž;÷š/~É{èàIU²ZìÈi^^~IIɦMï666”” ‚Ðy¶£é؇Òô R.gÜg„´Uœ€?ÿW¬øÆ·¿õù{ソ«ëLyyÞ«¯¾µ|iï´izÙÁÓߎIºÙLÀ¾½¸_ä†Wû}±'NƒÎX(ˆÅ£YÞl‹Ý–ŒÇƒþ€ÕfK•1477? J’‡5M“dS<ÓÁ–JRJsTUU5!øùÃîá¡üü‚)S§ëî¹v¡-¹PÿV/sÝYÞ©N×䯩g;Ú÷ïßw¶³#‰ÄbÑ÷ÞݸcǶ¼¼‚9sçšÌæ–æÓe•Õ’,qÔZOŸ²;î,o{wwBUõÑ€zo‡Ð1Ù[½z§Í º»{rJÊ(rŽxpï®5knŒ%’½ýƒ¨Ë J¦O7 Ç›;cÞ¤¢|Ãçδ !åU5V«Ýx€8"€NPJSÓ Ù8QÓÔT}bæeW••OÖ¡*5šR 15oQ–$EQt[@¹Æ9 Gü~_uUý˜Å "!€†+P($Ôj³§dÇ|—ÆT£Æ,%€ÒÓÛýÒKÏE£a@DÑb±Jrr >sÃM’ÉiWeׇێÚ¿`á‚ë×\Û×}äÔ©ÀÆwvÜ{_ò+÷caÁy8U:¶!ò±e ÄfǺ:¬«î¿ïÙ=øË'^üÑl7ß²Æá€Þþ“à@–'» ¿Ôjµ›L&=ZLf‡Ã!™Ä»7'“‰Û>ëìÙ3þñò?žþoŸ½9úÓÿ…ºzLyœBJqy<Iêm62iÖM¯ÜKöîøÉãO^»êÿîYwçn_‰$<^g àg:*N·QÑ´d2™HÆ- ãš(j³fÔ–ænz÷€$õýì'xíu`µ¤C-×´ÔÇq[ÔnÇšRS‹_ù Ùµ;òƒîÙ³Ïsíµ—y¼ÎC‡šûzGãñ´®Š‚àq[GFB³gã}ëÒ›æÄŠB¾ó]ÿŒ•f“‰€8þ\Ĥ$'î_ÙÙiFôGEÀv°ü별´˜åDT5›e%Ÿ5 Ö­ú¯Ý…ÆGÈ`€<ñ[@`„‡vpÎÊKk\NO–ÇÛ7Ð^][8ÞìcÇ:ßzkë_Qï¼ËËÆx|ºï.ŽE)£…©+Û¸œèj€†òõñÃ]#?üáß~gãº/ßY;©±¯'à„4•3B¢(˜Ìb"Ÿ3S¿½ÿÒ*0Ì¥ÝÒÒÿÂuµ @Æqh8qî\|ïÞ¡ ö>ûËÒeËÖܰÆf—ûúa½ œŠWÊ`‚,I9¹®©Y²eëÁÞÁƒßú&~þVâtña˜Â¸tNÏ»   ¯¬„ÊJ¸û.8p ø“ÇŸZ¶ä¥Gÿ÷Ç«W†qM0žd RÁBT¢F8gÈs®i†[$‰š–xü§¿|ãçÖ}YýÓ3¼¸xœðe:6é}]‚$e'J,?nü ¹a ïîJþê‰7î¼ëµ·ßõ­o?d6›9Þ޾þð‰Dâž{Ö¹\.ÎY2¡šMê}ëŒÏ5eªÿÀ>R]…”“)“±cѱS;CY†+–Á²%ðâßû¾ñÍG—-»qÍš›‘F“ñd’#£D0œ>Çe-µd/¨Ïk.¤ƒ ò° .›K|€·µÇ¿ÿ?¾óß{ÖÝwoeEå¹n0Ñ4®µ§¥LQ…Ü\÷esë=^ÇÓOýcíÚƇÁéì£rŠñ¼ ¤.5œ;^ùy÷=ßý÷Ý»oヌ¾ýEÊM"jŒ3¦éˆ45PD“Iè]·n]nÎé}û ¼RÔæ —tÚ(u8V)(+Ã_üî¾;yÿWžºùæ£ù¿?»]Y/¼ø\ooWmí¤[o½R€GÂC)ÿ‡”dM‘¤)Þ@9gŒ±ü‚¼úúšÑÑàŒÉÂü™ü¥¿;âÅ÷7“o}ë²áѨ$É%Å%»Ýávövõû|ÈÐ7qôïÏ=;44h±ÈwÝuWCCí_þòjYé¹w6`ãd¸È}ÚP|éÜú4N9ûò+[«ëŠ«kJrs²]W–7«¸´˜còÝ÷Ö•|ë¿¿·lù²²Šœ¯ý¿¦M9±iL›@.žiNÁWÛw`4±~ݽë®\¹´¤¸Pcj(êíëiíhíêênmk=zì0c‘3jÀ–­[ÿòGí¢’Ä.…É'|ñ‹°q#9Ö´g¸ß?g^}~^–,‹ãI—H,,BYf9Ù%MÇ;vÄj3Ǣɲ²Kâ¦çˆºtËErù Š&SAq™ÕdY0wYa~^~¡-iû寞ùâ—‚¯½ U•—Ì”¤pÛm°ýln~í·Oþ:'Ïîò˜%YÔ™-†ãØ%ßá΀Ðê*xöÿÈ£ÿxêw?ïêl)-ÎrØÌi”"ê1”RâvÛ¦N«r{ìo¿µõ‹ýâçÜéàQdþ—Ÿ¸æjØô>>ò—oï;‚© *Ó4Mã†[¯†EÉdGGï¸ã KŸ~óM¬(…•d¸6'Æõ¤´dÏk×vt¶ìÛûžÝn}ðÁʹ'Ž6í¸ˆ½BU’ÑHø³7î±ÿ}¢·;ºf5Él¥âž= Šn;Lh·ÛSR\ZS×—_H(A€H$<<0‰D¬v»77otd(‹‰¢”žçúñ„X,VovŽÅj¯Ã‹ÆEqºÜãñ/éµ°xÉR›Õ188Ä9Žé™ŒžÖ×Mý/Óÿèßð»ÐtuÆ9ïîBœ#Brsó®YuÝï¼ç®u÷Ïž{Ù¹sªªž>uÚl6;“lBƸžøpž’ÆçL/å R RœN牦¦œ‚BýüþÑh8´`ÁžÞþH4ž¦ç:*LÕT-©(ªª1M4ɪ¢ööŒ ôèãýHŒkããGžÖˆ ’@… y„:ýW÷¡H7S5Ž(˲ªhºÊhwO'!BYiyÊO×rÐUJg8êÎÏ+ÒÁAºBØyU Õñ¢„ÒÔtxû¶÷}þ‡ÓÝÐ0uh°ÏjµYmöÚÚú²Š ¨ŸÜx¶£-ž¸`Áâ)S+ã1ex$˜Ò•¸”KÈÉ&fsüXÓ^U‹™Ì’ÍjöûÃåp‰‘ÐðKÛC¦Û±ñ PŠ„JË—¬¼é¦5Nù¯o~{íF}(%ðc”Þt«®¢o¯ç7Þtàù¿=çw%’j(¬jŠF‰……O]¯G &D”È—ÖòÜõ kûà×,È/M*,W0EYYJKód"¾ðü{¿üEòŽ;¨Þ¾ØGÊ0ü^[¯¼Œ×_÷â¯~÷µÿCи†,-¬Ÿr ‡x,|Ï—ï¹òÊ®_ü%‰èýV¼„ÌòÇ?à]wº÷ž»-žl³y®»þ:ä\Q´n…|ñ±‘X`h¸Ïfõáí­+–c†'óêëpùå—ŽF¢±x ùImV»,ÉV³Ùåvw¶·ªªªªŠd8 ÚŽ,oNÀï÷ŽdçäêÒ6ºÏ%"ç€\nO</ìðûKËËÍVK,=O&[׬^ãóùã‰ÎÇSËÇi~ )Í /®fÄB}ØK  ôö6ü¹yy5“ê€P] šM2šªk'¡f³¹·§góÆ „Òî³6‡3'¿ˆŠ¢?áã¤q‘rBÝ6›ÆÔÝ;?\zõµz:}¼éꫯQô ަÂ7rkª¢ãe4Mcš6ÐÓ=ØßcµÛ.w^QGÎP „'¸@Jˆ PA*‚DDBqü×”ªüÐ|Œ,ýi!b"¡è+­v»-';?%ð/j@S‘ëúV@õ çå ¢0nm”Ɔ>,AJ(9pp׻ᄀßýp(°gÏŽÔ…G޼gÝ¿y²³½9w&R* IDATÙ×®¾±££õðÁ}ú‚p9íS§Ö4Ÿ>ÕvfóŽàv .6k#´X,øû§èUW·¿¿yë—ïZçó%U;~üØÞ½;g̘eµÊYYÖß=õdiIßïŸÒ«1r®aâ»VJ6 Ðé$Ïý,^rä©§~_àyé¥õ~$‘HpÎÍf±¢²¤qrÙ˯nûÙcÊòeç·Œ.~Ï4Z¦S¦ÀÿÄ>÷¹]wÜqíÈP(‹G#‰OFždr{)ÖVC(u:¬V‹Ùá´vvö/¾üSÃc€pàÆjͬ’ÀÔ_ š%A²Š“+fÎj¼óî;W,yäB)þsßïbKW$óóèßÿίXöÞþ}uuõ3Ô$¨±Ô †`šæòéÄÁô7‹@àÚkðç'øÈ_~ððÃn-™Ô4®¯[Ñå´¹ó Ÿyúݾ–¸c탮‹{šÒÐ0R^Šÿx–.yröÜÙóç]®qcÀ9ã¨qˆY~þ‹_xÜ'žüµ>=áútæÒ׳ÅJžù=^¹²­ë\΃þ§ÓîRTehxøÕ—_ÈÉ3]Ä'Çbá£G÷Uvuuee66fô®€Ÿ|°Mzðß§ŽúBJRs/0ÉrVV¶ÙbËÉÉëî:Û×Û­išª*¾‘Aì§ÅâRU¥¨¨‘ÄãQEQŒX%ˆV»My„‡Ãé÷û[NŸº È!âÔiÓ¦MŸ~´é$SUb( cL$c8O8!TÇû¤ÞnHi³Ô‹§ìÓ‘ãðð@Iy•Íj=yòdIi©Íf'F–ȲirãDðæä˜dÙb³™L–­ï½DË*«fÍŸ“_H èµ !È9!’H¬VëîÛr‹Ë¨(ëô¡ÎÖ–/Ü~[wW,žà‘3MÓ˜Æ4Ôí58G„ìÜ|«Å‰DB>ÿ@O—Íjw¸²Ì+Bp¤"Õ9"O'WH( &Œ3  €€H ÕŸE i!­ôÓ€çgÏx<žÜœ"JÓÎUz½N =§r»Ý¢(@ª«ë_jØSŠ@@cê–­ÓìÈq$‹—,wºÜ€sÞÞÖ²}Ëû‘HÄéðH’PXè))öþñOýå/!/ïÓW¿”$öİgÏ»=}]nÝ$Ký„o¸Åî°´œiùpÇúßý.±'ù/cn³‘'‹[·¼›LggÛ9ÓŒðïrÖ×—ž8qvÖLÿ_úô¯–/%뾬lûàXÃäR¯×9NåR_ÕÕ02t:­6›Éá°ú|‘ÊòKßê‚.žv‘Û¦(RMKøƒµ“*ª«K7¼óv[ûæÇCö©³¥Åä¿„ç^xÑl¢v§Iäþy­]‹3g mXÿN~ŽÓb‘SæsÔlòr]gΜµÛû¾óMÔ·ŒOï’êjá{©?~ô±¤GàŠ¢ÄãÉh4M$׎=²yÓK¿}u‚Ó§zÃÑå$O?Mví:êrä5mÞ¼é칃/;ñ2[Ó”þþÎw6¬¿îZ BFïÚ¹$)/Û›Ç4ͰRÔ÷f†HÁn·Ïž3ïŠ×TTV˲IW üÃC&‹9 ¶žiAγ³s=¯Ý鲨í»½°°¤¼¢*7¯ÐåöäæåŠ’¨(J2™?Ëeùþû¿ŽÄ†GGyªÿ™nU¦Z£úßL<ÕUS/EQ”¤¢©*g¬¯·gî¼EñX´£­=??_6›ÀP¥ÈçÈÑîtÏYpù”é³ò‹Kn¹ý‹·ß½nÞ¢ÅÁ ÿøá}Ãýáp$4Z¥V«…3Þt¬©²º’Ž–Ó•U•‚Ù68<¢wP™dœqMc©“×4¦ù|£LS%ÉTV^›•SHpUeIUK*ÈRWƤ|¥8×Ñy°"š†¯AgõMFWC¤€ÐÞÞìv{½Y¹œ1åߘ¶p¡D , Z,v³ÉF%Áp-NVJ]Ò`0LÄ("ÖÖÖgee{o.¬Xkné­¨(°ZÍ”IòóÝE…9‡ÿá@’þ¿Ø- ¡ø­o“ÁÁsHHII®É,“O£5 @jjpd$ätÚ«Ëiëï­ª$—ô©R}…TIÿÑÐÓiˆ¯OÑ ,r8l>ßðOü¼Üô~êß,\»ŠTVŽìÞ»Çå´ˆ’c²OsÄ$XÄïßß´Ñi—ì+¥Jí6‹Ý›Þyÿ‘‡Q6“ ñ“ŸÊÓDÈ]w(œ|û­7y"‘ŒÆ’ñ¸’T‘’§Ÿ~zíÚD}}šñ)ÞqÂgL‡[nN<ñ›ßBb±È‹Áb±¹œÙq™„‚Õjq:M»wºvU¦ïÚð4N©öBJR#”Ò@0!B(%Ù•5gÞÂ+V^S?yŠÙlÖÃa8D~òä±––SŒ±üü‚ü¢œœ¼‚ÂâªêI³fÍ^°àò¢¢²²Ò ›Á¾»%¥eÕÕ5ýýŠ¢¦eꌸ56ÔQ£)ÆTUÕâÒ3BΘ¦ªÉd"©ªûëŸz{{%“ÔÑÞÎ’*šò¡ Д˜‹^È¥f“Ùîp–W×Ô6L ƒ­§Ožh:²yÃ[Göí©`–Míí&‹Él±2ά&©éðk®[ÓÙÕ›T7D‡ôð¬¨jRUIEI$ã±X$‹F#áX4ª1%™ˆs-‰Šªªj5¦ÏñTë“#2}- ¢@ÅñqR=øå†Èˆ'N­¬¨¶[:œ† ®mLà|,W"ž`Œ9nJ ijZAur¿npE(ÑeË–'O5!“,ßtã­+¯¾Æd6‰‚ˆU-©©Z4Û²yÓÛo½A)3{,[¶¸‰sVT”_Z’ûÒKï¿ôbz»Â߀RH÷”°øÇ0ÌÆ=Ã÷ÝOÿáÈÙs¡Ptp°·°°Ðd"gÛûzÞ».Óž$h#Ý“8“£»Ç}ëȵן¾ëÎkšš:‚¡ˆÕf*/+<Ý|µ©8^7ý“®ÝrÓ±ÿ2ƒ&n'>ðUþò«-3gT·¶öhª†x©­Q¬­%¾¥K¦»=6³YV•xÎ%–ò¨«¤BtžkZu­ÑÒ²š‚œŠ€?Ü×®¥ý¨@Ûoÿ¼.ÚÍ?ž}‘ é_ô¯èÇ·ì ÷ÝG}dóÒ%Ëͦ¦r ˜óžÏsËh˜G€46âœÙê¾½{K«¦ú|‚ÆQ¨Çm9yôXQÉàÊ•šždÛô6n+JÿÁjÿü|øÑ?\sÝêÁ‘á‘a2/)-èí9Öttû³6&n#'ñ¯Ò:ƒ¿ôïÿ+V¾ÛÙÑÞÕÕÛÞÞrÛço­©rSuA/äP㚢ªš¢*ЦiLS8Ó>_û™Óˆ(ÉN§3ŠÄd±×UÙ¹ÈUDA A"@nØ;BÚ7À ›¢OK@÷D"¨{?A¤bMõd³Ùœ² ci©±*jš‰†²³óI0­‘†€„¦lq(AÀ“§ŽïÚ½‘QgΚ•åv‹’Eœv—ÆÌ‘pø¯ÿøó‡;¶gggeyr[ZNCA@n±ÊyyŸ?œŸ½l^¦Ãj@8ÝLv|•edÉr0eTN‘œ¼vyþùgjjkï½÷þ™3çx³?ûÙOW¯Fov†‘¡¥…ïÜEÀ²e´¢"ÓsnhÀììxBQ=G_ï¨ÓaÏ+p½ûÎÁ§~KHÆåJ4†ï½C!X¹‹J€òŒžýn„ßü®Ïî˜êñ8|£¡KG’ò ò»Ü6Û‰ÆòóÁfûTjX2N§iÂ/“dñùBÇŽ6Mª+ß¾cÏwBf :D‡Àáà I¸êÈÉEŠ$“Á¢…<í‹Dý&“È4åbs ’ 百]éªUü­·M™~™$QE“,z=Ž¿?»óK_"¢@2é"EÁ-›I.¸œÔOÊðû‡+¯Äo|«íÐ]NWA8Ú·ç‹ G#+V@aÁ̆‚ÈñàArø46’yóQ ­ÌÚZœ<9´qãÆpdÔfµ44Neìb†‚@ƒkVã·¿;üóŸÿAU@Ó!xàÀ¡?Š4cg¾ÃGaõj©ºv×´Ç;¶õ^R”Ñ4ÂéÀéSa`ÀçÍrš-’Ûm“eyÔ7ºt¹!J’ÉÑ¿ñ Xÿ¶Çëu?ùdçöíàpd„è©©òâD0Ëò8ÃÁø§Ð¶#àt`V6jšæõÚB¡x~>Úíq6ñ¯o!ã!£$Ó÷‡ƒ±HÌíô ´··\qÈd‹DòÞf²övËäÉS¢ÑøoŸlÚº•8Ý¥¢"’ŸëéîÉö–%â ™`k¨*îÙƒšŠ¥ePYI„̦kù¢EäWOœ)šMR,¦Z̲ÙL›OXyE¦•þê—ð›'s+«ª~ü“Û·iÅEmo6,œîÜF lÞ²{ÉÒ+n¸á¶G~øð}÷¡™ýƒpë­¦©SæýÏŽ<÷·ð+x&·Œ²ú:òê«J+K—\ávg3QDÙLöï?þä@ÉÇæ :üðÕ×`r}ÙàP ˆr±hd÷‡´·¶L›1»¬¢Z—¯|2è3`S¯wé•× ôõ4=Ôß×)/FòôvuötuNšÜ˜——ïp¸L² H’T3iò‘Cûkk'UW×<|„¥,óÒ$tÞo˜SQÿd‚ išªªœ±\Òu!¦ä\n÷èèȹsg].—Çëe!Ðø*cäüÑ%TwB ˆ)æ ˆ’¨¨ê‘Cûkë8‚Yƒ~ŸËãiooß³{WAQiIE•Ë›‡ 5iWU5™LªZRU•1dÈ4Õïdš¢rŽ€èp™(ê£Xš’HÛŽ’”C©¡.óÏÍÀT!å H‘r®Ó"DúV·±Hׂz…Ç9(È/6tlبçé ¦ ÷Ù¿ýs.Š‚ÃáøÆ»ºªòñŸýdýú7DQ\½zõM7Ýøþ£Õl™7Þ Ï?FÏkySjµÈEEùMÇ÷ÿûPn?îõú8}ÆœGù—_ÞúêkÌ$ê0×E‹°£³+‹;ì.McáH ³³sþ¼ñP€OxýýïäªkÖüìçß (­X±vßžS%7g¸õ“™3É[F+Êò-V³Ëm ÍœŽSÝ`€DSá¹ç…'ž¸³´4ïæ›ØÒ5'£P!Pœ=—´¶û²<ŽÁ¿ ˆÆ&ÏÑpØ¡ €D"‰Ü\Ï™–ÞÂB" —Òp5¤zS¤½I·F“J@e24Ò/I5•̺JçŸÿÈ¿tç—¾ôÅÛDJ.¾¶¹Å?wv†U,NŸ!´u´V ‚@'ØÅX¡" WWø7l@'ƒ)!S§áá!UË&I©É$õtu•”jù™>MŒ‘gŸ#¿üõã˯X¶rÅõ{öýìÍ™¥,—]FÞ|»ùþû¿º`ñM²I¢ÛÛ;.H«½}òÑ_ú;Ü~ûÝ}ÿ›ÿóýGß|ó™+2]óæá÷¾ß´pñMùs’ …¥ôD&Ú~èîêø{®X®K _cÁ lz~ôȺ­lņ—âà@ß¦ë ‹ŠgÏ[˜““+I&Ý#Ìè®ÿS’]Y]SUS;8ÐüØáÎö6UU0¥ÍA)éïípy¼¹yÕUùE‹¹¯çœªjŸ½ås£>ŸÏΑž×GÒ‹Q}ÃÖÜ ®1ƘÆ5ý‡t_T×°æÈûûûl‡ÃîÌöfggçèP`ܘ%Œ…TÑI("p΂¹¡pÉ9ª§„#£‘P8¿¨ìVûñÃ'æÎ[ØÛ? w·mVßÛëÍ›¬+#~ü¸Ž˜LXTÈ|£#&Ù# Ôl–†ú†òòÀj£>M¾QˆÅ̹¹yÑh¢¸¤ ëÜьϗTTb(GT·oÛ@ V×äþò ݨ5£åÐv†\·¦ ÓJJŠw~€4C°Z^ªj´¶¶QI˜%ª#ÕÉÇ„‰dhËæW¯â’”‰'=pˆ«ZÁeóVWO«›4û…žkiiI$tJöõv¿ýú?œ.OMm]Ô©«-Ͱ?ŒHÇÅÜü¢+òò~ß±CZ[[T%ÉE!ì>×1mÖÜÆÆ)'s¹œÏüþéúɕյžì\z!Ë)¥\ßåIÊÜZj)ਦ1]KŒ#ã< $âñÓ'ŽçUÔÖÈ¢„câ úo(¶ ׽ᩡ€Ä #c½|zb4‡;~ðÀ¤†)¹(Ê&Ylin^uÃtÁê..¯‡£½çÚÏœ:´g2FE±°´ÜéñH& !˜T’Œi”!àp¸˜ª„ÇÝ!Š0® DäœH”” *PB)¡” 0NÝRZŽ”ÃùòóA×MSeH›ç¥¯~ttÄaw˜Mæt£yœZè¾»€„ ØÜÜ2Ðß¿vís/[TZZ”ŸŸÓßßóðÃ?lm=ƒˆ‡zå•W¶nݺtéÒ;îøbKóéÌÈLf9™ŒÙÌå˜À0Å$s<®¹<9CÙB1ô¨¢{{º&Oјrààæ¢b ¨42zûúÀãÎíë#§NíÐÔ ßO3›Ä RV ‘HB6 V«Éa·ú±¼¼ {‰A0›äQ_8¶aßðâù4ŽÈ²(d\̹Á‚••HÓ¦,øãÓo/]6ªúc»Oˆº?ÓE´Fõ¾½,‰£¾‘⢌O†@"þw:Ü¡`”1‹Óé fʾÇÒR:08h2K©)ÃZ£é“WU¦¨ôÚkW¾õÆ¾ï© ‰ŸÓ÷ý’bâÍ)̦‘$! äå覶½b1DBјÛåöeº  0Ÿøý>ŽÐ0å2I †²²¸Þ×%ˆ™\½?n§×ð»\®á‘ ¬G‹‰x<@©és&¦]ÄzN$b;wýÁ÷IFõ;᯽F,˜ÙÚzF¬óæÍ[¸pÁ¹sç¶mÛþò+/ü½f øGìÛuòıªªÚšºúü‚ÂñÁïŸRÁãÉY|ÅÕÕ5;¶m ‡º©5b6›© DÂ!¿oôÔñ£###?øÑ>ÿk¯½vðÀ¾Ysç͹lÁø1$$z’æ¦e_tÛn¦iú´3­©é¨Íj“d9 "íë9—•íÍÎÉåÌðŒß#L.ÕK+HYsè°1ZB ¼3480}îeÈA ú}¢lŠDÀ€ÚŽ*ÇÔŠÚÆx$ô…ÂÁ¾®³Ýí±h(J©@,V›(É‚ 8Ý·Ë¥<çœR£ýŠˆº‚ ˆiù³óx„HŒæiŠï¯;ê:D ˆ@Sc ‹>Št9Ü‹ÍÀ Bª^D h袱d(ŽÅ¢.·{rýÔü«(‰þþ~Äóšçúže6I‰¸æq£Ù bÜ ààÏÉ+°9²,fÏŒ¹¥‹‡Áœ:4<Ì‘Ÿ:uôds“7 &Äö'`hpð׿~tË–·KFcbq1†Ãq³Ùu¢¡¡aÎì¹E¥å«oüÜU«®o:zøƒÍ頻¦3âuÝ4jÇ;)±PM陪j^o6笿¯—1µ~òÔË,6[¬š¦çÀ8STd\§¸Ôû”èj5È‘q®rÆrƘ.­ÐÓÓ™“›KAÎÜwËéy…e EUu]Sœ1D T°ZínwVÕ¤††s+k'K&“ª©Lc¡€ŸsF(±x(èíeADB"D–DY$I’(A"%âyáºïŸ.ÎAëB+HD‚"[ŒæÈqdtЛ•k2™àB)QD@JôðIÙ»eË{ÑX¤¦zÒU+Wy<®Ü܇þõƒ-;vlÿîw¿»k×.MÓ&Mš´víÚ»îºËb±ŽŒ ‡Ãá”ýñx½]*›¤¤’tØA×Ï|ç’DÉd2Op™ Y8:â‹Æ"ßy8µÙ'öøø}0âku»m²,†Ã™U„„@v6‰ÅKÝ@¨¥§÷ôÈÈ ÅšyëŒj*§„hLÓT@'ÙÞAˆÅ²,ÚmΚª)±è)˜@ëŸ^œa55d (ŽŽúËË3=™OÛŒ1a/æÔP9Çã ›g>fTˆFÀawøGUÎÐj³„C™¦GÜ›>Ÿ_ ¿õ‹»vιª0›Í SEá~9v'ÆcQJ ˆ ɤb±N UÀr¦>ü3"g8šÞî„D"¡&“”€@iRQ,¶‰-M%I%<::@¨Èy¦‡FQB‹"áˆ,S¦©)ߟ‰µÒ[ÏôL›žÌÏËè—÷ìAMó:ö¦cç‡måeeÓg̨©©v»Ýßýî÷,Vëú·Þ¼ þ;ÛÑÖßÛS[[7sî›Ý¦?úfÚí+®¾¾¾ûÜáû]—Ëíá»Ãb–‡††ï¼ëžh,Ñ×?ÈKÊ*?sãçßzãïÉDbáâ¥&³U–% t|$CMÍPEŒ1Îr¦ªÉþþ¾H$jµX¼ÞlI4M%‰i7¤,3F¨À(¥\U)MÉjR‚D <5[1ÊP 8v´´Lž:!—EÑíp47·L™µ‘-`À¹^¤Ž‘M²\;e0„A4ކ#”x"f±X¬V§Û푳(˜¨(K’I”dI6K²I’,zæ¥OQèùsSÝ"‰RÝŒ‡ IDATü7Ý¢ÐÉEJÏëˆ"âÀ`_AA‘$ H îa•D `üþî=ÛÞZÿª>Œ=Öt¤­ýLGg[qqQCCÆ oϘ1cÙ²e=ö˜Õj}ä‘G®¿þzUUEN$‹]¾k×Îñ`JÀnwºev‘åñ>8Ÿ¼aRjPù'º_Êf û6¬©¿¿‹qârM¬›‡:h¾Yâ”ÒήSÛ¶í((tE§3ÓëÃ=˜Æ4Ùíßf|ÎÄåÆh4Q[=%µ‚#¡ðÈ¥¨ÂIm ŒŒúü¾@YùtLtÆÍ.¢5 „B$Ëͧ÷6 ÜAÝã)’  ·L2AÔRÍ]c?q¡T@DI’T•3†@hfYÑE.t™§h4æp¥`™}™T¨«›o2;›šÚ}#x\.'8ç%‚@£±¨Ë9áf¸Û™›“]”åå¯$bµB(òzmŒ3 )‡…‰¼ÎœiðkHHF—üÆ›dú´º‘‘P8C$šÆ::ÎöôôNŸ9­ººúÁÿ=Ë“õüóÓyã°ñãÇvvvLŸ5grã4Qü—6” %eåÅ¥å>ßh"C€‚‚Âí[Þóz³æ/Xxª¹%™T)BÁå^sã­›ß}ûÙ??cµÙ¦NŸ9kÎ|½ËsžãGÆ0­½Í9O$‡¨XSS#J’’T8ç‰Æ¨(Jú³ H× [=Ôñ¨  5t˜uZGݺS $‹…CA§'›#w¸\=]]ÑhÌfw] ŒqKR^í “ÿ‡}ÃCf›Í“•]TRL‚Lå‘H8™LFG»Ïµ[­Žâ’ê¢ A”EY–d³(I$½ÿáF/‘ADš*÷ô_à€#ASì „$%)-)#”‚AåÑÛ©”ÒqÄ”s]íë׿ƘV]U»råµ½½ÝîÜÆ9ûéOÿpçöãÇ›–/_Î9oll¼ûî»×¬Y£ƒzEQèéé!„̘1}Ϟݜó4~ê”Y_ÿêÃ-í'‘Sšù*Öm¥¨$ŠT&:—ò¸ùþ‡Ñ.‹Õæóí¬A‡UžÕ3næè—ìõâ™3ÇT5)I‚¾z2e/˜Écºû`•f$mx¤÷Б=•ù˜âÿ^|4$X^ÑXàtS[~³˜/©L»3SJ$ÆãA¦))Î˺‹º¨%¢( ³™gÜÛÔÅšôFãDm AµÀ,£ÝŽpŠ`Ы3œZõu PÆTA tb˜YFtçl¢ˆ(f(Ñ€ÈùéS{ºÎuö÷wz\<ãï ¬fÔûiD D@] v¢i7dY ã™Þ1  É<©$9cš¦ŠÂÅ$a3_yå'œ2B _Þ{_]w—?‘P9g„ ¨hJwoÏÐÈБ£Mõõõ«®[½hñ’-ïo:|øPOOO4MÜG"¡Û·490gþååå•&³uì±>o™QBÀápȲ, B×ÙŽ¶Ö–{î½ph¸··WÕ˜ÑC&Äl’¯ûÌM‘p¸§§ûðþ½EE%'-4“ª AÎ4PÈ™VSS‡È»»»Ñ›åÅb¢(’LT Ê8r¡MSDIR3‰†lM2Äc±ÁÞ%ݾi"·˜-½]gIÞôö+œkú£•ŠX€F§To©"š,%ïl=-˦‚¢«ÕN©èv{ ¥fÉÄ9DÂnO¶$Ë’l’d‹ ”PCàžÎÇÇDNa@(Èu$FA”Š`ÈÉ“p$¬ªÉ‚ü=-¢iÚ ò4L&å‚Lã<•y¹\®Üœ¼yóæ{<ŽwîØ¹sçï~÷»_|±££CUÕ—^zéž{îÑ;«¢(vtt¸\®x ¿¿ÿ7ÞÐ4ÍíöÜ~û_ºýîüBÏÙÞÖ‹Ø7A”% Á‰›Ëè98c&“…\"õí"6}JŠ‚ ų²/îè8¾ãšÙE‚ ±%Ÿ¦ØXU%îÚ³/CUOêK¢ …í}RaŠã”’@ ˜•M dš%éÙ¡â”éK‚A1™Ø5á¥(PBQ 4 {'¾ž*èR“™ç=º ʘqÅj%x{ê5ûÿ±÷ÞQrTWð½ïUèÜÓ“£FY( EB"c0`’ Ž`³8ì‚Ù]Û‹±½öâ6öÚ&˜`ðbc0Ɉ IÈ’@igFšœz:Wxï~TuOI] öùöû¶‡3§Õ]õªê½wïýÝ{¿E¬¥™è0üA@@¯lDU¯Ò|þ¡ávËD@̉j8 AƒƒC[¶¾ÝqèPssóª5§ž}ιÉd²­m×Ë/¿ôöÖ-™LÆ G‰Äú§×64µ,?f…°¥kÈmÆwôº…°-Û2 Ó0þ^)åkÿóŸþd†t¼µqc’ÒÈeÿtß=>]'rk7iÜ&Q¬Jy§‰¨ÍÞÉù»q5ÊjEÒEï­þB·N¤²~ÀîC‡òYR)ÙrÌ75Z¦±o÷N®(n’„qÎÆ8";xp¿C‡Í;8œ Žl…$a¹¢ñãÚu,7±|_A`’ÄÐÐ@(‰VÕ9ß§FÔ!ŽâŠc ÄžsõiÓf¬Yuúºg×îÛ·çž{—Ig›.øÔù+?þå—7Ì™3窫®Ú½{÷%—\²k×®\.§ë:"îØ±cýúõ±X좋.zë­·àœsÎýÆ7¾1}ÚY#óüKOnÙú|;çJwϾmÛ_,£Î£ºrÂÑGÓÝÝ~à@wyVð£t 8¢’œs"ùˆ‰½õ?¨‚`‚qtîÃΘŽÏ¿ðú™g|Tg¡€Èdâ­“‚þоNÓ2œi[bLæò„QÕ•§{t žzÑCÌë_Áûè EÀ|w¡ððO5“ÆÊŸ¢Ð²Æ¸*µä•€8ç-Í3úz»â£}~*QVA•@Üë|&ÌdR½}©AS#Qêìܽ+“K¥r³gM*cÖzªäªЇ»8tÿ}4ÞŒ1ú-&‡õ®£ý@ëW}šB€°Òiëƒ7ªwk‘Γ/¸-gçs ñ‹õæMço™iÞoƒ¸ ÛÙ ´-3ÏHãÙ¦°`ÿŠÆƒˆrLb;¿øœ¨½. Ã<ÅŒtòJ25šËåjªëE$‡0–sFDŒs·Ù+(ê~ÎÍŸäž};»»õööض çÌ3uê´Ÿÿü&EQ.\xÖYgÀ‹/¾¸nݺ³Î:KJyÙe—íܹSJÙÝÝ}Þyç}ýë_Ÿ7o^WW×7ýøž{îž5«©©©Æ»¢ƒw lŸ8q~%ûº_YvÔ¬ÑdÝÍ?»3)sãþ¨á$ò¬ôD…F—p´Ôš‘ª‚”‚s·UËË…ñƒvÕiÓáᇓïÖ|‡1°JQ¼p¶ƒp0–L&zzú—/_ª©ÏÊK[Ç Q†L²±XÌCDç>“q;yé†t¬…ÞaÙòযª<è׺Æ«bàfìyYSêê¦iGÄ,“$CDEbì%¶e¼±im<žÌfF½BÝG{¶oxg{G¬"l »ªÒëÊo¾õd.krE)Ýïpºrý>2LÁãÈdéù™‰g}‚@âaĹ’ xâ 8iuËÖ-ûGã‰LÆøH>ß»úÿÆë]› _©ïQè%7']òFEU)ó=ƒ§w/÷þˇÌù÷ž˜Þ{žñŸ¼÷ …'ñ H 2·ž‘Hº"º NÆ«««ãœ;V±<‡ cŒ€ªŒ;ÙQ'8e¨:Ñá›o½~àÀ~˲„@`ÆŒ™šæcŒS±6#ÀÊ•+?}ôÑ;vÄb±+®¸bݺuwÝuפI“n¸á†•+WÞxã‰dÁ#Xç,tͧñ ÿ6uÊ‘Þ'" ÛÞݶïÀÞÓ¶ÿž }„px0öé!oæÁ ï×Îd>P”cÚT”­?àœ(uya6— ‡+Zš¦9`KY»L¹;­3é•Dz”e»IáÞÜT94ØßÔ š‡M?IhÛ…õ Žëòc¹Ó²Ì)™çÅ#ú‡¯¤" ½Ü'¬™pÄtvØÕˆ€[ÞÆááH0äï1 þïø_q¸…nÙ šVEºûG¥”åÒ}´iý1,,ûʈž3ÉN”qÖ™n1îË?ŒóLílˆÇSò¥7ùÇÇ2«$I¬0Áˆ qU"ãXÌãt,Ìgè”ÛîjÛþû{nO§Sˆ˜N'GâÃ@à$-Ëš>}úæÍ›×®]{Ýu׌+`=餓ñ‹_ü¢,†qÍ5×Üyç>‚ÆÆÆææ¦l6WWßàý¥Ë¹êF^Ö¡I‰ÀS±ŒZw‡“ ËjÅÃ÷…J8Óº»öïlÛ’J—\Õ8þJ^;þvï†Ù³ßǨo€šª­Ã÷½ÇtzK'C&’@’!J‡â"/ T:ºH l!€À)/9ËçqJî²!/!wž“J’y5ðÒ÷eEƒ3Ngƒ¬¨€_ÿ7œó‰’¹äwá‚E ,›es9Æ9!&žÐ‰ü}R3󜨀e”7ùÌãÄW‡ €AÉóÚ‰Ì/:ŇÁ!ðøZX½ºyË–½©”Aä妰Ûü@Oï†õ¦Åq³Ø©9-úÇ@ Yºkƒ…ÓP?ÂIÅ!¼×}féìÝDïö C!¿1_¼æn_ø>«³˜ Èe›ˆÌ)ðDdN;H@KRÆ8 ÆŒ1'_hYÆŽo¿ôÒóûöïµmÓ1o=|¿ó5Û¶£Ñh4íííyüñ¿^zéeÃÃõõ…sBQVÖ1¿üå/o¿ývçïH$2þüžžžÑÑÄåWüsOÏ¡íÛÊdÊš`Š¢€iéLÚï/oÊ‘t§ƒ×Z5’œ¾å20,ÃHì=ð¶ÃXï9bÿ‡—ˆ¤ËÝþî;ml„†z¬ý€$o:ýn"°miY’$zê÷/|I0Æ\™HOÏ×Ý $ y~·’= ·8ÀU‹ñJÚ àÍ7ÃxAÄï¾üYùö÷OJùüX\µPú„ä\Ÿ5{•%Y"õ4ˆ—=ýž'O]ÒÒzB0 ¼±iÉW=.c6qÒ¢XEC'àC^ûyjj'Ï™»0›³Rþ=ŒÍ믣iÕ.?æ´`´cÆì„”‚È­4Çu¶Hö÷v÷ööÍš5GÓõydc ù½ø°›Ë `. ¨„±º"ב dŽ}*t8À~XðóÆšjÑ-ˆ‘Âìï:Ø)…Ý:mNE,FD¼È9ÌK\:‹bŒRßr`ÄòM‰är–ºvvl§ð ÌÃÎ ¸ÛþŽônTK ѧûùX1Ié{Dn÷‹â<'íç•‚âoçŽ=‰Äß¼þ6™Lç ƒ<–T¹bå•h–_ØÙÕMÙ4¾/O(³fAEåû{§,“^oHæ½K7H „Dá¶CGË“¤ ¶-ÀÛûAÊåLÛ¶¥gb‚$¯‡ôÜz¸ürvæ9+jd$>hÙ¶Nj¹ÙQ©è&9çšÞ;ÒT¿âóûüãšž¯­©=àçª/ŸbõpuÆ_ Œ,ÓF°Äã±Ç䢅 mBPT8Tlÿ>$ôFIvîx§ººfÙòåšÛ¦õñF4>ÀBÌ30*ÙLj½ r¥“È­ò¤|¥•=;Þ¾«v”·FΟÍfÚ÷ï6M£"Z±ø¨z D‚mŠB BNA`‘\‘[¦äÐ̸Ýúy”ˆÃ1Lˆù^x( 1#“Tœ`ˆ(I‘CêØÆÐ‰T\·d û”…:3DT&Š|˜\hCtÀsöƯíjÛ €Ñhì¨eGO™2í¾?þþ¨£–Î;wß¾½BÈÙ³gmß¾3™L\rÉ…kŸxòé§×¸ê„GylÑ¢Å'Ÿ|ÊÀÀ@mm-!ººº6lØðï|§±±ñ装Âë×?›Íæþ骯N>k`°’}ýË0’ȶmÓÈx^üyÞõönH .<ás—ûü Ïôôï[û˜v÷ïͼÓóañ«ãí64Ö¤SÆèhªÜ„ ªèŒ©ã0…R¡Qôùü“&ÏJ¦v`‰zýNC0ôþ«qÍê÷§_A€½{e߀GârTŸ<*¼pàN\GÎâoÐ( Ù6$éYGÌúéO_üÞ —³°h“ÍÓˆ2™w¦16wî,ûìþþý×½ì²Ëjkk‰¨­­íøãŸ9sæÏþs]×oºéÆþþN\µæ”ÓSÉôúçžzý•³g·¶¶4—ñöM#»iÓó[ß~Ós„DD@œ«L”9óâñáë¿wíoniPæ™Ë«k"NÇä‡BJ ©dfp0Ѷ»Ã’H–µn™ÂÃ0 P/¥r@3¦/ž3ë´p8¸}Û~—ž½„3ŒŒàpj?@(ã¤Uxß@ÂÛúwøß…”à×Ì7ILz|>@R ™Jç¦M›sóÍ¿Ð}*GtÚÆP'ä.GTÙÑ0,’Z_Ê4ÈÌB˜ž¼”Rfm*…wÝ¿ûîkç+Ž9ö¾?}9khoï:”J™¶pá$/¢ï™?ba½£W‡TÜJW2$%}Ü«ÎΜJÃð°RßTwðPâ/$m+××Û½sû;£ñщ[לvV8dïà;å„.–Hwn,¿cŸâ¸·Œr¬/¡¸^q\»¹,ö(l³¯»»¯§ŸqļÚÚzrW* ²‚+娹bJU׫ͷL²¼©Î×W:EKca^é×±Œ®cì*$Ž¡cðŠw)óñÄ#æÍ[ ER©äàPß­·ýZûµ×g-;jñ…ÿâ .¾ä‚¥K—œ~Æ©ÍÍM;¶oŠ¿¼áoë×?‰T2¦\tÑÅ…ûß³gÏÈÈÈ 7ÜðÛßþö‘G9ûì³/¸ðËyèÁž_?2<|ôò«N<½«g¿Wg €íÙ·9Våoh˜Hèu«"âŒ1ÆËCæ÷í»·¯;>šÊ´ut÷ Ú‡ðO3Ó´RÉL"™©®Œ”[è/maJi–³ô«ªZz{“|ìÆKº¼$Ø·Ž˜ñþÏ£®ó;á»ÿ©½ÂAÏ,CVÎŽî ¶Å2.Bd29Ë´uŸª©È“$H’Ë=JUév&qR ÓîìÚßѱßçÓTmfY¹ºÃá}þs8kÝÿ€øË_þvÛ-Á .¾ ÖGGTÓR:~8–x`ù•›dYf×Ám‰Ñ¾pÈóëÎkÒ”‹ÐXóq‡Y,¡óí­›·×7Oy_º"948¸gçööö¡ph欹Z'iºîоý]J P’c‰òÌ“…TŸË® ,±ŽùfyH‹,J¡µ\Å•Ëíß³ãPçúÆ–é³C!×Á¤ñÄÓ~¿>qâUÕ¹WvF)„xà¢ÑèÅ_ÅUÛãÊ#"¨©j®«™ÐqðxEœ·gZfMõ)èy…HçZ¦ÈfÌÄhºt ÊCOV4¨ùüœ©eïZž÷ rè‹L’.hT*pˆm»áôÓéÆñAC¡={áÈÞR˜RJ‡m*’zk¨g@@ÊÆVzõåó@–d‹œa!¡R pR$ — 0$RŽÄ‡†{2ÙÔT6M›6/ÐëêjãHg<èœ(¢U«Øªåw¯3¿yí“WcÓ_¹rBscGW<›4òa€WÌÝdÌXbÉ[ÝæÐ`ÇÞ}=³çYQ1dÛÒs­Ž^Ë2Bhç·ŽNºgí‰Ã?p gœÏ<·és_˜ãÓ¸e<,Ìd’{wîØ³§!N™6í¬sÎõ‡"lüú,7ÊýIîüÅòîžkò/ÈÑÚ# ”䚬1ÜßÍ8ª`)Od„,/!úzöïޑ˦'Muâ)ç0—yÌV2dŽ%v,–tç‘›Ù+Ðí:vóÙGdŒ$¸l¾E:EÇ…’ÌÝý]’(. "@àŒ¤pN ó¯ß±ÈÌíkE ‰ÌmŸ§BjÔe…iÒ9.RÊÍ›ßDÄÆ†¦Y3çýù{X4K§Óh ó´3N—Âþ·ýîþýZZšÏ8ã”p8x +_{mÓ1ÇðûµkA{{G8¹øâ‹Î:ëÏ>»þŽ;îΛ»°²²vÃÆõ»Ú¶1.#‘™ž™eÜ»ur¤žg! 67Ïhjž98ôÒGaXËÃì¢„ÍÆõn¢Ñè¢EK/¼ðÜSO=å÷½€0ô7GOÐækm=m#q8pÀs]ìÄó=¤ÜÐ’ÈIû—^-SÄL…‚Pñ¬<œ§Nd€œ[Ú’ˆ1ž7¯$I8F.™ê#¢ŠpecýD¿ÏÏ€[h1F áß‘½–@2ÀæFyÏÝòÖ[¯ÿþϾ÷ÃÖU…º {,dñh‰œ=1¬xy0[²df èÛ ;±ŒZfBÊ;³ÞH‰nïߣAaõjºå–Œ‘ϯ¥3† ‰RnÝüæ¾=mÍM'œ´¦"V͸$ñïÙ!! i?GÅ-°t÷3IP˜tè¨<¸;¿€1+®ÉGÌ­]qÿ ˆ¤L§ûw÷÷vWTVÍž·8TãÈ\Cå~ вðNí‹cÄœœŽåÝá¸'æ=UFR¢[Š™—×ï•R²ü˜s‚jV IuŠÎ\šwDD!$cLJ‰Œ!“DHä\‹ó¬o ‹)nÐȰ€º* ¯ˆUôôüª¾þî΃‹->iÕê»ÿ»êꪅ ôéÚ‹/nÚ³go$9õ´“÷íÛwó/~»pÑ‚úúº|ÿ'^ð©†ÆV·…ÃÕG¦?ýéþL&óÄ“O^qÅííV¯:ãˆéóÞÚüÚ“O?lÛ&ê܉My&Àµr9½.žP¨vò”¹ƒ}݉ÑÞHþ‡Ó4rüñ'~ë[ߪ­©{îù§zø¶\6ÿ`Êor¬ 7*Ÿœû÷yÎvŒŽÒHÜ[è*ÍÝËÙU$*»ë%"ã¤8KÜY«„Vww'ýá#¦Ì'…INL$” ‘eƒdøwÜ™»! ¢àW¾L=½éÛoùÝׯ¾:™4L»¼»F)ž=¯$“Ùx¼+ô<¥úû8ðz$êÇ#¯AëêÚqð ayâ8wçØHï믬K'³--UT·J?æÌŸtó¦öîëÙ¶­Ã0L!ÄÀ@_E4Ö×ÓÛ×Óóî^·²œ‘’B„±zQ6.ï‚ï÷‹q ƒï"=Ê{>Eã')‡†ú¥•UÕÙt¢ë`;ºuaïM7¸:ØEt†ô÷ŽE Ej{EpåO3†âŽ¡xygÿ IDATËE}óJnYiß‚q}‰0Á±ÍÍÓ9®£3RéX; ‰PqËlÈ%ùuîbdd^|鹉­“TE ӧϸû÷w1dôÔSOÿòæß !-Ë •O_úIÎYOw߯—_ }Ã## ­ÅVжí@ pàÀ_ýêæ£–-ÿúUÿ¶mÛŽ{§çཿ“ -ǘ$i˜9ÓÌ”Á:Ÿ3FßxýÙxbÐ03T„åø!q;çè¾³÷>Áïó­>éäÏ|æ²Úºš»îºëþûÿ ªŸúÔñ‚ÄGÉmxMÅ8ÃfÄ´AQRýð·»÷€¸Úß©Ta©” "’ (Ü*g,îãEDb tб=U‘D$ÚÜÅM8º½¿¬gàPKs‹¢ø%'&À–„ r.@Ḷ㷢Rü}@r/Š·Õ÷u#Æ’=ŒÃ|ïÿóö}m»bµ‡G²N–תQ’"•'-3ž !d3ñnË Ù¶Ež£Q‘ÍŽ8\£ä©¸ L3“Í&FG35Õ*þ}J]Ç5kĶm»B!|¤wx8í€zƒƒýðÿÝ£¿¯ûû-L›¾ wHæì|üΜ2EpË BKΦLž–N%æÏ[Øy°ã”SϨ¯¯G?òIùè£kmÛnh¨û÷ï|mê´VŸ®MŸ1éÉ'žqÂþçO~ùË_VWW;Á¸Ò¶…eYétº¹©õ¬3ÎÿÝ·½¼ñ9Û¶`\j”@×Be¸î¶mŽôwuíÏ)´l#g&óq{™Áƒ®ó`0\]‰FBªªŸ©°“1ΧϘ{öÙTÇbëž}ì™_<{ð`CRU^~ÔóQ Q@GWËÍæ–z 9gCC²Ö †ÝÛ™4:tF¥ÇÍ®_â‘#­%2q ‰7h”@2†ªª¨>%j*"$†ÈsÙTUíTÝçãÄI@Pˆ[ fít&c§Ó2ŸÝð0~L'á²ÏS*‰GL‡WÁé§!Wóc§âW×éò/Áck_øüW¥3ÖX8]ÎL*¿Õí#‡?eçö *~¼EºÅÇ©§À÷Ÿþqáp(O ÿwüï9°€)4] á‡ÓP$‰+ r¹ÜK/­_ºt©¦«»ví˜3gÎĉßÚüºß¯2F;¶ïÞ¹s›¢htާΜ=g:ç˜Jfn¿õBHD0M볟»´"vô*¥!„m‰k¯½VÓ|7ýâ'›7¿^Æ6>¬¯Vy„÷€HŽÆû¶l9ĸg’3'ß+ÄG*kfŒÅbÑé3Z‚~MÕTMSßÛ“‡€M3Z[¦¿üòÓm¦iDÂÚüùSìO§¿Gaáá'ãºÎ5]Côà@#±LšúúYm‡‡v°“IÏÅ€nà#4]¡AÀË~@È0Ôªj‚í–åÜ}C–Õ”@ÁÊæI¦ $€°d˄ɪ¶rÔ%…€-[Øg|6™Î^ñ•g®ûÎà•WF‚*ášÕð«ÿÞ­ ði¯ØäÿûŸ?8±µÅ§áÀSðØßç"´t1 1Ä«ª w÷ a}„]éOMþÿOœÎM`¾¹Ã… ¤ ”rÏÞ}}=K–.øô%—Ö×7|ÿûÿñÆ›¯Çb±§Ÿ~2 .[¶ì§?ûqeUè÷wÿáô3Nø4ÆA×*VŸ||*™^÷ôó_¹òKǯ<H B„†‘K§2ýý½šæO$TDƒèà´ˆ8qÂL 64Òáí Ð4Ós¬Ì¦RÞ»p HæËº¨,Âm©(ØØXÉ7½þÊôxŠ®CÏnzmÜ'omÖO=ùèž¾!§‘¥œuéôã #OùE"PEU™¦jŒ Ô~sB²…ÖuÈœ;ÛÃ8÷í÷TÎëm¢$I‚œz*Û,jt&ŠKòD蹡^gJ¸‚¿ðÒ3ûÛý­K›È,îþ}ä'?¾9>˜{O¼Rª5\±rÅ„‰ÍS§Nzà/ÿõå+àÃSç:Å™3Q×GûûþîÀôž!îÓɲRlÄ9CŸ_Ïe½‡eˆè‘ ø˜=sñÕÿ|92|yã[c„^¥D‘ÄÞÞ.çÎâüÕ ±²Š–/GKÄ>÷…+~ðƒÎ8óÜg×=uÜq«}ôÁãŽ]£p•6½¹!Ϙ>çíwÞ¬­iH¥ã{÷µMh™ †{{ õ°÷qϱ€?5Œ ¤IZ ÃÊ™$¦øC GÂV¹…,cY†iæl»ˆîŒÜ’HG R(1Ë/ÔuWT’Ò0rºî7Í\0Q¸’Í¥-Ó´m+ 'SIàœ×ÖÖdXA“ó4œyzÑ|ësE@¶mÛ¶mY¶iš†a†!¥+œ)2þXè!,8y.UÍX«.Õšù|zkë„ÚºjMÕ2'[á<G1‰1ŒÇíísFvt4•Ë…jT±V$bc‚ŽÎÿŽ ’ÉÄŽÛêêj‰ ª²æÆ›~28Øä‘ ªªj††àÈ#üÚ×®RTùï\¿ü˜E€¦û4θe‰t*ý曃Áðš5'I)h$>¼m{ÛÂ#— Cð¤$UÕÂá‘Ìd’Es€ùõÀ„¦#ñ®Áa¥¶¾Â3‚Dú:FG‡ÊZ»E`PYöˆ+J(­9ï¼ÃÃ[¬`Deü>_±¬FƱÐSz­Šä\áœ!s‹RJcò$jnnÜ·¿ÝÓ8ÛÛQa‚˜Ò ‰$IHäåõŒA£D6wÆí¹¡‘qü#ñ‘Ë.Åë®+õ×}½8kNBUIÑ9÷ÔÈXøR"™îèŒW×ÔõtC: áHIŽŽ¦ÁÄVÙ××;cf“[8걡^SõóÎûl<>p÷Ý÷g2žêOZuÆ?ýÓŸî»åÖ?ôön(UýªdŒó2ÊÍåK/ÁÜ9xø.""D8ýT¸óî­á0_¶lñÊ•+_Ù¸qþ¼…O<ñèÜ9‹4EMŒ®þ¯Ë–¬ŒFª„°Zš¦n|õ)9eòLؽçí÷}‘È,Óœê\`ƒ™R.®¨Ÿ k~lÆÔØìmñ¡¿¾òZu4rîQ˶îØÑ74Ì„ jšŸ3C)¥´„mZ¶a¡ œeoêíz'5šÍW]ÁÅËV ›6>?çÈe»wl=rñrË´zºL6cçÎ#Ã}ŸºàS›ßzë¸ãŽ]sÊjd€$ˆ3ŽŽ©àLQCd T•+Š¢(ŠÛ¤ˆš¢¨RJÃ0ˆ,§æÓ²…mKD®é!Ë´ÓéD<>hšI§çH !Gã£]]=tttvÛÂv»ta¬.µ2;ñø£W®<¶ººÒù'Ÿ¦)*sÍ3HÐu]÷«H,™LårÆÆWß¼æšïŽCIº]ÉNQì8Ìi¨ß·o¯--MSï¸ó–ÓO;Ë4;î¼ÍÈeëêë-\bYö¦M¯›¦yÁÔÔÆÒÙ¡T*sÿÿºåÍw~ø_ßÜ»§ãñÇŸíÕ·âñÑ›õ³`0 ¥|æ™§uͷ⸅–e:7¬p–,^ñøÚ?ÑR7eÉÜ“ûF:Ò¹!!ìrr„Ã#ݦ9ÂþœZ[ŸªZÌïÅêuµM“[Ï›7ïλž.—„k|Z_Y5>¬@èàé†uMß»×Û“Þ¿››š=ñç‘$)HÈòŠi‘˜@Ç•R)*S8‡’M™ÌÿO×4@±Ì­Ý´e*g©º/•AÓ.Õ@€ÖVèèŸ;O)¹^œJ „@ R]U‰Tg2žû£ÑªÆúzƸªªeVA»s² :ðº~ ðõMxiB†#‡S8A€SN¡o\½í¨åçΙ›H¤lÛL$GEÑU]Q´¾þ.Ë4… ŽŽ}ˆ|ïþƒ=šÂ-oÿÍ4sï Þ0EŠc0eü‘ÌH ×. ׆¸†ª›>E›Ôzësë“ÙÌgOZÓ¤‡U×ðÊ*)%cL Û!­œ™K¤²M&ÓñäjÅ…kNÞ!Œû×=•LgF†‡vl{súôYÈx65Z×ÐøÊ†õǬ\]]SWÛØ´pÉQúïþí•_ýêWÏ=ÿÜm·ÞzĬ#fΞN€&mÆgÈ*Š¢*¨¨\ÓUáˆDÄ HJÐ5]Q®T4ÝP‹1¦ªj( *¡e¤sF’ I€ p%ءҶ-˲¥TDŸæ<™¦•Ë™èÓ5…³|x ˆLQ”€îsÈÝB¡ªòH$4ÆÚëøÁy¢×lçêÇvÒ½{ÛA&Ò4ut4¾qã†ßÞòKÃȪš:qâD¿ßÿãßø…/|ÉçóƒÎíŠhø··ÜpÖY'½úêæoëgû÷¼â+Ÿ©®©!¬üà†ïïG‘pdÅŠÒBØNq©mK@’fÏ\|æ©Õ×´¶4L[sÜ%Ç-9ë`_Ûï<70Ü5¶“xué\h³œ“ŠØÕËZ¶cNyË2Ûöl!€h$Ö?Øv°qˆ¨‹/V2e§¥ý˜9²˜ùÏÖ"~䑯úš93ÞI%¾ýÇ?L †®\´„èè~g[ª· Sñ|5•jeT‹„´PTÍ0ílÎÈd²ñDbGzôµìh‡Îæµô?ÿã:Ÿ®BowçpÇ”[ÙŒiÔ}èßç÷ .þÖ·¾õéK>}ì±+~qÓ¯:tr†ªÎU•3DÆgLU˜Ï§|š¦*ŠÂ9W…)œé×òûT¿®~MUT•j(ä…T Sˆ,CÔô€®…«ª¢ëš¢¨Œ3dè´‚¢*ª¦ê>ÍçÓ4]UTŽBm Eá¡ ßçÓUÕ4MÓ4EÑt]üª¦ cˆ(¤  c–/=ï¼3Æe°ˆ"0"b…ÿH"SF£õuõG/?Ö03ºîï<Ø.¥ ‡#—^zÙ%& [‚©TjÓ›.:"›o{{Wr4uÕW?»ê¤c¦N êëöîÙÿÄãëÚÛ;~ðƒë§L™bÙrÏî=¡PE,#!lDTT•¤˜Ò:oBÍôáøèÎ=onÜôx&—$ ŸOýñ\ùu—…<+¦ç’”BH¤r¤Ä¹¢Å*Êê!, +;;÷„‚Ñl69ntÄ€A=js0·ËÜÑ,4‡«šÏ_5}r°¦j}gûíû/lžT3šêÛѦù}jÈç‡Y( †4TI$ $.IõiàöøÐ@*U+Y³d+j[Ž¿àBÔwðзþÖ²í\|¤ÈfRÉd‚qì8°w`°×4¬t258Ðÿ™Ë.{êÉ'¿÷½ïýæ7¿ùô§?}ûíwþ迾‡ÀM#)@Q™¦sMS8gŒA>[œ+ªªr@ƈsdLcŒ …sÎƹ¢h@RJ“sM÷ÎY%-IFR:ýcŽd2Åñ^m!ˆˆ„ªª¨ªêXrÎë2Dݧs…“”H(„-¥TU]Jhnj|WÒœî:„b²—BG¥rä‚Å]ÝíßþÎ5sæÌýâ¾tϽ¿ÏdÒ7ÜðããWžB8úè£+*¢Â¶wûÝ]]‡V¿üêo~…qYW_Ë+Ž[üÊ+›ÚÚöüüÿõOW~½²2vì±+æÏ?òèåS¤ˆœmÛF ɽµçÍ76¿˜É&\V¼pÅäÇ}PA—Ì;g¾ã •g} l´!?÷WÉd²¢"ì üBšÐ:ááGKë$ ÎNŒD+ü>Ÿ';H$1OXQî[Gгœ3a†BÑ`ÐWöÕó^Ö?rn»"<Å"hžýB”.Q¸ÇCJƹâÄ8å±…Êe÷*Šæ¥PHb ]Òíõ——°aXiZIû¤“ð¶ß½sþ§Ö äE ø–eŒ&F³™l2™pŸÍf…°‰€s&Ip®¦Aà0Sœ3YôiŠ?%i—4ò@3S´ŠhÕô#|±èÓûv¿Ó¾ï“U DÒðù¿®útΔÁl¦s°¯s4Ñ=šŒ§S–°…-8‚ŽŠ´¬p¹WMXÉ?Þ?qùÒºSW-\ôDcóÖÎŽ¬•Û6‘Ô-•5 £ë`7ìì\²lé^ø³ŸüäŸ8ó[ßúÖyçÿà]xÑùŒq…#ø|\W§2…1WÌHUUq>tr´’q®¨:" Æ2UQüNfUÅÏrÁma8¯Ì–‰T%O,Œ“(!€mš¶ajŠ¢ªŠªr`®h<BD]×c@ ”RQ82Fõõuãwh§9—rš|¥ H'†R|~ßÖ··ôôUלx¨«ëŒ3N¿ï¾ÿÙ¶íí•+ïééݼyó”ÉSZ'¶œwÞù·ß~§ª)—_qéÌÙ3+*¢ÁŠ ·mÛ¹eó;«OYvîù«nüémm{…yä¢/ùJUñ9ÒöšÂ3™T_oow_ÿÏuÍ×ÛwÈÝV @-!2…3…¼tw;ùÔ`¸(]³’Ãû*ÉDGòÜï;z‰#AJ`ž¨òÖ—!p‡ñ¡DÝX#‰Q✢ÑI‚¼0Li+¢á@ â@ûÈÄÖqe]´Ií?@ÕU¾€ß““id{úSá¨Ò.=¸)’“aÈ$0ôD5Bš@ÌqP¨%—ÖÎï’L‘$D¬â©ZúàUáŠû”ÎóC\z ·ËrvÞ‚¬MiYB…ëÈH’ èÁæ@?ÔÖVå«Ë)\‹UÔSeÓ)@GD§$ú šêjáÐÒ’(Ú¾zû¡¥¹¤uä SCƒ#ˆ…+BØ>_p4>”͹\FJ{ßm~_Ø)aÓ4ßàPwuUÃH¼ßm±É“„E˜2I  6‘™¢øj@ñ×VUMhÕÂþõ{w¾½wï™J–5m]ÂnϘ»{vŒ f²Õá°_S‡RéT.+iÌÝBŽ®‘ z±wÿÓ_ùâg>yþÒÉS2Â&€ÁlVUTaš>=$Áˆ¬ëСT25ÐߟËÙ“'OX½úäû×âÉ'¿úÕ«~ýë_/[¶dÆS¸¦j S8XG`À;açEw›ªJc$@Rá 2&DÁF† S%¦!¤DEáï©#„ „4r–°¥îÓ5MqJC™+P¨ë:ç(¥dÀ¤–eq®Hi#"S”Ɔºb÷ŽºÌ2@…›³Cq' ©<ÿºþ¾Þyó,]²láÂEmm»þøÇûÖ­[÷•¯|5‰¶µíúîw¿ÓÜÜtÕUWÞu÷-Ï<³þ¡×Ö×Õ¼”MOšÔ’HÄ'Oi¸ð¢SÃl&³xñÜçžõêk¾áÓƒý}ÍÍ;Ç9èïG]÷-[ºB×ükŸ|жM“°g•U•Œç`äжAQ¨ôU¨pnÛå„B HA¤pÅòÜ;~¥z\ü## †- ¤”áp(ï6˜C!,U¥’k\h¿?4:œÊår$=!³hË¡hÔ¿ÿÈĉ‡ãÁBÂöv¬­­ÑuÍ“ (j$Rad™ßô ï@[X¶N:çÜ´ÀCíb1i‹kìK„ea&Á`¤¯oA-×-è„{šWÎrF*>ÒÓP?©²º&oóšwgŒqæ³-¡©¥W»`áêÎ9¢ámo{,–AÐtMU}–ajJ©(e¡^Ja[ –Gª—JÓ¦MÐÒTÒ‹òùáøãìí;Ú/Z¤(ØÛ×]‹¥3éT2mZFÖ0 g³µm‘Ëe¢‘Êdr´x*0„‰j2D:*ÕŠ¢D£Ñºj®©»ºz^ßÓv¦åÂŽ#ì4ï ¤Ó$£¡å[æ´4×TW¿¼w¿^]Ù4¡µ®º¦"T­\¶«Ïé\.—53¦ l¿™~µëàÏï¼½* é>ÊØ– jš†H9Ã䜧“‰t*eYvwG¦ª-'>»þ™k®¹æ7¿ùÍ=÷üáž{îûö·¯ú£Š‚œ1)J”*UUyž«z܈ ãŒq!ˆ@" Æ8—d¢dÈ8"çLL J,Š}ˆ¤”`Y–a˜’H×U%ƒ:ÙDÈŒ½3.„´,›!H’Š¢2†’ V-íó,ªã©ä¨ ÞDʶm[׬>eÙQGWUÆ8WçÍ[põ¿\ûð#¹í¶ßÆGF}ìÓ48çS¦L „Ø¿\ýO×^{åÚÇ×ýèGÿ-%ýÏ<¡¥ž3z{ë®xzþ‚y«W­|þùÎ>û“¡°ßYT}ÉüG^vÙî¹çî@ 0sæü={wlß±ÅYãÑhEssKWW'I¬®ª7 ´m©(ÞP¨ÊXaf¼z¡Cƒúêk'´L˜ÓÞÞ¶kÇÆ2–"2扥Ì= ƒÎ,H ¦k¹œç*;dÈ9MÆ<ð ”À1TMÃÒ5oçH W77·ìÝÛs‰‡»[èì€ÆÆFOï@À¹êÓƒ~¿åóÞWõ¦„ûD›¤%íh4b¥ð¡¿ëN‹2ÈB²ldÜAv(ï(êöô#"ðû M38G]Us9é&ä|d$QUåaB:ÌÆ®&JŸîÏzå0ØȲ­T:«Æ1Êký€-lÂïÔ8Ñð ϧ>yN©ÀÎi§ÃÕ×¼qòš€¬'ŸZÛÑÙÞÒ49›ÉÙ¶•ǨŽ&)„ADÙlRH«(DÁ&Åçg€ívn¢æ×¢!=Fà£îÝu  ñ¬•ڗΙÓª¢gMj®¬ˆF*"uu55uu V.nš»(Zß$7½òrsØŸn¬ÌŒSèѨ¿ªVÙéìg3Ù=éÌíþóæ­[œêö­¢L&Êf5U¦•1rœ«í‡r¶Ù×ÝqÚig<ùäÚ›oþÅu×}û›ß¼öÞ{ÿtõ7¾ìD¶%˜¦sRŠ‚@·âXáè˜?(%0EQ|6E¤0ÆmÛb(@’$8×@ §‚„ò‡eY¹œªªpÎ|¤³ H)™¢ðBšPJ2 CJÉ•#cˆdåìH4ü.Ìßív%VŠˆˆA¹òÊÙ¼ùõ/ùs·ÝzWm]5;÷Ü󇇇{ì1˲n¼ñçG.\ôÔ“OdsÙ3g"ÊûÔÕWmÛþÔ<þ™‹ÿmÚôÖeGÍL§¬ááøŸï¿é¯ÿñœsÏU˜®*>§‹‹1†º¦]úé/ôôô<¾öÁP82wäHÀ¨«¯ïëëÙ¶í3Ï<ã'?ùñÐÐàÃßkèó•X/Έd4TyÊ)gvê$¸ÛÓ¶.t-¨(¾žC\x¢ +È9ÎLÔVÚÒÀPÈϸ.lS©kz.[z1†#P‰ªª€”6z)Mè€Êª˜iX–e[¶I®HJ©… ñÄÁªJß(gÝöì…iÓ›:;:½@mˆŒ¡Æ%0†„y|ÐSC=0BaS0Šˆ#Â< ?2‰ „ªR:ºˆƒ}XUµm6É1ëë end&óÛLéô?DDïÊp§£A”$\¥h’%û Ð?@‘HH×5"It]3rž×’¢*•Uu00ˆ^Tæs9H$ ²2b9!¬òœ3Žh}iÃv[ZRC/u&F:õÇG‡s¹Lwï!:Iéf-òïËÙ»MÛ,öW|È&(š–Ž,ò)š¦€L&ú#¶|’Ò ©ê¤XdrmEcME¤²²º±®º®¦²¦: û«ª|UQ_EÔÊ¥víÝ=éø£*ÂMá õÒ&®‡tŸ_’mdÒ>3sîô…Ÿ¿ú_Ö­[÷àÞ{ï½.³ ®ûãɤÏRd²#ºNŒ&¨³³}ùŠ•§ŸÎï¸ã®¿üåÁ+®¸â7¿ùÍ9Ÿ8½¥¥‰¡d ‘ "æÈQt ã€+è4Á0éöÜ“bK©2éD¶0hÒ©ìFÆANJ“lÛ6M3—³cŠÂ7õèô? SMÃ9SUÅÕúÂ0l!¤n9éCÓ–%ƒÁ°¢(¶íŠ–+¤ˆ€H²BÑ.¸Z…±XŒ¤¼ýw·›¶¾½åGÿõƒÆÆ¦»î¼ç®;社Uvu<昣§M648òÜúýå¤5D޾ýû;lawtt»bÉ ?þÚ/ÿT}CMUeŒ„À£:ÆðgßÜÜúØ_ïŸ?Þõ×ýpùÑǼñÆkû÷ï½üò/ÝqÇ--- Mñ8ä<ø’‡G{ž{ñéÙ$UÃ]»·¾þÆ‹‰ä¡þo^¤OwÒ³ªªªéL.VUj³ S dÈl‹„í %b>,ÛM &SÙõ› IDATƒœ{’À0P×tË´,Ó&Ç'*|Cðùb“'OÞ»W"Æ}F aSW475 r)½Ä„D¶eºq¶g™uÌÃdÛ"ôxÈþ2Š ¦mrÆTT‰de¥GapDF+¢¦e›R Ý4 ˆ¨q–L$#a¦k˜‡\]ÂH4‹ÅFâ€%Wëª*HÛ$é½Îxä TU3.¥RTDÃ#q«ÉBØ55u 5ÑKšAJ4-T8¦Ó)ÃÈ•N™2yhØ d]ðê*\¶”Þ|skc}m"9¢ªêÀ@ŸeYïÛ°BD™Lºø“ \c{ÍL‡•«S4”„¶m&RzzÖÉídH•Ÿ0±qõÌÖE3[&Ö4Lo=bñÌÉó§×OiÖV¨a¿ðûô ¦Óé·w¶Î¥†,¨h~…Ž:X2mYq›RÃC íSO=õ³Ÿû,2…q®ë>WeÚ0r†•6Œœ¦h¦i jº¿¿wXJ¨ˆUüå/¹øâ‹ëêê®ÿÞ|ð¯–m#"c\ éÈJIB8´ÀÄòy<%Ÿ5i’”Ž\’©3¦[ÚÂţ”6c W4"nYv6k†å4W¨ªšGD™S•œs% !MÓ¶m‹1¦ªŠª2DR†ÓŒ(+òèh>ÓÀ¨ÀÆÈÆd¡ˆÆØœ9óúÓ_f³é›núÉhb´¹¹iÅŠãúçÍ›·c׎€ßÿÆoUÄ‚§œºJQˆ0ý§ûžxbíK@ØÐP½lù\)qö¬i«NZ®ê®G)ÈF@žï%!…ª¨ŸüäE·ß~ó /®Ú´éõ@ pÓM?¿ì²Ïªª‚©´’LŠÚÚÒr~±J …êÂÁàŽó:ûã#°dñ’ŠHm2™ŠVâî]ë N‰‘aغ®èº¢°¤é‹"¾^…c¶%l[„á‘‘Ò÷:ŠVP&“‰„cáPL©ù<°i AEEÔ2LaZƒønÑ’ÃåE®ºFß°-ËÙ:?ìËé4 `SS}E,2<ì'“RJID¢ÜªÑdrx ·‡q©©ÐÝ㡽EU)„L&ƒÜ*I)¸ÚŸ¾>VYUa[¶”å—Cût^ñµ%+¢¤ûJŽq žMŒ&ƒÀð0JW¤çð?ÐJ¥•± ËÈj¥fu A(TTEJ€±èȰ·[ŽU@.kuvîèïOj:et³š ƒÒIŒDB–•sb‚2xë„ÖÊÊúM›öOŸVb&N=î½wÛª—…CþÞÞD"^®B8ÅT¢ˆ (¬ÀЭk`¾íVzHÚU\ ²¬mçÄ~#·Åδø|M¨,žÒà ùŸRW_Û:¹¥®®6\ñƒš/ ùT]óù‚!®k€ðÖ–w†FâBØ`™½ƒqUU++Â$„-%pÄGúÚ‘ªª¦©GΟwԲů¼úZ2•ªGr[×á`xdt„HšVÖ²ÍL6ÕÜøçcŽ9öè£V¸öÚk›¾ü¥ïFvÚ´ ˆ`Û¶™µLËüëcÏÞwïc ¬~å•M¶iš¯¾ú·ÑDœ1@#gªººtéâ/|ñòuëž|óÍ7N8á„ 6\~ù—|>sNÛßyµ¶6¶©H½D è,>ÒÿÉs®¨­Z_ï!€Þ>ÌewïÛ944",›1O¯Sz]Òþ‹ªøW­<ó”Õ—Ø¦ÖØXb*  ½b•@ŠmKÓÑHt`°ôb  m‹€Ï ûF†Gjª°ôª†®.¬©®Ê™‚©LÑ•|ðVâЩ*:yÉ¢5]ÝLÒašJaO¯¬¯HiÚ¶'lP2ü“t1®jlh­«žÔÔ8)“ÖJƽQÓ Â\.[ EBþÁá¦Fe#ííTW×ÎY¶Ž6AélNøÆ|>¨Ž‰Wþ¶aÞ|òù KC)óDŠ ¤Hf²¡phpJç[Ñ|$r† ƒÃ#5Õ%GïˆÝ]‹ÅtM$IʪªŠAGX¼Ô™2¬«¯µlª®*@€\‡F¨¶¶Êic.[¡7sèT.]:ï¹ç`LðýC¡:ëLصk$Ô|Œ+Ì´Ìt6a;¹ UÑ 5ˆ \*C@ÄJ¦™aiV2ÞÀ4.‰„Ý‘Ël¶ÓÓCÁIUÑé­Õ±êh]]Õü³/šÛÒT‹Eáp0 ƒþ@@õëþhª>¦j©ŒQS]•Mþû~µwïa[€l’ˆ„ìÞ·e¨s7øâç?;}ê”ÑäˆiÙél" 3ä Wú}a¿/dY9"ìïÓuÿ‚EK:tÓM7­\yܼys,˜»}ÇîÏ\öÕö‡€1§WÅ–TÈ"!#*h-H!z(K’RÚ¶aÛQeÈ-+礣\&“ÉÙ¶­ëA]×Eá9Ï÷ÿ ”$Ñ@ØÒ4m˲TÕi«P×Ù0-ö,!ˆH ‹ÅÆ•µR)Dè”?ßÿ?Œ³O|âìÖ‰SÚìšúçço¿óÁý÷ÿRJB:}°T$O9XÆhÊLMJ)'„"‚¢2JUEÑ,Kç¶-‘†4­Ÿ'MU\ŠB97:SG„ÔR…0F)%Qéèz«ªªií¼Šms.$ç%–ŃÁ@ŠžçÔèàQ€C<=­€¤;~dà€!yù…;vn9tðàøq·oßzÇí“¿^ýuQAaž=^xá…eËžyýõ×êëO^»øª¢¢t! ÖÌsÏyù¥ÆŽ\ZZøî»«„ƒ÷¼ä’ÙEÅÝÓÓÓ™ÒôÐC$‰eË–ýò–[}>¯¢°††ÃÔxàÁ'Ÿü}^^n§´µµ]uÕ•[·n7¶ÿ Áƒ·ï8Òå|Žôêÿü(ÞÚܲvÍ·}ûv-ïFJÀô´´#Çw¬új{QAÏᣯ,ïV¶w_õ¤‰]zӧí·®ôú|­mm†~bèÐ.Â1‘ìÛ}{—I˶„‘åe%¯¾Ž]ôè÷‘Ê ë÷úK ÌLO”–tÙöv÷.8gB¤[·náH;ž˜€€3šNOÏ®?ÙRöS±²¦š”” ÎÏxrãè0œ½?”À-©ªª×—Yu<ܯo×.Kpæ òü ïE㉺ړåeɲ²”iËO¿\ û÷ãW”†e ‰pF‡8—–.BwöéƒcFCf&H Ì1;ìBE c0à$ˆPYYYWË"aáqwé\ìÛGüéÏ/ôêÙ£µ¥fà€.oB »vÁàÁ¤àœÛºey=®’Òâ={Ê.žK#G’_Ú“ŸûÉ—_¬{á….½ Ù½û÷ï-¸M)¥ä,aºíuç]0?öÖÔÅ»•ÿÄnÂÎ:k&ìÜq¬¢¢dç®ÃºnfBQ4Û¶PJüœÇp±ÏíIsûÂm%T-£ª.Œ€¤I&£Ù;=­¸ ½\SÒƒÞ¼ÂÜÌœtFXMcËÎC'ZCѦö°×ëñ|¿¿oß^ã'&G[__?gî¥sfO‰‡Z÷מX¹fÛïî¿þÓ/Ö¶=cʘÌ4ÿ§_­ÿìË ‡ŽÕ•f?z÷ ý+wìÜeÙ6UUwZ0CODƒtJJ0‘ŒegD£LQiqqGGhøð‘›7oÚ¹s§ò®»îúüóOfΚqôÈÁá´ò‹Ÿçœª0BuPBÌ(AQT)lJ&%Õõ8!*aŒfÛº¢ª”º˜¢+á`„ % •9¡€`Y–mÛŠ¢išª(Žå­°,nY¶ms!‘ÛÜ4¹ir¿?pŒJNëð§¼ ¨D‰€Î¤Q(>úûíÛ·ÜrËu^4çškïÛ·çxÕ±#G?)/7§ªêXkkËþðäܹs.¼Š0 ¥‘ˆéÇ«ûýÞ»î¾6˜æ …“=*K wïî%eù¥%ŶÝ{~õÕ*ŸÏwóÍ7«s{¶ív{´‡z¨°°ÐåROk_lÙ²eþüùõõõ¥¥%·Þö£ê’¥Äcv Ð¥CíÒËÈÿµqÄð>ååðøã]KÛ „/¿"¥eEeyƒgLèžž•Ö½gqcÇlÜ¸ææ›€tíP™3ôDËÊUÏ{Üäý÷à_¤ ~@fŸÛõÆ&~ù%7n·mJгLœb±—ªöìYöõªƒK~!ü~O¸³ÏÅ7ß<~ΤQÁ4o(“\JÉSR·d‰S ‘’0ô„¡ Ê<RSÜe%ó}žô _M{TP:½,ÏåöÄ’ú¾c'?\·ûWWžOûüÛÝ'šÚö­B®üfóŸž}Õíq{\n¯[T™¿ïà¡uÛößÛBšÛîCk6îøô« ‘p´-Q6~hßKgó»=^»a«×í¢LÉÎÍ3’IÝH0¦z=~B¨a&¥^_QÕ¦¦ !Š|ðþãÇOhhhøöÛÆOصs'¡.)ME)…TÀ„à”2(•Ó¬@ Ü"!DçáYH˜4™0ݪªšKóÚvÒ0“^¯F4?·’„ Šˆªª:Ðg)Ð0LÎ…¢hn·F)‚R msÓæ¦%¤nInƒ’ÛÜ­yœBÐÑߣ@œ®BhJÓ€EùûßßÈÊιñÆ[Þzëõý}¹ò‹ÒÒ’‰çLQT¥ºúø—_­¼êª«fÏžíriR Îêªcºž¬ìÑCÕÀï;rǯžì^Q:yê¨ñF¼ÿþ—¯½úaaQþüyWº4÷ôé3óóóUM©««yíµ×233/ºèâôôtGÀá…?~üž{îijjš9sæcý¶´¤,n&»fÝ© ÏïÒ Î/€•_@4ø|]Ý?ñ®ø;4¸ #ë7¨?ÕÌ^úƒæNlÙFB‘Ù%€#!pÅ•dÁ•©½!»¶`Ûv)d~^NQ3OIaÓ!C¿³¢iøp$];Íûõ×^tÞ+éÊÙé¬Ì/¾$™Ý‚Á¬¦úf˲|é4…c%]‹¶¸Í Ã,-)®ªÚõ“!º¶ MÓ–ò ŽÛN¡%ê ¹ÏròN:!@l›'ãÆÀƒÞÿ“'Ÿâ˜nü4uK'¯>%qò“kß|9Ùå.Í«ëmœ ‰!•ü_­™&œ¬§EEÅR€mÙ‰¸9yòÄï{I¯EÅä¹çN¿©®æ.Û¶A,ž3løx~ÌD ¶à’Q¦(!)%ˆ’*…< ±mÛ¶A KQ]ÔíñZ–®¨*ST!5¶a$Ý.eªêònJ§kˆ¹–e !TUu¹4Æ(-Ë6-›s(9GÁQ¢äB&“¦¢º¾_G§]MÉéÔäôf§ˆH§O›yùeóz÷éW_ðáGï?±¨°ôÙç–ýîÉÇ÷äo5M™:u*" Ákkk÷îÙŸ•Ó«OO…ÛdÚôsn»}qϞݶlüN×uUÕâ‰dSc«XXXF::Z_{í•—_~éÿx·¦¦zÀ€~éœóP(Ä9_¾|ùÌ™3>|Ýu×½õÖ;ÅÅÅ_~µòz¸¿²gžéjO†x}—>߬û×Þ€ööìAý‡$­è‘}6mýö‹/VZ¦n™ië7b—ÇQxÚ¡«£ Dxn9™5}z¨5îø ŠrŠË‹"!}öôsÿþwhl„.ˇá”·HW‚–”ä™exÞìóC­ aÛšª¸].!­3âns!MÃÎ/(¬®‚ŸüÐ5µ$??×4¹<‹ …)–³3©G"KÚ‘¸Qٽ穆̽ûøô“¿­trZù°k5”ä¹çéÔé“[ÚBFÒ’B~åÿ?q««›û³sòLÓ¶m‘H˜'MܲÕ{`WwSJ€I×.%â²g`Á—™fÂ0 Î¥nòX,1dp?EéþÑGg@ìÁÓ0];zë-R\دWÏnBH „³ôbSïÑ£'Mœ²{‰Å:Åí~êËï‡sÆŠ#G«ÊËŠ]ní2?ýMnsJH7Õë¡êa´Ia^‰šUõ-Ï7LžHr›ËŸOY–—!¤”‚Çãq=‘ôy´â¼¬n%…y9šªŒÔ£,?›s>ïâi¹ù™ÇkOnûîàÑêŸ×Í–P5²nÇá—?øæµ×î:\ë ø\^_0-½µ­ÝŽ=±¨¤{v^A"©·v4ÙÜø30í(-é–••Lèûöî5zôÀA_}õÕ;ï¼sòäÉß|óÍ»ïþãð¡*C—‚ܶѲ¤m¡DàBr!œ1žàÒ¶„ƒBpÎMӌǣI=¡ ¦P¦ºTE³mU5 nYvAPêR5¯¢(”R)¥msÓ´‰ªº\.eÄñ22M[7-.¤”RpRJ”\p=ièI›~vðN‹zv o§Þ-(,Ú±}û]wþªªºjÍšo‚`ee` °àŠ+KJŠ7oÞ …::ÚwïÞM)4h`zZ””Ûôòy—<ðà­/½òÔ¨ÑCE¹þúk÷»'ÒÓƒ”Áe—ÿlì¸1O=õÔûï¿ÿî»ï¾òÊ+mmmï¿ÿÞ¶m[233 !X¨££cùòçŸ~úO ¯Z¸xñ¢¶–”äí?þΊxèühÌ"€4u,ý$|ú<üˆvë-KgL¹âç?›û·<ó—emm¡£GëÇíÿôÓÔ²PvþðDäþà?í°óÏgŸÂÞ=ÙÓ'OïhOÚ{¼¾®ùОªXØÈÏ)îÝ{ücO¤ö ‘?Zæ@ò=ªéO\"’×^Ǥ^>fÄ˜ææ¦††“–•T˜vFÒÖ¶- S䯂Ÿ,’jjh~n®eYˆ²‹”ôÓTV'ôù ´#¿ç¤#Q“(Œ$—‚N™<þ¤â§KýÔ[%púÂx:ãù‘¥%^|t£|àÀ¡aƒKA(JSáý³ tdÅ%ÀæÍ]î÷¥ ŽB]çÁ@ΤI3î¹„ì € !Hˆ$?…p9)|õ%ìÝ›¹ðªŸ'“ºiÙIȆ–aê†~ûmKûki"êp!€å1u?zu €@šZÈÓ&×ß´È2¹BHt`’g‘xÒó÷ØÛ¯ÿÀÆfOu5t¹ç;wÌÊvätâtp(%@ ¡¯¿¬[ï1cÏ1c®Kó˜âUÓlŠuÒ&rÓé~_¿î…¡˜OšºÅ ÛB¯[ ŠæJËÈu²N´'7í©~oõŽ¿±ioUášS¥…y”azFz^^Ní‰æ/×n{å¿Z»=7LÓj‹Ä%ñúÒ²Ÿl9P}ª-Ž®@îÌóÎ_½iGy÷ʉ“¦nÙ´ºµùTzFNe¾n·Ç¶Ì¦ÖSñdØçó+Š¢išm骦*Ì]\\zèСcÇŽ-Z´¨µµÕív-^|í'Ÿ¯"HÓ´¹-¤–ɹ-„‚KË´9—Rr)ç¶eqðL“[¦iÛ:·LÛ2ªºÜ^… ”RæF”\ئDI©J¯D°mÛ²8"(Šâð (aR€iZ–É…R¢”§9\OZјŽé†á C‰#”ˆR:~ ¾ eLˆé¾ý{b±è±cGB¡vÎíeÏ<“ù‹¥KŠŠ ¦M›ÖÔÔtÇw|úé'ùùùÙÙY–Å㉤D)%H ”*”2@uÙÓ/óõ&)Ðëõ<ýôÓ÷ßߢEW·¶¶&‰–––P(´téÒW^yå©§žš:uê¤I“À¶í›o¾yÍšu ^­iêOüvÕ×_ !ÚÚcáy—_øë{ؾ½øŸL¥ Z&¼ú*^srùÜyCM³¥¸åÖ>ÿâ3Ô“f]msiY^uMæo¤Þ0“w²O5À­·)ó.Ï-5×¹-sé{÷:ïÜ Ÿ|˜¶êkè4åøOÖÇ«àáGé•óçž:uRp‘—S›Sèõøñt½«èÂmž•™ÕÖª&“?ö“á0$’JZ0“s‰]-0:û¢Rô\JÎÈHá{N:%„2F˜eÙmÉ9sæ®\éýúkü_*Îö|Gy”-ºfaGTÄ’6GÄ!AþtEð:}ëm2eò¤X,É… -‹··Ç&N½cgÚ;+ÎÊå'ÎLlÑ;î¤×ßxSZZÐ0ŒdÒˆGt‰È…4tsò¤1Ý»yà"Áÿä¶,¼ë.1bÚýMË"%Ðuv¿Ðï üY»wo?îœõëÏ`?Œ ÑX³Û£¹ÝLQR)B€2š–ž]TÜýç—Ý0ýÜKû ^\Tîñz% Æ4ŸêŒÀnŸKU‚~w}s»WU‰¤iY¦-m.€RªiaÎþöÉ·xåýõ»Ž­\»åhUUÔ††Ö¤azüÞ‚‚Ⲋî`z¿Þ½ÏŸyNnvViQ¾Û­f¦½Ï5×^õöûåM×WtïvøÈtİa%%ÝŽ×ÔîØ²Qaêäç46žsó Eijj°lÃæ6¢¨©­îÞ½GSccCc£ÏïÿÛßþÖÚÚºfÍ]Oôë×÷Ø±š–¶”R’pœs!„msÓ4…¶mrÎMÓr¨NU'Ñ)-ÓL"ÚŒ).·›KŽ(™¢2¦6 Q€¨ŽPJgG”çÂ0L‡5ÿCm6!¤¡óh,‰èí1B§·AÞ!!D"AénD‚H‡îóù¥D˲cšÆÆŽåó¹5eddÌŸ?ûöíO<ñûŸýìÒÚ~ IDATë®»á¦uí¢?úð+Ëä koÿé©{õîÓ­{9ç|Ãú-Ç7 ÃÑ€NYmUUÀõ×__VV†ˆýë_§Nú—¿ü%=˜ñèC?ÿÜËýû"„vëÖ㦥w_tÁ’ù—Ý0}Ƽù hUõlólÜDæÌ…_ß›~ãõ7Lpq,»fÉ•k×}ëTªê± åèÑÆKæÌ¸ç>uÏ>£ôŸ €­í8o>éÙcâçÍ1t´Lé”êm'¾Û¿YOˆÊÒQó._ô‹%´º¦«€.~E¢xÝu8pÀôq#&§ùJ¥í¶-4uiYâL{w(Ñ6­Œ`º@OSÓýds3Jô¤ýÜxV^åQqvÑ P"J6Fº‘$W/ºææ_²êÚÿüATS ÊÉS.),©lj‹$ ÛiÔü¿h‰:äóµßÂÞ}ã&œKÚBH£Q½¹%|þy£o»¶lý&v†In¹ó &\µà2˲b1#‰K‰(€K´mnÙæƒ¿¹ýò^~áì, ÿç1îóÏÃ+ý7ݸÀ°l˶m)¸D~¶g!!lìØ™+¿øpä¨ë¿íú~ ¹ù8lÖÖ5åæú].‡;H22rÏ›=ÿÚ%·–•uÛ½cݾ]›ëk޾@”ó£h¨n×nUµÍ´š"q)¥Ïí©nj‹&mÛé*ñx|Ô¥­Ý²wê´iŸ}üñsÏýå7÷Ýó_ïÿ}üøq±ϲ=»•u/ÏÊÌ&”) {w/>¨gaaNIaþŸ¿ý‰‡ï®(/ÉÏÍXtÕ¼“Æ=þ›»îýõ=¯¿ùöc<´~æںêh,|²öXZÐWT\Ú½¢—ߟîTUmm­‡íkimÓüÁàÆ{÷î?nÜø•_®>|XŸ>½;:Ú‰˜¢ªGÕHŽ”!¸3D@nK§*¥äœ;êNΉ˜’±Bɹm˜f‘0ES˜¢0¦â¸Æ‹ë6爊¦y\.—ËårBHÓ´8ÎÀÏi½Jœ Ó°£ÑD(” ‡uDâñhøX"JD$D:Ö´sìAˆ#¯ƒˆÔ0ÌÖÖfEQâñ¸mÛõõõ¨iVŸ¾=ìWRRŒ(›››×­ûvõê5;vìúÃïŸÖ +ÕÿùÁÊ—^|«ÿ€ÞçÍž±t鵕••ÍÍÍ¥¥¥„=zL˜0¡¤¤ÄårÍž=ûÙgŸ;vlAAišR‚ËåÞ¹sç½÷Þ½qã†P8Ö«Wßgž~þ­×ß+++_·au .%»î¿(*5q2]½†Hü¾µx¦Ë|ç.òÔÓdährÉ%A·çœ'½{@ÏIU'ªo¼u !tíªõoýõãó§^Ù«Û€p$ªAîùç.ºôg gÏ&[¶¢£¹"Î:•F ˜’Ü$œ’¸añ Ç4´4…ÉÄ‘êýÛ¿û6Í—6vøÔ¼¬âp‡>uâ¬)S®¸à<|ˆ³ýÈ)Xsç°«#LæÌ!RNXzÍõÕÇÚëªuƒKI¡S(­«Ÿ" Í…ÏDô4þèAØÚJPº]n·å™Ò':ùGò{£Ú3lJ๖"–Hžlè5dLÿ¾3gÎ$Ç«;OÛ&œY+’üp5îúfÌ$••³Ï½à¢š±¨Å¹íxê¦<‰þw£ØÙí'µupÝupí5×2æÑ ‚lÉuÝ®ªjˆÇ‰Ç_>nÞDNÿ«³½(A $‘ ‹—àá#^úëÓ”ÛÂX4!r!¥CéçÜ2ÜÜô_øãý÷û^|1Ñ“@äÙ>çÉ IžzJ>ñdà²Ë&SªêzBJ*$ RijÌ=c}úôËÌÌg4±s—uõy0 ̆£GNåøý¥ÔãñUtëUQQRul¯eÆ5“ÉP¿¾U"3|@ ÎX‡ª´KËBdŒf½IƒÛÂXQšæCBO6‡öVŸò<9¹¹Kœ7~P…kLg‰‹¦ ¨=°åàžÍ;uü°ÜüÜììtÜÔãÒ2=mñâk¦N™Iíß.Ïh•%™õÇvÛUOØPõÝ‚9S®¿úòAûO7¥ä¶½móºë×ôîÓïÔ©ÚS§jÁ´~}õé=@ ÑÒÜTT\ÒÑÖÖÖÚZÞ­rààÁ±hlûŽm·Üróµ×þbØðÑk׬O $€Òé ¯¬Ù9Ë@DÇ\Þém2â4É‘ Û¶¬¤m%(!šêvUc@)°…0MÝ2¨¹<_€P Ä©-ÛNx):ìynšv8kïH$tKÕ¨ÇÃ<ýÞ³ÝÙ‰²S®P¦tÑ)M‰Ã½þÆß223¯ºr‘¢(………yyyï¾û®¢°œœlÆè A_~å¥áÇ¥&Š”öéÓ»°°àÖ[ïùãï—µµuôîÝkèÐá_®üfÍšõBÊS§TM]°`ÞÔ©S¤”Ë—/_¶lÙ°aÃÀÛo¿óõ׫-Ëš:uzii!äÞûï~ñ¥å;vm×T­  ?¯ß°öÅ—žST¶gïžezþ¾ûŸ¹b÷Ž;é©FÒ…9à¿ùš2ß}·ÏçßôÊ+¿YzÍÒüŒÞ‘dóÖÝ_Ü~û­Ïüé/;¶}÷ú[/nÛýuÕÉ#ÃÒoÒá½'¦sî¬Y .½Ìó·W©e‘Ôc;Û ŽdåJ2s¦ZVzÑí7ßÑx2väèñßm>V½¿¸ tÂèéyyÅšKSTfè<Üž¸jÞ¢ÃçŸw!ù|åiE‘36I'•‡ï¾ƒsÏEJÆÿò†›[OÅ¢¡ç‚ îÈÀ !à‡ Á]hII“£eÛY™Yuu?öõu››+8ض<‹Ã ³l¦B¶$ˆ@1âVýÉмK¯4ð¼™çªB8D3î@“ÎÃֲɯÅ©“¦\uáeójê:Ú;¢º#wI€!”ÿͪ`Ç.2÷çd@ÿ 'O™j×-“s)„”R n­­‘;øýž#Æ^| }÷]Âmü:‘ÔÕœ9X[3òíw^óù¼ñX"™0UÍåó„B(¡DJÔu½OŸnË–=ùÈã÷Þ É!gÝó'€áÜq<»¼èŠ+/èèЙ¢ 25(’Rþ€»y†[FÓ\?ûÙU±x£ÉýœÁr›5jjZÒƒ¾´Œ`AAyÿþønÝ—GŽìYxÕÂßÜÿXA~ÞÆM_'I¯ª B“°šªPêÑ—Kõ¹´^¥ÙÝ ³5UUMSUÝ–“‡ s»5—BãmõGÛ›k×­Ûôî?¿\pÉtU%#† .­èéõz-3 Rdæe—ö-ìÞÑ’¥_}õE÷ŠÊû_V[]%¸åò}iÙoÐCB­ ÑŽ¦+çýÜíR æv÷èÙ§ádµÇãéÕ{`Z0ƒRæñx**zűÇœ8Q;lÄ(Û¶ ŠÀšoֆá-[¶65µ2 ??%P§E)%HáÄt\n¤Ûæ¶%œ @îØ¿rÎ-;îpí)U)%„R•y¤D!…"²¹gŠÆ9˜¦ípÁñD”(9ç–iG#ñP(.¸ð¹˜ß«y\Ц))y6@(QRJƒÁòFH:Z›èÅ_Ò«Wßsgçñx 4bÄÈ·Þz+‰0F‘ {ûöm.—–——Û»wïÇûÈ-·ÜbšüàþC ¯¾úê…‹ü¾ÀŽí»Ž«zíÕ7= ½^Oÿ}·lÝÒ¿_ÿGzxÒĉ>ŸoõêÕëׯŸ¿ü+¿ê;uYù%ȳ}$S¦‘M[†}øÑÇù9Ý °,.¤ãn Bâ÷|•3í´J) <¬´¤gqQÞ·ß’.gk¤{w(ÈO„Bñì¬ô¾}_2gîó¼öêüæá·Þzý‹•æää9²ÿÀ]nÅMÔÄC+›ªÜšâqi~wA†Ï´9#”)DUÀãqÏ=„¹”Wß_¥¹\Ц1·Kqi‡×}±vó’äç\0sJ·ý‹ÊzP €Ëëg.ªj@)’•™þÂsòûÓnèÏ_oØår3 * { qû‚¶it´6çg¦_|Á¬¢¢ò!C'WôPU}< û¿ær+ªKU”ΗH)¦òÞN6‡Ó5#5Õ‡wïÚ¨0¦Æb‰Ì¬´ûî{0/7×´’n·+ôSÊTUÙ²eÛ#?ƹèÞ½Û¢k®þ _|‘}ö/7Œ7BH$â–@$̉u^¯Ï²tEqÌÞ( !8· Ã,,Ì}ýµ??ó̳×\³±´´ýºëé”IXRrzçþðåžf¦þª«ƒU«ð¯/AssÞÏ/½xñµ×•”tÓ "$•2µð¥ ”¢’bÛÿ²žÿݲ9ýÌ)ÙÚB #I(E€Yç]¶aÃÆO?;2r’Ÿâ%!"ôéCö¨.(ªÌÊ,t{Ü”2¿?0jôȇ3ÿõÝwìÝ»Q4ô1½†ºwÌ6ÒU_qVº!ͤiÇšB¹YA¦2M¡.·+#-žáÛôÝáÅó/ÌÈÊdšª)Z[¨cמËçïv»½>Ÿ'˜3±Psq!RÕ¥ n'¢¡D,D„T\.n‘Hôd}ÓCO.6tè‚rw ]p~êÄq²P8ž‘‘ièIJÙþ}ûÇŒ™zèàw7®ËÊÎI$bÁ`ziy¥Çí‘\TW++¯ðøzÇc‰Aƒ†¼üÒ_ëOžš>mzcc³ßç3âaÇ‚GÛ¥£í†D‚Dn£S,:|JiJ–‡P *(å¶`4HU…‚ ™¤ŒMuQ!¹ir!¡ U< @¢pÀ¢†%¢±D<žÔâRU)Q"2†ªBT…žfã HBèhÏ!"0*,¾sç7ÉxìœIç+ éÉ“'{ü¥‡x´´´ìï-//QUUJ±mÛÎß>þ;Ûæ>ŸwàÀ_~ùÕÔ©S::ÚüÑââ·Ë»ú›U6l1rÈÒëßwïƒBÇAcÔèáÅ%¹õ'›¿X¹*Èœ>u–Gó·¶´ÿ×??(È/=j "º\®‰§Œ9ú£>”R>»üÙ²ò²òònGŽºûõïßÿÞ{ïyâ‰'î½÷nË4xð¢¹s¯jilÚ¾cû† ë?þäà±ãÇëvl'™é?–À=÷üÿ¢mj,{?þPÏL÷‡[“¶m;)D(⃛2q]0ógκxÓö=¶:–¨/-ÖG‚>ýH·RšŸ‡^Ÿ#¾…@ !'O’CGä®tÇbYYCzôÁ ož¿ÆÜ(…ŒG Çm˱ǕRº\.)%çBQ!„mÛí\× ¯ßuËÒÛ.ÿÙ¥_|õÅâ%m>Ä:‚öìe%˜•2/ˆÇIC=9Fvî";vX4{À€¡¿¹ûܼ’ÆSíûö­©?A+È/ÎIÏ¥TŽ  °!6ÇŒûꛇW}•€ÿv¼#)I$ ˆ8rä@¿/'Ún˜¶2 ßÍ[¶\± üß qr¿Œ´ô©ç îèH"±ûõ°yk¯ù ™‡8ùÙ#TJõheE·âÒîºašíí0løð·ß:ºr•~š[–ÊíR¢„𽡠IÁÆâve„Û¢ ©D‹F!Èа£M“gdx.;ÿ¢9}»ní¯ïÙdš={˜Ã†bß~¤¬òóÐå9}-ÚÞŽõõ°ÿ Ù±÷íUäM˜0á˦ hµõ±¶Ž¸aX‚KJ)#@PÂ(!ˆ‹ÃGŽzëÍC_}•üAVñosB€ ‘ð½ þ‹Àíq¥gd¤§¥åääM<§àêEݳ²òQ’ û䉶h,i .„à67-Ãïó757Ÿ¸&onêhkíèÕ£òþûyÝu ÿ¾âŸ÷Ü¿*«8Ð>zVBeffš;¢¡ÓúSx¼¿û6ofáhú€ÃÿøÇKÇŒ¡HĦɅ@—Ûïöxmn·TUe „´¤€NXD!¤³ªUU]Ê#ÞvêTèÉß­xàPY©>aéÕ »wê¨ A. ±žÔž ûöÁ–ÍX]çÎÌ(<¤rÎÜÞYY=’¦-%F"”H•!NAJ¬ìÑmØ™ íÿáê"?Z8ýý”ïT56²Ã2-·Û]\Ôý¼ó/ùý“U ¯¶€ i¤ä¾Ün¿ܲtâP°IŠC"$¢Ïã<$/KîÙóÙç_|ðÀýäÏhkk]¼äêææfD©(JeE?TªPäP”“¦~WÉNóÙ\2 „"S˜ßï ú}`pƤ1Ãö"”*LáRØŸ9uŒ¦hŸÇÌ­o­ÝøMiÉ|‰Âåöø¼ÁºÚSÇj¶ôïYÂв%êºuá´‘­Ñwþ¹êƒ~Ò£G_ZŽ;N?qlÂVªjOøüî ß×Ðаÿ@X¡^¯ßßÞÞ*º÷–9eÝ{DÂÛwlÊÏ/H¦§•””*ŠRSS ·|µ•ÅqèL舔]€ƒ”¤bi€ …””:¬gÆ’z (%çS¼Œª s JÑ)2Á¶mÎmJ5BTJ…i†mH!—¦iGÃqS×ÝÐ%"AnƒE„#?÷qèx‘PG6m^™™;~Òù c ‚0 ýd]ÝM7_7qâdEaüé9'|½jõG}â@I³²²\n×å³.ãÜ|æ™åE……½z÷úý~ǽûî»&MÿñÇŸrÎKJŠ£uu'W}ùM2¡+ŒMœxNÐu„b1ý“Ï>ÌÊÊêVV!9R…†Bï¾·¢¸¸tÑ¢E¯½öjCCýU B.¾xÎÅ]ÒØØ´bÅŠÏ>û´¹¹éĉÏ>ûÜW\ñÏþ™™3}úôsÆO´¹±g߯k¯½ÅOh¢à÷]=Ç1æ_ê8ÊS!å· \êIÛ²¬–Ö·‡T”õüËáx[݉ÚC‡­ZÝÒÖ …†a>_A~~yyyÏwÜÒ§°¨T!ž–ÆH2¬ºƒûMUR†q”¨ªJBçDÂ)‘RHÄd\·Ç|ï3æ^rÁ%-m-üvÍÑ·ß:uª¡1Šœn$z=îü‚¼Òââ^=zþbQïÒ’nÈY¨#Qu¼•ë2=P<´W±öÉ“5;ê6åæ”U¢”ˆx8™‘]òÐýyÜŠe'¤”H ”’¸]¶Ûí¡ÄE  ‰d2N¶·&ñ$Õ•`Fàž»ðù]ªÆ(!ØYB$Áæv,jt´ÅшDÌLóÿúŽûÒ‚ª HHNÑ©~‡£^H-a'bf[K45 ÓÄÌŒ¼{ïÿ?àQYªé@Sé:#D :Ík‰L“‡Ã‰–¦©K@¤”1¢r°%å%H–4 ³U„bz0è›0áÜó먽£¥¦¦ªêXÍ×ßÔ455··… Óì|¼2==-??·¼¼¬GÏÊ)S+s Šc1£©5DãÉ$ràŒR`”!0ÊP.D“9™Å÷=ð¨ßïVê„]Y@`ާ{,Öáõ¦©ŠâLwUUB„à Ó•†:1EHÉmɹ°,[7ìp‡•4nM³liq‹siÛ¶®'9çÉDRuYê,´mÎ9çÜ2“Éœ¬à]w^ç×W՜ؼe×®ß}þymuum{{ètÇÁívTv/0°ïà ï׿wZšß0LÛÔ-I¸Í#‘ˆiZéÔëõû|þd2ªPJMêVg²"DJU@JI,ÓܹýHqQÅÈC››3sï¾ÝÛ¶íúìópss8ÔçB:Û”1š““–“^XÛ»ᤩ¹nwÚ¶m[÷í;Ù«OŽ€lݺ­  € DAQDI %ÊÓ~DÕT…©àü¿ÂœªÅQÅz)¥Ò²ì^x~ÕWk®^xª²²'L›vÁª¯?›sñ¼ACF­þúƒƒû·i.ïüy7Äcá>}“s‘Ÿ“ŸL$¥ª¹CáÖdÒhjîˆDhÀ_†x*îøý~·ÿÞ²ÒÊ––6Û¶€s®inCXº©|ÞŒ ûÀ‰†¼Œ@,‘l‹›Í¡ØÀ›áöùÜ^·KÓÔ¬¬t` ¤à6Oš†Ê—ËHËô²ýé9ÏüíÉž=*Ûšš H í•·?üë«+ ÃüíÝ×W”åÙ6ÿlõ–ÖöŽ‹¦Þ°m›‰Æº#ù%h$"”=Ú¸í`"nµ4·dgUUíC”n—×ÐŒôÜp¤µ¾þ„Çã‹'¦e2Fã¡ØŽí[ò ó]š×år‡Ã‘Ò²’ÚÚ:B¨ªªB:“v"uJst|’$:þÒ„2–ê0u™@"éô´lâÒ(c SBèRs_Ûæ”PÎ-B$c…R• nš"MÚ–­* éì H)JÁ˜Òîd³ü«î=‘'jíܱnàÀÑ=ú!€R©¯?Ñ»wŸI“§®]»zåÊÏTUÍÈHó·wíÚmY6eläÈáK~±ÐçÄc‰=ßiok7 óÀƒçwÞÂ…W3W¬xwÝÚõååeöûäãÏe M+V¼ïõzJKʆ"¹ŒÆãë7¬‹„ÃcGOhëhvï¸éÆ_NŸ6ú‹%K_zù¥K.™»|ùs7ß|ˇýW·nåMM °}ûöQ£F—••}ýõ×GïV^a™v2iÖÕß½kM8I3»ÀKK€ÿʵEéˆîH”¡p{8ÒaÚ†e›€’¥Œú½A¯ÏÒƒþ¬ì¡ý+Gžáõz¼^SÙ- T¤R `™2K:ok´<^5Ô–B0¦:R´§yÊPHB£HÑ”9‡"!Ä2¹àBpÉ%oinB¦g¤8qÚøYŸª¹4ÆçR RH!-‹›:×uKOÚ§ªcº-¹Á¹Å;……$ZV\YVRÑØ\¿u×Úì̼⒠°["ᦪ”PŒ U¨°A"¢!Æ€c (…ä\ AL³C­áXXa PB$HI¥“Æ!!¦°Ð@!Ña·‡#±$Q€ D‚D QG¼@ P†ÅuÝRÛ°[Zc¡P\aŒR"…%<¥ IDATh€B@Œ0ŠÛ1Û¤RÒ¶m!„DIE‘ 9á (RÚ”(H‚\q´õH¤=ÁÜÔïq•–öïÙs˜Ç«º4ƪ0ê@d%JÎ…ma2aÄz"i<ÔÐ-ÃàœsB(€“@ÇD‚mS´´†:"ŠJMA¤„9հ㵦(”Ötªª¤¤—@¥À€H$ Pâóz<.7 ŒP D€!¹Ê·Ûmš<–0¤\ˆXLGDÎeBOZ†Å¹í¬4‰? 'ˆ' )lnQÐãõöëÝ}@ÿ^lé•”Pç³0 (¹DD)¸à†i&“F,å–-‘JI’IÝ0,ËÒcÑvUS=¢´Í!DQ\¦™L9Ò0Æ„D%£‘D}CãÇŸl:tVe¾ÕUGJËó‚Ϲ³.3xss}ÒÐ;Ú[¢áH4– …cµ5§êOF8j{w4t"2JNÖŸ8tèðÐaCÈ¢BAJT˜ lË”‚Û&J™¦iœ¥j8)Á¶-)S*ÐB ²„B}‡׬Y³¶G^„Ь¬œ‰ç\tÿ}/ûË n_ÙºõïÄbá¡Ãf3Bwï¬?täpvfVa~AMm-"r!≸iÚEÅ}I{ÕÉÇ{÷éÿ«_ÞµlÙÞ/È+k5ÇãaEQ«³22(¡YA£¢8'‰í “ éUžŠÇss2…I‚Ü2…ºaÆ@(¥æVýÁô¬Âžž@æÑc5šª2Knºí©Gnûvóžç^|˼ /Ûï¦MÍÛv|÷³ “Fökjjñ¸4¿×ÝÞxõQT3£(Ÿl8v¢¹#Ô~èàîD2B CÏË-s»ý‰d¬þT-¢ôy™Ù9Á`Z -ýرÃÉx"à÷ƒ£G 8°©©1‰`*•@"Q‚pxë\ B(2ÊбÖuV"c4Užw6TæÔ€Â6U7£Tps;!„°m €H”(S@,!#јäÂå&§m{çQ¨Œ•ٖщ0 )m5 ¦Û¹s]4ž6mN0=P¦Œy÷îÛSQÑãÆo©¨è¾cÇö£G\vÙ¥óçÏÛ¼eÓÛo­¸xÎ…£G( ]Eã›6mᜇÃ᫯^¸xñ’ýû÷¿øâ ýôúÏO,î¥/>[¥(,?/ï׿¾½¹©ù·VdefRª¶µŸjljŸ1mfssË+¿Ø³wûŒé³ÿüÔòœœLn â7ß\ýõê‰çLReÁ‚+F][[»}û6ŸÏG)½í¶Û‹‹KŠŠŠ×ûmQA±a˜–i¯ÿv}}S}0-óÀ¾PI!þ? DG¨¹æäÁpH÷û¹9ùnÍ«©.B(e€¡€(ªrKëh6…àŠ¢3æ¼bà¶EeLŠ¢p[꺉 :¥DQÔÓ¶ã§Õ–QJ!¥“¥"cD"wØ-n·;X–%—’¢à¶¢Ò„br[ÄÂ¥Ôæ™’*)¤pFÓ‚Û²ç" À!„1¦žn{–—”´†šÜêÒ¼e…Ýü S†L  (H§Û»Sˆ¥–=pDŲ…e æR¸mƒ (¡ŒH@C·Ünw§õ%¢´-h)#• B‘J ÈT• [pŽl!„”€T‚T¢m›R`Ž µˆ ŽÇ&£HIçè"J%‚KSQ¡(¡D‚%* ¤Äaã QˆÎ%“6Z\s ¡ÊˆËíRBD)Á¯·¥iY—èà€)U¦0*RñžPplIq8Ô¹%Âm´mn:íBmI sò°­d,‰‘Xs)¨¨„Kîs»)¡(iB7]šÊ$M£T¶¥ªš¢PJ‰p œ–¥ë¦i™RŠùı!?­¬‡&¢`Š À…pÛÑÒ¡„J‰ÑQ‘ºn&u]p’‚"‘ÐuÝJÃH$MÕ\.·”¶–ª*B((lEU›Qʹ”R*ŒY–%mÑÔŠFãK—Þpï=«Ó4Õì•–@^W]uìØ‘ÂÂü¼¼üC‡¹\>r¨¢¼ˆ¤ˆzEêôÓ(aJ§!„ü’Ò6Kq1¦(*%©ºPQüœ½gœUÕõ7¾ÖÞûœsûô ½J“ÞDQĨ1bAÄX£?£&Öh‚%&EcÃB{§*"½·`(Ã0½Þ;sç¶Sö^Ï‹s!þžÿóê?/á3Ÿ¹÷”µ×ú®oAS: 5CÌã˜].vê–."’Ò"Å,K%ã¶àŒiŠ1‘¶óFP!˜;nضu¾Ú*Täœ;s¼âèÞ¾eƒÆMš« HÁù%µ0 ½¹¹±²²BÓ é¨D"A„Ÿ}öE(#°üÕE£QÎ…rÌ7n^µê³ööö#†9rtçÎÑhw}}ýý÷ßWX˜¿fõšööˆTÎø ïÙ} ¼âˆ›WܧOÊC¬‘#G.?¸á‡µ~àéÇ—!çÛ¶ož}ÉœSU§V­úð˯?·mëλîH$bDÐÜÜ”‘‘ C† Y¶lÙ„ “[8°ªªÊ4M۲㱤cSC}ǰa¥o½Ý9ëÐÅÿϳ! …²úôjå;ÒIgÀA!p©2÷.0¡iJI3iK%Mp3HJi! ¦‘òú])Š'¬îîT*¥ÜÜ<σфðèÜëÑã¦-Í”eÛȽnÚùc ­­©W¯@ B¾ rR¤†ÎcŒ) ÎøºÇ£±tçƒ"ƒ{mËI&S¶´­”mÛÿ%6!ÅbÑD²[ÙŽý3¯Ÿ() .8ç"mä*e:³€S’”dȘ$åòNS)·gœ1¥Àe¤2æö=‚K$º5]÷û3 ϶IIé÷ù9sÓsÜg^Z–“L&srBš†€—qÓL†ÃQ—jxæTmÿýã1«µ-ÚÖÞmžgçå*Îùð#ꪽ>Íç÷„;[rr‚±în7 ÀãÑt]pÎÜ]cȹÐtMîNÞ ¥$Pœ»bjrÓ¡”’–i•öîYT”¿sçζ¶¶ÂÂB"ÒuãÑG[²dÉðáeçeçd9vpüÅ322 CvǺÇ݉ӵÏþî‰)S¦x`]SK8R‰LpÃqÌÖöDž‘QÐÙÙÜÞÞRZ6Àf—;Z1iÒ¤‚‚}{÷0ƈ µµ¥¬W1@Š ™æ‚]éùÀµ×IÓí‰sD¼°/DDp±“ôö€ Žˆ@\Jã¨#pC÷§Ì˜ ’¹ §mËT*a¦.È0tJo3î¸68 8WR¥R&ž'¦E"-öoQ¨fÌX‘™ãÞ{:Ÿ¤âìÙê¼¼¼¹—^ð-Ó:}æ¤ã8û÷ïûç‹/466Ü}×úöícY¦®{"‘ˆÏç{èá^zñå}ûtt„—/eïÞ}S&O™5köŠ+Ž­$’o¿ýžû¿þfí‚ Ϋ{湿54Öy½ÞX,zÿC¿sOl¿ßŸˆÇÁãñÞ´èÖD*¾{×n׸xìøÇy¼¹¹¹_¿¾º¡™Ië£Våde/¾õödÜjïè°âNyùQ¯V2iBß7Þl»ë®úgžÁÜrM ÕÏŒ?§~œ¯îêOŸ1]08Žº•£$1ΔR )Á…&˜tiB#"Æ!"RÊ"ÎÓ8§`†º»Ê‘.þêž°R¦v·¬;)‡s ”冓KŸ×g™IåÚâ)R㎣LS’bŽ’^¯žãÍ.ð7µÕ–>ÑØØtÞ:233F Ñ»w¿®°ÙÕ™ò 3,ÙUQ¹ïLÍY7ŽRåå è? ¬ÏÀpk‚1ôhƒ%¡e&NŸ;‘J%|>NNa(”Á¹&0M¯R€RÀ8pMbp@9Òd õ Çgh¹¹þh¢Ã¶ü¢‚h GÌ$‡HӘˑ Ðëá9ÙÁŒLO¤³sdŒ“K9P @ù|žâÝQ«­½;K’d‰¡ ÀtI!p`ŒsNÌ l ¶Î `hxõÜ\?P2 çäæ9v¨½#ŽIæÃ•CŒsâ€D’Còyòò‚º®*ލª:5qòL@°Â$€$¥†ˆH†G„Êînh¨ÍÉÎ;n|~ï¼ÆÆ®înKI…DˆŒqô¹ùþD¬Ý¶’‚ÂÎN­³3nZ6CT¤Ð…^•2u]prC×HCD’s!¥  8 y ’ímµL°óv¤(’¡P†Ç›Œ$RI+OE£a å„róŠ úôq¢t4iw¬›!0&8gç Á €Æ8ž÷ñ‘R¢”4íTÊ‘Ž$ÆÒ<ôšššX"Þ»´gÂq¤TŽRÔé`\óû|švF:¶lÝQQ~4e¦.(áK{9ìâqƒss2³sr„Æ9]×ÝO¢c‰ø©ÓUVʲmÛq庆„;Z=/!fçähhêô©Ñ®Ö1cÄã].Èfè:gÂæ¸@×*Sç‚1@D ˜æc«´Ä–¹È´-®!26yò¸/¿\³ß¾+®¼ÒoæÌ™³páÕ¯½úÒÿôÈÌ+mïß·oÏÒÂPF =8`psKmaQ°ÿÀq U…Ž…§ðìéòP(”™•™™·ßC÷ "‘²€N9µqóÆ).2tXgCu<¯iŠç†jš#—ŽÔØÑÙ߆@RY¶mZ©x”òh:g"lFoÿýSãÆO(-íeÆ»:šÎr5Ž’–ЄahÙÙ9yy¥}zY¦Ç’‰T¸ÛüÇ»ßܸpÎıäe:DI3ÙO Ѭé“7íØ{¤ò¸[<Ú:jD”ŸÛK!¸G++”ôìƒàɓǢÑh~~a$ÒÙÒÒ"„ˆÇcR:€Óv‡ d T*/ô3f»‹ˆž³GžöE#&ÜiA1¥92ÆPÂ˸®ë~ÛŠY¶$"Ër’‰¤eššF†.ˆ€w!…ĘCàØŠɤ+D./ßéóù‡_4©´tÛöo÷LÜsÏýŒ®k0þüÚºê+V ÂáCå§NU57·„Ãá•ÿy7íØ±3‘Hüã…—”"ÎyWW׊ï,]º´gII<#Ǿ뎥Í--Ë_{½¨¨xË–-]Ñèé3gÞy÷7ý4xð¡C†wwGÑȹš³Žtòóó::„tÑð1O?¹L7<Ÿ|ºòŸ/¼’••ÑínoéPŽj¨k†‚;vm+/?üä˰+ÒýÆ¿_;xøÀ™šS¯6wμ+Þyúo7~Çeóä¸qÔ¯/¡àÄ9hZz¤v¿°Th™i†¡û/‘°m+·¤rÍw\U…ˆ±Ÿý ×çášfÛ)0= f›Ä9ãºÎ*©HtT6)¥€@©ó [:?1Æ*McD@ˆ@Ifš ¥À1•í(&€s&mǶm)2Ô -+;`d¨,¾=\>z¤9悈jÎá{|fÛ¥ÿó»û{ô,Ðt\÷Óšµë¾8¸kâ.„›ÆÎž¥·Þc~ßлn¿;”é±,Û6Móë?šPÆ“‰öpS]C5‘“ÊÍË)òûÈ]f¥È-õH J%päÜ@®çȉŸ|ö¶á‘Ù™ƒî½çÁdÒ‰Ù'&Q²ôñœñ€ÏŸ™í}áÅçâñÓˆòÿc@ kZÁ¯n\TÚk@}}[Šl·Ïs¯7i\wÝÓÀ×T6cL dœ}†iv=÷÷¿ø¿vî¥×Lœ8·Þ‰$b&1"ÁXf†ïDåÁO>yÓcØYÙCσ©¤c; ”BÝ`Òª¥µ¹° Èï 0L h+Û0ôó"¢ßo(¿ûîÛ O@] ="2"fZQ£'\Ý ©$ÔÕÕk—‹B €RòüÄë‚ÔH¤ÜYTJéöõJ!¹L7²1”RÙ’LÓ¶,Ä )"øÍwë_zéï¯SX8òå—ŸcŠLG)Eí {=F$ÒyóÍ·ƒ5“'©ŒŒÿŠrüô3 õþã[_4`@qffP­¸(¿µ5lÙ¶m[gÎ4ù<Û’¦i‘’ç Ñ‘c\¢WIÏW~P_\’êQÒ¯g/Î3 ƒqî²Ü5@š^ĺ#²û¢k©¨€‘-m"b ÙE#ñÅw[·mŸÅîßÕuÏwÜélß»kÍÉõ-­Ç6nÚqñÈé™YÁÒÒÁñXûÅcûöë®PL g¤ˆù =š²²säãnÝš¸öºO&Ož ¶)-[2Bã ÷ܹ³·-6—,Æ™³Ïy¼”ícŒ9¶c;¶®é)™”$9W@¹ôx¼€ÊchJ)$ʆ 8玴tMÔÕ7å„wî¯çÝn3%OUu=ü§ÞZѵøÖ¥ˆMÓtUÃŽ’ŽdŽ­8gº®!‚"0­”ûòK Š1wgÍ„àB¤;;GIGB*eYŽä\DÎÁ–Žm9 áĉªE¿¶ï»†Ž¨R 5M¤l† ¤RÉT<™J<õô³Ó¦V¿ü2sÿæ0Ú;äu×Ù¶½|ÊäK¦OsòıÏ>ÿpèðRVIáp·<uuF¸àyyYDRÆóx|YÙ†!<^Ý냺úÆ¿fǺéɧb½{çƒÆs®kœsκ¿u¾Mun”’.hÇ@ã8®ã‰c;Bp @Ž3p`ߢ¼í;~¼P¾uÞó»{VlÞôãöõkÔÆ­U—Ϙ1©OŸ>-­ÍÆŒÆÂýûÅ·mƒ‹FuÅâ¯.l¿_)‹Å…fضù¦TÚµB¼ñº…^]ïã/VoÜqÙôñ 3ädŒñ–pôøÙú!}z¸ÑfÉ”IDÒ¶S>Ÿf&©«®^øàÃZpéÔDÌÖ4Á‰À²í¦¦Öí{ï?|âä™ÚæÖú¹8•@3„‹Õ?ûÚG/ÿõ>dzq^þ {uÑ4 F0/ÇâÍŠ"Vܣ׸ SÇ^ýÍ'©TÒëó"‚m[Á`¨¶®^QzWâÆÞ*‰„¨¹bù •R)åŽ@„Ì•ÒwÃëÜŒøó’SD”®‡7’•Š‘&¹æEšæM$LRŽá!žÆ[ ¥³]ÎÇÙ# ã8é©Á4Sîÿy /cšká’¢¸Ë¢a¼^¦ ñ§‡îÿûß_ÒýPÈ/8ÏÍË€@ àõúi×®ÝeeeëÖ-©¯oÈÈȈF»ëêêêêêvîÜ9lذ[oY’ŸW\^q´¾áÜéªS¡ŒI'¾ñö[S&O1SfÀðúýáŽv¯Ç{çÒßM;Å2ɶ’ÃÎÉÊç æÏY(i™ÎéÊêãÇ«æÏÚ)ïh‰&c¶à Öž«½ëÞ%J©Æê¶ÿ¬üà‡MkKKúñßßòdÿ}r ²Ž>òô ù|zQaV~aö=¿]Ü·t˜m¥¸ÀX2F4!4ÍëŠVü~_^^~´+*Û5øéîLutÄ;;Ê’Š ]è:CƘP¤ç@¤y¸aŽ­,Ëâö½ˆ.G:Z»,3É8¯®j”® žT.Ä”Ö3‚ Ž‚s©”R.‘]9¶Ê¶µt™¦ L+eKGèx®VvvF­¤iK¥ Î82î„^ŸÑm©©Ù·ê#ÐïñrŽ\J'‘”Éx*ô¶…u7Áƒˆ|>#7/ iB)•H¦â1+eÛ$™ DÆ<-–ìêc)¼óÞû0Œì{ïôe=³=†0¼†,e:ñx r2˺ºz­á7‹èõÃÔ©ö¡Cû‡›ÒN1æ¢ÒuÆÅIÛEE™%žp$–H˜ÝѤiY™ñX¸WÏaBp Aó‚ ;È4-ӶȶÁ´R†¡1\cnçôÜóxò$»Ð:ddà­7ëËÕŒYG³s<Ù9™–ép 0ÓvÉT4šìÛ·È4Ë4λc‰`À œ1.„¦1Î¥#G#ÎpŽŒ‘TÌr¤ÐtÍÐ\îŒR“©d"Ê4dœH·”u†ÃÅ%%I˲”íHiè"ÚÙ»ûÀžÝp¸M IDATè º÷^¶ï@š¦ 6z ½õ=ü'øý½ÛïºkÉG«Ön¿ñ&Ý|ó/úô)¨¯mëÛ¿—ivÖž«-.é æfû}~Á9—}–òeg„Ú…`.ùöꙓ——EŠ4Mhš[31Å2· % “s®iœ@ PÊ2ñy½sÓ $}·ÜtuCãÙÊãû†¹˜±Üœ,Ë* úgéÚ€„ˆ^Ÿáóbÿþ=k²süùùÁO>b‹o£–V‘““ã dÔÖUíÚ½½#Òê8Bè¶:ߤ&ÚšZ‡ô/½ý××½óé—_¬ßrÑ~WL·jíÖÂܬÖö΢ìPÜ´£1®,Û"iÛ©d’ã´™—ÿóµw‹ úöÈ™d¨uDºÖÿ´{ýÆíçÛ‰¤ã8 ëzAAAGGG"‘pË”eZˆXÛØ2m☂üÜÖ¦&Ò…7­•«>qbÎ…TR:"óz2’fwNN‰ßŸÑÐtš1ÌåøC>MÓ»ººÜ½²Ï˜:uêŽ{®½úJÝÐã@L¥IZR¡;2 Bu ÆJ‡‚2B"P@Œ”” €3tÇÎ!¤¬$s,MóI…>ŸŸsåX rÐ=UTÒ!w×H@Œ1!À…ÄÒÚ6å§*éT^N$!÷y ]Ó8ãâÁ‡þdx0dÈ ‡~4‹I)£Ñèž={öìÙ€¶eeefÝrÓ­]4"™Œåçå®_¿~Æ´™7Þð›7”9råe G¿8•râ‰Ø¡ò}Žƒ£/+˜¥,ÓjnjÜs`LjÁcëjZºÃ©3'jC^!ôD*±ü­¶µ·ýÁúÚöŠÃåe=î;bP¿a=ËŠ²W~¼bÿÁÝÑh,…ŽŽNߙ桽[mgM;•²Rº.‚ •$×ó‡ºÏ`›”ä+¢t”e9R!qÆuà Ìí’g@$ Ã0<:)’ŽÔ4-;;鈹Ä3†L©ôÒÊ¥Eµ6vX) ˆ3à‚s† SRÙJÆ’n(´tl‘b‰Ô™š3µÕáÎVdÜëñy ]q朖J™HŒ@)iY©„™‚]4²¿Ç ™ÅE4>LŸ²äÌ´JùƒÆ±cGúÓóÓ§[³fªíÛ÷œ|K{–\yÅ¥©”õý›jk›4M :tޜمŽn¸áªmÛw¬ÛP»ì©»ŠŠóoÿiëÖ½{öž=WG¤t]1lÈ´i“‡»(•Š»Æ;v‰S£&\<ÆÅû,Ë^zÇûS&³þýTm]{qq¦ÐÃ?mÜx°¼¢¹© e\~Ù‚þ}GضâšÚ³sǾƒΫC.´AûÏœ9}ÀÉuú`ÎçYÙÆö›;;»†–“SØÖÑmJ9²€ÏÛÑV›JÂ{ïÁ}÷?0yÒIîèØ±}ÓÞ½"á.@ …Fºè’Kf–¼òÊKB¨_^ûË¿>ƒÓñ ã/Ö8'f#c$XZ+ŠÀJ™>øXsK0°ïœ¹³ÇŒwî\ÍÞ}ûr³‹¦L™n›ŒB¾'Ë«kªKŠŠGœØM:RJ×Ä:mNߺ1sà þ¶%SÇOœþó#Û¿û–8‹;zìÔ‰Ó»öˆÅâ€À ì;kÖŒ3‡h;UÝXZZØ¿_Oî­mhܸq—mÛ–Íœ>ÑÐD"a­Y½6_vùì¢âµk7~ûíú'ª¤R±wYï9³§Ï»ìŸßç[ˆFo¾eéc<:vܨD")¥dhÄâñîîHi)üío0`ÀÕ¯¾vûytzôÏÏnX¿mÎlJ&»×|³./ßþî[¸j!8pªGÏ<ØPWSV–ߣȗWPPUU{à@esS€ãee=ÆŽÝ¿I*a»îÌŒØ¹ÚÆxé¥õÜôã–Ý»÷wvÆ(3;sú”‰7ßt}ÿ½÷ì9´uÛÞ^½ \1—sÖÔÔþÅWߥ’©ââ¹s¦2æ!%7ü°µµ5ÝãáŽm»d„x²]Iƒí(R®“l¤;|®ñdskS¯½¦N;áóyS¦)m©ëzNAV}M³ë­ HIi . ŸQÜ3pðøöÜ\€c•p÷Ý%;wmëCAN¯þýz»xükoøÛZ­’¬¨¨‹Å’¹¹¸e3Œ1";XX{&œLY¹ÆÈá#·m_EHÁìÝ·ÿ«¯¿Yxuü©§ '—°µ™V¯­zbÙ–çŸy&˜åèñgfÌìZ³®œÏþðÒ:Üüâ‹ üá÷4t(&S´yKÃSË~zöÙçŽVžüäe—â˯¾:aÂè§–-#U~óÍ4t(!€i²M›j_øçÆ_ÿzñôé£Ò’ „1#-^rU´+áõ꺡½þúû¦¥8Ç”Ùî<øè£oPwÏo±O@<ŽÛ¶×¿ô¯ªûîýãì¹3ïüí}>ï‘E¿Æ!ƒ l‹mÝ^ÿê«[Û;îèÙ³$¸":Ž|fÙs]]Ûû÷‡g_Ðÿú×Wu]³SŽK\Ó¸ˆÇYÙ„ííTR\$˜ÞÜÔðØ#ŽÓúÈŸ¨¨ )ÜÖòÝÚ3=¸îÉ¿<]Ö§_^nÐíJäáÎ]†&¸  1$Rê7«O™µè7åC‘mó½{^~iûìK®Ý²mÇ„q›6Sw¬óW×Ý”²Ìæ–êçžðÒKÙçŸÉÇ[ž›Ýö-fÛ¶”NÚƒ`öì™3fLohhÉËõïÛ_þé'[‘<ñÄs7ß"ÿò$™îÞÝôúk;'Ož¹yóæKçÉÕ«µË/»Äð?ðÀS……Çòòñãyè…_2sò“Oýµòت`®Y»iÔ¨áëÖ¿wûípß}JpTŠ*׿óÎöÍ?m{ç½WÜ ÜÿéÈØŽ]{.?š”âÜ¥¡ …»Ôرƒûõ+K$âJI¯×߯_ﯾÚvè0vtt-í…›nM£K/…“' 'ÚÚéЦ§žºíé§?ÈÌ<÷Û;pÈ`Ûf[·GÞ}·Òqäµ×ŽåÈ R/¿ +WFo¿íÎë~å<ö(ää677¬]{ìêk¾{ù•ܾä¶Kf›o¾ÅEL<þ±ÇŸD6ôéCŸŽ|òÚë®xóõ•_óòÀþð᪯lÓœ6#ü»»`à@"h ÃµügýÖ­›_ÿ÷òtŠcFEù™/¾øfÞ<غåpõ™ºcGËo¾‰Ö®ý²O¿™¡\èÛoàÕ×üzÕ‡·´ÔÅã‘ÿž…­mµuM­€ØÔÒòÛ_ÎkG|GÆzæ4†cGOŸз×ôü¦iÇ¢1i[!wÙ°Âuë¿çGî+íh4%·í?~ýõ×?óì3È„eZJ©²²2¥T{{{wwwÿþýÇŽíØö?|_SSƒˆ¡` _ÏB…ºaεDô v´6÷-+¥}¹à7ºfÐÉduÍ©šº³ƒÊFú<$ä}þ2fš©MÛ7lÚýKç‚0êƒ/_mîhB€ÛWÛ9¢¦öl,-)ê•Ê‹DZcÉî¡ý/3|ŠÍ ¸_XI`Œ¡nîyçH7„»Â8Á4BrùŸ ÐVÀÀQhšæº7%f •d)+j¬›ÚGÁ™ÆuTÜðê4LÑhÒ¶$)°, @)I–´Ã‘Ö³ §#m~¯·oéˆý'B¾’ÂüºT‘ŒÅŽàŒ±D"eÖ¶ºG)%‘gŒ†'eÛ¡ ¹xN¦¯_Q¨ ½îø®3{Ý6ã’QR)G’®S*eš–ôƒ”¤µwÄ››;Í”c™Ò—•­œ>B;Ó£GÑÙsúSü¦é­·ñL5ÀàAðêrXöLû{ÿYyß½wêFjùËHâýêóÏQ×`éoá’Yäõáß³•+©Wo|èª_™µüÕee½.ŸO·ß3/‰üéWŽ<üÓFÚ¸ V®d‘E‹oÁ…WËy—¿;~ÜÅiὂŸ¶hiºac–e‚ßaôùÅW_m6¤þ“ñƒU´r%#P……°x1NšdÿþÞ·£ÝQÝ8ºv þð¼¿1#SÝ´.—Ìyã÷÷Þ{B\±â€Šï¿‡§ŸfYY=C@¬«KMIÒ˜àÈlÇö„.'–˜®ó/>ÿbÞeÍÿz^{}ÿƒë­LÏ-“£FÆÞ|óí¿?ÿ¬ã¤¹×Œ‘–¡¢"Å9d@“«>„¯¿…÷W²`@ýæf¼rœ{é7Jù^M‹‚ð»{6Ý}÷Žåù䳟®¹†~X­]+JJ ã1)%Éd"éØvºGv{0Hef ’ΗÎ[o–/ÿ ÞxCmØ€XZ ·ßãÇ«k¯ÝŒŒ^[­-NGG¬£#Ö®ûò èÙ÷{¹cç¾3'oÙ²ýí·`çn\µ*öñ'++«êöéǃÐpþ|ØüL™ºí•WÞþáû-K—bQ,]J7ÝcÇæ8R!稔$òú}ŒùÛZ3§á#¾ðÙg_ëšÖ»wOÁ…áÕ…'e`ñ­E›7¸p!jÍ»&ŒOãÇOàáÃÖŽÇB¡ºukàûàý•ˆ@YtÓ"\¸@]2ç#¯Wu„áN›F›~‚3gè‰'œE¿†·Þ‚3ÕˆƒÁòå°ìÙ–åËßLYðøc”‚M›vŽ3òÀÁ#«¿UÆâ ÿ„­[wÿfѵÜöðCÄ|ñUÓ 7Њ7ñ­ðÞJ€`oøüâj9jumíƒtÞ™­¦¦î™e»>ü4k×i£G÷ˆ÷Þ÷Î ¸h¤ŒÇã™Ù¹¡ŒìÊÊ#£ÆL`“—[êñ::jÓF_)Ónïêr½.‹òsuC¼ÅÙ__6áð‰úʳõ£‡ôíÛ£¨-Ý}èX}Có%ãåftoàƒß™2qWݺ70dà@¥^ë]Ö¯±±åoûÛ{ï½gYÖÿí+YR2aÂ„ŠŠ#.1ð’I#I‘'0’©Ÿö—ÒiOnܺûÐþŠcœ±ÜìÓ4-ÇF Tª;KéD:[]óØÞ¥ýZZëÛÚšãuõõ¡PF[[kQQ‘ÇãÕ„a+›$rbHX[]óÓO[7nÜ܇B¡áÇϛ7oäÈ‘áHûþ}8xòTõÉSgþóÁçý”-ºñšÓ§äæf*Çve<®š»í“ˆœI¥W}‹¶Õ¥)à:7$Y@ܶ¥1”nâ|:ÜÄ%CI¸àÉœÞ")%8ú|Mðtô7"ˆÕ«¿5rÔĉ“wìØ±cǶ’’’¶ö–uëÖþñ‡ž{~™»mN&“°ÿþDüŸÃ‡>z´Üï ,˜C*•8~üÔÙs'lÇùóÉÉ+8]]•ˆÇG›h&œH$~æÜqÓLå—¡û}Á¯VìõæÏºzË®K {2™†œ³@ÐÇ9&ã©TÊÚ[±Ù¶màB7bꀲáM-µ‰TŒ s~ôØa@Òoä”ñ³8hEù=»ãQÁ5¿7ˆŠ”›L."¢&8»¿E ‘($·‘H ü™\sl[çBhç\9àXʶ-$<ïÓŠ@ŠP"c¤éLpÎ8¸vƒÉ„ͤž‘¨?×ÊX¦mZŽ”v,mjkhn«‹'¢ù9EÇŒDGp®1`œ£”²µ¥Ý¶]°™£Ü'AJÉ9sÝǤrÒ¾"RAÚ ;]û”Mxúöè7°ïÀìÜP~©ÆÒ¨s ¤WHËŒqDÇ2ePyžû˳ N\]wý-7/¢W^Ão¾4sæ¥èw6{<§݈¯ýû€{ ò(ÝygÆ•W-…/¾dË—_qÕeð³/¶G»*} }ìt"ÏÉÉü+rÎ8G]‚bÀ”ËC…àî{àøñaÓ¦Ojnj]zÛ7 AfG¸Ï—_„_}ˆêêj«{÷é³sçž·ßÄ ë¡¬lhFFvg¸Ý²lÆÀ¶m÷1u]¿ŸyæÅýëu Œ;ù«ë1‘ ÇÁÚZõLJàË/²®¾f!çì«ov ^¹è×”™¥KÇØ»/2}íÜ}¢OïÊ‚¼XI nøžæÌ??úÓ/®¾\RËȋ੧€qœ4QfdÀÒÛ  drâÂöpìæ[¶)7çÏW/¾øÚ_Ÿ–¿½Â˜9‹M›¾ðW7.t)‘àØ”™1bÈŠwöß{/LšlÖœ­Lšt¦ê0=ÊÚÚ±­½äïÏ/ª«ï¸ù–õûvã}ÿ‡û|Ý‘Êçõ_s͸Šò3×ýB56á’Ûõùó' !ŽT´Ýuwùß«áÃÕÇ~ºâgò$üa#^ÿ+ëV¿YD/¿k¾zùås”¢÷ÿ³Îë9µèFü÷¿÷^4ì¢]»÷ΘŽÿze÷••sM«qÈ\¿çÌW–®>söxåÉ9—àÃ&¿Ï3a|ªªŠžx"°hÑ•±x¤¦:qó-Ûy­Òu¶}çGŽ“r©7§OZö •ö‚ùWð_^7¯G¯žg«ÓZ5Mc†®Í™sÅžÝÛ"áˆtT2ÕÝÞQ{ÁåÎ}gÃ]Ý9Y-íaÝÐc™ŸW?{¶¹±½«¬gqåéºÚÆÖxÊú´‰C{3RŽCu ûìö±ìx,Ê®9W×ÐØôúk¯>ñøãápøÿ)nllüòË//xç*ëÁ5çZgw¢¹=|¬ª¶ŸÒn\8¯¦¾¡µ=ÒÔÚâÒ>Ý‚ÓÞј›[RÚk`}Cu~~qßþƒÇMšòõ«:;ÃMÍMy¹ùMMÍW]µP)E€¶í@eÕÉo¾þîpy…mÛãÆ[ôëEóæÍ+..fŒ9ŽeÛ–i&»º¢§NV}ñå—«W¯9uòÌ“y!7wÅŒS^yYÿ} +å*牡à”#Ó[vH2,;Î\~, ÃðYHi¹ëI"b ”BEJI’R9îþû‚aïù¤Á¹Ç£ëš~þKÿˆ£G˳2³ïºëw£GyñÅ¿ïß¿¯Gž¶mýù‘‡\\ôçip•Ç++€ÜœgÓ7]Ñh]ýYŽ|ì˜q~\ÛÚÖÌ…Èðg.? ¥:W{&i›tñìÑCÇ×4ž<[W]qü௮\r¤òp]ýÙû6—ä÷6x¬’rü˜ÉBãåG6µ6¯:ØÕ጗öš:vN jl>ûË…‹1¿(gÛέï}üJß^¯šwãÙ³'ÆŽšŠD†áQJI)™à™®kŒ!"s=qÝÛ¥‡{üBJ´“#¦à¼W¬T qÁ„†a8Ž“J%r—&êj99 Á=G ÉQ`¦lËr,Û²’¦ž¤xÒt¤-t­¶©ætuegwÄçñåe ë7vÀ€~ñd<I9\rÆuÁcLÓ4eÅA! (‘ŽðúŒD<éÚ)%uG) À t_ÐG*WÜ@(ËïÏ€â’\LëÿɲSDÆ"©¤ã8¶´¸e¦ Áµ‚ÂܦÖFE±¼<¬:—Í›}Õ cÉT¢êô™ë®Î÷¾ÿð#ξdî¸{íº Ÿ}¾€Ö®Ã%wÜtååsm›ŽŸ8wë-˜H$¥Téî YGGgß~tææçö¸ë··‡ÃÝñD÷onúñý•hÛÔÒÖL ˆpáU¸ð*øÙ1øãF4mêî¦îîDqO8|¼dñ­VJ|è•廽^ÌÍ“§«;JKál åçÝyÇâÎÎh8Òò?ÿóƒeAÏhlL¹¯/@Ï<‹MÍôä_üO>ñ°GÏjh ;ŽRéR †{˜æËÎÎÖž½àÛÕ4yê„E7þ&žHææå~öÙ‰¡Ãˆq«»»›þ·W""1—ÓB®#´¶Ò޾W_}<òvFšqÝ׀з7efôÞ¼õ„ãÀ%³qõšu—Ï¿<™¬<™žygÏžëJtvFI‹1ÊÈ0Ò e‚üƒ:;»ºÜ  °!°c'JJ¦¿ñÆŒ <°¿tG»[[I7€3ÊÈ mÙYp%<ÿžü¼ÜÉ“©ª >\Ï?G-Íg¾ùfÝð¡–á¡Ù´i={õ:ÞÚ-ípòôδ졾‘z•¢¡;sç°o¿U3f@<žñÇ?þ^™fœ]“õðÃXzÛÝûöuΚ…¡ @ƒB~>öì¡’Iº}iÝ;ï~zç·Ýûûu.·ïŽ;®<°gKkrÔų»Â•›~<Ü«kª!;;ëªÓš[Ó§Ž]öô!Ë‚%‘%•Ä¡£t=Ãã çæáépõÕWÞqçoòd2QuºêÚ뀱äÀÁ}·mÞûÂ?Ôwžøì˯'O¤–fxãMúê ”²ù“Ͼ+íÈÊ¢={™×ë#•d,ÛÚ³÷¨c'‰ö¶À+¯É[nš=tðL'¡ª[nÅÅ·âìÙ0tøÄ9s&îÝWNé›OŽ´× ¸}û¦ÚšÚtJíù± Â펮è¨AƒJ ̤KX!£¤¨ÈÑ•tŽªÚ·×ãg²B¾}Š([:L3Ê zd8Vª«³}ÿÑšh,~ìØñóÔüæZ_°q`œ1Ý뤪ê꬀oPïâ¼`Ðï¹õúÿùlu[¤Ë²¬ "åd"bNvA(˜í8Òcø®»þ¦V½ÓÒÔœ“›W[WÓ£GÛv”¢3Õ5›7oݺu«iš0f̘5ß­ e„.| !4¥”&´¼Ü¼’âsæ^ÚÐPÿᇽþúë Ÿ~úõçŸSVÖ{ú´ÉWÌŸÓ³¤·]…VÚ„\^)'"%S¶e3áaˆB@*…Œ€£6,©”í¸Û(ûgŽšHDº&Ò䘴ëëÂJ*aÛöO›8[Såón¸aÑàACŽ=òåWŸ÷îÝçᇋÇãgÏž8pðW_zèÐ XS[{s[{ó…c²¾±þ®¥÷gù3HáéšÓëü.ÜÑ1uü켞©d¼©µ¤èèh›?ó:©œüœ¿ºjä–ݲ2rÛ}úÜñ Û¿=l¶ݛ Ã1Mž7uÁ™ÚS’ìi“ç Gæ¤T*Ó5Ïå3q¬êðäQ3cJJÆ™àœ{ ÃÐMÓL{£)PDDÀþìJɘÍIr¥ ~Aû^ IDAT,=ã) ¯×‹Ì0“©”-%¡©kŒ!CÁ™&¸ˆ¡£¤tR–-)¹à¶c+[¶ÇÚëZª;º[ÙA#g@ßá™lpùÚ[;å€"Á9ãŒ[Y©T¬3ž‘Bκ:¢(%)äœ'“)Æ’RޅĤ#P9Šˆ]HÏ@dè1„×Ï>üìÝÍÛ¿Ÿ3çRÇqˆi—ö vÞjXJ McºAùûS‡*.)t+l" ¬¾&Ì9…¶¥Øy¦1!P{;ddf¶·vZ¦T  »›4¡··Å¶©<°lRò‚¿?) Á)‘DGomîjjè ez—Þ~ïþócvŽwêÔ>;¶I@X|¬\ér¸Ñ½ûS¦Âûïª'…·Þ>€ÈP*º®56„MSÙY!ûñƒd<^o8lwu2‚€-A)`ŒdZE‡Ÿ~ޤI“á¾?üaÈàá'+[’ ‘ŸŸÛ€]³]ö!#†˜LzcC$Ž<öÌè_¾ùæé›oSPP$yÁ¥H)D¥H pû$D`„GšIö4ŒBé’ u(-íuöì  ßŸ¸áz¸ã®­‘ð5WSÍ98^XºôâŽÎX*e Æ]ÀÈù™;ŒÛ # µµÁßžÁ·Þ}ûõ?~|ß’ÛäØ1ÆÃ¸ÿeç¸Ü:?nðúõµwÞYYÑïØüþ»øý÷j×.Lo¯Xõô_hËVRR–—Ÿ‹Œú”bG›úßiÌXQAñNœ wÞ3f²l›¥t˜»w!R§Nž4dè±Ê¦öö\GªÖÖ6¥dWW,‘èZñ&>üÌ_°çšk~ážë”Œ›GŽU[¦gÈ0™“Û‡11H¤H×µƒ‡*Ïžk4 ç…{ºi#nX _~éò9" Q2 Bg±hTœqžJ¦ŸÞÓ'=ñäçºnõïŸXýÝO>A{÷ãŽP× ¦NÅ·ßú`ñb8VÉⱬëuåÆß¿ãØ»ûÿ0öÖazUWØ÷Z{ï#?ã.™‰ûDñ„,!8!8¥Z¨ÐbÅŠ–– -Škb 1qO&®“ÑŒÏãrlïýýqfoßﺾ/O;çì½×Z÷ý»í»ÜØ ¬¯—Ö“í;NÜsÏã”= ®¿}~yçàñMyü±'¾_ÿU:c"¸Î’Šw (I¥3ª¢Ô×oM¦Máˆ3ëç~¶uv6$7ìïëM¨ð{=ñDfTmÕ ²¢ï¶í+ÎÏ:ª*›NÙÜQ1¦µµw]³xa:g %ÙÌö»¶ˆÿ}åÿÙ ]ß°DéHT)µ³áT³¦kkv)Ék{ã‹ xóCŽÞ¾×]óJ))¥ÅÅ•.¹p,#ƒáX,‡‡G£Ñx<öÀ¿ihhpߨ¸¸ø®»îº÷Þ{ý~ÿÿæX a;cŠû¤”—W<ðÀ÷Ýwß×_ýÎ;ï¬[·®¡¡±¡¡ñ7Þ1rØ‚ Ï›¼€B‰”Ä p’òŒïPrÎ¥ÌJâÎö(¡ç&ŽnÐ.‘ކá†mZöyYBjª¢{TÆ¥%®æfÞ ¸8hll¼øâEy¹~ôÁ¢K½õÖ»%ÅeÍÍ-+V¬°,ëÿ|©¯/2mêìîžÎ¦¦SŽãü8o(•ŽþÏæÔuöEúâ±´iO;8“ˆï;Ö0gêdÃrBAßèA¥Ý½} H¿WG”z XUî™6q\ªû•**ÚÁc ?8oÿ¿C¤¥ÛSU*…ÓÙÓ‰§æM1²¶üã5;‰¢?ÕZö÷ßë(AcŠm™©dŒðz¼š¦¶I᜻eè[o½•N§E5jÔ 7ܰdÉ’ÒÒÒÿÙ‰mÛÎf³™tÒrLB¨ÂG! Q0Æ-Z´pá‚S§?øàƒ?þ¨ñTãáÃG:úîû/¾lÁ‹旖 œöG=¹¨zR8Ü$’‚ ŽìÇ¥rGpÛ‘BHéš1ú)ߪ¢êº¦¸»gÿü¨6íþcg>÷ªUߌ5æ™§_ðzõO?û¤­­mýúïâñx (*,Íf³½½Ý '&M<ûTã‰ÞÞn÷ :òâ ¯Ô5mÅê/¿ß¸z̈ºK/º–ݽÇÊï?u@Œ<Ž1EW½ ‘ŒPʼZ€°œÜœŸßþpOo—Æüݧ;z[©#¤+Úyî¬ €i˜Hh&›Þ¼s]Q~1€Ì åï9°uòØiª¦[JÉD–Û\H ©âJAQJIÜ}ЕôJ—ÄBœHÂíJ=¨züÞho"›±(¥”!A¡h” •8w²YnÛœƒ ø|)#ˆ–m¶v56¶u¤íUý¥•sÏZàó¸ùÅ9‰D)QÜ™­ª)Á°PÖÛÑ˹ˮ‘î„ @jªZT’íM¸ü*!x[›Ú-ÛÑ<Ë´¤à@Æ…ôz½½§@‚ˆÔ®ª.KÚåѨÒÞa}ö Þr+PJLSø|UUÒi!ï,(QA&/( 4´E‚Y]Eæf4SPÈ/ôRB(ÈÏüqÃ%%”KÛáÖ1VRÁ¥›¶"žóÿc—BJ€ ‘“ëç ±oûɽóçëÖÊY³/îßcý~ϯ.<ºÄб99¡T ,+ëp[JÉ"¹ÌÍ÷z2´7êjè£* :ÏÉõ0FÒY‡8°K‰=Š¿ø¹ü÷«8}ÆòÏ¿ÌT7­§«%Os!)¤6§“ šF³Ù¤ãdû‰œ`-çø‰þëCçÌå¿þµçýwß U ²-KÓd: ^Ý#¸D S*¥ÙÖ~Òq ¨0@Ou™H»]mÁ‘QuÎìiÿ~ÝßÑ™Zt±\½Ö>kŠ|ô1œ;gv<žNI˶Z[›½^YÙŒÑMú7\ùë_ß={Öìžž8w„åØ c ‹vN›†o¿/ü±lℱ¶Í_}­þ¶[»ï¸Èœp0'§po}çÜ9ÐDܾCŽ;vÓ–}óÏÅO>‘eå¸y‹\vÓäC‡Žg3DH‰xýý¥ÅEYúヌÆ?ÝÛÜqŠŠ p€˜å~B¥ =ºnfI±|äaüäS»§»oðÐZ]÷ ‚ÏçÍË uu£¤pĦͣĒé}{6y§n¼ïꈢ¢rÄÈš`Nna~ΙkZPP¨éÊÿ°†LÁT:yòÄ~‹uk¬ÿv „rFµm{ǜٰ|¹\+W®$cÇ ß´ùà­·`YÔ‡wÞY3&¿ûÎ"}ñÎNlkÍÛ[  ¡½öê§»vɳ¦À®Ý{Ü»zý&±i3~øìÞÕõ›_?üÆ/•—¸,À˜··ç¨€ÊÉSfü¾’Ò’]»¶ÛŽñÿR¨IyäÔ)D,+*j=Ý}èØq¯××ÚÞLÏÖw;.ç‡}.ÌUU= fÌîko´m“€”6´tüÿÝÎ '›ÚUMᤲf(à?yº§º¼àdK×ÕŸSNÄ]}ñþFÈt&yºý¤®{¤”‰T¤©õxcséÜyì'ÕBFމD.¹ä’ .¸`Ú´i>ŸÏ]rÏm–e%“ÉX,–N§M3ëv¤(¥yyù¹¹¹.ú‡RÊ©¬(ûå/ï»óŽÛÖ}ûÝ›o¿½~ÃÆŽŽŽ¿½üú»ïÿçœÙ3¯¸ì‚1£† ÖÏÏgZ¾BØr`r5pvPDQ‰ÆÑåÔ€¢(Îe´?Hr IØÏB0ŸÏ—N§вì“'ÿó•¿ïر½§§Óµ+Î;gþ½wÿJ8ò˯?ûè“÷®»jÙÔ³çlÛ¾¾©åÔÐÚQeÅåUíùû+ÏäýdÙý%…¥}þÎú­«ósKæM[ÐÚÙ4rȸIcfô¿-·ßþôe¯×wó’_ )]’¢2½¡åH^NÁÙu³Z;O••¼@°»±­ÁȦŸ84oæù9Å.HK áñz]ó¬ÃÝ©-  )9¡LÚR€”ÈÝéþX61ÐLpˆp» AŠLÖâ\nú¼…ª…X*3²Brjš¶R‚p„#™ÝÖÝpäèÁx*FK‹Õ˜á×ý\:œs†Šm9¿ž›b”Fzc”QÊPd„mKnI‡Gîê'„¤S™# ?à cH±áX‹à2t,›"qqZ”¡m9E…Eß}/m‹Üp-Üu÷ý“&ÖQ¦hjá•W·¿ó†øè#@€úz7nL<ž>|¤sÞ9ò©§÷üêÁßæW¸ŒÚ]{ö,¹³†èê¡¶MÒ§¢\î­ß?fä0!å¡ÃÇ\™,Z¦â÷{\{ H „ù4·’‚Â.Sh_²¯³¹-'7páøy7o”¥¥P^‘úç?ÿuå•‹O?YQdg‡,Ÿì/*..¯¾zåîËKŸº»ñÀÀ/~>±«#ÙÜÔœN§‹JK}ž% \9+¢2›±Nmon‰Z¶Í÷ûõ²r¿N™ŒÇ°²²ìÒË.䎈ÅbÑh÷™YÆ„ CW®ìüå/1—'Nw ®X²`ݺ}wÞ³ç@2 û÷+sçÎH&“+WÊ‚ðyžîhIqq$I&#¯½/¾„]Ýâljʒ‘Ș‚îòDDAaA{'€”“'á“Oþqì¸Q\àœoß¶óöÛ!C=?/×q(—"èǦÆÎD23o.<õ8kŠc[²¯WNš${{ã‘ÞˆG‡½{ååHU%}½²²š LÝeh§÷îݸáûÜÉ¥¬ß³÷²Ke&ƒ¦Iü¦zwåJ|ãuX|¹ìíÅŽïï¹ô·=ûŒ<÷\,(À5kÉ%—†ž}æßo½eÀõ×ãMË~RPXqêÔáM?³-P¸.o·2þò xä1xáy¼üŠã¿úåoÏ=o®kÿ”5ŠÒ´§~KeeÅÒoýðƒ·M3iYgZg¢‚@HI ©..K¥-õû|]¡p¼¥#k:™LFc4èÑ‚#RÕþí÷;V”ë¦6µtò~1$º†u·æË ‡&Õ‹%R»öÔŸAü»±Üœ`ý¡ãõõõEÊŠò'ÓÝq)Å·[ödM3žHþ(¸E).ª …òš[VT ÎÏ/4ÍÌ÷ß­J&â^Ÿß±9¥¤´´¬jPõ Ko¬ªªFB\Á”TÒÑÙÝÔÔ‹E…Œ1US)ôãíPb<šîôvûý^דÍf[[ZL#“N§lVrqñ… Tóá§Ÿ&“ÉX,ùÙË¿øê›Y3¦ÜwÏ­C†VI)@¸·štg¶îRäºÂGÚ6@Æ€9¤¿~í—¿¹ Q6€r9À;KÎVVZÎ ?v,žˆB×­û6“IWW×N™2mØÐaÓ§ÎŽÇ#o½óF}ýž'}áð‘ƒï}øê´)sçÎ:vt¶þãµûb½ Ï[¬iž½¶oJ}±ˆªègO˜9sÒ¹@qS6à詃†‘éèm"$Í-'ñÔàªáš¦+ R3œ†(³fæhÃɲҒ‘îóç-,É/DB@N2JF!ÔMƉB:¦m ndÒ‡ *ŠæW}„1*!ûU™€0B$!LõhŽe !¹…ÁÓ-=}F"5LôŒh¢·/Ñ—HÆ2FÊï äå ª–ç/dІˆºG33–Òã÷X4žIÇ7k «ª-k8Þl¤8"‘ÙŒ™IeˆÈœÉisèyy¡D"騑8Ž(AòÙ…€‚©LJ™Jdª Ž' W¬ì~þ¹`aÏ®]+¹À1c@‚Œ'PS$U¡¡*Ëaö¬©ï¿¿ÿ£qã÷â›Õ“ñƒ%H\vÌŸ/×­Áók…—}ü¦›àþû×?ôØ>nX Ë¿†ÃGêÏòªPrègÈx¢+–è‘R¸FYvÆõíÚ¦«®‚«®Š>üû»P‚?¿{ÒY²o¿œ>SçÂ).¹+«ÚOã@iyÃu8ožüýã8zÌŸ®õåŸ|œOŸÚôð#wH %%ðØ£¸g/$RÁ%W\¸bÅW]KoH<úØÝ2”¿~@öõbý>¼æÚQÛ·opÕ&Í\ºtóÆMü™§¬_ÿö¥çŸùS0à±LËv$€à••[fhw}äÏÀGüê«CÜak×À•WÉ5ßî~âɽdU…|þ9ܶ’IX³öãÛï>ˆŒàæòºkÇtuwŸl8æ÷‡Æ™ ú‰[â[6þå%ùøã_þòþ/ýñûßCgî?È®X\Õq:2ÿÜyï´{ÅWdPµøø#¬«NeÚïóå”UÚÜ@.8çüÌk˜VùTSSÓwß~¿ví·ͦeþ¸*´lëdkSg_OݨQ-§…°G *ÛZ.K”–Ô:6·…0¹A8fÒJ?, úö Ë’»”dÓäÑXfÖ¬Y>ôþ_~ˆA?{vãÖmpÙ¥€ím½šG‹DL|èV¯ß?{Îü~½üÀC‡€s¹{7üê×0~ÜÈÅW̽çîúÇžˆÝz ¼øG ÐMo¹•ÔÖŒ ˆÔ½U4][¸pú¯óþSO’>ùy ;;áëò™§Õ§ŸþÙèQ3kjŒüügë÷ž:k*lx”Œ5HTU•lÚÔxýuòÙg±²¼ ‡®¿õç?¿«¬ îÿ9þý%·Ù)Oáï„æÆpY¥ÃÓ•äßrËuwýìéï¿“o¿…óÏ?6f´|EššÛV`Ò”Ù›7®]¹ò«³¦L=fÔòË£Ñ.EÑ$HÓÌÂÿ!!•Ét†ªªª¨……±drè ’†–ξ—Bä…¼”dFO¶7"ÁØøAy99 ÀÈ?a%¹g»áÒ9¡p¥dŠòó{~ºsמ­Û¶1bÙ²e×^}y¬¯oÓ†u~ú¥íØmí½Ï=x[Ø«­Ý²<*û¿;·„Mõ´wžÊdSm§O¥2ñºº)L)‡ÃÙ¬a˜–¢(œ BHGGûO~rÇãO>SY5øt{O:•¦Œ ŠˆH@¥ ""’x,›ÍÚ‚ód2¹víò½{¶.)¿n´"LS÷úü¹9¥%yUåš×#±hWo÷þcG>_µêXcs"™úø“ÿýbõÔ³'ÜïÍ#†×H´%)„‚p›Ô©àθÐH éxH×3'¥Á%çŽiš†eáäÉPܪì IDATgŸ;ïüI“&¯\¹¼§§ûÆ––H!º{z>øðÝÊòAšîyú¹GܵªnìÄD"ÑÒÖ˜—SØéº~É­SÆÍÚ´óÛ?{C€ÀþaJ!îC÷üæFR8k6/Ï ç5¶D‰ ÎYrº«)äÏ2x¨$ÜHÛ„#ŒR O6Š%âŽc×T×4ØáRp8Bpa‹½w¶v´Ì9낌‘Þ}`Ë‘SûËŠ*Ç TZTΘêõiÙ¬IP…r)²é̾ûël­,4xШp0lelÓ¶#‰HkGC,ÕcšVaNIIAeA¸4à )…Â1 Q™‰D‰ÜP&¶@„RáÖ‚ûB^'#T]”ÂrPQt]áBY±[J€LÓ„msîVyHp))p¸ %Žãº×k[‚RŠHTºBbË´UšÚ¦Þ³&Nt>_¾¼±éToo/ôw«@×µªªŠîîöP çþ{¡ æ@võ·köÖêèìâ±;áP° 0tå¥KêÆL‘ 6ïܸzíº¦¦æL6 ^¯·¶¦ú’ ŽUg9æó~áàáC÷W÷ÞWQT™ÊÆŸ}éÅÓ§k zðþ½º¿±õø‹{©··¯®nÌu×\ùØ“Ïg2ésçÍ}â±ßÕïÛûÎ;>ÚÐׄ¢¢‚™3§Þ÷=Êo~÷»[¶8œhFû7Ã¢â¢ššš«¯º¦¶z˜®²SÍÇßxûí£GE"QDP¥¢¼â ϿdÁ")HWOÛ[o¿}ðð¡îî@(-//=sÖ²¥7FãÑ_Üwk[ÛàÚÚ?½øb(à½ëž_:tˆRzù¢Å æ_ÞÛ“äá’« =…%å«>_¹jåéÓí¡pø©'1 ëÍwÞ=qâd& š®UU–_vé¥çÏŸsÓ­w5·´Ó¦.½a©eb6å8fŒLØ6#œçmm=ùô³Oe³Ù!Cjûzûzz"„bYYéìY3.¸Ä2ÐëSÕäÝzû=—]zpáB˜3Gï½wšO%"}qô¤— Òó ´gž{º­­=ô?öèï³iÖÑÑç¢×(#á°¯¬"´}û¦5k×uwu›–€EEy„`Wwß°¡UgŸ=ŒܵëÄB8ÕU•¯¼òB^^Þk¯½ûö;e2™ªÊŠ¿¿übnn玪*ÿ~ãío×®ollv×»ŠŠò9³§ßõÓÛBáÀ÷ë6=ðÀ£étæ‚ æÿá8Žms.pGŠBß×_¯üàýN%©3uFnnnmí Ûn»q̸Q¥%5[·®~þù?8Ö’Hf bQIþ¬Y³fÍštâÄÁŠÊaï¾ýNSSW4@BhqIÁ„ cFŽ(BNœèûæë•Šª^vù¼+—\|êTòÍ7ß:vìx:•Ÿß?jÔÈŸÞuÇ¥—-²-SÕ´gžyáùç_´m;??ÿþûnäÜÞ[¿ÅŠ­ÙŒé÷{/^4cé wNœxößÿþ§ußm=pðP$u?p(ªªÊ?çœñáp𫯷îÝsÜëõÞÿO«ksþûÉòU«¶¦5dhU&•noï<¸æ¡‡xîÙg 5·4ŸnkþÅ}¿¬ß»gúôiÅÅ•«V®?räHcóA#“–0·¦3|tEqÑ·›7Ì?jû£œ‹ª¢PÆpZ{ãAOyIA[Wìì #ÎC)E•íØßðÊ߸¯À?sÂ×,ÐTF5–M{Žì?|BÑx{ó–Õù¹Í£Iá ­®ÿéÇïqΚzöÑÃ[B!Ueª×VT/ š5`˦õÁPþù .Ÿ5urIqQ}ý¶¼ü×Çÿð’WcÉDL !*Š Â¶<^Ÿªè½Ñ¸”ˆ'rsƒR¢Çë]³ö‹ææ†Ö¶ÖcGOnë çä\{õ57.»U ™Íf…tººÚ¿þêÓ Ç;»¢‚Ëü‚Àä‰g—Õ¬ûnu㩆òŠâ ®:d< ùí·Ÿœ8vœ2ßìs—ÔïÞ÷·¿½xñ‚KW®ZA ¾øÇ¿Ì?ï\!ĆÛß|óýX,ÞÒr4éÃB£ô¥ßãÍdÓãjŠœjïKd BFˆ@ŠL?¼zṈ̃ÀhÖ´?X±uǾc]Õ5õг_0Ã2H$ùéêM;4L4ööÛo;aòëo¾÷ÏW^mooW¥(Ç_]œ3¤¦¢¦¶êûí¿ÛRr‚>JéYãGîŽì9pøÇÚšÒÒªÂü ÓJwt¶9AÓÕ¬™©¬®þæëOòò ¼^¿t,ª°ºñ“Ö~·Æï 8~ ºfø5×Ýâ8’ª¨ŠGSS8Ü 1/7`ÖéÓ­¿ÿêÜòªQéXD"É‚ØÑÞz4ÒUœSXY\¢ztiÁÜPIUEYuENNÈôe…xóýZ[[mÇÙ¶m\aÊ#¿»{ñ¥ó9Bî^hY\p0máØráâk]áè¥ o7f öóݶwÇE?»¶aãºêêÚë¯]–ΕÂI&­Ï>ûˆL¥bŸõÉ /1d4T–ÕnÙú=£äÂs.ßwh×éÎOFÞÿì5·X r.šwEMù…iš®S$„‚’\½á«’²Éã§7µŸˆ&ccGŒ«­F5£Œ›X½ÑîíõÊfLžSR\’ºÂlFús´¹àŒaàÉæ#½‘žñ£ÎZµáó+.¸!È@JAÂMn;\Çq¸DUôAåC«Ê† ò~Ù¦?è),Ékjh‡Œí&Œ;6çÜò…ôâòÂö–^p¤êS-ÓÎ- ¥Òy±x_&›ìIv î!r ‚ÉHš )A ápî¤2IÏ7~ÈdEõJ”€ÇÇEJ̦MÁ9AE‚$DPJ * 3Ò¶RUU‚@騺Â<š“5¹-nSFÓiÐX0÷Ú5›?Ÿ8jnž^¤2J•ˆ*)À‰Ë -´-.„ :ZRªÆ˜J(•Brä"mY¤:ÿì6Þ²c×¶õ[R£†ŽV;BÓT¦(ŒÉD*’L[L ÉX6Ëʤ”™LÜ4í¤áÐ$ R¯€Œc Î…eKUW¼ZÍÞúÃRÛ¼>ïÁ5ƒ«ÆxTµ±åÔk¯¿]Î ç <Þ¯æöv˜‰´i™6**SÆ )ÜcHAÇà‚[¦R’tÊŒF™®k*S\ [&aZ¦0LS ’I›™4gŒªD‡ƒ°³†aÚ6'”¨ £Œe’–ef ¤La[¶#QRB„{¢”™˜Ù¨¢1BsKØƳÃH* á\ø}AJ²>_¾ª+UGÓ–ìÍD[8¶´…i;–ߟcÚ¦eYE´/M˜·/•‰öe‰dŽt8玓Î(Å@ß}ÿ½;ïhY²N·Ã‡i?|Q¤'•Je²¦)'à2©a9½}ñTJó|^¯ÚÙÑc™v4´À¶œx4Nš‡©*#Qˆ”«ß;~¼ó䩲»;xÃáêÚÛ¶3Šª!Xº®*L±L‹;À˜J'›µ„#T•y½^ È…{ÖNK„G#¯N‰GJ £()QÑuÝ"r.(%yya¯¦SJ%¸ßœ/ÿò›ëwTž;ÿ¶ӽ›7¼ª®€À¡£õÓ]lãÆ­C†WÔàñc=ñx·®³@(?ÎçpÁzû¬Tª¯¹9˜.-)yî¹õë×oÿûßþ9kÆ4G¥Œ0ŒB*³¹Ã˜¢PâõzüÇë?yòÔ êš‚ÂBÆ4EQ—-½@=väá‡Þ»çd{{ïO=ýÙç_üå/1lèç_ü÷_ÿz¥½½#62YCW=³fÝ”µ´çžy®¯7¦¨ÊM7ßsÎ9[¦‰ÇJ˧._¾µ©qçšµ;—.½côȺµkW-¸è’/¾øì‘GÊ/,˜P7~ÄÈ!ÃG Û»çÀà!š›tu¶ü¨)â‰a4?,/(:ØØϘ•dÖ¶¸ðé¬0/§§/Âw²N,‘\ž·çÓ55ômÚy°¢07™LmÚsxdMŸ¹¬´$ï¸xÑ»ë÷«Œ¯*ªÌ÷«DJ‰Éx´á$¯?xrØ ÒŽ®¾Œie sͦÿÇð€R åF¢=¿ßˆHXii•îñ[¦éó…’ÉxQA~{ûé;·•–VNŸ~NsÓ‰ÞîÎd2M ¡”¨*†$„S¤.ÏJUX,–\þõ¦•TŽò…Ð4;Ð׳²ñhFò+ç.˜2j‚Ðu‰ lNUôú=(WûJáçžyº7Ò—››ûï7Þzü±'lÛ~♿‚—-:g‹„¡„Ri[\rÂ9cŸèQ $F¹‹uÖ0¹ãôëYccÃâ˯Q;N[wǺï¿s¸uôè‘Óæ\³dHtyªñä>{[S}?»éw~oàDã‰àF´CÀ¼êâeµÕ# ¡R%(%¢àvÖo¡Œ­óŪ7îøöò ¯:x$#Ìíæ¦ÒɆÆcmí­¹áÜóg]‚„‚DÇB$£4‘H) cT•.5Ç⡽ût*‹&z—-¾‹PEr. :(YuMñÉ#§S™d4Ú‡|z¸³·eÿwÛ©Ø ŠSFΕ$r)„©1™Œ¥…Í…ä¨i e‚$‘ž¤¢*RÇâþ Öuº2š›S—S„‰BÊâŠÂxoÂႸþ?!MíŠÞ¶C^°)Ù^¿nHõˆ1C'ytïþã»rüyu£¦GDän"*…@n@pËM!•”¢×ãç‚sÛuÀƒ®jj@䌖]0û²ÏWtÉœ+sC¹@P8a%¢äýQRJEQBÈX4 „„3\[)òC%¹c mÇ9vjߎ=Û‡7rØXMQÓé¬À-*Lß¡ä†DÊ-O`†0J)Ñ5•1ÚÛÓ~¼ñSd8'1–ã+=°o_Ó_šÙŒ¤¥Êʦc­ÙÌç]2kÖ\UÕmª d‚Ûè€ÅmPXŸC!k¢X–#x0D¤·Ü|³®{|ð!Ë´~ÿä_M#{Õ•"p£'8A0™JfüµÜJ—–c›F-He®/Íd³©T²¶vÈæ-öíÛÛÐp¼¤´üê+n\=” ‘J¤¾^ýßo¿ûfÆäs§Mš«1KDš¹ªáò’Ê…ç^=|ðh7S‘ H@"ï¨ß´në KØÃjG~±òýã‡n¾ò® c§QŠRbÆÌtõtôE:«+«‡ S[*‘âfD_¬·­­)/\È9G$èñ*‚CYYåä1³F ­P¥è·å9¦ÕÔÔ¶vÓgË7|²ïض݇·ì9²ùXóÂÜòA¥#ºúZ“Ù„ß¶ÃCMS Óîíì‹$z©˜Í³†HGãÝ3•›[Î 8¶C$Çà@ú‹7É1›µúûî‘„]Õ|Ui-%ìxó~…ª¦mm<˜LÅãÉhSûɵcróƒnf¶#)¸cX”*„P7Y[Q(Q!…$@U•( @ÎB©Rx5oIaÙÊ ŸW”ÖêŸ@ÇáŸþY:ç\J¡(Œ1´m!¸p×àBpwÏEQŠòËUmën:ttOQA#*!„P(UUU¦0 ”hºÇ£*]Ó}šÇ«êM$ûOŸð<ÓΞRQ^L$N·ž>râàY“g«®*¾tÊI&¬Œas^¯ß42 (z¿c€Rvfø/%¸ ^F\#?™”•~c? ›³Š„‚a¦u]wuR"A"8H*w#‘…c[@)%Œ tÿàÇ €‹@D‚%ª¢åæ„þ Çãqx–R•2æÒ -ÛvßRB\÷§ä¦c†!¤tÍ<šªý9mî¨L%ˆ¦•í‰tµu4—VäæN9{²i”¨Ú˜k®¹¾ª¢¶³-•JgGH”À‘È d4‘È€sa–ûS˜¦å Ä]Œ »§Ë~]8ÑT>}ºùt{ó)ÄYgUUQ®yT¤”RF¸^@!„¢ª”FÝ´6é¾"PJ EaŒQUUEJ1æŠÏ$ÂJP×´P  ªŠ¢07)WJܾ}Ï#>óò?^¯¬ª1rDYiÕúõëëëëÝ‹H†Œ×~º1ÒÓ)¸˜8qÒ¡ƒ‡ÇÑu_ œG #)£Œ*^_16~ܰ²Ò¢—_~9‰ä•Ô -¤D.@eŠi9¶Ã-G†iÛ"“µS8ç»v׫^ ÎC‚Ñ-©srÂÓ§O»êê%™lfóæm--­R‚Ëq?~üW\ùÞ{ïìÚ¹ -ºô_ÿzuÈСŠâ¶²ä¦ ›:ººròªŠËj¸ãDz;NeLÉdÓÉdòž{îÙ¼yËš5«ª«çåçÂzzûÐãñJ{»Û~pû!š†!„HeÍe¹çaocW~âÔ¶–Æššš£G8ܹaé²!ƒö釜óò²Aápˆ!1 ¤ ¶ÖŠ smÇÎZâ›åÿ™[=Äo™’óÖLæÃ&N˜²ìÚ›F×MRý!¡{ ¥Äðx¼Š¦QFÝK„Br#›M§RmL=ztAAᆠ-ÛÚº½~ÄðáÕ•EŽtÙŽ-b±Ô¿úÚý^C-*(—\:BX–e™¦ã8”R7Œ½õ¦{¶ïؼqãwûìÉd2·/»{ü˜‰ ‰cÛG}ã½W|Zè¢s¯hjkh9}ª¢t©*«òz|ª¢­¹dáM¥…å€Dã®4$k$–ûŸ ?4fèø ÛÖF‘;o¸¿¦j˜ë(!Dú|ÞP(˜.ÖuŸ¢ª(Árl—¯MÇÚÛ[‡×Že@]H!ÄÕ 1¤LaD)8—’;%´´¶ät{û?Þ†K˜Q7ú„ó†VŒ6hÜÔ1sJ‹*Û»›-ËŒ$zÚ»š»cƒÊ†y<º¢(]ÝíG›ë‘0ݧ¨¢š®¦,ãè©Ń\Ú%DrA)r) "·.DdªB‰+äE¤ˆT]C ¶e¤Á@phõEQÇ›4uììâüâñçN5Ce¬¿\Ó˜¦éª¢!27ƨ£„p.‘R…RJ©9È%HÁ%%ÄïÍ)È+\½é‹êŠÁÝãjÙÝ!¥Äµ”¢àRJ¡ªLat`]sá‘$JE!¥Œ*5µ55ƒ)(Œ)šB5]ñ芮1ÍÃEG„|^ŸæÑU!­d&Ám3¯0Ÿ1’H%Ú;º’ÑdYIÕ¸ÑuÁ`΃ûüž<ÓàŽ#¥HAÂt?íõû”R·¹çvÒEuï7Ë"ÁeÏ»ž)˜îîRŠD2ÑÔ|Ò£û>¿R×5B J)ÜÈ: \ιCRªPd€(%0¦áCˆDA íW{dŒ1GQˆ¦©ŠÊ\"¡”€@àÿaë=£ë<®»ß½÷Ì<ÏsÎÎpÐ+II‘%Q½Ù–,ÉvËNÇ-NìÄ)N³,ÛÉu’'yß›8Nœr-[‰“¸©Y²­^HIì Hh$:NÚÌì÷ÃÈvî=°>kkföÌÞÿÿïDDRJ©$X$£8t•›äiJD(-ë(Š]¡´1ŽRŒ¬HŽŽ]˜mnlYÓ;ˆLËÕ%aUG[WGKoòâ|µT©h­É0XЂœLÚ«T}@ °ªyCL¥\Çq—~¦ó“DÒ 'Ü+5/)ŒxùòÄ›…n¸áú¾ž^¡¤”RI´RÀë:Ž”’Å‘¶09¡\W AR’ãA$B‘R+Îh""%Ó©TÊó”ŽR‚ˆŠÅÒC_øËúóíÛ·}à_zä‘ÿxøáÿHZÜHJ‘ç¥n½óžË“…ÅùÖ¶Ö_zàW&§g¬cL]6'¥B‘Rº™úœbÛÖõƒkººº^~ùÕëo~‡rÜN!¥L¥¼(²Œ‚☃k~l­Ÿ˜ª…Tõ£……Å……ù(ô­5–íªT›•R»ví8uêôØØEö<÷þûß½{×uÿú¯ÿ2>~ÉuÝÏ}îÁ/|BélY IDATá‹ù|ž„H<¿Õjõ‘ÿ÷l.¯ð«µæÖîúlÃÂÜt±¸¬c½°0ŸNg>ükùÁ¾7}yjç®kÛښ˕J¹\„©º\‡aPK|lÈZ[mx±T«÷œ¥²ßPçM/”ÚêOžŸÎ¥”Ž~›Å…å¢_«Í.Î]œš_®”«µb±\«Ž€WŸ9rv<¥ä†îFÏQ^ÊëìêØ±gw÷šÈØB©Vñóç/úA¸¼¼Eá›G"‘J¥µŽµŽRéú\CXƒ°¹­íâ…3K‹s;ví½xá,MOMfs¹|ì×óMÏüäGår)Œ¢þl¬!€Æ†ú\6]®l‘F޼~Uk·|FñèÅ3ïzç{o¾û™|+º™$cÙõ¤çÉ Vkµ 0qlü ªÕ ð«•JårÉ‚J¥j´¾jÛUÍÍùW^~EëøØ‰³oë©”âUa&ˆ¹ùÅÇž|úÍBØ’ï´Æ†Qú¡5L˜˜»²ÈÖ7(ǵÖÎÍÍ,./°…µk†Š…Â÷ÿï#Ǽõ¦û6¬Ýòƒ~kߡΌ_Û¿±!Ûˆ(z;¶ ïêv—Ù‚ådc€ÕSWÆùä豫·ìÞ¹uïøôÅé™ñ_ÿ•ßkÍ· !H€TB)‡´¶Zs†ĵZuqqnjz|tìL„a;søäèÑZ­Ö’o“$xÂÆÄ:2ä›ÄUZZ( T{®ºyóºù\»#Ý öç—¯\˜©ø…õ[6÷ïêß²~Íð`Ïr(rpböâÌÒtl}ß/OÏOúAm÷ö»:ú.MŸ ã°£µ[HÁ ¬ËZ`5&F $2‘ð<"kQ$ÏšÖ¦öúLVÊÔe, %AÀ„H„²©µÁ²–B)‡H`’޵à"¢•8fI$]‰Ì‚PI‘Ä\¶±¹©õÉçþ»«£'—m"A´r:%eI"Zc™ÁM)×U¬­eFfAB8jå"RHòR®“r)鈴§Òun]—©sÓu)G :0º>“&BBRJe3Ùº\ýÜü\¾!ßÙÚ›oh«¯otœ”6V¢ç‡Ñ¹ §»Ú{I”$0éɦә……yÏó¤T$‘„D^mP$»‘-320%AoâÐÂ0»t.ŽÍÚuŽò¬å$MM ²«D lYt¤D€dÀ&˜:B`°‰M‡!±#„ã9B²ç9(]™„HkA3 !… Æ£¤2‡Q¤”DaäKéh£Ã8ò”êÐXmbã)·T+¦Ó.(söì‰ —F»:{ûºÖš$ÕÄĬcSZ®Æ!—*~Í÷c`ä¤ Öš ­µ„oÒeì¢Ã6yÆ13'ò˜Äx”Üu)#^¾<~ùg áM7ÝÜÑÑ®$&ýü¤ç¹z‚µ,•L.#–-"*%•R’”$¥T‚~ ")‰''JxÊñ\ÏQB Dˆø“g^zß/þÚÌÜâÃßøúo|ò>öøþýoüÑýÁÇ>ö±;®Þ|Ížëž}öYm4!¤ësï|Ïû?öÑÔg2GŽ,—”ruYcüZ­V©øÕR­V £ »£uóæMCCCóKUå5Ö×¥²Ùl]]]*å¥GÛ$y˜‰¤ã8)Ï‘åj˜ÎäbµZøñÂâââÂB©Xð}? #kmQ½öÚëcccÌü<°~ãö×^?pìèÁþþû¾ÿþûR)Â0<}úôøÃüœãz[¶lŸ™[\.,[k3™\wÏZ¿V®TÊÌ|îÜH©XX³fàð¡ã—.î¹æºÖÖ–¹ù…(ÖRPK{÷Ààæ\®±\.DQˆ«^{D.Ö"G‰R5Êxj©T@6z¦PŸ)î;uqMG.òƒÅb¥T©}ÿ…£¥Šÿ“ƒ£s‹Åæ¬[©5?DKÅÊ@GS¡L,VÆçK'/Î<ùÜëß}âÙ÷:3z±Pª0PSS¾©©¡¹9ïy^ë¤äûµJµ¼¼4·¼4ß”oÍ545µuä޼ñŠ5f÷µ·9ðêÌì•ææ–\CÃ;ÞyŸ4??úôÉri¹«³§¾.ÇÖ¶¶4 I…B5Š´('Μ¨¯ÃXS:5Z-¾åþ÷åšóB A¨+GV«µ¥ÅrÇ ' ÐAP(”ý â×j…åB­RÖqT­Öj5ÿª­[Â(:zôX©Tžœš¹í–½‰cÁZ&`;;·ôø´R¶47¶…Q‡áŠBi™°Ñ @A°}óîîÎÞ‰ÉKß{ò‘Ÿ<ÿD›±±sWmÞuÿÛîH~¦³³÷üÄ™0ògæ¦û:×Râìg¦–¦ˆµ^˜ŸŸºPªÛ›;»»úúņéÙñ7Ž=<´føüݺL „$AH:Öåj¹V«.-Ï/—LÊõ2™Œ’uRzÙº¦l}Csc 0H!G#30ÆFk͈hB“e,bÒ cfi€ý™ùIÇõ†ú¶¸Ž“,G)D@IRIéÊ0Œ¯Ú¸s×ö=Ò!kcB5rþÄ÷üÈöákn»þîÿxô_ê›z;ûЄÚQ"ŽÌäÂXh¨o‘R! H¨ÁhWZ‘®bm,'&@`£QAC>W\ª B±2tA¨UfHgÝ•§±¯•rE›h_1J)Dd6ÂqVZˆ˜ÔKèï]ûž»øîÓ\»íæÍ·!ÈÄRÊ:­0DVÛ0ŠS)'UPk… ‘\ Vân"²`fÒÚŸš¹8»0SñK™T]c®©©¾ÁM×××5c‘F1›i|> )ˆÀÛÙÑ·´¼0>9Ö·f0á»)E{{G¡°ŒˆÙlŽ…"’À†“‡ÅÊÓp• Ïœx_¢8šš×&îëÈd2@¯°AXK)ã(@‰èÔ¥˜ü0DDk@JiÙƒ«\`K- !"# TfEi¤cÉuRÌ–’xKf¶à¸®Ö1 ©h­‘À°e6RP&“®Õü”ò‚ DDc4¡:wþÜRa¡·³Mï16Ê$•_­¡%+mº¾®°\pÓ©ZÑ_a¨³±`X$•ÌJÜ`Rm&“ Ã@DZIPñ«É?'S—‚ ÅÿO¶ÁÏ}’»Rró°–… äÉK„Ö‚6ºæÉ’B  ’2™J)„BPÒ,MڞɉEDRIWJA’ˆl©Rý§¯óϾü׿üÁ|þ¡?iÈe­Ñ^ʽöÚ=ýèGëë³ù|óߔɤÂ(øÈG?|ýÞëì‡ßþö÷õ=w²­½û/þòo7m6†ãØ0óéÓg>üá_¹ñÆ›ó7~«®¾ñÂʼnÂò’‰c@f)Ôæí{šÎž=bL¼oß¾\®¡¥¥åäÉã_ýêÿúèÇ?qíž.ËHDD]ÝkZ;zf§/Œ­U* jnkL/–*[{›óÙÔÁ sý­é3S‹Õ jkÈ õ䋥ʅR Ï.U\‰——Êýí¹¡îæb%˜-Ôf‹‹e¿\ñg—*™Lº½½½½££.“©«¯oiiéïï_·n]cc£ëºuuõBHcL­V+‹åryn~ñÂ…‹SÓ—£Ð£ø©§omë¾ñ¶»ýJmaa¦µ­Ë˜¨V«üã×ÿå¾ú÷©tZ†ÑŽ»ìûA^¼x¾­µ=ßÜX«Õü@+%R©4[ñOl…1XHÑØÔœkÈX%I†Š¥(2^J%ˆ`fkŒ#†( }?t”5&¬TÈ÷}!i½æýïÿ¥ƒ?qò™ç^ý“/üÍŸ=ø{̱5+Ø´Ÿi­Ã0N(ù?ãè³ ”¤¡¼jÓÎæ¦ck£5ö¹—žÀBqaiya¹0ýÎ;߯Õj®›ìB‹œœHFþ‰³‹•bw{ÏU›vûµÊryyôâ©Ó£Ç¶ ïúÀ»?ÖkB"¡P Yk/\[¸b-*©2©º†l¾·{-2K¥BÆÈÔÕÚ³ò "m‘ˆÙXdc»"ÂÔìxúí½)'!PÔ¹˜êlë{SËÃÀ*)Q JÌÔ¥”’žç ‰-°A#ǦÎu´÷lô+FGlÍÂüò™3cãgj•Òðððää„ãx$d[Dt7•®wS™+ÓçŸ}öÇþð¯?7òZãË[vìE¤d¨Yóã8üZh9bc(ÎgkUÙ9ŽL¹n:åVjÖ|G¢Wñ …âÜÜl:Sç:*Ž”™ëoxk*Ûù£'ÿ[Çz`pmÅO<ñÄ;î½×qUDmí~þKƒƒkK¥ÒÄøåK—&æçæWö5&Vrêé[ŸÍ6?¶/¨•‹Å‚ë¦R)÷È‘ó•ò'>ñ©Ûn»qvváÊ•Ù+3³ ”\;4ÜÛ7pväèÈ©v~¹ÜßÞØPçí¹ró–k­Emx¹Õª§.Íåò¯7çÛ¤ç/ž]E”0ÊË/¿þcD:uîh_×ÚîûDgKg}}#0 3³peôâ)$Ú±yw>×Z­Uæ®,_Øÿäæ ;?ýk\ŸÉ¢@AEáØøX±X´l{»vl¹>\MÎ\<|jµVmÌ6­ØÔÓÕTÂ0/š[ˆ%YF`a~q®V<dzlØrG]m]—ç&gf'×lRˆ „Ü-Ѱ‘dµ•(4FKJ‘è8Žç9™ú´6†Ü„Q$.MŒ+G­ëßtàð+7\sûõ;÷¾üú ±?øÞO^šýÁÓÿ~Óî[-hÏSH©Íw<óòã]ík^?þü-׽͑‚YÄ‘fkÎcf ‹¤pH(B"!10 Ä`À?{¸R+K!‡¢ÈXkÁóR-]=}¤\0š\‰†È ^ä‚t<©ÕÿÚ~ý¹—žþ‡o|åïùHC¶‘íŠs‹YÁŠá4b!¤ë©\#…Ž"-J)k~qÿû&¦.nX·ñ—ß÷ËõõÙ¹ù…Ó#'öx-—iì^çÔ{ßS³À2 I°šî¡„t•ƒˆql¬µ„Ä‚®¹æ¦ã'\½u·@R$É¢MV" ¡RY‡‰´Ö %)´Ö+ñ ŒJÅâôÌ%­õÆõ[•’ˆÂZ›ìaD$$Fà(JCJ:(…ÖÚZ fŒ"cŒe €lq…ÁH (ÈXc„  )œÀ`ÙŒ– £µHÊŽãD‘ïy)­CŽ,J,UK„ ‰ ÊÁÂ¥KÊ•ÒúÁᾞ3#'•§PÇÖ$$`-X1`Z¥AZ´„¡ÕLLB ˜ÙXËLåR…P¦RnàG^ÊcF×UŽ#‚¹eHx-+‘jÌ F³]ªdºáÿ¤þزµ–1Aý1!1²Õ€a*%¢PR;Ž""!¤”ˆ$¤¢d”›¸i“*(&Pæþ·oýÎï~îÖ[o9xà_6n6ÆÄÕrqäüùÍÃ2™fü«¿ú«‘‘×u÷î½áó=ÔÒÒúØ£ßÛ~õK…òÈŸzò±‡·n½jìâX:•ºûíï:xàééi­u‡BªMW]‡`çæ¦:þòÂ?þNͯêr‘ãH(@TW‡Rpp) ­ýk7µuôç[Ú¬…0Ò™´›J9±Å°¦…Ôņ­ÝôRÑ¿<³\,U›š»îyÇ_yé‡û_yÁsôä½õ-w·uth­[[Úççã8®V+££cQ¡’$…E@wttvwß¿ï•gg.‡¡Ï RÊÑÑ‘Ïþ~ë·~ÿ¦›n"AçF.ž¿0V,Wrٺí;¶\ºtqanö¹ç~´T©¹JVƒx¶PÍ¥RíMõÍõ^[k­¢¿³Ñ‘tÝpÏ|±æGúàùÙ½{÷~æ®»¶oˆ¢¨©©ióU;V;I+k^k=99Y(¦§§gggkµÚêb°DÔÒÒÒÖÖÞÔÔ|öôÙï|ï?¿ô¥?¹5f~á™GÛÛ{„½ýëŸyò;{®Ùuñâd±P¨«ÏJå¹Ùùññ)AüЯÔ*‘Ž!ʔ뺃­UÊÄ\››çª¯ëÓ"%³éHsµR«ù!°•B&ƒ5Ï“Ì"ŽuÚ(´A—*µj¥\©TcGÚb©H¶]µuMÿ%°s`Í·¾ùð/½ÿƒ³s3ÿøõol^¿eÃz¶À–býÓBˆ™Mõ´Ö&;‡Ñ0‚4ˆ(+Õr¥Zæ•´W–Bº®çûµ„dºw÷WoÝÓÉK¥VÇ0>uîüøÙîöÞ½»nO§RÚ˜Ååkã‘‹§GÇN=pÿ'ºZºI‘¢R-_àžÎÁþî €Öˆ‚ðèÙƒû?Ÿñê¯Ùzc×–5)ÏkjÎ-Î.¾~l¿5ñ¦uÛ ¦š_ž[˜iÉ·µ·´£Dc5YaÑRëDÉÌ:ÖÒ30 W BÇÌ,A FÅ&í¦W¦ëÒÌ,%%$3>uaãаòRQÕ"ÿè™CAP›Ÿ¾vçV›ç÷ýð=÷ür&ÛôÊþWƒJ_÷@C]Óð†íÇNÐZ§ê3zÑnÞ0|Ç-·³å±‹c.wô@ßÐ`ïÖ8ŠŽj¡IŽSfLF}€@ˆB t„«\fÐZÛ•¶ÛOã•ã­Û06>º~`âJ^1 ܰuÐXHBDqUÈg„ˆu4»8sùòD¦®n`Íë¤ôêM–V@ÆÖ‚µÉÕOH)…""¬”²ÖJ!W:«ÌÉìŒ1Ìl€‰QC`ÍŽÈl•RÉ©¡”Z)0Æj¥¤T*&y ¥×ƒ€A5"‘ŽKÅÂ¥‹£Òq6lØëØD†Q†/¼ôãëvßâ(p3£+X()5Å`Ykm­e2hIKí9^Æ ˜@p.›Y^,!P›tÚÑÚ‹¥ýNB£]•ü%îŸ>üÀÿOp+¾R–°, ²ÀF'NP޳’èŠhjY”¤„@d@LˆD´2q@†‡¿õíßý½?öñüé—¾Nç˜#¶ÆýÚ‡þæ·~çw~»££ƒH,,,Ôjµ‰‰‰O~ò7ÙÂg>ó;¼4µpôÀ aP€Þž¾/~ñÿ:pðàáC‡Ïœ>„Á Þvyqhxgßà–±ó§Ê•e\;;߈#%(›ï Â( CŒ%€nº}óƩ٥9ÂsóW^?}̬ܸi󵮾|?ö<•N9Ù\:åÊbÅ7ËK±c ®.E„žK·ßñŽo¼ü Ϭ]»î–Ûî~ô‰§[𛇇7‰çŸî­o¹»6ŽÉF„l FÚñ}òLÄÃ[†óÑúuƒ>øÇŸþôg|?øÊß|íïþæO¥Ö€ý9gÈŠŒ 9›‰Ñ 'ðÑÊ R«]Ç}Ë­÷ ôÍÌMž¿tØnÛ´»)Û*h)áÙóǧ®Œ­éºã†·K¡„”Ö²ï×r¹¦ï?õ-môGøL}:ƒBF±äÔ‘Œ—Y7¸Á‘)f°Ö°ÆË S?xê"zëïîi_£µå*…òK¯ÿ8ÐÕ­kwu´õ DBc@ÌÍO+ÏX3 ÇÓ€B(ä"[) f ÄЄÈÀŽ+ãȉÃH"iA ÆËóã&Ïe2^ù÷Þþ>ÇQQìûAôúá—Ö nxê¹Ç6oÞ‘x^î{û{Ç''Œ5»¶_ÇLó‹3ùÆÖuÆÄ·Üô¶ñK£cã#gFN"Àµ×ÞôÆÁ—]W"*Ò6:Ö&Ö~ÀHB ’„HÊ!±@„$s 7^{ÇÇ_™˜¼È ½]ýë7ö­¯ó³õ Ãë6«Å‹Sçfffµ±½}ý½ƒ®› !„ v=F1Ú“ÈhÊm[®Îesÿþ½{Ç[Þ³¶#[ke †(“4õ,p©R½tÊ꨽­í†Ýׯ:Ž­>qúDµZíë\{Þ;Ã06š£P›8&éJÂDé*¬vÒ¤ìºnâ4×Ú ¢±'s¢ETùlK&U?3?ÕÖÖéW$>€j­²¸4§”êlíRR1ƒECBˆ8ÎŽžª~[kû¶­; %X`c1Ñë%5ÀjÍÖXfI JÇAÄXk`$R’Ž#!$3%µð u¨Z-I¡<×KXw I‚´R¨¤‰D"aúDÉMË“õ²5¿š-X¶ZÇIE¸•ˆ˜‘Œá¤C*Ù¢å$Ü:Žt”"" ”’¤„$(•Î pb—Hä+†Ìg_xå÷>û…wÜûö¿ø‹/+é2ÇÌÆXmµÞ¶}K}î“O>õ“™Ë3{ö\Öº«««R)3úuëó]'Oœ‹ƒ¥Éñ‹Ìœonºñ¦ëwí¾úàCuõù‘‘sZÇÖZÇZÊxÏuw½þÊK•’©–\ ˜Î¥ÐSXFö}”Ø<ÐïŽÐìr[:ÝÖ7}ó¥å£§ž8zÇî[Ön c-…PJ9® ¤ß÷ÁÆK…ÚÂr¹ÄÆØ›÷Håž>q`júŸo»ýÞíWïêèh¢pzj" CG}½ÍçF˱&Ö „>uú¸©5CAd½´dæ¡Û³ÙìéSGŒ‰“£µÙ·ï•ßøäÇÿï¿úÛžîî†\6N¥Ò)c¬ëH"1´asGkÇ‘/MNLºR67ek‘É:„H¥jð‰I7•¹ãηýÂ/¼÷Úë®ojÌ`­Vû£?ú£÷¼ç=‹‹‹=öØþýûkµÚC=´°°ðû¿ÿûï}ï{ÛÛÛ§¦¦˜¹µµµT*–Ë¥0 -[km¾)?5}9Cmð¿ö÷W_}u†Õjåž{î9pðð#|#Sß°éª]_}:[Ÿ½zçîGŸxÚÄ:SWG‘’"•J××ggg§kµjõ㺠IDATG©TÊ÷kA€™LF›Ø­Òîºá3£c½Dq¹ÚÅôü³ÏÝûžûµ6Ê!µŽà82¾¡±Œ„Ê‘–5€5±­Uª~­FÁ•Ùé”ç LMMæsM--/ýÎ{ïyñùþë»ß½ðê«÷^·Ûhþ¹BÈ+3²•·22ðŠÝ–‘PÈ_xׯeRõcã#åjéê­×·6¶“ õM×nH˜I€—ç&Nœ9Ôß»îöÞ‰€®ãk˜YÖe²ýø?…T÷ßý€rT¥V¹41 ÄÛ6í¤,ƒeÍL:†#§öýäåÜqÃ;7¯½ÚùºR«œ:øÊâô­×ÝÕÛ½&ô£•½ 0;7ÙÖÖS—J1°ŠP‘ŒãP –²õ“WÆI¢@‹H ”$HÄHG‘ráÊÂìÌüôìÒå{n»_9êÂäÈwŸùV6“«ÖÊRˆ¡¡Í£cgûûç—çs¡1ŽëôõkµŽãÈæ›ó¿t߇Œe"WI5´~ÓÀš!¶ÂºŽ32z²R-v¶öF&+bC2¦X(%„ I·“ˆQr¼" )©³£ýž–wYm¢ÉéKgFOýø¥Ç×t®ÜÐ’oïèÏ7å]ʰ=aäðÉ×*5¿.S×ÑÚ³yã&©DêÎ`‘! å€uC¿õ±ÏþÓÃèÄ»o»·.ŽƒFƒµš<ÏAr»»oK§’`µ E¦±¾£T.ÏÎÌdÒy°`‘pTRKh•e ([DVÒ•Jhk,X" A$Ió+ïB´€˜öRu݃ÚÄó‹3…âREJÊÖæ¶Á5kqÕíÆÌ0>5váÒ9IróÆmÙL#ƒIÆœ†q¼H+sÏØ ‘’„(P’ VR"Z°Òñ´‰A#b¡¸E¡Ö±µÐkr\7 Š­’вã$C.PR*!)6‘£Ü0®Ir­Ö‚2²:Š‚óF.ÏNG&Z?¸iýÚͱÖ”úlÀ¢µAXĈÖ !À3/üðΛîÁ‚…ç*O¹ÖšÀWŠ:ÚT¦>¨ÖšäŸm™£(BÍ‚ÈM,,s…®ç€E@‰?ø§º^M…L ùÊä8&‰@#¥°ÖJ™tÏ4°´`]W9Ž$„à:B%SDA®ZqL$/ÍÄ¢£„ É5eÿþ÷½çƒ·ÜrË?ýó×”t s ÆcÂX×jq*U?röÜÜìlÒ¦kiiýЇ~õ3Ÿùô 7ÜxÏ=o{àý¿ò¶·¿kãðú/}áqrr².“±FêSŸ¬¯khë\òäÄô…U«ë¨›†®~åäþCqЊÏ‘N]]éò<¯X9„ÓX_—oº|â¬à+%¨VQ½nÃXxñ‰c_ºéŽ»wn¹­®Î­ÕBh­]X*O]ž!‹¢AX;…áèÈÑ—^xbÃÆuÙºúÖ–ÆB±8zþ¼ÓÖÞ⸙ócㅥ呑ãù|»5Ì Xˆ{z»ºzN:491žà|‡‡·:tàý¿ô¾ûî»ÿî·½½³³svn~||jdôB±ŽÉq·mß½mÓúöHåÚ†Û.NLlÈ7ÿöïþþm·Ýé¥Üé©ÉüÚ?Üwß}ëÖ­]XXxôÑG¿ò•¯ìÙ³gtt´··7il466uu¯932vþÂ%¥Dk[s©¼F!3D{zzðÊÌ´a"€J­ÜÝÕAD¥R©»§ßóR¥âr¥XèloýÏÿæé‘KÓÓ“ÒQ-mm¡ÖµZ”J¹=ç/œ1ÆÌ/Ì ”Òq”1fu-Öm»úÉãÇÃÀ:ÕêúîÞ3§GjË…tcjk˜Qk“ôq£X».Z£üj`BÕ‚(ª£gf¦5ÇM¹¦r¥TX.xŽ;1v1—ÍÖ¥ÒŽë|êSŸüþ£i­ÿúï¾Þ×ÓÓÚÒb-üܼ<1bÁjˆƒ% dš`Ùˆw½åýŽã ô ­ëÛè9@NºXÌ,GUüòþC/„¾¿së m­ÆDB*z³ Ã|îÒ™g}à¾jmFÆŽi¯îjïcƒ–%˜tÍÏÏ:ñê{Þö+Ý­}Æšj¹|bôÈáSûú{‡®ÛqKsc«h,2Z„„K¥Ù®î ¤£\GƒÌ,¥`T8>}!“ÎtuvKÇA€ÈÄOüä{—g'f¦Ï^8ñÊ¡ç—J ±‰÷츱–Š¥E©d6›u¥Ó’okmí4:®¯Ë65¶è8(‹åJ‰ÙFQÅikRn½Ö±ÃȈlŒffÇU$HIY­VÏ_=77¯c œd8òRímç.Nî?z:&çW?òñ‡>ÿÐàÚuûö½úàƒòøOÄq|âÄ©l®áòåËO>ñä}÷Ý—J¥J¥Ò½÷¾£®®î»ßýÞàÚuù|‹_«@¦.ÝÚÚêûÕjµš\jûúúK¥R¥Z†‘‘³ ¿ýÛ¿355=´aÃo~ñ…çÚ»új•Ò/¼ï]›†·8tüÙgžloí¼jÛÕAÌÍΕKÅ”—:þŒµFJ·!—_Y\$êëëGim¥#N]¼øÄ‰C‡ç߸2yrzrß× ¥âñãÇ‚(¶–-[ÏKB²ª ]*•ŠÅe¿Zž˜œ AAÕ¿½­­¹©1òW9Jfêêê2™ÆÆÆ¥å±cǃ 9¿ûêmË¥Ò³/¼”¬ùµ}›Zòl9ɶKQV<ÇH@ôRuž«tl$sÂq”bfD:~úÐôÜÔ®-×e2YBb†L:«µNúÝ„H,}ù¶½oŸºP«U7¬ÛÜÙ×9e9Öq2}@Fc"k¹±±ù]w}Ð2¡üÌËs“ƒÞ~Ûûêš2&`M1²46L¹NÏ[ER*B"¢”dÙ£]×3ZÇFWýÚÄÔØ©‘ãAT€Kc5¿R*£(Ö&jÊ53‚øÏ¾ú¤61þ\h3ÿ|Ä3Âj´z:•vÝT:•I¥ÒÙÆúl.Ÿoëhéhmîhllb²¡ R*cÙî½æ¦åÊb¢è;}öÄÿþÚ—‡Ön¹vÛR))eB¾2FÆ¡I, (Áq¥$‘˜ÀD"ö J” .¹›7^µux33Áþƒ/~åïþüSýL>Ÿ'¢\®Þõ¼ÎîÎÍ·ž;ó“—ž|Û÷H騨(å°ef)ŒÕ¤‡òÆën]Xšiÿso¹õí(ÒJ HÖZ$æ8檲”è¥=†(ŽM&S§u¼¼<×ØÐ¤”kÌŠ7H°µ€÷¹”–ÙÚ˜ˆ'y0̼¸8wyn*Šb@¬K§ëë×õyézÂdX…‰Þ˜™‰tD/íÆ«ë‡ï¿çý$ÈË–A°fN¢5¥”š-k´Õ&B(¥PÈäF‚ ‰&E¬V+Ë…¥R¹”­¯Ó:Ngêã8nÉ·¥Rik­µIJ³±Ö(!„çik:¬@×üЋB"¢5,%jŽ6ó‹³'OÓ±nhÈ_µy·’®ÒÄ–­–$›[ò…åeªaâðA"×q##S €Cë¶D:|õàs÷¼åÝ–9|cX92SïŠeÍ\—õªåÉ:.*• ‚0Ž50j )ØF‚‰…Mz;„`ß®Nz~¾ê6€ÿÏ€jµZ䤥jc‘˜%\wå‚K$¤ÉQé8ŽëHú©ÔI’x“§¤MüÙÏ~~|júù‡ÿµ¥¹…9f0Ö²Ö&Œ¢JÅñÅW>ûûŸ5º:;ˆÐ$&ædïÄqÌ 'Oÿò—ÇR^æ¿þÙürë7ÿííÚµsÛUÛüÜç>”Ï·7å;Îüê©“¯®Ýܼõêk÷^¬-Yœ¿ª­£pùŠÍÕ±RN}C‹§b]+- ‰“pž•a*{™ºÎm›ZúOžÝî©'^zþ±Ç»åÖ»7^­c´¬‰9“ö¢8Öa`À‚AKRlÙºGëøùçž’B-õôÕeR·ßöÖãÇŽ55å[ÛZŸ8ÑÞÖQŸÎÖü€Yy™º4m!ÄÈø—ÆGû†²-Ímû^}þÊ•Ë ó{÷ÞØÖÖúÔS?üæ7þõå—ž¿ñ†›[Úº—¬NCCöäÉ#Þx}Ûöð‹ïÚpìè‘/ÿù—ßxíµB©xço½åÖÛ·oÛêyÞ³Ï>/ã8¾ë®»zè¡ü㕪ìØ±¾5ý7ÞtKa¹à8J븧§'›Í./Ï[fct"úFÏsãX'¾…á-[þé¾öÔÓOîÁ¿óïþÅ—¿h­ilnž›¾TŸÍ?ûüËÿýŸ=}êcûͦ¦¦åBÁj~¹ê8Žë¦â8ªVËQ! Rk]*U¼”ë¹ibÛ†áW÷½Ìl A €Ëccç.\XõóACCcWW7o¿jGC®Q’ްŘ ýJ¹â:êÒä´ëÊút]¬c7•ÉÖ×ynŠ)–+ Ù††?ùÃ?<{vdßþ×Μý»¯ãÎ[nüÙ#ŸÙÒÊhœW.™D–Q0BÇÒ2#k×K§2ž_ñ“<ß0ŒË•ÂëG_îë^{˵w F'û‹¬ql„ÆX¸´¼8¿0;Ð78лÑZ=39ÇŒÀÉøœml9fŒ"ÿÊÌô•…©Zµ4Ô¿uÇÆ½Æj"0! ‰7Í(•t\Ç¿\Y,,¦3©D¡u,…Ri­Ñå+3ÅÒb±°°TXŸ[Xœ#¢´—É岆6µ¶´®]·~ãºáÖֶijaØÄF[/ åJ9ß”¢ÈZv”ª–+¥ZE!Î/,”+åJ¥¼\*ÆQD€AàOL¿~ð•j­špXZò­í-]}½k{»{{º{;Z;]Ïu\ÕÞÞyË ·üè…§ÿæëvÓµ·g2uùæÞ®¾z¯N§ŒŽŒµŒÀB&´F@H$%%‚h-26+ÕB*qûoíéXówÿò×·Þtçµ;¯K¥Óiå áú¡öæÖÇžþþÖM[·ïØÖ"k, Yk$1ÙQŽ|÷½¿ø§ù‡7^wc{{›$ÄÒ0€ÑÅ&ŽŒe šF/­2uN˜8Œëëê¢ Òq6—‰Â˜­5Æ"0º’)eúår9Œƒ Ž¢8Šã8iÒ¶µµmÚp•«<\Õî33!X „ È–ˆ–Ÿ|£R«Þ|ÝÙú%cHË„¨A" bËB µ€Æ«µÑŒ853™`Z­µQi'Ðmã–Æ¶|Cóšî°â4ç$Ü ¢#¤a¶F;Ê3¬‘P Y*]×s='6Ú®6±£\`b¡@˜¼Ñ(Òxíµ{·oÛÀã6n* ‹ËEFùÿü¿ýë¿xòÉÇææfÛÚÚ„Mm¾_¶VŸ=s¦&ÎmÛ¶#ÝØiÌ_Yœ{#[M$DÔȆÚ/”._ö)b×dR ›UÊKgÒÁR·¬[·yÝà3/îÿÎSæ@µnØÄämÂ8" ¹J¹R­V­)1[—½ýö·xãåÇÿö¦M;Ö®kÊåvîÚÝÐ}íµ}ù¦Æu/^,W}DÐqú”É7–Ê¿Vžœ[»vƒ”nGù|ËíwÞ{æô‰±±‘^x®»»û7>ùéÇžxìì™Sóßš›[o¹õ®lCS¶®î…ì¹ÞW¿úµ+WfžþÙÏ?ø`KKk{g×Î=7ô­YÇQd³õAÕ‚(åyßýÞ£mm-RÉÉÉé£Çýá|VÜ0¼%å¹R:õMÆk™‘ ‘#’ëzµZ­±±aayyûöí;w]ó§ú¥áá­GÞ¼mçòâ‡áÁÃÇÆÎŸ{ùÅg¥’Dè9XËl‹Å@BD³LE(HHieƒB€¢«!Û›kÌ9©ãó—~êë±Ìˆ¸¼¼´¼¼„ˆ'Ožø“äó™T’”ol°ÌË¥Bë±ø’îímÖ¹0E 6nÍfr_ÿú?½û¾ûÏ;·ïµ×.Ï\ùÙ!Z`‚ <‘´¬‚6F?÷Ê2í¹AèÈiòÍJI? _;ðr¹R¾÷­÷)áÆq¨Rž_öud¢(*,W…DÈlul¬¤J­ØÚÜÞÞ¼¦V«Id!…Ѭµ‘‰gŽœ|½§£ãÀÖtª.‘JAŽç0ƒçITP¬,ÕªÕñ‰s‹KKK¥ùw¾í½R B4lÍrañÕ7^¾4y~dôt¡¸„>8Ž{ë w½å¶ÿÃÙ™‡ÙYUé~íéÎ|ꜚ+U•ÊP©Ìd„„A@@Dh[m½­}»[Û¾¶¨ÝN¨›nµ‡k·­­-"¨€€B€@†2BÈôóŸ,]´äæ-·&÷=É[µrÍDnò¹íOßrÓœq¬aC¨&À(2Â7­Ûøâ®mãã£MM- 1tš1Ê ÃZ®=¥´Tv©0©³xž464;wz:?µ£©DÝ’îå‚ B‰0„ ThBñèÂä%D¤D"j` Âú’‚”¢'§&¼ùz*™ºrõ5ñh<¬‹ˆ5[˜AÁ6wÊ~˜ ¥"7Ãm[kûðèðÈh¿Rš1Ö5{žeJ£ÒšQ`ŒI)…!” k¡¾¬à”rÆ:,‰ˆ!#͆Ö:[—•Z^8÷Æ×PëY­él¦µiu6•Õ$LÅ ŒqJEJ ñ¥´ K*©¥bÃHxÊå`h¢J`ᥗšg!œºUÏsü…ó¯ˆØÉ—v=}Ë-ï78S ÓˆÅâÓ3SJi¢™çú #"ð%Õ B=Î)¥€ ‚„ª©f”…d"¼d"Ö:¤‡†  ß̆¨ ¡H„ÁMQCªjÁ…aÔt1¦iÔ¸‰ðŽà&äÁ†——¡‘ÏýÕWç|ó™ºô’9s^ýÀmížï—ÊUÏUž++çìÙ^×u†G‡gwÚRJBˆa¾ïk¥Òé´T*ÜÖl¹îú•«Ö=þÄoö½¾{zj4ŠsŠÉDÜ­ºÙ¬PÒ—RiXåèRJ@´m#1‡F7ãÉ”‰¨DÚîœG¤Ï<Ç’ÞØÄО#ûûNdëÖó¯ž8×J®6­”Í_ÝÿêäÌäu7¿?~(ßó}×¶­y :¡Z+?ŠgVÇÜ•«+ì)W*­­³;:;–/]Œ Ó°#Ñb©—‹zA•Ö8•›9>»u6:11“J&”B×õK…r¶ ±§gÁüäÇ÷ÜsoþRÚð;m!„kM/mˆõ¾7_´¿qÍMÜ÷ʨ ”ëùý§Ï ^¸êŠÍB}§û)£¦iqÆ2MiÆ™V>e\ÁL®ÈPN)®£oßrjP¦„?<Þ_uD<Å(› ¤ìž½¤.Ug0ÃŒšˆšq¡™è?ròà±SoÚVäÖïX±lÁ…0D_ÿ¹ß¼ðÄÁ#oœ8yT½ ðI.{§ T)|íûþ³kø]Û4„™Édfwαm€˜¦! caÏ¢¦–f$Áy6“7w7ŒD4*Q'â1¥•ëy†aÚ± VRÅë"¡omAýBH9u«^4u}wbblûöçûÍ#“ã³;º®ZuõªUën~Ïm(€ö<÷¡Gÿý¯¾ü™{ïþØ–M[C8A ŒSNsSþèv/˜W.VûÕc³Ú:uPS`†Td¤|ùÒ•+׬|fÛ3ÿçÇßýÃ{>ÞiTRBZ[V¯Y}ðÈžukÖs&(PÂç„Q ˆ’Ûð{úèO>ÿ @8aWœ0MµR’&¥D3Zî(gÂàX*NŸ=ÓÒØ:^jE¤B(Á BÔ;>5 •fŒAÁ.KWÂi%‚A õõ^<ˆÖ}ðî{ýjà¹@x5Óˆ(µD¥ a„ÿ"]ÅñdíÒ‰&ܪˆ@cÐÖ2‹R¦Q+T§Îk̶dá”P_”€”’R ˆRœ Y«Ù€h@!¨àŒ¢•bœ*@$úÏŽŒ 9ÕJ2‘¹÷£L¸n5U—Ï&’iS˜‚ _ú¾r nJ­ n0ÁTUi R œ0¡‘rP2!¢AÑŒшaÓõª^%ðý€2ªµìh›MF~ýô/®ßxs2‘AŸ¹n•SF4ÑLSdD öÁ“.A¦ˆd”¯ª¹Æ#¡M˜€¢€‡aÈù¥ý륛’Z.÷å¦Ð´Úp‰0kÅhøÇá–Z›‰m[a=„pÉô’õ¢fÕ÷<ÿÏ>ó¹¡Ï~æ3«W®p&§2‘øžSG·:n±âz®ôß©T˕꙳爒ÒqªZ£RȹRz¾çù~¹\ j÷üÅåbá¹g ‚€°-+•J†¹üŠ+d0ŠJ]†ŒCHvŽØV8ý&@€B"™šÊ+†W¹–mhFýÀ·ì¨Ý˜¶lѺjéª[n:~dÿßm~K²Qôõc¨Pj¾â͉¦'O«ÏÔ/Ù° gv]*[ŸIy¾ïy²X®ŒŒæff A¤ëêW®Úðö‘}¥b¡»{¾ëù–erNú/ö À™ïÎŒOΟ¿€2£Rqß <×É”a’ c¼¾¡­±¹ãÌÉ·≻w¼¸eËõ?ñkJëT2iY¡ü…^xìñ'.ô}ûÈÁd2½pñ² zššš ùü™³g'ÆsIÏ¢¥ /K¥ǾճpI˜jš¦e¶mTgÅò¥žë‹Eß—”‚à<4;Å¢ÉJ¥R*ç S&(¥•bù•—w{Uwöœî½/¿X*LoÝú§Çß>üį~º`ÁÂ{ïýƦ¦o~ý+år©\.?qxvGO±4 €Œqð|Ï›ÊMFãѺtÆu+•JHpðÐÞ ðˆR`?=qxUã¬'{Oâûï¼óñÇ׳6CÚ±cLJ?üá±±±®ÎΫ׬í»xaÉ‚ÅRåTï¹e E̘¶eš…b9•ILŒåZgw†F­6oºöÏ?ýéûï¿ÿwU£”"ѵŸ ”:xôµŠ[Þ¼îÆ(÷ƒ@û€ìkO*žºråf˰QøV@#“ù¶¶†T:]*–cZ+HxŽ”2[×EJ…ñþá %'‹$„àu6ÕÔÖÔeÁaBJ ƒj…Œ2ËâÇNüÞ¿Ý3wñÇ?ô§ {z„iŒï;øÚ®×^ô|.Y¢ðwPÿí¯šú?2:::6BùÉÝo~û$¼Ë,„ˆÇâW¬Xuçûîlljmkmñ<±˜ˆF8g…Bñ’ Ð÷ƒG"QKª Åãs?ùÉ?ÿàïÝýòŽG}ø‘Çzìé_´µÌÚxõ5×onkëø“?þì{¶¾÷¹íÏ(­¶lyO4b3`á¿eË?ø¡%K—mÚp /c÷5e”sfãö›Þ7=“uïÇ­^µfCû¬NÁéÜι££#/¿¶óšõ[ ÃdœrÆP!PBY¹tÕö—ž?pèÀê+V)ª)… ‰&ˆÂBj:*­}_‚;NéÊ5k”dZj¤4™ŠWÊN¹\¦µ qØxI¯_Ë>4”ÂK§pt&‰&ƒ#Cú϶4·^»á&Š$peX¿µVˆ¡+<Ìv AX–z­´Va Èu=?lJ”R*ÌÔÊ&²¤gÙÀ`ÿèØpKC›‚QS!.Û„)RJÎ8Êg‚8¾ `h©íUÊ•ÜÔÄÈØˆ”A{ÛìW¬ŽD"ž'‘­€óE!DSKëôôTàû©dŠP4yDË@Æ¡Ò ]BÒðáL0È*2`+aXŒ -UŠÕ’¯bXsêl*{Æ÷¾ôêo¯ßpG:‘r½ ±©q*7®“ axʳ%R`5¤ŒQ¤T¢Oòež É¿BrTxY$滑]þÊdêgJ\„ÉT¬¶Ç¥Ô4ç‚sjÛ&g¡UBP­kJ¨K¨[‚ˆßÿ×íØñÊâE ?ÿ¹ÿå—Ê£§Ï5f²§NžÎ—”FÏ“ŽS­V=§êŽŒÀl}C,›šR¡2BH}}ª\q|Ï—R _ì?¯®Xµ(å@ç"j[ZËb©àºU­\§’Τ(!©TêØ±£ÑXL"U¥Bu*7yhÿëÑX,?úì¦k®]ºlÙ®/´··ÿðG?©Tœo}ëþ|~úš×ÏÌLŸ9s¦Z­ÒÎL%•¯«ÄJaI,)r¯í9rÛ­·Î;DzŒ‰ëoøÆý÷?Ù{²¬÷¿ÿý?üáz‰øÝï~÷‹_üb ƒ5+W]µjÕ¹ÞsM™†é|þ\__{Û¬‰É©úŒˆ¢eÜɸ0§s¥üdÞ²,‹s °åºë¾ùÍoêwY(. J”Ö޾V(ÎlYË%H5Ñ…bñèñ˯I%²µ”cÜ­Vc±D }­!â®ç'’V±P¤œÅ“љ陪#-aaNOO¾yô aXÙtC6Fc¦UÚ·m;0Á”TŒQ!˜‚@ÆHO÷Ò}ðS¿úÍÃ}ƒg¦ËÓÛwþöô™RBlpHÙEýÿU1Ö³`ÑìŽ.ß&&Ç‹¥¼S©TœJ©\ªenÖ†ƒ5à^È™|~ç®—vïÞ™ÍfMÓŠÅbá뤒Ɇ†† ë¯Y¿~ƒeÚ§‰Db±˜/ßS±X$J¤R©÷ß~ׯ ›~ùËGýåÃ#=ú“Gÿy÷üž­×߸iý–Ïþùç'&GûzOÇÉùóæ aP Ýó´··\º`" €0… !4Tø3FÏdêî¸ý*Õâk{^Ýw`ÏÊ«º:çlܰyhpð¥Ï}à}w…fMPkT*”üØ=ŸøæßuéÂE¦i(DF3¢@«0c¨æhC©pv×|Á¨HÏõA3§ìH¥8„RP!Ú_‡I:Z×€DRJŠˆ!¯Kœ˜œÈfë7¬ÛBihJ;×){a£B)Q )e¡Û4 !®[ «~èØ&@µ­tmÙL9 Á`žô­ˆ!ˆh›Õ~þbo¡4‹Ç9eaxCXÔešROœR×uò3㹩œ']B‰F4mnj›;¯[k Y„òhÔð<7$mj$ 5ÚXß4“Ÿ¾ÐÖÒ¡tÀ¹:cýÀe „Á @  :ˆŠ¨eØ «¾ëW}ß ( B´ªÁ…BØ O¥²×߸ûgnÜò~›ÙÅé2J@ „a `„PIY$Ñ”„ç†i¥€ ^N= ‹bh“RD‡º˜K{½ÚMðÝšd2ipæ.¢æŒQRƒl !8¯‘bmò@»Dèç¤(ÄÑÑÑþö{¦i~ï;ßᄌ÷õ»ùB¤>rfªhÚf¹ìº®[u‚B±ÚÓ³bÆ­ë®Úøú/k}ù·A¥Ô‘#oJ¹8råº ½çά\½ŽR ˆ$™HÄ¢¶ïi jÊ)—KÕJÅŽÚ¶mE£ñááÃuÙú™B¡P¬”*î‹/¼àûþ⥫Þ<°'‰Þ÷…û†ÇJˆzN×¼L6sþÂùW_ÞÕÚ:kÉ’e»wï®K7–+§R 5hðƒªiR§\¨”Ó®[®Ïfl{þ¹í/lŸÉçàg?ûÙwÞùî&Ëåòƒ>øÍo}Ë6Ìo¼~ñ‚“S¹t2È`xtdvGGnz&S—ÚqÛ² Cx®/}Gah`¤®±>¡@ôì®®ººL.7ù®O> Edš ìkW¹Z¼nÝÍ”ÑNÁO}»\*^½æ:Ã0)¥2Ð\X¨µmG§óSQ;Æ™9>:É%#™lr*73™«Z–#bpøâxn$j'Î]f˜D$¶e`"’6 A)1„@Ã` µÂ—^~Öu«!L#œ:w¬Pœyè?T—ö¿3üÄ ñŸû¼w„p¤æ¸ª‰2™l[k{÷¼W,_¹°gq&Uçz¾ÔðÄ8§Ì œ¦lËÄäÄ‘c‡‡‡†gf¦MÓ”JÁTœs%}jDcÑ„Æ ¤» Ô¶çÌ2 Óµ8/Z»G_ê)•FBdüÕç¿R);ø‘{sã¥áº©Áa&¸D%µvªŽŽãºž_){®ãq&Nž<ÒÔÐHÞ9Ý\×;sæôâS#ƒƒÏ<·M)ù«ÿcgKztðB©/Ì\Ï“R»žË¸pÝ*þnœ:gšJ÷™DÂ#ç(’ñ›ç,£C?ôá?¸ëî|¡¤5 `*‹ØfnªX­Vƒ@¡’\܈E®\·ùà×~ùˇ?üáÏîšóƯ8gVk¦+5 „*¥´ªmÁÃgL ö馦ö¶æÙýƒg ÑA06<¶çÕ]Ó3Óˆøë_ÿZ#«ojO&ãu©TˆD¢×_·±µ¹å†­[ÿé¾·{ç }½g6]»5™L&ia)åÈð`n*‹'Mƒ#Q…B!•NÌÌLOåó3…2tfºNÆÝª¬KÇŠ¥">:9Y,V«Õ ïܹûÞH$’[ õýëß°¢©‰éþµk¯Ú½c{>_|ø¡ÿ ”\³ñÚcG—KEß/OM‡çœ †ñ-ZK¥`&?Ã(FŸ{þÙƒ‡yž[¶lyøá‡¯ æóù[o½uïÞ½ñHì¾Ï~¶¹¥ytx¨X²|î]ìšÝY(ëÒuŒ²h,fa¦!¬™)G3óº[]Ç)ç ±x„s^__¿jÕÊ^xá]ÃQ„p@ô¾Ã;¼ ºyÝ­¼¦ÿÒš· {ñÊ•JùZKÔÌ0,%= H!¥çIÓ²ª®›LÇ¥”UÇÊOIßsd9n×-[¸R£¶cQÁ Ïsc‘(!šPbE„i ­‘<y¿°ûÙ‹½«W® |÷tß™ƒ‡öËE$´$þ·çŸ”ÐD"™®«Ï¤ëÚÚÚ²ÙúÅ=‹cñD&S/¸H§RÕª;:1rêÔ±ƒ‡~óÀÔÌ¢fŒ§“u±D¼±¾©¹¡uvûªh4Æ &|8nuùâå›7l>Ù{jdt5Ú–FJLLŽõž?çTmÏývÛsµˆÔúúÛ¶]×Íçóžç^.ÌÐÞÞùßù?ñh<:;zÓ{n9qò¸ëº®[Ýþâs»v½Ø=¿çî»>´aݦááážî„Ç©>÷ü¶®Í¤3§”ÍÖ !=ÏBA ”‚æáT4 "†¹pÑâ+WUçÕW_-• ¯ìyyÓ†ëšHÊ N}ÔDk¼íæ;þñûÿìŽm·Üp+g©ÒÁ 4Ô7zA œÉ ‚Ò€Θe1·ê†Íã‘ÁÁDÏ(‹Æ"¦iQê;ŽÃ9³L‹0Mnìr¬Äåj+ÂfŽüüÑÇŸ{~GGGûßüÍ—¾ÿߟcFAiàTÚõ§êj]õ}Yu§T«Õ“§ä¦Æ_Û»kþ¼žK €¨±\.çrSCýçߨ÷F<ûÑ÷¿·jåÒÂÔ$°?P¾ëJ)µÂ°Úa*Ï»žZëð¿,Ë&¥¨‰e@$nX&ئi ËäѨiÜ÷}­¡¡>­QiÔœSpóÍ7õ?tüôD˜Ñh¼1+"¶tÜ¥éºý‡ö D"± 8c©æ†r¡êûÔ’ ’@|OS*-Ë2…¹iÓÖg·=ñôÓݸõÖ¶?#•šÌ¢eGü€ (Ôz¯kBƤ FF/KÓMm mç/œô}¯}þÜááþþÁÞ ðP×ìÞÛ·o»á†Ûñyžï#âŠ+–®»ê*ÎØøÄÄGÿèǽýÔ“¿þÕ£?ß½`nwO۬Α‘áÎ9óÞ~óÀ•Woö ’á‘ñöŽŽJÕŸœ*¸n`jš/”š›[LËŽ'S{ö¼‘i¨Ÿ÷«r*7ùÛ§¥ã [wíÚ±råÊ={_›œñçÌë¾öÚ­{_}ù#þà™3§“ɤãx33Ó¨¤”îå“S-i­-ÓÒš ’Zk%¥µÚçy^øQ\¿~ý•W^ùƒü ©©éÆo€ŽŽŽð=sæÌþýû`ÓÒåYªt$O%|Êp>›S( nŒOæbv„sÊ™Á¹Á&-ƒ‘¡™DÒ<öb]C碆õx÷!< €û¿HµiÍÍŒ±ÚŒÈ»ÚçkPÊÃýŽ”¾à†ëW‡.*Ô‚œ1;Ÿ Ξ®”JÙ!Œu¶v^*S—µ#Q©‚¦¶ºâtYÛ0¨eÚ¾ (ãÜ3"”G†Þ:zàk÷}û艷žyeûñSG5JDÓ¶ír¹ôÿjþþ_–Y¶tùõ›o\¹beCcSÅq„R*xêÌ©ã'Þî;ß;0Ð_©” ©=DlË>¬÷òÃÁ¶"™ºlG{g&•ñƒQ‚ÙÑèâž%ÍM4 ¨'ŒPB;sîd¡\Ÿœ0Mƒ8}úÔÈØpø÷ÚÑåk®lnjN$R©B!ÿ™O¶½½ ò›oº¥½½ýÙmÏî}ý•ééé@ÇO=þµ£í³:¯^·aÓ5×n¸j}ssóéÓ§}ôáuk×ç¦&…`”PÊ@+@@­tM¿.* D#Ö0.Œ±Èõ×ßp¾ïì#=rö\ïUW®[¼h9€¢„Õ[‰þÔýù×øë¦lÃÚWkD莌rÆBh&“ÕwîÜ–møH$K&S«W_‹GË¥ÊL¡’ˆÅV®\ÓÑ9{×ÎGß>rä­C‰DÚun¼ýÀ¾WW¬^G%”h_iо”Ëe˰ ÓdLTÝ€Pž/–{/\¬Jt]948ðø/~:1>þ¡{î9}ê¢þâ—¾üéOº«û*Æ@*5¿»çñ_=‚€•rùС}Œ…qô:”"‡§§âœj‘)•mΚÍÎÏd뇇C„ïÞ½{÷îÝûî´ÑçŸ~ëÖ­„µk×^sÍ5;vìØ¶oOß¹³«z.\w•i™‘ |Ÿ–™ôü©üt¡Xˆ%ÒmM)Ó°La¦©•žÎ•L“ LŒN¶wYe§töìÙßižpÏ¡íõ†Õ[Q 5xåãNµ‹&¡¨´%•>øöP—nŒXѦæZ)–ãéìì9­ù©ÒL®G‘RКsV­–ÓuY/çrã IDATék!x,¥”ÓàœÊ䌸^ÕwÑüðÑ©dúó_ûóÁ‹Q…¾ïú¾{9.8ô>™¦N¥“‰TW×ÜúlcccSgÇìúL½aÙéTÂ2MDÒw¡÷¥Ý/^<ßwòô‰ û&''þ«/•XBÈÈèpRÂÈ«®34204õ£üøOþìSƒCK/jmnC„Á´Ö¨@Q @ ”„°Z çT#™3gÁ?ÿ•W^ÙýØS¿0-«{^7"(¥T<‘ŒõKßüâ×þ*žH,œ¿X#c”RLXÄRR)CD ¨4jTž¯ Á@@˜Ìuvv=ñÖÂùK)¡ŒRT¨@¢d”+BˆRŠIKsÛÄÔØÞ»¯\½›7gžã´¾qàÕîîÅÙt}H±T’J†ƒßZ0„!ÕD# |­2JµÖE>Ü ¡ @ûÚÉ9¤2 {f:7™Ë1n a˜Ô¢Qj¢51-Ê”J‚ .#”±B9Ï8š¶_×0Á¡¥á†¯jÚ†ô¥àœGã®çJÛ´5Å5W¬‘DŽŒ=ùv*‘ªÏ4i Òw¥FdP+¢)R` 42%( 'ŠÅî+—pB”e2$Hƒ±Í›·î~ùÅ;o½„FÉ ˆD¤À4†]"!” Ö@Q A«Jk‚Dר‰@ ©Ýø4’P®[‹ ¿Û¥d±XBÄX,D)!¨m5zý¥ä:Ð@ˆ­QCˆó×_ûÚ·''s÷Üó¡;n¿µP¬ä§g5Ñ AÎL—(ãÕªWudNÕ­V=ÆX2‘€R©ôöÑ7ÓéôÄø””Ú0ŒjÕñXüg?ù·+×®Ô 3ÓãC§'ǧª|— ÑJy~P#nÿ®\ Fï†eYŒ †I¡jŒsʳ #‹\Pæ§qÆIHJ€ fšBIîºÕ†ÆŒ‹Mu²Pf¨ 3£“®,oH?>t>Ô×g††G*¥’eE©°Cù¥ÀD…Zª,l]ãM7ß¾sÇ }}g„° 5„ÅlîTß—ŽSÑZ3.8åžçNä‚ÀËfšã‰ÌÀÐÙR©ØÔ4« ×õ*™LC"žì#„¦Òu+Vn _ÞùÜéÇç÷,Z±lIC6#uìø©‘‘a& Ô‰¦¶ÞtÛÆÍ7ìß¿oçög3ÙìÛoêîYÜßß»páùéÜܹ]7ÊÒ±Í(¡zltœž/Vš&Ç']_–+þ…Þ3?ÿé!ŸýÜç›ùùßüÔŸŒM97ßñ±lc="ùÞß}kßþ=á¥Z*94Ü–i¾£­µiš¡À׉G"J«þþ¥‹–¾÷=ï!”ô?_*•Þ|ëM?ÂïZ¾|ùܹs/O ž|òÉ|ðÇ?þñ©±±“¯GöíY8¯{þ¢žd<Ù9«ó©çžmÈ6œ9wމFb‚Û·(¡@1ðeÕqµÖû…m|ù+_:ßwþݪQ…jÏÁ—(%WÝHé¥ä‰pfŠšhä””3Ð4ÐþÉsoŒ¯\º.nÇ9e¦mÕÕ¥=ßsö?ë”ÝRÑñU¦!ÓÈM3PA,5 ³#ùÀ%¢!9©Z­D£1N¹”AïùÞí»ž=tdÅ)_ª¿µ|¬ß‹Î&:Ú»n¿å޵k®6MÓ <ÎECCƒã8ÉdJI­QÍ䧇†¿÷ß©ºµ¬¨ÿ*Œû÷kbíz{ AN©! Ã0 ÃJ$¶m›¦Fë çû~à;uìðÛo6Õ7,˜¿ mVG4‰XV2£¦°#ÚÜ4<:22:ØÑÑÙÖ>KÊ ‰5{¾[—NïØùêîÝ»“Éd¹T¼óλ.\L™Z¸¨'“MïܹósùW. ìÞ½cÏÞWGƆ_{m÷’Å‹£‘؃~÷‡ÿö/„½û^¿ë}à”†OàÈ€jIká¾ )#”­ B´$œˆë®»aÑ’¥<òsºæš¦iYÜó¼ΜH$¾|ß×øî7¾ô—_M'3ÉL4Ð0=1mjG-p\­Á¶£ZªJÅF42­T ç”R#4¨Bôt/>zâPÏüe7)¢ %DQ"ÑHÄ)WAÁÒE«NŸ=öú»×®ÙÈ@X¦½fÕú£Ç+%³©z‚šr.¨u€Z_VâP¥4*Ð Cº6Ë3!D#rBÃËuXz9eic}ÛàÈ…ööΚ"C«jµ&4A_ú&ƒˆi…M¥ãÑD } `™&%Ä |fˆ0‰‰1.u )7"FµZF4š¶%•&„h'ȦbvªÏŸ>y¼¾¡)™ÌÐÀc„š¨%!T£Ö43¦*Zp“R@Ÿ! €PÆHL¤‘Dä\ß©#§¯X¶¹&”$¨ˆFäH "£aŠjÊ8a\¢¼ÄWЍ0TòR ñÒH³–á|É?Ê´ÒŠèJ¥b±L;b™‚’/<&ˆ¨¥p‰â&î?ðÖK;^nhhø›/Qº•r¹T 3©¤ÒÅ™TX)WÑ#O%@À)K7pNoßþ÷:¥‚iU·ZRJ8ò2€Z·ò=”R aS¨¶ÖaL§(Ë•ÒÉ3GÎ]85«©sÓ•7„ó\"ˆF9•Ï ÷Ç¢ñîY ¥vÐgS3S•RñLß±Ö–ŽÖ–v§RŒD,7p€(׫”*ŽeÙ‚³‘±¡Ó½'_Ù³ë䙣—kÞÊå«{ûz ¥Bˆiš®ö‚D±£ýðoÞ¸%“É î?¸WV×ì9­­ç:´ÿÌÙSgÏî¸044èTÚ\ºv—øoí !M­í³fw´ÍŽÅc”…Y¹ª\)J3ÅRÑ÷}×s•”RI?LtÕ  ž;ßǯÏd:fµ/\°¸±¥…ÜhjlŒZö¹¾s;w¿ôæ‘·¦§sÉdjîÜ9wÞy×¾ð…t:]uª¿}æ·#£C7ßt+åØÒÖzï½÷xžìèì¼úêuåRep`ptbäÐáÿòƒæÿ$Ö¬ZÛÜÜ”HD¿uxñ’EQ;–Ïç¹aÄ¢Q$H¨@…¹"áÔÃ@Á(E4шÍwÞy×ãOýâ£÷þ‘Öš2 ºvÍonj¹ã½øþþñ+_øF©èPB)!žç+¥(å„h×uQ"£4HʨVZÆ8 A´¤–i­Y{õë{_]»rašN¹ DSƈ$Dk](9a@ Ö=oÑé³Çv½ºýº[(§|ù’o9D´Êdš)%”òÀ €hTJ‡"FŒ(T DH!% ‚  <žR¥”T*LVÒ„@}}óÀÀ…¹sº¥’AàF"q‰ ‚„€„3Æ…ÐZZ¦m(É£”1ÔNµ @MSo!"¶0M“ Ãdžç nä‹¢XÕ­¢œÑd2‹-9ñœë{ ™F¥7ˆ–\)M‘2J$€i ®Y™¹¦Í”õ¸§€R šiÊhÅuâ‰è•+7=úø—-Z!ךk& RJˆfH¡@ëP ƒ„PÁ…V¨ %@(„sÀÐ)LÅpiʈ/­Ã)3)}FÐ6 .è»0Ä ¥Zë0kµRZ?ûÙ/µÖýÈÎîèRZ§§ªŽT}-ƒŠS™š™!^¹êitœªïˆV*•ÎÜ{Ïÿ¸p±÷ñ'1Mkrrzb"7<ô‰¯ÿõåBxâÜ¡úLëÆµïaŒ‚ƈ†Pp})­‘ï=üÊÙ¾ã] ¶n¸Í¶£J–mGÿ/songUåûŽ1ç|ÛÕïµûì.}ŸBB‚„^ PDK=EyÔ²9V=åѲ®U6¥W=e,K­ ¢ (ÒCiHHßgïì½³ÛÕ¯õvsÎq?¼+!6eݪSÏ}îúćý¬‡ý¾sÌ1Æÿÿû»®aðç_yªX.½óíïæ‘…¶áJ¥²©tk.Ÿ*¥wí{£µ­-ßÖÂq.Z3T*Å_üê'‡Ž¨Ô*¥bQi  …0Ì[tÇ-ïè™ýúÎ×Ûôp©<³tÑÊYݨZ«öôö®9kmë¿ðÒ³›~ýäþ{õïúèáßž|þ»õ]rñeóç.ͦ²S…É‘±{윘SÓSûxòÙMÝÝç¯9wÍêsZryŸ¼þÞþ Þuç]“S“|åÕ—?þñ&‰w¼ãúwÝö®[o½- ƒ÷µ¶¶º®›J¥œ„ÉÀT:‘oÍ.ò]pþE æ/üîwïyî×Ï:rè/?ùWëÖ_ ÎA¤³Ù'Ÿ|,•N_tÑ:n ƸÖê”r¤¯ú¡,Š ‘iK—.- ß¾ç›ï¾åÎl& b@DÀ×_¸~Ûö-/¼üÜ¥ë6DRš¶ÕÖž;1 â—œ˜"B¥ƒfjW(‘r¶ãDžniÉ.[rÖîƒoœ³ú|@ÒZ×*?ßÅP˜¦à –.ZéÞ£OýâWÜZiijÏZ»s÷뵆ßÓÙƒè#€ÒñEMÄßgrs²#-C†ÜˆSìµ”¤,aD2⦈´dˆ–0ó™¶±ñѶlKì0CJ+MQ¨ÃŒ›U`˜Â(‰GQˆ °Z¯&Ü”% ˜–)IY¶·¡‘ XI)IJ2r!ÂÐç‚¥R‰r©Î8 ôÏ9^.ó-m¤‰ Al¹$Î9“†/Cî{¡0̛̀)ƒ¤°R®Ù–{ÎÙýfÛ o»ð*fh- ͈8‚VhÒs ”à ¸`0ÆO/0ÖñăT¦õ¯ˆRŠ’DbŠ¡å˜D ³ Ò€‚Xݪ5Ä‚­•Tzüä䯟ßìºî{ï|/ã" ýra:ÃÈó¯^«TëÌ·¾×Ô¨*Î R„A8Ð?ÇuœóŸÿâǯ¾úÒœÙ?ýñÆ¥K+U‹“wnžœÏQkÔQÆ"Øü£5ȰG­qaך¹ÉÄÜ9‹÷íß~Úþ?95FJ3ˆ,ŸÍsÓ…2 R©–z½¢I¶µv‡QT*OA*™ííY€À¤”862ä‡þÂ¥«8§„mú¡¿ù¥=±uË‹ý³çwtÌʵ´µwv¬X¾4‘L¬>û¬¥‹~ýk_å‚zⱟ½`'¾ÿÝBD)¥VÚó1œòL? " a.˜;çK÷…;¶¿çÛºå¹í¯mÖ:"Âz­ Îùº‹/koëÜöúËÓS“±LT"Š"hø(RÅrjAK¹Z‚b©¸mû6"š={ö‡?üá›nºiÞ¼yhP÷ÖÖðgüìç¿xð—>ØŒVhçËž¬€QïÖ"D dd;Ö/l#w•›rMÈ£i ›Î]¼öíœ7í‹O1·÷”ÒGŠÓ×_u{[KgµR²,PpÆݽeûæy ®¿æO²© 3ˆ#ÖJUËv™`ÌÀöŽöÖ©Ö‘ñÁ\ëJÎPIY­T|ø¾ßlýÍe—^5{`þ«[_Ò¤8c+–­¹íæ÷twv§R)#Ó4—,XtöYç>²{ßNË´*ÕÊÖ7^ýÉýkõºR*fÿÄ#2ø¯ùЖ×6oß±5ŒBß÷¨ "üOãØÄØ/{øùÍ/®»pÝ…çŸßÞÖRUŠ%Çq/»xÃe—]133ýô¦'Ÿ|êÉøéâÅ‹ï¸ãÎw¾ó†aH)ÇÆÆ,Ëjkk‚qM˱]KFê¦oºì’Ë6=÷ÔÆþàãŸúÈùç]ô©Oü¥‹—0fÞpý 'FGzè—_~e6E D cí{ll—RÇšwDŒüH­>k  xüéGßqí I7É8 Ƶ¡,á~ü#ÿè'?vÁyº¦ãrrl¨#‚§í}H™L¦Z¯Ê:1Îd¤ SH©¥ÔÓ…t:³hÁŠW^yynÿ|Û´b¤;Cà„Jk¥Ã†DdŒG(–,XÖ¨UŸ~þ‘uç]j!\0wÑá#{‹…©% WX†ÅL Ä”­@i œƒR*vPMÍ Îb€*€åZ2ÜàŒ#0¸04‘Ò"i–ÒÒ±4 !GŽmF*ÒҰ̬e6<ˆf ÆÑ±\Û±C/°L£áù¦ÂHøž§#t»îÕmËêí8td:“5„„B“¤HS¦CQ@hãÑc LšéKÎÞø“{êgד©0â±H PÎP5³ IsBð8¿FiÍ!Þ63š(ÆÅ žñœK)¥Ô \×J$Á…RR))2ΉÞj ã5‡Ö* |ìñgŠ¥âW\9wî<ÆÐ÷½r±¬#éÕªµJ¥„;9ç¼užRõºF’1 œó(”ñ}ª»«{Ûë[RË—-½ïG?˜;giÙ¨‡ìššš84<¯Í²sÌĬYåb)ªÖ«R2@¸@ˆJ51Eh¶@{[¾Qi(ГG†g­YkQ{»Ƥ8}𔿉4œZ"ˆ«/½Ñ6,`è80}ðÈÞûß°-kÙâU×l¸#«›[é\ªR©IÙhkë4-³XœNeÒSÅÉR©˜N¥ åb:•^0™¿|øgZK"È·äßyí­×\ñ­%gìÉg=9>fYVÝ÷¾öí¿¯TʧësLÁ8müý}Àÿa!ôßóƒ¦/¸‰†Á3‘üÿ h .–‹<ñȯ_úõêUç¼mÝúþ9slĺW7”9«kÖGîþØ>ð¡×¶nùÑ~øÉOþÅøÃ»îºëÆoœ={6ŸL$R¹\6îY ƒ™¦°]ó¶ÛÞõök¯ýñ}?úö?}ëÖÛoþÓ?ýàGîþh*™X°p~Wwç#~|pxprzR¸ 7•LÏ7ï–[n]uÖê7ßÜñ¯ÿúƒï|çvtt,]º,‚‘‘‘0Œªµª0 ˶¸àÂàŽã®]³ö†ëo¬T+7þà‘GÕ×Û?wÞ\×M¬X¾òáG B¿V¯žÞhÿW¿öåή®îÎnl ¡gOýr¹\ëOMMuwÎBŽBp¥Éu­Þ¾ÙïýÞâE‹ré<12,ŽZGRgr ¿"g,sÓñݤ­£ÅB)µiò0ŒHC(dÔÞÚ ÀJ%ÓŒ „f„# ÎcÆ€!„9Ð;Ïq§ÑÂþ IDATO=ÿXGǬ9sB_å2yÎÙνotwöZ¦ ˆ Y$£X=Ê-— Á\Ûv‡!“R`¼M$­µa‚¡"e˜†ãÚŽe&ëìì>9q²««S$“çÌ´E*‘b´äZ,G¤Ó)aÆÑ2-ERÊ0Fà Ât2Åó5˶mËnø¾0M%#Ó´”’ ¹iY‚±P‡‘”®•ÐZ†ÂÒ¤ è×뮓Ԩã±N%„„DHL7Ó991àÈ€3΀i¤|{ë /=µ|Éj†\ı©¤ãLùDÔü&ιÒºIEDÂø Õ€€Ä@#Žc#C##ƒ§O¨k®~»m™ÙdÂBpंs†L“Ò*ŠÛ&Ƙa'ÇO~ó[ÿ¢Ýó¿ÿÉqÝ0hgÆŸxêy5SèsS~n<êvtµuö~ %)%ë5ïÑ'ØòÚ ûìÞ»wÇÁƒû SüÓ?~ã3ŸþdÂu¤ï•¦GJS£{Þ|cçö]SSÓ{Œ¾~àxœ€Á™¸öÊë+%—,Yúê«¿‘* NÉËY_ßì;ï¼Cã¡_=4Ð?o CàœiÙàŒ ËªTÊA£Ê9‹$‘! †È&Ð ¥ Â@QT­Të…ÒÐаªÖmâ`” @Îh‰ŽÙ’ÉPSA„2’ˆ”I§®kÙÆÄÄI¥ôÈȨ›p•jù׿~òø‰£¥r!Æ„q¥””ÒüH©„ãd“)©£rµ'34<ˆLƒ·fÒŒéˆtXªÂÀoIgTD‘/£ÈkÔ[ZÛzúæê(*– ž×(¦+åbgç¬%‹—õöÎÉçÛÒ©t*•v®e™JÉb±püøñãLJ®7ê{÷î=zôðàà±ééi"ÈçÛúûç\xѺ?ù“Û.¸à¢B±zäèð¡ý»¦&G€¡ Ь«k`íyWù~í‰G*„ÞùçwöY+ ÁÛîjkkÉd,Ë”ZË3¸(óæÍ[»vm"‘p]÷œsÎ9óäÄSàÌ 6nÜxë­·nܸqff&™LõÍê_0{áêçöu,™¿ÌpÝ}£ƒE¥'#°\Ô†HçÛêÇm³”Ìd”iH×UÉ„ÙÑY³“ÅDò¨)^©Î<þêK•j9’ÍœÅmùN $†M×D³éŠ‘„ˆ€|Ýù—(­s-¹á‘¡¤ë^~ɵŽíäóù0 „D £¨Pžš?o¾c9Qj-+•bkG‡à¼gV"‹”ü_÷üß?þ‹áácñ}Ķk/¿~ù²³^Ùò¶[æÏ]ðüËÏ=~ZkûÿŽŽ=1|bøôÜüÌ 7oö¼åKVôÌê^¸`á‚y󥊊Åâ™üºø/ê:N|ϪÕjÇO ïÝ·çÕ-¯>ýô“Ï<ótú ,F®ή믻ñ‚ó/@„ÇŸxìî—R®Y³º££#•JsÎ9ï<â¤w†N§/Ûpùò+6o~é‡?¾÷äÉ“«V­J$‹/J$œ\.»`Á•+—_réÛ¾þõ¯uttvwÎB$Æø©Ã"6ƒazýøðЬžY†°´V¦iA€šå[[úóû.Y÷6¦ÅÙ`ñV¨ÙD4o—:VÈ7¡iŠ( e$¹€( £(bÈ™“p³™ì‘áC¦0l;A±s¹ÙÏ!GäHrÙ¶¹ó7¿úÜääxwG7c,áfÓéäk[7çÛ: ΈçÇaU¦i2Æ£Húžï52R Ï ‚ˆ|ß#"ßÃPJ©¼F#~»HkÛq³Ùô±Ác¹–lï'SIË´Â(d¬™‘T«Õ£(Š¢¨V«€ŠHB)©"‰À,˲m»Ñh¸‰„”‘e[R*!¸" CÆ€  ƒÀ7 C(¥ !LÓ:yr4›Íh…šiÎYì-DÆ,Æ4†¼éPEÃvM ÔH&7Šå¢ïÕÛ;;A7 #NL3àxÊÞC¤…0´RŠš[ŽxHE@ˆÄNµ€£gB¸öšë:;óÙLÂ4 !8g ÇÓ8ÃSêTJ Á-Ë4 ±é™Íýê‰sÏ]óç~7Ôë¥òôÌ·ÿåû˳í.°0ÒOØ}ÞEAF‘ Â0:|tÏþ»›ãÚl&ý¾;ßó±ÜÍZir°01²ó7v¼¾}zº0S©?»us ÔÖÚ¹î¢Ë÷ì}³Þ¨;v´Z­OD¹\®µµ}ÕªUÿ×ß~éâ‹/ž˜àþû.\2kVo,nõ%Æ1ŒôɱѤk"·ü l‚Í´bL˜¦`L#r¥TÃóë:iòkÕ‘á‘ ÞHHÍ["‘T g 2«¥%Ç9ç ]×qŽÖºT.•J•™Birr*™LÎÌL·wtÀŽí¯çó-¶mGQ”L¦ˆbô`Óæ‘v¹L:ÙÕëHJеHŒ±\:-8ijx^™tªùùoÛ®VZFa:—³m«V­*¥ˆT…¾ï'“IÓ2]'‘J¥n2ΤÒiÇIÁmÛÎf³ù–¶¶¶¶L&›Ífò-­mm™\~`ΜÙsæ¦yèСC‡†|¯1Ÿ_µjÕ—¾ò¥+.»ÜFvpffª§»lËîîézmûæÎÖ^!24MaÛ¶$%CÙðýÀãÝ.Æ@S¶e¡øJ+ÔÄà ÃÐ0MÏ UD ¨\.¶·vÔ«5Pº\«s4‚ ”Jq&¤Ôqå‹Q¶i3  ,aZ¶í¾iZ–eaRF¦eE2 ÂȆÁEÝkX–:dÈPiÉk­-Ë*•ЉD¹F „HRHŽœ!G „D‚bB6çœLÓ&¥*–Ée_ÜüìŠç`|Ñ q‰ˆ5ãcÖƒ”ŠNsµ54¹4LC|ÍÂÑÑÁ3 áíï~W{{ʶc¬vsl€¬‰-%»\p$bœ\ÇaŒqξñÍï8xäî»?|á…R£ZzjÓ¦g}úÒ%+(”;O÷SÉöŽîƒ‡öíÛ¿ëÍ]oìÙóÆôÌ”ï7bøAwWç6~ï½ï~Cðë•Òä`½ZØ·g϶-oÌL4èç^?X‹S…‰qVwÿÀÀ’]{¶ÕµjµvêöŒ·Ýúî¯|ùë7¾óÆÎ®öDÒÍç󯾺mÑÂeŽ“ R^£ùeBS*ª”&rÙ–†IÓ4µVJ)-ç\i"¢(Š%UèyÇŽEµFV©4³L?’B‘B3a÷õö¶´´¸Ž#£h|bjjrš4«Õ뇊e«¶mçómGŽ®” ƒƒƒ÷Üsφ WìÛ»off€’‰d6“sû”¼³ A!XÂȦ“Z©ø• #Ùð‚\:ÙŒ­’22 C“"­•"@J¥2í@P¯×¢0²Ëu\dL+ÕhÔ«µJ±X( •JÉ÷Ã0Œc‚±é©©±“£333ÓÓÓããcÓÓÓ^£–JfÜÿè#¿¬×j®“)§<¯ @Žôý:"öt/tÝlO×¼z£rôؾ9sæ|èCììh¯×ëANLM @ô;œ›o¾ù?øA6›ýýþ糟ýìiâ6cŒsÞÒ’íêêrn*°G~àÚÉr¥é(i%Ûò­¤t&‘ªÔª³{úùÒ9‹;Úºçõ/œ×3¿¿wþÜÞÅÝíý¹\{®5óÚ¶—§g&OÂö–.Œãª›xÎæš±fCÃ/]wÍÑ¡CÓo»ð ") Ã0¬ÖÖöBaÚ² Ë6¥”-™l½^™;wn¶% @¦i6¼úTaú_þõžgŸ{|åò³?z÷§üF=›ÎÝüÎÛLì׫ç®=÷ò —ï;´÷K_ÿûñfXpó–z:¬ç”s7~‚ôÿGR)eÛö¬îþE‹V\pîú5g_´tñÙsvwõvuövwõuwövvô´·uä[Û;Ú;‰d†¾Daß)Yü÷žœš<12222“ô~çS(Ì<õôSÕZuVç,ÎÌ(T ×½éÆ?‘RnymËO<þ¾g×î]íçž»f×®ÝmmmBÆãÇD2yå•W]tѺG}ä{ßû—(ŠV®Xɘˆ½Â0rÙìðñáɉ©… ÆíÇ&•Ÿs†--­SÓÓƒÃÇÎ_ÔtÏhM `ù’ßøö×.ºàbǵ ©‰ÐÖÐ$jŸº7"&.LSp¯áEadX #Eš IðÖíùŽ#ƒ‡YÂMšÈŸj5# ¥ !°Y³·íz­£µÓ6M&„)¬L&»s×Ýý‰¤ÍF2 ü(T’C?ð Ã$¤ 4)D®‰ÇL”ý’i:Üàu¿žpí|{kDš´àBI]*•3™\$CDR3DEÒ0 Ó0ü0à‚3Æ<ß‹¤I•°\Ûq ÓÔ@Aah˜Â¦mÙH ÁýÀGÆ’¦ã‡a˜ 4"SZ3à ¤æØÉál6GLr&°¹ ÆqÛ…„ לq‘TŒ8ãÜâ¶aïܳ} gnº%M*ž°²xˆ4#<•<„J½¥ mFÐŒ_B…c£¿Õ¾ï½·çrÎ0FlÇYóM-9‘0c€Œs!,Ë6c Ø'>õ9)Õß|ás½=}jtdøƒÿí£o¿pýþ¡c›öí~møÈÉÉÉ×¶½|ôØáÉ©qÏ«#bGGW¡8mšFGGÇܹ³?ú‘?çH^½PžŠoôÄèÖW·MONß;8}ddü-!â¥ëß±kïëÇ÷˜7wI{¾sVOÿÊe«¯}û õZõĉãµz ƒ J%[ÃPk%=¯eRÈmƒyõ VÃó2Sˆ¸ÓŠ£ø‚ ð‚H*eÁISäû‡öŒ|¯U _JÓ¶Ip'›*ª°µ³½»«sfffrrªáùõ†W(•NŒ/ Íd¹í¸-ùÖío¼vå•W?ùä_üâo»í]ãSáÂô¼F&Ýb™Fž¥ã ¸Ž ˆQQ|o®5„àBðJÃϦˆØÌO”àœ€XœyF(¥˜ù–|WwO&“M¸IÏóitôĉ‘•JIʨV«D‘‚)%…¹tZ“J$³f·w´§3-'OŽLOOîÛ»ûÐÁ}RÊ ðN&Ì•+3JÉ ôâveѵ®ÜÈf2øÓ»¾úÕ¯öõöH¥¥ I«ÝûT«µ35 ñç²Ë.»÷Þ{?õ©Oår¹?8,•JÇO㉉‰={÷nÙºåðуAä[s]mmí†a¥“©í;·õõ̱LÃæîÈÔh6‘Ÿ™lIç,Ãr­7˜ïÇP:B`Œ#þÆ®Wcý*Ìé[Øšï>Utñt`øéªD|Ѽ¥G†^¹þíÓ¥éŽÎÎY¹Zœ3†U¯>râ„i¥J¹Z-3`ãã'Û=±`ÁÂ^zvrzêwþ™É‡ÿù¢EK‰Ô¾ƒ;—-Z|Ѻuù–ücO=òÝïÝ3>qò·f‰†i¤’Éþ¾ó­?oÝÛ¯ºvíêó®ÜpõY+WOLNK…?”)ø_¿2ô}zz|pððž½;Ü=8t¨Tš‰oÄBƒ ! ƒ›Â0 ÃÊe[æÎž·zõÚÕg¯M§Óžçù^Ckýû17¿oÞÐZíÙ³ûégžÉçZ’NFIZ{ÎÚ믻aÁüE…ÂÌ+¯¼ò³Ÿ?püøñ«¯¾¦\.Ÿ¾@Å­aü€õõõ]sÍÕ‡ºÿŸnÛ¶íìUg§S¥´!ržËæ~ô£]uÅU§Žë¼c\"Ô½úàÐàâEK9çñJ"C×ue½ø›ÏY±ˆ ÃPq¤Óò*jFÆÒÒ4¸Ò €ç[[¢ ¢XÅ µF@ÐÖÚ98tÈvŽm¿õ¨aÓÔÈš9(z¶ï}mÞÜÅ2RÜdÂóê ¿’ËæµŒ4È‘6ÃÓ¥”»·˜ãf¸Á”T–ai©âQ-hÖhx Ç„“*× žïY¶ã:Ž’R‚1®âD-FAFJñn (ŽZhø>‘v‡!:–#•jx Ƕ¥RJ©L:ë>*ÐȵÒBŒ3`œ9¶;U˜J8i“›ÔôQÄàOÒZ'd€Ä8bÀ(Þ’)¸“²£@›¦¹oÿι b‡<1:¶ ÇÊ ‘s®¤Ò:.{Hšð ÅYü“H02:8::ôVGø®[r¹”!ø™»óxà»î8G†h™†ñØ …Âßù[¹\ö3Ÿùt2™VJ~á _ܱýÍÝG?9Y+`¼1 ³¥¥uÙÒ×\}#@ˆ_oÛ£Ôéf/\zéÅ¢°ràðÁžžÞ+6\7oî¢9³çïܽíñ'zèáùЃ?ûÙ÷ýä§>þèâÅËu/¼( dØÐ–eE‘_oÔ”Ò3Åb&6 .•$Æ9iRJy~ø~üÀk‚(ðwïÚËkÍ’­¹|WGª½]óÈ丛H&Ïó‰P!°J¹bZ–iZBmí®ëæZZ\75xìp&›iÔë_ùÊW£H~þóŸÝ»wOGG¿mºœ™ššWLK5¨^ψ¤<¥&©TE@p¡µ‡8O›Xå¤ 8Žc[–ë&LÃlkëèíí›Õ݃ §§§ˆ x„aX,—Kårµ^¯”ËÝÝý-¹VD4M+΃D¤l¦­Tž)—§:Úúëõ’Ò2†KôÌêµ­ŒVÔÒÒÖÕÑ“ÏgÓ™"5^©Ryù•WÔ<'š¦øo}ë[_ÿú×þÈÙ¸xñâ;ï¼ó®»îÊf³ëׯ‚@‘L&§¦¦ÆNŽîÙ»{÷¾Ý“'‘QwOG¹Z™)LWªÕr½<19ÞÙÞ5>9î8Nµ^Í¤Ò Ï“Mw5 ãÈì:ðzµÖÌæ;°¤­¥ë”¾õ­tΦÅÞƒ;®¹òÆ h$‘L¦~#“Éh-ó--îü„ã“cL0;‘H²ôØè˜×ðþá_žÕÕû¡÷ø'÷ÿðÀáý7Þð'[¶¾Òßß÷»>¨¤48xlääÈÔôtù§8•J1ÆÊ¿4ü_X cÉùAÃóÅÒÌ[oñŠæ 0Î[[ò‹,»é†[Ùþƒ{öÜ7>>öG&½§+J©XxøÑŸÚôø¥ë7Üþî÷õöô:fòÊË®¹öêw¼¾ã¯ó+7n|á…—>÷¹Ïõööž)åœk DzöìÙ÷Ýwß'>ñÉûï¿ÿ¦›oøêW¾¶áÒ+Â@š ûûú§ S§©¾bþ7±SOgGGw£QŸ˜ëžÕÇ‘1À çŠèꫯû»/áå×^¼èÜ‹‰H“b¸–8Ó¤‘´f€Xà{ÒÀdÒ.TÇON Œç(¥"Œ!°ù V¼±ã•‹Î½4æ`5wÃÈAsÇSZ™–“MäÆÇGó¹vÏ÷Ma¬X±êÙçŸÈ·t&í"(R3@!Óœ3­‰3ªP©H9¢F…gŒs®”BT& %ISКkŸœ—É48®eJé0\ÇB†–ah©4iÃ4€i)•䜥“)­U¥VÕ@AY¦i›çŒsnš&ƒŠµ€&¥yóˆ`"F”X–Ã9*%OáNÛb3ƒišù–vD†aG{wÌÑ­T ˆ8Sãvâ«¿iºKŸ Lúaµ/—žž.•J¥cdžmÛ<ï•ýs8øÐÃØ¶½fõ9/¼øB¼ì|ßûÞwÚ,ÿïuhFÿç?ÿy"ú›¿ù"šžž^±bÅÄĄҪR)ïÙ·{Ͼ] y&“1 cVg¯åضãLNOfÒé™Ò c¬Ö¨5|?é¤16øÊÀ½R™|ßûíƒ4ÑoQȰ©/Wl¸Öµ +—®‹µF-AàïÞ·{Á‚““ã¬<“ÍfëÕêÀì¹cc#Žå„axbläšË¯Ýpÿ'ÿêc¹lnÕò³Þñºu3…™‡ýÕo^}yÿýpØšÏïØ³óõÛ^£á5èŒ9)Ù–“L¤ûfõÍ=¿-ߺlù*Çuïùî·vîÙñGþ5N¤°ôzf~ý©·Θ͞Bš¾…a|˳H¿ƒiýmÕ©Rrbjbbjâ¥ß<ßÒ’?kÙ꯻%—k)–gÆNŽž81<=3Mº)^8•^{ƒAà?¹éñMÏmÚpéew¼ëýsæ Áê•«ôýŸÜ{߯½÷{øÀûõ«‡þá¾ÚÕ5ët9d,6xA2™þÎwîY½úìÿù?ÿç?ü5çœ{ÅåW:®uÝ;®ïêê:91ÖÓÙ‹ˆñ!§ OÂ˺ômvìÜÑ3«"gIÈma~äÏ>þןÿtOw_߬>Ð$l.#­¥dÄ9‹íŠHKBe9®cÛµJÅSÊà̶ízÍGÐ ˆ×$-ÁÏZzÎë»·œ³ü\@œ) Ç6uS¸@q=C„ùó–nßµõ¢5 ;! F¤Ï9ë—~óì—\§Iéˆ (@¨P6Ó I6\À dh›èG!‘4L7ãÈ7T{gçÈèˆa¶e !EJŠ” Ë4‘3îG‘e&OH­jª) Ó4M!‚(bŒI)ý0ŒMÄåJÙ4,&8"E2`‚¡FÏ«‡J:–­¤æÂL§²µF%ÊÄá—Ü €i$ŽZP3¸f±ô3b¡m˜Z1C‹®Îž±ÉáYs4"(‚ØAÈ)†D„ #´æ€’‘H1çT!Ž• ¿uƒÀóý Š7B0)c`˜hY\` …¦aÄz+bÄ OŽD%ÕüÃïüóŽ;‡3×jUìëí»ìÒË—/[iXÆâÅ‹óùVÆX£áU«åx§ÛÙÞÚÑÑñòóÏñóV r¥Jž¿ñ—¿®6üs–-ÎeZÛæBÔªuÚwpÿÁÃzºÚÎí¿ùš‹—,œ—t\6Ò)÷æ«V¶¡µ ÃPEô¶uçþùÿøâ¡Cûð¼Õ0Á4®7»÷\½|ÑT¡b»v©Tåœ[¶EŒÙQ$”RQÄÀÀ h&Ìñbyq²ÅШê¾)e$WŒ-×6,—H…¾ïº®eR"‘ˆ”v]'‘HÖjÕT*=wÎ|äbÿÞ=]]]›ž~rbb¼«{ÖG?þ‰C?pÿýÕZ±%ׯ€{Qm¦8¦µÎçÚ*µªïûŒ1Ë0]×18e„YLÙÕ YÝóCÓ4½ !UÌá×ìL7^ü§dŒ"^j[P¯WÏ '?ý À€üF¼°¡ä™) d[É®Î¹Ž“BdRRñFuæÀ¡'ŽΟ}¾)Ì“cÓ2"ιˆ¾øw_¬×ë™Læég6ÀM7Ýô¥/}éwÌòÿoä§M«/½ôÒ_üÅ_Œ !š¿jœÑF:DOLNŠÀ‹C IDAT¸Ž;Ð7'ðýÊt%Œ"ÆY$e­^u,WkC©HS¤”ôCÿLöÆúæ|9¾ÞIkbב0 ‹V¥TÖDI×1 Q,ÏôôÌšššêëëSJù¾O¤Ç£ Z.®=«³ûégŸxæ…MkW¯;o^µ^[¾`ʼn'¶¾¾ußþ½‚‹ë.päØúmŒ!Œ•KW´fó~fRÛv[r¹“ã' aÓ³:zäØð‘?ÚÓúU³MË4M4 “N=ZË8UG)ÙLÙŽë&4ÿ3Š"¥þ£æ}š™™~îŧŸßüŒã¸-¹–¾¾ËWßpÝͺR©TkU"p‡3£\.=vdÿ=Ó3SñÿƒRá¦gžØüò‹ë/ºô½·¿oþüù†a}øvÉÅ—|ù«ÿ裾ùæŽ/ù+—\r‰†ã8Íè "Âøà?ÔÑÑùñlë¶­étꓟüô·ÿñŸ‚ ˜šžìéî#Îâ PüH!âìþÙ›_ÞcÌN/cPslmiûäÿ«üço}á³çZŽeF Iª)P ¥Ô$ ÓŒÇ ŽkÔëˆ'BÓä¡©dP¬·!`Ž“HºîÄÌxgk§Ž§v”R ?Œâ8 †8‘R*’¶e÷õÎ~sÏkË—¬ÂD ÍZ)­”–J†!p. ËŽ=QäsÆÒÉTFDJ+å{~ÒIA 8GCCÇæÏ_ì5Û²eø¤lÓˆ¤²v¤´à\QˆÒ4 ƒ‹PJ˲Â01_&ŠI§V«%‰L2FA(Û²¥T Y#ðÇåQHš42ìhï86t,“É(DÆ@£`:A&WÀµÐL3Á ÃÔR…:RÄŠgïÙ³sö¬¹Œ£Öš!€f 42Dš˜BdŠ#SJq@Œ!)¢¦Ö·9 ß¹J)¥TQˆ cœ™¦aˆ[^ã­÷7Ö¡î?x˜ˆJ¥ò_þÕçNÅ?!c|Åò•ï¼þ†E‹–ì?p ¥µeÅòeŒ‰z­Q,VŸÞôäæ—7ÇÁ{ùsûûÊ•(…ZÖ람¤%D¶³urfæõ=ûÁÔfkkvþœu篹øÂ5ýýÉTÊ´“°¹ ëJ! ª‘ßýhêhþœÞ»ÿôöoܳñÐá}~ûxÝÛ߆åaÒMÖÁ‰ã'V­>ghèDwO Μ±€Å !„RJi­ [ ;s-Q¥V©ÖM†\QAÄ0›N È"ЄQ(-Û)–ŠBˆd"…ŒµåóŽíÆçyK¾½T*¯\¹òþákŸøÄ'¦§ o¼þæ¡C‘¡Y­§gFˆ(•Ì•Ê3aadÓ9!¸–²T«oF[¦ˆ¼Ð¯ÖÕz1† /þ7?Ý6ü¾ OÃdOÅ="‚a˜2Šô}ÆçF±Thmí(¦ÇN?Oî8 ϫϚ՟ÏuÖÁä䱩ÂqÇJ1Î,ÓŽdX÷ ¥Êd±<á:î}?S*ò¼†Özzz:ŸÏó›ß¼é¦›Î¤†þ‡S)å÷¿ÿýOúÓµZ=•̼ë–;×:üô3Oæ·y~cÿ¡½œñ¾Y½Šhbb¢\/gSi@ÐZ*-£0DÀHŸöNü¡A ÅBB`qr¢@„ºWõµ–ößox à‚û¾ßÑÑQ.—-Ëjii ý­ÕÐðÑÙó“I÷_þùë;¶¿öιTê’ ×ýøþŸìxs»a˜çŸwÁääø±ÁÁ‹^Öd‚!b6“½äÜõJ)B²gtttlf §g&Ã(ÔÍ»ì“Ϙ¦9»NogÏ@ÿœ|K²ùöJqfï‘ý±4ÙqÛr ÃŒKcÌÝ1¹iD>”R ?öëçÿUãçM“®×kõzmdôø+¯¾Ä™hokïèè\¸`ÑÚsΟ;0—µƸ”ᾃ»Ÿzæñ­¯ý&ÎÁò¼ÆSÏ<öâËÏßüÎ[îþðwwÁü¥ßùö÷ïûÉÆoÿóÿzï{ï¸í¶Ûî¼óN!ÄòåËmÛ=Ý a¼ó7Î;ïƒüÀ¦gžýë¿üìTa¦·w¸`œ¡Œ ƒ+¥e¤´Ö†0fuu ö÷Äþ³¸Ærâùóæ¯^¹ú‘Ç~qÛÍïäŠi)eD¤•ÔÈ„©5¡&¥”ãÚÏm~¦T*Üpå-ŒiË2‚(ÔßÚ-jšÝ¿xÇÎ-­Ù6!øuŸ1@M™ˆÏj­eO÷œ™ÒdÕ†R“Ü\0wñ3Ï?>§^K¥R± Rq&´T 1 #&¸àB7»z""%CfX ËÑZKƸ)L¢;O@(Ë wut+)ÃÐ7Œ”/#×tU¨ C#?ŒÛd ½À'SˆPI Cι¢V« !ªÕjìV¥R±mG+e›––Pó*šF¡eÙ~ÐàLØ®áÕA¢2]'”‘ò5P¼²GBbš‘ÒRkÄH %zæ>ûÜã4ÈjÅ)ÒÈ@k`$°9èA΄Ò´F`H âtchNǦã…!hEd–mÙ¶mYŒ1Æg bºS³|øð±¦f*Žé`lÅŠ¼ëýkÏ=Ïó‚MÏ´„°æÍbdÈqÝÆh­Ù àyç^ðò+/ær™eËŒ—+£@Øð« 'õîÛ>ÔÛÛwèàч»Ïó+–eZ¦]«Õ謳ÎúÌg>³~ýúÎÎÎÿô‚jbbâŽ;îxöÙg™FÃk<öÄÃgŸuפÓÙ'žz¸X,œ™Í •փLJâµÑ‰“'ÚòùNM\k¥ÿæÞ;NϪÌÿ¿N¹ÛÓŸé=mRHo„„)&`(‚.»è®±vX¢® +–EQaDQPI“Þ&“L/Ï<½Üíœs}ÿ¸g†P¾®ëúûþöù^03ÏÌýÜ÷9纮ÏçýAU¬Œ¶OŸúNa°VŒsß@Ì‹ªãÚÙlº}Z{}}ãà`ÖÔN¶ÝrOwפÉSr¹œïûÙBÖó½Eó—œìïþæ-7”Ê¥µ«× ¼ÿò÷8rèú¯n¶Ê‚ù‹fÏšýø“e³Ù·½ÿØe+W¨n¨©‹†Â'»‡#qÝ`¹lvÏ‘R© VÏ„fú/8î£áhC]ƒTJ QÈçrÅÂöݯtuê{û:q°ø»™7Þ”°ˆQýÁ¡þÁ¡þŽ=¯ýæ·¿®««Ÿ?oáì™sg͘ÓÐÔ´hÁÒÓ/ͤž}î©??ñ‡Tj*•Ò½÷ß³wÇ×oøÎäÖ6Ã0¯øè§W­\}ÿåÞûî{úé§7oþòïÿû™3g^~ùt]¦€„ùóç?ùäS_üâ~ýë_òêOÞvë””(ƒý‚ ð„RDé¾ëkßµîGwüè“W|J!C)€"UDQ ˆ¨È%ÿÃõ7|áÌ«[›Ú%AÊ5P*¤ ©R¾ J)ÎYgç¡‘Ôô)§Í9—ëÌИëÉJ Ø”IÓ?8kú¼ÀDŽ  £J1Ê”¦i657vv©Š×ùÂÕ4P1¢­;çÝ<öàÆµ„BB(Eð„k»e_z¦² Ë‚Q‚Џ^$ HQ¶+ˆJ’JIÉ¥¬hš^rJÑp„X‘\ÅMgFëjꢱ¸/„É »R¡$*Ó0ÑvPIaq]‡€Š†#B‰R¥¬s®QêxŽÆtE¤ï{œ3ÏóiAÊ «Ú¤±X´XÈWÕVAܳ…P’fF£\p ‹qƒ»¶K%:‘Jxž/¨ÔA3-LĪәTmM#@úCŽ à„P8%ˆ8& ÀÇ`£þøªoÉfq]O å#€FBaM×™að@]¬i̘³Ø»®ûÃÛï¾ýG¿œP~­_wîUW}réÒÓmÛyqûöwŸAv´Ð—Me*GøJHÆ‚gwՙ˒‰ø·¾ö¥B!ßâ˜ÉµpBŸÜ>{òŒ™Õõ­¡x•PçºÎ¹Î('ŒM˜"¨™ç8ùLj¸ÿD1—–ÂßËf³H fUmX»æµŽýûìÏär€Â±cÇ;5ÎZ[[ö8ÒÚÚªq-52ÒÖÚìyž°}D4M“Êñ< ¨*Ž»oßþÑêÊð¨ThZºS¶$Y¢ÉZDˆ¦ixžwøè‘D¢J7Ìêšz×q ż”Špj%´ªªzõ¹žxâqÓ0fÏž ›Û_zQµ´6=zQ”` [ñX´V/“Kù¾²¢ñX¦q)EÅ-—+yDZƒØíx,QUU­ë&Ø\§ŒrF5Mç\ãšÆ9 ‡c-ÍMÛ_Þ‹Öß¶· Ö ‡¢¥r~x¸ü?úŽã‹…cª«k²Ùtð©VW×Lž<}ïÞ=Ç»Ž¶µN««©ö§Í5¨TŽÆBˆÜó݃GvÚNž1îº®ëº ›7o¾êª«ÞàVÿuòÆSKFÛ¶²öø:¯”„С‘Þ?oéÝúâS ç.¾ü>*¤Ûu¢³ëdçÀ@¯]±Ç‡`ˆˆJ(B`dtˆ„B‘²] …Í––ÖÑÂÈëuœI@ÉXÔbºŠc~k@ÙÆõ›˜F‹å":4Яi,5:´åé'Ê•r2Q•H$"‘pذ¸®?½õÉ»~z{cC}û´™uuµÿð¾÷½ðüÖ‡~–Ÿ±bhppÏÞŽr¹üÛfÛF<_2g~"W¾È—‹óf̪«ªÞôàÁãÇ*2Q¨À¶Ç¿pY×îî9y²¯kÿá:öØÓÝs¢T.àÛ€2.—ñ‹þ׆7ýOöÉJ¥|üDçŽÛŸ}þɃ‡X–Y]]SO.œ¿xRÛ¤gž{râÊ m{që’%˪’U„’úº† 7…áW_}åOþ£išwß}w*•Z¸pa8ž¸&ºn¬[·>“IïØñê–-Oš4eæÌ@dž“oÈm8ó\)¥ÚúüÖÁÁùópʂ˔¨•b”[fè¹çŸ:}ñŠ1töxáK€(%ÇNR@8gáh蹞[»z㟞xxñÂe:7(%¾'<Þ˜”¡›'º;ëë)ã%Œw Ñ Í08!ôÄÉ- m”ò€´MˆBk«k_Úùü¤æ©D”B*ŸqÝ2ÃŒrBRF‘¸Ò ’uAÓôse–Á …ŠRêû×4J¨’ âº62:šLV*!¤ç;RJM34MÓ4snf°PRJ‚i…tMÇxãÌ4-®q Ä …€’P$\±+aÝd\s}ÏÐ J(Pâ*1688 ÇQˆ'¢„)P¢TJšaÃ.cÔ÷}E(§u€Ô×6 J)TÇT­T*$ŒQT(¥ 4cQŽ„`À| c[`_WÿÀªÑµçž[W×@"Q=6Ã!ƒsF)Ñ8ÿd‚n‘:ÙÝÿá~î'?ÿµðioŸöãýpóæë[[[¥½}}úÓcËO_‘Neûz=×%ƒ7Çݯ ÷Ÿµrù?ºµ¾e’n˜•báÏϼøü«{N_±jîüÉúæH¼šão1CR(—†Ó©)ÍmU$~àè‘ξ®ç! 9åðZUU¥¤Ì ÿåeŒ)œóPÈâL#„PF ¡Œ1^{B`朢çyåJ¹X,¼ùìð÷´í?b¥RÙýú«¯wìljlYsÎú³Î<'I¿åëûû{¯úÌÇ¿yÓw—-]˜p¯¼âš5ç¬ÿÊ׮ݺu+¥ô·¿}hãÆ uuoÀ“4Mó[ßü¶a˜wÜqû¾ô™t&õá~ ©”RáØÁBùžG Àá#‡—~Æ‘£‡æÍYdûª2vKá²EË~ó»ûmÛ6t3ȲP€ H@ÜWA–³v$“‰D4>û´ùÛ¶?¿þÜgº¦!ª1î" ¡æÎ^¼gÿ®% W  †"é J×¹"úÂDJÓ©®3§"}¿TSÓ0Ö‚ÇŸþýÆs/ ŒÊMSW \×Õ4EŠMçqìãRyž¯›:ÐL%„çûžC0ÎͰÕÖÚÖÛß7mÊd¥PÈ€9' fH‰Ò4M!PP ¥Ží8¶ …P_ø!#„„”*EMÓ×µL³P(FˆÆÑ“aÓò…B¤Â¦z¼r<˜P*V¨â¨2äD+lï‰B‰@©€QÚÐØ422ŒAL#EÚoB J5öDc0 $AÖ *Ð7&Fo­•2£F$jF"&çŒÐ8c–8ø‰€û»ô}NoX¿ú‰-[—,YôÐolnnt]×®Tz»{o½õ‡çžµ¶ëh·ç*®i„É\¶¤iœq‚@ûpé’ÅÕµŒêR·~¿åß»ó—J‘d]ã9ç®ášˆ¾[é¼ï?t…˜:yʹ眄+¥b!;2:Üßß}|tx¸\.¹Çó]Ïó3ùR¾ìVE­'v­¸Žÿ‰º®Ï™3×±mJd8;tø@wÏIBH*•¢ŒF#ÑR¹2šÉé}Œ¡'aÜ´´—·½Ø{¤sM¨ZäsðìŠÌ×Ô5$â ß—BˆJ¥RWWW®TFÓÙx,FÁEçäà@Só$©‚°L˜>³½¶fùŠËxà¾'º¤tÉøªÍ’‰zMÓÓÙß·#áêh$é8¥‘Ñ“žgš¸d²>™¨ …¦i¦A)Õ4= '«bJTt=¢›Bx×£:ãŨæyÞܹóþøÇG'µµûB)@AÑ8˜Vœ ÖÔÜR, ÅlðË  ··Ïêì<캶aáp8®9mÆJ]§å²­ëf( ¦óû¾œJ÷7Ò† n¾ùæE‹M´Uÿ¶U±³³sýúõÃÃðùK7ÅŒú\qäDïáƒGö>z°b—=¿BU±‹ûï<|¬#«ijl›Ù>káü¥P (¥“&MZ0.g¼¿àhgg¡Päœ+©ÈÛ%9÷þ]76ÎÐâ·b†­áÔìÙöêó©ÔèêUçL›4uïÞ¶ÂÛwnvë“m-mçoØH(ý‡K.}eûö›nþºPò´Y³¤ÀîîÞIm“w¾¶ãí­È €HDâ‰x|rCKÅuSÙt2?sö‘Çz‡|áãDØ!ÆÏ[œÉ¦?2gÖÜææÖcGžèé& ÈGâ‰x"¢Òóp8Hð!ŒH$bÔ·N–¾o„ÚiZáeTx>×5¥”ð}%%7Láûˆ H¥JÅB:=\*Ëå²çyBøBH!ÜR±X.—Ç tˆ‡MÓBJ!+vQUWW§Óé`ì:f˜}ËNmŸªþž{ï¿ûÞûï~§¯„Tjøs_úÔÿvóÚsÖSTDÉÓgÜûˇ~|×m?ùéétæ¶Ûn[½ú\]×cd,¥ž¦yà 7 áßu×]_¿é†á‘ák¿ø¯œR¥P HŽ?† ¦N:{Öi¥rñàážyóS¢p"#\QA!”h†¹dÑé¯ì|ñœ•ëÆ"Îʼn Œl’*©P²hÁ’ÃGn\·é{?üÆ’…Kk«ë4¹.‘¨ÆÂÐ%HTº®1Ê …\4£„À ëѲBˆÊq<)•~Щ ˆ¾/•Õ+v©¹¡Õ2Cxòwl¸„jD*$D¦Y²‹Œ€¡¬›šÒˆï)DÅÓ8“ˆBHF *ItÝ`œ!"êz^4Õ4–5,#l†uà ÂÏ(ñ=Á5æ+išf¾˜Fc÷ƒsN+%™cœs–Ëç”Rç eÅ+ !tfúÊG¢ !)Õ‘r$@„ð•ÂÀRÕIå("æ ‰ P%5Êj’5Ç:/PäR‘ ®^ Ž&Ô8=˜`…¥ù[ÑVžgè43ãѦqJ)ç”R €mÜ·ÿè—|Dúâ©-Ο¿à·¿ßò®uëkjjÇM Ýä[ßûþ¢y˺:{eºaÖÔVÙy !T6›ÎdÓˆdÉ¢Œê„±Áþþüøg¦aÝú­ûõïõ;3ÜïyþÈÈðÝ÷ÿöÉm¯I%¡¡¾ö¬å‹ãºâ(8c¾ðK¶Î”‡³ù¡ÑB*W®MFW/šÞÞ\à Ó÷EU/…úù/~òüó/Ü}÷O¯¸âʱ ;:†Ò7 㦛n*‹<ðÀwþˆSíš«?£1:¶}Û¾_[[;½}ú‡?ü‘Ûn»m` ¿£c点‹1… “A ’3–žù»?<´ú̵”R)™€ÿŒÏ{‘ ”.]ºôñ-oÚpṫ7<¹õ±ºôƒ”Q®sß‘o±êL›<ëh×Þ% W„뺦iIåû6 œ2A¨žò}É“¾/”o™P’¬­Û¸ö‚'ŸûÓ™ËΩ­«§Dc”Æ"qÛ© Jà–ËR)ÎM…àƒ$ M÷¦eœR:VZÀ½û]øž(¥~óàÏ—-;ˆõË? •(³Cý¯íÚ··ãH¹ì=ùì“U‰Ä”¶™ÍÍétZø`èF@€ÈäF=ß%¦·OS(9Ð}äò¹÷lÚ°hÞimõɾ£{‡‡JE;“IÏhˆ…ÏY”*ÚÝý£}Ãé‡ÝB Õ4Î(Q …”B*]Ó&·5^~ùe›6®‹Xšr‹Â+ÙåÊ`wÿÈhæÊ¾øîûÿ¸sçßW‹æ-âG#ékÍ-¹B~xdD*éz^"‘Mµ´´('ººžÛ¶‹¥ ­-ÀY’%ÒsK…ÒpÄØ—^µú¬p8œÏçžg6›‹Dc±Xbhx(=w~Åvò…ÁB.](æ†ú{Ï=÷]S¦¶9vé–[¾uìè‘S#ä!ºfÄbÕ…bÚóýh$A)Ï䆄ôÓUW7V%êç€È1¬ŽFÂa]×5SÊbÑ¢$b±ˆç ®kd®§i‚¨”]TjÁü¹»víªJÔÂHF¡àyR)åû~׉AÛ¶ãBŒù v¿¾#°ù>õôùB.“ï7,"Ñw]ÿÀ‘Ýèy.€Ú´éÝ_þòW–/_þwQWÜrË-›7oæŒ}êÓWÝ|ó͈¸yóõ·Þõ­ûÒ×uõL#5ÕÕS'M‹…“­ S÷Ý•+ŒVœRðÎ×Ò…AÇ-æ cð¶•W)•ËæÞ¤-!ã¸Éñä c&³ /²¶cN?qÅÕ?ùhÇÞ×W-?˲̭/u=ûüS¾ïÍŸ3ê´öL&Ó>eÚÖm[{Ÿè3-³¶¦æ±'·ÔÖÔö ¾c´_kCKU,aêz˜iC¥b95ìKïõÃûý€Ë~Jõ‹Æ͘{¨û˜cÛÛv¼”Î¥I¾T˜>mFC}q<Ó02éÑ#]¹rá-ûß©Û ð|¯³» ÆE•Jy4xu[$­®®©­©klj­ª® G¢Ñh•ãÚ™ÑT:=B)3-‹sÍ7“%„67µ´µMB”v¥ÌÉ峚fPBšZ4M«©®_²èŒb¹¸wïî;_üÞ(Áºæyî|ïfBÈû.ù¥!H®¾ês¡PèÇwÝ~ã7666oÚ´iâ„x¿ ÃúÞ÷n­®®¹ýöÞþ£Øvå_¯Û̹ÔNV%ÿã–ÿøÒ¿°wÏÞ}ôãÇÝzëwчæÍžÞ†M†¡…@¹6uòÔÁá>Û±-Óš¸õ0 •¢T) P*Tª«ëjj«S™ÔÒEËžzö1ÇuÂaK75Ûqß0±0ÆB¦É¹‘Ïeâ‰jJ çãÄ÷¤”"he‡C¡J¥‰D”e§hi¦®[:×}å[”óDÕÅç_öôó'ûóç- Y–]±9Ó(Á²S¦ ×%Œ(<ϱmOº¦n)¡X*)¥r¤M5õ£™åzU2ä:.¡@5+%|_2¦q®+”AÑM)ó}?ÐÜSB¢‘x¡˜7M= !|!*žˆžïs¦ëšî¡Gõ„jnj=~üè¼ 5¢ ô)å@AŽJ8ŽÃu‚@¡ AQÅH‚@JTœ2N9EЍ@@¤ ÷;óV¿qD!lÌ ‰¿5lÌ´xUU$ЉöyJÊ! @w÷Àû.»R!<øà/Ï\~&‚„HádS#}}ý{÷Ù½ûP>››>i:%´P*tìßÑÚza:1ô0(à\1 ¹À³ÛPW§”¢‘ƹiè]GÈJ&;2ÒÙÕ-…ŠDÃùRÉ“áHäÊ9ËÔø®}G:»Ò¹¢R‰D¦Lj7{ÚK.X|z¼ª–êÚÅJ~$?Ò„T5ÔŽdÒ‹NkÿÂ5W|õæïïÛß1uÒÔd2îû"±¥©¥¹µut$5yò”={öH¡ñС#Ç:¦F—64/žÒLse·XB×Uˆ±ÉÍEËÜvòèô¹³ÛZÚ*Ž‹¹‚B)‰F)ÕûúûJ¥b2QmðÐáC{„/ÛÛO›9sÁü¹³çΟýâ¶çî¹çžr¹4Fy_†-3lV&;¢q-­ªØ×s!†fÕÕ¶&uº®k† ® ͈ÆBÑhB×-Æ ¤Œ&’qßs)!†©snQB§Œ1 ¥Ëµ¨¡[”P#5kFj$S(ä<ÏI +¥rùÌDð-U\wOW©éêêêêê:eË dÚ´i×]wí>ðÓ4O•:þO:¢×^{­i˜ë×­»ñƯ3Æ#ßúæ·ê¿õƒÿÖ¿}—–¬Š¦Ó•Îy,œÈ—s½ƒÇ»ŽTì²íû†J²AHÀÛÿ0¥‚¨S å8þ]jÌwäU1PãF!i…þðØÃ]]ÇÛ§NÏ—vvûãìíëAT ç/NÄâJøKÏ8ã‡wüp$5»’IM6u``°R)Ïå„5’Â9Ÿ1¹½­±¹T.#ÀžcùR©âØAõú†ù@c¬©ºÎ ‡^Ú³#HzœØÙaÓ[ÚòÅbÙ®¼~h_:—ÁwLUz‹0æT%盿¾X,‹…“'»^95>"OÖ76[–…uõ1Ë …CÑH8<0ØßñúNC7jkë«kk9×b‰$B ¤Œ(!#‘×èê³Ö­]³±§çĶmÏí;Ðá8åqëG² FføW6$Ò7¾uãîŽ×núêͺaANØ'¯øôŒé3®ÛüÅ}è_®¼ò_þòW¢Ñ(c€˜¸á†W­:ësŸûìOï¾ €|ùú¯˜fȶ+ºn\ó™Ï|ï»·~mó í“ÛoúÚÍ÷þúW®ï|êšù_ohki#ˆð™V•¨NŽ´4·¡€ˆDŽ% ” ¤X*…"Ö%ïyï£xä²÷|pö¬9{öï>sÙª XÑó|Ó(FgL™uàÈÞ¥ VPF5ûžt]—¢Ð·4Ö>í´CÇö.žs†¾¥[Tc‘h¸\©PÆ|)eŠÐ5k68¸ç‘Ç\»jC"QE •J” FhÄwm Pq®éº„"(ÔЙ/„‚3æû>c P1M+eËSÍp¹XÖtMJÅ(-Ûv,–J‚åJI¢Œ†"®ï ß#)ã̾Æ5Ó0K¥"çn$RŒiœ{ijŒ]©p®Ù®Ã‘hLƒØŽ£2 %#Š‚H”ÂSd¬Ã‰œ2ªQåS©| $!„©&Á¤€ª`à„(Y0#Z׌‚”¨%Tyªþ¸ÿzâ–dc”²q!•rùƒùÜàPê‰ÇY¾üL¤•v)5:8Ð=°wOçë‡3™´ë¹„%TH?‰äóE×vµ (‰¹|ñ(çTJI¬8ãô?ÿþA†n÷¡=…ì¨],3B#{»Ó|~WØ2ßwñù_|‘’þêÕ+…ï†ãµ5“5Ë@7ÃÌ JQJ P)Ž~÷'÷o:g™Æ!ËçV,]zö™glÛþêïy0‰TUW™ºn–/e*5œN§Kåb__O¡XˆéƤPøŒD£1ZÉvQThœDB/åÒ{3#+Î>{Æô¥b™³¬°ãx|@Òß×2-Ow«Uù\F 9súüæ–¦•+—76ÖþÇ-ß|å•W&¼áã‡ZjY!%U¾‡b*WH¨P(2cúlΨÀ4M]×Ó¸f˜¦iYV"e\QªSÊ9§š¦E£ÑJ €0CÓ€*ÍQN)%”R@«PÈ ?ñäk##ÇŽ{Kà{2™\°`444lذá¯Ü·‚/~{äÜÿâ•N§Ï:ë,D¸ø¢K-˜Û}âdûôvF¹êªÏTÊÎO~uÇ'?ø®Ñx,*}Iѹ®q=dE/ÿ?=ñÔ£/½üÂØ”êÍ«åø§È™6«}þ¬© ~¿å^!½‰3"™p"¿áÕXàB€§F†þðØÃ­Mm›¯ý*£ôXç±{îû™ãT(ekÎYxêÛZZî»ÿ¾‘Ñ‘`G±LkõªÕ¯î|Õ¶+o혆ÙÖØ …ë«ëíòÉ݇÷íò[‡«Á‰%b±T:]y‡Z*î;|`ht¤â8§ÒÍÿ¾/¥T6›Éæ2Á…ŠF#ëßu¾”jh°Ãá öw8ªkFMM]UUu8©ª®2 Ccš”ÒuÁ^Æ4M3ßûÞË/ºð½ì}}ï. Ëf‡úƬûÿí_L>öø\×¹òcŸœ1í4®pîÙkîûåß¿í–;ïüñöíÛ¿óï¬X±"¼‚œsD\³fÍÿùýUŸ½êg÷ÜeYæ5Ÿþìä¶)}}½S§NËr”R)e,;gõšžžîëÿõË߾妛¿~K,ž@lOŸ6óèñ#-MmgN©7r’ãJ  „Mef¶ŸVªÜË X¼àŒg_xrùÒU„ÃÔýñ(qBˆ”’®qPV(jC5 U€8 ¥G=Ë0]۱݊Î5Æ5ʈfèX®PœqJ) æÏ^ØÚ2å•W_hnj^8gqÅu}ßÕ5”t” „pÊ¡º²Ý"gFàDvÆ aA?Y¡”ÇÚ§µï?rpúÔv º"`¹RÒ4M¢êð,”2Ïól·‰FŠ¥Bu²F?‹yž§i:J }_8Â×4MøÂàšˆŠp¦¢RÀ( kaßó(Ê)’!àXj#*ÒGE‘àXú`8oݼL ’ÆòPŠ qŒjK€Y>@€Å·9q EB ¥@ÙÄÎð«_»eçÎ}·ýà›+Î\NPCTÒ+§S}}ÝCû÷žèØsdt4ëy.¢D_ ¤Fâ™+–—J•q"îXÎ\©TñxŒ î„ÀÒ¥KSÃ'Gû2$–ˆí8Ø=’wð‚kÿùýÿtÖò¥è9eM7…ïF’ÕºÖ­0¢DÆwë ¯RÊè:qïƒ ^vÞ™¨PcÔuœK/¹`ÛË;)AÈÈ@Ÿ’pˆ(hr^£™Kë[£®¢J2ÛÖ…$iY9KÛ]Îb~èCŠD“ÙLVJô|7ŽØ»XôÇÕuuMw]‡Z_Û:eJÛÚu«ó…ìg>{U__/¥t"‡(X—)eŽãpÎB¡hÅ.I)(¥±hÝšs××ÕÕw;áº"Ø9ç¡PÔ Y±h8¢„r4nP¢išnY¦ïÚ@X8•²¤i¼X* 8q|×k¯æóÙ J kjj"‘H{{ûÊ•+#‘È¥—^jYV}}ýw?ûÿ"èöÛoª®®Y0AmuõÎ;¬p(`^_õé«.ûLj³ýõɦŒUÔu]*)”ŠR#áÖ–IçŸwÁ‹Û_ø‹y³H Yì •B$”Ô±½‘¡ôKWî9°ûÜs×ÿêŸø¾Ð Æ9åœ{ž ã'Šž6}Ρνuõ縶'„`Œ# QRúB¶6¶ö vÏlŸbz4ËÄ +2â!_‰šdÍyë/zm÷Ë?óè‹ÎÔ4.„„…Œˆ§ è”IåiÜ@”œkBxŒ2Ã0  ¡”Ò“JRÉtMw=×0 %¥RÀ)èsΨ@‡+[,pÂB¡i™”PNXu¢: =ض ‡ )%J¥ëÜQ¾Á5Wú¾ôÇüI E!=Ψ¦@)оë!‚¢Š“*è!c Ð òªÇ[b™&'THIÇã=`¬¹¡( E (4 4  XÛc¼ B€b¹SB*(:Þ%AëÀ¶_ûñ]÷]tñyþà¿ê@*™Ïg»Oö<ØÝ±çP:õü !˜ÉgGjkªk(¥Âšnä&àL/WÊÆ OQÊg\O$êjjœR®§oèôÓ—¬ÝØftý†ši€Bá»Júž]B©¤ð=Ƹ <¬J‚ϤðÜR®œO8pQv:VÈåÖ.iv×Ѫ½'ßûÞKÞ½q}¶wxv¸ºÐsÂ.W*žG•:)]NHT •B©1wlÁ#LS:$ê¸Wî--^¼tõêsêëêNœè— *R©8ºnù~^J44#•‰„c¥r©µeÊâÅ‹V¬<}Û ÏÝwÿ}¶]1 ãÔ†yC ®)%Ë¥<‡¢uµ­Œi†aq®ÊÂaC× Mã†aE£1Ó2’‰8×tf–.cÔ´tk†ni×8ym÷ží/¿tâ䉀,î«V­\¸pᥗ^:kÖ¬úúú7åíýMÅÜÄäìï{ð«_ýŠ’ɤ¯ÿÊu0©mÒ!¦aTlWIb¦/|_xÁq=1E¨i„<Û7 S dÀ ‘ I‘!(JA¡DEÆà  )P QRiÜ AF¨‰˜*©TA Ç8/P ‚ N”*È=2%#üÔy ¤”ÑS8$8’ýÔÕ×G£‘›n¸iaP(Ê…Ìñ#Çì}é¥×Ž?\,€sV)WÚš[ ¡Ù|F¤Ý½ýÙl¡¶¦®±¡¹¾¦Ñ´¬Š]"‘H˜P@B”\3)c!VÕ2yÊ÷|ÏÖ—vöã—/ZÚVÓ8Iø¡¾ô]¯œÏ9n©œ-FGt3L ß•Bº».eRŽ]&ÙÌ™ó§wtöÎX¹øÄPþ¹W:*îŽh"ù¥Ï]ýð}–;{LÝÇ£ È4jì¥aŒMbAÔ$F¥×[*tçF4ÜÔÖö/ËVÔÔ×Jì²Hš…vÅ.‹#š¦‹yÇu¢‘„”^kKÛúõ«cñè÷oýîž={(e‰xM±”¨Öcz%€ "Û÷]D´ÌH]mS2QÀ««B¸ŒrC75Í0t“1OÆ-Ó´,K7 McœQB)b•g¼XÈîÛ¿g÷ë;Ü _MÓ\¹òœU«V-X°àÒK/}ûvõ·i;ÿ^Ðwüi?üpGGÇÐÐЖ-[†††Ž9ÒÝÓýÌsO/^¸ôªO_µiÓ¦%§Ÿ^[[Û?Ò›Œƒ® á£T2ŽpC7-ý¿*%ðŒÓW.œ»”.”ÏOÙoºB ÇÐcÌb2–èÉOtwE#1DZŸ{þ©B¡ -J¥Ò©~öàUñä¢y ^ßßQ,ÞiC&‰H|J§óÐðà;òn†‡GF¶½ôL$kišôÁ\‘ɤO_¼¼±¾ñá?>˜R þ¶_FJ¹å©?¿ºcûç?wíç_¢qrÅG?™Îdýà½øÀûüã;—,Y¸%)¥šÁ¥RÍÍMûèÇ¿ûý[¾õí›oúú7V¬8óüóÏ¿òÊO,?ýÌx,Ü ï½ä}¿~ð?Q)éKD”RÄq×ó³Ùt2‘Z pŒ7¨K ¥@)‡ÂñXÕ®]»¦MmÏÒ±Hœ0>¦QWJ "8€3:yÒŒƒ‡ö-˜³• Úz—Œ3Ÿâ‘ö)³:ö¿ºbÉjDd(THˆa•J%¸Þ¾ëX†%”8múœT&Õ7Ø;cêLI(hL£@Ï¡„˜šì Çæ\)‘]7•žp©”òD,+  ‡„¯”T†i¸žGc„ûÊ+UÊ–iQJ=×#H|% Ã2. …b2™ð<Ï0 ßó8ãA„!Ó´º†:Ç)ÕUÄ.9”R%Æš3DQ¥&Ð'¨PŽ:pBûE¥±„éTcŠ(ÊùìÁýû÷È<ú§îÞ^)Å„)‘ÒÝwr í¡P*$uÒucÝÙçMi›áº6„Ã!Â8¡…“ªa=Ã¥§¶íúä?_¸nÅ|á¹Åü¨žŽq3äU ÙÔPnd ŸIy¾o{²g8Ó=04”Êåó%Ïq…ªd¢­©nú”¶Ï|òÃ\‹è=Z²ýGž}õ‡é:ÙûìÖm–nÔX‘8Hd—¾£¤IµFÃêòÊ_úé¼LeZscÚ%‹êëLÝTR¥†G}_”Ê_øÅbÞqü|>_,ìJYÓuJY4’ DUl÷‚‹6 ¹[pÛÐÐ çZ$/–òRztéŒ6gFS㤆úIRø”2By[[[M]¬©±%Ÿ«¡t]…B¡°iYfÈ i:eŒ׫tvíè}uÇ •ŠmÛL&K–,}ï{/}÷»ßÝÒÒ‚ÿ»×Ï·¼.\¸páB¸îºëJ¥Òèèè/ùË;î¸cwÇ®+>ñ±U«Vm¾~ó‡>ô¡~ýл×\`†4P¨K%‹kì8ø;¿(%+V¬Š˜q§„¶‹ôÔ‚„`Ö>®?„ ±  RäœòåËVüé‰G ÅÂù”F¥¡ë­-mg.\úâk;2¹ü)Œ×7mÈ¥rqh4Õ—¤§h:uM㌣B[8¶ãL3Ðû®R(¥jjjû#¡Ð)Ah€„xCJ©RH)E©PáÜÙó_}wcCk×Éc3ÚO«lƈ¦iJù Õ8þ¥’€èyv±”5 SIIå Jé\kkšz¸sÿœ™‹$H¥4]ÅÞžã a™@©ÎBžpW-?çúÍ´¶éŒ‚Á,Çsá cLÏÐL à8cùš&q|OWAùž¨­­lhÀõ<—ºÆ5TXôK–a†°D©¤Œ†#ùRA× J©a˜f¡PTJ9Ž£i"ó! $lYžãÙžGû¾oæPß`"‘ä„sε°Vήµ rPJ)Š P‚@Ý 6 ¸P!Ÿ.K_*TãZ ŒX!Ý­¸A4*ä(XŸ±hú@u%ü¡o'O÷K¥Ò}÷?rßý/]¼øªOšPŽJ– £>ø›Üñ³ƒ‡ÓÊ·°%ªH$ÒÐÐ0mÚ´©S§5Ô7D¢Q»ì¥‡òÅbÅu] K$5Ã@T(HA49xø˜”rÉüÓ<·’ïë‚V4YÝÐŽ× cv)÷‡§¶ýù™—K¶É—|_âx/j|±cõuµ³ «|míYg0uõËæN?|rðPW÷+;^«­©ëè+”‹Aq<Ž¢…iÝ0ššÛÛgT×TéŒ3J„¹rN)U.—GÓÍ0#‘°çy#Ã#R*)¥ëûÑXÒó\Ó4ÃsNã¬îî÷ý罎ã0Æ”Â\~4øÕâ±j!ýr9?ÞæµÕÍõu­–5 ͧ„Qʹ•ÉfÌ¢,@ž IDATœj…´9sO;v´Û²ŒH4lšÜ²,k„СžŽ=;·¿üB±˜/åqÆ—^zéºuë&Ož(ÿ¾}Ëÿ—¯ ³0‰|ík_ûÄ'>q÷ÝwûÛßÞºõ¹ŽŽ×ß{É{wX³r}8b _jÈÂŽÇ£áPȶ+¹5*%Z¦N*â!cô-”ÑÀú5Ö¡$ÁyüøÉ£žç‰žÞ/¾úü»Î½ ŠÍ˜›5}îû.~ÿSÏ=¾÷Àî‘Ñ¡B!ÿ†Åe|Hù_¶p¥¿ºÿžÁ‘Á›¿þS³nú·o¬8cÅÏ~þ“¯~õËñxìŠ+>N¡„sN §N›ræŠUOlùs¡ÿìç¯~ð‡jkëúúû'Oi\q¨TbÚÔét,š‘ Ààà`]Uý‰ž®öé³(!(•R ˜¢¾J¥„E"£±­uêŽ]/Ÿ?ïÂGÿü[Æ4I*Œ€¦QßU€¾ 7|ßž˜Ü2íèñÃóf/à†A)‹'ãNÅSJ!*¤¬©©íÀ¡=%»D}é™–@ é¢ð=@Ô5.-ͤŒI%‘àÜ9ówv¼²hþREcŒ‚*¥ÐžR’qÎ •J(‚žP P±Bn}¡צŒ1Bòn)¡%˜ã8–eI!”‚HØpÑ•€4˜5˜u¯*™(‹J Õ5MÓ4%„¢P,êTÓ‰†„¸¾1bÙüAJtÒž,!¥„S ƒCEг!¨Š’‘ŠJ9¦1Sc»fp ªRttƒ33çN>~°'°o#P¥ä§“Pϳ}ê~×sßÔ¥@ Îwoyþª«¿ÒÛ;`˜Æ·¿s³nX(Å«¯¼ü¯×yûË;”BBH<kŸ6½o ¯¡®î¬•+‰dm]}KkëÌ™3››|Ï+*ÅRöÆ£•Rã:àyÂó•Ι@_úÕu‚díšUŸ½òò¶¶*ühÊwmÆY¹&„„¢±pÄœ;gξ®¡B±4{nÕܹ³çÌž=yÊäꪚHȇ"±XTxN1—*¦S®].æÒ•B*bi×^ó±+¾xc©T¼xÃF¤®»·+5:Ì9GT##Cº¡‹y˲jê“ɤ¦i–ÆK¥":ŽƒlÛN¥2­-mJ¡ç£ÆÍٳ畊¹ž¾^OH!dKKËòåË$z[¶<±ëµ]ÁJ%¥$d,ÈÅ0,!ýr¹<ÑÉD]KÓtð(çT× ‚R× ÝŒÒžîáR9¿v͆L&Ï™fYÜÐ-DÿÕÛ:öî:th_ð3Ï8㌋.ºháÂ…_çÿží0§nÞ¼ùšk®ùÎw¾óo|ãî{îæœŸ»|ݤ¶)š® ‰ ÑX,‰† …Â_.šAÛ±#a=ŸÏ(©QÂNù@QÁdа1p… Ç!é¡Ã‡ŸZœ=sãaW===BÊJ¥òW^ý@d™V}¢ª`—»†úþʲ/HBˆšfm4Î[V¾\*ŽØÿË?ЦƖ‹/øÇÖ¦É1ÞÛwòW¿¾3•N³À“'»vu¼²lÑJJ)¢ª«mZµâ¬‘ÑÁþÁþ‰+L¾ôþªëøÔSOèšþo×ßd‘Ðy/X²déeÿtÉ7¿y³açw~mm-c@C/¼ðÂ-O>€ƒÿ‡½÷Ž’«ºÒÅ÷>çÜP©«ª»ÕIÔj©P@E¢0ÙŒÁØffÆûÁØ3ãŒp{Œý0 Ûl°D0H¡Œ2Js¨\uÃIïÛ’…Ïz¿ù½³´zõºêºUuî½gŸýío_ÿ?|é‹¿¹ÿ·¿úÕÝ##Ãçž}¾m…! á˜ä‚RêòwU"Q¶#8gÕ„QE)#A £¥"`*# äK ,sœR}cýÈè°ç—´’´ T3F,â¹®ˆDžçI…&5 AÐAÑPJ)„˜Ò:mßÝ æ-1 &…ÐJk­(c†I5ˆÖB)!=Ji<óÑ5÷Oo›Qž¨r]‡sŸ1¦¸ ‡"Pôƒ1!$c†I¨Q@ ª@û¾@$ ´’*÷övOž4%lE”Ò„hFb1O j€áûh[v±TB„b±`Yã^3œûžÇÃvHpÎ9ç¾Ï}ßbF$h„'„ 3€É &š(ø4mŒ;£!Ž›×k @”R4*…´RJ*¥ ÖAjáÁ¸ß B´ý`—”ŠRª”Ò¶¢ÍŒ>½á±³Wttô výð׊ xžûÝýùO~zw¡à"âµ×\±bé‚áá¾ÛnûÁ]wýªX,`8ZºdÙܹs·lÝÒÒÜ|ÞyçZ³ÃáŠÊÊD")¤~éÅ­¯ìܕͦQž,'„öõô ¥×ÑZoܸáü /™7û´/|îo Ó¨i˜d2RUÿøµW¿è9¬+U8p°sbuùÒEU¡h™‹1Lžw^ýÅ—_a„¢v4I©A( ž ɹðýR>›ìèÊ¥GÌèðÐàÆ&5ÕŸqÚœ‹Ï?ë±'Ÿyä‰G.}ßmSN›Ô8Ù÷]ÏóZ'§ÆFó¥¬e±X4•µLˆGk RÉ£í­-S]×÷…rJ¾Rjx(U OjœÌ ZU]=÷ô9JóüàíÇÌÆÿ쥊 =¯äyˆˆ±hEmusYY2h]eL› l›1bY¦Él‹æ{:*Ø6›;wæÑ£‚ó}û_~æ¹'‡Gút"‘¸úêk®¼òÊU«Vñð?z â7¿ùÍ‹.ºè;ßùÎO<ñíüËç^¼|ñÙ„2BѲH$œ/äNj­· GS™”m”½JE­ƒƒ¼P* p,/ ùB¾X,¼ÙÙ}ß?ž¾ýïf2V‘,ï.¹.žÀÏ<õt„M³:Q^_1Áó½T>+…(¹NñÅÿûЙlzמŒÒš u„’ ‰ÊiSOÛ±g ç<QGÇFV-=A’áÑ/üã§zz;çÁ„„Ãá¹ùV×s{ûºßÖMhЇJ.]º‚"‰Åâý½/mzqÓ¦M<ðÛ¥K—ÔÔÔÒÖMÏ=÷\ ë×ßß—H$nü›¿¼óç?™>mF,Z† € ~uß]³N›Ë¨ÙßßµçÀž3—žxÇ"C¢ ¹ E¥”RøR)°uç–K/»ì©µ˜:eºA ­%#D) t=×÷¸m0«¡¡iÿ«»«'Ô@ûJ«ä=s!;dY¡¾Î²X¸ð ƒ†…(£‘°å Ï$–ÖJha Œ UVV3Æ4hF Úñ“Y±ä9a+ì ®”侯”.|ÆX Äm›¦é–œx<ô\#ѶâŠKŲpŒB !”)¥iZ5ئ G¹à¹BžP„Šžk2CHUò<)•Ö’!詞P`̈DjÇ L¤¥Z+©(Oˬçy#cƒ­-S¸ïï+”BBA­Á ”Rôx@´ÑÁŽ*"wì}nÓÎ_ùþÆúÖŽîW;{ŽÏ/ºðœ™3¦~ñ¦ïþä§¿â¾@ÐS¦¶Üõ‹[7¾¸ùC×ÞøÔSk9¦aœ{îêOâS‹Î÷9iÓ‹×øÚpÈfŒ…#qÓ ù¾:r¤sóÆ-[7ïèïíìèèëð\Ÿs¾gÿ6DüÊ?þã?ÿÓW/¼àüd"ÞÛ×ÿ½[o;cÉ"ªE©˜VBlyåÀ—¿uçö½‡6nߊÅÏ=÷Ì&CŠ€h˜%T)á{n1ŸO ÷wÞ½ùO;_xâÐ+›úÚeGúÓ£#›÷¶?ø§e6 3¼ôÒ‹7oßÙÝ×3cÊ B-7á&”`±˜KEÂv±X …¬ÀéÀ÷})õèXJ#Æ"ežÇÇ—R!•R%§¨4,^¼ðÜóV<|èûÿúýþ¾“–,ÆÌà¾eÔ¨ªª«¯Z[Ý•û[Óԡ԰Ñ¥–mY†Ùv,ZFÑìè8°bå²ß¯yüÞû±uû‹ÅRarkë÷oýþ÷¿ÿ¯×]÷áI“ZŽózÿÇd§^ÿ'NœxÅWpÎ7lØpðÈ-Û_š9mN<¯®­ªª)_»î'êh¿á˜Ö6->Òû‡» …lp|Ò¤i••Õˆ Q!Tk¢(JldtÂvhÕª³zz{öîÛsR£â_ÚYb›–ÖºxHßü Ç´QH2M–ÅDzéÁlJˆcA«þ›%5I·Ú=&,u*ë¦÷”O|3Ç)<þäoŸX÷pcý¤êÊš¦†–‹Î¹ì‘'ësA×U7H©Qjßþ=fêñ"M&—¾èüK['O}ú¹'‡”ã%oXCÕ •÷ùýCžð¿ùOß1?òáÿî¡ßZ–5kÖÌë®»îüc}}#!,‘H|ýë·\uÕÁ%¸ã‡·Ï™}ú«ßWSS³æÉÇ?}ãg´Ô@ j!ëkëýý﮼ôZÆ,Ó´†FF&TM@”@EHBˆaZT ІTÂs|!Å„Ê Ãƒý‰xrlh(<Ñ@j­•â5ù4  ,÷l+¢”.zN,"H1ô8ÈB¼,ÞÑùj>›'ÊMÓ`†)•¹%!3Ä…ÒmfûÂknj}â©GÌ[*9t¡(cÑPÔ÷½f”"A°¨éƒC€"` g¥ $¾æ+æÙ^ÿ@ßĉ "J9D’Œ$„¾ÃMÛœÇÂQÃ0±à–±2Çs-àHb¡H¦‡BRkô¸Ï3ÓÑqK‰xy±XŒÄ"¨QMˆÒ‚=½ @ƒ"–«V26¥!HM$„ið)E  ÆkÖ”0Ô )é"Ñ •DJt¡˜ß°y­ÔêCïÿ[Û`:hŸ8áið}þÙ/Ürß>PÈ᳟ùÈÍ_ùÎC=¥A3ÆV­\yÎÙ«ó…ÜK[^Kuuuýü®»kkª—/]•9Ü72šå¾§ Ž[Fk¹¤T+¥»ƒGqBeÅÄú:éyBxmSZ.œ÷wŸýâÝwÞÁ “ +ùÜG©´ã j˜©–¾¾ï‡º;2ÙŒëúžëy¾7:Ô?Ü×ëä²£¦I-Ó° c4WZ·å€PÜß¿{w4ÿÅgoÝñʺ?mxyÛ†gœ¯¥¡¨-|á†Ã¡îÞ.ĘïzÑhÈ÷…aRj ªàLf çB)-µÔš êæææ«–5·4ÝûŸ÷=üðÃRÊ“ÆÀÛ$¨ÄËMu“š”P¥ ¡!Ö²-€0¢LôÃñÞþΆúI¯yèþî t2ÛÚÚn¾ùæ~ô£'Ö\þ'¡o3Ú¶}ë­·^|ñÅßøÆ7žyæ™ïÿÛ×/½øê¹‹¿H9® Å]¯$?銤ҩææÏu¨f'*—f­QAð󵃖•%¦µMŸÖ6}bMµm[zW)!Àß¶ŸÃñk,”Lås÷޻ɼūP3BË#±šD2ÄŒa†-Ë d¼ƒôó% hÓélº¯¿{ß«»9 …PØÒ4eúÔÙŒ€°aó3‡¾zÒËÏ?ç’ùsÍš>wåŠsë›(3ÒéQÏç'rÞp²áðáƒý}‹-¯¬¨MnÚôb,kkk{à–,Y,„ …B---8xðUDäÜß²eëÒ¥+&55?ôðƒg,^Jˆ¡„–Bs)['¯Yû83XP*.9ù†‰Íó8ឌWs D$°4¨ÃKžë Ù–ÕÐØ H9?B¨ašBJÉ…RA‡˜âœ‡#á¾þŽêª:ƒ1fÒDeÒ)8 „”ÜçÜ«¬¨mï:\[Û`ZÖ¸‘ˆvñ\IMÆm0! Å(ˆGã( áœêK¨Q*É•@\pIJCB “1¡e@ SRèòDùÐð@$Vf2+Xò˜a0j(PŒ’à¡a„z®K u}× Ôu=$ÚqÝP8B( Y¶ã¹ápˆ"@)h”R)©H&›Ž—%uC ´FcAk…ǤÝ5h…„ ÷ý¡‘¡É­­J()TPäw¹Ò`Ž{dbÛ–Rþ#û×m|lÖ´ùKçŸePHÙwtjï>|ü¦éìêá…ÍADZÖPQYþÒK;¶lÙ¥A3J'Nœ8<8ô†:Ä}!…fĬ­™826\̹ٱBOïp:“徯´–j¼}C?—O÷÷”ÜB*=<–€_û¡©S[%÷•0eÊ”ŸüìÎ)“'MjjŽWÖÏY°0™ˆoÛ¾óK÷±O|ìƒDIÏɺÅ|1Ÿéïéé8zäÐÁW;Žvtuttut õ÷§Sißç2@§(Rd/î9º·cPkœRWJeR£'Ö-^0ïá5kó…܂٧R)Ïu}îõ÷÷F¢Ñ‘á¡xçBqŠf±‹—% ¨­"ÑJK…UZ‚7®VZXG8bùž—JM¬©SZIþg Ä€HµÖ1–ÖP(e6mûSwÿ‘ Ïü@Cm€óÉ/\yÙ5ÿôÍÿuèèA„7hÃ×ú86 Ï¿ðìÕ×½ÿ¶ïýxåŠUOýñ‰µkŸZ¾|ùÌ™3_yå• Öoذ¾¢¢â¦›n~衇·nÝ _\ÿÛß=0–›1cz(ls_¡¨R^uEÍ”–6O”âåñ‘ÔH¾˜/‹Æ„V‚2˜àB/ØàC-Í-?þØ…ç_¶îÙ§€PBQ+EI ®¢(%V,jf¡PrŠh¥‰®¯mìì>ÚÚ4E¦´ó-e”„Š´±¾ië+/•—WFiXKøi @uÈ´@j_rJLBˆ",¥F*“U.÷ ’/2f(ÐH˜Y®ï*­LÃJ„­0—4š,dLJ2l ²²bBß@IM_ø”P;¾à€ÚbVÉ)–›å%׋Ej[6"õß0˜išÅR‘ f\7Ž "RRò\“˜$E¢1„Œ;N‘ UZ14”ч‰¶DŽš(Pj\#Š‚–Ôu|f˜¦ÅWZ«q‘DÚ¶ ZJ‰@´RP(å^Ù½)™¬^±øüãlµãÂl€x’:?Nl¨éë –ÝéÓZÿíÇ·-^¼Jj]È÷í>¼ùÅý}C¹|®ä¸»ömmm™Q]QçsŸ úž›Í§3ÙÑB1{ü=Bv¤jÂÄŠDEÿpßàP·mÛ‰dB+¥•PJŤT¹îêÕ\ÞÞÕ=+Yx=Om®wò#ZJA>Syuÿ«Ý½ÅB~瑞Šx´®ª|æ¬9ó—,ÉJÿðÕoƒVÉx$‹¼üÊãÑ6¾b1:jmoooOww8Òâ@ Ì°¢±X(dŠ…L.‹E•VéT&•Êø‚'bqÊ,­µFZUUõ¾‹V‡Âæ¿|ãŸvíÚuRM‡#™¨sÜ|±”ж]¾ìì jŽéD„B ÈaŒÌ ¦a„CFwÏá • ¦zqóSýí—}ô£½ùæ›kjjþ‡qAßÛ±jÕª'Ÿ|â’K.ùÆ·n9¦•£`x¬ï êL6í ^[S5:œ:qÁÔD)¢@—âyƒÁv¾²íõ )ï,`Õ¹ñÁcZPï>ÍbH¦bETZ›„s¬X ”fÓÇü†a¬T€¿BqL›6Ý-¹££ÃE§(Õ;œ+¥Ô«wäš‹Å.<ïý-M­Z)¡d*36^v¡FÊⱆ†¦ÃG¾/ÕßßÿéÏÞxé%—Çbñ|>»qãÆ… Þ}÷ÝÏ<óÌO<166VWW{ùå—n½ýÛ¼òÚùs!¢Á˜çúH4"r®¢‘X N6}ÊŒWï_4wñxŠ%ÕŸ“~DÆÌòŠÊb±0¡¢"ŠôôvN¬mDg{&Q"p쥘(KòNEyÍÀð.jÚ”$hk<’@›*`k«&ŽŒ5 ”Æ—œ‘Z„)¥aK®xyËúsW^D5W!fÝ"j4åJF#á˜ÔBk,:% H)Ñ8þ-Ïó f€Ç+š¦e™VÉ)D"!)•e–çûŒ RÒáܶC¦e¥HÆóÅ‚išœsÓ4Aƒiš ™ð”ò«Â‚ÌÐZQ¤’HP“¦ d‘2¨æ @c¾çöO”J)÷¡ð£Œ >–ëê9bæ¼9ËCvøDm÷?³æNÞàb8ò\ÂùçŸyû¿~«¾~ÚCrÈó¼­[·N›6ýç?ÿßû÷ï»þúëæÌ™ÓÖ6ý[ß 9ŽŽSò\OKRŠ9J£F¢µH¥ÆbѸ—ôfNŸýâËÌZDQk¥•B¤JkIËgŠCá°V¸háÛ·o©¿¨YIiT1ÔˆC%PøRpA9EG«€„ŠÜ÷‰méÀ„I°‰?ÆäÒ5•u‡;4×µýœsáBj IDAT‚h05ÌPZ0f)%=ߋǞ/\¿DBBPÅ$(,Ë"ŒRFçaÛö„O4Ä …ÂBzŒ1!%L)ÕXß8<6Ò§$“Ñ|6«µÉ˜ÔH)e–bÌ4 ´mk,=˜íÜŸÉŽÖÔÔ¬[·væÌÓNê™þãk&".[¶lÍš5—\rÉ©caðLJZ¾ìÌh4 ¯—;u |×z3Âv(ÄŒœç¤ ¹7çˆÂ¸Ôø§ ,Ö&a$ÀÔ f‡´’!äa(—)îp¥K¾TË=%|!|)#Ìðˆ,rï˜0©þ+\ µkï®æúI±hY}mSCUãàhÿ+{wuôUÙÔé“fEkµþ¥gÖ¿ôŒiZåÉÊÁ¡~Ë´/X¨·íØœ+äó…|8ùúMßþÔÇ?óµoÝ´{Ï΀KñúOxüwÎùž½»çÏ_¸gÏnß÷î»ïÞ³Ï>çšk®y饗2™ çüòË/à‚Uõ‘ßÿnù+V._N(!E×QRÊ®žŽÆúƪʪM›^éw|7Â"Z)eHª´$ )ej\"SkоëDc 0ÿôE?üÉ­—^pU„0“jA*¢£ZAB *¥Ö ±¥ij{×áÓÚf+TžG‘Á\ú¦aQÏu¹ÛT#†ér7l†<Á)2ð|× †Ï½Æº†ŽÎÃÍMSˆ… ©EbÆ„ê £##>!+âsÎsDÉ0Œ¼“#ÂV˜R&$'H-ËV\p%$wMâŒRM f8ž›H”1Æ×AJ|ϳ,Ãó|EÐ0­X(Rr‡MfŒ¥ÓÉx\p¶BœË’_¤€žTÚõÜ@ )RPL›–M]O€R¡ÅL µ4´ Q hÀªÑÂ@H¥G{º]·TžHΞ6OÊñbÕ1;ŠàÖ@‚ã¢ÂJ©CíûÚ;_=”Ï]¡PD„³Î\qäHû×ý -"g,Z9kÚ<%¥Êb–ÝÜØºî…ÇGF‚Ç7d‡cÑrÛ ‰A”Zk®tðŽyÔÚdÔÕÕh-…TR ®5£Z«ùsOËf Û¶nª)/+e3Q)9Ü?ÜÛÓ382âú‚:¹fB*ç ¥ò„àäúšß<øèá®þãÎú˜Ÿc¥Ìõœ¶)³Çòl,›/ù~2‘MŒ¦:º;«&Ô^tîÕc©áÞþΖ¦)0<ÚoÛ¶²ÓéŒ\k‚ˆeñä´éSwïÛ¶gÏn­u"QNI§Ç^¿‚i ”²µ­¨ëå0—Ëx®—H$†ì”àÒ&5,Ó´MƒY&Ó|îñήƒpÕUW}ï{ßkmmýKQГ„¼ßìµ'ý×;–Û~˰ô–Ÿð$±ï7;òåB«V­zê©§.½ôÒL&sÒ›žôIÂcÝJpú¼9==xlÅI&“Mu“LjY–í–¼ÑìÐúMëöÜY,æ)¡ [fLSSÙDÐtßóýÀÇC‚£JgóÃcéþÑô`ÑÉzÜýüç>WS])¼’ð=É=BR†€ˆøè㨮ˆ×VÄ ùl©PÈ¥û‡Ç²…¢Ò`f,µMƒU—ÇûhïëŸü€Ûv¸¡¾9›M+)ûûöÜísî8N*!¥±X*Æ"eÑp¼¼²V+âû¥”R&…ÊrŽk]}CY"üÜó뺺:m;ÔÜÜR*3™ô›ÑÓl+>¡r¢RªXÊ[·Šò‰UU•¾+8—†aÛ65Í2ƒY}7lz¢ ·²²â¦›nºýöÛ«««OÉÞ>Áþõ/³Ó¾çQð cØ{uäÔ£±±±¦¦æ±Ç;Å ±T*Í›·`t4Ý××{œ,ÓØØTUSwêó¿Û@È#€×ñÇ·B&ƒÇ»Ì°’‘ˆMHÜEÍEâIQ~Â#‚RõÜœç •ri¯”qKÇDõõ‰î1k_Tïí_§F@“™x¸ý`2–lïiß²gÛ{úãå±ö9Úq¸««ã’ .;múÜ»¶÷õ÷(!V,[µxá²í;¶¤Ò£oMܕ¶C¶*òétº¦ºvá¢A£CccãÆãñøàà !ttl´ª²ºuÒtB@*åzü?~óóóϹlú´¶h,²}ûöÀ2¯¡®!È5‡B@‚JAJ‚E„P{÷íš5g6ÖÙu„³©±ÑZqŸG"1ιP20 :þ °Ñ±¡ªŠ(z»"h­ 2Jí”JñxR)AY&c† J(áû÷µTH€2Ó²íýö´Mž rÅ\ÀܲLŽQ[Ak$Ä÷}©„e™DSJ úÂ×J3ÃШ¹ç™¦M(±TÒã~"’( \óX8¸ grÙ ©QIifÐî#µR\hÓ´ h-¥Fо/”Ò¦i8žc2›1Ê(%„ÚÔ–šKÌ ¡° „M•’„Òc艦”8°+OÎl›‹Å©a2µ"Bˆã]FãP£Rª½÷ÐÆ­ÏjߟŒ'ϘwVÝ„¦®ÞÃíÝ_³y%4Êd2¹PÈâ\$“ ¥T©T:cþÊH8”+dŸùé ›ŸÒÉÊ‹W`ZË,×ñRéT*›òJŽëe7£µVJ–¼â¬™³?õÉOE"¶_Ê áKáB(cJéR¡ðÊž=¹l¶­¹®T*2Ù±t>“Íe E×ó %&3¹”—±¨•)ú݃©¢ãÉ×QÙµR©tʶ­‹.|ÿUW]5þüh4n²Ðâ…ËW­8oé²3›Ž92oöªp´L)éû¾Ï=îû†Árù´”Ê0ìiÓ§¥_|i£ã8uu SZ§9r¨°lÞdµUZV–׆ìh*= µö¼R$oll ‡ÂŽË™aYT1ÓnïØ»iËZÇ+¶¶¶nݺõ¢‹. |³ßY àœßzë­ßøÆ7<Ï›?þë_þüóÏ Õ××?ÒÝÝýÜsÏMš4‰1öž¬Q·Ür˽÷Þ{î¹çS|ÍØ¶mÛ'?ùÉB¡°`Á‚àã½#é:%¤ä{EîùBŒ9ÅQ§˜¼Ä=Wpu ìÑouæÿ†V {eqßÑñX<›Í¾k±,J+ç¶e %„”Ì0l3„H¸ô 4A*a™!_úœ{Ì4ûú»ª*j¹%¿²ÃZ+ʤ”kiY–’Ú²LÓ0Lf)­¹TŒÒ‚“G–msÁµÒBH­sÎR‚FÃ0FFG’eq èI—"!”PJ´ $ú¾Ï¥@BƱ %glt1:½uVeÕÃdž+(%(¥”Z¥øÂïè>¼aËÚÍ;×›†¹dîª93ÔNh@¤ˆp´ë`{Ï¡“ >)EëäÉ=úȧ?õÉM›6÷õõ-™·´2YõÊþOoxjh¤O)¥¦4OûÀEaÔIº¾/¥PJéz¼àó‚ëå|Q:Aèèìºø¢÷q¯ 9WÂ'”RÓ”Bå ù®ÎîW_=<ö”b¾Ig3ÙlÉuJŽ'¤F€}ƒG{G™i8ž<ÐÞ績zcÛ2L&Ë¿zó7/ÿ¥§ÍšQrJmS§  <üj(lY–ÙÙÕ~öY«››Z3©œë8Ž[*9EÓ2]Çñ\/^^Þ:uÒ–í/¿úêJYCý$Ã0Ø+Þ[B Ū«šÆÒ\x ¡XÌNž4£ºªªTp)1=ßßèå]{_Ž'ʾüå/?òÈ#±XìÄdîÄ€ûï¿ÿïÿþï;;;Ÿ~úé•+W666ž9=ztáÂ…=ôÐÕW_XÀ%—\rûí·WTTœqÆï>L¥R—\rÉ®]»Î<óÌÉ“'¿þo¾üå/?úè£GŽùèG?j"¾#ï ¾à‚ Ö®]Û××wŠ?.]Æ,_xÙcjÑhÙ´§½EF÷NQR Û¶=’I ñ¶Úç !65@CÇØ”*Ì ‚d¸˜SJ$‘2Æ„ö¤P¯…•ÿ/¦a-˜1çHwû‘®#žðNQCØ }èâë^mß¿ëÀ+ÙBæ8|qjçŠö®£_påó/>«ìÞ³ãþïùÔÇ?×Ûßýó_þQ_}ŵÿüµïÜô•ÏçÞÈòµ÷îèh·,Ëó¼îîîþíõ×}Ķ $xà 7\ýõßýîw¿ô¥/M›Ö¶wÿÞŸÝõ£¯}é[H(°C!B©àJ•<¥tscËs/¬Õ \×aÓ3é|Š¡ñÁ÷ˆ€)…4 ÐwxÁe8š6mÖãO>úÊþWfN™ˆŒQ×áJi H*D €R%“‰ôX&ŽKùòxR) ‚4B(QA¡KJ¥•ÒJrX¿RB54B)I 5©á Oß¶BÃcƒñX¢Ü0˜ÖZ£ö…ˆ„BE§¤Q3Ê(.8!¨H" j€Á9¥A÷¿…E§H©Ž…ã¾_äšRƒ™¦e˜†Sr % JnÑ0,)¥Çý°ö}CfXƒò¹¯”DÔœKÔˆ2_øH´&H !$*mLkZ "=fÝ©4ttµgré3ç†mÛ+ŠBÞ èJ„D‰šHÉG³£{öm=pdOUyͼÙKªš)cãÞã}ê$˜&X‰ç>ïž_ßSYYyë­·nÛ¾mrSK}]ýº O *PÑP„™&CsÙüU™l*_( ÷JyÏ/ á+-k­cp̸?—i„š¦éØûä“O<øÐ#—ž·BK¡´¥X›û~ÃÄšG‡F¤TBß÷‹®+„” ÙOÃ0Fó)‡ó ÏYy £_HýÆþÌ]‹Æºº;ð£ÛöïßGB@{û¡à)ëêê™7wþ /¼0kÆ2ß÷ßçu >/<µö¥R1ŠÔTM*9Ù·”Ï N;–hj˜Yž¬)–²ˆP,åvìÚÔÐx55eáCí;ÚE׬Y³lÙ²wNJ)ùË_w»çy÷Þ{ïŠ+N,¹ k­=Ï º„ƒ122rü织ÄIw8þËI#¾ïoçÈ;¿ûÝïV®\ÙÙÙù¦°T€cGAD{‡e-­·£|;•0Wøi¯”w÷ œ»J ©h_Š’ðsnÉ\ïDü¿l  ¦Ï»ðŒÕ-u“NÍBÒ£™×u–Ÿ¾âWêÜ%o )¼>c~yËzƒ²ù§/`§µÏüáöûΙËÏäœÿû/~ô½;¾1¥eÊgþö^k2ò›8­µï{¾ï3yÛmßïìì\j•••Ë–-¸ð ++&TWÖl|ù…‡Ö< µ²Í0÷}@IPB¤R•É ¡Õ‹›7Þ÷»»ŠÅÜ´æéÉdâ™õO!jŠˆ@ a„Ò@¾– I1‰ñ‘k?vßýw;ŽK¡tܯ‚è QhÔÈàÀ—*‰•Jù îx\oP"• °bßw)%Z+Ÿs%%£Ô0 Æ Ã0 hô/ù%ß°¶¦>NùRJ-‘J—€"A aÐPò‹\r@4LÃÂõ<˰LÔRPZ+ ¨ 3MfÌŽE£®ëH©””†a(­5\ÏUz¼2hi°íÖJ£.ŠŒ0Á%C€%îºÂ•ZÅÃ1¡•&Ú2,Ã2|å1f(¥‚Ò%"ÔÐZ !wìÞl[æÜ™ó£¶ €H „ ¡(…Ô {:îô®ßŸ[ûÌSÙ|jx´Ï÷}Ïó)#±Dh×Þ-/nZ_*ËË«&TÔööw\`ô–r,–²¾_ª­n=–]ëý¶ õíÞ÷òþƒ/½²çÅh4òûß?¶lÙ²÷dÙÙ¹sçöíÛñŸø<øàƒa三ü_DlyéàñÖðS¼W8˲$öíyÇQ¹¡¡á¶Ûn;ÕÖA­_ë_ˆ¥@¨A]g(ÒÇÆÛ ŸZ+­4(­áç=Ǔ‚+)Ç ïÁÙþ›‡'ü#=GAéòxùYó—Ÿ>uvyYr\è øóÄÉÔRÊtn)†íðŠE«¾øÑ/Ï;mAe²âôó&7N‰Í×'Ó۵뺿}ìþðã¶e7ÐîÝ;!(¥üÃS_sÃåÉDâÚ«o@DrêO@4×Zwwwõk7çò…À¦çcûØ}÷Ý÷ÙÏ~¶³»ý3ŸþÜÒE+þã?ïܽw§aË­Ú¶s Wʲ ÆP)ý7útwÿ‘)“Ú.Y}Õ¬é³W-ZÕÕÓy´ãÈ8OiH‘RJ€kÐÀ,:¥eÚ«/zà‘ÿ¤H(5ï z$!@ ¦aÈqÒEÐrG Cj4Ù»¾g2C Z2J‘0Dk%#]TŒШ4§”55L:Ôq@+1Cžï¸Â3¨!¥tK.£¬è¥¶"”0)”I©mÙ©>Eâz®/ü|©@)5ùÜWZ»ž6­t.å .¤oLH!¤ô|?(|z®§µ š:ò…d̰L ¥HPË )­‰a  @"%„iˆaÔT€5 A!E*›Ú³oǬ§O¬k¤ ¡R¹ÔŒ2%õÁö¿¼ÿGkžùÝÂ9Ë>sÃWW,9·,G@$A¥¶àŸV'põÙç$É£í_ùÊW<ß[8w~Ooï`4Y¾hÉ’ ”ÒÉxùðÈàïŸ{ô…Ík;z Ó¦µ]~ù7Ýô?ýÉÏ¿ð÷ÿkbÝ$­ B˜ÖJkhžÔ\,ÇÆF‰©§ˆ€ùBaëöíœ{RJ¤õ  ƒ%Êbõ5Ué|I¢æJ _h© Ñ}£!esMEYØìNq©fŸÖfšè7Ø[¦•wJzþÙŽŽÃ”ÒWê––¶ÏîæO~âÓß¿õ6ƒZk×u<Ï%T÷ôyyó†Tj,™¬˜9cžÁìž¾#œ»ïÞÒ4[+ÃwU”WG"eÁTK)Ö>ýp<ݹkC"Qöä“O®Zuæ;CAOŠ@Zë{î¹ÇuÝY³fÝ|ó͉D"ŸÏßsÏ=Ç7:wÜqÇŠ+ÀuݹsçNŸ>}Ë–-•••‡ÒZï{ß³mûñÇ×Z‹ÅÛo¿}É’%–wyyùe—]¶yóæãq®P(Üzë­§Ÿ~:!Ä0ŒeË–ýú׿~Ãæ:Ïó¾ô¥/…B¡§žz*8’H$1—Èy;GÞñ¸êª«n¾ùæ7 „Jê“FýW „àK!”|7WúÝ˹ýwÔ¸¯ýà«]‡´R”°%³^qÎûçµEÎX8§mvSmãk§•ÒJ ¥ç¾Å¬‹W\¸zéûLf^¹úò/Üð¥I “Oº>rãæ-œ’³ìŒUùM´w­ŸØ<é#c£ÿü­¯VTTÞó‹ß|ô#7ÂÛ»¥´Ök×®}ø‘‡Ü’§$LœXO)-rŸÿüÖ=÷Ô×núzõ„ÚÛ~òíáÔÈyg^ð§õÏæÒE%UKkkWGY$yíå[yÆùŒ̰B‘ØU—]³æûž'¥`LJM(UJ2fÊÎ=ë‚C‡÷eÓHÛ @—ô8‘_Ḉô¸Šià&ˆˆ@@a RB0—K›†%µb†)—KÐRW‡{„€iX\ðd¢<—Ë2fxž2Ã&aR@ ŒH)MÆ5‰V"B›  „J)ãe Ç-¹Â-”òJI­4DÂ1ȹ(y®eZRÈH$ÂLSJi›¦ešæE@iÇ)qåk-4#”èÀP^!¡JI©80jÓˆBIÇ÷ŽțSóæ.”kßW¥Æ¹TIßPïõ©O%“É7›çw° !ï4*¼Î£ö¤•ÿŸBòÍû¶í騍 ¡a+¼rþÊÕKÎëèjªšxγOú~†Á”TÁéó’Rªµ©eÙ¼eë·oȲ¾ôúp(z’/"J%ïüÕW-?×`F ÐÛ×[[31  !€ë9?½óG™\ö†bbmÝÛüøBˆoû[ƒCeõêó×­[wÍÕWwt´!ú¡+¯+‹÷þ×]Ñh´ÍÞž®t:wú¬Ó·ïÚês¡5¦Q£Öå‰ Ì´ŠÅ¼R ¹”° [+°-“”cÁüe[wl¤„Ñc†2”¸xA I%ã²2ãMJ©`›Ï¹ŸÎŒ•'*­M(cÌPZŒÓ´ Ã(zNȰ(1”Ò£HëûžišŽW$”H%%ç\)åù¾RŠRÊ‚Lœ1öl­µÇ=©$*µ¬LNÈrBˆDYÒ6B¾ïAÔèú^,×BrÎ! °LKªS¦e@Ó4¥” ,¤ÔS>¥,Øøž‘QF”@(h‚˜Í¤++ªÛ¦Ì4#@@+DЊh%ÓãëøõwΘrúÕ„ßÙ IDAT'®ýbkËLƒš@‚rë¸ ¼–^˜³¼"£„Ö74þôßú ϛ¦uÖÊ3ó…BÉu–,Xh[ÖÐÈÈó7lß½Ã>¥tõ¹çæï>_^Q½yÓö_üìW?þÁÏ{ä‰#‡ÛK¥RÉI;^FH7 !’êêZà\¸®ZÂ5ø@8ö|_r®¥TRj­EFHy²¬,B Š@ìµ$È( ™ \ÏO&ËLÜPQñ†[=¥T±XȲ¯„Rò¾þ×uþë¿þÓu­µãeÜéºÎä–)žE6ãlzùùB1ûŽW Ç-ŒŽõ7LœvâÞ@ßu×ÿÑwiwøƒ>˜J¥l۾袋ñꫯÖZïÚµkëÖ­ÁŸÝpà =ô"Z–õÄO<òÈ#Ó§Oß¶íÿ°÷ÞqrTWÚð9÷Þ Ý=9Ïh$²„„$r¶ˆl‚- 6à ƒÁ6É`¯ Îxm¿Ëz½»kÀ˜ &Zˆœ$”P@9F£É±SUÝ{ÎûÇín²l Ã~Ÿ‹¿žêêªê[U÷œóœsžgáèÑ£™ùšk®Y±bÅñÇO<ñ„çy¿ÿýï×­[·aÆÇ{ 6oÞ¼páBD|ì±Çžxâ !į~õ«µk×®Y³æ{ßû3ß{ï½Cˆø“Ÿüäî»ïö}ÿ°IPf®¨¨`æššš‚Û½ß5ç2jÔ¨Ù³gïmè„»Ü54úaåñr²m9 Ñ“²Äó*ü˜+%$º0—Tƒ\~ÉN¬9†7´Ôª¹—Ýj¿E°û-¢+-߸š…raxÝðóO:ûýõ+__òÆ.û|úå§|æþËæ·u´EadLDÆ”Ÿ}ÒY«7­ÚÞ¾íˆ)‡ïinÙòÖ»¯sä Ì7­­¨¨°ÃL̬uø[o|õÍ—‡5ŽÜûs„…_fǪ­mû-ÿrKÿ i}Úi³æÎ‹ûŸ¿âòç^|fö%—Ž1âÕ·^^¸ä­£8aÑÒédO:vÖÓs B-¥(Q°ºÆM[·¸®ƒÂÑFkf³iE¨•ï )ñ¸£Ž[´x1ŽPJI)sÂ=6o…H é ÷‹¤€¼-dDTÒ&£³l4—”(©¬²10²Uj%êÀ•. 2Žã±«œD¬Ø÷\BZkG*˜BrG$ ‚µŽ´N§£(4DR*Cм„!Cš<åö'ûz“=¾6aøžO‘.).eš!Št…L†‰ƒ0bàl6kˆ¬$æ˜ãk6Ä&Ð2†ˆ 3³K!©„À #«+ª‘€@%•u‰¢(ûú»sqï­‰XÉu_ùþáSŽ“Â&@²Ì…Šdf&ë,YU @£GŒzcŸpÌIaþòî»ñøcŽÑ8rÙêcFq•ÿþŠó—,êíï=dü¤ãŽ:®iĨi‡öÎÛ ¼ÿ±—ç½¾yËÖt& Ú„©L‡6iÏó¾þõo8J¹®dfH§Ó1§Ô^ ûúS_J‘1¡1š£ÈJ‚3è„ç2˜lCQ £Ð(`D`äþlHÌžëÆ|îko.zù^FJgö(•ÊLÌfh’¥³«†몊_|aåª÷´ þŽ ææåÇ))©B€nºé¦K.ùìÁâζâ4iÒÔ©S™ù´ÓN«®®&¢ßþö·C чÖÎìíÐÏ<ó̳Ï>ûùÏ>•J½óÎ;K–,±‚9¶óÁ€™3gΙ3Çó¼x<þÝï~÷öÛo¿êª«ÊÊÊ ;ÿõ¯}ë­·c~þóŸŸþù…âÕÊÊJD¬®®.l¹ß5ÿø|ë[ßÚãTŽòýXÿˆˆðÃD }¥*üXSiùèÒŠšxq±ò Ì‹%¤#زpYžH P/®‹{¾'•å£ÙÍÀýZ`80œ‘¬xoÙú•DĆ˜L,Q|ú1³¶u¶îŽýnmkyeÁ«÷?{ÿ#/<²býÊlØn¶™GÏìèŽû‰=¦Žøå×^¬«oPJåW¥sÙg¾‹Å Û¤Óé;îúîÂE öôSN:i¦ï[9õWù¹çžy䑇³Ùhôè1D¼aÆ9_žÓº½ÕK¨+.»Jüãã˜8zÒºM«9¨«©=öˆ_yã9"ae½€F½nÃjC$%`ŠÂÁÁ>Ïs¤p$ )$"ŽÑ”Î${z»•Rvd¥uÖ@@®ÒéT"Qd›DENy˜´ #)”ëù• @VS‚™™µŽˆ(Š´1,¥´ ·†Œ-¨IÄ}ýýd?²DB•%JãN ‰(™JFQhHÒŽãä%8ÒED©ëV¹Ž§PI©¢(ò\_¢€Ù ;˜JIÀ¸ç“çúÚhBRJÙ2Șëƒ+¤JkE‘Ö­â„”B” !!P…B Š/3! (dÓáÒïÝýï?Z·iÍu_øöi'žãÐX_a÷ö꼄e޳ …-ääªòê¡wuM]Íÿû?ÿN§K‹KO?õŒŽîŽÖíÛcž7ïW7µ4ÀÌ3fϾtíúµÇúö‹V­\“ÍdA! m2™l7³‰Ç‹o½õ‡×_}ÿÀ@Q¢øÈéÇ!BÍöt «‰kÖ®~ô™¿„ÙLEÆhc´1m"JgÒ©t6™H Z¢¢ØgbÏQ5µµZ›¼W¼{µ ‚ô:ä¾ç1‰M¬½}û@²ó øïȽ}½}í‡r<F„Y³fýøÇ?>¸ñÀûï¿ÿî»ï"¢RêG?úÑm·Ývï½÷& D|饗֭[·Ël³7ƒaß466Λ7ïä“OžöâDÑÞpËëhˆÞ\úök‹ÞÌD îOöï»ú ˆ©µsûƒÏ<ðÐólïjÓ:˜>~êáSϱì\>ÊLQAŽù·µuÛß¾vXÃð3O;Ï¢¿œ#˜äÝŸfBĵk?¸ø“³=ϳÏ*TTT2sWWÇ¥ŸûìÛo½ýÉó/X°à½åËß?ñÄfÎ<õ·ÿËÀ@?üÔƒ¾ç'“B¿È ÊÒêÎÎNˆ‚l_W}M}&›M…ß‹¹®»dÅ⣎:6–H¸Ê±.³‰"Š¢SNšõ—yÏ‘12£¢õ¢Á©r%0L: X)W¹žT €„9±ef!¤Ú‰Às=%¤¦ÈFl&2ñX"›ÍTTT÷öugÃŒ-©'2 hÒÅñbÏñ…JJá¢Ö¡6Å6Š\M…Ð:ŒÂ( ƒîŽL˜Ê†…Qh’餀„+Ã(PŽB:Ò: SÙ”0:›JéT” ]T]=dŒÑ†1×ôîJG3€”ŽRJ)[ LÆJÅ )xÕÚ÷ò«Ì}í…Ù|á«_¸qDãhmÂ0" &ÎéKì(QÆ<»°ãJ;ÌžuÈöæ—ÍÍ›Ré””êŒYgmÞ²yé²÷óú8cÆÉ7ßts"^öÊëoL5Ù÷c1¿Øq}G¹J9¡N'Ó]Ìä(÷†ëo¾âÊÏõ÷÷ 1zÅòÕ5Uõ°aË uM‡O=’ƒwÜý[Z¶g“Ùô`f¢lª¥¥¥«³;=Ìa3æ$Ý…t•]_^[^T_[×ß?˜(Šëˆ÷HEd’=C­þ>žîd²·½s}[çú LÁT‡€•àmÛ7Ì{õOÌôíoëÄO<¸óaww÷Ÿþô'D<æ˜cþkçeøðápï½÷& rFQ4¶ývBøóŸÿ¼qãÆòòòÇ{ì†n˜9sf{{; éÁ8öØcm ¹vmŽ{aÙ²e_|ñ 7ܰjÕªÂßyç'žxâw܈¿ùÍo^~ùåBM:,ly kþþê•W^9TÇ£PžêÇüB {€Çú¸B%$v¤’̓½Ý™tZG[ûzƒL_dMèÌ®tÒ:rAH¾ãÆ×BHQ+®K”d ½ßÙúAOûÒöm‹··,iß¶¾¯k ÈðèÒªšDÉþ¼<ÜØÑúú‹ßZ¶h{OçøÆÑ㛄Øg»ž€ëW<<÷‘E+kŽ€¬€xí¦uÿýäÞXüV2“:å¨ÓÆ5ÜÏ·iãæõ×Þø¥ííÛöæÞذ¯`¼3™L:›9tò4û‘ÖzüøñuµõÐÓÓùùË/[¿aÝ=÷ÜsÓM7µ¶¶^}õÕ¾ïÛ-·¶l^½v…1&È袢˜ç{ãÆLX³a5™¤TÊóWj»ióû,½ñÖ+Ÿ8~¦’J8Êõ\ß÷c±˜teÓÈÑÕU¯¼>ÀH!P0îèøP-m›F4ŒD`2ÆD‘ÑZ)庮ã¹Ræ$5”’5Í•”Š\RÄCD0„A‚Ã(DĪʪþ¾!… Çq„”ÀRºyBŒBC &¤W %„@­µ” 1 A"&}帞çÇã ©ÜX¢ÈÅA Ÿˆ—WUTTVú±x<ž !…R `82:ò„fƒL:™ÍdLA6d$b>0’’fB¢fjnÞ|Ï¿ýô/¯=wñù—\û¥oŽ>ÆFÑaY$9§Ëh'¾]Ôbs)ä<-53áÝ3a-Û¶2ó¸qã[Û¶ýûïïÍf2vxÏ;ç¼oßü-ˆUË×·¶¶ÖT5¸®'â^‘ãÄ# &»˜YñéO_ú•«¾\^^Æ ­-툠#Ifj*°£»­­mÛ‘‡}bxÃ(hik¿ë7÷µµwdzÓý½‹–¼ÿ³ÿó@uy"ÔQ…QE†‰Yk-;RsyEym}M:›UBz®€hÚ÷éÀ–¶ôY+•î/++½êª«úž_|ñEk«n¼ñÆ+®¸âŠ+®¸2¿|ñ‹_€–––W^yÅ6BX3sçw^wÝuÿú¯ÿ åååÌüøã÷»ßýêW¿jŸ…ÁÁÁûï¿Ë–-O>ùä•W^iA^}õÕííígœqÆ-·ÜòÍo~óôÓOïêê:üðÃG;·-^zé¥3gÎ ‚à–[n±†í¶Ûn;ùä“gÏžm¡‘\sP–‹/¾xh®KËÊc1_)9ôÞø_Fd’QÐdÒ‘³=Ùt* :3©¾l¦e°ã`okz°/H‡F'u@ÀžtâÒí ²›úºu¶,ëÚÞ:Ø—ŒÂ¶Ô`oé²}a¦3lîï]×Û¹¸}k_&½O«†¹¶+à@½]‹×.ïOŽ>z_¯Ô?ØÿÖÒ7ç¿¿àÀì 0#gÂìË ^ùÏÇþsÑ Ï;å¢Xb¿v3™ôÒe‹-,¶ÇÍêëëãñxáÓæ>{ѳ àÒ’%Kn¼á–a ð½£ý·¿ýÍø±ã¯¿þú¯ýëRЦ¦&«ÜÍ]½À¢¿oP ª¨LT–Wöô„a(¥K*<ü˜w¼%liÞP^^^\ZäzJ AÌ€èyžçÅ}Ͻü²/=ûÂS­­Í& Ù™ˆŒ&£™"`(I”é $Çs¥ëJÇ)$á…”¾ùÅ=k\`£I’ÖÆ˜0 …ñX"dr’VR…†"m4G&FfòŸ@TÙ › ÈŒ‰DÂRS¤Á0B¢”RªD,aB£@•&BGä:^,w]WJU^VázE~<.]Ïñ\é8†ISî÷†aEæ…s­ÙR!úú{þó¿ýãÿyöiçÝrí÷Æš dؘÜó<ô.¼/h7I†sË`ÚÕZœÊŠÊŸþü'=ý=¶¸ìüsÏ»ú+Wôd6®iI÷G‰x‘r”£<ßó‰˜ë@w_ ƒ€“g̺ù曆 «s58ìîê€ÁôÀÂoV•W»ŽÇDë6­0Í:ùÜ¢x1~°nãsßö¶Žþ®ö'Ÿ{µ4îN3,2FGÆ^b0†”#¢X\T\VVÚPßpì1G=~oÑ_¥g}†ƒ>k1óìÙ—Œ9ò ï¹««‹ˆÏ?ÿü]>úâ¿h[’É$Œ;ö˜cŽ€§žzê7¿ùÍÓO? —\r‰RjË–-wÝu×<0uêÔ /¼ÐóýïôèÑ—]vÙ¬Y³®¹æXºt)"N›6íá‡njjjnnþå/y÷ÝwwttœtÒI=ôPqqqyyy,ó<¯¦¦ãñø=÷ÜãyÞúõëÛÚÚ ··×ÓݽC²ã@Ö”åÚk¯-@ ˆ‹Å.¾øÓžï ¹“!ÜïµWÿPs——íeØ­;(G+ºKÿ/ç}:Ó¥SC•” ™£!Œ¼ëÞxèû¬Ñ PßÝùûs¨0"¶÷võ§Ç ¹yû6CÑú± ÿüuEJùouöu=>÷‘áu#ÆŒ¿lõÒýI ÚJìé±Üºuë°aÃS©”_{}ÞŸûÒ˜1ã6l\g¹fîûŸÿþÖÍßùÆõ×ð믽>8˜>ûìsŒ1W\qùš5kFŒ±uëV&H¥Ó6¯ª(«L¦RÊqQ„±“Öl\{Äô#…ˆ€RL™8å‘'ܶ½õ¡G¸òó_RŽ£eÛÅ@“F²¡®ñ3]úðS¼vÎ @Vÿ˜ÉŒ¨NÀB9ÊõÏE)Œ½'…D}Ç cvðë[í@käÇ1Æ()€ÈURTJ c"b–RCˆ G¹a2iGùšÂ˜ïÙýdRDp¤’(ƒ ãH'JÉz§$^ȆµG)• ‚âD<Ð+c™lÆscž«Â0ôÝX–™ ‘”"•Ê)²Aèº1 d¢($"` £Óéd<SNÌÆ‡ƒ©þg_|úƒµËÎ=ý‚9ÓŽ&ÒÄ,QXcFcHÛ*ê|(íMŠ F Hö®Eƒ „†µ<ÓÊ®‚ÕïÎÇöØð©§Îúüç.ïíh^ßfOÿĹaD†‚åkÞCÝ]FG ð°CüÉ}ú˜1c, ÊÌõõõÓ§OŸ7fÌ议úªmÒX½nÅææ Qe3!UqQ vu·#2" D$CªÏ|j¶ë*!ÁÖ»‰Elסp”:ú¨“.y„Ä<&æË}ò Œ ¥´] ÊQR©D¢ÈqÇq…… !Q ”B* ˆ;ü!„l!âx<ÑÕÕAdÈ)"C k)…m´‚€ÉôwuQ¤ ’Ž/Š'Štj…:kå祔±x\QTT‚(¢(Š¢Ðöé !˜<וR(¥<Ç—(¬mÊéÅgìçy®‹!ˆ(“•€×|éúÇÎô]mÚ­ý¶µE Î]:f[YŠVý*‚æÄèmszaPyyï±Üêjë~xëcn¼c{wz0T®š ™¶ŽöÞ¾ŽªÊªuW0³£¼ ÏŸ=qâØû¹¹¥»³où’Uóß^ Äu£,¡ëÅ*Jkš†àõ›?˜¿ðåt6UQV{ʉŸtZÚ:ï}è©í=”Õž&çð‰ãg5eòÈa5e%űXiQ¢®ªrÚ¤IgÎ8î¬IÄÊ^yã­T:µ·°¯¨¨þ¹ì®>¸£~xHªlèf»µZîÈ.ï­eß¼»ïdhw kâRZZZxŸH$G9ŽÓÓÓ‰^ö{Ô\DˆˆãË«J½XÂñ”À¾ }DkaBeM]I¹#U: ”¦Þȯ¸K€l{ ,½?bþ¶æŽŽ¶M›×ïm?#GŽ*))èbS9•JÆbñ3N9ëÕ7æñÎ÷Dܼu˧οÈó\ÇQåååO>ùäå—_1eÊ¡óæ½DDÙ08üÐ#•£”£Šñc&O°›| IDAT<þìÃ#‡*))A €bìÈQ#FŒ;ZyÊ’JÚPF‘Ö†ˆµ«üg_|rÆñ3udtéHçê„„¯#„BY&+ºŒ™Lº¤¸m),3K)lØCÌ9Ñ!¢’‰¹?ÙW_Û˜“k·ð ³($ÊfÒL¬„ "G9GR)Ïóå9Juõw5T7"¢Ês]K—ɦ¥’Ú„‘Žã:Ù ë(× €Êq"­¥Ñ&dµÑJ(­ui$ &c¢Ê²j¥„ã¹Êw°¼´9‡²0@Â^Cš9çOh­·µn«­­R&Çw€Ùu]­5FQde‰ÈNMD”«ÍwZgÃÌÛ‹çí4ià˜Ñ£öÓŸ7¾i]kf Б6¤™ ‚ŒûEƒÉþ·¼lL€§ŸrÞ ßüÆÂÅ ®½öš§Ÿz Y¾¿põ`ß  ð¼ÄÖÖ‘<Ço¨Y[=¬«·=•ìéélÙ¾¹¤¸¢²¼¾¡nDGgKd­[;zêk›”Tˆ÷üÚŠÒÆêŠqÃë§Œ}ÚŒOLŸz¨/ci~gÉâUkW¦Òƒ‘ÞCÒAÙP7º ó#7K×_½eÑ<è³å>>Ú£ÎmÁæíbüvÚå뻼ßÇGûØxGßµ,^¼øµ×^³wüÈ‘£N>åÔöööW_šÛÕÕa7())›ôñ‰™¹==ØžNnêï^ÞÕ–ŠÂ#}} Ë@¾ÛºeMg›bBU}±ç9¬iZýð±5ÉùÔU×%âE;ßc'1¦¼´ü¯ºc|/þÅËçˆ!ÜßÖrüñOÿ3i”£?fhC™ÍÍŸÿîO=žÍD0{öìsÏ=÷Ï~jΜ9‡2–.{¯§¯KJÇRõ(W]tþg^˜û”-ÐGŽL&„D \ñ‚eRcc˜H­™ˆŒ)-) ƒl&ÈØt—…ï¥TB`¡W²p¶4†™„¾ïÛ?•RB ™ ޲P)2…LژИÀDAyqiUYUOwGA˜ÎfS:ÌE™L2“Ma¤µq<_G*Ïõã„¢¸¨Ôu]2âAøÊÏ©ÿ01¢PJùžï*G ÇR¸$“IK–ɦÑ*Ô é((<7€š 0# !eÿ@ouU5 ¡D,„ð|ÏÇ 8ÌfÀq]á ¹:‚…@ÙÕÓYVZáH'QcDà82 ÒT>çºa=3Q!6¤]ãÁ¸¿úK_û×ÿç߆×h^ßÖÖÚi&2¤‰ ³Dð\§¦ªØˆ±Mo¼é¦ñãGvÚiãÆŽÝÒ¼å‡w|ïѧÿÐ7Ð+%öô·+G!bGW‹6‘”î G>zøDØÛ×ùÊO/[õnY¢òŒŸ3jŠïúÉt¦/ÅYS¤±tKGßöžþŒ†tÈ=©lG_fë¶¾ç^{çù׿mÞ¶y/h̼uÛº4 ÿ\>êKP °Å2Ìðü3O¯]³ò¯ÊÿCs„Y­ÃlFë\±~Dl£š(…=™TO6åK§7“^R¥¤Ø6Ð÷?%ä93ÎëéïL Þo]wû§ÎùÌ óžÖZ`¾wxãˆë®¹qéò%­Û[†<¨¨uÔÕÝ1ç‹_é¥ç E=…(sùòe§œ2«º¦J)gòäCîºë®¯ý™LzÞ¼y¡Žª*ª™x¨-QRÄ<k[ "×VÕ2°ë:Ž'S™TÂ/²†­Ø"2Pi£ A¼¿|quu]EE¥Öl´)Pl J9"u*‰B ´ª„(2Ùt<–2ã°!MLd4ÃDFk2!0 ƒ’5A"^´~óꪊjKsãHIÌŽòQ*G)…B*å  å(‹‹Q¨É0 $ûŠ‹‹¥D"c4 !™É ?EZS&“5l~10a(…ÊdÒ¾ï’Ì–å ‰ iF&îèÞÞ4| V®”J‚Åx¥J˜0 £¬@É”é˜ó86oÚ²¡²¢V G舵ѶäU){,,˜@Kyj“yÈélêÝ¥¯nÇñ.Ÿ=眳ΑJlÞÔ²iCsG[W*½}}©t*™Hö'Óï.~u0Õï8îW®øúYçêz‚˜rÈá©dvËæÍ©þmm{ú»{ûºº{Û Š¢††Q±x‘RjXÍȒ⊎®m‘::[ºúÚëëGŽkš2zÔä‰ã¦—U0JW¹EÛ»šÛ»6´l_¹qÓû«W¿÷þ’íÛm}Ö× ·½­»?š‰'þm’ëÿ\ÖòÚk¯½úê«6sߨØ8ý°ÃþôÇû3™laƒ‰ÿyý<åÄ”š\Ó°¸µ9k4ì^‰cC(8¦ñÝ‘úýnóâqñ+ï¾²­c«uN8꤯ÍùÖÏýÃ%Ë/âÔÉÓþëßÿ¸m{Ë¥W^˜N§ 3¢=Ä¿{g:›ùé/îR*‘s®ÇŽ÷О2å!ñú®?÷Üs«ªªŽ?þxcLcCÓÏnûµçºDF !ܲuÓ³/=ûí¯G8"QW®xõõWO<îD;#çõQ‚L˜É6™–ÉdzønÌŸ5ãÌT*es%' „#¥çy®m Uʦل°‘ôöô–••3³æBó\.ö”€Ì ´1(PëP ˆ"£5‘¡e+Oš0UŠ\ Íbd ¶…6(Ðv¤kŒ‘JI ,…ÃH®ëniÞ8vÔ!D¨#­£’¢RGÉHk›¿$ÖÀ5i&rÇ’RAàH†¡BÅÌZkc€´éèÞÞ4r¤RŽ+Èl …éL*IDN,ŽŒQc˜]¥þòò GN; hÖuÃ+»ÓAD¡F@ĆÉDd+u”G§-)D2Ô?Ðû«ûn¥¿ÏlÄãñ¢¢bÏóc^Bk2†Û;¶›ò²Ú¢DɆM+m<ß4bÂÄqÓHQ¤²É÷W¾ÕÕÓ@ž?lêIõM JáI!…”´xù›+V-$ LÄK&Œ¶|Õü0 muå+€vŸ¸ð£6‡ˆØÔÔ´qãÆN¡aÆt̘1›6m²3šëºñx¼¿hz†5޼àâKxŸ‘¡úçP@h43­êÚ^™(Ù6гw¯y¿q6‚@dþkžÒLþó+¾ð´‹~þÉL¿?¿yëæ)‡L_¼ì½ÜI2  iDÓ÷¿}Çíw}7“Íä(~sï=¿ûÍ2}ÅÊ¥˜/¾°ò†¾rõœys_Š%â×\sÍ/~ñ‹»ï¾{êÔ©K–,mkoY»~ÕÔÉÓ-õ "Ž=¾­íß³T•T:ž°˜RɼN-Ø&?!#€`@B"ˆúúa¬YÀ†¸ph@šØ·d›V¹’ ¤tf°8‘° N¬¤ÝUXÝ H$¥Î…Dìz^fc^Ìö 1J´Ì¢ !'soIÀ…LÀÌJ*à\"¸ÊQ–ãÀ#¥Œ¢ˆˆµb1˜u¤¥6Œ³Œ£ÀìHŒDd Ù9ÜþP©0Ÿæ”…ÇXáÅül&eÓ¾ŸÈÑ !2s2Ýï)I2vlí#dü¸70dÊy]–ÙnhŒ19PŒù{t:N§ó=9š_fjïØÚž¿p€°¹yÍÖmòFóp|fç/œ»Øq9¯ P*导˜ç%ª*뵎*+kjkF4Ô6­ß´"ŠB‚™]× ò¡…%æÇ³Aú# mÃÒK/½´GÒË.ÿ”1›¢¨P†aC¯…FÅ?‡Ò.š(Ц+= ÷ÜÏÇ\Oà~A(r}r –›¢Y à(ФRB¹Òñ”ã(åXÍ{99{ÉyEC[ŸiEžýX<›ÍØõªÕZ3Ø‚L$"2dˆ™AJû ”A£Ž´RÊ#…°ÃeŒ‘RE‘6†ŒÑRJ­Éí8‘Ö:"BÈÁ•˜kƒ±Œâ0””Ù³J:Žç1q*™ÔQd‡ ßšÿæÄñÓrjÖÌD†ˆ… †l6bFÛ7b˶S0ŠZë(ЬøÔÁšùsžƒÒìE ÛÄZGöEQ…Ú„ùy†‰9ƒ0 ‚ ›É¤SéÁÁ®ö®m[¶­éìnííïX¿qù›ï<ÿèSÿ–Î$Q(åV”×ìþUTÔ1|,Ú'Œ1·ÝvÛ?çÏj™?~KKË,ß.Ü“ûÍOý­Y¶œ™Í»ˆð1Q•GDWªÐè¿ 3±.* ö½çL| Ìk2î¼æÁtJ¢úäqg¼¾|þÖ®mv˜öu>ùþúUëW4ÔŽÌí¹­}û§~rXýðMÍëä×tt¶ÿ➟|çæÄüØY§{Öiç0s]mÝ«W¦3)|úÙÇ>7ûÊéÓoÑ;‘]vÉå÷þþ·ø«_ßsѧ/9rø§>õ©§žzêÜsÏÿÙÏ~Àï.zsNêÚ¢²„`’¥tÊÊÊRÙtFJ‰ŽÎÎå+–}æY,µMÚ& ‘Ëu1‚ bn¨oèîéL¥3ȹH¬Õ0…Ĭ‡8ʨ”ý}±DÂqý]¼ "B€\°Å ¤@C 9.NG ­©¼¨¬§·»¼´ÒöQ6 nÌ˦³†ŒB)˜´ Rä…Q¤¥Ä Œ‘ÉzŽg©ÎŒÑñx"Š"!PJeµ”#J!‰Œ­á´á™í£7”—£#„R€9«ã—c@‚b—<Φ3a˜ñÜ!A& "Ï÷H&f”J €!£µáÈò³"³6†ŒÞÉ22‘aäl˜¶ÅÇù'vˆ“Œ;¯ÙÍÆÝÖñŽ/äw˜ã4Ý1û =Âи›cΜO7ì`Ò b (cس½­y÷©l[ëÆ¿6¹ƒaŽÂ]ÀXûöÍ7ßúýï?v옽Ÿÿy(>€_ŠûšÛ€ðÿ»Ïc=:äÖÛ3‡CoÛƒk‡^_,Üî‡Åð‡Ò•ÁÚ˜\ªpç>„Ý— íÍc‡>õðŸ™?¯³¿ëÀÁÅ+ççÂ|ÛÍÁâ„cOÞÔ¼áÀ†—Ÿ}áÉHG?úÁO¥´òçbê¡G«f(jkkcæ‡àÂO^²pÑ»»¶¶¶Ù³?÷âÜç7mÞÐÞÞö»ßýîŽ;î8÷ÜóæÌùòe—]VYYÙÝÝɤ/ï”Sf¹Ž#”Ò:ŠL)é¦ÒI«NÀDx´I c¸À%F0æù~¬½c{uy-äì,ó‹ÖàH)W:Êq”’޶mkžtÈÔÝÓ®ùjIÈ' A*iÓc9Y%Äx¼¨yë&c ¢°u#¶­#•LƒRJ“–¤tb^Ù‘8ŽÚ¯ ”‘Öˆ€=ÏÇq %𯹣¿[ØxlGk—DÒäù®U˜ :J”×bRJ9žk²éß_¹pTÓ&2¹v’B2“6LÄÈHL6µ#Ò¡1†˜ à\ ö v3ìªß .â¡ó¾æà½Í¹‡lÎ{ÙïgCÌòíæße9˜ÿZë²»´<{èâ3ç+y¸˜à| í ¢Ûå#ük~ò®£Z óû˜Ô}‘Oîß>îÆ !" ’¢Ò@˜MGÑÇa\ØŠ|hW½¦¨¬+5hÈì‡ð>“b@߉M3yÞâ×mÖꀲ•aPUQÓÙÝ®”;qü´0êªpF°ê‹sŸ?fü¯¼ÊN²¾çÌùâ׿\û9»ÁK¯üeöÅ— o±eëf "ß÷¾ú•koùÎ7ࡇ¼ñ†›*«*Ž;î¸yóæ}â3žxâqxç½7Î8íLß÷²ÙÐóýd*Y[UG†"-Z´pÜøq”W¢2o†°A²MûÕ×5´µm«(­1F# #%J‰(¤t¥ëJ)J`a‡6™JÔ'òöÏš+[ZÊf‡´2„Ö!ÊH‚´Æ)$ƒÂÒh!„«\Bc!J«_h/c´ÖQ, C$Pæ%0 @f*ä…È@d‹EsRD9b)E_rø°F;0)eN6 °Âu}ÓÑÙÙÞÙ9u‘Æä¨eÑ2Æ "†œÁ ˆZ”¸ÐEH9×”;m/a^>£ºëã r>%æÜr&íôZ˜ŠûÒéÁúÚá6}¸ Õq!CÜ—e݃gÉ8|jC†>ylwpOæ!ŸáÜ«mÇ=„6ÈÞܼºiÄÄÂu?™÷rÞù·äi¶0'm³3ÌC‚šÛîž[ÙéùßÙööÖ#FïlÎíÿ†Éwû“‡\š±Ùt° !î º”WTÚb_ažŸ •û&ú²¹1¥)Û’ƒ¾rÊ<¯6QüAW{Äæ£Š í3–/eá]•›Љe&€®Ôà‘#Ç®ëhíI 0ƒ¤=@¤0˜Ng¢ T9ëªê¶uµ˜mF?z¢ïyŸ:ëÒI£&…Af통~+Øpõ¿þçw§œúÄC'Êð†áö{A?þÑÏïøÁÇ{â7®ûÚý÷ÿ¡¤¤dĈMMM•••ˆØÛ׳|Õûét€W¯[[SU]TTϽøÌÙgSZVÆ Ùl:2Fì„C1“!£MÄϽøtã°á5ÕõV.Ê’"¦$Ëc¡!±~Óꦣ=OÙg(ƒ”eÝm‘‹VŠa·[™$ÒZC¤ó°§Ø!%#¥TR"[ûA¶ÌídŠ¥ "µ6ù:L!„amÙp†DᶇOïÈÏåê6 ’©dIi9Šœ’”ír·ö{¨šna ²©§žìäãg9Êå(—iÔZic"­C£u¤ƒ0 ¢(0¤ €,³ÌJ“ë¨ßí&)Œö.² :)Wíœ+u%`{-w̃`;D³aúÕwŸiÞ¶þô™U”îéG‘cƼi±ùcÊÈ«urÂÚ‘€d°ìˆ s_g„Ýô¥ YÆ\Ô*€‘‘­·Ù2@f ÄBΔsEºVÃ*‡Z"稙¡eÛº--kŽ:üÔB8UðÎ ÿuˆ ògl¡é<Ë ƒb²†mˆÖúæm*2;Î449ksÊ;u’ £`@B¤Ü·r_'„H=Ûú»'L:% Aˆýõ1î#Û%pÚ­¬ w²s¯Ù"]¥jJ+4¸ßf#D¬ŒÅcŽÃ̾p Â „mÉÁªDÂIé •ˆÕ‰âqeÕ#JËkâ%1×M…aDæÃïtQYÛT]W_^%ÓaVïV›Žˆ½Éþb/Q^Ræº^MEÍŠ«0°m¨oÝ8Úfà3sL îòa"‘Õ4¦»§@0@óÖÍGqt}mƒÝ¦¬¤L9êo"Ã`j>sÁ¥¯¼ñ3ã„Ó*Ë«•RcG;ûìsèŽÝ^[[{Î9çðâÅ‹­(v"VtÔáÇ9ž|ú¹'Ç›0ùÉBŠÇŸxlÖ©§ÕÖÖK!V®ZYQ^fõqÂ0ÔÚA¨ua ··oýïûïýôŸ/-.#ƒ …D«Ðgé­©Bööô÷÷=N !ZqQ¨N²ÆžÈ0 Ì`Œ2Ll¬ÝÊd2mÛê†1ƒÖF da>TJ DІ Ç`gµn…@„þþ’âRëHXD" rýŒv=í’sË—kZÏLŽ£R™TYy¹”¥-­ÓŽ €‰lVÉò¢1±1úÏyú˜ÃŽ/+­°eŸÚ°MŠB‰1†Ø0[«g-¾µ¹ü5ÂyRÙÌ¢àçÂ``y-)æecò¾nG×Öy¯?Y_;ò¸#g¹ÊcØ rÄ‚_ ŒDž]– £‡W1Çú;TOxÈEÉ·!ðn¤_Cy€ó¬y¥À9àwÖ)Ïï¸B‰@öXXHqYû—ãR´›çô%s#aGžsæP0ƒ,XÙ\”œ³ß‚Q0 cLðæë/žtò¬X,FÍÆœ·a_…0aOVIXˆ`oVöCŠC^{ÉsâÇ+g)”a¡¥h,ðÑA^2iç *ḎÈàHEÀ1¥º²©úDÉäÊÚÎÔ`Èœ“Å47<du$¤B€„ÚDñÑ #Æ•W;Ræ[Îb1·ôv By¼øˆ1Ï›vüäÆQRìLâÍÌÌó×-Ö:4ÚT–”O1Å~-a[Çv"2F³1Ù0“Éfö]˜ÃR¨›¾þ/cšÆòa>òøóÉ9€Ÿ¹è²/]qµçÇðOÝïÇbŸ8a&Ü÷Àa@†ˆ€"¾ùÆ[¾víu·ÜrKK˶ ã™>ý0ñ,Y¾°»¯í?þëÿ´nßvÚ)§Ùr¿ím­õÌÄ’é”ò<Çw„PD`"͆t¨-D÷Ú[¯4Ñ4|¬!`‹‹ñÎA°M›E&ظiÃäÉS-ǘ€Ö¹°C–Qe1)" C¶¥Â†ŒÜѹ=K`.ÈCÚ6R !1D¡.ˆÖŠ0šHk àЖPØ‚Œí‹D“ÉÛ?"+B–øSJÉ”#¥B²ÄÜùȇÀý 6¥g«^^{ç•çQ[ÓÈdˆ cŒa­µ6Zk&CÙVzÎ5nh­-ªá!ÀÙù_yB@a# K×Íh“™ŒÀdû9IçòÚÂZÕÂ×9dÞY0÷­/|Â9Ó'+…,Dr Àbˆd¼ÈU “ÕÃ@Baw™CÏÙ"¢;=:y2öÜOÉ›–|–cÜÏÁŸÈ6Vè$ã‚@–Ì…õ60Áˆ¼ÚÑÌ*s¶„2[' 8¤Þ|û™Sg^PQQ­Q(¹°Qäµ¼$  DF,¬;jãBBÁ¹?Èn&l„ÊC°JFa,ŠŒ†m‡HŒ‘`°|´ÈÌh@F  0Bj ƒHyÕÊ¥G}BqQ)XÞ_.XÉÜkèàPä ´R.°º°žAù×.FQìiÖ²Ãô±1„A¦bÏ£\-3C!÷RHáæWH˜5zë@ߺޮÍý½½ÙthŒ+ÕÄòÚ‰å5ÊKP|a/ã@˜]ÚÞÒÜßkÁ…bdiÅ #Ë≃n•×u´v%Q ƒB¹Î´‘cO?UAÌl-]:“Y½uƒŒ'L;ºº¬zȸá¡n.ƒ'Õ˜¦ ¸ÏH'Œ›0kæ9EEEùÌÀ‚…óí]ˆŒ£Ük¾|ýC÷=~ÉÅŸSÊùósOwÌ xíÍ—_ãe2ÌŒQHÉìu_»þ„ãOüÆ7¾ÖÛÛsÄGÙg¼«»ãöŸþ°±qø7o¼%+€l6ÝÛ×+JØÎq"BZÐH))G:Êq]”2ˆô¢%óO8v¦Éµµ åg®P ̈R“Y»nõ¡‡& ðó¬)Z )P)a ÙÎñ¡½äD´¥eCUE-‘) ‘åuÖ¦ØÔHÎ|äÓ{V·½p†¶ÕþŸ™9רž/Úb çÀÀBb__OEE¥¥°¸hA ‰™‰4"0Dë7m¨ª¬i¨i Š"­MDÚ&µ1†‰IçÈjsˆ IDAT¶^”ŒamÌ.¥;¡ž¹Ï|*kW&Ü‚!3Æ\ÍOa 00›5—?÷Òýxü¼3.­(¯cdÞÍëÍUFåÂ[=¤vs¬p;NOàÊ›‘^îÜî¨a.àj9Õ ›I;lµv –ˆÆ²:0 ÌYìx"å›Lr5Y@A.XøÒIŸ8¯¼²m. 9u «nŠ€Ö’å·l‘Šç2¢"g­#kÌ­ y- “ *ÄSŒÄ‚A0Jk $ƒ$–d¿"{".Drp°®¡±¦¶n_Áæ^;[7ÜÙY·W wÉìV£gWŠÂÅÞß±àãVÃ* dËâ sÜ<¸®TžP%^¼È‰¶î 2̓}-ƒý)†¤#2QÊÒW (õüIu‡V5xRþ£0¦õ}]+ºZÍÿeî̓-;Îû°oéîsî¹ÛÛ÷Ùg€Y± AÒ$¨…„¤XrÙR$GŒ*å(Šœ¨TRW¥¬¤\²K‰­%‰ReÆUVh™$HŠ&A\ ’ €Ù÷õ½yóö»žsºûË}Î}o°‰•ŠÞL½ÞÌÝúœîoû-"ÈŠXգʳ;NÎÅÊü "Ssk¿öDÏåÀ¤XâìèøÎ±©­ „s7.eb=A#i~ô½ŒLôWM áúüÕAÛ¡Ÿ¦Ý^ëëYc¢ÿâ¿E:°ëwôòÊ­W^}±H…E¼÷gOýû“gN0ÓâÒâØè˜ xï/]¾èœq"¾Ûî9+ÿóïü³ÕÕµÿéwþé=wÝ;16κGß÷èO|ôcq”„ÒöÒå‹qƒ:)Î[ï=ìu zg7—²,ß·÷@𠌲à…ðݺüÔéW÷ï;Ç‘lQ` ‡£€´Ä{O„ˆ ¾0êÛT´€…›óÍFùAˆ*frÖÚÐctâCl ]Çpê[ë¼÷i–¾Á´yÀ”ðÞƒˆs.³yîÝàÝËð¿ÌÅ̉˜Î0T…[¥±ýæã¤ßï§iïÎÝœuiž[kÓ4³6D@ë½õâxñ¾h‚zç½Ý ¿E“M°ìÉ„È7@Á x)È‹!~ç~ø¶< bnê—† *·VçÿâëÿÏÂÍkçñŸºïð#š£0[ðƒ²¦8ˆË†aèÅ Ú}[I‡[†ŽÀ nzeK9xÛÒ(-Ÿвø6¨äùÃÍJk°Î¡oYÄag #^ÇE¹S4ÊÿÀÓg_¼ç®GFG¦H( äÊ(°Jѳ§ÁøÓ úP±!ð9@[e +¸é$'HN0”ŒaÂ'@",”ö!ø :!äB 虄Á1úâÉ·|Õëõ‰Ééw¥9zÅ[-Þ6𯲡xó!övX“Íróo[ €ÜÚÅÖF3ªTMj%%HF«•!û-¥®/´|‹%ò"±ÒK½€X/ëyêE¦ªÉƒÓ;§«·«ÃÞìò¦¿ÝLb·þ.½înk@—Žn!€Üê¶_œ¿Òs9+ÅF+c¶Ž=ºïÀþ™m;Ç'Gn÷yøkÅA‘vÚûæë/õlŽDŠÙ(}`ÛãJ)Ú7Ëë+ín'4ZfÆv|ä½b.6ȣߘP/®Þ¢ ûE°ÑZ½pùüm‘WYÀö ÿùC<$^Z­ÖèÈØÔÄt™òÃùeaqA¼qâ×ÖWûašf‹‹7ûýn8Y¾ú¯´»mo=!bÚÏ&Ʀþ‡ßþ'ÿöÿþ“³çÎïÝ{Gxc¯Ÿxµ˜ö úÏ>ýÔþhTÀ;¹µå&¼xAAgåì¹Ó‘‰(·VÂhª8?ÀzZ¸µpúìÉû›80Äq^ÂáÃT©šµá´EDèEl(^–WWÖÖWeÀZ‘À8÷Þ»"k±‹œÍ­³–­M‰<‚”wâÈüâ¼òüsßûj?OE<‚7y[$Þ‰·Þ{yºtû]V^;à4ÂÍãAœøÐÛò!@y¯µÙ³ûNk]¿ßï÷Ó´Ÿey&à%ô?óÞùÁ­”PñÁ©WÀ˜wСä=’¸‡"e”p @‚é¡(`¦[bU˜‰J»³ñÊëÏ_¸xâ‘÷<ñþ÷þx£6,hCöÔH2—û苆!B! ^De¿à([62 Â`ˆœáª„ÃPŠU(ºŒ28¦Â‘TDI 1”гPJP·Pëúpó…æQ˜•\Ôš©í8ø@sd,ô6‹Å@@ ]¤0KEG!t…߃­Ì!> Ï&DÓ¢£KÞ“ó(ˆÈ‹!/ä<’S=¢cFaô ÂP¬ì`5P¡rݤä!½}Ò½µ|ÃMðÎf«&ü ) ‡%CkKï}Б.ÙÏ·EÁ²œ”2¾o9ü‹4€6‡–ÿŸýÆ"Qçw†¿ TM4W–ºí±Jm­ßëÙÌ‹TµI½µÎ¿”TŽUêkiO@œwŠ8Ø HßÚwž~Áß‚,8ô Œ7Éa„4k3A€ˆUèUnaß €8糿!D"ÆÚ(f)Þ€tÒ¾lÂÄC2EITafFBfÝêndYV~4:ÚÌ sccã£Ãcä¡Áo´[YÖݽ{»1l GFçÖv;9bsll¢V¯5‡s7nœ>sêÖÒ|¯×[[[@ì&Ƨ˜7щëëëÝ^'¼±z­¶±±NŽ±Ñ‰ð±Ì7¬³ ÃCCý~ÖëwD)3:2:ˆÉËËKµz=Ž Ù—~Ú3&°¾‚Ål°bèöúÝn»Vk0sY5L(S1ÍÒ(ŠËFØí×÷-ùÕø¦4s€öʲ¬ÓmÕkCJ³UFo㪼ñ©2/·V]dXåƒ;Ýv?í‰ÀÈЪlRHd“S…[O0äÜÊvÃÍóG¿¶ê^n§i½Å&ФËã‰J aùžÃK†cßß‹·\È-ÿ[*€Ïò 6r[g ·®£‡Äoâ³À’4±ùrްô~Óû7>b+ðÝ˵¼éƒâ–áKIÈÚ|Á·¡5¾Õº *­·ƽ}§ðö·º…!­úΙý…o¿¸oñßjQþvu@ægÿAµÚ|[Ь*ZpyUš¨¦Tº~w²´„C½ÃP –z -ì!˜Ò¹A¥ý†(zDƒtcnnîÈ‘»òÜzïÙD&Š¢¤ReVÖZñ>2Qdâ,OÛ­ÖêêêÒò’µ62F±.ELPÄç¹µ.·._Y]YZ½eó2gÁÙÁ>þM_š4ËÒò†ÞêÇ•Ñѱё‰±ñÉÆèÈØÈÄÐðh5©EÕ„Nz}yùæÆú*€Œ¶Ö׳Îå´¶¶Òív«õ¸ßOƒôt}zaaþÞ{îššN*<<”Ô›•$nDÉþÈL yð"ë«·nÝ\\\X\¼¹ººüÙÏ}zaq^±Ã9DÜ»wÖQd 2#@§Ýq'291$ 3#«"¥”ŠãJ%Ž’j-©ÄQT‰"ƒÁ4 ÄS)âà«":e€^ò<ßh¯­­­w:´×ïvûYÖët»W._¸páœÝÌE6%0Ú6À–¢ä.Õ›÷ù›ØÊHë+ øvP£-œ³7DÆ7Œ@¨Œ8ElXY[zC}1ÞÀ3†Û3ïͬívÑ/¹ý¼{ã'}Krøà}qð-Bfµ}ÛÎóWÓ~hxlçÎ}ˆìÅeYš¦Y¯×ʲÌ{ ›mZžŸXm´1qTÑ&2F3ibBD ØšB¯ˆ\ÁË{wùÒùz£žçÙøøÄØØh’Ô—VºÝv:­•åÅV{ý­¢Â® ¼ÍÅý+µfÞU³íGx,ÉÉ?øïå /µ%ò½ãÝ+·'‚ÿ?‡üSùù[Á;ÿÎ8U.³õn¹×îä¹HvÛ…;†|HlƒJÜÖ>Ôhš(Žã¨Vm 7›ÍõÖÚ—¾ôŒ÷¾^¯oll ø^û÷ïïv{iš"R-©%•êèøÄPuÈZëSg­³¹w6ϲ~žçY)8S ˆþ Å 1µY·ßM³4÷6w.Ïs›[ïs_ (€îC3)Üž©×”‰‰˜˜JèPÔ/ÓyÙØX?{ötÇ»wï¾tùÒÑ£U“Z¥R­VkõF³’$ˆ,ˆ¤´"A!B@ $¢éÙíîêÆêR»µqýú%oó<Ï3Îå+++7nÌ ù‚@æÇÆF¿óÝ<ùä*At@¬Vk‚C(ZÐÐ?ÀF£Ùh íÙsGXá,Kÿü3’¦Y9µz½þØc}éK_zßûù¹Ÿýùz£EQp¾eÖÌÊ‚÷¨¸@!…NS1`.±Ý4PÔý ïÅæÎº¬zä>Ï­µ.Írk}š¦—/]X\\XYZ\^^l·[n7M{!Z‹H»ÕNªÕ-¡Èmåbd6‰ Íkçlžåy–ç6ÏÓ >.âÓ4Ý*xFD@ÄÈ¥'°²6‹ã @–¦­Ö:V«µ<ϳ¬_Ö4[]D¶„±2Õ+§TD+¥ˆt¨È%e³•[%,¼·Þƒ÷Î{ôn+IDJiSZ)­«I£^oÔªõZ}(®Tâ¸BHò'Øjm„·ê\~sñzšö¤Óm½÷áÍÎìAÅDäE(àIxЪ!(^<K±VÎ{@ôðHbPƒ!D¡°žyžöûý<ï}빯Ì߸HDÃÃÍ£G²ŽWÖúÕúxshò<__[Y]Y\¾µ°póúÊÊ­ÖÆZ¿ÛÉòÌ9kóÜ9;hø½9"f·')[òÛ2Ý- ÐÚqÅó n„ ‘Ö†Y!#“=)½wâ7g½e˜¤r„ˆDLĬ6' P[È!ÈIJ™À¦ ÷‚‘à2€\IAªÉ­Í²~že· æ ÜN`7&d·%[òn¼«¨nvÜß)Pné‚Ü^ü ¼)E ×­tèÁ­¨©·,¼Á£FÞ¾³øZ3MP~¦õ~O6Yžuž°¹¿oÿúÅ¿÷K““3µz½Z«EqLJu{í^ÚUŠŸyæ ­Vkpñnܸñì³_;|ø®<ÏóýnZ¯¹8ªW°ê¼·¹³¹óÖåiî½8'„Þ{FtEKjó¸Àyf2QÅUÔŠ•B¥U9{osïìÊúºµŽÇqœTk&ŠÖQ'•ĈÌîb"ïJè¢ €x!b"ñäEˆðê¥K×.ŒM6›Í$©"“(VD(Q1HèŽrµQ·.m#*"£”1†(hz¡µ¶Ùl.//;çŒ1H§Ó_^^š ¹ ’׺ë}êE³Ûøl#ûØß}ú ŸÉ²ü¡‡Þ÷ƒ|ß{ûòË/?~<ÏóV«ýá?Q©&l™Y‰ 3Ç)Raô¨à ½qN”S¨ 1>„ËvFÀмÖ:œ¤DHDÈä¬Ä±9|ä.€»JßGD^Z^;öò¡#÷`4ØŠ E˜ ¥ÍL€| ÖæÖZq~aþúW¬KEüÂü/~ñ™Z­q”LLÍìÝwx÷®&®ÒââõµÕű±qï}«µþÙÏþéÚêÒÐÐÈÁƒ‡¿úÕ/Þ3;ç´ÖÖº½{ï|â‰'•bDï§3:ª7õz£Ñ®Vc´Ö yÚ€Vô‹lž;ç³Ô..Î_½zñÔ©ãóó×®_¿Úëõ XGc’J=Ëûݳgï¡ÙÙIu(¾Ãà1ϲü±_üîƒGßÛï÷_~ùŘݼ¹ðû¿ÿ/ã7þ»ééiD j)!Ä ³÷@(.@›ç‰j¾ÛwŽlÉ4¸»ðdTèj†ÓÐä ‚ ~Vtѽ€s¢k¥=ˆxOX<£'­˜½÷ZiQJ RíÜêðžX™v¯½|k¡Vk80´°°ðúëÇã8®×›ËËËdnûÞZsˆµf¦ÝÍýóד••[»vÙö‘'žü³?ýäÚúêá#÷œ9sêòå  µÚØXÿßù½©©mĤ ò°ÖŠ 22#I‰H)­‚€ôirëƒfob„ý,»1?ki±Z­÷z}k]@ð§iše™Rúå—¿' @¸goƒYA Œ;@¦n¿;95W«5VWn‘+ÏÜ"#a~íØ‹FóÀ¡»½M•æ¦6±Ëé%hœyç U€Å!€HLt›kAQ— Õ(5‡£8îõ;ιJ%ZY]aâ“'OöûýååÕ䧪I­×OÃZIDH!rÄH±ø¢œB ò^¼w@„Ö9¦R„“È‹Á°¶ QÕT,]â€aërDÊB”!䱉Ññ±¡æÈkÝjmDI­92FHI­º²²‚ˆHLÈ•8þÞw¿öþþD8±LìÊñ60¡w)‚ A*…N~ZÀ»/¢" "€µ‚ã +…H¢”b¥ºJœHžçAV=6ØN…{ 1ÁŸúOsyâÇ>ñ‰Ot»Ý+×®Ÿ9sf}}=MÓ<Ï{½^¯ÛMûi¯ßëwºíN«ÝÞØØ…-Õ_èð1³R*Š¢Z­^©$•JEic"G±6:9,UyC#‰td”RZëj%Q:|¥X)í÷‚hK¬H)":pððÿoÿêÜùs?ÿKŸH’Šb ÚýÞû^¯/â£(ŽcÍÌ¢ˆ‰piéVžçqœh­=`§ÓÙØhgYšeýõõµ çϯ­­U«Õ¤Z£è™/<}öÌé¿N |Wºœ‡F''«úЋ‹WÒ-£8 Å•¤Å‘Ž+Js?í#S 2?üðÃõzýÚµëÏ=÷Mkãd}}-œ§—._ŽãzÕµ®j6 "¬ä=(b‹(ˆŹ€eòÞ{䙄ˆ´O@į½ö2þü$³bŤTÅ*X(FE„ Ì*^ý^ÿô©“'OCVIµ–$ÉÈèèØØÄÈ興³âœµQ Ö+ð" PïÚµw€¤Ê­={öL«µ>66µ{Ï&Šá–‰‹]”ĵ¤™g6‰“Ž1@ž‚wÖ¦VëÕëõÕÕÕ‘‘‘pÖ’êÒòj¿ÖY"¤¶é{·šf‘êWR££8Ž£\¨˜?Ô?úG¿ñÚñÇ¿ÿ—Ï?ñÄO¼zì• ¼²}ûvçüÙ³§ÿ×ù/~çŸþnXhA¯Á3xD±ú&ÅA`øÁÀƒ^%!ø€{÷âƒXŠxf´ÖSX$a%=øBŠE„• aPpBƒJlªU“Û  )¾hN{bC¬hЋ*ºìRüÐ{H’xblªÝj3sµZ½÷ÞΜ9ÛïwE Š¢••åkW.ìÞ{hrj‘‰yÛ®;Ƨf¯]¾xÇþC»ö`¥:Îk¯¿òð#ïo·6–W–Ó´ÇI»Ý>úàû¦f¶#3#" ŸFPZ=bpTæ !/ òV6©úÖ{'³s;zi–ZëœôºÝ•ÕeD5 -jÇ™ÓÇ+I2»cw= ŸAˆLµ^³ÞÝwô±g¿òT81Í¢J¥ò¡ÿä·¾ùÕ¾ÿ™¹m33“CCI¿ŸzÏÄŸJx'3 8Pb ïDôâ@Y]Š¢¿èß ŠRqœDqE‰âÎ/Ü\عs÷óÏ?ûèã#b$b j›ˆˆÂHHAF•8`¦¼” BD.DˆÎc¡B#Â…AÄ#¡u.gÖ;DbÏ ^³sà”×Þ ZkEÄ»@ëó¤Z¯FqlͲ¼Ûí7‡êõzÅÛZ»ÛÕ&ÖŠ©ß}÷¯{á½~0D¾BÓ¢¬AñŒ j´3Õ1'¤ˆ Ä"(d&‡@Ú03#«X›`ÚäGE$s‰Äù Ã$âÃÔÂcaùösßøÁ÷ž¢èg~槉H“™™¹ééYëo3jfd”€â®®×í´Z‹‹‹!:Æq¥ÞhNOO×M_Ú¥qÐ&,ä^€…ÙCÙý—V¼+2 ‰óâ|Q˜3OoÛþÞ‡ýƳ_9wúä}GjfbpBAtÎG‘A„8Ž•âØ˜ð7"2;;k€ø,³ë­ŽÖ ñSSÓwܱ¿¨aš§ŸÿÜSïª"ükþ4óx¥–h3×»-·%Š>üÞGçf·cLk­ò<·.³.ïýØØøöíÛ/^¼°ººú†Â¼ßO³â1P± "jbU¤JëH)ͬ‰È!3#±R&b¡b4Z˜¹Ÿö.\8óð£@f6*®ÆÕz­Ö¨U“$®DqEÇ‘Žã(®ÄQGqÇQ½ÙܹgÏ‘{î?xèÈö;ÇÆ'lîço\;vì‡çΜê§iµZ«&‰1šˆ˜‘‰8´ýà D¬´™œžÝ¶c Ÿ9ýúÂüµz£‘$u AˆP[›;g½³ý^WŠ ”ÒÆDD¬µnµ6˜9Š"fÖZqW††ëŠ!2ÊYÈrŸfhs€‚BÇÊZ¡äQZ«ÿ‡ÿðôƒ>|òÔkkk«ˆ8??¿}ûÎ÷¾÷ágŸýÚ{z´14ˆ^‚0µwÎÛ ³t Åí J\Z D8½"yoÁC‘t‡]9î*´:E<*c X! qh!!‡Ìæ§gç” c¼;„t¯8tˆ¶jPmþ!Ä*˳F½JÌíN'˲kW¯"‚R:©$ÝNkxdtjzÆÄ³RZEqetlâÜÙ×÷î;°±¾¾pãÊÙ3'§¦§'&¦/\8+SS3¿ù[ÿdqñæwúä¿þcÌäôt¡$ã‰Y)¤Ã‰(àÓ¼g½³Þæ.·£è­ M= ­¯~šZ들'Õ•ÕåvkÍÚ<ô611Ä•^¯×h4wìÜÛh…'"q¥Rí÷»Ûwîi·6ò, Õðe­Ý¶c÷ääÔõkWîØ·oÛ¶Ù¡F˜Ú.’R\ µBOµ¬ ‘ˆ˜8”þ…:˜¥¨fÙí Þ A¬¬ÝZÛØXïöÚý^™½øæp3KÓ‰‰‰J­ÄX^ßðïQ¶ L±àARɨÓ‰ÂèÙK¡%†Â†B½:HÄM£hÁa¨qˆBÍ¡”b­U¤+ÅJ)¦Z-QÌNËYˬÐ(ŽŒÒŠ@P™(ôV‡FÆ.;]«×‡†‡™Y113“ÒᵇŒ þg@ ˆÂD¬H1)BfRŠ"£µVB¨Ld*qDZbU$ÈA’M„•RÌZ©ÈVĈŠl|ï{ÏÿÙ§ÿ=3ÿæoþæ÷?¦éù…<˘ òUñÙCÚ¯‹×À,K!2†‰VTÖÓ"¢µŽã¸^oT*•z½fŒ‰"Ãa‚£5…î%Š(ÅÆhfRJ…·Äþ–©ø4ŒŠ³b¥•ÒZ›Ð©Ö&ªÄñ_~÷[“SwÝ}"y/ÌTõ™9Ž£È˜J%IÅhÃåþ/©{¾ŸåÞ{fVЉ@1+Åš!*fìõzÏ|ásNg^î¾÷(ŽáG™¾«¯…ÎÆLÒIªÍ(ÞV>WâèBÁ¢”b¥µÒa²€ˆÌŠË!G$Šãd0fÕZ{ï1Ìpåê…z}ÈDq顯HÐÂ’ Ž"« @Ä{Îa!ªBÎ/Èž:õÒ½÷?ÐhTµ!EI’˜8"Mª(˨Ëe abDd,”êUGÍæÐäÔ$Èa°Ö^»rùì™K·n9owíØuøðaf傤€s’; ÚË…êÓÄäÔÔÌL¿ß;}úDûø±ûï}¨1<,â¡14bóÔ¹¼µ±æ¬ÍóÐ$f7ÆÈ¥K—êõz8âçfg/\¸Ü¦t~~ IDATlš©©f‹ˆx™•4LÚ™B'!H{lΊ§¦æœõë­GýÐåËÿ:ü°V¯ïÝs§ÖÜév½ ND¢qÖ;"…¹SŒJ±-NF¡’ÖêÉ­¥ÂöÏcé>áý&]]¤ðC™|è®”¦4hÑ8Ìó\)"ì\ðeB/AðSBgº¡µ‰ Ïá ÷!‰¢xrbŠØ¹<[^^žœœºtéâÈÈ(­­­^¿zvÇîÝ»G ³§óÁÃ÷ž?wòþʯØç¾þ•ï|ç[c££á…Ο?óì×¾œ¥ù¯ý꺲¼<7·ýÈ=÷jf¥5(r…jb þa(Öá¦>‚Þùb¼óÖ:ñ@415·ÿàÝýn;MÓV«¦bƒ!‚1fþƵng#´ € Ù7›˜¾usþçù¿BÁÏ}æß|ëë_`®]¹ôàCMMO#ñââ"V⸙ÐòúRª*!¦zït F*”ļüó7qøCP)53»½ÛíöûÝ^·KD¬ÕÕ«×wnßyúÔñ£ïÓ±A AŠº²&蘊/Brá+ B‚²'&ï\`­ ‡wŽ™½sa¨FŠ * @ÀQdtJÅð¡¡œ÷â=A½Ví´Û¬”RºÝí›HU*V¦Ÿ»‚Ü/ô'~ì‹OÿùOÌþ\E…F…XÅ úQ+bOJ±wÖ{È«†j/tÿ‡q”T’8ÌY‚.`æ äAÀyļ …?ä;ßùîŸþ»Oyïù—ùcû¸µnmmÍæ¹ÖÊ9JT_*P€RйZ]í={ÖZûþ÷¿Eâ8¶Þ5°Uã¸2o‰#R¨>x k-i „Iy©‘`>Ä Îù ƒ/^›‘ dMNÏÈÂÂB–9dot@¥Tm”QJ+]/Þ:/KKK ív×yטœç½w„ eFî\Ñ!ÏÓ´µÑzwáíäƉa˜Ô Yêw†£JD´šöVÒÞ Ø}à¡»wk³R’¦}ë¬÷>³Öæ.·ŽHo¬·®_¿ª”È‘1¦ÛíV“*ˆDQ451­•F"É/P· 2 " #1²RF£t¤M%R‘Ö†M¤Ó^ûâ¥óàýC#µF£6Ô¬Uªq›ÈhmÈ­µb&­+ÒJ#“6šÊ6A˜ô"&DFPJŒìÝwç]wÝ}äî»{iï;ß~îÌ™ÓíÖÆÈÈH­V£ýià€ù@b@­Íì̶mÛv8qìò…ó&Š“jIlžyïÓ´F§¥à/%•ª÷îÖ­Å¡¡!"Bd$Ú»wÏ믿>>>V0ÍD2KÞép'£R&inÑñò"rï}GÿâËOãë_NÓ4\¦jR=xðàñãÇ?þäÏZï“j‚ zç ¬ùÜyŸ[ë¼8ï¡Ü¬(èœ@ë|pŽõRx5­í,³ifƒùƒsÞyRg^JÏ5DD! IŽ@¨CÊ‘d–¥$P­&X*"‡SÈå™ @˜Qp`q€èE¼P‰#­ XƒÖêæâ­,K[­õ8Ž’¤zcþz5‰¶ïØÕárh£;ÌÌÎ(­ÆÇÇÏŸ;>ÎÙ3gN]¸pnc}-ÏÓƒGî~ðè{•QÁn QB 5S¸‡«ÕÊúÚJ£Ñ8|÷у‡ï=þú+ཉ’› ×——Æ'¦¾ö•/öû}¥ÌøØXµ^/·nÝRZW*I¨êBáB̨ÀX”ƒ›¼iP±Ý†Í+5¥‰Èy©×ªCC£7oxç•Ò `"“géö;u”˜(RJ1SQ70CG(‹h@D& )Æð\ȧ± ½x$F 5D1Ù ¸¶Bœ©,(˸Ò/f.Ò_&DÂHë$Ž\k½\Ü[F›$6Æ„u@¥”Ò¬µ©×ª—/^ܹk'±âà!F¢˜S m‡&_¨ÚŒR3¥LÌJ³ÒZ©PÖ™("$e8ŠŒÑ‘RŒ(„*`ÌYi ÅŠÖ¨ƒ·§ÍŒŽˆ@þð‡/~òÿú¤µö×~í×>ñ‰O ÂÆÚúêꪀ„† 01!qxê EÁT«ÕvîØemöå/i÷î]µz¼'"ç½Ö:ŠLm+Šã(<$H/°"Ào,"³QL¤ŠÑÞ€ÈE¥LDŒÄ¬Šög¸ÖDȬ¿ø…§FFGßóðcˆ´¾¶¼tkIÄ7›µHkDÜX_¿zõê•+—NŸ>uîüùóçÏgYÞl ŽŽŽ­¯¯?þÚüõëi¿ßïõÎß„YJníâÍ›_üÒ3[#Ø_Y2"TT4Wºyö<   ¡¨2–ÔªJwòÌŠ_êwF*I'ÏWûÝÁ+Üÿѽ{îdb´ÎöúÝÔnó,ÐÕddjzÇÞ½wÞqÇ“W®\&®鞦}™JU’ ’ïõ: ·®/-/®m¬dYêYGÏ-ÌÇÚÄlb£cÍŠŒá8ÖIïÏ¿ÿƒMNOT*QðJEG„4hi¥ˆY± çlÑðÌŽŠ¹x™ÈQ žTÌS“SwÝsßû÷k£_xá'NS*"fVšH±R¡Raf@Bâé™m£ãÓ7®_=wú5©VkIÒH³~žei¿çœÝªÁå]¾°°EQ8UóÜfY¦5§i/ŽŒuÖ{°–ãRµŽ^´À WˆLåßøòéÓ'ïØwÇÊÊ2t:N§Óëuggg.œ?Ǿ»& ÞùR® f=Î9ë¬ þÐ6K+­ô™o½sÖçynËs—Ra…áR1iÀÒ!ÄøÁÙJ„ÆDW¯^ž˜œ C•MZ‘TÂöBçŒ9„È9…œ#)­M Á!áúÚÚÆúÚúúšÖš™ªÕúùsç&§§víÞËF!0"R­Z»pþÌÈØÈ¶í;ÏŸ9}þÜé|ßÜÜܵkWC<Ér­VÿÀ‡>b´Âº¿Å‰pSCÎ98R»È\qi i-›ÈJÇJ«<Ë7ÖW¼µHªÞðž+q’eù®½w6›Ã¡7¸;‰¸Z«-Þ¼Q¯5Fǧ¦gæ^|á»ÿðW~ýî{úÖ7¿réÂ…N§U­Õ굆1ºÙ¬Ù<½xéB–¥Äű‰Ì GBN0Úª²õ;–Ô: &ñÁà™ÈyaEëkk«+ZkQJU“d||\™(©Õ™ ‰ Iñ€b@„6‰¥ëB@]¼nñÂEÿ\²O‘9}T.ï¢Ç0 - v3 Žj"  _­&âÍr[I’8ЉÑh¥µF"bFf&‚±±ÉW^ùÞîÝwDÆ0#!(*ƒ…f…ˆ¬Tè"3°ÿÉEx&Vʈ B)æõµåßÿ½ß›íÚ¹ÝÚì÷ÿ_}úÓŸÞ¶mvïÞ=­ÖúïþóÞï÷á~þWõW Ûí,..OépƒbøÈ¡-É ­ùзG™›ýÊWþbxxxdd$ìMbRFÇq¬Ë¯ÀîØ,ûD\05ã0ö »o6a)‹OHŒHÈ ‰Šd…‰Wí™§?34<òž÷=ærµZµ6»1ãÆõù¥å%?<Ôœ™™»óÎ;wíÚ¹}ûö‰‰ÉZ­¦´Ž¢hltlÏž½»vîL’ÄÚŒˆ³,WÌ„Ž Ë—/}ë¹ç¶Ò4¤Ö(¢”ü¡·åq @-Š`¢Rsâæ»-è[ûÒâõšŠ¶‚m{Ýž³`½õ©MÓ,Ͳ,Mó^/ÍSÄNÐDÉôÌ®V«©u|ðÐüë¯ õu:í•åå¡ÆÐ«¯¿X¯5ëµf£ÞК­µ7—n´ZÝ^wçöÝ{v4J¢Ø( DˆšX3+RšˆI)îuZ»vnSÆ„† Mhb,÷F#õ[Ô…I ñ-ïŠÛKÜàV bÈÕ¤²oï¾Ý»÷tÛíoû[/¼øÂÿÄ“I5ÊrÈ­!„ óOâ‚:Æ•èÀ¡Ã8ãÚÉSǽµ3³sC#cÎfv+MSç€A­MК ßE¤Ýn×/_¾>19ˆŒв*^€7ø¿¿Î‰—^¯óúñWEkÚ5iÚ饘ùÿøÆÆÆäcÿYD„-(`ç<Š Q!Å (¶PE* ×€i‹a‰ˆsÑÛ Â9°tßA"b&,`ŠBBüjà ×jµ<ÏÒ4¢‰Ä{(D0¤$[%"qàHŒ@€Î 2h X5`OLM!âÌÌìéS'šÍf»Ýn6›ˆ811öÏ|vß·íÜí؉÷q„(&ŠÁºá‘Q|é¥8HT8݇íðo}ýþà_üÖoÿá¾ ëo½Ç’IéD t´`P¡ë÷³ÂY·´Kt^Jøh±8‘1۷š™{ö/>'â×V—ó<Ǻ‰ÌÚÚRkcd;±*<8‘À{d≩™öÆFcx¨Öl¸<[^YzøÑ­¬,"âÚêÊ &˜œó\žvZë­JBÄ£cÌFÐÉJšø o$ mƒŸeâ@XéFcÈy795wåò…(2išZkÇ'&¾ÿ½ç¹/©Öká˶ŦºGÆïŠâ=•CJ¥T(—†if'e¹µ9Ráb÷ž0p£…¹è%QÉ„£€ü"'Pî4Mµâ‘‘¦G¬ÔªŒ ÄÂY²Ë$à®»î?{æø½÷ Ý.ÕJÃé½ 1‹0ìB»˜Á„)>ˆ6:wy‡ >8+íΟ;wñü™«—/˜ˆ6Þ»áááO~ò“ÇŽ;qâD«Õúà?ðë¿þ_‹¸^¯»¸x3ØjÉD(§Y‰x„ ÄM¾œ÷„{•½¸ñÑ‘'ŸüøçžþüC>8·}G­Vëgi˜Uøh`p6½)œˆáM]¦B»)ÀÝ‚Ò/¢“ÐC N¡è…À—JìHÄ*I*N‡½8BRFÖª•@± BÍÊ."€ì½w.J)›;@:}út«µÑíö’$é÷{½^7¤›gÏœA|w¶ì @ßæM­gé[’-ƒ2‘1qU®]¿*â¬íF£±¾¾‘7›ÿûýsôÁ=¡‘XÀ‘8Oe‚YTl(XšV{ñD¶ì’y)D–w1Ì-RU˜‹(„´ŸkÃÆ°—œA YñŒ€Àˆ÷Ü÷ÀK/üàî{`¥ZÜ…G= ,8 j(èÅ…mÃaç{ …ÞÛ¸’ÌÌÎÿ­F£¹¾±"Ã#£=öø>ÿÙOÿ»;3=ûsÿ¸P ]Ðp±À¹PjäÞ Ð‘<·%snÓª`ï¡Ôªõýîév;×/_0&Z^^´yŽÈý^ßZ»º¼¸¾º\­×â¸J\À™8ŠÔ0¢³Î{¿pýJ£1¼wÿÁ<KÄß¼¹póæä6¿ï¾ûõZ§Ÿõz]¥7ªÕZµfÙc™‰‚1":pÐüâz€z &Td¢Êd4¹xsrfvÛÂüµ¸€Z­òÚ«/+ï?rOœÔ@< ¡óžH‰&)Xºâ=3‰ók«KË·³^o}m¥×ëÌnÛF¡QDJ²u"ˆÚÄ͵R•z-6‹xôÅÄ1d³Î{ ™"Š0"uz½áz’T*“ÊXG¤ µV‘k­gbA AسwÏÓO}æþ£ï ®U€(Þ£@%`CºÆX¢¸ =z ƒÿ’Î 3‘óŽ›( qø¾þØO_º|áä‰c=öa"•{o­³ÎçÎy_28çœóÖ–Q®à@l¶ÃË:è>øûÒÐR–ª¾•Ixf+žÊ¶.–öůá‘Ñ ÎŽŒŒ"B lZÌÖ;Ô(˜âC®‰^|1H&ý"F2Z§ýžsnuuumm5@δ6###.\¸çžû“Z‰Å‹ _¸xfçî;£8Ù¹kï…sçΜ~ý‘÷`fzæê•+Ýn÷ñÇ?Ô¹|éâ‘»ï>r×}áÚ²Yhpa­òÜh r·×GÄ(ªT«õá^’¤Ë¶8–¹=Hh· ¢*hgLLÆhV¬5\§³¾¼tsey©R© âÔÔäððÈ•+—ã$©ÕÍááÐ?IJ—‡[Üë¡B\ºyýÒùµ$Ù»wïû÷;›¶ÖW?þÓÿÉÎ]{víÙ»gï¾Ùٹѱñ¸’4ëõz½^‰£¤iEÞÛ•¥ùëW—Ö——@iMEûÉ[ `*œÂÁ®T"­”„Ã"Ž €ï§©Ñ#Fb¢VkÃÙ|dtq`Aè½fYÚnµ+I Yb.…‰ŒÖ*Št%Ž’J\‰ãJ\‰#S¯VkÕj£VO’¸R‰*±©TŒÑøgú©£GøÐ‡>ô©O}êëÏ~czzêûïýÉýä“O~ü§~êãüÀûEüêÊòFkÝ:ëʼnè´€¥)ù)„ŠËé]Ñ8•B^$à ˆ™ïßàØ±W×××çæfƒ€VÐ×ÒZK9d çoèî•:3ðå- í‚èÍX|ü¢;TŸ)ˆø•—~psáæ#>^­74sµZ‰ N½bV0ˆµv€Šb²6?æÌ‘#G‘%•`ì@ì'OýµWßõŒDqbÅ[ç<¼¥@6D¬¥®#ÍêFg#{“'ûàkvvîÀ#L*økçÖ|W‰Tµš4†šI)Fq®Óm{o³,­Tâ^¯×ëõjµš1‘Ÿöû3ÓsÕj]©ÐÍ"2F›XkÃÆ™$1^ò/|ñó§N?uêø©S'_y奯?û¬ˆß±c‡s6Ž¢JR ˜í0 ƒz*åÒ´b¥È Ÿxýµï?ÿ¼x—özI:|èî»î5&Š£x¤9|çûGGG_}õØ+?|i£µ191©ÂÀ0Èf@ Ì‹bÞ6»cvÛö/>ó¹KÎÞqç~æhM6½3J"@A­8©Ä#£ãÍæbvÖr§Óît:Õj5ĭТ‰"Õî´vïÞ^‰£¤ZLÓh]‰“±ÑaZ:e¯>4$’jzz®Öhj¥³gÎÈ¡Ù6Z«&áž ®=â’J|ï=DÆ|êOþ ÎÎÎÌÒ€ÃÀÂd4ॕV•(n6‡”66OCJÖîtV×V+•Ä–Vˆ¤4§i¿9T­U+Iµ¦uµR‰‡‡‡kµšf¤Â\F$x$Øb$ĩ陫W.6›C­Ö†÷¾ÕÚ8yâÕ+—/8çnÞœÏCV’úÀ:#(! æŽÁS¶˜Š‰g]8ÊE@ ¼(ƒ¢D"²*·"¡p)Ϻ^¼Ë]Q{:ç×JÕ«µS§OVâŠbåw¹ƒÒ%­ *úБ‘@‡Â1@®!".ßZê¶[AÇîúµëËËKƘ Ò6<á€#žJ%õ ¥¤mð%áÒ¨¥Õº»Žº`ŒÝu÷Û¿÷½ï766¦Òi; ¶€„ŒjúOx ÍŽuü|( 0BbÈ¥ ¾Z膠Á@€0FVô¯ˆÅ§N½ë]÷ÎtÍ*!/œ\1ÐoFØ+RAµZ" „,,Ì/..=zdíÚµº£Å˜(U¾8Žø¾çyo4.ƒug ‹n øJ2 @@¢ú9æKÎJø Qª·å‡ýÊWwwW:•’(á±Xܶm;npÎfggFGGúzû–/°-‹QÎ95LÓ²lÛ¶c¶•Ï7¤RɹùÙjµªÅ“®ã ^8wáâ¹=»o±L«Ô2-ÃŽ™ŒããO>úÓ½?]90ðþ÷ß·bŲd<¦‘ÄPïj/ùZÃÌ9µ þƒ<111ñ™Ïü—ÜÿþoÜ•L&Bh m°”°©ÉÉKC—æææff¦gff0—Ë7 ¦a ±˜Ýß¿"ðý}ûžè7§áƆJ†ëg¬§»wEßÀþýû^zá9P¢§³› rBH( ÁÚ¤Ïs4êøZ­wyd8•Ji]¢ÑrΪ•jskã@oCCÛµk“×®]»4|qrrBÊ€1j˜¡:ATojˆ ¤Ð 4‚)äüÜôâÂ|.W¨VËúúd2Y×q¶o¿)ŸoT€¨ F.u„É…×Û­@©0³;ô^È%™ ¤ž¸PÇ}Ô]Z Fu” …!y$Œ÷Tõ–¬eY¶eÍÍÏŽ_‹Çãº$1j:‚’2ôú FwTB..,TkåXÌ€……ù+W.ëX Ó´MÈ'Rs³ÓÉT¦µ¥]H™lþäñ×ZÚ:µ-~qqþ•û87öÜôæžîÞ¡¡‹ŽS½4tarbÜóÜù……]{ÞL¨!e˜‰Rέ—Å×uCú¤LYÈéÐfUÑe‰ÔT u´ç<Ÿ/Œ]1 QÅã¶RŠ3–ËÚ:ºó¹&Êt(ÄRÊ«æ¸ pÃ`œ½üÂ3®['Î`.›ß¼mçÕ+—Ο?»víúT*å¸.eÌ4­t:ËxÈI\(€ô€ݽåzêƒH Á ”P¨VÊn­:2|É4,MB¯UkéLª¥­«©©ett4ߨ` Ê¤“m­­mmMÉD’ê¾Sqf犕JÕq×ñ-ƒ÷?ÿãÿû±D"vüè‰lc•Zzt½í†Ú¹•Î^Ôýa!¥J%„ð|??’Cýþ¿P*@ô¼še›©dƲcéT:‹1Ã"œÆìX"™¶c1ÓŠ¥Òé|¡¡¡ÐèÞÜìLSKKzAð…çžíïèéí¾4tqíÚµzsJ¥3Íél6Íçò M­ -MMÍM- Í- …T6eÅlƒqF1•°¿òåklh¸ómwÌÎÍú¾ƒJT¨ ª:‚Ua]=§¥Ô‘o¥ÒÁZ‡ѧQ!*@Iꤷè^C¡zŽÇ¹‘Ïç÷íÝÛ×·Ìu]Çq¤D࣒úä)QêœTÍóÒ  zs4ìǺ~B+F\ŸyÔÅãñÄÉGÏŸ}ÛÝï¶mÛ0 ÝX¹|øÐþ'Oj·¨ëºss³'Ž=uêĵ±«žë¦ÓéÝ»wwwwp]O÷K=×õ<ßq]!„”xüØ‘«£WÞXE˜´¬´e=WH)‰úg=`s#i™³NÍ£"ò…³.¿¤“Z,–J•Êx©TʦÒñ\F©àôé“™lfÏΛLÓ4M32÷J©•1ÓÉ”iØ– „ǹ¡ßÜ^8ŽŸ<2<|iÝÊõŠáœR¢žqï¡Ãîzû]ïÿ}Œé^¨Ï,냫08cŒÎáÜÙÁ/|þ/?ù©ß|ËnWv%…&ä×uŽ=¾÷Ù}ûö½0==ý3iË„¬Y³æî»ïN¥RÛ·mXn˜¦býÚ•MM OýøÉ·Ýy§eÅ ÉÐó¹ð|V(äï{ßýBÈïíÿò—ÿnù²;÷¤Ò@mÒ,³0÷ZÔ4Íd"©”ŠÇlDL§“Ê÷}!cœL¡”P …†e}k[[Û¡¸¸0zíʱãG¥”º –B'3H)QJêfBà··uOŒ®]½ñð‘ƒccW XZ$ö?×·|¥‘Š…jJfN 0  ÓÜã0E¦žº.4õ$?]/2¦¯!Ú]§5‰¨CZ T§Ã„¸¶$ІBS*™9yò¸eÛ+VSÊ™ABV %RЉy’kTáݪ¤r\ß¶­Í›7;Nõ…^ÐæîX,N)iïèzæ'u´w1ÎYSsóâü\6ß@Y¶bÕ?üËwÊÅùZ­˜H”-Û¬VI­VË7:;zNœ<úOÿW~ú³‰X ¨¨[ z£7žMÎBAQ… JJ$še§ »„\øZvÈÒ©ìÖí»Ÿþñ£†aär ãH)¢*•æâÉ´mÛ8hY–~ D}PÉTæƒþ½Ç¾÷ Çqf”P§Ní]>ÐÐÐråÊåù—þ£?úlµZ-.Ìrnx¾Ã¸I%€”j’'¥@2¦q—ú¾Ò"3@Å8Õ_>D‚œél®Z)RB™Éc"ææ/^¸ØÖÑÝÑÝ{êÔÉåž/¸Ë C)ë¥<§Z+Uª®ßS@U.zíÐ˫׬inn¹:6~mìjÿú­”!Æ]Ku9g€@–8Q P:‘J‰@h[c” ªðH&€œ†g;Ë6…ÏÇe¬O$)'Z£ŽˆžëB¦M!ô)¥V¯[÷ø÷~°nÃ&E ‚PƒçÎÝ~ûíÍÍÍON?Ž€(üÁóˆ–²„6BAJ¥ø•o°éÑËW½òÊßÿÝß–Ë Jz„D]Ö!E-Î C²44(%ÚªJ)ÓiÍ6$¡?‰ˆ:#VŸ‚ hJjt†¨'8 çTSF/ w÷ô(!j5—² æ8¶ee2J© D"D“Rˆx µMZ»Š‘! ó±ˆ" Qáú\mÔIˆpãM7Ÿ>ýúàÙS;vܤ*¦âñ£¯½ã]ïcœž;wæÀJÉL&ÝÞÞ±qãFÓ4tp•išž¸®Îæs×÷|_¢>ƒÿ9ªøÿ'ûDÅw3f,P²êûK8áqš@œiÃtƒ`þú¡ò×%ŽŒ wuuvvöœ;s¾¡1—kÊÎÍOõ÷÷744j¿z½¬^Š×J§Ó~ÐxåÊÈôô”þ¨µZ­nà:ŽvVpNŠå¹‡þóË{vïú“Ï~Ö²íÈ$D–æu‡AÁÚR.¤Â “I¾|ùÅÃÏ>û¿þÛ? %CúBJ•êOžzæ_¸X,¶µµ½óïX³fMwww.—gŒ ŒOŒŽŽîß¿ÿ¹çöš†ÙÖÖvÇ·¿çÞ{{º»Û[›î¼óö'ü£[ß|k!_RD©›*Œ¬!€¦É÷ÜxÓλΞ}ü‰G7vìØÙÝÝ3ã¡> pB” æçÏœ9=>q­VsR0Jã±d¥R)r¹ôØØµ|.§¤¬VKR )S©d6’°«pd¤Ï&Š ÂÆ-;W¯Ý¸0?÷çŸû}G”«ÕÊÃßø7­_­Tªßüæ7îºëÅ’pÜÊìÌD¾ ÒÙ¼®«Âfˆ!PFMnhu¨ž á®ëz>EôOL$™tVµv¦‹ÅÝjMp¡eº•r©¸°H ñ\—j[1 ‚j…¸®ëº¾2Ê‘ ÙtrôÊÅÇ^û“?ûR¹êÌÌ-”K%=Q¥T !”34žˆ„m¹h¦IµÁ4¡”AêG@"ýÉÞx”0;wZÍ©Åâq¢”RRʼÀà @†ÃHHkšfkkëøµ«íRª¹¹Çq:::âñD¹T |Ï÷…B ”©¨­¬€„eœRJ‹5˜eÀ9ûÚW¿úÖ·ÜÚÔÔP,-P¢'µá\_“¥"Bõ;DTB…4<»@¹Öè7T2ÚA•~?„`ä3ÿÑu}bÛ½{÷¾ÿýŽŽ©ÔÙ×_GÄýËU2I)M&“õƃ>¹bô<ë(l>€R…r]¥×ƒÈ”Ž 6nÞ'.^8¿c×M€º›¸®ƒŒyAзlyOß2HõjÕºÏ÷}íÐõ<Ïu]Ïó<Ïs]¢BraøÞÞ¥„›Õ_ØEµ™Ô‘ÁX­œ5íù%–‰¸aÕ‚_þË(¥/^¼ñÆ=Ù|zøÊ!°aÃÖt2Ë)AJÂÛ)uj¦÷ÚV<™L!bkk+çÆÈȰþ ó¹†T" Ë:áÌãO>òà'>ÑÑÑÎ Ýl” a'Š ðƒKÃ#G3Mö̫WG`ÝúÕ_øÂÚvL ²+èððèç>÷gRâ|æS7¿éfÊX{[G°^Â×P ?ùÉ:ôOÿôÏ{÷î}öÙçŽ?ÑÞÞöùÏýICCá}ïy÷#?xô†mÛ{{ú(•Tý?Ä0€PbØæÆ›7nØ<99þêáW_~ùù ðø(ä–R’ÍåÖ­[ÛÝÓÙÚÚzìØ±uëÖé´W¥d¨$TIÆ óÌéSóóóˆdçÎét€PPz2Ï(• d˜ÉL*)æ2Ùõë6?ñäwæÞïžÝûÌüü¬¾¿wïºùÈáƒ]Ý}¹BS"ü¾hˆ&×I”‘1í ~ö¥ó(*¹ËrF´åi´”RêM±Þ9ÔùМw=tT+‘ ù†ìæÌë§N$Ré•!$ŒqÝ$¥”iñ¿nIRÆ’©T¹\ö]o~n±³£¹P(¤Óéjµêû~­VI¥†A›š[Ž9´j͆d"à ƒ¼¥­sb|´µ½+ŠUá×®ŽMNŒé`‡x"Y,.ÎÍÍRJáÒà¹ÞÞåÜ4M3¦ûºõQ”î~È:³"ÌM qNü@Rä@%(D䔡i*0I•Rʆ†ÆKÃç)c,›Í"€¾îíJ,Ë6  aç@P#K*Db˜<žÊÄãq§VÞµçÖƒöõõöNOO—J‹ƒƒç;»º7mÚRu½J©Ä˜aÇ“–a"Áp¬ `pjÛ–e™&g åÈðSs¤”ñx̎ŤR¦iƬ8ÚÀS²¹B6—+äªå²e¤£½3f›•r¹V­ù¾O„ „ZU«~ÃbF¯¥…BÞ­,~÷?¿ñù?ÿK@¸ruL)âº5ê³i8­ÔˆXB(¥FCý™e 4žXëH(!$ ó±Ãudص$¦i¯¤t]‡2Ã÷ ÀgA˜v¼ž‹IÙ¹sçOžz²³ãÎØÐ… Ëúzãñ¸”*•JUŠEnPŒ›º Ù¡J© JÎ#ç`Ì2^|þù‘‘‘?ú£?tÝj´(¢RH1„„FpßQJ÷¥AJ‰„c¨ÀÐÁÖí:'GwPukFQBA!¡ÑÒîJŠ„”RÛ6—÷÷?÷ìÞË—/ÏLO !,ËÚ²mó-·Ü‹Å°ð‘ŒÏ×a?Œ($! ´¢–R)@ûãCƒ>¡™\¡··ïÚÕQʨV99N•q^«T” 4› §‘¥”¾/´¦D)U­Vƒ BÔjŽïû¶mBA ¤¤xÃ!'Œ` ㇰøŽfªƒ]ªˆ1Võ~Y0o<B\»6ÖÜܰÿ¡M¶QB(fL™‰bŠ1*…ÄpÚÄQÁص1Dèí]~ih¨~[Ï/Ì>òØ·î{ïo}Ï?óÇŸýÓxÜÒ5aÞ‡T”R_xÇŸ8sú,¥´¿Ù}÷½;Œ‡%(eÑ¥)@)HIž}vß¾ð¥›Þtã¿ø¹ÿçÿþ×þ+7lØ`†X!PW© ¶¡ïÚµkÇŽgΜùàûСWqpðÂwþF"™øÐý¿ñÔÓÏ–Š‹›6mÖ[ /Q ç¬>ªW Ú:Úîéx7%X_"££8NµX,-,,Z¶I)B\¾|yõšNÕ(•ˈhÛ1§æ~íØOŸ}~Û–­­­m„ÐOý—OÞqûo}Ë[ @‘Q¡Œ¤RªLÓìë]>116<|éÞ{Þûð·¿Y­V:;zšöÜtëÓ?~ô=ïý X¶–EŠ PõÁ+¥…TL*ä\I=—áýµÎ´„2Œ>È)(É#T1Ði–”pQ?PÑÃQB¨Rá2§©.VØ€еë7ON8øòÚ5ë2™‚R£LJ]Ūh^R’x<™Íç¥ònš±X<“I넇r¹\(0ðœŽÎîçŸ{º½½/Å9¥´»{Ù+_hií‚\\˜ÕVÇuó…Æl&?<|Aß¾ØÐÔ´sg¼¡¹PñzÐ<#JC¥“|I˜.†„€RH0Â(dÀ0Ô×hÍk̰$cžëX†Á žL§¹i %…}}ˆ/œËår`šL0¾ë†ÆÇ‡KÁhƒ 4³>ù™Ï_¾4¸båÊd2ñü¾§“ñD{GçÂü\&Îçs1×/•«µjÕsjç Awc1˶ “±™¹Ù™Éq×óVô÷'B *¦»Ù¤B8ž§‚@IeÇâk7”Š ¾ïk@­²Z›¯”KLù*˲Qú€D bˆ…Wþ§ø›?þüâ©ìÈèXÍõã¦S­ÚñÆPa€H¸Þ5ÜFßó”Q@”ªÎ< ˆŒB B´ëëå•Þs8#,O ¤åâ¼PÀ˜‰€Œ"Ä£ûŒR@d”0…VÜD(ßM$RÏ>û“ûïÿ  ×õ³Ù\¥RËä³®ëZ6a”¡ @)¡€O#  Eœ/,.~ë[üã&­Õ<¥¤¦ð"¢Ô  €Ðr@)S ¡Bh²CE(B@3˜Â¡* Õ‰_J"¥\*Å(ÑIÛ…„Ayíè‹Ï¿°¸°°}Ç ÷ýÆûQ©K—.íyÿÕ+×>ö±¦òY]BÀ’ xBˆ qº`T@A¡BJ˜ ¯‡Rkõ"JÊøÊU«="6A1tá\KKs­Z&܇1’A |/ü¥BpDD/)…”BR>(¥?ÆÝYҎŸá¢ô«Mz¬ºTD“0-GøäWüp*•ªÕj›6mzíµÃ–e¯X¾R›/Mn„üVBuß.,ƒQðý`jzòä©£ºÙØØX*•ô)clüê믟¨9µø£ÉTR£ó€@”NfxžóðÃßͤӷ¾åÖíÛ7õõvÙ¶ipˆðw„Öó~ÂÀXøÊWú‹¿ø·ÝöÖO}êÁ>ú{GŽ»ûî»Ö¬]ECá«w´t‡0’ @SSÓ-·Ü²wïsÓÓÓÝÝ]7lP¨–/[vàÀ•ý§”Re¯£)!B#Î eD–9S:„sC¡ U”±t:㹎TžeúL”L&¶mÛñÞ÷¾wû¶íý}}½oyë­ŒÓo=ü­‰‰‰žÞ˲"& Ã#l•’H456Ÿ>sjrj|pp°TZ€R©þºu›ŠÅÇ©å š¦[›Ž^Ccœ~¡NžT:Ï¥žÓæj(¶ž$DîSESz„È9Œº+¡´$<ŠÐ„ŠK¾e¥3 )U"‘ilh¼pέVR©l4!»^Yê† ¥,f[œ„Ð|>'EpúôëårYO²Ù¬iš¾ï[–5:z¹¥¥­¹¹M¯¶i]¾<ÜÔØ‚DQßÿîCó³3±XLˆ ³³g~~¦V«\¡P./ ]èèêjjj2¸¹ôqµt‚¥ @!Ò܆î/r=âBä‚ap%ú¾W\\ ‹Åb>›ïèèŸËårŒqÓ´87¹aXv¬^1#*©ªº‘E7é1™Êttõ )“ÉDWW×ààù|¾°uë¶¶ööT*³cAàתµx"‹'Ð2ŒT2*˜šŸžšŠÇâ­­Ù\£¤Z­jG›ãøžë{¾ïz^Íu?ð!¥œ›I$R–aÌÍMûž§;iŽS»vµ³£Ý÷}¥”Á™BÃæñü¹3í­‚þçúØkií¹|µê¸Ú(:59fY±d&‹ A݉<³LwÛBÕ~hÔ‡ˆYAga¯T㚊בâºzçŒ%’ )Uµ\®Ôjz’C€ Rg&§”ÓkÁ‰±±|>?22rôÈÑ}胾çàÄÄç<›Ë9Ž#¥¤Œ ÍZ*Š()( Q2ª Ãøû¿ýûÕkî½÷ÝÅâ¼!Úbƒ‘Ó&b9)Ô&ÏЃA‘ 2E!Tµ!*¨ÞÑÖH õ¥Q²rh6œ››{aßKßúÏo]½zÇwnÛ¶môêÕ•±X¬¹¹yÆ WF¯<óô3] …¸~åi]Ve¿(©‘ 5G¥>é a–úž{pÿËo{û]ñ˜øþ¡ƒ6oÙ,4rY†÷!¢ë:®ë‰hAÐ=­™ˆ^šy$5°éÕC¯h¢òðæ)ƒQ,ºî¯ÁÒ%m1½Öÿ—þ´NCœœ¼á†2™ôK/¾tçíwkj0 9”ÐÕ‘B¹ŽçyïÉx"±¬¯?“É]¾(¥L$ÕjE¯Ý•jå¾û>ÐÚÚb[–¦ni†viI){ôñ-[·lظζ ƒƒSÂÎ5Š(¡ãã“—/_­Vœ¦Æækcÿí>gÛv>ŸûÚW¿þÅ?ÿ³ÏýéoÞ¼¥nèŠ4N4z^h¤·"P(äo¾ùM?úÑËå²ïûï{ï½H Æ“ÉK##]ÝŒiÖ-EШp#ÔoÉ4)ã„Ô2(çÔàú– “o874§2ÆÛÚ¦&Ç}_hKc,Îf2ÙÎŽNJ‰išœóxÌjkk»éM7ÍÍÍ=ôÐ×rù|kK³þXçC†36]å IDAT*kmm<733•J¥ÓéL­V˜kïèììZ~øðË«WoãjÝZ' 5ÃiƒRJ£ ë*~У}M¹P¨P*©%0ñ¡ ø¯¨“õžŠ:]N‹¼¯ ä¢ÝõF¨9×B ¼¹©¥êÔÎ=™Mççu$¦n3‡Bl;žN§› RŠ'/..†A‰Åb¶mû~P*•››/Œ,[ÑoÇâ žH]<ÛÜÔ œ !wìzS<žêéémin™™™ò<Ï­9@```Õʵ‰d*O]×”Gl‚déx])ûa$| —  8UD4FÎÙÂü!dzz²±¡)ŸÏwuužÝÑÕ¹|Å2F‰ÉÃPJuÙ.(áUÇûãÏ~éùç÷·µ·‹E]Bˆw¾ë_èß}ä;÷ÜóÎ0èÄðÏÕ½º¨ 7••+W~õ«ÿþ®wÝsúÌ™™Ù¹\!H—/ë{áÅ—Ïž;o†iO7¬l&ŸL%Lƒ+…R‰ pƒ@2FlÛìíëK'“Z¡}Ö(‰išÙl&|F‰Ã‰N¾¾jÇbá—±d2øž–TI9%Œ€¢o{ë-{vïø_ÿë__?uâ7óÚ§º b=r0%Ïdò«V®Ù³ûæïÿàá7¿ù­©TòÛß~XJñÚáƒo¿«­T\tj5 :ê!*… a„!£ €êMY£¿$F¯‡.a†!"‰èÛaÁhLËÂ{ •Þ:õ“ uÃR¡X€\ç°”Ñî(З>!¤onÌ7œ{Û·?ö½G~û#Ù¼m‹ë8A B†°R$‚ ü@wG ±ô¾”ç¹¾ïû~`¡U÷Ÿ¤|ã­Ñ¶\þÒìdÙs=)Þ°;ÚØyk´Z­¶µµutt öt÷uvvqn0ª­m„(©\Ç«Ujžçé@%]ÖX¦•L¦lÓ.–žqoss“n·´´\¸pÁ÷½L:½lùr…(ß÷}DµX,ŽŽŽîܵÃ4ˆerJQ`,<2Î}_þõÿÇŸ<õÜŠþe7îÞýÙÿö‡<ð‘d*yáÂeôþà÷ßýîw[¦­‰i¿¦E¼;§_]]]–eýô™Ÿº¾ÿæ›oÖêÊM×­X±by_ggg{[K¡„[*-KÅj­ì¹£`šŒ:µÚÁ§§§ú–õéN£ ¥ KJ(e¨dedd4 G „†ÙÖÖ–I§MÓ4LnY‚@BX–¹sçŽÉÉɃ_Y¿qƒÎ™‹Þt/ ”tÝêñãÇR©Ìµk£Ê\­UV¬èŸšœhïèfÜBèTB…(•”*@%u_^*yü%`Ý<‡õsz]KFê8­Ÿ Cé~]¡"%²v&F'Y½¡hbDÄÔÕ©:ÿOÉ@"Ж–Žù¹Ù‘ËZt—ŒE {ᦠàÔjBxSS“”Òjµêy®–ÃBK¥27¸išJÊ|¡m;ιyåÊ¥D"³í¡àºÕïÿ›NÍéîîQ çæf”R—G†OŸ>Q,·mÛEë©KV =[z²Œü$á‰2JÕÍFцRÂ97M®3-†.^Èæ²½}=GŽYÑ?ËlÛÖü°£€¡Ôž‘0ê™P¦Cû3füÑï}]ïÏÕjµ\.+¥jµêÑ£GÏoÛ¶MÇÄã ¥”çùžçkL³Î·#õ“Qôçè¡ QÄ5MóòÈ¥††F¯VqjÕT*™É¤Ç)—Ë Åbñâ… çϾtéìÙ37l¸ëî»»º:cïÏÍÌø~À pF0í,Ë—3M3¦a½uïN´Á ô?qbhhhíÚu½mÝR€Jë9"ãcgϾ>6vMjss³Bø­íÙLáúÑ't%Ö«ªB…7" Ñ´%/["5¢†ÁíÑyü”èÍ—ü¢%N¢” “|C}ød‘H @¡Q¡ÊåÕ¹³gZ[Ûõ^hšRmžqÝšï9³33­­-ímÕjéèìŽXJQ$¡©F­„9Ì(¥„=òJ©T¬tëñÕjµR.õtw{žkÇ’œst`µëjØR8xgMšÅÉ(#”0Æ¡ÐÜÜüâÞ§{ûúßÉçóétzhhhhhh||¼µµeõª•«W¯Üºes¡W„!‚Z­êù>dÚ°MQʉYö¡WöoݾÃà!¦‘0“YK¢¹×õ$)M¢&ÕJYø7ø’¤q²”rŽñ˜Íõ}éy€¢(ÀW¾ü•†B¡µ­íÊ•+kV *Nék‡_¾2zîÜ`CScOOO[KK­Z‚@÷f•’½Ý]=þDµRnnnÔ·,%@A PP-ÌÍŸ=söÛß~äÎ;n»ýö·”J¥EÏuu3ˆ@,”JßøÆ÷wíÚ† ¤”BI]V0DTB J ñ÷zlŠzS$šj&!Q )€RRèÇÇõ¼ÇÿIsSë}÷Ýsã7µ¶täsùd"ɹ)‚ Z«ÖjU=樂d³™cÇŽ._ÖG)›Ù½{wýáÔ^¸H%.£óÜõP(¥½" äšÛÔ²LÓ0ìX¬oÙ²G¾ól6×ÖÑ©”¨;Ãèy©×ÑIžœsÝpÒqªº) €z#”R!€’êÀþ—+•òÛ….@Þ(‘æWÿ †UšÎ䃥ܙ¥uáõ+†P¿²ÚæE  TgZAÔ+¬ç Ö…æúQªO5ùPJ])"êf ‚T*n§”çÎnll‘RqεµXo¡ ‹ssó³MM 'NËd²“¾`*•²,S)H§Òcc×úûWÊ•mÅ3jµÚÂüL¡±9"sãððà©“GGF†=×]½z­Âqj:Àïæ[nÏds¤®S #ñ‘ißS7„EÅ T”íH âõuЙšA ŠÅBàêÕQ%UggçªU«žß÷lOÏŠØ ’R‰ðtJj] 3•€ý«gg§ff&u6§’¬_¿!›ÍžÓ±´BŒòx<Á¤ X5j)D»`xðªaŒ0T©D,·_Ùÿbss37x,‹ÇãÇß°aCwgW>Ÿ5M T=ï{®ë:Zàç F)£:÷—žýÔOvîÚ}=ö9\d”ïûžSR †§ájµ¦o]ý†A)BJuðÀK•Jåm„ð¿û…ˆz#äœOOO·´´T«•e½ýñd’Q*…Bº®§$*‰ÚAÅ©+T„†‡X²²ugWg­ViïèÀr¹æƒ˜¦Çn»íVB4BžT«ÕD"–NÇLÓ`ŒpƒrJ9ãçœ[ÿñµo}èƒ÷Ÿ=;¸çÆ={öì2 3™H444?~òرÿÿxÓM7ÍÎÎîܹsé!ñç¶½¥¥á’Ðãk|衯_½zµµµuë–áâ58g”RŒD›‘êæz$)Í/í{úég:;»LÓB)ÃÄn(¥\ß;~(—R¡J©mÛ©T*›ËÛ±˜nb=V>ܶnÛúØãO´´´¤Óé%“líÄÒÁ($™Hû¾ÛÓÓ344–†BlÞ¼YA¹\æÌà̬Óbꉆu­ã’æÞu/WýŠiÙBØ©ÖnlpÍÔ/ÔñgRþL¥ñBk`]¢y!›?BÝ"’T2],-TÊ•D2]ŸVêµT.ÕjÕÖÖ–3gÎpÎgggƒ pœZ:¶,‹sƒQ619¾bÅJÛ²c¥¬±±åÕW_lké6L[ƒÈQâ¡C/v´wÛ1k~~aÍêµW¯^EP­w½ý^nX½´$ž@gÔÕï ýWEƒU¼ÎH#ágg”h’¾òžëT«Æø•+#…B¡£££¥¥å…öuuõ(Ê›UÄRðÑ×Á5M^,-B(£éTfõªõçο^\\¬Ã>ÚÛÛׯ_?11îy~¾G©¤ l;îÔœD"²*#å|=íUé4èM·1)JNÕØoinÜÿòþÉÉ)°msÍšµ¾ïçryÏsuú«"M Öì}R¤ˆŽ?'D—§OŸZ¹jU,fƒu¿®R ê$1œ……q¸@E¥(c§Ojii6 £’12ª †a†RÒuj€ ”ð\çßþõ_7mÚpϻߕŒÇ׬^H$Ο?ÿúë§o»õÖD"®„pkµj¥|âäÉ®öVˆÊ÷}ß÷|Ï…=ÝÝÛ¶nÞºyÓ–vîØŽ¨Nœz½X*qF»:ÚÿÏ?øÔÚ5kdàæ<×Õ§¥À‚ÀR óóÅ7ÝróøÄDKkK¥\–Ú¡P) "NJuêÔë/^»:ÖÖÑ™¡'Òú¢†Ð[P¡œ64Ã3Ó´‹U×ñwÞp7¸ï3³³Ï?ÿÂøÄÄèè•ÞÞfÓÀD<†( )‚\>÷ã§ž..–zº»_Þ¿ÿÆ={8g*+‡'äºÇñº¾R…Šs¥É”R˲(%@0· Ó ¨ÐüææÖ'ø„ëºý«"xºT(¥RAàתU-;ÒTBÀqMIÔß iZ:ÛLÃ=^9xàV„ÔàÆÿÞR©T„:,—ËMMM-gÇ‘~ ¤Þð•D QQú•B¢äkoï\,-vtt–ËÕº§R_îßþíRF F  ’‚QÈå3ga: £ø®—†©É™®î®¦æ†ööoÇbçÎû‹¿ø«ï|ç»—/_Þ½{÷©S§®{E~õ¨´¾Ð/ÕÒj÷æÍ›>¬›ãõ•.‚eGÔMB®Ï‡B~?¤J"#ìÎ;ßöØc*%D´¾#¢¾ç9ÅÅjµê-rbÌH&ÓŒ±XLoœR¢”ú2j.J!úÀ}î¹ç<Ï‹hZ&†Ér¹|CcãÊÕ«ÿäO>¯cPV¯^‹Åqrblèâ¹dÜjijªV‹cã—ë;_hÓø^¥q×wغó7ÜŽC°& —~;¢”…zO)©IýzÓB¡!1„”Ê÷-˜Ö9GBÝUQJÝYÁþþµ£W/×jU¥Ð÷E¤µ–¦e›¦Å¿÷Þ÷¾öÚk–eé tß÷Ñó¼™™YÇ©¨8£õ¼ž];n9xð91­Ö®ÛlÇâ›·ÜÐÒÒ5??3??§·´J¥üê«/ƒVÛ^ïåja·”×w©%áUÚÑü‹“‚ˆ’’ðpm[vScK!_Èdr¶mÏÍÍuwwÇbæ•Ë—¥ô}ßSJêR úµ”ç4›Ke³Éñ±+É„-„O„ñDòãŸø¯{öÜbš–þ…§Nš˜˜H§ÓŒQ@tœjqqnfjÒwk¥R 5°AÛ”ÔqÄ%H¨$œƒ(¢§@Pdow÷ý¿õriñø±£¯zÕ2¹’òЫ‡††.¹®«ß¡>¢D” ©žJR4 F rFÚÛÛF/_¹)¡7@@@I¢TJ„+cxG %€€’jãÆM/>¿/œ·I©÷Šp‚%%c”Ê Â|§R^ûéOÿ~:>uêÔ½÷ÞûKu1¿ª;aÜÒéäáLJ†.Ý÷Þ{ ®«WHu'¡Ai#ÖÒÐÉ}¡Ì-ÓL$“çζ¶µK‰B ã¸ WG¯NMLÎOOÍsδf„1–ËeÛZÛš›‰8¡TI¥´Hmò«—SŠP–Ïç9ÚÕÙ¥5&R D” nX–‹ÙéL&›ÍuwuŸ>ýºiš¥R‘q&DÐÚÖ‘HÄs¹†T:32<¨”²íxȈ„J…$BÏ„J}‰™N…M'LÇKè^TGmðÇ­bA´•܉* H%„D?ôºIÕÏ’@ˆBÕØØrôèÁžž¾Ÿ±1 „ÈfÓ…|^ˆàèÑ£©TJ™ËåãñD±X,ûz—¥3˲“ñ¤mY¨O,.Ε ùF$@òÙ†g÷þ(LOL^Óxà ð}ß;yòÈúu›Sé %:# 5ëðú¿C"cÔð [Û §zZÄå*D;‹ÇâB¦iž;w6›Í¶´´ô÷÷?õÔú–õ3Æ ¡R?ÐYÊŠ1–ͤqs~vº\.®Z¹Ö¶ã–i(JI%Á¶ì ë·Ütãm®W»|ù’RÒ÷ýõë7LNNRJ87\×!M-3Ó“©tFËm0$Ûë žJJ ( F$É@2Ʊãì¡o|cŲe7ÜpCqqáÔëgÞô¦=7lßžL&Ž;^­”ó…£ÌdÌ4Œxãt÷äfƒ  €ƒ"I‘"­,­dû®ãú®-WY¾µµ÷õZ–\º¶®Íkˉ´®lÚ’h“˜@’Èy"&`rìéîéxú„/ìßé$K2ï–Q,9 fºÏ9ï÷¾ïóü ¤0b)$?¢X4öæoìÙ½k3aH™Ð‰&ìt"àð ¤p è>ßkWÛ;;!Äü¶ È;‹hŠ,KØnÔk• »Q—%øgÿã;w¸ë‰O5»þc#Ö IDATøñÔ§ê¡HøØkÇ:ÚÛÅÁFèGd ]¿~íÆ®];»;;B‘p[{ëž½»ß~ûäÄÄT0 ~Œan-?=½pï=û‹ùÒ•kCùB9CdY©VL‡’Û¾ö_þ¯Ý;wmëïGÝäààëÝÝmÎ_K$A¿Ÿ¸tllòì™ »wïZ\\ŠÇc³3³-é–l:Í<À7º^FÈ;ùy鉜Q"ì¢ •°„0±šŠ¬!]â2Æ)fÝœ·{ÇöâëzM‘KêÕšëzgBY¶àkSÁ¿•eÙe”2F\Ê8½xáB탊e àˆ»“™šmÙÿëVüŸ? ƒ²,†ÑÑÑ1::ºk×.Ã0 á#J˜7çûT±Ý¡@„‡r@.\=S©>öÑG¶ÅãqÛ²]×M§Ó•Je~~áÝwßQT9›Í(ЬkŠ¢`YDcˆÄbEˆ1DxphÔ¶L&-ËŠÏç÷¤¡~ý¾Æ¿öµ¯;v¬^¯?öØc?k4zçtô'>A<|5M{ýõ×—–?÷¹Ï(²,Ì‚µzãÏÿëëo?}ú a¬«»BûçùÏ=¤ÐsƘáÎÎͧ’×!ŽCK¥ry¥T*/,¬2„¨ ¨(j<kok üšªySP¨w kª´ã P\—†ÿò¥+[¶lÝ´ýQÂD/+fq’$·´´PF5UÛ·oßÅ‹¡ûöí/nR--†ÏïÓ±DÊqíÅ¥9ͧ˲!ƒMäBÍ@=a.ÁÇ‚ÍÜFòæÄ ÏþŽ2Ƽ5$ rqµ3O'"k)圻®ËD.|óXJ›'J!c PÈE£ !³ç`,aIRUU÷éáPhmmmyyI’¤H$¢ëz­V«V«Õjµ½½# ûý~Ÿîoæ8ƒT¢åý³'»»¶€£-©´,)Šª ë--Ùmý; …¼x k½};$UåL¤AQ‘ç! Üëÿ¸È.@œ£Í*ÍqŽÄ½ÁgãBÎSUM‘år©T*m4V<žˆÇc•r¹Z®Äb N% 0 (²¡k†O­VËòL¦-KÙ¶c5ŽíŠoRL%8犬¥[Ò'O½ p»­­ÍqœëׯÏÎÎÌÍÍ'’É`0Çæã‰d Ä CÁ3À``S¹®«‘PÈ´ßû‡|àÈá{0ëU KùüzµZoÍf¡POWçÒÊJ¡Ï´´¨ªêóéÁ@7'Ãbö)a‰C±>C¯V«Ç÷F8âM“,hvˆBµ©ããÍDìÍèÊòrº¥…qFÅ|€1B§Ì§)Òzµh›uYo¾yâæÍñÿò{¿‹8-äV˲,Ó¬VK…|½^¥Ž !” NT8º1<ÒÙÞîPNÀ°M¼«”2Œ¡„œR×n4ªårµZ‚Üsd¹„9®+¶ù’e»Û·0Î}šZ­U¯\ìêè`ŒÀü~ ¼1Ô×ۛͦ1‚šªa$©Šºsû@<›¸xùêêZa-Wx꓆¿5ÓÒß¿spcp¬««CU´jÝ´mgßžÝ×o }é‹_°m›P²¸8»±±qáâµ-[Ú‡m鳯Þwß!ÐÈèM]S+å –¤î®NqCaìIšÄŽ dbªI首B KŠhK††ahš† $”rÆãu³aY FéÅËæææoMN EF©O×Û¶,Óuɦ•cLk4L×u)e”y–-N‰ëØŒ1Dz®]»úAU£‰]:nK¦)!U³Îÿã:BMÓ8ç†a¸®+~þH$²g×Ρհ(e2V%Œ „ÑLj®_¼–”’‰©‘¥ÕùGyÌoŠ"ü~¿ß799uðàT*µ°°Ðh4—Oz¿^«Þß=Š,)Š‚ð²¤1ÄAE~v­Þ8wöò“O=qéÒåB¡ 'Ƨ^{íõÿö'ßþìg?›N§õWõÛßþv:þYUÜæòý„Ž6yçöéÓ§''§¾ø…Ï¨Š„4=;÷Û¿ó{c7'(ãðgžùŸŸûÜguUe"A”A!`¼Yq%œR°¼´%l›4nµ¾a6ò¥Ê[oŸJ&“Žír1ÆŠ¢ùýFwW·ÏçSU•QN -ä×§šª2Ή+.2QE0WUmzz:•j¥EäH ´I쇪ªHÎd²”ÑãÇ߀G"±»Þ=77 úáÄšßð'©ÕµåõüJ8ý‰ôN/c þØZµ¹ƒ#áíCsÀ ‚Áfl“ÇCãRÊ\ÇåD º„i0Ê”z¹e›† îe±;Î%BšG9¡Pdjr4™HŠ…„ø%EiškiIÏÎ΋ÅX,¦ªj½^­T*Žc‡‚‘H$&üF¤)µåâT²åô»ooéîå pZ3][z¶nÛ¶3ÛÚ‰Æ5M]^^¤”äó¹É‰±F­žmmÇßÙ*7) 5GU ˆ‡üöãÛ“¾±bŒ3ï˜LFج×#‹ ‹Š¬¤3-‰Dâøñwúv#ˆ$ †pR,æ$Ij˶!Ç¥ë¹b±XjÔ-Ç¢^±™O@}>ýø;ÇĹ{~~~mmMœ¸Ç. ;¶ïÆ …"‹K ±XŰjP9Œ3†GHe C`844<úú›o<ñØ£í­iÛ¬Ûvƒq‹F‡G~C×5Y–Ò©ÔÜÜüìüB*™H&⊟!$ªj–C„¨w­­m—®\|óÍ7f¦¦VWWS©”,«l“·°I^¸søÌç< Ÿ}ÿÝ­[¶oéàrÊu%Hu]Æ€šf¶°¸ú7Ï|÷?ýâ—wlï[[Zv]‡31£ÖC&ü!Þ$pŸ¦ÝïìÈÊ"ÒŠ*Iq!犬@#ŽíØF­Z­W+õZÕ±B¥  ”ÙbèA8„ðÌùK» «aEÂaMÑÞyçTK* … ’N~ ¯·5›¦Â@f7\×u]›s¶ôtîØÞÛ–Ílè5t?’„$„q*[X\öiZ(š™_CÛ¶ÍÍ/îÙ½Û¶mJH,bÄãQ¿ßW¯¸»ví=þÎ{++k=xØi4FÇ&gfç MG–J•m½Y‘–¼ˆÇMi‚ÀrmBˆÀH’$É Â@¨iªa!¼ íjµÊ( …‚hmÍ®çr7n\?óþébqc !´ººº°0§ÈJ °m«\®RÏI"D¹Üq,JˆcÛŽc V«pG(†s·§ZdY.TÊ”±ÿ¨Ž0 Ú¶ …Ç™››‹D"«««G>à÷õšåØŽ„$„¡¤¹ÒçŽC©K9äÔ%ùÂê…+ïöSŸA2N ]  U•³Ù̹³ç|èhOWG¾Pº ™™ÙÖl¦½-ëÓäÁÓa,r™tú¾ù§~øá½{÷ IJÄc©–ÔÞ}û~ÿ÷¿‹Å¾ò•_|â‰'¾ð…/ÜY7­o·=p?ã—¨d¦iž;{vxdä‹_øœáÓ†ÿõ¿þá×~ÿw¿ú;¿ó‰O<ú‘|x}}}zzvÿ]wND—Ð §e„Râ0B˜èdÖrë¡@Ìq¨m»Ž]¨×KÏüý?Â≄ë¡K,7¶oß‘L$}>Ÿ¢HgÏž{íØËšOýæ7ÿø#yXB²øÆ(e¶íÍA]—øýÁ7®uttß$6q¹"Ž!¤iº$I++Ë'Nçþí;¶ƒ¡ååÅ@À/+ª¬¨¡X$‰Dff&ÍF=à ªq“§{{ÕºùïÍᤷ&˜1çX Á¼þ2Æ!,(È(C116 ^5­#„Q ïHAEQü$›ñ`œó–Löê•óí= ^DrÎMÓª›u¿ßÈf²CÀ@ÀÏ9¬Õj"Û±Z[Û[Z²aqž±ËŠª7 † GŒSF¹"kŽã,,μöÚ‹®Kâñ¸iÖ«Õr.·<ŸŸVÚ¨¬ç VÃòR´6e@´b‚P–•âF¡Z­°¦ê]ˆYêõº¢(Ñh"•ÊÖ*U³^ ƒ(‚1Â@œBàÊ ƒñxÄ¥ä‡?|ÞvìO}òq ÐzµìR×iX”RŒAK"yò½÷’ñ„î3B‘pHU”ËW¯šæ÷®ëPBšNEÜ\ô£M¯ÏçÛ>°=™LƒÁÅ…ùK/Ȳtkrbuu…Qj†Wü~W¡WdŒBˆlÇÞ(cÑ‚C€—1Ã説(’"Ksó‹úg±g×Î/ñ³«ËËVÃDˆá’H¶Fa,aïÁ½¥øÒÒJK¦…S²Í„³K–eY–·G§”Ï Á¸W?D,6qE€ZÏ—6ªÕþÞǶk•Z¥Zœ§[R;vl»|ùúäôôÊòê}GEÃ!Ó¬ÖjÕ†Y¯VËõzµaÖ†e™–Õh˜uΙ,É{,Êç<“N½zì펎¶™Ù…ö¶¶¾Þþá‘á]ÛwØ–åØ6‚Ð¥djjîð¡{^xé5œ'?qt~qñSç|>,APoÔÃáÐÌÜâŽmý>Ÿ!’ã&‰[›C ÙŽëºCUÕ‚MU€¸¨Ä‰ÖqÝj¹l[f3KpÆdYÎd²Ûú·g²Ùr©|æý÷ÞzóØÐàõɉñõõõ={öOMM>ûÌ_¯¬,kª¶ººZÈç4M:ŽCˆ[(äÇÆFÆÏ+„€„¬©IÇÉLŬÕæÿb÷Ïê}>Ÿ¦i”RUUmÛžŸŸ/‹÷ßw4Ž@*¥*€a¼¹ ¢„Ù¶M\F(­[Õ§=ñ‰§|†Ê8u]›ªjªaøÄW¯Öª=ÝÝmm­W®\RBO¿{núÖìG>zTQdä9ðÚ<¬é>¿ßÿõ?ú–,É[º{LÓ.•ªïŸ9ûïüõþá×'''ÛÛÛŸxâ‰c™‡wþÇOµòfÒz.—;yâÔÄÄø—¿ôyÃðaŒßzë}ôÃÁ`H|r8~ýõ×yäãœyòF!c€æ:Ķ]J€ãס…BÉçó[¶KA¸püÓÉ•j- ‰J¡P »v쎄£º®sžyæï~íWùã}ôøÛÇ·né…¢ž®’CJ!Ôu]B(¥,—[ …Â`X³/A^ ;ðV1šªý~ÊØÄÄ„iÖwíÜ£©šá÷çÖׂÁ ¦é²¤0ˆdYI$ÓF3³·!þ€_Äuzüû¦`3ÞEt‹HÀæ0ÇX@ìD¨/ðt”m¸oºþ_£Y¼•Á£aŒ µ„ÐM=”"òž£Ègh€µÜJ"žØLm2ÆJå’,KÆ@dddÐ0üº® /y.—ض#Ž{/à`ñú'-çΟnÍv ‘b ØÚXZ^™›œ¼ õZUUµ¶Öޱ›C£cƒÑ­Ie@¯îyòÚ”zñIÍ4î­±îÔ" [íÚÚ²,Ë¥òFOÏ–H8’H´,--MNÞììì–eI–µFêVêµZÝ4Í­™p° nS¡ „`wWß»ÏÌNmlĉb“C6??»ºº¶ïD<511âóišªF9'€2 4ðÅã1Ÿ®_¸xéÍ·Þ|è£{¶÷WŠyˬ‰u8e”—3{âÓ3smí­€ó†ÕÐ4ekOÏÈèX{{qÊ™À¼IMê‚z ¬À£DÂád*Õ³µwttää;ǯ_¿rñüÙ³gß[Z\êìè% xÛÄá¡àÕË—·õ÷!È!ä2ªŒ5U…LÝšùÞ?üó?üÓóm­Ùÿü¿R¯–«• à\QdY’0@‚ÔH…HX†`´ c‘Ðù«C=YKBð⺞ћßf11‹±â€;®k"(kúé3g¼ï>Œ¡0äˆ1€ªjš¦oݺ%›I÷tu1êV*¥†iŠˆ% cŒ8®åØŽeY†Õ¨Û–e[ Çqëõºišzݱ-Àx*>ùîÙ›·öîÙÓÓÝ=<2²kçN¡C¡Œ",w¶f^|åµpØôðÀ˯¬”ó{xeäæä¢ÕpñÀÒòZOww$QEB$Ü„âòæÀsþâºBH‘e¡ª¨¡@@’ä¦Ã˜×5ëõjµ,¤­\ÀÆš:gÇu©ËB¡ðÖ-}@P‘ÕJµR*§¦¦nܸnYr¹4666999999<|ø[ßúÖÃ?ü³ á¿…ˆB(eÃÃà óóƒC7¾ü¥/‚>„ÀÒÒêÅ‹W< Içü»ßýÞ¶mý;w ˆÕc%•jYŽãPסŽC›,-®hZÀqåŽi.?ÿü±C‡LLN§RIa!Êç‹[{úý?F˜qÊøó§Ÿ~å•×òë…O~òq¥Má–xÒzÆeY™šš #„ ¬-òü×€7ÉA ùú·uÏLßšžžM¦¢©T ccܨ›~P÷颜`ˆ}>_K:C˜;;3Ù°¬P4,ªç@žv–C Ä# pqþrpÇq)¼™äÎ=r —€Â)ÀÎÀðdƹpΉÐR‘6‡!® ¡VÂ"„bÑØèÍÁd¢ESU±’…VÓtá2¦”G#ñóÞO§3â—ϯ§Ó™H8ìekP¸çÎäÁ«×.¶f;›J9¡tcðB_ï6Ñ Øvö­õõ5€ªèÖTŸ'‚õorÌ…¶4¹@À›Ól‘u/V‰aÎx¥R®Tªš¦qÀEÙ(»»{≘¦©á`r£TiÏvZ ×µ]Ê\­–ðzaqÅðù,Ûq]Â9P$¤(²¢Hp cÀå›R Ê»wï>úÀÞ½ukon-76:<::Òšm G"Mõ–Œ@!Ÿ[Ï­Æã1ç*Ф*òÜÂüo½ýÌw¿÷‹?ÊŠO}òÑÏúIêZf½†Ä麆=:èKÂ" 6§útíæÄTGk" pù!I’šÓA¿½Dë4Gô¿.¥Œ)ª68:–Τ»ÚÛ-»Q«Õ£HÌE äâ2JÍZ¥aÖÄuëÝCMÅf•Á›/¤M=€Ê(Q¹§«Cõ†ÏرcÇàððþ½{kµšmÛŒS è±·Žww¶!À޽yúáz8Ô³^\»ys>èSã~#´°´ÖÞÖ66>žmkÓ4 c¸y·6e.\„ÕB`è¾p($+MÛ;ãÄ%V£Q.¥Ð# 6y.œ3Ê굺ë:®KƒñDbË–^ŒáòòR±Xp{Ë–-™L& &“‰h4šÍfûû·„BÁ¶¶ÖÞ¾¾ÙÙÙB¡øs a“ð´Éy‚’í:2–(ûyI†º¢Z®ýÓâèú/×u5M$I„Ãð­®®‰Àç.1YC–½ žeÙvÃ(ËNE“×u9`#‘$IÃt*iÛÖî=;Ï_¸¤éà`iyµ£³=‘ˆçr믾þÖoþÚ—U#Eºˆr Á,}àðƒÞ¡D(û›¿~faqñ¯þêo_}õÕ“'O"ÇÆF^|ñ…¯ýëwš(~¾³~SAˆ{íÚµ†me2Ãð 'û/~åóßû‡~îs_ò>]SUMûíßþ-J\Φ”‰ëÄqÜjÙr]êºÌ¶i¾¸±j[.œ±Ú˯èíïþJBÆÒêêj{{[2‘öù %—RDááCG|àË2 Ãàœ9mâD( @)#ŒQÊBÁP4[/¬0@U%USšfqâÆP„X$ˆï9¸óìÙKÓSû÷öq ÝÈåsŽm¢`DÕ„Üu)† æ,ÛÚšIgÖÖV¯_ B]ݽ’ªBá„(I#ohI‘€ˆ @ÛË4_v.X&AÈB²]‡ 9‡b2 @Ê’D)ózMÄö;,˜[P„<päЃo¼ñÒ#|RÓ ¯ÜB *ª$aÇuUokëØ»çÀààµ}ûöùýþ®®Îù…™®®@IRE×tQÎ9K&Ò·´ñ•åùdº ƒõtoc̽1x¥_ïÙÒóæhã’©4¥„!!ÈC€nzêÅq^$Bïpž0„,Ë’„$Ç­V«fÃŒÆâñxœ1fÙu×µãù|!›m ‡uŸ_éïÛyöÜ©åÕ•x,!f^0%B™g›ÜCOsÆ8–Œr 1È ñt:{;{[¤I’뺧Þ}srªíȽGÞu÷É“'ºÿ¨îS‚!¿ßðòËÅ|þ+_ø< îúò Ìã€Îd€!ýº.¼µj}ÏŽžSg.ûtà:T’1Ñ–TjpôfOg‡ª)„YÂ>UAŠ,ÂN8Ä΀qoèÀ9ç†Ñh4 üý³wýúõÿþío)Š¢iÆ’ªj‘HH؇††cï¾{: s¹œiš²,ïÚ>ðå/|æ¡£÷7…ùÎÄ"ª²¢JróQÀ ’–)#Í l:¡pg[vhôæF¹ô¢óò¯é Ho;x!ç¼áÚŽw,fÂR¥VØ(½ï>³Vs,›3Æ8u –Ëf£Ž1&„0æÉFŒA„á&Ÿs.Ž˜”2J(àH g„ràBà »Ô 4ÉçóD@UÁŠ„tUbŒ¼wîJk&yæÜÅîŽàïüÆG+¿úÖÅ_þ•/xñµ‘p8tkÖ üåJ%·žÿÖûÓí‡ßÛÙÕ¡©`Ä!ŒSJÅ Šb[¶W4EE9”RÊ qÛ*m¬;ŽƒD@€œ3(ê8BõZÝul@‚!(…ß{à®ö¶ì[o½ ‡ŽÞÄëLAî†a¨>Ÿ,+‚êõ3-pÜ뛩Š^D®šu—ÒŸ_âtUáѰ#Dµ¶¶®¯¯G"ÆX>Ÿ ‡B†/pàÀ½®ã®®æ%Ìù”„¡¬€ ß?4>˜Ig âCŒ‘$cY–Eñ:Üï7zûz‚SS·lÛ.ä7>õ©'Ö×ó§NžÅîÛ»KjÖ€@îñ_€ÈëâœAˆr빛㓃7†ªÕêÐÐ$É_ýêÁîînøïƒæÄ.G4Ô4Íïÿû7oÞ<|èž#‡ïí$á}ûw=ùÉ'ŽÞøÈáßú…O`À‰ë a”pÇrk5»Tª™5DzÜFñ-237Ó’Js µ-kãµcÇvîÚÆZY]ÑTMQô••Õ½{÷wvtE#qAãÇ=×%I”0JEp’G8óv„ʈËa†áG#9„x‚:ˆÀ¦na‚±­i ûÍ7Î¬å ­Ùh"$T渎›H¦飹ê§ ÚÛ»1Â7LJKÅp$*+ –¤følŠ p“Í-Œ˜›¦òÍýe‰PSAîÕlÖD‰q,‚5ÏíÞ¹pˆž`„°ŒR©ô…‹g2™¬àPgaYÒTMS5ýÌ™Sœ¿ßÐ4ÕçóÍÎMÇ!-B¨K(P–AAâ¦R™³çO¶f;°Œç‚P8ªÈ eîêê’뺺n˜fB¤iªišÝ[UóÂuš“Ioê PÆ —¤ eø Ýï7TUr‰S«U׎DáPcY<[«ÕŠe5VVVTU5 #‹ân˺ŸiͶ‹ý£w¾ñòG€ÍQasÌ!Xu"¾@¿/05=Q©”œ’Š‹KsW¯^½ûž»×®VË™t‹¬ ©ééüËó{vîÀ—X5ôó;<¿nTÌÚœŽ íÆXd¼!$qÀçfJÅb¥Z^Z«UÌD,™N·rmË%„yâg ·´d—×Væ;:Û$Œ4Uñ>ݧJR$ÜÙ¡KXZ^]kkmÓ5µ^7M³~íê MUâüåw¾{ú½ ¿ø•OâÑAˆDvònÄ `%„èþý».]¾Œ²mû©§žš™™ùêWײ짟~úСC>ŸïŽ)(ÿ·P9ι˜Z‰ð©S§!ÃÃÃðÿü߀3B8æ3Ž0DG£aÀ™ëRÎ!€1î:ÌqH£fWªf½n;a PÀG†¯'RiÆ8Ä!¶ãzÝ$.ǘ&“©Üz®MÕâÑx¶¥-Oy´P(â…¹8R1ä­ïðÌ[¹AÀ9…ÈÄeŠªú.çÔ²]Æ9aÌ×¼¯äR&¹ûöv|ñ‹=óìëo?»µ7+aÅð+kk}ŒÊ²Â â2ŽDΖiÏ´d[Ö×ó#CW±$ïÞ{@RU/‘zM¶÷ CqìM6›7²Çûà ´é†„H2".ðD§Â›È Ä"¤6âAÞ„Ú`,Ä3–Áp4ºwï]¯¼úÂG>üX4åŒS9e€CÍç'.)‹===µZMÓTã–TòÒÅ‹}}=©TZ’ M×UÍäœbYÚס«×.Ü{ä!!Î9–‡á»Þ·m`Ï𬮩yàËË‹ºnâJ3åŽð È)c€KXB뺌0VE–ñÆFÑ4ËbŸÏ—L¶0¶i ñ”ŽílF²U«Uι¢(ª¦@K¥¢(¯bü ¼øYŽ `TÄxJXÞ¤àC(–ƆSÉ–¹¹éÃÌRBˆû¡‡?üò+/¿ùæ±=»ö\¼¢Èhbr2 þÂãcàV7ò€QH,ç €¶eùý~J‰ˆŸ‡`UESìÓê:Š å5ÂÕ{·ô,/-ƒñlÞT  çÜmÕMž*›I™‚#Ézøá‡z¨^­ŠþÉ%IJ,±$Ë>]÷ûý#céD¼k„§„3Ê\‡SnC(KŠ®ë–eÇ•0wX¸@ŽcJ]ÎÑLAH€º¶­¯çüµ¡ýÛû¹˜¹ä6MÕ F¡J¥bF­nútíҥˉhX×0ž{)€rÆ¡eÛ¦iSJ9ã.eMºà[3Œ±¢H®ë6Á$\UÕP(d†,Ë’ªpÎs¹œXóÿ´ö¥iàÞÄ ý/!Ö(§­ÑdÙ¬}Àt „P"‘p§^¯F£Q)W`ñDŒ@©3¿0_­Ue,˲Ja”QÂ% È‚ˆ'Ò‰K—ÏoÛÖï÷Á`P×uUSYQUU×µH$ 8¯ÕÍÙÙ¹¥dyyuc£$² kµz[kkoïVYV á›Q‚"ƒÆ³ìqª(êÐàH¹\ššúÌg>uëÖ­Ë—¯ü§ÿûÿöå/}ãßÈç ;wîØÌnÞDÁ€M6õŽcŸ8qâ/ÿò;[{zÖrk¿þ+ÿ»‡ŸŒqF g„º®C\Êw]Ê9oXŽYo”Kµb±Z©˜–IJÕÊÒòÂäÔÍö¶îp8 ¤Œº®k6ê£7‡±CÁPÀoä×××ÖÖZ[³ÛvüQOðÁÁ&kQä‘çDØë¼¤NNÙÉM$ôÀ~„PJ˜˜œ3 ¡ŒSÈmUmìß“=yjh~!ßן ‡ Bµz½á÷Œ@àÎLN€„1\ÂB IØúÛ;{‚Àå‹g*ÕJ,•ò ²b8„XŸ=Ö÷ΚF{„€" B >Œ a‚m¦C6‹Àø‰ r„°süæÈ¡Ë££CÕj9ÓÖ¶}Çž÷Þ=>7?'Y‡qÈb®ëÌÌNŽ ×ÍZ84ü¾¶ÖÖx<’[Ï-,Ì­¯­(Å UÓ0ä"ˆÏð—J…r¹‹'F!EQUUÕt=™Ê ^6MS’dÆÙG?üÎñ×YÅSÂ^E),FŸO ‡á°?òË*®TKŽkm”бXÌðdEeŒ×êu³nÖMÓ¶lÛ±EÄF1_«›kk«Á`0 †B]×q7J33·z{š©uD€L½ÁâŒQã@©È”dœŒçŒT,æ^xñ„¸±X\x4Å[lš&eÔçó%âqx¡X|åØk~èÁ»vo‡Ôá”4_¡À¾ˆ§•,K"N0iÅåêPB©³²¶ —Tì8Üu(‚# 8SuÕï3"!(hÓ9 næRÞ^z®SqôMê,@Q$MSuŸðûC¡P82 ¿®©’ý†14<¸µ«ƒSÒÔu!%D’%€%,I¦Y«TAÄ` ×/öÆ9D‚ÃÆsÀy"[Ø(•CA¿XZ»¤©òçŒsÀw]j—PÊ'œSBN¹pðîíu³±º²êºÎ&YÂlFt1!ºMRñE¾p/u6FžQ¸ÆÁ`P–ŒQ±Tµ]÷žƒ.œ¿tÿý÷1j¿}âÔ¾½ý÷îß66>õÚ›ïÖë÷¦>tßF¹>>QŠEŒKÕš’N¥‡Fo® 9$¢]8皦¦[ZvîÚùàƒô÷õ­¯¯¿óÎ;W._3Ž®ÎP(±´¸¼<2:êºvWG{[:uúý÷§nÍ.¯¬æó%—¸B„†i™õ†Ká»e€qÀET£TpÄ΋ÔU-†OUTUUczzfËÖî›7Çgfæ~¢#T4 Iùí*›Âm„?à´#$cÉrX“É$ Z­†ÃaËj7JŠ,›¦ÙÛÛ«j£t}½(+jÐßD\V$Y…Xá’ŒægwïÚ‡4MUUUV$M×$Y’eYÓµP8jYVwwÄprbÚ0|b)ÝÙÙùK¿ô¥]»w"}>Ãs)ϑ웸ݎÎî7†&&&ß{ïý¹¹ù§žzò·~ëÿ„÷Þs÷À@¿¢È"j¹Y¹GáŒy³GÒh4ž}æÙ§ÿüéŽ>ðÿôÜWÿÏÿÜÕÕéUDo˜ŸB¥„PÛv+¥úÊjnôæÍ+W¯-./.¯.º¶ð;ÚºTÙÇE.%–mÚ¶eøåïœ ƒÑX(“ÍÌÏ-‹ëãã`8c„=A ÷¸)BYñŒ•¦¡x3tÆÃ0Þñ[À[ÂpF(ã 8–±­iNÝ´Î_˜Œ÷nm%D’e_­f&’)ù[±Ÿ²:ñvJËù £«g+gôÊ¥óÂH,Æa%&2‘ ÓlÊkÄǬ¢™œ˜~ŠYW5yó÷ø1U/òÌY °¡Á+?|þ{.qÉT(Ÿ›yéÅ狹]»îŠÅ/¿9È!7Œ€,I–meZZ°ŒóùüüülggG[k¦­­5•LÉ2 …üµºµ¾^Èf³H’6“åS©–ƒWÏð Ñ B’"«X’–—æ×ÖV’Éq\ÕtÝl4zzz½çB]W‚!0Ð}š$cˆaø5M×4Ÿí8ÕJ­Z­™¦iÛŽKè¦ÜNÌ9b;Ncum%ŠX¶Å8Ðt•¸n£aŽŒ ÷÷ H†@DQáKñâA„-CnE`€(lèñ|aãì¹SBš{{²€È1G5ÖòÊR2™Ø·{÷èÈP_ïMñÈæ›Íæ0ÏÍx¹;þ—R†*µb¡\ šCÜJŶ];útÃldÓ-±pP×TAsö2î¸(9@pÎ ñηw¦â‰>Ûs6ð&‰ƒf`7tuddtKw§„Û)ÀšËŠ,!"($øcIšeÇ¥p(ž9›„hñ®0Ò©ÄàØ¸íºá @‰‹H„fûè2n9.åÍL%JÏ\º¶m`ÛîíÛBŠù|©´!¼â+“fL©·¾™|´Iì»ÝŠ)#¥bZ›ŸPUMU5„ Œ%Û¥ëù‡xàŸŸþ©Ç?AˆÝžiÑôò±ãÃ#£mêGìË´ÄO¹U«³þ­I +u“תr" …ÂׇöîØaø|LÄ Ë‚0 ô÷>xôþ½{vOL¾þúë‹‹Ë££cº¦u´·ü¾z­Ê9ooÍ´$bº*s@—–GÇ&'¦§§ffç—Ë¥ Ê¡Äu)c”꺶uy¤ B(eª¦ƒAM×UUUÅï7]™íÙÒ1::>55sç OB ªà9ºMSï„nCH(mO´ä+¥X8S©”@Àɲ¬iêÆÆ!$—˵w´q̆Y¯™>Ÿ?‰aŒ’‚|†¬êHV‘*K¦e&‰X,†%(IòŸ?ýôßþí3?zù•å啨ªÆ›™™{ô‘º÷JI,ß¹cg¼Ñ°ü†cE x„ ¬)Ë¥(ªÒÑÞñÖÛïT«5EQÜ8¸výÆîÝ»eYîÁîâ$&hèÔ[¿Y–ùð‡§O¿;00ðÏßÿþoÿÖo}ìã€yYÉŒn:+å®CqË™Ÿ›éå׿–ýz°³sk"Ñ’H´„‚!EQ€ EgÔmXuJ™¦ëéLüÌ™sÅJ¶5]Èxð¾dKb||òúõ«Ùl›ªjÀ;rèåÝN~`T@ÜØçG¡^hÊRØfËëÙ¸]—¸.¡RŠ–&«õî®È±×¯.¯zûÚD (…|>“nU5M¤D-…Pƒš[@ŒÄÃážî-+kËC×.§3MUl⧉l2×`“Cíew@o)Žq|òÜäü6u¤@$Þ-oîéÂ{7†®|öó¿Ø·m„xzjÜç7n\»8xãêìÜÔà«‘pôÐá£õZeúÖÍz½ ]Je’, …••¥-[»ñD8•$\Ü(„#‰P(2==™J%% N!§òŽÖÖÓ§^E¢~C…œb@p]»~ýú¥|!§ÈÊ–ž-7n\½kßþ×/oëëÕu&Æõ²‚UUQeI€H¬†Y¯×+åJ½V5M“" erÎ B†€!Èe,•6ò•r9‰PBfg¦ Å‚®ë°™é[Ýš¦\º|áÖôÍj½ ‡$ ¤œ2a^¸{Û ".¦º¡ ùÕÕåp8¼oß¾jµÞh˜›·¶eYÛúú·ôta„B¡€í8ëëù­Ý°;©.›¹ÄÞ…%*ôNãÊ®j×®H*R%åÆÐT¡XéÛ’ øC®ëôoíôë>¾ñ²^'Ô# B€„Pà™ma„PƒfßñbH޳l»ašñpÈ;òÛ”( ¸¬ú°„cŽmÂ|3„CBÙf®ý[9£ Жn+׬L2*,ÛÂ#K(w(¥Œ1„ðòõ¡x,~ï=wSÀ¬º¹²²Èwà«\J¹çµõ0¨é¬½/g zJ7Ž$læâša¡B´¨ªºðcút­nZ«¹õ?øà‹¯¼òÄã1‡Üš½õýy±=ÙÖÙ3që╹ÖtBNôût³ku(a5 NLJ·tuŠÛR8#gŽmSJUE‘e9ðïܾ½¯·7íÙ³;è7jÕJ©´Q7ëõZÝn˜¶cÈE‹G£-©D"O¥R‰xL’är¥RÈJ¥Ric=ŸÏåòkkë««ëk«¹•åµù…¥µõõ|±¸¼ºº´¸<7·°¸¸<37;595<<²žÏßœÌç wV¤]û\~óµE?áø€!`œ…Œ€C\‡OI‚étš1fY–¦i¡ ¿n6ªÕ𮫓“S–i–ÊUåLK{8Rc (HÕ¤ùäÔøììô‘#‡ü~C–eݧýúoüfK:õéO=yààÁË—®|ç¯þæþûŽÄbÑ—_96;;W®”çæÆÆnær¹î®ÎJµþÿþá7m‡´µw*€m€Q.uŒq‚d”‡#‘£G¾üÊ«”Ò¹¹ùgŸýû` °´¸Ô×׋ö0e»Ëû§^7Oœ8þÜsÏ=ýô_øý¡Jµúþ™÷¿õo½ÿ>¸tPá¿æ‚$Î#««ëo¿}òÚµ¡Õ\aÿ¾{“±U1(M…ÀP€PE;®e;¥TÓ´p8²cGÿ¹ó’Š-©¤¦ªÙLGª%óΉ7†¡`cIˆok©o.9ÂÞ^Êq,Kœyí ÷ „^·ë¥àràPB)ã2Ž ´1ªŠõÁÁ[®î4q¥Jµ‡|F@’%xû`Åš µfn+„@ FHÆ(ζ¶µ]8ó^¹\niÉJB „@’$ ";'ê¨$IÞ×8è-µ½Þ•{Ì•Û2Î!„„ºss·‡.{õÀÙË?úÁ{§ß:óþ;Ù—^xþ;ßùN"‘`„ÿúo~µÑ¨ýðÏuuvÝsÏáD"©È2#Äq,ߘ››][[hoMe²­ÂÜúr£Ö±ÜÞÖ:;=$@1 ˆ¹²žÎÎËÏØZ2À€æR·Q«W'§¦ sqq"Ë8‹-.Ï÷u·« Æ#HE5%Ä©VË•rɬV‰ëHjºè~CõùTçH$NA&!9CqN,³:<2¤kŠY¯ŠëÓÓS3³3”º¢•åeǪjïØÞŸI§8'ƒCWnݺ¹¸8«È°V-ær‹K˳ S‹‹Ó#£7®^9wýú…±ÑëóóÓ—/Ÿ+ó¿þ+¿yÿ‘\Ç™6MsSAÍ9_X\Ÿ˜Ð}¾ÛúÇ'o銔ŒG!§ 蕊jBÞA“›Çg0È‘„10› _œ‚æ •Õ•BK*ØÞÚBÐÕ–…H¼Ó€Ræ2J¹¸Âc„3àB¼/Ð$|Þ¡Bò~sÎ릹¼¼†ç7ÇÇ#áPЯ ŽŒuv´rÆ£b(,ÈV€„°ªé’¬Çq\9U’dˆ$ˆ°ðí „DbP+Ä,Œ2è`:•XX^]ZYkͶˆÈÂ9aœ4#)eC#ã ¢‡zBäØöÊêj£ayaÃzsNJ7grÞ!ÌÀ›v/ÃŽ{/ aêºâJ)òcŒ âPÓ4ÝЪÕZ±\}èèÑï?ÿ¯Ÿê©R¥xþâùý»û5Å –¬PŸ¦fZ‚Õ:ÐuÉ4¹¡+ SeÀ'‚Ÿçç—FnNhªÒ3F…IÆõ8æL•dÈ9§Ôv8q¬õüúâÂB~=W­Têµz½^w›Êƒ€;iØ¥ŒR TU- &ñ¶L*•ˆ§’‰Lº%›ÉdÒél&Hƺº;w ô÷öönÙ²m[ßýû÷îݾ{Wߎ}årùS¿ðX._û±B¸ç€¢ª\Õ‡^ú:Üœaz…Ýãø©€Òšh)TKÿ.ÝBØÞÞNm4²,Çc±@0´´´¤(ªÏ§sÎ$¤¶¤:;:ztUÅJ2”d$©ˆPû•WÔÞÑúä“G"!Y‘E>þ¼ahò'¼wÏž;¶?þøc³ós¯¾òÚ—¾ô…]»vÞ{ÏÝÃÃ#“¸cûö7nÌÎÎÝŸžžqmªé†$ÉΑ S ŒÆX(J&çίÕê‘HDQ”ööŽ¿ø‹ïŒ_¼xitl´\*+в¾ž{饽÷î{o¿ý¶ã¸]]]CCçNŸnÍf¾ùõ¯÷ôt7ÇVT—)!¢î—ÖÌÆo?tèHGGO8¯ÖlËr !ŽK6 "DIȦ*õÊF9ŸË­T*ÅJ¥¤È*–Й³gt]gŒù RU_&“½zõЦ«†ÏÀXi®8!\Ä–˲r¹œi6|>ŸK&”5M§¯NáŒq/!Íà Ø©Ö–ÓIÿ•«·¦n-gZ¢‘hPÕ"•Jʼn3¦xBzê„îı6“†¼‡¨ªè[{¶p×¹pþŒ*+@Å2äÞ|TÌI…È#ä=R¼WðV §œQJ¥ž[šÓl\½zîÌÙ¥âåKgß~û%¿¡.//Þu`ß /¼à8N øÑ~tñâÅßû½ßC½øÒK>ð`{[ûž={_}å…õ\nKO§Œ „ §$`ª,Åâ‘‘‘±PÐÃÅbavfaiiemm­\ÞP%œ[]ñé£`.†ÖÑ‘-rƒƒƒ>Möë ‚4:¶½Q®(Šâºn¥RÙ¹sç… çãñh±X\^Yš_X˜›œœ˜˜Ÿššœ_˜[Í­®¬-¯­­®­.­­­¬®.¯çrk¹µÜÚÊÉ“'Nœ|ç⥠W®_j˜5áZnå#GRÉ$¡ôÂ¥‹¡wèì쬖˪*ïß³×ïS£‘pg{ëÁ»öß{ÏÝý½[ë*å„s¡Â§”ºáP°»»³wëÖlk¦Z« Œî¹çîbqã“Ç …õd*‘nIŽþ›õTenn®µµ-“I9%“N隆6[+àyÚ¸0À ú2Û\[¸Œ±e¹ÅrÑuÜt&ž/TGÆæZ[ã€Ê©xD,=’–ðY(fŒz‚W±ûÓÑÛ„=Á@`Tàü)—®^ÞÞ×oZï>÷Ü}÷Ü%Ëêøä­îÎ6 oB=C UdEV,ã†c#Qð€·J Œ‰„˜7ÿ~°¹>áà2žNÆ*µúÌÜRk&É!¤ Jƒ•\þä{gk ëÉÇ>®¨*¥dccc£X¬ –¼9fZBx-î(DÍá³ÀP&Zæu5#Š6Ã!„Š$†®ëJÃr–WìÛÿÌÿüÞúò— ºsksŠRRä†")Ðr…Í.l„üj:^[3oÍTF@ÔËqòEâIÂ~Ÿa5„Ô¶f™&†@7tIÂG\§aš¥’eYͱys¡!2n;Žh „ÝRd³+²ì…½zo>,+J TUU–eEQ‚Á€¦Ëª†TÕ뵕•Õ­[:FÇ&‡î,„`×ÞŠª¡%‡¨‰ ‚œ#qÈ–ÄÛ+Ë’ãº?K #ÞŒŠevʲ„%òÜ÷ãh4V«Õ9‡ÄeÂØÚ±c{½Vïïíͦ·ªª0€2€B u_zù…'¬§»ÛÐ5‘$ɲ,½øâþäO¿)Ë„ (ÊoüƯ?úñOll”:;:²Ùt*•|ò©Ïúûû×Vs33³BÉÙ³çΞ=·ÿ_þå_ššœ|ôÑ뺆1FÈc,À}äÑ®®žoûÏ®_¿~ö칑‘QY–®_¿Ñßß÷éÏü‚ªÊ'Nœ+—+bºûÖ[oÏÍÍ:tï·þøûz·ŠÌ©ær›xWž—¢É9¥rÅq¹mÓ†Ù¨Ö¦IÄɘQöœ1â¼nÖåét[ ¨CÈ(o\½zu}½°}ûŽP(<22¶wï^ëIÉÛ_úÑ¿f3­÷Üs¤{k¯°ß ùÆheuebüÿcì=ãë¬Îtï{•§í¾·z/–»%K¶1ƸÅ`†@ ¤÷ÌdRΜ™ô÷$g2ó&Ó“9“ÌRæ¤L2™P ¡™f0¸€ ¶l¹È*–‹º´{{Ú*·p2çWüÓOØBåÙkÝåºþ×HmMMggW8^J‘R‹}.y5̦ò›WÖò¥_¢ãº>£ÓS™ew¿gÛøÌ¡#§?ÐÙhêa! »\´¬@ † ÉEùüDÕKï€à€(A!$íèZÖÜÞ1záÂsO?>5uÕ­LŸª(@$Æ8%5õõ uuMÁ@( ‚ *•ÉõÜ'^»:9ÑÑÞ³rÅÚüïÿešdÏž=/¼ðÂÈÈÈc„P)%¡!, ‰6oÜ|ùê„©‡ Ù¬ç:O<õ„ã8K†Bõ¨Äb±T*5qibãÆ ë{×üÇÿùà»ÞYt­RkUœ X‚\ÎGñ@êÔ°Ë"Ö(Ñ6mX96>½ÿ¹£oß½mva±¥±Í@ªÄf!$À\€K¾)%’Brʺ&QJ^­òÉÌôLÀ r™LFÓ4‰(ê]»ê#oåb IDATäÐùMý½XV2Å„”H&äB– áh< cB²éŒçyå’­Æ\€¦i ‘ÏYeªæÁ$ˆ€DŒRâ ±fåò³Ã£'ÎŽô­^É…€1–g©L&ÍæO>E¹äår9JJÁPÅ•oŽy¥ü²GeKUψ\Úú çE1ᯙ ­|Tˆj†aPJ4M3uöíÓC§”q!›ÏSR›!ضmÊZÓÓh»î©slda¸6sç†Ï¿|8‰"„<ÏC’Y3uÉÅDJé¹öââb6›e¾‹Aúœ/}UBB!äóª1J*Š7ÒÖ(!¸6Z:!…†iA]7!*ÔÁ4-ÝÓÀC2¹‰†@ú„ü—ˆ‰7m6•³Y}d©©£j~îù~M$šÊçþoyCêƒÉlº.–˜M-¼¥ï€e†ë …R:•äR©$8Žm¦aþωb‚ Œ‰(~ö™ý;wloilÔ(Q\ I)望†åºžeQŒˆï3]§€ HJ˜Ùlvÿ…gàæ›onhhzùåƒÓÓS'N¼^.—ê›lǽå–[b±Å„jꇮƼ¸§gÅw¾ó/=ôàO35»zmPʈíx¥BÑ4­*=­º@T ÑQ p0QO6¡X[»¶wÍšuªXB0Ï—V#],$Ϧ3ÉdrvvflôàìÜô™3§tÝhméèY¶rðô‰DhëÖxî×þûºuë^xá]×3™ÌŠ+!R—¾ôÅkIxRÊl6«ˆÒñX, @29?8øÆüÂ‚ÏØ}ß»RbV8lnjìï]ówmÕôò9:>ºfåŠ £c¿yêiUO/,,´··äâbÀ²ÚÛÚæù[vmkn¬Ó1’BJà ìKàB &ZêÛ¤h¬­¾8ÜÖÖV®l9|èL¹\H¦ÓÑpPWÌ YUfrà„¬È«ËC€“GT}Ã×bÈB©ØlB,¦’¡PH,›êë/Œçó¥X4tM*Vå5é:¡Åp$D™Ï<Î$CaB(à¼"‚k«xµ™DˆPª«¯ocÿú£ÇŽŸ_¶¬ .`„:ÚÛ^zåh D˜ë%“IÎÁÕÈïñ—îE´:çARHÀ•ÜmQ!Ï+[z V6‹RV@ ˆ †Ã@‰Æ¹ Hw(Á®ëòy·œ§¤¬ëÉ)–¨ÇšJ‹EžLgúV­%>ó5ƒ–é8>Fòº¾¾ñºÛö4„#šF4Õ1Î]ÛɦӾï IC#¼Úè ¬ÂW.ÆxÅöD°RðªßŸ¦ƦišK×UƵ,Ë´LÃÄP y©T (ã%ÿµ…kX |m„øÒÅL—N S3 MwßRš*æ×¶/›K/¾¥BH‰tÝ ‡bµ‰†b¡ 8rl!‰D¦g&ÛÛ+!da$Õ `vvŠPÜÑщp5EO]#“L:sîÜðõ[6{žï¹¥Ë—¯|ó[ÿÜÕÙ•H$Ô  …º»»S©”ïûRJ˲»ºzöí»wjrêµc‡/\¾þú­¹lþ¾ûîF¢õ uõõuÍÍÍMÍ¡pÈ0 Œ¿ëÞ÷¿ãï\˜ŸI&“ë×÷µ··b„ÁÓÔu] a;öÜB2NG"‘––„ïû¾¨øX—ÜUÅ !]—ww/;wþ|[[7 ‰H%B¡*Tsi±°°ˆ'$H!Õh<ì )Á`0—Ë«£°££ãòåËcccË–-×uƒ`êºN±XÜrýöt&uvè4€ŒÅ¢ýë‰B°R¿¢˜C 1RàL¥³cLø¾/$0VyQ1Æ1ÂJè *éA„ÂÑúÉéÅ[né;yòâ'/ôtÌû¾,—µ°äâ_Pc Á9V„ I .‘úϨjóÊ´¦vµJËK¨ÒFKàùÞôÔÕ±±‘‹Ç Á[·î:wþìêÕ+7lØøÒKŸÚÿØ®];zèH$~ùò¥­[·~îsŸSΡx<~ûí·¿iÀ¨^W¯^•R:t(›Í®ïíݹmÆH™¦}ßãŒc‚1ÆšZÀ€"—ñ)»l¯XÑêûžS.¦Ós!+ʨßP[377×ÚÒd™†Y_W_—X*iÕ]‰™BìÞ¾% ¹Œ=óü‹C§Ïæ2Ùþþšx!̘W)âœq&˜Êçq³z=s.® \Tï`„ JMMË ¥r9“ÉlÜ´ pî]žL$žm3ϳ¥@€¨QÝ è† …‘ˆeYŠ©@|®ëz®W*ÙårYÉ|†0âŒcí--í-ÍÉb¡€1ÕÂää¤|~añúMkëj …Òà™sAsc,¨t-R „…ä•oDmãÞÜÈAP_W3µZXH×ÖÅ1Dã;³ M µ¤F©Hp!¤ÀœWXU;¯šiVÌ©*Lã÷ì*oIŠÅ’²ö«ŸÆ¦7NÚ½c›"¡¨ÈPPƒr©l‚ºaY°n–˜°}ÆTrªb PTY@1†$HÀX*´´”Üç¼ ï•ÃÇù†úºá±ÑL6kTÓ.\]½jE*¹à8F¢ìC•¦ªÍAD+p¥UiÀKzñª µBKÑ4 bœQJ”ºè:¥TJ¡kššR»ž{óÛÞ6лÀE®F)ÂÂ.áRI–Kz°‘5Ö¥r­ãd&gç;š›=—i’„–ë;ùB±©®vlâÒÄ•ÉÖÆuÿF !DåBw,Tán+ÞÃòšdÚŠPR¢KŽSþÖ?ýíÜÜôÆ7_¿aqqñý?öî½íÁ ¬ÑÑÑnØúgög‘H@vvvÞ{ï½}}}K[ÉÞÞ^õ»téR±XìííE:ujxxxffæÈ‘#'Ož¼íæ·Qå™ãR ¤SŠuT‰*Ð#Ä97t-2Ÿa,<¯ÈEYÈ%V,ššž& ! \ ¾X¡¿0’× ebÑÐÆþõ—¯*)G¡XN¦Òœ³@00t)¥b—–nWvh*ÛB.]€!q…I ²¿¯÷øÉ“ÌgeÛžžžÖ4’Ïæ4Bfff v9‰(è´`)Ç.•ËE¼°@4ª¾aåq«6’RÊWFN@4$¹O4ÚÖÒÜÙÚ6qåÊÒ´jjf¶¾¶0Îç mͯ¿~²­¥Éèê@ ¹€%¯H¦Ì±”¬ª#UüéP0°fE×Ñã§|Oá5Ã@BffæçêëêCV¬$&œËª>ôMµ¨6—ÿG2¾ºÒTöµ”à¹>Æ„qŽ1BB+‰MNÍ´µµTTY "‘"b–Jeª¨fX0¦&çL¡Ã}Ÿ»¾«CÅ4Â’.ŒŒ„L£³£UÙ>)SãÆ¯þù— …â3Ï¿8°~½Ï × ô×Ô$²Ùl¹dWÕex °W’’L&²bБo®Í\^o3 S}>J5!™cBáœQª)¡)c¬\¶)F uIÇ00FT^* Ç‘V€˜‚z[“¼2)Zâ’Ë`Ðò<I ‡²ÙlS}íÆukŸ?r´£­ WÃ×–èùB˲\×a\jš®iHJ©išçyŠÀ¬ñ}^‘âË™™éúúzÏgŒÁØ2Mµø´‚!Ã4)Õ*‹RB¬€e4ËBµ˜ƒ`R2)%H£¿?]R›WM©KiÞ•©8 ˜¦íºà3–)þc^N§æÛ[ÎW™¼ÿ··h<žÎgêêë²ÙŒÏlêRB±X‡C§OÏ··5–Šn&csæ¶·µJƒd2)Ó2\×q4D)‚Àc!ØÀÀÀË_8|øc¬¯¯¯©©IJð<Ïq\×wì²#¥lnj­¯oøÍoó‰?úD*“B  ù|Þ÷]øÞ÷¿Ý×;ðÞ÷}ØhÖÖ466´¬^ÝK Œ9ç/^ŸI§Ò‰šÄ“O=~îÜ™ÙÙ)ð¾üÅÿÙÕÕ“N'3éÔàà`ss³:Ú&&&¾ô¥/)åòå+î¸ãŽ;wHeÎÙºukmmíÜÜÜüã¿ø‹¿hiQœLøò—¿\WW÷½ï}\×››‹F£}}}FÇÖ¯Y[ÙËKÁ“j§ H õ)¹ïQJ‚·ÞÜûüó/®\±¬¦& kå#BP `‚¨Ò•Tº:µ.K£-)%€N5Ëdµu±`0P(–Û¬#Gm»ñFÅ ÎâKpÎ*«@¡@—S,%—àk’—áP$1=?ÿƒïÿ䨱“ñDTÓh*•ŠÅbŒ15`t]w ¤&šV±UìwUÎ«Ž Æ„„ñJÈŽrÆHÉ8÷™š·HBµ¢Ì…À(ŽtŒ-¾ímkž|òÔkÇGwl[K°MpƳi¦ì,,ÌRJ„à”Ö¶öH8Š(Á k„}(›Í ¾qùêåt:9;;£¾FJÉ7¿ùÍo}ëŸ^~åÅÎÎNB°¼\. !J¥R$Ù¾}{OO”²P(D"‘]»vƒÁ¹¹¹ûï¿ÿ¯ÿú¯-ËRГL&™LƲ,„Б#G¶lÙ‹‹‹÷Þ{ïîÝ»ï¸ãŽ5kÖ¬Y³æ‰ÇYBoB¥B”¾ç©„µ–Àµƒ-Í5‹ CTƒXÔŠFuÆ<]Ç0g\¹d® Hú?Rj1‚ e6×ÕíÞ±íéç”Êöààé­7\ϸïû”1NÎi–¡#„+\\Y™Vßo.6–þ”®ëD‘åÝÝ¡|.ûêkÇ>úÁw…"4ŒDÂaªQ—¡K„Ræyc)¦:–j.!B°ê CgŒ Á Ýð¹$„ÎØ…R*$b‰÷ß{Ï‹¯zê¹¥àhlüb{G{wW—ŠkX¾¬ûù—ÞyëM”èR—`µJRbJ…àܘbÀÕÄë#qˆ^¸ÚÒõÎD(hH.€ ÁX.›™™™É— FÀ`®'˜C¹>-—åÃl—ß¶kuµ5-,èBzS.€ú¾¨­‰.f²¥RÁ XkW,/Ë_=vû-{Ò™™ÕáP!_Ì‹áP@Ív)ÑL€ê†ò—Ce# ŽAÇ&Ž_ºõ¶ÛNŸ>ýìƒ|ï»…ºa¨ÇOíR0Òt]³,Œ1P´"æù¶ÏJnèŠêuÍŠðM* ºæµƒàwjÚÖÜ:46l{îÿxšzŽsÅüô2Æ¢ÑX>— EžïCA‚1Â0ôõëû†††¢ÑH$ʲŽS…õÞ¾u<òèñ×o¹þ:ìØ¸Á"äƒHbŒU¨±ë:”R!¥ëº®ëzžÿä“OÎÏ-ìÚµ+‘ˆçò¹áá‘þ¹ù…¡¡¡B¡ðÒÁê›lkk“.]?rä•Õ«{¥dSJ ¥(A¸ªNÆ!@B0Æ@`Œ@vvv}àzæ¹g}ßD"+W¬Ü0°Á2­t:ýâÁƒ®ëI!4JU ¦.'+èhïè[ßQ¾@¬H*K!+”èÊð†HB‰Ï%X§4¢CgÞH§f]×ýÀ‡î}ðG;;;FGlj„ZIf³YE3Wk0MÓ}æëºVÅÈJ!)È*’Já­F¸©Y«úŒ‘”RpɅ𹔕ËjP#K¥‚Bc„@BÙ.ÁjkÚ_9ôÌÞ·¯HÄGÝr]·a‚„EÎ,ŠqScÆR,–æ&'/!„¡]]Š2úÏßùÇÎζåË—ÿàϼöÚ«¡P¨··wïÞ½÷Þ{/Üuןüä§O‡1V*³Ùì©S§vïÞ½¸¸hYV.—ûêW¿zÿý÷«¶X…!/ÝC_ùÊW`jjJµ’ îHÎyWW×ÒC?99‹ÇàZa¡)(#’’cŒ0HÀB¢²mYªQaê8$®ëRì1æ–Ë6cì÷2¹–“ׯu©ºvËέ+—uþæéçG/N Œyž»iÓFH%Ý,—K„ S×A¥5©Eþ5ÕéµAÇê£ó]ß—BŠ}ߟœ™m¬¯Ë—ŠËŒÀ…ñ mÍA+Rmh$`Ì8B!By^ôNH)¸O Õu]­¢ !žïùžG â{!TpÀ0Ò|îïÚ~#ùô3$cìèÑך›š–¡iÚ²žå§Ožè]Ú™©¹W’ié{Þƒ?vû-{ê¢BÛ·£Îv+QE€¬ÍæMÇ…|é¥gŽNÏM¯ìi;7ì lî»óv˜€±F5¥»©8(Õu¡7y šf¨ P0d‚Gñ@(hæÍæÖ6]×(%ºaº>~e2Õ××K)‘DšN5M`MÓô…ùùººº%á’BH3΄D¶M &T3P0\\X¬æ–&‰@×tJ´scã7mˆD®ëBH8‚3ÏgÂW-ÆTJ©a‚©¶”mD1úÕãO$“©P0°eóõM õ‰XâÇÿñŸó +—õ`´uuë;ÿò¥/~q|âʶÍëeEHÈ…€Àçþs/eŒíÛûv.% ”/•ÊžWWSCU®÷}ÏÜrY~âJá¥#gWv®îé¨ …ÄØå9Ç=­˜ú†¦ƒD¾ïƒDºnu´6¿1t>2u#˜l»~ÓàÙ ¿zü‰©™Ùõ½ëlÛîYÖ³¼§k1™Üпžq†0Bb„Ô–J§Ó™ŒmÛªÔu½è¸«W¯ùÓ?ý . gÏœmiïÈår¾ï›ºæØÒ¥¥Ø0€[ù!ÄtM3ÍÆ\þrGG­¦%Âáôûhq¨2Toª*D¥¥”6Ô6\ž¾úÖ¾@ÊÙP,—/–ï¿êK…`’óP8lZV<‘àBX`±˜Ìß·ïö³gÏ_¼xuͪˆò÷8çÅwß}× /ø×ý^CC]gWGSc]"‘ˆÇ] T¢kšm;žçŸ:süøq»\Ö4íýï/ò}ÿ>þ±ÿø'‰h¸­­õñÇ›Ng Ãð=O\¼8Ž1Vwáüô?þiL¨tƒ •R c!+ze&%&c„$¢ lXªýÕÀ0ÞõŽ;R°¥+°ê ”ÊMÏ…Wù'¨¢Üõ™Ê %D±XH&Ë¥²ïó¶öv@â¯>ùÄoK¥2!äïØÓÚÒðÎ}·-,äJ%[¡Úr¹\mm­a†a(´|kkËÂâÂê5kŠÐ®rD…T$œ#Œ9÷°ªr )¸ð}îy~2¹‚Á`$‚YU>0õ½hzX Ö7l}éàá];W=ò›§†.ïØ¶j~1iu«ôÖÒ“–¥E"AÃh¤”W&/ÍÏÏ3Æææf÷ï2‰<üðÃkÖ¬I¥RRÊÖÖVõØlÞ¼!øË¿úJ¡PÅb©¦¦f÷îÝŒ±ÁÁA)¥ ¹€¹¹9Ïóš››¿ùÍo"„Ξ=»|ùòx<^SSܼy³ª¢Ñ¨úä/½ôR__ß#<ÒÓÓóØ£}âcïW¡÷•åAE€"C•F^ÕŽg[Ûê5ÌmÄMiwËŽëy®ëyø!HI`‚+‡Y%%AÂRÜ’z§±¡öú ëG.^ºxñbWg‡¥i°/ó™ç³B¾¡ !X‰-ßì5e¥ÝTÁµ(ů㸾ï ÙL®ðú‰žÇff熆Îܼã¶CG§vn¹ S\YÊš&ó=¥àðª,c„1‚1¦a×õ%ó±D®ï+i•àsaB(fœQuRSR²sÛÖ«W§ÏžF Å'Nnßd^u IDAT¾-4]×[½zí+‡µµ´×ÖEÃáX,Q †¨¦ÂRÈb±ø¿úÓM×]õ@8Z;3;£ˆG™ ¬xûú}ÐþéOŸúȇ®ÇÈ;zlðÅ—Ïß°¹óÝ@[{éðù'Ÿy~ÝÚÞ@0h™¦P,…®ë£jÝ/©¦©•›çûŽïON]=5trvn&—ÏGbñP(DÖtªQý®;ßù“Ÿþ$bLÔÐ2ŸÏ9{¶µ¹E1oÙs‹”rÿþý*ÀAýhš¦ÊYÎ9%t~~¾©©%´T×XÌç. _ŽïJ^¾tåòOîÿìgÿ xü©ý;·ÝX*–2¹L¹Tò— 4ªIÚPÁÖèš »:;s¹|©\NÔÔäËå—~ýçüóŸÿü§?ýéÛn»íìÙ³O?ó\ssó•Ë—ÿöo¾á¸6fŒçó…L6gèÆÝwìýçþèþÿÏL6#‚kk†®ÿàg?·L«»³cûuöä ‡^]³²ó½ûÞ‰)s/*ºöCçoÞ¾bß­›<&}×¼ÿçÏ(iJ:›Kg ?|à‰P0¬išâ¯^¹üêä̧>þÑ‘‰‰7Þ89xúÌm{vONO™†Å+ÛN2•*‹œñX" uÝÔ ÐuCJ–d÷îå¦i‹¥þþ~Ý0¾ú?¿ …âñ8‹Ç% ¯’ùž[(ä‹EÛu].HÈæòÅ¢­ö¨U‚1\£­ì«Y=WúB‹Õ¬X¶âòì$ù–´D a’‰7M,oõ¦NmÅïëßøÂóOqΤDgÎíèj^½ºçôéó®o3æ•Êå¨AˆBn½õŸ9©TzvföÌÙ vÙ.Š…B±½£ãûîZÖÕ522òÔSû‰ÄöíÛãñ¸e™R‚Ì÷]ÃÐ>úÑ ..]¾°¬¢^ ‡Ã©TJí“·mÛ>>>žJ%ÏŸ?;qi4ŸÏ÷öõjÂBHÆƘù>FD£#\¼)® R²ªQ÷ÍëPJésUÚ!ã¬B¬så–b>››˜˜`Ì7 CžTÓ¡P}}C¸;%ˆKã{ôQßwC¡€Ïøã?çy^¢&æØe…¬+•Juuu„˲Ø cÜÔÔ8qé2B $G†,TÒ[$Kiu»šç1Æ8¯rÀí2 F‘\8jZ±wTb£¥šÖ×׿³‚z$l92¶{׊€…c­ÍñéÙìÎW _ojŠ"ŠRÙŒ®ëDÓ|Û º¦K*Ê a̹À„ê•€\×U‘š®3æKÏ÷9g\xeal™ºnY:æzžça \‚¡zϽãW®þâ‡lÛ½pa´µµ5 «›`Ù²e>ñÔž›véÚ" ‹¡TÍ-óùüÌôŒeYm­­ÑD¢­£C1=9uñÒ%]kܵcÛ÷¾÷äÁƒÃs ùMþã}tæÇÃå2ÚkÝðŸ?GˆÖÒÔj…‚ËRŒiZê󫙦iºFÕsîºîäÔäéÓƒ½ëú²ÙìÉôIÓ´”mÁƒÁ÷½ï=¿üÏ_vuw]·q“…Bÿ-ñ)µ}`.cŒaLz–-«èqªð#‚«J …B0Tû{øÑOöòÁƒe»œËå  é†ñ­ú_RÏ÷^}õ5MׯJí¬ž“P(d˜˜œžÍd3¡P¸¶¶6<±Ww÷/ùËÚÚÚp8¼qãÆb±ø¹Ï}. ~ðƒÜ¿¿lذ!_(Åuº®SŒM쯫Kg²‘HhÏŽí×]·™s^,”gAËŒDBŒ¹û¼ô“_þŠùþM»v<ýÜ‹;¶ôôÝûÁ¯ž<¿ÿÀ‘«Ó³ÿøÚÔÛú×ßyê£ïÙ&…áúZscï BñŠž.MÃŒ‰²ípÁ%HÛñ‡ÎœÝµs«mËÅb<ݸa}(hYÍ)æTYCm¼®& R2! #`˜¦ÙÒÖŠ„}Ç·íòå‹ãÅr‰Pü‘8B®^½zõê•|>¤4LMÓI8d5ÖÇA¬i€1ŒÁÐÉÁ±[oÛ59™:}áàˇá¿Ä¡*WB%‡bÉDA=Á›ë-Ý(;ö[\lÃì]¾Êv³ã#\ˆ?x"„$pÁ!¸¡±é†v¾øÂ3¡c¯ NOÏoÛzýàà™‘‘ñÑщ#GŽÜpà wÜ~ Æ”`dXÁhGxYW'&#L©ææzàAßçíï{ßûjjrIq˘çû¾ï3¥Klnnþìg?[.—/]¾|àÀ‹[¶lÑ4£¥¥å†¶..Îÿâ¿H¥“‘Hä…žc‚EB‘ÚÚÚP(¤†B¥R)Nçóù%_à5m®¸v!$¥Ä€*ä QÝÙ ¥^ªMŒ¨6_¿Ñ4ÍJKްÕŽÁg.Â|llÄ÷ÝP(ôì³_¹zåÏÿüK/<²mûF×ñ]—Åb1!D8B(m1ÆØ0LÓ2¾ïU¢æ*„ À …¤Z³ˆêŸ•B…јÉ.ÖÖÔƒôD™”—’JÞ‰b^ë6õïßÿø@û«¯^œžÍ´´ÔNN– H„ו’ƒD¾çræ¬$S©@ 033³sçÎïÿûðüóÏ@ggg.—ûû¿ÿû_þò—·ÜrËw¾óÆÆÆºººd2iY–Ò|RJÏŸ?ßÒÒ¢išëºô»jEã®]í¿|àÕ†ººbÉõŸsmÇ.—¹àR„0ÁØ0ôþ¾ÞW½îùþ_z×»îilltl; û>;qbðÖ·ïimm«­«WÃve¾»çû0Ƙ`Åÿ¥DKg²Àñ$ mÏÍâð×¾zcGG`ÅrS0j—‰]F© »tç† Ãg‡Ö¯Y‰ÅtÃDY–e˜&¥´}0L“``Õ·î®®×^;ÚÙÙyþü¹H8ì{6óµÑ Œ.ŽŽíܾ}dd$pÆ%ã™dZ×uªQ¨.ðÐGWm5„`_yù'®Û¸©¿¿¿\.«XBȇ>øAÎØ+‡e2YJéÿÑÇ7_wÝøøøÈèh*•Ìdro¿iwÙ.žÓÝÝ­ÎUÛ¶÷ìÙ …¤”k×®M¥*PMÃ0¢‘èŸ~úSá@Àõ=2›É\¹:ÙÓÕÅ8³,ÓwKfÂÄ!$¤(€_Þ»ký†µMùï÷äþçwm]õ…OìJe&ù›W ¦fç?r÷ 5X&jBAãÒÕtG[Bã}w½ ¦`,¥ô0¡\€ë¢üìÑ­×ùB> ŒŒå ¥|>ë3ÑÜX__Wƒ‰Î<îûŒ¬ V¾Ÿ½pA9J• "%€4]/• ãÚššÆÆzB°¥ëñ ‘e@A#¾nZºaRݾ0±Ø¼¡{õ*Ýwýk/Btt´" Uhu¯O£Ñ˜à'ʳÓo•Ä$D]¼q197›þCèíŠVQJ%Ñ }ùÊ•º¡íò·Bð©«³œC=Ë»×®Y³~ýúÇ ®[·!¤Q  ò6HÉ™®¯«ùØG>@©¦é&Äó\Õ« ¡¾ãxê¾]×kj5µµMÍ-7n²í²ã¸ª6TÊÝcÇ^ýÄ'þdåÊáb±˜N§Êv±PàRÊH$²fÍêp8BÕ P…ê++6‰@`ŒU«TAùK¨êVZŠKåÁ“Ò÷}„*þÈ '$WŠïX"ÎX0€R©Fï|Çík×®øÑ¿Ýwq|'OLLlܸQáºîÒ|F×é©ÁÁ5k×1ÎàÍUYc•¡ÐÛ˜©<Æ—€œž!„\±6"›Uò½¨º¡¶6±icÏÐÙq.ä3Ïžûêÿ¸åò¥¡ o¡”6z‰Å8ÉdRÁ`pzz! `õêÕê"´,ëóŸÿ<ìÙ³çk_ûÚÇ>ö±ãÇÿå_þ%¥ôŽ;îRNOOïß¿ÿ†n0 óßþíßÎ;wöìÙ+W®˜†ùÛÇ{×wè†öýûï×4ò¶7^×ßer2™Î\7°$Lj$ ¡û¾¯ŒéŒqÆU"ˆp\O)s…|.—Ke²Ùl¾T¶}ßgœŒ]Ïœ}ãoEà&‰Ç¬¶–„a°][7¯X¾L§T" ”ºnZÃ0=Îk5O?ûB<æè†áxžã8ù|PBó}׉Ç”Ÿ±ÁSCó É[n~[81tP:???3¿¨QŠ1vÇq=Ƹàœ3N)±¬@0`–¤T§”hÚìüÜÊÕ«[šž{²§'þä“§öÝ5pèÈÔSÏÜwÇí=]ÝÁH4 )Ñ<ç|jzzl|¼X*1.4]Çé†ÑÞÞÑÕÕµcÇvum«§Ë0Mß÷K¥b(.•KÜóKv‘3&x…Áâ3Ÿ|«ãÿðG?yý×Ëeû¹gŸû¾ i ÞÖÚòܳÏNÏÌ›†µ¸°¨b–•ü]Õ7”R…«%„¦§'§§&çlgîɧ^K$¬G>=4ÿëoëîªa܇(*xÅ2êKD_>r¸xþkl2ê"55(€Ƥº ¥š&8÷\溞c;¾ë˜†•J¥Šùœç:®ç•ŠEJ B`JöþJJÑ·ní–ë¯sìRu§kH Òç §Æ8G¼Â#©¼Œóùü}÷ßR>üÐC;wíú“ÿQ4›››¹ðØo~SW[÷±|Ô /¿üÊ~òÓ\.Á`°¾¾þÿêêÕ«®ëêºþÉO~rÏž=SSS_ÿúÿ{þüˆã:ýýý+V¬R®Y³fÙ²e7ÝtÓ’+—Ë©*B¡PGG‡:Í=ÏCHr Å _½02úÊ‘ãõµ‰·ï¼ÑsË‚ç¯Ì\½iÇÚp(Œ1¢„F¢:¡Æ‘×'¤„½7o¸gïÆû~ö,cì–í«Æ.Íß¼}yGk½`Leʶ«Q2@ˆ •GW×Å’K ÈÀGÉT’RZW“ÈfsÇŽ½quf. "Œ Ï÷Ì®\ÞSW›Xµr¹çúÅr©¥¥e1¹XW[§$ë!Œ‰”ˆ Ä$s¶°¸À¹0t3‹…‚!Mבðœ|ñ©'Ž^™»qsûÛo^O±àœ¹¯¿1¼sWŸãs9£d‹ßóNH ±¨„´c oæuT õÓós[·lOÄë¦ßò"dœeóùÚptYkGf8ûÖòRÅGWnVƹúŸ­]·NÓàÅçŸôééÅí;n¸z墮Óùùù ^:ørÏòeAbù\¨½Qi;Uå€Ê]aRP¢©XµØQ¯mEÍ'Wöqˆ!4Š12÷äììüÌÌL±Xܱc¥ÔumŒ¥iš±X( .iýPÕ’‹‚cŒ¸ÄoJõ„¤ÚÆUc )”€^!–H‚$ „$K)q5/¨^EáWÅKXJÀÉä"|ösFóùúá0!%B¡`ˆ\.—ççÒé”뺌K!Äm{o{íØ<úèìì,"Z:›÷}–L&‰¸à|vvÁu]J©ë9Ÿùä'á r|*H”šÎéšN5ýµ×^+•‹÷Þó)ÊÇ_?ýäÓÃá°þÞwmY¹\œ;›‹DÞçX~À-—…Œq ²®¶¦¾®VY©®‡B!Ó²tà ˜ú®/¤0 Íõ<ÇñÓéT4% yŒï{‚q%0 M"„(—í@ÀúÓÏ|âgÿ<|äÕäââ>ô®{ïÁH2Á·Ü¸õ‰ÇŸlin5M¯¬,÷}¹•!Ših/N &S—º»â…bùõ³·ßÖýïž“§NÏ}èÝ×}à756•Y¾¬ad—ŠáRA‹DtŠ páù.€ÔL]e“qÎó•j±©±Áu]Bˆnãp8RR¦S©o~û_V/ïÙ´ickKs"W³ÎÅÂÂÂÅK—¡HSss"ÃHÙõ n€àäÉ“mmÿó+_Ùÿìsßù×Ù²ysssË™3gŽ92;7»jåÊ/~þ Í-Ís³3FÆ<Ï«©©!„$“ÉK—.©C@Ó´ï~÷»üÇ*ÇÖ¬]û®»ï±]gÉPH)}Ï{ÞÓßßíÖI-Ë`aaA••RÊ+W®d³¹gŸÛÿÊáãLJëkc ©L,^ÙÕš/æÎ ž8;¾ÿ¥Sßÿæ‡^=>a»â®[w>ûüà?}ÿ±½{6 ¬ëüÆwÛ±yy8ddóÅ[ÞÖÿOßú»§÷¬í¸06{ïÞÝ+—¯åܲ]JuÌä ¾äétŠEBñÙù\{[S®P¸pñÊŠ•Ý7ïÙ¹vÕ .X*™.íËW§Ç/]}íøÉÁÓg\ÏBr© …êëë\×E–… —JÎÔÔl¹ìhºfYÖ²žîukû\×w¸}pèä¡ã§ €®±hÄD‰H4»8³÷¶¶étþòåK×ÞPUb¿¼&k].í ƒ:~hÓõ7fó™·nò˜à%ÇNDã­µWâÓó©Å·îUuÆÄpß7­€i™½ëûÞ8v´`M.÷êéSgLRÊçÕÞBÌÍÍuuwrÎ¥Ä0‚ 6³ÍÃøŽï!¦<ãª#\JG©žøªäÄŒ)X-BwûgÿþïéLV¬X±sçö¹ù™ööVß“–e!Œ%¨ ©J¬G긑Hr‰Ë7{I)’ʈPQY **EEÛTLLHQ'd%yi±J~¨»T•Œ[Ú¬3·íÚ=5u%™œÏeÒ©d2ž°4#´gÏž±±ñ“'O–Jå–––D"aÚÔÔä»ßý.B *¨Àuíp((åËM.x"@Œû£££®ë47µ,ëÚ¨8“êkQ95ÊlŽ1^²¨¬]]×M+@5íøñ ¦©Ùe ÿå¾—×­k ZÑdÚ·mWI QqNåRéÎ;ï¼ùæ=š¦·4·”J¥ùùyµÉËd2ŸøÄ'n¸á†ÚÚÚááá‡z¨««ëæ›onmmUaëßþö·ï»ï¾ééi)åŽí;úׯŸ˜˜Èårë{{mÇI¥Ó*vüÈ«Ç<Ïs=×w=!%óÑHm¢ÆvÜH4¶˜\ìïíÅ↡šN5BŪ“6Œ@0`¦i˜L°ºc8žïyž'}_"À”$jcŸúÔ=ôè-7]/ÁßYL¥ x¯17/t#ŽÅ‘°a˜ˆKŽ… Sy>¢TÌ«‘`KKSk[Kewˆ@ yã¶§g¦>ÚÒÜ´{÷n!Ä¥K—C¡`c}—œù¾m;:ÕTÏÇv>`„&X#Žç;ñƧ?ùICó¿ðÙ}ÉÔÀÿóŸƒV¢&ÑÚZŽLþú±'î¼ýí¦>•|…Y‚¦„PÍÐ5Dˆ¬.UT¾Ïôä¤Â°c„1!:¥ $LOÏ„‚¡r©´¸˜€¡¡¡††úë7_Ç#„ lxúÙýwßu¥ôM”¨Ä1®0Õ!j˺»>²nÝê`0xüËí­Ñ§žžp\RB…rssÏž@0eá+ DE$hÖÖÆB±†Æ\pJ(¡D<—/Oܱ}‡iê‰D"ú¾G !,!<==õ—ßø»ÛoÛs×·:|¤mËfþ?ÊÞ;>Ê*}ã>í)S3“ÞC: „Jï( `CÄŽ°îŠ®º ¬®}×¾ö®ˆŠRP@¥wH( $Þ¦Ï<å”÷gÙýíû~Þ}þ É$ŸafžsŸsß×õ½`TPÀ>úì‹_¶m\8öåKŸª¬,(„p«£† „pÝÆ C+†$z½%Å…cÆŒÞòËÏýKúkš6rÔÈ””äñãÆ*’,ïioß»gÏÒ¥Koºé&Y–¿úê«%K–XˆÝ9sæÜvÛm}+çØ1c.Ÿ=ëã?NIIé;.\¸ÐÒ?[WWWW@îܹs–˜PSS£(ò{Ÿ®éêê‘erqeÅÉÚúÚú³­ü!;+1;#!=ÕÓØÔóÒ[ë÷ì?wéä!^úñ¾#§F .Yþè­_|½ÅãväfgŽ»¸ßù–νO XHpç¶]µÃ+Ü8wÆvÆ…MŔˌiË_þ@UŒ°€°073%%1Šø~Ÿ/ ËŠMV,ïBÀî´ôëìö—޹xDWwÏw6†Ã€?ŠiZrR"‚¢¥ÅÓuE‘b11–œäQU¥ìÔ©Úêêœ2JY4¤¤¹MÊžm°Æ}B}˜Ç“ Åx(»Ð<ñNm|á0HZZš?ýâýóMçþ¿@À¨Å@†”Øsì`0ޝñÿ® µfW˜Xô B(²,™10`@éÑ£§&L¹iÓoEE™óh4l³+–ÿþÛŽ¢ÂLÅŠÔÀØR%!ãZð8z‰8)ü b”2fš†a†n˜þ€_Óµôô´¶¶öÚÚZJͼ¼Ì³gj˜É£ÕbZ86)‹ƒUú`¾qÈU„¬H·'!Áír;Ü.›]•%B$‚1±€ë½< F)£”r¯s’,+Šb³«"  z?PU˜Ëe,ºûÚS'NŸ?WÛÝ­ÔÔœŽ†’ëëÎ6·„FŽÉ;xð`cccOOaí÷Ý·8+3 aZ4¦¦É³)ªx‚CaÖðH$ÒÖÖæó¥¥%N§Ã kñH¿øÞ¨÷äBX’Y&„I"’Ä( GB-gZ6mÙýÀs?þx£,±Æsþ J’•9L3í–1Øj¨ž;wîÅ—_2¨yóÍ7{¼nM‹¶¶¶BÓÓÓ7mÚ4lذÄÄÄçž{îÇõÔ#ñ’Æóç¿Ýx<Ùë\^ÁíšÙÙGŽ×./w»H’$LJeˆ!àÛv\öòÛJòÿùìŸ8L°ÃU'wì>ÜÔÚuõÓWÕʪ* à‚3Êì6§fÐXÔ üŒ±$OÊñS§ûÈ®Ç-/ËÏÊðH€Ð$„sië ÖÔv5µvŸ<Ù¨ëza~VN¦³ Ïëq)›œ™áP).N…¨D3åûêþÅó=ž¤•~Ùzàä‰S€[“^ io~:@FµÔž®ü×ng¼È héló8\'Ïh†î°©™©i¾€ß0)» O¹¯5Z[[Ëy$I§ÃårsC§Ü«HRn^n}ýÙ¼¼t…®QF©Ëé&§¥¥6œmܳg_NN&¥<‹…Ñp8¬i1J™iš½è+“ö&ºôª°Q¦iš­BI"’$a„B9ÙÙµ§ë!”Ò3gÎvuµ—d ”ž‘‘f·¥*JD AHU—Û£Úì£X,ª34Ó¤”R“Ô¤†avûz‚P(jïì¬y’—¡Œ±^M>$cÉš¬sÁuÍд˜ÕnUUEQU»j³`ðUáaîhïjmkŠÅôóMÍmm‰Å¥Åþ€¼s×êÆÆFKÖÔÔ„RUuìØ1yyý‚&¥&£”QΙIÍ€?¨(6+aÜ0ŒÆÆÆ®®.·Û““Ó—¬M©Æ|>¿ßï ø}‘pÔ0ukݱDqŒ±p8î!t:éé3fÌT>töÌž#ÇŽÛTyõ7G§LßÑy.3k0cˆø¨¦_¿~yô/‹/Ú»w¯Õ˜jhh˜5kÖáÇc³fÍJKKKMIVYùè#ËŠJ0NðxTY‰tã>rØíëò$x,Ì cœ1ÚÝÝýꫯÝzë-ùý¬¨Š_ý½¡±éŽ»î¬Zµ& Ýÿ}²$sÎ93-if_* ¥&gÌzÍ,Ua4Õµ¨©Ç(c–ñCd郸#æIìrØ975¯Gµ)I†ÑðÀC{°tÀas–?~L(¢Ô`Œ.‚a·¥bšfTÓ¬¦D¸wáCy¹Ù%Ň{ý·î¾ãv‡Ë•žž¾uëÖ#†Œ „_€ÑDišþíÚµ¹¹¹3g\JBˆ®\µ½æt“Ð“à€ˆ0ª Š ‹‹ »»{6ÿ²Õçó­le¼ ŒçÊÂÞî@C˜pΉ„5Ýà}©Î‚cL´˜&Ë’iq¦0„BY‘)5½ž”ää”䤚ÓuÑhlÕª5—]6Uxút}nnΡƒ333²3Ò­y3ìEò!0&@ Ë».6õÇŸ6=xÝúß­B I„R–š–æö$鱘Ý㮡!I±¥•õw9Ý’ÓµfýC+‡–,'²ôõ7k{ìIEQLÓ´ˆ”Ò®îîwß{/…#á@Àïp8>úW^¿wÑ=—OŸ&„ ˜ØU• ¬ª*ÆDÓbkX?uÒ„½öŸ>]Ÿœäœ÷tuoÞ¶mý† 7ÞtãêïÖž®«¯:~\’¤EÜï(¥Ó§Oß¼yó?þñ»ï¾[UÕX4öäÒ§þúôÓ·Ýr•¢Ú.\táºzÛí·¿õÖ¿ P^^þ†’’«òý‡?Í*Š===kÄÀ9ß·oŸÓé´‡UUÇæ]9%+-‰´«»«ál=ÁjŠÇÉtsßùyނܤ×δ«I—Mî´{*Ë+… æTªkÎ6·wA¤P®:lYã3~Àn·Å N$.H$Æëì鶫ʘ‹™¦¡›ºË¦~¿a»nè{½nÓ4 ΄$ÉšÁ?ÿê›sÍÍ)IÉ‚Œôtëƒ\Y1hüè!v–e ÈL’¢ˆ@Pohh9YÓ,a2dPþéúVEÁCeŒªLW° !l³`$Áeëêb§Ó1aÜE.§Ê4M…Á¿;ê…è5^p @€˜Gön'ÓZþþ[”Ò…*É@$´ïäQÎ8€@74€MU½žD.x¯û?~×ëMô&%¹\®p4 øëN׊ÓÌŠ‡UmŠ¡k¹¹™‘H„Q€œQæv¹cû4MÓãñºÝî̬lEUlª* @ Ëf‰SJ5c7×Z€V#KUY’Y&’dA0Îc¾žîÛï¸Rêñx|¾@0;]Ód“Á³Ê$bgÜæ¸ ƒëº‰D­C†irΠV1¸œöôŒ´Êü¡Vb0B@ ‚bL,[´Íf#„1Âñy€\pfšÁ`ð|SSwwg8Ö4=‰ÆbeTÂLVt—K]ùÍ®kçÍöt÷tuöøƒá켑…ƒœÎœõëöù|V„PUU›ÍväÈÑ#GŽZ½Ï>ëµµ[jKÏmÝ3ÍÍÍÇŽ³v”qM!.—+---55µ|@Ybb²Ãá$Éš¹ dIv¹]²¬Äu„Ó-åQ8*†W^´úÛ_gL/[±òàñê3nO:gÁhTæ¬W•ÊÁxÑ= Ï5/))9xð ¢ÿþ“'O.,( ˜¸\®¸˜ëœ‹F¢‘°eT·¬™ çTUNNNF0Á£‘H䙿??hÐ@·Ûð÷ ˆwîÙsòĉ¼7 =óìó•••‹îº N ͺ¬}>A„qvìXÕ e7tªÅ"‘˜‹E£¦n àC«CÀ€ŒsM3]Dûç²\’Þz¿)''oËÆ¿ù{bíçü'wlÝ{ô÷?½ëΛ-Ä¿$KcŒ0cdÝAñ°to3ˆøSB@‰àÅ‹îùiÓæõëú|ÅÊÅ‹î‘e¹  àÈ‘cÇWbBP/<ˆ n‘µ8€]{öææåŒ9DÂ… „ÿÃAÃäŒÑ®Ÿ¦¨v¢pÓÄ !@JJÊuó®ýbÅW••ðà\Œ!†BŒ°¦i[·nKÏÌHp¹TUî[ 9§/)Šb·Û,’ƒaè@ÍÐ;;:eEF¼dDEeEnVæ§_¬¬=}ZV”Ÿ·l½âÊ+Ü.W·¯§¸¤xÝú w.¸Y’d+¢† ‚1– VTE"D †ÓiïêîÞµ{75YRrBÀI𸻻|à÷?øêÃ>¼sÁM~gÅà’´‚\®‹#'O.{ö9UU+‡V¼úê  ÌÎÎjnnî2€YYYÓ§] !üâ«­-­µµµšn<ûü‹Ü»pêä‰V«yÖŒË ªŠ]UlÂ3gÎî9pðÙeKX²D7Œû-1|øï;v½óÞ£Ï>ÿrøðá£Ç»gñâžžžÇüðáÃ[·n1cÆý÷ßo½n6»mùÒe;wìxöù·—._ærÙ/<]¤¤¤Œ?.33Ó²O\x9Ž´´4kò÷AE±XLÑÐÐ`mˆÏœ9Ó¯_?áéÓµ^§#Œ¶vtr3J0QŒ1=ròtvº'ѓʄS3É—Mæq†…ÀBÁœ pQia’'Qµ;úegÕ54¿¿bÅ¡ªãÓ'OL«:µvã–yWÎ5¢Â ºœ6=¢Ý2o†Ó¡|·qû†_v%z–=rëèK ›º‡ .v&(¦i ‹m 5Ĩ¥¹é|KKrbbggWskkiIK‚W9´45ÍA¤˜]åªÊ•$ÓéP'Ž/0 _,JCáhÕ‰†êãí­]#‡\©Ø‰à3 Ê!ÇÉSíÇN4iºÙá‹´wø=ɶª6¬[ÿ Ñx”qïVÒJk·ÝmMõ‚1òo'¿ÿ!Ü¿¸¬úä±¾SWÜTÿˆÄb‘ÿF߆‰t¶·­¯KMMË/,´ÙEQÒ“%™þ쓯o¼iÎʯև"fAS7Ä¶í¿µµ·?öèŸ lªCµÙ‚B€@0Øp¶¡¹¹Åçëéèì …B~¿?ŽšÔÌÈÈ(/+8p@ii©5JdŒ?ßT_WÓÜÜ¢é:¥Ô4 Ã0)5Bƒù¤¬¬,þõ¯½°Éép:î»ï¾ Ìž5ÛÂlöý ²²2==Ýúf ¨ªª3fŒ%©UÅårY;uêT¿~ýNœ8QQQaÕÕÕ€];w™¦~ìØ1!øšo¿-ÎËâœ66µ@@mŠS‘e»ê:rò´Ié¥Çɲ‡QÂLa1ÍDÂB˜P‚!!v€•ÜÜ„ßöxÿËo«JMNyöñG/PöÉÊoî½ó–ßvìýzíú»o™W\˜h‹Å¢×\>öÚ+Ç@M“RnNŸ2î¶û_ž6yŠÍfÓ Ä!Ðu S×Íh$"¸HIL´«jGGsFŠ[àtØŠ ’= ¦,#B̳ í#·å:ìJccÏo;N…C1( BB˜@@š”(v–lY™©)i©IÇkvpˆûíà‡¬\xÁ´Ä;*¢Ï(%€¤±“GöŽž<›\˜ù‡ë!€*+£†lkkíìéÿÛÓ32N7‘¥†¢¨BpÆÌ@(èõxeÉirnštî53þñr²S²³³ƒÁˆ$)¦IM]‡PSG„D"±§žZӴ̬ÌäääÔäÔþ¥%)))ÉÉIÇf³9Œ1ï e&„ØlöœœœX,Ê×uMÓuÎXL‹!Μm¨ª:îv»Ü>ùÓ7ûÑXL¯>Ùzà`jeeN¢[6t’‘•~âø‰¢âBÇi!­%I•–d TT\€æBÄçL@¬Îp/{‰q&"‘X(´ä¬]í'ª«€©é……ž„YV„àáH(‹iv#$mûõDÍ鎅‹oÇXV…RnRš–ž“™™ Î5ÖD5‘‘™ ’% iáh”†å 1)Ç^Xº"Œ½'öf{¢ø˜Ó i†P€xdFÈÚ1Áå”Rjº®G"‘H$‰D4McŒC!Â’„úþLŽ;zÙò×ï[<éõ7Þ¼åè°á±Ò¢ΉÕÇ〠$·É û}þîÎNΨiš”š†¡kšEbZ”f_4´¡þ€!t®±yذ!”š„ £tÍ÷[ï»ç6tCg7mR$åž»¼÷ÁÇUU§^}åÅJ =‘)€.  n44µþùj§Ëu÷Ý7&¸\@YÆv»J)3 Ë>aèºngñ¤q!pSSs Žu´ñd¬5'šUUm;ÕcüØ‘Ð=Óhx@VÚ¯­Ö‹hé³â¹g½æ3+M r±%ûœA0BËÆó믿mÿõw·Û5kæô#†oذ1=#Ýëvǧ¶½° $ÐÉšÚa•¥YÙ96› B5Áë’$×™³g6oÙÁ(mk (MÀnŽ Dã@`éàÑcé)ööˆ è 8QÁÆÆs¼7šÒåtÆgw@0Êbmhl$H²<ÄŒ2Ã0EÖ4­¹¥ÕrËhš1–%©£³óÊ9³>zº®¾ªª*==½´¤ˆ1ZVVºgïÞÖ¶Ö‰ã.QTE’$L0BÈ(³6 ”²Õ߮ߵ{ÿ¸±£þòø‡†¡#„:::ú L8.*ÊY¹fCŠ×=|ÐhwbâEžkj|µrõûÏœièêò½øüýýûçü¸aבª†mÛö<µüiˆ€àFc㹊!ƒ¿]ûÔI ( #çËKK×ý¸i×î=MM"¯×;óò™^¯wí·ß^<|èï»vμìÒéÓ&7·¶žª;cÍ4­h}\ KJJòòò ÿ£™9cÆŒüü|+0Õ*xîÞ74---##ÃzäÉ“'W­Z5f̘^,×éÖ7n,**òûýV!ôûý’$ÕÕÕÅb±õë×çe§>s.mýyknNjG‡S3Áí´)6ˆÈᓵÁHô†«g;ì&  a®(HB &a‚°MVÝÈÛ÷øxåwЇî¾sú¤ñª,ï:x°­½ã‘åÏM›0æÞ;nMKu›Œ˜ùükŸÌ½bB¿œƘAM‚ØöÕN‡;=#Åaw& .V˜'BtöÜùâ‚~ Mç òÓX4')É™›mÇ’ Å´ýÎ^}Õ€œL{VVRK›Y_ßÕÙÒbñ9O‚]öX@Òcº]UÞd¡'$;Ý­ÝMƒË²×sûåžmhq'$ö/+?yâx¬p&Û*†¢×WÖ;S\®ØÝä‚8Ùø5p@E]}ML‹ºœ®$wòÅCG¬ÿyýÿÿh30!@pŒ$aLÒu# "ä¤&ÄHÊËÉ=vxUÕɲþÅÆ•éºq´ª:=# K23)¦\’¤eËž´ÛlAL!ÂX"B–n->n·¶Qœ3ι$„ìN§ó¾xÁ93 =7'Ýãq¥&{ òm¿o?¶k÷)×å8ÛØ““!p;¥ê€A%;wîŸ0~¤Ó­ÎBP’$E¶Y·®õ¿´Jo\5 ¥V˜ë5BK~™’âINö@ˆl6Õ®J!LÆÅîÝ{^ý­HT›1}ÒœË'µ4÷ (»Èíò646 ˆº»º£ZpÚ¥ã].W,Œ„õÃGêÏž=_^V!ú{"¡ a,8YZ„ "ˆ'ÍsÑÇ#%˜`‰(ŠÚk ¶J#êÓ1Æ ÃÐu]‹ÅtC7 “s´)2Å÷³qÖ—EÜ“ää‘#˪·\6mзß..ÊìêîHIγZÂŒ!ÎùÑ£Ç œ³H$ÔÕÕfºi˜&5|=>Õ¦ZhABŠD:;ºÒÒSvîØ3uÚ™(pë߸õ·“5§¯›;;3#•òýúÍÞÄĹWÏyö…W€}ôNj²'‹˜†&˜¡¨ŠŠ!¥ü˯¾[¿~ËÝwÝ8{Ö4aÑÐ`ÜÊ™PÉ4e›™¦©kZ4¦SJeª„®ž9¹ªêä+?î{%wBšHMrõ_rßM«~ø½«ÓwÍ‚ Óøù­hÿ¾ã5¥e¥B0Aˆ-L¾u\HÀ°²ä \pÁ!ç#à°©zàþï×oÜ¿ÿ ;Á=~̘ѣGmÛ¶ýÊÙ³âvUÀ{uXâØÑêE ¯µ;<˜·Ëãv'¾ûþ—K—þMi§#É›b“íN…2Y30il8³nãÆûÞcµEcŒS«À9"!9yyÙZQ®(§EиZ?¦I‡C!ã"Á¨`Œ ¨Éœq„ÇëilsúÚï~˜0atbr¢DDA.´\„œñÄ䄿–Öo¿[ß+ a}«JnnæUWNñºm}rúýO×<Þª¶ËgÌØ°i3`íÚu”RÀUWM5²Ÿ®ëÓ/»¨»»³ÇçÃß0oVR’Ëî°y=N›šÛÞÞñ—'–67·ž|dÉÛ~´|ÙòaÆ•––$%%#„|>ß·ß~ûÆÛï=ÿ·'…Á¤DoOwwßAð£>ê|æææŽ;¶¯zõ=ÆãñTVVZ}NÀòåËï¿ÿþ~ýú’’’¼^¯õHJ©Óé´~EÓ´@ `ñÇíµ×^xáë݃½Cb­»§ûLcË5×\m·ÛgΚùù‡ïÈó‹ósÙ±²áç”±E·\çNpɲ$c@—%!†àª6@'„Š+Á{ðpÍyö\ÓÂ[nž9ebå·ß¯ßò Â膫fßtÝÕ_|½æ•w>6¸|ͺ-7νì²I£= vjq‘Á”†s¾Ìôd»ÍŽ jR! ®iŒRŒ 7ôd¯Óa …#ÇkNsÎkOŸùìÝû€bQeÄhÍwÕ=þH0`žo ¤%{"±X4fZtÀ¸û¡Ï†V NKKóõøkN×]}õ¬»ÌŸ6-Q ÷|¿~«(;§Ÿ?$YîËêúwK}¯RFăbB!_g[Ó¸Kç!Èÿ­d9Y×Ϲþã¯ÞOKM³Év$ÀÿYôÿÍG(Ë’$KŒ‘„°•$%aB)E´Ü¼~?ÿ¼cÑ=7Nž8ê÷ßöVUŸš8þYÁ§Nž:e2&’5CA9v‹‹Ê8º!Ôx"r0Àrböò‰ãç3 ¥Ø›„,8PQäÃ*ª««¹ÈxêÉÅyüµÃGN¥MVúÕŠý7Îærù6™ì1£‡mÿm÷¥SÆþw @” Î)´€ÙAÜšãĵ-Ÿu²ÀŒY.zjÝÝÐŽ]ûÞzçCjRÀ†ž:e<£(‰ÖÔÖG£!Œ‘71! 833\rFyWOøûu?{=žòòþ;vís;œƒ•ËŠà@Á°²2˜µ‹ïóQ0³ÈÚ†aÍâzië@[.F¹à–&,«c†.h¥2 Ì¢Y‰«¯ÿØ“¾òâ¼]{ÎìÙ[ ‘£° DãBƒ‘•«WÏŸwUrR"R]pA.I Žži8;¼rãŒ3n½¨=>kkkIaÞ¦_~¿|æUU,s'‚pûï»~Û¹{ÒÄQãÇŒ0[ñõ÷ååý+*?ôð—M¿ôñÇE€E#A]ÀdYFíÝ{ø…—ßî_ZôÉ'¯e¤'Ã?Ås.Ër/œˆ†AMjÚ·›!„$ ò¼ Ìý²·¿¼ï­Ÿ—-ž—¥/y#Ì9È’òö7k¢¾n ‘L¯+ É6ª2ι"˪ÝN$‚eY‘$&„XŠ?a8Uc`±™¦©Ç ÎÍD¯{ÞÜ+'N÷Úëo%¸_TÞ¯_ÞþCÇ\r1rÁȲâúÊ RU›MµK²ÃОá¥`0”’šl„0Â\ÁB>z´êý5ß?|Ï [<' Š8opŒ€à‚ˆ1f”ÒR}êZ&¸Å$! a‚d‰&“È‚'@jR«½Is»n·­ººv̘KZZZ»{zÖ­ßxíµW:ì²Ëe›;wÎ?_yëõמµÛ „–™XYÀCÞ F6oÙ6´bàâ{nÐ š–žÖÞÖU^^êq“úÚcw,zçݽpЀ/=÷÷Õ+¿øråÊS55'Oœ?fПœ½s×Ñì O0,øî«ëêÛÎ5}¿qk0Úµ÷„pþüùWÍWYY¹lÙ²u?nJINY°`Aœàñx† žš(¸ˆÅ˜»jóùƒ G²fÍšÛo¿½ÏÏg©7!„]]][¶l™?¾u£¥¦¦ö¥ÜtvvƧ´µµõÉA+**JKK­*´µµõõÕ5M;þ|Ÿq°Bê€= IDAT§§Ç4ÍE‹y½ÞùóçoÙ²åŽ;î@ xQ8ªv‘$Ût~ò͆H8rËü9í]]ç[›5!Y©®Â~)N›KR„lv›c•QtÏÃOŒÍ9}ÚÄñ5õ Ͼöæ¶{G «Xúȃð7Þÿ4òÃÆ…7_?bè@ƒÆÚ::ÖmþuÁü™ÇOÕ¹öÉ“F+Šmí÷›*ܼm—,9#aƒRaš&‚„s8CH`@=®`(b­ÚiÉžƒüĉ³ía›nÚR]R”’”èÈÊJIJô†#æ?_Ý`˜ÌnS €e%éËŸ¼5$·°ÛcÆŒ}fD%„¨§'â÷wu¶µ~¿i×±cµs®¸¢ÿò²þemmmm­ÔA! @p„L Ù{dß¶!—LÄ„È+cØëñÞrí‚CÇT<¼ñןþ§*h§Ãa”0!B0 Œ=jËÏ›Ÿ}á­¿,Y˜™™vêÔùþ%Åé‰k¿Ûºk÷ÞK§MzõÕåççM›655%£xÙ¹@R,zÉ2ñp!€@1‚Cˆã”c`Øì ¶éß¿m홢Âü‘#GŸmìÐbü/mkhì†õÛ\’äõ3žœ’–ß/ëÀªISFYÖrŒ1´´þpiú¢€qnŒRÖ+Gø#L<~<€sð>ý|%5ÙÁ Óôõbš1|ÄðhLËÉÉ1MÍ“Ð/¿ßšÕ«;Ú[òr=ŠªÔ×·kšÖÞÑõñ'_À!„=þ—!B¾Ó¼4ayœ¬7LêÍ¢DqÙ§`q)GV†:‚Pôšå{­œJ™…Èé{Wy\õ.`¯ëÈ9HJÊZQ´éç½û’¿|}øÈñK.‘’”oÍ S@XúI"Y–9§B “§jBªM¶Ä>ÁP(ÒÚÒ<´¢|ãOÛf\:>Áí°:¢€êµ~ÚZZRxÃÜ91Ýøè“•“§N"XZþ·zèyó®T‹h~CÊHîêñ½ñÆÇUÇkºÿö©“Ç÷[]b(ê ‹`Œ‚€#I’ Á!NMîtÌ»fV[‡ïÝ5zùË1WÌ»j6e|Í÷€¦a®þu‡ŒÉ­/©mn˶9X/¦BH)‘$Š"I„Èc ¡ÜÑÑáë fd¦YÙŠ²,LÓ´ÙlºbPÊ Ý0KKKY¼øî7ßz§»«sʤ ë6lìì.ÊÈHŒs!lv»¢Ø@6Õ¥*’ÍæBX©©=•™‘ G}=&Ø}=¶ú‹ÇiŒ…»ÌU?lßs¼ö‰;oKKMe”2§•rΧ‚ ( ËÀcy·9gcÎ$!Œãy¶˜  eL–Ód²Dbšétª„H†N1&”šv‡lyQt͈ÇëöxÜ»vX¼è¶uë6Ÿ®«;tèp¿¼L„@FfbYYá‡~ºhÑíŠ@ˆ­§$fŒ ?ý·%·ÞrÝ»ï~ìóû›Î·:tdôŃëNT¬>ýá—ß>Û„1ªkläLÁõh4¿ çé¿=‹ùêëk\±nýþ¾²êâá%IÛØ±„€CGko]pë¢û8pàÃ?\WW÷ì³ÏZZ­ÔÔÔ#‡z“’ãøÃ ®‰'|½âËBÔiر{oVf¦ßïë“…¿üòËÖ{}öìÙªª*ëxgÅ~mÞ¼yþüù}²¾õóúë¯·Žƒ€öövÇc}ít:ûN‡¶„ ÖåóùB6›Íú#]]]€É“'[f|‡Ã‘ êìh·ÙìÕ5ÍçZ»Ž×Ô·utI’ôì+ï›”‚^˜AÈ`TZPTÐ/3-UQC§^oÒsOý%5É‹üÒ[ï}½ö‡+g^öõ{¯Ÿ:]ÿæŸúÁ[¯»º´ ·ª¦–Ò0Í‹+ÊêêÏ}ðÅO ç›®š9ÅyàdL3ÛºBø†U f½ÆÝb0.K’àpæv;!ª*IÄví•c×ýtè¢ý:«›|ÞÜaCæÚœR,ªùüìÀ¡s5µ-1Ý!ä¶5Ÿ‘$919ý/…Ðn·3Á0B]»íbŒÿOãÁÞµÙU!(Kˆ"!--BhîÕW9rðƒV&z½óæzÿý•WÌžtÓ³W¬øF–åkç]ÕÒÜ~èСK§NQíÖ 0~:éaƒÞó¯ÕUýÁ眹`œs„ˆHQÄasÆbú³g”üýù:RSK¨©åT]m÷K/Îö$t)}ü¸KV¯ÚÐxöüÀý-²gÜÚ¦‰?w„E]@e(Éq¨ &µÜ HV¿4~K0ä÷ûCápFzÊ£Kî;q²vëöß1QJJŠ.ÍfózÝN‡³¾¾î§Ÿ~®¬LÎÍ)v¹’L ú—–B{z|‘H$Ž:t´¥¥­  —sÑÇ@í+Ó“ÿ ‰„`ffD€1á‚C„,A F´AÄ7¬ì:OL¬d €ÝxÃÔû|ãî;'¾ùú‚Ç[Ü{ÍUyº¡!¨Ã.éìÙ³E…v‡c„1”$‰1qàБٗOSU%®âጠ6løŸ~Ú6bøà´ÔTdõ!<ßÒöùŠïdYZxçõ¡HôÝWÜs÷íÛ·íØ{àÐ{ï½U1x€ F#Aˆ¨D@hÝÆŸß|ó³K§ûò³×’’!€"Œ`Ÿ ä B c,IRï)_Á$inýÓ__Ú±ûç %Ù³mçþ”¤ÄXL‚çggg%&œh8Ÿì´m?QWÓ¼#7;cÄð¡Ã‡²þ”iš’Dd!‚¥Ö¶ÖãÇk† P9lˆurâL˜&•e™RŠ16M P¨‰L3;+ý–›®õõ·²²2¦M²~ÃÆÛÜ¬Ú €(!ÁípÙ…]]>§#•¼¶þø 7Üqælc¼ÆCðõDºÏ6ï~á²L¿yžÃ“@ Í€ˆÉ‚ nE “ÉP†B€d¡P01)Q’‚ÀJF Œ„"„ÓicŒº]Œ1ÂÈ * ¦”† ”d¹—/²²Ò§L»kϾ… o~çÝOcQí·ßwÍ™55Õ.¾¸âÓϾٴië´iãN;BXXlqˆŒRBpnnú”Éc—.{£ñ|“,KûF 'N7F£Q›j³«J8)ÌϽuÞÜ`$h ÂXÀßáëò<Þ¹bÅ–Ëg ?qâô¾ýâ¢|-ª;ο-_.Ë „`Р‹jjjú‚è\nwsk[AQñÿpNœ0ñ¯O<ñØÒgö¾ðö›V¬ZûÀ¢;)¥†nPJ™Iv»"Ë‚q"Cc²Œ±¨výM—žoj[÷Óþ…wL»õÆÑ M> ÄŠß§Bú¯¿Õ®ùnî\$¸—O½è‘ek @Ý¡S'N•”4hê´ .—G‹„=¾/×ô/):Z}|Û¶mC‡ÍÊÎÕb±ïbB‹ÈÔ7Ü土ªÚ?|Ìe\ ÿÓºÖmúÞíN¸ø¢á-Ê(ðÊ ‘‚ Áa€ $˜ hÙŠ-j;†IŽ3zÇŽ]Þ÷ᅵ?ö7_o¸uÁ/¿´$èç#†WâÐ²Ž¾õöû7ÝpmFz:ã !!Ä¥Œd™tݰ©Äšó‰0F¹ª,[å‡1Ê‚+2B ,.TöÛÎÝZQ9xò¤‰»öì|öÙ+÷í­ß´ùä{ì|èÞ)Dn–ÈÀkçÍ~å•÷RSRÓ2’0€Î-Ž D«>¹~ý/ííÈ0©a±X¬»ÇǨ(--øü³7¬ Æ„eñãÜŠ5ùùyå¥Eç[‚ÁPeeE~~>Ø›˜œš–J0q»Ýk×®}≧†¸}Û¾²ÒQv—sÙ²'cVð¬ ]úô±£Çº¦ÉDá@Nû;Î!È9 ”ÖÔÔ–”É2±Z[íg:û÷/±¬ @„RTÓ5Mw»ÝØ"oòôÑg+*+.6t0Æ$Ωaq÷s¯öX h+.ì?÷ªñ;v×ͽjDZZ"ãè|SC~¿ÁBÆ!øà¡£¡H4'3µ«»{ù3/?÷Ìc­­í]Ýy¹Ù²¬Î„”ÁôÔ”Ý{äædö/-´ž ‘p,¦½ýîg±˜þèÃwµwöü¼u×]wÝñÞ‡Ÿ¦$'¯[»Êëu†C]±XX"˜ rö\ÓsÏ¿¥Æk¯-­<  îØ¹?59±¬¼"Ô»ABU-σõ‚@­þøãU5uõÌd£GKp;·ý¾a4eüÈ믹üdÍ™_~Ý•à¾ýš+ú{]­ÍͧêÏ|ö˯gÛüÀsM­í[\.µ¼¼Ìår!!À–Ö–#Gª3³ÒæÌš.ÉB  %™pΓ(åŒR›]‘$G°8 tÈàAo½ýÁc<0pPù?ýxíÜ«ì6›Çã”deüØ‘}òÅßž|DpºøÞ‡Ï44@ˆ­Úè‘å/>}Óï;_{sý”!C¦ŽÁ!† $‚0D‚Œ9ƒVà*ç luŒz|]€ôô4‚‘D0¨JD×MƘª*@pI–!$˜B¤XLs{A]7mvÕ4D€@ˆ-ÓeÉ2±©êe—Núᇟ^þ¨¡këܺjÍÆ)S'BáÑ£.ylû‹ÊSR¼Š¢pÎ1†œ ˆ Õô޶¶Ô¤„ÝPwú̯;Ö©OIJŒD£Á‡­­»'Áá˜4n$´µ³Ãl1BÁöS'OØÊ›÷äçe86°¿3gÖÔœ/+͋Ţ---ùùBˆââ¢üü|‡Ãa-”=]] n—¥[±>ü555%%%¼~y™™N÷£?)//‡ÃW^y¥®.BÔ××§¦¦º\®3fLŸ>Ýï÷[.==Ýbç !b±ØöíÛ€•_ØwTðûý»wïîììüÓŸþß^ a1(Ö®ý>/7·ï;¡PXQ·Û¶==âššSYY™_|¹BÂhÍšoËËË~úiÓð!;‘›“öÒÒ?ý¾÷è/¿ï}é©?›fìäéÓþ`Ø0X¿ì¬KîÜÚÞÓx¾ÕdL‹iЬî>täÎ??þÝGïÙö¢¼Ü«ï¸Ç©Úî¸a¾ßø|õ÷É^Ï ×\ž‘ÔÕÑ­Eí\P,)HŠ"MuqD§|öõòÇTÕdÔn·†æ÷÷H1(÷ºÝˆ1$ILpIÆ‚Q _~QyꇟŸ4LÖÖÑ‘”•©›"‰„æi຺v!8¥Vl¨¯ëÈðO[qèØÙg¼1Á›*+.L½Ûlé8xìøWßþÐÜÞ G8MMMƒ†z Cû· P(¬˜q!pædUZfžÃå±Ú†ÿ}F‹Å>]ñakk3çZè°ÿñH!Ä.FAŒƘ„ &IA IîöùÜî„)Ó.Y»ö×Ê¡ƒvõË/×§¦&<öèýJÆ„s¾òëÕþà7¼Ë¿! $.ÎcŒ‚¬=>B.‡qÄ»=!Aˆbåô À•\<¢rß¾'Œ¹é†k¶üük]MÏ]·•ˆ´uû©N_(I4aä•åô{î¼þŸo|¼äÁÛmv'†Vœôƒû÷m<ß2hPÿIÇøü¾¦¦6]×eYJNò:®ÜÜ,Ó0»:»ƒ¡ HUd„‘3b±¨ÃiËÌ̘8qìëo|@™iÍT(eáPPUÕÖÖVÁþû2ÒR’ãÆêèjñ˜Àj³©x£ÑˆiPëä—©Ê„  êŽã>ÂŽnèß®Z7|X…ªªD‚@ÀXLs¹â!cÔ†íñ%''ʲ,õÞakÐûÀâ»6lØüÊ«oÏ¿îšÒÒB0€ÿv"·t©ÙzðzIêÁ ÆN™8ø_l+/«DHÖ Ã0hiIAg[ÇÔ®ùbÅêž_ ª:~*5%%--™q8‚€cZÚÛ;»:¯¹r†DDbA5úöû_´wt_?ovOOøLCÓ¼¹W½ü×fΘ~ß½wÙU´›L—Ñuí³UV­ÙxÃõW\7÷òpD{ó_ŸJ˜\{íåié©BJMEQûÄœä0[™rîÜu`ûo;¿øê»ï¿mÊ”q±¨‰†-Ö–í;7oÛTdÙå²oKKù²¹åxýY_8ŒD-^žÃáp¹\«¿ÝäÚòûUW]^Ö¿ÈUwíÚŸ˜”4cæ4»Ý† $½j\0cœs,„`ŒêÙìÄ41’æwÜ|òÔé/¿ZýðC‹Ož¨9ßÔ\YYA$I’È]wßúøO?óÜ+?²ðÏÞ}ÿŸžèpßþÚ?ßÞÚØs¦©}—têhc“ª(3Ç^œ‘™i±­9Fd\`Î)!„ÐçókZ´°¨Ðá°[›Œ!hRÊ(…É ¢&2t*ÉaL$è’mÌä6·Ì2tCÎLÁeYQ 碫«+77‹RæpÚ¯›õ7«¿1|øˆaƒ9¾rÅšaÃ†É )/+~õ•÷Ÿzò!Effzï Á` êñû[ÛÛÚ;»ηT,G´Ä§‚3:¤$¯¼0ßiSΞ;g˜z0úüÕ'Nu÷MÆò³ Þ–êr¹j‹Š²RS=ÌԛηäçX¾‹Ök}Úkjkmª­/Ó4Í•+W>õÔSVÇrèСƒ š3g„°¾¾B‡-%Ë{ï½gÝ&MštäÈ‘o¼ñ?œ;vìèèèØ»wï¬Y³.üþ–-[ºººº»»=:tèоù‹/ú|þâ’â¾u¼»»Ë: vvv†ÃẺºÜœ¤?=ôp^^nsÓ™Âü¬gÿþ ˆ@X]SŸœäý˽wfgd.¾mÈ×]óäß_=U[—žšœ˜à„#ZGGg8¦!úeg.¼õ¦ÜœÌ¶§_¼¸bˆÓi†BŠ"½²ì‰oÖm|û“ÏK ÿ²ðv"K¶lEˆ_wåƒÇ„ ” Ë”ÕkQ1Äa·5µ¶yÝNÝ›š †m6Õ0t‘¢Ú´X´­£ÕT23’UG’71€s‡Ž6]q…ÀX5ͨ©C.Šiò {Y”«¦é)Î+Þ¶ãÕe_k# ɪÁ…nNY./-`‚ÕE"ÖùÄ4 j˜ÿw–‡@½Lfš§šv¥ˆG™؇þûRfPúÓ/ã¦NÄÿv"@ ˆ!B1DXBªDˆ„ãÐB–‹ Н›§ìÙsìöÛæMž2ú믿[þôk½ÿ"D!€ªÚ'M·ió¶Í¿l›3{¦EYë’\ÄéÞœ 8!˜qd˜ B(KV´É¹°dˆqæIp%'§TUŸrQùâ… ^þç[£FåŽ[¸jõmÛN_uE¥` ZÔétº¯ž3ý}±äOwSÆ@ ¯ÇsÙ´  P)zeHC \a4!Á)I8 kZŒ1n˜T’$±Ãn/ÈÏÍÊÎì_ZÜÞîF"¡h4¡(..ZùõJŒÑås¦˜FØíN–$ ¶„ÃAˆ]J{ßóÓO›~X÷ãªÕ?,ùó½2¶Àê–+ÅW.:»|©iiƒ´–‚ÎÎn7A’H_¤ZCCc~~¿@ PP! ˆXBGpAÜÌÍ7_ÝÐxÉ+¯½“äõ.\¸ =5Íj-B$€@œsˆ àª$#»Ê4š›»ŸyvíЊþîŸýì+¯×ÝÜÜj"çàš¦iºþźÍ€8—½SE%€™Æ\nW4ªÖÕÖ¯ÿy«Ëå€Ò?9)¹ kN¼×ÓÙB Ĺ䈨J”aŒ@GtÍÀˆôëSÔÞÞ¾jõºGÍýê›z÷.R,2@’Çåþð½%_õ݇Ÿ}ãõçvn[ý·¿/ݲ}7@§ô‹o~{æ•É-‡‹¯ÀGõé 8A‰‰` @#äòŠªÚº†Â]³s2e™˜ƒxB PS „±®é„£$ËÄf·D£*ç‚Rf³YÔ˜AV ÆF4ª‡Cˆl­- .ùý)œ IÂn·ã¾YÓ¾]õSvV¶Õ¦ø|é{~ß7``›ÅîOKýlÙÊÅ‹ILL¸Ù¤† E–}öݨáýŽCÇϧû}6»•ȸ;H„@Ä4­¢ºŠ(r0>¹D×tƒÒŽ`´oL‹dw9ÝAÍ ¼¡¾½KVª×ë*½~mÄÈá`mîX×®]»^ZjµXn:Z[[wïÞýÒK/™a÷Æ 3ÙBI’8窪šoY|||[[›Y·ù|¾•+W†q³¿j®ÅkÖ¬ñ§¤®X±bòäÉ7õ/‘Häí·ßŽD"6›mñâÅ7nôx<¦ uå·ßöèšC0þý÷ß++++**b±(pÒ¤I@ ­­ B8vxщ³×"Áf QНT(¥cNé³?–’( áBxÝñÏ>öpzJ’Óa€S]çœKÒc"2Á8Ue‹üã¿>‰i:„„‘Ä8\¼öç§®–•­øá'‹‚ïœ0FptïŒQÕµ­5µÍ-ͱÄ$«’2ŒyaÏîÅ—+on&))Y²%!%5~ÌÈaVwªꈄCZ  ŠhFs0ÐÒÐtÝü‡Ë²hC¡ÚšÚÿhŠ›Éôrõ≌¼îVÙÆoN×þ¡9< Œw;Àÿ÷ !’1AJˆ`1D’"É2Q$"I#,‚q»œM¡œÌ„HLïi¾„ÔGM=tðÕªªâ‚‚žØ Ìš1mÏïûÿ8xxÚÝSL(!ºAмw ˆL„àŒqIÂð´K(Ë2ãLŽ0P@!‚DïÞÝ7où5=-uÆÝ·ïعïƒ~ó)Ý»ûW¯=Ñ·wZîÆ 8Šzv-+¯úiýÖÙ³îÉDiC‘®²,Ýl‚#"aAТH%Ηàí´ª ~ÓÉG Zس [×Üëe5v»ƒ3óxõ—H0T^QùòcsÃ-­µÕµ«Ön˜4qô€~Eù]|>/‘0 øÓúm[¶ï-ìžgµYÇŽ›P|éò–-Û~øþ‹ü.Y¡Ž–h4€!T cå×wî<ðÌS  ìµvÝöÝ{Î3möÌ)Í-mÍMmœƒÌÌôü‚.A„nnðšg GŽœ\½z£ÝnõùžùóB‘¢#:zô cÌaw(ca›Uv8—ÃårÚ¬6„‘EV6mý2fš¬ ]ï߯Èj•_xöOš¦…cªÓát:íªªµµwx½n“¿nn†7â>„ döR€„H¶@uu]bbBa¿íÚ»}Çï}ûõùË+ofe¥+²|ízy¨#8fÄiS&½òú{~Òõ² „p~vÚÄ!ý 2²B¿> ‰4°G·xKåL‰`@¡‡£µõ å×+òºäŒ=œ,¸ÐuªÈ€ÐЙ9LJ ¨J1‘8DÔ`ápÄÄêRÊ ƒ*ŠŒ ÁX,v]§Šbc†8vü”aÐí¿þ~Û¤1D"2BN§ýá‡xó­O òwíÞߣ{×£GO < %9ùbñ¥ ›¶õÌ¿¡x”Ñ––¶ªÚÚ˜ÖýʵJUÕózçëšÖŒ‚dDF+çʨ IDATaÓ¢ØÐ(¥¾x·Ã*_+¯ÍÉHt»îxï©ó×R’}j,¶fÃ^¯×m·[¯^¹ þMpg.ªª[ÚÚü~¿¹tZ­Ö—^zÉŒl >üرcååå ÅÅ—4MSÕζۘ1cn/_¾¼iÓ¦3fÜ, OŸ>½eóæþñÖ_—¼õÏ~öÔ“O ÀcªúÄO\½zµ°{·îµuuƒ¾uâÄó‹Ï>•—•ñÌ£ó–.ûzÑü¹nÃçëY{×äq-M†ª_¯¬±*D–Ñ“ó§¤ø|B Îa8ݶ÷è±³ïž<>=5 B8§µXq÷ü\ 8çà€3ʹÐ9Ã’D ÝTˆSÃ`”qƒª‚ZdåÌù‹¿VQvîò…¾ÝsŸ79Þíæ€ Áç"LˆnU,ÿníØ‘ƒ»çå£íœÒ³/Μr; è9m–`‡Ž @D¹xµTÕ©è âŒ6»Ó¢ð;&útùæ—_ýnÖ=cÇŒ€%DF > %1A¨S¾ý×ýWK*j«ÛÑŽ`Ç'+WQMÓ5Í*+©I>_ÜÅk×SR›ÚLO ²X,W¯”„#Ñÿ£‚ (ŒÅ‚u5eã&ß×I³¾ñc þo_›Õ6lÐP‚1DPV$Å")²$ÉX"D’FØ\¬6ëš5&NH$a·Z››£éij,ºó·?*ÈÊòa¢!Ž?ÿû¾Ãýúô3z0D AȘ€ÀL\‚“ù \V B˜2~³ŽåÌL"Ä&zÆ Ž‡@ ÓÓüë7mëÓ«GÏ‚Ÿ7í¾x¡òÖ‰=º~¥¤iâ-]e‰+ŠA¥KNæöûÅ’–ž7 &3 I’$΄$"aLÀ)¹™[„12w“‘UµööPcSÛê5=>tÈt—Ë•™‘£X”H$Tس ##ýâÅ’‚¼ñ>;Р0T * ƒ †ÀÚ¬–Y3ï²Xd„$I’$Ké…~XýS4›7w¶ÇéBa„%I’$RU]Ó%7[–e"Iº®#ŒÔ˜&¸hnnéÖ­€:å”Ð ™2I.æÓ‚ÊÉΜ<é–¶@`ùòo.\¸’šœäò¸B‘æ––µ?nˆ÷y| Vx½DU£GU´µ…ÕGŽÌÍÊHËÌN•ƒØpcÔTÛ¸ïðѱ}‹Æ÷î¾~Û‡E „¢¥eUýûåd§ÇÇÇ)²„‰tðÈ©>ü2+Ë¿bÙÒÑ£FÿÃÚ@ ã‹Ï?NKMPcmT‰\ºRòò_ßwÙí¯¿údyeÝûK¿HKO~âñ¹¶P =ÄOOO+,ìîñ¸$I"c¬ D’:³M„œ¿péwþùé'1bÐäÛÆX,Vóåq9g̸ýþû§Ý;óÎøïéSdYÊHOKMñY-6à¡p@a·Û®•VpÊe™¤¥§ Ô§k^e¼¶¾>;'£KvvSk Ðçó644\..IMI2WØÿ‚ΈΙ+ãp!8ˆd³Ù£¡P$--õÌÙómö²ë¡Pc’‘™vËø±oµeû®Vo¸ZzýêÕ²p8¢ëz¼Ç•èò¦$%º,–ó×®Õ5·I¹PZ>¸o9Î#$©=*/¯‚ËéYTèv»B¡9¾ÂÊ ŠEuÆ8œq ‡c”Ró6ñ³²b&BÅ"!€ewÊ$„¨ªªXäuë·æä•\½6bÄ`ƒ²,!­6Kª?ù·ûâ¼îKÅWÓÓÓÒüþÌÌ´3§.øãsr²8ÁP¨øÒ•wÞYÖ¯o‘àÆŽ]GôÉW$RUפë4ÑìVEBX–$I–!ÄšnȲä´IÁp4S³3S’6»aÐ#ÇÏEcFÐ`üÂÅ2o‚wÖÌY7§?æ]HJJ ƒ»víZ¼xqJJŠ /ìÒ¥‹YBüñåË—oܰáÚÕË MM³gÏöûý¿ß3bÉ›o–^»vâÄñ)S¦z<aEEÅýÞ˨Q÷͸»kׂ¿/Yrà?Nž<õúë¯WWVüóƒ¥ÎŸ;fÄБC{ÖÒ’+Ù© ‹œŠ„ç‹îŸ6ù–‘“ÆEµSg/œ<ùòÕë’BºæeùS|£¦æPyMSCc[K TZY}æb ";=µ{^ŽÍj±Y,ÅʹCšÉ4‚s!‚¦ ëº~£3‚3é*Ä´KFòøáE·ŽêÝ-/ÙcH‚C„‚@;!Ö⒲ͻ÷Ïœ21'31ÝÐÑÓg.Ñ0(¼p¹D‹Å „}{õĵv´œ9“>„ÆYm²?-a@ßüœ.Y½‹ò‡²l‘¬²ärÀ¼œd—Ã~øÈÙ–¶ DÈ—’\Ô³°Oï^ýzõêÙµ  +CpºõÀÁ²šúx¯G"ÀfSœN»Ýn·Ù¬ÃÐÿ[¬: {¯Á’¢@/Ÿ;’’žç‰Küw»çÿSkôÿ×eª60DÆŠEVdŒ F¦v™^cDLAv;Q,6ÅCG XRR kÝ{äægΞ~ûݽ^÷Ü9S0Ö…3"a1¥è¦âæ8ðÆ ‚(¥œs"!%‘¦j’dò±`”ì”#‡ þyã¶{fÜñÖÏýéÑ¿(yá‚¡»w_þqýéïJy ’?ýøüW^ßïOñ''X“bÊ&äO«Ì¿¹; !(Õ$ 1&8”ÒP(Â9Ó4ªÆô@Gð䩳]»æí?pdço»}tƲ¦é[6o;pàP8¬æäd-\¸ÀáòØ.Æš¯—•hºˆEµ³ç.–——SjèºFÿùÉ?ââ@ x£ÑwþÂ¥•+WwÉËyhÁ½bÎ’Œs®ë†$IŠ¢ G¾DoUMÃni TU—$,6 6æ‡0LJ,†NN´pØÉŒiwÞyÇÄC‡O|òÙçÁPxÌèa‹ÿüèÁ£'Ž96sZ; â/=7öرò?W\¹V A‡ÝnÝfèDŠcÍmý®³î¸¹#‡ëÛ[[gŒºy×þ†@П–ê‹wcB €—._úÇ»Ÿ9œö—.IKKŸ³à‰.¹Y¯½úäF,ÒB F™þåWë>ñìSóuÝxáå÷rs3þòÒcŠKN?çpØÓü)}ûö6ˆ«W®¥§§¹ÜrçsoÒD!hjm}ùå%ï¿÷Z|¼÷¦ŽÎd¯p‘¼.‡cÁ‚YãÇkln.+«9~âLMuªj„Hm­Η$''vÏ+ìQ@ £äZE]CSAA–ËéÚ²eWœ7Îëõ:xb×nǸ1ÃÇOiµ*ÿ&¼ãÁœg“`dIÊËË=qâ¬Ëåñzão½uÂgÿ\öôÓOlÞ²uÑ‚y?­ßtá\Ë›y ^W]¡ÐÕÈ…s—vî=¼ö·ß×ìÜçrjªš—•~¥¬Òn·¡¸¸5V[^aµ*¹9YfÜnuu­ËéðùL{%€!H¸Ihâ’Õf Cº¦1Î$I"„éºÀ˜†©4„§5Øò@7„ Q1†Ñ¨N C%×®÷êݽK^„`bæ”D2ÒRçÍ›õég_äK2QUµ´ôú Á}î™9éóÏ¿ëVçõ<·xÉÙó½Þ¸¾½º}¿æ—ô´DjRñåR-¦Å4Ãç´(D&Š€ðjYMCs S-¥Q~,¦9œöë:EápeeMc{0( p8gÏ_s9×KËn®Q/¼ð¢E‹zöì)„xà–.]jîmÿûl‰Ò«W/ †ï½ù†Ûå0j\,ýw‘'„pÏž=¿ïÞ=ç¾ûÊ+*FŒ1}útÀ† † èÿÌcÙ2jèÐM«Wý¼y[cKË‚Ù÷Nœ0^&DEu]—19tà >…ÔˆE7bȲoVß2b0&ÀÐ…Ën¹wÚm犯mÛ}ÀépTW7 Á$I¢Ó C±(Í­-§Ý>æ…]s‚éŒFjë;âÜ`ÇHpÆu]çL@ˆM6–£ aŒqªSõÌù„h¼$US‹šjÄ0#À1”®Û¶S&òó§¹ãœº®ª:€œ9¹WÏn!d,ŒPÆãâ< „øÈ½1H’V®ÝŽhá°Z\\:|D…Xóòó ò0œsèñÈCB Œ¤˜*Þ^ºêÞ{§>ÿܳË gŒÆÔH{{+—Ê*ÛÚ;€V«SU„ Ãn©¬iìYØM‘ÊÁÁƒ‡M,óëtÆ¢‘Ö–†Â>#nVíÌšÑ*ÿ×/¯ÇûÚâ—-6Y’‰bŲB°‰Œ‘éœÀˆ@„0‘dcñ‹Oôù^~qAm½úÒËï,}ÿ6n¤FèÕWæ Ž;óð#ï >úà…4JYy},0°WFZš`DgØŒ<„ :»IÎ4y\0F¹$›ŒÀ9•$¬ëT– .ܸq{fVZï¢î?oÜñÚßÞ:4çOùÇ;Û{õJ?g(E%A–IiYåÊUë^{åi«Eá@!0&‹lþ5]1*8粌‰DBÁc´¹9 êzLUŸ¼°ßaÆø¨Ñ#!o¿ýAnnî¯;6c(‚Áú/¾X[r­â¯}åèÑcV«uú´)˜°ŽöÆ“§.8ptíÚ ííí70é?®þ2+ËoJ7@ !Ъï×Ü3}ª$c.8€1Á9åœr«*kZZ›ûô)B›ÅÐñ',ëµ’²p46îLvÿ‹Â€:¿"Á@¢¤äzYYÅÐ!ƒ ÃØ½{ß®ßt´wDc‘ûfž>­»ÏÇ!Ð~ý­xÖ½«í¿íx43ÍK ¤¨VÛÁBF9ç±o·Muù÷îy¦ºaõï‡+ëêïš2aá‚Yë6üúîû+,ŠòýªÏóór}|ñðaç<8ƒ1CÀ/\¸¶ô㯆í׳°ë×+×LîšrKss[4¦fdø]nרáƒdÅ&ÉŠ¦ûöijn™|Û-ÙÙ@¹‹EÕY÷=:çÁwß5éÆýçƒÌ)¡`"h†™hof¡˜Ð“h4 † U‹Åbæ©+Ñ AYQ¼ñÞ3ç.µ´´ßÿÝÉIIÄ$¸Ü@ù˜:_ÞÉ9ã”rJ¹¡Só|*Ë "Xi‡lmiWU5--í³eËo™0®¥¹yÆ-ííí9Y™=83Á鬨¬úãè‰ÓÅWCѨQáu8|qîÒšz&Ä“o‹s:r<‰-Z0Ûép::¼Þ̬ D8ñû“cQ½¾¾>.Îc¾>aLc¬£=$É8>ΧS#L$b·ËŒ ‚Èác§ú÷/²ÈVI&ªª;6ˆFR{{Ǭû™?gÖìÙS%‰ÈÆ"ˆÍ`SsÛ•’Š?Z‘šš”ž‘|ìØYoœs΃“½q–wßûá­%Ï9l^ÊØ¦Í;7oÙy½¼ræ]“JË*š ª R“<ÍÍÁ@(R×ÔF)w9¬…]³Ü.Ù"í;|6ªјÚÉ"(¢ëºÃé å‚Gn4Íþô§?µ··¯^½Ú vŸ0aÂÞ½{ͽ­¹©¹ªºª¾¾~Ò¤I¦­öµ×_/)¾ðéÒwƒGßò÷7—té’×PWWYYUVV^ríÊñ£ÇçÜo]}½Å¢ êÛïȉ“ñcF<È"K@tê³°D@W¯•\º|eØàA ±h$ª±¨¦G;B¡CÇOûSR¶îÚ÷ç‡îOJJ&qjŒQM‹¨Q]DbQ5¦ FL$„1¢¤¬2+3ÍeµI«®EO¿r½²Æm·eg%¥§ø »eËD!HÖ9G.8D²lQ#*€ÆõÊš¼¬”’Êš/¾ÿåñ9w$xa >]\ª·Ž€ 7 ¨¾¹cãö÷ŽÕ=?a(€Ð ÍÐcŽè'_¬~ê¡ûs! ƒ·~cSKKŸ¢îc†õ‡TÐD¾\õó®ý§)eÁ¼sãB‹EêUÔõ//͵ȌH@0|åjýâ?7n¸"+af°hD„ÃÑHTSµú†Ææ@ÀœO ìÝ-.Î) vD÷)$X¶ÚÅÅWO?þïâ–ésžr8ãÎÛçMô§eçÿÓüÿ~EhΪ™`„d D0B!Œ‘$ÂD°¶¾RW5YB¾Ä8,ÁÑ£F<ôУ”²%o>oPKGGÓsÏ/ GÔԔĭÛ÷;ÌŸÿæ’µo¼µì¶I£=tFZ^4¦K’d†. adˆ nF+¨ª†1(²Ä9e”#„My'Bpnï¼câGŸ~‘˜è3jpýÃ3ÿµâGYÆÜ?äoK¶¶¢~*A7d„œ=ºu4 è«o×üùÉ…15Æ% ƒbŒdE–BÀÀ! ¬È@,\¹R±þç-ŠÅ2zô°¢Â‚´t$þðKEEeùõ²nݲ ͪÈXJÎ!ÙY@‚"ºT|¡ÝˆÞÛ'ÙPcÝÓ’úägþõ…GŸyõÝ;ïœøÎ{+¬Ë!ýR““¶lùuúôÛo?ÜÐB”j,¶úÇ­5÷Ýsç®}<9rX?@(ö§'ûõéi³Û*«ê].φͿÖV×ß{ßô»îž,Ó]` àPÀˆ{ü‰¿ÔoÊ” @Êh8õx\ÿv~äŒqÁ›o}2gÎÌ”ßM¼äÍ”f³)Í zCœŒl¶NËér»]·Nk³Y‹Ì9£ŒcFæL÷×Þÿ㺮›·cl ÜdYÊï’[NªeYîÒ%ç®»îüí·ÝN§sÀ€¾G/+¯üë[0ÆÀMé Rk8ÒŽ@rs²Îœ»PSWHKO)¾tµ°{·îÝ»ºV\|ÉívX¬V«Í)IãBnÈ(E3f–Î@±)j £” ÁBûs8¬aLcL–1c†£’l„BÁ.¹Ù3f܆„Î`Ȧ°ÙãqöÈ}nñÂ?ýšHlîãË*ª¾þöÇÞ]¸pÁ¨¥,æ©GFëó㺭ãGi†ƒÁHR¢¯ª¦®Wœ}ÏÕ·¶A‰$„Óaïš›u¹´²´¬:Œø“}]² ©A¡HLU_|òá·?^Á5tЩ3ç®]¯¨««3E1Û¶m ‡Ã‡C–åÛo¿ýf9øØØ·¯½£cïÞ½‹¥²¢¢ª¢²- —\/³[­Ï-~N"ØítúýiY™é} S.]¾²hîEÝ{ 'ß:! Ƙ@ˆaLˆ¦j«×­EM½ã6$˜¡«TטÓÕÈþÃÇ˪ë˜95!!~ëîýN·Çf³!4. ešN ÍPUƒS@°L$A„8e¿8u¶øêkÏ,ŒÅÔí;Ž\¹V.8ËÎL:°[Z²ïʵªÛÿè׳GRB„B†€€€é±è¥ÒòÖ@`@¯î0E‚5õ¯½ÿ ¼º! HÒC÷¦:4 $¯jhÞ¾çÔ}ÓïJNLè §…B0 «_ÿó}wߦX¬Ü08‡‚3Æx}Só”äx0ÇBHp[8Ò§W®]³Ož¹t×”ñ§R|±øjEeÝ“¹=N‚cpF9Øfƒ6«eØÀn˜(TÓ¸Á °¦ê¿ìÙÛ˜¤gÞ©$n·+1Õo±X$¢ØíY‘ÿ›È“ ‹FÚšë{öºé ¼ù.“ÿ‚Bd +²,IcL0„%„0@’$A$$"Öÿ¼ëÂ¥ªwßy(!ÞF)úó3OŒËý÷ÏSUȨ-böpׂŒ{fŒjmi<0?-=éÛoßÞ¶mÿç_¬?xèÔ÷ß-KIJBØ7̹P,„RÔu*I2†@"‚QÆ”bè\Vda:¸Ô *a$Kbö½S¿^¹náÜ{ï¸íÖººÊõy\–f÷_þ¯?æ>Píñ¸’%J¦Ý5é•×?8tøäðaý‚€ Æl:‘΄¬HÔ`Œ *‘¥pDÛºuï‰SçÆ‘œ’(á¨Ý)0y\‘œÜÄËWªÕXP€Ðºµ¿îÞ{dРAUUU«V­***r:qÝ`Û·ïäôï×ë– cþÍ7G—­8üÓúÒ§žxyÓr?ÿü˵µ•CúvzKßמšÚQ^Ã#ºYKʪ2’} ñžæ–À‹Ï=:qüxÑ ›¶$ú<#‡ôVc€¦æÖïWoÊHOá\¬øöG²oÄÐ~]»æ&x½µ y¹Ù.—£ªª!ŠîØu ®®þÑGç/~æQEV BPy'oøÛo}SÕg/ÂH€íܹoÈà~7º£@×õW_¿¾®áý÷ÿ¶eÛîûœnž'Bò›³=ËÎ%é&ªÍäí")ŠBuÆ0¥„!@…$A1 &¨9Ä€1.Ô41†‘Ôiøe "„ Nˆkllr¹Ý‚‹ñãǶ4·?qÒ·pÁƒ~´ŒRÖ»°«E–Î_U5M@`‘Hb|¼Åfu¹]E={\/«8pðˆÝfKIIŒÅ´®]ªëê×mÜ:jäÐñcGHnlj³Z\¦‰P°ƒ3A)Ç$"tïYzíJks£$+œ3…¦êõ MÇOžyìOóàjÌ0½¹»Cb”qnÄ{]‚sªP¢Œ¡êÚÚŒ4¿ÙZ€#òr3^znî?—wüÄéùÎHŸ¹î…gÆ65y¿úæÛÓ¦G£êà~Eãôù‹û÷Üòëþ;& @Œѯ©%²*rcSàøÙâ ;öçf¦¦ú“›Û®RÆ€ƒôÙwä¤ËéÌL÷¿¶ø1¿?=ηgï–¼S^^žšš HKKkmm-///**jnnNLL\¿~}eeeUUÕ‘C‡^~öÏŸ,_1f̻͖žž–›™õÈüKÞYúû=üÐý}‰I6‹Bpìø‰¥Ÿ}6|È¿,~Z–d(ä‰ ‚"eååo¾÷þÌ»î9l¨¡EUM‹E£z,r½¢|ݶÝié)ͭϾYƒHONö§¥&¨a QÊÌWP–e‚ ‘pu]“àilj]·}{GtîŒIë¶ì¾z½ŠQÖ»{þ-£‡X¼iǾڦÖ!½z êSäpX(nA†QoÚq(?7mäÀ^AÆÕTŸí­çïŸöð»YÂ驉û]-ÈéiQlmíám{ÎÌ›=Íáp0ÊÂ&X8¦~¹jý þ}üÉ)BgœA. XsKK8)«iꆓT-¼úçŽz(¬3Ê«kZ$E\H²$ÉäÛï~íhMžÜ÷¶‰½BŒqnç±Æy€ß'ka#f‘ÓbF4fÔ·¶C@™UÕDâu8Ý.·ÛfwXíN‡ÃÉ–å+ÿéu€ˆ«Nætë±Ä87 ûèpF(„©7“”0B„H!‚0D 1!ÀäB0ƒÅbíªÚà°û›[#õuõV«òý÷?Þ6é¶ü|ùøáo\.;€€ À8ŽFaœÛöà}·N¹c¢GþúÏeß¼÷ößÍaP€ d5i„H„Æg€1Ž0d Œj!l¦a8@ˆ$_Âèaƒ¶þúÛ„ñcæ=8«ôzõ¦ÍßøÛäõ?-°ÛmPÔ«š•ÈŠ„É ‹yâéײ²ÓR““ÌT6‹Å†À °$Ç4#,aÌ”þ²egyeÍÜf Àm·;­V+Á˜%ú¬+–½¹ÿÐÅìܤ³gKFŽ™øÇá3W®\8pàòåË׬Y“žžÖ·o!ø“OÞ¬­©q9]ŠÞE震½üÜ‹Kôßöóº¯dI1çyÐdF Á9 €3Æ9§`$ÁX2;ÓœC±×ë½|µDUµÄ¤Äp4ìv¹oö nÀZ!€È¤3Ž À€B\_×8vÔð˜¦F¢±>}z64Vgf¸01`ÈæX¾Kn´»{-ÿâð /¯«©÷ýãÿPˆåý>ÖÕŽ¥ï½»vë³Çça¡óˆ€X#UMKó75·/Z8‡ ?wº¡G¨¡Qkk.^*1 ã__¬ÍÉ͘zûøqcc$¿p bÔ»¨¨©¹íȱ ‡lim]ôÐwL¯X¬C(tFm˜ ·béÒ]¾Rúí·JDnnnþê›ΟåõÆ™/ªÆæÍö×{ß~óÅ÷,ºwæÔ‚ülFB!Š&QÊ8!Æ€rÎEP@ˆˆ"(å†aðX$¦Œ±„LÆ4§ºB_Æ…1Ýè,Á™€PÊÁ„1I’0†9¼š˜ IDATÙ™ÇNœ.,ì !œ>ã®’k× {äòÑÛ S'Žm«¯[»~û„E1M·¹Ý_¯ßz©¼Bk1Î_¼h·;”R!àСý7oÝ%+reuõë6ß:a´n0]§BpMÓ4M£”Aˆ-VÌtÃê´!ˆ[[šà6»“†©­eeæ3¦Oâ†éæ˜ p¨(˜`«Ó‹4`@ïŽP , ì†Â‘ˆÉ6✚A™®Èö§›¾â«ŸÖoøíÉÇ‹VµT~¶bëCsó««J¶ïX;qܨÛ'ŒDÕ~½»_¼Túè™I ñ‚ÍÐ UÕ4ƒQÖÔÖærÚû÷îš™’r¦¸´½#òà=“õé-)ò­ãF@…@¹]¬gCcã'_|c³Zvý¶«ººº¼¼ü؉“ŒwÜqg[[‹ªjñw¼Ïg·Xöë3qüØe_|yßÌ{{h¡Õ¢Œ6mÞúæûïßs×]»·ý"Ad2$«kê>^¶,ÐÑþîß_óù€" @¨±µ èONAaL4j¬Z½òà‘#ï-yÃåpPC×5͈EÚ[›Woü%‰Í¿o¦L°7ª¹¥ "RXØUS5ΨÕ5U툄jëêÛÚ‚ªA¹X²}ÏÁÁý{šÑvë’ïq-.½}ܰì´Ô](3¾Y»tÛØÓ&g(d%BHaޱtøLåÇJæÌ¸Õ—à:pì,„bøÀ^:I>×G›/!)##¡®!ôþòŸ)Gœãm¿ÿqÿ´)6‹,‚0j†ÑŒ|òùÊ‘Cöî–ä Œ˜ƒ 2èlñÕÊÚÚ&É6¹¼,2ÎŒÔd[LÓwî9ÉHMõ1e[­VÊbÑ2Ó=i©qœS!€`êGoß͹Áõc â\Ie—´ô@$Úì£Y™ÉííaJ©Çå´9œ“¨ªs¨ºã¼Þø¨ªÉDú÷}B‹[šjz -@ܨ…þ+HÿOÌÝNçäñ·HK2Á¾AUC!¦bÔ\¾\rêLqîþžÝ“!v7Ôw<ò§gŸ~úÉ’’’ÁƒÙlN—Ë•ˆ "£T–dĸdµÉnóó/~Z0ï>Î…®Óάm€ˆ„ jÁ •”AQÎ8‡@`ˆ#( €pS³RS|û÷·Y Þ.¹î­¿«®ŒÕc˶s™^‰`ŠÅ&8LNNüî‡ £GY­6¥ô†ƒbL(c@ÎEk[à­·>~≅"ÈÊ2r{°Ýæ‚PIHHHÏÈ8 ›Ó!ýñÇåk×Ê£óæÍcŒ•––Þ}÷݇Jõ§J4ô°ÅÂV JO·Ì3âöÛG57GOž:wßìv»­³¥É¹™h¦±s ©k=}öBnnNœ×ƒ Fˆ N玻"‘XÏž=€±hÔçá\@ˆo„Ù"„ÆØL^$ "!LêšdEžp˸©wÞžœ·i˪×çs $¤QSŒ’Ðû÷}×jkë?iµZGŒ!ÄD:´g,ÖøËÆ_»Z­Z‡ m¶ç.›8áji"855e釟vÉÍ@‚†ÆŒFÕÍÛö¬^»EÓÙ‚¹÷ÌðžÂnù¥¥¡P¬KNvL£/–¬\õSiiÅô铟~|QfF*ƈH!pCþÚ™ŸÀÿ׿~Øóû_}¹4ÎíºT\òÉ?¿yø¡ÙÉÉI7Æ„`釟ÿ°fã Ï=öË–ßúõíùÚk–%…bÂádY"DÂØÄ‡B„ð XWgEÁ„HÄüM¹`eŒ1J ƒ§ÕuƒÌÐ J™ªj¥7b¼Ìо3Õ„sŽä\¸œ®óŠã¼º®æåfïÞ³¯ìzÅm·>¬åœAÔ³G7{|œ#)Y‰wCB.]¾ÖÐØt†>|èÀY÷Üyû¤ñÝ rûöí9lØ€½{Ü:adQQººzLä¤ÄD5 …:nwœDdÝP=qq²Dt2ª%¥¤v>^nÿuËíì×§0ËŠÂ9Cˆ€à±¨Î9Œ§¦Ä3ƒ3ªSÎÕ6'gL×t]Ó"‘°Ó¨aj7,}{u;pøbqqùCó Ž¨=}¦î‘Eù¿ï+õ¸¢éi.½Š¤øSR|E¶Y«Å*,I²Å"»ìƸ?Å——›Ÿàî–—3|@oYQ0!Èfµ:Ý^ŒàßßýØŸšòðœ?ù×òïW}íhõ{‹ŸxtÜðáÔ S'Ošwß½}z>ýØÃõ [~Ýùöë¯Íº{ª,ñ|ðá…K—Þ|õÕÝ â<^¡ªk«Ö¬ýô_Ëïš<ùÑ…ó0‘:ròÌÙ¢nÝ4ª]º\çñ¦&&Œ!!5õu/½ö·¸¸¸×_zÉf³rC×ÕX4>{îü—߯éÓ«hÔÐþj,¦iQ5u: Þx$$( aZ,¶cÿáå_¯--«@¬ÞøÛ¾#§ûôè2kÊ8‹${Ü›¢äf§ß>fðÀ>…6›='=E‘dÊEvzÚ˜A}=.„†$E$lHHE¶‡õ/V Lš7kbñµº7ïïÓ-¿Oa ·ãœÇÅyã=]çK>Y=}Ò¸ô”¤3/§¦øs²Ó$IÁ˜ DbšQUÓ°ü›U·ß=?Ǥ£Nt:¥&¸«ê'æs !â¼N§CáID***èÖ£kfFjf¦ßŸœ”èsúâ©I6§ƒ@È„•U mœò]{¯´´†¯—·ž»TÛÒ=|ª4ËŸTVßrìÜeBPº?159Ñív"Œ[Â1•RA)khhé©þ]»ö´¶¶þÇN(@zvW7ñ¦¦Ó€;™Ôÿ­Q`³Ze‰˜ön3ýΔ6BˆÌ/ÌòÈÿþvÃß—¬ß»ïÒ³Ïóìømÿwß­ÿ`é_“’’€Æ@ ½ãàÇ¿üü½¥KWÜÿô˜&bN0– @°Ze`ŠŸ- ÆX’ «Õ.(ãœd&7]§Æ8„Pp$|³ÉÜ™–Œ  D8§âûF!2$XQ°7ÞSRr­=О•ž<~üˆ]¿íûlÙ×}áI,c€T$@H©“‘#†öë[ÔÔÔÊs¹ˆÊ™™ºì²8Mxwš?]–å²²Ê1cÇɲÜÞ®š ŠH$Șd‰„-VK45(•e%8q楟"H¾^VÕ¯_/„ÄÏB™p !E¡ ÁÂ\P î…C tÌŸ3{Íß½÷ѹW^êµ|Å¥•?”¾¸¸ðï_LI¶zÜr°Ý‹ œIB‚ID²[ãàÌùË{ž˜zëÈüìlLHfjrvZš€ €*²Åãñ„¶ý¾ïriéº/WÄÇÇ?uº#Øö삽¾d§;îЉÓӦܑæO=}öüèÃ_xõïÁPxÍ7_f¤¦,#Œk*®'ÄÇϘ2µ®¾~ð€þ@ð½üxÙò}û.ÿà‡Ýúó–mÛvì¼ýÖ‰Ó¦ÜYÛØX]SÛ¿O‹EA·ïØùåwß½üüszõ‚3Ã04-‰|óÝêÖŽö¹÷Δ ´µ…Âjh6« ‰±ˆªi‘…`5ºd¤eø“GôïÕ´Ô$߃Ó'tI ¨*ƒDºoz»…0 Œ ªé.;°ÛœŠƒ AÀQäG.8~íéã,û›ÿÔ-/óé÷*²Ì(cBh3 ÅÐt&ØæßŽ§Äûr3ÓÄ%Õ÷M»BDˆ„ Ä9(-¯ü|ÕÚ‡˜•䋇pjÑ™‹‚`\@ˆžZ8㩪vþR‰Ï—˜¯â°IB˜‹£Ôà,&cœ!"áжíg‚áXZrœ®ÓÆæ E¶––5WÕ´=SR~à蹞…yŠ„­v[(V5=;;×ét[m6·ÛãMHÚ¶í×`(ìO˨¯oøOk;lm­4üÖo•Þìšlìÿ±ŒÃád‚Äš…¹d˜–Æ牻}òðm¿ܳ÷bkÛŠÏW¼b³)òÏ”ä¤-[·ÅÅÅ¥¥%çdy€˜àH[¬2åA Æø†ãMŒcŒÆ&Р\pN¶ÛdÃ`6ÃÁçft;—0A($É6÷Á«×n|þÏó_x~zéõ†¯¿9þìÓãÒÓ⃡*_<Ñbn›-AøÐ¼™O>û÷AzgçfŽT‹$ƒˆ°A5çðäÉs™Yé!»Ý‘à\om ØgíÏ¿ÔT—Ü>©¯–@sèö;¦”†BAB˜˜˜øøã9{ö•¿¼pðÀöŠë—ÓS½œ1 `b0Á°€qÓgL«ªjŠ3kü›5„‚14ýþ8Z^QE *°X,7 Ž€3îºzµÔãknkmn ÄÅŵ¶‚¡`{{¸±¡±®®¶®®©ªºº¶¶¾¥¥cäõÆûýI99¹y·Ož”Ÿß%)1¡µµ%11Žs B‹(Ä "¡¥!4tè°¯¿þú•W^ùð×.]j±ZÜSëüãðùné=,IYBð‹e×SSÅz¥¤´oŸ^ A²Dì6k$ª8xìèñÓS§Nš0~Á(è8wþŠËíô¸â8»é—©O<±3ºñ—O?óºÍnéÑ-Ïá´¦$'GU#-=!´zõ¦½û{½›Õrîâ•×,·Û,KÞú´=øê«÷%Ijoïpºœ‚2ʸ"ËkWÿëô™‹_~ùAf†Bh ––^/(È“ÂdÌàaží0ÁÊPƲB˜®SMSuÝà\P(¥ØIr!äŒ !b1Á9ǦAl²!ãØ¼}Bsgì¤üh ŽFñn×Ò¥;BÏ=ûx÷‚üãÇN··îšzÇXŒ –±àa €ÀÛöL›5SÓ9ç`È9„X’°@øþ{ï>pðè˜1Ckë›ÒÒRµ˜Ê5ý¯« F­V›®1ÝÐb±¨Õo³Ú96‹cã¦cÇŽ€¯üaÝÌSÍÀgÁÌ|J È¡€‚ óXƸ!(£ˆ!ã! ˜™Š‚·>4ﮯ¿ûå·ÎM¿+ãËo¯îÝ_ûü3=?ÿâÊŒi.»]ŽÆœc DBôó–]íÁàœ“ƒá0Bf®k9AC¸vÓƒq·ÛýÝšõKßxÍëq}ÿÓúóÅ?üÛ˾$¿Íî@X*ìÖÕ—àkhlôû“ï~`Îìiw?Om}UUMKK«Óå4Œ ±sf—Xýý^~ùÙ'žxäî¹ý¶[—,ž—3++ ÀŸç8BHm]SxD8ˆŒ°†1‘AÓ´‹=ùä3«W¯ÎÊÊâ8nÿþý²,K>9//#!>棿|ûÀª›DŽphã7?¬]·†…-[¶=xﺉ‰©}Î)-‚OHˆ+)ÊŸ•™1nïè±O8&SÅ…+_»…1pÏÝ·jEÍ¡#Ç"_¹Z§×kWß0ßh09rîÛï·nÞüËÔÔ”}|âäéóúÓcß|ó³ÇëýæËdEyþùwãc£Ÿ{ö1§ËõÌ3ŸýÓÛã¼ XÕ¥Ðàà£N¯(„ú÷O¾zô‰#ÂÂbeY¡”¢¨*.UnÅSêñxÝnäSTƒùoP\ULC Qd"Ë £×ŸL¬ ÆHßÀÐÐȨ¬(<ÏóBˆ!fFˆòÏ¿^²x^@ 4&&êÂ…ªá‘Ñøx›ÕßTÑ/€×‰o*³F­B«Ó ¬ø¬¬ÔŒŒŒþþ~û„£¨0ßçu{½N ¡Ìç•x^0[ü|^¯cr@`0h z=æ·ü¼udž 7;v684H•Î#@!† ± =t9}aŒU¿R¹µˆŒ›ñZ«€Wˆ02&ä…_¸ÔÕÙ9¾êÆð-[ÛÃB´KG8Øm³"jPRÊ($Œâðÿâü,ÌqŽ–×7·GF†Ç&ÆÆì““À€ÁèÿƇŸ„…„D†…,()žS\pþâÅÏ¿ÝòÁë/ÆFE‰¢ŽŒ9½V+ËÊ–¿þëÛMï¾òò-«Wiµ"¾îŠ»TUµcç®UË— Æ÷>úð؉S|üw·Ý´ú╪^{{t|쥧Ÿ\»òFBØåÊ+éi)QQ‘ªâärMÍ+ߺqÙÒGï@y PBdŸ×3Ø?¸ñÿe¥§f§»}n¯Ëír9!„zƒAàEÌs# Uˆ¢ÈŒ «535%-9131¾(/‹ÇcNà8ˆñÔäÔ”ÓÕ=0àtKù³2ï¸uUjrRB\|RBb\Llœ-:2<81.ÐÔ50ôÓγ&£!=ÑöÅæ”ÂÅ¥Eé)‰#ÀÂ!Êñ”¥¡¹uïáÓ9©)yY)jó®µ£? Ð?,8˜ãEˆ0†è§]{—/, –$ Du’3uU”R5t<>1µyçþŠË5öI‡F«OKOŒ‰ŠLKMÌÎJ‘d¹`¤¿8!Þ¦Õpjéä9qtÜõò«[N–·Lõö9¦±ÙlCÞ¡!ÇÒù[wŸ¶O:9Œ ò31‡( ƒ^`5™ z½^§Ó#Ìñ‚Æd2ÙíUÕU.—ë?£¼²Å¢¨ûO„3ð,ƒÿÿZ£ju½.Œþÿ®„þ ÂÃ! d€©õ©s¤µuSÓÎÏþþ~o_ÓÉÓ矼úô“ÒªK!´>ûÜËën]»lùâwßýsTtŒ,¹)ƒn„Ä¥ e´¶öÚb¢(¥”„0Æ€\_. ”©gp¢PJ ÆX‘‰,AœY*ñye^À>Ÿ$„ªóÆ€ r6¬yæ¹·‹‹ÂCÞ}zɽ|¿oÿÕËSwüZqï=³!¤c#b^®ílyÀ/»¯\±Ðb1Qyžs»=­Fxu¦2gNÁç_lºyÍJA€Œ B˜×íÞ²s߆[æôN­XóL{g?„ ¸¸(;+óÒåÊ––JéñãÇ›š Ro¿)/Øß,OûEÄǹ§Y_G}wObBÌoR¡ß~Fêçë_ÿöïÝ»MNM¦¥%ÿý¿òs³º:»ìv{RR<% BÈó¼ÚM-SüÖÛ®[¿¦µ­=77óÎ;ÖQ®7HÂhß¾Ãq±¶”ä$žãUå! FÜmî³OLªþ ¢¢ÜË—,^4—Q ÈYýª2 ­Š´ââl¹¹y|ðÕ<êo5ŸòÙ[  ,™?ï>±EŸ>w¹ºú¥Àb²ʲOVè„cª®®)88ôrÕÕƒŽå?÷§'Μ9ÿóö=Ë—”¾ñÚôZÝê•‹8µdÑ\«Ÿb|àÀÉ)‡+44¨²êZ~Nö“O¾ðÕ—Ö7´¼÷Þß_~ù©üÜÌ©Ééuwròû-;\N—Þ   ZyÃâÅ‹J*DËÌÕ$ 2åÍמž˜rtw÷‡E„YL†ô´¤)Çô[v¼þêÓ*ÌAÕ 2Æ0‚0žÇJ©jC†x ‚&6Æ\_ß’šL)UˆÄq“ 4MaƨOòM:„˜×'é´Æòó§32’ûúFjjêÿôìã”Ê(†¡´±¹-5%~ÛŽƒûðßpëªâÂ,J`ˆÃŒ¨9}Ì©y„ ")3ìM)Õ¸Üáwßuû—_ÿzòÔÈ­kbÿñφ?>‘¾|Iø©3WósM^_!æBˆÑd¢” ÷†•ëÞûäû%e fçÊc’ŒúG @ZQ¸uÅrÂXWgÛÇ_|ýÞ+Ï%ÆÇsœ Ú1)‘=ïŸ6¾ üáóO#Ã#ÇA€c^ŸôÍ[´Í#÷ÝýÍO?·¶¶®^±¢¤ ÿìùó·?ü;½Nûò3ÈLKGö •– ¼‚þû›ï¯Ö׿÷ú둨4 z­¡ñÛ6_®ªî ð/ÉÏ Sˆ¢Õj€óˆãfhùt&“ƒ9ΠÓý†‰LQd…Àq|wßð«|Ñ?<\˜›óý?_MKI……! ''Çu ^kD‘Ü£ã#Wêú×­*Û¶çL{×@iQîm«–Å„‡¤¼…bœnïO;ò<·~Õ’ÁÑ1Y!¢ †GÇó²² ä£* ¤ÓÓÓV?Eö¦0  LaªîÑFœ´˜M¥Ey JóƒBCTª Dư§w°©©£¯o`ëö<´QN´ éD­Áí£k—Í))žåoµrûüû¸Øhžã¶ü¸crrzÍêe÷º}®i—Çíq9]n·Ûç“)%ACÙ‡BÆa„Л1‚B<3 àyAyÈaŒÁ·ßm›˜˜,)É5ÍSÇåÊ«u-×®5üõã•”Ì2µŒžÇùÙzƒV«ÆÆíLñ˜LRL´ñÌÙ«ñqƒ©)‰"™º—ª²À9Œ„<ÆF‚ÏaŽãy Ç£ï~Ø~óM+ z½Ûí DQI³Ïi´·ÇãpL*²d4š0Çëõ&ÌñŸÿë«W,øìóïìA?3#©WAÈìö©^ùshhp}}KmCóØ˜½¾¡enY±N£RT¸+£Œ€ŒB„ Â@6#€ä(ÕÎÊH?[ÑârM•…~öe}d¸a~Y(%Q ”ˆê.3Ru!”ɧƒ\b¬mv^fEeõŽ}',¦°ÿ°ˆ˜ÈðèÎîžô¤„äøØ‰ñ±?ÿúɇÊÉÈЈˆP!Js[û_}sù‚¹Ï<úˆÅÏŠfÆ›¬®¡é‹M›–ÌŸ¿ ´”RÅjö[·zåÐðÐóon¼r­ö?úȽwX€Ý=²¬äder‡ š˜šzõ÷,~æWžù£ÅlŒQÊ.VU=ÿÚ[ùuÉ¢…·ß²vËöí#c£ËæÏ”@̉‚ˆ1¯òZÕ½SAyQäxžG˜2(S¨"Ë^FUX1Bþ¸ûPu]£-:*!6fßÑ·­¹ "Žª’pˆ¬0€††í Ím¶¨Ð®žo¶N‰‹{õé‡×,]äïÇEœz6cM]ÛöÉʈŸr¸Z;ûbb4!¡©½3-%^oàUoÛ•ú†Ú¦–es eYb„2¨Ú|fl« ¥„I§óÇæÍ.NNIÞuàøÙó—¯547µt¬Á m]ŒÁÉ)Ç¢…‹C­E«5Œ~Z­®±©½´t¡ÁäG(çtzºº=ÓÔÖ©v4‚’‡ä8ìñøFFí‚Fc4™ìö‰K—*›§§Y™³ìvûðððR?“³ 5¢æº1Àfæ3šeö¿Â]¾xALtÇAŽãTïú #¬îRÂü,þn—ûÃÿi2k³gEß}giH‰!d±èzz¦Î–_[¾bé¢Ee=ØÈ ÔçžÆ˜Hßyç›öΞ3g*""Âm11˜GBUŇ0£È’,D@Má\GgëU«ó|B)e ¬PJ‰ºVK&½Ï;v¹²1#-nÒa¿p©«¢¢=59<&:BrøXu|¼!™C‹_ÀæŸö,˜?[Õ`l00%ŸÐj5ƒCµµÍ ™0jê›-fKgw_OOßêå £í]¿üº¯£³ó¿åO ÎËŒ~úž9ç/w$†¼HñP¯„øêàñè8ÛÝ gTzhhpôÉ'_:[~¡©¥mrb"Îfó÷÷Ÿ]’—œœÀóÆÏóö‰ÉÖ–ö‚ü\µÐ"Õî(„çqFzšÞ ëéî ³˜s#áðÈØ…‹—ç–ͦŒéu:ѾƒGúúââl]Ý=:­–ãp}}cLLŒcj’RªÕje(ÈÐ’9sx^ŽÛBË–-+))ž_V*b~r|ì­¿~\^qáŸï¼Ö?jÿãKo”•Í9[~^–” çÿô´Å¢G mþqÇµš†„„øeË65·6Ô6.[2÷–›–‡ûûdå¡Çžÿú›íÑQN—ëÙÞÛ»ïhm]ctt¤^£c€U\¬..Ì]²¸ìíw?ŽŠˆxì±{ÀSSηÞùøàá“ù9V¿>üôܹ˿ü![L$Ìéò<ÿâ;û/(˜ÅaüÏ/6q¼ðüÓFGEx=¯×'Ë’¢(*#B4Óƒ@€c PJ %@Õ7$Ä ŒbAŽxóƘóx=ûšÖéuÍÍmn·¯o°½³Ûë•Ì-ô÷·ªƒ Œ d€ÃX¯ÇÝ]­f 2á”áÒÖÚ™`³ø™U ×ugµú×=êLò<§ÑêÜnﯿØpÛ-§s0†¦”‰¢^Ôh=÷ä„]¯Õð}öBk[çüys¶ü¼Ó'I@É'äÍ  õ*ŠB˜QÐÑÑ«×é €˜Ã1€cˆççØNœ¹&ËÞ˜ãÎ}Îi_~žU£ñBV"€2àžD#}zâÓé½VÔ0))<(>*r÷ñs]CÅÙ¹ZÎNOE„™´Zûød^î¬YÇS……(ŠäóyG–/œ?» «ºT \>×¶]{;º»îY·~llÄßÏL)³O¼öþû§Ê+¹ûÎǸ/,8€QÜÒÚª7šâl6 !B¨opðý¿ý}Í7ÜrãJµÉt¹ªúÅ7ßÜwèð·­»ÿ®»‚ýýÌ–»wŒÙ¬Ö”„8A€ˆÃ¼ Œx̉¢( Æ"Dc”8Ý®þA£Þ€! ÀA„*k›"ÂCn]½â艳ZvÅÒ%aÀLVˆ,É--­[wï/+Î;éÚÖ}§²Râ_þã#¶ÈQeLusÊ„F;{ûGÇì-™‰ ™)ɼ €Äî¾¾„Ø­VDŽOì:|üá k0¤”Èõ3•Ê`2Œ[»¿øîGk€woSSË#Þg³E·ut™ÍþIII)©IsËæx=žÔԔĄXŽãt:ùŠK¼ ŽÖÕ7VW×ÕÔÔNO;91:>îv{ƒý\._Hp@b¢MMèj4ú°ˆð”Ô´ääT‹ÅO!¤¦¦vbbÂápX,›-²¥¥ÅnŸøo¬ÑìA@3¤{8ÃÜfPÕÀÿ•­Q?3BA €ˆ!ˆRÝcLÄ퓲BN½ârN¬¿­85EÏ!…çÿ¥L!ÄårjµZ„enžƒ„ ¼ —d¥Ü§Ÿ½y¡¢îÝ÷?ݳï`m]ƒÉ`X¿þ^@2-‹1b Ì䤀 ve¡¢$Tõ5Î2!QŠ0b«WÎ~éõojo[W¼{OãàÐÔÆw÷n|íÆÜܰ˕]K&CQÌ“xôè¹òòËóæêµ:A#+’jŸq:}>Ÿ¼víê»ï}lùÒùÙ™i®iÇ‚ÒÙ‡ŸJOJIqLM9œÓ²Bæ•54¶¾ûþg÷ÜyK|¼Í5éñÉ¥ÔhÔ#ˆ;»z.]ªf€=ñèýsŠr½>ѾýÇ9™•>6:vábÕ¢ù¥Üs[@€0Ä`&„ T{YŒ©ŠuFJ)SY»lf†®ëG0!,p ¶¾Ååž>pðdsK`ÐnŸ°Û'Õ…Œñú[VîÙwÄbµü‡0H†þVmjZx]mCFVÈÒ…ño¿dîÜ”6ÿòüsO¼f0ªðº`ÎÿËJâ.]¾š˜/ ¢ÇåpL8&c cNÔè™zÝÀ˜(ЧÑéL¡cÇO…<|êoyC& 0œ¡(S:2j°~øÑçÓNd@“2£€fP=uSàöz7oÝyèЩ¹s e=z¯Ès8ˆU„TQLxdÍßþ±Õ噞S^U3âtÕ<ñP‡(¢ HÐç!²‡hy^oÕ˜L¼‘èŒzI´e¦¤–_izü¥×^¿ÿÞx[T\HP{GϬ¬4Ng”É’Ç+˧/\œ“Ÿ LMJ@ÊŠLJy:<6öý¶‹çÍËËÊ’eob|Âô´ó³o¾»Z[wÿÊJ 9ŒªÈ2Řëéï3Z,Q¡aêå{dttë/¿¾ðäAÁ€Ñѱþ ¶±á©ÇËÎHÿàïŸüñÅW0‚a!¡„0Êè¡“§oX4(â0€ÐÈ #E!ŒQYQdB(¥g/^îìî»aÁ„ c”("Æ x>6.<:2l`x$À? »·W§Õî9pxhtÄb4`Œ÷9|÷-«^|÷ã¢ìÌ{o]ét{Bü­²ÂeL!dI¡Œ¹<¾í{µ´÷,›?;<8ˆR0jwûùC`L5žã‘¢ª~¹Öа~Å<ˆ‘!€!ĨB¥” <åò}¿cgßàнwßY\Xàö¸ûý3‡Ž¨¬¾:=휰OT\¸<嘺û®Û­fËÔëóø|cÔåt^HINRíèèüæ›ï £ö …ŒPIQÎåªÚììTÂ&³©·wèÂ僱Bäóù$É—œ”d4ûúú].çÔ¤Ýçû¿ õŒu)HíÎD¥R÷ÓÀ*XVýF˜„×=GêËd²H’Âÿ×=šÿñ• kWøv}&ˆ! ¶àÕ”Z]Có?oßøêóüýª… ヂŒp‡xN8z¼òìÙ+&£cœa±X ð!d‚$ »=Óµu­ii©)Éiwݹ.,,ôùç_;uæœLäYÙY¢(@À!„)¥AAШ§QŒ F#0À0B1µLŠVë`#¦Õð8¡`ÎUXøö»¿ÜzSzRbàÑã-n·\y¥{vI‚}bÌlÒu:‰C´  {ã;ß,^T†0" “%0æp¸9ŽÃ……‡„¼±ñÏ€ää„РàÁẺÆþAŸORd€iDF#2BÔï˜Ë­TÕõ\iëq:jûGw]­½ÒÝç–•+]m£csÛ~Ù›=+AàõxˆB €>ŸG–Y¡ªg sH’d•z®Õj~úiÇêU+c²,«óD!H(ÑhD«Õºù‡­%ÅE!¤È¤»·§§§oÎì¢Æ–æ¸XÛGzæÌ¹X[ô}÷ÝY_ß2ZŒá¡a{öîOHˆ‹/?W ˆInŒ5é"""-sxxdtDDkSÓ+¯½ùé§ŸÜ}ÃÒœìôí]°`îÏ[wô ••–¼öòs))‰ÃßùðÌ™óI‰q{ö·;IÒêÄ@?‹Oö¹¦='Ë+>ýü{¯× rLMŸ:s!3=9*<¤ââՎΞŒ´4‘ORNŸ½ÐÛ;xçëLƒÇåõI>¢PJ¨¿Õ¯p¸¹¹ søž;×ß¹a­¢YR|’ÂñÂCÇâbcžþÃ#ëÖÞ¨×kÄ*xCˆ0˜ÑaªÏÄPJQT4 b¨2/B`ˆx«GöŽ‡Ã¾h^fs[×ä”ë·í-PNVbrRLG×@άt·Çí˜r1Æ´:‘1Äx&„2÷àÀpx˜!(XûÕ×çãbýFF])É 2¢2ö €a›¡›ªÿ>Æ¢ Š_ü{ÓÂóƒ‚7ÿ´õÉgÞ¨®©Ýñë¡sç«R’SSŸÏÍcŽufKÇ ^¯ïãOþÙÙÝ»áÖ5‰ñ±”BÀÀu‘ uöô^«mìB0ÈDA|î©GÃB‚ƒA0„Ø+Iïøé¡#§´ñÎÛoÚàxSk[IaÏs P‚Æ!D¨~AYð©3MÑQžïìrLMzÓãü°,!·ƒyú8 õ@ë°†×üE½^Ôè4Œ‹ ÉÛøõ¦üØ?“™c`Âé¶MŠ,¯{bbâ“ï7/˜S‚ ”}^Yò2¢PFÏUVž.¯xðÎÛCƒƒ¼^·BˆÝ>öýö_ r²~ÿÐ}±Q P™È”•‹à˜rDE†C€‚À¡á/ôø¤‘±ñ ûÄ£O?½°¬ìã÷Þï\{Ç]•W¯J’äóIãv»$I¡AAýƒƒEyùá!Á‚FÔëtžÃ!t¯@;{{?ýjñÊ…s)cÆ`À‚ˆèñúZ;»“âl;öJMIºíæÍfc^άy¥Å”í»ö„‡ÆÛ"\¿*oVÖÔ´³¹­» ' BTL"ƒ.·wßñÓŸ¿--!yÍÒ…Zfpx|ëÞCÉñ6“I+`(ŠH+Š=¡ÁþƒŽÖÚÑb e”2F(”ª€ ¨`ñÂÕÆÏ¿ß’‘žöæË/Ùl1ªcÈl1¿ù'¢(ùyí퀾¾þÅ‹ ¢¨B(£DniíüyÛŽ‘ѱΎ®kµ×:;»>öï/¿îèì ôŒZý-##öî¾’ÂYáÁ@žÃz½19%eíÚ[.˜?»¤$/?'!1žø«Wj†‡GBÑÑá]]=®ÿ&c‚iY…‚ ùíƒl&_¬.ø¨-~È‹ŠŠzä¡GKç”®Zµºªºê: FDéÿó² ü¿Ê#„ðÎu7[Ìfˆš$T—RŸ u¾üö‡²ÒÙË—ÌçE#@!Ç‹HR´ŽiωÕãããþþVŸ×W×ÐÐÚÒ”œdÀÐätK»w+(ÈÑéL ¢¨õ·&§¦t÷t=rª®®Áë•¢¢Â ‚ 0@!$ŒÌ!¡Bˆ(b 7“ñ‡Š,38) …)Š‚£”qx7c(8HóÍ·å÷Ý[h=u¦Ùå”Ý.÷ª2ª+)ŠÁˆˆ4:Îå$uEÅ9·W5CEV‚f‹i $)1~þ¼’Ÿ¶îúyëžá‘a[TDdHÀí«—¥Ø¢0Çu÷‰¢¨×j§N…(jÞ ,b¸Æy_z¨OJòÏ‰Ž˜Ùa¯ïìé(räXw~J"2Ç1] Ò…Dˆ~‰Cæµc|Ä7BCfAŒ 9u­17Φ…¬½¿ÏßdR¦&ÜSS‡GÆí•×j“l”*0¢(§+.‰·dÞl"Ë>YR»Ù:­6?+#2,”1¦¢( œñv!‘Åb ©G@¨Õd˜ûË'Ÿ¾ó׿-Y8oýÚµóçÌAÙíöƒÇ;¦§ÿ3Z¶ñùçÆ''ZÚ;n\ºP#/̬ù2Æ(õxÝ;öܹÿÈMËø™Mã“Qaaã•u þV?AÔx%iÜá¨mlÉÊÈÚµÿP|lôü9…”(InÏô›ï}g »uå’è° £Ù p8ÝÕµMsòsa…¶Î¾Ÿ|¾ýºˆÐ ¯ÇWÝиeçÞµ+Ú"ƒ¦˜CÏq×ÚÕìoÐë)U::»"BÕV(cT¡L¦¸¾£ïÓ¯·L9|âñåK`Žc¨.ôààô´Ô«W¯ö÷B!Š,X­~’$I’¤j2ãââÂ#B-SDdxcC³ŸŸ___ßô´“¸Â‚¬° ›-259>0ÀJ…(ŠFÔ‡øù* q»=‡cbrbdddzzº­µ}|ܮш‘á!Ý>ßV+˜šU(h43 ™)óÌ}qÆÐ­V²ÉÉÉu·ÞñÈîZµfÝúÛüÎ/Wÿ¨Ûåºuímí’äû5Ïl6ët:¯×ûŸ_¼cÝÍ~ q@Â!ˆ0ÂuLH¡äËM?ݽa­É`B@$‚0Âk´º¸ØØuë×uv„‘Åh((Ì Ðz|ð__n[¿~uUeýÙ3—’“Ó8,`Ì'&&,[¼8??'+;óÇŸ¶UW_›?o¥B$<£cŒDÑ™…!ˆñ̤ôúlŽò<ÏÁ#èÌåwµ¦cdtê¶uɽ}Ž†Æ‘îžÉÇÉhlòú¼ÉÉYæ‰ m¶¸Í?î ‰ NV /"„E­@f4n[¿:59¡©©ù“Ͼ>pìTOÿ`u}‹Óí•$ß”ÓéñzÙŒäèyá¶Ì¤›m}>iw[·–ãkFÆC‹I·él¥LˆÁ aáÂùƒ……¡!áñ+*. <'jÄ~Ø¡P2:6Ž*›WlÐ(QêêšÍfcDD¸¢(úÛg‹ÎSeR#ccuõ ¥sJŒSUõ•²9s.\¼üÜŸž²Z¬:½–¶iÓæ_~Ù“—›—óÓÛæÎ-5õß|»Ùéô„‡D@ˆÝ>²kïW_ãƒ?”¼Þ?=tÏü‚\Ïùr)ôÝþ~©òJB|ì÷Ý‘š’àõJW®^nç®ý>INIŒÏÉN ô÷+?_9írA,fQ”Ýû K²Q ,›SÐÜÒN·O^«kÊÉN]³r1c@!’A¯7› jïWPF@1‘Ñl,*ȉ EF`#ÆCèg6"¤ÞÞ~ë±`µEÉ~‹âRÕ£.ÄõÜÈ$„¨ˆU7\.Ãá³÷ vv·ÖÔÔ76v*Šç­÷9r¬qF_ ¥@#òKÌJMŽIMMŠOèìêËÉNIKŽWƒü€"EBXX(9±3>Îj1‰»÷5†G„\½ÚP\˜‹†ª”[mk fâÿ(bÅ…ËS·sÚQR’äÈ Ç´Ól4”Î.ôú¤‘‘1·ÛÓÙÕçg1/X0Ÿç9¯Çóï/7õ¾òÂ3~f³Z­Æ3É`¿ûq{]}SjJâ…ËU¡›W/¿cýÍ×MkÄüe÷­;ö1Fï¿k}zFò³/¼U}¥vll".6&"®(„Q:{v±ŸŸÅëõªK×ññq‘QQQÖ€€´Ô”C‡ww÷ª®ÄÌô$„9N#œ$ÉŒA·Û;8<699%p|GW{KkskkK͵ÚÊÊ*Y–íãcã“aAf£¶«{@V”ÿV3 ØŽf@ ¿e)Ôg[}ÕÖÖ¬Ys³Åbh4š—ߨÑi/_¾¨v®9Ìÿé¹ËÏ‘$é·9üœ’yÛ6ït¹ÝUÕ•ÿµ¨ áí·¬Qw.8Œ9ÇâyaŒT.§k÷¡£·¬¹Qà5”0 D(j!!zY¢k3³r;Ú»†GF?úëÛ±Ÿ~>”•«×>qãê¥{÷) 1èuQQQq±¶¥‹çýðÃÏÁÁÖØ8%”2 ðª5‰¢¨È"¤Ñ"ŒðõàÄoñŠ”dC@Å'yEaš19#Õöé§"#‚33#÷ì»æó)þVÓ#Íúëßϧ§š‚C €³Y Œýú›_—.-Ã3ˆ0§€Xt;}²¤tuõ ŒŽŒ-_<ÿ©Çhkë:çoõÿú›ïæ-(qÞ¾c÷êÕ7õºÆ¦æÌì,[LTÿÀ@Zj`,9%ÉßêòÔ™;÷ÚíöÀ Àƒ''Å/\8÷«o¶<ÿú{GŽùà£Oª««c¢"þôÄc7/_ÜØÖÞÜß?ìpì=t ‚V+Ì›[²xÑÜéiçÐÐHÿàðÑc§®^«×iÄ¥Kæ`ÀÆíã—ªjU~©Óénlîô÷{âÑ»›[;§¦¦C‚/œS~î2eÌíö0À^zî B¨$I£ã“Ï¿òB81ÁÖÔÜV~îÒ÷›·û™êBŠN§©ºR++9Ïãqû8*Ì ‘ÔÐ7`ê¬[ ª§Æ„”@1»®è`„Àuö«Ú@œœzå¿üºûÐW›~úu÷¡=û?q¶ªª–ã  ®®Ûn÷(ŠòÜÖÔÚ÷ÓÖ“ß|pû/GŽ+»ûŽ•ÁA~êv£Q„A#NÀó=KE=×S[Û“Ÿ›ÕÔÜ1kVªº¸33“€A¨b0!`ñŸ}’’4=í\0ovDxÈ/¿îýÃïzðþ{›[Ú›ZZ æ~÷ð}¶ØXª(Ÿþó«‡ï¿;;+U=?"¨n{2ÀÞÇòsg¥§$ý¼cw€Õï¡ûîZ»z%†3·%¬†|éõ÷8?|ÿ]Å9¯nü`ltÜ>9%Iòú[Wš-f€àôÙŠ·ÞÿÇ-kVäçf3FA˜ŸŠˆnYiÁ¸Ãw¸üÚ’…Ù‚Áª ž§1a.€A2Ž !¯xƘ×Á ž˜šv¸ãýý•ÉÉÉÆºæúZ,aæ­Î©Ðä¤Uù!rH!dæšÆ<œ z2B™"Ë”„@2Ê¡€2J)•@)c€QzùjÍ…ªª§Og¤¦Ú¢"eå—.mÛµë:® FBȉ³åÛöì ´šó³³c„2·Ûµù—]Ûvï]·òF‰øÓÎåsçïzäLù¢Ò(2%^‘ã4íø„ãBÕ•qûdiѬ…¥E[~Ùçñzdƒ##½A§ÓBZÚc¢ÃEz½Þá‘Ðÿi¯wßÉËÿúq`ȳ¿âîÛÖ‡‡…RF!>I&”r˜‘D„°Á /ÈÏõz}.·;2*0ìóùE>täX[k‡Ó鮯¯¯««ó¸Ý“““—.^Wш\fV”PJc,ˆ<lj.×ãõÄ(‘ˆ"É ik뙜˜Œˆˆ ¶Z ²¬ôöª«‹ÿmÏ*fòs0uWµõ! ÿ±,30ØÿÑÇýó{^¾b‰ÅlÙ²ùç'ÿ”Á`xþùg Q®\­üË£Ù³ò*+/¹ÝNõ`X~þô›ï¼ªÓÔEµÿì î:b0F•ßxŒ”Rއ8Œµ¢†1FŽN|”Q¢`ÄI[·øeçéñG~ð¡Gî=q²¢¬¬¸¾¾óØñê~¾Õívõå?8ñèc÷9SyþüùââbÊBBªÑhzèî6o›[6cÌñXÍ-3J9Ì€Œ1!À0N½(@Bˆ˜"QFa UÏEaZ­øü³Ë7¾µ÷‹ÏV—F?Õ¶isu^^à«/.}ý­#o¿î)¹9A'NùïÚyäÎ;×bÌcÄI>25m ŸrØ’“fÏ^ìv»î¿ïŽ‚œÌ ‡0 ×jŠÒR”4444XÛÞ!)„RZ×Õwµ½Gà°Íߺ¾ » 6ÒÏdBZ]çøÄª­Î[W×–‘ž¼xñ¼{ï½#$$Üíö>ùÔ3½á†S °:¾¸~Ó…ˆa2ÒS¿þv‹$IÇÁ™•êòùQTC¢ŒÌᲲ⪪êO>ùâ±Ç ò7èuƒƒáaÅÅE.\ÈÌHùÕ7W,_Ìa"vÇ·Z­~o¾ùîåËÕ—õ:æ9H¨Õßú×wßHJŠå2èôӎ鯿ÿq羃ƒcca‘Çëinkè» 'N­ª®õz=N§KVd@–•‘äóxˆìëë%„¨clY–!D£³å{º`~V³ÅlLL´55w2ÆŽž,omíÊÈHxarrúäéó’¢ NNOÏ.ÎŒ EÍÏ[wñ‹J_zù]^Îyîéߥ¦& Tàyžãú^ý K¨æçÑLGªoÌq”2cFe #P¦>b2a1JÂØétGE…¦&Çù™MYÙ¶Ì´@ƒžhD‹Œ‡òÈèô¥ªÞ¡a§$AJ8ŽÃ<8 F!8( (0s‹ÙÆšy’ ô£> ¿¢½Ã¾îæ¤wþrñêµÚ´´˜ÊÊÚüÜ, ÆH…—Bˆ‡BCCÄCÃ#]=½&³yõêYNŒ‹^ºdÁ¾}ÇW¯Z}ëÚ5ÇŽŸr»=K—.,..Œ¹]Ž#GOÚ¢#-,U‹+3*𹊠?«yVF433#$Š(¥©þJÊÔ|ëŠå‹{z{\.çk?a@€f—äEE… e…>r¦³»û©ÇÊËK%2ÑŠ×  DaQóÄC¾Þ²ëÁç·¤%'§¥¡»ÿ¡Õêü­Öe‹,(-¥HLÉ30Å#yeûÔÄŠÒL_ÏädSoh$--­ËéÍ´TòÄ…†x]^¯ÏC¨<ó_Q£`Ú1n¶X5‚Œ†P]°ÄÅÇ&ÓV«Õª=aJ)€"Œ(^ŸŒ Èó™ééMÍ>óÜ–}>+3½(/ï?¼é§Ÿü¬ ‚ž¾~³ I> ¡ŸÙL©¢ÒÒÑýÉ—ßÆÇÆ¬Z²°¥½½('ÛçS¶îß[’—g‹&„xÇA1ՃǵE2ÀQv>îrËÜu»ÅdÔˆ‚Ï3¡È„D € ‚àñx]nc‚9…Q")ÒĤý_›÷¬X87:<ÈívÖ4ôðî 4EG…i4œ*ju¹=ZAÄŒÕ6tXýö-?y¡&3-ý—_ðó³ <7:>&)ÊàÐh{gÇèø¸¤È<χ…‡§¥¦¨ãQ£1™L¯z ˆã9œ•QUYuôè‰ÜœÜÔôd"+f³aØÙÙ\]}¥¦¦¶¨¨€C”’_6·´¥¥-5%©»§÷äɳ­Æ™“3+.&F§Õî?zì¹Wß*¿TeŸœRTJŠ"3€dY1™ ¿î:P_ß☞öz¼ôzÏ:,,(=Å6íröö ·uôz<¾ë&wˆŠ ¿pñŠBÏë+ÈÍ Tilj0Êj®5 Œ67w$$ÄÔÖ6ML:dÉWRœ[QQ]T˜èï7088:fOJ°%'Ç—ç•ÍÉOMI²XLÙY)aFg`C×çêjüÀ8L!”1fŒ)€2‡)F2Ï1„dŒ‚ b Œb(GŸýøÓ¯ÓR^xæ±²9™%E¶D›ŸÅŒf¦ÕAÏví«uë´ÚÐààˆˆÈ°ˆPKT„)!Κd‹ ò÷7êµ¹kõí?oÝ_˜—ÍVã@AÒë<ñq¦ƒGÚ/‰¼ti¨µuD£­­m…ù…¢(²ë'_ÀÅËWcmÑÀSg. ØÇíOýþQ¯Û© ØàèÍkV:zìÜù‹©) ýà]N'ù¼]Ýú¯'Ÿx880@d\ÿ54µŽ.œWÆ c”‰¼ˆð m@µ¼ F„Axìä­VWq±ºo` µ:½æ…gž0›L0·[êìé^ÓªÆæ–è¨H y­V+ŠF-æD¬å AoÆ‚6Vú©óõ›~Þ·c÷¦ÖÖúƆËÕWª®\½ãÖu"Ï3Äa(Ä*AF-p;]m½H0ÏLJ­éˆ –=ž+íI¶H7%ŒQ„1Ï‹*Ë´¢ºæù¿|dÐêlÑ Æ(R%Õ¹\ÞWþü—?ûçÑÓgEQL´Å¨³^ bR&)²$+’¬´wuÞtÃògÏVT^¾ù†L:ýì‚䄄ó•—Ú;º(û† sg=ýð=D;ݾgï¼’Âi§;ØêŸŸ‘~®ªrÒ1¾hnA€¿2ßÈÄðÇÿþ©­»kl|bÌ>ép:%…VT][¶`Þ/{BV­Xš“™Îó‚É`BˆQ*É2Ÿš˜œ5zJÙ±3g³32t: Qìõz|”ç„úæ–݇NÖ4¶„Yn\R¼|A^‚-"(ЪÕjƒ²ÊšÆœ´¸Úæîï¶ï;Z^e6[îYw3ƒ¨£«Çh0N¹œ§ËÏ]¸XÙÛݩъ±±Ñ111ƒijjèHMMeŒ¢H²orj¢¼¼"99QÔðgÏœ³Û'ÚÛ;{{zGGÇ>ÚÝÝëtºÔk¥´°p–ÕÏTSßÜÙÑ΋¢V+FFFæçäfEGFPâqþ¾Þ3:Ž*kÃ=©Bç ©•­dYÉrŽrŽ8á€É†8¤†<ÀÀCš!y“ŒÉã8çœdË–eå[«ê¤û£|÷®[?´–¤^ÝRWu}ö~ßçDöî=^Ãéн}¡®î~ùǦ’ò ª¦ÿ¦h‘ ÿo€¸ß·Fö†ãǾóÖª ã&̘1Ãnwƒý6¬ÿÿ¡¯qÎ éÄ¡(Ê-7]éñ:¢`ŒÁX!‰â)¡Ö‘@"Hü>ïƒ>ýÃÆŸΛëtr¢õ75·Rܽ½aM³S~ÛmOž«®YµêÝßu×ݵµusæÌéììt¹œ'N:räQl9ƒrEQ5"…¥ªÐ2M]‘ŸÙV^V–‘™ˆ’(£0ÆŒ3Œ±@!$Gë*‰¦_ûm]]cVfãœ2úõ·ë§O›$„ ”*Š"¸ • Œ ”QË29ãÇ3 óé¿¿PVV2lX€ˆ`TŸ»uûމÆ}òÉš-[¶iºÍîÔÝ.·Ëí¸ìÒe½½}{÷îÏË!Üwàèko¾ýÖ{þûÝ÷¿þîÇžÞ>Ã0Æ‚ßzŒ±sÕÂá(¥ô· @Œ±ÓiKNòVž¾pºª6÷õE23±˜!H ûúB¦eA $”i²ÒÂOÖ|ÏjmŠP¦§¦MÐÙÑÝÓÛ×ìŸwÑL]W.\hHKOùîûŸgÏœÌ×mŠËåÐmº®«ùùƒÀÀPëWÇ›”*!ŒÓ÷V}váBͨ‘¹˜Ä(í·Ìçá¸êéjmik&Ðr{0Ác Uƒ!( äÂ}ïÚ{hÁ¼1c†'Ùm!]‰#ß³¿òÀs'N48\û¾ûáÔ¦ŸÏlÞRyàpMõ…–óµ-õ­  Ý¡â jB)ðÚo·ž¬<7ÍÒÂB àH¢jq…°¢!Þ￯¾öê²››zU VW7L;$6µtCáÜœL)àÞþ ÙŸTŸ?yòÄH8$…p9\ë7ýR>tè ÌÔÌôôûî½+%%À öõ¾öï·)ɋ͈(„ÎPÂîÞþí;v/Y²À4âºnƒ ðT%‰R[H)%ãB …_yýmMÓ.ÔÖSSSLüÿžÛ†sΤ„ Æy¹­­==A§Ã±{ÿáòâR p›]ƒÄ%dLôô£†këè4 âH@0¾ñê+mº„‚ gÑä@Oì,(Tn€ ÁŽƒ‡Z»ºÏ5·.нMÓíº]·91„›yéÕh,>qÔÈ Ûv)ÈsÚR@ Á…†Æžzº½£ëɇB¼÷Ùg?lþÙåråde94ˆrfY B™–ÚÑÕŠ›FeU•F”‰£G(/»é–úÆf`vfFÅØQÝù9Ù¯>õˆË¡WV×ì;tìšå‹û‚Á™F÷†‚Ûöí­SV\˜MiŒR«£/˜äs—-$Xéí·¶wŸ«i>zòlGG×䉷îÞ3rXùœéÓ¤))ÉœÓÓgÎUW×í8p$³òåQJ)¥ûVVàr΢LXœ‰¾øiËî¹Ùé—-™µxþÄ¢ü §]—#€ V @ÈX4v®¦©§/ôÄKïM›0öî»­bÌhBHj }Ò„ñ)ÉIn§#ÅçÉHñÒRœ‡Óns{ìncPnö¤Š cÇŽv»£Ûw}¿þÇ;w),lnj¾P[ë÷ûg̘1iRŨ‘Ãóòr}^Ïëllj‰Åâœóì¬ô)“ÆädU_h”ädg54µ2ÎkjjÏU×ÔÔÔÖÖÕ××7?~òÀþ -‡ŽTF"QA^NºJ° ¡±3ÿƒÇX2|¼ªë‰D¢„ýÎïð¿b™ß¾ïééII,]rI<Wå½Uïý푇Ø8)ÌŒ¬ÞÞÞßy-\7\s™Ýa#8â“0Ìb‘H4"‹³6üÌ…˜>i¢Ïٶ퉧¿\°`TOohHá ëozÎns?òèÃ/¾ð²ÝnF£¡%K–tww1âܹs÷Üs7gœ1îpèXœYp¢$VȧŸ}3kæ´ô´LD˜€TEJ¡(HN0¶L J$ ˆ„p€1Ê-SHŽ+ØàLÆ l×EYqɧkw¥§«—]:bå%E#Çd¼øÒî cs}>å«oN͘>LÓ@ ·eÛ!„IvFú'Ÿ~¹ú£5%%…iW^z¦§«§|x¹Çç‰Ç¢Û¶cÏoÈ;‡]Oò¹“½žÌ´”´”ä‚ܩcÆÌžR‘ðÓ8íöý棌y<ží;öVVžýô³¯>[óÕ¦Í[0‚Ë—.¸þš“+Ægf¦¥$§ttô`$ÇétØ ÆÝ]o¿ûÑ–­;FZSSWPŸì÷"ˆ¨e Î…P:À»âŒc‚9gÀ!CrGþÉ'k·lÝTMs8í99ƒ¾ùæ»%K/öxÜŸ|úù|¶cç•(ÙY#G =fÄ|ÖÔÔâv;³²3œGGgçoÚãßcpƒ!DB TP0(;3Í¢Ô²(ÁØ4ÍÔÔä93'äsf®X6/-5Ð×LII Câ×î¿Û鏿šK4Mݹû0°Àqã‡[¦µxÑÜx4Zyú\(óû¼ãÆ KMñw÷+OUM™4"ÄgŒrÎcBH!8úõH\´‰±Úß_ûËÖÛwÚ¾õàÞý'ö<½wÿ©#Gª›;bñ¸Ûkëé v÷ô½ðÒš¼AÉ^ŸBU¦)‘´€þÕw{‡–¤L“N0E€·´t^wëÛvß±·vïÆhÄðW(€°ijf¦»°0yÄÐô²Ò̤dg°ßê ZDqjØŽÄ·lÛ{¶ºæØ‰ÊX4ž™™'9ÁÄr8ç<2æÌÌþe[CwwÔî`f\,%”RTž©ÊLÏp9<½ÁþO×|£ªêÕW­LINŠFÂR7)##3œ¤X\<83#õ>rôãO¿º÷îÛ’|>—ÛG¡LÆ£¦ñÕ·?\²äâ“'O§geyܾ,Z™€ÇI:;»>âóûlšJ¥¹µíô™³I>ß¼¹ÓΛ;jä°i“ÇÌb…Hüÿ'+«\NçVm}Ó¨ò4ÜIR±!DìPÊko{hÕG_gg Z¹ly{g—E­H4bZæ¼Y³V,[J ‚ nBçÑ£«ŽG¥b ]ç¡~£½…#/~¿áóƒG[û#£GÏÌÌ"Цh:â³uë_Yõa0?|ؾ£Ç?¾hæ,—ÓŒGÍ{Âf³½ôäãÃJJ'Ž»xÎÜP$üþgŸýøËV§Ó>8/@¶é"xdi©×ëQÚ{èpcsóÅóçÙT‰Ç4E»vå’!ùùë6üœ”ä}ë…Ç~/R#Øå´e§%''9·ì;`Qkú„Ë2,f ‰6nÛÒ¼AYšªæ4yâø cGW­‘L;v×¾É~ÿ‚ys%µõM'NŸêîéÛ}èð˜å%ƒ‹9µ˜`‚Ë#'ŽÎKñz!-( µÐ‚AófŽ7¢Àï±IÈ¥Œ0Ac œ9Wg·i€ƒ'ªV,ž—;(/fñîî^—Ó‹F‚}}Ýýá)@n±x$‡#‘p(î‹ÅƒšŠV­ú¤­­cÖì™9ÙÙn—K×µ-[¶gff´·uPÊ,ËÂG"ý¡þàé3Õ¦e€JŠòŠŠó0Æ>Ÿ/;;íd噕+Mš4~ôècF1rXiiQQÑàôôT›®¨ :pðx¢†.*̱­«kÕt[øwJÝÄýf舉DÕ.ê„u"—h;I~E0ËßnU¯¾þÊü ].ÇSÏ<9nü8]·ý^úŽ›n¸­?ª>î·Ÿ¸MSü–qB‚å!±CÎÄ'k¾îêé™0fôö{ÞûøìÑcgž}fev¦[Ót—Ûñ·¿Þsö\û·ß}ÅWlݺõæ›o:tè_þò—¾¾¾éÓ§­X±|ݺu©©©Ã†•iPÑ4.DbeQ{{ûë›SRS1V0!„ã%‰1’%ºFR"Î!˜Z” )$`¬ …”c jÀŒC§Ý«ºúÐýË|tU~^zJÀ7o–~êêÉo¿·uͧ+æÌÿò…7>ùä;öà} ï¼çƒ‰ãÇ=ꪫV^såÊädŸiPU·­:_Q1NUÕööN‡Ã>fôð”@òÞ=Ò)¡PØ4­$§¡¥í|CóžƒG௹‘àW™¾®i³fN¾|å²sçªÃ‘ˆ×ëKO ø|žÓ§ÏUž®úyˮƦæÞ`?!XŸWSÛ”’’T˜ŸûðƒwoÛ±{õ'_V9wýµ—¿öêÞxýŒ2Œ c AÀ,“R"$“ãÈw IDAT¸t`;ÁXJ 'éïOÿϹêšõ?nŠF#Å%ÅEC ½^_kkÛõ×^qÝ5W6·´644ž«®ÞððÌéS ó {oo°±±¹´¤xü¸ÑYYY¿lÙ¦( ¥ô÷ á¯voà÷yfLŸà°Ùö8 Ess³\ýÜù†ššà.—ž——SWß—ÝnQ„±ý²e—RÓ ósí6ýбSí]'OŸ;QYÅsØÙða¾Axã¦Úo(¿reéûUÖÕu;ì{”wuK†”rÎöì=”’’Ä8/-)5â–i2“hS§Tôƒ¡`_rJ†€ÀˆG{º{V}ðÉÌé“ósó’S3†c,Ê…Ü´i댩“¿_¿iæ¬iƒ²s(5㦤”%œ©B°uë73.—.š«Ûì‰"ø¦ë¯,-)Z¼`.€J!R !a  ­£sTùP¢âæ–V`U… [p¹Š²bñ Óâ<ú¯ÕŸ|‰ÅÛ;;=nçÃ÷Üs÷ŸnU!’À¤`ÜŠFÛÏ…*÷Z½~=%”a·BÆ9g\¶û÷:WRZ¦«j4ô¥Wv:"$ Õ·´¶uvjªúíæM#ˇ_4}ªD¸dHáCwÞé÷z!Fšª¹<î±#G¥§§‡ÂáÇŸáÈñ“Oþõ¯*ALJÄ8À`pΠ$Ÿwíºuu Mûœ7kêŸo¼~ÿ‘£ÿ~ÿ£= -*xù©¿¥'ûc‚YP²Â¼ô`°ûË[/š66-èìjœr„DR)`WOIJà·v— )òz3„}¡˜0ŽØt=nÁPè—­Û‹Š wï=œž¸ö²eH*†eB!’EÁF<¤B(%Cúý:&†”TŒ$â€c¤aD0‚")€`üÀ‰³—Ì|øÔÙÔ$K{h݆Ÿ†;´˜aÄ(£Lr%ÂP"Ž„àB0.dD‘\ÈhT„C8+;pôÈŸÏ›ì÷sÁ‡Š1IIIFwt´Çã.‡ÓÖß×ó+å )À#ŒÝvÍåqßzÓ•‰ï¾[‹[„¨LPιeZ‘H!éq»0&œs„g¬æBë°áCDMM­ÿv&D*BJbÀ1/ÁÀÀ…Ìœ>÷ç­Áïf‹mm­Ï<óÔ›¯ÿpÿý÷RØÞÞÞÚÚšPÆþö亮/\¸øšË¯ûÏ»oü~2©jª¢¥„@À$Æ“©\XC እ ¢‘Ø£½[Ú®ƒÛ_}åŠ@²@RWÛBt¼ÿà¹?üâòË/ÿæ›oV¬XQPPpà 7ÜrË-Ó§O{çw:;;o¾åÆ`0øÏ¾´pþÔ²ÒtÊ(Æ!ñóÏ;í{nvÆHH‰áÂT‚0HÏ¥BB ¥"ѳ…@bU3-&9“Y”‚"ìq37QÜãI¿ÿÎKúÛº7_]‚€ëò7ž|ç½³¯ÿëŠ{îÿèŽ;ûžîº@ eÅò¯¼úÎc<øèß4âH8(;ûÈÑãåC‹8cK—.Ľýîþ$0ØßÚÖ‘¸7¶´þºa $^'HNÏHÅ?^9uòèxŒVVUùÕ{÷Ž&H (Äítdef\±riA~vVfz %•¢(85ìõ¸§N™0¬´xðà¼?þbå¥KBŠ‚MÓ`ŒB—ŒòX4†ŠÇ-»]u¹4`IÉࢢË¢}½Áý÷t÷ضW>f̰ҒâììŒqcGu÷ô† 1*+-njnæ\žªsߣFoܼC×Õ@rò´©cegI)·€DœóDOx€÷"%ÁŠ”Ò²˜Ã®a¤$ô¢È~Øüλ.HM |ðÁ—•gê*ÏÔ×­ßWR”=mÚð÷WÿÄ9·©Ê?Ÿ¿ÞnS‹‹[·Zšq¶ºåÀ¡ÎÞþH~vRJ’sÒ¸¼¬lwGkG~ž pêLÛî= ¡Mò9—^”›’¢'û©©nŸËܸådcs÷ˆ¡”ϲÛ4JµXÔfš:娱©sÿá#]=‚Ëœ¬Ì@ `·94M\ü¸±!¥àÿ>þÌãSöîo9[Ý×ÚÒ³ö«µ÷Üq—ËåNI(Šb˜lßÁÓЉ Ħi ‹c›jZ&e,ÜIJJS4·h°·oû®½]¯üóÅÂâ2¢( É;&h˶½~¿Ãæ­3gL5rŒ‚Z<3F¹Gܶs×’EóÊK‹…±h4ìËÎÎLMI^²p.„@”8‹H" Xr ܵû@(7c©Ùuõ‘p£ß),V©ºL¨èϱsï)U!-9ÙÙ×^qÙ¤ñãÝN§Çå’ap+ÊÃц}ýÇ·‡+;ûÏžqd·9‹KuŸßèé¡¡þ…¹™§Z;!”¡þÐÜkþtß-×ý´c÷Á§&e¢µ£‘–ºö‡ køñõUÿmíê|ò/÷{=îÖ®mnm›3cšÃîØ¼}ëÖ»W.^<¸ à«ï¿¿ãÆ23Ò!13ÞÜÜ*¥ÈÌ Ìš:å½×¬þü‹™S*ž~ñ•Ï¿_ï²Ûo¿þª?]½BÅ„1Ó`_BÐçÎ]¾tºàqÓ i6[(Â…Áe·»µ½»³«7;+ÃæÐM³;Ôž` ±”€I!9R ‚¡Í¦1SÁ`Àêéî ’vîØuÑÜÙ¨ᬬô¶¶ö©S&IÁÃáÈwë~5¼,jºžãõ ++ilnéèìÕu5gPvÑ\]GšJfÏO-Æ97©E™Å(îéî‹D¢‘p¿ßçG¢iä íååe´Ìþþøÿé?%"Á€„ á –¿z&”’\<ÿ’;·RÆ$øßˆ¥ï¾ûfÒ¤I7ÝtóÚ/Ö:tHUÕ?k„òŠË®xì‘§Í8Hšß&‚ð×dÑă„XQ X"Ît÷îƒÞ»Óæ€ÎŸ=)=ÓÓÛÑŠâ3rôÞ=õË–-;sæÌ‹/¾ØÐÐpÅWóÍWiiW_ûבÃGÞyë´´´[þtµetIU…r&!‘7Þ\uÓ×sΙàA"­h4vêôi—Ã^>´TQЯ1¶€bY&!„ !…Äqˆ‚JN¡iR!a,ŽU u;ç–•Z–q÷ýëKJrŠ‹¼+.÷Ú?õæ«w<ñôê[ïø÷ܶbÙ¤{v¿yàðqcÆ)ªMQìŒÑ´´´ššoÆRÊ´´À­·ÞЉ¬_ÿÓo2_…»Ãîv¹RI›@‰v»š®WW_8{öBõù:ݦ5¶´]¨­ÅŒ­;öjšæóùFådä Ê*RP˜ŸôøI›]Ÿ7kŠnÓUC«¼VVüŸ×ŸåTÄ ãº«WÜÿ×'GŒ,/ÌÏAaBEa”EÅ ”À´bÎ%e†”RQ¢(R ·Û½háÓàMMMµõuIþ¤H$‚q:mO?ý¹sgǸÇë¶ë¶™3§ üò¿þ“ ‹ývÙ8¶™3&çd§·´tþ¼eg8s:IÉ^M×;Ú»i7ÅV†0úî‡_8@§Ãƒ y<Þ#G§$']}Õ¥åeƒ%@ûöþqÃÖh,š3(KS»MÉÈL›^ $¿êŠ¥áHØi×Ä*!BÁ8Äcœì¨XÕ4-±OE)DgŒkÀK —MÍmœƒ¦æÖÆÆÎÖö€ovVR8Ÿ0qȧk¶† SãžW !BçÑZ d,fr.ÆwüiJZÀa´«'òí÷§Û{ÂÌÉ~ÇŒI¹¥EÙN‡„ˆ'ÒY$ @¢šúŽõ›*·í>Ÿø4©ªJ° ¡ ¤„ˆì‡eQ.DSsK}}H`E”PÄã<Ýý—ŸŸzlòÕ7nhi åæ>ÿêÛ®¹zİÁP,­«­÷ú¼³fΔBP‹  DÁ`¿¢(v›îö¸¡Ñh´·»ïÇM›ºÿþò#=cB!š²ªêlwwoWW×èÑcæÌžÍ9…#í­-”Zíí_}û}jjú-×]i³;ª/ÔïÙw@!øâ…ó#¸ ÃæŽPŸ8/›š[LÓêìì³ëzFzÆÑgSu?è»`s9tîÇš…·¢,k߯ôz=Iv›$%—Â’4*b½f_c¬épË©}FU—YSÝ~[F!ÄÍ`w¬¯7Ð!)¾ ÝÁ¯Þ"XóýÆºÆÆÿw‹«±¥ÕårÙ5-N›0qþ¬Ù-ío}øa,j|ñý÷Yéé½ó¶ÓáqLIooOÌŒC¬J—Z@ À¹šús§JÉ⦑™™‘@¦§$'55·D"aBp܈UáBjšæóùÑp";Œr‹3Š¥(ÀfÓ,…H"„„ ª ,(ਯ?ÚÑ*.Œ&PÉjÛëZ/™5õЩóIÎd‡ÝÑêïìîrÙœ›¶n_0½‚ÆBp à ó €PØmÄåBÑ(‡HÁŸ¬;_S¯ªö'Ï8ö¦Æ–™³¦çççŸ=[]XXØß:yê$ÂèÇM[Cáˆ×çž?oúž=‡«kê/œœœÜÛ׳wßñžžŸÏ3aâè‚‚ĈF£Q#KŒ6¤DÁ%E¹)ÉÞæ¶^RB ¦üã’4¾€ëÞÿJfäŒBHÆŽõ•7~°úíßÏo(£=þèÆzöÙçî¸ãvÓ4ÿˆ+ Ï¿XsælÕò%Ë…`܇&fR®(ê¯q ˜r% Ѝ:~29”š”Ì„iSÙþCG;ºss<†Å/¾xÜÎÝNUV?_ûí·ß®Y³æ£>***ªªªòz}›7ÿ´gÏÞêêêW_ýGgGãc>¹dñ¤Ù3FA ¤­-=ùÛË.»óÊË–C_~ùµ]»÷¥¦úûƒãƺïÞ[5]åÂEFB`ŒLÓD1J©e%ˆä‰VÞ¹óMõ ‘´4`³‹¾¾hwW°òtxïþ3áp89E¯:[·äâE……þŽÎðŸïýúÅç¯Xýþý÷ÜûÞ“Ï­úè½ûî¼ýò¼ðaQaqR²€ ´Ùì ápD×4"ä¾»ï\¹biÍùÚš õ”Z)))))¾ìÌ ‡CgŒF¤¹¥mÃÆí[·í‰Æâºn=tH{G7‚ 0?7/wPFzJ4u:„(·Ãëtø=ö–¶vÎÄ’…XQz.“@ ¤Œ USº÷®GŸ~áåçÏÈHGc‰·‚q ¡d1†Š+P! ç”`bqUÕâqÃ2¥,%ÅŸž2Ê ›¦µháü/¾øfÖÌi·Þ|íEͬ;_·tÙü›·TUûýeƶnÛãtÚ;;»…ˆ¾¾`Ww¥üW¶†8qòtâÁ³fNݹko$¯˜0jÅò‹Ÿ|æeÐM7]]1~”E-Áø´Éã'Ž7Œx$"ÐTÍ0LÓˆ3ç)>¿¢¨#J-¡’sKQ”D¬¦¢¨¦iiš†â\‚5MÃXJÂË/lmiËÏÏéîŽ?q^8lèà§¿Ž` F?ýl§×í¸æÊûöWŸ8ur–˜;„Â1 Á(-Õ}þ|ÛÕúØíT-âîívöDã”rˆv¿÷ÒõcF¤ŒpÁî¾HUUë3/;*+Ôov÷™ñ¸3‡Œ!ãX(¥Fˆªj6‚ Ä!Ì(åBÄ}î–½‡ç庯½²ô¿«O'…d”WW×ÕÖ7 VZVZät¹&§W8œ6ÆEkkû‘£'üÖ0â})š›ÚF,!–åk*‘ä ‘°á?,‚+!L8›äïÖÂß%œò미©³³}ýÆï~-Ð$ ]wýÕß|ýݪwÿ{çŸïˆF£¿ãÿJÇ=lØð³gÏ>ôÈš¦ý!XJ.8Bš”@‰ "ªFˆKB ÊDÔ_¿ñ—%‹æ baîÚĈ† òsêê뮹jZ͹ÚÇ{ËŸ’6nÜè3fÄâq€ÛíÎÉÉ ƒk×~!„ðù|/¼ä?o>ùÇo9zâ”+ªÎ ±zõ7›ÚþÀŸïpÚu)ä¡CÇ꥔~¿÷BM]Sc«Óe³ÛmN»…R¦ª$gš¦Æã&B×5Æ™iXB¢(cF•cÌOÖ7µJn†2bd΂ùs|^&÷?ôn,ÑÕ´'[Ä¸í¡‡?û×+·=óÌ K.yö³µ[n¼~ùÜ9Vý÷£ûî¹Ræ°Ù]N;Ƥ»³Çît8ì:Fʾýºº{jkNŸ>ÝÖÖaš¦¦ëRˆŠŠqÔb'OU65·ÂĦ@j™=½ýy9Y>¯+‡ÃÁÒ!yŠ¢9ìUÅ@‚h,VWßr×Í×Ú6›fCª ´L â„eX"çªB(¥é©I÷Ýqó“ϾòÄ£÷$ù’-i €¤AŒ1ç‚`Ȩ„p„ˆ'ì6‚s!…$¸°,Nñx$ÄB¡ðƒü93+3æõx³Ò›7o¯®®ÉÓ§MZ°`&µø;ï®>~¢2&û}CЇìÝ{°µ­#Q»ÉD¼°¯×sÇm×Μ1eÑ‚™&ØûïE.š;cʤñŠªˆ¨8z²J YT˜„DvÈB(ªŠ¶, !$HÕEITr:Qz¿Πª®Au]WU¢…` !”•™þÜ3%Œ 7ÝpB|ñ‚‰v$ûý¼óWÇîu9.»dÖ÷ömÞrhXiú ×T„ûû…i»]mhKMò8lŠ”H @¨D"Öá yÙ(1à@1B;Ñ~ðhSVÖùƒG„±Ã®’=ÙÙÉYéiBjŒ©Œê”%bw”+(¡Ô©zÚU+ù—_Ÿ¼ûö‘»÷¶œ«é9Wݤ*ΜœÜ¬ÌL§Ó5nܸœœMS«ªÎœ={69%¥hHÉÓO>VUUõß>*).Z¶xQ$Y¸`Qù°r_R @paÆúúú—^z©©©i套.^´qÞÓÙÕX_{ôä©Í?ýR^V:rxùWë~¨¯o,ÈÏ»xþÜ‘#†D„HäPAyB%—8#‰à„€B$Š„ã~ŸtêôÙ% æædd½°zÏß.*SX|{ÿþ]Ýv»~å•·QÆvïXgš&ç!"¥ TJ)0Æ‚sŒˆªÎ9aÌ)<¤ ¬ìŸ/ýëõÿ¼õÄã;h‘ÛãNìÐc±XKsËßÿþlCCÃu×];ÿ¢ùœY]ÝÇûê›ïÚ»º]ÇÖí»U5¢|ÉÂùYé©6§C) €‚'°Ô„uù+¦Hô$@sÎ’üÞ®îÞŒô´#‡]?oö?Þ[ýîg¯,ì´iR`n…p0ŠD-ñšHuI E,bv×]ÍRªÒ°}ɘxl9°î|=¶Û¤e1ÔB f™ñh0ßP]G9×ŦkŸ~»Îa·ÝrÙåõ-Í;Z8cæéês‚œœH4ljkmïéVârºî}ì?aÓ5ˆÍîØ±$ß¼u늋—<÷òËâIÆÚöa¥%_|÷g” vâÔ™Úº¿×ãphœsJMËŒ„#ÁH8B-KPœŸ£ixÚ„áDÇ» Üò IDATL,Ÿvî­®m}øÞLʆä¦1ܤJm]MÔ´BÑX²®ŒÜnˆ1 ”ƒý)É~ΕÌbÌb–ÇíŒE ΂ˆjå€ÆÐ±Sç>ûj‹ßï~äÏ׿çe)ŠNˆ‚‘œ5´´}ðÅ—Ïž®©8‰†e1Ú××' ˜h ÎÌJÓlJ<%qE“„¢I¢0”€Cxþ|ËØq… ½µuçSR|±˜¡4 £µµ¡öÉ“*!ýý!’èr9€)¥azN»¦Û»{ƒí»÷G"qÊ,!8BXUB!ŒÆâ==ÁÞÞ¾Œôt&dÍ…f_’+ºÝéQ5gÝÿQðû¾¨4G„$„ã Öø¹‡½ûôÙS¿osž>}rÉÒ‹ßyë½o¿ùnÍçŸ>öØcsæÌY°`Áõ×_ÿÔSOtvv<÷ìsuõµ[·þ"ÿwù‰ð3B4E³k6/# ±Š “Rƒ}½}}6› ¡h ÍëO*GÀšUQJ»z¾Úuzð ¤Á…iÿóô·\œUupAîé3çB¦iF¼§§‡RVX¥ª(ÜÛ¿éç}±Þ¾çﻵ½¾“3–žöè=w0“) }è{;»Ú3ûCÑ¿<ðØ%Ë••?qZ¡išeYŒ1US8œ Ó4 F&£”Ò[H®Ì, )¡µQ˜Jx$®pêÌÉI¹ùÆy/¼øãk¯]åp€ûï½ìì¹óví-7_¼c×Éï×ï¼îÚe>|Í£¿ûÚ+/8NXjj ®±!5-îîKIòK Q­ ‰ËáÔTbQÖÝÕ;dpî²Ås0‚@r!Áƒ÷ݬišŠ Dðã5ë®^y±ËiËÍÊdÔd4Ù!›¦¹.³,MÕ9ýÁ0DÐápX¦‰ ä‚C ‹Á !\Š¡EEwüéÚO>ýbÉÅórs©Å)c‚Ä„@F Q´‚# oå‚QºiÓÏ?oÙñЃ÷f¦§Z–…0pFû‚ý¡PXU‰ÝîRUÕ4%ÂH `2hPVwwÏÆÍÛ·mß}¾æFxåÊ¥^¯;33M PT”Ÿ’ìoiéxâ©—<–@Wgf¦Í™9máü¹.—ûB]ýߟ97gÐ3?œœâ—œ¬ „Mj &¬€DÏ31fú|>BH’À¨B(µTÕf·ÙM%+ŠŠ1–&”ΉOˆ”AEHƘÊ%FbbrF’#!„JŠ‘`” ¢2 $€ a¬—R˜€‚'´j#K!C)LÆ›Š'M(„A`!"1†aU Ô¶ÎØ™³ÍUÕ-ûïéëD ÊXjròœS‡–'>öB@jiófy÷ýý·Þ\6oNÎjüiëÍ×]þÓÏ[Ι›–šZ^ZÆ95"±üÌôÉ&tõ´}ùõ3¦MËÉË{ðÞ»ß^õáëo¾ýÎ;ïH)±X¬¯¯ï™gž©­­»ûî?Ož\Á¨ÙÞÚºîûï×|ñ¥aR)D΄qóæÍNñû%g ¡ä@,$ƒ\‘!¬hšŽB AÛH „€p aÁà‚¸a565ÝpÕå/¿úæ£W]òÐ⋞ÿúÇöcç¼hªfÑæêÀ,ÜK”~fô ƒ==´+D\iöôBLTÍk óÞ Ug1gÑÆb·K i$Bã1Ã0Öµ÷5‡#@“Q¥ü¢iS§Ÿ`×íNžˆÇÍ·?ýÔ²( ¶©1  ;ºº›[Z§TTÜýÈ#‡Ÿ@B„n¿þ†²ââç^yÅçñ_¶léCO?uºª c¬¨JAî M[¶jº>¼¬dåâ‹ßû䳆¦†”äá‘HÈ0Ãq#…-“2¤GkîèÙuødÔˆ–¦Ç +âíí} QšmºÖÚ2L@4"øòÛu߯ß0mòÄ»oÿ“®ëª¢!0BŒ±H4âõzgBr*¸”’s®ê„30pÚº¦÷†#½]¡¿þéðñs—,˜vñŒ »Ý­*J̰tS0«¶®ù³o7^·`¶†`4bE£Q!¡aš@ʹ@WOw~~n<‚s) dBM“š‘ —Ž’™ hHæ†×7š¦àœûýžh4ÚÛV¥¾¾žb³éééi m­-mÆ 5¢´·7˜’âïêêëï&'û33S.r¹½„,‹F½}ÁîHÔìîékméH4.Mjœ:}!%Å—‘‘¡Ù=‡±,“s ú½äå·Eq`"ˆdb0B¤„1Abˆ{ÝÞçŸ~å/»ë|íÙD?.!shmmY¶|ñ¬Y³B¡ÐK/½té¥+1&N§óºë®{ã×3Ó3ÇŽ¿eË/ðØ#¤i.Ýé@©š:ÐúRà<5âq3ñH.˜”–dT„cfSäÆ£Ôøµ¾Ð4• ^yúl àïîRJž¬<Ä,Ÿ8üᙓBÇZ€ª–$§@ˆæL—•–̘ÕÛŠÇÂ@R{k‡ÃFÆýÍ·ëŸ~ôoLg"aNˆ† U%&„I-¢jJ!˜‚!„RÁ¸ætq„ÈA…1òG#I3¦«¹Ðöï7~øoûýžž»cùÊ'¦O«˜>uø/[ª®ºji~þ 9³Ç¼¿úÃ{ïº@”—“U_ß4zôÈ®®à lSSUŒ%Âp)7M ðz<…ƒs¡\r($W¢–9YYeÓÔôÔ$Ó°°L„P)„@UT]Óc F ÖΞT¿WB …ŒE£FÜR5’¨‡4Ô¸` ÂŒ±¼ìŒ{ïºåð±S¡PxØÐ¡\pŒFD‹I¬ M—–Á0Áº®†Â3¸\ÐÝÕõæÞÇ=ö?uØí¦e Œ“R‚Ÿ~ÚöÏ—ßPUEUU—Ë™”ì÷¸<ªJ† +íïïØ¹ûüù:)%!xäðaÓ¦U¬X¾ˆ$$*‚K)ví>ðß…"ãÇ*//™0~lA~’¨¦¾þ½g_Þ¶c7`æô©™©L.%&DÕt„Ô¡aXN§"„”B ŒE‚«ªŠ!ð»g R¢Ø.BÁ˜’”€R@!e¢©¤J$ÇT l)ø@T…„˜2‚TMEP@8GX2)$–r†)Ѹ›¦I]N§”Ô¦j­½-míá¨á°«É~¯(nÐîžPKGo,f(1¿sPVŠÝi ƒ©@YÉP¿7YH(ˆÅ­Ž®¿×Ã%°,Ž”†]Ó"“+rwìi}ú±ÉûµwwÇ÷îÛÑœY§«ÏN<‰Æ"¬«›4žO›6Áåâ.ÿû/ûâëõ]ÕcÇŽ|ð/÷>óü ¯¾öêÝþ³aĨEÛÚÃáЫÿz9+#ƒZìÔ©¯¿ùÖCG’’|‹ÍY¼ha’ß ;ÛZ£Q c‰æ\BÀRUµÙíªªa…”‰ú !¥„ ‚9€ØM7öý?íéí“RÌš6õ¿ë6ýizÅ3Ë|¼ïØ Ÿ|sõ¨áSÞdâ¥Q5ÒÒ®©‘”B$é9Är!$£ë›šµ÷.Î Îh¨ŸsÁcÃ47ôF¿oé2‡ºíŽ1#FÌŸ>Ó®ë\Ê×}w¾®^ÙÕÛ^R‰ÅÛ;º”Ó&UTTLxþµW7oÙ*¡LMNù×óÏ,/cÕ{6›}Þì™~ø¯õÆØÖ]»ŽœôD"‘Çï¿÷б+]ôê3e¤úÞ‰÷d˜•Œq %Ä æORwh GBi¤Ú†Þí»õ…bƒó2ì6û·›vFcfWwŸÍnWTmJÅøÙ3&K€cñ(\×ÔD«ÃfwPÎ8&$— ‰1Â"*Ä"‰¦¨*¾ÐؼyçA—ÃñÈ=וjЦjÊæíû…‹fOµâæûk¸ã’ùÀ¢Ñ8‹Æã\ @(Q5…K§j*Qu_¼-ÆW DØt@T)&/–%Z[#„¨ýÁþÒ¡¹ ­B€ËVÎþlÍ&Æ¥ôä©Ê)“'­þøÓ¼AYM-­®ÓZaaNFjroˆqªkjVv–¦*ŒñX$g̲L#›kji۾퀔‰¼3ȹHJòædg+š A¤eHñP @ý…óÿ§7 dÝ{Á_ßÀ¦P „³,$Oöþñô+·ß{cWwÇïÇ~œóŸ~ú pôèѬ¬¬‰'Í›7ïŸÿüçý÷ßÅÀƒ˜ ÂNg2Ñ<ªŠ¢ÿšN ¤œ „±7)©«»ëÈ‘SãÆåAiAÁx̤¡¸0ãµ=«¶ï.M÷]è º]zSk?ƨ³£Gþ¿€6‰F“—íµ½Ñhnjêš_v )4»~¾±).¸)c[¨Ÿ²Úºú»î¼>/7kÍÚzƒÁÄR "¤iDA)Ó5•š@(„pü?tw|TeÚþï§œs¦§÷RHBï"JD±bWtյ쪻¾®®îZ‘µ­½bYéX)"ÍÐkHh!¤N&™dÊiOùýq¯»ïç—¿&“äL’yÎSîûº®¯×ƒ1Î4—ê¡*¤»½BJ.8§~ «„jÁPóüyÿü?ËøñLõ¤¡%%%×];õýW]»pæûïUSsz̨Šë®›úÀýK>4tðÐ윬»j˜eöôD4MAN^/G„ª!„–šÄ§˜)– çIà\,ÿzíÝ7-Ä€B˜˜PEJI©¢ªª¦jXJÆäþ#‡Î_˜?g*Fô›õß÷-/)ëS,8C½QaHp†1ÎèNÛæƒVÄ¢!v{|¦©ÛWTÌ·L[‚°LnÙ6礰-vâDÝ+ËÞ˜4aìU³ga‚mÛÆ€Ù0 ?vT¿ÊrLFDÕTUQÆÒ¶„a}ú666¹Tmð ù9n—KH†6t*TÞ³÷ª¨O<ö@õ„ј(£ŽPè«kÖ®ÿ–s1vôˆëÍ/--Æ$&˜`¢* ç*çÜåò\ÆcÒKeLjJ!mf[–!„”2ÆB”REUU–do¿$êÍ“DÐK¸Epì·˜s.¸àL˜¶ÅlfYºàq!¢ŒéÜŠG¢zWXÄb]]ºn[—+#%±¤ »(/SS4¢£3ÚØõh) w$nÔÖwÙ6S(IJJ;¤¯Û¥º]ëŽ÷´ÃÑ`Ìír%&$çg&$¤¸\>ÀTJàLú©âò¸™ÅãŒsÎ9Äb^—æ«ê›óÅÊfu4¶lŽö>1nÌè®P¤ÄëQ@€Ñ™3 Ï—Š7$Tä¹îºÙ_®ø¦öøŽa£çýí駯ž7oü¸±ÅÅE]Á °í—^ø»ªº{"Ýß~ÿí?_{KJ¾há53¦OKMI!„ôD"¡x<Ž %TE€!ªÛíóx‰¢(Š‚µwtÕŸªÅc#‡ E¨Wdèpƒ¥@ yRrB~^^4ûî§ŸçM»"ÜÒòÆ·[~ûøá‹ò?ß³÷«}‘!¹Õ¥¥©Ù Vñ&¥iéiXQEOÄho;ìø¶îœÎø„‚lÁ Ëîéî‰Ç¿ëÑ¿nÅ—MZιÀR€À#$0EÉHO¨®¾a1Ã*oºvfrb†Ïí‰Gco~úuAnÖ¼Ó„¥KÛê_”ßÞÔêÕ<1Ãà „$ Àb¼§'êu{šC!Æ…—(\X @‚K‰1`BJŒ@HiÙБ==|OÍ©®ÎžÌ¬äÇN{<.¯[KLL*-+®=Q»víY¸p¾ßçRPBÎ_h-,Ì&³1àþý+¿Û¥Z¦.8“H"$…†Ó ƒ1™H¶§Ëår»Ü……ùEÕÚÛ;tCOKOu/âuÿS/Ó åDÐë)ü/QË´$ É2Ó²ŸÿÛ²½'ÜÓ ÿé€Ó4Oœ81fÌ8!ä 7Ü8zô˜âÂâgž}ö?/Šͯ¸\”jN^¿”àäMp! A^¯wñÍ7Ýz×}ƒVL]1bP~Qª±˜â±:e÷…PøDKGNš¿=s¹HwP/2𷯂%*IMlíÿaÕº¹9ÉM-5§Ïü¾‚â¼Ú3gmÉ™àMÍ-••šK u„iœ9Û¸ûå™–©PõÌ™Ji^^Ž”ˆR…Û¦\r¹T!¤¨š“\mXÜï“̶ ¥ŠÂMS(×õ$“7oÝñ÷§çÝqχåeE¹yþÿp]w·¹zíOK_yâÿñûÜÆåßsÏõþ½Q™“ÕÚÒ"ïîéAN½§øH@pÇYŒdÀ¥@ Ç”»jö{=žÂ‚<€(Å€$•Ž"cŒ0ÆÈhOøó•kŸýó£µõûŸ3c2USgHHÀÀ¸œ—1Æ9·¬$¼¦É‘“ô0Â,µ\Å2Mª`!%³BH±~ÃË¿øêá‡î>l`O$ ½ÑRJFˆŠ° ”¦¥¥r)0`‡3Œ‘<×Иœ’”šš–žž6~ÌhJ©‰1âœ9zrËÖí§NYrÏí%} îX|ý ‹®INJŒD¢§N×þ²cÏæ-Û»»#£F ¹ù¦ëT–;Bˆ3Ž55û“† ¬tRÝ{Ór~+ŽKÁ)U)ÁBƘK#„'D¦—»‰.&.IÐKœÅq]a]×ÖÕC!Œ¤J]n¦E Þèºa[ãLJI ñy¯K+»@JR&’‡õÏ—0 R–a0sL˜BÂ(›¦ô/S¥€0¡ FnBDˆ‚I@ ©RZ‚’ñ¸cN¨9qbþ/».ô«Hݹ»¼ööÇ Ç«¹P;¥ê?8äñ&Þyçío½õæ£?ÜÝÕ•œ’JE×£o¼õÖW+¾žzÅä«f_™•‘„´ƒ›7o5ôxQ~^Rr"¥ŠÇëõy¼ªÛ­PJ) ‡»wîÞS³oŸÏç3rÄà¥îë%ïU !ÈÙ3§÷¯¬øì«yY™Ó&?šXúÃÖ±9s³Þ¿©-x ØñÙ/»¢1DŸ/ÉÝ<0'gxzR!X‘hü¥ýÇ›£ñGJóöž»ÐGÁ.fŸÒ•ÁH®ßg ‰1NOH¯¯¥§gûߟ8U7£úòõ›´ÔoÐUÓ®ôin&ÅþK7ô´ÔÔ¿>ö˜ævמ9“™õ櫯”—”p)Ö¬ÛðÉ_fddüý•—ã𴉚ªÞ{ÛõçOŸo(+ÎÞ³÷¨nYyYé}ËŠ~úåàØae‰ !DUAtÌðò5µœCJrrzj¢a ÎΞ“§[Û÷·‡:Ý.ׯoÊÍÉÉÎÎøý.—𙑙‘®ªª¢P)ù´)—­ÿö=® !lÆ,f–-±PT@0f[~±îçŸ÷ŽVu÷-óüž$Åí¯;uæµw?»jÚeWMžd[f,…º¥iÄã–iÚ & ã–iÙ„()1¥æÈaÓæ!RĹDÉ^¦Ë„îdèÒ²ìóç[%ˆÆÆvBQR²oêåc ¡}û–6œ»Çêêê[[šrr²jkë8±¸Î™m#¤ŠR(¡ˆX†Â&#‚xÓd–-¸”.·ËôDb–e¥¦$åæf ”PUseçæÂ@¡”`ìÈY~».!²·4úÛHÐÞºgïΑCÇbÌìF eß>¯>ÿæ[Ò#¾ô=ôPVVÖÌ™WrÎûô)¶ {íÚÕÿqEBPJ5Î!„s&DoêBdÍÚ K—¾rüxmbbB,¦?¿ôó”ä€mšÉ ¾ª¢´'æ ^zÏddÅ©àOÿûP{8*}ºeû<žŸRžŸŽ¨kËþZ3ÎÇæöÍÍ>Òܺ£±eÎÄQÝ„deeV·¬P¤9ÒÝòËžáC¶¶4kšf±žžHý©s‰‰·ÛÄ=ñô3K7oÝ1|øà?=rOiI‘m3J0AXs©–ÍUU3 CÑ4@©Æw¹Ï)pÛ¶‰2m›núþÔ}÷ÎxõÕÏ>û ß“ðøc÷̺êÎoÖl~奿üõ™ÓÒo=*sö•—½ñ¯-¼¦;FãÑh¼WÖ6·,I …ÚÚ:LË”\hª+7;3!Ñ+˜`‚¸üß?x§0FH!½É±¢×•Å9“B¾þÞçs¦OVÒÒÖþ×ç_{õ¹?#ŒlËdŒI‰0F€sáHõlf3n€DÔ0,Ó4 „ˆS·™@LÝBq&1%Œ1Û´ÿùæ;çÎ7=ûÌŸ332"=Q’ AˆìÕAp K‚—€0`@ )JO,¶më/cÇŽJKKÁ@ÚÚÛOž¬÷ûýöW9v¢öÓÏ¿?vÌ·ÝH© †®»é.G¢ >¯7++ãŠË«¯š5£¤(ß0l„ð±cõ›~ø¡ /gâø±·ßûpNNNSSÓÕ³§ßpí5Ô¯÷ Ò õ“aJ¥”NwPp’–ÄE~‚8®S§•uî|cgg'% ÆHJÍ!óòò è ÁI˜”B ‰$’½qµ2‹ëzÜ0Œ˜nF¢íRpιnèÑx,õD#±¸‹6³…àüŒ”£‹‰¸@ %#‚]šê÷y~¿ËíUÇòL!ŽðUÈ^ž”–šœš–æq¹º:»[Û:úpFó ã{jZß~튗—Õ|üÙqÆÙW¿üºpDn‡ÇÛÐî”lªºU(UÊ&Ú¬Y“¶nÛ2¹šŒ^õÚ²6œ=[ܧ„ …ž|ò)Cןö©Â¢"BÈ©3gÖ¬Û ¶Oš8.­O¥ª×ëW5!!QQ”––Ö‡íÚ½'‹6lñ×§¦¤8(!Å% 3 ÝQ‚#TTPøà=÷¬Ý´ÉÔãcû–Udg8Qûé‘>)’A¦¹ÔY~ö+‰‰ ¨BÖfµát³ÿÇé–Ýš—â=Ü”€»½®Ÿ#zƒ-î2ЛœzB;QÖ§|ÿ‘ƒßoßöýÏÛE™;óªƒGq!fLž6jèH…Òc§Oþ¸í§ -R“S^~úoyyyÏ/[ÖÙ^ýÅr¿ßßx¡éé^Üð@rJÊ–Ÿ·ýWdà¥ãEÀï¯(/}ù×]áî’âü=û<ý+ŠÆŽx²¾ñ³U?]6vÆ.)¥0–’`ŒG ëg˜¤«Û<~âT8 Sª'¥¦&¿þÞ‡ãGìèoÞ¾ý› › =-5?7ûÑï%~P4UQ”Îp—Í,“ ˲â. (  …—¾ñY0š9}”m¡”´,.èŠÕ›¶mßýÄýwVô)²M£;ênim¿ÐÚÜÞ‘í÷é¨t ÄmÎO4^HKMÕ™ðü±¸ÞÞÌÊLÂ%6çn „˜A\àHYLßרÚÖ4U¡$??Íï÷J1†œ¬ô€ßëÄªíØ¹;#-ùèQîP3ãqÝŸêKJN–€Tª(*5M³­#´oÿMS1Fiéû÷<¤?c¬ 0gÊ”1;wì?v¼žq–ðS‚‰B)Vá‚BÉ™BL ØöÕ±pÂdH¸˜G/…L +Ö~V˜Û'#+SÐ<¶YiqßWþþúþ´$ÜÝ ¿ñ!„LÓ\²dIee¿¬ŒL„°€1ùíæHPªJé€&ˆiš¦B:::¦M›ÖÚÚrï’{r²³×­ÛØÔÔâÒÔq#+RüJ†‡–dyc†¡"ް RþqömKt.,[XÔe »­‡]HOÙU×ôÕáZ|ì$\Ñ·8¬i‚’+§LP(iln^·áGÛæ•¥nîèè ”PJÎkLNN<{öüÝK1|ð¼¹3^~é¶ý¼çÝ÷>»é–ú÷ëÛ¯ª"77»ª¢¤¨¨Àãõp&=n·ªÒHÔ@¸871€ RBÀlÛ=ûÊê;ïþûƒLÍÌHøúë7\?5)É;lXÿÕ«œsÕ¬ë-|ð¡ç?|ÿñ ªÿðÐ?ëOÕKñ˜n†”Áf”Ø‘hèð¡ãÉɉ¹yi—Àµfí¦ºÓg§O¯*Ê–í¿ædfdg ÆA¢Kï¢s¨¹Þ²}wgWxøÀþzLî•M=<%1A›”RŒ g’séõy{zbc ÛfR"¯Ïî #Bœ1) ƒc„R.¸†<ÝáÈ ¯¼ærkÏüåTS2‘mqg§`Lˆ%WEF¬¬(ÿûÓO",2%%å;ÐÕÕMÅ­©©é)¶Åvìªùü‹¯ëêêuØ|ÙÄ ¿ûÝ¢ë6ý´eå7ë ´råÊ}ûö-˜ÍU3§%ø½\8æˆßÎSp±T"z!KζÑùC¤‚°–FjG IDAT 1Fù¹…ù¹¿™ï@H)-Ó°L³' †BM--á®p,‹ÄuC Á5UQê¤ rÉ¥àaMU¼—ÏçÉËI x²=.ÍåR)ŦNè„c-pÎ &+T0tK7m›1Î…D´,;fÄm›qÆ9—B˲öì?$¿qáµGŽ/Î/²‹é4ñœçRÈâ…E+WÕéã6n1k0¸½HQ€h€Ü4†«¼,wÝÚmö˜óXJË Ï55•”•ž:UÿÚk¯Øoذa>Ÿï\Ã…5k×47·Ž1xì¨Á.—f3îìŠÆMUÓvÕìÛókMOOweß¾ó¯™[Ú§XQ”ÿM÷R'/ Ž€K iÙvO¸[s©>—ÇåÒæ_5[‚´MS 9¤¢jpqDb<Vô8fsNlCCÈîlg=-Ñè[M]g s€Ï]3á·ËP¼Íœ;f4-/¹ו ˆú¶]Û@U•C†íÚ÷k[°}è€A…ùEÁÎО}»œ_vvAZzz,nX–yêÔÙüœLLàcB(Å EÎ7¶žkØè÷ùz¢Ñ€ß›–’är{ú–—¸=ÚþÇNÖž7a˜iêŒ[ý”ff¥ºår»¦ ÕFçÎ;ßИ—_™•åŽ.ßä%3Ão@€G,#€VþÑ×oßë1‚X8B…REH^ZÜ÷Ÿ/¿óÈã¿oioú¯rjkkëSOýuÙÒe U8çÕ“ª=ü¿¯*Ñ9aÌVìv»u]WUµ®®nÖ¬YóçÏÍËÍn½pvÞìÉ[·í|çÃ/V®Ù!A"@šJŠ3J³“0gº-¦–¥ŸoØÐ*MUâÑx·Ý-„ˆEMBТ3Ï5¶D#±ƒ‡­\µnѵó~¿dñèáC¯Ý·ïà™³çközûv·Û5p`ÕèQÃ++Ë rÁMÍAE¼Üç6U³@¡ˆ“ Õ§¥>òð-þéÕ×ÿyë²~;múˆ´ÔìÅ‹­]÷ã /¼þå—ïhšç•¥_=öèíwßsà /ü‹*ĶMƘ€±Ä`ºUãDmCk[û„q%nM2Žm˶L:õŠê'êÃݯ¦-_¹æ‰ûï²m€_"+_²d9oJwwçÛŸ¬øÛŸàB|ºrí¹Æ–Çï¿‹Û¶ÄÈ4L@u êœ1@Bd[ f–iÂ@03Sº¼.Óàm &$!¤ödíóK_5|ص æ" B€¢(ˆmE1Æ.ÍmÛ a‰QJ Åœs‚éŠU«ÃáîÅ7\K5$.9e¥e%%%!"¸„ Æ!ˆRÂ97 ëÔé³'jOž?ßTXTÐÚÚž™™=fìè[o¿sÇÎ/¿øÒcO<þ·gžÙ¹sç„ ßÿàC·Û=vì èü…¦þ•KäBôò“qÎC¡.ØË»Ä‘(%ªªzÜ.MÓTU• …à!ô-ËèéŽvGº;;Ã-mÁöö6Ó41¦·âr©™©}ò3’öñû<^·KÓ(q¤jH:5OpdÈñ ,¥pÈ €0!½° Ñ+´V0Áª¢QªB1¥„RŒ©Ã„r¤O $âœ[ŒY6·,Û¶lÓâ¦ÍLÃlji«*í+@J†l[ËÎN$NO¡/ýuЪuçÚÞŽÛß;-ƒ¨i'ÒA8€+T˜¶ (®(‰UU•§O*/+{çÝwfÍž‘ÝÖÞþáÇŸ565Ôôðª¦5·´55·gf¤¦}ìø‰3gÎöí[6cêåôøý€äœqÎ…@ ¹`cÆ…£]àRZ–uâxmÍÞ½ ç ® !…@҉Ȥ2À¸<Øë±£QdÛ‚slšz<‚9‹aòZkߥÎLxU5ÃçÉòû})i«ëN•ô­È8Ü"@ÄucÝw›º"Ý@e÷ÞÎ!äÀÑ# ‰É“'^vÏ{âf<'#Ãçó=~léÏ™5ëÎÅ7™6{æÅ—¾X¹bØa÷ÝsoÀï=ߨ¸eË—Ë5pàÀššçîóx<‰ íÁ c½àU¯[{ä÷wzlùÊo¯žqyFz‚es×ãÛv¹|â°5+ËJNk uƦTOÌ+,øüé™ie}jhn CƒuÝ­¹²23óò³ÜªQ„€HL,ð9Ë/ÈÛ´éû¬ÌŒk¯¯ªj$ÒäDR(Šà köyãÍÏû–Ü{ïܼ¬.h{ûçO=»ìŽ[U ôX,ÔÖjjêh n?|,?- 3nK „؜ٻŸÖ¿‚R)‰CCþ€Œ¦–…l s®Ž-‰ç˜ É9!¸£½39Égöˆ‘•é)ß}_“•••••ÛÞÖÑÞLLLŒôDtÃdŒ¥$%éº^Ú'/«jÄïõ-˜;;¦‚[ÉI×'Fbn¯KHyõÕÓ…4mÆ¢Ý1ÉA8-%!ØÑÝÜÜVRZâryÎ54ü²}û}÷Ý×ÕÕuæìÙß‚nþW/ó_Ÿ÷Bê…#ˆ£#­?[»i뺫§_cYÙºÛ Dز(¿äWÞâé‡jëŽ9fØKÓîš5ß,¾ñ–þUý•*ÿ fê-¾]" 8Ù¯½öÚo¼ð{º»Ú\šð{æLŸîìjnëèê u…Ãí¡Èñó¡ç;%È4¿{BŸ"³K UüýÆf M5]žæ`PWݱž˜)‰ D¡éqÆØ‘ºóõgÎ#)³³Óô+1â±hesÁ,¦›vFzšÇ¥*> 33³´´dÓ¦­þŸd¤¥ÎŸ;cØþTQJ1H)ÁÖéÓ}÷½OƒÁPjjrqqass{wwgvvòÙ³­áî®ôÔÄ„Ÿi˪¾% æO\tíô‡ýhé‹·lß¾gΜ9ÆTÜwï­ÿ|ýý_|ã‰Çÿpû0töØ9|pÍÞC˜`Ƙœ`ß³ï˜ßÍ/«."`ÌÀ¦Í HZQVRlÞ¾37+;=%9ØÑ•è÷öJ Po‰Ï‘0ÆŸ[öî¢y3KŠ ~Ýwð£¯V¿ð—?ªªª–ðúÜñ˜E)˜Äb‚1EJÜ4€P‹;„tàsi#ŒÁ°,›I‰4Ú¶yôè™ç—¾¶ø¦ë®¨o ápW ÝÄTUáRbJ±” %ɸ’u‡{Þyÿã~U7Ýx= ¸Äp„°àc$$0&@ww¸®¾Þf¬oyiVfÚÎ]5Ï¿´¬ººúŠ©3 p÷Ýw‡B¡Ý{ö8.À††Ÿßwã 7@EEEiiɸqãc’••ÝêâŒcÔßÕÓÝS³Ï欫+\æÌÀþýü^EQ(!a‚Aœs]7 +¦ëzrìüùÆh,ŽîS\8nܘ%wߎ ùjå7gÎ5Ì›;Çãqs g½Gj!1H@(‹Õןڵû׃Åbñ¬¬Œ«gÏ1|(8óÆÅ Šá¯p¹%—À,ÅÛÚÎ?; 3© R]Äã}"-CJÉÊ•ˆÚnÓB‘ß½œK’Ÿoi^±~UwOóÿÇãÎZÅ8ø}”â¤äÄT’bÙæûŸ}¼}×Î'ùãȑÎÕÖ?ñÌ_Ož¬¿¬ú²Ûn»SSKÈŠÊÊ[o½µzü¤œÜì¦Æó}î¹ôôôS§N577;•3hð€×-˜ûí?ådgüþÎ[lÛ°l :^÷ÅŠš[9ÝÐ2|PÕî}'Š ‹.?Ñæ„ –ÕÒÖVRX¨R5??WAÀˆ&XØ–¥[&ÅhÄÁÐ?mé[^l™&"$`ÌmnmÜðÃú›§OwëÍs|‰'O5-{㣲ò¢‡î»5Ñçã¦Ý‰„;º:ÛÚ÷;ÑÚÓ3¬ªœë1Θ@H‚ŒrØs´¶ª¢ÈïU9pX"^@‰¢Äâªm©6•ª&#,@S‘e³žž¸ª©³fMì鉮߰kÀ€þ@àØÑÚ`04`@ÿÚÚ“€@ n3((È9yòLvvæÞǃ¡È ƒÝ¯/àwÂ%¸ÀåqsÁ¥BØR Á¬x,&„‡{ª¥T4¸ŸmƒÇãkl8¿pá‘#G;wîܱã¿sez…ÿ›¬æ Âè”Ú¶5{Êü·>y±oaUIŸrÕE¢ Ƙ["3=ëÍWßäñöÚ#$èU¬Fü¡G|ìO3jãÿ±ü:§%ãd9ºÝž+VÄãñ¤Ä€méiÆžé­ýʇ pèØÉ³.OTY8Ôqôø™¶P4Ó¯ÉÍQ;B1aÒ2E{OO]gÓ¾SM1Ý‚¤@I‰Þâü옮VšZÚCÝRÖ'W¥$×ÛÚB]ÝQ¿Ï“–š˜è3,ÝÅ=BpMs›&>|pvVæ–m¿x<žPghΕSý$A  T Ø,¥` 0Ûæ§OŸî wdežŽzÿª¢¾e¹n_QT„Ñ¢E3›šÚþòÔÊå?¨*&&gϯ>þdÅÈQ#Þ{çåën¸wÑ¢ÓsæÌ\·áEQ…°1(²jNM¦UY ±1²¤ä Fƒ%‚Ù_ûíOwß¼è—_¤¦&ú\E€„³äôr–¥«7mÆ„Œ:üÔ™3}õ_WM¹¬¬(Ï6 ªhÆ„ªªŽ]ƶ¸ms)¥-çR‚Œ-ÛBF‚sÃ0ÂB‚a°]{}úùWKîºuð –m ‰œ#\à!§¥GÁ!,¯ûôó/¯ž}åˆáÃ0¬“7ŠKBðÞS €Í[·}ðñç ‰‰ªª¶¶4ßpÝÂHOdòäÉ_|ñ…3–&NœØÖÖær¹œá sssKKKT‡‘#G:äzè=s¥¤“0/Ó¦T;Ã}öù’;oÍIOã½âéDsÁ…”Á€àÀ¥Ä¤7ð\P,¹… Î"¤¤Š\€#àA`„è%«pr»{S½;ˢȕN¡Oí8n%‘+#JŒÂÇ_Ф”Ø‘#À „ ‰HL‘˜`J¹J±åbªKeÜôÜT¡œ $’„Ý.\ðÂ,ïŸ\·i—>dȤÓ‚ë6¬,ïÛoúôé„R‰-Sœ,ºÚy(ØÓlmiݺý tÁï®INJjiiÞ±seÛ{~Ýw¾±‘3õ«ª¸÷¾;ÒÓ21Àw?üôý÷ßK‰\mÚ”) Á„PDÒ4w[[pýú»ví …B(;;sþü«ÇŒåq¹¤Ãdvx5ØÙV)zR2›’vè9uú²ý,Àç ÙÖJ „Dœ+;OÕ v ¨¬ò¸Ü6ç{îÿiçvÛ6{™_‹™>Ÿ?55åÂ… (+îSÙ·ò\ãÙ·Þ/=5mÙ /§¤$¯øfͲ7ÞÐõøìY³.¼cÌ¥”Bö)--÷y\š¦öí[¾üƒ÷ßþàƒÝ{vF ÁçõÞ|ý"¯Ç³jíº…×ÌÎÏÎÆÂ¦Å9c?íØ³~ã–‚L¯Ç#6þ¸ýÆkç î_Å,P$ƒÝ‘ˆÏﯭ?UÞ'ƒvFSR’@ã,7uÃ6 CÇcñX,õûý‡éÕ7;‚ª¦%&øn¹yÑ7k6<|ô–ÅófN«& ùô‹ ;wí»ùæùãG # Ó2â±cÇŽ×>éêLNðÎÉ6˜mÅcŒsIH·iï8\WZœšð¼­ÝQ̅͸£Á„0!ŒI¬(.D¢ ‚¦ã©i0,qõì uujö×>ÌâÆ¶m¿äå原0úÈÑZ„pNNvSSs[{°ÿÊÃGjVm‹1ÆSÓ²\ªB"çÜ0m‹ÛLpÁ8·,Û¤zÂQËbµ'Ïž:}¡_¿²ôô´XÌܳg›Ï·¿¨¨hÊ”)”ÒÆÆÆ?ü0þG èÅjÊ¥õëbÙÒi"„Lx]¾ß]yó»_¼öÐO¦¥¥RŠ…”RJ$â÷û–>ÿÆ+¯ýcí†Uü7±ÛÇŽY|Ë S®˜¦¨äÿDr#Çéâ\c|þüùÛn»5b$ C7-Ý0­ÂüÜÊòâ–¶à7ßm„{†W–í7HZŒ`…ëF<ÙÓƒ:ÎÄŒí¿ž8Û6™Séí­ ÆÛ̦¶NJ(ãìÒ"/„ÜwàdB‚·³+Ó¤qA†ßë¶L£¥ÅìÅSRÒ(QLÃR¹zÎÌö`»¡›„Ð÷?þêÎ;o¢˜p.˲U•8W’KÀ€QIi)"%cÇd#,¥`HJ!€(¶”ßÿþúÇù¾ßyóõ‡ÅK×}Kîºþ¦;žyæ¥Õ«?]þéùi–A²³2½>—m”°S§Ï¦$¢ý2UUÉ1²A „¸à‚Lˆ´m¼ïàá¿?)¸bõún»É²- \8º''¯¾¡ñÛm;žXr[ww÷‹o}˜’˜pÝU3™%Ú;: ò V¢’Û40BÎlÀ;{î|nnŽ”\J H€C]íÈ1@ßý´eýÆî_rGiIn3fÂäRgc*%½¹Y½µøŸ·ý²ný¦OAA>çRJijiݰñÛÖööܬ¬yóæ$ü€Ñ/;w½þ¯÷Þ{ï½+¯œ¥(tÕ¿WÝuÇýú÷ËÌ̺4ª««»»»/.ÆXAA³òqÎSRR.eþu…:}TáŽ[[‰°l¼Ðòäß^ýã·ä$JÄ)çÛ™‰‘Â1G„H„‘£9é]ÿ„PT$K˜hRèXÁa©(€´ B)Çq.ˆ3D¨‚.1„A‚tŠ£a§…Š‹Þl7ÇgK€ „IB!0Æ+ŠÒ«F‚¡®Uë¿oiú<ìü¼œ>E™i*EŒÆc„„AJ »Ý.Œ"ÆL@œ1°yK‡¯¸¼ê®ú\sÇó?缾-®¨ôöÛoùå—UU•€Rƒ!3Á1ãôö}ÇjöK V<6aìØ=û÷?v¤LðûÛ;:wíÚÕÙÙ툪@ÿþ•ÇÕ*µŽ`ûæÍ[±!³ÍxF^AjZzSSóºõþyûéÓgœ¦lyßòþý*§OŸ¢ijoó¶$¡÷GRr@ÿ!ÀɺSõgÎL©žˆ)6™’3&·îÜšœäNKw¶%»ö:|¼nÁì9#T±Lk{Ín@"--½­½í =-sqîÜ9'W!)9éÇ-?~¶âóë~·hÒ¤j=®?ý÷¿oݶEQÕ»î¸{ü¸ ç–eÇãr»Ýn·æq).—‹„¾þºk/›4ñ/½œ‘–:oÎUkÖ®ËÊLÿó£¿W¨Ðõ(U,!­oÖ·yÛ˶{z⚃‘HÜïó–ö)EDEŠ-lQ{²>)9% Y+ëÓ§©µ¥«'Zœ_¸rõ†ãµµºa˜– R8.—Kó¸\šÛU—uöü…„@`̨áIÉÉ+W­««?sÿ’ÅÆW) ý×;Ÿ'§$¿úÊ_ü^@\ئš‘èù––QýÊ¢±X¸»Û2-ËÔ-ÁCØ4Ø{d`eIYQ®@(jZ»öÔ †t4ψ(£p·áò¸)%7‚vä{„10¨´´ÜÞµ«¶¡±³zÒ¨c'êZšƒãÇQ÷¶m¿&%§ ýª*/\h>}úì‚ß]ãû~‹a°éÓgD¢±½ûY¦t=‹E#Ѩnè¶Å„à‚sÝ4ÓÓ’ô/9züŒ7&N®P&45-0løðÇ;vìÉ'Ÿt)MMMÿ]•€0rh™£ÞEï,&{ë¦T0Æs2‹&޼üÃoÝuヘ% h ‚0“cIþý_Šò‹ÞþèMÛ¶.±å,Û\¿qÍ_1&/½ô"!tÁ‚@ !!á¾ûîëׯjö¬+u="¹m›qÛb™ik6l>ÛÐ4|HÿqÇt†#¿ìÞ·lշ¶\š[SÕžh¤¹½½;…ß´:] MKDM+Ò£’ŽfýbéIJ€žh,‹;Bö€ßm˜öù¦smí]†iK¡ÎhiI¹aZ`ÖÌ)½^1$_|ùÍwßù¬ªªŒsI)mºÐÜÒÞfYç¢_ÿŠ«fÏ$c„#N¨[å‚Û*å§Ï6nܸóÐáU©)É'ŒøüËM7ßúìë¯ÿOv–wÂø‘WÏ™õïU«ÿþܲçž}Âë%Ñ«²ª¼¸03';݈GƒÍS'W(ª‰@`$œƒB`lRb)صö»çΜöþòFâ [ÂÄŽTTH@¤0móµ—/¸rº¦hï~¹ê\cóßy€beÃÖmÃB…ØÌþhùWsgLóû|TQ-[_óíO}Kû€#çà\ö.R‚L$çLÊõßýøóŽÜoVV†·šZZÒ3Ò“ü†iI„0&‰Iªa˜ÂBJ·Ç­Ƈï}ÒÐpá/ÿ11)K „†õë7~ðñg³gÏž:mÆþýûî¼çþ§ž|,33óÝ÷?\ºtéÕW_í ›¹WÏ=qüÄSO=µxñâKËÛW\F/I¢Ñ¨s:Ã0Âáð¥ÇÍ--…yI*a f!—[ìØuðÙßýã‹«* %ØR8«)V4NUÄ‚0„mçA–P©” G. t‰AbD±Û¶tŒ¥DuI)‚äÅEMS±Î¥TJN5UXüb¬&Fq΀‚‰”‚`,(îuk`Ü+µpê(θÔÁG(#-åîÅ×À™sç·î¬ùöÇŸ;Ùüþ‚܂üÜ‚ÜÔ䤂ü\K ü=qCR%?7$HFX”Qx¼yÛŽ¶—?]ùêßþ´yûn§dÛöÛo¿½hÑ¢Q£FHüó/5#Š J†Î†ºæÍ³sß3Mn¯{äðÁ›7o?q²¶´¤xæÔÉ+¿Y¯ë&!¸ºz|ZZêùóòs2?þä‹ÚÚz 2/7gÆÌé‘ ›~øñÇÍ'Nœ¸´9••}ûUUŽ7Ò¥©¸8g )ÉÑÑã'ÒR“ÓÓR `qû»VUåÊ)— !„`€e³µ›~ G£c‡BÆu}Ǿ½šZçϺ Êl&B×Ï]´û`ÍþÃûœ—ðz|^»=ØÎ9G'—M¬>|ôH4ÿÇ_Ÿó%výúë{¼ÓÑÑ‘—WpÇíwçååEbq!…×ãNI øý^—[Ó4U£äÒÁ"+333#ý«å757½ùæ;‹o¾® 'K×#ÑxزMÆÙ§_¬ÿeÏaÇ†ÛØä`LiYë¿ûiæ”Ë·íÜíRÕÌôô½ûŽ1¤;ýyׯ--­×.¸†ReΕÓ'Ž‹ Éý>¯”üÀ¡#5{÷WVV ¨*wG‚]_®ø&--ÅHì ‡}øž‚‚ €~øÛ1U±ãÀ¬¸­G@ŠŸÇdÜNªä6CBœë o9p|Âð¥™KÀŒ0ž:eŒÄèÝw¾"Ц©^ÑÔÔ’œ˜¨ª„'QHÛ’œcÓbëÖÿêr¹‡ .ùîûmEEY×\]]ªiϯ{T—–™•yölczF¥$®ë‘ˆ>zô¨cǎϸrÖÖ­Û“’3c±8 Ð4%!1À¹…B˜Û»¨U(ª­=k™ö˜Qƒ0¢#Euùý©™YùC†sinΘ¦i>Ÿïxà·xÝÞ! ÒûŒD@\ܹƒ³A•” ›€R 0:j]þõ»7οǥ ! @‘Še1ËæT!óçÜž™ýò«Ïu„‚ðÿÿ çåånÜøíÏ?ÿìóù¤”UU•·Ü²Ø²Ìýû}»i“®G3Ò¿wí¦Ÿ~Ù]“™–2vä°¢‚¼‚¼Ü²>ű˜¹÷ÐáÝ{÷õD"NÅK"¤i´ 7;+5 ¹‰c5Gë{³ œÄä¬ô@jrrg¸ûLC«sŸs!Î_h?!èTUÕUVZ8iÒ踮†½ÿࡇŽÖÕÕ/¸fîýo¼q‘7].Õãékp IDATq+Š¢(495)--Ýï÷múî‡#‡Ž <@H(qÁM£ëÃÿ½{ÏáYWNzèÁ1.·›*VGkÏÌicŸl¸áº?½ùÖ e¥e>rÿš5Vý{MG(øú?ŸMðùæ]==5ÙwÓõÓN>}ù¤ F¯àV" „K&8fcÌTJζ7(„+ÔÖð€ŠBfŒsÀ¡Þ\ _®ÛÔ'/¿83ëÇí{¶ïÙ{ÿ­7f§gìØ Z)Y†õÑŠUyy9 ~¿à\,_¹:33=;=U7 [Á¥ƒ¨î:XXÌþfýÆ£ÇkºwIRBb4¢ïÙ»¯ÿ€*BIO4ŽFq*B¡pWW(;+ÜÒÖºlÙ›GŽKLJ~àá?4àŽÛn ø}ÇNœüè“åË—/Ÿ6mš³$<ÿüó/¼¸tòäê‚¢… þvä,^¼xÙ²eΘqÞÙ¬¬¬ßnî.Ù* Ÿ>}Úùê¡C‡²³Ò5)9¥K¶zÃö_}ÿ¡%7O;Töúës)¹cR‚¢mä VTŽ© ‘ÂçÀ „4Ƥ˜ )FBmT—ËãM7ba)™³g¶ÇDCØÙxrD(‘Rb@ÄÙ´aç&t¢àœUÐ9[K¢7?œR*îÓ§€*$--ÍåRcq£'kjnonmëìî‰Fc™™™¿ÔÈ¡§Îœ2x ióä¤D¦3;" sú¬ÕÛÖ^yÓ³²²ZZZœÿ[~~~II €ä\0fþøÃÖ¿Ü¿ØÔ¶ŽŽ p§ŽCËqSœ>{®¥½½¢¢/ÆRQ´†ÆàªÕë'ŒSœŸÍ{ƒÙ¤ÅìUë¾mï _õ‹±'ë·íÙœ˜2iüòôH41À¥”I GON $J)¹¦eÄ:¢Î/3xààªÊ~[¶þ4zÔ˜iS§;C,ÿdϯ»`Ҥ˯œ9ËåòD£qMS““SS’|^Û¥QJ0î%‹]™$`@)IIyüQÎÍx,Õ£Ñx̶­Ußlþå×#–e_¬Ëö. ¦i>zró¶]Í­­ûUM»¢zäÐ5ûäe_6aÂÑÚï~øIvv!˜qæÔ Ólhl¬«?›”˜ 8ÿáÇ-ºi%|S.»¬¨¸˜`¸ïž[|^$”EÁŠŠ±’"Éä4¢z3³³ÒÛÚºüš‹²˜-¥}&رå`ݘ¡¥Y €E)$ÏÎIî Çc…! u——g#D˜à,8µ³,Ñ4Êúæ·6wlÞRsùåC6ÿÚÖÖ‰‰’‘š&9óz]¦©ûý¾p¸»¦¦f„‰7nê¦¦Lš4ÎëuaLlÛlkkik»† ÂmÁࡃµRðòҢĀ—j*&Øíöc¢df夥f`¢(á„ÙÁ`ðøñ£III¿õ¢ß&Ž‚c9ûdl$övÀS&]ýͦ埯~÷w³nðQ•H¶Íœ‹Ja9)çù¼§ž{ìô™ºÿßB¨Pº`Á5×Ì›çr{kkk½^o àWUõ_ÿzó±Çþ¢ëÆE“2PL¸à­Á®¯×çœQ=nOiq¿ÏWYV~¦¡¡3Üéu»+ûäÛ¶¥ëñ®ž8Rg˜ÖEñ”Rš¦ÙÞÑmv\75üoÇ!JUEÉ„q£ú”»4oKsðƒO>¯=Q›8|Ø¢ÂBÃbšFˆ BBPZV¢(ªKÓ0ÁKî¾ #E\´1ÛL45ÿñ Rþñ{ÿãñ©ŒŒP+?7µ¼oΆÛG,»åÖ‡ž~ê‘˪/Ÿ;gÖŠ¯WoÝúËÜknýìƒeýËŠc‘pD¾ÿÁš3+¾ûiÿÛ¯Þ’˜˜€0¶’ ¸°lªè™Ž¼ã†ê{Ü´`\‚¯['(Qb1!Œóº³çŽÖÕßwíuõg–¯_?³zÒÀòЦ¶à?ÿòÄ}K„ÀˆñÏW¯kmm¿iÞ\›1)äkïìq»UTÄ¢6Lp.$FŽÀ€Ù,_¹²«§çÞ[oõ¸ümÁÐúMß]9}ªÏã³ † ÒxSKsý™³ç/ >8%%ýdý©WÿùFO$ú—'Ÿœ={v,{ñÅýÓ¯¼ø>þìλîš1c†ó¦PJ|ðÁÕ«×|ñåÊ·ßyWU”ß–Ó³²²üßê®ßd@D"‘ÎÎNç™#GŽ´´´8÷ìÙSRœçóù™¶Á¿Xµþµ·>ä÷·Í½j2p&)EܖЦ ¥·ïK†Å H)‰m·q&.M"c’P‚)ŠÇlÆ‘ÇM0A‚g@Õ²‘ˆv#0V! ¥KU0ât ’â’Ô^äØ# Dze­p‰¿çz–œ»¹(?_b‰€$$(DNn¶à‚snZL¨.íòê =ùÛn½eë¶m¥%¥) ¾ Ý(<R_tåÄ?ûŽ1>pàÀcÇŽÙ¶=nܸÔÔTÛ¶86lèWÕ×åöy¼¥»sþ´êŽÎöÖÎŽáÜ>ÓXY^¬(*iêúùóM“™éR•O>û277gâøj&ÑÉú†¤¤¤`0t¢ö¤”2))IÕTÃ0ÜnwnnnKKówÜ>aüX!DGGÄ¥pJê¢ ‡,ÛªÙ»oáüy~ŸÏ­¹ÖnúöÀ¡#‹o¼!59!Ú‰Ç#\ˆ¸n­X»¾#¾þÿ‘užRUçÿ?íÞ;wúlí}ÙeY`é½Ã*6D%ö†1‰5ågCc/M¢±±+–("Òé°”í}w¶Nï÷žòq— Éß° 3w˜™3ç9Où~¾W\Œ„¿ß±Ë3Ð_]YUVX¼cÏî¥ –zr³s¹@Uµ\}ùµN»ã\KýÎ=;€&UÍqçÔ.¹Øþyÿ¾µW_—“›wüÄÉ}ðn HOO_}åšââr!€¦'%Y²XÍ).‡Ýfµ˜M#cKñûN§ó\‰`€I¢zLךžÐh’q°cבm»Ñ5ÿgÖ{„ä!8s®žs‘éθ麫[[Ûê[ÚÌ­šLLð±cÆäçä~J©Õ*‡CÑoØqòô¹i“'üYðz'O!9Y™+ýƒý&`Œ‰dRUÉdRdY–% Â&D@Œ Ð8ËLuu ¸±ˆ7©Å)à»N4Ž)Î[šÇA‚$Ïž5Þé°k:‚ Œˆ$ .‚ÁÅRÎiœRУ”S]P.°$<’b½~í'ôáÇÛ‡,©¹ynU–û<½>¯·»»Ûá°ûýÂÂÂÂÂB“ÉdYÚðò+W^±jhpXÓãD‚z2‹F£±ØÎ‡½¾ Ú¬2bÜÓÛ—“[àéhkíTSvvvQQÑÆO>ŽÇã‘H$;;!ÔßßÒá?"Šó㼓Òhþfœ ¡CH DW,¿þë>zÓׯ^g¶™Ñ¥ÂPE‰'/Ì+yëï<ýÂú]?mÍ@/üÞšTU"D@õÄË/oظñ¡Ûíååe¿ýõ­°H0˜™æJDc?ÿ®îÌ9¿?hì±xüäÙ3ð‚h Gœ8{þú£è8›¢±D4–•3*Š€`”æM›\““ǹhhlOKI=s®>?/wÝm·HDVL!lÈì Á3&ûÒ5Š ’$ a@ƒ-­-<úķߺlÙEI2* àŒ $ÂÜé"å¹ýžÀÛoüé™ç??ÿüãçΜ©ollYsݯ¿òäø1Å~Ÿ²ÿ—†»O€¾û¾åWW/æLD@È™*D£Ì’LÄo¾f~8¢—º¸àœé²Ä‚<àq$¬2‚ƒ^ÿ—?n»bI­?~ç«oªËÊW.Z‰ÆÿùñgÜv‹É¤`ˆ¾Úºýб“Ï<üG€P,ñµ7­V›;5Õ §IŒj„"Küë“lVÛ7Þ‚0lioùaçŽÕ«.³š9|òÌéæÖ6MÓòóóËËËsóó?ÿâë~Øæõz}¾ÀÆ6žâã?¾âŠ+Zÿ„×ë»ûî»/4ðRUõ–[n~ðÁ-Zø?U„Peeå…&aÿ£Ñ¨Çã1Œ2öíÛ×ÕÝeãvïÞ=}j50?þôë?8òàw\uY­1«*IŒRˆ%† æQ†I!$B8à=É0‚#À‘IR[:^Nçœë˜%ãD–1D˜sÎ8” DÍfU^ÇcX" 0ŒŒ@d(*BHðÃj€˜êL"$Ùl– Ðèk¼pÁ BÆÃäàp$lsØ1„ÜÌFK’qŸìœ¬ôŒ´3gÎ.^¸ð烿lß^ï2[ŠMÔ¥A _6oê5·ÝÔéå÷þþÁmÛ¶544¬\¹’1ªëzg{ûçŸ}öÚ+O{Û›#Ñx~~V ªâñ UåÞ`ðôéúÂx¯¬¤ä™¿<Æu-OhšÇú‡>üük³ª^}Ù¥{jniÕ9e!dëž+k/6)¦p$l1[“š–H$-6{ZZ†¢È%E%Ý=9ÙysfÌQÍAjJJuÕxà°×§S–ž–¾`þâI“§!€5cR,–,wZzŠSQ„B qìøIBˆ#%E.¨0ìñ¥ŒjºN5]OêqJµúÆæ]{¡#Ðÿ†Ðˆ‘üP–e-‘|âÙ—ˆ,I’ôÕ·ß‚s³s+ÊJ\Ng~®Û$« ÍmŸ}ý=Aè÷wÞš—íîíúç§KŠË7~òN<ûŸI‹ÙÌh@Œ1~å•—\)ÎíÛvdeeú}¾DB{ðá'Báˆ$aŒ‘DHjŠkLi‰ÕlÎLMç8t$--Õår©Š)%5õðÑ#õMFû„ó‘±/‚‘Ëa³XTÆt“Œ¸@P$Jp!0ƪ,¥§;Š s9a¯ïd]þýG½þ É$ßxÝu æÏ•d cD$(8‚î´Æ‘ѺçFãI”Ô#áPnn.ˆÑÛÝõ—ÇŸùÃ}÷VUW…#€Q¡(ÁBŽ 'H§L,}eÿ·5“*Þ|}ýÁƒB°7^ùò+®jïè½ëžGïü¼°°à­¿=øå¿·³eÿ‡Ÿí”‘¹bLQee¡$À„`›Ï~ø‰O ÷ýz…Bh4yäÅ7´ôé://,vX,ÇêÏ­š· +-õ­/¿°šÍ—.YÚÜѾóàÁ• ¹SS1ÄûŽûÇ{ï/_´ÀjR£‰Äó¯¾n’MÕ¢ÊSªSÊàÀP³14xÿ‹OSRRk.òúýçëιæÊ+S]iÃ_}ûíïî¹{Μ¹¥¥¥.—Ëb±!:;;'Ožœ•åž2uÚš5kFëE&“éé§Ÿž2eÊÚµkÝn÷…ébÁ‚ååå©©©£áÍb±¿»ÝîÑÓ•¦iãp8ìr¹Œõù|@`hh(##cß¾}º¦···Ûíö#‡ß²ö‘`0þÈ“?tìôúÿ»{á¼?ì8êt姤ºÂ‘Èf%\ÎÇCIgTO". àaÙ¨3.ÉC´d’3‰qÌ™@a à@ $M×0$TgØà9–HèªjB Äy¤/ R]X )M-åEŒÉ‘œ£7s^$ƒäâü ָ̎Ÿ~™X]Y\œ (B`Äš+/ùä³MÆ>mrWWäô“÷®Rh£1j•…³¦zÆSO?ÞÛÛ}Ç·q’ÉXÿ@Ïó/<ûçû×ùÚê[Û¼þØp49Œb±p8tüL£IFmm-«Åjµ1!úú†ΟÕÒÖUU1öòËW)&¹­µM5eÔÙh4 r²Ó–.œq®¹óرãÇŽ3ÞþþG}¼ªªB’p<u:œ¥eEX’Œ KjÛ¶ïºÿ¾{O:sèè‰u·ß–ëÎÒ´dB”Lr›ÚÚ?ülSUeeaNöÆÏ?/ÈÉ+**vØì>¿¯·ÏsÅÊ+=I}¤ŠØÖÑV1f¬@‘%³¢ØrònþÕ-D–dL°LD6»=©%”±¬¬ÜµkopŽ †"‰Èy¹™ÙîL—Ã*)B"ÁøùçŸ33Ý¥¥EÜØ¸ ”QJ5¦Q-®ÅC‘h€êIEVêꚬó¥·^·é«ÍýC²-DŠŠ1c*Ç”566ÝrÓõ›•RªišžŒy<}ðÓM;„‰D2ŽÌ›>å¢s({öP,ê” ãŽž>Ûß?4îôÔ4›¢(XF’„’$)ŠŒ1BŒáˆ±|°ÐuOÿ¡#'ûúû%=bø±qL öGŪÈVõȱ†sçÚÍsw×`WO?€À•âBs.É!„ Á‘žš&ÝyÛâaòývˆSR\9Ù¹N»¥¹¥©­µÇn3çd:}ð𰯢2]qüøñ%Kfee¶µµÏšU3n\Õ“ÉdÔðFN&“‰„>0è3š$Y–)£Œ_~9±|ÅÕF“;™L†Bᮮκº“]]±XÌ£3„Ä)êÁÈ…FhÜ|´NcüA˜` ‚å ! Àˆ\¶òªSg<³áÑë.¿­  ÔL9‘!á2Æ1”0¾öŠÇŽ©~öåÇúû=>«ª*Œi+” E–ž~ꉿ<ö¨”j‰¶–Ö+¯¾qhØ›LŒ¸z½>ã$0›”Ô”T‰HÕl6› -77oØë „‚B#pg¸J‹ò†ýÁH$Ê'€ÉDfL8ì’s_ß`<¡Å“ú™†6ÁA8KjšÃáHMq-©™8~\•Ë™‚ D!H„a`l ªÃBØÙÝ+Ëòð°wò”R,„®i6¼zÅêË«ªÇ!‘(¢”X,TQ„$ L(€a¼zõ¼?ÿù6>±tÉ,Irdº3ÿö·çn¸a]n^Ní¢y‚+kWÍž2­¡ñ®º³m÷<üòÓþµ§oxâä²Ìt;éDÝ™Ûo¸ö½´îo¥9-PøLƒG€P0¬©›™’6u„Í{ö ù|“«ªÿúî[þP¤²¬dâØJ$KÍí]Ïýóu]מ¬£Œ¯á%Õdò ô_ºliyAAR×-VÅïÓãñþa_oÿà;w ùÁÎÃçfç\¿újWª@(8—åŽ;Ö¥§§ƒ ´8………k×®}óÍ7^xáE£(=šùMœ8qܸê \ˆá0~/--ÍÏÏ—$Éøë<°aÃUUfØèBjiiîٳ箻î2n‰Åb¡P¨§§'x<žœ¬ì3gÎ@$‰HØþ›žijiûëS¸33ö—]¼d\å8ʹžf“9‰é:ÄsÎC˜ Á%…Pc @Î(PLŠà4ã’D’ñKBHu&GcQ  Z¬ª1j6Á9€Ð`Ón@Д0€16Zœp ÁcÊ‹±,9e"8@ 0‚;5¦lŒoíè¸?ÿrs Ì/(êîñÜû»uCƒ}Hh@ %\NknvjFªËlU½^sS«ÑZ­–x<±mÛÎíÛw/K’ÈÝ÷üzÞœÙD’YyiÃߎ¯{ð¡õÓ¦N¹ïÞ»­VK8‰F"²$3¶ïÚûõ¿7/ž?¯»×óýŽÝ—,­-Ê/ð‚_mþÆéL¹ê²5áí§ÏVTŒÑtÚÖÙ!)2H–eÕ¤(ªj2)ªIÁA24]ãŒÉ²Ì œ'’ZBÓ ˆ±Ãe/ÌËÎHsuuwz¯$‘œœã„!Ј¸H×õö¶–Ÿ÷ü¬‡8žÈOq ÀÁž@ '3­ËÓOA¥Ëé´§Ù¿ørW{›gâ¤2YRæÎÜ?à{ëÍ/dIÂ@ªP.„‚q¡cÇD³˜L”={˜T3BRMMµÅj=üËѦ¦Îl·S"¸£g0K`L™˜¥¹¹©¯ß3mÚÔ7Þx§­­=;Ë…aQɇ¼o¿ÙŽFu…?B¤`0lµ¨L”—^~IUL† ,+ªI–eD(¥çå½üÿSÓC €1 ž¿¡‘ ”s #`±«2Áã+¦Z””Ͼ{oBՔų/1™EáBL@ˆBŠ®(ûÚ ÿzîåÇ;8vUÕÄ”…¤¨†å †€R&KrIQáŽ-_îÚ½g×î}ugê{ûú#ÑØ¨CF<‘ìñxz<ž Q~!E–óò²%UEöú~9z:©éÛ‡¶´÷!d ÅEzjªÙbVUÁ¤¦&§°0?Å™BÁ sÀ…À#å"8×(Äb(ãX4ÞÚÚ–““c6›‚ëóm;v«ª¹véFGÚ°”")îÌÁ"¿ùæ¿«ª >øàûuwü  „Êe«.Þ»ëŒQuU‹Æ "B Ô4ëw½ýÔ ¯|úÝùcC[×¾ÍçN &Òâù³¡à«W.êܶã ,€hfMéeKf:ÍyÅ¥‡êNüÇ»KKŠ8ã ÁÊ„ªª‚C2Cÿ§3Ž €ÈuÆàA-©qc†Å„&©!:Ppc,lVG,ÆdÓ“\V €¦3Œ MšÍ K²`L×4LD# zBœL&1”8à@2‘ †\@ˆ @à‘3<ÐÐ 4ŠÌ‡ADUE™ÃfßðwýÓo!‚?nÿ©±¥õ²+oûབྷ:»<Ÿ|úõ÷­{åooüñß])©ÃÛW,j¨?ñá'ÓÎ6Ývó@zþVó!JÕ5 ‡üñö£Ñ¦!_$Ð:ºCuƒÁ¡P,ÉD‚±3M}ãÇ]¸pžÅfëìêÞøá¦x<1©¦úàÁC£ÇŸx.33­££K–$—ËšåN˜ÂÐ4Í •†ó–ôÆ+dYÑ4í¢‹–íÞ³gÇŽ=7Þx“j2¿õÖ;û÷\±ââæææÏ¿ør×î½f³¹··÷þßß³rÅò—ÿþjWWϬ™Ó÷ü¼¿¢|̺[n€œ8WwàСYSfV”UŸ8bs8º{{5Ec±¥ kM&SZªËb³¨ŠŒ1r (cýý}NG !’¬(Ʃä±P¨ÓÓçaœÍž;?'Ë-Ið©gžìèèxÿ½÷Œ¢ý¡C‡Ìª:nܸãÇöÙ]´$;Ç͘žÐb‘X,ÇbIE1s„9@þ`hÞÜ9ÅE¹ÂǾoÝïþÜëé7ˆð™éwÜ|CyYQff§tÚ”‰ÿúðS—Ó 5-YR[YRT;kšIV¾ÛùSeqaŽ;³îÔ™¸¦•äçütàð´ÉÕ¹¹ùBè½}}ÝÝ6‹yÁü©_}»ŠÜT IDATóó/~‚ggg,¿xþŠåËÒÓÓ!À@0*„Ðõ/6}“f•'çô4Ó˜$éœQÀ!€pY"c óÜ“3=íó¯L$èEÏtgf=vvÛ¶ƒå%B\ÓÆ„CÁ© Lã\"n’8×ç J(ŠÉ•⨮.‡c»vî‹E#å%Ù¡p¤¹uP5Ii)V]ç}ýýéiiݽ½o¾ñîÍ·ÜPP˜·}Ǿµ×®$c…“žž€DEEAsK¦éÀÒ’,ˆä!o4;¯âöÛ—ÆUU›L&ÆX_ßá_öõôt'â11b %ŒŒðõ@ð(Œ Ry-Bd’H$%,B̪I5› ¡P$™ ù¹7­¹ç‡]_¿óéß®ZycŠ3ˆ ‚! 9˜ Y–ËJË;0ú¤ª¢P]‚SªS& ÄÆX¹¦%8£Š,ÍŸ=sÖ”š€?Ôß7ÐÓ7Øãéëñôwtwwv÷øAªëâp„šNÛÛ» ”² ´ZLÙît³ª‚Ÿ?”Ô’‚óŠ1¥ª«0ªɌ0TU³!Ø2æH9Çœ .CÈ ‘ ƒø¼r˘”nÛ¶­¶¶vóæï¯¹æj£×ʘØú÷ÞzKRÓÏë÷FŒ"8CœÃp8òíæ_n¼aÏ:x ñ»ïžÛ±ýhÃÙ³‡ÿšž·úÊËj&\@€°YL féyÅEÅå@l¶ÛÔˆoø¯ßìðÇ?‡#Q‡ËuælýÕW®ÉÉαš-ÑxÂawݰö&"‚H.a,d!8œˆ14Û­®Xìf‹ÍÜïñ^uÕ’©“*“&WšdóÏN[h,'æœ3b±¸¦Å0f’Ä5*4œ;×ÞÒÜ7mÚø”gSsϱ£u•e€%ÛÚ;»ºÓR­šÆ‚¡DA¡»»Ë›‘™Ùãñ455µ´´.[ºäÝwÿåõÜnâøÑú@0tãÍ«z»cñ„Õbîõ È&»Óé D†½¾ºS'œÎEQ „ g‡‡ã±Xâ¼[mFF†ßï7hYÿ¥%Â`SŒnß"1¢Î„ÈDB–d›Í!JÄõX$Æ@ÄãT5©—×®=QÿË?ßñ¢—M7éAŒ° :'c‚©~a@–$]ÓçŒRˆ&˜é!Hõ¤–HpÊeL§œ1›ÍZnR rótëT÷úà ͭ©o8§S}t¯dçS0ÃÉÌn³T”åd»9×Mf³,™ €áH!ìp:Ž?UVRlw:²bñV5€¿ ˆ &„ÂH–1!˜Hˆ‘)vQWW7‘”þþôô´Ì#B@¯×çvg Ï7 . r‚¾õÇ3ÑXBØÝí³;mJ—]:cëÖºý?ºìŠ\x~Ð bddè ´ÛoºaFnÚ@wóÆm{î=äï®;ÝpéÜ9þþ!/EEn EJŠ !šêt0F+KŠo¾Ú÷Ƈ»_Ù¸qþ”)ÇëÏnÝ·ÏlV«ŠKºúúK ‹^~çíK-ž?sÆþ#GßúäS K$œ.×ôÉ“ @Û¶ýøÂK/­ºt•ÝfÛ÷óþÚ¥KtJ 1&çB,^¼øñõë $ €½û„"AŒ`Ø´@èv»UU5ÂX]]]zzúy _·nÝæÍ›Ï iÈèUUÍÊÊmþuuuö|ðAãþš¦Õ×××ÖÖWóù|œs§Ói\!‘Hhš¶`Á‚’’’`0hµZ,X`_E™=cʳ^_¶xÞm7®U%Iׂ¤S„ Á9#ˆm€㜠c#R}c^Ç(ªhš–H$(ã@„ ,!ÆÁHQLŒ1Æ9Fˆ`×ã”R·;Û°ê5B¼ €‘\\Zˆ™ê@>v\rVV:BPã  ’?khiïèéõô x}²’Â[o¸jhØßÐÜ"Ë’¦%%Iv:myù9é©®i“ÇÏž9åþ??óÅ'ÿ˜3cê /½9±¦º¦¦ú… ovvöxúÆW­;Ó0sÆÔ|wæšËW>üê[­˜Yšiå2.Pj¬›FÛbýáh$ÚðwE}Í!ÈlÉÎÉm ÕÕ5–•_¶j§Ú¡3ç¾Ý¼=™L¨ª© /«µ©±µ­“Qf·¨Ù™©í]ƒ†Ë‡"a"ªó–6OqacbHéëÎÖ?~"Oèºvýõ7 <ðÀK—.{ê©§OŸ>ýî;o¥¥¥ù}¾P(øÐÃÄb±—kú´i7^ÓuB$›Õž£šÆŽ­`:ß¶cûw[7ƒeËj9ãv‡Ý‘]VV±}û–ÁáÁÙ³fmß±Ínw”–—k¨ßõÓ^·;Óç÷WUM”ˆÅo½ý϶ö–?=ø—´´t«ÍvºîÔ«¯¾ì÷ùÖ¯_?~üxˆÐo¼õÊ+¯|üñ§œó“'O®YsÕUk®|ï½÷óóݵËf@µšÆAÌ…`œÀ ˆ„¨²¢¢ª²rÍêËàBpJ)eIÆ4M 1¦¥§9 ±pˆC&EœAF9å,™ŒÃ¥®#M3««Â‰øß?øR£´vþŒe ¦Éµ¹­½§·ïÝwÿíöOŸV”•aË[Q³üâÉ[8òÜóo¦Û”òâl–Ð8) ù‚LPLã‚D Īj²ZˆªîûfGzº«¸$a‰Æ^}õ‹™3ÇßrËJ«EÄ!8ojj?~|2©%“4 ËÃ0G~_(£Ë—ÏÑt¾mÛH4V{ÑÊè®û½yÙ®AoD&Èj–ü99iáhÂlV£Ñøýo»í&IRÚ;zÜî„Ãi6}l{»gÈç[½º¶£}øT]SFfžWb\D"±©S§ û Á` µù\(àשAò²,ÕÔÔìÙ³çÿC‹ô(#äçƒ7 û" ³Ù­ádR‹ÇºN9Gd 9˜P9½ ¯âûíŸÔ;rÉ’+Ýî ¸¦1„±bÂŒê£è€B$-™ÄŒa9¥Tg†*FpÀ)eºO$´$íéò¡`Œ¥`(¢šÔÉã'×T×DcQ‘Ù¢,%’Z8 †‚Pð,wfŠË‹Gcñx\OÒHØïõ$"åææ=~ !”›—£H2Â"t*Àa‚UY’eÉj1K&y$$!Àرcš¦3Æ222„ÃCÃßmÙvßoïX0g¦à‚r@5Á€Cˆt=Æ£bÄš 5MOÆLÐH4ŽÄ"Ñ$ËÉ„ «ªj±¨v»]g”êLg‚™-ÖÁA]×T“ ¨PÀVÕl2É«êNKIMK‘Ô8„"ˆÊ(eL‘‘¦%¡ÐÀ Ïˆtõt%5-OrÎINMudefVU”df¤»3]œ³´çÒù³3÷BÔÙÓ¯ò࿞_»ö‡÷^¶ªöÉÇî¿ôª;6<ÿèן¿ñ䳯 }è÷²$GÂ! áÉÕcn¹jÕÞùpv‰{ù’Ìñã­vBÓ}¡Äp áÑÂñhgBƒŠ® >.ÿòÓq€¥•Ë—–•¶7×=yælc;g"˜bWûÛ[N4t&4!ˆnïê—$âÎH±;¬&p |üdKv¦Ó3èëî9€48шq~_ ++3‰aŒ|}zzúÅ/¯ªªÚ¸q£ÃacŒ]³fMzFæ7ßü»··÷æo,/¯ "UT‹Nud")7ÝqC(*.*[1ýêÕ×455nß»£·÷pgwg0èKOÏüè“k—]²há¢M_}‰D(§êê.^ÑÑï#ƒ¾x,°sÛ–––U5;]iV‹ußÞï¾ý:ç|ÅŠ7ÜpC X¿~ýæÍ›-‹Ùl…ÂMM =ô Ífñ…¿N¬©:~ìØÔ©…ФïÞubþ‚™V‹‡¨p„Ä@ ã+EG·£”êqÆu=Æ™Œjñâ Pë×èû›÷”d¤M./°XÌES'„4Î~uÉ¢Þaß¾Ã'fL›i—32íéévŒÀú‡¯ÏÉv2ždZBBpù²‰‡ŸÝ·ÿp¶snÄïééw»R‚IˆÈH’‰I•-*”лŸ|504üÇ?Üœžf¥¸lË–MÅ}ôÑÖDR¿lÕ2Ã,‹ î÷û(¥²l b”B‚£H ÁtØí55ަ¦Î½?Ÿ0~ìâ¥s|[·î!Hää¤÷ö ¸œæhL÷‡âù¹œ±`08¶²âè±ãçÎÕä56v¸ÝiB°‚Âìh4iwØMfs¯'œÐ`^~>Õu„–eÆX è…C!¢°o ökL‚‰B***LÇ«6Áúb¤å>2‚ý}¡ÒÔÔ—[äì?^MÆì ÄC„ œ[Ͷ«VÜz®åø;Ÿ½:kêü©æ .0ÂbJ9h4r¦EB“jÆ%I†€C¨N“É$Õ©Îx$®%uñÆ745gfd¨ŠI’$c"&©³x,n³ÛÍ[˜âJ%˜pÁzû»#‘Ðà ·Çã¡TÎu]Ç[,–T— |èÈ‘œœìñãÆÚ,6«Õ–Hh”ê„Y–!’$ÙìUU1Æa… è´Z­N—!ljj¶ZÍv»ÝÓ×ïp¸††‚Œr#K(//;pà@íÅŸwÌL¸DãȬ*^o„ë833«««/Ž@T“\=¾lÎô* 2„Xd , @£¿œ<5);“i\ˆqF6£Ð’IOb•³ÉᲕ !P‚ŠD9_2wªÕ’úÀ“O•e¦¤00ˆ16²4ŸÏgD1cÆÎK €¦i³@hT&¬ËÀ[Ûl¶É“'þõWYÙÙåååcÇUuöx‚Aÿ…jÃcrÕªUƒƒƒ£˜Ù—^zitýõôôtttí@!m<üàÁƒMMM>Ÿo4ÈÏþÍ7ßÄb±QA½×ë…:ŽÑáha­ît]0hhh|ôÉGùy¹Ï?ö§œìlªQ. å"Z$³€°£»=™LZ,“ª¢ü5ÁØ,ŠÃnK$’i„H83+=‹'â:Ìj±†Ca!DˆRŠ0æœc9’$åeg"1Biii¡`@ŽdL7’È–ωÓõœB°L!D–ŒÉR G%«ª*!d1›‹r³Šò³U“$I²j6ÙívŒ‘Ç3'V³DÌR1²ÔÀÈ1`€DvVf àö—×ÎòÙ×fÏœT]5æúµ—ß}ÿúÒâ¢3geE^¶üZŒpqQþãÞo%dÂøª—î¾}ëž}O¼qš(|á”´+§gÚ °p«Ä!íÄöõû4'Ž-­Sì ø·~¦±ÝÇN»¥4/Mtª©+¡éFu££gÐpUò ø¦OÛðúý!‚&H@Dc®aIQvKÛþ*55eÝ·Mžüàë… ¦ËŠÄ(å‚0&3.A!ˆ‚0.¸à02ªÓ8Õã”%!Ðp3œ)y’s2MP沘Ô·NWN $ ² `  0}båp0|àÄ“ *²ÈrÛ}Ç ‚¡a &D€PÊ9åTg‰¸îŽrÊ5*"‰$&2²‘Àc"™±6m>[ßò›ß¬™>­a€ xî¹»,&Y£4c²IPiníP™R‰D)¥n¿/ÈÔ4(8ÀbÂÑäO? …¢—®Z˜âJ=yªáر³cÆ”ô÷õyúRSmCC!‹E±ZÕ¶ÎþÒ’òêÉd6[¬V‹ÅbWT™ëqB‚ÐÙéÉÈH«¨ˉÿO$#¬Ñÿˆ²Àyì°aX/1›mmÍyyÅ!8ߎ@qCÝÃu8®|jQî˜ýÇvþrô™³—)Ë…¬ëôÂŒpÆ%"aI…S*°¬Î1˜ ,agФ™“=ø§cÇëê››cv«­0¿(55={}ÑhÔ¬ªmím- þ` 7;«¸¨dle%@ÅâªYmïìêì좔g¥§O¬—ârB„UÕÌ93›e%U•)å’$)ŠbµÚÏScŠD;::k/^˜ˆëÆø®]{jk—y<‡ÃŽ0Ð5MŒ°!áõ7üêÙg^HIK›3kæyºB˜!D„ЫÆ¿õö÷ôf’’rñòY}´ãÞß_~Û­µ5&!€B!B#>œÇÿNš5–S÷ôF@‰H@&€U ?D*‚²@<ŠÙmN"©²@Áé55Ý÷Às¯ýã¦ÕWmÛÿA¸Øû¯M›¦Œ¯E"‰DÒˆõõõÆ ÈÈȨ®®?~¼±Ã `„íN‡1¨ضmÛòåËCɼyó÷ï߯ª*âÈ/‡}¾¤YkkëÆ{ì1Œñºuë~ó›ßŒ†Æ &Œ.„cÇŽ™L¦‹.ºèBù„®ë_}õUooïFû€P(ôÖ[o!„¬V«ñ¿ B#lÄmá–-[n½õÖ§ŸzrÖôi›6}OÄ·|ÿÝ_þï¾´””p$!aɤ[‹A$SR0L&’”3 aah Œð‚&Aˆކ£ŒqÁ©¦é=€ ‚#n‘P*ç2¸Æ rÎQ8ÑuMƒÊ+«vÕåtäfC£Ñ¸ÅbÆCa8/3]ÓÂf•0w÷ äeD—:e#Θ–Ô$‰Ø©ªÅzÞ=‹ó#ðm=DsgMÑt–Ÿë~øÿ~wéšu«¯ýÍÍ7®¹óŽëvï9xøØI D<CÆÛ½éë-×^µòTGw©;㪋–\^SÝçé úý›¿žãv¶ôDÏúÂ'}áæP,ÕiŸ=i\Nª]ƒð—#'Nµy(¥B“LÊó2Js3ºü'š;C¡QÕ¡`QMq]45w KвÊSlŠ$çe¥9¬æP$ÑãbŒŒ4¤fÍž1gÎ\«Åñ‡?ü±££ãùçŸ?a0ú º²ò䩺’ÒâáÁüœW^|þÃO?ä,¿xUeŸ»¬oh˜=kÑÉSG+ÆLJÏÊÅc„ëH"Š$—õõF£‘ʪqo¾¶áìÙ3mgÆ ?ýôÓÓO?B‹-8{ö\ffæ}÷?òŦÏKKK;::W,_:þôwÞùðôé3·¯[›íÎ GB l Cg  ï;p0 Ïœ1Á¬*"Á ˜œqšd,ÉEH` –—do9p¢gØW–çÆÚÜC~ß_ýMjž!ï¬)•©vŒ$#1ÄHBB€u1 Á¦ÖÞ…3&…¢ºÕlJuÙw<1}R ˜€"Ç…þê»7µvܵnõÊ3!‚…Õfg”™…ĬB×DBcÑHLUM‰xÒ˜Û¯¬,¯¯opg¦1N‚‚˜–üìó-U•%+/™§%éæïwG£É¹sç=z„é »ÃÒ×ïwgØI½ ”Ÿ—î÷L&% ›Íæ`0TßP_S3Q’¤@0²`Ѽ¥µ’Ùlf ¹ ‚³x,‡CáP8ŒEãÑh´¿¯ïøñ#‡#ÊSžÇcŒæ`$ÅãqÆ)ÿíB?bZÇ/(A ƒ×l°\ˆ$™Lª¥««µ ¿TGˆ3‚ â@µCD–;uÈPLÖ•µk††¶íþvÏþfO^O$.4æ5Û¬›J ‘-FET@È9ìëëkïèjnn'ãÇ;fÌì™3gL›Ê(K꺮ÑXŒ `œ:vhhx(=-½jìØ¬L7\×5y0 ‡CCÃIM骨œ>u £‚ $Y‘åì,GÿP"¡ªJzºmx8&ˊɤ"„dYbŒdCË2sæ Cɬª¦ÁaoOooAQþ뫪*Â!Œ‘,„@ʘÒçŸ{jãÆ;ÚZ—-[š•Í…@0†„••y^o@-Å{tÍÉ“M°©SË$(sб‘8ßò4|u8@8íŽ`À¬v×øÝï œ; 9.âC ‘Ð:rv$r¦©­»ÛÙÅKe’Šd€¨]´`ïÁ{šY3éØéÓ×_vy$}üo³[­ÞsÏ¿6}ÑÜÑÑÐP?ºöîÝ;Zöî݋NjKKTU5ÖÇÊÊÊ Uû¢E‹þþ÷¿Š t¥¸‰„Ì$Iúì³Ïxà›Í–››ëóùÚÛÛ‹ŠŠ.”I :|xxØûÐé&u4R:thïž½i©©Ï<óÌ¢E‹ !âᇎF¢³9-5M …z=`sSÓ³Ï>ÛÛÛ{üøñ)kÓ'Ož\R˜o·Ùlf3‡žxðUcÊC]çzwOO8‰D¢šžD1ÀÃᨦé@Æ(#õ£øyƹ!›aœsÆ9çŒ1.˜®3RÁ㜠ˆ€B1>ö³Ol”‚ˆ$„„²$!Œ5-©šTŒ`<™æffgfR #±¨¢È@Áyÿ@,NeEòúáX#4"ùE#ÈŒFc¡p¸¸0¯vÙüŠò<ßÏÞôÉk/¾ôæû|Eþþßïí;pÔáp65µõz<ºÎ›Z_{ý_ú×ë½öªË3íæ¡®Þ¡þþ`8ÚbQ, IDAT2‰¾wªÓb2å¤8§L©¹m|•3;k(™ðùüÝ--¾h"ÕnuØLNU „º|ý¾p0å\!v;‚ =5eÈç÷B£¬ì¬X4. p9lãªÆÐ¤–Ôº¦Å5êé÷RÊ ;ÙžÞA8B=†‘p\–L[¶l¼óÎ;’$=÷ÜsªªÞyç¯{zz¾ûnó3Ͼ„HÄuI’„€Æ¬¼Ýn÷ù†›š^,•T÷|æž]Û5˜JÄbmmm­ó|~íæ?üôŸm¨«ýé¾ã÷û áÙ¼­Q>Ó†"¤º*Æ„ëx¦'Ϥ®§š¦qTRRÊf¿‹P±*Œ1sâ%¶x±GˆR!£^RKå`ÀORF½ð¹®6¥:ç#Žp)%Œ€íÈb± Ê¥ŠÎyÙª˜:ŸÎd²ù⩳=ƒ©AÛåJÅç3 ]FB55U‹Ï­M&uC›ÁŽ@¦i~¿‡9×`¶‚å«®¥óŸúÝ#B mÛþ ó†k\W,]Ò)×r¬?ÿåuFiUU\×ÍoÚìØv)ù±,Ò¯™ŸÏ ù…?~sºdÛµ{ïÞ}¦î»zýÚÆœJeç¾#ƒcÓÑXX3ô˜¦;®(W¬\¡@ q\—PF)mŸ;§÷\?*Ia\;tät±Xnkk¸pa¨/)JIcCMsK}_ßàøøÌjnn:~ü¸²³³ó©§ž:}úô¾ð…µk×"’³gÏ.YÒ%„ HðâÐàÉ'‡ßÅÁ‹”ÐÎÎÎÛnýèØøèÅ¡! ÐÝÝý»'Ÿ¼þÆ—.YrÕ•kªk’O>õÛ«®Z»téüÖÖ–ééôá£GýŸO–JEàŒW¬rúÝ7°¡¡¹©¹ã‚íºŽM(½ì²îÿõ“ïýáéßyg'"tu-miiyõÕí›6mœœœN¥tÓ(r<üÃ×^{sëŸ_¹ç37¯^9Çu•«g:®ä 8â8î‘ý‡·mÛG6n¸vN[ £(TB)%¥JHt”—s@¹@ (Àûï¹Ñ¯›é©i”kìã·\¯k\ØÔÓ×9ãœ5ä…c£p¤Di£k³dUòÁ¯|ÚqÝ×ßÚÅoëZÒZ×0#Ú"00:ú“ÿ|"à3~ôƒ/.ZÔfhÒ¿8óF˜82<ùÈÏ_I¥Ò¦ß4ŒàðÈ´ßô[–å Pªªª …<ŠŠ"EN‰®#ã:äóÎUkWõœéÏŠ'NœHVÅC~m 5 ™„“±‰\(è·,;4 ã…êd•—#?88¸|ùòžžž\®¼iÓ¶U.òé)×uÇñ9ˆž÷Æöæ#ï7“ŠeTRÓ¹eWÎ;‹ÅÿèŸ31‚—xwôýórW¸  QÊ'¦FêjšfÀWž´”€âðѽ¦©éº?èûLsNë·ä¸¨âáx|Ñ•…B¦÷™÷U£ºÏ•0>}¶GQW[ÛÞÑîmE¶U¹<]¼páGnüð¶í¯9z̶mO[˜/”vïyoß¾ÃK/©®®âœsÎ;æ´µ55†csÓ0(ç”RV±%¥X566†Õ J%*JB)aŒù|~M×€zú2%@¥”¤R£Í-­Ñx¸R.{ã´ƒ}üö[•tFGÇ;æÍ™18+¢J…ŠJ)¥¢P(<ûìs.\ü\{ (dŠpBÈæ-+\ËåŒ(‚X(Yèº!¿É@"AäC¼° —6Æ9ABcºN(…ˆÊº<™Ø?<© ”³ˆ •Å‘L¯JWÚBqJ AB±¥¾öœ€{w/[¼ðçýkuM(©ŠÅîÿüçîûîCJ©Kîïkêæ—¾ô¥¯|å+›Þ—ºüêW¿ºD8#„´··ï{ß8{öì¾ðoŸ‹Çã?þ¸·4GGGK¥ÒÏ~ö³»ï¾;‘HxÿÏÉ“'{ì±o?x6Ÿ}è¡ï†Ã¡[o½µ¿¿ÿo<0<4ôÝü§†úúµ—]ñûgžéêêÄÎÿüÀ?766~ý‹÷õœ?sõeWEÂÑx< …—.X2™žˆGcåR)™Œ+%~ýÄoïºýc+º€4_,îyo÷¢…55µ€à*ÁÕcÔð @…ÊÛ=””×!Œ!*RƼh2Æ"9ÿD…àqÍ(å!¡2¦IWz§B…(„àœSBÊ+è7}¦Žx)HBÕÕV@@ðF00ýZuu£´kqg"Içrï~Ëç?wÇÏýõ‹/n£”lÞ²Á±Ý»w/^¼x``વW¼þÚ[w|âÖëo¸îG?|8þ÷3ãŽ]¦ŒsjHÉA!c”iŒvòäñ§ž~ª¡¡á“wÞÙPWGP"(©*…3{ «”®BD„™Œ¢Í9÷²mï¼óÎÇ{¬±±>@0ù`‚ɪU«þèÏÖ\qYÿù\.?11þ¾/Ñk¸?ýôÓ«V.óùÌ›nºéá‡imm9°ÿÀW¿öÕ-×765Ô«šë®]÷éOúÓŸþ´¦ñ«¯ºê»ÿüO¦¦Äx"ñÀ×®‹Šh'”„êÚd}]-™í\¢êëj«âqCÓ€¡(¥û­¯Í4 ÛUSS™×ßÙ9Iâ#·F"áR©dè†mW$çRJJ c\Jå4BIâÕRÎL ¤@™‡c •wXDD%A¡Ë'‚ íº”Q)•JgÜ#9BQ)ʨ”²P(išF(@¡pm*‰Ç#ÓÙ¬^ ˜:J5z®÷ÂÁcÇó…’Ïg.\0÷÷~>35L½¹¡ÖU²h¨¯ïâáã'n»ùú+Vu!¡3L‚„0¨ØÎØÄ¤eYœsŸé‹Å£>Ó”J !W¸Ž”JàŒ1DQJ5pÔPIïŽ'„ R€J“À‡oÚ’É>³­µ5Y]%„[)W’I«l9Bªæ¶ö±±ñééL&WÐ4=‹Ö5ÔÖÕ×x‹±UkKKkKËå—¯óîžÓ?úú]w,Uʪ”ùÔ4‰"‚¦±`0ÔÞÞávC¡PÙªŒŽ »¢¸`~ÓØøäª• ¥ÄW_ß½¬kÞÑãçâÑЖ-×ü}×~×uššk‡SãšÆ#…b…Й1:–öéšã]×lÛAÄöööC‡œë9×6g(Jx¶wål¼S\¥R9wîÜÂ…ó&'Ó^ì'A žE®¡¶*WvaÆ/ÿ>Óˆ·g¾è1 ñLnθæ*–ŘfúÍ£¾ §¡¾%‹ .¢;æ,r\gåòušFR#C©óûî91ÞÖºÉ0 Î9çltd4™LTU…Ç'ÓÁ OÓ8! ‘X¶sêTÏk¯½¹oßR©‹GW®\ÒÜ\sÛm×%BP¥˜œÑ)y£$BRCéPØDÄ bQ„hÊ‹&=Íf¦eèɦ4-™H„B!Ó0¸®I…žLÍ+Ϥ+¤75”*ù†Ê›5"(%•k»BÛ±¦2SŒj¨¤®ë†iH!,×q…/ЇF&§&ƒÀÒEóêëkë뉒ý©1”2JÍÐÛëjë>´eýú«]{ÞqÛ‡ªkªWMgr»÷Ÿß¿_,‘hnn­®©O ]Ìd¦½9Îúë66·¶=òÈφ†J¹òâ î˜Û^U•0 íÞ{ïùýïŸùõ¯¿øJʼnßpù’%Vy,“³ÏœI]˜šN—óùb6“)K\ãU‰„eY7Ý|s()[ d÷î=Åb^H1=žšš²lW¡DJˆP2Yÿñ¿ÜO)¡ÄË¿¡^O•"ÔEЉ¢ d¥be3ù݇Ž;q¶X,+ DBª‘•Ý+º;+%{2]¬©Š+R JA)P”Ê•.£’5·£Ž ŒLŒ/XåL>÷Üá–Nœ<¿õÏW­¨¶*îs[O74ŒÎ›Ûˆh$¥”E‰F#”RÓ4 ÃH&£ë®î>tøð¶moÔÔD–/ïPR…‚Æž½GW®XÅ_ÝþfSSƒaš§NžñùB¡"…¤BA_±ìÖWG¸®KŸÏ´í™>g±XB¼ñÆ·Üz«B*1ëµ™áyoËår…B!ðEÃþB±," Dô©)ãŒþœß^RÍÌöVä@&„B…È ®ëõ­CÃýB(Ãð{ûeKËü·þ¶µ¥e>PcΜù­­óv^vêÌÁß>|l¯éó“ì„¿?G£‘á‘щôd¹R±lÛ±l×q€€ð˜JR `>Î(°lתX†¦7ÔÕ2VrRç•HV…æ/¬Ëå²ÂpGScÁPÀu °\:›ÍdFÆ'„p¯½f](`ŒTÈ4ÊeÔ4YF#"J¤”ªë¥ÔghLc®ë†CAMÓcŒ³‹ƒC‹:ç¦VÈb±(c¬P,lݺ}ûö'O¡”oØpõGn¾q媮Ÿþôç÷ßÿÙhÄ Q@s\E©_ÒÙN´p…ëHÛÅòÃ?ùÕºk®Y³æJ‚M):<4úìSO}çûÄÈP¾÷Lîø±ÒÐEKºÓe‹D‚¯¹R]ےܸz.¡ ¤ã*åXÏUìÌtŶ…Q)©?Æ9óœâ¡:Q¥P4Ö×î;rdï‘£;÷ï÷ùüçϟ߸q#!$™Lž¼qs,“J¡ÀŒB¥$c)–KãÓùiª«’õuœ1$ ‘ضÉåR##Ûš) áœ1ÆGŠ…é鬦sÛ®HŽë¢RÞ‘ˆ1¦iL×5BX004m&/(‚RrÆæð›ÑHdÁÜ9›7\í÷ù…këšîº‚sVˆ•*•ôt& ¢ \34"4ÝuÇmƒ©á'žÚZ±-MãñhxõÊe7Þ°! zÔ5¥¤(¤t¥;9•Ÿ›Jž8Õ75•.ŠåŠÕÞѶæò˺Åb¥P)´,kdx¬§·¿ç\o©Pª®®ª¯¯ýÁq\×q완f€P(P__ŸÏçr¹¼” Q1ÆW,ï^Úµx||âø‰“æŒW¬J¥bò%D¥iÜç3W¬è^¸p^k[ÛáÃG8è]ÔÕ«WßpÃ&;;çž>ݳuëK ÑgšgΜµ7 ¶µµ···PÊåòPj¸çÌiWˆööŽ®e]5Õ5×­¿îo÷õõ)¥FFFêêêŠÅB¹\€|¡00x1FÂa_À¿råÊîîîÁÁÁ—^zé‰'žxûí·ëëëo¿ýöºÚÚwvîÌd2k¯^÷ÎÛo¹®³ú²+Ž9tôðÁ‘‘aÄ;qÞ{ïצ§'Øÿã›ûSw_ÊÍ—ÊÂ)ÌŸt¬ß{zNsº²0ë¥íߺ룢¯gbøbá|Ÿ;E)Þº0´8=3•Ì•ì^¤E ¤Š**l)©´!ž.ò IDATíéœ+ø}aCÓJT˜Ïç·nÛÖ½hѾcǼÅ2<>úØOÇ#q%66>Á9ïïï÷V@uuµ¦i{öìY¹r,[¶Ì¶mÇqÒéôŽ;ž|òIÈås¯nuàâÅþþ~®±Í®ùÉÏþ÷å—¯HÄ#…Bqy×¼Úº5ÑH8˜¦¡i¦]©J–.¥‹†¬Jɲí'Ÿ~þøñ3uµuŸý‡Ov/]j¦¦iÑkè¢bЏD PJÇ%H<<¼ço®Ü¹g÷•«®ˆF# PIyýí7?Úµpñ?óùs½=üç/—/íþÊg?GcJ*¥-•ʣ㣕rÙuʘT øj«kZåH%(ðb¥ <ì iu55³ø%ªg €’²X¶‚A¹bü>¢@Eg|º„ª¸Ž+• øýŒÎLX)!sq)5ν¼°|.ïó™¶ãA(%¬T±Å‘WçÌvEKk㜎–kׯ¡ŒÌz~¼1'" ©@Jå8ŽˆÑh,/ìœÏ4æí•RJÁéÓg÷ì9øÒ_^Íærˆ„ñùÍêꪹsÛ6oZ /ÿñ™?·¶5†qå•«»º ½ûîÞôT& Äbáéél6›³,«P(îÞ½w`àâåW¬Z¼x¡²bYžf Ñ4‡€’B¾päÈñ?>û"*5onÇ…þTØÚÒ¨”D¥"0o~{çü޲åT*âóùãJa6›5 ÓuE*•ºpþ¡dY×òH,N€æ²T¸s×Îß>ñ_ÐÐÐðì³Ï¥Óé?ýéOšÆr¹œmÛ©TJ×u¿ß¯ë:¥Ô³u®_¿~Ù²e¿ùÍoß7püèÑ#‡…B¡ë6l<Üx8‘¨zeÛ¶ÖÖÖk®½Îu¾ ©Tê|_ïÅ‹ÇÆÆ€PC×)¥•J¥b;Ÿ¼ã£§{.üîé癦»®K5]«­«î˜Ó²`Þ[8ÙB¹ïb*–J剩,gúx:Ÿž.\ŸLL eÓæ†ºx84ƒa_Ð.9®t…e£+@çœÂ4*)Ñ5Nê†nš®TSå’ýÿ}`ïÞÁŸÿìꪄßu´5Wµ‡#Áºêš\(SBáèØØâÅËÞ­Q†‚ÑH@ÓY(jhj¸fÝÊýûÏnÚ´bÞ¼ÚáTzph|ñâ9'ŽŸ«ªŽéº622 @‚~mÇ­J'¦ ÑHP7ô@ÀÏuíÒQOAÛ÷ÞÞl&›ÉdÊ¥âìQî}*ƒU±°`81)%ÍõqÔ4ƒs]3ü¡PòÂÀ€òd8tJ$HáR¨‡\COÇC¡Èñcï]våFS÷éšfYÃðSÂêj›¥”årIª\ÀŽ'’˺/ëí?/Z´& J"mlšß˜ºîÅ÷ÙêTJáé8¤e DZÛ±-K áá’…B %•Á¸æg¥r¹·ÿÂàР²X(äó%Ê ÉŠÛ²]!l˱f“<= £Ô4´ÖÖ–Žö9‹:$“U³§@‚ˆårÙû·”ÀsFaŒqÃÐMSÓtsF ŸX±rÙÉSgÿ䳡Œ··µýèGÿz͵k ]R WÉGþøCßýº©k ”#¸PJî?xpó–Å~¿‰ŠJÂøÑÛ®úÓŸv}æóÙ–zêñoýæÉ?çËöOx ¡‹é_Þ*ÇÏ”/N”ÆÐv×Ù9J—ˉÚäѱ‰{:ç"Ó WRT€p¡ìŠ]LOE§sNSS£Æ5P*äŽ>uâ\ïg–-~æ¥íž9²¾¦nïáÃÁ@Àïó•+Dt]w``@JY*•lÛÖuýÍ7ßÔ4mppðÂ… ===Ùl¶T*‹Eï =rtldtÁ‚Žæ†Zª“§ÿ¸õŽ;n™7¯íoïìÞù÷÷#ÿøÀ—ª«”r«bOO¥¥D‰R¸JAø}þ CgNŸß´ášOÝ}G]MedFæ¨ ¥T®ë*©E¥$•AP©Ñ‘U]«ü¾`Ų‡GRo¼õÆÙ¾žÎ¹Ÿ¸åc}ý}xþÙ††ºøä§ê’µH0_,xa¶RÊ‘‘@¬o¨ 66r® épB¡T¡¤„é†îºÂ¯ù¤BJgȼC$¥T¡$”H¥ˆB‰¨Ñg $%D)E)=.( ò:”ʘ."óÒ]©!ŽÞ]lÃÑ8§„€eQFPç0t]s1ovO$!(2Êpæü§.µv¤®® J)%³*Sïž™1èêZص´S)ðRã”B‘QÊóvý…ë¯]S.—5Í@®K–,Ü´ùÚôÔt>_¨Tì²eY˶íJÅ:xàÐË}ÍÛÿ8gÞ¡™k !q–L&7\·®¥¹%›Í¥†.Z „øÝoŸW^qYkk+@JY TJPו€¤T*:tضªªªÕ«/7M³\.OMNäóùéôtjxpxx—-[þÅ/|¹X(ŒŒŒŒŒ 'q!„Rª··—RšH$cŽãضmÛv¥R)•J+V¬Ø°aþ}ûvìØ±gÏž`0ØÞÞ¾víZŸÏwúôéX,VSSsÅW!’ÉdSS“®ë¥Ré‘G­T*---µµµsçøý†ÏÐA ³X¼Õýð‡¿B…šnÔÕ×ÖÖÖG£QJ©i_ýê}„ÀÕW_ýòËýÑþ­X,@UUbÁ¼ù·~ä#Í-M@À³ê¦Óéí¯¾–ÏåSÃw~òk®\å s§†®)éJ×yò©çû£Ñ-×®Y³ªëÙ­¯îÜsà÷/ìp\øj«¯^½¼¶&©1î–¥²])UÕêPnzZ¹bfp†‘‚K€1%Á-¹Â¶+5Õ4“úÙ#üÕcׯ#FÅ‚ô´èÏnùœ@.¿lÙUk¯È狱XüÒ”ŽRú¹Ï}6à…ÎY(Z¹rñ…ó)ƨRªº62•)œ>3ÐÚV›JMäóeJI(ä¯TÎH8èŸ,T%Ѱ¿çÜ`}mÍd:‰Dr¹Ü%Ÿ§êXº´Ë4M)Õÿˆ(ÇGG^Ùör]]U©P…‚ˆ.¢Pi†¿¶a^Uݼ\…ޤ†p¶3÷—"„ÀûVBô²'(J€oØtëŸþøëduÓ’¥«Ç®kúˆ’RÂè1Çqó…©êd}Ss{$ß½ç­p0ÖÙ¹B) €!øàd’ Ø•Š`”P*¥´-˶-˲lÛ. çÎõºBDÃ0 …B¡\ìí»ÎL€‡ÿ'wû#u2ÙP_WW[ÓØPßPWï©ÞRk³zpƒ„c„6›G”R„cL ¡éœP$DÊØÔTæw¿ûcU¢ê䩳>_ð_ÿõ[‹ÏŸ7w.(ᙈÕ†Rcƒƒ©®e 8 Ê8p¢6®_ñÍñÐwîjlªVŠ0B]FØÙ3©B¡òøÏ¿üüŸß~ãí}÷Üyý×üÉ‚ö†\zÚG@Geç3©©±\i²XêLDoŸßÁ¯om@…’3½ÖG4ຎc;˜+èçÇi(š¬©N"B.31>öÇ—þR_[ýò›ïds9 ÐÖÔ8<:BŠ¥ÒœæÆó‡¼¶cÇŽµkצÓé±±±b±øÊ+¯¼óö[BJÇqÿ’s.„°¬ÊG?rÃÁ#Çö8òùÏÝý‹_>žÍ”ÂÎùíçúúÿ¾{ÿ º.ŸÏ#*)Õs/lÇÂ×®[c˜šÏgîúûþýŽ=ô/_?uª—sî÷ëR)%‘S¦Q½8SâQŒˆO'(¥ $‚”®tE¨*(•عgç+¯¿ÚÝÕõµÏm2=±íõWÌ{ßç¿B2¹ÜÀð RFá”c´­¥U×4H¥PBG¹¦)½Iƒp„+\ 4H(AÄb¹ðûfÓŽ€ E%D`@KVɲx4Ê)U®ðòì]åz¨{…¨qN€€PÊSÏ+@z²4Pˆ¹dBs!%ç „Tž\YH×v©D®Eð#eÊ ãâÉÛ¥ë ‰@)÷ ¾„T ¤¢<äì3eF™L¨—îB ¦qâå=͈P×uMã®+„ ”º” ôùü„®•á”üþx4ÚݵdxtäÈ‘ã§Nž)K†ahš ù“ɪx<–ˆÅü~¿RjtllÛ+¯˜¦ïÌéžýïô˜„-MM8Ë?ö>^¥R)Ê®+ŠåbCCCM²(9wî\ooïØØ¨m[Þíï§šº—u÷ööòÙR¹855999Q,}>ßßþö·ÉÉÉ+®¸¢¾¾ÞãÙ:Žåñi¡R)E"¡D"qÕUWíß¿``àÈ‘#ÍÍÍ›6m¼ë®;÷îÝûæ›oš¦9gÎÇqV¬X±oß¾“'N.ëî.ä ‡^ºdi8[¼hQmmé úƒ±ûîûf±TT ÃÔt]cl6®^Y–íº¶ßï_¿þZ ƒÑh„sîó½çz‡S#®år¹X,•JÅÉ©©Tj¤®¾¶{é¦\“Ó™ÜÎïžë;¯¤Äþ¡ŽÖ–M×]¥\¶¢ki[skGS£’¨l®@aÙEËvÊeaÙ¶]™H§kb Â)B‰ÈP"%@$* épï eà3µûxsÑ¢ªû¾Òí3iÅ!ŽÍ‡Ì›×°yójÜ¿0=¶ E[)Âõ žß4ý *£ºi‚p[[Š ²ÓN±`/XÐzêä˶5ÎÂÑp6“†}BªL¶ÔPB¿8@Âa³dùaù|N©QèÈÈȦÍ7ض­i†c—½#¡\§ÏUÊ¥r¥äº®c9 )])„BÉÈXz`hO}ãèÄø˜ñû¾ŸÂ„„ÌZèg–OŽ@@qDZÖo¸yû+Ïêdç\‡d % ê†ÖžœW*fÎ÷§å+V\—î9qzß¼y«€"õŠñK{a©\H§(%„”R8޳í7Š…b(ˆÆ¢ æÎå”y[K99zò ©®®©¯¯“Rx3=Ÿé ƒ‘`0 ™¦É ‡BííV±ÀBN\WzÎn`B 7]¦ TÞ£H)°¬R0äàH)=u²§·ïÂÒ®E”RÎ8ç¬çì…§ŸÙzöloçÂy]´hÁ–-W­\þ™{¾øÌÓÿ™HDpB5púô™ ÚQ‰ÉÉ4ã"Õ<šëÍ7^ÖØûþŸd”¬\5ÿòÕsÛæÔþûÿzátÏðïŸxð©§wü÷“;~òƒÏ]œ¨”ËŸ½sSzb¢÷l_v4ksRï’«ëëª  ôH€õ·ú}ÕQ‚Šf4Í©©®ö›þ\.3::tª§÷Ýýûˆë ˜L$šêúesÛZ¤š ßb”&BÆ{ïí×5ª”—K >ÓÐ4661ý?‚à›jû/¦²¹ü/þã·º®}ãþ/躾zUwÿÅ¡{¿ôéx"öµû¾ûü‹ÛŸq;¥Äç3~ßäTZHë=ž}öY]×Ëår$éííÍe²Õ5U^«Í;,€mÉ¡¡”®ë¹\®¾¾îòË/S ;þÌ3¬T*^ ã8‘H8N¯YsE[[ëîÝ»ÕÂ…½½çz{ÏišÖ×ÛsÇwÄbÁ€ÏÇ®mÛ¶Æ€U)—GFFÆÆÆ<Ŭç4ð”ýýýgΜ)•Jíí×­_gš&ç¼P(tuu?~"™LÆb±óç8t¨R¶ûå §B¡à–ë[šê_ßñ7«\q]p*"KÆüQ)¥RHéaÛv±XªŠÒ*1B3ùÜÓ;Þ15mUçܦÚÚh H)ø‚Ð!¢DÈPÿàË/ïZ¼´æÛ½õ™Ou]wmë¹¾LuÒ ê[IÉ×\Ñ^*Ë‚ººªH„çr‚1îI™<ˆ!”Š”% a„hÅbyó–µã£ÃRÑp80onã›o@„@ÐÇ+ä 5éé¬pEScÕTºX,U€2vôDo"÷ù}Ñh,“™Á7Ú¶}èà¾úºªS'Ç9!]D‰®ãá"‚e;¿É(º¶£”¢”JÆ'ó¹|¥£}Î…¾ÓµudÆ,8+ :y0#hD‚^ªŒGþAàRAKëü«¯Þ¼ãoºåSÉD"E€H€š>Í4 ¥ÐV,«µì¢"¢±¹3›¿pñx[ëb…àÉ.½¤PÅbQy{2nZëºàÍ~¼‰¼Ðt}Ùâ…]‹%œRW¸×!\Óq.¥ä#€ÙÖÖpöôyWØ~¿YªÌdSxö8)%çÜszH)c$Êÿ¶óï=çÎuw/Ëås7\¿!•JíÚ½ÿ÷ÑöþÆÆÇÿô§¿r®Ï™ÓfÛn4šØ±ã—º88øíï|/ΘƒÝ#> ###ɪ*õôþü•¯|B¡íÒÝOü÷·¦ÒÓÙLÉï7¶þùÀÔdñ¿ÿÇ_ýú¯»÷œ¸~ÃÊÍëWÜùÙÿæçP¦â±@÷ÒÑT,õæ*c¢lKå¢"D‘jóëõÕ)2J@C=.ÝH„b‰D\(115‘/•¶¾úºãJ¯å†6­»zëö×`Ù’Wtwÿ×3Ïy”XЯq¦k¬­!i9îèdÞq%r º¦ûLÍô™ããS@ˆ˜mGœëí#{÷¼bõŠÝzÃÛ;÷ ¥Æ„pÖ_³æÐáㆩW,{xx¼P,-[Ö©sý|ÿàùóC W7Øîè¹sZ›Ö\~ÙêUË/¦^yí­ÿüòæMë7_·>“Íï{ïà‘£Ççut¬ì^N©&\©¤œM‘R ¥ ë>˲óùRcCÃT:ýâË/,^°ø¶oåŒK‰„ ñÆÜ’9X”Äϵ—PÐu}6€x¨må 2Û
šÉ&¦Š¦iv´·465,X²lldâ4Àêa±­023g@ðBÖÓ;w^û7^ߨX;0Ø`ÿ Úpÿ}_`@ÑÓJWáØ6¥ÄuÕ¹Þ~qâÔÅ ˆ@)©­­¥&'Ó‘pØï÷g2™Þ¾ •JÅ‹‚ÑuÍ0‚žV½(’KÏoº©ªª¼µ&Š€ ËåbϹ³““ù|®P(R ­--«V®ˆF"µ5Õ'NžÖu½¶º&ŸÏ‡B¡ÆD{}lÎi?!ÄuE.—Ër¹\¦®®nݺ«•DBÐvˆD"‘Hd||Âu]×uî¿ÿþªªª‘‘á_ýêŸ={Ö«¹#‘ˆ®ëžÖ‘sÞÔÔT[[[©TÊå²mÛˆÈÓ4mjjêŽ;>Q*•Îë …ˆJJÂgŒäæ‡Ã!¡P(÷£·}¤xýTÊï÷B`._®-ʶ´-×µ™/„U.W ÅŠUv\¡•WR*(SÎV-Y ú•B!”Uq ‡i.爕#‡WWE>~[÷Pjìô™ñ% zñl]]lÍ•­K5`'Ÿ,õõ¦» —ëꛀç¼X,{f>¯A @¸ãW|Ñ¡L·,å8@©¶ÿÀ©R©ÒÐP;11U]]•¨Š>ÕS]]#„H¥Fg¬|è9G0 •Ëv¹\ª«¯ž˜˜º´„sZcÅ‚Q±McŸ‰z9?˜Q Ð0¸BI 2Çœ¹Ó™,cz{ àutÞϘ º—8ÛÀ¡—¶C„ aëš~ùåפÓcyéw·ÞöDZá€aåŠ]®8h†¼ßs%†ƒÁ™=x¾?#¤ÌË:t\—Sª”J<#*@%<´•W¢T–°4K)£¶m|>%e p]·øÿ²÷ÞáqTçþøûžiÛ´«ÕªZ’e«¸0¸`l6˜¦zH°1$@H ÷’\’jBp!ÓL‡Pmc îÆ¶Ü›d«K«íefÎyœÙ•dËÆIîÍ/÷û0—ÕìÌéoÿ|’)Eaĉ“g’àDº¦Û¶¥(Š"€ep§»«Ç¸Ü.Tô—¿¾zѼó† ){ñ/¯¬Y³~kãŽýZ¼WgwïÚµ'NWðÏ¿á[\tö~ÿËg½¸zÕª /8­jHQ{[û~xgo¸wÓ¦ÆãŸD€‚,N4¬fèko¼§âI³qKëO¾~ï½wjªi¤i €‚Œˆìc];lèmßùUQaÁOÜ}ß}OíºóvnkV5U‚Y&'R@a$tò¸™¡(!ÝãG­ˆ¡@R˜ÐTÓíâšÛ®LÖHg½¡bîvÛDÑXäÁGªÅXô IDATÛ¾k7!S;~Ü…çœñÂâ×Û:; ýþ+.<çõ÷>:ÐÞ‰C¯(.Èf3½±”´gi‰Ä E…Þ=MQ p»ungS¦íq»ŠCÁ@À¿uû®:;¬[÷ù¦[¾~ý¥6·8·³é¤ahº®«†Žˆ…·Ûãø=—m›©s»áÆ…×yÜn!x:N§Ó±xbõªÏßxëýuë?¯«­½ãŽoµìo]öÉg¶m[¦}ú©§!!ĉsâ‚„ V®_1ùØ)Œ(•I_x檪iš¦*nÃPUÕœd(ò.nuEGÌ‘ä°%:û‘Èæ¶Ûm\xѹ>o|ö™¿p ”Éf3“ÛB.ˆ¸m#*š¦†áñ¸Ÿwsã–`0è2Œ-Û¶f2™aÆ )¯à6E#qÏ-Ѽb±˜¢h(W¯¢(𦖖–”••ÖÔ 0a| PÆ8çÅÅÅŠ‚Ò+Y–‹ÅÖ­]ûÆo?ùø’ââ%K–nݺýÊ+¯8î¸I›6mÚ²¥1‰ H– á÷û³Ùl*•"Ï\fG£¦i“i¦ãñ––¶â€ßïõ@\ñ¸ ¼ ÑýTc\p˲pÉò S.7Ïd¹5+ª¡é[¶ìÝ»wêÔñ#G~´dgeµ¿7’yúÙÍœ7¡²*Äm( º7mn^öÉnC÷!¯/ —¡÷ö†-Ë–¸ZŒ1ÓäBˆh4‰ö¶·E7"Q»;œá\R1dü„1/½ôJͰ¡†¡oÚ¸5 uwwKx?[ \.W,ž@…)Äy?í ¸ÑªÊ  !cÁ%“f¾ÔŠS0ò—„¢ñt,žÚ½g_Wwψ†ÑH$úg™ tåhd24(Ö TES‰“ªkšÁÎ<ç²Å/=õ··_üÚW¿aqŠÄ’–Íót‚@HÕX"`ÅE…¶m!Rÿ FDEFV-‹7îÜRàó…BEšª‰œk”sB! C†Œñ¬)u(‹Ûª¦¥³CÓ™ªª’ÓB²$gÂÍ-ñDLQÕŸÏëvgMkÛŽ-­­Èж쑣N›3›®Z·nHEù¨ÑµEÁ’ÿºû»ßùÎ÷ŽŸ|Üo¼ÛÚ™9kz*Íï¾ûÁªêŠßÿá'S&«ªöä)cŸ|òiÎíÂ` ‘LÉeºaý¦IÇMÎ ˜0qLsÓ¶öît2™NÛ»v·öFÈЀÁ˜­*H€P[Ú:¾þõfÏ>á–o\ÞÔÔQS3˜×´”L†'@d© PUÐ¥a°Àg(L7AÀL!L$nkŒº¥»8Üf‹E¢nCónC¢ëF“™=MûQan]?zäÜ“g-~í­M[w”„Š.:ûÔ¶¶¶­;ö×¥VÌílî!„h<-봙ǥº’5-B ø½½±Ïw1„IÇŒñx J$ÓBߦÍ;’éŒÇMûöq²MÓT‘éº^Pà+( ¸Ýn¿¿ÀåÒ3™L8–˜È>Ÿ¯§«KJ“îîÞ5k6-]¶¢³;<õøcþ“{†”Wù|žµµv–ÛB,]¾ü׿ûíÜ9§2”[ÜÊšfÆ$lnwuvÚf‘ø  ›GÄ~?d@d «­½Íãv…ŠBŽ!HÀ ËNd’m-­Ûwï …BcG2-[ S¬äØ€Leœs f-H ¢m[ÒŒ`ˆ˜1-™b*¥šƒÍ„Srs–Ïå¤IåÌIÓbÈA.1ÄL&‹˜U˜B9ª4dŒ¤¶Ì¨ªBÄ‘ÉLŽJ˘\U5¦S@Q˜ƒ<ƒRqÁ¼¡œF`ŒÉ(ÇGC"—¸kšv*™Íf3ÕÕe¥ÅÝ=‘ýû[º»#Ý]ݱhO:•Þ"‘H$[ZÚÒÙŒmÙèv[Ó4_/ –••a&›imkß E‘Édc-K¥Ò¶m{Üž’’’#¦NÒÔÔ ñD¢«««··7NK3ÝívŸtÒÉÆ —‡ɱpŽ2³Ù’’Òºº:`Û¶}[zCÚ0\uµÃÇmèèìH$•••=áž`(¸cÇÎõ>;f¬®÷QCƒAù–îîîòòòššš]»v™™ì¸qãâñx<ïêêòù|§µµ5“ÉHVAAcLjmm_´hѲeË.¾øâ… :Õ,B˜¦µyóæáÇ©ªº~ý†gž] ½øâKš¦uvv]tÑE]]]C‡Ö >ü׿~lÛ¶íÇM:6NÉeÁ9Ïf³™LFVÓÊù’êŽw¹ÜZAÁŠÕk·lÙšIgÎ=댙ÓO`9ÝGUUÆEQSÉìá¯máÞ™'ÜÔ´¯§»‡" áv»ëëëm×®; »Ø;ïl-))<ë¬iŠænïpˆÊʪÏ<£&‘dB0rÜ C5MSQ˲²ÙìÎ;{zz8ét:•JF£iÝð@a0xÎ9g­ZµúÀþ—Ë%ÈýõE¹ŒÓéLN(*XôÇbqÆ”¬i"¡Ëe˜&gŒ„ä•°©§7™Hšy—{,™UÅår¹UÝã)( •úƒ%OÀãqïÞµÓÑiÊúœÃD R‚ U7t̲lMsYföÒ+nxêñ_¼ùæKÓf%€ ¦¢àDDŒ9B‘qAÔŽúþä»ßùf¨(TTôùƒÓ¦NF“ÕC«æÌ9寋_ûÑï9ºþ™?ýºÀç‚‹á5Ce’ÛèÑõµÃköîi^;”€víÜ[[[€ ©¤8tíµ—ÝsÏÏGŒªß³·™s¾bÅgsçÎÉZÄ”, ‹©´k{ë ï½qþe_t€ÖÍTUWg-%‘Q:{"áxVS¹®ƒª’î3Œ!\d„F²‚@SAK3ld– –ñ¸yUEÓuÈf-Û²âñÄæm[o¼þÚŽ®®T*1õ¸‰Ï¾¸xÛ®¦Š²ÐW.8sÏÞ}:ˆ4U©,õÀŽH*c"I‡€dPS]' UQ‚…ÝanñÒòb"“ÉÖ ­Ð]úžÝ$QCÝÐòžîN‰¾-}€©T€ …Bš¦íÛ·oïÞ½ñx¼ À_WW[QQ!8mÛ±gíºÆ-[wX–5sÆÔÛ¾¹ ¦¦Ú0 fY¶iÙ‚„iYcGnܺý¯¯,¾â’ËZÚ:$©"zÜîá5uœÛ– th4…Ìç̇¾‘s³qÇ–}ûö7éx¯'`Ù6ç$„d³†KÆ76nÚ¶cëЪši“§ø¼€±rfŒ1@PaàÁ¤PɱNæ±€‹L €DeëKÑDÇ_+CðÄ„,ŒrP "ÈúÒº9cN¯ô[:¢ pÁmÎgy¨mÆÐ0´\€ÎžéŸSåX~²r¦££³zhUtJ Hn ‹Ûé´™J¦÷ïoÙ»·©­£#•HÇI ¦(ŠÏç+**Êf³±X,‹¥S¯×S[;,ÉX–-å„eÙÑX¢½£Ëï÷ ©¨ðz=º¦a® ¬Àç>¬¦  @QT¡0µ(X¤êZ0P(„Cȵc玟~êv»«««kkëËËÊ…pòý1H@étzÇÎíápÏž=»5M+--­«¯/))1 £³½cõÚµÑh´rÈêêêp8ìv¹† «éí¼ùÖ[#êëëët]GDÇ3k欕«VÊ/nß¾}úôé­Zr¶47ï/**òù|]]]‘HÄårQ ‡Ã<ðÀæÍ›MÓ$¢—^zéŠ+®\½½½<òˆ®ëóç}ÅŠO_{íu]×Ãá°eÙ]]ÝsæÌY¼x±ßïŸ?¾ ]oÛ¶­¡¾në¶mØÒr@Q´ââP àw¹\~¿_×uUQ e®,4ìèèììêùêµ×E¢‘ššš`y…*Qh2E!"†N’!2dwÜñí¶¶v?PPTN$ͬ…@bèÐêD"År›4í¯­­_þÉÚdšÆŒ^\Z"5K›3nKèDP€Ù¶™H$*++mÛ6M3N#b*•Êd2ÍÍ͉DœˆÚÛ;Ñ0 ÆötG—.]®ªŠ×ëF£ý™·ûÅky> ®(¬ºª|øðªLÆÚðùfÓ²€¨«'ÒÖÁU†œ "(€XŽZ8çÍ-ù`]×dL]UUEÑ ü¾t*}(Ø68zªÜ”‚!"(®P )Jé†+•Éúý>dìÒ+nxáÙ?d8NžùdÅô¦y=®²òºŽ`ªª&‰T*UTT‰Dü~¿ìi$Ù¿>£'ß{ï½sçÎííí}ê©ÿ>þøãO;í´gžYôñÇkšV]]½ÿ~Ó4G½jÕ*é_}üñÇÌ¿êêêþøøÛ·ï”f”ñÒÎA‚ÃdÏmÛŽÅbr[[[-Z‡ÿüÌ"èííM¥R9݉缨¨¨¸¸˜1–J¥Þ~ûíþÖv ^@ÃPG•HÆGŒ¨9ª~ÍšÏ9VÑTÝëõ0ÆDæñxÝn¢°d2aYV&“yùå—Çïr¹äó“ÉäŽ;’É$c,“ÉØ¶]]] €UUU;vì7nlmmmWW×G}Ä1bÄîÝ»“ɤ¢(ùaÌËÇÚáÂEňŒ‹h*•‘eÄ~ÀçóÚ¶mºŒ ™¦¥0fYVKkg:ñz½¡PHvS‘J%º»;aP°méuü ä¹ôCŸQ5Å —âr @` °âÜ ®yé¹ßº1uê)™l– `ˆÀ4ÝèìŽ:Š3:¼ò™²‡mír£# 2”þýDë7nòû|[Ót©ËΙÂ|^oßï÷yËKKý½ÑؾæfEQ¼oYii(T †!)@p!ÕI‰‡DDŠÊ*R§öº=½ÑØž={.»äEQL3›Í&!UÕe›6m:p edCí /üÑëu}¶rM~•`D|îé'¿òêÛ{÷µ «©ª©®êéööF~ý«ÿF¦|û[7ÙBØwÿöµk7}ðÑ';¶n½í¶›î¹çÁ+¯¼ô²ËÏ_¶ôãÇ~ûÔÏ~v÷1G –H¦;Úã©´õÁ‡eR™ºÚaソüê+Ï–\G ™®3›Ð&Ý´mÓL§3"•ÒzzÕh¯Â9¦ÓÑx,leRK?]³eë¶D* ²âøc'6nݺøõ·O;eÖg«×ŽU÷ٚϛ[:DI‘¯ÀãÚ×Ú ™¬Íƒ¯àÂëq%RiD¦jŠ 2M;àw——R©L8ZY‰FZÛ#^-%D"™*ôûRéLIȉ§âÉŒ¦+ÍÌx"›@kåÚm£ê¢œsÎe<!´vnÚÒä/ôÐØÑÃçžvò)'ÏðŠb±„Ì‚±-nZ¶™5Óél6›ÉfMË´MKÔ×>t¤™µl.ˆ ~øh"µÈ±°åòŒ “ÉìÞ·mÃÆõ†®Ïœ>{Hyc̲m†ŠeÛÉdlÛŽ­;vmÏZÙ1£ÆÍ<ñ¤¯m™£ÈPp²Щ¤y;ÂpJ½íXWÌ1Q¤`dŒ¸¬/,îœb²ü!ã¹€ ë‹É¤TàÒÜ4`7 B5Ws€ˆ$!'B›kªJ„Lr9‘?©Ê÷ÊOä€ AŒá%—\àõº‘iÚét6›ÉpÁ)1ÌšÙt2‰%ÛÚ:Ó©”p‰¶šã©q˜x…„~N.™q‡ ÊÊKKËÊòÒ+OÞ+åŸ$áEaÄ…º·À_3l¸¢¨ºf(ªƒ‡'Ç_âѬ#]wh™H$׬ý,îQU­¬¬ìøã'¹]n.x{{ëìÙ³›šš$þ_Q0ˆÈŠKJg””†ÃáõëÖïØ¾³¬¬¬¬¼¬8òz½§œrŠ¢ö±’I›^âÑ”––†B¡D"QQQ!»£ªj ìwòúàƒÚÛÛ›šš&L˜P\\òÛßþn×®]Š¢ 2d×®]@@ÑÑÑ‘L&,Xð /¼þúÇ7‰1æõún¼q"ú|>·Û­i†”vétjÏž½MMM™LFºï8±ººÚëõVVVz<Çsë­·f2™­[·îÝ»WZ¨[Q”p8‡…………cÆŒñz½½½½¯¾úª¬Œœ4i’¼?-^¼Ø4³4jÔ¨žžž÷ß[–Íf¥í.²×EEEåååûöí€0ƢѨô‘&“I™.›N§ƒÁ`uuµtæíÙ³'‰455™¦)3®›šš$OKNücÌãñ¨ªšÍf+*«‚¡r"J$³'‘HLš4iöìSÊÊÊ›››Ö­[7wîÜõë×Åâ±m[·F£ñªªª®®H:FdçŸþÂ… ¥ç6“ÉD"‘ŽŽŽ%K–¼öÚk…Nˆ‚r1 §b=/ Õí[ÖÕ6ŒQ]SuÛ2ñ¬ªhE%åç]ôõ—_üCUyÙ˜ñ“Û»#ˆŒiªâu¹ɤªjÙl–„Íû\¨ªzã‚›-ËTSUM×EUˆ‹ŽŽÎ¶ŽEe†®{ÝE !’®SmnZ–IóhLëèÑ“q´-afS]=á.Ce@é :Õ0ñD"‰¾õó埮ª>tÝÆm‰t‚o0àÛÝÜ)cÀÅ™žÞ$"0dš®Æã)Ó6+ÊýnÃÈd3»öv–\Û[Š ]éL¶¥=’ÉXuÃJÊJ ÒY³³3áHJBŠ‚þw*%kÅHQTÇS\\¬¹¼œ‹»öLŸ:¡º²¢»»çí¿}¤2­¸´xÌèÑápÄ2-fY–msÛ¶Å-‹[¦Èfm3Ë-[H“…´Ù˜ m d@Ùl¦qÛÆ-Û6ÂäcO¨¯©)Râœó½Í;·mßr µ¹  0~Ü„†Ú·Ë%Ù§cN¥ã®¡)§LÌМEHIˆ ¨#pÇéJ„L:`YÎéÂ…@€Š@‘G>Ef‘öÑz tëJdÎɺ`Òù‰Œ„Í‘1[p[ØŠ­0&¤kTp'±ÖæLQ˜"d#û@ÒûÂ2m"PTEÓ43kÚ\X–†á’ÙR²2ÌÐÛ´R‰iŠÎ9'AÄ .Õ\˜º ú%aJœà„ HäEŸÈISy9l i† ®ª>ˆǼ(Êy¡1Ey0,"·Û}ÜqSTE1\.ÒQFBˆÆÆÆH¤·ªªzôè±µµõ½½=Ñh”)º4ñKBÅsæÌ÷önÞ¼yùòOE:´zÚ”iy‡Y^÷‘³6qâDÓ4S©”Çã‘ñQÛ¶JŒBlÙ²eòäÉÇÿàƒ8€ˆÕÕÕííí£FÚ±cG oO=õ”$øío~«W¯Þ¹s‡®ë¥¥e†¡wt´3ÆÊÊÊFŽyÎ9gÉS(¯Íض-©¢Eq¹Ü²TCÂÈ?^UUé¿­¬¬6lX¾Z#ïÛ·OÓ´,Z´¨µµ•ˆ>üðË/¾xÊ”)±XìùçŸg /»ì²“O>yýúõ’ *\pÁ…ªªÙ¶%“`‰ÄòåË%Y„f”’F&OTWW†!œÝÝݱXlåÊ•yËÌ4M˲4M+((£çÔ q.1dÍ[0<ï¼ó­Zõicc#cÊĉÇÁ#<:vìØ-[¶Ø¶ýé§Ÿå*qvìØ)ç媫®ºõÖÛ CÏE[Í‚¿ß‰ÁùÔ›I:¹ˆ9qÑ|ùÄÆõ«‚¡Puå¤ÞHÌ&¦»ŒT2¦)îêa gû•ů<ËdFNÈæ–i‡í¸[ÕS¸°lS0•9^X’1 6rä˜\›@"¶°­’’’1cÆ"r!@WÅ´9âBØg ‚s"¤( ·c ™Âqn»Ýι\Ót li%0Æ2Ói #@TÔm[·žyÆéÀä9ÊÉì³Ï¾`ÛôèÃ}çÎïoذuæÌ)La˜Ne]ncS¬©²ªâÒKÎooï …BJe¯¿þêæý-Ÿ|²òª«æŸ}ÖÜ»ðmUÕóØŒaUeiiYñ¾}Í?¾÷‡†îjk‡{zöìiJ$Ñhì£%+â±ä¹çžšL& ƒþÝ»ö-^üÞI'ïñ^(t{=z*­ÅJ,¦ÆâÓ4m›÷tu¬ZµzëÖ­ºn°ÇŽa ‘I§@SÕÓçÎÝÓ´_jdéLæóM[äÈW”‡ UÙÕÔ)„ÐTuÈP6kutôr'9 uÃÈd²™Œ¹aSS]Miw2ÖÖÑuͶÌm;Ê‚šªìÚ×I‚†T„tCkÚßO¤KCþh€0àw—{¤îÌI(ªêõxŠŠŠ‚Á`0X˜Éd‰Äø±uºn(ªV]Z¤(j,ß¾mÇ›o¾?j䈆ú:Û´'!€#AœS&#²™¬’±Cœ\d&ÈöŽŽ­;6íÚµ5,>~Ò´u£¥gÛV[gÛ®=;vïÙNÄ†× ;ûŒó‡”U1I<“ …çUá„·Q–O&mAgù¢SDy"*t,QRÈa“$ÆPŠ@™Gn—žI$Éß-¥­'˜“L‘ë ¦ ò„hÛòDpˆJPÈ Ò\ cÂâhY‚GDA ´mnÛ¶i)Œ1EæÍÉê@r’rH™:˜‡2WÍ6·9HvC싾çdfÍ––Îd2-Éì¾<’Ð?„έ}~cÁœÇœ9=”4&1 б…sòÈÓIzsB%G˜cëtŽ<ÁóѲ€R+(0rÎ_‡›šöîÞ½êjëØ_TR-XX"8655¥Óé#F¨ªÊ™¦©iš”.{Ÿ¢ñz IDATöìFcC‡ …BÁ`PÓ´<+ª\o–e¥R)Ye¯iš¦i½½½Í ƒ@àÍ7ߌD"ªªŽ1bß¾}&LظqcII‰4¡¤å$åd:%„øè£Iâ@Ä .¸ ªª* ùý~·Ûí„zIX–Ãö›H$ZZZöíÛ×ØØ¸gÏž\þ$@0¬¬¬t»Ý‰Dbçζmç5vìØûï¿Ù²e·Ýv[ °m{Μ9Ï?ÿ¼ªªøÃ^xᙢ¸páÂÉ“'çËcápøÍ7ß”9±°lÙ2ø½œJXE Ó4›ššdáOcãfiŸlÚ´)ï¢Ïd2ýØáœ0áöíÛ7¿÷Þ{7ÞxcYYyÖ4%ÅCNéì—#ãllbHB2ÖS¿[ð–;~¸ä×ϹäJÛ&Ìm¸ÍŒIUU¤lß¼æƒ÷_>åÔ GŒš¤jŠ™±8ç„ðzÝÉDJ€X·êƒÏ–¿%Ûèñxî»÷Š‚DBs*±8¢ !€¸iq 9·_úëË»÷ìÉŸRxPp“òö¬sBõ#ç„l1G‚’©¤ôï;Ú:ç‰x¢0Xˆ€]Ý]Çï/ H4á/ð* Ì¡<@¡H§3–e›¦iÛVyY)S°ï½€ÔÞÞðû ÃEÀ‰€Û¶Í9ضO&}^¯¢¨r‹ÇâIÆÐ_àCÆ2¦8î£\a6d³™t*-ã%¤©*<-c~¿?‘H¤¥"¢®k–i;ÅnÈt]•ñžœ25 SŠ¢Á˜„!$‰Ÿ)il%˜eÙ€ ©ŠeËògÆr”¬rU˜L`C ÷'Ä!dŠ\H¥²’š,ege ¹j×ÃÒJgÒIÛæäñøTEíw©TJš š¦¹\nt,°ÜQJ}‰¦ßBÔÍõì÷5ó&Ë€€ÿAÇÙAIƒîüƒÖì`÷ä` ‰ò)8˜‡‹a’Z±ïƒ<¿v¾a.i¦_óú^'#“ j¢¾$M:htm'Ñ‘:{èIt¸.ÁE‡mF&“–dXªªÉ s.L3+x½^©þ§R©~œv}sa† \å’áIÏF£Q¯×›L& ð,+ŸÈÚ6åWä–ÌÃzH±Ñ_JÉw©ªzp½õ`ËC2ßÊì¹Æ$>ŽlC~á jñ ºz€Ïç#¢®®.Û¶Ýn·ÌžÍf³ý½ÅÅÅ2ÆœÿIJ¬<ÚËÿÆ…ˆÓ¦M5jŒTlz{{u]3 cùòåMMûò§÷¸q㯺êê_þò‘H$"‹~5LŽ*Í›7oÞ—´·wtvwmZÿùû¼Ó¿|/¿îf¿?€HDðÐ^á?ýmKë÷ÿöæ¼K¯CUã–€Š¢¼¾X2I¤ìۻ嵿>yâIgŸ8ãôh4!H2@!‘ @]UVöî²%¯I“Óï÷ß}÷CRJJFBd Üœ8·üÙOÃáÞŠ î¸9èÜéÿCg=wƒÃ8•?âò$U'ÌÀS ‰I×OÖ hÚPsù(”‡.ë7úL:£‰úpùÿ´Ž©ßi=pe;…_bPŸ'§¯}pÐà 0YÿÜoHûz}è:XŽò5R°ýßr”K¼Ÿ†â0yÌ8àpìÿÖ¾Áø4è7˜ùšX‡ºe6­t(äî¿õ5¨¡phî[¿‘™¢xˆ8ïÿ7‰¼oñ`9䌓¼ç_×ÑÃNGñ«’làˆá Ûl݃á ‚äÐ5àÍ„<ôø:èæ#ÌïA÷n1ŠYsèçõâÐNý]ŠÝÿž €P(À8·dJJÊÊÊÊZÛÚöîÙ…ˆÒë[QQÉK§“===]]]žûÐÉ-((p{<¶Å%NK:xìàå×Ý Öç"p©C<þ¢h,öÆ+Ïλ互â (JëÎÛT™JÄ+«ê/úÊM¯½ôÇD<:uúéŒ) 8 ™Û£ç€Ëð0Æ€@à66– 6G‹£ÅÉædsƒæH”DÊÿH²µ¡ü“Ž(Aó_'@ÂG“Sƹè_úº/¯/%Âܲ(»´äêb”‹@JC™-Ú·ðœç >øýW8ÁàëY†…ÅͬÄ>í¿áûÚC@ÿ~ºæÑlÏAO€üxÒí#ì¯þiy4àOüg6iµôõ÷ÿ‘’Ëî¶%bþ}{J¹Ú†Ãn)UÓTÛæÀ€ÛY]ÓN=ãœ÷Þ~õíÅÏvîeº¡#ˆ€OoK& ‘1Dvâìy•µ¾ûR[ËÎSN½ˆƒJ2!RB÷ïéîTEQUMSC   S1‡µ-€;€U‡\ðÄ“hYý¢mˆ0b$Í=‹ŠúqïFøÐòå°n=ÌŸ.ãßnN~tœs6wÜ¿hÕ>úK?ŽæÌþRØq áÆ øö;`[4q"›w¾8t7 Aïüþü,¬[‡–- oaHÌœI7Ý„UCœµ¹{7<û,h:\=+/=ø9?¦OƒN\º”Ö®Ãoke¼f¾÷>ýçwÛæ¬‰ù ¼ú*¬Yë,{¨N³O†›o†Â LTú·ÓÍ¿p{z0N˜ “§€®Á3k^{“ÚZqÁ ‡$¹P"Ž¿x.¿FŒ t{ g΀©Sþ‘ÎttÀOÀ•Wâ°šAÚcÙøÄT[KsOûG#µm|ùexíu\¹ 8Ò7®¸Œ.¹™‚ÿ–ÿ‹ÿòêû™¬™ÍfTÍ͹Ng„ Ï×|üÙÊ•WõfKM67mÄln!1KØÙdìã÷75íš9ûüŽÎ¶5ŸüÍ`"UUU]7t—ÍC .$÷8{‚âñëà&nØ'žéLÿD{”Üõ ðî»4´ ñðJ¡Üû>O< kVc @ÿnÃ4øíc8ÿ†Eà®/¿œî¿÷Ka÷#µdžs.L™558ýDºáz:äüó30>†Bpâ òz󢩉–uµø·¿QuÀûïÁg!Üz <üóƒŸS9nÿÜþ-@€þþøGli>ô]ð‡?ÂwR¬÷°ËäÞðžÂjš1]Qu[b¼mÙŠë×Á”ÉðÆÀ¿›Oäh¶ç '*‚oý&ýô§¨(ˆ‡Wí àÆ›`ýZ\µrQEÂÖv¨J¯.†³ÏH/ŒÿqÝrÓ?Ò áÄñ7蔓iF: 'žsæÀOŠ‹Öþ_Ï?×\ÆÒôO2)¶n½Ø»ÿû)¸ò+G®…rFF&Ëü+Õ¯«¾º° 8T"æ“eTN\7t!8 š®[™ô1Sfj~òÑ+®š_,mïéQU&¨¨‘-T•…**/ºâ¦uk?Yúþ+éd\7Œâ²*È!a.);WAÀh„€©dÒâƒÖ(*|º¦NíK·MñÊkpÕUøÊb¸å–Ì̹g°rœ:ƒóÈ•éöoô™ÊyD€<ÌþÌ•0–êyØf ðÆ`î D‡@8˜ÃZäj%.äê+‹#(úµV_ÔNt¨wrü;Î=}åæ q-1ÿIÖCBK÷¯ß”®ôŸßÃiSè¼óÉÍ¥œu‚œQ}”ÕÒýëàú— ÓZùáÌ9ã"ú âÈaßt¦Ž|aä È©yü<ËQÇ_ †zúà}8¤Ö.geáÞûé´Sá…çÑíA´V®†3ÎÄÇÿ?úQ~ñʯЯ~MW_É&MÊw¨ß’ÊO b¸õ#M;ô!L¦ðÁàë_§‡†Áû PÞúþõ¯pýõDƒ,ŒÜŒ÷›UiÉb_SP¢©yïccå=NgÎ)`Ê÷Xöý í9˜ÍHðáûxòIy7¦ˆFñîÐS†;ï¤òr¹› ž¥MDèжåÖn®¿$‚9;½0ˆ-äÁœíÜ›K{ÏË0tšè°3…n7¬['‡W>]bô9…²N+_Öå¼sçHßçp]â »»ßw®Å>÷r~©;§\Õ{¢ãá$–W8(7ŽyŽ=—/MËA‚°L8ã zù¯pÕåG+ð²PY5ST‰U@½ÃßïØB în „Ê%þΠ֞£&Ï'@ˆ€„ªªêKì³§P¨nð¸ðú|ñxÔÐ 4m®)\àñÓf¨†ñç§þ…Wû‹JLn"SqÌ¥.CëM$ëFNª¨®ß°zÙÖ+UE{Ì •U#t—›œsWH.b¢í“R è¹'bGÃGéLQu¸äb¼ëûÐÒÚçê·-èîÁL–€H×±8º>Ht¸ÀÞÅãŒAq=žÜñOLè C")`(~?*9U Ó GÐ2 U‚Eàqm3 ÇH¿‹‚tÄž(‘Ëë°Îá*á˜=½˜ˆ"+ _B¿;R)èîFAàuCI 0 2+ÏÝL»{ȶ‘|(*UÁ¾EA,kŠÎN Á"(ðÉÖ°~¾uGì,~ ;ïüþnDDÑ8F,òû¡¨Ði€s&‚ˆÇ±7ŒÈ¨¬”i H|I&uuA& šÅÅ ëÌ2©³l<^(I˜9çÍf¡7 ™40…A0>/‘¼”H`oØ©5ôû!X(r  Î0–—;°ÝƒžmÍÍÔÙ¿ø)¸=pÚ;ùx˜:…>ß4àˆ¼õV±zûöôærÁüOz7oÄtn\º1ðpD:ëtÖЛ6!IÌïtŠº{@Âø0XD9JR ¥€–M=]˜µÀДâb®éR¸á‘÷Ž3m ÂݘH€nPi)(ŠÔ4 žÀpn{< ¢ªþã‹?\r þú7”Í`.bØYJ¸X©Ð9'èéÁt’˜JÅEèöf(óSȧdMèîË ðù X c9ìïuÇ`N9Ë‹7Š„1EDB%Åèvç|ó@ÐXÌY\Á øÊ*PD©ndRØÕ rw‡Š%6ŸÃ³Obo¯„ºC· ‹Š„¦åUxä\„{0‘$T5(.—›I­°?~B®ò7ϲr°&ÙÑŽãÆ’ª C]g #¨q pAL9ÚÑ9qÎeî‚B‡TÂa#£<…‹cF9µ®ÐÙ²«qÝ’“Ͼ‘!"ÈCý1t”'‰ê2bÌV噟ý>Áì2t†¤©š¡»\†Ëëvx 4EUTmâ¤)gŸwñóÏþnßîF—Ë­+LUTEe…~O×+l¡*ÌëóŸpÒÙ—]{{uÍÈO—¾ýÂÓ?[úîKÍ{¶pnÉœB@LaÈB†Ày8}‘@e@ÜQú´àE±1ã¡®êب1tÚé°vý ßMgàöÛaâ1XWuõ¬¾N8‘ž[ä˜鬸Æ-0ñ¨«ÇÚVÛ@ÇOÆÿ¸ïëo¾3g±±c©®k¨a;i~ú©³¾°O=…Ó¦‹úP߀ÇN‚Ç;R—;:iÞ<|ÿÃJß×æÃ¯~íHÁEÏѵװïÜÇKµuX7BL™o¾‹R¼õ6Íœ… # ®ÆOÄ{î˦Ü&,ÿgB#F±º¬¯‡qØe—Qo¯€ßý.þÇÒ¹çaìAS¦²µ$²@ÿ#€bQ¼ä28°þô4Ì9•ÍžCò'r`“ÿ˜z4Œ€Úz¨kÀc'ÁÝ?ĬÉ0ÇK.¥Ä)SYíjçÍ#YMôäpÍ5ôí;aìx¨m€QcèÒËiÓFvÎy8bÔ6Àø pçwÁ4åŠU«hö7NN+Ž 'œÀ^{ýH«èÉ'qÚ4hAù†Ýs/šâ9ç*/¥Uk`öi8çTøÉOùz$Âay˜ ƒóæÁ¬¬¥âûñhÙǸh¢å i¶u‚Ï‹ÅE‡8*ˆÒ•WŠcŽu¨Å‹ÅŒ™Pßuõ¬®& ߸’IÂl̇üÎ?Gºz5–Ÿ;ÃÝNÓŽ°w ±çœ <£Ú=¾õ-´9Á¯£ÉÓ`xó3~"\}Òôè¥ýA#¥0éÊ"\pþâ‘&Ú¯~ _›ßoDM8†7ÀÈ‘læÉðᇃ<7š€K.W^q´«5ÄìSqä(¬«‡º˜p ^=¤S_e:Œåî ïï~/áéдà{ßÃc£ºª­g #ᤓé7sÛøÀƒìØIP×€µõÐ0¦L>âTø…{`ö©ð‹ŸÁÌ“úv÷w ÓtÜŸ<Ó¦AÃH¨­gu 4f‚˜7µu8ªg"Á¯¼ÇM¤úz¬k ‘#aÆ,øàCÁè` èj‡9§ÁÆÏ±¿cäÙ?Ó ósxäQ¸ãÎC}΄ Ä£Jç<:ý’¡$d-9U’üZØV㺥㎛Œ9`ÔH äß—ÓÖ9" ( t…)QzßÙ@ܨCgŽ @—áF^ŸP(*s ‚p©ZÝÈ1 o¹ëÓ?üèÅÂ¥k>GQ”ÞDUd*ÓTEU± Ð?eÆé×.üÞY\§îU+Þyú±|øæŸš÷n±m[jñ„90.§#t˜&”Z‰CI–w ¤3 »œ¯ü×Á®½ðñär‹6oD·o¾ òž´üõÂóø§gð׿$nmQw1o½öïZùüþ÷ìÁÉÌ·¨§‹Î?î¹ö53™uû·©¦vïn!· q# ‚ŸüÔY@‡k†ünS3[¸.¿ zÃd›ôÂó°è¹#- 3C":;úû´zµØµSæáЦfX´Ö¯co¼Î¸M­Ø„‰pÛ­ ñº»aÁ8y2´·ϲ>«VAk«³RI¸é&ª­Ã=;ˆÛÄM|m1mØ€÷?(!hãFøÕoàÜs •¤Öf Ñ÷ã¡øw.\v1üpÌDºæºö”?š†´k7Ür+\ô†[NÒO<ï¿'#í°b<ü0=ñ¸°2°vøl%<÷Àž½øÜ‹°o­_Ü¢%²¥Kpö©bêTho¡LŠ~p7þâaøx¹s(}ÿn‚6o$n1a‰];ièpþƒ ¾á`ï>¸ùpÍÕÐÓÜ‚tzˆî»>ø芯ˆ¡5P9¯»¯¾gL,“SRÕ¼ÍáäÎÉ|¹7Àí·÷{#]|}¶øáäb$“óî@a EåL$  ˆ‚}ï.¼öj  övüÆ7qÖ,ìh'n·ð¿/ý…žþ ±j <ô›6 öî!nÑ»Ã-pÿCÎét„½Ã¢1±d ½õ&._жEÿžzšÖ¯‡®.øñ}8çHÅl2Søàôê«°øÕ£< 8Àë9^B@aYÀÐ ¬[#¶o§þ*Ú®bõjé¬Fذ››iÙh¦ñã芫À²œÚ­œÕhÁ'+DËHé ,\ÀJKhÇâq Ÿ–,¤þ†æQgb8ûk—\•/¿ ¿ù-üì!ä :Zhú4¼aµµ-[?øÝs¥ãÀ-ˆF`áxçw¡±(›…¥Kñ¡ŸÂí·‹X”²)|ôñè£Ê»ïÛ¾Ý÷¼êJŠõ¢lù_^€•«éÅø•Ÿý‚}º‚þòp ¸Åöî¡qãàÆ› £®E¤²rêíÅgŸùD}øåo ¸TÆŽ;F6ôm+"`{vÃgŸAm­tØå,“áгCÎîÄüÅ5íÝâñBà ’”ƒÝtŒG"Çšd€ˆà1ŒšòRÄ|‚%ì—$McùP”ȾLATEÓ4P× `ª¢jGUT™®é…E¡n¾Óíq=óä/Û[ö.EQÐ\SUMS˜ÂTUÑ4MU¦iCëOš{Á¥×|û¢ën-*²vÅß^þó#ëW.M§ciK6±?HØ!alo‡¦&”?ûöÁ¶íð“ŸP[NœÄ9~ú)]r1+¤Ú2t(}ý±~=$›šË?¡‰iÞ†ˆGjF<ðɧäõÒ _¯pÊTzä‘Ö/fôË_‰ JŠÅu×°¦fêé!@ر¢QZ0 ƒH£Gá£ß/] ¶ïd ¾eCˆÒÔitöÙ°bZÜqäŒ 7ÝD ¡¤ fÌ€]»E:Ãh€³‘é\| pâD¼öºöZ?ª¸âS ñºkÑëÒ4¼ä=–}܇œvÅ•xÂtD¤±cqÔHØ´ÉÑu||𨪜4I7‰JKá®»° ª_û.ÜÒè8RÚZᤓ°¬ÜÉù¬Ïþ _uPÕàãåÌëÁk®Ÿ—U§Ë.a5ÃÄ’®ø «ÁÊ ºæ¸î˜>ãïËF£¾ÌÁ×}÷`&÷ÝïD]þ7²‘úþ¦<<'lß©$|ýëTT(½GtÆ™x‰ÐBùÄâ®»¨¨ˆá”É0c|þ¹§9ÂÞÉÀw¾ÃjN; n߉E!ZµzÜPT.º…BØÙŽG×€ÎNÌŸMûpý:øÕ¯ ¸|Þ/(>’!jC‡ßýŽ€€C´pvwÁ–Íýä _ëî‚Æ­tÃ×pH¹ž5Î>“>Xܤ¢*ÀyÝòaÔ(¸èb‡I9d o¦L×o°âSª®‚«¯BÍ r»àêk ²–}L(),ÜHW\ކªJ—^ÊÊÊùÚõ€(Âa$A§Ÿ‰†.GN97l€k¯•{…>ùNž3g2B%¥ì›ß ½{qÿÁ£ê—^*^ ’i‰ZL;wÁÆMpÑER?qf)•Â-[à±ßâgŠ)'à˜°£¨þÀrý±ÜúM ‚‹Ÿ/uÌ †}Ni(G)¡ÃCND•(“M·vvöUÜôå>v娚¦ !8çȈq!l ™"¹ C7<®x"IºvÆY—ŒsÌk//*/¯<í¬ Í@@[pEaœ â PØDÈ\nW™Q]RRuü‰§v¶5mZóÉËÏ>6æØŽ9n–ä:¡­÷`ÇÙ6»è⃰',矇`™”NãÞ=ðôÓ˜÷e76¢- Çï“0ÃTÂQ8F#ÀmˆÅz< SŸ# a Ù¶ãâ* ÁòOàüy0¤Â‰W—„äVd–)׌d|^ wCa!ºÝŽÖ€;‘ŽJá?¼×¥¼ª*óäAnc*E 0MeÁ"ÁryÆAa¡ãAJ'Á¶hŧÔÜLùÈÁÞ&J¦ˆ[ ©€Ã†“„€ è ™®Iªuê'VÈ™'ýÓ ˆ@ Ä¢ˆ//¹à @& ‘X> FÔçFá±ß€VXHµµ}‹]ÓaÔH2 S×)XˆÑ! !…hågl *¤"XX( —!ƒ±¨¢ÛEŽ (Š‹•h„œ¡Ì¤ À]>ìõÁ‡xÿýäÄâ&=ØoÖ`Üxºùf¼ÿºî«lÚH‚ÿ|²y.Û=G?Þ·gÎ;n» ãqï½ k×8 Q@ÐÓÅL?¡. Ç“¦Iï!€ßûö¡° 5<âÞq&±¡Þ ï—Ò«/ãðZP6¬:OkE¤iÈZ6m—¿r%öËuÒJîùõGÆ4æ °¾‹Cy»…••uõä-N:Ä?†±dÓ8¤ÊÉZ“«ü;wB8ŒŒõgì9*×h>ÿûÎ.¨"cr˜ñ°|ã l¨Céx'¤ÿ¯½/ ³«º®\{Ÿ{ï{¯^ÍšÇ*‰Ò€Ð„$$1Oƒm<`ÒÎà) Á!qÒ1¤ãvÛØm'ù:NÚ‰ÛN>ð<‚qlÇr°‘±1ó 4 ¡YUªñU½áÞ³wÿ8çÞ÷J*îî_‰Î§O”^½w߽眽ÏÚk¯uÿëïV®h­FCƒ„t:®Yå©Ik ŽðÇñ IDAT¨-- G~‚žùÒÚê­[fÏòðƒ$-¡÷îÿ¢¦*`rô(©`xxâ'²yþǧôé§hýŪ ÐÅ‹hÉÙþ—äÏüþõ_içNÄ–V.×ÛÞ/·ÞŠE‹I½ŒÙKüñ™Å:ê\ªªL5û^~²}êì¶öi™2¾¨–˱*XI AlS¾P®Œˆ R²U«ÜHüSuö'Kª¦Ï'0&H’J.—¯&5°ƒ(±IÇÖŠŽm-BÙDçÍ_øÁ?ùËçŸ}â ÿëS= —ž¿áÊB¾ˆ0«±€l ¤¬ À‚Y`š=wÑÌ9=#ƒ}¿ÚúÃï|ùo7^ýÖ)Óf’/ZM¼ÝFïù0æÍ«_l\Ã7¾©_ú¿çwõÜÕ~Âÿú×tà`¦¬Í6n@.ràIÃ;«î?€ûï¯Kë¼zµN™J€:Ìwü¡þèG\.«‚æuáÊ+ÓÖPRq7>ù),ZŒ±1¦½C–/ÅÝ÷Ðe—êk\FÆ—ag–âÐÀèë%IŠSH\Ô')gÖ”—Z.€ˆ i–;ÎàL3B¬>ô=j.Rê8(·l¼y§ñjþ<ÌŸ§§ð²²3¤7Èy½“XÒˆ~åkï¾`ö,^´ ƒ†u2ÊêU)¹ J¬i—˜Ï+؀Dž ±Öï0ú!|èC²b;rA±¨K—òˆ·½õÔʸ:æ“ae£®IJöE ¬ëé¶¼Óµjï܉(:åœ(ðG¤ÄwêÃ?FSqËž.áwZÈIÆ¿~[ö›ê¤bÅüyš®‚ß Umœ¢ 5ÃærtÑ:ñ„gÒþzß} é¿ò¢E2·«>UŒ©‡àN>¯¿ßü&áVúüð£-ø§Ò5«AŒƒñ·Ÿ‘Ffòïü.ÝüVŒ £–)ŽÅÝ;ïÀ“O¾æe€ÕÃK©'Ž£6½Þf0CôÚ“le¢u›½ú:̈_øœ.]vÒïþ/ r(ÅàêÆ LŸï}—ÚZêçýÿ/¥£×]CÖÓHIª"’'èÓ­ï}?®»-ÅS¨îÔ¼i£¿Evpy O+Ï~rùezùe~ÙÞú[èŸ`[!Pk«|üctÓ›ñ…¦;>02Žþ¸kPB­Ê4!”ªÞ^=™Ð}¾¾ózç-þ%¯÷T:€š‹øòWÑ5§QŽYÆKðëkÈÖŸ~íLðb7~ùKú‡Ïâ®»ðŸ~‹¢úÀwP*½Ñz¨;ÿ\u]²±yÖqiÁ²4ÕP}½iÜÊ+>Ù×ÒÏÈúõâxÖœðÿ>ƒO=Vz•f‚ªòÂú“‡'VÏ××ütcð?ÿšF>ªŽª­À¶mzûèãçÏÞŸÝo~+>õÉFü^]ЄoÌL7¿ó7üé¿Ö;é…éŸ>ïÆÿø9jnÆOÆ‚ökýFX54§Õ¹«º "U:ðÊK“§Î*;&5çNŒ–5=5¦aMÅJ­–¸GU )HZòMsgÎØýêþJ¥ÌLoÄCƒMÀ&ˆ( “  cŒ ¢0 L¦9Ÿ/¢Ð˜\ªjS±ðîßû½ßÿƒ?cÂþþÞŸoýMâ0 ÂиÂa˜€É‚À9 BFáâe«®û»ŸþÕÃÛŸûÅkô›xͶ¬ù…J­-˜>ý'DQ¤aΖJõ—ºõQ¾ür;Y¼­Ø¬¥Ñz+ GãúñØc â½»±z½õfíž'Ý]¸ø"Üóç”6ñh›û¿ˆ¾>̘EÝ]:wžœÞúNïÅÀ^ã2Êea `­T'. ’jÖTðZóÃ6  IBå1ÒדÒñffFmB•Jý©•×|*4îVd!ò3Ç·ÿ¬Uý ~ÙaÇ{õêkðä“pÛnµ‚$Fæ}EÀ{߃øÇÿOõ0€ÄÒ7¿W^ÁŒéÜÝ®.:wÞ÷- ãè‘SEžœÓ²g‘jlä 2Ý yREÿÄn££èèßEÚ tÝuؼY?ùIìß?.ztNÆÈYK§n™ÇŽcòd=ÝhmÕ±•FêEЬw“€Ò¨v´C¦&ˆE­‚Æ)z÷Ýô—™»;©ëuÖθß÷ûökK n¿ hw—¬\‰?ý3L™òÆaàÔ<¬þg_-ÂŒd‹ ÔÛ7îÖÅ5õT;: ²É†T«„†ÿÜÿæ÷¿Õ*½ÆúxƒÐ(­Uǽ¶·Þô&~ø'ª@s³ŒŒÛId¸„[n¡Ô×YûÀÁøÚ׊®¹ÚÕ…î.Ýt.½„^Þ(Cù”|AÇÝ¢—_Æ¥Wо½§{s½áz Êc¿¤‡BO.]ê رS/¼= hBç¸ß,™õeŠˆ;6(R‹%±ñÞOôœ³N¡‰ÈI&Si“žŽŽÆ’`""„AT,6÷ •«å\u4·M˜Ÿ¡%f'½MÌ„3ç™ SšXb«…¡ ³V*7·´]³ùÍøã2ŸûÌGÿíß. F £0 M¹ ŠBEaRd‚(0¡ §M›õ¶ß¹³ZKâ &VYtý•Úp‰¾;’‰­:'LZ¶œ¶>"ä¥o|ûö£©À®«&ËíÎ]I/<¾õDö§?ÓŸ?ŠÖ6U•|õöÁZס¡ œè¯kÆ)Éû<¶jªè= @.÷Z—Q(@•,ÒÞ>ìßïs«úùâèœà»·µSSmßá*p¤ -?Æ¡CînIIsÙÞG …ëªafÏ”¶o¯‹^>øïõ¯îìÄܹøé#õÅ;:Æ_þ’”GÁÆ5;1Þ`­»£ûö±…8xÿÄ+c®\ÁGÒÎðŽåŠý¯ÒW¾®Å&­oksË(åŒÕO`¾ÜQ§4býð‡ésŸoÊ@½} B±Ié”B…*-\¤}}tøeíàíÙKK³BìA«Óî.L™„;wRb);Ý—Ç䡇ð裺î|êL‹Ý<$òµ7ýÔ'ÄøðÝîþºÓ .XKÕX?öqí¨ëŠÐ¯§/Õ#A+V|䣨³‡¸®$@CC¸ÿ‹Ø¾ƒÎ_§¤Ô=_ŒÑ'žDFMëíÅ—¾ªÌ¾ñÎm;n¶ˆ‡ª²D¯µv¬Î"˜: ©€j،҈Ʊ{åÓøTr“>¿Ý{íÌôÒ.µ‰çâ9Bÿú£†Š0pà?ô=¯Q à©§„ Î^UÆ}Y÷=šÔ¶V~ò)ÍD!’?øð ::ÈÑ ®¹~t°çî=xßûéÅS÷m° NœbÑ1p±r¹üúqŒ•}ï³|÷»´}›67Ó鎮sæâÂutß}ò­oÓ-9VC”wÌΓõ+§/*L¸ÑûžEÇXõ¡Ñ ÐñÃû¢BS[çt…ŽVP7Re¸öARkÅ•`X…¡aN4ùxÿñ#ÇXµÄºßr5ÂÆKnœµ Þ–MRh­%cbÑÀ°P¨AÀD 3Z®˜À¡Öbë•›o¼xÃ=ö“¯ß÷÷Ý=‹6\rm¡µETH•D†€¬*"ÔÜ\Üpù Ï?ý˜³Oœ¨R~ºw¶>è¶÷ë-·ÐoÂÊsÁ¤;vжÈÿøD  ¤59nz>ûYºæZlºŽØH}ýôæ7ãìE°é:½ÿ‹´iÖž  ¯ê£¿ ‡V+! è†ëõc÷ò‹/J×—UÅ8í»ýqíµôW£M·›ISôß§9³iÙrbÙr½ê*üÖ»ð–7s[ •kúàXº„6oVw¶?/¦GV…ê‘êž½uÔô¦ñ¿þQûúèìEôÄ}ï!ºôž1CpŠŸ{+VÈÛÞ¦×_ÏÅf«´e &OÒëoÈôGèµ°–v¹çÜq'­]‡ÎNGü†IB}}X³†n¹¥ñ, )Ôæßð¬|ðNüåGTê"&X¶Bßý;ôñOâ³ÿHù¼flïã½4eŠ~ðš°©À”)ôç†{?Iÿò/ÚÑQ©VéD?nܬW^Nºæð[nÆ]wéã¿¢ÎÉ*–¿ÿ} ~×»ÜÅsŠIiŠªëÙuáè¦7ÑéÖB©hÑøÉ|Á(ñŽwÐÕ×¢X@ÿ ~ñs ˆÐËs¢Ùæ D~ ‰ä›ßŠÛn£·Ý‚åËu°Ÿø#ikËhV¤¤óæé]LßþÍïÑýøÖ7éíoôéÚGj]à 蔩xÇÛñ‘¿ÄóÏcêTxêiÝúþùŸ²Ë„ø1¸åVÎçíIÿrýõøä½¬â?„ï|}ñ>\· —^Ê Œ ñwеktÕ¹èÆ¼fµ^sÞp# 9Á·¾M6`ýEuÅ+¥“ß—/ãî.}×oÓ7h[‘âÅíüèÏõÓŸò°ë»ßÍ_ùŠ\¿Ù¬ß Ìôê«üÀƒò‡ É“'žðJ¼åfÜy'E®»voü«_Ó-[&°^¹’¿ñ5Á…<«J=MÏ‘HôÊ®g»®òô¯+Ðè]œ™ƒáKŒq<~4g‚é“'BGŽÒ¾}ÊÀ{߃?ùŠB‹£Çøª+uútX¥cGqÑ…4o>˜è²ËÑ=@o/††hÑbºç\}•’ƒ¥N¹ŒZLCƒ˜7]Ýé#Hÿ¬ZI«Vé±ãXžÞÞiÓqí5F¬îÝ«Cƒˆ-n½÷܃¶6(ŸÇõ7 µ{öÐÀ€ZK¿ý.Üs7òM %±š]3²65é¦Í4s¦îÙ‹Á”)ø“?Ö›ßLÌ ¦©S°i’{_ÑÁA´µê]„ßý=0+MÌ\&vÍ¥#GuãF~û;`ÒüôÈQ̘†îî ¾òÒ%´~ƒ2½>~ßýØ·Ÿ¬¸( óزç;±BM—w>óÈÒ5W™ÀÀ£+HV8Ï>ˆ ¡!GB%¢€ª¥òhÈACïAƒœ#tèzâémDÇ1q ªq°V]tUB’ˆ¨+ù(WKâ±jU+‰ZN$I¬¨U¬"- oùá;·=éÕ7,[±–™]/²@­&¤X|ê¿ÿÑ@ÿq‰Ï¸žgÆ™qfüGNt{ëVÚt럛;²²yª¡Cݽýñ±‘þk¯uœô("%¢YS:öö¹’æB¾Tc(‘²G<5ŒZq] Æú¢zdµáPCÖjæœU’ëó3†¬cŒ!"Æ@ÆJ&VÑb.W®‘"“ŠëÑ–Ö¶7¿õ]G/>ô/}í™'~~Íæ›gÏí!a5p†|úÁ™qfœgÆ™ñï{d*ñÆ·1”X{hß¶ç_«TW¥×Œ¨z¨¯Aa…@K屬¡A•$iPrj¨:áÔÒ[$–Ùx¶¿ ¨²zívUfVh3¹’#3‰%*Wk6E¶fÅ€U-YÄ3gÏ}÷ûîÚöâSßùÚ?Oš2í¼ .é:kAD©ÚÍ¿'¯Ê3ãÌ83ÎŒ3ã7<¦Õ`§}ï‚1aed6™9³»\-×Û¼”©ÊH›™ÈÉDdü M_VoÝN{³³8êQ¹º ¨2˜Ù$Öá˜Ôiƒª 6†‰¹)Šˆ¨'•8V(“a°†–„ ”„HD[й¡‘òŠs/X~îÚžyòé§~ñ½¾¢0ˆÂ0jim-¾NwÌ™qfœgÆ™ñïm°kð Ybf4È·Õjµ_šÛµ cÇs¦$¤ÂlT- 5 B$‹µªNºÄ\R—®Æ°ç¨î4ª–Ƶ€! ‚ˆ¦Tˆ±ÑîŒ1*ªÌ0ÇÖŠˆ¨ ˜„Üñ†«R,ä› ¹ãýC Qi´0 HU7lذòÜóª¶Z­U›Äƒ;¶?W©Tç÷Ø3óâÌ83ÎŒ3ã?ÂpDÑcLjHL©M¤;fDñcv÷,Y[®VQwhTµJì…I™`¹€› ¹±ªVËìÕ|3*é©ÑúOèdA†€¬°¶þû”ŠÙ¥oÇÄêºì¹Z“0 šZ¥jA*ˆX‹êÐÈÈ#îÚ™HDG+52”7Mù°µÍqÕþ`ö¼íCÏîßwfnœgÆ™qfüG9 º°—/´š çÕo⤪&µÊèHçäY]3'ëí¯ÄU1HRm@5†fÏš¾wß¡02ÍMMc•1rr4iéÑñ]Æ…a:Yë¢â„Ī’ë`&eWŸd®‡jUı 6Ì¡1€$LY ;‡ç0 Â<Û±²ˆQQbˆÈu°š( s¹phhdx¤""wý—©#“Š2óÓÿì‡?x µ}ÊůœÓ=?Ÿ+’ˆTÇʼ²oï®á¡q‹µP06¦©¹eÚ´9-mù¦æI‰ÊØX9îïï=~xÿhiÈÆ±µ‰+"’$®ò) ‚Š*DUÅÚDÄŠ;«s7æ|!ßÑ1¥­}rsûä¶ÖΦæ–ÌfjIa¡D¬Nø\ÙyëxÃõ\Vj±£B1‘ÈçÂL©ZEªŒa˜Xk8Bc)W«a.èš¾÷@o¹ZÑLÔè=|`ïöïîIfÏ_6§{qǤ™`"8Ä`ܼR(1/™?ëÄÀÈÑþ†•´«½¹Ž•k õ}TÄDÄ &Ãå‚|ıŒŽUEE¡Ì0 Ã'V@ˆˆD‰HHàŸ'¢J¥âØ×e%rÕ¾õ2Ç1…µvÏÞ—9²pñÙS¦ÍLÓX>IY#UNïï²L?AàºOš+ `×Í×ßü…§=gåÆŽÎJ®SÍM_NíÓ=MÕ+¨j]ÔZ$P–´ÁÛRä£&ÒTºT™Bc‚€‰ǒĉk%x-Y'>lIYl‚zyef†¤ZOéT¨ïãT5DD~9B-Ã{( Ä8ÙîÆ¾7"Uùùš:kî’sεi'º/@e"žyì‘|>¿dåäwÌ )—*—H²>6¯®@ U뙀ÞTœþ/5ÈÃ¥³DäE$XEÈõe:ª†›OêIUQ6iMÉ ¥û^YªŒ•v¼øÄ±#‡Î=oýÔ]'»|k=Ø8¸Ï?jñÓ)‚¦B“ªŒ”Jþúaâ$ÞöìcËÖ\¢iglitèáïÝå¿[È·¤‡0w«R¾&ˆ@MM¹¡RÕkÇh¦íFÏ^!P SÇ­Þ#Ím“Â(×?8‹$ ƒÄíÞ ‚[ÖÄÒî}‡‰ÄIYbø§¬éüa4ÌÌT®™üŽíÌÓc䎻c›Ä‰…ï TS-¶*ꃵ^Þ&ŠÂ8N*•*3¸'ÖZV¤¡  (WjÖ1VÝs«Ì¤*&0q« ŠÂr9 jÝ.”žyæÉÇño'úû ùB¾PdÃêš×sÖ‚Å-퓘 ©(`ÄV{{xuoÿ‰Þ±Ñ±‰ˆ­%–A…¦–ŽÎÉÓfÌmn)AäÖ¶»óÖZI¬8R »žUQªX±q¥:2tbh°÷ø‘ƒ'‚ š5笹] Z;§cà m?£¢'ßWEkK±…džT3]Pl*l†J#©š!5Š~†a†ab“©ÍLáþ#½RETl<Ðß{pÏ ‡¾E…®…+fw-É5†Zûɨñ2"zV×ô]¯ÉÀr%U£ullŒ!(AM䣀JœÔª5+€1&¢\—'˜«L.‚À„Q†a@(¢ááRœ$MùB¹\njÊ ¨ ©øðÛ{©Ò ¥O7ï4P4(–)ªµ±gŸ}<F«WÏa$V¬ ù=Ì­râMù( L`­­Õj.¤Å¶¶ýÅç_~iǺ .êž·ÐJ,P1HŒ1Q1s¹\¶ÖfIåÌé3 …ÂÞWÆÉR1³1&Žã0 óù<3ŽŽúHúHHàÖb[-©•+o‹¬(Nâýû÷:¸Þ¼…3gÍá LŸ;2áæ“¦Y&ò @nª)çœÒMÆX%UÝûÒ }½G—­¾4— F| ,(§91TRAtÕñš&>-ÑTýÌýÒ ©A†9 1«H-¶Yº™îJÏÕw®g2›ê/ESÝ'ÔÙö©ò ®äãìÈ]­HaŒß3].XÒãû_yòñŸl¾ùw …™ðZÊÄHվ㇟~|ëå×Ü„Sš‹¨Û8üìmLP­…²Ÿ¤Q6{üš}\–6+©ŠŸ»^Q›ø)]j~ñ6ª…P©UöïÚ¾wÏöžË».1&¬ÇŸ†ë!¢b¾P©Õb›´›«µj-I²T¦ØÔT®TˆÈ催òñ£û«ÓgÍ÷þ„§ñý¦æÎÅ+Ö¹çdÈ{?¹Z˜KÇhÚ”I‡zûÅùÿi¦õ}¬R•€ÖbSilì¹'.4µô,9«X3qQˆ40dÅ=n%BÀª*쥮Æ'<Ùlnô-8E €ž{q'3‰µµÄ2‘¨ØDšXHEDD Ê&tíÕZ%Qq¡N´.­G*VñrV”Uàô]E±Âĉõ^‰"b˜k±Y(T´4488<×âB¡Ø1iTD`Ýùͺk’ UQ.WD¬-ä¢ ‡‡‡k‰µ"P¨Z•„ÀÙ—P%g‡, ZZ"š*Ùh¦rIqær9˜ÑÒÈñc‡ö¿òò¾ÝÛ æ/XzÖâMÅæTØWITR±mÿtA ŒáJ­êd€Ý‰D´î'AÄÖåªNŠ( s—U]º ÷IDATA˜ˆTj±/ßRÊ ³‚HÃ0,äs¥J¹R®;´÷•Ožè;·Íå,ÖÚDD"âƒU?T÷±"Š¢œƒŒªq5â¨fc÷‹Ù ES˜‹«jÅ­.µ>cUQ¸ÐäSBñ®Œâ§¸¬Ä€ˆuJ"Ö'H""$‰•† ‡lFÆJql™¹ÏŽUk.l³úž¨RÒ•„Ü%},”ÌéʦçXN%˜Šù‘–Ë•DED9øÒ Ø¿gú̹‹—­:cnhQo“’eˆé6åB2)Øa`¨¤çHˆ€œŒW7e"Õ(Š¢ ¨VkjLµZó:ë “‚ …(­&†È¦–$¤T*õïÞþëW÷<ßÖ>¥géºé3{Œ S)/JSIÁ‘,;óâj®yÔ7Ÿ¦»a¢–b4:Z‹¢ L* >cU€FQljh’ÄV$®%J*±õ'U"ï¤Ù\,ÄIRk¤$^ØÑgÂ:µ³£w°ʆüyDH”χÕJm´\zá¹'Œ¡Õ«/ˆTEE!Ì.›JCn¥åà ÕjMPÈå=ðô¯yðÀÁ ×oœ7¯)ÍÚB>¶ÖÛ[:+ÕrµVymj33çóùе$®Tª ­µ;±÷¼*ë‚ûhn*ôõ=÷üS££åž… gΙç¦N㎕õ\ºnO2gÆÌ¾þþrµ’ÂÑ©y’÷‹d(D]DìÛõÊ®íËÎÛØÖ6UÀè­ŒRlLY@G¶M¹L‰ˆÜÓv©XUCe…ºI ¨ ‚ 4Xk“ج)…LëÒjÿ¤£ã{ÁÒ‰V²§Oqlk[¾ý÷—Ýø¾0±²útG.ä )ªµš˜dö´©‡s†~D@sù Z©éx“"‡¹AW9_ÝxÿïßæB‘…×MÖlÔS?—ÚÞÅjŒ MèOQGRf(!„ÌlE ûv2·äp|&‡]øÞD7ï é‹9uï%&ÿ_—B»;h#Pë°‚0 MÀ6¨fr/gvoëº ™½ò*£áœÎ búni3üíT«aA`­…rkK{×ü³ç/ZV«Tž{òg{v>—HÜÚÚE!ñ–ÛpK^ʒ꺓¾ÁÅYã©÷!&yµalL`ª±Ï¡Þ'·–«‰q> Z››ÆÊ5ä¢âôY æöœ«*;žÙúÊ®§•¨¹¥Óa†—¹me¼'Rc>[÷Àó«*:[[Jc•Z\«ÆµÄZ+ªöÝ!Š“¸\­•«Õr¹Z‹ãØ&¹(X8{Fßð(`½Z P&0Q[±¹\©8 Šê D«”•ÀŽ÷&•æ|aþœÙO=÷ø¶gŸèYx΢Åˈªäó¹8©Qkksk[kßÀ …crQA{{{¹R‘öBÛ Ï?µå‡utN¾üªk§L™î¦œ1&|¼´Öfå@· kE'`5AàÂ3 … *µªÄPG[[bmb“êž©&AD†‡‡w½´íÙgž)•ÎZ´xÁ¢%­íõ Ê8ÔéÊŽÐÞÚ6V«5:}ÔÅá)Ë·Ehtxä™_?Áе—5Ûûë­½}Gçv-X¹æâi3çNÌÒ¤z©Ì°™>yÊXµ""néúÔ¡Ë䟬¿0 ¬Èу{Ÿsns>_ÌFËåí/<>cƼ)3»Øç4>vgU›úé"+vªßÕý7e¤Ýó4©%_(äÇ*Õ¬j8{FÇ‘ÃúzÏ_x.ù“±.DZÈçÈp-®¹{2::æŠ2¬îÑk.WPXqµÖúMæ:oÂY“`[8zæÙ]г>ŠˆºÊY«iЊ?Åús"Ɔœº&‰¸Î ç]îv½|ÅI«%%wöË@U•ôGPñg ÷ Ö"õÒT+ˆµ®qÄÚ±j М cIªµØZ¡ ¸T*»íÌ$U>œº»ãù0ž£ ˜8À0E8½`3œÎçóÕjµVI¼1»q¹vðÀ®mÏþªÿı¹ó/\¼jÚì® µp< r_XüÉ”Ö&U%“fy®9F @>—OT+•ªªLF‚P»j/i!ˆÊ)/Õ8‰ØÆÕï¾üÒ ¿¨TJó®ê9ûü0_¬¯=Mý9ÇŸö#iÈaØÔªd%*jÀ–‹…ÜœS^zåUwzÛœ+Ä6žÔR<>8œ®n?ûC¦|ʼn­Å±!jiΔF“¢› ù0W«Pe¿“BkÕÑçž}¬ØÜ¾hñò(ʉß-‘‘¤– A5 Â( ‰P«Õ¬X«ÚwôÈ“ÿ²4VºxÃe3fÍÉ¡a¦jE“JNÂ31®Rr*ÎéjÕjµP(0s¥R‰kñœi³ªqr¼¿·­µ5Ij¥±ÑÆS`v®;q¢÷•=»K#ÃÍÍ-sºçMž<•Mh”‹jµFi­)ôéà†ÿTu˜h¬¥¹"w#¶–XìÚñÜWw¯X½±mò ö²ç„”Û =’@ˆôî¡ {™”Q@À RwFLaàd ‡1†XcbqR]“¼¹ M`Œ›ª±3e7A…‰êôÉE(UÊíÅܾá @õF$®ôÐÖ”«ŒH! _#÷•ö£÷=úo^uímSê5iý)E뵯÷ð¯ýñe×¾¥ÐTÌJƒÖoí®³ºq=5ýIP)-6f€5±ž„r»c«ª¹Ã¥7©ÇHÁZ{à•]{woOâxÖܳæv/hní¨gI@æF"UÆâÉF±ÐT©T¬Ž;µ µ8©Tãcpj)¶m{ñÉÖÎiÅ–N&QâG9¼÷œs×§„%7ƒÔ•HKÈe㺈ÄáaÙÍeæÀbTã$K ÀÎç·²¡ÅK7€¤ÁR9-C¦Gj_÷1„Ž–æÒ؈•`fQ¨ÃH(…çÆ@èjA§œÿ¾z²ïÝú1ËIEND®B`‚qcomicbook-0.8.2/data/hint_info.png000644 001750 001750 00000001676 11644604742 017547 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôsRGB®Îé pHYs  šœtIMEÚ;噺iTXtCommentCreated with GIMPd.e'IDATXÃí—KHTQÇçÞy93åÌU³•¥X†-ÒEA‹B\de›Ì"ŠÚe‹6Ñ&{.¹‰ŒBÄhdDšE‹’!ÄÐ’JíA¤MùHgœ{ïic¢¡w›>8› ÷ÿýÏ÷óÿþGH)%ó óóNÀ‘ì õ¸{§…W¯ÛþŒ)GP„—…þlX¿‰}ûK8x¨Ì> ´Ï×É%Ù…2Ê@ (µô|™µp¯ÌHß*ƒ¼‰ï@P.É.”Ï×Ù‰á—/_Ù½ó½C2ðê—q™{¦é^]´WBDÕrs¶sÿá5–-[<#¾%Wo)-©äWô.³¯~'qU‰S¯3ªVã󬢹¥‘ ë’#‰ü ° ”¡‘n|ú5\æþ¤˜. ;à÷fñ²³M Ú¿åe'éÆk\™Ur‡,Æ¿ÃÐH7åe'í_ú÷èèjÂeîÂm›1Áû_ÊÄš™ÄfÒŒj:ºš¨»qÏ^ Öæn§?ò‰ô±—¼–þÄjŸiQ “Ÿ®udj9¼ë YW ô¤•¾H;nã¨eòdõÎcœ /ÒNèI«5Ɔ<¥Ÿ¼ë?+Q¸Ìò)ø3*a8üE®F‘Ô~ @‘ˤ¿°®À·þ² %º¯Ê|¾õ÷Xˆë„\œšÉ#}ÄõˆH‘EÑÄ:àthHñ5EÃ×ÀéЬ ,ÊÌC­©¨?ºhcQfž5ââ͘¢É÷¹Ý»èœÀ·$Py°€˜zkN ÄÔÛSðmHq/±7€ëŸu@eÀ•O¦–›XŠN>ŽdQõœì~T=‡dS§Û÷Û¶¦£« ¿Þ€Ó,ur]´1ä,ec~OŸÝž!éů7â4w$Üïp±À»&yC¢iA7×ãó¬dØQ1ÞŽ1ÛÉãÊ#œEø<«xÜ\?mò„žðoSªÈ¸Í¸#´iç~\yJT­AÏÿÝ”NŽKnR[[ËhìÓøtËÆ!‹ "XŠ!^cˆÒÜ+©ªªâÌÙ£‰Õ9Ù·á\?LÄÿÇé|ø ME¶K‘¢IEND®B`‚qcomicbook-0.8.2/data/pagetop.png000644 001750 001750 00000000721 11644604742 017217 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ 8)>"¬tEXtCommentöÌ–¿JIDATXÃí—1KÃ@Ç-)†H!ƒC¥CšÁR·Î.~'·ìýùâ‡]ò²8…¬£d­`’çÒÐXˆE¼3ò‡ƒ7ÜÝûÝ»ãñ?hõ?:øÍä+àxžQ0ÖÀp¾/ùu±ÈqœÏáp(ŠÓ48­*Mˆ€‘ïûHš*½ƒ×å’ æÀ¬œ´Ð0ê÷ûÊ“\ŒÇExÉΩ¿É²,Ýò¸ Èó\7@¯ ȲL7ÀaÝ  @D¤¨­_ۀض-:”$IÑ“Z*PÚWZ€ÆhU Pjñyc Ã0jèt»]-éÖe¥UoÀGÇDQ¤ Ã"|ÿɯß³Á`Àb±Àu]%ÉW«žçÇ1C:¯š{2N•Zñò˜L&íû±t€;àf×>ýAkà¸ÝÄ­š£/¸™½ºVUIEND®B`‚qcomicbook-0.8.2/data/opendir.png000644 001750 001750 00000001465 11644604742 017226 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ,Ñ®9¶tEXtCommentöÌ–¿®IDATXÃí–ÏJQÆÎd&jS ‰ÁfQp¥+APèB²ôôŠ‹.AÜúnJÀ• EÜù—‚n³N7C@HÔbÈŒ™ÓE›t¬36šÑváîÌ9÷»ß=瞯øÏ °oÀûI e9@ïÄy,{p^i9íÛÛÛmKKK²µµõ©T*½UD‘ÑEäÍÅÅE,›Íª~‹öxÆ&` quuÕ‘\,//ãºnûÝÀÀ¦i288H:FÓ4ÎÏϱ,‹B¡ðø8~þL@LӔǠT*Éúúºd³YI§Ó™´¡ ™LFž»»»-ï¢ϸ Ðl6%?;;ãôô”B¡Àõõõ½oEAÓ44M#‰FÑu]×±mÛk¾H’J¥î±Ïçó2==-OÌ’?­¤€ð3î°ÊçóLMMá8ªª²°°ÀØØ†a ªwÛu]ÇáööÇqh4ضmÛÔj5677 ê$ Éd²½óf³)Èââ¢Ôëõ'Ç@µZõUÀ‹ ‰D¢ýÓÎÎŽ222"µZ­« " ÷{¿÷Þ¼èß(Æ\NÏ@®+àðþ±äÔ ……™žž–ˆd2)À[]ò1  ÈÞÞžxž'Q©ÑhÈòò²ùªxH:–^¯'QËu]ðóþ[ßÑÄÄñx<ò.´,K…ot}€~¿¯}ÈÁÁ+++äóy’É$±X Ã0Èç󬭭Ắvl"‘„:O\.§-ãÌÌ̦ŠÇãÜÿul«ÕR¾ÖÈ(‹R©T¸¾¾¦ÛírqqÁúú:777ìïï>eŸ¸§+à;ðé6~Ñÿ£ß{äì'Á(¨IEND®B`‚qcomicbook-0.8.2/data/wholepage.png000644 001750 001750 00000000756 11644604742 017543 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ 1.ߘ FtEXtCommentöÌ–¿gIDATXÃí—±NÂ@Ç€%m$‡&¦ƒ ¼£“;OÀ ß@ú¾D“ÆÑ u£;m?Kµ©Ä¡ÿä’ÿ5×û~íõ»ï µŽ£F•ÁWÀ+p¼b ­à²,øu~Óh4ÏóÄ€Òét8×o€Ìçs‰ãXLiµZÉd2ÉAu€ôz=I’DL+ Ãàm÷©·ÔíviµZÆ¿Â~¿ŸÛS@eÙAÒÀqœU¯Ÿ(>HÓt5*e"²Õ·,k_Ì­NéØT›ô`Õ%*AL©8€2¯Ô5@a-8”je‹ÏtµÀèÿÀ¶í?¢ªê8ívû K$ÉÆê>¯(ŠX,Æ‚ Èm\t^f®ëâû>ƒÁÀHðårÉt:%Š"€ð¤{6ÅÕ6°ÊþXšÀpS5K ´žÛ_ëÿèœtÛ¢2å&IEND®B`‚qcomicbook-0.8.2/data/prevframe.png000644 001750 001750 00000001324 11644604742 017547 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÚ ç>N iTXtComment¼®²™ßaƒ}^ŸÇfÁ%¿ß/l ,‘H$D:Þn{rÀ[@‹E1›Í„]RET«U `œ|Ä`0vKUU …4ˆZÀ]’{‘HÄz¥:¦àt: 7Þßðø|¾“T÷f³Ñ]Íqíôq¸Ýîƒ?.„Ø›m­×kÝ5ÊÀIµ/gvÌï¶E±’%a[òù¼î7 âñ8ívÛ2€ËJ×WW7Úž^^Ëåèv»T*dY ÓéP(ŽFe¤år €,Ëx½^dY¦T*ƒšÍ&±XŒV«E6›=¨þ`±XÐï÷‘$ÉêR5,BKãÙL÷S©Ôõ)fÜ6€OÝ.õz].‹ÇlV‡OÁYf:‡™Ïç·îzVe9Zp€gçç¶íŽ»›-SW0ÀãñüÑ^«ÕBìµÕjeZO.«Ï/.Ý.¬1…¸F7µC$I’öžd4*€ªª'9 ·2â3Pz½ž¾lÌ̪†Ã!“ÉàðͨÞªÕ*Ñh”x/¶oCwú/ô "‰Ÿ$bØIEND®B`‚qcomicbook-0.8.2/data/orgsize.png000644 001750 001750 00000000717 11644604742 017247 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ 0mR^tEXtCommentöÌ–¿HIDATXÃí—±NƒP†?‹ˆM ƒ‰éÀ`Ò­}‡ŽNnì}^À¸øêÐwpð%š4ަº[ÙëoC›@c¼ØÆð%7ù‡{978@Ëßpô“É—À p¼¢a¬€gàbWñ+µh8J¿ßMH·Ûପxx$Š"IÓTt±\.e<+‘‡*s@\ו,ËD7óù\ ¼nßõ½^Ã0´ŸBÏóT<©(Š¢hä1pg«r€<Ï0MSÅã½ì@ÝÉW€ˆ´ÿS t]iZÚoAS´¥W|q°6€mÛ{p,ËjD ˲u¬ø>“$a±Xh˜Íf*¦uýú=0ñ}ŸétJZŠÇqL†$I0«æžŽF#­­xy Ì],à¸ÞnŸ~Á xn¾sËáðÉSkÓ7‚UzIEND®B`‚qcomicbook-0.8.2/data/pagebottom.png000644 001750 001750 00000000711 11644604742 017720 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ :"5Ú™¦tEXtCommentöÌ–¿BIDATXÃí—±JÃ@Ç6¹’à tps6´[ßÀ!£“/RÈ ˆ/!¸¸)íÒÁÇ‚‹ƒcÝ’=“û\ÑÒ¤H“¶H~pð.ù~¾ã.вŽþ2ùx¶m{¦”z2@¶)ðœo*~¹|`1Sß÷?´Öy H¯×à´¬xx$ CI’DŒ1RqK…Èm™À žçI–eR7Q¯««þ…ëºX–U{öûý"— cL#Û@kýËr€<ÏPJÑÞ˨êü‘Và üx¯´%`¯Çã&ûN*ςР˜ƒpÇÙ›€èv»M deïÀb>Ÿ7-” |÷"ÂÃdR{ÕÇé´ˆwUóNF£Q-Wðuc0 6ý±t€àjõú´)0®—¹åpøClQãüš¹VIEND®B`‚qcomicbook-0.8.2/data/fitheight.png000644 001750 001750 00000000776 11644604742 017545 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ *)èÊRtEXtCommentöÌ–¿wIDATXÃí—1nÂ0†?A‰Š¨: U*±Á :0vêÆÎ ¸@Õ¥7h;p‡½êXÑn¤Ùéäu F¦ÂÄ €:ä—¬ü‰ûó³¿@¡Ó¨´Oåkà x>É¡,Wà*«óõR·Û• $'¤V« paê¼ |2$Š"ÉK‹ÅBúý¾y2\Òh4$Žc«†kˆétªÞÿŽzCõzÇq²WU©´qÍR³ÙTö̤iz”màûþÚš€$I¬Goºß&×u•­èÏ+‡D`5ý«Ž•?TzDoüT*N µ+@°ó,8– ퟚÎûO;|”ÏZ;&=€çyû„Û…kàT«Õ£LAÇkkø¾Ã0d6›YGÁvÛN&e£]ùú#0lµZŒÇcÚív.£ŸÏç Â0Ϧºç½^/×T\/NG7ë¥ Ü·‡î’-Z/Àݯ/ôô¤}Ú¢ÌY±IEND®B`‚qcomicbook-0.8.2/data/CMakeLists.txt000644 001750 001750 00000001220 11644604742 017605 0ustar00pawelpawel000000 000000 SET(DATA_FILES bestfit.png bookmark.png fitheight.png fitwidth.png fforward.png fbackward.png info.png japanese.png nextpage.png openarch.png opendir.png orgsize.png pagebottom.png pagetop.png prevpage.png rright.png rleft.png qcomicbook.png settings.png thumbnails.png twopages.png wholepage.png qcomicbook-splash.png) #INSTALL(FILES ${DATA_FILES} DESTINATION share/${PACKAGE}) INSTALL(FILES qcomicbook.png DESTINATION share/pixmaps) INSTALL(FILES qcomicbook.desktop DESTINATION share/applications) qcomicbook-0.8.2/data/fbackward.png000644 001750 001750 00000001146 11644604742 017506 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDùC» pHYs  šœtIMEÕ !Õ.etEXtCommentöÌ–¿ßIDATXÃíÖÏ‹QÇñ×üÔ¤™”(eÉB6V Éb,¥X²‘…Ô©ç`#éÑÉF±³P”+ Dd!JÙȆÌJaÔ-¦¹6çꦹÏ=Ï½Ï•ÏæœSïçóýžÏ9_þkxm†Ÿ2ø<Áž€ï© \Â2ÚøÞ0_© x™Œ–Rû®A¾R»ð)™|)Bh§~{P~¼Fð³xŠÍx^„°© ~2#ðZÜÀq´‹`oS|¿¶â¶c±a¶÷h@¾r ãu2{_aûà{&0‰Ë¸‹9Ü)BØ–±Uuù·`=`7~!Láh¯[­V÷p©¿’ºW`Þ¦à ɬR333û9|Õ œCÙ¹"‹öå¤S>°ÆqW;ÉÔ Þ„ÆÑ90?‡Í  œÂCÌ–1þ*c<½Ú |Ã\ÁtºÅVMcÿŒOâ:ÖàqÂ|?ƒ2ÆN·.?¶ÒEt3ýŽ_1_Æø¡Ædêò=oÂ7Ø‘Ú-eŒ?2½êò•oÁçô‚ÝÆ\ãr†W]¾ïcÔÂ1œÇX£2Æ[ òÙÉÂ"N”1¾j’Ï­ˆî§7â#v–1.4Ìgk^¤š®•QÖå³4…k]Fý ëòÙ:ÓUç·GÀgé`úeÛ#â³4=b~´ú8³Èi9c§IEND®B`‚qcomicbook-0.8.2/data/rright.png000644 001750 001750 00000001616 11644604742 017063 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ $»92/tEXtCommentöÌ–¿IDATXÃí—=H3Y†Ÿ &* 똉‰ˆ…Å‚ˆØ[DÄB¶­ÓˆÕb³V!Õî"6Q°YlDaAa£ÛøW¬&&Ýw‹ý&Ä5ãO’ïc‹ï… wîÜsî3gÎ=w¾êËÈøÈäï€ß#@UhyàWàÛ·sŒúúúÔÙÙ©*Pcc£€ ÛâàO@³³³Êd2ª–Òé´Âá°ò³@ Ó4õøø(IÚØØP"‘mÛzxx¨booÏøãU€ŽŽŽ‚ÑÔÔÔ³öôôhnnNGGG899qüœº´joo/­¬¬hzzZ½½½òù|Ï`†††´³³ón€ËËKÇ6íШ­­­¤ƒ|>¯ååeMLLÈëõ@Âá°ÎÏÏßÈårŽMÎ ( ¾éìîîNóóójhh(d÷ÖÖVÅ­€Z[[ßÖëëkE"òxí.\¾LÎæÍtö³ÜJÀf=e¼ÃÁ¦ìlüüü„zEQøøða6ïØÁnÜè—<ÀíÖVŽ?NCS ññøû‹×ŽP»À€N=ë3žÏ'°ëÕW‰‹êj].¶ïÚeè®ëaLh(ëW­"qòd¡^Q–æäpµ¦F7†øÖÓ’“uÉ·{½¬Ý²Å'ù! 1QQŒ Ð_n¸\¬ßº•êkׄz“ÉIJôt]³žãÒgŸÕuÚóÞ{ÔÖÕiäÖÀ@–<ý4“'M"2<¼wèÝp¹¸|å ï8À·W¯ª|ºººx-/¿lÛ†$ØWRœNâbc©¨¬rθØXÒ.:œ=ž]o¿­‘?–’¶Iˆ‹ÃHOyÕƒ‘#Fyß}Ìž9è™ ?.㛚0›Í$ÄÅ ¯)Ë2_—”uÂ!4mÊ¡±§­íyyô=C¤?ñÈÉ!ÐÇpžýä7‹ñÇuë4ºüýûu‡RŠÓ©º!ƒN  °—Û­’EGF²ä™g|ï‹©IIÌMKSɺººÈß¿_hdµ2)&F¨Ó$0:$„ð°0¡ññS§ÔÎ~~lÈÊTM´jÉF‡„¨d§KKu×}½}C˜€·ZZ¸XU¥’EGD0!2Ò'Q=BÆeZr²JÖÖÞÎùK—„öz¼4 ؃‚„†un·fìÇú( E¡ °E+Wê–Ê1ãÇkdµ.—ÐV—áDu‰^]S^QAæºuìܳ‡¦æfÞÜ·Oh7A€»¡Ahl³ 嚆 Ÿkº»»52Ña¦åömr_yEµÞ_¸|™£'NòïÖ9 Õá¥I ¡©Ihdµjd¢¡0r$Ï.X ‘ïÉϧÝëUɾýî;Ýh»]x}½'£IÀÝØ(4´kÛB—¯\Ú>3>¡}ˆ¸ùààA•LtúúÝE]Ÿåû.´ øƒáá*YUuµ0á! ™‹kä:Ô;I»»»)êSišÍf&ê¬÷®úzc ÔÔÖâíÐ6ÀyøaÕoGÞ½[h;=5•_MTŸT;:;ùë»ïð·O>Ñì¼ÎÄDFŒÆÓ+×5 x½^JÊË…ÆóÒÒ>l˜Jvº´”ÃÇŽ í³224%À‰¢"ðÞGiìýè£Â8²,óõ™3B°˜³X,¤ ʉÇc³Zùwq±& ÉÏx‡CE8ØfÃåvk&kqY™¦ûïp°âùç…5Oɹsü£°P˜€°úú̺Ë&Àì3H~ðA•¬««‹½|Ào_|‘ŠÊJ•ï²ôtÍSë I’ÈÎÌÔ-ØŽ}õ•®¯î‰ì…eËX0k–Щ¡±‘ŒìlZZ[…z¢""ˆŽˆ Õã¡ô›o¸ÕÒ"&`2‘³bsï”Ú}Ñêñ°hÅ Z=ž%` äý¼<Ý­¼¢‚mo¼¡©NŠ–.eÁìÙºú7öîå“/¾ÐÕë)›oÞäÃC‡tââØ·s'³¦O7HU I’HJHÐÕWVWóé—_úŽ®DEe%I „61‹¿?©S¦àˆŽ¦ì£µ^(ŠB­ËÅÌGê6mß®»±J@–eN•”0cÚ4Ÿ1<,Œù³f1q†X,tË2²,ÓÑÙI¨ÝN\l,©N'¥¤Prªý¡¶–I11Œ;VóÍ}û8yú´Oò` ±Åë/¿<àžèÖ½Jöú[oq¨Ï°X´`ËŸ{®÷Þ;ïp  ÀÐ5 %=GÇ­6è,ŒâfK ‹³²¸ÝÚJtd$YªÃüžü|þþ駆ãNÀ:j/­]«Û=0ŠÏŽA–e榥iº~O,]JóÍ›†cùœ}Ñîõrôøqn{<½ã}0ˆŠÂ-ܸŠJK¹¡s*AÖ†·¬(TTVRPXˆ$IÄDE RƒEÍõ뜿xѨy‹<ôßóÎNΔ—sðóÏùöêUº»» µÛ±è4keYæ†ËÅŪ*n{<ºG׈qãøøða£ojþe²Wß‹˜%‰à`lV+Á6ÖÀ@šš›©¹~ëuu½ ‹¿?/­YÃÔ¤$aÑJ%@°qP/ùîÌ’Äú¬,Ò›X»×˪Ü\Ÿ]iî¾äS¥~Ë–-~ô|R`èEß½€¬(œ(*¢¸¬ ë¨Q„‡…õNj³ÙÌC<À?OžÔœ£ïÀlSåÀ={ÑýSq_XÎÄDââBívêêëùýk¯qEÝÑV½èþÙ~j`–$%ØfSÂÆŒñù©Á/þcÓ/ýs›ÿë -e¶}×\IEND®B`‚qcomicbook-0.8.2/data/japanese.png000644 001750 001750 00000001500 11644604742 017342 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ3z¸"tEXtCommentöÌ–¿¹IDATXÃí—±K[AÇ?ÕVžTìKHB v8©HÀå¡s»éPPºˆ[ÿuzN% Ý2´…¸=7‡Œ®:v‹ØÂ=0M‘¾lf(¹Mï½äòÛ~áà~—ßÝý~ßû½ï]àq~ |Þ_5„v ”\ÜæoÚ“”B )¨‰‰ <×m>|ÔÎÎŽŠƒã8¡ÅljÓòýÝ´ÀËD"ÁÞÞÞ}ÖÃ+]LNN2::zŸ< ý&@³ÙÀu]J¥’v•‹‹‹}||L¥RajjŠD"Ñá/„hwÇukf•Íf•RJ‹Å¡ mÛí¾§;‚ݲ¸P¿‹õß(T¨e2jµ®ër~~®X.—9::òíõõuVVVºúzžÇòò2333u +½i@¥Óiíwvv«RJeÛ¶²,K§ž.© R©TÇDÏó|UB(ÇqºP,•aZqjÿ¸J¥®ëúŸg¥RéšA.—£Ñhøöîî.õz=ê¦-²$ ’ÉdGöÁ¬ ÃPRJíDïÛ¶£ Ü Ä@>Ÿeµºº• …}ppà³Ç€ (Ó4µ…()eìedYVè7!„ò<¯mïy´áº.ù|>4fÛvÏ샲]kmmm0‚çÌ¢ßë8 ½Ñö­/¶¶¶B¶ã8˜¦Ù·Âmooûl†ÁééiHòûªýýýŽJäA"¥TB¿nZ¾×ºëØhGdÁ²,–––î¤óB¤”Ñá¦îÆÆÆÆBÞwݼ~ê¸ÕjÕ¸¼¼dnn®¯ ^ïõÀæôô4‡‡‡ÌÎÎ%å««+666¨V«›À'ï³ÅÅÅ¡¾„‚m~~^Oâþ±Œàmäˆþ·À ð®ÕÀÿƒ_£ã±uÐäŠIEND®B`‚qcomicbook-0.8.2/data/flattr.png000644 001750 001750 00000013764 11644604742 017067 0ustar00pawelpawel000000 000000 ‰PNG  IHDR2<$5éÁ pHYs  šœ OiCCPPhotoshop ICC profilexÚSgTSé=÷ÞôBKˆ€”KoR RB‹€‘&*! Jˆ!¡ÙQÁEEÈ ˆŽŽ€ŒQ, Š Øä!¢Žƒ£ˆŠÊûá{£kÖ¼÷æÍþµ×>ç¬ó³ÏÀ –H3Q5€ ©BàƒÇÄÆáä.@ $p³d!sý#ø~<<+"À¾xÓ ÀM›À0‡ÿêB™\€„Àt‘8K€@zŽB¦@F€˜&S `ËcbãP-`'æÓ€ø™{[”! ‘ eˆDh;¬ÏVŠEX0fKÄ9Ø-0IWfH°·ÀÎ ² 0Qˆ…){`È##x„™FòW<ñ+®ç*x™²<¹$9E[-qWW.(ÎI+6aaš@.Ây™24àóÌ ‘àƒóýxήÎÎ6޶_-ê¿ÿ"bbãþåÏ«p@át~Ñþ,/³€;€mþ¢%îh^  u÷‹f²@µ éÚWópø~<ß5°j>{‘-¨]cöK'XtÀâ÷ò»oÁÔ(€hƒáÏwÿï?ýG %€fI’q^D$.Tʳ?ÇD *°AôÁ,ÀÁÜÁ ü`6„B$ÄÂBB d€r`)¬‚B(†Í°*`/Ô@4ÀQh†“p.ÂU¸=púažÁ(¼ AÈa!ÚˆbŠX#Ž™…ø!ÁH‹$ ɈQ"K‘5H1RŠT UHò=r9‡\Fº‘;È2‚ü†¼G1”²Q=Ô µC¹¨7„F¢ Ðdt1š ›Ðr´=Œ6¡çЫhÚ>CÇ0Àè3Äl0.ÆÃB±8, “c˱"¬ «Æ°V¬»‰õcϱwEÀ 6wB aAHXLXNØH¨ $4Ú 7 „QÂ'"“¨K´&ºùÄb21‡XH,#Ö/{ˆCÄ7$‰C2'¹I±¤TÒÒFÒnR#é,©›4H#“ÉÚdk²9”, +È…ääÃä3ää!ò[ b@q¤øSâ(RÊjJåå4åe˜2AU£šRݨ¡T5ZB­¡¶R¯Q‡¨4uš9̓IK¥­¢•Óhh÷i¯ètºÝ•N—ÐWÒËéGè—èôw †ƒÇˆg(›gw¯˜L¦Ó‹ÇT071ë˜ç™™oUX*¶*|‘Ê •J•&•*/T©ª¦ªÞª UóUËT©^S}®FU3Sã© Ô–«UªPëSSg©;¨‡ªg¨oT?¤~Yý‰YÃLÃOC¤Q ±_ã¼Æ c³x,!k «†u5Ä&±ÍÙ|v*»˜ý»‹=ª©¡9C3J3W³Ró”f?ã˜qøœtN ç(§—ó~ŠÞï)â)¦4L¹1e\kª–—–X«H«Q«Gë½6®í§¦½E»YûAÇJ'\'GgÎçSÙSݧ §M=:õ®.ªk¥¡»Dw¿n§î˜ž¾^€žLo§Þy½çú}/ýTýmú§õG X³ $Û Î<Å5qo</ÇÛñQC]Ã@C¥a•a—á„‘¹Ñ<£ÕFFŒiÆ\ã$ãmÆmÆ£&&!&KMêMîšRM¹¦)¦;L;LÇÍÌÍ¢ÍÖ™5›=1×2ç›ç›×›ß·`ZxZ,¶¨¶¸eI²äZ¦Yî¶¼n…Z9Y¥XUZ]³F­­%Ö»­»§§¹N“N«žÖgðñ¶É¶©·°åØÛ®¶m¶}agbg·Å®Ã“}º}ý= ‡Ù«Z~s´r:V:ޚΜî?}Åô–é/gXÏÏØ3ã¶Ë)ÄiS›ÓGgg¹sƒóˆ‹‰K‚Ë.—>.›ÆÝȽäJtõq]ázÒõ›³›Âí¨Û¯î6îiî‡ÜŸÌ4Ÿ)žY3sÐÃÈCàQåÑ? Ÿ•0k߬~OCOgµç#/c/‘W­×°·¥wª÷aï>ö>rŸã>ã<7Þ2ÞY_Ì7À·È·ËOÃož_…ßC#ÿdÿzÿѧ€%g‰A[ûøz|!¿Ž?:Ûeö²ÙíAŒ ¹AA‚­‚åÁ­!hÈì­!÷ç˜Î‘Îi…P~èÖÐaæa‹Ã~ '…‡…W†?ŽpˆXÑ1—5wÑÜCsßDúD–DÞ›g1O9¯-J5*>ª.j<Ú7º4º?Æ.fYÌÕXXIlK9.*®6nl¾ßüíó‡ââ ã{˜/È]py¡ÎÂô…§©.,:–@LˆN8”ðA*¨Œ%òw%Ž yÂÂg"/Ñ6шØC\*NòH*Mz’쑼5y$Å3¥,幄'©¼L LÝ›:žšv m2=:½1ƒ’‘qBª!M“¶gêgæfvˬe…²þÅn‹·/•Ék³¬Y- ¶B¦èTZ(×*²geWf¿Í‰Ê9–«ž+Íí̳ÊÛ7œïŸÿíÂá’¶¥†KW-X潬j9²‰Š®Û—Ø(Üxå‡oÊ¿™Ü”´©«Ä¹dÏfÒféæÞ-ž[–ª—æ—n ÙÚ´ ßV´íõöEÛ/—Í(Û»ƒ¶C¹£¿<¸¼e§ÉÎÍ;?T¤TôTúT6îÒݵa×ønÑî{¼ö4ìÕÛ[¼÷ý>ɾÛUUMÕfÕeûIû³÷?®‰ªéø–ûm]­NmqíÇÒý#¶×¹ÔÕÒ=TRÖ+ëGǾþïw- 6 UœÆâ#pDyäé÷ ß÷ :ÚvŒ{¬áÓvg/jBšòšF›Sšû[b[ºOÌ>ÑÖêÞzüGÛœ499â?rýéü§CÏdÏ&žþ¢þË®/~øÕë×Îјѡ—ò—“¿m|¥ýêÀë¯ÛÆÂƾÉx31^ôVûíÁwÜwï£ßOä| (ÿhù±õSЧû“““ÿ˜óüc3-Û cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅF IDATxÚÌš{l\WÇ?gfl'©“¤:I·xIBÒ±Eˆ’ÖÛ ¦6PJ²‹Ѹ¡ ÑVY‰×!!5"-ˆ’„>òXiWUG‘¦ŒcBênÌ£´«<ê¤Û-M[ä¤ã¤$~{ü˜{~üqï=÷Ü;wÆc–šjjj(ûRÁZ)®3£c‚BÕ6Q³éqÔ;VEˆ•¢UÌUỊ3–L&QJÕ§ŒO\<…óÖ ¨TÒ´ûj¸‘Ôòõ¨ÆÑAŠ/?ÊUFb^5Ÿ}ŒÄ’U%’*%2ŒQ†QU…v‚ï)AôÅ“TÆòE ¹æ³$oùT]ƒÇìI¯þÜÕEm©O?‚º~•ç;sZíàáÏuç]S8&åç÷1¦bÂГjÓ¤>õÔâ••³ÆÍMÕ0!"¤Ì†I…J&ƒC­1L˜Mç5¢æ/"ù‰}$¯0­FrÕ&×Jk¢ëí5ÆG˜|Ë„U5¯±dµh5_8»qô[ª•˜°‰±çU# fD%-Â×%®Õ„â.—hm‚Ëí›H@2éþ÷ÞþbÛ„â6·™óßQPNq{Åí=—¼¨¥‘¤rƒŸ¿>„Bw®”„À`ÜþN‰\´÷»2ûøëãâ(e™õVš<—òÑJX G%^(¬FãML™nïuZŸÐ`?­ÅŒÙûjm3†Q C„Rˆg§*¡¬ŒHÈ\¢RQJ‘ÍfÉd2%s+™WÜœP`©ÂwB¦eW–újI¶ÝWb³>±öëСC±G -G@%ææ ç!g7ÊUSm#©ö¢ÒïŽ=xëÖ­=z”žžzzzhnnžÓ}-år¹0D„-[¶ðä“O–h£\ö·µdÏ7¦¥<˜ºí‡¨ôŠSªÆ\ü±l6ËÆ¹óÎ;¹ï¾û¤»»›]»vÉdصk]]]äóy8@&“!ŸÏÓÝÝm~Ïd2œ>}ºª–2×6’Øð°ÑDT:åRÜØ‰'سgÜ}÷Ýôõõ±yófD„Ý»wÓÓÓcˆëêꢳ³“Í›7pêÔ)r¹;w­­¬yÍ:j’ómgw<ŠJÿ£µú´ »îgØ¿?™L†L&C6û¤–1ó÷îÝÃÒ¥ÍÔ×_GCCChŽ?O…â‰DÞ°sçwim]:?ךY§Àó¯ôh5ÎÌg(´ùãܱ{M›6Eæ„Ãn6›åÀ¡ð £öwÌÙþxkk[Ĥ‚ð\ÔÓüþüAF§q}0Q.ãÆ¸8“ŠÇ\.G6›eûöí=ztÎ`p­Ð¦¨§xþµŒLæC òâ(çpÑ0>>À­·ÞJ.—#ŸÏ3>>ŽˆP__@>Ÿ7kêëë,‹nísg)~wþ#…<âý™ð{-¸¦Ò!þkÆ 477³qãFº»»éìì$›ÍÒÝÝM[[+W®¤««‹Ý»wÐÑÑA.—£££#Ä`\.9ýÇŸ12y-6®ëíí• 6T…l£°<Šƒâ {¥½æBÆÑ×oÿ°Ÿ?½B8wµí ¯¯Ï¿bÊK÷ÄuCÜßµ÷».©©ft„©ø½JëùÊÌkÑh´{´ò­"µ¬¨P ùÀͳ¿Û{•F§jjö0-!m#h­Q¨PÄ35{œó–++ËÁ…kééÆ1gšÑïâù†´©üÌþ—ÚkÅÖi„°¸è‡¢ç*Ñ8NѲM Wˆ•¤jç”jãý\Mƒr9H)ÅŒ3É/Ï=ÌÐäÅ’µWÇТqD£E“PóÂ]”jêƒrU9‰W×£5ÇLq’g_þC“˜-Bk.¾ÆÔ̸©2EkÒ×- ×#Qu—3µjã\õyœ™Í:ŽÛÃÐähK°cSWxñͧpÄ •ã æ¥Í©jˆ*çˆqš©´O¹ñY§À/ÏîâêÄ€‰D¯]~ž—rÌÌNrÕc.ÔLU°<ý¾°i•+CUL¹[α+ùU³æŽ£X û¥049àæ0ÈWó}µ½hÁ,[ø^³w q§)iwç‹s…ÖJͺ(¹3ßçOãŒõ7Ññ‘­®fYù”R8ŽƒˆŒ'¦‹ýCCCU5Ðæš×<({ÛT,päôƒ¼=þ¦›±µcr„ÿÑÚD-šEõ7Òùþ¯s}ý 3팟IýáJŸô=ó(ßü×'ðïI®Õ¡ËE°rÑkº8Á‘“ñöø›V¯ Юm‰ piz5 ó–ð®ëÛhYòÀ·fgÙ{äKÜаuÿ#w ¯ÏM/¼z”ÿäOhll¤¦¦¦"hœ«eZm¯&ÂÅ­™™™allŒ½O‰õïéà÷ÿß=žhMeÝš²÷È—=g‹z¡ÈáLâ.‚n¢¹ëkQ¸áhö‘˜ŒXû@whÝÍdTõ£ >åwì 2Èê›—Y·UŠ’˜'¡¾hy†c ‰YFtÙöuž9ý=.^9džÕ[X³´éâÇúÌ…«çÜÇ`&/³¸á&íÄb.ŸÆ’²Ü¿`󱎫RG;F®úõM òß¿ùGN=Äýæ«ÞæÂòEkYÒø.~ú·™ž`ÝMf½/œÅ 7±fi;ÏýßAŽœ|ˆÖ›:Cxjzv"0]sSvÌ~MN`Z®š<+×î­Ý·¹c4êŠÑáñéÙ ž>ù —Gß`àÊ9êR×yªæ.°âë)\æé“šˆv“õMG¬\åŸé›ZÀ¾sùR˱<‡³4æ;˜'ãW—Gß`pø¼Ñù“`þäô½/ï§aþ¶Þ¶ÛVo±$/Æö Ÿž@3Žék)Â’0IÂÆ lV‹Ÿôt à“…u A/¶½pœ³ŽóÞe·óOk¿HÿÀq.¾rì @ BòX¡.Dp<Ó°3¹ać VB,ÌŽÇ÷m ¤¯%èA9Z‡[¾h-·¬úO½¸ƒBqÜ0¨Eóâ‡yáõÃ%pÎOŒöçh“ÒÓˆö2ºŸ}ƒ{pme"å]]fÆèøw¬½—µÜÅÁÛ‡¶›Ï Évàj?K[ØvÇ~þ÷õÃ\> n¿ù^þañû8xb»¥ÝÒ»”0- îä.I/«qÃ,A÷É îºƒÏaÍEÛ ñ=^ÂÅ±Ê a:ë·pmSúì–R0tq†ŠíДH /®?`1Æ(‹ Ãî8ˆJt*¨=hÅèpzLÙ´›æ¢ ÆSÀ³ÅYç3©„çHŠP–.®æ³N,Ñ'¤ä™¸àñA¿!íqûá +Þ^––ÌN9Ç"ì›uë n‹ùoCˆèX_›œbýf<ÆÊ'Ú f_3.14è0ôñéq„Â(û’'޼òúñŸ¨™-È­‰dÂiôB4|ùOäY“ˆ +þ ¢wóáçTÂ*ãÍb‚…2oÑŠâ†)²ã;ü¸ò7ûÖcŸ¾]D¶)ÅGJj‰˜ÿq¾ ¢ˆ]Ø`¨ø ×7!o‰Ö2îØ Â¯Qì{àÞÃÏüy„Fw¡nŠÐ†IEND®B`‚qcomicbook-0.8.2/data/openarch.png000644 001750 001750 00000001776 11644604742 017372 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ üÕßtEXtCommentöÌ–¿wIDATXÃí—OHcWÆO£´%¢¯™ÔE†ÒEÑÅÄj ˆm£f1b+‰SÔÎbꪵˆb‘š B ”"ÌÀ˜V ­ ÆM ¶•,œÒY¸T ¨`b–iÉãtÑ$ĘÇI§¥í»x÷s¿ï}÷ÜóÎ…ÿí_b/º’®h2™hhh8ËEÞ¾4àph. ×ëOÍ)ùÇÇÇq8 †“Ίòp¸t®•ùâ-VëÏÀçÀ}ù=ÒßßO0,N@UU"‘åååiP`Þº×ýyU´X­ `pnnn†M&Sqõõõìîî6íÀ«@ÏZ `x’í´X­ëÀ×À©-ËK ¸ ø€kk@Ió*E$| R–ãó!𓪪ךšš8ˆDJJ`ccƒÎÎÎg~à{ 6—@  ÌÍÍáv»Y\\äæ­[::bjj îd‘Ìz>U=ïâ÷û¥˜% YZZ’––QUU¥®®Næçç%Ÿët:%õ±Î ×oN‡ÍfÃf³áõz …BloogË[Ð.´gYEEF£ñ\àÅ\È4M;7ø_¢@) <²OÁS’ç@2™>>266&n·ûÄ\<—Ë%ÕÕÕ¹À€Ï€óÊÔÜ|¢«6ŸæªÒÑÑ!ëëë°‘‘ñx<""rxx(ÓÓÓ¢ªj6¨löÜ6PyŒ\»|¼–ŽÓëõLLL‡©­­%â÷û‰Åbé˜ß€¯€€D©Z»çhŽ´Ùãà­§q%{#+WÀ—À+ÇÝðà…‹þ3ÕÙ­ñP÷ IEND®B`‚qcomicbook-0.8.2/data/src/hint_info.xcf000644 001750 001750 00000005617 11644604742 020331 0ustar00pawelpawel000000 000000 gimp xcf file BB› Selection A@\ B T\@ªIAùêËAöÍáApAæ0Œ@Cp¨AÙ÷´¿¦TõAB0AP @\ Ao‹@P¹ZA~ŽÜ@=`8G gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) Y£ Ùiÿ      <gimp-text-layer (text "i") (font "Sans Bold") (font-size 19.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 1.000000 1.000000 1.000000)) (justify left) (box-mode fixed) (box-width 5.000000) (box-height 22.000000) (box-unit pixels) CWgmÿmÿmÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Backgroundÿ     J ^ nkÿö£L  L£ÿÿ÷…ý…ÿÿúä3!!ù3äÿ ÿúÓ !!ú Óÿ ÿûí! !ûíÿ ÿü>! !ü>ÿÿü›!!ü›ÿÿü% !!ý%ÿÿü¼!!ü¼ÿÿüb !!übÿÿý+!!ý+ÿÿý!!ýÿÿý!!ýÿÿý!!ýÿÿý!!ýÿÿý+!!ý+ÿÿüb !!übÿÿü¼!!ü¼ÿÿý%!!ü %ÿÿü›!!ü›ÿÿü>! !ü>ÿ ÿûí! !ûíÿ ÿûÓ! !ûÓÿ ÿùä3 !!ú3äÿÿò……ÿÿö£L  L£ÿiÿkÿö¡HH¡ÿÿøƒýƒÿÿúä0  ù 0äÿ ÿûÒ û Òÿ ÿûí û íÿ ÿü: ü :ÿÿüš  ü šÿÿý"  ý"ÿÿü»  ü »ÿÿý_  ü _ÿÿý(  ý(ÿÿý  ýÿÿý  ýÿÿý  ýÿÿý  ýÿÿý(  ý(ÿÿý_  ü _ÿÿü»  ü»ÿÿý"  ý"ÿÿüš  ü šÿÿü: ü :ÿ ÿûí û íÿ ÿûÒ û Òÿ ÿúä0  ú 0äÿÿúƒúƒÿÿö¡HH¡ÿiÿkÿö²l;;l²ÿÿ÷œ0*R<$ý0œÿÿùçT$«ûýýøøÅ‚Tçÿ ÿúØ2iõýýúö2Øÿ ÿûî6¤ý ýûÆ!6îÿ ÿü_™ý ýüÈ_ÿÿü­_ýýü“­ÿÿüB#óýýüû"BÿÿüƆýýüÆÿÿü€êýýüà€ÿÿýK3ýýýKÿÿý'`ýýýD'ÿÿýxýýýOÿÿýwýýýGÿÿý'_ýýýD'ÿÿýK&ýýüüKÿÿü€êýýüÏ€ÿÿüƉýýüoÆÿÿüB÷ýýüõBÿÿü­{ýýüv­ÿÿü_µý ýüÊ_ÿ ÿûî6¹ý ýûÛ6îÿ ÿúØ2÷ýýû²2Øÿ ÿùçT/Šëýýùû¼KTçÿÿòœ0(^Pj?0œÿÿö²l;;l²ÿiÿ Selection Mask  O  c sköRÒòýòÒRýjÞÿÿýÞjý·ÿ ÿý· ý*Ûÿ ÿýÛ* ý×ÿÿý× þ«ÿÿþ«þXÿÿþXþÊÿÿþÊþ=ÿÿþ=þˆÿÿþˆþÁÿÿþÁþçÿÿþçþûÿÿþûþûÿÿþûþçÿÿþçþÁÿÿþÁþˆÿÿþˆþ=ÿÿþ=þÊÿÿþÊþXÿÿþXþ«ÿÿþ« ý×ÿÿý× ý*Ûÿ ÿýÛ* ý·ÿ ÿý·ýjÞÿÿýÞjöRÒòýòÒRiqcomicbook-0.8.2/data/src/page.xcf000644 001750 001750 00000004266 11644604742 017267 0ustar00pawelpawel000000 000000 gimp xcf file BB  gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 8  Backgroundÿ     ç û  †ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask Ž ¢ ²ÿqcomicbook-0.8.2/data/src/nextframe.xcf000644 001750 001750 00000007003 11644604742 020334 0ustar00pawelpawel000000 000000 gimp xcf file BB# Unnamed#1A,AHA,AHAªA§AªA¨AªA© Selection  ApA ApA ApA°ApA°ApA°AA°AA°AA°AA AA AA ApA Unnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 0   New Layerÿ     Þ ò Ç ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿ÷ÿÿÿÿÿûÿÿüÿ@ûÿÿú@xŠŠûÿÿümŠŠûÿÿú ŠŠûÿÿþÒŠûÿÿùÿ1HŠŠüÿÿÿýxŠþÿûx þŠ þÿûxŠþŠ ÿþŠþŠ þÿüÿŠŠ ÿþÿïÇ ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿ÷ÿÿÿÿÿûÿÿüÿ@ûÿÿú@xûÿÿümûÿÿú ûÿÿþÒûÿÿùÿ1Hüÿÿÿýxþÿûx þ þÿûxþ ÿþþ þÿüÿ ÿþÿïÇ ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿ÷ÿÿÿÿÿûÿÿüÿ@ûÿÿú@xûÿÿümûÿÿú ûÿÿþÒûÿÿùÿ1Hüÿÿÿýxþÿûx þ þÿûxþ ÿþþ þÿüÿ ÿþÿïLjþHÿþ‡þ@ÿÿþ‡ûxÿÿ¿wwû·ÿÿ‡ûxÿÿ‡ûxÿÿ‡÷xÿÿ‡xÿ ÿ ÷xÿÿ‡Döaxÿ ÿ ÷xÿÿ‡†ÿÿÇÿ ÿ øxÿÿ‡aøÿ ÿ ÷xÿÿ‡6ðÿ ÿ ûxÿÿ‡þ„ÿ ÿ ûxÿÿ‡þxÿÿþÌÿÿ ûxÿÿLjˆþÀÿÿþ¾ÿÿ þxÿ ÿûõÿÿçÿÿ þxÿÿ þxwwþ·ÿÿüùÿïÿÿ þxþxÿÿ þ8þxÿÿþxÿÿç  Backgroundÿ      à  × ç†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþôÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþôÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþôÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ bqcomicbook-0.8.2/data/src/openarch.xcf000644 001750 001750 00000011135 11644604742 020143 0ustar00pawelpawel000000 000000 gimp xcf file BBŽ gimp-comment o Bez nazwy#14A‹AA‹A Bez nazwy#13|@«¢éA.Œ@«¢éA.Œ@¨º/AË¢éAŒ]Ahº/Aî‹£@hº/ Bez nazwy#12l@¥ÑtAEÑ@¥ÑtAEѾº.ŒAØAFAmFAºèº@î‹£ Bez nazwy#11jAº/AuÑtAº/AuÑtAEÑAò.ŒAEÑAò.ŒAEÑAò.Œ Bez nazwy#10`@¢èºAt]@¢èºAt]A‘t]ApA‘t]ApA‘t]ApAë¢éAÑtAë¢éAÑtAë¢éAÑt Bez nazwy#9U@ A]@ A]AŽ‹£AbèºAŽ‹£AbèºAŽ‹£AbèºAî‹£AÑtAî‹£AÑtAî‹£AÑt Bez nazwy#8P@‹¢éAÑt@‹¢éAÑt@‹¢éAÅÑt@‹¢éAÅÑt@‹¢éAÅÑtAAñt]AAñt]AAñt]AõFAâéAõFAâéAõFAâéAó¢éAFAó¢éAFAó¢éAF Bez nazwy#7A@·EÑAt]@·EÑAt]AEÑ@š.ŒAEÑ@š.ŒAEÑ@š.ŒAíÑtA.ŒAíÑtA.ŒAíÑtA.Œ Bez nazwy#6>@Ú.Œ@åÑt@Ú.Œ@åÑtAF@Qt]AF@Qt]AF@Qt]AðA .ŒAðA .ŒAðA .Œ Bez nazwy#5:AEÑAgEÑAEÑAgEÑAEÑAêèºAEÑAêèºAEÑAêèº Bez nazwy#47@«¢éAèº@«¢éAèºAÑtAWEÑAÑtAWEÑAÑtAWEÑAðº/At]Aðº/At]Aðº/At] Bez nazwy#33AïEÑAÅFAïEÑAÅFAíÑtAèºAíÑtAèºAíÑtAèº Bez nazwy#2 /@FA .Œ@FA .Œ@ AÅF@ AÅF@ AÅFAFAíÑtAFAíÑtAFAíÑtAðº/AÊ.ŒAðº/AÊ.ŒAðº/AÊ.Œ Bez nazwy#1%@‹¢éAÑt@‹¢éAÑt@‘t]A¶‹£@‘t]A¶‹£@‘t]A¶‹£AŠèºAðº/AŠèºAðº/AŠèºAðº/AêèºA¸AêèºA¸AêèºA¸Aæ‹£A]Aæ‹£A]Aæ‹£A] Bez nazwy@‚èº@ë¢é@‚èº@ë¢é@‹¢éAµF@‹¢éAµF@‹¢éAµFA‘t]Aê.ŒA‘t]Aê.ŒA‘t]Aê.ŒAðA¯EÑAðA¯EÑAðA¯EÑAì]@ýFAì]@ýFAì]@ýFUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) >  Backgroundÿ      í   †ý3!þ ýuìÿÿºüÿëGûüÿÿ ºþÍþº º ü.¡ººýÇHú¡¹Fˆº ºúÙS™sø¢ÿÿÒ^ º ºøÊH¢þÿyþ¢ÿÿúò{ VɺºúÇH ƒûÿÿþ|þ¢ÿÿóó ;±ººÏE™ùÿÿþ€þ¢ÿÿ÷û©6^™ùÿÿþƒþ¢ÿ ÿüŽWüÿÿþ†þ¢ÿ ÿý“lÿÿþ‰þ¢ÿ ÿýoÿÿþŒþ¢ÿ ÿýrÿÿþþ¢ÿ ÿýŠuÿÿþ“þ¢ÿ ÿý‡xÿÿþ–þ¢ÿ ÿý„{ÿÿþ™þ¢ÿ ÿý€ÿÿþœþ¢ÿ ÿý}‚ÿÿþ•üåÿÿýz…ÿÿüÈSûI´ýÿÿýwˆÿÿüý¯; üƒòÿÿýt‹ÿÿüù„ þ4ôGÃÿÿqŽÿêù ‚d{g i†ý3!þ ýuìÿÿ¶üÿëGûüÿÿ ¶þÍþ¶ ¶ ü.¡¶¶ýÇHú¡¹Fˆ¶ ¶úÙS™sø¢ÿÿÒ^ ¶ ¶øÊH¢þÿyþ¢ÿÿúò{ Vɶ¶úÇH ƒûÿÿþ|þ¢ÿÿóó ;±¶¶ÏE™ùÿÿþ€þ¢ÿÿ÷û©6^™ùÿÿþƒþ¢ÿ ÿüŽWüÿÿþ†þ¢ÿ ÿý“lÿÿþ‰þ¢ÿ ÿýoÿÿþŒþ¢ÿ ÿýrÿÿþþ¢ÿ ÿýŠuÿÿþ“þ¢ÿ ÿý‡xÿÿþ–þ¢ÿ ÿý„{ÿÿþ™þ¢ÿ ÿý€ÿÿþœþ¢ÿ ÿý}‚ÿÿþ•üåÿÿýz…ÿÿüÈSûI´ýÿÿýwˆÿÿüý¯; üƒòÿÿýt‹ÿÿüù„ þ4ôGÃÿÿqŽÿêù ‚d{g i†ý3!þ ýuìÿÿ¶üÿëGûüÿÿ ¶þÍþ¶ ¶ ü.¡¶¶ýÇHú¡¹Fˆ¶ ¶úÙS™sø¢ÿÿÒ^ ¶ ¶øÊH¢þÿyþ¢ÿÿúò{ Vɶ¶úÇH ƒûÿÿþ|þ¢ÿÿóó ;±¶¶ÏE™ùÿÿþ€þ¢ÿÿ÷û©6^™ùÿÿþƒþ¢ÿ ÿüŽWüÿÿþ†þ¢ÿ ÿý“lÿÿþ‰þ¢ÿ ÿýoÿÿþŒþ¢ÿ ÿýrÿÿþþ¢ÿ ÿýŠuÿÿþ“þ¢ÿ ÿý‡xÿÿþ–þ¢ÿ ÿý„{ÿÿþ™þ¢ÿ ÿý€ÿÿþœþ¢ÿ ÿý}‚ÿÿþ•üåÿÿýz…ÿÿüÈSûI´ýÿÿýwˆÿÿüý¯; üƒòÿÿýt‹ÿÿüù„ þ4ôGÃÿÿqŽÿêù ‚d{g ipýøe¿ýõœ4û X±ùÿÿüÎc ûJ¤óÿ ÿüú› û.p›ìÿÿüÂlü8Êÿÿüö£ýsþÿÿýÁþ©ÿÿþvþ©ÿÿþyþ©ÿÿþ|þ¨ÿÿþ€þ§ÿÿþƒþ§ÿÿþ†þ¦ÿÿþ‰þ¦ÿÿþŒþ¥ÿÿþþ¥ÿÿþ“þ¤ÿÿþ–þ¤ÿÿþ™þ£ÿÿþœþ£ÿÿþŸþ¢ÿÿþ¢ýNîÿÿý®%ûDÄýÿÿüõü‡îÿ ÿûýÇW üYÅþÿÿüò–ü}ìÿÿýÑEùCÄýû£'ý qcomicbook-0.8.2/data/src/rright.xcf000644 001750 001750 00000005663 11644604742 017654 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commentŽ Unnamed#3@ë¢é@ñt]@ë¢é@ñt]A±t]@ú.ŒAº.ŒA¸AÂèºBº/ Unnamed#2@è@ô@è@ôAµ@ÌA¼AºAÃB € Unnamed#1@åÑt@î‹£@åÑt@î‹£A·EÑ@ô]A½ÑtA¼]AÄ]BÑtUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) a   Backgroundÿ      $ 4†ý3!þ ýuìÿÿýëGøüÿ·’Òúÿ ÿþÍûÿÿ]ü1|Úÿ ÿþáøÿÿ¥l2ý9Æÿÿþêþÿÿ÷÷¤ZGäÿÿþïþÿÿùø„ ÁÿÿþïþÿÿúôK£ÿÿþïþÿ ÿû±ÿÿþïþÿ ÿûŠ àÿÿþïþÿ ÿüH@ÿÿþîþÿ ÿûî³ÿÿþíþÿ ÿü7ÿÿþìþÿ ÿøùÚÿÿëþÿ ÿøÀ)%›îêþÿ ÿ÷À;’Ùþÿ ÿýg ý5Äþÿ ÿý9ý¹þÿ ÿýLý½þÿ ÿý›ýiÎþÿ ÿ÷î’5i×ÜýØÿ ÿøîØÎÔéý¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGøüÿ·’Òúÿ ÿþÍûÿÿ]ü1|Úÿ ÿþáøÿÿ¥l2ý9Æÿÿþêþÿÿ÷÷¤ZGäÿÿþïþÿÿùø„ ÁÿÿþïþÿÿúôK£ÿÿþïþÿ ÿû±ÿÿþïþÿ ÿûŠ àÿÿþïþÿ ÿüH@ÿÿþîþÿ ÿûî³ÿÿþíþÿ ÿü7ÿÿþìþÿ ÿøùÚÿÿëþÿ ÿøÀ)%›îêþÿ ÿ÷À;’Ùþÿ ÿýg ý5Äþÿ ÿý9ý¹þÿ ÿýLý½þÿ ÿý›ýiÎþÿ ÿ÷î’5i×ÜýØÿ ÿøîØÎÔéý¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGøüÿ·’Òúÿ ÿþÍûÿÿ]ü1|Úÿ ÿþáøÿÿ¥l2ý9Æÿÿþêþÿÿ÷÷¤ZGäÿÿþïþÿÿùø„ ÁÿÿþïþÿÿúôK£ÿÿþïþÿ ÿû±ÿÿþïþÿ ÿûŠ àÿÿþïþÿ ÿüH@ÿÿþîþÿ ÿûî³ÿÿþíþÿ ÿü7ÿÿþìþÿ ÿøùÚÿÿëþÿ ÿøÀ)%›îêþÿ ÿ÷À;’Ùþÿ ÿýg ý5Äþÿ ÿý9ý¹þÿ ÿýLý½þÿ ÿý›ýiÎþÿ ÿ÷î’5i×ÜýØÿ ÿøîØÎÔéý¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask  ‹  Ÿ ¯ÿqcomicbook-0.8.2/data/src/hint_error.xcf000644 001750 001750 00000005306 11644604742 020522 0ustar00pawelpawel000000 000000 gimp xcf file BBƒ Unnamed#1@ýFA¼]@ýFA¼]AÅF@ô]AÅF@ô]AÅF@ô]UnnamedA @ÔA @ÔAÂAÀAÂAÀAÂAÀ Selection Aܬ’@ÅöB¸ AS~NAûèAÓšA AëŽý@ÞØêB_À‘»¡A“ÿÌ@lÀy@âø @¾ôí@}NéAðR@1÷A@?Ç,A˜o?¸%A»4°?®êG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) =ü Backgroundÿ     ì  ÿ)ÿóü¬l= =l¬üÿÿüåu  üuåÿ ÿý ýÿ ÿýûZ  ý(z ýZûÿÿý÷F  û1íÿo  øH° F÷ÿÿþS  ù:îÿÿþd  ûTþÿŸ  þSÿÿþƒ  ýNõÿÿýùI  ýXýÿÿþ‰  þƒÿÿþÔ  þgÿÿù÷4 eüÿÿþ  þÔÿÿþb  þeÿÿüè$mÿÿûz bÿÿþç  þ~ÿÿþèÿÿþà  ûçÿÿ˜  þšÿÿý®  û˜ÿÿ[  ý ¸ÿ ÿýœ  û[ÿÿ/  ýÎÿ ÿý  û/ÿÿ  ýÙÿÿþ†  ûÿÿ  ýºÿÿþ¨  û ÿÿ  ý¾ÿÿýþI  ûÿÿ/  ýÃÿ ÿýö6  û/ÿÿ[  ýÍÿ ÿýî,  û[ÿÿ˜  ý ÜÿÿýÝ  û˜ÿÿç  ý(äÿÿýñ³ÿÿýÌ  þçÿÿúb =üÿÿûó; ©ÿÿû£ bÿÿþÔ  ý;øÿÿùì4 ÂÿÿúÜ$ Ôÿÿþƒ  ý;ôÿÿýâ/  ýÖÿÿúà ƒÿÿþS  úBÿÿé'  ö$åÿÿµ Sÿÿý÷F  üKã"  ÷4üª F÷ÿÿýûZ ù1 Zûÿ ÿý ýÿ ÿüåu  üuåÿÿóü¬l= =l¬üÿHÿ)ÿóü¬l= =l¬üÿÿüåu  üuåÿ ÿý ýÿ ÿýûZ  ý(z ýZûÿÿý÷F  û1íÿo  øH° F÷ÿÿþS  ù:îÿÿþd  ûTþÿŸ  þSÿÿþƒ  ýNõÿÿýùI  ýXýÿÿþ‰  þƒÿÿþÔ  þgÿÿù÷4 eüÿÿþ  þÔÿÿþb  þeÿÿüè$mÿÿûz bÿÿþç  þ~ÿÿþèÿÿþà  ûçÿÿ˜  þšÿÿý®  û˜ÿÿ[  ý ¸ÿ ÿýœ  û[ÿÿ/  ýÎÿ ÿý  û/ÿÿ  ýÙÿÿþ†  ûÿÿ  ýºÿÿþ¨  û ÿÿ  ý¾ÿÿýþI  ûÿÿ/  ýÃÿ ÿýö6  û/ÿÿ[  ýÍÿ ÿýî,  û[ÿÿ˜  ý ÜÿÿýÝ  û˜ÿÿç  ý(äÿÿýñ³ÿÿýÌ  þçÿÿúb =üÿÿûó; ©ÿÿû£ bÿÿþÔ  ý;øÿÿùì4 ÂÿÿúÜ$ Ôÿÿþƒ  ý;ôÿÿýâ/  ýÖÿÿúà ƒÿÿþS  úBÿÿé'  ö$åÿÿµ Sÿÿý÷F  üKã"  ÷4üª F÷ÿÿýûZ ù1 Zûÿ ÿý ýÿ ÿüåu  üuåÿÿóü¬l= =l¬üÿHÿ Selection Mask  r  † –)óV˜ÉêÿûêɘVüòÿÿüò ýtùÿ ÿýùt ý«ÿÿý«ýÀÿÿýÀþ²ÿÿþ²þÿÿþþ-ÿÿþ-þ£ÿÿþ£þÿÿûkÿÿûkªÿÿûªØÿÿûØôÿÿûôýÿÿûýôÿÿûôØÿÿûتÿÿûªkÿÿûkÿÿþþ£ÿÿþ£þ-ÿÿþ-þÿÿþþ²ÿÿþ²ýÀÿÿýÀý«ÿÿý« ýtùÿ ÿýùt üòÿÿüòóV˜ÉêÿûêɘVHqcomicbook-0.8.2/data/src/nextpage.xcf000644 001750 001750 00000003130 11644604742 020153 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commentð Unnamed#1Ar@pAr@pA|AéA|AéA|AéUnnamedAj@`Aj@`A÷AA÷AA÷AAlAëAlAëAlAë> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ú  Backgroundÿ     ÿÿÿûr † –Ðþttttttt t t t t t ttttttttþt®Ðþqqqqqqq q q q q q qqqqqqqqþq®Ðþqqqqqqq q q q q q qqqqqqqqþq®NþüôVúñÿþˆùÔÿüÿÆÿûæÿã9ÿûÂÿùlÿûþÿ¥ þ»ÿÿûòÿÔ%ÿûÖÿñRÿú¨ÿþŠ ÿûúÿÅ ÿûæÿä; ÿûÀÿún ÿüþÿ† ÿüòÿ¯ ÿúeùÿ· ÿýŒ ÿû¼ÿø_ ÿûÛÿì3ÿûñÿÌÿûýÿ§ ÿû¤ÿþÿûÉÿòOÿûæÿÝ,ÿû÷ÿÄÿý–ÿýþhüÿäNþ. Selection Mask 0 D Tÿqcomicbook-0.8.2/data/src/opendir.xcf000644 001750 001750 00000005153 11644604742 020007 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commentá Bez nazwy#1@¨º/AÒèº@¥ÑtAÒèº@ú.ŒA€A]AmFA ¢éAZ.ŒAEÑA:.ŒA0A1t]AHº/A(º/AQt]A'EÑAˆA'EÑA§EÑA'EÑAÜ]A*.ŒAÜ]A*.ŒAÜ]A*.Œ Bez nazwy Ak¢é@]FAk¢é@]FAwEÑ@ÂèºA‘t]@Ô]A§EÑ@åÑtA¸º/@î‹£AÍÑt@èº/Aâèº@âèºAæ‹£@âèºAæ‹£@âèºAæ‹£@âèºUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) °  Backgroundÿ     _ s ƒ›þ ÿù­\©èÿÿýëGþÿÿý˜ø- gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) @“o ‰ "Iÿ      ÿÿÿþgimp-text-layer(text "I") (font "Serif Bold") (font-size 22.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "pl-pl") (base-direction ltr) (color (color-rgba 1.000000 1.000000 1.000000 1.000000)) (justify left) (box-mode dynamic) (box-unit pixels)  " "'2ÿ2ÿ2ÿbý”ÖÿÿùØ•ÿÿþþÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþýåÿÿüÒ“G  Empty Layerÿ     ; O _  Backgroundÿ      2 B†ý3!þ þu88þGþ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88þ88 þ88þþ4þ,ƒ†ý3!þ þuffþGþffþffþffþffþffþffþffþffþffþffþffþffþffþffþffþffþffþffþffþff þffþþ4þ,ƒ†ý3!þ þuÛÛþGþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛþÛÛ þÛÛþþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask  ÿ   #ÿqcomicbook-0.8.2/data/src/wholepage.xcf000644 001750 001750 00000005030 11644604742 020314 0ustar00pawelpawel000000 000000 gimp xcf file BB  gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) <¢ z  Empty Layerÿ      ì  * ÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿ ÿ*  Backgroundÿ     I ] m†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask  ð   ÿqcomicbook-0.8.2/data/src/fforward.xcf000644 001750 001750 00000003475 11644604742 020166 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commentð Unnamed#1Ar@pAr@pA|AéA|AéA|AéUnnamedAj@`Aj@`A÷AA÷AA÷AAlAëAlAëAlAë> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ¿  Backgroundÿ     n ‚ ’Äþt þtt ttttttt tt tþktt t t ttttttt tt tt tt ttttt tþt þt®Äþq þqq qqqqqqq qq qþhqq q q qqqqqqq qq qq qq qqqqq qþq þq®Äþq þqq qqqqqqq qq qþhqq q q qqqqqqq qq qq qq qqqqq qþq þq®Bþ þüôVüôVúñÿþˆúñÿþˆ ùÔÿüÿÆùÔÿüÿÆ ÿûæÿã9ÿûæÿã9 ÿûÂÿùlÿûÂÿùl ÿùþÿ¥ ÿÿûþÿ¥ þ»ÿÿùòÿÔ%»ÿÿûòÿÔ%ÿûÖÿñRÿÿûÖÿñRÿü¨ÿþÿÿú¨ÿþŠ ÿþúÿ ÿûúÿÅÿûæÿä;ÿûÀÿúnÿúþÿ†ÿÿúòÿ¯ÿÿøeùÿ·ÿÿýŒ ÿþ¼ÿ ÿû¼ÿø_ ÿþÛÿ ÿûÛÿì3ÿüñÿÌÿÿûñÿÌÿûýÿ§ ÿÿûýÿ§ ÿù¤ÿþÿÿû¤ÿþÿûÉÿòOÿûÉÿòO ÿûæÿÝ,ÿûæÿÝ, ÿû÷ÿÄÿû÷ÿÄ ÿý–ÿý– ÿýþhÿýþhüÿäNüÿäNþ þ.qcomicbook-0.8.2/data/src/japanese.xcf000644 001750 001750 00000007103 11644604742 020132 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 8 k  New Layerÿ      æ ú  ¦ÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ þÞ{{þRüR{”¥¥þÆ þ”þ{ þ¥þ{ þ¥þ{ þÞ¥¥þZþZ¥¥ý”Þ ÿú¥Æÿÿ¥ú¥ÿÞ{1ÿÿ ÿùï!!¥¥ù¥”¥ÿÿ ÿþŒý{¥ý¥½û!ïÿÿ ÿøïÞ¥ü¥ÿ!ü{ÿÿ ÿþRüZÿ¥ü¥ÿ¥üÞÿ ýÿ¥üÞÿ¥û¥ÿÿ1ý!ï ýÞû{ÿÿ¥û¥ÿÿÞþB þú!ïÿÿ¥þ¥ÿÿþ{ þ{þÆÿÿþ¥þ¥ÿÿúï!½ ûÿŒ{ÿÿþ¥þ¥ÿÿûÞ!Þÿ ÿþ½ÿÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥!!þ¥ÿÿŦÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ þÞ{{þRüR{”¥¥þÆ þ”þ{ þ¥þ{ þ¥þ{ þÞ¥¥þZþZ¥¥ý”Þ ÿú¥Æÿÿ¥ú¥ÿÞ{1ÿÿ ÿùï!!¥¥ù¥”¥ÿÿ ÿþŒý{¥ý¥½û!ïÿÿ ÿøïÞ¥ü¥ÿ!ü{ÿÿ ÿþRüZÿ¥ü¥ÿ¥üÞÿ ýÿ¥üÞÿ¥û¥ÿÿ1ý!ï ýÞû{ÿÿ¥û¥ÿÿÞþB þú!ïÿÿ¥þ¥ÿÿþ{ þ{þÆÿÿþ¥þ¥ÿÿúï!½ ûÿŒ{ÿÿþ¥þ¥ÿÿûÞ!Þÿ ÿþ½ÿÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥!!þ¥ÿÿŦÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ þÞ{{þRüR{”¥¥þÆ þ”þ{ þ¥þ{ þ¥þ{ þÞ¥¥þZþZ¥¥ý”Þ ÿú¥Æÿÿ¥ú¥ÿÞ{1ÿÿ ÿùï!!¥¥ù¥”¥ÿÿ ÿþŒý{¥ý¥½û!ïÿÿ ÿøïÞ¥ü¥ÿ!ü{ÿÿ ÿþRüZÿ¥ü¥ÿ¥üÞÿ ýÿ¥üÞÿ¥û¥ÿÿ1ý!ï ýÞû{ÿÿ¥û¥ÿÿÞþB þú!ïÿÿ¥þ¥ÿÿþ{ þ{þÆÿÿþ¥þ¥ÿÿúï!½ ûÿŒ{ÿÿþ¥þ¥ÿÿûÞ!Þÿ ÿþ½ÿÿþ¥þ¥ÿÿ ÿþ¥þ¥ÿÿ ÿþ¥!!þ¥ÿÿŦÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÅ  Backgroundÿ        & 6†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ bqcomicbook-0.8.2/data/src/settings.xcf000644 001750 001750 00000006322 11644604742 020206 0ustar00pawelpawel000000 000000 gimp xcf file BB9 gimp-comment— Unnamed#24A}7§@©½8A}7§@©½8A|…‘A]é½A|…‘A]é½A|…‘A]é½ Unnamed#1ADÞœAbCADÞœAbCAE²AÄ,†AE²AÄ,†AE²AÄ,†A‚oNAÄ,†A‚oNAÄ,†A‚oNAÄ,†A‚oNAad-A‚oNAad-A‚oNAad-A½²AÞœA|…‘@¯MêARC@ù !Unnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) j÷  New Layerÿ       , <‹þþ ΋þþ  ΋þþ  ΋þOþOûÓÿ—û—ÿÓú$èÿÿºúÂÿÿè$ýÛÿÿþªþ³ÿÿýÛþLÿÿþ¦þ²ÿÿþLþsÿÿþ¨þ²ÿÿþsþXÿÿþ·þ³ÿÿþXý ïÿÿþ¾þ´ÿÿýï úrÿùÿÑúÅÿùÿrôœÿÿ÷r‚‚úÿÿœþ™ÿÿþØþ°ÿÿþÜþ¯ÿÿþÖþ®ÿÿþÔþ­ÿÿþÕþ¬ÿÿþÛþ«ÿÿþàþÆÿÿþäþ§ÿÿþÜþ¦ÿÿþÖþ&……þ8í  Backgroundÿ     ž ² Âeþþ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒeþþ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒeþþ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCÏÿÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ bqcomicbook-0.8.2/data/src/bestfit.xcf000644 001750 001750 00000005026 11644604742 020006 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) <  x  New Layerÿ     ê þ  öp´ÜôÿøÜ¡3þÜÿÿþüÿÿýüIõ™b%žÿÿÉûÿÿéûÿÿÂû•ÿï2ú—ÿÈ$ú ÀÿœûŽÿÿüèÿðüÓÔÄ;|þsÿþìÿþì.  Backgroundÿ     G [ k†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask  î   ÿqcomicbook-0.8.2/data/src/prevframe.xcf000644 001750 001750 00000007003 11644604742 020332 0ustar00pawelpawel000000 000000 gimp xcf file BB& Unnamed#1AªAHAªAHA,A§A,A¨A,A© Selection  AˆA AˆA AˆA°AˆA°AˆA°AÀA°AÀA°AÀA°AÀA AÀA AÀA AˆA UnnamedAÇ@€AÇ@€@ä@€@ä@€@ä@€@ˆ@p@„@è@€A,@„AÅ@„AÅ@„AÅ@ŒAß@äAßAAßAÈAßAÈAßAÈAßAâAÚAáAÂAàAªAá@àAá@àAá@àAá@ˆAÌ@„A·@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 0   New Layerÿ     Þ ò Ï ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿÿùÿÿÿü@ÿûÿÿ Šüx@ûÿÿ Šþmûÿÿ Šü ûÿÿ ŠþÒûÿÿ ŠùH1ÿûÿÿ Šýxÿÿþÿ þŠû xþÿ þŠûŠxþÿ þŠüŠÿÿŠþÿþÿ ÿþÿîÏ ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿÿùÿÿÿü@ÿûÿÿ üx@ûÿÿ þmûÿÿ ü ûÿÿ þÒûÿÿ ùH1ÿûÿÿ ýxÿÿþÿ þû xþÿ þûxþÿ þüÿÿþÿþÿ ÿþÿîÏ ÿþÿþÿþÿüÿÿÿþÿûÿÿûÿÿÿùÿÿÿü@ÿûÿÿ üx@ûÿÿ þmûÿÿ ü ûÿÿ þÒûÿÿ ùH1ÿûÿÿ ýxÿÿþÿ þû xþÿ þûxþÿ þüÿÿþÿþÿ ÿþÿîÏþHˆˆþ‡ÿÿþ‡ÿÿþ@û‡ÿÿ·wwû¿ÿÿxû‡ÿÿxû‡ÿÿx ÿ÷x‡ÿÿx ÿ÷xaöD‡ÿÿx ÿ÷Çÿÿ†‡ÿÿx ÿøøa‡ÿÿx ÿ÷ð6‡ÿÿx ÿþ„û‡ÿÿx ÿþÌÿÿþxû‡ÿÿx ÿþ¾ÿÿþÀˆˆûÇÿÿx ÿûçÿÿõÿ ÿþx ÿþx ÿüïÿùÿÿþ·wwþx ÿþxþx ÿþxþ8 ÿþxî  Backgroundÿ      à  × ç„þ ý!3 ýGëÿÿýìuþÍÿÿýüþáÿÿþþêÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþîÿÿþþíÿÿþþìÿÿþþëÿÿþþêÿÿþþéÿÿþþèÿÿþþæÿÿþôÿÿþþäÿÿþþâÿÿþþÞÿÿþþ¨ÿÿýØýÁßßýºþ,þ4ƒ„þ ý!3 ýGëÿÿýìuþÍÿÿýüþáÿÿþþêÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþîÿÿþþíÿÿþþìÿÿþþëÿÿþþêÿÿþþéÿÿþþèÿÿþþæÿÿþôÿÿþþäÿÿþþâÿÿþþÞÿÿþþ¨ÿÿýØýÁßßýºþ,þ4ƒ„þ ý!3 ýGëÿÿýìuþÍÿÿýüþáÿÿþþêÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþîÿÿþþíÿÿþþìÿÿþþëÿÿþþêÿÿþþéÿÿþþèÿÿþþæÿÿþôÿÿþþäÿÿþþâÿÿþþÞÿÿþþ¨ÿÿýØýÁßßýºþ,þ4ƒEþü)µ÷ÿÿûÚ‰ÏCþÿÿþOþ™ÿÿýÛþ×ÿÿþþâÿÿþþëÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþîÿÿþþíÿÿþþìÿÿþþëÿÿþþêÿÿþþéÿÿþþèÿÿþþæÿÿþþäÿÿþþâÿÿþþÞÿÿþ!þÊÿÿý÷þfÿÿþ˜þÿÿþü ‡ÖßßüÛ†bqcomicbook-0.8.2/data/src/pagebottom.xcf000644 001750 001750 00000005106 11644604742 020506 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) <° ¨  Empty Layerÿ     ä ø Et t t t t t t t t¦Eq q q q q q q q q¦Eq q q q q q q q q¦Eÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ¦  Backgroundÿ     _ s ƒeýü-* þ üuìþÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒeýü-* þ üuìþÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒeýü-* þ üuìþÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþúCϱÒüÿÿü÷µ)ùOÿø÷ùýÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask    2 Bÿqcomicbook-0.8.2/data/src/twopages.xcf000644 001750 001750 00000005165 11644604742 020203 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 8þ  Empty Layerÿ     è ü  Æo o o o o o o o o o o o o oo oo o ooÆh h h h h h h h h h h h h hh hh h hhÆh h h h h h h h h h h h h hh hh h hh¯ÿÿÿÿÿÿÿÿÿûZœßÿù¨ëõ¾ û©†ÿÿùn‘¼ ý(ÿÿý0ù ý(ÿÿýLç ý(ÿÿüÆw ý(ÿÿû£¢ ý(ÿÿû ¡ ý(ÿÿü„Ïý(ÿÿü/þn ù#ôöÿôíÿþ`ÿÿÿÿÿ¯  Backgroundÿ     ¥ ¹ Ƀý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,€ƒý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,€ƒý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,€XþûCωÚÿÿý?/ÿ ÿú÷µ)Oÿ ÿý¥´ÿ ÿýÛÿÿþ™ÿÿþ×ÿÿþâÿÿþëÿÿþïÿÿþïÿÿþïÿÿþïÿÿþïÿÿþîÿÿþíÿÿþìÿÿþëÿÿþêÿÿþéÿÿþèÿÿþæÿÿþäÿÿþâÿÿýÞ÷ÿÿýʘÿÿýfÿÿú†ÛßßÿýEÿÿßüÖ‡ _qcomicbook-0.8.2/data/src/pagetop.xcf000644 001750 001750 00000005061 11644604742 020004 0ustar00pawelpawel000000 000000 gimp xcf file BB  gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) <¸ “  Empty Layerÿ      ì  ¦t t t t t t t t tE¦q q q q q q q q qE¦q q q q q q q q qE¦ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿE  Backgroundÿ     _ s ƒ†ý#þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý#þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý#þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCϨÆÿÿü÷µ)ûOÿÿûÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask    -ÿqcomicbook-0.8.2/data/src/fbackward.xcf000644 001750 001750 00000003475 11644604742 020300 0ustar00pawelpawel000000 000000 gimp xcf file BB  gimp-commentð Unnamed#1A‡@pA‡@pA‚AéA‚AéA‚AéUnnamedA‹@`A‹@`?A?A?AAŠAëAŠAëAŠAë> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ¿  Backgroundÿ     n ‚ ’Ïþt þtt ttttt tt tt tþkt t tttttt tt tt tt ttttttt tþt þt£Ïþq þqq qqqqq qq qq qþhq q qqqqqq qq qq qq qqqqqqq qþq þq£Ïþq þqq qqqqq qq qq qþhq q qqqqqq qq qq qq qqqqqqq qþq þq£Oþ þüVôüVô úˆþÿñúˆþÿñ ùÆÿüÿÔùÆÿüÿÔ û9ãÿæÿÿû9ãÿæÿÿ ûlùÿÂÿÿûlùÿÂÿÿ û ¥ÿþÿÿû ¥ÿþÿÿû%Ôÿòÿÿù»%Ôÿòÿÿþ»ûRñÿÖÿÿûRñÿÖÿÿúŠþÿ¨ÿÿüþÿ¨ÿÿûÅÿúÿ ÿþúÿ ÿû;äÿæÿÿûnúÿÀÿÿü†ÿþÿÿü¯ÿòÿÿú·ÿùeÿÿýŒÿÿû_øÿ¼ÿ ÿþ¼ÿ ÿû3ìÿÛÿ ÿþÛÿÿûÌÿñÿÿüÌÿñÿÿû §ÿýÿÿû §ÿýÿÿ ûþÿ¤ÿÿûþÿ¤ÿÿ ûOòÿÉÿÿûOòÿÉÿÿ û,Ýÿæÿÿû,Ýÿæÿÿ ûÄÿ÷ÿÿûÄÿ÷ÿÿ ý–ÿÿý–ÿÿûhþÿÿûhþÿÿüNäÿüNäÿþ þ!qcomicbook-0.8.2/data/src/hint_warning.xcf000644 001750 001750 00000005254 11644604742 021040 0ustar00pawelpawel000000 000000 gimp xcf file BB±Unnamed @Aê€@Aê€Aw@PAw@PAw@PAìAßAìAßAìAß?ØAß?ØAß?ØAßG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) k²!ÿ      7gimp-text-layer(text "!") (font "Sans") (font-size 18.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.070588 0.065882 0.065882)) (justify left) (box-mode fixed) (box-width 7.000000) (box-height 22.000000) (box-unit pixels) PdtšššÿÿÿÿÿÿýõôýåäÔÿÿ$ Backgroundÿ     Y m } ÿý÷Uÿÿüs¯ÿÿû÷!ÿÿþqþÿÿý÷ýõÿÿþoþYÿÿö÷Ùÿÿöqç:ÿÿø÷Qÿˆþ´ÿÿôoñÿÿ$"ÿÿú÷Sÿÿþ·þ…ÿÿúoòÿÿú<õÿÿú÷Sÿÿúç\ÿÿúnóÿÿú_Ùÿ ÿú÷Tÿÿúú:ÿ ÿúnóÿÿþ‰þ´ÿ ÿú÷Tÿÿû$#ÿ ÿúmóÿÿþ·þ…ÿ ÿú÷Tÿ ÿú<õÿÿúlôÿ ÿúçZÿÿú÷Tÿ ÿú\Øÿÿúkôÿ ÿúú:ÿÿú÷Vÿÿþ‡þ´ÿÿúkóÿÿû$#ÿÿúõUÿÿþ´þ…ÿÿúhôÿÿ÷;õÿÿ¬8þ*ûTÿÿ(üÝÿù>ÿZZbfggþmÿ>ÿ ÿý÷Uÿÿür¯ÿÿû÷ ÿÿþpþ€ÿÿý÷ýõÿÿþnþYÿÿö÷Ùÿÿöpç9ÿÿø÷Pÿˆþ´ÿÿônñÿÿ#"ÿÿú÷Rÿÿþ·þ„ÿÿúnòÿÿú<õÿÿú÷Rÿÿúç[ÿÿúmóÿÿú^Ùÿ ÿú÷Sÿÿúú9ÿ ÿúmóÿÿþ‰þ´ÿ ÿú÷Tÿÿû#"ÿ ÿúlóÿÿþ·þ…ÿ ÿú÷Tÿ ÿú<õÿÿúlôÿ ÿúçZÿÿú÷Tÿ ÿú[×ÿÿújôÿ ÿúú9ÿÿú÷Vÿÿþ†þ´ÿÿújóÿÿû#"ÿÿúõUÿÿþ´þ…ÿÿúhôÿÿ÷:õÿÿ«7þ*ûTÿÿ'üÝÿù=ÿYZbfggþlÿ>ÿ ÿý÷Uÿÿür¯ÿÿû÷ ÿÿþpþ€ÿÿý÷ýõÿÿþnþYÿÿö÷ÙÿÿöpY9ÿÿø÷Pˆþ´ÿÿôn#"ÿÿú÷Rþ·þ„ÿÿúnú<õÿÿú÷RúY[ÿÿúmú^Ùÿ ÿú÷Sû9ÿ ÿúmþ‰þ´ÿ ÿú÷Tû#"ÿ ÿúlþ·þ…ÿ ÿú÷T ú<õÿÿúl úYZÿÿú÷T ú[×ÿÿúj û9ÿÿú÷Vþ†þ´ÿÿújû#"ÿÿúõUþ´þ…ÿÿúh÷:õÿÿ«7þ*ûTÿÿ'üÝÿù=ÿYZbfggþlÿ>ÿqcomicbook-0.8.2/data/src/fitwidth.xcf000644 001750 001750 00000005252 11644604742 020171 0ustar00pawelpawel000000 000000 gimp xcf file BB& gimp-commentO Unnamed#2 #@Ⱥ/Axº/@Ⱥ/Axº/A‹£A[¢éA‹£A[¢éA‹£A[¢éA‹£AŠèºA‹£AŠèºA‹£AŠèº@Ú.ŒA€@Ú.ŒA€@Ú.ŒA€ Unnamed#1@΋£AuÑt@΋£AuÑtUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) &4  Empty Layerÿ      Ö ê ú©þÿ þÿÿ ÿ ÿ ÿ ÿþÿ þÿÈ  Backgroundÿ     Û ï ÿ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ b Selection Mask  ‚  – ¦ÿqcomicbook-0.8.2/data/src/prevpage.xcf000644 001750 001750 00000003130 11644604742 020151 0ustar00pawelpawel000000 000000 gimp xcf file BB  gimp-commentð Unnamed#1A‡@pA‡@pA‚AéA‚AéA‚AéUnnamedA‹@`A‹@`?A?A?AAŠAëAŠAëAŠAë> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ú  Backgroundÿ     r † –Ïþttttttt t t t t t ttttttttþt¯Ïþqqqqqqq q q q q q qqqqqqqqþq¯Ïþqqqqqqq q q q q q qqqqqqqqþq¯OþüVôúˆþÿñùÆÿüÿÔû9ãÿæÿÿûlùÿÂÿÿû ¥ÿþÿÿû%Ôÿòÿÿþ»ûRñÿÖÿÿúŠþÿ¨ÿÿûÅÿúÿ ÿû;äÿæÿ ÿûnúÿÀÿ ÿ ü†ÿþÿ ÿ ü¯ÿòÿ ÿ ú·ÿùeÿ ÿýŒÿ ÿû_øÿ¼ÿ ÿû3ìÿÛÿÿûÌÿñÿÿû §ÿýÿÿûþÿ¤ÿÿûOòÿÉÿÿû,ÝÿæÿÿûÄÿ÷ÿÿý–ÿÿûhþÿÿüNäÿþ- Selection Mask 0 D Tÿqcomicbook-0.8.2/data/src/thumbnails.xcf000644 001750 001750 00000005560 11644604742 020517 0ustar00pawelpawel000000 000000 gimp xcf file BB" gimp-commenteUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 4  Backgroundÿ     ã ÷ †ù3!!3ù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüÿüÿÿýüýuìÿÿöìuÿuìÿÿúìuõ3!!3ÿõ3!!3ÿþÿÿþìÿù3!!3þÿù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüßüÿÿýüýuìÿÿûìuýuìÿÿúìuö3!!3õ3!!3a†ù3!!3ù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüÿüÿÿýüýuìÿÿöìuÿuìÿÿúìuõ3!!3ÿõ3!!3ÿþÿÿþìÿù3!!3þÿù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüßüÿÿýüýuìÿÿûìuýuìÿÿúìuö3!!3õ3!!3a†ù3!!3ù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüÿüÿÿýüýuìÿÿöìuÿuìÿÿúìuõ3!!3ÿõ3!!3ÿþÿÿþìÿù3!!3þÿù3!!3 ýuìÿÿöìuÿuìÿÿýìuýüÿÿøüÿüÿÿýüþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþþÿÿúÿÿÿþýüÿÿøüßüÿÿýüýuìÿÿûìuýuìÿÿúìuö3!!3õ3!!3acü³ÿóÿÿùW¸ÿóÿÿþWþÆÿÿüÇÆÿÿþÈþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþÿ ÿþüÿÿüýüÿÿþýþ†ÿÿüІÿÿþŠûtöÈúÿÿø0töÈúÿÿþ0&ü³ÿóÿÿùW³ÿóÿÿþWþÆÿÿüÇÆÿÿþÇ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿ ÿþÿ ÿþüÿÿüýüÿÿþýþ†ÿÿüІÿÿþŠûtöÈúÿÿø0töÈúÿÿþ0Bqcomicbook-0.8.2/data/src/rleft.xcf000644 001750 001750 00000005663 11644604742 017471 0ustar00pawelpawel000000 000000 gimp xcf file BB gimp-commentŽ Unnamed#3AÅF@ñt]AÅF@ñt]AF@ú.ŒA ¢èA¸@ô]Bº/ Unnamed#2AÆ@ôAÆ@ôA@ÌAAº@ôB € Unnamed#1AÆ‹£@î‹£AÆ‹£@î‹£At^@ô]A]A¼]@BÑtUnnamedAÇ@€AÇ@€@ä@€@ä@€@ä@€@ˆ@p@„@è@€A,@„AÅ@„AÅ@„AÅ@ŒAß@äAßAAßAÈAßAÈAßAÈAßAâAÚAáAÂAàAªAá@àAá@àAá@àAá@ˆAÌ@„A·@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) a   Backgroundÿ      $ 4„þ ý!3 ýGëÿÿýìuþÍÿ ÿøúÒ’·ÿüþáÿ ÿüÚ|1û]ÿÿþêÿÿýÆ9ø2l¥ÿÿþïÿÿ÷äGZ¤÷ÿÿþþïÿÿùÁ „øÿÿþþïÿÿú£Kôÿÿþþïÿÿû±ÿ ÿþþïÿÿûà Šÿ ÿþþîÿÿü@Hÿ ÿþþíÿÿû³îÿ ÿþþìÿÿü7ÿ ÿþøëÿÿÚùÿ ÿþøêî›%)Àÿ ÿþ÷Ù’;Àÿ ÿþýÄ5ý gÿ ÿþý¹ý9ÿ ÿþý½ýLÿ ÿþýÎiý›ÿ ÿþ÷Ü×i5’îÿ ÿþø¨ýéÔÎØîÿ ÿýØýÁßßýºþ,þ4ƒ„þ ý!3 ýGëÿÿýìuþÍÿ ÿøúÒ’·ÿüþáÿ ÿüÚ|1û]ÿÿþêÿÿýÆ9ø2l¥ÿÿþïÿÿ÷äGZ¤÷ÿÿþþïÿÿùÁ „øÿÿþþïÿÿú£Kôÿÿþþïÿÿû±ÿ ÿþþïÿÿûà Šÿ ÿþþîÿÿü@Hÿ ÿþþíÿÿû³îÿ ÿþþìÿÿü7ÿ ÿþøëÿÿÚùÿ ÿþøêî›%)Àÿ ÿþ÷Ù’;Àÿ ÿþýÄ5ý gÿ ÿþý¹ý9ÿ ÿþý½ýLÿ ÿþýÎiý›ÿ ÿþ÷Ü×i5’îÿ ÿþø¨ýéÔÎØîÿ ÿýØýÁßßýºþ,þ4ƒ„þ ý!3 ýGëÿÿýìuþÍÿ ÿøúÒ’·ÿüþáÿ ÿüÚ|1û]ÿÿþêÿÿýÆ9ø2l¥ÿÿþïÿÿ÷äGZ¤÷ÿÿþþïÿÿùÁ „øÿÿþþïÿÿú£Kôÿÿþþïÿÿû±ÿ ÿþþïÿÿûà Šÿ ÿþþîÿÿü@Hÿ ÿþþíÿÿû³îÿ ÿþþìÿÿü7ÿ ÿþøëÿÿÚùÿ ÿþøêî›%)Àÿ ÿþ÷Ù’;Àÿ ÿþýÄ5ý gÿ ÿþý¹ý9ÿ ÿþý½ýLÿ ÿþýÎiý›ÿ ÿþ÷Ü×i5’îÿ ÿþø¨ýéÔÎØîÿ ÿýØýÁßßýºþ,þ4ƒEþü)µ÷ÿÿûÚ‰ÏCþÿÿþOþ™ÿÿýÛþ×ÿÿþþâÿÿþþëÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþïÿÿþþîÿÿþþíÿÿþþìÿÿþþëÿÿþþêÿÿþþéÿÿþþèÿÿþþæÿÿþþäÿÿþþâÿÿþþÞÿÿþ!þÊÿÿý÷þfÿÿþ˜þÿÿþü ‡ÖßßüÛ†b Selection Mask  ‹  Ÿ ¯ÿqcomicbook-0.8.2/data/src/fitheight.xcf000644 001750 001750 00000005532 11644604742 020323 0ustar00pawelpawel000000 000000 gimp xcf file BB9 gimp-commentO Unnamed#2 #@Ⱥ/Axº/@Ⱥ/Axº/A‹£A[¢éA‹£A[¢éA‹£A[¢éA‹£AŠèºA‹£AŠèºA‹£AŠèº@Ú.ŒA€@Ú.ŒA€@Ú.ŒA€ Unnamed#1@΋£AuÑt@΋£AuÑtUnnamed@ä@€@ä@€AÇ@€AÇ@€AÇ@€AÞ@pAß@èAàA,AßAÅAßAÅAßAÅAÝAßAÇAßA±Aß@àAß@àAß@àAß@pAÚ@xAÂ@€Aª@x@à@x@à@x@à@x@ˆ@Ð@„A@€> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) "‚  Empty Layerÿ      Ò æ öiþÿ þÿþÿ ÿ ÿ ÿ ÿÿ ÿþÿÿ ÿÿ ÿ ÿüÿÿþÿªiþÿ þÿþÿ ÿ ÿ ÿ ÿÿ ÿþÿÿ ÿÿ ÿ ÿüÿÿþÿªiþÿ þÿþÿ ÿ ÿ ÿ ÿÿ ÿþÿÿ ÿÿ ÿ ÿüÿÿþÿªÏþÿÿÿÿþÿþÿþÿþÿþÿþÿÿ ÿþÿÿ ÿþÿÿ ÿ ÿþÿÿ ÿþÿÿüÿÿþÿþÿþÿþÿþÿÿÿÿþÿÏ  Backgroundÿ     ) = M†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒ†ý3!þ ýuìÿÿýëGýüÿÿþÍþÿÿþáþÿÿþêþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþÿÿþÞýØÿÿþ¨ýºßßýÁþ4þ,ƒXþûCωÚÿÿü÷µ)þOÿÿþýÛÿÿþ™þÿÿþ×þÿÿþâþÿÿþëþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþïþÿÿþîþÿÿþíþÿÿþìþÿÿþëþÿÿþêþÿÿþéþÿÿþèþÿÿþæþÿÿþäþÿÿþâþ!ÿÿþÞý÷ÿÿþÊþ˜ÿÿþfþÿÿþü†ÛßßüÖ‡ bqcomicbook-0.8.2/data/src/bookmark.xcf000644 001750 001750 00000007527 11644604742 020163 0ustar00pawelpawel000000 000000 gimp xcf file BB| gimp-comment Unnamed#5uA˜AªèºA˜AªèºA¯EÑA˜A½ÑtAAÌ]Aˆ Unnamed#4sA¢.ŒA¥FA¢.ŒA¤]AµFAFAÉt]Aƒ¢éAÝÑtAt] Unnamed#3qAA º/AèºA º/AK¢éAˆº/Ad]Aƒ¢éA}FA}F Unnamed#2OAt]@K¢éAt]@K¢éAŸEÑ@K¢éAŸEÑ@K¢éAŸEÑ@K¢éAÑtAþ‹£AÑtAþ‹£AÑtAþ‹£AZ.ŒAÊ.ŒAZ.ŒAÊ.ŒAZ.ŒAÊ.ŒAèºAþ‹£AèºAþ‹£AèºAþ‹£Aèº@t]Aèº@t]Aèº@t] Unnamed#1;A@€A@€AAúAAúAAúA\A¹A\A¹A\A¹A’AüA’AüAšCOAî¨MA—@€A—@€A—@€A(@ŒA(@ŒA(@ŒUnnamed&A‹£@FA‹£@FA.Œ@ÀAK¢éAQt]A}FA¡t]A•FA•ÑtAFAÉt]A…FAýFAz.ŒAþ‹£Az.ŒAþ‹£Az.ŒAþ‹£A¦‹£Aàº/A±t]AÊèºA¼]AµFA¼]A A¼]AŸEÑA¼]Až‹£AÅFAÅÑtAÀAÙt]AºèºAíFAµFAøº/AµFAøº/AµFAøº/AÓ¢éAåFAÛ¢éAÔ]Aã¢éAâéAæ‹£AŽ‹£AØAk¢éAÉt]A:.ŒAâéAt]A¾‹£@·EÑA¹t]@EÑA½F>èº/A½F>èº/A½F>èº/A!t]>º.ŒA!t]>º.ŒA!t]>º.Œ> gimp-commentgimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) Ó  New Layerÿ      • ¥ ý  þ   þ  ý  þ   ú¯ÓÓ   ùÓÿÿ ¯ÓÓþ¿  ÷ Óÿÿ Óÿÿþå  ÷ Òÿÿ Óÿÿþã  ÷ Òÿÿ Òÿÿþâ  ÷ Òÿÿ Òÿÿþà  ÷ Óÿÿ ÓÿÿþÝ  ÷ Óÿÿ ÓÿÿþÙ  ÷ Óÿÿ Óÿÿþ×  ÷ Óÿÿ ÓÿÿþÑ  ü Óþÿÿ þþÅÿÿþþ ýùÿÿýñFþ þ×ÿÿþ þ þÿÿ ü Rÿÿûñ  ü ÓÿÿþòÿÿüÉ ÷ Óÿÿã&¾ÿÿûÇ ó Óÿô: ÂÿÿÇ  ú ÓþP  ûÍÿÅ  ó Ó~   Üà  ú |   û4 '¤  þ  þ.  û’6   ô K.  ’ã7  ó F®  ãç2  ù F® .ü’ç2  û Kýã7  û F®úÿç2 ý  þ   þ  ý  þ   ú¯ÓÓ   ùÓÿÿ ¯ÓÓþ¿  ÷ Óÿÿ Óÿÿþå  ÷ Òÿÿ Óÿÿþã  ÷ Òÿÿ Òÿÿþâ  ÷ Òÿÿ Òÿÿþà  ÷ Óÿÿ ÓÿÿþÝ  ÷ Óÿÿ ÓÿÿþÙ  ÷ Óÿÿ Óÿÿþ×  ÷ Óÿÿ ÓÿÿþÑ  ü Óþÿÿ þþÅÿÿþþ ýùÿÿýñFþ þ×ÿÿþ þ þÿÿ ü Jÿÿûñ  ü ÓÿÿþòÿÿüÉ ÷ Óÿÿã&¾ÿÿûÇ ó Óÿô: ÂÿÿÇ  ú ÓþP  ûÍÿÅ  ó Ó~   Üà  ú |   û4 '¤  þ  þ.  û’6   ô K.  ’ã7  ó F®  ãç2  ù F® .ü’ç2  û Kýã7  û F®úÿç2 ý  þ   þ  ý  þ   ú¯ÓÓ   ùÓÿÿ ¯ÓÓþ¿  ÷ Óÿÿ Óÿÿþå  ÷ Òÿÿ Óÿÿþã  ÷ Òÿÿ Òÿÿþâ  ÷ Òÿÿ Òÿÿþà  ÷ Óÿÿ ÓÿÿþÝ  ÷ Óÿÿ ÓÿÿþÙ  ÷ Óÿÿ Óÿÿþ×  ÷ Óÿÿ ÓÿÿþÑ  ü Óþÿÿ þþÅÿÿþþ ýùÿÿýñFþ þ×ÿÿþ þ þÿÿ ü Jÿÿûñ  ü ÓÿÿþòÿÿüÉ ÷ Óÿÿã&¾ÿÿûÇ ó Óÿô: ÂÿÿÇ  ú ÓþP  ûÍÿÅ  ó Ó~   Üà  ú |   û4 '¤  þ  þ.  û’6   ô K.  ’ã7  ó F®  ãç2  ù F® .ü’ç2  û Kýã7  û F®úÿç2 kýÿ¾ÑÑû÷ÑÓ¾ ÿþçþÑÿ ÿþæüÑÿýÿÿþäüÒÿýÿÿþâüÒÿüÿÿþáþ÷ÿ ÿþû ÿþøÿ ÿþøþøÿ ÿþ÷þáÿ ÿþÏý1Òÿ ÿþÍ úzýÿãÿ ÿû¸ÿýÿ ÿþ ûžÿØÿ ÿþñýžÿ ÿý¾þ*ÿ ÿþäþ´ÿ ÿþóþ¨ÿ ÿþÅþ´ÿÿþýÿÿþÄþÄÿÿûõÿÿ¾ÿÿþÂ÷Öÿÿûÿù'µÿÿþÀþÖÿÿõþDÛÿþÿÿ¿þÖÿÿþlý ûÿÿþ½û×ÿÿÈú×ÿÿ¼û×ÿõ û ÿÿºjqcomicbook-0.8.2/data/info.png000644 001750 001750 00000001032 11644604742 016507 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDP¶|\ pHYs  šœtIMEÕ5¡„ØtEXtCommentöÌ–¿“IDATXÃí—¿KaÇ?™‰šFôƒˆ:p(r󆦠úš‚¦Æ"h+—ƈ °!ª%Zj jiÈpn \ËMTˆB.Ò»·¥“S¸Óô” û ÏûpÏ=Ÿ{žÞçÀQgÔõ›‡p¤aÃR€;`º^ò%=( I’„M@@#f¥qÏ@8‹ñP\³µý™M’É$À°nLªk‡B!Û“'NtsŽš¯®R0l÷ì5Ð4Mk7€Ï¸ql@UUËè­•Aä)?“£žŠ/óòÅã“ÂÑõ¥r]·Ù¦¡ ^õu“ˆKßF<Ïû‡ÚT9Œ-BˆºAµÉšMÞ4€ú—Âp,ï‚ÈÐZpW_á~WÓÆ7y¼^¯eôÎê³3þ*ßéö©´ÂñM¡‘ÛÐÀàñx,£÷/_[mAÙ¬9à3›Í¶û ÌJÀ…‚\bÞö¬ùûÝ<·^eY¶u7®H$"€žz,.`X®ŸZÜ»?¶£¿£oà:ï,£LÄIEND®B`‚qcomicbook-0.8.2/data/qcomicbook.desktop000644 001750 001750 00000001557 11644604742 020603 0ustar00pawelpawel000000 000000 [Desktop Entry] Encoding=UTF-8 Name=qcomicbook GenericName=ComicBook Viewer GenericName[pl]=PrzeglÄ…darka komiksów GenericName[tr]=Çizgi Roman Görüntüleyicisi Comment=QComicBook is a viewer for comic book archives (cbz, cbr, cbt). QComicBook has specific features like page preview, thumbnails view, bookmarks, manga mode for easing comicbook reading. Comment[tr]=QComicBook cbz, cbr, cbt biçimindeki çizgi roman arÅŸivlerini görüntülemek için kullanılır. Sayfa ön görünümü, sayfa döşeme, yer imi, mangalar için sayfa sırasını ters gösterme gibi çizgi roman okumayı kolaylaÅŸtırıcı özellikleri bulunuyor. Comment[pl]=PrzeglÄ…darka do archiwów z komiksami Exec=qcomicbook Icon=qcomicbook.png Terminal=false Type=Application StartupNotify=false Categories=Application;Graphics;Viewer; MimeType=application/x-cbz;application/x-cbr;application/x-cbt; qcomicbook-0.8.2/data/prevpage.png000644 001750 001750 00000001054 11644604742 017371 0ustar00pawelpawel000000 000000 ‰PNG  IHDR szzôbKGDtqq‡ ¾½ pHYs  šœtIMEÕ $RàÊtEXtCommentöÌ–¿¥IDATXÃí×½kAÆáG“›FQ-µ+AE,´A Em´ öÐFDF ; Á@@´²ð+(¢E `#6Š©5Bð+k3 ionöÎ%àÛ̳óþvÏ9sfø¯þhS·‡ú`~OÐÁdɯÂUÌ£Æ×’æñ2ÿÎãt)ó=øM?U!Ôù¹îæåµ+4¿€gØŠçU›—»ÀpÆëp §PW!Àþ^ê`;îa'f«F™÷¨!8†×Ùüíæp¨M€a\ÃÆ0^…°£ î&ð{ñ« ¡ƒm•пþÀ>Leó™lÞª–¸ˆ§Ø‚É^Jl%Wp£ QÂ~íb‹4 ö=׸Ògñ£1¥Ÿ1¥s¥¾à0®c$ïzEà*œÁ˜’˜Òã’nçrüŒƒ1¥w¥à våq[Lé[iø˜;Þ]ŒÅ”æKÀNâÖ伸S ÑeÅ,NÇ”^•€û¹G¼Çî˜ÒÌ îëñ"Ÿç–{&lKÜ\`\ Ñù÷‚zP!9’Kv`rÿXú kp®CVoIEND®B`‚qcomicbook-0.8.2/data/qcomicbook.qrc000644 001750 001750 00000001730 11644604742 017710 0ustar00pawelpawel000000 000000 nextframe.png prevframe.png hint_info.png hint_warning.png hint_error.png bestfit.png bookmark.png fbackward.png fforward.png fitheight.png fitwidth.png prevpage.png pagetop.png pagebottom.png orgsize.png opendir.png openarch.png nextpage.png japanese.png info.png qcomicbook.png rleft.png rright.png settings.png thumbnails.png twopages.png wholepage.png flattr.png qcomicbook-splash.png qcomicbook-0.8.2/CMakeLists.txt000644 001750 001750 00000001773 11644604742 016711 0ustar00pawelpawel000000 000000 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(QComicBook) SET(VERSION "0.8.2") SET(PACKAGE qcomicbook) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/src/config.h.cmake ${CMAKE_BINARY_DIR}/config.h) IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Release) ENDIF() IF(CMAKE_BUILD_TYPE STREQUAL "Release") ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT ) ENDIF() SET(QT_MIN_VERSION "4.5.0") FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(${QT_USE_FILE}) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(POPPLER poppler-qt4>=0.12.4) SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}") SET(CPACK_SOURCE_GENERATOR "TGZ") SET(CPACK_GENERATOR "TGZ") SET(CPACK_SOURCE_IGNORE_FILES "\\\\.git.*" "/install_manifest\\\\.txt" "CMakeFiles/" "Makefile" "CMakeCache" "cmake_install\\\\.cmake" "CPack*" "~$" "\\\\.o$" "moc_.*" "ui_.+" "\\\\.qm$" "\\\\.cxx$" "/config\\\\.h$" "/qcomicbook$") INCLUDE(CPack) ADD_SUBDIRECTORY(i18n) ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(data) ADD_SUBDIRECTORY(help) MESSAGE("Build type: " ${CMAKE_BUILD_TYPE}) qcomicbook-0.8.2/header000644 001750 001750 00000000605 11644604742 015315 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ qcomicbook-0.8.2/i18n/qcomicbook_it_IT.ts000644 001750 001750 00000133156 11644604742 020517 0ustar00pawelpawel000000 000000 AboutDialog About Informazioni su Close Chiudi BookmarkManager QComicBook Bookmarks Segnalibri di QComicBook Name Nome Page Pagina Select all Seleziona tutto Invert selection Inverti la selezione Select invalid Selezionare non validi Clear selection Pulisci selezione Remove selected Rimuovi selezionati Close Chiudi ComicMainWindow QComicBook QComicBook &File &File &View &Visualizza &Navigation &Navigazione &Bookmarks &Segnalibri &Settings &Impostazioni &Help &Guida Toolbar Barra degli strumenti Open archive Apri un archivio Ctrl+O Ctrl+O Open directory Apri una cartella Ctrl+D Ctrl+D Open next Apri successivo Ctrl+N Ctrl+N Open previous Apri precedente Ctrl+P Ctrl+P Save page as Salva con nome Info Informazioni Alt+I Alt+I Close Chiudi Quit Esci Ctrl+Q Ctrl+Q Original size Dimensione originale Alt+O Alt+O Fit width Adatta alla larghezza Alt+W Alt+W Fit height Adatta all'altezza Alt+H Alt+H Whole page Pagina intera Alt+A Alt+A Best fit Miglior adattamento Alt+B Alt+B Rotate right Ruota a destra Rotate left Ruota a sinistra No rotation Nessuna rotazione Preserve rotation Mantieni rotazione Two pages Due pagine Ctrl+T Ctrl+T Japanese mode Modalità giapponese Ctrl+J Ctrl+J Fullscreen Schermo intero F11 F11 Next page Pagina successiva PgDown Pag Giù Previous page Pagina precedente PgUp Pag Su 5 pages forward 5 pagine avanti 5 pages backward 5 pagine indietro Go to page... Vai a pagina... First page Prima pagina Ctrl+Home Ctrl+Home Last page Ultima pagina Ctrl+End Ctrl+End Page top Cima della pagina Home Inizio Page bottom Fondo della pagina End Fine Continuous view Vista continua Print Stampa Frame view Vista a vignette Simple view Vista semplice Next Frame Vignetta successiva Previous Frame Vignetta precedente About Qt Informazioni sulle Qt About donating Come donare Continuous scrolling Scorrimento continuo Add bookmark Aggiungi segnalibro Remove bookmark Rimuovi segnalibro Manage bookmarks Gestione segnalibri Scrollbars Barre di scorrimento Statusbar Barra di stato Configure QComicBook Configurazione QComicBook System information Informazioni sul sistema About Informazioni su QComicBook Scroll right Scorri a destra Right Destra Scroll left Scorri a sinistra Left Sinistra Jump down In basso Space Spazio Jump up In alto Backspace Backspace Scroll right fast Scorri velocemente a destra Shift+Right Shift+Destra Scroll left fast Scorri velocemente a sinistra Shift+Left Shift+Sinistra Scroll up fast Scorri velocemente in alto Shift+Up Shift+Su Scroll down fast Scorri velocemente in basso Shift+Down Shift+Giù Scroll up Scorri in alto Up Su Scroll down Scorri in basso Down Giù ConfigDialog QComicBook Settings Impostazioni di QComicBook Display Visualizzazione General Generali Small mouse cursor Cursore del mouse piccolo Embed page numbers Numeri di pagina Smooth scaling Ridimensiona dolcemente Background color Colore di sfondo Info text font Carattere del testo Choose Scegliere Fullscreen mode Modalità a tutto schermo Hide menubar Nascondi barra dei menu Hide toolbar Nascondi barra degli strumenti Hide statusbar Nascondi barra di stato Performance Prestazioni Cache Cache Cache Size Dimensione della cache Mb MB Auto adjust cache size Regolazione automatica dimensione della cache Preload next page Precarica pagina successiva Thumbnails Miniature Use disk cache for thumbnails Usa cache su disco per le miniature Thumbnails aging Età massima delle miniature Misc Varie Convenience Comodità Open info dialog after opening a comicbook Mostra informazioni all'apertura di un fumetto Show splashscreen Mostra schermata di avvio Confirm exit Conferma l'uscita Temporary directory Cartella temporanea Browse Sfoglia DonationDialog Please donate QComicBook! Fai una donazione a QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Caro utente di QComicBook! </span>Se apprezzi QComicBook, potresti effettuare una piccola donazione per il proseguimento del suo sviluppo. Ho creato QComicBook nel mio tempo libero e lo distribusco gratuitamente. La tua donazione finanzierà le spese di hosting e mi stimolerà ad aggiungere nuove funzionalità e a trascorrere più tempo per il suo sviluppo! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donare è semplice - clicca semplicemente sul pulsante Flattr!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nota: Puoi accedere a quest'informazione dalla voce del menu <span style=" font-weight:600;">Aiuto / Come donare</span>.</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Caro utente di QComicBook! Se apprezzi QComicBook, potresti effettuare una piccola donazione per il proseguimento del suo sviluppo. Ho creato QComicBook nel mio tempo libero e lo distribusco gratuitamente. La tua donazione finanzierà le spese di hosting e mi stimolerà ad aggiungere nuove funzionalità e a trascorrere più tempo per il suo sviluppo! Donare è semplice - clicca semplicemente sul pulsante Flattr! Nota: Puoi accedere a quest'informazione dalla voce del menu Aiuto / Come donare. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Ricordamelo in seguito I'll donate. Don't show this dialog again Non mostrare più questo messaggio Close Chiudi GoToPageWidget Go to page... Vai a pagina... Page number Numero di pagina /0 /0 Go Vai PrintProgressDialog Printing. Please wait... In stampa. Attendere prego... Printing page: Stampando pagina: 0 Cancel Annulla QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Alcuni archivi non sono supportati a causa dell'assenza di applicazioni esterne. Installa gli eseguibili richiesti e riavvia QComicBook. Nota: se è elencato più di un eseguibile per un tipo di archivio, è sufficiente installare solamente uno di essi. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Trovata una versione libera (open source) di unrar. Questa versione può causare problemi con numerosi archivi rar. Si raccomanda di installare la versione non libera di unrar e riavviare QComicBook. QComicBook::BookmarkManager Deleting bookmarks Eliminando segnalibri Delete selected bookmarks? Eliminare segnalibri selezionati? QComicBook::ComicBookCfgDialog Choose temporary directory Scegliere cartella temporanea QComicBook::ComicBookInfo QComicBook info Informazioni su QComicBook QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened Aperti di recente Leave QComicBook? Uscire da QComicBook? Do you really want to quit QComicBook? Vuoi veramente uscire da QComicBook? no images found nessuna immagine trovata unknown archive archivio sconosciuto can't access directory impossibile accedere alla cartella file/directory not found file/cartella non trovata archive not supported archivio non supportato archive extractor exited with error l'estrattore di archivi è terminato con errore QComicBook error errore di QComicBook Error opening comicbook errore nell'apertura del fumetto Choose a directory Scegli una cartella Choose a file Scegli un file Page Pagina Removing bookmark Rimuovendo segnalibro Do you really want to remove bookmark for this comic book? Vuoi veramente rimuovere il segnalibro per questo fumetto? Save image as Salva immagine come page pagina Error saving image Errore durante il salvataggio dell'immagine Comic book not found Fumetto non trovato Selected bookmark points to non-existing comic book Do you want to remove it? Il segnalibro selezionato punta a fumetto inesistente Vuoi rimuoverlo? Can't initialize QComicBook directories Inizializzazione cartelle QComicBook fallita QComicBook::ImgDirSink bytes byte Kbytes kByte Mbytes MByte QComicBook::RecentFilesMenu Cleanup list Pulisci elenco QComicBook::StatusBar Page Pagina QComicBook::SystemInfoDialog Supported archivers Archivi supportati Archive type Tipo di archivio Supported file extensions Estensioni supportate Unsupported archivers Archivi non supportati Required executable(s) Eseguibili richiesti Hints Suggerimenti Hint Suggerimento Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Alcuni archivi non sono supportati a causa dell'assenza di applicazioni esterni. Installa gli eseguibili richiesti e riavvia QComicBook. Nota: se è elencato più di un eseguibile per un tipo di archivio, è sufficiente installare solamente uno di essi. Supported image formats Formati di immagini supportati QComicBook::ThumbnailsView Go to Vai a QComicBook::ThumbnailsWindow Thumbnails Miniature SystemInfoDialog System information Informazioni sul sistema qcomicbook-0.8.2/i18n/qcomicbook_es_ES.ts000644 001750 001750 00000134206 11644604742 020502 0ustar00pawelpawel000000 000000 AboutDialog About Acerca de Close Cerrar BookmarkManager QComicBook Bookmarks Marcadores de QComicBook Name Nombre Page Página Select all Seleccionar todo Invert selection Invertir selección Select invalid Seleccionar no válidos Clear selection Limpiar selección Remove selected Borrar seleccionados Close Cerrar ComicMainWindow QComicBook QComicBook &File &Archivo &View &Ver &Navigation &Navegación &Bookmarks &Marcadores &Settings &Preferencias &Help &Ayuda Toolbar Barra de herramientas Open archive Abrir archivo Ctrl+O Ctrl+O Open directory Abrir directorio Ctrl+D Ctrl+D Open next Abrir siguiente Ctrl+N Ctrl+N Open previous Abrir anterior Ctrl+P Ctrl+P Save page as Guardar página como Info Información Alt+I Alt+I Close Cerrar Quit Salir Ctrl+Q Ctrl+Q Original size Tamaño original Alt+O Alt+O Fit width Ajustar ancho Alt+W Alt+W Fit height Ajustar alto Alt+H Alt+H Whole page Página completa Alt+A Alt+A Best fit Mejor ajuste Alt+B Alt+B Rotate right Girar a la derecha Rotate left Girar a la izquierda No rotation Sin rotación Preserve rotation Recordar rotación Two pages Dos páginas Ctrl+T Ctrl+T Japanese mode Modo japonés Ctrl+J Ctrl+J Fullscreen Pantalla completa F11 F11 Next page Página siguiente PgDown AvPág Previous page Página anterior PgUp RePág 5 pages forward Saltar 5 páginas 5 pages backward Retroceder 5 páginas Go to page... Ir a la página... First page Primera página Ctrl+Home Ctrl+Inicio Last page Última página Ctrl+End Ctrl+Fin Page top Inicio de página Home Inicio Page bottom Final de página End Fin Continuous view Vista en modo continuo Print Imprimir Frame view Vista en modo viñeta Simple view Vista en modo simple Next Frame Siguiente viñeta Previous Frame Anterior viñeta About Qt Acerca de Qt About donating Acerca de donar Continuous scrolling Desplazamiento continuo Add bookmark Añadir marcador Remove bookmark Eliminar marcador Manage bookmarks Gestionar marcadores Scrollbars Barras de desplazamiento Statusbar Barra de estado Configure QComicBook Configurar QComicBook System information Información del sistema About Acerca de Scroll right Desplazar a la derecha Right Derecha Scroll left Desplazar a la izquierda Left Izquierda Jump down Saltar hacia abajo Space Espacio Jump up Saltar hacia arriba Backspace Retroceso Scroll right fast Desplazar a la derecha rápidamente Shift+Right Mayús+Derecha Scroll left fast Desplazar a la izquierda rápidamente Shift+Left Mayús+Izquierda Scroll up fast Desplazar hacia arriba rápidamente Shift+Up Mayús+Arriba Scroll down fast Desplazar hacia abajo rápidamente Shift+Down Mayús+Abajo Scroll up Desplazar hacia arriba Up Arriba Scroll down Desplazar hacia abajo Down Abajo ConfigDialog QComicBook Settings Preferencias de QComicBook Display Visualización General General Small mouse cursor Cursor de ratón pequeño Embed page numbers Muestra los números de página Smooth scaling Escalado con suavizado Background color Color de fondo Info text font Fuente de texto para la info Choose Elegir Fullscreen mode Modo pantalla completa Hide menubar Ocultar barra de menús Hide toolbar Ocultar barra de herramientas Hide statusbar Ocultar barra de estado Performance Rendimiento Cache Caché Cache Size Tamaño de la caché Mb Mb Auto adjust cache size Ajustar automáticamente el tamaño de la caché Preload next page Precargar la siguiente página Thumbnails Miniaturas Use disk cache for thumbnails Utilizar caché de disco para las miniaturas Thumbnails aging Edad de la miniaturas Misc Miscelánea Convenience Comodidad Open info dialog after opening a comicbook Mostrar el diálogo de información al abrir un cómic Show splashscreen Mostrar pantalla de bienvenida Confirm exit Confirmar el cierre al salir Temporary directory Directorio temporal Browse Examinar DonationDialog Please donate QComicBook! ¡Por favor haz una donación a QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">¡Estimado usuario de QComicBook! </span>Si te gusta QComicBook, por favor, considera aportar una pequeña donación para que pueda continuar su desarrollo. Trabajo en la programación de QComicBook en mi tiempo libre y lo ofrezco a la comunidad libremente. ¡Tu donación me ayudará a soportar las costas de alojamiento web y me motivará para añadir nuevas características y seguir dedicando más tiempo en su desarrollo! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donar es sencillo - ¡simplemente pincha en el bottón de Flattr que encontrarás justo debajo!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nota: Puedes acceder a esta información a través del menú <span style=" font-weight:600;">Ayuda / Acerca de donar...</span>.</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. ¡Estimado usuario de QComicBook! Si te gusta QComicBook, por favor, considera aportar una pequeña donación para que pueda continuar su desarrollo. Trabajo en la programación de QComicBook en mi tiempo libre y lo ofrezco a la comunidad libremente. ¡Tu donación me ayudará a soportar las costas de alojamiento web y me motivará para añadir nuevas características y seguir dedicando más tiempo en su desarrollo! Donar es sencillo - ¡simplemente pincha en el bottón de Flattr que encontrarás justo debajo! Nota: Puedes acceder a esta información a través del menú Ayuda / Acerca de donar... <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Recuérdamelo luego I'll donate. Don't show this dialog again Ya donaré. No muestres este diálogo de nuevo Close Cerrar GoToPageWidget Go to page... Ir a la página... Page number Número de página /0 /0 Go Ir PrintProgressDialog Printing. Please wait... Imprimiendo. Espera, por favor... Printing page: Imprimiendo página: 0 0 Cancel Cancelar QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Algunos archivos no están soportados porque algunas utilidades externas no están disponibles en el sistema. Por favor, instala los ejecutables necesarios y reinicia QComicBook. Nota: si aparece más de un ejecutable disponible en la lista para un determinado tipo de archivo, será suficiente con instalar sólo uno de ellos. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Se ha detectado la versión libre (opensource) de unrar. Esta versión tiene problemas con muchos archivos rar. Se recomienda instalar la versión no libre de unrar y reiniciar QComicBook. QComicBook::BookmarkManager Deleting bookmarks Borrando marcadores Delete selected bookmarks? ¿Borrar los marcadores seleccionados? QComicBook::ComicBookCfgDialog Choose temporary directory Elige un directorio temporal QComicBook::ComicBookInfo QComicBook info Información de QComicBook QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened Abiertos recientemente Leave QComicBook? ¿Salir de QComicBook? Do you really want to quit QComicBook? ¿Seguro que quieres salir de QComicBook? no images found no se encuentran imágenes unknown archive archivo desconocido can't access directory no puedo acceder al directorio file/directory not found archivo/directorio no encontrado archive not supported archivo no soportado archive extractor exited with error El extractor de archivos terminó con error QComicBook error Error de QComicBook Error opening comicbook Error abriendo cómic Choose a directory Elige un directorio Choose a file Elige un archivo Page Página Removing bookmark Eliminando marcador Do you really want to remove bookmark for this comic book? ¿Seguro que quieres eliminar el marcador de este cómic? Save image as Guardar imagen como page página Error saving image Error guardando imagen Comic book not found Cómic no encontrado Selected bookmark points to non-existing comic book Do you want to remove it? El marcador seleccionado apunta a un cómic que no existe. ¿Quieres eliminarlo? Can't initialize QComicBook directories No se pueden inicializar los directorios de QComicBook QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Mbytes QComicBook::RecentFilesMenu Cleanup list Limpiar lista QComicBook::StatusBar Page Página QComicBook::SystemInfoDialog Supported archivers Ejecutable/s requeridos Archivadores soportados Archive type Tipo de archivo Supported file extensions Extensiones de archivo soportadas Unsupported archivers Archivadores no soportados Required executable(s) Ejecutable/s necesarios Hints Consejos Hint Consejo Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Algunos archivos no están soportados porque no se encuentran algunas utilidades externas esenciales. Por favor, instala los ejecutables requeridos y reinicia QComicBook. Nota: si en la lista aparece más de un ejecutable para un tipo de archivo determinado, no es suficiente con instalar sólo uno de ellos. Supported image formats Formatos de imagen soportados QComicBook::ThumbnailsView Go to Ir a QComicBook::ThumbnailsWindow Thumbnails Miniaturas SystemInfoDialog System information Información del sistema qcomicbook-0.8.2/i18n/qcomicbook_pl_PL.ts000644 001750 001750 00000116225 11644604742 020513 0ustar00pawelpawel000000 000000 AboutDialog About O programie Close Zamknij BookmarkManager QComicBook Bookmarks ZakÅ‚adki QComicBook Name Nazwa Page Strona Select all Zaznacz wszystkie Invert selection Odwróć zaznaczenie Select invalid Zaznczac niepoprawne Clear selection Wyczyść zaznaczenie Remove selected UsuÅ„ Close Zamknij ComicMainWindow QComicBook &File &Plik &View &Widow &Navigation &Nawigacja &Bookmarks &ZakÅ‚adki &Settings &Ustawienia &Help &Pomoc Toolbar Pasek narzÄ™dzi Open archive Otwórz archiwum Ctrl+O Open directory Otwórz katalog Ctrl+D Open next Otwórz nastÄ™pny Ctrl+N Open previous Otwórz poprzedni Ctrl+P Save page as Zapisz stronÄ™ jako Info Informacje Alt+I Close Zamknij Quit WyjÅ›cie Ctrl+Q Original size Oryginalny rozmiar Alt+O Fit width Dopasuj do szerokoÅ›ci Alt+W Fit height Doapsuj do wysokoÅ›ci Alt+H Whole page CaÅ‚a strona Alt+A Best fit Najlepsze dopasowanie Alt+B Rotate right Obróc w prawo Rotate left Obróć w lewo No rotation Bez obrotu Preserve rotation Zachowaj obrót Two pages Dwie strony Ctrl+T Japanese mode Tryb manga Ctrl+J Fullscreen PeÅ‚en ekran F11 Next page NastÄ™pna strona PgDown Previous page Poprzednia strona PgUp 5 pages forward 5 stron naprzód 5 pages backward 5 stron wstecz Go to page... Przejdź do strony... First page Pierwsza strona Ctrl+Home Last page Ostatnia strona Ctrl+End Page top Góra strony Home Page bottom Dół strony End Continuous view Widok ciÄ…gÅ‚y Print Drukuj Frame view Widok ramki Simple view Widok prosty Next Frame NastÄ™pna ramka Previous Frame Poprzednia ramka About Qt Informacje o Qt About donating Informacje o dotacjach Continuous scrolling CiÄ…gÅ‚e przesuwanie Add bookmark Dodaj zakÅ‚adkÄ™ Remove bookmark UsuÅ„ zakÅ‚adkÄ™ Manage bookmarks ZarzÄ…dzaj zakÅ‚adkami Scrollbars Paski przewijania Statusbar Pasek statusu Configure QComicBook Konfiguracja QComicBook System information Informacja o systemie About O programie Scroll right PrzewiÅ„ w prawo Right Scroll left PrzewiÅ„ w lewo Left Jump down Skocz w dół Space Jump up Skocz w górÄ™ Backspace Scroll right fast PrzewiÅ„ szybko w prawo Shift+Right Scroll left fast PrzewiÅ„ szybko w lewo Shift+Left Scroll up fast PrzewiÅ„ szybko w górÄ™ Shift+Up Scroll down fast PrzewiÅ„ szybko w dół Shift+Down Scroll up PrzewiÅ„ w górÄ™ Up Scroll down PrzewiÅ„ w dół Down ConfigDialog QComicBook Settings Ustawienia QComicBook Display WyÅ›wietlanie General Ogólne Small mouse cursor MaÅ‚y kursor Embed page numbers Osadź numer strony w obrazie Smooth scaling PÅ‚ynne skalowanie Background color Kolor tÅ‚a Info text font Czcionka w oknie informacyjnym Choose Wybierz Fullscreen mode Tryb perÅ‚noerkanowy Hide menubar Ukryj pasek menu Hide toolbar Ukryj pasek narzÄ™dzi Hide statusbar Ukryj pasek statusu Performance Wydajność Cache Pamięć podrÄ™czna Cache Size Rozmiar pamiÄ™ci podrÄ™cznej Mb Auto adjust cache size Automatycznie dostosuj wielkość pamiÄ™ci podrÄ™cznej Preload next page Åaduj kolejnÄ… stronÄ™ w tle Thumbnails Miniaturki Use disk cache for thumbnails Zapisuj miniaturki stron na dysku Thumbnails aging Usuwanie starych miniaturek Misc Różne Convenience UÅ‚atwienia Open info dialog after opening a comicbook Pokaż okno informacyjne po otwarciu komiksu Show splashscreen Pokaż ekran powitalny Confirm exit Potwierdź wyjÅ›cie z programu Temporary directory Katalog tymczasowy Browse PrzeglÄ…daj DonationDialog Please donate QComicBook! Wesprzyj QComicBook! Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Drogi użytkowniku programu QComicBook! JeÅ›li lubisz QComicBook, rozważ niewielkÄ… dotacjÄ™ na jego dalszy rozwój. TworzÄ™ QComicBook w wolnym czasie i udostÄ™pniam go za darmo. Twoja dotacja pokryje koszty utrzymywania strony internetowej i zachÄ™ci mnie do dodawania nowych funkcji oraz poÅ›wiÄ™cenia wiÄ™kszej iloÅ›ci czasu na rozwój programu! Dotacja jest bardzo prosta - wystarczy kliknąć przycisk Flattr poniżej! Uwaga: te informacje sÄ… w menu Pomoc / Informacje o dotacjach. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Przypomnij mi później I'll donate. Don't show this dialog again Przekażę dotacjÄ™. Nie pokazuj wiÄ™cej tego okna Close Zamknij GoToPageWidget Go to page... Przejdź do strony... Page number Numer strony /0 Go Idź PrintProgressDialog Printing. Please wait... Drukowanie w toku. ProszÄ™ czekać... Printing page: Drukowanie strony: 0 Cancel Anuluj QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Niektóre archiwa nie sÄ… obsÅ‚ugiwane, ponieważ nie odnaleziono wymaganych programów zewnÄ™trznych. Zainstaluj wymagane programy i uruchom QComicBook ponownie. Uwaga: jeÅ›li dla okreÅ›lonego typu archiwów wymienionych jest wiÄ™cej wymaganych programów, wystarczajÄ…ce jest zainstalowanie jednego z nich. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Wykryto darmowÄ… (otwartÄ…) wersjÄ™ programu unrar. Ta wersja ma problemy z obsÅ‚ugÄ… wielu archiwów rar. Zaleca siÄ™ instalacjÄ™ zamkniÄ™tej wersji programu unrar i ponowne uruchomienie QComicBook. QComicBook::BookmarkManager Deleting bookmarks Usuwanie zakÅ‚adek Delete selected bookmarks? Usunąć wskazane zakÅ‚adki? QComicBook::ComicBookCfgDialog Choose temporary directory Wybierz katalog tymczasowy QComicBook::ComicBookInfo QComicBook info Informacje QComicBook QComicBook::ComicMainWindow Escape Alt+t Recently opened Ostatnio otwierane Leave QComicBook? OpuÅ›cić QComicBook? Do you really want to quit QComicBook? Czy na pewno chcesz opuÅ›cić QComicBook? no images found nie znaleziono obrazków unknown archive nieznany typ archiwum can't access directory brak dostÄ™pu do katalogu file/directory not found nie odnaleziono pliku lub katalogu archive not supported nieobsÅ‚ugiwany typ archiwum archive extractor exited with error program archiwizujÄ…cy zakoÅ„czyÅ‚ pracÄ™ z błędem QComicBook error Błąd QComicBook Error opening comicbook Błąd podczas otwierania komiksu Choose a directory Wybierz katalog Choose a file Wybierz plik Page Strona Removing bookmark Usuwanie zakÅ‚adki Do you really want to remove bookmark for this comic book? Czy na pewno chcesz usunąć zakÅ‚adkÄ™ dla bieżącego komiksu? Save image as Zapisza obrazek jako page strona Error saving image Błąd podczas zapisywania obrazka Comic book not found Nie odnaleziono komiksu Selected bookmark points to non-existing comic book Do you want to remove it? Wybrano zakÅ‚adkÄ™ do komiksu, który nie jest dostÄ™pny. Usunąć zakÅ‚adkÄ™? Can't initialize QComicBook directories Problem z inicjalizacjÄ… katalogów QComicBook QComicBook::ImgDirSink bytes Kbytes Mbytes QComicBook::RecentFilesMenu Cleanup list Wyczyść listÄ™ QComicBook::StatusBar Page Strona QComicBook::SystemInfoDialog Supported archivers ObsÅ‚ugiwane archiwa Archive type Typ archiwum Supported file extensions ObsÅ‚ugiwane rozszerzenia plików Unsupported archivers NieobsÅ‚ugiwane archiwa Required executable(s) Wymagane programy Hints Wskazówki Hint Wskazówka Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Niektóre archiwa nie sÄ… obsÅ‚ugiwane, ponieważ nie odnaleziono wymaganych programów zewnÄ™trznych. Zainstaluj wymagane programy i uruchom QComicBook ponownie. Uwaga: jeÅ›li dla okreÅ›lonego typu archiwów wymienionych jest wiÄ™cej wymaganych programów, wystarczajÄ…ce jest zainstalowanie jednego z nich. Supported image formats ObsÅ‚ugiwane formaty obrazów QComicBook::ThumbnailsView Go to Przejdź QComicBook::ThumbnailsWindow Thumbnails Miniaturki SystemInfoDialog System information Informacje o systemie qcomicbook-0.8.2/i18n/qcomicbook_ko_KR.ts000644 001750 001750 00000134044 11644604742 020511 0ustar00pawelpawel000000 000000 AboutDialog About QComicbook ì •ë³´ Close 닫기 BookmarkManager QComicBook Bookmarks QComicBook ë¶ë§ˆí¬ Name ì´ë¦„ Page 페ì´ì§€ Select all ì „ì²´ ì„ íƒ Invert selection ì„ íƒ ë°˜ì „ Select invalid ìž˜ëª»ëœ ê²ƒ ì„ íƒ Clear selection ì„ íƒ ì§€ìš°ê¸° Remove selected ì„ íƒëœ 것 제거하기 Close 닫기 ComicMainWindow QComicBook &File 파ì¼(&F) &View 보기(&V) &Navigation íƒìƒ‰(&N) &Bookmarks ë¶ë§ˆí¬(&B) &Settings 설정(&S) &Help ë„움ë§(&H) Toolbar ë„구ìƒìž Open archive ì••ì¶•íŒŒì¼ ì—´ê¸° Ctrl+O Open directory í´ë” 열기 Ctrl+D Open next ë‹¤ìŒ ì—´ê¸° Ctrl+N Open previous ì´ì „ 열기 Ctrl+P Save page as ë‹¤ìŒ ì´ë¦„으로 페ì´ì§€ 저장 Info ì •ë³´ Alt+I Close 닫기 Quit 종료 Ctrl+Q Original size 기본 í¬ê¸° Alt+O Fit width 너비 맞추기 Alt+W Fit height ë†’ì´ ë§žì¶”ê¸° Alt+H Whole page ì „ì²´ 페ì´ì§€ Alt+A Best fit 최ì ìœ¼ë¡œ 맞추기 Alt+B Rotate right 오른쪽 회전 Rotate left 왼쪽 회전 No rotation 회전 ì—†ìŒ Preserve rotation 회전 방지하기 Two pages 2 페ì´ì§€ 나누기 Ctrl+T Japanese mode ì¼ë³¸ì–´ 모드 Ctrl+J Fullscreen 전체화면 F11 Next page ë‹¤ìŒ íŽ˜ì´ì§€ PgDown 페ì´ì§€ 아래로 Previous page ì´ì „ 페ì´ì§€ PgUp 페ì´ì§€ 위로 5 pages forward 5 페ì´ì§€ 앞으로 5 pages backward 5 페ì´ì§€ 뒤로 Go to page... ë‹¤ìŒ íŽ˜ì´ì§€ë¡œ... First page 첫번째 페ì´ì§€ Ctrl+Home Last page 마지막 페ì´ì§€ Ctrl+End Page top 페ì´ì§€ 위로 Home Page bottom 페ì´ì§€ 아래로 End Continuous view ì—°ì†ìœ¼ë¡œ 보기 Print 출력 Frame view 프레임 보기 Simple view 간단히 보기 Next Frame ë‹¤ìŒ í”„ë ˆìž„ Previous Frame ì´ì „ 프레임 About Qt Qt ì •ë³´ About donating 기부 ì •ë³´ Continuous scrolling ì—°ì†ì ì¸ 스í¬ë¡¤ Add bookmark ë¶ë§ˆí¬ 추가하기 Remove bookmark ë¶ë§ˆí¬ 제거하기 Manage bookmarks ë¶ë§ˆí¬ 관리하기 Scrollbars 스í¬ë¡¤ë°” Statusbar ìƒíƒœí‘œì‹œì¤„ Configure QComicBook QComicBook 설정 System information 시스템 ì •ë³´ About QComicbook ì •ë³´ Scroll right 오른쪽으로 스í¬ë¡¤ Right 오른쪽 Scroll left 왼쪽으로 스í¬ë¡¤ Left 왼쪽 Jump down 아래로 ì í”„ Space 공백 Jump up 위로 ì í”„ Backspace Scroll right fast 오른쪽으로 빠른 스í¬ë¡¤ Shift+Right Scroll left fast 왼쪽으로 빠른 스í¬ë¡¤ Shift+Left Scroll up fast 위로 빠른 스í¬ë¡¤ Shift+Up Scroll down fast 아래로 빠른 스í¬ë¡¤ Shift+Down Scroll up 위로 스í¬ë¡¤ Up 위 Scroll down 아래로 스í¬ë¡¤ Down 아래 ConfigDialog QComicBook Settings QcomicBook 설정 Display 화면 General ì¼ë°˜ Small mouse cursor ìž‘ì€ ë§ˆìš°ìŠ¤ 커서 Embed page numbers 페ì´ì§€ ìˆ«ìž ë¼ì›Œë„£ê¸° Smooth scaling 부드러운 í¬ê¸° ì¡°ì • Background color 배경색 Info text font ì •ë³´ í…스트 글꼴 Choose ì„ íƒ Fullscreen mode 전체화면 모드 Hide menubar 메뉴표시줄 숨기기 Hide toolbar ë„구ìƒìž 숨기기 Hide statusbar ìƒíƒœí‘œì‹œì¤„ 숨기기 Performance 성능 Cache ìºì‹œ Cache Size ìºì‹œ í¬ê¸° Mb Auto adjust cache size ìºì‹œ í¬ê¸° ìžë™ìœ¼ë¡œ 조절하기 Preload next page ë‹¤ìŒ íŽ˜ì´ì§€ 미리 불러오기 Thumbnails 미리보기 Use disk cache for thumbnails ë¯¸ë¦¬ë³´ê¸°ì— ë””ìŠ¤í¬ ìºì‹œ 사용하기 Thumbnails aging 미리보기 저장 기간 Misc 기타 Convenience íŽ¸ì˜ ê¸°ëŠ¥ Open info dialog after opening a comicbook ë§Œí™”ì±…ì„ ì—´ì€ í›„ì— ì •ë³´ 대화ìƒìž 열기 Show splashscreen 초기화면 보여주기 Confirm exit 종료 확ì¸í•˜ê¸° Temporary directory 임시 í´ë” Browse 찾아보기 DonationDialog Please donate QComicBook! QComicBookì— ê¸°ë¶€í•˜ì„¸ìš”! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">QComicBook 사용ìžë‹˜! </span>QComicbookì„ ì¢‹ì•„í•œë‹¤ë©´, ê·¸ê²ƒì˜ ê³„ì†ì ì¸ ê°œë°œì„ ìœ„í•´ ìž‘ì€ ê¸°ë¶€ë¥¼ 고려해주세요. 저는 QComicbookì„ ì €ì˜ ì—¬ê°€ ì‹œê°„ì— ê°œë°œí•˜ê³  ê·¸ê²ƒì„ ë¬´ë£Œë¡œ 주고 있습니다. ë‹¹ì‹ ì˜ ê¸°ë¶€ëŠ” 웹 호스팅 ë¹„ìš©ì„ ì œê³µí•  것ì´ë©° 제가 새로운 ê¸°ëŠ¥ì„ ì¶”ê°€í•˜ë„ë¡ ê²©ë ¤í•˜ê³  ê·¸ê²ƒì˜ ê°œë°œì— ë” ë§Žì€ ì‹œê°„ì„ ë³´ë‚´ë„ë¡ í•  것입니다! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">기부는 쉽습니다. - 단지 아래 Flattr ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">참고: ë‹¹ì‹ ì€ <span style=" font-weight:600;">ë„ì›€ë§ / 기부 ì •ë³´</span> 메뉴 í•­ëª©ì„ í†µí•´ ì´ ì •ë³´ì— ì ‘ê·¼í•  수 있습니다.</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. QComicBook 사용ìžë‹˜! QComicbookì„ ì¢‹ì•„í•œë‹¤ë©´, ê·¸ê²ƒì˜ ê³„ì†ì ì¸ ê°œë°œì„ ìœ„í•´ ìž‘ì€ ê¸°ë¶€ë¥¼ 고려해주세요. 저는 QComicbookì„ ì €ì˜ ì—¬ê°€ ì‹œê°„ì— ê°œë°œí•˜ê³  ê·¸ê²ƒì„ ë¬´ë£Œë¡œ 주고 있습니다. ë‹¹ì‹ ì˜ ê¸°ë¶€ëŠ” 웹 호스팅 ë¹„ìš©ì„ ì œê³µí•  것ì´ë©° 제가 새로운 ê¸°ëŠ¥ì„ ì¶”ê°€í•˜ë„ë¡ ê²©ë ¤í•˜ê³  ê·¸ê²ƒì˜ ê°œë°œì— ë” ë§Žì€ ì‹œê°„ì„ ë³´ë‚´ë„ë¡ í•  것입니다! 기부는 쉽습니다. - 단지 아래 Flattr ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”! 참고: ë‹¹ì‹ ì€ ë„ì›€ë§ / 기부 ì •ë³´ 메뉴 í•­ëª©ì„ í†µí•´ ì´ ì •ë³´ì— ì ‘ê·¼í•  수 있습니다. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later 다ìŒì— 알려주기 I'll donate. Don't show this dialog again 기부할 것입니다. ì´ ì°½ì„ ë‹¤ì‹œ ë³´ì§€ 않기 Close 닫기 GoToPageWidget Go to page... ë‹¤ìŒ íŽ˜ì´ì§€ë¡œ... Page number 페ì´ì§€ ìˆ«ìž /0 Go ì´ë™ PrintProgressDialog Printing. Please wait... 출력 중. 기다려주세요... Printing page: 출력하는 페ì´ì§€: 0 Cancel 취소 QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. 필수ì ì¸ 외부 유틸리티가 없기 ë•Œë¬¸ì— ì¼ë¶€ 압축파ì¼ì€ ì§€ì›í•˜ì§€ 않습니다. 필요한 실행파ì¼ì„ 설치하고 QComicBookì„ ìž¬ì‹œìž‘í•˜ì„¸ìš”. 참고: 만약 주어진 ì••ì¶•íŒŒì¼ í˜•ì‹ì„ 위해 한 ê°œ ì´ìƒì˜ 실행파ì¼ì´ 나타났다면, 단지 그것들 중 한 개만 ì„¤ì¹˜í•´ë„ ì¶©ë¶„í•©ë‹ˆë‹¤. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. unrarì˜ ë¬´ë£Œ (오픈 소스) ë²„ì „ì´ í™•ì¸ë˜ì—ˆìŠµë‹ˆë‹¤. ì´ ë²„ì „ì€ ë§Žì€ rar 압축파ì¼ì—서 문제가 있습니다. 비ìžìœ (non free) unrarì„ ì„¤ì¹˜í•˜ê³  QComicbookì„ ìž¬ì‹œìž‘ 하기를 권장합니다. QComicBook::BookmarkManager Deleting bookmarks ë¶ë§ˆí¬ 삭제하기 Delete selected bookmarks? ì„ íƒëœ ë¶ë§ˆí¬ë¥¼ 삭제하시겠습니까? QComicBook::ComicBookCfgDialog Choose temporary directory 임시 í´ë” ì„ íƒí•˜ê¸° QComicBook::ComicBookInfo QComicBook info QComicBook ì •ë³´ QComicBook::ComicMainWindow Escape Alt+t Recently opened ìµœê·¼ì— ì—° íŒŒì¼ Leave QComicBook? QComicBookì„ ë– ë‚˜ì‹œê² ìŠµë‹ˆê¹Œ? Do you really want to quit QComicBook? QComicbookì„ ì •ë§ë¡œ 종료하시겠습니까? no images found ê·¸ë¦¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ unknown archive 알려지지 ì•Šì€ ì••ì¶•íŒŒì¼ can't access directory í´ë”ì— ì ‘ê·¼í•  수 ì—†ìŒ file/directory not found 파ì¼/í´ë”를 ì°¾ì„ ìˆ˜ ì—†ìŒ archive not supported ì§€ì›í•˜ì§€ 않는 ì••ì¶•íŒŒì¼ archive extractor exited with error ì••ì¶•íŒŒì¼ ì¶”ì¶œê¸°ê°€ 오류로 종료 QComicBook error QComicBook 오류 Error opening comicbook ë§Œí™”ì±…ì„ ì—¬ëŠ” ì¤‘ì— ì˜¤ë¥˜ ë°œìƒ Choose a directory í´ë” ì„ íƒí•˜ê¸° Choose a file íŒŒì¼ ì„ íƒí•˜ê¸° Page 페ì´ì§€ Removing bookmark ë¶ë§ˆí¬ 제거하기 Do you really want to remove bookmark for this comic book? ì´ ë§Œí™”ì±…ì˜ ë¶ë§ˆí¬ë¥¼ ì •ë§ë¡œ 제거하시겠습니까? Save image as 다ìŒìœ¼ë¡œ 그림 저장 page 페ì´ì§€ Error saving image ê·¸ë¦¼ì„ ì €ìž¥í•˜ëŠ” ì¤‘ì— ì˜¤ë¥˜ ë°œìƒ Comic book not found ë§Œí™”ì±…ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ Selected bookmark points to non-existing comic book Do you want to remove it? ì„ íƒëœ ë¶ë§ˆí¬ê°€ 존재하지 않는 ë§Œí™”ì±…ì„ ê°€ë¦¬í‚¤ê³  있습니다. ê·¸ê²ƒì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ? Can't initialize QComicBook directories QComicBook í´ë”를 초기화할 수 ì—†ìŒ QComicBook::ImgDirSink bytes Kbytes Mbytes QComicBook::RecentFilesMenu Cleanup list ëª©ë¡ ì§€ìš°ê¸° QComicBook::StatusBar Page 페ì´ì§€ QComicBook::SystemInfoDialog Supported archivers ì§€ì›í•˜ëŠ” ì••ì¶•íŒŒì¼ Archive type ì••ì¶•íŒŒì¼ í˜•ì‹ Supported file extensions ì§€ì›í•˜ëŠ” íŒŒì¼ í™•ìž¥ìž Unsupported archivers ì§€ì›í•˜ì§€ 않는 ì••ì¶•íŒŒì¼ Required executable(s) 필요한 ì‹¤í–‰íŒŒì¼ Hints 힌트 Hint 힌트 Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. 필수ì ì¸ 유틸리티가 없기 ë•Œë¬¸ì— ì¼ë¶€ 압축파ì¼ì€ ì§€ì›í•˜ì§€ 않습니다. 필요한 실행파ì¼ì„ 설치하고 QComicBookì„ ìž¬ì‹œìž‘í•˜ì„¸ìš”. 참고: 만약 주어진 ì••ì¶•íŒŒì¼ í˜•ì‹ì„ 위해 한 ê°œ ì´ìƒì˜ 실행파ì¼ì´ 나타났다면, 단지 그것들 중 한 개만 ì„¤ì¹˜í•´ë„ ì¶©ë¶„í•©ë‹ˆë‹¤. Supported image formats ì§€ì›í•˜ëŠ” 그림 í¬ë§· QComicBook::ThumbnailsView Go to 다ìŒìœ¼ë¡œ ì´ë™ QComicBook::ThumbnailsWindow Thumbnails 미리보기 SystemInfoDialog System information 시스템 ì •ë³´ qcomicbook-0.8.2/i18n/qcomicbook_pt_BR.ts000644 001750 001750 00000133264 11644604742 020515 0ustar00pawelpawel000000 000000 AboutDialog About Sobre Close Fechar BookmarkManager QComicBook Bookmarks Marcadores QComicBook Name Nome Page Página Select all Selecionar tudo Invert selection Inverter seleção Select invalid Seleção inválida Clear selection Limpar seleção Remove selected Remover selecionado Close Fechar ComicMainWindow QComicBook QComicBook &File &Arquivo &View &Exibir &Navigation &Navegação &Bookmarks &Marcadores &Settings &Configurações &Help A&juda Toolbar Barra de ferramentas Open archive Abrir arquivo Ctrl+O Ctrl+O Open directory Abrir diretório Ctrl+D Ctrl+D Open next Abrir próximo Ctrl+N Ctrl+N Open previous Abrir anterior Ctrl+P Ctrl+P Save page as Salvar página como Info Informações Alt+I Alt+I Close Fechar Quit Sair Ctrl+Q Ctrl+Q Original size Tamanho original Alt+O Alt+O Fit width Ajustar largura Alt+W Alt+W Fit height Ajustar altura Alt+H Alt+H Whole page Página inteira Alt+A Alt+A Best fit Melhor ajuste Alt+B Alt+B Rotate right Girar para a direita Rotate left Girar para a esquerda No rotation Sem rotação Preserve rotation Preservar rotação Two pages Duas páginas Ctrl+T Ctrl+T Japanese mode Modo japonês Ctrl+J Ctrl+J Fullscreen Tela cheia F11 F11 Next page Próxima página PgDown PgDown Previous page Página anterior PgUp PgUp 5 pages forward 5 páginas para frente 5 pages backward 5 páginas para trás Go to page... Ir para a página... First page Primeira página Ctrl+Home Ctrl+Home Last page Última página Ctrl+End Ctrl+End Page top Topo da página Home Início Page bottom Fim da página End Fim Continuous view Visualização contínua Print Imprimir Frame view Visualizar quadro Simple view Visualização simples Next Frame Próximo Quadro Previous Frame Quadro Anterior About Qt Sobre o QT About donating Sobre a doação Continuous scrolling Rolagem contínua Add bookmark Adicionar marcador Remove bookmark Remover marcador Manage bookmarks Gerenciar marcadores Scrollbars Barras de rolagem Statusbar Barra de status Configure QComicBook Configurar QComicBook System information Informações do sistema About Sobre Scroll right Vá para a direita Right Seta direita Scroll left Vá para a esquerda Left Seta esquerda Jump down Saltar para baixo Space Barra de espaço Jump up Saltar para cima Backspace Backspace Scroll right fast Vá para direita rápido Shift+Right Shift+Seta para direita Scroll left fast Vá para esquerda rápido Shift+Left Shift+Seta para esquerda Scroll up fast Vá para cima rápido Shift+Up Shift+Seta para cima Scroll down fast Vá para baixo rápido Shift+Down Shift+Seta para baixo Scroll up Rolar para cima Up Seta para cima Scroll down Rolar para baixo Down Seta para baixo ConfigDialog QComicBook Settings Configurações do QComicBook Display Mostrar General Geral Small mouse cursor Cursor do mouse pequeno Embed page numbers Embutir números de página Smooth scaling Dimensionamento suave Background color Cor de fundo Info text font Informações da fonte do texto Choose Escolher Fullscreen mode Modo tela cheia Hide menubar Ocultar barra de menu Hide toolbar Ocultar barra de ferramentas Hide statusbar Ocultar barra de status Performance Executar Cache Cache Cache Size Tamanho do cache Mb Mb Auto adjust cache size Ajustar automaticamente tamando do cache Preload next page Pré-carregar próxima página Thumbnails Miniaturas Use disk cache for thumbnails Utilizar cache de disco para as miniaturas Thumbnails aging Envelhecimentos das miniaturas Misc Miscelânea Convenience Conveniência Open info dialog after opening a comicbook Abrir o diálogo de informações após a abertura de um gibi Show splashscreen Mostrar tela inicial Confirm exit Confirmar saída Temporary directory Diretório temporário Browse Navegar DonationDialog Please donate QComicBook! Por favor, doe ao QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Caro usuário QComicBook! </span>Se você gosta do QComicBook, por favor considere uma pequena doação para o seu desenvolvimento continuado. Eu desenvolvo QComicBook no meu tempo livre e forneço-o gratuitamente. Sua doação irá financiar despesas de hospedagem web e irá me incentivar a adicionar novos recursos e gastar ainda mais tempo no seu desenvolvimento!</p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Doar é fácil - basta clicar no botão Flattr abaixo!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: Você pode acessar esta informação via menu <span style=" font-weight:600;">Ajuda / Sobre a doação</span>.</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Caro usuário QComicBook! Se você gosta do QComicBook, por favor considere uma pequena doação para o seu desenvolvimento continuado. Eu desenvolvo QComicBook no meu tempo livre e forneço-o gratuitamente. Sua doação irá financiar despesas de hospedagem web e irá me incentivar a adicionar novos recursos e gastar ainda mais tempo no seu desenvolvimento! Doar é fácil - basta clicar no botão Flattr abaixo! Note: Você pode acessar esta informação via menu Ajuda / Sobre a doação. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Lembrar mais tarde I'll donate. Don't show this dialog again Eu irei doar. Não exibir este diálogo novamente Close Fechar GoToPageWidget Go to page... Ir para a página... Page number Número da página /0 /0 Go Ir PrintProgressDialog Printing. Please wait... Imprimindo. Por favor, aguarde... Printing page: Imprimindo página: 0 0 Cancel Cancelar QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Alguns arquivos não são suportadas porque os utilitários externos essenciais estão ausentes. Por favor, instale os executáveis necessários e reinicie QComicBook. Nota: se mais de um executável for listado para o tipo de arquivo dado, então basta instalar apenas um deles. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. A versão livre (opensource) do unrar foi detectado. Esta versão tem problemas com muitos arquivos rar. É recomendável instalar o unrar não-livre e reiniciar QComicBook. QComicBook::BookmarkManager Deleting bookmarks Excluindo marcadores Delete selected bookmarks? Excluir marcadores selecionados? QComicBook::ComicBookCfgDialog Choose temporary directory Escolher diretório temporário QComicBook::ComicBookInfo QComicBook info Informações do QComicBook QComicBook::ComicMainWindow Escape Barra de espaço Alt+t Alt+t Recently opened Aberto recentemente Leave QComicBook? Deixar QComicBook? Do you really want to quit QComicBook? Você realmente deseja sair do QComicBook? no images found nenhuma imagem encontrada unknown archive arquivo desconhecido can't access directory não foi possível acessar diretório file/directory not found arquivo/diretório não encontrado archive not supported arquivo não suportado archive extractor exited with error arquivo extraído saiu com erro QComicBook error Erro no QComicBook Error opening comicbook Erro ao abrir gibi Choose a directory Escolher um diretório Choose a file Escolher um arquivo Page Página Removing bookmark Removendo marcador Do you really want to remove bookmark for this comic book? Você realmente deseja remover marcador para esse gibi? Save image as Salvar imagem como page página Error saving image Erro ao salvar imagem Comic book not found Gibi não encontrado Selected bookmark points to non-existing comic book Do you want to remove it? Selecionados pontos marcados não existentes no gibi Você deseja removê-los? Can't initialize QComicBook directories Não foi possível inicializar os diretórios QComicBook QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Mbytes QComicBook::RecentFilesMenu Cleanup list Limpeza da lista QComicBook::StatusBar Page Página QComicBook::SystemInfoDialog Supported archivers Arquivos suportados Archive type Tipo de arquivo Supported file extensions Extensões de arquivo suportados Unsupported archivers Arquivos não suportados Required executable(s) Executável(is) requerido Hints Dicas Hint Sugestão Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Alguns arquivos não são suportadas porque os utilitários externos essenciais estão ausentes. Por favor, instale os executáveis necessários e reinicie o QComicBook. Nota: se mais de um executável for listado para determinado tipo de arquivo, então basta instalar apenas um deles. Supported image formats Formatos de imagem suportados QComicBook::ThumbnailsView Go to Ir para QComicBook::ThumbnailsWindow Thumbnails Miniaturas SystemInfoDialog System information Informações do sistema qcomicbook-0.8.2/i18n/qcomicbook_fr_FR.ts000755 001750 001750 00000117010 11644604742 020477 0ustar00pawelpawel000000 000000 AboutDialog About À propos Close Fermer BookmarkManager QComicBook Bookmarks Signets QComicBook Name Nom Page Page Select all Tout sélectionner Invert selection Inverser la sélection Select invalid Signets invalides Clear selection Annuler la sélection Remove selected Supprimer Close Fermer Deleting bookmarks Suppression de signet Delete selected bookmarks? Supprimer le(s) signet(s) Sélectionné(s) ? ComicBookCfgDialog Choose temporary directory Sélectionner le dossier temporaire ComicBookInfo QComicBook info Info QComicBook ComicMainWindow QComicBook QComicBook &File &Fichier &View &Affichage &Navigation &Navigation &Bookmarks &Signets &Settings &Outils &Help &Aide Toolbar Barre d'outils Open archive Ouvrir une archive Ctrl+O Ctrl+O Open directory Ouvrir un dossier Ctrl+D Ctrl+D Open next Ouvrir suivant Ctrl+N Ctrl+N Open previous Ouvrir précedent Ctrl+P Ctrl+P Save page as Enregistrer la page sous Info Info Alt+I Alt+I Close Fermer Quit Quitter Ctrl+Q Ctrl+Q Original size Taille originale Alt+O Alt+O Fit width Ajuster à la largeur Alt+W Alt+W Fit height Ajuster à la hauteur Alt+H Alt+H Whole page Page complète Alt+A Alt+A Best fit Ajustement automatique Alt+B Alt+B Rotate right Pivoter à droite Rotate left Pivoter à gauche No rotation Normal Preserve rotation Conserver la rotation Two pages Pages doubles Ctrl+T Ctrl+T Japanese mode Mode manga Ctrl+J Ctrl+J Fullscreen Plein écran F11 F11 Next page Prochaine page PgDown PgDown Previous page Page précedente PgUp PgUp 5 pages forward Avancer de 5 pages 5 pages backward Reculer de 5 pages Go to page... Aller à la page... First page Première page Ctrl+Home Ctrl+Home Last page Dernière page Ctrl+End Ctrl+End Page top Haut de la page Home Home Page bottom Bas de la page End End Continuous scrolling Défilement continu Add bookmark Ajouter un signet Remove bookmark Supprimer le signet Manage bookmarks Gérer les signets Scrollbars Barres de défilement Statusbar Barre de statut Configure QComicBook Configurer QComicBook System information Information système About À propos Scroll right Droite Right Right Scroll left Gauche Left Left Jump down Bas Space Space Jump up Haut Backspace Backspace Scroll right fast Droite (Rapide) Shift+Right Shift+Right Scroll left fast Gauche (Rapide) Shift+Left Shift+Left Scroll up fast Haut (Rapide) Shift+Up Shift+Up Scroll down fast Bas (Rapide) Shift+Down Shift+Down Scroll up Haut Up Up Scroll down Bas Down Down Escape Sortie Alt+t Alt+t Recently opened Récent Leave QComicBook? Quitter QComicBook? Do you really want to quit QComicBook? Voulez-vous vraiment quitter QComicBook? no images found Aucune image trouvée unknown archive Format d'archive inconnu can't access directory Impossible d'accèder au dossier file/directory not found Fichier/Dossier introuvable archive not supported Archive non prise en charge archive extractor exited with error L'extracteur d'archive a retourné une erreur QComicBook error Erreur - QComicBook Error opening comicbook Erreur à l'ouverture Choose a directory Sélectionner un dossier Choose a file Sélectionner un fichier Page Page Removing bookmark Supprimer un signet Do you really want to remove bookmark for this comic book? Voulez-vous vraiment supprimer le signet pour ce livre ? Save image as Enregistrer l'image sous page page Error saving image Erreur lors de la sauvegarde de l'image Comic book not found Archive introuvable Selected bookmark points to non-existing comic book Do you want to remove it? L'emplacement du signet n'existe pas/plus. Voulez-vous le supprimer ? Continuous view Mode en continu Print Imprimer Frame view Mode Case par case Simple view Mode normal Next Frame Case suivante Previous Frame Case prédedente About Qt À propos de Qt About donating À propos - Contribution Can't initialize QComicBook directories Impossible d'initialiser les répertoires utilisés par QComicBook ConfigDialog QComicBook Settings Configuration QComicBook Display Affichage General Général Small mouse cursor Curseur de souris discret Embed page numbers Afficher le numéro de page Smooth scaling Mise à l'échelle adoucie Background color Couleur d'arrière-plan Info text font Police Choose Sélectionner Fullscreen mode Mode plein-écran Hide menubar Cacher la barre de menu Hide toolbar Cacher la barre d'outils Hide statusbar Cacher la barre de statut Performance Performance Cache Cache Cache Size Taille du cache Mb Mb Auto adjust cache size Ajuster la taille du cache automatiquement Preload next page Précharger la page suivante Thumbnails Vignettes Use disk cache for thumbnails Utiliser le cache pour les vignettes Thumbnails aging Conserver les vignettes Misc Divers Convenience Info / Divers Open info dialog after opening a comicbook Ouvrir les infos à l'ouverture Show splashscreen Afficher l'écran de démarrage Confirm exit Confirmer la fermeture Temporary directory Dossier temporaire Browse Parcourir DonationDialog Please donate QComicBook! SVP contribuer à QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Cher utilisateur de QComicBookv! </span>Si vous aimez QComicBook, pensez à apporter votre contribution au développement de ce projet. QComicBook est developpé dans mes temps libre, et il est distribué gratuitement !. Votre don servira à payer l'hébergement web sera un encouragement pour continuer à ajouter de nouvelles fonctionnalité et passer encore plus de temps sur son développement ! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Contribuer est facile - vous n'avez qu'à cliquer sur bouton "Flattr" ci-dessous!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: Vous pourrez toujours accèder à cette information par le menu <span style=" font-weight:600;">Aide / À propos - Contribution</span>.</p></body></html> Remind me later Me le rapeller plus tard I'll donate. Don't show this dialog again Je vais faire un don. Ne plus me montrer cette fenêtre Close Fermer Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Chers utilisateurs de QComicBook! Si vous aimez QComicBook, pensez à apporter votre contribution au développement de ce projet. QComicBook est developpé dans mes temps libre, et il est distribué gratuitement ! Votre don servira à payer l'hébergement web et sera un encouragement pour continuer à ajouter de nouvelles fonctionnalité et passer encore plus de temps sur son développement ! Contribuer est facile - vous n'avez qu'à cliquer sur bouton "Flattr" ci-dessous! Note: Vous pourrez toujours accèder à cette information par le menu Aide / À propos - Contribution. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> GoToPageWidget Go to page... Aller à la page... Page number No. de page /0 /0 Go Go ImgDirSink bytes bytes Kbytes Kbytes Mbytes Мbytes PrintProgressDialog Printing. Please wait... Impression en cours, veuillez patienter... Printing page: Impression de la page: 0 0 Cancel Annuler QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Certaines archives ne sont pas prises en charge car des utilitaires externes sont manquants. S'il vous plaît installer les exécutables nécessaires et redémarrez QComicBook. Note: si plus d'un exécutable est listé pour le type d'archives donné, alors il suffit d'installer un seul d'entre eux. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. La version libre (opensource) de unrar a été détectée. Cette version a des problèmes avec de nombreuses archives rar. Il est recommandé d'installer la version non-libre (ie.:unrar non-free )et redémarrez QComicBook. QComicBook::BookmarkManager Deleting bookmarks Suppression de signet Delete selected bookmarks? Supprimer le(s) signet(s) Sélectionné(s) ? QComicBook::ComicBookCfgDialog Choose temporary directory Sélectionner le dossier temporaire QComicBook::ComicBookInfo QComicBook info Info QComicBook QComicBook::ComicMainWindow Escape Sortie Alt+t Alt+t Recently opened Récent Leave QComicBook? Quitter QComicBook? Do you really want to quit QComicBook? Voulez-vous vraiment quitter QComicBook? no images found Aucune image trouvée unknown archive Format d'archive inconnu can't access directory Impossible d'accèder au dossier file/directory not found Fichier/Dossier introuvable archive not supported Archive non prise en charge archive extractor exited with error L'extracteur d'archive a retourné une erreur QComicBook error Erreur - QComicBook Error opening comicbook Erreur à l'ouverture Choose a directory Sélectionner un dossier Choose a file Sélectionner un fichier Page Page Removing bookmark Supprimer un signet Do you really want to remove bookmark for this comic book? Voulez-vous vraiment supprimer le signet pour ce livre ? Save image as Enregistrer l'image sous page page Error saving image Erreur lors de la sauvegarde de l'image Comic book not found Archive introuvable Selected bookmark points to non-existing comic book Do you want to remove it? L'emplacement du signet n'existe pas/plus. Voulez-vous le supprimer ? Can't initialize QComicBook directories Impossible d'initialiser le répertoire de QComicBook QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Мbytes QComicBook::RecentFilesMenu Cleanup list Vider la liste QComicBook::StatusBar Page Page QComicBook::SystemInfoDialog Supported archivers Archives prise en charge Archive type Type d'archive Supported file extensions Extensions de fichiers supportées Unsupported archivers Archive non supportée Required executable(s) Éxécutable(s) requis Hint Conseil Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Certaines archives ne sont pas prise en charge, car certains programmes sont manquant. Installez les programmes requis et exécutez QComicBook à nouveau. Note: Si plus d'un programme est listé pour un type d'archive, il suffit d'installer l'un d'entre eux. Supported image formats Format d'image pris en charge Hints Astuces QComicBook::ThumbnailsView Go to Aller à QComicBook::ThumbnailsWindow Thumbnails Vignettes RecentFilesMenu Cleanup list Vider la liste StatusBar Page Page SystemInfoDialog System information Information système Supported archivers Archives prise en charge Archive type Type d'archive Supported file extensions Extensions de fichiers supportées Unsupported archivers Archive non supportée Required executable(s) Éxécutable(s) requis Hints Astuces Supported image formats Format d'image pris en charge ThumbnailsView Go to Aller à ThumbnailsWindow Thumbnails Vignettes qcomicbook-0.8.2/i18n/qcomicbook_zh_CN.ts000644 001750 001750 00000130564 11644604742 020510 0ustar00pawelpawel000000 000000 AboutDialog About 关于 Close 关闭 BookmarkManager QComicBook Bookmarks QComicBook书签 Name åç§° Page é¡µé¢ Select all 选择全部 Invert selection å选 Select invalid 选择失效的书签 Clear selection 清除选择 Remove selected 删除选择 Close 关闭 ComicMainWindow QComicBook QComicBook &File &文件 &View &查看 &Navigation &å‘导 &Bookmarks &书签 &Settings &设置 &Help &帮助 Toolbar å·¥å…·æ  Open archive 打开文件 Ctrl+O Ctrl+O Open directory 打开目录 Ctrl+D Ctrl+D Open next 打开åŽä¸€ä¸ªæ–‡ä»¶ Ctrl+N Ctrl+N Open previous 打开å‰ä¸€ä¸ªæ–‡ä»¶ Ctrl+P Ctrl+P Save page as å¦å­˜ä¸º Info ä¿¡æ¯ Alt+I Alt+I Close 关闭 Quit 退出 Ctrl+Q Ctrl+Q Original size 原始尺寸 Alt+O Alt+O Fit width 适应宽度 Alt+W Alt+W Fit height 适应高度 Alt+H Alt+H Whole page 显示整页 Alt+A Alt+A Best fit 最佳适应 Alt+B Alt+B Rotate right å‘峿—‹è½¬ Rotate left å‘左旋转 No rotation 䏿—‹è½¬ Preserve rotation ä¿å­˜æ—‹è½¬ Two pages åŒé¡µæ¨¡å¼ Ctrl+T Ctrl+T Japanese mode æ—¥æ–‡æ¨¡å¼ Ctrl+J Ctrl+J Fullscreen å…¨å± F11 F11 Next page 下一页 PgDown PgDown Previous page 上一页 PgUp PgUp 5 pages forward å‘åŽç¿»5页 5 pages backward å‘å‰ç¿»5页 Go to page... 跳转到...页 First page 第一页 Ctrl+Home Ctrl+Home Last page 最åŽä¸€é¡µ Ctrl+End Ctrl+End Page top 页头 Home Home Page bottom 页尾 End End Continuous view æŒç»­æµè§ˆ Print æ‰“å° Frame view 框架æµè§ˆ Simple view 简易æµè§ˆ Next Frame 下一框架 Previous Frame 上一框架 About Qt 关于Qt About donating 关于æçŒ® Continuous scrolling æŒç»­æ»šåЍ Add bookmark 添加书签 Remove bookmark 删除书签 Manage bookmarks 管ç†ä¹¦ç­¾ Scrollbars æ»šåŠ¨æ¡ Statusbar çŠ¶æ€æ  Configure QComicBook é…ç½®QComicBook System information ç³»ç»Ÿä¿¡æ¯ About 关于 Scroll right å‘峿»šåЍ Right Right Scroll left å‘左滚动 Left Left Jump down å‘下翻页 Space Space Jump up å‘上翻页 Backspace Backspace Scroll right fast 快速å‘峿»šåЍ Shift+Right Shift+Right Scroll left fast 快速å‘左滚动 Shift+Left Shift+Left Scroll up fast 快速å‘上滚动 Shift+Up Shift+Up Scroll down fast 快速å‘下滚动 Shift+Down Shift+Down Scroll up å‘上滚动 Up Up Scroll down å‘下滚动 Down Down ConfigDialog QComicBook Settings QComicBook设置 Display 显示 General 一般 Small mouse cursor å°é¼ æ ‡æŒ‡é’ˆ Embed page numbers åµŒå…¥é¡µç  Smooth scaling 平滑滚动 Background color 背景颜色 Info text font 字体 Choose 选择 Fullscreen mode 免屿¨¡å¼ Hide menubar éšè—èœå•æ  Hide toolbar éšè—å·¥å…·æ  Hide statusbar éšè—çŠ¶æ€æ  Performance 性能 Cache 缓存 Cache Size ç¼“å­˜å¤§å° Mb Mb Auto adjust cache size è‡ªåŠ¨è°ƒæ•´ç¼“å­˜å¤§å° Preload next page 预读下一页 Thumbnails 缩略图 Use disk cache for thumbnails 对缩略图使用ç£ç›˜ç¼“å­˜ Thumbnails aging 缩略图ä¿å­˜æ—¶é—´ Misc å…¶ä»– Convenience 便利设置 Open info dialog after opening a comicbook 打开图åƒåŽæ˜¾ç¤ºä¿¡æ¯æ¡† Show splashscreen 显示欢迎图片 Confirm exit 退出时确认 Temporary directory 临时目录 Browse æµè§ˆ DonationDialog Please donate QComicBook! 希望能æçŒ®QComicBooké¡¹ç›®ï¼ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">亲爱的QComicBook用户! </span>如果你喜欢ComicBook,为了QComicBookå¾€åŽçš„å¼€å‘,你å¯ä»¥è€ƒè™‘æçŒ®æ­¤é¡¹ç›®ï¼Œæˆ‘是利用我的空余时间开å‘QComicBook这一å…费软件,你的æçŒ®ä¼šæœ‰åŠ©æˆ‘ç»´æŠ¤ç½‘ç«™ã€æ·»åŠ æ–°çš„åŠŸèƒ½ä»¥åŠæ›´å¤šçš„æ—¶é—´ç”¨äºŽæ­¤å¼€å‘上ï¼</p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ä½ åªè¦ç‚¹å‡»ä¸‹é¢çš„图标å³å¯å¼€å§‹æçŒ®ã€‚</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ä½ å¯ä»¥é€šè¿‡<span style=" font-weight:600;">帮助/关于æçŒ®</span>进入这里。</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. 亲爱的QComicBook用户! 如果你喜欢ComicBook,为了QComicBookå¾€åŽçš„å¼€å‘,你å¯ä»¥è€ƒè™‘æçŒ®æ­¤é¡¹ç›®ï¼Œæˆ‘是利用我的空余时间开å‘QComicBook这一å…费软件,你的æçŒ®ä¼šæœ‰åŠ©æˆ‘ç»´æŠ¤ç½‘ç«™ã€æ·»åŠ æ–°çš„åŠŸèƒ½ä»¥åŠæ›´å¤šçš„æ—¶é—´ç”¨äºŽæ­¤å¼€å‘ä¸Šï¼ ä½ åªè¦ç‚¹å‡»ä¸‹é¢çš„图标å³å¯å¼€å§‹æçŒ®ã€‚ ä½ å¯ä»¥é€šè¿‡å¸®åŠ©/关于æçŒ®è¿›å…¥è¿™é‡Œã€‚ <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later 以åŽå†æé†’ I'll donate. Don't show this dialog again 我会æçŒ®ï¼Œä¸å†æ˜¾ç¤ºæ­¤å¯¹è¯æ¡†ã€‚ Close 关闭 GoToPageWidget Go to page... 跳转到...页 Page number é¡µç  /0 /0 Go 跳转 PrintProgressDialog Printing. Please wait... 打å°ä¸­ï¼Œè¯·ç¨åŽâ€¦â€¦ Printing page: 打å°é¡µç  0 Cancel å–æ¶ˆ QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. ç”±äºŽç¼ºå°‘å¤–éƒ¨æ”¯æŒæ–‡ä»¶ï¼Œä¸€äº›æ–‡æ¡£ä¸èƒ½è¢«æ”¯æŒï¼Œè¯·å®‰è£…需è¦çš„æ–‡ä»¶ï¼Œç„¶åŽé‡å¯QComicBook。 å¦‚æžœå­˜åœ¨å¤šç§æ”¯æŒæ–‡ä»¶ï¼Œåªé€‰æ‹©å…¶ä¸­ä¸€ç§å³å¯ã€‚ Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. 检测到你安装的开æºç‰ˆçš„unrar,此版本存在许多问题,推è你安装non-free版的unrarç„¶åŽé‡å¯QComicBook。 QComicBook::BookmarkManager Deleting bookmarks 删除书签 Delete selected bookmarks? 确定删除书签? QComicBook::ComicBookCfgDialog Choose temporary directory 选择临时目录 QComicBook::ComicBookInfo QComicBook info QComicBook-ä¿¡æ¯ QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened 最新打开的文件 Leave QComicBook? 退出 QComicBook? Do you really want to quit QComicBook? 真的è¦é€€å‡ºQComicBookå—? no images found 没有å‘现图片 unknown archive ä¸èƒ½è¯†åˆ«çš„æ–‡ä»¶ can't access directory ä¸èƒ½æ‰“开目录 file/directory not found 没有找到文件/目录 archive not supported 䏿”¯æŒæ­¤ç§æ–‡ä»¶æ ¼å¼ archive extractor exited with error 文件解压出错退出 QComicBook error QComicBook错误 Error opening comicbook 打开文件错误 Choose a directory 选择一个目录 Choose a file 选择一个文件 Page é¡µé¢ Removing bookmark 删除书签 Do you really want to remove bookmark for this comic book? 真的è¦åˆ é™¤ä¹¦ç­¾? Save image as 图åƒå¦å­˜ä¸º page é¡µé¢ Error saving image ä¿å­˜å›¾åƒå‡ºé”™ Comic book not found 没有å‘çŽ°å›¾åƒ Selected bookmark points to non-existing comic book Do you want to remove it? 选择的书签指å‘ä¸å­˜åœ¨çš„图åƒï¼Œç¡®å®šè¦åˆ é™¤å®ƒå—? Can't initialize QComicBook directories ä¸èƒ½åˆå§‹åŒ–QComicBook的目录 QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Mbytes QComicBook::RecentFilesMenu Cleanup list 清ç†åˆ—表 QComicBook::StatusBar Page é¡µé¢ QComicBook::SystemInfoDialog Supported archivers 支æŒçš„æ–‡ä»¶æ ¼å¼ Archive type æ–‡ä»¶æ ¼å¼ Supported file extensions 支æŒçš„æ–‡ä»¶åŽç¼€ Unsupported archivers 䏿”¯æŒçš„æ–‡ä»¶ Required executable(s) 请求执行 Hints æç¤º Hint æç¤º Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. 部分文件格å¼ä¸æ”¯æŒæ˜¯å› ä¸ºæ²¡æœ‰æ‰¾åˆ°é€‚åˆçš„外部程åºï¼Œæƒ…安装需è¦çš„外部程åºç„¶åŽé‡å¯QComicBookã€‚å¤‡æ³¨ï¼šå¦‚æžœåŒæ—¶å­˜åœ¨å¤šç§å¤–部程åºï¼Œé‚£åªéœ€è¦å®‰è£…其中一ç§ã€‚ Supported image formats 支æŒçš„å›¾åƒæ ¼å¼ QComicBook::ThumbnailsView Go to 跳转到 QComicBook::ThumbnailsWindow Thumbnails 缩略图 SystemInfoDialog System information ç³»ç»Ÿä¿¡æ¯ qcomicbook-0.8.2/i18n/qcomicbook_de_DE.ts000644 001750 001750 00000141040 11644604742 020436 0ustar00pawelpawel000000 000000 AboutDialog About Über Close Schließen BookmarkManager QComicBook Bookmarks QComicBook Lesezeichen Name Name Page Seite Select all Wähle alles aus Invert selection Auswahl Umkehren Select invalid Wähle ungültige Clear selection Auswahl rückgängig Remove selected Auswahl Löschen Close Schließen ComicMainWindow QComicBook QComicBook &File &Datei &View &Ansicht &Navigation &Navigation &Bookmarks &Lesezeichen &Settings &Einstellungen &Help &Hilfe Toolbar Werkzeugleiste Open archive Öffne Archiv Ctrl+O Strg+O Open directory Öffne Verzeichnis Ctrl+D Strg+D Open next Öffne nächste Ctrl+N Strg+N Open previous Öffne vorheriges Ctrl+P Strg+P Save page as Speichere Seite als Info Info Alt+I Alt+L Close Schließen Quit Beenden Ctrl+Q Strg+Q Original size Originale Größe Alt+O Alt+O Fit width Passe an Breite an Alt+W Alt+W Fit height Passe an Höhe an Alt+H Alt+H Whole page Ganze Seite Alt+A Alt+A Best fit Beste Anpassung Alt+B Alt+B Rotate right Drehe nach rechts Rotate left Drehe nach links No rotation Nicht drehen Preserve rotation Merke Drehposition Two pages Zwei Seiten Ctrl+T Strg+T Japanese mode Japanischer Modus Ctrl+J Strg+J Fullscreen Vollbild F11 F11 Next page Nächste Seite PgDown Bild ab Previous page Vorherhige Seite PgUp Bild auf 5 pages forward 5 Seiten Vorwärts 5 pages backward 5 Seiten Rückwärts Go to page... Gehe zu Seite... First page Erste Seite Ctrl+Home Strg+Pos1 Last page Letzte Seite Ctrl+End Strg+Ende Page top Seitenanfang Home Pos1 Page bottom Seitenende End Ende Continuous view Fortlaufende Ansicht Add bookmark Lesezeichen hinzufügen Remove bookmark Lesezeichen entfernen Manage bookmarks Lesezeichen bearbeiten Scrollbars Bildlaufleiste Statusbar Statusleiste Configure QComicBook QComicBook einrichten System information Systeminformationen About Über Scroll right Scrolle nach rechts Right Pfeil rechts Scroll left Scrolle nach links Left Pfeil links Jump down Springe runter Space Leertaste Jump up Springe hoch Backspace Rücktaste Scroll right fast Scrolle schnell nach rechts Shift+Right Umschalt+Pfeil rechts Scroll left fast Scrolle schnell nach links Shift+Left Umschalt+Pfeil links Scroll up fast Scrolle schnell hoch Shift+Up Umschalt+ Pfeil hoch Scroll down fast Scrolle schnell runter Shift+Down Umschalt+Pfeil runter Scroll up Scrolle hoch Up Pfeil hoch Scroll down Scrolle runter Down Runter Print Drucken Frame view Rahmen Ansicht Simple view Einfache Ansicht Next Frame Nächster Rahmen Previous Frame Vorheriger Rahmen About Qt Über Qt About donating Über Spenden ConfigDialog QComicBook Settings QComicBook einstellungen Display Ansicht General Allgemein Small mouse cursor Kleiner Mauszeiger Embed page numbers Seitennummer einbetten Smooth scaling Flüssiges Skalieren Background color Hintergrundfarbe Info text font Infotext Schriftart Choose Auswählen Fullscreen mode Vollbildmodus Hide menubar Verstecke Menüleiste Hide toolbar Verstecke Werkzeugleiste Hide statusbar Verstecke Statusleiste Performance Leistung Cache Zwischenspeicher Cache Size Zwischenspeicher größe Mb Mb Auto adjust cache size Automatische Zwischenspeicher größe Preload next page Nächste seite vorladen Thumbnails Vorschau Use disk cache for thumbnails Benutze Festplattenzwischenspeicher für Vorschau Thumbnails aging Vorschaualter Misc Sonstiges Convenience Komfort Open info dialog after opening a comicbook Öffne Infodialog nach dem öffnen eines Comicbuches Show splashscreen Zeige Begrüßungsbildschirm Confirm exit Beenden bestätigen Temporary directory Temporärer Ordner Browse Durchsuchen DonationDialog Please donate QComicBook! Bitte Spenden Sie für QComicBook! Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Lieber QComicBook benutzer! Wenn Ihnen QComicBook gefällt, erwägen Sie bitte eine kleine Spende für die zukünftige Entwicklung. Ich entwickel QComicBook während meiner begrenzten Freizeit und stelle es Kostenfrei zur verfügung. Ihre Spende wird für die entstehenden kosten für den Seitenbetrieb genutzt und es wird mich anspornen neue Funktionen zu implementieren und mehr Zeit mit der Entwicklung zu verbringen! Spenden ist einfach - klicken Sie den Flattr Knopf weiter unten! Hinweis: Sie können diese Informationen jederzeit über den "Über Spenden" Menüpunkt aufrufen. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Erinnere mich Später I'll donate. Don't show this dialog again Ich werde Spenden. Zeige dieses Dialog nicht mehr an Close Schließen GoToPageWidget Go to page... Gehe zu Seite... Page number Seitennummer /0 /0 Go Los PrintProgressDialog Printing. Please wait... Drucke. Bitte warten... Printing page: Drucke Seite: 0 0 Cancel Abbrechen QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Da einige benötigte externe Programme fehlen sind bestimmte Archive nicht unterstützt. Bitte Installieren Sie die benötigten Programme und starten Sie QComicBook neu. Notiz: Wenn mehr als ein Programm für ein Archivtyp angezeigt wird, dann reicht es nur eines davon zu installieren. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Freie (opensource) Version von unrar wurde entdeckt. Diese version hat probleme mit vielen RAR Archiven. Es wird empfohlen die nicht-freie Version von unrar zu installieren und QComicBook neu zu starten. QComicBook::BookmarkManager Deleting bookmarks Lösche Lesezeichen Delete selected bookmarks? Lösche ausgewählte Lesezeichen? QComicBook::ComicBookCfgDialog Choose temporary directory Wähle Temporäres Verzeichnis aus QComicBook::ComicBookInfo QComicBook info QComicBook Info QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened Zuletzt geöffnet Leave QComicBook? Verlasse QComicBook? Do you really want to quit QComicBook? Wollen Sie QComicBook wirklich Beenden? no images found keine Bilder gefunden unknown archive Unbekanntes Archiv can't access directory Kann Verzeichnis nicht öffnen file/directory not found Datei/Verzeichnis nicht gefunden archive not supported Archiv nicht unterstützt archive extractor exited with error Archiventpacker beendete mit Fehler QComicBook error QComicBook Fehler Error opening comicbook Fehler beim öffnen von Comicbuch Choose a directory Wähle ein Verzeichnis aus Choose a file Wähle eine Datei aus Page Seite Removing bookmark Entferne Lesezeichen Do you really want to remove bookmark for this comic book? Möchten Sie wirklich das Lesezeichen von diesem Comicbuch Löschen? Save image as Speichere Bild als page Seite Error saving image Fehler beim Speichern des Bildes Comic book not found Comicbuch nicht gefunden Selected bookmark points to non-existing comic book Do you want to remove it? Ausgewähltes Lesezeichen zeigt auf ein nicht existierendes Comicbuch Möchten Sie es entfernen? Can't initialize QComicBook directories Kann QComicBook Verzeichnisse nicht Initialisieren QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Mbytes QComicBook::RecentFilesMenu Cleanup list Liste säubern QComicBook::StatusBar Page Seite QComicBook::SystemInfoDialog Supported archivers Unterstütze Archive Archive type Archivtyp Supported file extensions Unterstütze Dateiendungen Unsupported archivers Nicht unterstützte Entpacker Required executable(s) Benötigte Programme Hints Hinweise Supported image formats Unterstütze Bildformate QComicBook::ThumbnailsView Go to Gehe zu QComicBook::ThumbnailsWindow Thumbnails Vorschau SystemInfoDialog System information Systeminformationen qcomicbook-0.8.2/i18n/qcomicbook_nl_NL.ts000644 001750 001750 00000125510 11644604742 020504 0ustar00pawelpawel000000 000000 AboutDialog About Over QComicBook Close Sluiten BookmarkManager QComicBook Bookmarks QComicBook Bladwijzers Name Naam Page Pagina Select all Selecteer alles Invert selection Selectie omkeren Select invalid Selecteer ongeldige Clear selection Deselecteer alles Remove selected Verwijder selectie Close Sluiten ComicMainWindow QComicBook QComicBook &File &Bestand &View &Beeld &Navigation &Navigatie &Bookmarks &Bladwijzers &Settings &Instellingen &Help &Help Toolbar Werkbalk Open archive Open archief Ctrl+O Ctrl+O Open directory Open map Ctrl+D Ctrl+D Open next Open volgende Ctrl+N Ctrl+N Open previous Open vorige Ctrl+P Ctrl+P Save page as Sla pagina op als Info Informatie Alt+I Alt+I Close Sluiten Quit Stoppen Ctrl+Q Ctrl+Q Original size Oorspronkelijk formaat Alt+O Alt+O Fit width Beste breedte Alt+W Alt+W Fit height Beste hoogte Alt+H Alt+H Whole page Hele pagina Alt+A Alt+A Best fit Beste grootte Alt+B Alt+B Rotate right Roteer naar rechts Rotate left Roteer naar links No rotation Geen rotatie Preserve rotation Behoud rotatie Two pages Twee pagina's Ctrl+T Ctrl+T Japanese mode Japanse modus Ctrl+J Ctrl+J Fullscreen Volledig scherm F11 F11 Next page Volgende pagina PgDown PgDown Previous page Vorige pagina PgUp PgUp 5 pages forward 5 pagina's vooruit 5 pages backward 5 pagina's terug Go to page... Ga naar pagina... First page Eerste pagina Ctrl+Home Ctrl+Home Last page Laatste pagina Ctrl+End Ctrl+End Page top Pagina top Home Home Page bottom Pagina onderkant End End Continuous view Doorlopende weergave Frame view Frame weergave Simple view Simpele weergave Next Frame Volgende frame Previous Frame Vorige frame About Qt Over QT About donating Over doneren Continuous scrolling Continu scrollen Add bookmark Voeg bladwijzer toe Remove bookmark Verwijder bladwijzer Manage bookmarks Beheer bladwijzers Scrollbars Scrollbalken Statusbar Statusbalk Configure QComicBook Configureer QComicBook System information Systeem informatie About Over QComicBook Scroll right Scroll naar rechts Right Right Scroll left Scroll naar links Left Left Jump down Spring naar beneden Space Space Jump up Spring omhoog Backspace Backspace Scroll right fast Scroll snel naar rechts Shift+Right Shift+Right Scroll left fast Scroll snel naar links Shift+Left Shift+Left Scroll up fast Scroll snel omhoog Shift+Up Shift+Up Scroll down fast Scroll snel naar neden Shift+Down Shift+Down Scroll up Scroll omhoog Up Up Scroll down Scroll naar beneden Down Down Print Print ConfigDialog QComicBook Settings QComicBook Instellingen Display Beeld General Algemeen Small mouse cursor Kleine muis cursor Embed page numbers Toon pagina nummers Smooth scaling Zacht schalen Background color Achtergrond kleur Info text font Informatie tekst lettertype Choose Kies Fullscreen mode Volledig scherm modus Hide menubar Verberg menubalk Hide toolbar Verberg werkbalk Hide statusbar Verberg statusbalk Performance Prestaties Cache Cache Cache Size Cache grootte Mb Mb Auto adjust cache size Cache grootte automatish instellen Preload next page Volgende pagina voorladen Thumbnails Thumbnails Use disk cache for thumbnails Gebruik schijf cache voor thumbnails Thumbnails aging Levensduur van thumbnails Misc Overig Convenience Voorzieningen Open info dialog after opening a comicbook Open informatie venster na het openen van een stripboek Show splashscreen Laat opstartscherm zien bij het opstarten Confirm exit Bevestig afsluiten Temporary directory Tijdelijke map Browse Bladeren DonationDialog Please donate QComicBook! Doneer alstublieft aan QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html> <head> <meta name="qrichtext" content="1" /> <style type="text/css"> body { font-family: 'Droid Sans';font-size: 9pt; font-weight: 400;font-style: normal } p, li { white-space: pre-wrap } p { margin: 0;-qt-block-indent: 0;text-indent: 0px } </style> </head> <body align="center"> <p><strong>Geachte QComicBook gebruiker!</strong> Ik ontwikkel QComicBook in mijn vrije tijd en vraag er niks voor. Jouw donatie zal worden gebruikt om de webhosting te betalen en zal me aanmoedigen om nieuwe functies toe te voegen en nog meer tijd besteden aan de ontwikkeling van QComicBook!</p> <br /> <p><strong>Doneren is makkelijk - gewoon op de onderstaande Flattr knop klikken!</strong></p> <br /> <p><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <br /> <p>Opmerking: Je kan deze informatie bekijken via de <strong>Help / Over doneren</strong> menu item.</p> </body> </html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Geachte QComicBook gebruiker! Ik ontwikkel QComicBook in mijn vrije tijd en vraag er niks voor. Jouw donatie zal worden gebruikt om de webhosting te betalen en zal me aanmoedigen om nieuwe functies toe te voegen en nog meer tijd besteden aan de ontwikkeling van QComicBook! Doneren is makkelijk - gewoon op de onderstaande Flattr knop klikken! Opmerking: Je kan deze informatie bekijken via de Help / Over doneren menu item. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Herinner mij later I'll donate. Don't show this dialog again Ik zal doneren. Dit venster niet meer tonen Close Sluiten GoToPageWidget Go to page... Ga naar pagina... Page number Pagina nummer /0 /0 Go Ga PrintProgressDialog Printing. Please wait... Afdrukken. Een moment geduld alstublieft... Printing page: Afdrukken van pagina: 0 0 Cancel Annuleren QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Sommige archief formaten worden niet ondersteund, omdat er externe programma's missen. Installeer deze programma's als het nodig is en herstart QComicBook. Let op: als er meer dan één programma is aangegeven voor een formaat dan is het voldoende om één te installeren. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Gratis (opensource) versie van unrar ontdekt. Deze versie heeft problemen met veel rar archieven. Het is verstandig om de "non-free" unrar te installeren en QComicBook te herstarten. QComicBook::BookmarkManager Deleting bookmarks Bladwijzers worden verwijderd Delete selected bookmarks? Verwijder geselecteerde bladwijzers? QComicBook::ComicBookCfgDialog Choose temporary directory Kies tijdelijke map QComicBook::ComicBookInfo QComicBook info QComicBook informatie QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened Onlangs geopend Leave QComicBook? verlaat QComicBook? Do you really want to quit QComicBook? Wilt u echt QComicBook afsluiten? no images found geen afbeeldingen gevonden unknown archive onbekend archief can't access directory geen toegang tot map file/directory not found bestand/map niet gevonden archive not supported archief wordt niet ondersteund archive extractor exited with error archiveer programma sloot af met een fout QComicBook error QComicBook fout Error opening comicbook Er trad een fout op tijdens het openen van een stripboek Choose a directory Kies een map Choose a file Kies een bestand Page Pagina Removing bookmark Verwijder bladwijzer Do you really want to remove bookmark for this comic book? Wilt u de bladwijzer van dit stripboek echt verwijderen? Save image as Sla afbeelding op als page pagina Error saving image Fout tijdens het opslaan van de afbeelding Comic book not found Stripboek niet gevonden Selected bookmark points to non-existing comic book Do you want to remove it? Geselecteerde bladwijzer verwijst naar een niet bestaand boek. Wilt u het werwijderen? Can't initialize QComicBook directories Kan QComicBook mappen niet initialiseren QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Mbytes QComicBook::RecentFilesMenu Cleanup list Opschoonlijst QComicBook::StatusBar Page Pagina QComicBook::SystemInfoDialog Supported archivers Ondersteunde archieven Archive type Archief type Supported file extensions Ondersteunde bestands extensies Unsupported archivers Niet-ondersteunde archieven Required executable(s) Benodigde programma(s) Hints Hints Supported image formats Ondersteunde aflbeelding formaten QComicBook::ThumbnailsView Go to Ga naar QComicBook::ThumbnailsWindow Thumbnails Thumbnails SystemInfoDialog System information Systeem informatie qcomicbook-0.8.2/i18n/qcomicbook_ru_RU.ts000644 001750 001750 00000141720 11644604742 020537 0ustar00pawelpawel000000 000000 AboutDialog About Fixed О программе Close Закрыть BookmarkManager QComicBook Bookmarks Закладки QComicBook Name Ð˜Ð¼Ñ Page Страница Select all Выбрать вÑе Invert selection Кроме выбранного Select invalid ÐеÑущеÑтвующие Clear selection ОчиÑтить выбор Remove selected Удалить Close Закрыть ComicMainWindow QComicBook QComicBook &File &Файл &View &Вид &Navigation Ðавигаци&Ñ &Bookmarks &Закладки &Settings &ÐаÑтройки &Help &Помощь Toolbar Панель инÑтрументов Open archive Открыть архив Ctrl+O Ctrl+O Open directory Открыть каталог Ctrl+D Ctrl+D Open next Открыть Ñледующий Ctrl+N Ctrl+N Open previous Открыть предыдущий Ctrl+P Ctrl+P Save page as Сохранить Ñтраницу Info Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Alt+I Alt+I Close Закрыть Quit Выход Ctrl+Q Ctrl+Q Original size Оригинальный размер Alt+O Alt+O Fit width Подогнать по ширине Alt+W Alt+W Fit height Подогнать по выÑоте Alt+H Alt+H Whole page Страница целиком Alt+A Alt+A Best fit Оптимальный вид Alt+B Alt+B Rotate right Повернуть вправо Rotate left Повернуть влево No rotation Ðе поворачивать Preserve rotation Сохранить ориентацию Two pages Режим книги Ctrl+T Ctrl+T Japanese mode Режим манги Ctrl+J Ctrl+J Fullscreen Ðа веÑÑŒ Ñкран F11 F11 Next page Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница PgDown PgDown Previous page ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница PgUp PgUp 5 pages forward 5 Ñтраниц вперед 5 pages backward 5 Ñтраниц назад Go to page... Перейти на Ñтраницу... First page ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница Ctrl+Home Ctrl+Home Last page ПоÑледнÑÑ Ñтраница Ctrl+End Ctrl+End Page top Ð’ начало Ñтраницы Home Home Page bottom Ð’ конец Ñтраницы End End Continuous view ПроÑмотр лентой Print Печать Frame view Still experimental? Покадровый проÑмотр Simple view ПоÑтраничный проÑмотр Next Frame Следующий кадр Previous Frame Предыдущий кадр About Qt О Qt About donating О пожертвовании Continuous scrolling Без разрывов Add bookmark Добавить закладку Remove bookmark Удалить закладку Manage bookmarks Управление закладками Scrollbars ПолоÑÑ‹ прокрутки Statusbar Панель ÑтатуÑа Configure QComicBook ÐаÑтройки QComicBook System information СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ About О программе Scroll right Прокрутить вправо Right Right Scroll left Прокрутить влево Left Left Jump down Прыгуть вниз Space Space Jump up Прыгнуть вверх Backspace Backspace Scroll right fast БыÑÑ‚Ñ€Ð°Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ° вправо Shift+Right Shift+Right Scroll left fast БыÑÑ‚Ñ€Ð°Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ° влево Shift+Left Shift+Left Scroll up fast БыÑÑ‚Ñ€Ð°Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ° вверх Shift+Up Shift+Up Scroll down fast БыÑÑ‚Ñ€Ð°Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ° вниз Shift+Down Shift+Down Scroll up Прокрутка вверх Up Up Scroll down Прокрутка вниз Down Down ConfigDialog QComicBook Settings ÐаÑтройки QComicBook Display Вид General Общий Small mouse cursor Маленький курÑор мыши Embed page numbers Ð’Ñтавить номера Ñтраниц Smooth scaling МÑгкое маÑштабирование Background color Цвет фона Info text font Цвет текÑта Choose Выбрать Fullscreen mode Ðа веÑÑŒ Ñкран Hide menubar Скрыть меню Hide toolbar Скрыть панель инÑтрументов Hide statusbar Скрыть Ñтроку ÑтатуÑа Performance ПроизводительноÑть Cache КÑш Cache Size Размер кÑша Mb МБ Auto adjust cache size ÐвтоматичеÑкий размер кÑша Preload next page Подгружать Ñледующую Ñтраницу Thumbnails ЭÑкизы Use disk cache for thumbnails ИÑпользовать Ð´Ð»Ñ ÑÑкизов диÑковый кÑш Thumbnails aging УÑтаревание ÑÑкизов Misc Разное Convenience УдобÑтво Open info dialog after opening a comicbook Показывать диалог информации поÑле Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ comicbook Show splashscreen Показывать заÑтавку при Ñтарте Confirm exit Подтверждать выход Temporary directory Временный каталог Browse Обзор DonationDialog Please donate QComicBook! ПожалуйÑта, поддержите QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Уважаемый пользователь QComicBook! </span>ЕÑли вам нравитÑÑ Ñта программа, пожалуйÑта, подумайте о том, чтобы поддержать её развитие. Я работаю над QComicBook в Ñвоё Ñвободное времÑ, и предоÑтавлÑÑŽ её беÑплатно. Ваша поддержка поможет оплатить хоÑтинг и вдохновит Ð¼ÐµÐ½Ñ Ð½Ð° ÑовершенÑтвование QComicBook, на внеÑение в неё новых функций, и на выделение большего времени на разработку! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Пожертвовать проÑто — вÑего лишь нажмите на кнопку Flattr!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Заметка: вы вÑегда можете открыть Ñто окно из меню <span style=" font-weight:600;">Помощь/О пожертвовании</span>.</p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Уважаемый пользователь QComicBook! ЕÑли вам нравитÑÑ Ñта программа, пожалуйÑта, подумайте о том, чтобы поддержать её развитие. Я работаю над QComicBook в Ñвоё Ñвободное времÑ, и предоÑтавлÑÑŽ её беÑплатно. Ваша поддержка поможет оплатить хоÑтинг и вдохновит Ð¼ÐµÐ½Ñ Ð½Ð° ÑовершенÑтвование QComicBook, на внеÑение в неё новых функций, и на выделение большего времени на разработку! Пожертвовать проÑто — вÑего лишь нажмите на кнопку Flattr! Заметка: вы вÑегда можете открыть Ñто окно из меню Помощь/О пожертвовании. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Ðапомнить позже I'll donate. Don't show this dialog again Я поддержу QComicBook Close Закрыть GoToPageWidget Go to page... Перейти на Ñтраницу... Page number Ðомер Ñтраницы /0 /0 Go Перейти PrintProgressDialog Printing. Please wait... Идёт печать, подождите... Printing page: Печатаем Ñтраницу: 0 Cancel Отмена QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Ðекоторые архивы не поддерживаютÑÑ, так как необходимы внешние архиваторы. ПожалуйÑта, уÑтановите их и перезапуÑтите QComicBook. Примечание: еÑли Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð° указано более одного архиватора, то доÑтаточно уÑтановить один из них. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Обнаружена ÑÐ²Ð¾Ð±Ð¾Ð´Ð½Ð°Ñ (opensource) верÑÐ¸Ñ unrar. Эта верÑÐ¸Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÑ‚ проблемы при работе Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ архивами. Ð”Ð»Ñ Ñтабильной работы рекомендуетÑÑ ÑƒÑтановить неÑвободную верÑию unrar, и перезапуÑтить QComicBook. QComicBook::BookmarkManager Deleting bookmarks Удалить закладки Delete selected bookmarks? Удалить выбранные закладки? QComicBook::ComicBookCfgDialog Choose temporary directory Выберите каталог Ð´Ð»Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… файлов QComicBook::ComicBookInfo QComicBook info Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ QComicBook QComicBook::ComicMainWindow Escape Выход Alt+t Alt+t Recently opened Ðедавно открытые Leave QComicBook? Выйти из QComicBook? Do you really want to quit QComicBook? Ð’Ñ‹ дейÑтвительно хотите выйти из QComicBook? no images found изображений не найдено unknown archive неизвеÑтный архив can't access directory доÑтуп к каталогу невозможен file/directory not found не найден файл/каталог archive not supported архив не поддерживаетÑÑ archive extractor exited with error при раÑпаковке архива возникла ошибка QComicBook error Ошибка QComicBook Error opening comicbook Ошибка при открытии comicbook Choose a directory Выберите каталог Choose a file Выберите файл Page Страница Removing bookmark Удалить закладку Do you really want to remove bookmark for this comic book? Ð’Ñ‹ дейÑтвительно хотите удалить закладку к Ñтому комикÑу? Save image as Сохранить изображение page Ñтраница Error saving image Ошибка при Ñохранении Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Comic book not found КомикÑов не найдено Selected bookmark points to non-existing comic book Do you want to remove it? Выбранные закладки указывают на неÑущеÑтвующий комикÑ. Хотите удалить их? Can't initialize QComicBook directories Ðе удалоÑÑŒ инициализировать каталоги QComicBook QComicBook::ImgDirSink bytes байт Kbytes Кбайт Mbytes Мбайт QComicBook::RecentFilesMenu Cleanup list ОчиÑтить ÑпиÑок QComicBook::StatusBar Page Страница QComicBook::SystemInfoDialog Supported archivers Поддерживаемые архиваторы Archive type Тип архива Supported file extensions Поддерживаемые раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² Unsupported archivers Ðеподдерживаемые архиваторы Required executable(s) Ðеобходимые иÑполнÑемые файлы Hints Заметки Hint ПодÑказка Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Ðекоторые архивы не поддерживаютÑÑ, так как необходимы внешние архиваторы. ПожалуйÑта, уÑтановите их и перезапуÑтите QComicBook. Примечание: еÑли Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð° указано более одного архиватора, то доÑтаточно уÑтановить один из них. Supported image formats Поддерживаемые форматы изображений QComicBook::ThumbnailsView Go to Перейти к QComicBook::ThumbnailsWindow Thumbnails ЭÑкизы SystemInfoDialog System information СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ qcomicbook-0.8.2/i18n/qcomicbook_fr_CA.ts000755 001750 001750 00000117010 11644604742 020453 0ustar00pawelpawel000000 000000 AboutDialog About À propos Close Fermer BookmarkManager QComicBook Bookmarks Signets QComicBook Name Nom Page Page Select all Tout sélectionner Invert selection Inverser la sélection Select invalid Signets invalides Clear selection Annuler la sélection Remove selected Supprimer Close Fermer Deleting bookmarks Suppression de signet Delete selected bookmarks? Supprimer le(s) signet(s) Sélectionné(s) ? ComicBookCfgDialog Choose temporary directory Sélectionner le dossier temporaire ComicBookInfo QComicBook info Info QComicBook ComicMainWindow QComicBook QComicBook &File &Fichier &View &Affichage &Navigation &Navigation &Bookmarks &Signets &Settings &Outils &Help &Aide Toolbar Barre d'outils Open archive Ouvrir une archive Ctrl+O Ctrl+O Open directory Ouvrir un dossier Ctrl+D Ctrl+D Open next Ouvrir suivant Ctrl+N Ctrl+N Open previous Ouvrir précedent Ctrl+P Ctrl+P Save page as Enregistrer la page sous Info Info Alt+I Alt+I Close Fermer Quit Quitter Ctrl+Q Ctrl+Q Original size Taille originale Alt+O Alt+O Fit width Ajuster à la largeur Alt+W Alt+W Fit height Ajuster à la hauteur Alt+H Alt+H Whole page Page complète Alt+A Alt+A Best fit Ajustement automatique Alt+B Alt+B Rotate right Pivoter à droite Rotate left Pivoter à gauche No rotation Normal Preserve rotation Conserver la rotation Two pages Pages doubles Ctrl+T Ctrl+T Japanese mode Mode manga Ctrl+J Ctrl+J Fullscreen Plein écran F11 F11 Next page Prochaine page PgDown PgDown Previous page Page précedente PgUp PgUp 5 pages forward Avancer de 5 pages 5 pages backward Reculer de 5 pages Go to page... Aller à la page... First page Première page Ctrl+Home Ctrl+Home Last page Dernière page Ctrl+End Ctrl+End Page top Haut de la page Home Home Page bottom Bas de la page End End Continuous scrolling Défilement continu Add bookmark Ajouter un signet Remove bookmark Supprimer le signet Manage bookmarks Gérer les signets Scrollbars Barres de défilement Statusbar Barre de statut Configure QComicBook Configurer QComicBook System information Information système About À propos Scroll right Droite Right Right Scroll left Gauche Left Left Jump down Bas Space Space Jump up Haut Backspace Backspace Scroll right fast Droite (Rapide) Shift+Right Shift+Right Scroll left fast Gauche (Rapide) Shift+Left Shift+Left Scroll up fast Haut (Rapide) Shift+Up Shift+Up Scroll down fast Bas (Rapide) Shift+Down Shift+Down Scroll up Haut Up Up Scroll down Bas Down Down Escape Sortie Alt+t Alt+t Recently opened Récent Leave QComicBook? Quitter QComicBook? Do you really want to quit QComicBook? Voulez-vous vraiment quitter QComicBook? no images found Aucune image trouvée unknown archive Format d'archive inconnu can't access directory Impossible d'accèder au dossier file/directory not found Fichier/Dossier introuvable archive not supported Archive non prise en charge archive extractor exited with error L'extracteur d'archive a retourné une erreur QComicBook error Erreur - QComicBook Error opening comicbook Erreur à l'ouverture Choose a directory Sélectionner un dossier Choose a file Sélectionner un fichier Page Page Removing bookmark Supprimer un signet Do you really want to remove bookmark for this comic book? Voulez-vous vraiment supprimer le signet pour ce livre ? Save image as Enregistrer l'image sous page page Error saving image Erreur lors de la sauvegarde de l'image Comic book not found Archive introuvable Selected bookmark points to non-existing comic book Do you want to remove it? L'emplacement du signet n'existe pas/plus. Voulez-vous le supprimer ? Continuous view Mode en continu Print Imprimer Frame view Mode Case par case Simple view Mode normal Next Frame Case suivante Previous Frame Case prédedente About Qt À propos de Qt About donating À propos - Contribution Can't initialize QComicBook directories Impossible d'initialiser les répertoires utilisés par QComicBook ConfigDialog QComicBook Settings Configuration QComicBook Display Affichage General Général Small mouse cursor Curseur de souris discret Embed page numbers Afficher le numéro de page Smooth scaling Mise à l'échelle adoucie Background color Couleur d'arrière-plan Info text font Police Choose Sélectionner Fullscreen mode Mode plein-écran Hide menubar Cacher la barre de menu Hide toolbar Cacher la barre d'outils Hide statusbar Cacher la barre de statut Performance Performance Cache Cache Cache Size Taille du cache Mb Mb Auto adjust cache size Ajuster la taille du cache automatiquement Preload next page Précharger la page suivante Thumbnails Vignettes Use disk cache for thumbnails Utiliser le cache pour les vignettes Thumbnails aging Conserver les vignettes Misc Divers Convenience Info / Divers Open info dialog after opening a comicbook Ouvrir les infos à l'ouverture Show splashscreen Afficher l'écran de démarrage Confirm exit Confirmer la fermeture Temporary directory Dossier temporaire Browse Parcourir DonationDialog Please donate QComicBook! SVP contribuer à QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Cher utilisateur de QComicBookv! </span>Si vous aimez QComicBook, pensez à apporter votre contribution au développement de ce projet. QComicBook est developpé dans mes temps libre, et il est distribué gratuitement !. Votre don servira à payer l'hébergement web sera un encouragement pour continuer à ajouter de nouvelles fonctionnalité et passer encore plus de temps sur son développement ! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Contribuer est facile - vous n'avez qu'à cliquer sur bouton "Flattr" ci-dessous!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: Vous pourrez toujours accèder à cette information par le menu <span style=" font-weight:600;">Aide / À propos - Contribution</span>.</p></body></html> Remind me later Me le rapeller plus tard I'll donate. Don't show this dialog again Je vais faire un don. Ne plus me montrer cette fenêtre Close Fermer Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Chers utilisateurs de QComicBook! Si vous aimez QComicBook, pensez à apporter votre contribution au développement de ce projet. QComicBook est developpé dans mes temps libre, et il est distribué gratuitement ! Votre don servira à payer l'hébergement web et sera un encouragement pour continuer à ajouter de nouvelles fonctionnalité et passer encore plus de temps sur son développement ! Contribuer est facile - vous n'avez qu'à cliquer sur bouton "Flattr" ci-dessous! Note: Vous pourrez toujours accèder à cette information par le menu Aide / À propos - Contribution. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> GoToPageWidget Go to page... Aller à la page... Page number No. de page /0 /0 Go Go ImgDirSink bytes bytes Kbytes Kbytes Mbytes Мbytes PrintProgressDialog Printing. Please wait... Impression en cours, veuillez patienter... Printing page: Impression de la page: 0 0 Cancel Annuler QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Certaines archives ne sont pas prises en charge car des utilitaires externes sont manquants. S'il vous plaît installer les exécutables nécessaires et redémarrez QComicBook. Note: si plus d'un exécutable est listé pour le type d'archives donné, alors il suffit d'installer un seul d'entre eux. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. La version libre (opensource) de unrar a été détectée. Cette version a des problèmes avec de nombreuses archives rar. Il est recommandé d'installer la version non-libre (ie.:unrar non-free )et redémarrez QComicBook. QComicBook::BookmarkManager Deleting bookmarks Suppression de signet Delete selected bookmarks? Supprimer le(s) signet(s) Sélectionné(s) ? QComicBook::ComicBookCfgDialog Choose temporary directory Sélectionner le dossier temporaire QComicBook::ComicBookInfo QComicBook info Info QComicBook QComicBook::ComicMainWindow Escape Sortie Alt+t Alt+t Recently opened Récent Leave QComicBook? Quitter QComicBook? Do you really want to quit QComicBook? Voulez-vous vraiment quitter QComicBook? no images found Aucune image trouvée unknown archive Format d'archive inconnu can't access directory Impossible d'accèder au dossier file/directory not found Fichier/Dossier introuvable archive not supported Archive non prise en charge archive extractor exited with error L'extracteur d'archive a retourné une erreur QComicBook error Erreur - QComicBook Error opening comicbook Erreur à l'ouverture Choose a directory Sélectionner un dossier Choose a file Sélectionner un fichier Page Page Removing bookmark Supprimer un signet Do you really want to remove bookmark for this comic book? Voulez-vous vraiment supprimer le signet pour ce livre ? Save image as Enregistrer l'image sous page page Error saving image Erreur lors de la sauvegarde de l'image Comic book not found Archive introuvable Selected bookmark points to non-existing comic book Do you want to remove it? L'emplacement du signet n'existe pas/plus. Voulez-vous le supprimer ? Can't initialize QComicBook directories Impossible d'initialiser le répertoire de QComicBook QComicBook::ImgDirSink bytes bytes Kbytes Kbytes Mbytes Мbytes QComicBook::RecentFilesMenu Cleanup list Vider la liste QComicBook::StatusBar Page Page QComicBook::SystemInfoDialog Supported archivers Archives prise en charge Archive type Type d'archive Supported file extensions Extensions de fichiers supportées Unsupported archivers Archive non supportée Required executable(s) Éxécutable(s) requis Hint Conseil Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Certaines archives ne sont pas prise en charge, car certains programmes sont manquant. Installez les programmes requis et exécutez QComicBook à nouveau. Note: Si plus d'un programme est listé pour un type d'archive, il suffit d'installer l'un d'entre eux. Supported image formats Format d'image pris en charge Hints Astuces QComicBook::ThumbnailsView Go to Aller à QComicBook::ThumbnailsWindow Thumbnails Vignettes RecentFilesMenu Cleanup list Vider la liste StatusBar Page Page SystemInfoDialog System information Information système Supported archivers Archives prise en charge Archive type Type d'archive Supported file extensions Extensions de fichiers supportées Unsupported archivers Archive non supportée Required executable(s) Éxécutable(s) requis Hints Astuces Supported image formats Format d'image pris en charge ThumbnailsView Go to Aller à ThumbnailsWindow Thumbnails Vignettes qcomicbook-0.8.2/i18n/qcomicbook_uk_UA.ts000644 001750 001750 00000165706 11644604742 020521 0ustar00pawelpawel000000 000000 AboutDialog About Про програму Close Закрити BookmarkManager QComicBook Bookmarks Закладки QComicBook Name Ім'Ñ Page Сторінка Select all Виділити вÑе Invert selection Крім виділеного Select invalid Тільки неіÑнуючі Clear selection ЗнÑти Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Remove selected Видалити Close Закрити ComicMainWindow QComicBook QComicBook &File &Файл &View &Вид &Navigation Ðавігаці&Ñ &Bookmarks &Закладки &Settings &ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ &Help &Допомога Toolbar Панель інÑтрументів Open archive Відкрити архів Ctrl+O Ctrl+O Open directory Відкрити каталог Ctrl+D Ctrl+D Open next Відкрити наÑтупний Ctrl+N Ctrl+N Open previous Відкрити попередній Ctrl+P Ctrl+P Save page as Зберегти Ñторінку Info Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Alt+I Alt+I Close Закрити Quit Вихід Ctrl+Q Ctrl+Q Original size Оригінальний розмір Alt+O Alt+O Fit width Підігнати по ширині Alt+W Alt+W Fit height Підігнати по виÑоті Alt+H Alt+H Whole page Ціла Ñторінка Alt+A Alt+A Best fit Оптимальний вид Alt+B Alt+B Rotate right Повернути вправо Rotate left Повернути вліво No rotation Ðе обертати Preserve rotation Зберігати Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Two pages Режим книги Ctrl+T Ctrl+T Japanese mode Режим манги Ctrl+J Ctrl+J Fullscreen Ðа веÑÑŒ екран F11 F11 Next page ÐаÑтупна Ñторінка PgDown PgDown Previous page ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка PgUp PgUp 5 pages forward 5 Ñторінок уперед 5 pages backward 5 Ñторінок назад Go to page... Перейти на Ñторінку... First page Перша Ñторінка Ctrl+Home Ctrl+Home Last page ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка Ctrl+End Ctrl+End Page top Ðа початок Ñторінки Home Home Page bottom Ð’ кінець Ñторінки End End Continuous view Безперервний переглÑд Print Друк Frame view ВиглÑд кадру Simple view ПроÑтий виглÑд Next Frame ÐаÑтупний кадр Previous Frame Попередній кадр About Qt Про Qt About donating Про Ð¿Ð¾Ð¶ÐµÑ€Ñ‚Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Continuous scrolling Безперервна прокрутка Add bookmark Додати закладку Remove bookmark Видалити закладку Manage bookmarks ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ°Ð¼Ð¸ Scrollbars Смуги Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Statusbar РÑдок Ñтану Configure QComicBook ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ QComicBook System information СиÑтемна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ About Про програму Scroll right Прокрутити праворуч Right Right Scroll left Прокрутити ліворуч Left Left Jump down Стрибнути вниз Space Space Jump up Стрибнути вгору Backspace Backspace Scroll right fast Швидка прокрутка праворуч Shift+Right Shift+Right Scroll left fast Швидка прокрутка ліворуч Shift+Left Shift+Left Scroll up fast Швидка прокрутка вгору Shift+Up Shift+Up Scroll down fast Швидка прокрутка вниз Shift+Down Shift+Down Scroll up Прокрутка вгору Up Up Scroll down Прокрутка вниз Down Down ConfigDialog QComicBook Settings ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ QComicBook Display ВиглÑд General ОÑновний режим Small mouse cursor Малий курÑору миші Embed page numbers Ð’ÑтавлÑти номера Ñторінок Smooth scaling Плавне маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Background color Колір фону Info text font Шрифт текÑту інформації Choose Вибрати Fullscreen mode Повноекранний режим Hide menubar Приховати меню Hide toolbar Приховати панель інÑтрументів Hide statusbar Приховати Ñ€Ñдок Ñтану Performance ПродуктивніÑть Cache Кеш Cache Size Розмір кеша Mb Mb Auto adjust cache size Ðвтоматично налаштовувати розмір кешу Preload next page Попередньо завантажувати наÑтупу Ñторінку Thumbnails ЕÑкізи Use disk cache for thumbnails ВикориÑтовувати диÑковий кеш Ð´Ð»Ñ ÐµÑкізів Thumbnails aging Ð¡Ñ‚Ð°Ñ€Ñ–Ð½Ð½Ñ ÐµÑкізів Misc Різне Convenience ЗручноÑті Open info dialog after opening a comicbook Відкрити діалог інформації піÑÐ»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ comicbook Show splashscreen Показувати заÑтавку при Ñтарті Confirm exit Підтверджувати вихід Temporary directory ТимчаÑовий каталог Browse ПереглÑнути DonationDialog Please donate QComicBook! Будь-лаÑка, підтримайте QComicBook! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Шановний кориÑтувач QComicBook! </span>Якщо вам подобаєтьÑÑ QComicBook, то чому б вам не зробити невеличкий внеÑок на його подальший розвиток. QComicBook розроблÑєтьÑÑ Ñƒ вільний Ñ‡Ð°Ñ Ñ– розповÑюджуєтьÑÑ Ð±ÐµÐ·ÐºÐ¾ÑˆÑ‚Ð¾Ð²Ð½Ð¾. Ваші пожертви підуть на оплату веб-хоÑтингу Ñ– будуть заохочувати додавати нові функції Ñ– приÑвÑчувати ще більше чаÑу на його розвиток! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Пожертвувати можна проÑто натиÑнувши кнопку нижче!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Примітка: Ви можете отримати доÑтуп до цієї інформації через меню <span style=" font-weight:600;">Допомога / Про пожертвуваннÑ</span> </p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Шановний кориÑтувач QComicBook! Якщо вам подобаєтьÑÑ QComicBook, то чому б вам не зробити невеличкий внеÑок на його подальший розвиток. QComicBook розроблÑєтьÑÑ Ñƒ вільний Ñ‡Ð°Ñ Ñ– розповÑюджуєтьÑÑ Ð±ÐµÐ·ÐºÐ¾ÑˆÑ‚Ð¾Ð²Ð½Ð¾. Ваші пожертви підуть на оплату веб-хоÑтингу Ñ– будуть заохочувати додавати нові функції Ñ– приÑвÑчувати ще більше чаÑу на його розвиток! Пожертвувати можна проÑто натиÑнувши кнопку нижче! Примітка: Ви можете отримати доÑтуп до цієї інформації через меню Допомога / Про пожертвуваннÑ. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Ðагадати пізніше I'll donate. Don't show this dialog again Я буду жертвувати. Більше не нагадувати Close Закрити GoToPageWidget Go to page... Перейти до Ñторінки... Page number Ðомер Ñторінки /0 /0 Go Перейти PrintProgressDialog Printing. Please wait... Друк. Зачекайте, будь-лаÑка... Printing page: Друк Ñторінки: 0 0 Cancel Відміна QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. ДеÑкі архіви не підтримуютьÑÑ Ñ‚Ð¾Ð¼Ñƒ, що необхідні зовнішні програми відÑутні. Будь лаÑка, вÑтановіть Ñ—Ñ… Ñ– перезапуÑтіть QComicBook. Зверніть увагу, Ñкщо зазначеному архіву відповідає більш Ñк одна програма, то доÑтатньо вÑтановити тільки одну з них. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Була виÑвлена free (opensource) верÑÑ–Ñ unrar. Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ Ð½Ðµ коректно працює з багатьма RAR архівами. РекомендуєтьÑÑ Ð²Ñтановити non-free unrar Ñ– перезапуÑтити QComicBook. QComicBook::BookmarkManager Deleting bookmarks Видалити закладки Delete selected bookmarks? Видалити вибрані закладки? QComicBook::ComicBookCfgDialog Choose temporary directory Виберіть тимчаÑовий каталог QComicBook::ComicBookInfo QComicBook info Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ QComicBook QComicBook::ComicMainWindow Escape Вихід Alt+t Alt+t Recently opened Ðещодавно відкриті Leave QComicBook? Вийти з QComicBook? Do you really want to quit QComicBook? Ви дійÑно хочете вийти з QComicBook? no images found зображень не знайдено unknown archive невідомий архів can't access directory доÑтуп до каталогу заборонено file/directory not found файл/каталог не знайдено archive not supported архів не підтримуєтьÑÑ archive extractor exited with error при видобуванні з архіву ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° QComicBook error Помилка QComicBook Error opening comicbook Помилка при відкритті comicbook Choose a directory Вибрати каталог Choose a file Вибрати файл Page Сторінка Removing bookmark Видалити закладку Do you really want to remove bookmark for this comic book? Ви дійÑно хочете видалити закладку у цьому комікÑÑ–? Save image as Зберегти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ page Ñторінка Error saving image Помилка при збереженні Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Comic book not found КомікÑів не знайдено Selected bookmark points to non-existing comic book Do you want to remove it? Вибрані закладки вказують на неіÑнуючий комікÑ. Ви хочете видалити Ñ—Ñ…? Can't initialize QComicBook directories Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ каталоги QComicBook QComicBook::ImgDirSink bytes байт Kbytes Кбайт Mbytes Мбайт QComicBook::RecentFilesMenu Cleanup list ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑпиÑку QComicBook::StatusBar Page Сторінка QComicBook::SystemInfoDialog Supported archivers Підтримувані архіватори Archive type Тип архіву Supported file extensions Підтримувані Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ Unsupported archivers Ðе підтримувані архіватори Required executable(s) ВідÑутній виконуваний файл(и) Hints Підказки Hint Підказка Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. ДеÑкі архіви не підтримуютьÑÑ, тому що необхідні зовнішні програми відÑутні. Будь лаÑка, вÑтановіть Ñ—Ñ… Ñ– перезапуÑтіть QComicBook. Зверніть увагу, Ñкщо зазначеному архіву відповідає більш Ñк одна програма, то доÑтатньо вÑтановити тільки одну з них. Supported image formats Підтримувані формати зображень QComicBook::ThumbnailsView Go to Перейти до QComicBook::ThumbnailsWindow Thumbnails ЕÑкізи SystemInfoDialog System information СиÑтемна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ qcomicbook-0.8.2/i18n/update_ts.sh000755 001750 001750 00000000402 11644604742 017243 0ustar00pawelpawel000000 000000 #!/bin/sh # # This script updates/creates translation (.ts) files. # To create new translation, execute: # ./update_ts.sh qcomicbook_xx_XX.ts # (replace xx_XX with your country code). # # Must be executed in lang subdirectory. # lupdate ../src -ts *.ts $@ qcomicbook-0.8.2/i18n/CMakeLists.txt000644 001750 001750 00000001307 11644604742 017461 0ustar00pawelpawel000000 000000 QT4_ADD_TRANSLATION(qcomicbook_qm qcomicbook_de_DE.ts qcomicbook_es_ES.ts qcomicbook_it_IT.ts qcomicbook_fi_FI.ts qcomicbook_fr_FR.ts qcomicbook_fr_CA.ts qcomicbook_cs_CZ.ts qcomicbook_ko_KR.ts qcomicbook_nl_NL.ts qcomicbook_pl_PL.ts qcomicbook_pt_BR.ts qcomicbook_ru_RU.ts qcomicbook_uk_UA.ts qcomicbook_zh_CN.ts ) ADD_CUSTOM_TARGET(translations DEPENDS ${qcomicbook_qm}) INSTALL(FILES ${qcomicbook_qm} DESTINATION share/${PACKAGE}/i18n) qcomicbook-0.8.2/i18n/qcomicbook_fi_FI.ts000644 001750 001750 00000133073 11644604742 020461 0ustar00pawelpawel000000 000000 AboutDialog About Tietoja Close Sulje BookmarkManager QComicBook Bookmarks QComicBook-kirjanmerkit Name Nimi Page Sivu Select all Valitse kaikki Invert selection Käänteinen valinta Select invalid Valitse epäkelvot Clear selection Tyhjennä valinta Remove selected Poista valitut Close Sulje ComicMainWindow QComicBook QComicBook &File &Tiedosto &View &Näkymä &Navigation N&avigointi &Bookmarks &Kirjanmerkit &Settings &Asetukset &Help &Ohje Toolbar Työkalurivi Open archive Avaa arkisto Ctrl+O Ctrl+O Open directory Avaa kansio Ctrl+D Ctrl+D Open next Avaa seuraava Ctrl+N Ctrl+N Open previous Avaa edellinen Ctrl+P Ctrl+P Save page as Tallenna sivu nimellä Info Tiedot Alt+I Alt+I Close Sulje Quit Lopeta Ctrl+Q Ctrl+Q Original size Alkuperäinen koko Alt+O Alt+O Fit width Sovita leveys Alt+W Alt+W Fit height Sovita korkeus Alt+H Alt+H Whole page Koko sivu Alt+A Alt+A Best fit Paras sovitus Alt+B Alt+B Rotate right Kierrä myötäpäivään Rotate left Kierrä vastapäivään No rotation Ei kiertoa Preserve rotation Säilytä kierto Two pages Kaksi sivua Ctrl+T Ctrl+T Japanese mode Japanilainen tila Ctrl+J Ctrl+J Fullscreen Koko näyttö F11 F11 Next page Seuraava sivu PgDown PgDown Previous page Edellinen sivu PgUp PgUp 5 pages forward 5 sivua eteenpäin 5 pages backward 5 sivua taaksepäin Go to page... Siirry sivulle... First page Ensimmäinen sivu Ctrl+Home Ctrl+Home Last page Viimeinen sivu Ctrl+End Ctrl+End Page top Sivun alkuun Home Home Page bottom Sivun loppuun End End Continuous view Jatkuva näkymä Print Tulosta Frame view Ruutunäkymä Simple view Perusnäkymä Next Frame Seuraava ruutu Previous Frame Edellinen ruutu About Qt Tietoja Qt:sta About donating Tietoja lahjoittamisesta Continuous scrolling Saumaton vieritys Add bookmark Lisää kirjanmerkki Remove bookmark Poista kirjanmerkki Manage bookmarks Hallitse kirjanmerkkejä Scrollbars Vierityspalkit Statusbar Tilarivi Configure QComicBook QComicBookin asetukset System information Järjestelmätiedot About Tietoja Scroll right Vieritä oikealle Right Right Scroll left Vieritä vasemmalle Left Left Jump down Hyppää alas Space Space Jump up Hyppää ylös Backspace Backspace Scroll right fast Vieritä oikealle nopeasti Shift+Right Shift+Right Scroll left fast Vieritä vasemmalle nopeasti Shift+Left Shift+Left Scroll up fast Vieritä ylös nopeasti Shift+Up Shift+Up Scroll down fast Vieritä alas nopeasti Shift+Down Shift+Down Scroll up Vieritä ylös Up Up Scroll down Vieritä alas Down Down ConfigDialog QComicBook Settings QComicBookin asetukset Display Näyttö General Yleiset Small mouse cursor Pieni hiiren osoitin Embed page numbers Näytä sivunumerot sivulla Smooth scaling Pehmeä skaalaus Background color Taustaväri Info text font Tietotekstin fontti Choose Valitse Fullscreen mode Koko näytön tila Hide menubar Piilota valikkorivi Hide toolbar Piilota työkalurivi Hide statusbar Piilota tilarivi Performance Suorituskyky Cache Välimuisti Cache Size Välimuistin koko Mb Mt Auto adjust cache size Automaattinen välimuistin koko Preload next page Lataa seuraava sivu ennakkoon Thumbnails Pienoiskuvat Use disk cache for thumbnails Käytä levyvälimuistia pienoiskuville Thumbnails aging Pienoiskuvien vanhentuminen Misc Sekalaiset Convenience Mukavuus Open info dialog after opening a comicbook Avaa tietoikkuna sarjakuvan avaamisen jälkeen Show splashscreen Näytä aloitusruutu Confirm exit Vahvista lopetus Temporary directory Väliaikaishakemisto Browse Selaa DonationDialog Please donate QComicBook! Omitted 'QComicBook', as it's not really needed here and I wasn't able to translate it in a way that'd have made sense. The exclamation mark removed intentionally. Lahjoita <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Dear QComicBook user! </span>If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! </p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Donating is easy - just click the Flattr button below!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: You can access this information via <span style=" font-weight:600;">Help / About donating</span> menu item.</p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hyvä QComicBookin käyttäjä! </span>Jos pidät QComicBookista, ole hyvä ja harkitse pientä lahjoitusta ohjelman kehityksen takaamiseksi. Kehitän QComicBookia vapaa-ajallani ja annan sen pois ilmaiseksi. Lahjoituksesi rahoittaa WWW-sivujen ylläpitokustannuksia sekä rohkaisee minua lisäämään uusia ominaisuuksia ja viettämään entistä enemmän aikaa QComicBookin parissa!</p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Lahjoittaminen on helppoa – napsauta vain Flattr-painiketta!</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Huomio: Pääset näihin tietoihin valikosta <span style=" font-weight:600;">Ohje / Tietoja lahjoittamisesta</span></p></body></html> Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Hyvä QComicBookin käyttäjä! Jos pidät QComicBookista, ole hyvä ja harkitse pientä lahjoitusta ohjelman kehityksen takaamiseksi. Kehitän QComicBookia vapaa-ajallani ja annan sen pois ilmaiseksi. Lahjoituksesi rahoittaa WWW-sivujen ylläpitokustannuksia sekä rohkaisee minua lisäämään uusia ominaisuuksia ja viettämään entistä enemmän aikaa QComicBookin parissa! Lahjoittaminen on helppoa – napsauta vain Flattr-painiketta! Huomio: Pääset näihin tietoihin valikosta Ohje / Tietoja lahjoittamisesta. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later Muistuta myöhemmin I'll donate. Don't show this dialog again Lahjoitan. Älä näytä tätä uudelleen Close Sulje GoToPageWidget Go to page... Siirry sivulle... Page number Sivunumero /0 /0 Go Siirry PrintProgressDialog Printing. Please wait... Tulostetaan. Odota hetki... Printing page: Tulostetaan sivua: 0 0 Cancel Peruuta QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Joitain arkistoja ei tueta, koska tarpeellisia ulkoisia ohjelmia puuttuu. Ole hyvä ja asenna tarvittavat ohjelmat ja käynnistä QComicBook uudelleen. Huom: jos arkistomuodon kohdalla mainitaan useampi kuin yksi ohjelma, vain yksi tarvitsee asentaa. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. unrarin vapaa (avoimen lähdekoodin) versio havaittiin. Tällä versiolla on ongelmia monien rar-arkistojen kanssa. On suositeltavaa asentaa epävapaa unrar ja käynnistää QComicBook uudelleen. QComicBook::BookmarkManager Deleting bookmarks Kirjanmerkkien poisto Delete selected bookmarks? Poistetaanko valitut kirjanmerkit? QComicBook::ComicBookCfgDialog Choose temporary directory Valitse väliaikaishakemisto QComicBook::ComicBookInfo QComicBook info QComicBook-tiedot QComicBook::ComicMainWindow Escape Escape Alt+t Alt+t Recently opened Viimeksi avatut Leave QComicBook? Lopetetaanko QComicBook? Do you really want to quit QComicBook? Haluatko varmasti lopettaa QComicBookin? no images found kuvia ei löytynyt unknown archive tuntematon arkisto can't access directory kansioon ei ole oikeuksia file/directory not found tiedostoa/kansiota ei löytynyt archive not supported arkistoa ei tueta archive extractor exited with error arkiston purku päättyi virheeseen QComicBook error QComicBook-virhe Error opening comicbook Virhe avattaessa sarjakuvaa Choose a directory Valitse kansio Choose a file Valitse tiedosto Page Sivu Removing bookmark Kirjanmerkin poisto Do you really want to remove bookmark for this comic book? Haluatko varmasti poistaa tämän sarjakuvan kirjanmerkin? Save image as Tallenna kuva nimellä page sivu Error saving image Virhe kuvaa tallennettaessa Comic book not found Sarjakuvaa ei löytynyt Selected bookmark points to non-existing comic book Do you want to remove it? Valittu kirjanmerkki osoittaa olemassaolemattomaan sarjakuvaan. Haluatko poistaa sen? Can't initialize QComicBook directories QComicBookin kansioiden alustus epäonnistui QComicBook::ImgDirSink bytes tavua Kbytes kt Mbytes Mt QComicBook::RecentFilesMenu Cleanup list Tyhjennä luettelo QComicBook::StatusBar Page Sivu QComicBook::SystemInfoDialog Supported archivers Tuetut arkistomuodot Archive type Arkistomuoto Supported file extensions Tuetut tiedostopäätteet Unsupported archivers Tukemattomat arkistomuodot Required executable(s) Tarvittavat ohjelmat Hints Vinkit Hint Vihje Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Joitain arkistoja ei tueta, koska tarpeellisia ulkoisia ohjelmia puuttuu. Ole hyvä ja asenna tarvittavat ohjelmat ja käynnistä QComicBook uudelleen. Huom: jos useampi kuin yksi ohjelma mainitaan arkistomuodolle, vain yksi tarvitsee asentaa. Supported image formats Tuetut kuvamuodot QComicBook::ThumbnailsView Go to Siirry QComicBook::ThumbnailsWindow Thumbnails Pienoiskuvat SystemInfoDialog System information Järjestelmätiedot qcomicbook-0.8.2/i18n/qcomicbook_cs_CZ.ts000644 001750 001750 00000116767 11644604742 020521 0ustar00pawelpawel000000 000000 AboutDialog About O programu Close Zavřít BookmarkManager QComicBook Bookmarks Záložky QComicBook Name Název Page Strana Select all Vybrat vÅ¡e Invert selection Obrátit výbÄ›r Select invalid Vybrat neplatné Clear selection Smazat výbÄ›r Remove selected Odstranit vybrané Close Zavřít ComicMainWindow QComicBook &File &Soubor &View &Pohled &Navigation &Navedení &Bookmarks &Záložky &Settings &Nastavení &Help &NápovÄ›da Toolbar Nástrojový pruh Open archive Otevřít archiv Ctrl+O Ctrl+O Open directory Otevřít adresář Ctrl+D Ctrl+D Open next Otevřít další Ctrl+N Ctrl+N Open previous Otevřít pÅ™edchozí Ctrl+P Ctrl+P Save page as Uložit stranu jako Info Informace Alt+I Alt+I Close Zavřít Quit UkonÄit Ctrl+Q Ctrl+Q Original size Původní velikost Alt+O Alt+O Fit width PÅ™izpůsobit šířce okna Alt+W Alt+W Fit height PÅ™izpůsobit výšce okna Alt+H Alt+H Whole page Celá strana Alt+A Alt+A Best fit Nejlepší umístÄ›ní Alt+B Alt+B Rotate right OtoÄit vpravo Rotate left OtoÄit vlevo No rotation Žádné otoÄení Preserve rotation Zachovat otoÄení Two pages DvÄ› strany Ctrl+T Ctrl+T Japanese mode Japonský režim (manga) Ctrl+J Ctrl+J Fullscreen Celá obrazovka F11 F11 Next page Další strana PgDown PgDown Previous page PÅ™edchozí strana PgUp PgUp 5 pages forward O 5 stran dopÅ™edu 5 pages backward O 5 stran dozadu Go to page... Jít na stranu... First page První strana Ctrl+Home Last page Poslední strana Ctrl+End Page top ZaÄátek strany Home Home Page bottom Konec strany End End Continuous view PokraÄující pohled Print Tisk Frame view RámeÄkový pohled Simple view Jednoduchý pohled Next Frame Další rámeÄek Previous Frame PÅ™edchozí rámeÄek About Qt O Qt About donating Informace o darech Continuous scrolling CiÄ…gÅ‚e przesuwanie Add bookmark PÅ™idat záložku Remove bookmark Odstranit záložku Manage bookmarks Spravovat záložky Scrollbars Posuvníky Statusbar Stavový řádek Configure QComicBook Nastavit QComicBook System information Informace o systému About O programu Scroll right ProjíždÄ›t doprava Right Vpravo Scroll left ProjíždÄ›t doleva Left Vlevo Jump down SkoÄit dolů Space Mezerník Jump up SkoÄit nahoru Backspace Backspace Scroll right fast ProjíždÄ›t rychle doprava Shift+Right Scroll left fast ProjíždÄ›t rychle doleva Shift+Left Scroll up fast ProjíždÄ›t rychle nahoru Shift+Up Scroll down fast ProjíždÄ›t rychle dolů Shift+Down Scroll up ProjíždÄ›t nahoru Up Å ipka nahoru Scroll down ProjíždÄ›t dolů Down Å ipka dolů ConfigDialog QComicBook Settings Nastavení QComicBook Display Zobrazení General Obecné Small mouse cursor Malé ukazovátko myÅ¡i Embed page numbers Vložit Äísla stran Smooth scaling Plynulá zmÄ›na velikosti Background color Barva pozadí Info text font Písmo textu v informaÄním oknÄ› Choose Vybrat Fullscreen mode Režim na celou obrazovku Hide menubar Skrýt nabídkový pruh Hide toolbar Skrýt nástrojový pruh Hide statusbar Skrýt stavový řádek Performance Provedení Cache Vyrovnávací paměť Cache Size Velikost vyrovnávací pamÄ›ti Mb MB Auto adjust cache size Automaticky pÅ™izpůsobit velikost vyrovnávací pamÄ›ti Preload next page Nahrát dopÅ™edu další stranu Thumbnails Náhledy Use disk cache for thumbnails Použít vyrovnávací paměť na náhledy Thumbnails aging Zachování starých náhledů Misc Různé Convenience Informace/Různé Open info dialog after opening a comicbook Otevřít informaÄní okno po otevÅ™ení komiksu Show splashscreen Ukázat uvítací obrazovku Confirm exit Potvrdit ukonÄení programu Temporary directory DoÄasný adresář Browse Procházet DonationDialog Please donate QComicBook! Obdarujte, prosím, QComicBook! Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Drazí uživatelé programu QComicBook, pokud se vám QComicBook líbí, zvažte malý dar pro jeho pokraÄující vývoj. QComicBook vyvíjím ve svém volném Äase a dávám je ostatním zdarma. Váš dar pomůže se zaplacením poplatků za hostování stránek na internetu a mÄ› povzbudí k pÅ™idávání nových vlastností a k dokonce k tomu, abych na jeho vývoji strávil jeÅ¡tÄ› více Äasu. Poskytnutí daru je jednoduché - staÄí klepnout na tlaÄítko "Flattr" dole! Poznámka: k této informaci se dostanete pÅ™es položku darovací nabídky NápovÄ›da/O programu. <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Remind me later PÅ™ipomeň mi to pozdÄ›ji I'll donate. Don't show this dialog again Poskytnu dar. Neukazuj mi toto okno znovu Close Zavřít GoToPageWidget Go to page... Jít na stranu... Page number Číslo strany /0 Go Jdi na PrintProgressDialog Printing. Please wait... Probíhá tisk. PoÄkejte, prosím... Printing page: Tisk strany: 0 0 Cancel ZruÅ¡it QComicBook::ArchiversConfiguration Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. NÄ›které archivy nejsou podporovány z toho důvodu, že chybí základní vnÄ›jší pomůcky. Nainstalujte, prosím, požadované programy a spusÅ¥te QComicBook znovu. Poznámka: pokud je pro daný typ archivu vypsáno více než jeden program, postaÄí nainstalování jen jednoho z nich. Free (opensource) version of unrar was detected. This version has problems with many rar archives. It is recommended to install the non-free unrar and restart QComicBook. Byla zjiÅ¡tÄ›na svobodná (open source) verze programu unrar. Tato verze má potíže s mnoha archivy rar. DoporuÄuje se nainstalovat "ne-svobodný" unrar a spustit QComicBook znovu. QComicBook::BookmarkManager Deleting bookmarks Mažou se záložky Delete selected bookmarks? Smazat vybrané záložky? QComicBook::ComicBookCfgDialog Choose temporary directory Wybierz katalog tymczasowy Vybrat doÄasný adresář QComicBook::ComicBookInfo QComicBook info Informace QComicBook QComicBook::ComicMainWindow Escape Odejít Alt+t Recently opened Naposledy otevÅ™eno Leave QComicBook? Opustit QComicBook? Do you really want to quit QComicBook? Opravdu chcete ukonÄit QComicBook? no images found Nebyly nalezeny žádné obrázky unknown archive Neznámý typ archivu can't access directory Nelze pÅ™istoupit k adresáři file/directory not found Soubor/Adresář nenalezen archive not supported Archiv nepodporován archive extractor exited with error RozbalovaÄ archivů skonÄil s chybou QComicBook error Chyba QComicBooku Error opening comicbook Chyba pÅ™i otevírání komiksu Choose a directory Vybrat adresář Choose a file Vybrat soubor Page Strana Removing bookmark Odstraňuje se záložka Do you really want to remove bookmark for this comic book? Opravdu chcete odstranit záložku z tohoto komiksu? Save image as Uložit obrázek jako page Strana Error saving image Chyba pÅ™i ukládání obrázku Comic book not found Komiks nenalezen Selected bookmark points to non-existing comic book Do you want to remove it? Vybraná záložka ukazuje na neexistující komiks. Chcete ji odstranit? Can't initialize QComicBook directories Nelze zapoÄít adresáře QComicBooku QComicBook::ImgDirSink bytes Bytů Kbytes KiB Mbytes MiB QComicBook::RecentFilesMenu Cleanup list Uklidit seznam QComicBook::StatusBar Page Strana QComicBook::SystemInfoDialog Supported archivers Podporované archivy Archive type Typ archivu Supported file extensions Podporované souborové přípony Unsupported archivers Nepodporované archivy Required executable(s) Požadované programy Hints Rady Hint Wskazówka Some archives are not supported because essential external utilities are missing. Please install required executables and restart QComicBook. Note: if more than one executable is listed for given archive type, then it is sufficient to install just one of them. Niektóre archiwa nie sÄ… obsÅ‚ugiwane, ponieważ nie odnaleziono wymaganych programów zewnÄ™trznych. Zainstaluj wymagane programy i uruchom QComicBook ponownie. Uwaga: jeÅ›li dla okreÅ›lonego typu archiwów wymienionych jest wiÄ™cej wymaganych programów, wystarczajÄ…ce jest zainstalowanie jednego z nich. Supported image formats Podporované formáty obrázků QComicBook::ThumbnailsView Go to Jít na QComicBook::ThumbnailsWindow Thumbnails Náhledy SystemInfoDialog System information Informace o systému qcomicbook-0.8.2/README-translations000644 001750 001750 00000001756 11644604742 017551 0ustar00pawelpawel000000 000000 If you want to translate QComicBook to a language of your choice, please read on. First off, contact me to ensure no one else is working on same translation. Then retrieve the latest QComicBook sources using git client, or via web interface (download a snapshot tarball) - go to http://github.com/stolowski/QComicBook Once you have the snapshot of QComicBook compiled, do the following: 1. Change directory to i18n and execute "update_ts.sh qcomicbook_xx_XX.ts" (replace xx_XX with yours country code). This will create a skeleton file for your translation. 2. Run Qt4 Linguist, open the generated .ts file and translate it. 3. In Qt4 Linguist, click "Release As.." and save the resulting .qm file to /usr/share/qcomicbook/i18n/ directory (or wherever you installed qcomicbook). 4. Run QComicBook; you should now see your translated messages. 5. Once you are happy with your translation, send me the .ts file (attach the file "as is", or as a git diff if you're working with QComicBook git repository).qcomicbook-0.8.2/src/FrameView.cpp000644 001750 001750 00000007005 11644604742 017323 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "FrameView.h" #include "ComicBookSettings.h" #include "Page.h" #include "FrameWidget.h" #include #include #include #include #include #include using namespace QComicBook; FrameView::FrameView(QWidget *parent, int physicalPages, const ViewProperties& props) : PageViewBase(parent, physicalPages, props) , m_currentPage(0) //?? , m_currentFrame(0) , m_frame(0) { QWidget *w = new QWidget(this); w->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); m_layout = new QVBoxLayout(w); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setSpacing(0); m_layout->setAlignment(Qt::AlignCenter); setWidget(w); m_frame = new FrameWidget(this, viewport()->width() - 10, viewport()->height() - 10); m_layout->addWidget(m_frame); setWidgetResizable(true); setBackground(props.background()); setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); } FrameView::~FrameView() { } void FrameView::setImage(const Page &img1) { if (img1.getNumber() == m_currentPage) { m_page = img1; } } void FrameView::setImage(const Page &img1, const Page &img2) { if (img1.getNumber() == m_currentPage) { m_page = img1; } } void FrameView::setFrames(const ComicFrameList &frames) { if (frames.pageNumber() == m_currentPage) { m_frames = frames; m_frames.sort(props.mangaMode()); m_currentFrame = 0; gotoFrame(m_currentFrame); } } void FrameView::nextFrame() { if (m_currentFrame < m_frames.count() - 1) { ++m_currentFrame; gotoFrame(m_currentFrame); } else { gotoPage(m_currentPage + 1); } } void FrameView::prevFrame() { if (m_currentFrame > 0) { --m_currentFrame; gotoFrame(m_currentFrame); } else { gotoPage(m_currentPage - 1); } } void FrameView::gotoFrame(int n) { if (n < m_frames.count()) { m_currentFrame = n; const ComicFrame f(m_frames[n]); m_frame->setFrame(m_page, f); } } void FrameView::clear() { m_frame->clear(); } void FrameView::gotoPage(int n) { if (n>= 0 && n < numOfPages()) { m_currentPage = n = roundPageNumber(n); addRequest(m_currentPage, false); emit currentPageChanged(n); ComicBookSettings &cfg(ComicBookSettings::instance()); if (cfg.preloadPages() && n < numOfPages()) { ++n; qDebug() << "preloading" << n; addRequest(n, false); } } } void FrameView::scrollToTop() { verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); } void FrameView::scrollToBottom() { verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMaximum); } void FrameView::propsChanged() { m_frames.sort(props.mangaMode()); gotoFrame(m_currentFrame); } int FrameView::visiblePages() const { return 1; } int FrameView::viewWidth() const { return width(); //TODO? } int FrameView::currentPage() const { return m_currentPage; } void FrameView::resizeEvent(QResizeEvent *e) { if (m_frame) { m_frame->recalcScaledSize(); m_frame->redrawScaledImage(); } PageViewBase::resizeEvent(e); } qcomicbook-0.8.2/src/DirReader.cpp000644 001750 001750 00000002274 11644604742 017302 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "DirReader.h" DirReader::DirReader(QDir::SortFlags sortFlags, int maxDepth): flags(sortFlags), maxDirDepth(maxDepth) { } DirReader::~DirReader() { } void DirReader::recurseDir(const QString &path, int curDepth) { QDir dir(path); dir.setSorting(flags); dir.setFilter(QDir::AllDirs|QDir::Files); const QStringList files = dir.entryList(); foreach (QString f, files) { if (f == "." || f == "..") continue; QFileInfo finf(dir, f); fileHandler(finf); if (finf.isDir()) // && (finf.absoluteFilePath() != path)) { if (curDepth < maxDirDepth) { recurseDir(finf.absoluteFilePath(), curDepth+1); } } } } void DirReader::visit(const QString &path) { recurseDir(path, 0); } qcomicbook-0.8.2/src/ImageFormatsInfo.cpp000644 001750 001750 00000002533 11644604742 020631 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImageFormatsInfo.h" #include using namespace QComicBook; ImageFormatsInfo* ImageFormatsInfo::sm_info(NULL); ImageFormatsInfo& ImageFormatsInfo::instance() { if (!sm_info) { sm_info = new ImageFormatsInfo(); } return *sm_info; } ImageFormatsInfo::ImageFormatsInfo() { foreach (QByteArray b, QImageReader::supportedImageFormats()) { // // Qt may support more formats, but this is to ensure only the ones that make sense for // QComicBook are included. if (b == "jpg" || b == "jpeg" || b == "bmp" || b == "png" || b == "tiff" || b == "gif" || b == "xpm") { m_extensions.append("." + b); m_formats.append(QString(b).toUpper()); } } } ImageFormatsInfo::~ImageFormatsInfo() { delete sm_info; } QStringList ImageFormatsInfo::extensions() const { return m_extensions; } QStringList ImageFormatsInfo::formats() const { return m_formats; } qcomicbook-0.8.2/src/ViewProperties.cpp000644 001750 001750 00000005221 11644604742 020423 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ViewProperties.h" #include "ComicBookSettings.h" #include using namespace QComicBook; ViewProperties::ViewProperties() { setFromSettings(); } ViewProperties::ViewProperties(const ViewProperties &props) { m_size = props.m_size; m_angle = props.m_angle; m_pageNumbers = props.m_pageNumbers; m_contScroll = props.m_contScroll; m_twoPagesMode = props.m_twoPagesMode; m_mangaMode = props.m_mangaMode; m_background = props.m_background; } void ViewProperties::setFromSettings() { ComicBookSettings &cfg(ComicBookSettings::instance()); m_size = cfg.pageSize(); m_angle = 0; //? m_pageNumbers = cfg.embedPageNumbers(); m_contScroll = cfg.continuousScrolling(); m_twoPagesMode = cfg.twoPagesMode(); m_mangaMode = cfg.japaneseMode(); m_background = cfg.background(); } int ViewProperties::angle() const { return m_angle; } void ViewProperties::setAngle(Rotation r, bool notify) { if (r == None && m_angle == 0) return; if (r == Right) ++m_angle; else if (r == Left) --m_angle; else m_angle = 0; //None m_angle &= 3; if (notify) { emit changed(); } } Size ViewProperties::size() const { return m_size; } void ViewProperties::setSize(Size s) { if (m_size != s) { m_size = s; emit changed(); } } bool ViewProperties::pageNumbers() const { return m_pageNumbers; } void ViewProperties::setPageNumbers(bool f) { if (m_pageNumbers != f) { m_pageNumbers = f; emit changed(); } } QColor ViewProperties::background() const { return m_background; } void ViewProperties::setBackground(const QColor &c) { if (m_background != c) { m_background = c; emit changed(); } } bool ViewProperties::continuousScrolling() const { return m_contScroll; } void ViewProperties::setTwoPagesMode(bool f) { if (m_twoPagesMode != f) { m_twoPagesMode = f; emit changed(); } } bool ViewProperties::twoPagesMode() const { return m_twoPagesMode; } void ViewProperties::setMangaMode(bool f) { if (m_mangaMode != f) { m_mangaMode = f; emit changed(); } } bool ViewProperties::mangaMode() const { return m_mangaMode; } qcomicbook-0.8.2/src/PageLoaderThread.h000644 001750 001750 00000001754 11644604742 020243 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file PageLoaderThread.h */ #ifndef __PAGELOADERTHREAD_H #define __PAGELOADERTHREAD_H #include "LoaderThreadBase.h" namespace QComicBook { class Page; //! Thread-based image loader. class PageLoaderThread: public LoaderThreadBase { Q_OBJECT signals: void pageLoaded(const Page &); void pageLoaded(const Page &, const Page &); public: PageLoaderThread(); virtual ~PageLoaderThread(); protected: virtual bool process(const LoadRequest &req); }; } #endif qcomicbook-0.8.2/src/ThumbnailsView.h000644 001750 001750 00000002442 11644604742 020044 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __THUMBNAILSVIEW_H #define __THUMBNAILSVIEW_H #include #include #include class QPixmap; class QMenu; class QListWidgetItem; namespace QComicBook { class Thumbnail; class ThumbnailsView: public QListWidget { Q_OBJECT private: int numpages; QPixmap *emptypage; QVector icons; QMenu *menu; QListWidgetItem *selected; signals: void requestedPage(int n, bool force); protected slots: void onDoubleClick(QListWidgetItem *item); void goToPageAction(); virtual void contextMenuEvent(QContextMenuEvent *e); public: ThumbnailsView(QWidget *parent); virtual ~ThumbnailsView(); virtual bool isLoaded(int n) const; public slots: void setPages(int pages); void setPage(int n, const QPixmap &img); void setPage(const Thumbnail &t); void clear(); void scrollToPage(int n); }; } #endif qcomicbook-0.8.2/src/FileSignature.h000644 001750 001750 00000001633 11644604742 017645 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FILE_SIGNATURE_H #define __FILE_SIGNATURE_H #include #include namespace QComicBook { class FileSignature { public: FileSignature(unsigned int offset, const char *pattern, unsigned int len); FileSignature(); FileSignature(const FileSignature &sig); ~FileSignature(); bool matches(QFile *file) const; FileSignature& operator =(const FileSignature &sig); private: unsigned int offset; QByteArray pattern; }; } #endif qcomicbook-0.8.2/src/Sink/ImgSink.h000644 001750 001750 00000007471 11644604742 017357 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __IMGSINK_H #define __IMGSINK_H #include class QImage; namespace QComicBook { class Page; class Thumbnail; class ImgCache; //! Possible errors. enum SinkError { SINKERR_ACCESS = 1, //! * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgDirSink.h" #include "ComicBookSettings.h" #include "ImageFormatsInfo.h" #include #include #include #include #include #include #include using namespace QComicBook; // // maximum size of description file (won't load files larger than that) const int ImgDirSink::MAX_TEXTFILE_SIZE = 65535; ImgDirSink::ImgDirSink(bool dirs, int cacheSize): ImgSink(cacheSize), dirpath(QString::null), DirReader(QDir::DirsLast|QDir::Name|QDir::IgnoreCase, 6) { } ImgDirSink::ImgDirSink(const QString &path, bool dirs, int cacheSize): ImgSink(cacheSize), dirpath(QString::null), DirReader(QDir::DirsLast|QDir::Name|QDir::IgnoreCase, 6) { open(path); } ImgDirSink::ImgDirSink(const ImgDirSink &sink, int cacheSize): ImgSink(cacheSize), DirReader(QDir::DirsLast|QDir::Name|QDir::IgnoreCase, 6) { dirpath = sink.dirpath; imgfiles = sink.imgfiles; txtfiles = sink.txtfiles; otherfiles = sink.otherfiles; dirs = sink.dirs; timestamps = sink.timestamps; } ImgDirSink::~ImgDirSink() { close(); } QString ImgDirSink::memPrefix(int &s) { QString mempfix; if (s < 1024) { mempfix = tr("bytes"); } else if (s < 1024*1024) { s /= 1024; mempfix = tr("Kbytes"); } else { s /= 1024*1024; mempfix = tr("Mbytes"); } return mempfix; } bool ImgDirSink::fileHandler(const QFileInfo &finfo) { const QString fname = finfo.fileName(); if (knownImageExtension(fname)) { imgfiles.append(finfo.absoluteFilePath()); timestamps.insert(finfo.absoluteFilePath(), FileStatus(finfo.lastModified())); return true; } if (fname.endsWith(".nfo", Qt::CaseInsensitive) || fname == "file_id.diz") { txtfiles.append(finfo.absoluteFilePath()); return true; } otherfiles.append(finfo.absoluteFilePath()); return false; } int ImgDirSink::open(const QString &path) { int status; emit progress(0, 1); QFileInfo info(path); if (!info.exists()) status = SINKERR_NOTFOUND; else { if (info.isDir()) { if (info.isReadable() && info.isExecutable()) { dirpath = path; visit(path); status = (numOfImages() > 0) ? 0 : SINKERR_EMPTY; } else status = SINKERR_ACCESS; } else status = SINKERR_NOTDIR; } setComicBookName(path, dirpath); if (status == 0) emit progress(1, 1); return status; } void ImgDirSink::close() { listmtx.lock(); dirpath = QString::null; imgfiles.clear(); txtfiles.clear(); otherfiles.clear(); dirs.clear(); listmtx.unlock(); } QString ImgDirSink::getFullFileName(int page) const { return page < numOfImages() ? imgfiles[page] : QString::null; } QStringList ImgDirSink::getDescription() const { if (desc.count() == 0) //read files only once { for (QStringList::const_iterator it = txtfiles.begin(); it!=txtfiles.end(); it++) { QFileInfo finfo(*it); QFile f(*it); if (f.open(QIODevice::ReadOnly) && (f.size() < MAX_TEXTFILE_SIZE)) { QString cont; QTextStream str(&f); while (!str.atEnd()) cont += str.readLine() + "\n"; f.close(); desc.append(finfo.fileName()); //append file name desc.append(cont); //and contents } } } return desc; } QImage ImgDirSink::image(unsigned int num, int &result) { result = SINKERR_LOADERROR; listmtx.lock(); const int imgcnt = imgfiles.count(); QImage im; if (num < imgcnt) { const QString fname = imgfiles[num]; listmtx.unlock(); if (!im.load(fname)) result = 1; else result = 0; /*const QFileInfo finf(fname); f (rimg.load(fname)) { result = 0; if (timestamps[fname] != finf.lastModified()) timestamps[fname].set(finf.lastModified(), true); }*/ } else { listmtx.unlock(); result = 0; } const Page page(num, im); return page; } int ImgDirSink::numOfImages() const { listmtx.lock(); const int n = imgfiles.count(); listmtx.unlock(); return n; } QStringList ImgDirSink::getAllfiles() const { listmtx.lock(); QStringList l = imgfiles + txtfiles + otherfiles; listmtx.unlock(); return l; } QStringList ImgDirSink::getAlldirs() const { return dirs; } QStringList ImgDirSink::getAllimgfiles() const { listmtx.lock(); const QStringList l = imgfiles; listmtx.unlock(); return l; } bool ImgDirSink::timestampDiffers(int page) const { if (page < 0 || page > numOfImages()) return false; listmtx.lock(); const QString fname = imgfiles[page]; listmtx.unlock(); QFileInfo f(fname); return f.lastModified() != timestamps[fname]; } bool ImgDirSink::hasModifiedFiles() const { // // check timestamps of all files for (QMap::ConstIterator it = timestamps.begin(); it != timestamps.end(); ++it) { QFileInfo finf(it.key()); if ((*it).isModified() || *it != finf.lastModified()) return true; } return false; } bool ImgDirSink::supportsNext() const { return false; } QString ImgDirSink::getNext() const { return QString::null; } QString ImgDirSink::getPrevious() const { return QString::null; } void ImgDirSink::removeThumbnails(int days) { if (days < 1) return; const QDateTime currdate = QDateTime::currentDateTime(); QDir dir(ComicBookSettings::instance().thumbnailsDir(), "*.jpg", QDir::Unsorted, QDir::Files|QDir::NoSymLinks); const QStringList files = dir.entryList(); for (QStringList::const_iterator it = files.begin(); it!=files.end(); it++) { QFileInfo finfo(dir.absoluteFilePath(*it)); if (finfo.lastModified().daysTo(currdate) > days) dir.remove(*it); } } bool ImgDirSink::knownImageExtension(const QString &path) { foreach (QString ext, ImageFormatsInfo::instance().extensions()) { if (path.endsWith(ext, Qt::CaseInsensitive)) { return true; } } return false; } QString ImgDirSink::getKnownImageExtension(const QString &path) { foreach (QString ext, ImageFormatsInfo::instance().extensions()) { if (path.endsWith(ext, Qt::CaseInsensitive)) return ext; } return QString::null; } QStringList ImgDirSink::getKnownImageExtensionsList() { QStringList list; foreach (QString ext, ImageFormatsInfo::instance().extensions()) { QString p("*"); p.append(ext); list << p; } return list; } qcomicbook-0.8.2/src/Sink/ImgSink.cpp000644 001750 001750 00000004256 11644604742 017710 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgSink.h" #include "ImgCache.h" #include "../Page.h" #include "Thumbnail.h" #include #include using namespace QComicBook; ImgSink::ImgSink(int cacheSize): cbname(QString::null), cbfullname(QString::null), QObject() { cache = new ImgCache(cacheSize); } ImgSink::~ImgSink() { qDebug() << "deleting ImgSink"; delete cache; } void ImgSink::setCacheSize(int cacheSize, bool autoAdjust) { cache->setSize(cacheSize, autoAdjust); } Page ImgSink::getImage(unsigned int num, int &result) { QImage im; if (cache->get(num, im)) { result = 0; qDebug() << "from cache:" << num; } else { im = image(num, result); //TODO check result cache->insertImage(num, im); qDebug() << "to cache:" << num; } const Page page(num, im); return page; } Thumbnail ImgSink::getThumbnail(unsigned int num, bool thumbcache) { Thumbnail t(num, cbname.remove('/')); // // try to load cached thumbnail if (thumbcache) { if (t.tryLoad()) { qDebug() << "thumbnail" << num << "loaded from disk"; return t; } } int result; // // try to load image const Page p(getImage(num, result)); if (result == 0) { t.setImage(p.getImage()); // // save thumbnail if caching enabled if (thumbcache) { t.save(); } } return t; } void ImgSink::setComicBookName(const QString &name, const QString &fullName) { cbname = name; cbfullname = fullName; } QString ImgSink::getFullName() const { return cbfullname; } QString ImgSink::getName(int maxlen) const { if (cbname.length() < maxlen) return cbname; const QString tmpname(cbname.left(maxlen-3) + "..."); return tmpname; } qcomicbook-0.8.2/src/Sink/ImgSinkFactory.cpp000644 001750 001750 00000002727 11644604742 021241 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgSinkFactory.h" #include "ImgPdfSink.h" #include "ImgDirSink.h" #include "ImgArchiveSink.h" #include #include using namespace QComicBook; ImgSinkFactory::ImgSinkFactory() { } ImgSinkFactory::~ImgSinkFactory() { } ImgSinkFactory& ImgSinkFactory::instance() { static ImgSinkFactory f; return f; } void ImgSinkFactory::deleteLater(ImgSink *sink) { sink->deleteLater(); } QSharedPointer ImgSinkFactory::createImgSink(SinkType s) { if (s == ArchiveSink) return QSharedPointer(new ImgArchiveSink(), ImgSinkFactory::deleteLater); if (s == DirSink) return QSharedPointer(new ImgDirSink(), ImgSinkFactory::deleteLater); if (s == PdfSink) return QSharedPointer(new ImgPdfSink(), ImgSinkFactory::deleteLater); return QSharedPointer(); } QSharedPointer ImgSinkFactory::createImgSink(const QString &path) { const QFileInfo finfo(path); if (finfo.isDir()) return createImgSink(DirSink); else if (path.endsWith("pdf")) //FIXME return createImgSink(PdfSink); else return createImgSink(ArchiveSink); } qcomicbook-0.8.2/src/Sink/ImgArchiveSink.cpp000644 001750 001750 00000016517 11644604742 021215 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgArchiveSink.h" #include "Utility.h" #include "Archivers/ArchiversConfiguration.h" #include "ComicBookSettings.h" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace QComicBook; using Utility::which; ImgArchiveSink::ImgArchiveSink(): ImgDirSink() { init(); } ImgArchiveSink::ImgArchiveSink(const QString &path): ImgDirSink() { init(); open(path); } ImgArchiveSink::ImgArchiveSink(const ImgDirSink &sink): ImgDirSink(sink) { init(); } ImgArchiveSink::~ImgArchiveSink() { ImgArchiveSink::close(); } bool ImgArchiveSink::fileHandler(const QFileInfo &finfo) { const QString fname = finfo.fileName(); const QString fullname = finfo.absoluteFilePath(); if (finfo.isDir()) archdirs.prepend(fullname); if (ImgDirSink::fileHandler(finfo)) { archfiles.append(fullname); return true; } if (finfo.isFile()) { QStringList extractargs, listargs; ArchiversConfiguration::instance().getExtractArguments(fullname, extractargs, listargs); if (extractargs.size()) { const QString tmp = makeTempDir(finfo.absolutePath()); archdirs.prepend(tmp); extract(fullname, tmp, extractargs, listargs); // // remove cb archive we just extracted, no need to waste space QDir dir(finfo.absolutePath()); dir.remove(fname); visit(tmp); return true; } archfiles.append(fullname); } return false; } void ImgArchiveSink::init() { pinf = new QProcess(this); pext = new QProcess(this); connect(pinf, SIGNAL(readyReadStandardOutput()), this, SLOT(infoStdoutReady())); connect(pinf, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(infoExited(int, QProcess::ExitStatus))); connect(pext, SIGNAL(readyReadStandardOutput()), this, SLOT(extractStdoutReady())); connect(pext, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(extractExited(int, QProcess::ExitStatus))); } void ImgArchiveSink::doCleanup() { if (!tmppath.isEmpty()) { QDir dir(tmppath); // // remove temporary files and dirs foreach (const QString f, archfiles) dir.remove(f); foreach (const QString f, archdirs) { dir.rmdir(f); } dir.rmdir(tmppath); } } int ImgArchiveSink::waitForFinished(QProcess *p) { // // an ugly busy-loop with 1s sleep. // waitForFinished(-1) hangs when used with processEvents(). for (;;) { if (p->waitForFinished(1000) == true) break; if (p->state() == QProcess::NotRunning) break; } return p->exitStatus() == QProcess::NormalExit && p->exitCode() == 0; } int ImgArchiveSink::extract(const QString &filename, const QString &destdir, QStringList extargs, QStringList infargs) { if (extargs.size() == 0 ) return SINKERR_UNKNOWNFILE; const QFileInfo finf(filename); if (!finf.isReadable()) return SINKERR_ACCESS; const QString extprg = extargs.takeFirst(); const QString infprg = infargs.takeFirst(); pext->setWorkingDirectory(destdir); // // extract archive file list first pinf->start(infprg, infargs); if (!waitForFinished(pinf)) return SINKERR_ARCHEXIT; extcnt = 0; pext->start(extprg, extargs); return waitForFinished(pext) ? 0 : SINKERR_ARCHEXIT; } int ImgArchiveSink::open(const QString &path) //TODO: cleanup if already opened? { filesnum = 0; archfiles.clear(); QFileInfo info(path); archivepath = path; archivename = info.fileName(); setComicBookName(archivename, archivepath); if (!info.exists()) return SINKERR_NOTFOUND; if (info.isFile()) { if (info.isReadable()) { tmppath = makeTempDir(ComicBookSettings::instance().tmpDir()); archdirs.prepend(tmppath); QStringList extractargs, listargs; ArchiversConfiguration::instance().getExtractArguments(path, extractargs, listargs); int status = extract(path, tmppath, extractargs, listargs); if (status != 0) { close(); return status; } visit(tmppath); emit progress(1, 1); return 0; } else { return SINKERR_ACCESS; } } return SINKERR_NOTFILE; } void ImgArchiveSink::close() { ImgDirSink::close(); doCleanup(); archivename = QString::null; } void ImgArchiveSink::infoExited(int code, QProcess::ExitStatus exitStatus) { } void ImgArchiveSink::extractExited(int code, QProcess::ExitStatus exitStatus) { // // fix permissions of files; this is needed for ace archives as unace // is buggy and sets empty permissions. foreach (const QString f, archfiles) { QFileInfo finfo(f); if (!finfo.isReadable()) chmod(f.toLocal8Bit(), S_IRUSR|S_IWUSR); } } void ImgArchiveSink::infoStdoutReady() { QByteArray b = pinf->readAllStandardOutput(); for (int i=0; ireadAllStandardOutput(); for (int i=0; iprocessEvents(QEventLoop::ExcludeSocketNotifiers | QEventLoop::ExcludeUserInputEvents); } QString ImgArchiveSink::makeTempDir(const QString &parent) { static bool initsrand = false; // // make sure srand is called only once if (!initsrand) { srand(time(NULL)); initsrand = true; } QDir dir(parent); for (;;) { const int n = rand(); const QString tmpd = QString("qcomic-") + QString::number(n); if (!dir.exists(tmpd)) { if (!dir.mkdir(tmpd)) { break; } return parent + QDir::separator() + tmpd; } } return QString::null; } bool ImgArchiveSink::supportsNext() const { return true; } QString ImgArchiveSink::getNext() const { QFileInfo finfo(getFullName()); QDir dir(finfo.absolutePath()); //get the full path of current cb QStringList files = dir.entryList(ArchiversConfiguration::instance().supportedOpenExtensions(), QDir::Files|QDir::Readable, QDir::Name); int i = files.indexOf(finfo.fileName()); //find current cb if ((i >= 0) && (i < files.size()-1)) return dir.absoluteFilePath(files.at(i+1)); //get next file name return QString::null; } QString ImgArchiveSink::getPrevious() const { QFileInfo finfo(getFullName()); QDir dir(finfo.absolutePath()); //get the full path of current cb QStringList files = dir.entryList(ArchiversConfiguration::instance().supportedOpenExtensions(), QDir::Files|QDir::Readable, QDir::Name); int i = files.indexOf(finfo.fileName()); //find current cb if (i > 0) return dir.absoluteFilePath(files.at(i-1)); return QString::null; } qcomicbook-0.8.2/src/Sink/ImgPdfSink.h000644 001750 001750 00000002502 11644604742 017777 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2011 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __IMGPDFSINK_H #define __IMGPDFSINK_H #include "ImgSink.h" #include #include #include namespace QComicBook { class ImgPdfSink: public ImgSink { public: ImgPdfSink(int cacheSize=0); ~ImgPdfSink(); int open(const QString &path); void close(); QImage image(unsigned int num, int &result); int numOfImages() const; QString getName(int maxlen = 50) { return ""; } QString getFullName() const { return ""; } QString getFullFileName(int page) const { return ""; } QStringList getDescription() const { return QStringList(); } bool timestampDiffers(int page) const { return false; } bool hasModifiedFiles() const { return false; } bool supportsNext() const { return false; } QString getNext() const { return ""; } QString getPrevious() const { return ""; } private: Poppler::Document *pdfdoc; mutable QMutex docmtx; //!< mutex for pdf document }; } #endif qcomicbook-0.8.2/src/Sink/ImgDirSink.h000644 001750 001750 00000007435 11644604742 020016 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file imgdirsink.h */ #ifndef __IMGDIRSINK_H #define __IMGDIRSINK_H #include #include #include #include #include #include "DirReader.h" #include "ImgSink.h" #include "../Page.h" class QImage; namespace QComicBook { class Thumbnail; //! Comic book directory sink. /*! Allows opening directories containing image files. */ class ImgDirSink: public ImgSink, protected DirReader { protected: class FileStatus { private: bool modified; QDateTime timestamp; public: FileStatus(): modified(false) {} FileStatus(const QDateTime &mtime): modified(false), timestamp(mtime) {} void set(const QDateTime &mtime, bool m) { timestamp = mtime; modified = m; } bool isModified() const { return modified; } bool operator==(const QDateTime &d) const { return d == timestamp; } bool operator!=(const QDateTime &d) const { return d != timestamp; } operator QDateTime() const { return timestamp; } }; static QString memPrefix(int &s); static const int MAX_TEXTFILE_SIZE; virtual bool fileHandler(const QFileInfo &finfo); private: mutable QMutex listmtx; //!< mutex for imgfiles QStringList imgfiles; //!< list of images files in directory QStringList txtfiles; //!< text files (.nfo, file_id.diz) QStringList otherfiles; //!< list of other files QStringList dirs; //!< directories QString dirpath; //!< path to directory QMap timestamps; //!< last modifications timestamps for all pages mutable QStringList desc; //txt files public: ImgDirSink(bool dirs=false, int cacheSize=0); ImgDirSink(const QString &path, bool dirs=false, int cacheSize=0); ImgDirSink(const ImgDirSink &sink, int cacheSize=0); virtual ~ImgDirSink(); //! Opens this comic book sink with specifiled path. /*! @param path comic book location * @return value grater than 0 for error; 0 on success */ virtual int open(const QString &path); //! Closes this comic book sink cleaning resources. virtual void close(); //! Returns an image for specified page. /*! The cache is first checked for image. If not found, the image is loaded. * @param num page number * @param result contains 0 on succes or value greater than 0 for error * @return an image */ virtual QImage image(unsigned int num, int &result); /*! @return number of images for this comic book sink */ virtual int numOfImages() const; virtual QString getFullFileName(int page) const; /*! @return contents of .nfo and file_id.diz files; file name goes first, then contents. */ virtual QStringList getDescription() const; virtual QStringList getAllfiles() const; virtual QStringList getAlldirs() const; virtual QStringList getAllimgfiles() const; virtual bool timestampDiffers(int page) const; virtual bool hasModifiedFiles() const; virtual bool supportsNext() const; //! Returns the next filename to open. /* @return next filename or QString::null */ virtual QString getNext() const; virtual QString getPrevious() const; // //! Removes old thumbnails. /*! @param days thumbnails older than this number will be removed */ static void removeThumbnails(int days); static bool knownImageExtension(const QString &path); static QString getKnownImageExtension(const QString &path); static QStringList getKnownImageExtensionsList(); }; } #endif qcomicbook-0.8.2/src/Sink/ImgArchiveSink.h000644 001750 001750 00000004256 11644604742 020657 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file imgarchivesink.h */ #ifndef __IMGARCHIVESINK_H #define __IMGARCHIVESINK_H #include #include #include #include #include #include "ImgDirSink.h" class QImage; namespace QComicBook { //! Comic book archive sink. /*! Allows opening different kind of archives containing image files. */ class ImgArchiveSink: public ImgDirSink { Q_OBJECT protected: QProcess *pext; ///< extracting process QProcess *pinf; ///< file list extracing process QString archivename; ///< archive file name, without path QString archivepath; ///< full path, including archive name QString tmppath; ///< path to extracted archive QStringList archfiles; ///< list of archive files QStringList archdirs; ///< list of archive dirs int filesnum; ///< number of files gathered from parsing archiver output, used for progress bar int extcnt; ///< extracted files counter for progress bar static int waitForFinished(QProcess *p); int extract(const QString &filename, const QString &destdir, QStringList extargs, QStringList infargs); void init(); virtual void doCleanup(); virtual bool fileHandler(const QFileInfo &finfo); protected slots: void extractExited(int code, QProcess::ExitStatus exitStatus); void extractStdoutReady(); void infoStdoutReady(); void infoExited(int code, QProcess::ExitStatus exitStatus); public: ImgArchiveSink(); ImgArchiveSink(const QString &path); ImgArchiveSink(const ImgDirSink &sink); virtual ~ImgArchiveSink(); virtual int open(const QString &path); virtual void close(); virtual bool supportsNext() const; virtual QString getNext() const; virtual QString getPrevious() const; static QString makeTempDir(const QString &parent = QDir::tempPath()); }; } #endif qcomicbook-0.8.2/src/Sink/ImgPdfSink.cpp000644 001750 001750 00000003210 11644604742 020327 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2011 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgPdfSink.h" #include "../Page.h" #include #include #include using namespace QComicBook; ImgPdfSink::ImgPdfSink(int cacheSize): ImgSink(cacheSize), pdfdoc(0) { } ImgPdfSink::~ImgPdfSink() { delete pdfdoc; } int ImgPdfSink::open(const QString &path) { emit progress(0, 1); pdfdoc = Poppler::Document::load(path); if (!pdfdoc || pdfdoc->isLocked()) { delete pdfdoc; pdfdoc = 0; return SINKERR_NOTFOUND; } pdfdoc->setRenderHint(Poppler::Document::Antialiasing, true); pdfdoc->setRenderHint(Poppler::Document::TextAntialiasing, true); QFileInfo info(path); setComicBookName(info.fileName(), path); emit progress(1, 1); return 0; } void ImgPdfSink::close() { delete pdfdoc; pdfdoc = 0; } QImage ImgPdfSink::image(unsigned int num, int &result) { result = 1; QMutexLocker lock(&docmtx); if (pdfdoc) { Poppler::Page* pdfpage = pdfdoc->page(num); if (pdfpage) { QImage img = pdfpage->renderToImage(QX11Info::appDpiX(), QX11Info::appDpiY()); //TODO use defaults if not using X11 (e.g. MS Win) delete pdfpage; result = 0; return img; } } return QImage(); } int ImgPdfSink::numOfImages() const { QMutexLocker lock(&docmtx); const int n = pdfdoc ? pdfdoc->numPages() : -1; return n; } qcomicbook-0.8.2/src/Sink/ImgSinkFactory.h000644 001750 001750 00000001637 11644604742 020705 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __IMGSINKFACTORY_H #define __IMGSINKFACTORY_H /*! \file imgsinkfactory.h */ #include class QString; namespace QComicBook { enum SinkType { ArchiveSink = 1, DirSink, PdfSink }; class ImgSink; class ImgSinkFactory { private: ImgSinkFactory(); ~ImgSinkFactory(); public: static ImgSinkFactory& instance(); static void deleteLater(ImgSink *sink); QSharedPointer createImgSink(SinkType s); QSharedPointer createImgSink(const QString &path); }; } #endif qcomicbook-0.8.2/src/ComicImageWidget.cpp000644 001750 001750 00000011462 11644604742 020601 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ComicImageWidget.h" #include #include #include "ComicBookSettings.h" #include "PageViewBase.h" #include using namespace QComicBook; ComicImageWidget::ComicImageWidget(PageViewBase *parent, int w, int h) : QWidget(parent) , m_view(parent) , imageSize(0, 0) , scaledSize(0, 0) , m_pixmap(0) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); setFixedSize(w, h); } ComicImageWidget::~ComicImageWidget() { delete m_pixmap; } void ComicImageWidget::dispose() { delete m_pixmap; m_pixmap = 0; scaledSize = QSize(0, 0); //? } bool ComicImageWidget::isDisposed() const { return m_pixmap == NULL; } void ComicImageWidget::setSourceSize(int w, int h) { imageSize = QSize(w, h); recalcScaledSize(); //redrawScaledImage(); } QSize ComicImageWidget::getSourceSize() const { return imageSize; } QSize ComicImageWidget::getScaledSize() const { return scaledSize; } void ComicImageWidget::recalcScaledSize() { const int viewW(m_view->viewport()->width()); const int viewH(m_view->viewport()->height()); int totalWidth, totalHeight; ViewProperties &props(m_view->properties()); if (props.angle() == 0 || props.angle() == 2) { totalWidth = imageSize.width(); totalHeight = imageSize.height(); } else { totalWidth = imageSize.height(); totalHeight = imageSize.width(); } Size size = props.size(); const double hRatio = static_cast(viewH) / totalHeight; const double wRatio = static_cast(viewW) / totalWidth; int pixmapWidth, pixmapHeight; //resulting image size (with scaling and rotation applied) if (size == BestFit) { if (totalWidth > totalHeight) size = FitWidth; else size = FitHeight; } if (size == Original) { pixmapWidth = totalWidth; pixmapHeight = totalHeight; } else if (size == FitWidth) { pixmapWidth = viewW; pixmapHeight = static_cast(static_cast(totalHeight) * wRatio); } else if (size == FitHeight) { pixmapWidth = static_cast(static_cast(totalWidth) * hRatio); pixmapHeight = viewH; } else if (size == WholePage) { const double ratio = std::min(wRatio, hRatio); pixmapWidth = static_cast(static_cast(ratio) * totalWidth); pixmapHeight = static_cast(static_cast(ratio) * totalHeight); } xoff = (viewW - pixmapWidth) / 2; yoff = props.continuousScrolling() ? 0 : (viewH - pixmapHeight) / 2; scaledSize = QSize(pixmapWidth, pixmapHeight); if (xoff < 0) xoff = 0; if (yoff < 0) yoff = 0; rmtx.reset(); if (props.angle() > 0) { if (props.angle() == 1) rmtx.translate(scaledSize.width(), 0); else if (props.angle() == 3) rmtx.translate(0, scaledSize.height()); else rmtx.translate(scaledSize.width(), scaledSize.height()); rmtx.rotate(static_cast(props.angle()) * 90.0f); } rmtx.scale(static_cast(pixmapWidth)/totalWidth, static_cast(pixmapHeight)/totalHeight); setContentsMargins(xoff, yoff, 0, 0); setFixedSize(scaledSize.width() + 2*xoff, scaledSize.height() + 2*yoff); updateGeometry(); } void ComicImageWidget::paintEvent(QPaintEvent *event) { QPainter p(this); if (m_pixmap) { p.drawPixmap(event->rect().x(), event->rect().y(), *m_pixmap, event->rect().x()-xoff, event->rect().y()-yoff, event->rect().width(), event->rect().height()); } else { p.fillRect(event->rect(), m_view->properties().background()); //? } event->accept(); } void ComicImageWidget::redrawScaledImage() { qDebug() << "redrawScaledImage"; ViewProperties &props(m_view->properties()); if (scaledSize.width() > 0) { if (m_pixmap == NULL || m_pixmap->width() != scaledSize.width() || m_pixmap->height() != scaledSize.height()) { delete m_pixmap; m_pixmap = new QPixmap(scaledSize.width(), scaledSize.height()); } QPainter p(m_pixmap); p.setRenderHint(QPainter::SmoothPixmapTransform, ComicBookSettings::instance().smoothScaling()); p.setWorldMatrix(rmtx); p.setWorldMatrixEnabled(true); redraw(p); p.end(); /* setContentsMargins(xoff, yoff, 0, 0); setFixedSize(scaledSize.width() + 2*xoff, scaledSize.height() + 2*yoff); updateGeometry();*/ update(); } } const QPixmap* ComicImageWidget::pixmap() const { return m_pixmap; } PageViewBase* ComicImageWidget::view() const { return m_view; } qcomicbook-0.8.2/src/IconViewThumbnail.h000644 001750 001750 00000001402 11644604742 020465 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ICONVIEWTHUMBNAIL_H #define __ICONVIEWTHUMBNAIL_H /*! \file iconviewthumbnail.h */ #include #include "ThumbnailItem.h" namespace QComicBook { class IconViewThumbnail: public QListWidgetItem, public ThumbnailItem { public: IconViewThumbnail(QListWidget *view, int page, const QPixmap &pixmap); virtual ~IconViewThumbnail(); }; } #endif qcomicbook-0.8.2/src/PrintProgressDialog.cpp000644 001750 001750 00000001350 11644604742 021374 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "PrintProgressDialog.h" using namespace QComicBook; PrintProgressDialog::PrintProgressDialog(QWidget *parent) : QDialog(parent) { setupUi(this); setAttribute(Qt::WA_DeleteOnClose); connect(bcancel, SIGNAL(clicked()), this, SIGNAL(abort())); } void PrintProgressDialog::setPage(int n) { page->setText(QString::number(n)); } qcomicbook-0.8.2/src/BookmarkManager.ui000644 001750 001750 00000005510 11644604742 020330 0ustar00pawelpawel000000 000000 BookmarkManager Qt::ApplicationModal 0 0 741 424 QComicBook Bookmarks QAbstractItemView::NoEditTriggers false QAbstractItemView::MultiSelection false false true Name Page Select all Invert selection Select invalid Clear selection Qt::Horizontal 40 20 Remove selected Close qcomicbook-0.8.2/src/BookmarkManager.h000644 001750 001750 00000002272 11644604742 020144 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file BookmarkManager.h */ #ifndef __BOOKMARKMANAGER_H #define __BOOKMARKMANAGER_H #include #include #include #include "ui_BookmarkManager.h" class QTreeWidgetItem; namespace QComicBook { class Bookmarks; class Bookmark; /** * @brief Widget for managing Bookmarks. */ class BookmarkManager: public QWidget, private Ui::BookmarkManager { Q_OBJECT private: QSharedPointer bookmarks; QList invalid; //! b); virtual ~BookmarkManager(); }; } #endif qcomicbook-0.8.2/src/BookmarkManager.cpp000644 001750 001750 00000005040 11644604742 020473 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "BookmarkManager.h" #include "Bookmarks.h" #include #include #include #include #include using namespace QComicBook; BookmarkManager::BookmarkManager(QWidget *parent, QSharedPointer b): QWidget(parent, Qt::Dialog), bookmarks(b) { setupUi(this); initBookmarkView(); connect(lview, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged())); connect(b_remsel, SIGNAL(clicked()), this, SLOT(removeSelected())); connect(b_selinv, SIGNAL(clicked()), this, SLOT(selectInvalid())); connect(b_selall, SIGNAL(clicked()), lview, SLOT(selectAll())); connect(b_selnone, SIGNAL(clicked()), lview, SLOT(clearSelection())); connect(b_selrev, SIGNAL(clicked()), this, SLOT(invertSelection())); connect(b_ok, SIGNAL(clicked()), this, SLOT(close())); selectionChanged(); } BookmarkManager::~BookmarkManager() { } void BookmarkManager::selectionChanged() { b_remsel->setDisabled(lview->selectedItems().size() == 0); } void BookmarkManager::initBookmarkView() { lview->clear(); invalid.clear(); QList blist = bookmarks->get(); foreach (Bookmark bk, blist) { QTreeWidgetItem *item = new QTreeWidgetItem(lview); item->setText(0, bk.getName()); item->setText(1, QString::number(bk.getPage() + 1)); if (!bk.isValid()) invalid.append(item); } lview->resizeColumnToContents(0); // make sure entire path is visible if (invalid.count() == 0) b_selinv->setDisabled(true); } void BookmarkManager::invertSelection() { for (QTreeWidgetItemIterator it(lview); *it; ++it) { (*it)->setSelected(! (*it)->isSelected()); } } void BookmarkManager::removeSelected() { QList todel(lview->selectedItems()); if (todel.count() && QMessageBox::question(this, tr("Deleting bookmarks"), tr("Delete selected bookmarks?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) { foreach (QTreeWidgetItem *item, todel) { bookmarks->remove(item->text(0)); delete item; } initBookmarkView(); //recreate the view } } void BookmarkManager::selectInvalid() { foreach (QTreeWidgetItem *item, invalid) item->setSelected(true); } qcomicbook-0.8.2/src/SystemInfoDialog.cpp000644 001750 001750 00000010111 11644604742 020646 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "SystemInfoDialog.h" #include "Archivers/ArchiversConfiguration.h" #include "ImageFormatsInfo.h" using namespace QComicBook; SystemInfoDialog::SystemInfoDialog(QWidget *parent): QDialog(parent) { setupUi(this); updateInfoText(); } void SystemInfoDialog::updateInfoText() { QString text; QList supported, unsupported; const QList hints(ArchiversConfiguration::instance().getHints()); foreach (ArchiverStatus s, ArchiversConfiguration::instance().getArchiversStatus()) { if (s.isSupported()) { supported.append(s); } else { unsupported.append(s); } } if (supported.size()) { text.append("

"); text.append("

"); text.append(tr("Supported archivers")); text.append("

"); text.append(""); text.append(""); text.append(""); text.append(""); text.append(""); foreach (ArchiverStatus s, supported) { text.append(""); text.append(""); text.append(""); text.append(""); } text.append("
"); text.append(tr("Archive type")); text.append(""); text.append(tr("Supported file extensions")); text.append("
"); text.append(s.name()); text.append(""); text.append(s.extensions().join(" ")); text.append("
"); text.append("

"); } if (unsupported.size()) { text.append("

"); text.append("

"); text.append(tr("Unsupported archivers")); text.append("

"); text.append(""); text.append(""); text.append(""); text.append(""); text.append(""); foreach (ArchiverStatus s, unsupported) { text.append(""); text.append(""); text.append(""); text.append(""); } text.append("
"); text.append(tr("Archive type")); text.append(""); text.append(tr("Required executable(s)")); text.append("
"); text.append(s.name()); text.append(""); text.append(s.executables().join(", ")); text.append("
"); text.append("

"); } if (hints.size()) { text.append("

"); text.append("

"); text.append(tr("Hints")); text.append("

"); text.append(""); foreach (ArchiverHint h, hints) { text.append(""); } text.append("
"); text.append(""); text.append(""); text.append(h.getMessage()); text.append("
"); text.append("

"); } text.append("

"); text.append("

"); text.append(tr("Supported image formats")); text.append("

"); text.append(ImageFormatsInfo::instance().formats().join(", ")); text.append("

"); te_sysinfo->setHtml(text); } qcomicbook-0.8.2/src/ThumbnailLoaderThread.h000644 001750 001750 00000002021 11644604742 021276 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file thumbnailloader.h */ #ifndef __THUMBNAILLOADER_H #define __THUMBNAILLOADER_H #include "LoaderThreadBase.h" #include namespace QComicBook { class Thumbnail; class ThumbnailLoaderThread: public LoaderThreadBase { Q_OBJECT signals: void thumbnailLoaded(const Thumbnail &); public: ThumbnailLoaderThread(bool cache=false); virtual ~ThumbnailLoaderThread(); virtual void setUseCache(bool f); protected: virtual bool process(const LoadRequest &req); private: QMutex mtx; volatile bool usecache; }; } #endif qcomicbook-0.8.2/src/ColorPushButton.h000644 001750 001750 00000001542 11644604742 020215 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __COLOR_PUSH_BUTTON_H #define __COLOR_PUSH_BUTTON_H #include //! Push button implementation that displays a filled rectangle. class ColorPushButton: public QPushButton { public: ColorPushButton(QWidget *parent = 0); ColorPushButton(const QString &text, QWidget *parent = 0); QColor getColor() const; public slots: void setColor(const QColor &c); protected: virtual void paintEvent(QPaintEvent *e); private: QColor color; }; #endif qcomicbook-0.8.2/src/ComicMainWindow.ui000644 001750 001750 00000046011 11644604742 020320 0ustar00pawelpawel000000 000000 ComicMainWindow 0 0 1184 741 320 200 true QComicBook :/icons/qcomicbook.png:/icons/qcomicbook.png 0 0 1184 21 &File &View &Navigation &Bookmarks &Settings &Help Toolbar TopToolBarArea false :/icons/openarch.png:/icons/openarch.png Open archive Ctrl+O :/icons/opendir.png:/icons/opendir.png Open directory Ctrl+D Open next Ctrl+N Open previous Ctrl+P Save page as :/icons/info.png:/icons/info.png Info Alt+I Close Quit Ctrl+Q QAction::QuitRole true :/icons/orgsize.png:/icons/orgsize.png Original size Alt+O true :/icons/fitwidth.png:/icons/fitwidth.png Fit width Alt+W true :/icons/fitheight.png:/icons/fitheight.png Fit height Alt+H true :/icons/wholepage.png:/icons/wholepage.png Whole page Alt+A true :/icons/bestfit.png:/icons/bestfit.png Best fit Alt+B :/icons/rright.png:/icons/rright.png Rotate right :/icons/rleft.png:/icons/rleft.png Rotate left No rotation true Preserve rotation true :/icons/twopages.png:/icons/twopages.png Two pages Ctrl+T true :/icons/japanese.png:/icons/japanese.png Japanese mode Ctrl+J Fullscreen F11 :/icons/nextpage.png:/icons/nextpage.png Next page PgDown :/icons/prevpage.png:/icons/prevpage.png Previous page PgUp :/icons/fforward.png:/icons/fforward.png 5 pages forward :/icons/fbackward.png:/icons/fbackward.png 5 pages backward Go to page... First page Ctrl+Home Last page Ctrl+End :/icons/pagetop.png:/icons/pagetop.png Page top Home :/icons/pagebottom.png:/icons/pagebottom.png Page bottom End true Continuous view :/icons/bookmark.png:/icons/bookmark.png Add bookmark Remove bookmark Manage bookmarks true Scrollbars true Statusbar :/icons/settings.png:/icons/settings.png Configure QComicBook QAction::PreferencesRole System information About QAction::AboutRole Scroll right Right Scroll left Left Jump down Space Jump up Backspace Scroll right fast Shift+Right Scroll left fast Shift+Left Scroll up fast Shift+Up Scroll down fast Shift+Down Scroll up Up Scroll down Down Print true Frame view true Simple view :/icons/nextframe.png:/icons/nextframe.png Next Frame :/icons/prevframe.png:/icons/prevframe.png Previous Frame About Qt About donating qcomicbook-0.8.2/src/Bookmark.cpp000644 001750 001750 00000002157 11644604742 017206 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Bookmark.h" #include #include using namespace QComicBook; Bookmark::Bookmark() { } Bookmark::Bookmark(const QString &cbname, int cbpage): name(cbname), page(cbpage), id(NULL) { } Bookmark::~Bookmark() { } const QString& Bookmark::getName() const { return name; } int Bookmark::getPage() const { return page; } QAction* Bookmark::getId() const { return id; } void Bookmark::setName(const QString &cbname) { name = cbname; } void Bookmark::setPage(int cbpage) { page = cbpage; } void Bookmark::setId(QAction *n) { id = n; } bool Bookmark::isValid() { QFileInfo inf(name); return inf.exists(); } QString Bookmark::menuItemName() { return name + " [" + QString::number(page + 1) + "]"; } qcomicbook-0.8.2/src/ComicBookInfo.h000644 001750 001750 00000001534 11644604742 017565 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __CBINFO_H #define __CBINFO_H #include #include class QStringList; class QTabWidget; namespace QComicBook { class ImgSink; class ComicBookInfo: public QDialog { private: QTabWidget *tabs; protected: QFont font; void setupGeneralTab(ImgSink &sink); void setupDescriptionTabs(const ImgSink &sink); public: ComicBookInfo(QWidget *parent, ImgSink &sink, const QFont& f); virtual ~ComicBookInfo(); }; } #endif qcomicbook-0.8.2/src/ComicBookSettings.cpp000644 001750 001750 00000032600 11644604742 021023 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ComicBookSettings.h" #include "History.h" #include "Utility.h" #include "EnumMap.h" #include "ComicMainWindow.h" #include #include #include #include #include #include #define GRP_VIEW "/View" #define OPT_TWOPAGES "/TwoPages" #define OPT_JAPANESEMODE "/JapaneseMode" #define OPT_SCROLLBARS "/Scrollbars" #define OPT_SMOOTHSCALING "/SmoothScaling" #define OPT_PAGESIZE "/PageSize" #define OPT_BACKGROUND "/Background" #define OPT_FULLSCREENHIDEMENU "/FullScreenHideMenu" #define OPT_FULLSCREENHIDESTATUS "/FullScreenHideStatusbar" #define OPT_FULLSCREENHIDETOOLBAR "/FullScreenHideToolbar" #define OPT_STATUSBAR "/Statusbar" #define OPT_FONT "/InfoFont" #define OPT_SMALLCURSOR "/SmallCursor" #define OPT_EMBEDPAGENUMBERS "/EmbedPageNumbers" #define OPT_CONTSCROLL "/ContinuousScroll" #define OPT_VIEWTYPE "/ViewType" #define GRP_NAVI "/Navigation" #define GRP_WINDOW "/Window" #define OPT_GEOMETRY "/Geometry" #define OPT_DOCKLAYOUT "/DockLayout" #define GRP_RUNTIME "/Runtime" #define OPT_LASTDIR "/LastDir" #define OPT_RECENT "/RecentlyOpened" #define GRP_MISC "/Misc" #define OPT_AUTOINFO "/InfoDialog" #define OPT_CACHESIZE "/CacheSize" #define OPT_CACHEADJUST "/CacheAutoAdjust" #define OPT_THUMBSAGE "/ThumbnailsAge" #define OPT_CACHETHUMBS "/CacheThumbnails" #define OPT_PRELOAD "/Preload" #define OPT_CONFIRMEXIT "/ConfirmExit" #define OPT_SHOWSPLASH "/ShowSplashscreen" #define OPT_TMPDIR "/TmpDir" #define OPT_DONATION "/DonationDialog" using namespace QComicBook; const EnumMap ComicBookSettings::size2string[] = { {"original", Original}, {"fitwidth", FitWidth}, {"fitheight", FitHeight}, {"wholepage", WholePage}, {"bestfit", BestFit}, {QString::null} }; const EnumMap ComicBookSettings::viewtype2string[] = { {"simple", Simple}, {"continuous", Continuous}, {"frame", Frame}, {QString::null} }; ComicBookSettings& ComicBookSettings::instance() { static ComicBookSettings cfg; return cfg; } ComicBookSettings::ComicBookSettings(): QObject() , m_bkpath(QString::null) , m_thpath(QString::null) , m_dirsok(false) { m_cfg = new QSettings(); // cfg->insertSearchPath(QSettings::Unix, QDir::homeDirPath() + "/.qcomicbook"); m_cfg->beginGroup("/QComicBook"); } ComicBookSettings::~ComicBookSettings() { m_cfg->endGroup(); delete m_cfg; } bool ComicBookSettings::checkDirs() { m_dirsok = false; m_bkpath = QDesktopServices::storageLocation(QDesktopServices::DataLocation); QDir dir(m_bkpath); if (!dir.exists()) { if (!dir.mkpath(m_bkpath)) { return false; } } m_thpath = QDesktopServices::storageLocation(QDesktopServices::CacheLocation) + QDir::separator() + "thumbs"; dir.setPath(m_thpath); if (!dir.exists()) { if (!dir.mkpath(m_thpath)) { return false; } } return m_dirsok = true; } const QString& ComicBookSettings::bookmarksDir() { return m_bkpath; } const QString& ComicBookSettings::thumbnailsDir() { return m_thpath; } void ComicBookSettings::load() { QString fontdesc; m_cfg->beginGroup(GRP_VIEW); m_embedpagenumbers = m_cfg->value(OPT_EMBEDPAGENUMBERS, false).toBool(); m_smallcursor = m_cfg->value(OPT_SMALLCURSOR, false).toBool(); m_twopages = m_cfg->value(OPT_TWOPAGES, false).toBool(); m_japanese = m_cfg->value(OPT_JAPANESEMODE, false).toBool(); m_scrollbars = m_cfg->value(OPT_SCROLLBARS, false).toBool(); m_smoothscaling = m_cfg->value(OPT_SMOOTHSCALING, true).toBool(); m_pagesize = convert(size2string, m_cfg->value(OPT_PAGESIZE, size2string[0].str).toString()); m_bgcolor = m_cfg->value(OPT_BACKGROUND).value(); m_fscrhidemenu = m_cfg->value(OPT_FULLSCREENHIDEMENU, true).toBool(); m_fscrhidestatus = m_cfg->value(OPT_FULLSCREENHIDESTATUS, true).toBool(); m_fscrhidetoolbar = m_cfg->value(OPT_FULLSCREENHIDETOOLBAR, false).toBool(); m_statusbar = m_cfg->value(OPT_STATUSBAR, true).toBool(); fontdesc = m_cfg->value(OPT_FONT, QString()).toString(); if (fontdesc.isNull() || !m_font.fromString(fontdesc)) { m_font.setFamily("Courier"); m_font.setPointSize(10); } m_contscroll = m_cfg->value(OPT_CONTSCROLL, true).toBool(); m_viewtype = convert(viewtype2string, m_cfg->value(OPT_VIEWTYPE, viewtype2string[0].str).toString()); m_cfg->endGroup(); m_cfg->beginGroup(GRP_RUNTIME); m_lastdir = m_cfg->value(OPT_LASTDIR, QString()).toString(); m_recent = m_cfg->value(OPT_RECENT).toStringList(); m_cfg->endGroup(); m_cfg->beginGroup(GRP_MISC); m_donationdlg = m_cfg->value(OPT_DONATION, true).toBool(); m_cachesize = m_cfg->value(OPT_CACHESIZE, 3).toInt(); if (m_cachesize < 1) { m_cachesize = 1; } m_cacheadjust = m_cfg->value(OPT_CACHEADJUST, true).toBool(); m_preload = m_cfg->value(OPT_PRELOAD, true).toBool(); m_confirmexit = m_cfg->value(OPT_CONFIRMEXIT, true).toBool(); m_autoinfo = m_cfg->value(OPT_AUTOINFO, false).toBool(); m_showsplash = m_cfg->value(OPT_SHOWSPLASH, true).toBool(); m_thumbsage = m_cfg->value(OPT_THUMBSAGE, 7).toInt(); m_cachethumbs = m_cfg->value(OPT_CACHETHUMBS, true).toBool(); m_tmpdir = m_cfg->value(OPT_TMPDIR, QString()).toString(); QDir dir(m_tmpdir); if (m_tmpdir.isNull() || !dir.exists()) { m_tmpdir = QDir::tempPath(); } m_cfg->endGroup(); } bool ComicBookSettings::embedPageNumbers() const { return m_embedpagenumbers; } bool ComicBookSettings::smallCursor() const { return m_smallcursor; } bool ComicBookSettings::twoPagesMode() const { return m_twopages; } bool ComicBookSettings::japaneseMode() const { return m_japanese; } bool ComicBookSettings::continuousScrolling() const { return m_contscroll; } ViewType ComicBookSettings::viewType() const { return m_viewtype; } bool ComicBookSettings::scrollbarsVisible() const { return m_scrollbars; } void ComicBookSettings::restoreGeometry(ComicMainWindow *w) const { w->restoreGeometry(m_cfg->value(GRP_WINDOW OPT_GEOMETRY).toByteArray()); } Size ComicBookSettings::pageSize() const { return m_pagesize; } bool ComicBookSettings::smoothScaling() const { return m_smoothscaling; } QString ComicBookSettings::lastDir() const { return m_lastdir; } const QStringList& ComicBookSettings::recentlyOpened() const { return m_recent; } QColor ComicBookSettings::background() const { return m_bgcolor; } int ComicBookSettings::cacheSize() const { return m_cachesize; } bool ComicBookSettings::cacheAutoAdjust() const { return m_cacheadjust; } bool ComicBookSettings::cacheThumbnails() const { return m_cachethumbs; } int ComicBookSettings::thumbnailsAge() const { return m_thumbsage; } bool ComicBookSettings::preloadPages() const { return m_preload; } bool ComicBookSettings::confirmExit() const { return m_confirmexit; } bool ComicBookSettings::autoInfo() const { return m_autoinfo; } bool ComicBookSettings::fullScreenHideMenu() const { return m_fscrhidemenu; } bool ComicBookSettings::fullScreenHideStatusbar() const { return m_fscrhidestatus; } bool ComicBookSettings::fullScreenHideToolbar() const { return m_fscrhidetoolbar; } bool ComicBookSettings::showStatusbar() const { return m_statusbar; } const QFont& ComicBookSettings::infoFont() const { return m_font; } bool ComicBookSettings::showSplash() const { return m_showsplash; } void ComicBookSettings::restoreDockLayout(ComicMainWindow *w) const { w->restoreState(m_cfg->value(GRP_WINDOW OPT_DOCKLAYOUT).toByteArray()); } QString ComicBookSettings::tmpDir() const { return m_tmpdir; } bool ComicBookSettings::showDonationDialog() const { return m_donationdlg; } void ComicBookSettings::embedPageNumbers(bool f) { if (f != m_embedpagenumbers) { m_cfg->setValue(GRP_VIEW OPT_EMBEDPAGENUMBERS, m_embedpagenumbers = f); emit displaySettingsChanged(OPT_EMBEDPAGENUMBERS); } } void ComicBookSettings::smallCursor(bool f) { if (f != m_smallcursor) { m_cfg->setValue(GRP_VIEW OPT_SMALLCURSOR, m_smallcursor = f); emit displaySettingsChanged(OPT_SMALLCURSOR); } } void ComicBookSettings::twoPagesMode(bool f) { if (f != m_twopages) { m_cfg->setValue(GRP_VIEW OPT_TWOPAGES, m_twopages = f); emit displaySettingsChanged(OPT_TWOPAGES); } } void ComicBookSettings::japaneseMode(bool f) { if (f != m_japanese) { m_cfg->setValue(GRP_VIEW OPT_JAPANESEMODE, m_japanese = f); emit displaySettingsChanged(OPT_JAPANESEMODE); } } void ComicBookSettings::continuousScrolling(bool f) { if (f != m_contscroll) { m_cfg->setValue(GRP_VIEW OPT_CONTSCROLL, m_contscroll = f); } } void ComicBookSettings::viewType(ViewType t) { if (t != m_viewtype) { m_cfg->setValue(GRP_VIEW OPT_VIEWTYPE, convert(viewtype2string, m_viewtype = t)); } } void ComicBookSettings::scrollbarsVisible(bool f) { if (f != m_scrollbars) { m_cfg->setValue(GRP_VIEW OPT_SCROLLBARS, m_scrollbars = f); } } void ComicBookSettings::saveGeometry(ComicMainWindow *w) { m_cfg->setValue(GRP_WINDOW OPT_GEOMETRY, w->saveGeometry()); } void ComicBookSettings::pageSize(Size s) { if (s != m_pagesize) { m_cfg->setValue(GRP_VIEW OPT_PAGESIZE, convert(size2string, m_pagesize = s)); } } void ComicBookSettings::smoothScaling(bool s) { if (s != m_smoothscaling) { m_cfg->setValue(GRP_VIEW OPT_SMOOTHSCALING, m_smoothscaling = s); emit displaySettingsChanged(OPT_SMOOTHSCALING); } } void ComicBookSettings::lastDir(const QString &d) { if (m_lastdir != d) { m_cfg->setValue(GRP_RUNTIME OPT_LASTDIR, m_lastdir = d); } } void ComicBookSettings::recentlyOpened(const QStringList &hist) { m_recent = hist; m_cfg->setValue(GRP_RUNTIME OPT_RECENT, m_recent); } void ComicBookSettings::background(const QColor &color) { if (color != m_bgcolor) { m_bgcolor = color; m_cfg->setValue(GRP_VIEW OPT_BACKGROUND, m_bgcolor.name()); emit displaySettingsChanged(OPT_BACKGROUND); } } void ComicBookSettings::cacheSize(int s) { if (s != m_cachesize) { if (s < 1) { s = 1; } m_cfg->setValue(GRP_MISC OPT_CACHESIZE, m_cachesize = s); } } void ComicBookSettings::cacheAutoAdjust(bool f) { if (f != m_cacheadjust) { m_cacheadjust = f; m_cfg->setValue(GRP_MISC OPT_CACHEADJUST, m_cacheadjust = f); } } void ComicBookSettings::cacheThumbnails(bool f) { if (f != m_cachethumbs) { m_cfg->setValue(GRP_MISC OPT_CACHETHUMBS, m_cachethumbs = f); } } void ComicBookSettings::thumbnailsAge(int n) { if (n != m_thumbsage) { m_cfg->setValue(GRP_MISC OPT_THUMBSAGE, m_thumbsage = n); } } void ComicBookSettings::preloadPages(bool f) { if (f != m_preload) { m_cfg->setValue(GRP_MISC OPT_PRELOAD, m_preload = f); } } void ComicBookSettings::confirmExit(bool f) { if (f != m_confirmexit) { m_cfg->setValue(GRP_MISC OPT_CONFIRMEXIT, m_confirmexit = f); } } void ComicBookSettings::autoInfo(bool f) { if (f != m_autoinfo) { m_cfg->setValue(GRP_MISC OPT_AUTOINFO, m_autoinfo = f); } } void ComicBookSettings::fullScreenHideMenu(bool f) { if (f != m_fscrhidemenu) { m_cfg->setValue(GRP_VIEW OPT_FULLSCREENHIDEMENU, m_fscrhidemenu = f); } } void ComicBookSettings::fullScreenHideStatusbar(bool f) { if (f != m_fscrhidestatus) { m_cfg->setValue(GRP_VIEW OPT_FULLSCREENHIDESTATUS, m_fscrhidestatus = f); } } void ComicBookSettings::fullScreenHideToolbar(bool f) { if (f != m_fscrhidetoolbar) { m_cfg->setValue(GRP_VIEW OPT_FULLSCREENHIDETOOLBAR, m_fscrhidetoolbar = f); } } void ComicBookSettings::showStatusbar(bool f) { if (f != m_statusbar) { m_cfg->setValue(GRP_VIEW OPT_STATUSBAR, m_statusbar = f); } } void ComicBookSettings::infoFont(const QFont &s) { if (s != m_font) { m_font = s; m_cfg->setValue(GRP_VIEW OPT_FONT, m_font.toString()); } } void ComicBookSettings::saveDockLayout(ComicMainWindow *w) { m_cfg->setValue(GRP_WINDOW OPT_DOCKLAYOUT, w->saveState()); } void ComicBookSettings::showSplash(bool f) { if (f != m_showsplash) { m_cfg->setValue(GRP_MISC OPT_SHOWSPLASH, m_showsplash = f); } } void ComicBookSettings::tmpDir(const QString &dir) { if (dir != m_tmpdir) { m_cfg->setValue(GRP_MISC OPT_TMPDIR, m_tmpdir = dir); } } bool ComicBookSettings::showDonationDialog(bool f) { if (f != m_donationdlg) { m_cfg->setValue(GRP_MISC OPT_DONATION, m_donationdlg = f); } } qcomicbook-0.8.2/src/EnumMap.h000644 001750 001750 00000002256 11644604742 016450 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ENUMMAP_H #define __ENUMMAP_H #include namespace Utility { template struct EnumMap { QString str; T val; }; template const QString& convert(const EnumMap *tab, const T &v) { for (int i=0; tab[i].str!=QString::null; i++) if (tab[i].val == v) return tab[i].str; return tab[0].str; } template const T& convert(const EnumMap *tab, const QString &s) { for (int i=0; tab[i].str!=QString::null; i++) if (tab[i].str == s) return tab[i].val; return tab[0].val; } } #endif qcomicbook-0.8.2/src/ThumbnailLoaderThread.cpp000644 001750 001750 00000002233 11644604742 021636 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ThumbnailLoaderThread.h" #include "Sink/ImgDirSink.h" #include "Thumbnail.h" #include using namespace QComicBook; ThumbnailLoaderThread::ThumbnailLoaderThread(bool cache): LoaderThreadBase(), usecache(cache) { } ThumbnailLoaderThread::~ThumbnailLoaderThread() { } bool ThumbnailLoaderThread::process(const LoadRequest &req) { if (req.twoPages) { qWarning() << "thumbnail request for two pages"; } else { qDebug() << "thumbnail requested: " << req.pageNumber; const Thumbnail t = sink->getThumbnail(req.pageNumber, usecache); emit thumbnailLoaded(t); //TODO errors } return true; } void ThumbnailLoaderThread::setUseCache(bool f) { mtx.lock(); usecache = f; mtx.unlock(); } qcomicbook-0.8.2/src/ListViewThumbnail.h000644 001750 001750 00000001431 11644604742 020512 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __LISTVIEWTHUMBNAIL_H #define __LISTVIEWTHUMBNAIL_H /*! \file thumbnaillistitem.h */ #include #include "ThumbnailItem.h" class QListWidget; namespace QComicBook { class ListViewThumbnail: public QListWidgetItem, public ThumbnailItem { public: ListViewThumbnail(QListWidget *parent, QListWidgetItem *after, int page); virtual ~ListViewThumbnail(); }; } #endif qcomicbook-0.8.2/src/FrameDetect/ComicFrameList.cpp000644 001750 001750 00000002002 11644604742 022452 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include #include #include #include using namespace QComicBook; ComicFrameList::ComicFrameList(int page, int width, int height) : m_page(page) , m_pageWidth(width) , m_pageHeight(height) { } ComicFrameList::~ComicFrameList() { } void ComicFrameList::append(const ComicFrame &f) { m_frames.append(f); } void ComicFrameList::sort(bool manga) { qDebug() << "frames sort"; std::sort(m_frames.begin(), m_frames.end(), CompareFrames(static_cast(m_pageHeight) * 0.05f, manga)); } const ComicFrame& ComicFrameList::operator[](int idx) { return m_frames[idx]; } qcomicbook-0.8.2/src/FrameDetect/CompareFrames.h000644 001750 001750 00000004006 11644604742 022010 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __COMPARE_FRAMES_H #define __COMPARE_FRAMES_H #include namespace QComicBook { //! Simple Comic Frame comparer. /*! Sorts frames left-right or right-left, top-bottom based on X & Y coordinates. * Supports tolerance when comparing Y coordinates. */ class CompareFrames { public: CompareFrames(int ytolerance, bool manga): m_ytolerance(ytolerance), m_manga(manga) {} static bool between(int x, int a, int b) { return x > a && x < b; } static int sharedHeight(int y1, int h1, int y2, int h2) { return std::min(y1 + h1, y2 + h2) - std::max(y1, y2); } bool operator()(const ComicFrame &f1, const ComicFrame &f2) { if (std::abs(f1.yPos() - f2.yPos()) <= m_ytolerance || std::abs(f1.yPos() + f1.height() - f2.yPos() - f2.height() <= m_ytolerance)) { const bool f = (f1.xPos() < f2.xPos()); return m_manga ? !f : f; } else { if (m_manga) { if (f1.xPos() < f2.xPos() && between(f1.yPos(), f2.yPos(), f2.yPos() + f2.height())) { if (static_cast(sharedHeight(f1.yPos(), f1.height(), f2.yPos(), f2.height())) / static_cast(f1.height()) > 0.5f) { return false; } } } else { if (f1.xPos() > f2.xPos() && between(f1.yPos(), f2.yPos(), f2.yPos() + f2.height())) { if (static_cast(sharedHeight(f1.yPos(), f1.height(), f2.yPos(), f2.height())) / static_cast(f1.height()) > 0.5f) { return false; } } } } return f1.yPos() < f2.yPos(); } private: const int m_ytolerance; const bool m_manga; }; } #endif qcomicbook-0.8.2/src/FrameDetect/BinarizedImage.cpp000644 001750 001750 00000002505 11644604742 022473 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "BinarizedImage.h" #include using namespace QComicBook; BinarizedImage::BinarizedImage(const QImage &img, int thmin) : AbstractImage(img.width(), img.height()) { int i = 0; for (int y=0; y= thmin) { data[i++] = 255; } else { data[i++] = 0; } } } } void BinarizedImage::invert() { for (int i=0; i * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FRAME_DETECT_THREAD_H #define __FRAME_DETECT_THREAD_H #include #include #include #include #include namespace QComicBook { class Page; class FrameDetectThread: public QThread { Q_OBJECT public: FrameDetectThread(); ~FrameDetectThread(); virtual void run(); void stop(); void clear(); public slots: void process(const Page &p); signals: void framesReady(const ComicFrameList &frames); private: volatile bool m_stop; QList m_pages; QMutex m_processListMtx; QMutex m_condMtx; QWaitCondition m_reqCond; }; } #endif qcomicbook-0.8.2/src/FrameDetect/AbstractImage.h000644 001750 001750 00000002521 11644604742 021772 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef ABSTRACTIMAGE_H #define ABSTRACTIMAGE_H namespace QComicBook { template class AbstractImage { public: typedef T ImageDataType; AbstractImage(int w, int h) : m_width(w) , m_height(h) { data = new T [w*h]; } virtual ~AbstractImage() { delete [] data; } T& operator()(int x, int y) { return data[x + y*m_width]; } T& at(int x, int y) { return data[x + y*m_width]; } const T& at(int x, int y) const { return data[x + y*m_width]; } const T* scanline(int y) const { return data + y*m_width; } void fill(const T &val) { for (int i=0; i * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __COMIC_FRAME_H #define __COMIC_FRAME_H namespace QComicBook { class ComicFrame { public: ComicFrame() {} ComicFrame(int x, int y, int w, int h, int label): x(x), y(y), w(w), h(h), lbl(label) {} ~ComicFrame() {}; int width() const { return w; } int height() const { return h; } int xPos() const { return x; } int yPos() const { return y; } int label() const { return lbl; } private: int x, y, w, h; int lbl; }; } #endif qcomicbook-0.8.2/src/FrameDetect/FrameCache.cpp000644 001750 001750 00000001565 11644604742 021604 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include using namespace QComicBook; FrameCache& FrameCache::instance() { static FrameCache cache; return cache; } FrameCache::FrameCache() { } FrameCache::~FrameCache() { } void FrameCache::insert(const ComicFrameList &frames) { m_frames[frames.pageNumber()] = frames; } bool FrameCache::has(int page) const { return m_frames.contains(page); } ComicFrameList FrameCache::get(int page) const { return m_frames[page]; } void FrameCache::clear() { m_frames.clear(); } qcomicbook-0.8.2/src/FrameDetect/FrameDetect.h000644 001750 001750 00000004507 11644604742 021455 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FRAMEDETECT_H #define __FRAMEDETECT_H #include #include #include #include #include class QImage; namespace QComicBook { class BinarizedImage; class ComicFrame; class Page; typedef AbstractImage LabelData; class FrameDetect { public: FrameDetect(const Page &page); ~FrameDetect(); ComicFrameList process(); QImage labelToImage(const LabelData *ldata); void dump(const LabelData *ldata); protected: ComicFrameList frames(LabelData *ldata) const; ComicFrameList process(int px, int py, int pw, int ph); struct Point { int x, y; Point(int x, int y): x(x), y(y) {} bool operator==(const Point &p) const { return x == p.x && y == p.y; } }; void addWhiteBorders(); static int determineBackground(const BinarizedImage &img); inline static void nextPoint(int &x, int &y, int pos) { switch (pos) { case 0: ++x; break; case 1: ++x; ++y; break; case 2: ++y; break; case 3: ++y; --x; break; case 4: --x; break; case 5: --x; --y; break; case 6: --y; break; case 7: ++x; --y; break; default: throw std::runtime_error("Invalid position"); } } inline void nextPoint(int &offset, int pos) { switch (pos) { case 0: ++offset; break; case 1: offset += 1 + w; break; case 2: offset += w; break; case 3: offset += w-1; break; case 4: --offset; break; case 5: offset -= w+1; break; case 6: offset -= w; break; case 7: offset += w-1; break; default: throw std::runtime_error("Invalid position"); } } Point tracer(LabelData *ldata, int x, int y, int &pos, int label); void contourTracking(LabelData *ldata, int x, int y, int initialPos, int label); private: BinarizedImage *bimg; int page; int ccolor; //contour color int bcolor; //background color int label; int w, h; }; } #endif qcomicbook-0.8.2/src/FrameDetect/BinarizedImage.h000644 001750 001750 00000001275 11644604742 022143 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef BINARIZEDIMAGE_H #define BINARIZEDIMAGE_H #include class QImage; namespace QComicBook { class BinarizedImage: public AbstractImage { public: BinarizedImage(const QImage &img, int thmin); void invert(); QImage toImage(); }; } #endif // BINARIZEDIMAGE_H qcomicbook-0.8.2/src/FrameDetect/ComicFrameList.h000644 001750 001750 00000001701 11644604742 022124 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __COMIC_FRAME_LIST_H #define __COMIC_FRAME_LIST_H #include #include namespace QComicBook { class ComicFrameList { public: ComicFrameList(int page=-1, int width=0, int height=0); virtual ~ComicFrameList(); void append(const ComicFrame &f); void sort(bool manga=false); const ComicFrame& operator[](int idx); int count() const { return m_frames.count(); } int pageNumber() const { return m_page; } private: int m_page; int m_pageWidth; int m_pageHeight; QVector m_frames; }; } #endif qcomicbook-0.8.2/src/FrameDetect/FrameDetectThread.cpp000644 001750 001750 00000003750 11644604742 023137 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include #include #include #include "../Page.h" #include using namespace QComicBook; FrameDetectThread::FrameDetectThread() : QThread() , m_stop(false) { } FrameDetectThread::~FrameDetectThread() { } void FrameDetectThread::run() { for (;;) { m_condMtx.lock(); m_reqCond.wait(&m_condMtx); m_condMtx.unlock(); for (;;) { m_processListMtx.lock(); if (m_stop) { m_processListMtx.unlock(); break; } Page p = m_pages.first(); m_pages.pop_front(); m_processListMtx.unlock(); qDebug() << "FrameDetectThread: processing page" << p.getNumber(); FrameCache &fc(FrameCache::instance()); if (fc.has(p.getNumber())) { qDebug() << "frames for page" << p.getNumber() << "in cache"; emit framesReady(fc.get(p.getNumber())); } else { FrameDetect fd(p); ComicFrameList frames(fd.process()); fc.insert(frames); emit framesReady(frames); } m_processListMtx.lock(); volatile int n = m_pages.count(); m_processListMtx.unlock(); if (n == 0) { break; } } } } void FrameDetectThread::clear() { m_processListMtx.lock(); m_pages.clear(); m_processListMtx.unlock(); FrameCache::instance().clear(); } void FrameDetectThread::process(const Page &p) { qDebug() << "FrameDetectThread: requested page" << p.getNumber(); m_processListMtx.lock(); m_pages.append(p); m_processListMtx.unlock(); m_reqCond.wakeOne(); } void FrameDetectThread::stop() { m_processListMtx.lock(); m_stop = true; m_processListMtx.unlock(); m_reqCond.wakeOne(); } qcomicbook-0.8.2/src/FrameDetect/FrameDetect.cpp000644 001750 001750 00000013366 11644604742 022013 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include #include #include #include #include #include #include #include #include "../Page.h" using namespace QComicBook; FrameDetect::FrameDetect(const Page &page) : page(page.getNumber()) { bimg = new BinarizedImage(page.getImage(), 228); bcolor = determineBackground(*bimg); ccolor = 255 - bcolor; qDebug() << "background is" << bcolor; addWhiteBorders(); w = bimg->width(); h = bimg->height(); } FrameDetect::~FrameDetect() { delete bimg; } void FrameDetect::addWhiteBorders() { for (int x=0; xwidth(); x++) { bimg->at(x, 0) = bimg->at(x, bimg->height()-1) = bcolor; } for (int y=1; yheight()-1; y++) { bimg->at(0, y) = bimg->at(bimg->width()-1, y) = bcolor; } } ComicFrameList FrameDetect::process() { return process(1, 1, bimg->width(), bimg->height()-1); } ComicFrameList FrameDetect::process(int px, int py, int pw, int ph) { LabelData ldata(w, h); //TODO allocate minimal needed size for given window ldata.fill(0); label = 1; for (int y=py; yat(x, y) == ccolor) // find contour pixel { // // step 1 if (p == 0 && bimg->at(x, y-1) == bcolor) { p = label; contourTracking(&ldata, x, y, 7, label++); } // // step 2 else if (ldata.at(x, y+1) == 0 && bimg->at(x, y+1) == bcolor) //if pixel below is unmarked white pixel { if (p == 0) //P is unlabeled { p = ldata.at(x-1, y); //copy label } contourTracking(&ldata, x, y, 3, p); } else if (p == 0) { p = ldata.at(x-1, y); } } } } #ifdef QT_DEBUG bimg->toImage().save("binimg-" + QString::number(page) + ".jpg"); labelToImage(&ldata).save("labels-" + QString::number(page) + ".jpg"); #endif qDebug() << label-1 << "labels"; return frames(&ldata); } FrameDetect::Point FrameDetect::tracer(LabelData *ldata, int x, int y, int &pos, int lbl) { for (int i=7; i>=0; i--) { int tx(x); int ty(y); nextPoint(tx, ty, pos); if (tx>0 && ty>0 && tx < bimg->width() && ty < bimg->height()) { const int &l( ldata->at(tx, ty) ); if (bimg->at(tx, ty) == ccolor && (l == 0 || l == lbl)) { return Point(tx, ty); } if (bimg->at(tx, ty) == bcolor) { ldata->at(tx, ty) = -1; } } pos = (pos + 1)%8; } return Point(-1, -1); } void FrameDetect::contourTracking(LabelData *ldata, int x, int y, int initialPos, int lbl) { int d(initialPos); const Point s(x, y); bool startReached(false); bool tFollowsS(false); Point t = tracer(ldata, x, y, d, lbl); if (t.x < 0) // isolated point { return; } ldata->at(t.x, t.y) = lbl; x = t.x; y = t.y; while (startReached == false || tFollowsS == false) { d = (d + 6)%8; // previous contour: d + 4; next initial pos: d + 2 const Point f(tracer(ldata, x, y, d, lbl)); if (f.x < 0) { qDebug() << "img boundary"; return; } if (f == s) { startReached = true; } else if (f == t) { if (startReached) { tFollowsS = true; } } else { startReached = tFollowsS = false; } ldata->at(f.x, f.y) = lbl; x = f.x; y = f.y; } } QImage FrameDetect::labelToImage(const LabelData *ldata) { const int m(std::max(1, 255/label)); QImage img(ldata->width(), ldata->height(), QImage::Format_RGB32); for (int y=0; yheight(); y++) { for (int x=0; xwidth(); x++) { const int l = m * ldata->at(x, y); if (l >= 0) { img.setPixel(x, y, qRgb(l, l, l)); } } } return img; } void FrameDetect::dump(const LabelData *ldata) { std::ofstream str("dump.txt"); for (int y=0; yheight(); y++) { for (int x=0; xwidth(); x++) { str << ldata->at(x, y); } str << std::endl; } str.close(); } int FrameDetect::determineBackground(const BinarizedImage &img) { const int stripw(img.width()/100); qDebug() << "determineBackground: strip" << stripw; int black = 0; int white = 0; for (int y=0; yblack ? 255 : 0; } ComicFrameList FrameDetect::frames(LabelData *ldata) const { int *x1 = new int [label]; int *x2 = new int [label]; int *y1 = new int [label]; int *y2 = new int [label]; // // initialize lookups for (int lbl=0; lblwidth(); x2[lbl] = y2[lbl] = -1; y1[lbl] = ldata->height(); } // // find bounding boxes for all labels for (int y=0; yheight(); y++) { for (int x=0; xwidth(); x++) { const int lbl(ldata->at(x, y)); if (lbl > 0) { if (x < x1[lbl]) { x1[lbl] = x; } if (x > x2[lbl]) { x2[lbl] = x; } if (y < y1[lbl]) { y1[lbl] = y; } if (y > y2[lbl]) { y2[lbl] = y; } } } } ComicFrameList frms(page, ldata->width(), ldata->height()); for (int lbl=0; lbl= ldata->width()/6) && (h >= ldata->height()/8)) { frms.append(ComicFrame(x1[lbl], y1[lbl], w, h, lbl)); } } // TODO remove frames enclosed by other frames delete [] x1; delete [] x2; delete [] y1; delete [] y2; return frms; } qcomicbook-0.8.2/src/FrameDetect/FrameCache.h000644 001750 001750 00000001610 11644604742 021240 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FRAME_CACHE_H #define __FRAME_CACHE_H #include #include #include namespace QComicBook { class FrameCache: public QObject { Q_OBJECT public: static FrameCache& instance(); public slots: void insert(const ComicFrameList &frames); bool has(int page) const; ComicFrameList get(int page) const; void clear(); private: FrameCache(); FrameCache(const FrameCache &); ~FrameCache(); QMap m_frames; }; } #endif qcomicbook-0.8.2/src/ImageFormatsInfo.h000644 001750 001750 00000001623 11644604742 020275 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __IMAGE_FORMATS_INFO_H #define __IMAGE_FORMATS_INFO_H #include namespace QComicBook { class ImageFormatsInfo { public: static ImageFormatsInfo& instance(); QStringList extensions() const; QStringList formats() const; private: ImageFormatsInfo(); ImageFormatsInfo(const ImageFormatsInfo &); ~ImageFormatsInfo(); static ImageFormatsInfo *sm_info; QStringList m_extensions; QStringList m_formats; }; } #endif qcomicbook-0.8.2/src/Page.h000644 001750 001750 00000001743 11644604742 015762 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file Page.h */ #ifndef __PAGE_H #define __PAGE_H #include #include namespace QComicBook { class Page { public: Page(); Page(const Page &p); Page(int number, const QImage &image); ~Page(); QImage getImage() const; int getNumber() const; int width() const; int height() const; operator const QImage&() const { return m_image; } operator int() const { return m_number; } private: int m_number; QImage m_image; }; } Q_DECLARE_METATYPE(QComicBook::Page) #endif qcomicbook-0.8.2/src/ThumbnailsWindow.h000644 001750 001750 00000002251 11644604742 020377 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __THUMBNAILSWIN_H #define __THUMBNAILSWIN_H #include #include namespace QComicBook { class Thumbnail; class ThumbnailsView; class ThumbnailsWindow: public QDockWidget { Q_OBJECT private: ThumbnailsView *tview; signals: void requestedThumbnail(int n); void requestedPage(int n, bool force); void shown(); protected: virtual void showEvent(QShowEvent *e); protected slots: //void onOrientationChanged(Orientation o); -- nie ma w Qt4 public slots: void setThumbnail(const Thumbnail &t); public: ThumbnailsWindow(QWidget *parent=0); virtual ~ThumbnailsWindow(); ThumbnailsView* view() const; }; } #endif qcomicbook-0.8.2/src/ThumbnailsWindow.cpp000644 001750 001750 00000002551 11644604742 020735 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ThumbnailsWindow.h" #include "ThumbnailsView.h" #include "Thumbnail.h" using namespace QComicBook; ThumbnailsWindow::ThumbnailsWindow(QWidget *parent): QDockWidget(parent) { setWindowTitle(tr("Thumbnails")); //setResizeEnabled(true); //setCloseMode(QDockWindow::Always); tview = new ThumbnailsView(this); setWidget(tview); connect(tview, SIGNAL(requestedPage(int, bool)), this, SIGNAL(requestedPage(int, bool))); //connect(this, SIGNAL(orientationChanged(Orientation)), this, SLOT(onOrientationChanged(Orientation))); } ThumbnailsWindow::~ThumbnailsWindow() { } void ThumbnailsWindow::setThumbnail(const Thumbnail &t) { tview->setPage(t); } void ThumbnailsWindow::showEvent(QShowEvent *e) { QDockWidget::showEvent(e); emit shown(); } /*void ThumbnailsWindow::onOrientationChanged(Orientation o) { tview->setArrangement(o == Qt::Horizontal ? QIconView::TopToBottom : QIconView::LeftToRight); }*/ ThumbnailsView* ThumbnailsWindow::view() const { return tview; } qcomicbook-0.8.2/src/AboutDialog.cpp000644 001750 001750 00000001763 11644604742 017635 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "AboutDialog.h" #include #include #include #include #include #include using namespace QComicBook; AboutDialog::AboutDialog(QWidget *parent, const QString &caption, const QString &text, const QPixmap &logo): QDialog(parent) { setupUi(this); setWindowTitle(caption); setText(text); if (!logo.isNull()) about_logo->setPixmap(logo); connect(bclose, SIGNAL(clicked()), this, SLOT(accept())); } AboutDialog::~AboutDialog() { } void AboutDialog::setText(const QString &text) { about_text->setText(text); } qcomicbook-0.8.2/src/PrintProgressDialog.h000644 001750 001750 00000001432 11644604742 021042 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __PRINT_PROGRESS_DIALOG_H #define __PRINT_PROGRESS_DIALOG_H #include #include "ui_PrintProgressDialog.h" namespace QComicBook { class PrintProgressDialog: public QDialog, private Ui::PrintProgressDialog { Q_OBJECT public: PrintProgressDialog(QWidget *parent); public slots: void setPage(int n); signals: void abort(); }; } #endif qcomicbook-0.8.2/src/Bookmark.h000644 001750 001750 00000001752 11644604742 016653 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file bookmark.h */ #ifndef __BOOKMARK_H #define __BOOKMARK_H #include class QAction; namespace QComicBook { class Bookmark { private: QString name; //! * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "RecentFilesMenu.h" #include "Utility.h" #include using namespace QComicBook; RecentFilesMenu::RecentFilesMenu(const QString &title, QWidget *parent, int size) : QMenu(title, parent) { maxSize = size; separator = addSeparator(); clearRecent = addAction(tr("Cleanup list")); connect(this, SIGNAL(triggered(QAction *)), this, SLOT(recentSelected(QAction *))); } RecentFilesMenu::~RecentFilesMenu() { } void RecentFilesMenu::recentSelected(QAction *a) { if (a == clearRecent) { emit cleanupRequest(); } else { const QString fname(a->data().toString()); emit selected(fname); } } void RecentFilesMenu::add(const QString &fname) { // // try to remove the file from list first remove(fname); // // add the file as the first item on the list QAction *a = new QAction(Utility::shortenPath(fname, "...", 64), this); a->setData(fname); insertAction(actions().first(), a); // // remove actions if max number of actions is exceeded if (maxSize > 0) { int count = 0; foreach (QAction *a, actions()) { if (a != clearRecent && !a->isSeparator()) { ++count; if (count > maxSize) { a->deleteLater(); } } } } } void RecentFilesMenu::remove(const QString &fname) { foreach (QAction *a, actions()) { if (a != clearRecent && !a->isSeparator()) { if (a->data().toString() == fname) { a->deleteLater(); break; } } } } void RecentFilesMenu::removeAll() { foreach (QAction *a, actions()) { if (a != clearRecent && !a->isSeparator()) { a->deleteLater(); } } } void RecentFilesMenu::set(const QStringList &files) { removeAll(); foreach (const QString &fname, files) { QAction *a = new QAction(Utility::shortenPath(fname, "...", 64), this); a->setData(fname); insertAction(separator, a); } } QStringList RecentFilesMenu::get() const { QStringList list; foreach (QAction *a, actions()) { if (a != clearRecent && !a->isSeparator()) { const QString fname(a->data().toString()); list.append(fname); } } return list; } qcomicbook-0.8.2/src/Thumbnail.cpp000644 001750 001750 00000004046 11644604742 017363 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Thumbnail.h" #include #include #include using namespace QComicBook; int Thumbnail::thwidth = 100; int Thumbnail::thheight = 120; Thumbnail::Thumbnail() : num(-1) { } Thumbnail::Thumbnail(int n, const QString &comicbookName) : num(n) { hash = getScrambledName(comicbookName + "." + QString::number(n)); } Thumbnail::Thumbnail(int n, const QImage &i): num(n) { setImage(i); } Thumbnail::Thumbnail(const Thumbnail &t) : num(t.num) , hash(t.hash) , img(t.img) { } Thumbnail::~Thumbnail() { } int Thumbnail::page() const { return num; } const QImage& Thumbnail::image() const { return img; } bool Thumbnail::tryLoad() { QImage tmp; const QString fname(getFullPath()); if (tmp.load(fname)) { Utility::touch(fname); setImage(tmp); return true; } return false; } bool Thumbnail::fromOriginalImage(const QString &fname) { const QImage i(fname); if (i.isNull()) return false; setImage(i); return true; } bool Thumbnail::save() { return img.save(getFullPath(), "JPEG", 75); } void Thumbnail::setImage(const QImage &i) { if (i.width() > thwidth || i.height() > thheight) img = i.scaled(thwidth, thheight, Qt::KeepAspectRatio); else img = i.copy(); } int Thumbnail::maxWidth() { return thwidth; } int Thumbnail::maxHeight() { return thheight; } QString Thumbnail::getFullPath() const { return ComicBookSettings::instance().thumbnailsDir() + "/" + hash.toHex() + ".jpg"; } QByteArray Thumbnail::getScrambledName(const QString &in) { return QCryptographicHash::hash( in.toAscii(), QCryptographicHash::Sha1 ); } qcomicbook-0.8.2/src/ImgCache.h000644 001750 001750 00000001547 11644604742 016550 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file imgcache.h */ #ifndef __IMGCACHE_H #define __IMGCACHE_H #include #include #include namespace QComicBook { class ImgCache { private: QCache cache; bool autoAdjust; int maxItemSizeSoFar; QMutex mtx; public: ImgCache(int size=1); virtual ~ImgCache(); virtual void setSize(int size, bool autoAdjust=false); void insertImage(int page, const QImage &img); bool get(int num, QImage &img); }; } #endif qcomicbook-0.8.2/src/LoaderThreadBase.h000644 001750 001750 00000006157 11644604742 020243 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __LOADERTHREADBASE_H #define __LOADERTHREADBASE_H #include #include #include #include #include #include "Sink/ImgSink.h" namespace QComicBook { class Page; struct LoadRequest { int pageNumber; bool twoPages; LoadRequest(int page, bool twoPages): pageNumber(page), twoPages(twoPages) {} bool operator==(const LoadRequest &r) { return pageNumber == r.pageNumber && twoPages == r.twoPages; } }; class LoaderThreadBase: public QThread { Q_OBJECT protected: volatile QThread::Priority prio; //! requests; //! sink; QMutex loaderMutex; QMutex condMutex; QMutex sinkMutex; QWaitCondition reqCond; volatile bool stopped; //! Main function of the thread. /*! Preloads requested pages from requests list using sink->getImage(). * Stop if stopped flag is true. * @see ImgDirSink::getImage */ virtual void run(); virtual bool process(const LoadRequest &req) = 0; public: LoaderThreadBase(); virtual ~LoaderThreadBase(); //! Changes priority of the loader thread. /*! @param p new priority */ virtual void setPriority(QThread::Priority p); //! Sets image source sink. /*! @param sink image sink used for retrieving (loading) images */ virtual void setSink(QSharedPointer sink = QSharedPointer()); //! Stops processing requests and exits thread execution. virtual void stop(); public slots: //! Appends page to the list of pages to load. /*! @param page page to load */ virtual void request(int page); virtual void requestTwoPages(int page); //! Appends few pages to the list of pages to load. /*! @param first starting page * @param n number of pages to load in turn */ virtual void request(int first, int n); virtual void cancel(int page); virtual void cancelTwoPages(int page); virtual void cancelAll(); }; } #endif qcomicbook-0.8.2/src/RecentFilesMenu.h000644 001750 001750 00000002225 11644604742 020132 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __RECENT_FILES_MENU_H #define __RECENT_FILES_MENU_H #include class QStringList; class QAction; namespace QComicBook { class RecentFilesMenu: public QMenu { Q_OBJECT public: RecentFilesMenu(const QString &title, QWidget *parent, int size=0); ~RecentFilesMenu(); public slots: void set(const QStringList &files); QStringList get() const; void add(const QString &fname); void remove(const QString &fname); void removeAll(); protected slots: void recentSelected(QAction *a); signals: void selected(const QString &fileName); void cleanupRequest(); private: QAction *clearRecent; QAction *separator; int maxSize; }; } #endif qcomicbook-0.8.2/src/main.cpp000644 001750 001750 00000005344 11644604742 016366 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include #include #include #include #include #include #include #include "ComicMainWindow.h" #include "ComicBookSettings.h" #include #include "Thumbnail.h" #include "Page.h" #include "config.h" int main(int argc, char *argv[]) { using namespace QComicBook; QApplication app(argc, argv); app.setApplicationName("QComicBook"); app.setOrganizationName("PawelStolowski"); app.setOrganizationDomain("linux-projects.net"); // // load translation QTranslator qtTrans; qtTrans.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTrans); QTranslator qcomicbookTrans; qcomicbookTrans.load("qcomicbook_" + QLocale::system().name(), DATADIR "/i18n"); app.installTranslator(&qcomicbookTrans); const QString errcaption = ComicMainWindow::tr("QComicBook error"); qRegisterMetaType("Page"); qRegisterMetaType("Thumbnail"); qRegisterMetaType("ComicFrameList"); ComicBookSettings::instance().load(); if (!ComicBookSettings::instance().checkDirs()) { QMessageBox::critical(NULL, errcaption, ComicMainWindow::tr("Can't initialize QComicBook directories"), QMessageBox::Ok, QMessageBox::NoButton); } ComicMainWindow *win = new ComicMainWindow(NULL); //app.setMainWidget(win); win->show(); // // show splashscreen if (ComicBookSettings::instance().showSplash()) { QPixmap splashpix(":/images/qcomicbook-splash.png"); if (!splashpix.isNull()) { QSplashScreen *splash = new QSplashScreen(splashpix, Qt::WindowStaysOnTopHint); splash->show(); // // close splashscreen after a few seconds QTimer *timer = new QTimer(win); QObject::connect(timer, SIGNAL(timeout()), splash, SLOT(close())); timer->setSingleShot(true); timer->start(2*1000); } } // // command line argument if (app.argc() > 1) { win->open(QString::fromLocal8Bit(app.argv()[1])); } else { if (ComicBookSettings::instance().showDonationDialog()) { win->showAboutDonating(true); } } return app.exec(); } qcomicbook-0.8.2/src/PageViewBase.cpp000644 001750 001750 00000016246 11644604742 017747 0ustar00pawelpawel000000 000000 #include "PageViewBase.h" #include #include #include #include #include #include using namespace QComicBook; const float PageViewBase::JUMP_FACTOR = 0.85f; PageViewBase::PageViewBase(QWidget *parent, int physicalPages, const ViewProperties &props) : QScrollArea(parent) , m_physicalPages(physicalPages) , props(props) , smallcursor(NULL) { setFrameShape(QFrame::NoFrame); context_menu = new QMenu(this); connect(&this->props, SIGNAL(changed()), this, SLOT(propsChanged())); recalculateScrollSpeeds(); } PageViewBase::~PageViewBase() { } void PageViewBase::scrollByDelta(int dx, int dy) { QScrollBar *vbar = verticalScrollBar(); QScrollBar *hbar = horizontalScrollBar(); vbar->setValue(vbar->value() + dy); hbar->setValue(hbar->value() + dx); } void PageViewBase::contextMenuEvent(QContextMenuEvent *e) { //if (imgs > 0) context_menu->popup(e->globalPos()); } void PageViewBase::mouseMoveEvent(QMouseEvent *e) { if (lx >= 0) { const int dx = lx - e->x(); const int dy = ly - e->y(); QScrollBar *vbar = verticalScrollBar(); QScrollBar *hbar = horizontalScrollBar(); vbar->setValue(vbar->value() + dy); hbar->setValue(hbar->value() + dx); } lx = e->x(); ly = e->y(); } void PageViewBase::mousePressEvent(QMouseEvent *e) { if (!smallcursor) setCursor(Qt::PointingHandCursor); } void PageViewBase::mouseReleaseEvent(QMouseEvent *e) { lx = -1; ly = -1; if (!smallcursor) setCursor(Qt::ArrowCursor); } void PageViewBase::mouseDoubleClickEvent(QMouseEvent *e) { e->accept(); emit doubleClick(); } bool PageViewBase::onTop() { return verticalScrollBar()->value() == verticalScrollBar()->minimum(); } bool PageViewBase::onBottom() { return verticalScrollBar()->value() == verticalScrollBar()->maximum(); } void PageViewBase::scrollUp() { if (onTop()) { wheelupcnt = wheeldowncnt = 0; emit topReached(); } else { scrollByDelta(0, -spdy); } } void PageViewBase::scrollDown() { if (onBottom()) { wheelupcnt = wheeldowncnt = 0; emit bottomReached(); } else { scrollByDelta(0, spdy); } } void PageViewBase::scrollUpFast() { if (onTop()) { emit topReached(); } else { scrollByDelta(0, -3*spdy); } } void PageViewBase::scrollDownFast() { if (onBottom()) { emit bottomReached(); } else { scrollByDelta(0, 3*spdy); } } void PageViewBase::scrollRight() { scrollByDelta(spdx, 0); } void PageViewBase::scrollLeft() { scrollByDelta(-spdx, 0); } void PageViewBase::scrollRightFast() { scrollByDelta(3*spdx, 0); } void PageViewBase::scrollLeftFast() { scrollByDelta(-3*spdx, 0); } void PageViewBase::jumpUp() { if (onTop()) { emit topReached(); } else { scrollByDelta(0, -static_cast(JUMP_FACTOR * viewport()->height())); } } void PageViewBase::jumpDown() { if (onBottom()) { emit bottomReached(); } else { scrollByDelta(0, static_cast(JUMP_FACTOR * viewport()->height())); } } void PageViewBase::setFrames(int page, const QList &frames) { // default implementation does nothing } void PageViewBase::nextFrame() { } void PageViewBase::prevFrame() { } void PageViewBase::setNumOfPages(int n) { m_physicalPages = n; } int PageViewBase::numOfPages() const { return m_physicalPages; } void PageViewBase::setRotation(Rotation r) { props.setAngle(r); } void PageViewBase::rotateRight() { setRotation(QComicBook::Right); } void PageViewBase::rotateLeft() { setRotation(QComicBook::Left); } void PageViewBase::resetRotation() { setRotation(None); } void PageViewBase::setSize(Size s) { props.setSize(s); } void PageViewBase::setBackground(const QColor &color) { QPalette palette; palette.setColor(backgroundRole(), color); setPalette(palette); props.setBackground(color); } void PageViewBase::setTwoPagesMode(bool f) { props.setTwoPagesMode(f); } void PageViewBase::setMangaMode(bool f) { props.setMangaMode(f); } void PageViewBase::setSmallCursor(bool f) { if (f) { static unsigned char bmp_bits[4*32]; static unsigned char msk_bits[4*32]; if (smallcursor) return; for (int i=0; i<4*32; i++) { bmp_bits[i] = msk_bits[i] = 0; } bmp_bits[0] = msk_bits[0] = 0xe0; bmp_bits[4] = 0xa0; msk_bits[4] = 0xe0; bmp_bits[8] = msk_bits[8] = 0xe0; const QBitmap bmp = QBitmap::fromData(QSize(32, 32), bmp_bits, QImage::Format_Mono); const QBitmap msk = QBitmap::fromData(QSize(32, 32), msk_bits, QImage::Format_Mono); smallcursor = new QCursor(bmp, msk, 0, 0); setCursor(*smallcursor); } else { if (smallcursor) { delete smallcursor; smallcursor = NULL; } unsetCursor(); } } void PageViewBase::showPageNumbers(bool f) { props.setPageNumbers(f); } void PageViewBase::enableScrollbars(bool f) { const Qt::ScrollBarPolicy s = f ? Qt::ScrollBarAsNeeded : Qt::ScrollBarAlwaysOff; setVerticalScrollBarPolicy(s); setHorizontalScrollBarPolicy(s); } QMenu *PageViewBase::contextMenu() const { return context_menu; } ViewProperties& PageViewBase::properties() { return props; } bool PageViewBase::hasRequest(int page) const { return m_requestedPages.indexOf(page) >= 0; } void PageViewBase::addRequest(int page, bool twoPages) { m_requestedPages.append(page); if (twoPages) emit requestTwoPages(page); else emit requestPage(page); } void PageViewBase::delRequest(int page, bool twoPages, bool cancel) { int idx = m_requestedPages.indexOf(page); if (idx >= 0) { m_requestedPages.removeAt(idx); if (cancel) { if (twoPages) emit cancelTwoPagesRequest(page); else emit cancelPageRequest(page); } } } int PageViewBase::nextPage(int page) const { if (props.twoPagesMode()) //TODO odd number of pages, single 1st page { page += 2; } else { ++page; } if (page >= m_physicalPages) { page = -1; } return page; } int PageViewBase::previousPage(int page) const { if (props.twoPagesMode()) { page -= 2; } else { --page; } return page; } int PageViewBase::roundPageNumber(int page) const { return props.twoPagesMode() ? page - (page&1) : page; } void PageViewBase::delRequests() { m_requestedPages.clear(); } void PageViewBase::recalculateScrollSpeeds() { spdy = viewport()->height()/10; spdx = viewport()->width()/10; } void PageViewBase::resizeEvent(QResizeEvent *e) { QScrollArea::resizeEvent(e); recalculateScrollSpeeds(); } qcomicbook-0.8.2/src/AboutDialog.ui000644 001750 001750 00000005572 11644604742 017472 0ustar00pawelpawel000000 000000 AboutDialog Qt::ApplicationModal 0 0 197 101 0 0 About true QFrame::Panel QFrame::Sunken Qt::RichText Qt::AlignHCenter|Qt::AlignTop 5 true Qt::AlignCenter Qt::Horizontal 40 20 0 0 Close true Qt::Horizontal 40 20 qcomicbook-0.8.2/src/ContinuousPageView.h000644 001750 001750 00000005007 11644604742 020701 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __CONTINUOUSPAGEVIEW_H #define __CONTINUOUSPAGEVIEW_H #include #include #include #include "Page.h" #include "PageViewBase.h" namespace QComicBook { class PageWidget; class ContinuousPageView: public PageViewBase { Q_OBJECT protected: virtual void resizeEvent(QResizeEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void scrollContentsBy(int dx, int dy); void recreatePageWidgets(); PageWidget *findPageWidget(int pageNum) const; void recalculatePageSizes(); QList findPageWidgetsInView() const; void disposeOrRequestPages(); PageWidget *currentPageWidget() const; protected slots: void propsChanged(); void scrollbarRangeChanged(int min, int max); static bool isInView(int y1, int y2, int vy1, int vy2) { return std::min(y2, vy2) > std::max(y1, vy1); } public slots: virtual void setImage(const Page &img1); virtual void setImage(const Page &img1, const Page &img2); virtual void clear(); virtual void gotoPage(int n); virtual void scrollToTop(); virtual void scrollToBottom(); public: ContinuousPageView(QWidget *parent, int physicalPages, const ViewProperties& props); virtual ~ContinuousPageView(); virtual int visiblePages() const; virtual int viewWidth() const; virtual void setNumOfPages(int n); virtual int currentPage() const; private: QVector imgLabel; int *m_y1pos; int *m_y2pos; int m_firstVisible; //first visible page in the view double m_firstVisibleOffset; //visible portion (%) of first visible page QVBoxLayout *m_layout; }; } #endif qcomicbook-0.8.2/src/FrameWidget.h000644 001750 001750 00000001553 11644604742 017303 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FRAME_WIDGET_H #define __FRAME_WIDGET_H #include "ComicImageWidget.h" #include class QImage; namespace QComicBook { class Page; class ComicFrame; class FrameView; class FrameWidget: public ComicImageWidget { public: FrameWidget(FrameView *parent, int w, int h); virtual ~FrameWidget(); void setFrame(const Page &p, const ComicFrame &f); void clear(); void redraw(QPainter &p); private: QImage *m_image; QRect m_frame; }; } #endif qcomicbook-0.8.2/src/SimplePageView.h000644 001750 001750 00000003647 11644604742 017774 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __SIMPLEPAGEVIEW_H #define __SIMPLEPAGEVIEW_H #include #include "Page.h" #include "PageViewBase.h" class QVBoxLayout; namespace QComicBook { class PageWidget; class SimplePageView: public PageViewBase { Q_OBJECT protected: void recreatePageWidget(); virtual void resizeEvent(QResizeEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void scrollContentsBy(int dx, int dy); protected slots: void propsChanged(); public slots: virtual void setImage(const Page &img1); virtual void setImage(const Page &img1, const Page &img2); virtual void gotoPage(int n); virtual void scrollToTop(); virtual void scrollToBottom(); virtual void clear(); public: SimplePageView(QWidget *parent, int physicalPages, const ViewProperties& props); virtual ~SimplePageView(); virtual int visiblePages() const; virtual int viewWidth() const; virtual void setNumOfPages(int n); virtual int currentPage() const; private: int wheelupcnt, wheeldowncnt; static const int EXTRA_WHEEL_SPIN; //number of extra wheel spins to flip the page static const float JUMP_FACTOR; //factor used to calculate the amount of space to scroll when scrolling page with space QVBoxLayout *m_layout; PageWidget* imgLabel; int m_currentPage; }; } #endif qcomicbook-0.8.2/src/SimplePageView.cpp000644 001750 001750 00000013245 11644604742 020322 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "SimplePageView.h" #include "Utility.h" #include "PageWidget.h" #include "ComicBookSettings.h" #include #include #include #include #include #include #include #include using namespace QComicBook; const int SimplePageView::EXTRA_WHEEL_SPIN = 3; SimplePageView::SimplePageView(QWidget *parent, int physicalPages, const ViewProperties& props) : PageViewBase(parent, physicalPages, props) , wheelupcnt(0), wheeldowncnt(0) , m_currentPage(0) //?? , imgLabel(NULL) { //setFocusPolicy(QWidget::StrongFocus); QWidget *w = new QWidget(this); w->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); m_layout = new QVBoxLayout(w); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setSpacing(0); m_layout->setAlignment(Qt::AlignCenter); setWidget(w); recreatePageWidget(); setWidgetResizable(true); setBackground(props.background()); setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); } SimplePageView::~SimplePageView() { } void SimplePageView::recreatePageWidget() { delete imgLabel; imgLabel = NULL; // size of default empty page widget (until first image is loaded) int w = viewport()->width() - 10; int h = viewport()->height() - 10; if (numOfPages()) { imgLabel = new PageWidget(this, w, h, 0, props.twoPagesMode()); m_layout->addWidget(imgLabel); } } void SimplePageView::setNumOfPages(int n) { PageViewBase::setNumOfPages(n); recreatePageWidget(); } void SimplePageView::propsChanged() { qDebug() << "SimplePageView::propsChanged()"; if (imgLabel) { if ((props.twoPagesMode() && !imgLabel->hasTwoPages()) || (imgLabel->hasTwoPages() && !props.twoPagesMode())) { recreatePageWidget(); } imgLabel->redrawImages(); update(); gotoPage(m_currentPage); } } void SimplePageView::scrollContentsBy(int dx, int dy) { PageViewBase::scrollContentsBy(dx, dy); } void SimplePageView::setImage(const Page &img1) { Q_ASSERT(numOfPages() > 0); delRequest(img1.getNumber(), false, false); if (img1.getNumber() == m_currentPage) { imgLabel->setImage(img1); horizontalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); emit pageReady(img1); } } void SimplePageView::setImage(const Page &img1, const Page &img2) { Q_ASSERT(numOfPages() > 0); delRequest(img1.getNumber(), true, false); if (img1.getNumber() == m_currentPage) { imgLabel->setImage(img1, img2); horizontalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); emit pageReady(img1, img2); } } void SimplePageView::gotoPage(int n) { if (n>= 0 && n < numOfPages()) { if (n != m_currentPage) { //delRequest(m_currentPage); } m_currentPage = n = roundPageNumber(n); addRequest(m_currentPage, props.twoPagesMode() && n+1 < numOfPages()); emit currentPageChanged(n); ComicBookSettings &cfg(ComicBookSettings::instance()); if (cfg.preloadPages()) { n = nextPage(n); qDebug() << "preloading" << n; addRequest(n, props.twoPagesMode() && n < numOfPages()); // request two pages if not last page } } } void SimplePageView::resizeEvent(QResizeEvent *e) { if (imgLabel) { imgLabel->redrawImages(); } PageViewBase::resizeEvent(e); } void SimplePageView::wheelEvent(QWheelEvent *e) { if (imgLabel) { if (e->delta() > 0) //scrolling up { if (imgLabel->height() <= height() || (onTop() && ++wheelupcnt > EXTRA_WHEEL_SPIN)) { e->accept(); wheelupcnt = 0; gotoPage(previousPage(m_currentPage)); } else { QScrollArea::wheelEvent(e); wheeldowncnt = 0; //reset opposite direction counter } } else //scrolling down { if (imgLabel->height() <= height() || (onBottom() && ++wheeldowncnt > EXTRA_WHEEL_SPIN)) { e->accept(); wheeldowncnt = 0; gotoPage(nextPage(m_currentPage)); } else { QScrollArea::wheelEvent(e); wheelupcnt = 0; //reset opposite direction counter } } } } void SimplePageView::scrollToTop() { verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMinimum); } void SimplePageView::scrollToBottom() { verticalScrollBar()->triggerAction(QAbstractSlider::SliderToMaximum); } void SimplePageView::clear() { delRequests(); setNumOfPages(0); } int SimplePageView::visiblePages() const { return imgLabel ? imgLabel->numOfPages() : 0; } int SimplePageView::viewWidth() const { return width(); //TODO? // return (imgLabel->numOfPages()) ? imgLabel->width() : 0; } int SimplePageView::currentPage() const { return imgLabel ? imgLabel->pageNumber() : -1; } qcomicbook-0.8.2/src/ComicBookInfo.cpp000644 001750 001750 00000003661 11644604742 020123 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ComicBookInfo.h" #include "Sink/ImgSink.h" #include #include #include #include #include #include using namespace QComicBook; ComicBookInfo::ComicBookInfo(QWidget *parent, ImgSink &sink, const QFont &f): QDialog(parent), font(f) { setModal(true); setWindowTitle(tr("QComicBook info")); resize(640, 480); QVBoxLayout *lay = new QVBoxLayout(this); tabs = new QTabWidget(this); lay->addWidget(tabs); setupDescriptionTabs(sink); //setupGeneralTab(sink); // // setup buttons QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal, this); lay->addWidget(buttons); connect(buttons, SIGNAL(rejected()), this, SLOT(accept())); } void ComicBookInfo::setupDescriptionTabs(const ImgSink &sink) { const QStringList desc = sink.getDescription(); QStringList::const_iterator it = desc.begin(); while (it != desc.end()) { QWidget *w = new QWidget(this); QVBoxLayout *l = new QVBoxLayout(w); QTextEdit *txt = new QTextEdit(w); l->addWidget(txt); tabs->addTab(w, *it); it++; if (it == desc.end()) break; txt->setReadOnly(true); txt->setFont(font); txt->setPlainText(*it); it++; } } void ComicBookInfo::setupGeneralTab(ImgSink &sink) { /*QWidget *w = new QWidget(this); QVBoxLayout *l = new QVBoxLayout(w); QTextEdit *txt = new QTextEdit(w); l->addWidget(txt); txt->setReadOnly(true); txt->setFont(font); //txt->setText(sink.getStats()); tabs->addTab(w, tr("General info"));*/ } ComicBookInfo::~ComicBookInfo() { } qcomicbook-0.8.2/src/ComicImageWidget.h000644 001750 001750 00000002526 11644604742 020247 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __COMIC_IMAGE_WIDGET_H #define __COMIC_IMAGE_WIDGET_H #include #include #include class QPixmap; class QPainter; namespace QComicBook { class PageViewBase; class ComicImageWidget: public QWidget { Q_OBJECT public: ComicImageWidget(PageViewBase *parent, int w, int h); virtual ~ComicImageWidget(); virtual void dispose(); virtual bool isDisposed() const; void setSourceSize(int w, int h); QSize getSourceSize() const; QSize getScaledSize() const; const QPixmap* pixmap() const; virtual void paintEvent(QPaintEvent *event); void redrawScaledImage(); PageViewBase* view() const; void recalcScaledSize(); protected: virtual void redraw(QPainter &p) = 0; private: PageViewBase *m_view; QPixmap *m_pixmap; int xoff, yoff; QMatrix rmtx; QSize imageSize; //image size without scaling QSize scaledSize; //image size with scaling and rotation }; } #endif qcomicbook-0.8.2/src/ViewProperties.h000644 001750 001750 00000003315 11644604742 020072 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __VIEW_PROPERTIES_H #define __VIEW_PROPERTIES_H #include #include #include namespace QComicBook { enum Size { Original, FitWidth, FitHeight, WholePage, BestFit }; enum Rotation { None, Left, Right }; enum ViewType { Simple, Continuous, Frame }; class ViewProperties: public QObject { Q_OBJECT signals: void changed(); public: ViewProperties(); ViewProperties(const ViewProperties &props); void setFromSettings(); int angle() const; void setAngle(Rotation r, bool notify=true); Size size() const; void setSize(Size s); bool pageNumbers() const; void setPageNumbers(bool f); QColor background() const; void setBackground(const QColor &c); bool continuousScrolling() const; void setTwoPagesMode(bool f); bool twoPagesMode() const; void setMangaMode(bool f); bool mangaMode() const; private: unsigned char m_angle; //rotation angle, 0..3, multipled by 90 Size m_size; QMatrix m_rmatrix; //rotation matrix QColor m_background; //background color bool m_pageNumbers; //if page numbers should be embedded bool m_twoPagesMode; bool m_mangaMode; bool m_contScroll; }; } #endif qcomicbook-0.8.2/src/Page.cpp000644 001750 001750 00000001576 11644604742 016321 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Page.h" using namespace QComicBook; Page::Page() : m_number(-1) { } Page::Page(const Page &p) { m_number = p.m_number; m_image = p.m_image; } Page::Page(int number, const QImage &image) : m_number(number), m_image(image) { } Page::~Page() { } QImage Page::getImage() const { return m_image; } int Page::getNumber() const { return m_number; } int Page::width() const { return m_image.width(); } int Page::height() const { return m_image.height(); } qcomicbook-0.8.2/src/SystemInfoDialog.h000644 001750 001750 00000001345 11644604742 020324 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __SYSTEM_INFO_DIALOG_H #define __SYSTEM_INFO_DIALOG_H #include #include "ui_SystemInfoDialog.h" namespace QComicBook { class SystemInfoDialog: public QDialog, private Ui::SystemInfoDialog { Q_OBJECT public: SystemInfoDialog(QWidget *parent); private: void updateInfoText(); }; } #endif qcomicbook-0.8.2/src/GoToPageWidget.cpp000644 001750 001750 00000002335 11644604742 020250 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include #include "GoToPageWidget.h" using namespace QComicBook; GoToPageWidget::GoToPageWidget(QWidget *parent, int value, int max): QDialog(parent) { setupUi(this); QIntValidator *validator = new QIntValidator(1, max, this); le_pagenumber->setValidator(validator); if (value < 1) { value = 1; } else if (value > max) { value = max; } le_pagenumber->setText(QString::number(value)); connect(le_pagenumber, SIGNAL(returnPressed()), this, SLOT(goClicked())); lb_total->setText(QString("/") + QString::number(max)); connect(pb_go, SIGNAL(clicked()), this, SLOT(goClicked())); pb_go->setDefault(true); } GoToPageWidget::~GoToPageWidget() { } void GoToPageWidget::goClicked() { int n = le_pagenumber->text().toInt() - 1; accept(); emit pageSelected(n); } qcomicbook-0.8.2/src/PrinterThread.cpp000644 001750 001750 00000003306 11644604742 020211 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "PrinterThread.h" #include "Sink/ImgSink.h" #include "Page.h" #include #include using namespace QComicBook; PrinterThread::PrinterThread(QSharedPointer sink, QSharedPointer printer, QAbstractPrintDialog::PrintRange range, int from, int to) : QThread() , m_sink(sink) , m_printer(printer) , m_range(range) , m_from(from) , m_to(to) , m_abort(false) { if (range == QAbstractPrintDialog::AllPages) { m_from = 1; m_to = sink->numOfImages(); } } PrinterThread::~PrinterThread() { m_printer.clear(); } void PrinterThread::run() { QPainter painter; painter.begin(m_printer.data()); QRectF pageRect(m_printer->pageRect()); for (int i=m_from-1; iabort(); break; } int result; Page page = m_sink->getImage(i, result); // TODO check result emit printing(i); painter.drawImage(pageRect, page.getImage()); if (i != m_to-1) { m_printer->newPage(); } } painter.end(); } void PrinterThread::abort() { m_printMtx.lock(); m_abort = true; m_printMtx.unlock(); } qcomicbook-0.8.2/src/AboutDialog.h000644 001750 001750 00000001410 11644604742 017267 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ABOUT_DIALOG_H #define __ABOUT_DIALOG_H #include #include "ui_AboutDialog.h" namespace QComicBook { class AboutDialog: public QDialog, private Ui::AboutDialog { public: AboutDialog(QWidget *parent, const QString &caption, const QString &text, const QPixmap &logo); virtual ~AboutDialog(); void setText(const QString &text); }; } #endif qcomicbook-0.8.2/src/GoToPageWidget.h000644 001750 001750 00000001430 11644604742 017710 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __GOTOPAGEWIDGET_H #define __GOTOPAGEWIDGET_H #include "ui_GoToPageWidget.h" #include namespace QComicBook { class GoToPageWidget: public QDialog, private Ui::GoToPageWidget { Q_OBJECT signals: void pageSelected(int n); protected slots: void goClicked(); public: GoToPageWidget(QWidget *parent, int value, int max); virtual ~GoToPageWidget(); }; } #endif qcomicbook-0.8.2/src/ComicBookSettings.h000644 001750 001750 00000007737 11644604742 020505 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __SETTINGS_H #define __SETTINGS_H #include "PageViewBase.h" #include "EnumMap.h" #include #include #include class QSettings; class QColor; namespace QComicBook { using namespace Utility; class ComicMainWindow; class ComicBookSettings: public QObject { Q_OBJECT signals: void displaySettingsChanged(const QString &option); public: void load(); bool embedPageNumbers() const; bool smallCursor() const; bool twoPagesMode() const; bool japaneseMode() const; bool continuousScrolling() const; ViewType viewType() const; bool scrollbarsVisible() const; Size pageSize() const; bool smoothScaling() const; QString lastDir() const; const QStringList& recentlyOpened() const; QColor background() const; int cacheSize() const; bool cacheAutoAdjust() const; bool cacheThumbnails() const; int thumbnailsAge() const; bool preloadPages() const; bool confirmExit() const; bool autoInfo() const; bool fullScreenHideMenu() const; bool fullScreenHideStatusbar() const; bool fullScreenHideToolbar() const; bool showStatusbar() const; const QFont& infoFont() const; void restoreGeometry(ComicMainWindow *w) const; void restoreDockLayout(ComicMainWindow *w) const; bool showSplash() const; QString tmpDir() const; bool showDonationDialog() const; void embedPageNumbers(bool f); void smallCursor(bool f); void twoPagesMode(bool f); void japaneseMode(bool f); void continuousScrolling(bool f); void viewType(ViewType t); void scrollbarsVisible(bool f); void pageSize(Size s); void smoothScaling(bool s); void lastDir(const QString &d); void recentlyOpened(const QStringList &hist); void background(const QColor &color); void cacheSize(int s); void cacheAutoAdjust(bool f); void cacheThumbnails(bool f); void thumbnailsAge(int n); void preloadPages(bool f); void confirmExit(bool f); void autoInfo(bool f); void fullScreenHideMenu(bool f); void fullScreenHideStatusbar(bool f); void fullScreenHideToolbar(bool f); void showStatusbar(bool f); void infoFont(const QFont &f); void saveDockLayout(ComicMainWindow *w); void saveGeometry(ComicMainWindow *w); void showSplash(bool f); void tmpDir(const QString &dir); bool showDonationDialog(bool f); static ComicBookSettings& instance(); // // checks and creates .qcomicbook/ and cache subdirectories if // necessary bool checkDirs(); const QString& bookmarksDir(); const QString& thumbnailsDir(); private: QSettings *m_cfg; bool m_embedpagenumbers; bool m_smallcursor; bool m_twopages; bool m_twopagesstep; bool m_japanese; bool m_contscroll; bool m_scrollbars; bool m_preload; bool m_fscrhidemenu; bool m_fscrhidestatus; bool m_fscrhidetoolbar; Size m_pagesize; ViewType m_viewtype; bool m_smoothscaling; QString m_lastdir; QColor m_bgcolor; QStringList m_recent; int m_cachesize; int m_thumbsage; bool m_cacheadjust; bool m_cachethumbs; bool m_autoinfo; bool m_confirmexit; bool m_statusbar; bool m_intbrowser; bool m_showsplash; bool m_donationdlg; QString m_tmpdir; QFont m_font; QString m_bkpath; //bookmarks path QString m_thpath; //thumbnails cache path bool m_dirsok; //is above dirs are ok static const EnumMap size2string[]; static const EnumMap viewtype2string[]; ComicBookSettings(); ComicBookSettings(const ComicBookSettings &); ComicBookSettings operator =(const ComicBookSettings &); virtual ~ComicBookSettings(); }; } #endif qcomicbook-0.8.2/src/PrinterThread.h000644 001750 001750 00000002257 11644604742 017662 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __PRINTER_THREAD_H #define __PRINTER_THREAD_H #include #include #include #include class QPrinter; namespace QComicBook { class ImgSink; class PrinterThread: public QThread { Q_OBJECT public: PrinterThread(QSharedPointer sink, QSharedPointer printer, QAbstractPrintDialog::PrintRange range, int from, int to); ~PrinterThread(); void run(); public slots: void abort(); signals: void printing(int n); private: QMutex m_printMtx; bool m_abort; QSharedPointer m_printer; QSharedPointer m_sink; QAbstractPrintDialog::PrintRange m_range; int m_from; int m_to; }; } #endif qcomicbook-0.8.2/src/Utility.h000644 001750 001750 00000001253 11644604742 016545 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __MISCUTIL_H #define __MISCUTIL_H class QString; namespace Utility { QString which(const QString &command); //similiar to shell 'which' command void touch(const QString &path); QString shortenPath(const QString &path, const QString &filler, int maxlen); } #endif qcomicbook-0.8.2/src/CMakeLists.txt000644 001750 001750 00000005567 11644604742 017505 0ustar00pawelpawel000000 000000 INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/FrameDetect ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/FrameDetect ${CMAKE_BINARY_DIR} ${POPPLER_INCLUDE_DIRS} ) SET(qcomicbook_src FrameDetect/BinarizedImage.cpp FrameDetect/ComicFrameList.cpp FrameDetect/FrameDetect.cpp FrameDetect/FrameDetectThread.cpp FrameDetect/FrameCache.cpp Archivers/ArchiversConfiguration.cpp Archivers/ArchiverHint.cpp Archivers/ArchiverStatus.cpp Archivers/ArchiverStrategy.cpp Archivers/AceArchiverStrategy.cpp Archivers/P7zipArchiverStrategy.cpp Archivers/RarArchiverStrategy.cpp Archivers/TargzArchiverStrategy.cpp Archivers/Tarbz2ArchiverStrategy.cpp Archivers/ZipArchiverStrategy.cpp ColorPushButton.cpp FileSignature.cpp AboutDialog.cpp Bookmark.cpp BookmarkManager.cpp Bookmarks.cpp ComicBookCfgDialog.cpp ComicBookInfo.cpp ComicBookSettings.cpp ComicImageWidget.cpp ComicMainWindow.cpp DirReader.cpp FrameView.cpp FrameWidget.cpp History.cpp IconViewThumbnail.cpp Sink/ImgArchiveSink.cpp Sink/ImgPdfSink.cpp Sink/ImgDirSink.cpp Sink/ImgSink.cpp Sink/ImgSinkFactory.cpp ImageFormatsInfo.cpp ImgCache.cpp LoaderThreadBase.cpp PageLoaderThread.cpp PrintProgressDialog.cpp GoToPageWidget.cpp ListViewThumbnail.cpp main.cpp Utility.cpp Page.cpp PageWidget.cpp PageViewBase.cpp PrinterThread.cpp SimplePageView.cpp ContinuousPageView.cpp RecentFilesMenu.cpp StatusBar.cpp SystemInfoDialog.cpp Thumbnail.cpp ThumbnailItem.cpp ThumbnailLoaderThread.cpp ThumbnailsView.cpp ThumbnailsWindow.cpp ViewProperties.cpp ) SET(qcomicbook_moc_hdrs FrameDetect/FrameCache.h FrameDetect/FrameDetectThread.h Archivers/ArchiversConfiguration.h BookmarkManager.h ComicBookCfgDialog.h ComicBookSettings.h ComicImageWidget.h ComicMainWindow.h FrameView.h PageViewBase.h ContinuousPageView.h SimplePageView.h Sink/ImgSink.h Sink/ImgArchiveSink.h LoaderThreadBase.h PageLoaderThread.h ThumbnailLoaderThread.h GoToPageWidget.h PageWidget.h PrinterThread.h PrintProgressDialog.h RecentFilesMenu.h StatusBar.h SystemInfoDialog.h ThumbnailsWindow.h ThumbnailsView.h ViewProperties.h ) SET(qcomicbook_ui AboutDialog.ui ConfigDialog.ui DonationDialog.ui BookmarkManager.ui ComicMainWindow.ui GoToPageWidget.ui PrintProgressDialog.ui SystemInfoDialog.ui ) QT4_ADD_RESOURCES(qcomicbook_res ../data/qcomicbook.qrc) QT4_WRAP_CPP(qcomicbook_moc_src ${qcomicbook_moc_hdrs}) QT4_WRAP_UI(qcomicbook_ui_src ${qcomicbook_ui}) ###QT4_ADD_TRANSLATION(qcomicbook_qm ../lang/pl_PL.ts) ADD_EXECUTABLE(qcomicbook ${qcomicbook_src} ${qcomicbook_moc_src} ${qcomicbook_ui_src} ${qcomicbook_res}) ADD_DEPENDENCIES(qcomicbook translations) TARGET_LINK_LIBRARIES(qcomicbook ${QT_LIBRARIES}) TARGET_LINK_LIBRARIES(qcomicbook ${POPPLER_LIBRARIES}) INSTALL(TARGETS qcomicbook DESTINATION bin) qcomicbook-0.8.2/src/History.h000644 001750 001750 00000001504 11644604742 016542 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __HISTORY_H #define __HISTORY_H #include namespace Utility { class History { private: QStringList hlist; QString key; int size; public: History(const QStringList &l, int max = 10); History(int max = 10); virtual ~History(); void remove(const QString &txt); void append(const QString &txt); void set(const QStringList &l); QString first(); QStringList getAll() const; }; } #endif qcomicbook-0.8.2/src/config.h.cmake000644 001750 001750 00000000203 11644604742 017420 0ustar00pawelpawel000000 000000 #ifndef __CONFIG_H #define __CONFIG_H #define DATADIR "@CMAKE_INSTALL_PREFIX@/share/@PACKAGE@" #define VERSION "@VERSION@" #endifqcomicbook-0.8.2/src/PageWidget.cpp000644 001750 001750 00000011464 11644604742 017462 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "PageWidget.h" #include "Page.h" #include "PageViewBase.h" #include "ComicBookSettings.h" #include #include #include #include #include #include using namespace QComicBook; PageWidget::PageWidget(PageViewBase *parent, int w, int h, int pageNum, bool twoPages) : ComicImageWidget(parent, w, h) , m_pageNum(pageNum) , m_twoPages(twoPages) , pageSize(w, h) , estimated(true) { m_image[0] = m_image[1] = NULL; } PageWidget::~PageWidget() { deletePages(); } void PageWidget::deletePages() { for (int i=0; i<2; i++) { delete m_image[i]; m_image[i] = NULL; } } void PageWidget::setImage(const Page &img1) { deletePages(); m_image[0] = new Page(img1); m_twoPages = false; estimated = false; redrawImages(); } void PageWidget::setImage(const Page &img1, const Page &img2) { deletePages(); m_image[0] = new Page(img1); m_image[1] = new Page(img2); m_twoPages = true; estimated = false; redrawImages(); } Page PageWidget::getPage(int n) { if (n>=0 && n<2 && m_image[n]) { return *m_image[n]; } throw std::runtime_error("Invalid page index"); } void PageWidget::dispose() { ComicImageWidget::dispose(); deletePages(); } bool PageWidget::isDisposed() const { return ComicImageWidget::isDisposed() || (m_image[0] == NULL); } void PageWidget::setEstimatedSize(int w, int h) { if (estimated) // update size only if we have estimated size, otherwise we know last real size { if (pageSize.width() != w || pageSize.height() != h) { pageSize = QSize(w, h); redrawImages(); } } } bool PageWidget::estimatedSize() const { return estimated; } bool PageWidget::isInView(int vy1, int vy2) const { const int y1 = pos().y(); return std::min(y1 + pageSize.height(), vy2) > std::max(y1, vy1); } int PageWidget::pageNumber() const { return m_pageNum; } bool PageWidget::hasTwoPages() const { return m_twoPages; } void PageWidget::drawPageNumber(int page, QPainter &p, int x, int y) { const QString pagestr(QString::number(page + 1)); const QFontMetrics mtr(p.fontMetrics()); const int txtw(mtr.width(pagestr)); p.setPen(Qt::black); p.fillRect(x - txtw - 5, y - 2 - mtr.height(), txtw + 5, mtr.height() + 4, Qt::white); p.drawText(x - txtw - 4, y - 4, pagestr); } void PageWidget::redraw(QPainter &p) { const int pages = numOfPages(); ViewProperties &props = view()->properties(); if (pages == 1) { p.drawImage(0, 0, m_image[0]->getImage(), 0, 0); if (props.pageNumbers()) { p.setWorldMatrixEnabled(false); drawPageNumber(m_image[0]->getNumber(), p, getScaledSize().width(), getScaledSize().height()); } } else if (pages == 2) { const int swap(props.mangaMode()); // clear areas not covered by page (if pages sizes differ) for (int i=0; i<2; i++) { const int j(i^swap); if (m_image[j]->height() < std::max(m_image[0]->height(), m_image[1]->height())) { p.fillRect(i*m_image[j]->width(), m_image[j]->height(), m_image[j]->width(), getSourceSize().height() - m_image[j]->height(), props.background()); break; //only one page may be smaller } } p.drawImage(0, 0, m_image[0^swap]->getImage(), 0, 0); p.drawImage(m_image[0^swap]->width(), 0, m_image[1^swap]->getImage(), 0, 0); if (props.pageNumbers()) { p.setWorldMatrixEnabled(false); drawPageNumber(std::max(m_image[swap]->getNumber(), m_image[1^swap]->getNumber()), p, getScaledSize().width(), getScaledSize().height()); } } } void PageWidget::redrawImages() { const int pages = numOfPages(); int totalWidth, totalHeight; ViewProperties &props = view()->properties(); if (pages == 0) // images not set or disposed, use last known or estimated size { totalWidth = pageSize.width(); totalHeight = pageSize.height(); } else if (pages == 1) { totalWidth = m_image[0]->width(); totalHeight = m_image[0]->height(); } else // 2 pages { totalWidth = m_image[0]->width() + m_image[1]->width(); totalHeight = std::max(m_image[0]->height(), m_image[1]->height()); } setSourceSize(totalWidth, totalHeight); if (!estimated) { redrawScaledImage(); } } int PageWidget::numOfPages() const { int n; for (n=0; n<2; n++) { if (!m_image[n]) break; } return n; } void PageWidget::propsChanged() { redrawImages(); } qcomicbook-0.8.2/src/PageLoaderThread.cpp000644 001750 001750 00000002031 11644604742 020563 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "PageLoaderThread.h" #include "Page.h" #include "Sink/ImgDirSink.h" using namespace QComicBook; PageLoaderThread::PageLoaderThread(): LoaderThreadBase() { } PageLoaderThread::~PageLoaderThread() { } bool PageLoaderThread::process(const LoadRequest &req) { int result; if (req.twoPages) { const Page page1(sink->getImage(req.pageNumber, result)); const Page page2(sink->getImage(req.pageNumber+1, result)); emit pageLoaded(page1, page2); //TODO errors } else { const Page page(sink->getImage(req.pageNumber, result)); emit pageLoaded(page); } return true; } qcomicbook-0.8.2/src/ComicBookCfgDialog.h000644 001750 001750 00000002056 11644604742 020511 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __CBCONFIGDIALOG_H #define __CBCONFIGDIALOG_H #include #include "ui_ConfigDialog.h" namespace QComicBook { class ComicBookSettings; class ComicBookCfgDialog: public QDialog, private Ui::ConfigDialog { Q_OBJECT private: ComicBookSettings *cfg; QFont font; void updateFontPreview(); signals: void displaySettingsChanged(); protected slots: virtual void accept(); void showBackgroundDialog(); void showFontDialog(); void showTempDirDialog(); public: ComicBookCfgDialog(QWidget *parent, ComicBookSettings *cfg); virtual ~ComicBookCfgDialog(); }; } #endif qcomicbook-0.8.2/src/PageWidget.h000644 001750 001750 00000003256 11644604742 017127 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __PAGEWIDGET_H #define __PAGEWIDGET_H #include "ComicImageWidget.h" namespace QComicBook { class Page; class PageViewBase; class PageWidget: public ComicImageWidget { Q_OBJECT public slots: void propsChanged(); public: PageWidget(PageViewBase *parent, int w, int h, int pageNum, bool twoPages=false); virtual ~PageWidget(); virtual void redraw(QPainter &p); void setImage(const Page &img1); void setImage(const Page &img1, const Page &img2); Page getPage(int n); virtual void dispose(); virtual bool isDisposed() const; bool isInView(int vy1, int vy2) const; void redrawImages(); void setEstimatedSize(int w, int h); bool estimatedSize() const; int pageNumber() const; bool hasTwoPages() const; int numOfPages() const; protected: void deletePages(); void drawPageNumber(int page, QPainter &p, int x, int y); private: int m_pageNum; //number of physical page Page *m_image[2]; QSize pageSize; //size of 1 or 2 pages without scaling bool estimated; bool m_twoPages; //whether this widget holds one or two pages; this is independent from current two pages mode setting }; } #endif qcomicbook-0.8.2/src/IconViewThumbnail.cpp000644 001750 001750 00000001234 11644604742 021023 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "IconViewThumbnail.h" using namespace QComicBook; IconViewThumbnail::IconViewThumbnail(QListWidget *view, int page, const QPixmap &pixmap): QListWidgetItem(pixmap, QString::number(page+1), view), ThumbnailItem(page) { } IconViewThumbnail::~IconViewThumbnail() { } qcomicbook-0.8.2/src/PageViewBase.h000644 001750 001750 00000007606 11644604742 017414 0ustar00pawelpawel000000 000000 #ifndef __PAGEVIEWBASE_H #define __PAGEVIEWBASE_H #include #include "ViewProperties.h" #include class QMenu; namespace QComicBook { class PageWidget; class Page; enum Scaling { Smooth, Fast }; class PageViewBase: public QScrollArea { Q_OBJECT signals: void currentPageChanged(int); void bottomReached(); void topReached(); void doubleClick(); void requestPage(int); void requestTwoPages(int); void cancelPageRequest(int); void cancelTwoPagesRequest(int); void pageReady(const Page&); void pageReady(const Page&, const Page &); public slots: virtual void setImage(const Page &img1) = 0; virtual void setImage(const Page &img1, const Page &img2) = 0; virtual void clear() = 0; virtual void gotoPage(int n) = 0; virtual void scrollToTop() = 0; virtual void scrollToBottom() = 0; virtual void jumpUp(); virtual void jumpDown(); virtual void setFrames(int page, const QList &frames); virtual void nextFrame(); virtual void prevFrame(); virtual void setTwoPagesMode(bool f); virtual void setMangaMode(bool f); virtual void setBackground(const QColor &color); virtual void setSmallCursor(bool f); virtual void showPageNumbers(bool f); virtual void setRotation(Rotation r); virtual void rotateRight(); virtual void rotateLeft(); virtual void resetRotation(); virtual void setSize(Size s); virtual void scrollUp(); virtual void scrollDown(); virtual void scrollUpFast(); virtual void scrollDownFast(); virtual void scrollRight(); virtual void scrollLeft(); virtual void scrollRightFast(); virtual void scrollLeftFast(); virtual void propsChanged() = 0; public: PageViewBase(QWidget *parent, int physicalPages, const ViewProperties &props); virtual ~PageViewBase(); void enableScrollbars(bool f); QMenu *contextMenu() const; ViewProperties& properties(); bool onBottom(); bool onTop(); virtual void setNumOfPages(int n); int numOfPages() const; virtual int visiblePages() const = 0; virtual int viewWidth() const = 0; virtual int currentPage() const = 0; virtual int nextPage(int page) const; virtual int previousPage(int page) const; virtual int roundPageNumber(int page) const; protected: virtual void resizeEvent(QResizeEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); void scrollByDelta(int dx, int dy); void recalculateScrollSpeeds(); bool hasRequest(int page) const; void addRequest(int page, bool twoPages); void delRequest(int page, bool twoPages, bool cancel=true); void delRequests(); ViewProperties props; private: static const float JUMP_FACTOR; //factor used to calculate the amount of space to scroll when scrolling page with space QMenu *context_menu; int m_physicalPages; int lx, ly; //last mouse position when tracking mouse movements int spdx, spdy; //scroll speed int wheelupcnt, wheeldowncnt; QCursor *smallcursor; QList m_requestedPages; }; } #endif qcomicbook-0.8.2/src/Bookmarks.cpp000644 001750 001750 00000005721 11644604742 017371 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Bookmarks.h" #include "ComicBookSettings.h" #include #include #include #include using namespace QComicBook; Bookmarks::Bookmarks(QMenu *menu): bmenu(menu), changed(false) { fname = ComicBookSettings::instance().bookmarksDir() + "/bookmarks"; } Bookmarks::~Bookmarks() { } bool Bookmarks::load() { if (fname.isEmpty()) return false; QFile f(fname); if (f.open(QIODevice::ReadOnly)) { QTextStream str(&f); while (!str.atEnd()) { QString name = str.readLine(); if (str.atEnd()) break; int page = str.readLine().toInt(); set(name, page); } f.close(); } return false; } bool Bookmarks::save() { if (!changed) return true; if (fname.isEmpty()) return false; QFile f(fname); if (f.open(QIODevice::WriteOnly)) { QTextStream str(&f); foreach (Bookmark *b, blist) str << b->getName() << endl << b->getPage() << endl; f.close(); changed = false; return true; } return false; } void Bookmarks::set(const QString &cbname, int page) { QAction *action; foreach (Bookmark *b, blist) { if ((b->getName() == cbname)) { if (b->getPage() == page) //same page, do nothing return; action = b->getId(); bmenu->removeAction(action); bmap.remove(action); b->setName(cbname); b->setPage(page); action = bmenu->addAction(b->menuItemName()); b->setId(action); bmap.insert(action, b); changed = true; return; } } Bookmark *b = new Bookmark(cbname, page); blist.append(b); action = bmenu->addAction(b->menuItemName()); b->setId(action); bmap.insert(action, b); changed = true; return; } bool Bookmarks::remove(const QString &cbname) { foreach (Bookmark *b, blist) { if ((b->getName() == cbname)) return remove(b->getId()); } return false; } bool Bookmarks::remove(QAction *id) { if (bmap.contains(id)) { Bookmark *b = bmap[id]; const int idx = blist.indexOf(b); if (idx >= 0) { bmenu->removeAction(id); bmap.remove(id); blist.removeAt(idx); delete b; } changed = true; return true; } return false; } bool Bookmarks::get(QAction *action, Bookmark &b) { if (bmap.contains(action)) { b = *bmap[action]; return true; } return false; } QList Bookmarks::get() const { QList res; foreach (Bookmark *b, blist) res.push_back(*b); return res; } bool Bookmarks::exists(const QString &cbname) { foreach (Bookmark *b, blist) if (b->getName() == cbname) return true; return false; } qcomicbook-0.8.2/src/FrameWidget.cpp000644 001750 001750 00000002216 11644604742 017633 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "FrameWidget.h" #include "FrameView.h" #include #include "Page.h" #include #include using namespace QComicBook; FrameWidget::FrameWidget(FrameView *parent, int w, int h) : ComicImageWidget(parent, w, h) , m_image(0) { } FrameWidget::~FrameWidget() { delete m_image; } void FrameWidget::setFrame(const Page &p, const ComicFrame &f) { m_image = new QImage(p.getImage()); m_frame = QRect(f.xPos(), f.yPos(), f.width(), f.height()); setSourceSize(f.width(), f.height()); redrawScaledImage(); } void FrameWidget::redraw(QPainter &p) { if (m_image) { p.drawImage(0, 0, *m_image, m_frame.x(), m_frame.y(), m_frame.width(), m_frame.height()); } } void FrameWidget::clear() { delete m_image; m_image = 0; dispose(); } qcomicbook-0.8.2/src/DirReader.h000644 001750 001750 00000001445 11644604742 016746 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __DIRREADER_H #define __DIRREADER_H #include #include class DirReader { private: QDir::SortFlags flags; int maxDirDepth; void recurseDir(const QString &path, int curDepth); protected: virtual bool fileHandler(const QFileInfo &path) = 0; public: DirReader(QDir::SortFlags sortFlags, int maxDepth); virtual ~DirReader(); void visit(const QString &path); }; #endif qcomicbook-0.8.2/src/PrintProgressDialog.ui000644 001750 001750 00000005020 11644604742 021225 0ustar00pawelpawel000000 000000 PrintProgressDialog Qt::ApplicationModal 0 0 253 70 0 0 Printing. Please wait... true 0 0 Printing page: 0 Qt::Horizontal 40 20 0 0 Cancel Qt::Horizontal 40 20 qcomicbook-0.8.2/src/ColorPushButton.cpp000644 001750 001750 00000001624 11644604742 020551 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ColorPushButton.h" #include #include ColorPushButton::ColorPushButton(QWidget *parent): QPushButton(parent) { } ColorPushButton::ColorPushButton(const QString &text, QWidget *parent): QPushButton(parent) { } QColor ColorPushButton::getColor() const { return color; } void ColorPushButton::setColor(const QColor &c) { color = c; update(); } void ColorPushButton::paintEvent(QPaintEvent *e) { QPainter p(this); p.fillRect(0, 0, width(), height(), color); p.end(); e->accept(); } qcomicbook-0.8.2/src/Archivers/RarArchiverStrategy.h000644 001750 001750 00000001444 11644604742 022765 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __RAR_ARCHIVER_STRATEGY_H #define __RAR_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class RarArchiverStrategy: public ArchiverStrategy { public: RarArchiverStrategy(); virtual ~RarArchiverStrategy(); virtual void configure(); virtual QList getHints() const; private: bool nonfree_unrar; }; } #endif qcomicbook-0.8.2/src/Archivers/P7zipArchiverStrategy.cpp000644 001750 001750 00000002103 11644604742 023576 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "P7zipArchiverStrategy.h" #include "Utility.h" using namespace QComicBook; using Utility::which; P7zipArchiverStrategy::P7zipArchiverStrategy() : ArchiverStrategy("p7zip", FileSignature()) { } P7zipArchiverStrategy::~P7zipArchiverStrategy() { } void P7zipArchiverStrategy::configure() { addExtension(".7z"); addExtension(".cb7"); setExecutables("7z", "7zr"); if (which("7z") != QString::null) { setExtractArguments("7z x @F"); setListArguments("7z l @F"); setSupported(); } else if (which("7zr") != QString::null) { setExtractArguments("7zr x @F"); setListArguments("7zr l @F"); setSupported(); } } qcomicbook-0.8.2/src/Archivers/P7zipArchiverStrategy.h000644 001750 001750 00000001316 11644604742 023250 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __P7ZIP_ARCHIVER_STRATEGY_H #define __P7ZIP_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class P7zipArchiverStrategy: public ArchiverStrategy { public: P7zipArchiverStrategy(); virtual ~P7zipArchiverStrategy(); virtual void configure(); }; } #endif qcomicbook-0.8.2/src/Archivers/AceArchiverStrategy.h000644 001750 001750 00000001304 11644604742 022724 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ACE_ARCHIVER_STRATEGY_H #define __ACE_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class AceArchiverStrategy: public ArchiverStrategy { public: AceArchiverStrategy(); virtual ~AceArchiverStrategy(); virtual void configure(); }; } #endif qcomicbook-0.8.2/src/Archivers/ArchiverStrategy.h000644 001750 001750 00000006237 11644604742 022325 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file ArchiverStrategy.h */ #ifndef __ARCHIVER_STRATEGY #define __ARCHIVER_STRATEGY #include #include #include "FileSignature.h" #include "ArchiverHint.h" #include "ArchiverStatus.h" class QFile; namespace QComicBook { /** * @brief Base class that provides configuration information and commandline parameters for external archivers. */ class ArchiverStrategy { public: ArchiverStrategy(const QString &name, const FileSignature &sig); virtual ~ArchiverStrategy(); /** * @brief Return true if specified archive file can be opened with this archiver. * * @param f archive file * * @return true if f can be extracted */ virtual bool canOpen(QFile *f) const; /** * @brief Return true if specified archive file can be opened with this archiver. * * @param archive filename * * @return true if file can be extracted */ virtual bool canOpen(const QString &filename) const; QStringList getExtractArguments(const QString &filename) const; QStringList getExtractArguments() const; QStringList getListArguments(const QString &filename) const; QStringList getListArguments() const; QStringList getExtensions() const; /** * @brief Return true if this archiver is supported. * * @return true if archiver is supported */ bool isSupported() const; /** * @brief Fills command line template with given arguments. The returned list is ready for use for archiver process invocation. Special argument @@F is replaced with filename. * * @param args arguments list * @param filename archive filename * * @return archiver executable invocation parameters */ static QStringList fillTemplateArguments(const QStringList &args, const QString &filename); /** * @brief Performs configuration of this archiver. Detects if this archiver is supported and sets internal parameters accordingly. */ virtual void configure() = 0; /** * @brief Provides hints related to configuration and availability of this archiver. * * @return hints */ virtual QList getHints() const; operator ArchiverStatus() const; protected: void setFileMagic(const FileSignature &sig); void setExtractArguments(const QString &command); void setListArguments(const QString &command); void setSupported(bool f=true); void setExecutables(const QString &exec1, const QString &exec2=QString::null); void addExtension(const QString &ext); private: FileSignature signature; QString name; bool supported; QStringList executables; QStringList extensions; QStringList extractArgs; QStringList listArgs; }; } #endif qcomicbook-0.8.2/src/Archivers/ArchiverHint.cpp000644 001750 001750 00000001121 11644604742 021743 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ArchiverHint.h" using namespace QComicBook; ArchiverHint::ArchiverHint(const QString &message, Severity severity) { msg = message; sev = severity; } ArchiverHint::~ArchiverHint() { } qcomicbook-0.8.2/src/Archivers/ArchiverStrategy.cpp000644 001750 001750 00000005563 11644604742 022661 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ArchiverStrategy.h" #include #include using namespace QComicBook; ArchiverStrategy::ArchiverStrategy(const QString &name, const FileSignature &sig) : name(name) , supported(false) , signature(sig) { } ArchiverStrategy::~ArchiverStrategy() { } void ArchiverStrategy::setSupported(bool f) { supported = f; } void ArchiverStrategy::addExtension(const QString &ext) { if (extensions.indexOf(ext) < 0) { extensions.append(ext); } } void ArchiverStrategy::setFileMagic(const FileSignature &sig) { signature = sig; } QStringList ArchiverStrategy::fillTemplateArguments(const QStringList & inargs, const QString &filename) { QStringList args; foreach (QString s, inargs) { if (s == "@F") { args << filename; } else { args << s; } } return args; } void ArchiverStrategy::setExtractArguments(const QString &command) { extractArgs = command.split(" ", QString::SkipEmptyParts); } void ArchiverStrategy::setListArguments(const QString &command) { listArgs = command.split(" ", QString::SkipEmptyParts); } void ArchiverStrategy::setExecutables(const QString &exec1, const QString &exec2) { executables.clear(); executables.append(exec1); if (exec2 != QString::null) { executables.append(exec2); } } QStringList ArchiverStrategy::getExtractArguments(const QString &filename) const { return fillTemplateArguments(extractArgs, filename); } QStringList ArchiverStrategy::getExtractArguments() const { return extractArgs; } QStringList ArchiverStrategy::getListArguments(const QString &filename) const { return fillTemplateArguments(listArgs, filename); } QStringList ArchiverStrategy::getListArguments() const { return listArgs; } QStringList ArchiverStrategy::getExtensions() const { return extensions; } bool ArchiverStrategy::canOpen(QFile *f) const { return supported && signature.matches(f); } bool ArchiverStrategy::canOpen(const QString &filename) const { QFile file(filename); if (file.open(QIODevice::ReadOnly)) { return canOpen(&file); } } QList ArchiverStrategy::getHints() const { return QList(); // no hints by default } bool ArchiverStrategy::isSupported() const { return supported; } ArchiverStrategy::operator ArchiverStatus() const { Q_ASSERT(executables.size() > 0); return ArchiverStatus(supported, name, extensions, executables); } qcomicbook-0.8.2/src/Archivers/TargzArchiverStrategy.cpp000644 001750 001750 00000001706 11644604742 023664 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "TargzArchiverStrategy.h" #include "Utility.h" using namespace QComicBook; using Utility::which; TargzArchiverStrategy::TargzArchiverStrategy() : ArchiverStrategy("tar.gz", FileSignature()) { } TargzArchiverStrategy::~TargzArchiverStrategy() { } void TargzArchiverStrategy::configure() { addExtension(".tar.gz"); addExtension(".tgz"); addExtension(".cbg"); setExecutables("tar"); if (which("tar") != QString::null) { setExtractArguments("tar -xvzf @F"); setListArguments("tar -tzf @F"); setSupported(); } } qcomicbook-0.8.2/src/Archivers/ArchiverStatus.cpp000644 001750 001750 00000002520 11644604742 022330 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ArchiverStatus.h" using namespace QComicBook; ArchiverStatus::ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QString &exec1, const QString &exec2) : m_name(name), m_supported(supported), m_extensions(extensions) { m_executables.append(exec1); if (exec2 != QString::null) { m_executables.append(exec2); } } ArchiverStatus::ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QStringList &execlist) : m_name(name), m_supported(supported), m_executables(execlist), m_extensions(extensions) { } ArchiverStatus::~ArchiverStatus() { } bool ArchiverStatus::isSupported() const { return m_supported; } QString ArchiverStatus::name() const { return m_name; } QStringList ArchiverStatus::executables() const { return m_executables; } QStringList ArchiverStatus::extensions() const { return m_extensions; } qcomicbook-0.8.2/src/Archivers/ArchiversConfiguration.h000644 001750 001750 00000002513 11644604742 023506 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ARCHIVERS_CONFIGURATION_H #define __ARCHIVERS_CONFIGURATION_H #include #include #include #include "ArchiverStatus.h" namespace QComicBook { class ArchiverStrategy; class ArchiversConfiguration: public QObject { Q_OBJECT public: static ArchiversConfiguration& instance(); void getExtractArguments(const QString &filename, QStringList &extract, QStringList &list) const; QStringList getExtractArguments(const QString &filename) const; QStringList getListArguments(const QString &filename) const; QStringList supportedOpenExtensions() const; QList getArchiversStatus() const; QList getHints() const; private: ArchiversConfiguration(); ~ArchiversConfiguration(); ArchiverStrategy* findStrategy(const QString &filename) const; QList archivers; }; } #endif qcomicbook-0.8.2/src/Archivers/RarArchiverStrategy.cpp000644 001750 001750 00000005235 11644604742 023322 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "RarArchiverStrategy.h" #include "ArchiversConfiguration.h" #include "Utility.h" #include #include using namespace QComicBook; using Utility::which; RarArchiverStrategy::RarArchiverStrategy() : ArchiverStrategy("rar", FileSignature(0, "\x52\x61\x72\x21", 4)), nonfree_unrar(false) { } RarArchiverStrategy::~RarArchiverStrategy() { } void RarArchiverStrategy::configure() { addExtension(".rar"); addExtension(".cbr"); setExecutables("rar", "unrar"); if (which("rar") != QString::null) { setExtractArguments("rar x @F"); setListArguments("rar lb @F"); setSupported(); } else if (which("unrar") != QString::null) { FILE *f; // // now determine which unrar it is - free or non-free if ((f = popen("unrar", "r")) != NULL) { QRegExp regexp("^UNRAR.+freeware"); for (QTextStream s(f); !s.atEnd(); ) { if (regexp.indexIn(s.readLine()) >= 0) { nonfree_unrar = true; break; } } pclose(f); if (nonfree_unrar) { setExtractArguments("unrar x @F"); setListArguments("unrar lb @F"); } else { setExtractArguments("unrar -x @F"); setListArguments("unrar -t @F"); } setSupported(); } } else if (which("unrar-free") != QString::null) //some distros rename free unrar like this { setExtractArguments("unrar-free -x @F"); setListArguments("unrar-free -t @F"); setSupported(); } } QList RarArchiverStrategy::getHints() const { QList hints; if (isSupported() && !nonfree_unrar) { hints.append(ArchiverHint( ArchiversConfiguration::tr("Free (opensource) version of unrar was detected. " "This version has problems with many rar archives. " "It is recommended to install the non-free unrar and restart QComicBook."), ArchiverHint::Warning)); } return hints; } qcomicbook-0.8.2/src/Archivers/Tarbz2ArchiverStrategy.h000644 001750 001750 00000001323 11644604742 023401 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __TARBZ2_ARCHIVER_STRATEGY_H #define __TARBZ2_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class Tarbz2ArchiverStrategy: public ArchiverStrategy { public: Tarbz2ArchiverStrategy(); virtual ~Tarbz2ArchiverStrategy(); virtual void configure(); }; } #endif qcomicbook-0.8.2/src/Archivers/ArchiversConfiguration.cpp000644 001750 001750 00000010071 11644604742 024037 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ArchiversConfiguration.h" #include "ArchiverStrategy.h" #include "ZipArchiverStrategy.h" #include "RarArchiverStrategy.h" #include "AceArchiverStrategy.h" #include "TargzArchiverStrategy.h" #include "Tarbz2ArchiverStrategy.h" #include "P7zipArchiverStrategy.h" using namespace QComicBook; ArchiversConfiguration& ArchiversConfiguration::instance() { static ArchiversConfiguration cfg; return cfg; } ArchiversConfiguration::ArchiversConfiguration() { archivers.append(new ZipArchiverStrategy()); archivers.append(new RarArchiverStrategy()); archivers.append(new AceArchiverStrategy()); archivers.append(new TargzArchiverStrategy()); archivers.append(new Tarbz2ArchiverStrategy()); archivers.append(new P7zipArchiverStrategy()); foreach (ArchiverStrategy *s, archivers) { s->configure(); } } ArchiversConfiguration::~ArchiversConfiguration() { foreach (ArchiverStrategy *s, archivers) { delete s; } } ArchiverStrategy* ArchiversConfiguration::findStrategy(const QString &filename) const { QFile file(filename); if (file.open(QIODevice::ReadOnly)) { foreach (ArchiverStrategy *s, archivers) { if (s->canOpen(&file)) { file.close(); return s; } } file.close(); foreach (ArchiverStrategy *s, archivers) { foreach (QString ext, s->getExtensions()) { if (filename.endsWith(ext, Qt::CaseInsensitive)) { return s; } } } } return NULL; } void ArchiversConfiguration::getExtractArguments(const QString &filename, QStringList &extract, QStringList &list) const { ArchiverStrategy *s = findStrategy(filename); if (s) { extract = s->getExtractArguments(filename); list = s->getListArguments(filename); } else { extract.clear(); list.clear(); } } QStringList ArchiversConfiguration::getExtractArguments(const QString &filename) const { ArchiverStrategy *s = findStrategy(filename); if (s) { return s->getExtractArguments(filename); } return QStringList(); } QStringList ArchiversConfiguration::getListArguments(const QString &filename) const { ArchiverStrategy *s = findStrategy(filename); if (s) { return s->getListArguments(filename); } return QStringList(); } QStringList ArchiversConfiguration::supportedOpenExtensions() const { QStringList extlist; foreach (ArchiverStrategy *s, archivers) { foreach (const QString ext, s->getExtensions()) { extlist.append("*" + ext); } } return extlist; } QList ArchiversConfiguration::getArchiversStatus() const { QList status; foreach (ArchiverStrategy *s, archivers) { status.append(ArchiverStatus(*s)); } return status; } QList ArchiversConfiguration::getHints() const { QList hints; bool all_supported(true); foreach (ArchiverStrategy *s, archivers) { hints.append(s->getHints()); all_supported = all_supported && s->isSupported(); } if (!all_supported) { hints.append(ArchiverHint(tr("Some archives are not supported because essential external utilities are missing. " "Please install required executables and restart QComicBook. " "Note: if more than one executable is listed for given archive type, then it is sufficient to install " " just one of them."), ArchiverHint::Error)); } return hints; } qcomicbook-0.8.2/src/Archivers/ArchiverHint.h000644 001750 001750 00000001612 11644604742 021415 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ARCHIVER_HINT_H #define __ARCHIVER_HINT_H #include namespace QComicBook { class ArchiverHint { public: enum Severity { Info, Warning, Error }; ArchiverHint(const QString &message, Severity severity=Info); ~ArchiverHint(); Severity getSeverity() const { return sev; } QString getMessage() const { return msg; } private: QString msg; Severity sev; }; } #endif qcomicbook-0.8.2/src/Archivers/ArchiverStatus.h000644 001750 001750 00000002250 11644604742 021775 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ARCHIVER_STATUS_H #define __ARCHIVER_STATUS_H #include #include #include #include "ArchiverHint.h" namespace QComicBook { class ArchiverStatus { public: ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QString &exec1, const QString &exec2=QString::null); ArchiverStatus(bool supported, const QString &name, const QStringList &extensions, const QStringList &execlist); ~ArchiverStatus(); bool isSupported() const; QString name() const; QStringList executables() const; QStringList extensions() const; private: QString m_name; QStringList m_executables; QStringList m_extensions; bool m_supported; }; } #endif qcomicbook-0.8.2/src/Archivers/Tarbz2ArchiverStrategy.cpp000644 001750 001750 00000001664 11644604742 023744 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Tarbz2ArchiverStrategy.h" #include "Utility.h" using namespace QComicBook; using Utility::which; Tarbz2ArchiverStrategy::Tarbz2ArchiverStrategy() : ArchiverStrategy("tar.bz2", FileSignature()) { } Tarbz2ArchiverStrategy::~Tarbz2ArchiverStrategy() { } void Tarbz2ArchiverStrategy::configure() { addExtension(".tar.bz2"); addExtension(".cbb"); setExecutables("tar"); if (which("tar") != QString::null) { setExtractArguments("tar -xvjf @F"); setListArguments("tar -tjf @F"); setSupported(); } } qcomicbook-0.8.2/src/Archivers/AceArchiverStrategy.cpp000644 001750 001750 00000001701 11644604742 023260 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "AceArchiverStrategy.h" #include "Utility.h" using namespace QComicBook; using Utility::which; AceArchiverStrategy::AceArchiverStrategy() : ArchiverStrategy("ace", FileSignature(8, "\x2a\x41\x43\x45", 4)) { } AceArchiverStrategy::~AceArchiverStrategy() { } void AceArchiverStrategy::configure() { addExtension(".ace"); addExtension(".cba"); setExecutables("unace"); if (which("unace") != QString::null) { setExtractArguments("unace x -y -c- @F"); setListArguments("unace l -y -c- @F"); setSupported(); } } qcomicbook-0.8.2/src/Archivers/ZipArchiverStrategy.cpp000644 001750 001750 00000001714 11644604742 023336 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ZipArchiverStrategy.h" #include "Utility.h" using namespace QComicBook; using Utility::which; ZipArchiverStrategy::ZipArchiverStrategy() : ArchiverStrategy("zip", FileSignature(0, "\x50\x4b\x03\x04", 4)) { } ZipArchiverStrategy::~ZipArchiverStrategy() { } void ZipArchiverStrategy::configure() { addExtension(".zip"); addExtension(".cbz"); addExtension(".cbr"); setExecutables("unzip"); if (which("unzip") != QString::null) { setExtractArguments("unzip @F"); setListArguments("unzip -l @F"); setSupported(); } } qcomicbook-0.8.2/src/Archivers/ZipArchiverStrategy.h000644 001750 001750 00000001304 11644604742 022776 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __ZIP_ARCHIVER_STRATEGY_H #define __ZIP_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class ZipArchiverStrategy: public ArchiverStrategy { public: ZipArchiverStrategy(); virtual ~ZipArchiverStrategy(); virtual void configure(); }; } #endif qcomicbook-0.8.2/src/Archivers/TargzArchiverStrategy.h000644 001750 001750 00000001316 11644604742 023326 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __TARGZ_ARCHIVER_STRATEGY_H #define __TARGZ_ARCHIVER_STRATEGY_H #include "ArchiverStrategy.h" namespace QComicBook { class TargzArchiverStrategy: public ArchiverStrategy { public: TargzArchiverStrategy(); virtual ~TargzArchiverStrategy(); virtual void configure(); }; } #endif qcomicbook-0.8.2/src/Thumbnail.h000644 001750 001750 00000002273 11644604742 017030 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __THUMBNAIL_H #define __THUMBNAIL_H #include #include #include namespace QComicBook { class Thumbnail { private: int num; QByteArray hash; QImage img; static int thwidth, thheight; //default thumbnail width and height static QByteArray getScrambledName(const QString &in); public: Thumbnail(); Thumbnail(int n, const QString &comicbookName); Thumbnail(int n, const QImage &i); Thumbnail(const Thumbnail &t); ~Thumbnail(); int page() const; const QImage& image() const; bool tryLoad(); bool fromOriginalImage(const QString &fname); bool save(); void setImage(const QImage &i); QString getFullPath() const; static int maxWidth(); static int maxHeight(); }; } Q_DECLARE_METATYPE(QComicBook::Thumbnail) #endif qcomicbook-0.8.2/src/ComicBookCfgDialog.cpp000644 001750 001750 00000007175 11644604742 021053 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ComicBookCfgDialog.h" #include "ComicBookSettings.h" #include "PageViewBase.h" #include #include #include using namespace QComicBook; ComicBookCfgDialog::ComicBookCfgDialog(QWidget *parent, ComicBookSettings *cfg): QDialog(parent), cfg(cfg) { setupUi(this); // // setup buttons connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); font = cfg->infoFont(); connect(pb_font, SIGNAL(clicked()), this, SLOT(showFontDialog())); updateFontPreview(); // // background color pb_color->setColor(cfg->background()); connect(pb_color, SIGNAL(clicked()), this, SLOT(showBackgroundDialog())); cb_hidetoolbar->setChecked(cfg->fullScreenHideToolbar()); cb_hidemenu->setChecked(cfg->fullScreenHideMenu()); cb_hidestatus->setChecked(cfg->fullScreenHideStatusbar()); cb_smallcursor->setChecked(cfg->smallCursor()); cb_embedpagenumbers->setChecked(cfg->embedPageNumbers()); cb_smoothscaling->setChecked(cfg->smoothScaling()); sb_cachesize->setValue(cfg->cacheSize()); cb_cacheadjust->setChecked(cfg->cacheAutoAdjust()); cb_preload->setChecked(cfg->preloadPages()); cb_autoinfo->setChecked(cfg->autoInfo()); cb_thumbs->setChecked(cfg->cacheThumbnails()); sb_thumbsage->setValue(cfg->thumbnailsAge()); cb_splash->setChecked(cfg->showSplash()); cb_confirmexit->setChecked(cfg->confirmExit()); le_tempdir->setText(cfg->tmpDir()); connect(b_browsetemp, SIGNAL(clicked()), this, SLOT(showTempDirDialog())); } ComicBookCfgDialog::~ComicBookCfgDialog() { } void ComicBookCfgDialog::accept() { // // display cfg->background(pb_color->getColor()); cfg->fullScreenHideMenu(cb_hidemenu->isChecked()); cfg->fullScreenHideStatusbar(cb_hidestatus->isChecked()); cfg->fullScreenHideToolbar(cb_hidetoolbar->isChecked()); cfg->smallCursor(cb_smallcursor->isChecked()); cfg->embedPageNumbers(cb_embedpagenumbers->isChecked()); cfg->smoothScaling(cb_smoothscaling->isChecked()); cfg->infoFont(font); // // misc cfg->cacheSize(sb_cachesize->value()); cfg->cacheAutoAdjust(cb_cacheadjust->isChecked()); cfg->preloadPages(cb_preload->isChecked()); cfg->cacheThumbnails(cb_thumbs->isChecked()); cfg->thumbnailsAge(sb_thumbsage->value()); cfg->autoInfo(cb_autoinfo->isChecked()); cfg->showSplash(cb_splash->isChecked()); cfg->confirmExit(cb_confirmexit->isChecked()); cfg->tmpDir(le_tempdir->text()); emit displaySettingsChanged(); //FIXME only if needed QDialog::accept(); } void ComicBookCfgDialog::updateFontPreview() { fontname->setText(font.family() + ", " + QString::number(font.pointSize())); fontname->setFont(font); } void ComicBookCfgDialog::showBackgroundDialog() { QColor c = QColorDialog::getColor(cfg->background(), this); if (c.isValid()) { pb_color->setColor(c); } } void ComicBookCfgDialog::showFontDialog() { bool ok; font = QFontDialog::getFont(&ok, font, this); if (ok) updateFontPreview(); } void ComicBookCfgDialog::showTempDirDialog() { QString dir(QFileDialog::getExistingDirectory(this, tr("Choose temporary directory"), le_tempdir->text())); if (!(dir.isNull() || dir.isEmpty())) { le_tempdir->setText(dir); } } qcomicbook-0.8.2/src/SystemInfoDialog.ui000644 001750 001750 00000005014 11644604742 020507 0ustar00pawelpawel000000 000000 SystemInfoDialog Qt::ApplicationModal 0 0 795 517 System information :/icons/qcomicbook.png:/icons/qcomicbook.png true false true Qt::NoTextInteraction Qt::Horizontal 40 20 Qt::Horizontal QDialogButtonBox::Ok bb_buttons accepted() SystemInfoDialog accept() 248 254 157 274 bb_buttons rejected() SystemInfoDialog reject() 316 260 286 274 qcomicbook-0.8.2/src/FileSignature.cpp000644 001750 001750 00000002521 11644604742 020175 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "FileSignature.h" using namespace QComicBook; FileSignature::FileSignature(unsigned int offset, const char *pattern, unsigned int len) : offset(offset) { this->pattern = QByteArray(pattern, len); } FileSignature::FileSignature() : offset(0) { } FileSignature::FileSignature(const FileSignature &sig) { pattern = sig.pattern; offset = sig.offset; } FileSignature::~FileSignature() { } bool FileSignature::matches(QFile *file) const { if (pattern.size() > 0 && file->seek(offset)) { for (int i=0; igetChar(&c)) return false; if (c != pattern.at(i)) return false; } return true; } return false; } FileSignature& FileSignature::operator =(const FileSignature &sig) { if (this != &sig) { pattern = sig.pattern; offset = sig.offset; } return *this; } qcomicbook-0.8.2/src/ComicMainWindow.cpp000644 001750 001750 00000100446 11644604742 020470 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "config.h" #include "Bookmarks.h" #include "ComicMainWindow.h" #include "Page.h" #include "ComicBookInfo.h" #include "ContinuousPageView.h" #include "SimplePageView.h" #include "FrameView.h" #include "Archivers/ArchiversConfiguration.h" #include "Sink/ImgDirSink.h" #include "Sink/ImgSinkFactory.h" #include "AboutDialog.h" #include "ui_DonationDialog.h" #include "ComicBookSettings.h" #include "History.h" #include "ComicBookCfgDialog.h" #include "StatusBar.h" #include "ThumbnailsWindow.h" #include "ThumbnailsView.h" #include "ThumbnailLoaderThread.h" #include "BookmarkManager.h" #include "Utility.h" #include "SystemInfoDialog.h" #include "GoToPageWidget.h" #include "PageLoaderThread.h" #include "RecentFilesMenu.h" #include "PrinterThread.h" #include #include "PrintProgressDialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace QComicBook; using namespace Utility; ComicMainWindow::ComicMainWindow(QWidget *parent): QMainWindow(parent), currpage(0) { setupUi(this); updateCaption(); setAttribute(Qt::WA_DeleteOnClose); cfg = &ComicBookSettings::instance(); printer = QSharedPointer(new QPrinter()); pageLoader = new PageLoaderThread(); frameDetect = new FrameDetectThread(); // // Thumbnails window thumbswin = QPointer(new ThumbnailsWindow(this)); thumbswin->setObjectName("ThumbnailsWindow"); thumbswin->setAllowedAreas(Qt::AllDockWidgetAreas); addDockWidget(Qt::LeftDockWidgetArea, thumbswin); connect(thumbswin, SIGNAL(requestedPage(int, bool)), this, SLOT(jumpToPage(int, bool))); connect(thumbswin, SIGNAL(shown()), this, SLOT(thumbnailsWindowShown())); // // Actions QActionGroup *scaleActions = new QActionGroup(this); scaleActions->addAction(actionFitWidth); scaleActions->addAction(actionFitHeight); scaleActions->addAction(actionWholePage); scaleActions->addAction(actionOriginalSize); scaleActions->addAction(actionBestFit); connect(scaleActions, SIGNAL(triggered(QAction *)), this, SLOT(setPageSize(QAction *))); QActionGroup *viewTypeActions = new QActionGroup(this); viewTypeActions->addAction(actionContinuousView); viewTypeActions->addAction(actionSimpleView); viewTypeActions->addAction(actionFrameView); connect(viewTypeActions, SIGNAL(triggered(QAction *)), this, SLOT(changeViewType(QAction *))); actionExitFullScreen = new QAction(QString::null, this); actionExitFullScreen->setShortcut(tr("Escape")); addAction(actionExitFullScreen); actionToggleThumbnails = thumbswin->toggleViewAction(); actionToggleThumbnails->setIcon(QPixmap(":/icons/thumbnails.png")); actionToggleThumbnails->setShortcut(tr("Alt+t")); actionToggleThumbnails->setCheckable(true); toolBar->insertAction(actionShowInfo, actionToggleThumbnails); connect(actionOpenArchive, SIGNAL(triggered(bool)), this, SLOT(browseArchive())); connect(actionOpenDirectory, SIGNAL(triggered(bool)), this, SLOT(browseDirectory())); connect(actionOpenNext, SIGNAL(triggered(bool)), this, SLOT(openNext())); connect(actionOpenPrevious, SIGNAL(triggered(bool)), this, SLOT(openPrevious())); connect(actionPrint, SIGNAL(triggered(bool)), this, SLOT(openPrintDialog())); connect(actionSavePageAs, SIGNAL(triggered(bool)), this, SLOT(savePageAs())); connect(actionShowInfo, SIGNAL(triggered(bool)), this, SLOT(showInfo())); connect(actionExitFullScreen, SIGNAL(triggered(bool)), this, SLOT(exitFullscreen())); connect(actionNextPage, SIGNAL(triggered(bool)), this, SLOT(nextPage())); connect(actionForwardPage, SIGNAL(triggered(bool)), this, SLOT(forwardPages())); connect(actionFirstPage, SIGNAL(triggered(bool)), this, SLOT(firstPage())); connect(actionLastPage, SIGNAL(triggered(bool)), this, SLOT(lastPage())); connect(actionBackwardPage, SIGNAL(triggered(bool)), this, SLOT(backwardPages())); connect(actionQuit, SIGNAL(triggered(bool)), this, SLOT(close())); connect(actionFullscreen, SIGNAL(triggered(bool)), this, SLOT(toggleFullScreen())); connect(actionPreviousPage, SIGNAL(triggered(bool)), this, SLOT(prevPage())); connect(actionMangaMode, SIGNAL(toggled(bool)), this, SLOT(toggleJapaneseMode(bool))); connect(actionTwoPages, SIGNAL(toggled(bool)), this, SLOT(toggleTwoPages(bool))); connect(actionNextFrame, SIGNAL(triggered(bool)), this, SLOT(nextFrame())); connect(actionPreviousFrame, SIGNAL(triggered(bool)), this, SLOT(prevFrame())); // // Statusbar statusbar = new StatusBar(this); setStatusBar(statusbar); connect(actionToggleStatusbar, SIGNAL(toggled(bool)), statusbar, SLOT(setVisible(bool))); actionToggleStatusbar->setChecked(cfg->showStatusbar()); statusbar->setShown(cfg->showStatusbar()); setupComicImageView(); // // File menu menuRecentFiles = new RecentFilesMenu(tr("Recently opened"), this, 10); menuFile->insertMenu(actionOpenNext, menuRecentFiles); connect(menuRecentFiles, SIGNAL(selected(const QString &)), this, SLOT(recentSelected(const QString &))); connect(menuRecentFiles, SIGNAL(cleanupRequest()), menuRecentFiles, SLOT(removeAll())); connect(actionClose, SIGNAL(triggered()), this, SLOT(closeSink())); // View menu menuView->insertAction(actionFullscreen, actionToggleThumbnails); menuView->insertSeparator(actionFullscreen); // // Navigation menu connect(actionJumpToPage, SIGNAL(triggered()), this, SLOT(showJumpToPage())); connect(actionContinuousView, SIGNAL(toggled(bool)), this, SLOT(toggleContinousView(bool))); actionTwoPages->setChecked(cfg->twoPagesMode()); actionMangaMode->setChecked(cfg->japaneseMode()); actionContinuousView->setChecked(cfg->continuousScrolling()); // // Bookmarks menu bookmarks = QSharedPointer(new Bookmarks(menuBookmarks)); connect(actionSetBookmark, SIGNAL(triggered()), this, SLOT(setBookmark())); connect(actionRemoveBookmark, SIGNAL(triggered()), this, SLOT(removeBookmark())); connect(menuBookmarks, SIGNAL(triggered(QAction *)), this, SLOT(bookmarkSelected(QAction *))); connect(actionManageBookmarks, SIGNAL(triggered()), this, SLOT(openBookmarksManager())); bookmarks->load(); // // Settings menu connect(actionToggleScrollbars, SIGNAL(toggled(bool)), this, SLOT(toggleScrollbars(bool))); actionToggleScrollbars->setChecked(cfg->scrollbarsVisible()); connect(actionConfigure, SIGNAL(triggered()), this, SLOT(showConfigDialog())); menuSettings->insertAction(actionToggleStatusbar, toolBar->toggleViewAction()); // // Help menu connect(actionShowSystemInfo, SIGNAL(triggered()), this, SLOT(showSysInfo())); connect(actionShowAbout, SIGNAL(triggered()), this, SLOT(showAbout())); connect(actionAboutQt, SIGNAL(triggered()), this, SLOT(showAboutQt())); connect(actionAboutDonating, SIGNAL(triggered()), this, SLOT(showAboutDonating())); QAction *which = actionOriginalSize; switch (cfg->pageSize()) { case FitWidth: which = actionFitWidth; break; case FitHeight: which = actionFitHeight; break; case BestFit: which = actionBestFit; break; case WholePage: which = actionWholePage; break; case Original: which = actionOriginalSize; break; } which->setChecked(true); which = actionContinuousView; switch (cfg->viewType()) { case Simple: which = actionSimpleView; break; case Continuous: which = actionContinuousView; break; case Frame: which = actionFrameView; break; } which->setChecked(true); // // copy all menu actions; this is needed for fullscreen mode if menubar is hidden addActions(menuBar()->actions()); addAction(actionScrollRight); addAction(actionScrollLeft); addAction(actionScrollRightFast);; addAction(actionScrollLeftFast); addAction(actionScrollUp); addAction(actionScrollDown); addAction(actionScrollUpFast); addAction(actionScrollDownFast); addAction(actionJumpDown); addAction(actionJumpUp); lastdir = cfg->lastDir(); menuRecentFiles->set(cfg->recentlyOpened()); cfg->restoreDockLayout(this); cfg->restoreGeometry(this); if (isFullScreen()) { applyFullscreenSettings(); } //connect(cfg, SIGNAL(displaySettingsChanged(const QString &)), this, SLOT(reconfigureDisplay())); ?? enableComicBookActions(false); pageLoader->start(); frameDetect->start(); thumbnailLoader = new ThumbnailLoaderThread(); connect(thumbnailLoader, SIGNAL(thumbnailLoaded(const Thumbnail &)), thumbswin, SLOT(setThumbnail(const Thumbnail &))); thumbnailLoader->start(); } ComicMainWindow::~ComicMainWindow() { if (cfg->cacheThumbnails()) { ImgDirSink::removeThumbnails(cfg->thumbnailsAge()); } saveSettings(); frameDetect->stop(); pageLoader->stop(); thumbnailLoader->stop(); pageLoader->wait(); thumbnailLoader->wait(); printer.clear(); delete pageLoader; delete thumbnailLoader; if (sink) { sink.clear(); } } void ComicMainWindow::setupContextMenu() { QMenu *cmenu = view->contextMenu(); pageinfo = new QLabel(cmenu); pageinfo->setMargin(3); pageinfo->setAlignment(Qt::AlignHCenter); pageinfo->setFrameStyle(QFrame::Box | QFrame::Raised); QWidgetAction *actionPageInfo = new QWidgetAction(this); actionPageInfo->setDefaultWidget(pageinfo); cmenu->addAction(actionNextPage); cmenu->addAction(actionPreviousPage); cmenu->addSeparator(); cmenu->addAction(actionFitWidth); cmenu->addAction(actionFitHeight); cmenu->addAction(actionWholePage); cmenu->addAction(actionOriginalSize); cmenu->addAction(actionBestFit); cmenu->addSeparator(); cmenu->addAction(actionRotateRight); cmenu->addAction(actionRotateLeft); cmenu->addAction(actionNoRotation); cmenu->addSeparator(); cmenu->addAction(actionTwoPages); cmenu->addAction(actionMangaMode); cmenu->addSeparator(); cmenu->addAction(actionFullscreen); cmenu->addAction(actionPageInfo); } void ComicMainWindow::setupComicImageView() { const int n = (sink != NULL ? sink->numOfImages() : 0); if (view) { view->disconnect(); pageLoader->disconnect(); view->deleteLater(); } const ViewProperties props; actionNextFrame->setDisabled(true); actionPreviousFrame->setDisabled(true); actionTwoPages->setDisabled(false); actionMangaMode->setDisabled(!cfg->twoPagesMode()); switch (cfg->viewType()) { case Continuous: view = QPointer(new ContinuousPageView(this, n, props)); frameDetect->clear(); break; case Simple: view = QPointer(new SimplePageView(this, n, props)); frameDetect->clear(); break; case Frame: view = QPointer(new FrameView(this, n, props)); actionNextFrame->setDisabled(false); actionPreviousFrame->setDisabled(false); actionTwoPages->setDisabled(true); actionMangaMode->setDisabled(false); // // connect frame processing thread connect(pageLoader, SIGNAL(pageLoaded(const Page &)), frameDetect, SLOT(process(const Page &))); connect(frameDetect, SIGNAL(framesReady(const ComicFrameList &)), view, SLOT(setFrames(const ComicFrameList &))); break; default: break; } setCentralWidget(view); view->setFocus(); reconfigureDisplay(); connect(actionPageTop, SIGNAL(triggered(bool)), view, SLOT(scrollToTop())); connect(actionPageBottom, SIGNAL(triggered(bool)), view, SLOT(scrollToBottom())); connect(actionScrollRight, SIGNAL(triggered(bool)), view, SLOT(scrollRight())); connect(actionScrollLeft, SIGNAL(triggered(bool)), view, SLOT(scrollLeft())); connect(actionScrollRightFast, SIGNAL(triggered(bool)), view, SLOT(scrollRightFast())); connect(actionScrollLeftFast, SIGNAL(triggered(bool)), view, SLOT(scrollLeftFast())); connect(actionScrollUp, SIGNAL(triggered(bool)), view, SLOT(scrollUp())); connect(actionScrollDown, SIGNAL(triggered(bool)), view, SLOT(scrollDown())); connect(actionScrollUpFast, SIGNAL(triggered(bool)), view, SLOT(scrollUpFast())); connect(actionScrollDownFast, SIGNAL(triggered(bool)), view, SLOT(scrollDownFast())); connect(actionRotateRight, SIGNAL(triggered(bool)), view, SLOT(rotateRight())); connect(actionRotateLeft, SIGNAL(triggered(bool)), view, SLOT(rotateLeft())); connect(actionNoRotation, SIGNAL(triggered(bool)), view, SLOT(resetRotation())); connect(actionJumpDown, SIGNAL(triggered()), view, SLOT(jumpDown())); connect(actionJumpUp, SIGNAL(triggered()), view, SLOT(jumpUp())); connect(view, SIGNAL(bottomReached()), this, SLOT(nextPage())); connect(view, SIGNAL(topReached()), this, SLOT(prevPageBottom())); connect(view, SIGNAL(doubleClick()), this, SLOT(nextPage())); view->enableScrollbars(cfg->scrollbarsVisible()); connect(view, SIGNAL(currentPageChanged(int)), this, SLOT(currentPageChanged(int))); connect(pageLoader, SIGNAL(pageLoaded(const Page&)), view, SLOT(setImage(const Page&))); connect(pageLoader, SIGNAL(pageLoaded(const Page&, const Page&)), view, SLOT(setImage(const Page&, const Page&))); connect(view, SIGNAL(pageReady(const Page &)), this, SLOT(pageLoaded(const Page &))); connect(view, SIGNAL(pageReady(const Page &, const Page &)), this, SLOT(pageLoaded(const Page &, const Page &))); connect(view, SIGNAL(requestPage(int)), pageLoader, SLOT(request(int))); connect(view, SIGNAL(requestTwoPages(int)), pageLoader, SLOT(requestTwoPages(int))); connect(view, SIGNAL(cancelPageRequest(int)), pageLoader, SLOT(cancel(int))); connect(view, SIGNAL(cancelTwoPagesRequest(int)), pageLoader, SLOT(cancelTwoPages(int))); setupContextMenu(); if (sink) { jumpToPage(currpage, true); } } void ComicMainWindow::applyFullscreenSettings() { savedToolbarState = toolBar->toggleViewAction()->isChecked() || toolBar->isVisible(); if (cfg->fullScreenHideMenu()) menuBar()->hide(); if (cfg->fullScreenHideStatusbar()) statusbar->hide(); if (cfg->fullScreenHideToolbar()) { toolBar->toggleViewAction()->setChecked(false); toolBar->hide(); } } void ComicMainWindow::enableComicBookActions(bool f) { // // file menu const bool x = f && sink && sink->supportsNext(); actionClose->setEnabled(f); actionShowInfo->setEnabled(f); actionOpenNext->setEnabled(x); actionOpenPrevious->setEnabled(x); actionSavePageAs->setEnabled(x); actionPrint->setEnabled(x); // // view menu actionRotateRight->setEnabled(f); actionRotateLeft->setEnabled(f); actionNoRotation->setEnabled(f); // // navigation menu actionLastPage->setEnabled(f); actionFirstPage->setEnabled(f); actionJumpToPage->setEnabled(f); actionNextPage->setEnabled(f); actionPreviousPage->setEnabled(f); actionBackwardPage->setEnabled(f); actionForwardPage->setEnabled(f); actionPageTop->setEnabled(f); actionPageBottom->setEnabled(f); actionNextFrame->setEnabled(f && actionFrameView->isChecked()); actionPreviousFrame->setEnabled(f && actionFrameView->isChecked()); // // bookmarks menu actionSetBookmark->setEnabled(f); actionRemoveBookmark->setEnabled(f); } void ComicMainWindow::dragEnterEvent(QDragEnterEvent *e) { if (e->mimeData()->hasUrls()) e->acceptProposedAction(); } void ComicMainWindow::dropEvent(QDropEvent *e) { const QList urls = e->mimeData()->urls(); if (!urls.isEmpty()) open(urls.at(0).toLocalFile(), 0); } void ComicMainWindow::keyPressEvent(QKeyEvent *e) { if ((e->key()>=Qt::Key_1) && (e->key()<=Qt::Key_9)) { e->accept(); showJumpToPage(e->text()); } else QMainWindow::keyPressEvent(e); } void ComicMainWindow::closeEvent(QCloseEvent *e) { return (!cfg->confirmExit() || confirmExit()) ? e->accept() : e->ignore(); } bool ComicMainWindow::confirmExit() { return QMessageBox::question(this, tr("Leave QComicBook?"), tr("Do you really want to quit QComicBook?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes; } void ComicMainWindow::thumbnailsWindowShown() { if (sink) { int max = sink->numOfImages(); for (int i=0; iview()->isLoaded(i)) { thumbnailLoader->request(i); } } } } void ComicMainWindow::toggleScrollbars(bool f) { cfg->scrollbarsVisible(f); view->enableScrollbars(f); } void ComicMainWindow::toggleContinousView(bool f) { cfg->continuousScrolling(f); setupComicImageView(); } void ComicMainWindow::toggleTwoPages(bool f) { actionMangaMode->setDisabled(!f); cfg->twoPagesMode(f); view->setTwoPagesMode(f); } void ComicMainWindow::toggleJapaneseMode(bool f) { cfg->japaneseMode(f); view->setMangaMode(f); } void ComicMainWindow::setPageSize(QAction *action) { Size size; if (action == actionFitWidth) { size = FitWidth; } else if (action == actionFitHeight) { size = FitHeight; } else if (action == actionBestFit) { size = BestFit; } else if (action == actionWholePage) { size = WholePage; } else //actionOriginalSize { size = Original; } cfg->pageSize(size); view->setSize(size); } void ComicMainWindow::reloadPage() { if (sink) { jumpToPage(currpage, true); } } void ComicMainWindow::updateCaption() { QString c = "QComicBook"; if (sink) { c += " - " + sink->getName(); } setWindowTitle(c); } void ComicMainWindow::recentSelected(const QString &fname) { QFileInfo finfo(fname); if (!finfo.exists()) { menuRecentFiles->remove(fname); } open(fname, 0); } void ComicMainWindow::pageLoaded(const Page &page) { qDebug() << "page ready " << page.getNumber(); if (currpage == page.getNumber()) { statusbar->setImageInfo(&page); } } void ComicMainWindow::pageLoaded(const Page &page1, const Page &page2) { qDebug() << "page ready " << page1.getNumber() << ", " << page2.getNumber(); if (currpage == page1.getNumber() || currpage == page2.getNumber()) { statusbar->setImageInfo(&page1, &page2); } } void ComicMainWindow::sinkReady(const QString &path) { statusbar->setShown(actionToggleStatusbar->isChecked() && !(isFullScreen() && cfg->fullScreenHideStatusbar())); //applies back user's statusbar&toolbar preferences //toolbar->setShown(actiontoggleToolbar->isOn() && !(isFullScreen() && cfg->fullScreenHideToolbar())); menuRecentFiles->add(path); enableComicBookActions(true); updateCaption(); statusbar->setName(sink->getFullName()); view->setNumOfPages(sink->numOfImages()); //FIXME thumbswin->view()->setPages(sink->numOfImages()); // // request thumbnails for all pages if (thumbswin->isVisible()) { thumbnailLoader->request(0, sink->numOfImages()); } jumpToPage(currpage, true); const bool hasdesc = (sink->getDescription().count() > 0); actionShowInfo->setDisabled(!hasdesc); if (hasdesc && cfg->autoInfo()) showInfo(); } void ComicMainWindow::sinkError(int code) { statusbar->setShown(actionToggleStatusbar->isChecked() && !(isFullScreen() && cfg->fullScreenHideStatusbar())); //applies back user's statusbar&toolbar preferences //toolbar->setShown(actiontoggleToolbar->isOn() && !(isFullScreen() && cfg->fullScreenHideToolbar())); QString msg; switch (code) { case SINKERR_EMPTY: msg = tr("no images found"); break; case SINKERR_UNKNOWNFILE: msg = tr("unknown archive"); break; case SINKERR_ACCESS: msg = tr("can't access directory"); break; case SINKERR_NOTFOUND: msg = tr("file/directory not found"); break; case SINKERR_NOTSUPPORTED: msg = tr("archive not supported"); break; case SINKERR_ARCHEXIT: msg = tr("archive extractor exited with error"); break; default: break; } QMessageBox::critical(this, tr("QComicBook error"), tr("Error opening comicbook") + ": " + msg, QMessageBox::Ok, QMessageBox::NoButton); closeSink(); } void ComicMainWindow::browseDirectory() { const QString dir = QFileDialog::getExistingDirectory(this, tr("Choose a directory"), lastdir); if (!dir.isEmpty()) open(dir, 0); } void ComicMainWindow::browseArchive() { const QString file = QFileDialog::getOpenFileName(this, tr("Choose a file"), lastdir, "Archives (" + ArchiversConfiguration::instance().supportedOpenExtensions().join(" ") + " *.pdf);;All files (*)"); if (!file.isEmpty()) open(file, 0); } void ComicMainWindow::open(const QString &path, int page) { const QFileInfo f(path); const QString fullname = f.absoluteFilePath(); if (sink && sink->getFullName() == fullname) //trying to open same dir? return; lastdir = f.absolutePath(); currpage = page; closeSink(); sink = ImgSinkFactory::instance().createImgSink(path); sink->setCacheSize(cfg->cacheSize()*1024*1024, cfg->cacheAutoAdjust()); pageLoader->setSink(sink); thumbnailLoader->setSink(sink); thumbnailLoader->setUseCache(cfg->cacheThumbnails()); connect(sink.data(), SIGNAL(progress(int, int)), statusbar, SLOT(setProgress(int, int))); statusbar->setShown(true); //ensures status bar is visible when opening regardless of user settings int status = sink->open(fullname); if (status) sinkError(status); else sinkReady(fullname); } void ComicMainWindow::openNext() { if (sink && sink->supportsNext()) { QString fname = sink->getNext(); if (!fname.isEmpty()) open(fname, 0); } } void ComicMainWindow::openPrevious() { if (sink && sink->supportsNext()) { QString fname = sink->getPrevious(); if (!fname.isEmpty()) open(fname, 0); } } void ComicMainWindow::toggleFullScreen() { if (isFullScreen()) { exitFullscreen(); } else { applyFullscreenSettings(); showFullScreen(); } } void ComicMainWindow::exitFullscreen() { if (isFullScreen()) { menuBar()->show(); if (actionToggleStatusbar->isChecked()) statusbar->show(); if (!toolBar->isVisible()) { toolBar->toggleViewAction()->setChecked(savedToolbarState); if (savedToolbarState) toolBar->show(); } showNormal(); } } void ComicMainWindow::nextPage() { const int n(view->nextPage(currpage)); if (n >= 0) { jumpToPage(n); } } void ComicMainWindow::prevPage() { const int n(view->previousPage(currpage)); if (n >= 0) { jumpToPage(n); } } void ComicMainWindow::prevFrame() { view->prevFrame(); } void ComicMainWindow::nextFrame() { view->nextFrame(); } void ComicMainWindow::prevPageBottom() { if (currpage > 0) { jumpToPage(view->previousPage(currpage)); view->scrollToBottom(); } } void ComicMainWindow::firstPage() { jumpToPage(0); } void ComicMainWindow::lastPage() { if (sink) { jumpToPage(sink->numOfImages() - 1); } } void ComicMainWindow::forwardPages() { jumpToPage(currpage + 5 ); } void ComicMainWindow::backwardPages() { jumpToPage(currpage - 5); } void ComicMainWindow::jumpToPage(int n, bool force) { if (!sink) { return; } if (n >= sink->numOfImages()) { n = sink->numOfImages()-1; } if (n < 0) { n = 0; } if (!actionTogglePreserveRotation->isChecked()) { view->properties().setAngle(None, false); } if ((n != currpage) || force) { view->gotoPage(n); } } void ComicMainWindow::currentPageChanged(int n) { currpage = n; const QString page = tr("Page") + " " + QString::number(n + 1) + "/" + QString::number(sink->numOfImages()); pageinfo->setText(page); statusbar->setPage(n + 1, sink->numOfImages()); // // enable or disable next/prev/backward/forward page actions if first/last page shown if (sink == NULL || view->nextPage(n) < 0) { actionNextPage->setDisabled(true); actionForwardPage->setDisabled(true); } else { actionNextPage->setDisabled(false); actionForwardPage->setDisabled(false); } if (sink == NULL || view->previousPage(n) < 0) { actionPreviousPage->setDisabled(true); actionBackwardPage->setDisabled(true); } else { actionPreviousPage->setDisabled(false); actionBackwardPage->setDisabled(false); } thumbswin->view()->scrollToPage(n); } void ComicMainWindow::showInfo() { if (sink) { ComicBookInfo *i = new ComicBookInfo(this, *sink, cfg->infoFont()); i->show(); } } void ComicMainWindow::showSysInfo() { SystemInfoDialog sysinfo(this); sysinfo.exec(); } void ComicMainWindow::showAbout() { AboutDialog *win = new AboutDialog(this, "About QComicBook", "QComicBook " VERSION " - comic book viewer for GNU/Linux
" "(c)by Pawel Stolowski 2005-2010
" "released under terms of GNU General Public License

" "
http://qcomicbook.linux-projects.net
" "stolowski@gmail.com", QPixmap(":/images/qcomicbook-splash.png")); win->show(); } void ComicMainWindow::showAboutDonating(bool startup) { QDialog dlg; Ui::DonationDialog d; d.setupUi(&dlg); if (startup) { d.closeBtn->hide(); } else { d.remindBtn->hide(); d.donateBtn->hide(); } if (dlg.exec() == QDialog::Accepted) { if (startup) { cfg->showDonationDialog(false); } } } void ComicMainWindow::showConfigDialog() { ComicBookCfgDialog *d = new ComicBookCfgDialog(this, cfg); connect(d, SIGNAL(displaySettingsChanged()), this, SLOT(reconfigureDisplay())); d->show(); } void ComicMainWindow::showJumpToPage(const QString &number) { if (sink) { GoToPageWidget win(this, number.toInt(), sink->numOfImages()); connect(&win, SIGNAL(pageSelected(int)), this, SLOT(jumpToPage(int))); win.exec(); } } void ComicMainWindow::showAboutQt() { QApplication::aboutQt(); } void ComicMainWindow::closeSink() { enableComicBookActions(false); if (sink) { frameDetect->clear(); pageLoader->cancelAll(); pageLoader->setSink(); thumbnailLoader->cancelAll(); thumbnailLoader->setSink(); sink.clear(); } view->clear(); thumbswin->view()->clear(); updateCaption(); statusbar->clear(); } void ComicMainWindow::setBookmark() { if (sink) bookmarks->set(sink->getFullName(), currpage); } void ComicMainWindow::removeBookmark() { if (sink && bookmarks->exists(sink->getFullName()) && QMessageBox::question(this, tr("Removing bookmark"), tr("Do you really want to remove bookmark\nfor this comic book?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) bookmarks->remove(sink->getFullName()); } void ComicMainWindow::openBookmarksManager() { BookmarkManager *win = new BookmarkManager(this, bookmarks); win->show(); } void ComicMainWindow::savePageAs() { if (sink && (sink->numOfImages() > 0)) { const QString msg = tr("Save image as"); int cnt = view->visiblePages(); for (int i = 0; i 1) { tmpmsg += " (" + tr("page") + " " + QString::number(currpage + i + 1) + ")"; } QString fname = QFileDialog::getSaveFileName(this, tmpmsg, QString::null, "Images (*.jpg *.png)"); if (fname.isEmpty()) { break; } int result; const Page img = sink->getImage(currpage + i, result); if (result != 0 || !img.getImage().save(fname)) //TODO: overwrite and default format (jpeg) { QMessageBox::critical(this, tr("QComicBook error"), tr("Error saving image"), QMessageBox::Ok, QMessageBox::NoButton); break; //do not attempt to save second image } } } } void ComicMainWindow::openPrintDialog() { QPrintDialog printdlg(printer.data(), this); printdlg.setMinMax(1, sink->numOfImages()); if (printdlg.exec() == QDialog::Accepted) { PrintProgressDialog *progressdlg = new PrintProgressDialog(this); printThread = new PrinterThread(sink, printer, printdlg.printRange(), printdlg.fromPage(), printdlg.toPage()); connect(printThread, SIGNAL(printing(int)), progressdlg, SLOT(setPage(int))); connect(printThread, SIGNAL(finished()), progressdlg, SLOT(close())); connect(printThread, SIGNAL(finished()), this, SLOT(printingFinished())); connect(progressdlg, SIGNAL(abort()), printThread, SLOT(abort())); progressdlg->show(); printThread->start(); } } void ComicMainWindow::bookmarkSelected(QAction *action) { Bookmark b; if (bookmarks->get(action, b)) { if (b.getName() != QString::null) { QString fname = b.getName(); if (sink && fname == sink->getFullName()) //is this comicbook already opened? { jumpToPage(b.getPage(), true); //if so, just jump to bookmarked page return; } QFileInfo finfo(fname); if (!finfo.exists()) { if (QMessageBox::question(this, tr("Comic book not found"), tr("Selected bookmark points to\nnon-existing comic book\nDo you want to remove it?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) bookmarks->remove(action); return; } open(fname, b.getPage()); } } } void ComicMainWindow::changeViewType(QAction *action) { if (action == actionContinuousView) { cfg->viewType(Continuous); } else if (action == actionSimpleView) { cfg->viewType(Simple); } else // actionFrameView { cfg->viewType(Frame); } setupComicImageView(); } void ComicMainWindow::saveSettings() { cfg->saveGeometry(this); cfg->saveDockLayout(this); cfg->lastDir(lastdir); cfg->recentlyOpened(menuRecentFiles->get()); cfg->showStatusbar(actionToggleStatusbar->isChecked()); bookmarks->save(); } void ComicMainWindow::reconfigureDisplay() { view->setSmallCursor(cfg->smallCursor()); view->showPageNumbers(cfg->embedPageNumbers()); view->setBackground(cfg->background()); } void ComicMainWindow::printingFinished() { printThread->deleteLater(); } qcomicbook-0.8.2/src/ListViewThumbnail.cpp000644 001750 001750 00000001323 11644604742 021045 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ListViewThumbnail.h" using namespace QComicBook; ListViewThumbnail::ListViewThumbnail(QListWidget *parent, QListWidgetItem *after, int page) : ThumbnailItem(page) //: QListWidgetItem(parent, after, QString::number(page+1), QCheckListItem::CheckBox), ThumbnailItem(page) { } ListViewThumbnail::~ListViewThumbnail() { } qcomicbook-0.8.2/src/LoaderThreadBase.cpp000644 001750 001750 00000006423 11644604742 020572 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "LoaderThreadBase.h" #include "Sink/ImgSink.h" #include #include using namespace QComicBook; LoaderThreadBase::LoaderThreadBase(): QThread(), prio(QThread::LowPriority), sink(NULL), stopped(false) { } LoaderThreadBase::~LoaderThreadBase() { } void LoaderThreadBase::setPriority(QThread::Priority p) { loaderMutex.lock(); prio = p; loaderMutex.unlock(); } void LoaderThreadBase::setSink(QSharedPointer sink) { sinkMutex.lock(); this->sink = sink; sinkMutex.unlock(); } void LoaderThreadBase::request(int page) { qDebug() << "requested page" << page; loaderMutex.lock(); const LoadRequest req(page, false); if (requests.contains(req)) { qDebug() << "requests queue already has" << page; loaderMutex.unlock(); return; } requests.append(req); loaderMutex.unlock(); reqCond.wakeOne(); } void LoaderThreadBase::requestTwoPages(int page) { qDebug() << "requested 2 pages" << page; loaderMutex.lock(); const LoadRequest req(page, true); if (requests.contains(req)) { qDebug() << "requests queue (2 pages) already has" << page; loaderMutex.unlock(); return; } requests.append(req); loaderMutex.unlock(); reqCond.wakeOne(); } void LoaderThreadBase::request(int first, int n) { for (int i=first; i * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __FRAME_VIEW_H #define __FRAME_VIEW_H #include "PageViewBase.h" #include "Page.h" #include class QVBoxLayout; class QLabel; namespace QComicBook { class FrameWidget; class FrameView: public PageViewBase { Q_OBJECT public: FrameView(QWidget *parent, int physicalPages, const ViewProperties& props); virtual ~FrameView(); virtual void resizeEvent(QResizeEvent *e); public slots: virtual void setImage(const Page &img1); virtual void setImage(const Page &img1, const Page &img2); virtual void setFrames(const ComicFrameList &frames); virtual void nextFrame(); virtual void prevFrame(); virtual void clear(); virtual void gotoPage(int n); virtual void scrollToTop(); virtual void scrollToBottom(); virtual void propsChanged(); virtual int visiblePages() const; virtual int viewWidth() const; virtual int currentPage() const; void gotoFrame(int n); protected: int m_currentPage; int m_currentFrame; FrameWidget *m_frame; Page m_page; ComicFrameList m_frames; QVBoxLayout *m_layout; }; } #endif qcomicbook-0.8.2/src/GoToPageWidget.ui000644 001750 001750 00000004051 11644604742 020100 0ustar00pawelpawel000000 000000 GoToPageWidget Qt::ApplicationModal 0 0 390 68 0 0 Go to page... :/icons/qcomicbook.png:/icons/qcomicbook.png true QFrame::StyledPanel QFrame::Raised Page number /0 Go qcomicbook-0.8.2/src/ContinuousPageView.cpp000644 001750 001750 00000032405 11644604742 021236 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2009 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ContinuousPageView.h" #include "Utility.h" #include "PageWidget.h" #include "ComicBookSettings.h" #include #include #include #include #include #include #include #include using namespace QComicBook; ContinuousPageView::ContinuousPageView(QWidget *parent, int physicalPages, const ViewProperties& props) : PageViewBase(parent, physicalPages, props) , m_firstVisible(-1) , m_firstVisibleOffset(0) , m_y1pos(NULL) , m_y2pos(NULL) { //setFocusPolicy(QWidget::StrongFocus); QWidget *w = new QWidget(this); w->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); m_layout = new QVBoxLayout(w); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setSpacing(0); m_layout->setAlignment(Qt::AlignCenter); recreatePageWidgets(); recalculatePageSizes(); setWidget(w); setWidgetResizable(true); setBackground(props.background()); setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); // track scrollbar range changes to restore its relative position connect(verticalScrollBar(), SIGNAL(rangeChanged(int, int)), this, SLOT(scrollbarRangeChanged(int, int))); } ContinuousPageView::~ContinuousPageView() { delete [] m_y1pos; delete [] m_y2pos; } void ContinuousPageView::setNumOfPages(int n) { PageViewBase::setNumOfPages(n); recreatePageWidgets(); recalculatePageSizes(); disposeOrRequestPages(); } void ContinuousPageView::propsChanged() { qDebug() << "ContinuousPageView::propsChanged()"; if ((props.twoPagesMode() && imgLabel.size() == numOfPages()) || (!props.twoPagesMode() && imgLabel.size() < numOfPages())) { recreatePageWidgets(); } foreach (PageWidget *p, imgLabel) { p->redrawImages(); } recalculatePageSizes(); disposeOrRequestPages(); update(); } void ContinuousPageView::scrollbarRangeChanged(int min, int max) { qDebug() << "ContinuousPageView::scrollbarRangeChanged"; // // scrollbar ranges were updated (probably due to resizeEvent) -- restore previous page position if (m_firstVisible >= 0) { int offset = m_y1pos[m_firstVisible] + static_cast(m_firstVisibleOffset * (m_y2pos[m_firstVisible]-m_y1pos[m_firstVisible])); qDebug() << "scroll offset" << offset; verticalScrollBar()->setValue(offset); } } void ContinuousPageView::recreatePageWidgets() { qDebug() << "ContinuousPageView::recreatePageWidgets()"; m_firstVisible = -1; foreach (PageWidget *p, imgLabel) { delete p; } imgLabel.clear(); delete [] m_y1pos; delete [] m_y2pos; m_y1pos = m_y2pos = NULL; int w = viewport()->width() - 10; int h = viewport()->height() - 10; if (numOfPages()) { if (props.twoPagesMode()) { int i = 0; for (; iaddWidget(p); } if (numOfPages() & 1) // odd number of pages { PageWidget *p = new PageWidget(this, w, h, i); qDebug() << "creating PageWidget for one page" << i; imgLabel.append(p); m_layout->addWidget(p); } } else { for (int i=0; isetSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); imgLabel.append(p); m_layout->addWidget(p); } } m_y1pos = new int [imgLabel.size()]; m_y2pos = new int [imgLabel.size()]; } } PageWidget* ContinuousPageView::findPageWidget(int pageNum) const { if (pageNum >=0 && pageNum < numOfPages()) { if (props.twoPagesMode()) { pageNum /= 2; } if (pageNum < imgLabel.size()) { return imgLabel[pageNum]; } } return NULL; } void ContinuousPageView::disposeOrRequestPages() { qDebug() << "ContinuousPageView::disposeOrRequestPages"; const int vy1 = verticalScrollBar()->value(); const int vy2 = vy1 + viewport()->height(); int y = 0; m_firstVisible = -1; m_firstVisibleOffset = 0.0f; for (int i=0; iisDisposed()) { if (!hasRequest(w->pageNumber())) { qDebug() << "requesting" << w->pageNumber(); addRequest(w->pageNumber(), props.twoPagesMode() && w->hasTwoPages()); } } else { qDebug() << "already loaded" << w->pageNumber(); emit w->hasTwoPages() ? pageReady(w->getPage(0), w->getPage(1)) : pageReady(w->getPage(0)); } if (m_firstVisible < 0) { m_firstVisible = i; m_firstVisibleOffset = static_cast(vy1 - m_y1pos[i]) / w->height(); //visible portion (%) of page } } else // page is not visible { // if page images are still in memory if (!w->isDisposed()) { // dispose page only if none of its neighbours are in view if (! ((i>1 && isInView(m_y1pos[i-1], m_y2pos[i-1], vy1, vy2)) || (ipageNumber(); w->dispose(); delRequest(w->pageNumber(), props.twoPagesMode() && w->hasTwoPages()); } } else { ComicBookSettings &cfg(ComicBookSettings::instance()); // if previous page is visible then preload this one if (i>1 && isInView(m_y1pos[i-1], m_y2pos[i-1], vy1, vy2)) { if (cfg.preloadPages()) { qDebug() << "preloading" << w->pageNumber(); addRequest(w->pageNumber(), props.twoPagesMode() && w->hasTwoPages()); } } else { delRequest(w->pageNumber(), props.twoPagesMode() && w->hasTwoPages()); } } } } qDebug() << "first visible" << m_firstVisible << "offset" << m_firstVisibleOffset; } QList ContinuousPageView::findPageWidgetsInView() const { const int vy1 = verticalScrollBar()->value(); const int vy2 = vy1 + viewport()->height(); QList wlist; int i; for (i=0; iisInView(vy1, vy2)) { break; } } while (i < imgLabel.size() && imgLabel[i]->isInView(vy1, vy2)) { wlist.append(imgLabel[i]); ++i; } return wlist; } void ContinuousPageView::recalculatePageSizes() { qDebug() << "ContinuousPageView::recalculatePageSizes"; if (imgLabel.size() > 0) { int avgw = 0; int avgh = 0; int n = 0; foreach (PageWidget *p, imgLabel) { if (!p->estimatedSize()) { const QSize s(p->size()); avgw += s.width(); avgh += s.height(); ++n; } } if (n > 0) { int y = 0; avgw /= n; avgh /= n; qDebug() << "estimated w=" << avgw << "h=" << avgh; for (int i=0; iestimatedSize()) { p->setEstimatedSize(avgw, avgh); } // update positions lookup m_y1pos[i] = y; m_y2pos[i] = y + p->height(); y += p->height(); } } else { int y = 0; for (int i=0; iheight(); y += p->height(); } } } } void ContinuousPageView::scrollContentsBy(int dx, int dy) { qDebug() << "ContinuousPageView::scrollContentsBy y=" << verticalScrollBar()->value(); PageViewBase::scrollContentsBy(dx, dy); disposeOrRequestPages(); const int n = currentPage(); if (n>=0) { emit currentPageChanged(n); } } void ContinuousPageView::setImage(const Page &img1) { Q_ASSERT(numOfPages() > 0); delRequest(img1.getNumber(), false, false); PageWidget *w = findPageWidget(img1.getNumber()); Q_ASSERT(w != NULL); qDebug() << "setImage:" << img1.getNumber() << "widget page" << w->pageNumber(); w->setImage(img1); recalculatePageSizes(); emit pageReady(img1); } void ContinuousPageView::setImage(const Page &img1, const Page &img2) { Q_ASSERT(numOfPages() > 0); delRequest(img1.getNumber(), true, false); PageWidget *w = findPageWidget(img1.getNumber()); Q_ASSERT(w != NULL); qDebug() << "setImage:" << img1.getNumber() << img2.getNumber() << "widget page" << w->pageNumber(); w->setImage(img1, img2); recalculatePageSizes(); emit pageReady(img1, img2); } void ContinuousPageView::resizeEvent(QResizeEvent *e) { qDebug() << "ContinuousPageView::resizeEvent"; foreach (PageWidget *w, imgLabel) { w->redrawImages(); } recalculatePageSizes(); /*if (e->oldSize().height() != e->size().height()) { disposeOrRequestPages(); }*/ PageViewBase::resizeEvent(e); } void ContinuousPageView::wheelEvent(QWheelEvent *e) { PageViewBase::wheelEvent(e); } void ContinuousPageView::gotoPage(int n) { PageWidget *w = findPageWidget(n); if (w) { const int idx(imgLabel.indexOf(w)); Q_ASSERT(idx >= 0); m_firstVisibleOffset = 0; if (verticalScrollBar()->value() != m_y1pos[idx]) { verticalScrollBar()->setValue(m_y1pos[idx]); } else { disposeOrRequestPages(); emit currentPageChanged(roundPageNumber(n)); } } } void ContinuousPageView::scrollToTop() { PageWidget *w = currentPageWidget(); if (w) { const int idx(imgLabel.indexOf(w)); Q_ASSERT(idx >= 0); verticalScrollBar()->setValue(m_y1pos[idx]); } } void ContinuousPageView::scrollToBottom() { PageWidget *w = currentPageWidget(); if (w) { const int idx(imgLabel.indexOf(w)); Q_ASSERT(idx >= 0); verticalScrollBar()->setValue(m_y2pos[idx] - viewport()->height()); } } void ContinuousPageView::clear() { m_firstVisible = -1; delRequests(); setNumOfPages(0); } int ContinuousPageView::visiblePages() const { PageWidget *w(currentPageWidget()); return w ? w->numOfPages() : 0; } int ContinuousPageView::viewWidth() const { return width(); //TODO? // return (imgLabel->numOfPages()) ? imgLabel->width() : 0; } PageWidget *ContinuousPageView::currentPageWidget() const { double maxv(0.0f); PageWidget *current(NULL); const int vy1 = verticalScrollBar()->value(); const int vy2 = vy1 + viewport()->height(); // // find page with most part displayed on the view int i = 0; if (m_firstVisible < 0) { for (; i(my2 - my1)) / static_cast(w->height()); if (v > maxv) { maxv = v; current = w; } ++i; } return current; } int ContinuousPageView::currentPage() const { int current(-1); const PageWidget *w(currentPageWidget()); if (w) { current = w->pageNumber(); } qDebug() << "current page" << current; return current; } qcomicbook-0.8.2/src/ThumbnailsView.cpp000644 001750 001750 00000006063 11644604742 020402 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ThumbnailsView.h" #include "IconViewThumbnail.h" #include "Thumbnail.h" #include #include #include #include #include #include using namespace QComicBook; ThumbnailsView::ThumbnailsView(QWidget *parent): QListWidget(parent), selected(NULL), numpages(0) { //setFocusPolicy(QWidget::NoFocus); setDragDropMode(QAbstractItemView::NoDragDrop); setMovement(QListView::Static); //arrangeItemsInGrid(true); setViewMode(QListView::IconMode); setIconSize(QSize(Thumbnail::maxWidth(), Thumbnail::maxHeight())); setResizeMode(QListView::Adjust); //setAutoArrange(true); //setResizeMode(QIconView::Adjust); //setMaxItemWidth(Thumbnail::maxWidth()); // // context menu menu = new QMenu(this); menu->addAction(tr("Go to"), this, SLOT(goToPageAction())); // // create "empty page" image emptypage = new QPixmap(Thumbnail::maxWidth(), Thumbnail::maxHeight()); emptypage->fill(Qt::white); QPainter paint(emptypage); QPen pen(Qt::black, 3); paint.setPen(pen); paint.drawRect(0, 0, Thumbnail::maxWidth(), Thumbnail::maxHeight()); connect(this, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(onDoubleClick(QListWidgetItem *))); } ThumbnailsView::~ThumbnailsView() { delete emptypage; } void ThumbnailsView::onDoubleClick(QListWidgetItem *item) { emit requestedPage(dynamic_cast(item)->page(), false); } void ThumbnailsView::setPages(int pages) { clear(); icons.resize(numpages = pages); for (int i=0; i visibleHeight() ? QIconView::LeftToRight : QIconView::TopToBottom); } void ThumbnailsView::setPage(int n, const QPixmap &img) { if (n < icons.count()) { IconViewThumbnail *th = icons[n]; th->setIcon(img); th->setLoaded(true); } } void ThumbnailsView::setPage(const Thumbnail &t) { setPage(t.page(), QPixmap::fromImage(t.image())); } void ThumbnailsView::clear() { QListWidget::clear(); icons.clear(); numpages = 0; selected = NULL; } void ThumbnailsView::scrollToPage(int n) { if (n>=0 && n < icons.count()) { IconViewThumbnail *th = icons[n]; setCurrentItem(th); if (isVisible()) scrollToItem(th); //ensureVisible(th->x(), th->y()); } } void ThumbnailsView::contextMenuEvent(QContextMenuEvent *e) { e->accept(); QListWidgetItem *cur = itemAt(e->pos()); if (cur) { selected = cur; menu->popup(e->globalPos()); } } void ThumbnailsView::goToPageAction() { if (selected) onDoubleClick(selected); } bool ThumbnailsView::isLoaded(int n) const { return (n < icons.count()) ? icons[n]->isLoaded() : false; } qcomicbook-0.8.2/src/History.cpp000644 001750 001750 00000002326 11644604742 017100 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "History.h" using namespace Utility; History::History(const QStringList &l, int max): size(max) { hlist = l; } History::History(int max) { size = max; } History::~History() { } void History::append(const QString &txt) { const int i = hlist.indexOf(txt); // // text not found on the list - append it if (i < 0) { hlist.push_front(txt); // // remove last text item if history reached its max size if (hlist.count() > size) hlist.pop_back(); } else //put the item to the front { hlist.removeAt(i); hlist.push_front(txt); } } void History::remove(const QString &txt) { const int i = hlist.indexOf(txt); if (i >= 0) hlist.removeAt(i); } void History::set(const QStringList &l) { hlist = l; } QString History::first() { return hlist.first(); } QStringList History::getAll() const { return hlist; } qcomicbook-0.8.2/src/Bookmarks.h000644 001750 001750 00000002353 11644604742 017034 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file bookmarks.h */ #ifndef __BOOKMARKS_H #define __BOOKMARKS_H #include #include #include #include #include "Bookmark.h" class QMenu; namespace QComicBook { class Bookmarks { private: QList blist; //! bmap; //!bookmark lookup QMenu *bmenu; //! get() const; bool exists(const QString &cbname); }; } #endif qcomicbook-0.8.2/src/StatusBar.h000644 001750 001750 00000002171 11644604742 017012 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __STATUSBAR_H #define __STATUSBAR_H #include class QLabel; class QProgressBar; namespace QComicBook { class Page; class StatusBar: public QStatusBar { Q_OBJECT private: QLabel *page; QLabel *imginfo; QLabel *name; QProgressBar *pbar; public slots: void setPage(int n, int total); void setName(const QString &n); void setImageInfo(const Page *img1, const Page *img2 = NULL); void setProgress(int n, int total); void clear(); protected: void createInfoElements(); void removeInfoElements(); void createProgressBar(); void removeProgressBar(); public: StatusBar(QWidget *parent, bool elms=true); virtual ~StatusBar(); }; } #endif qcomicbook-0.8.2/src/ThumbnailItem.cpp000644 001750 001750 00000001442 11644604742 020177 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ThumbnailItem.h" #include "Thumbnail.h" using namespace QComicBook; ThumbnailItem::ThumbnailItem(int page): pnum(page), loaded(false) { } ThumbnailItem::~ThumbnailItem() { } int ThumbnailItem::page() const { return pnum; } void ThumbnailItem::setLoaded(bool f) { loaded = f; } bool ThumbnailItem::isLoaded() const { return loaded; } void ThumbnailItem::setThumbnail(const Thumbnail *t) { } qcomicbook-0.8.2/src/ImgCache.cpp000644 001750 001750 00000002360 11644604742 017075 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "ImgCache.h" using namespace QComicBook; ImgCache::ImgCache(int size): maxItemSizeSoFar(0) { setSize(size); } ImgCache::~ImgCache() { } void ImgCache::setSize(int size, bool autoAdjust) { mtx.lock(); if (size < 0) size = 0; cache.setMaxCost(size); this->autoAdjust = autoAdjust; mtx.unlock(); } void ImgCache::insertImage(int page, const QImage &img) { mtx.lock(); if (autoAdjust && (img.numBytes() + maxItemSizeSoFar > cache.maxCost())) { cache.setMaxCost(img.numBytes() + maxItemSizeSoFar); if (img.numBytes() > maxItemSizeSoFar) maxItemSizeSoFar = img.numBytes(); } cache.insert(page, new QImage(img), img.numBytes()); mtx.unlock(); } bool ImgCache::get(int num, QImage &img) { mtx.lock(); bool status = false; QImage *cimg = cache.object(num); if (cimg) { img = QImage(*cimg); status = true; } mtx.unlock(); return status; } qcomicbook-0.8.2/src/StatusBar.cpp000644 001750 001750 00000006300 11644604742 017343 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "StatusBar.h" #include "Page.h" #include #include using namespace QComicBook; StatusBar::StatusBar(QWidget *parent, bool elms): QStatusBar(parent), page(NULL), imginfo(NULL), name(NULL), pbar(NULL) { if (elms) { createInfoElements(); setPage(0, 0); } } StatusBar::~StatusBar() { } void StatusBar::createInfoElements() { if (!page) { page = new QLabel(this); page->setFixedWidth(100); addWidget(page, 0); } if (!imginfo) { imginfo = new QLabel(this); imginfo->setFixedWidth(140); addWidget(imginfo, 1); } if (!name) { name = new QLabel(this); addWidget(name, 2); } page->show(); imginfo->show(); name->show(); } void StatusBar::removeInfoElements() { if (page) { removeWidget(page); delete page; page = NULL; } if (imginfo) { removeWidget(imginfo); delete imginfo; imginfo = NULL; } if (name) { removeWidget(name); delete name; name = NULL; } } void StatusBar::createProgressBar() { if (!pbar) { pbar = new QProgressBar(this); //pbar->setPercentageVisible(false); pbar->setFixedHeight(12); //this is a bit ugly... gives chance the addWidget(pbar, 1); pbar->show(); } } void StatusBar::removeProgressBar() { if (pbar) { removeWidget(pbar); delete pbar; pbar = NULL; } } void StatusBar::clear() { setPage(0, 0); setImageInfo(NULL, NULL); setName(QString::null); } void StatusBar::setPage(int n, int total) { if (!page) { removeProgressBar(); createInfoElements(); } page->setText(tr("Page") + " " + QString::number(n) + " / " + QString::number(total)); } void StatusBar::setImageInfo(const Page *img1, const Page *img2) { if (!imginfo) { removeProgressBar(); createInfoElements(); } QString txt; if (img1) txt = QString::number(img1->getImage().width()) + "x" + QString::number(img1->getImage().height()) + " "; if (img2) txt += QString::number(img2->getImage().width()) + "x" + QString::number(img2->getImage().height()); imginfo->setText(txt); } void StatusBar::setName(const QString &n) { if (!name) { removeProgressBar(); createInfoElements(); } name->setText(n); } void StatusBar::setProgress(int n, int total) { if (n >= total) { if (pbar) { // // remove progressbar, create and show informative elements removeProgressBar(); createInfoElements(); } } else { if (!pbar) { // // create progressbar, remove informative elements removeInfoElements(); createProgressBar(); } //pbar->setProgress(n, total); pbar->setMaximum(total); pbar->setValue(n); } } qcomicbook-0.8.2/src/ComicMainWindow.h000644 001750 001750 00000007272 11644604742 020140 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2010 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ /*! \file comicmain.h */ #ifndef __COMIC_MAIN_H #define __COMIC_MAIN_H #include #include #include #include "ui_ComicMainWindow.h" class QMenu; class QLabel; class QKeyEvent; class QAction; class QPrinter; namespace QComicBook { class ImgSink; class ComicBookSettings; class PageViewBase; class ThumbnailsWindow; class Bookmarks; class StatusBar; class PageLoaderThread; class Page; class ThumbnailLoaderThread; class RecentFilesMenu; class PrinterThread; class FrameDetectThread; //! The main window of QComicBook. class ComicMainWindow: public QMainWindow, private Ui::ComicMainWindow { Q_OBJECT private: QSharedPointer sink; QPointer view; QPointer thumbswin; QSharedPointer bookmarks; StatusBar *statusbar; ComicBookSettings *cfg; int currpage; //! printer; PrinterThread *printThread; FrameDetectThread *frameDetect; protected: virtual void dragEnterEvent(QDragEnterEvent *e); virtual void dropEvent(QDropEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void closeEvent(QCloseEvent *e); bool confirmExit(); void enableComicBookActions(bool f=true); void saveSettings(); void setupContextMenu(); void setupComicImageView(); void applyFullscreenSettings(); protected slots: void pageLoaded(const Page &page); void pageLoaded(const Page &page1, const Page &page2); void sinkReady(const QString &path); void sinkError(int code); void updateCaption(); void recentSelected(const QString &fname); void bookmarkSelected(QAction *action); void thumbnailsWindowShown(); void savePageAs(); void reconfigureDisplay(); void currentPageChanged(int n); void setPageSize(QAction *action); void changeViewType(QAction *action); void printingFinished(); void showAboutQt(); public slots: void firstPage(); void lastPage(); void nextPage(); void nextFrame(); void prevFrame(); void prevPage(); void prevPageBottom(); void forwardPages(); void backwardPages(); void jumpToPage(int n, bool force=false); void exitFullscreen(); void browseDirectory(); void browseArchive(); void open(const QString &path, int page=0); void openNext(); void openPrevious(); void showAbout(); void showInfo(); void showSysInfo(); void showConfigDialog(); void showJumpToPage(const QString &number=QString::null); void closeSink(); void setBookmark(); void removeBookmark(); void openBookmarksManager(); void toggleScrollbars(bool f); void toggleTwoPages(bool f); void toggleFullScreen(); void toggleContinousView(bool f); void toggleJapaneseMode(bool f); void reloadPage(); void openPrintDialog(); void showAboutDonating(bool startup=false); public: ComicMainWindow(QWidget *parent); virtual ~ComicMainWindow(); }; } #endif qcomicbook-0.8.2/src/Utility.cpp000644 001750 001750 00000003553 11644604742 017105 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #include "Utility.h" #include #include #include #include #include QString Utility::which(const QString &command) { const QString paths = QString(getenv("PATH")); #ifdef Q_WS_WIN QStringList plist = paths.split(";"); plist.prepend(QCoreApplication::applicationDirPath()); #else QStringList plist = paths.split(":"); #endif for (QStringList::const_iterator it = plist.begin(); it != plist.end(); it++) { #ifdef Q_WS_WIN QFileInfo finfo(*it + "/" + command + ".exe"); #else QFileInfo finfo(*it + "/" + command); #endif if (finfo.isExecutable()) return finfo.absoluteFilePath(); } return QString::null; } void Utility::touch(const QString &fname) { utime(fname.toLocal8Bit(), NULL); } QString Utility::shortenPath(const QString &path, const QString &filler, int maxlen) { if (path.length() > maxlen) { QString shortPath("/" + filler ); QFileInfo finf(path); maxlen -= finf.fileName().length() + shortPath.length(); const QString p(finf.absolutePath()); if (p.length() > shortPath.length()) { if (maxlen>0) { int i = p.length() - maxlen; for (; i ConfigDialog 0 0 534 513 QComicBook Settings true 0 Display General Small mouse cursor Embed page numbers Smooth scaling Background color Qt::Horizontal 40 20 false Info text font 0 0 QFrame::Panel QFrame::Sunken Choose Fullscreen mode Hide menubar Hide toolbar Hide statusbar Qt::Vertical 20 37 Performance Cache Cache Size Qt::Horizontal 40 20 Mb 1 128 Auto adjust cache size Preload next page Thumbnails Use disk cache for thumbnails Thumbnails aging Qt::Horizontal 40 20 365 Qt::Vertical 398 149 Misc Convenience Open info dialog after opening a comicbook Show splashscreen Confirm exit Temporary directory Browse Qt::Vertical 20 255 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok ColorPushButton QPushButton
ColorPushButton.h
buttons accepted() ConfigDialog accept() 248 254 157 274 buttons rejected() ConfigDialog reject() 316 260 286 274
qcomicbook-0.8.2/src/DonationDialog.ui000644 001750 001750 00000010755 11644604742 020172 0ustar00pawelpawel000000 000000 DonationDialog 0 0 597 310 Please donate QComicBook! :/icons/qcomicbook.png:/icons/qcomicbook.png 0 0 QFrame::Panel QFrame::Sunken Dear QComicBook user! If you like QComicBook, please consider a small donation for its continued development. I develop QComicBook in my spare time and give it away free of charge. Your donation will fund web hosting fees and will encourage me to add new features and spend even more time on its development! Donating is easy - just click the Flattr button below! Note: You can access this information via Help / About donating menu item. Qt::AlignCenter true -1 <a href="http://flattr.com/thing/72360/QComicBook-project"><img src=":/images/flattr.png" /></a> Qt::AlignCenter true Qt::Horizontal 40 20 Remind me later I'll donate. Don't show this dialog again Close donateBtn clicked() DonationDialog accept() 304 360 304 191 closeBtn clicked() DonationDialog accept() 552 317 302 170 remindBtn clicked() DonationDialog reject() 192 317 302 170 qcomicbook-0.8.2/src/ThumbnailItem.h000644 001750 001750 00000001473 11644604742 017650 0ustar00pawelpawel000000 000000 /* * This file is a part of QComicBook. * * Copyright (C) 2005-2006 Pawel Stolowski * * QComicBook is free software; you can redestribute it and/or modify it * under terms of GNU General Public License by Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY. See GPL for more details. */ #ifndef __THUMBNAILITEM_H #define __THUMBNAILITEM_H namespace QComicBook { class Thumbnail; class ThumbnailItem { protected: int pnum; //page number bool loaded; //has image or is it empty? public: ThumbnailItem(int page); virtual ~ThumbnailItem(); virtual int page() const; virtual void setLoaded(bool f); virtual bool isLoaded() const; virtual void setThumbnail(const Thumbnail *t); }; } #endif qcomicbook-0.8.2/ChangeLog000644 001750 001750 00000034725 11644604742 015726 0ustar00pawelpawel000000 000000 2011-10-10: 0.8.2 -- fixed crash on scroll actions when using Simple View and no comicbook is loaded. 2011-07-08: 0.8.1 -- removed thick border around scroll area widget. -- fixed compilation errors on some systems (such as Ubuntu) caused by conflict with Page.h from libpoppler. 2011-07-02: 0.8.0 -- implemented PDF support; requires libpoppler-qt4. -- don't report that unrar-free was detected if neither unrar nor unrar-free was installed. 2010-12-11: 0.7.2 -- added German translation. -- added .cb7 (p7zip) to the list of supported file extensions. 2010-11-25: 0.7.1 -- fixed background color display bug in the Configuration Dialog. -- fixed Ukrainian translation -- missing translation in Donation Dialog. -- added Czech translation. 2010-11-15: 0.7.0 -- added hints (warning, information) to System information dialog; display warning if free unrar is used. -- added 'Cleanup list' option to Recently opened files menu. -- added Dutch, Korean, Russian and Simplified Chinese translations. -- added 'About donations' and 'About Qt' help menu items. -- added experimental 'Frame View' mode for frame-by-frame reading. -- added preliminary support for printing. -- fixed bug with 'Open Next' disabled on first comic book archive in the directory -- Qt >= 4.5.0 is now required. 2010-07-23: 0.6.0 -- use standard directories for cache and bookmarks file (e.g ~/.local/share/data and ~/.cache) obtained from QDesktopServices. Qt >= 4.4.0 is now required. -- added support for translations. Brazilian Portuguese, Finnish, French, Italian, Polish, Spanish and Ukrainian translations added. -- active web page and email links in 'About' dialog. -- shorten path names in 'Recently opened' menu. -- fixed regression: display image size info in statusbar. -- minor fixes for better portability; QComicBook should now compile and work (with limitations) on Windows. -- cmake build fix: make it possible to compile the program outside of the source directory. 2009-11-29: 0.5.0 -- implemented true continuous viewing mode. 'Continuous scrolling' option moved to 'View' menu. -- removed 'Forward two pages in two pages mode' option. -- cmake-based build system (replaces autoconf/automake). -- all windows/dialogs implemented via QtDesigner's .ui files and handled by uic. -- icons and splash screen are now handled by Qt resources system and compiled-in in the resulting qcomicbook executable. These files are no longer installed into share/data/qcomicbook directory. -- new, improved 'System Information' dialog. -- new splash screen (courtesy of Adam Mateja). -- fixed splash screen showing. -- lots of internal and architectural changes. 2009-09-16: 0.4.4 -- fixed bug in subdirectories handling that resulted in missing images 2009-09-04: 0.4.3 -- fixed bug with p7zip archiver detection that could result in crash when opening .7z archives 2009-09-02: 0.4.2 -- fixed compilation warnings (no return values in two methods) -- fixed compilation problems due to hardcoded moc-qt4 name -- added option to embed page numbers on displayed page -- properly clear empty ereas when displaying 2 pages of different size -- removed duplicated code in bookmarks handling -- removed bnv_have_qt as it was no longer really used 2009-08-11: 0.4.1 -- fixed freezing when unpacking some archives (in particular zip) -- fixed crash when opening archives via 'Recently opened' menu -- thumbnails are now saved with sha1-hashed file names -- updated autoconf bnv_have_qt macro -- QComicBook requires Qt>=4.3.0 now -- internal cleanups 2007-11-05: 0.4.0 -- ported to Qt4 -- Imlib2 library is (temporarily) removed -- added support for nested cbr archives -- added support for 7z archives -- new option: "Save page as" -- new option: Auto-adjust cache size -- added small (15 pct) overlap when scrolling page with Space/Backspace -- change in files sorting: it is now case-insenstivie, with directories being last -- In-built help was removed 2006-11-29: 0.3.4 -- fixed drawing/scaling/rotation bugs in two-pages mode when 1st page is smaller than 2nd page. -- fixed problem with opening files with non-ascii characters in file name via command line -- *.bmp file pattern added to the list of supported formats 2006-09-20: 0.3.3 -- fixed crash when rotating image in single-page mode 2006-08-26: 0.3.2 -- Added Drag&Drop support for archives/dirs -- Fixed icon arrangement bug in Thumbnails window -- "Show Info" option is disabled if no textual information for opened comicbook was found. -- "General Info" tab was removed from Info Window. -- Fixed crash on empty comicbook (another one...) 2006-08-21: 0.3.1 -- "Preload next image" option now works with Imlib2 -- Fixed bug with "Open previous" not working -- Fixed redrawing bugs when dragging image with mouse -- internal improvements and cleanups -- Fixed compilation problem with Imlib2-1.2.0 2006-08-15: 0.3.0 -- ImLib2 is now used and required - huge speed improvement in image loading & rendering -- caching is now specified in Mb and is handled by Imlib -- removed "Scaling method" option (no longer applicable) -- double click moves to next page -- removed experimental "Create archive" option (was enabled by accident in 0.2.8) 2006-06-26: 0.2.8 -- added support for free unrar -- new hotkeys: Ctrl+Q, Ctrl+Home, Ctrl+End -- updated autoconf bnv_have_qt macro 2006-03-02: 0.2.7 -- fixed bug with status bar hiding in fullscreen mode if 'Hide statusbar in fullscreen mode' option is on. 2005-12-27: 0.2.6 -- option to hide splashscreen added -- progress is now displayed in statusbar -- Changes in the menu: "Settings" menu created to resemble KDE menus layout. -- autoconf bnv_have_qt macro updated with latest version 2005-11-13: 0.2.5 -- splash screen added (made exclusively for QComicBook by Adam Mateja) -- icons for Open Archive/Directory, Settings and Set Bookmark options added -- fixed bug with caching not working 2005-08-03: 0.2.4 -- new option for setting external help browser added -- fixed redrawing bugs -- internal cleanups and small improvements -- help updated -- check for correct Qt version in autoconf added 2005-07-09: 0.2.3 -- page is scrolled to top-right corner in japanese mode -- autoconf script updated with newest version of bnv_have_qt macro 2005-06-19: 0.2.2 -- added image rotating options 2005-05-15: 0.2.1 -- rar, zip, ace archives are recognized by magic bytes first, not by extension -- fixed bug with handling relative comicbook paths from commandline -- fixed bug with progress window reappearing 2005-05-09: 0.2.0 -- 'Manage bookmarks' option added -- many internal improvements and small bugfixes -- Open next/previous actions are enabled only for archives from now 2005-05-04: 0.1.9 -- option to hide statusbar in fullscreen mode added -- keyboard shortcuts for 'Open next' and 'Open previous' added -- changing mouse cursor takes effect immediately now - no need to restart -- fixed compilation error for some gcc versions ( issue) -- fixed bug with bookmarked page numbers starting from 0 2005-04-23: 0.1.8 -- support for ace (cba), tar.gz and tar.bz2 archives -- improved mouse-dragging, reversed mouse-dragging directions -- 'Open next' and 'Open previous' actions added -- Japanese mode for two pages mode added -- Option for 1- or 2- pages step in two pages mode added -- 'Small mouse cursor' option added -- size of the current page(s) is shown in statusbar -- most menu/toolbar functions are inactive now if no comic book is opened -- fixed bug with not restoring initial status of statusbar 2005-04-05: 0.1.7 -- thread-based thumbnail loading -- thumbnails are smooth-scaled now -- added option to set font for comic book info dialog -- added progress bar for archives decompression -- added statusbar -- fixed bug with thumbnails view taking keyboard focus 2005-03-30: 0.1.6 -- thumbnails view -- page contents scrolling with mouse (LMB + move) -- PageUp/PageDown keys reversed -- scrolling up/down with mouse wheel now requires an extra wheel move to flip page -- scaling page buttons are toggle-buttons now to indicate active scaling -- toolbar position is saved now -- cleanups in directory and archive handling code -- fixed possible crash on errors when opening comic book 2005-03-07: 0.1.5 -- image caching -- page preloading -- built-in help browser -- new scaling option - best fit -- man page added (from debian project subdirectory) -- page scaling setting is saved/restored -- fixed bug with recently opened files - most recently opened file is on the top -- fixed crash on empty archive/directory -- internal improvements and small bugfixes 2005-02-03: 0.1.4 -- fixed bug with command line arguments parsing -- fixed drawing bugs -- real fullscreen mode - menu may be hidden if desired (see config dialog) -- ESC key quits fullscreen mode -- space / backspace keys jump by visible contents height now, instead of whole page; improved continuous scrolling -- jump to page... window is now modal -- basic errors handling -- binary name and default icons directory changed from qcomic to qcomicbook -- debian subdirectory added 2005-01-23: 0.1.3 -- new option, 'jump to page' - just press 1..9 key -- archive/directory to open may be given as argument to qcomicbook -- fixed bug with loading bookmarks containg spaces -- fixed bug with 'unrar' not working (when no 'rar' command found) -- fixed keyboard focus bug -- internal function for searching rar/unrar/unzip executables used instead of system('which ..') -- other minor bugfixes 2005-01-20: 0.1.2 -- 'recently opened' submenu added -- bookmarks added -- configurable background color -- page is centered horizontally/vertically if it is smaller than window -- previously opened directory is preserved in open archive/directory file dialogs -- optional toolbar with essential actions added -- gif and xpm files are accepted now -- added 'All files' filter for 'open archive' dialog -- settings dialog added -- settings are kept in ~/.qcomicbook directory instead of ~/.qt -- comicbook info dialog; reading of .nfo and file_id.diz files 2005-01-10: 0.1.1 -- 'two pages' mode -- continuous scrolling option added (affects keyboard and mouse wheel scrolling) -- menu icons added -- keyboard shortcuts for archive/dir open added -- fixed image scaling bug -- fixed crash on 'last page' when no comicbook opened -- PageUp/PageDown keys for next/previous page added -- window geometry and preferences saving -- opened archive/directory name is shown on window border -- some internal improvements 2005-01-07: 0.1.0 -- initial release qcomicbook-0.8.2/Doxyfile000644 001750 001750 00000204523 11644604742 015655 0ustar00pawelpawel000000 000000 # Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = QComicBook # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = YES # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.cpp *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = moc_* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = YES # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = NO # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = YES # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = NO # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES qcomicbook-0.8.2/README000644 001750 001750 00000005175 11644604742 015031 0ustar00pawelpawel000000 000000 QComicBook v0.8.2 (c)by Pawel Stolowski 2005-2011 released under terms of GNU General Public License v2 1. Introduction --------------- QComicBook is a viewer for PDF files and comic book archives containing jpeg/png/xpm/gif/bmp images, which aims at convenience and simplicity. Features include: automatic unpacking of archive files, full-screen mode, continuous scrolling mode, double-pages viewing, manga mode, thumbnails view, page scaling, mouse or keyboard navigation etc. 2. Requirements --------------- QComicBook requires Qt library version >=4.5.0 (including moc, uic and lrelease tools), poppler-qt4 library and cmake. You will also need unzip, rar (or unrar), unace, p7zip and tar (with gzip and bzip2 support compiled in) somewhere in your PATH to handle archives. If one of these tools is missing you can still use QComicBook, but you won't be able to open some archives. You may check status of supported archives via Help > System information menu option of QComicBook. 3. Installation --------------- To compile QComicBook, you will need Qt4 developement packages (usually named -devel- in many distros) and libpoppler-qt4 devel package. Compilation includes three steps: $ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release $ make $ make install (the -D... argument is optional; if not specified, qcomicbook will be installed in /usr/local directory). If you want to compile qcomicbook with e.g. /usr prefix, but install it to a temporary location for packaging, then pass DESTDIR variable to 'make install', e.g. $ make install DESTDIR=/tmp/package_root 4. Known issues --------------- * rar/unrar (and unzip/unace probably too) may have problems with files/dirs in the archive, which names contain non-ascii characters (like special characters for you language). As a result they won't be decompressed and qcomicbook may show "No images found" error box. * the free (opensource) unrar doesn't currently support 3.0 rar archives. Such archives are reported as empty by QComicBook. It is *recommended* to use non-free rar/unrar. 5. Bugs ------- Ideally, your bug report should include: - description of problem. - list of steps that reproduce the problem (if it's reproducible). - console output from QComicBook (recompile QComicBook with -DCMAKE_BUILD_TYPE=Debug flag to enable debug messages). - sample comic book archive that causes problems if problem is only reproducible with particular archive. Please reduce the number of images in the archive to the minimum needed for reproducing bug. Please report bugs to: stolowski@gmail.com. 6. Translations --------------- If you want to translate QComicBook, please read README-translations.