pax_global_header00006660000000000000000000000064145152777220014526gustar00rootroot0000000000000052 comment=508e7a970088873f6503b8c8df08dac6ae14963c lwindolf-liferea-508e7a9/000077500000000000000000000000001451527772200153155ustar00rootroot00000000000000lwindolf-liferea-508e7a9/.github/000077500000000000000000000000001451527772200166555ustar00rootroot00000000000000lwindolf-liferea-508e7a9/.github/workflows/000077500000000000000000000000001451527772200207125ustar00rootroot00000000000000lwindolf-liferea-508e7a9/.github/workflows/cb.yml000066400000000000000000000025501451527772200220230ustar00rootroot00000000000000name: "Build Check" on: push: branches: [master, ] pull_request: # The branches below must be a subset of the branches above branches: [master] schedule: - cron: '0 21 * * 6' workflow_dispatch: jobs: analyze: name: Analyze runs-on: ubuntu-latest container: image: 'ubuntu:23.04' steps: - name: Checkout repository uses: actions/checkout@v2 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. fetch-depth: 2 - run: | apt-get update -qq apt-get install -y -qq libxml2-dev libxslt1-dev libsqlite3-dev libwebkit2gtk-4.1-dev libjson-glib-dev libgirepository1.0-dev libpeas-dev gsettings-desktop-schemas-dev python3 libtool intltool valgrind libfribidi-dev gla11y appstream-util desktop-file-utils mkdir inst - run: | sh autogen.sh ./configure --prefix=$(pwd)/inst - run: make -C po check - run: make && make install - run: cp net.sf.liferea.gschema.xml /usr/share/glib-2.0/schemas - run: /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ - run: ls -l /usr/share/glib-2.0/schemas - run: cd src/tests && make test - run: desktop-file-validate net.sourceforge.liferea.desktop - run: appstream-util validate net.sourceforge.liferea.appdata.xml lwindolf-liferea-508e7a9/.gitignore000066400000000000000000000015151451527772200173070ustar00rootroot00000000000000.deps *.a *.gmo *.o *.Po *.la *.lo *.lai *.so *.swp *.swo Makefile Makefile.in Makecache aclocal.m4 ar-lib autom4te.cache compile config.guess config.h config.h.in config.log config.status config.sub configure depcomp install-sh libtool liferea.appdata.xml ltmain.sh missing net.sf.liferea.gschema.valid net.sf.liferea.gschema.xml net.sourceforge.liferea.appdata.xml net.sourceforge.liferea.desktop net.sourceforge.liferea.service m4 glade/*.ui~ po/.intltool-merge-cache po/Makefile.in.in po/POTFILES po/liferea.pot po/stamp-it src/js.c src/js.h src/dbus_wrap.c src/liferea src/liferea-add-feed src/Liferea-3.0.gir src/Liferea-3.0.typelib src/tests/favicon src/tests/html_auto src/tests/parse_date src/tests/parse_html src/tests/parse_rss src/tests/parse_xml src/tests/social xslt/*.xml org.gnome.liferea.gschema.valid stamp-h1 .flatpak-builder lwindolf-liferea-508e7a9/AUTHORS000066400000000000000000000165031451527772200163720ustar00rootroot00000000000000The following sections list people who have contributed to Liferea. Coding ====== People that spent a lot of time on the Liferea code base: Lars Windolf Nathan J. Conrad Arnold Noronha Emilio Pozuelo Monfort Adrian Bunk Laetitia Berthelot Code Contributors ================= Loosely ordered by time of contribution: James Doherty dialog design Jeremy Messenger search dialog, icons... John McKnight Makefile help Tomasz Maka window position saving Karl Soderstrom heavy debugging, patching memory leak fixing, mini popup support Christophe Barbe patch to count folder items and Debian bug management Juho Snellman CSS support Roshan Revankar patch for selection handling Johannes Schlueter pipe as feed source Niklas Morberg Debugging and patching Pierre Phaneuf RPM spec update ahmed el-helw feed link autodiscovery James Bowes tray icon popup menu Marc Deslauriers patch for window state saving Amit D. Chaudhary patch to update all favicons Christoph Hohmann patch for IPv6 Raphael Slinckx New subscriptions over DBUS Bjorn Monnens Hiding read items from folders Patch for itemlist updating Thomas de Grenier de Latour Online state in tray icon Aristotle Pagaltzis Atom 1.0 support, XSLT rendering Norman Jonas libnotify notification Sebastian Droege Transparent tray icon Daniel Gryniewicz AMD64 fixes Remi Cardona Build improvements keizue On/offline switching DBUS method Frederic Peters Unread/new counter in status bar Don Malcolm Offline Mozilla rendering Ed Catmur RTL item list improvements Chris Pirillo Cool new icon for OPML Eric Anderson Use icons from gtk theme Main menu improval Daniel Gryniewicz Network Manager support mooonz improved DBUS support Ori Avtalion Preference for toolbar style improved tray icon menu Stephan Maka gwget download support goyko Menu enabling/disabling Support for enclosure URL open Alexander Sack XulRunner 1.9 build support Gustavo Chain Starting minimized to tray Lars Strojny Statusbar improvements WebKit Rendering Support Jon Forsberg Enclosure context menu patch Mathie Leplatre Option to filter feed list Mikel Olasagasti Uranga GeoRSS support, Gsettings port Rupert Swarbrick OPML duplicate id fix Yaron Sheffer Bidi support for LTR and RTL locales Ricardo Cruz Many GUI improvements Maia Kozheva Optional libindicate support Peter Oliver Google Reader Label Support Sergey Snitsaruk Google Reader Label Support Sebastian Keller Gedit-like tab close buttons Simon Kågedal Reimer Seekable GStreamer media player Daneil Aleksandersen Partial RFC3229 support saving bandwidth Security fixes, network improvements Lorenzo L. Ancora Support for anonymous/random HTTP/S UA string Maintainer Credits ================== David Michael Smith Debian Emilio Pozuelo Monfort Debian Paul Gevers Debian Emilio Pozuelo Monfort Ubuntu Phillip Compton Fedora Dag Wieers Fedora Documentation and Translations ============================== Polish Bart Kreska Polish Wojciech Myrda Polish Piotr Sokół Italian Dario Conigliaro Italian Emanuele Grande Italian Gianvito Cavasoli Italian Lorenzo L. Ancora Brazilian Portuguese Fernando Ike de Oliveira Brazilian Portuguese Og Maciel Brazilian Portuguese Leon Nardella Arabic Khaled Hosny Spanish Sargate Kanogan Spanish Rodrigo Gallardo Japanese Takeshi AIHANA Japanese Takeshi Hamasaki Japanese IWAI, Masaharu French Vincent Lefèvre French Guillaume Bernard Swedish Daniel Nylander Swedish Andreas Ronnquist Turkish Mehmet Atif Ergun Turkish Eren Türkay Belorusian Latin Ihar Hrachyshka European Portuguese António Lima European Portuguese Bruno Miguel Czech Martin Picek Russian Justin Forest Russian Oleg Maloglovets Russian Sergey Rudchenko Russian Leonid Selivanov Hungarian Máté Őry Hungarian Gabor Kelemen Slovakian Pavol Klačanský Greek Evgenia Petoumenou Albanian Besnik Bleta German Christian Dywan German Robin Stocker German Paul Seyfert Catalan Gil Forcada Basque Iñaki Larrañaga Murgoitio Basque Mikel Olasagasti Uranga Romanian Adi Roiban Dutch Erwin Poeze Chinese/Simplified Aron Xu Galician Anxo Outeiral Danish Joe Hansen Asturian Marquinos Asturian Iñigo Varela Hebrew Yaron Sheffer Ukrainian Yuri Chornoivan Latvian Rūdolfs Mazurs Latvian Rihards Priedītis Lithuanian Mindaugas Baranauskas Vietnamese Trần Ngọc Quân Finnish Pauli Virtanen Finnish Jorma Karvonen Indonesian Samsul Ma'arif Code included from other projects ================================= Evolution Team AM/PM time formatting If we forgot to list you here, leave us a message on the mailing list and we'll include your name and email! lwindolf-liferea-508e7a9/COPYING000066400000000000000000000432551451527772200163610ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser General Public License instead of this License. lwindolf-liferea-508e7a9/COPYING.LIB000066400000000000000000000167451451527772200167720ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser 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 Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. lwindolf-liferea-508e7a9/ChangeLog000066400000000000000000002036321451527772200170750ustar00rootroot000000000000002023-10-22 Lars Windolf Version 1.15.4 * Improve on #1192 by doing pane sanity checks on each resize (Lars Windolf) * Fixes #1297: Reorder loading plugins and deactivating webkit-settings (Lars Windolf) * #1305 Refactoring of the trayicon plugin to support AppIndicator and libayatana (Yuri Konotopov) 2023-09-15 Lars Windolf Version 1.15.3 * Fixes #1297: Enabling plugin 'webkit-settings' crashes Liferea (reported by Paul Gevers) * Fixes #1294: Clicking 'remove item' caused a SIGSEGV (reported by Rich Coe) * Fixes #1276: Old WebKitCache cache not cleaned (reported by hasezoey) 2023-08-30 Lars Windolf Version 1.15.2 * Fixes #1291: Feed parsing is broken (Rich Coe) 2023-08-14 Lars Windolf Version 1.15.1 * Update to libsoup3 and libwebkit2gtk-4.1 (Lars Windolf) * Fixes #1285: HTTP 304 incorrectly caused error state (Rich Coe) * Fixes #1272: Crash on moving feed into new folder (Lars Windolf, reported by Jakub T. Jankiewicz) * Fixes #1262: Plugin installer: duplicate punctuation (Christian Stadelmann) * Fixes #1250: Incorrect item_id when downloading AMP URLs (Alexandre Erwin Ittner) * Fixes #1248: Can't maximize for reading feeds (Lars Windolf) * Fixes #1242: Dropping not-functioning Pocket bookmark URL (Lars Windolf) * Fixes #1241: Dropping not-functioning identi.ca bookmark URL (Lars Windolf) * Fixes #1240: TypeError on add-bookmark-site preferences (Lucidiot) * Many fixes for static code analysis warnings (Lars Windolf) * Simplified debug handling. Drop --debug-performance --debug-trace and --debug-verbose CLI parameters. (Lars Windolf) * Removed stale Deutsche Welle Brasil feed from pt-BR default feed list (Alexandre Erwin Ittner) * Updated appdata description and summary (bbhtt) * Add Russian user documentation (slichtzzz) * Updated Czech translation (Amerey) * Updated Brazilian Portugese translation (Fúlvio Alves) 2023-04-16 Lars Windolf Version 1.15.0 * Fixes #1217, #1224: Endless recursion in 1.14.3 (reported by uduecoder, mokraemer) * Fixes #1214: crash in conf_get_bool_value_from_schema (mozbugbox, reported by Mikel Olasagasti) * Fixes #1215: failed to build in launchpad PPA due to auto_test permission issue (reported by PandaJim) * Fixes #1212: 1.14.1 crash when refreshing feeds. (mozbugbox, reported by Froggy232) * Fixes #1198: FreshRSS logging in correctly but can't get posts (reported by Roger Gonzalez) * Fixes a memory leak when reloading CSS (Lars Windolf) * Fixes CVE-2023-1350: RCE vulnerability on feed enrichment (patch by Alexander Erwin Ittner) * Fixes #1200: Crash on double free (mozbugbox) * Improve #1192 be reordering widget creation order (Lars Windolf) * Improvements to the libnotify plugin (Tasos Sahanidis) * Fixes a g_object_unref warning on shutdown * Drops a debug output in the plugin installer * Drop webkit inspector from installable plugins in favour of --debug-html * Drop pane plugin from default plugins * Drop pane plugin (old workaround for pane issues) 2023-01-10 Lars Windolf Version 1.14.0 New features/changes: * #1152: Reduces height of the status bar to save vertical space. (Lars Windolf) * #1070: Added new plugin 'add-bookmark-site' that allows to configure a custom bookmarking site. (Lars Windolf) * Liferea now supports gtk-application-prefer-dark-theme based dark mode switching. (Lars Windolf, Alexander Erwin Ittner) * #1148: Add search rule to find items from a given author. (Alexander Erwin Ittner) * #1147: Exported OPML feed lists are now UTF-8 encoded for better readability. (Alexander Erwin Ittner) * #1145: Render field for Youtube feeds (Lars Windolf) * #1143: Updated default feed sources (HTTP->HTTPS) (Alexander Erwin Ittner) * #1133: Added new "podcast" search folder rule. (Alexander Erwin Ittner) * #1139: Also add enclosures when saving items to file. (Alexander Erwin Ittner) * Patch #1184: Solving Webkit proxy method deprecations (Matthew Horan) * Changes to UserAgent handling: same UA is now used for both feed fetching and internal browsing. User agent now indicates Android+Mobile per default instead of suggesting a Linux desktop to better adapt to the smaller (in comparison to browsers) rendering pane. Additionally special env vars LIFEREA_UA and LIFEREA_UA_ANONYMOUS now also affect the internal browsing. * Improve HTML5 extraction: extract
if it exists and no article was found. * #1117: Hide unused expander space in item list. This saves horizontal space. (Sefler Zhou) * Drop enclosure icon from item list. This saves horizontal space. (Lars Windolf) * #515, #962, #1113 adds generic Google Reader API support (this enables access to FeedHQ, FreshRSS, Miniflux...) * #1108, #113: Improve performance by different check order in itemset merging (suggested by mozbugbox) * #1103: New hot key Ctrl-D for 'Open in External Browser' (David Yang) * #1095: New feature: Export items to feed file (Alexandre Erwin Ittner) * #1078, #1081, #1082: Make several plugins XDG path aware (Paweł Marciniak) * #1071: Various fixes and feature enhancements for TheOldReader sources Sync titles, sync folder changes, fix removal consistency (Matthew Horan) * #1061: Faster and safer generation of localized filenames (Lorenzo Ancora) * #1052: Allow building with libpango < 1.43.0 (Ubuntu 18.04) (Alexandre Erwin Ittner) * #778: New preference: deferred removal of read items from folders and search folders. (Rich Coe) * Allow converting TinyTinyRSS subscriptions to local subscriptions (Lars Windolf) * #1045: Further integration of Reader mode with internal browser (Matthew Moran) * #1044: Support for user-agent string customization and anonymization (Lorenzo Ancora) * #1037: Fix deprecation of g_time_zone_new (Paweł Marciniak) * #1027: Add option to show news bins in reduced feed list (Alexandre Erwin Ittner) * #1023: Execute feed pipe/filter commands asynchronously (Alexandre Erwin Ittner) * #1018: Fix deprecation of pango_find_base_dir (Paweł Marciniak) * #1017: Fix deprecation of g_memdup (Paweł Marciniak) * #1016: Type casting to silence compiler warnings (Paweł Marciniak) * #1014: Fixes some compiler warnings (Paweł Marciniak) * #343: UX redesign of the update message in the status bar. Now shows a update counter of the feeds being in update. (Lars Windolf) * #964: Added pane position fix plugin providing a workaround for pane position issues when using the headerbar (Paweł Marciniak) * #983: Use GtkFileChooserNative to allow selecting local files when run in sandbox. (Leiaz) * #907: Add new search folder property that allows hiding read items (Lars Windolf, suggested by Jeff Fortin) * Now always shows the unread count of a search folder (instead of the item count) in the feed list (Lars Windolf) * Now search folders are automatically rebuild when rules are changed (Lars Windolf) * Adds a new simple focus plugin that adds transparency on the feed list when it is not focussed. (Paweł Marciniak) * Add F10 hotkey to headerbar plugin to allow triggering the hamburger menu (Paweł Marciniak) * Update Flatpak AppData with release dates (Mikel Olasagasti) * Make several plugins support gettext (Paweł Marciniak) * Prevent endless loop on favicon discovery (Lars Windolf) * #903: Prevent endless loop in feed autodiscovery (reported by Leiaz) * #912: Allow mutiple feed in same libnotify notification (Tasos Sahanidis) * Further favicon discovery improvements: now detects all types of Apple Touch Icons, MS Tile Images and Safari Mask Icons Fixes #440 (Lars Windolf) * Add reader mode context menu toggle in the item view (Lars Windolf) * #876 Add reader mode preference (Lars Windolf) * Implement support for subscribing to LD+Json metadata listings e.g. concert or theater event listings (Lars Windolf) * Provide the default icon for feeds with no favicon as SVG for nicer rendering in wide view. Drop some unused icons. Replace tray icon with scalable version. (Lars Windolf) * #893: Update of bookmarking sites (Mikel Olasagasti) * #888: Changes required for Flathub (Mikel Olasagasti) * #882: Implement support for Webkits Intelligent Tracking Protection (Leiaz) * #875: Add -0 hotkey to reset zoom (Leiaz) * #874: Add debug printing of SAX parser errors (Leiaz) * #846: Remove deprecated usage of gdk_screen_* (ghost) * #844: Update metainfo path (appdata target directory) (Yuri Konotopov) * #776: CSS color update on theme change without restart (sillyslux) * #846, #864, #735: Fix main menu/toolbar not being translated (reported by nesfla, Qik000, SingleMalt2104) * #854: Adding new search folder options to match subscription source ULR and parent folder name. (suggested by muhlinux) * #851: Add accessibility check to code tests (Lars Windolf) * #765: Embed YouTube videos from MediaRSS feeds (Mikel Olasagasti) * #749: Add Readability.js library (Apache 2.0 licensed) and auto-apply Readability.js to all headlines (Lars Windolf) * Drop unused glade/google_source.ui (Lars Windolf) * #747: Font improvements (Azhar Mithani) * #250 Update some dialog labels (GreenLunar) * #837: Removing GTimeVal references (Tom Perez) * #827: Respect global update refresh interval for TheOldReader (Matthew Horan) * #826: Fix save/restore position issues with tray icon (Matthew Horan) * #822: Improve performance of item list loading (Rich Coe) * #815: Add support for subscribing to HTML5 websites without RSS/Atom feeds by extracting article titles,links and descriptions (Lars Windolf) * #816: Increase size of stored favicons to 128x128px to improve icon quality in 3-pane wide view. Also add favicon URL discovery tests. * #800: Expose remove-item action for plugins (mozbugbox) * #752: Trayicon plugin has now a configuration option to change the behaviour when closing Liferea. (BurnhamG) * #764: Add MediaRSS support (e.g. Youtube feeds) to display descriptions and thumbnails (Mikel Olasagasti) * #773: Add WebKit Inspector menu option to HTML view when run with --debug-html (by sillyslux) * #714: Replaces deprecated gtk_menu_popup (Leiaz) * #705: New hotkey Ctrl-O to open enclosures (Leiaz) * #680: Add xdg-email command to item list popup menu (poetsmeniet) * #699: Refactoring of duplicate check handlingg (dymoksc) Deprecations: * Drop blogChannel namespace support (Lars Windolf) * Support multi-feed discovery (Lars Windolf) * Default to https:// instead of http:// when user doesn't provide protocol on subscribing feed (Lars Windolf) * Drop CDF channel legacy support (Lars Windolf) * Drop Atom 0.2/0.3 (aka Pie) legacy support (Lars Windolf) * Drop support of combined view mode, this is necessary to add rich content support which relies on DOM transformation and Readability.js (Lars Windolf) * Drop ns_photo support, as it is rarely used and allows us to get rid of XSLT extra handling (Lars Windolf) Bugfixes: * Fixes #1182: Periodic crash when navigating items (TheOldReader) (reported by Matthew Horan) * Fixes #1176: Custom liferea.css no longer working (Matthew Horan) * Fixes #1174: Missing date for some feeds (reported by jfbauer432) * Fixes #1170: broken notification icon in libnotify plugin (Tasos Sahanidis) * Fixes #1162: a string impossible to translation (Paweł Marciniak) * Fixes #1124: Formation vanishes after a few seconds (reported by Michael F. Schönitzer) * Fixes #1121: Wait for network to be fully available before updating (reported by Jeff Fortin) * Fixes #1155: Toolbar/menu actions disabling wrong for search folders/folders (Lars Windolf) * Fixes #1154: Search folder property "Hide read items" has wrong initial state when opening dialog (Lars Windolf) * Fixes #1100: Dates are overwritten on every update for feeds that do not provide date information. (Lars Windolf) * Fixes #923: Reading folders with unread filtering active often has remnant read items (Lars Windolf) * Fixes #723: LiveJournal feeds parsing can make the headline link a link to an XML document. Liferea now checks for the line MIME type. (Lars Windolf) * Fixes #720: Mark all as read doesn't clear Unread folder if one entry is selected (Lars Windolf) * Fixes #501: Fixes segfault when deleting a search folder that is rebuilding (Lars Windolf) * Fixes #1132: Improved timeout error handling in feed commands (Alexander Erwin Ittner) * Fixes #1129: Accessibility errors in .ui files (reported by Paul Gevers) * Fixes #1126: Some images broken in reader mode (reported by Saijin-Naib) * Fixes #901, #1123: resize view panes to sensible positions when they were at min or max position on last shutdown. Makes left pane 30% window width and item list pane 50% height/width when pane position is 0 or 95% of height/width. (Lars Windolf) * Fixes #992: HTML with self-closing tags not rendering properly. (Rich Coe) * Fixes #644, #901, #909: restoring window size/position with header bar plugin active. (Lars Windolf) * Fixes #1033: Subscribing defaulted to HTML5 feeds even when real feeds do exist. (reported by Hanno Braun) * Fixes #1111: wrong base URI in reader mode (Lars Windolf) * Fixes #1112: Image duplication caused by feeds providing an image link which is also in the item description as additional metadata. (Lars Windolf) * Fixes #1094: Fix Next Unread Item crash when no feed selected (Matthew Horan) * Fixes #1092: --debug-html seems broken (Matthew Horan) * Fixes #1073: Memory leak in stylesheet reloading (Matthew Horan) * Fixes #1069: Don't update HTML view when browsing internally (Matthew Horan) * Fixes #1064: Fix strsep implicit declaration warning (Paweł Marciniak) * Fixes #1058: Italian manpage installation (Paweł Marciniak) * Fixes #1053: Use liferea_shell_show_window() when activating This shold fix an issue where position is not restored on XOrg when Liferea is trigger from Cinnamon launcher (instead of tray) (Matthew Horan) * Fixes #1066: Browse to requested URI on JS window creation (this prevents loading empty tabs on weird JS links some sites/feeds have) (Matthew Horan) * Fixes #1013: Certificate problems with some URLs (Paweł Marciniak) * Fixes 1005: aria2 download manager triggered by wrong command (zorlaski) * Fixes #981: Left-clicking an external link in the headline view caused the Javascript disabled setting to be ignored. (Lars Windolf) * Fixes #993: Duplicate registration of libsoup content decoder (Yanko Kaneti) * Fixes #955: Blog post truncated after a YouTube embed (reported by Jeff Fortin, fix by Rich Coe) * Fixes #952: Number of unread items is 2 times the correct number (reported by GaryGate15) * Fixes #950: Multiple license issues: - several header files with LGPLv2+ license -> fixed to GPLv2+ - several plugins with outdated LGPLv2+ -> updated to LGPLv3+ - missing LGPL license file COPYING.LIB -> added (reported by Paul Gevers) * Fixes #780: Improve date formatting when in locale en_GB (Paweł Marciniak) * Fixes #944: Broken RTL text direction in feed content view (Lars Windolf) * Fixes #949: Regression in notification plugin that caused it to show non-new items (Lars Windolf) * Fixes #963: Checking for git command in plugin installer -> warn user (Paweł Marciniak) * Fixes #973: Broken CSS in Webkit2Gtk >= 2.32 (Leiaz) * Fixes #192: wrong button order of media player in RTL locales (patch by GreenLunar) * Fixes #343: Usability of update infos in status bar. Now a total count is displayed on mass-updates and a per-feed info on single feed updates (Lars Windolf) * Fixes #809: Usability of feed fetching errors. (Lars Windolf) * Fixes CRITICAL on trayicon plugin init (Lars Windolf) * Fixes #884: Content of wrong feed is shown (Leiaz, reported by Michael F. Schönitzer) * Fixes #900: Flatpak needs icon named after appid (Mikel Olasagasti) * Fixes #908, #332: Search folder are not case-insensitive as documented (reported by Heinz Peter Hippenstiel and Jeff Fortin) * Fixes #899: Truncated articles (on 'Extrat full content') (reported by Leiaz) * Fixes #883: Feed with comments: last comment replaces all content (Leiaz) * Fixes #866: Bad encoding in doc/html/reference_de.html (reported by Paul Gevers) * Fixes #865: Fixes view mode switch (Leiaz) * Fixes #841: Now shows progress bar when loading websites (Leiaz) * Fixes #828: Crashing with segfault after opening feed articles (chronoscz) * Fixes XLST exception on mediarss feeds with description (Lars Windolf) * Fixes #851: accessibility annotations for several combo boxes. (Lars Windolf) * Fixes #850: embedded youtube video bug. (reported by sblondon) * Fixes #803: legacy links to mailing list and IRC in documentation. (reported by Bill Dietrich) * Fixes #840: OPML source subfolders not working (fixed by Tomáš Janoušek) * Fixes #821: Skip current item when finding next unread item (Tom Perez) * Fixes #799: plugins/headerbar.py translations not active (reported by Paul Gevers) * Fixes #783: Update IS_STATE when update item in itemlistview (mozbugbox) * Fixes #693: Add trayicon plugin option to disable minimizing to tray (BurnhamG) * Fixes #746: accessibility fatals reported by gla11y (reported by Paul Gevers) * Fixes #730: "Update all subscriptions at startup" overrides "Don't update this feed automatically" (Dymtro Kyrychuk, reported by Paul Wise) * Fixes #639: Right clicking on article no longer selects it (Leiaz, reported by Bruce Guenter) * Fixes #745: URL fix for French example feeds (sblondon) Translations: * Updated Albanian trasnlation (Besnik Bleta) * Updated Brazilian-Portugese translation (Alexandre Erwin Ittner, Fúlvio Alves) * Updated Czech translation (RadimNo) * Updated Chinese translation (David Yang) * Updated Simplified Chinese translation (Sefler Zhou) * Updated Dutch translation (Gert-dev) * Updated French translation (Guillaume Bernard, sblondon, guilieb, Yannik A.) * Updated German translation (Lars Windolf) * Updated Hungarian translation (Balázs Úr) * Updated Indionesian translation (Samsul Ma'arif) * Updated Italian translation (Janvitus, madmurphy) * Updated Polish translation (Paweł Marciniak) * Updated Russian trasnlation (mbrav) * Updated Spanish translation (Christian Martinez, vosian) * #893: Added Persion default feed list (Kevin Scruff) * #1134, #1135: Updated Spanish example feeds (Joel Barrios) Documentation: * #1043: Added Italian documentation translation (Lorenzo Ancora) * #1040: Updated all documentation for WCAG and HTML5 semantics improves accessibility for screen readers (Lorenzo Ancora) * #1049: Update and extend man page (Lorenzo Ancora) 2020-08-28 Lars Windolf Version 1.12.9 * #850: Fix embedded youtube video bug. (reported by sblondon) * Fixes #846, #864: Translations not applied to application menu bar and tool bar. (Skif-off) 2020-06-11 Lars Windolf Version 1.12.8 * Fixes #840: OPML source subfolders not working (fixed by Tomáš Janoušek) * Update of French translation 2019-08-03 Lars Windolf Version 1.12.7 * #734: Fixes crash when selecting empty nodes (Leiaz) * Fixes #727: Out-dated documentation on Firefox live bookmarks (reported by blueray453) * Fixes headline large images/videos or images with margins causing horizontal scrolling in headline view (Lars Windolf) 2019-12-04 Lars Windolf Version 1.12.6 * #658: Add confirmation dialog when adding duplicate subscription (dymoksc) * Fixes #689: When resuming from sleep feeds were being fetched before Wifi cam up (ghost) * Fixes #685: Headerbar plugin "Mark All Read" button is not feed-specific (Robbie Cooper) * Fixes #549: Scrollbars not always present in the headline area (Leiaz) * Fixes #543: Next update overrides HTML5 enrichment (Lars Windolf) * Fixes overly wide label in enclosure preferences dialog (Lars Windolf) * Dropped unencrypted warning from auth dialog (not true anymore) (Lars Windolf) * #692: Update of Czech translation (RadimNo) * #688: Adding translatable tooltips for the headerbar plugin (Robbie Cooper) 2018-09-07 Lars Windolf Version 1.12.5 * #665: Webkit browser now supplies 'Liferea' component in user agent * #664: Added "Mark All As Read" button to headerbar plugin * #620: Added flatpak JSON (glitsj16) * #579: Added item list column drag and drop reordering (Yanko Kaneti) * #436, #662: Move from GnomeKeyring to libsecret (bgermann) * Fixes #663: Correct instapaper sharing link (Daniel Alexandersen) * Fixes #661: Update sharing links (Daniel Alexandersen) * Fixes #271: Consistent over usage of CPU (trigger by "Next Unread" loop) (reported by GreenLunar) * #472, #632: Dropping Inoreader support (API broke) 2018-07-23 Lars Windolf Version 1.12.4 * Fixes #660: Added installable plugin to change accels (Lars Windolf) * Fixes #654: Segfault on date out of range (Leaiz) * Fixes #651: Fixes Free Music Archive link in default OPMLs (reported by benjbrandall) * Fixes #649: Switch from persistent to session-only cookies (Daniel Alexandersen) * Fixes #645, #646: unread count of vfolder (Leaiz) * Fixes #637: Extra keywords in .desktop file (syndication; rss; atom) (Daniel Alexandersen) * Fixes #557: Updating counters for remote sources (Leiaz) * Updated cookie usage hint in FAQ 2018-05-02 Lars Windolf Version 1.12.3 * #634: Added setting for custom download commands (Leiaz) * #614: GTK Headerbar support via plugin (Lars Windolf) * #608: Refactoring UI code to switch to GAction and GtkBuilder Note: this implies not having icons in the main menu anymore which were still there for all non-GNOME users (see #626). (Leiaz) * #589: Item list view column order rework as a preparation for possible real column drag&drop. Introduces a new DConf setting for the column order. (Yanko Kaneti) * Fixes #280: Mark read toolbar button always disabled for search folders (Lars Windolf, reported by dvahalev) * Fixes #591: Please add a safety question when "marking all read" (Leiaz, reported by Nudin) * Fixes #625: Avoid exception in trayicon.py (Lars Windolf) * Fixes #627: GnomeKeyring plugin fails to activate when keyring doesn't exist (Lars Windolf) * Fixes #630: Fix feed list selection after DnD (Peter Zaitev) * Fixes #633: Big Memory leak in date code (Leiaz) * Update of Turkish translation (emintufan) * Update of French translation (guilieb) 2018-03-07 Lars Windolf Version 1.12.2 * Adding a plugin installer plugin that allows discovering and automatically installing 3rd party plugins * #585: Drop language from user agent to increase privacy (Daniel Aleksandersen) * #583: Add transmission-gtk and aria2 as download tool options (Daniel Aleksandersen) * #495: New command line option --disable-plugins (-p) to start with all plugins disabled. * Fixes #610: Liferea not showing up in GNOME Software (Yanko Kaneti) * Fixes #604: Correctly print error message when failing to unlock GNOME keyring (ghost) * Fixes #602: CSS style for GTK link colors not used (reported by pupyc) * Fixes #581: Redirect location updates and adds HTTP 308 (RFC 7538) support (Daniel Aleksandersen) * Fixes #578: Unable to set unread items in bold (Leiaz, reported by EverEve) * #612: Update of French translation (Guillaume Bernard) * #596: Update of Swedish translation (jony0008) * #594: Update of Polish default feed list (wmyrda) * #584: Fixes broken OPML feed list entries (Daniel Aleksandersen) * #584: Added Norwegian feed list (Daniel Aleksandersen) * #577: Fixes newsbin doc typo (Daniel Aleksandersen) 2017-12-27 Lars Windolf Version 1.12.1 * Fixes #562: Lintian spelling errors (reported by Paul Gevers) * Fixes #563: Appstream data has new format (patch by Paul Gevers) * Fixes #572: Doesn't remember some sort orders (reported by geplus) * Fixes #504: Fix assertions/crashes on changing view layouts (Leiaz) * Fixes #573: Workaround to avoid GtkPaned shrinking (Leiaz) * #566: Update of Italian translation (Gianvito Cavasoli) * #566: Update of Italian default feed list (Gianvito Cavasoli) * #514: Update of Indonesian translation (Samsul Ma'arif) * #514: Added Indonesian default feed list (Samsul Ma'arif) * Update of German translation 2017-11-30 Lars Windolf Version 1.12.0 * Fixes unhiding from tray icon when activated via GApplication (when starting Liferea a 2nd time) * #399: Reorder columns in 'Normal' email-like view to have the date column always at the end (Mikel Olasagasti) * #532: Add plugin to make unread feeds titles bold (Yanko Kaneti) * Workaround for #503: Liferea deanonymize Tor (Leiaz) * Fixes #450: #546 Resize both panes in normal and wide view (Leiaz) * Fixes #538: toggle_visibility() does not make a minimized window visible again (reported by Balló György) * Fixes #522: Segfault when switching feed in combined view (patch by jonmstone) * Fixes #419, #457: Handling of relative URLs in Atom parser (Leiaz) * Added 'View Image' context menu option in HTML view * Dropped del.icio.us from social bookmarking options as it is a read-only service now. * Redesign of the wide view mode: larger titles with small text teasers * Added optional AMP/HTML5 content enrichment feature 2017-03-26 Lars Windolf Version 1.12-rc3 * Fixes #459: Fixes GtkDoc warnings (Leiaz) * Fixes #415: Filter commands are not asynchronous (Rich Coe) * Fixes #363: Missing space above internal browser address bar (reported by nekohayo, patch by Mikel Olasagasti) * Fixes #208: All "Unread" search folder items marked read at once (Leiaz) * Fixes #251: Liferea does not always use theme icons when it is launched on system startup (reported by GreenLunar, fix by Leiaz) * Change headline column sorting in wide view to time sorted * Updated Finnish translation (Jorma Karvonen) * Updated Latvian translation (Rihards Prieditis) * Updated Albanian translation (Bensik Bleta) * Updated Hungarian translation (Balázs Úr) * Updated Brazlian translation (Rafael Ferreira) * Updated French translation (Guillaume Bernard) 2016-11-11 Lars Windolf Version 1.12-rc2 * Change all g_warnings() to g_print() for remote source to avoid "crashing" on errors. * Reorganized all UI definitions in separate files to simplify GtkBuilder handling. * Github #425: Add GeoRSS info and map link in item header (Mikel Olasagasti) * Github #407: Replacing deprecated elements in preferences (Leiaz) * Github #396: Create LifereaApplication type (Leiaz) * Github #434: Partial RFC3229+feed support for bandwidth savings (Daniel Aleksandersen) * Fixes Github #208: gtk_tree_store_get_path: assertion 'iter->stamp == priv->stamp' (reported by Mno-hime) * Fixes Github #403: Leftover OSM XSLT in item view (reported by Paul Gevers) * Fixes Github #423: Internal browser shows files system on go-back (Leiaz, reported by Paul Gevers) * Updated German translation * Github #441: Updated French translation (Surfoo) 2016-09-20 Lars Windolf Version 1.12-rc1a * Fixing missing header files 2016-09-19 Lars Windolf Version 1.12-rc1 * Github #348: Added support for downloading content that cannot be displayed by HTML widget (e.g. PDFs) (Leiaz) * Github #355: Migrate to Python3 libpeas loader (patch by picsel2) * Github #311: Upgrade to WebKit2 (patch by Leiaz) * Github #292: Show new item count in tray icon (patch by mozbugbox) * Github #297: Minimize to systray on window close (patch by Hugo Arregui) * Github #325: Auto-fitting, translated license (patches by GreenLunar and Adolfo Jayme-Barrientos) * Fixes Github #73: Problem with favicon update (reported by asl97) * Fixes Github #177, #350: Tray icon not scaled properly (patch by mozbugbox) * Removes GeoIP rendering via OSM to avoid exposing users to remote JS library resources. (reported by Paul Gevers) * Fixes Github #337: Case sensitive sorting (reported by Pi03k) * Fixes Github #361: Show all enclosuers (Leiaz) * Fixes Github #368: Segfault on liferea-feed-add (Leiaz) * Fixes Github #382: Broken Auto-Detect/No Proxy setting (Leiaz) * Fixes Github #383: Per feed don't use proxy setting is broken (reported by Leiaz) * Github #309: Update of Japanese translation (IWAI, Masaharu) * Github #329: Update of Hebrew translation (GreenLunar) * Github #330: Update of Spanish translation (Adolfo Jayme-Barrientos) * Update of Swedish translation (Andreas Ronnquist) 2016-01-30 Lars Windolf Version 1.11.7 * Github #287: Add support for media:group. (patch by Leiaz) * Github #287: Fixes issues with media:content. (patch by Leiaz) * Fixes Github #283: Bad .desktop categories definition (reported by Wuzzy2) * Fixes Github #279: Fixes rules no visible in searchdialog (patch by Leiaz) * Fixes Github #278: No "Download" tab in Tools/Preferences (docs error, reported by Anders Jonsson) * Fixes Github #83: Segfault when sorting feeds in folder (patch by Leiaz) * Fixes French translation (patch by polo2ro) * Github #300: Updated manpage (patch by GreenLunar) 2015-10-12 Lars Windolf Version 1.11.6 * Added "Do Not Track" support (enabled per default) * Github #193: Added x-scheme-handler/feed to desktop file (suggested by GreenLunar) * Github #209: Add image icons to plugins (by GreenLunar) * Github #210: Enable tests for parsing RFC822 dates with 2 digit year (patch by arunanbala) * Fixes Github #78: Shaky text in feed list (reported by GreenLunar) * Fixes Github #195: Out-dated documentation on enclose download (reported by brian-in-crawford) * Fixes Github #198: Traceback on popup notifications (reported by GreenLunar) * Fixes Github #216: Untranslatable strings (reported by GreenLunar) * Fixes Github #256: PyGIWarnings on loading plugins (patch by glitjs16) 2015-06-19 Lars Windolf Version 1.11.5 * Github #178: Implementing full screen mode for videos (mozbugbox) * Fixes Github #32: Prevent erroneous "Mark all as read" (reported by Mno-hime) * Improves Github #36, #113: UI lock up during refresh (suggested by mozbugbox) * Fixes Github #180: Removing item from (v)folder marks all read (reported by GreenLunar) * Fixes Github #140, #158: Vertical pane placement is forgotten. (patch by foresto) * Fixes Github #182: Missing config.h include in date.c (reported by Paul Gevers) * Update of Russian translation (bboa) 2015-04-14 Lars Windolf Version 1.11.4 * Fixes Github #154: Crashes while starting (corrupt icon) (reported by jcamposz) * Github #149: Fixes a random crash on startup (patch by mozbugbox) * Fixes Github #79: RTL ordering of Back/Forward icons (reported by GreenLunar) * Fixes Github #30: Segfault after updating from 1.8 to 1.10 (reported by vakuum) * Fixes Github #87: URL resolving wrong if base tag involved (reported by DanMan, fixed by mozbugbox) * Fixes all defects reported by Coverity scan * Simplied external browser handling. Now Liferea only supports the gtk_show_uri() launch mechanism for the system default browser and a user specified browser command. * Update of Albanian translation (Besnik Bleta) * Update of Hebrew translation (Genghis Khan) * Update of Spanish translation (Juan Campos Zambrana) * Fixes typo in Italian translation 2015-02-11 Lars Windolf Version 1.11.3 * Fixes Github #134: Broken default news feed. (reported by pvdl) * Fixes Github #133: Subscribe into TheOldReader categories * Fixes Github #122: Crashes at launch, "segmentation fault" (reported by geoffm) * Fixes some memory leaks (patch by Rich Coe) * Fixes Github #145: Incorrect method triggered for 'Launch External' (patch by mozbugbox) * Fixes Github #48: Window stays hidden on next start after Ctrl+W (reported by Jeff Fortin) * Expose LifereaHtmlView to GObject Introspection (patch by mozbugbox) * Improves Google Reader API error handling * Now using HTTPS only when accessing TheOldReader * Added LifereaNodeSourceActivatable interface to allow plugins implementing new node source types. * Downgrade enclosure drop warning from Glib warning to debug trace. 2015-01-06 Lars Windolf Version 1.11.2 * Fixes Github #132: Broken documentation link (reported by kallus) * Fixes Github #121: Wrapping issue in folder display (reported by Jeff Forting) * Fixes Github #114: Avoid termination on UTF-8 validation error * Fixes Github #90: Libnotify plugin not working (reported by asl97) * Fixes Github #86: Support HTTP content negotiation (suggested by DanMan) * Black-list some categories used by Google Reader clones that should not be visible. * Allowing browser history to go back to previously shown headline when browsing inside the item view. * Dropping offline option as this is duplicated with desktop environment in GNOME/network manager. * Fixes Github #100: Problems with dark Adwaita theme in GTK 3.14 (reported by majutsushi) * Fixes for preferences dialog width. (patch by Jeff Fortin) * Update of Arabic translation (Khaled Hosny) 2014-08-31 Lars Windolf Version 1.11.1 * Fixes Github #81: Inability to add subscriptions (reported by GreenLunar) * Fixes Javascript links not opening in new browser tabs * Updated Hebrew translation (Genghis Khan) * Fixes Github #88: Minor DE translation mistake (moraxy) 2014-08-12 Lars Windolf Version 1.11.0 * Added experimental InoReader support * Added experimental Reedah support * Fixes SF #1123: Mistakenly claims "TinyTinyRSS source is not self-updating" (reported by Dominik Grafenhoher) * Fixes SF #1119: Crash on font resize at startup. (reported by David Smith) * Fixes #1056, #1089, #1098: Honor preferences when opening links (patch by Daniel Seither) * Fixes #1117: Selecting last unread item in reduced feed list jumps to next feed (reported by Bruce Guenter) * Fixes missing "Via" metadata type (patch by Rich Coe) * Fixes incorrect new count reset handling in item_state.c and some of the node source implementations. * Fixes SF #1096: missing installation of liferea.convert file (reported by stqn) * Fixes SF #1135: liferea-add-feed doesn't process feed:https// (patch by Kevin Walke) * Fixes SF #1137, #1142: startup race with LifereaHtmlView (reported by Yanko Kaneti) * Fixes Github #13: Parsing errors not visible with dark themes (reported by Steve Kelly) * Fixes Github #29: Do not use bold text for feeds/folders with unread items in the leftmost treeview (repored by Jeff Fortin) * Fixes SF #1141: Liferea does not update feeds with TinyTinyRSS (reported by Dominik Grafenhofer, denk_mal, Fabian Henze) * Fixes SF #1150: subscription prop/source: not all fields and buttons visible (reported by David Smith) * Fixes Github #26: RTL comments appear incorrectly (reported by yaconf) * Fixes Github #27: Images do not autosize to fit the available space (reported by Jeff Fortin) * Fixes Github #34: Add TinyTinyRSS Enclosure Support (reported by Adrixan) * Fixes Github #43: "Any of the following" search condition doesn't work (reported by Jeff Fortin) * Fixes Github #49: Some dialogs scrolling areas do not request enough height (reported by Jeff Fortin) * Fixes Github #53: Doesn't automatically update feed name and favicon for new feed (reported by asl97) * Patch SF #224: Update to new libxml2 buffer API (Simon Kagedal Reimer) * Patch SF #209: Avoid copying list in itemset_merge_items (kaloyan) * Make Liferea use ETags and send If-None-Match (patch by Chris Siebenmann) * Support NOCONFIGURE for RPM builds (Charles A Edwards) * Rename README to README.md * Removing libindicate support (to be added as plugin maybe) * Removing libnotify support (to be added as plugin maybe) * Removing build in tray icon support * Added tray icon plugin * Added category/folder support for TheOldReader * Added folder auto-removal for TinyTinyRSS & TheOldReader * Updated README on plugin contribution * Updated Arabic translation (Khaled Hosny) 2013-10-08 Lars Windolf Version 1.10.3 * Asking for credentials again if TinyTinyRSS login fails * Asking for TinyTinyRSS credentials only 3 times * Checking wether TinyTinyRSS base URL is lost * Added warning on TinyTinyRSS login when source is not self-updating * "--debug-net --debug-verbose" now traces POST data * Patch #230 Add GNOME AppData XML (Mikel Olasagasti) * Updated Italian translation (Gianvito Cavasoli) * Updated Italian localized feed list (Gianvito Cavasoli) 2013-09-05 Lars Windolf Version 1.10.2 * Patch SF #222: Make media player seekable (Simon Kågedal Reimer) * Fixes SF #1102: Spelling error in man page (David Smith) * Fixes SF #1104: liferea.desktop missing keywords (David Smith) * Fixes SF #1105: Start Minimized to Tray Does Not Work (reported by bitlord) * Fixes SF #1114: Crashes opening browser on item without link via popup (reported by Rich Coe, David Smith) * Improved handling of broken Atom author information. (Lars Windolf) * Removed dead Google Reader code to avoid doing requests to Google. Replaced with dummy source that even allows normal feed updates. (Lars Windolf) * Added hint to FAQ on how to workaround broken Flash support (Lars Windolf) * Dumping feedlist.opml with indentation for readability. (suggested by Christoph Temmel and Simon Kågedal Reimer) 2013-07-28 Lars Windolf Version 1.10.1a * Fixes SF #1102: Liferea does not show a window (reported by genodeftest) 2013-07-28 Lars Windolf Version 1.10.1 * Fixes SF #1059: Liferea crashes with system proxy enabled (reported by genodeftest) * Fixes SF #1095: Theme color detection bug / white fonts. (reported by David Smith and others) * Fixes SF #1097: Default feed refresh interval cannot be set to 0 (reported by stqn) * Fixes SF #1100: --debug-gui crashes with segmentation fault (reported by genodeftest) * Fixes SF #1101: Outdated manpage (reported by genodeftest) * Patch SF #225: Make media player work with GStreamer 1.0 (Simon Kågedal Reimer) * Patch SF #226: Add trailing semi-colon to MimeType so that the desktop file validates (Yanko Kaneti) * Patch SF #227: Remove letfover square bracket configure.ac (Yanko Kaneti) * Patch SF #228: Add net.sf.liferea.gschema.xml to AC_CONFIG_FILES (Yanko Kaneti) 2013-07-10 Lars Windolf Version 1.10.0 * Added experimental sync support for TheOldReader (Lars Windolf) * Removed 'Update' link in comments display as it is pretty useless (Lars Windolf) * Removed 'No Comments' display as it is rather useless (Lars Windolf) * Prevent re-rendering item display on setting item flagged (Lars Windolf) * Changed unread number rendering to be right bound and non-ellipsized (Lars Windolf) * Fixes g_strstr_len assertions caused by search folder item matching (Rich Coe) * Updated documentation to reflect Google Reader, TheOldReader changes (Lars Windolf) * Removed welcome text, restoring last feed/item selection instead (Lars Windolf) * autogen.sh now reports errors on missing autoconf or intltool (suggested by Scott Kostyshak) * Correctly check for gobject-introspection build dependency (suggested by Scott Kostyshak) * Updated Basque translation (Mikel Olasagasti Uranga) * Updated Danish translation (Joe Hansen) * Updated Dutch translation (Erwin Poeze) * Updated Finnish translation (Jorma Karvonen) * Updated Russian translation (Leonid Selivanov) * Updated Ukrainian translation (Yuri Chornoivan) * Updated Vietnamese translation (Trần Ngọc Quân) * Updated German translation (Lars Windolf) 2013-05-22 Lars Windolf Version 1.10-RC4 * Added an option to convert Google Reader subscriptions to local feeds (Lars Windolf) * Fixes SF #1080: segfault opening attachment due to incorrect g_free() (reported by Adam Nielsen) * Fixes SF #1075: GLib warnings of "string != NULL" assertion failure (reported by Simon Kågedal Reimer) * Fixes missing shading in 2-pane mode rendering (reported by Zoho Vignochi) * Fixes search folders including comment items (reported by David Willmore) 2013-05-22 Lars Windolf Version 1.10-RC3 * Fixes SF #1069: broken rendering in tt-rss feeds (patch by Simon Kågedal Reimer) * Merged SF #219: View *.xml files along with *.opml files in file chooser (patch by Simon Kågedal Reimer) * Merged SF #233: Show feed name in item view when in merged views. (patch by Simon Kågedal Reimer) * Merged SF #193: Use GtkInfoBar for note in preferences window (patch by Fred Morcos) * Require intltool >= 0.40.4 (Adrian Bunk) * Updated Catalan translation (Gil Forcada) * Updated Danish translation (Joe Hansen) * Updated Polish translation (Piotr Sokół) 2013-05-12 Lars Windolf Version 1.10-RC2 * Extended user agent by "AppleWebKit (KHTML, like Gecko)" to solve incorrect mobile redirect with zdf.de * Added social bookmarking support for Mister Wong * Added social bookmarking support for Google Bookmarks * Update of German FAQ * Update of English FAQ * Added MimeType to .desktop file (Craig Barnes) * Fixes SF #1063: Can't open preferences twice (Emilio Pozuelo Monfort, reported by David Smith) * Fixes SF #1040: In feed entries, spaces are replaced with "+" (reported by Emmanuel Seyman) * Fixes SF #1051: Issues in RTL GUI of Liferea (reported by phixy) * Fixes SF #1038, #1074: Updates ttrss feeds over and over (reported by many users) * Fix several memory leaks (Emilio Pozuelo Monfort) * Require glib >= 2.28 for GApplication (Adrian Bunk) * Use the GTK+ 3 version, not wrongly the GTK+ 2 version, of the libindicate GTK+ bindings (Adrian Bunk) * Updated the default feedlists (Adrian Bunk) * Removed support for libnotify < 0.7 (Adrian Bunk) * Added Vietnamese translation (Trần Ngọc Quân) * Updated Albanian translation (Besnik Bleta) * Updated Asturian translation (Iñigo Varela) * Updated Basque translation (Mikel Olasagasti Uranga) * Updated Danish translation (Joe Hansen) * Updated Finnish translation (Jorma Karvonen) * Updated German translation (Christian Stadelmann) * Updated Hungarian translation (Gabor Kelemen) * Updated Japanese translation (Takeshi Hamasaki) * Updated Latvian translation (Rihards Priedītis) * Updated Ukrainian translation (Yuri Chornoivan) 2013-01-30 Lars Windolf Version 1.10-RC1 Please note that due to the SourceForge upgrade bug ticket numbering did change. This might be confusing... Old numbers are 7 figures, newer ones only 4! * Patch SF #3407290: Migrate to GSettings (by Mikel Olasagasti) * Patch SF #3579177: Change .desktop category to News;Feed; (by Stanislav Brabec) * Fix for Debian #668197: x-www-browser preference not working (David Smith) * Added slider and time display to media player plugin. * Added Google Plus to social bookmarking options. * Removing deprecated g_thread_init() call * Auto-enable plugins on migration * Added missing -a option to manpage * Updated manpage to reflect XDG path migration * Changing GSettings path from /apps/liferea to /org/gnome/liferea * Changes default download thread concurrency from 2 to 3 * Fixes regression about using the GNOME default font * Improves all item/link launching menus to consistently provide three options: Tab, Browser and External Browser * Fixes SF #1037: Incorrect notifications for Google Reader (patch by David Smith) * Fixes SF #1048: Removed all feedvalidator.org references from FAQ and XSLT as it was reported to host malware. (reported by bkat) * Fixes SF #1041: Some GPLv2 license headers were outdated (reported by Emmanuel Seyman) * Fixes SF #1044: tt-rss API changed (we now support only 1.6 API) (patch by Sebastian Noel) * Fixes assertion when creating new tt-rss subscriptions * Fixes XHTML errors caused by extra tags returned by tt-rss * Fixes missing item list update when browsing item URLs in Liferea 2012-10-28 Lars Windolf Version 1.9.7 * Added new preference for default viewing mode. * Changing toolbar button order to prevent accidental clicks on "Mark All Read" when clicking on more frequent buttons like "Next Unread". * Added Google Chrome as a browser choice to preferences. * Roughly reordered browser choices after browser market share. * Removed shading behaviour for unread items in combined view as it doesn't match GTK theming well * Removed auto-hide Javascript menu from combined view to simplify rendering in 3-pane modes. * Fixes items not removed from search folder count when feed is removed. * Fixes search folder rebuilding (do not include comment items). * Fixes SELECT offset handling when rebuilding search folders. * Now gives feedback when rebuilding search folders in feed list. * Update of German translation 2012-10-09 Lars Windolf Version 1.9.6 * Removed "pass URL" check box from MIME type dialog. * Removed "Save In" entry from "Download" tab in preferences. * Removed "curl" choice in download tool preferences. * Removed "wget" choice in download tool preferences. * Added "steadyflow" choice in download tool preferences. * Patch SF #3569056: Use symbolic close buttons and spacing on tabs like gedit (Sebastian Keller) * Fixes reloading item when browsing the web inside the item view. * Fixes preferences dialog not opening up a second time. * Fixes padding/alignments in preferences dialog. * Fixes SF #1418701: Remote server pounded into dirt on auto-download (reported by anonymous) * Fixes SF #3567827: Double border around webview (reported by borschty) * Fixes SF #3572660: crash in google_source_remove_node (reported by Yanko Kaneti) * Prevents adding folders/search folders/newsbins to Google Reader * Prevents sorting subscriptions in Google Reader * Updated Polish translation (Wojciech Myrda) 2012-09-14 Lars Windolf Version 1.9.5 * GIR dependencies are now mandatory * Migration to XDG directory layout in $HOME * Migrate from X session manager to GtkApplication * Raising GTK dependency to 3.4 for GtkApplication * Storing last window state in GConf now instead in the session command * Added Instapaper.com to social bookmarking sites (SF #3564393) (patch by prurigro) * Use hint label for manual browser command preference (SF #3129429) (patch by Fred Morcos) * Fixes comments_deinit() never being called * Fixes search folder counter update on feed removal * Fixes SF #3567715: Crash on network online status changes (patch by Yanko Kaneti) 2012-08-24 Lars Windolf Version 1.9.4 * Changes (c) name "Lars Lindner" -> "Lars Windolf" due to marriage * Removed compilation support for GTK2 * Added GIR plugin system with libpeas * Added GnomeKeyring plugin that stores password in a keyring instead of in the exported OPML. * Added simple media player plugin to play audio and video enclosures. * Only present enclosures of audio and video MIME type * Raise libindicate minimum dependency to 0.6 * Patch SF #3515882: Also support libindicate 0.7 (Chow Loong Jin) * Dropping SIGSEGV signal handler to allow distro crash report tools to work (as found in Ubuntu) * Ensure node ids are in DB node relation on startup. * Adding AM_PROG_AR to configure.ac to work with automake 1.12 * Moved tab close button from the URL bar to the right of the tab label. * Smarter browser toolbar: appears now also in the item view when browsing external content. * Don't ask for Google Reader authentication more than three times with auto-update to avoid annoying the user. * Fixes SF Trac #10: Crash on empty search folders within folders (reported by phyxi) * Fixes SF Trac #19: Auto-load-link doesn't work with feeds with comments (reported by wonk0) * Fixes SF #2855990: Crash when dragging Google Reader feeds outside Google Reader. This is now prevented. (reported by algnod) * Fixes SF #3515880: missing include when compiling with libindicate (patch by Chow Loong Jin) * Fixes search folders being invisible in reduced mode. * Fixes ever growing temporary DB files. (patch by Sven Hartge) * Fixes visibility of enclosure list view for Ubuntu. * Fixes crashes on enclosure list context menu. * Fixes SF #3557513: Fixes crash on empty links in auto-load-link mode. (patch by msquared84) * Fixes unknown metadata types reported in trace when loading Google Reader subscriptions from DB. 2012-03-30 Lars Windolf Version 1.9.3 * Added a new item history feature that allows navigating through recently viewed items. * Added new "Fullscreen" toggle menu option. * For GTK+3: request dark theme variant for better contrast between GUI and content. (Jeff Fortin) * Change schema defaults for folder display. Now unread items are loaded per-default when clicking a folder. * Patch SF #3473743: GTK2 dependency has to be 2.24 (bento) * Improve DB item counting statements. (patch by Regis Floret) * Change OpenStreetMap rendering from osmarender to mapnik. (patch by Mikel Olasagasti) * Patch SF #3127016: Automatic scrollbars on enclosure actions view (patch by Fred Morcos) * SF Trac #7: Removing icon from "Cancel All" in update dialog so that .gtkrc "gtk-button-images=0" does have correct effect. (reported by phixy) * Fixes SF #3480238: crashes when double clicking find (reported by joeserneem) * Fixes Debian #660602: Item pane may be reset during feed update (reported by Ben Hutchings) * Reimplemented search folder rule for item with enclosures. * Reimplemented search folder rule for item categories. * Reimplemented feed title matching rule for search folders. (patch by John Levon) * Updated Catalan translation (Gil Forcada) 2012-03-23 Lars Windolf Version 1.9.2 * Fixes another migration issue left from 1.9.1 * Increasing sqlite3 dependency to 3.7+ for WAL journaling. * Removed sqliteasync code in favour of WAL journaling. This significantly improves performance for ext4. * Added indices for parent_item_id and parent_node_id to avoid slow item removal. (suggested by Paulo Anes) 2012-03-18 Lars Windolf Version 1.9.1 * Disabled migration to ~/.liferea_1.9 * Revert ISO 8601 parsing using Glib due to Debian #653196 This fixes SF #3465106 (reported by Vincent Lefevre) * Fixes SF #3477582: welcome screen not using theme colors. (reported by stqn) * Do not update DB node and subscription info on startup for performance reasons. * Perform VACCUM only when page fragmentation ratio < 10%. (suggested by adriatic) * Removed tooltip on the "Next Unread Item" button to avoid having it flashing each time it is clicked when skimming through items. 2011-12-23 Lars Windolf Version 1.9.0 * Add configure switch to compile against GTK2 or GTK3. (Emilio Pozuelo Monfort, Adrian Bunk) * Raise dependencies and updated code to compile against GTK3. (Emilio Pozuelo Monfort, Adrian Bunk) * Fixes proxy preference not affecting the HTML widget. (reported by Chris Siebenmann) * Fixes SF #3363481: Feeds fail to update properly when entries ordered "wrong" (patch by Robert Trace) * Fixes writing subscriptions into DB when importing from OPML (reported by Dennis Nezic) 2011-12-10 Lars Windolf Version 1.8.0 * Fixes SF #3441643: Deleting a feed also removes items copied to news bins (reported by Jan Larres) * Updated French translation (Vincent Lefevre) * Added Hungarian default feed list (Gabor Kelemen) * Removed broken feeds from all default feed lists. (suggested by Gabor Kelemen) 2011-11-16 Lars Windolf Version 1.8 RC2 * Fixes Basque feed list. (Mikel Olasagasti) * Added user template CSS that helps users changing the CSS definitions and is installed into the cache directory per default. (suggested by Jeff Fortin) * Fixes SF #3349330: Segfault when dropping folders into Google Reader subscription. (reported by no|disc) * Fixes SF #3046762: DB contains old comment items of deleted feed entries. (reported by FuturePilot) * Added Latvian translation. (Rihards Priedītis, Rūdolfs Mazurs) * Added Lithuanian translation. (Mindaugas Baranauskas) * Updated Basque translation. (Mikel Olasagasti Uranga) * Updated Chinese/Simplified translation. (Aron Xu) * Updated Dutch translation. (Erwin Poeze) * Updated Hungarian translation. (Gabor Kelemen) * Updated Russian translation. (Leonid Selivanov) * Updated Swedish translation. (Daniel Nylander) * Updated Ukrainian translation. (Yuri Chornoivan) 2011-09-14 Lars Windolf Version 1.8 RC1 * Migrate cache directory to ~/.liferea_1.8 * Merges SF #3367900: Fixes memory allocation issues. (patch by doomkopf) * Merges new default feedlist for European Portuguese (provided by Bruno Miguel) * Fixes SF #3398789: Keeps marking read items as unread. (reported by naoliv) * Updated manual page 2011-06-21 Lars Windolf Version 1.7.6 (Unstable) * Fixes SF #3102116: MIME type definitions not saved. (reported by Alexander Gnodtke) * Merges SF #3273050: Added diggio bookmarking option. (patch by Daniel Noffsinger) * Merges SF #3273213: Open Social bookmarking in tab. (patch by Daniel Noffsinger) * Allow reordering browser tabs. * Support popup menu key in feed/item/enclosure tree view. * Raise tt-rss dependency to 1.5 (patch by Paulo Schreiner) * Update tt-rss subscriptions when source node is updated. (patch by Paulo Schreiner) * Fixes 2 way item state sync for tt-rss subscriptions. (patch by Paulo Schreiner) * Fixes SF #3162756: HTML view doesn't use configured font. (reported by nomnex) * Add X-GNOME-FullName to desktop file. (Maia Kozheva) * Added optional libindicate support. (Maia Kozheva) * Added partial Google Reader label support: Labels are now sync'ed as folders from Google into Liferea. (patch by Peter Oliver and Sergey Snitsaruk) * Fixes accidental drag&drop in HTML view. * Updated Polish translation (Myrda Wojciech) 2011-04-14 Lars Windolf Version 1.7.5 (Unstable) * Some more GTK+ GSEAL work. (Emilio Pozuelo Monfort) * Make "Disable Javascript" and "Enable plugins" preferences have an effect without having to restart Liferea. (Emilio Pozuelo Monfort) * Fix NetworkManager support. (Emilio Pozuelo Monfort) * Code cleanups. (Fabian Keil) * Fixes SF #2883678: Shorter notification messages (Ted Gould) * Fixes SF #2965158: Enclosures URLs with spaces do not work. (reported by Michael Novak) * Replace the deprecated GTK_WIDGET_TYPE with G_OBJECT_TYPE. (Adrian Bunk) * Fixes SF #2981879: Unknown metadata type itemTitle (reported by stk1) * Removing red title bar for flagged headlines. This is to avoid suggesting an error situation. (suggested by Felipe Ignacio Canas Sabat) * Rewrite of the search folder code. We do not use SQlite views for rule based matching anymore. (Lars Windolf) * Added identi.ca bookmarking support. (Adrian Bunk) * Added copy text selection to clipboard option. (patch by Ricardo Cruz) * Fixes SF #2994622: Atom author URIs not markup escaped. (reported by Ricardo Cruz) * Fixes SF #2829961: spaces are no urlencoded on copy link (reported by Winston Weinert) * Fixes SF #2901447: comma in link prevents launching browser (reported by Rafal Ochmanski) * Fixes SF #3002400: tags makes text invisible (patch by Sergey Snitsaruk) * Improve the UI responsiveness by using sqlite3async. (patch by Wictor Lund) * Improved localization handling of filenames. (Adrian Bunk) * Added new DBUS method to trigger a global feed updated. (patch by Matthew Bauer) * Removing feed update state from DB and simplifying startup feed update options. (Lars Windolf) * Fixes SF #3019939, Debian #586926: Broken Google Reader authentication. (Arnold Noronha) * Don't ship autogen.sh in release tarballs. (Adrian Bunk) * Added --debug-vfolder option. (Lars Windolf) * Added feature to sort feeds in a folder alphabetically. (Lars Windolf) * Require WebKitGTK+ >= 1.2.2 to avoid bugs in older versions. (Adrian Bunk) * Better error messages when essential files are missing under /usr/share/liferea. (Adrian Bunk) * Fixes a crash with feeds with relative item links and empty channel link. (Adrian Bunk) * Fixes SF #3039421: Useless trailing spaces in litereals. (reported by Joe Hansen) * Adapt on_tab_switched() to GTK+ API change. (Adrian Bunk) * Fixes SF #3067801: crash in enclosure handling (patch by Peter Oliver) * Fixes SF #3060658: Save As Enclosure doesn't set directory. (Lars Windolf) * Added "Copy Link/Image Location" to HTML view (Lars Windolf) * Added "Save Link/Image As" to HTML view (Lars Windolf) * Fixes Debian #593415: Seems to misidentify MIME type of some podcast enclosures (reported by Celejar) * Removed the obsolete Bloglines support. (Adrian Bunk) * Also print the stacktrace when debugging is not enabled. (Adrian Bunk) * Removed the outdated .spec file. (Adrian Bunk) * Merged patch SF #3089150: Bidi support (Yaron Sheffer) * Fixes second search not clearing item list. (Lars Windolf) * Fixes SF #3019444 and #2978831: incorrect handling of HTTP 301 (patch by Solomon Peachy) * Added support for the new libnotify API. (Emilio Pozuelo Monfort) * Fixes Debian #600638: Wrong number of unread items in mouse over tray icon with zh_TW locale. (Adrian Bunk) * Port from dbus-glib to GDBus. (Emilio Pozuelo Monfort) * Port from libnm-glib and dbus-glib to direct DBus calls using GDBus. This way we always build the NetworkManager support, and it's only used if it's running on the user's system. (Emilio Pozuelo Monfort) * Removed bookmarking support for the dead Backflip. (Adrian Bunk, reported by Kenneth Lakin) * SF #3127001: Fix Toolbar Settings label wrong xalign in preferences dialog (patch by Fred Morcos) * SF #3177676: Cannot handle gzipped HTTP responses. (patch by hyperair) * SF #3132354: Show tooltip when column to small to show text (patch by Ricardo Cruz) * SF #3203121: Add support for NM 0.9 (patch by Dan Williams) * SF #3019505: Fixed drag and drop in the feed list. (Emilio Pozuelo Monfort) * Fixes Debian #538250: Revert item_set_description() to the 1.4 code since the HTML detection created too many false negatives. (Adrian Bunk, reported by Wouter Verhelst) * Added Asturian translation. (Marquinos) * Added Danish translation. (Joe Hansen) * Added Galician translation. (Anxo Outeiral) * Added Hebrew translation. (Yaron Sheffer) * Added Ukrainian translation. (Yuri Chornoivan) * Updated Albanian translation. (Besnik Bleta) * Updated Arabic translation. (Khaled Hosny) * Updated Chinese/Simplified translation. (Aron Xu) * Updated German translation. (Lars Windolf) * Updated Italian translation. (Gianvito Cavasoli) * Updated Russian translation. (Leonid Selivanov) * Updated Slovak translation. (Pavol Klacansk) 2010-02-16 Adrian Bunk Version 1.7.4 (Unstable) * Merged patch that fixes LP #238958: always present window on current workspace if tray icon is clicked. (patch by Fabien Tassin and Sasa Bodiroza) * Cleanup of default stylesheet. Removed used styles. (Lars Windolf) * Permanently removed LUA scripting support. (Lars Windolf) * Added more default feeds to be not so open source specific. (Lars Windolf) * Require libsoup >= 2.28.2 to avoid bugs in older versions. (Adrian Bunk) * Updated Spanish translation. (Rodrigo Gallardo) 2010-01-24 Lars Windolf Version 1.7.3 (Unstable) * Added patch SF #2883678: Support for notification append (patch by Ted Gould) * Implemented folder re-expansion when switching from reduced feed list mode back to full hierarchic mode. (Lars Windolf) * Updated proxy settings are now forwarded to the internal renderer again. (Lars Windolf) * Fixes SF #2872001: Allowing compilation against NetworkManager 0.8 which decided to force 100000 packages out there to support both "libnm-glib" and "libnm_glib". (reported by Michal Nowak) * Fixes an RSS 1.1 parsing bug that caused items not to be parsed at all (reported by Roberto Guido) * Fixes SF #2883971: proxy authentication doesn't work (reported by Louis White and others) * Improves handling of feeds with relative item links. (patch by Rafael Kitover) * Fixes SF #2928927: Remember sort column when sorting by item state (patch by Andy Kittner) * Readded workaround for zoom setting of zero (which prevents zooming). (patch by Rafael Kitover) * Use gtk_show_uri() instead of relying on "gnome-open". (Lars Windolf) * Using g_time_val_from_iso8601 instead of propietary solution we had. (Lars Windolf) * Simplified pixmaps resolving as we used only one source directory anyway. (Lars Windolf) * Updated Catalan translation. (Gil Forcada) 2009-11-19 Adrian Bunk Version 1.7.2 (Unstable) * Fixes SF #2827075: Migrate from libglade to GtkBuilder. (Hubert Figuiere and Emilio Pozuelo Monfort) * Fixes SF #2831121: Require WebKitGTK+ >= 1.1.11 since older versions crash frequently when built with gcc 4.4. (Adrian Bunk) * Go back to using libtool for getting a proper rpath with libraries in unusual locations found through pkg-config. (Adrian Bunk, reported by Leon Nardella) * Fixes SF #2831007: Opening enclosures by URL fails intermitantly (Lars Windolf, reported by Eric Drechsel) * Fixes a unique node id check that could have caused duplicate node ids. (Lars Windolf) * Removes the GConf option for a user defined date format. (Lars Windolf) * We do not update comment feeds returning HTTP 410 anymore. (Lars Windolf) * Fixes SF #2897668: Crash when adding Bloglines subscriptions. (Lars Windolf) * Fixes a crash when deleting items. (Lars Windolf) * Fixes SF #2823526: Increase the width of the left column in the Script Manager. (Adrian Bunk, reported by Pavol Klačanský) * Fixes Debian #539857: Hide link cosmos for items that don't have a valid url, instead of displaying it and crashing when clicked. (Emilio Pozuelo Monfort, reported by Nelson A. de Oliveira) * Use silent automake rules. (Adrian Bunk) * Patch #2843340: Fixes handling of duplicate ids in OPML files. (Ruper Swarbrick) * Added a timeout for downloads. (Arnold Noronha) * Fixes SF #2861203: Crash when creating new search folder. (reported by Andreas Kern and larslj) * Fixes SF #2873588: Error in welcome message. (reported by adiroiban) * Use soup_message_disable_feature() to disable proxy and cookies when needed, instead of creating multiple SoupSessions, one for each use case. Require libsoup >= 2.28.0 for it. (Emilio Pozuelo Monfort) * Stop accessing GTK+ structures directly, use accessors instead in preparation for GTK+ 3.0. Require gtk+ >= 2.18.0 for it. (Emilio Pozuelo Monfort) * Simplified DB schema to avoid costly cleanup. (Lars Windolf) * Patch SF #2894307: Fixes key cycling in items list. (Simon Lipp) * Put the next selected item on top when scrolling in the item list during Next-Unread. (patch by JustFillBug) * Updated Dutch translation. (Erwin Poeze) * Updated French translation. (Vincent Lefevre) * Updated Hungarian translation. (Gabor Kelemen) * Updated Romanian translation. (Adi Roiban) * Updated Slovak translation. (Pavol Klacansk) 2009-08-10 Adrian Bunk Version 1.7.1 (Unstable) * Re-fix item being unselected when opening preferences for the first time, or when (un)hiding read items from folders. (Emilio Pozuelo Monfort) * Fixes a crash when adding subscriptions that needs feed auto discovery. (Arnold Noronha) * Add a --add-feed option that adds a new subscription. It can also be used while Liferea is running, and it will add the feed to the running process. (Emilio Pozuelo Monfort) * Let liferea-add-feed work when there is no DBus support by using --add-feed. (Emilio Pozuelo Monfort) * Changed the update queue logic which previously restricted the number of updates to 1 per 500ms under peak loads. (Arnold Noronha) * Removed a not-useful-enough interface to save/load GoogleSource edits to disk across Liferea sessions. (Arnold Noronha) * Link directly with libgthread-2.0 and libICE, fixes linking with gold. (Adrian Bunk) * Re-add grayflag.png since it is actually used. (Adrian Bunk, reported by Maik Zumstrull) * Let notification.h be shipped in tarballs. (Emilio Pozuelo Monfort, reported by George Sherwood) * Don't ship Google and Bloglines icons, download them as with any other subscription instead. (Emilio Pozuelo Monfort) * Fix advanced new subscription dialog to set the filter filechooser bar insensitive if the filter checkbox is unset. Also make the feed properties dialog not completely hide the filter filechooser, only set it insensitive if the filter checkbox is unset. (Emilio Pozuelo Monfort) [truncated] lwindolf-liferea-508e7a9/INSTALL000066400000000000000000000227701451527772200163560ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1.A. Compiling from a Tarball release `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. 1.B. Or compiling from Git `cd' to the directory containing the package's source code and type `./autogen.sh' to configure the package for your system. Running `configure' or 'autogen.sh' may take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. lwindolf-liferea-508e7a9/Makefile.am000066400000000000000000000043651451527772200173610ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in SUBDIRS = doc man opml pixmaps po src xslt glade desktop_in_files = net.sourceforge.liferea.desktop.in desktopdir = $(datadir)/applications desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ dbusservicedir = $(datadir)/dbus-1/services dbusservice_DATA = net.sourceforge.liferea.service net.sourceforge.liferea.service: Makefile $(AM_V_GEN) (echo '[D-BUS Service]'; \ echo 'Name=net.sourceforge.liferea'; \ echo 'Exec=${bindir}/liferea --gapplication-service') > $@.tmp && \ mv $@.tmp $@ appdatadir = $(datadir)/metainfo appdata_in_files = net.sourceforge.liferea.appdata.xml.in appdata_DATA = $(appdata_in_files:.xml.in=.xml) @INTLTOOL_XML_RULE@ cssdir = $(pkgdatadir)/css css_DATA = \ css/liferea.css \ css/user.css jsdir = $(pkgdatadir)/js js_DATA = \ js/gresource.xml \ js/htmlview.js \ js/Readability-readerable.js \ js/Readability.js dtddir = $(pkgdatadir)/dtd dtd_DATA = dtd/html.ent plugindir = $(pkglibdir)/plugins plugin_DATA = \ plugins/add-bookmark-site.py \ plugins/add-bookmark-site.plugin \ plugins/add-bookmark-site.ui \ plugins/bold-unread.py \ plugins/bold-unread.plugin \ plugins/getfocus.py \ plugins/getfocus.plugin \ plugins/gnome-keyring.py \ plugins/gnome-keyring.plugin \ plugins/headerbar.py \ plugins/headerbar.plugin \ plugins/libnotify.py \ plugins/libnotify.plugin \ plugins/media-player.py \ plugins/media-player.plugin \ plugins/plugin-installer.py \ plugins/plugin-installer.plugin \ plugins/trayicon.py \ plugins/trayicon.plugin gsettings_SCHEMAS = net.sf.liferea.gschema.xml @INTLTOOL_XML_NOMERGE_RULE@ @GSETTINGS_RULES@ data_convertdir = $(datadir)/GConf/gsettings dist_data_convert_DATA = liferea.convert EXTRA_DIST = \ net.sf.liferea.gschema.xml.in \ po/liferea.pot \ $(desktop_in_files) \ $(desktop_DATA) \ $(schema_DATA) \ $(css_DATA) \ $(js_DATA) \ $(dtd_DATA) \ $(plugin_DATA) \ $(gsettings_SCHEMAS) \ $(appdata_in_files) \ $(appdata_DATA) DISTCLEANFILES = \ liferea.desktop \ net.sourceforge.liferea.service \ intltool-extract \ intltool-merge \ intltool-update CLEANFILES = \ $(gsettings_SCHEMAS) \ $(appdata_DATA) po/liferea.pot: cd po && $(MAKE) liferea.pot test: cd src/tests && make test lwindolf-liferea-508e7a9/README.md000066400000000000000000000162261451527772200166030ustar00rootroot00000000000000[![Build Status](https://github.com/lwindolf/liferea/actions/workflows/cb.yml/badge.svg)](https://github.com/lwindolf/liferea/actions/workflows/cb.yml) [![Packages](https://repology.org/badge/latest-versions/liferea.svg)](https://repology.org/metapackage/liferea/versions) [![Packages](https://repology.org/badge/tiny-repos/liferea.svg)](https://repology.org/metapackage/liferea/versions) [![Dependency](https://img.shields.io/librariesio/github/lwindolf/liferea)](https://libraries.io/github/lwindolf/liferea) Introduction ------------ Liferea is a desktop feed reader/news aggregator that brings together all of the content from your favorite subscriptions into a simple interface that makes it easy to organize and browse feeds. Its GUI is similar to a desktop mail/news client, with an embedded web browser. ![screenshot](https://lzone.de/liferea/screenshots/screenshot2.png) Installation from Package ------------------------- For distro specific package installation check out https://lzone.de/liferea/install.htm Building Liferea Yourself ------------------------ This section describes how to compile Liferea yourself. If you have any problems compiling the source file an issue at Github and we will help you asap. ###### _Mandatory Dependencies_ libxml2-dev libxslt1-dev libsqlite3-dev libwebkit2gtk-4.0-dev libjson-glib-dev libgirepository1.0-dev libpeas-dev libfribidi-dev gsettings-desktop-schemas-dev python3 libtool intltool ###### _Compiling from Tarball_ Download a tarball from https://github.com/lwindolf/liferea/releases and extract and compile with tar jxvf liferea-1.13.3.tar.bz2 ./configure make sudo make install ###### _Compiling from Git_ Check out the code: git clone https://github.com/lwindolf/liferea.git Then build it with: ./autogen.sh make sudo make install If you compile with a --prefix directory which does not match $XDG_DATA_DIRS you will get a runtime error about the schema not being found. To workaround set $XDG_DATA_DIRS before starting Liferea. For example: my_dir=$HOME/tmp/liferea ./autogen.sh --prefix=$my_dir make sudo make install env XDG_DATA_DIRS="$my_dir/share:$XDG_DATA_DIRS" $my_dir/bin/liferea Contributing ------------ As the project is hosted at Github pull requests and tickets via Github are the best way to contribute to Liferea. ###### _Translating_ Before starting to translate you need a translation editor. We suggest to use poedit or gtranslator. Please edit the translation using such a translation editor and create a Github pull request for the new `.po` file. ###### _New Translations_ To create a new translation you must load the translation template, which you can find in the release tarball as `po/liferea.pot`, into your translation editor. After editing it save it under a new name (usually your locales name with the extension `.po`). ###### _Updating Translations_ When updating an existing translation please ensure to respect earlier translators work. If the latest translation is only a few months old please contact the latest translator first asking him to review your changes especially if you change already translated literals. ###### _Localizing Feed Lists_ When Liferea starts for the first time it installs a localized feed list if available. If this is not the case for your locale you might want to provide one. To check if there is one for your country have a look into the "opml" subdirectory in the latest release tarball or GIT. If you want to provide/update a localized feed list please follow these rules: + Keep the English part of the default feed list + Only add neutral content feeds (no sex, no ideologic politics, no illegal stuff) + Provide good and short feed titles + Provide HTML URLs for each feed. ###### _Creating Plugins_ Liferea supports GObject Introspection based plugins using libpeas. The Liferea distribution comes with a set of Python plugin e.g. the media player, libsecret support, a tray icon plugin and maybe others. ###### Why We Use Plugins? The idea behind plugins is to extend Liferea without changing compile time requirements. With the plugin only activating if all its bindings are available Liferea uses plugins to automatically enable features where possible. ###### How Plugins Interact With Liferea You can develop plugins for your private use or contribute them upstream. In any case it makes sense to start by cloning one of the existing plugins and to think about how to hook into Liferea. There are two common ways: + using interfaces, + or by listening to events on Liferea objects, + or not at all by just controlling Liferea from the outside. The media player is an example for 1.) while the tray icon is an example for 3.) If you find you need a new plugin interface (called Activatables) in the code feel free to contact us on the mailing list. In general such a tight coupling should be avoided. About the exposed GIR API: At the moment there is no stable API. Its just some header files fed into g-ir-scanner. Despite this method names of the core functionality in Liferea has proven to be stable during release branches. And if you contribute your plugin upstream it will be updated to match renamed functionality. ###### Testing Plugins To test your new plugin you can use ~/.local/share/liferea/plugins. Create the directory and put the plugin script and the .plugin file there and restart Liferea. Watch out for initialization exceptions on the command line as they will permanently disable the plugin. Each time this happens you need to reenable the plugin from within the plugin tab in the preferences dialog! ###### _How to Help With Testing_ ###### *Bug Reports* If you want to help with testing grab the latest tarball or follow GIT master and write bug reports for any functional problem you experience. If you have time help with bug triaging. Check if you see any of the open bugs that are not yet confirmed. ###### *Debugging Crashes* In case of crashes create gdb backtraces and post them in the bug tracker. To create a backtrace start Liferea using "gdb liferea". At the gdb prompt type "run" to start the execution and "bt" after the crash. Send us the "bt" output! Note: Often people confuses assertions with crashes. Assertions do halt the program because of a totally unexpected situation. Creating a backtrace in this situation will only point to the assertion line, which doesn't help much. In case of an assertion simply post a bug report with the assertion message. ###### *Debugging Memory Leaks* If you see memory leakage please take the time to do a run valgrind --leak-check=full liferea to identify leaks and send in the output. How to Get Support ------------------ ### When using distribution packages Do not post bug reports in the Liferea bug tracker, use the bug reporting system of your distribution instead. We (upstream) cannot fix distribution packages! ### Before raising an issue Install the latest stable release and check if the problem is solved already. Please do not ask for help for older releases! ### Issue Tracker Once you verified the latest stable release still has the problem please raise an issue in the GitHub bug tracker (https://github.com/lwindolf/liferea/issues). lwindolf-liferea-508e7a9/autogen.sh000077500000000000000000000006241451527772200173200ustar00rootroot00000000000000#!/bin/sh tmp=`which autoreconf` if [ "$tmp" = "" ]; then echo "ERROR: You need to install autoconf!" exit 1 fi tmp=`which intltoolize` if [ "$tmp" = "" ]; then echo "ERROR: You need to install intltool!" exit 1 fi tmp=`which libtoolize` if [ "$tmp" = "" ]; then echo "ERROR: You need to install libtool!" exit 1 fi autoreconf -i intltoolize if test -z "$NOCONFIGURE"; then ./configure "$@" fi lwindolf-liferea-508e7a9/configure.ac000066400000000000000000000054631451527772200176130ustar00rootroot00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([liferea],[1.15.4],[liferea-devel@lists.sourceforge.net]) AC_CANONICAL_HOST AC_CONFIG_SRCDIR([src/feedlist.c]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([1.11 foreign std-options -Wall -Werror]) AM_SILENT_RULES([yes]) dnl Needed for automake 1.12 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) AC_PREREQ(2.59) LT_INIT IT_PROG_INTLTOOL([0.40.4]) AC_PROG_CC AM_PROG_CC_C_O AC_PROG_MAKE_SET AC_SYS_LARGEFILE GLIB_GSETTINGS AC_CHECK_FUNCS([strsep]) PKG_PROG_PKG_CONFIG() ################################################################################ # Mandatory library dependencies pkg_modules=" gtk+-3.0 >= 3.22.0 glib-2.0 >= 2.68.0 gio-2.0 >= 2.50.0 pango >= 1.4.0 libxml-2.0 >= 2.6.27 libxslt >= 1.1.19 sqlite3 >= 3.7.0 gmodule-2.0 >= 2.0.0 gthread-2.0 libsoup-3.0 >= 3.2 webkit2gtk-4.1 json-glib-1.0 gobject-introspection-1.0 gsettings-desktop-schemas libpeas-1.0 >= 1.0.0 libpeas-gtk-1.0 >= 1.0.0 fribidi >= 0.19.7" ################################################################################ PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_CHECK_LIB(glib-2.0, g_memdup2, [PACKAGE_CFLAGS="$PACKAGE_CFLAGS -DHAVE_G_MEMDUP2"]) AC_CHECK_LIB(glib-2.0, g_time_zone_new_identifier, [PACKAGE_CFLAGS="$PACKAGE_CFLAGS -DHAVE_G_TIME_ZONE_NEW_IDENTIFIER"]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) PKG_CHECK_MODULES([WEB_EXTENSION], [ webkit2gtk-web-extension-4.1 ]) AC_SUBST([WEB_EXTENSION_CFLAGS]) AC_SUBST([WEB_EXTENSION_LIBS]) uname=`uname` AC_DEFINE_UNQUOTED(OS, $uname, [defines a OS version string, used for OS specific code]) AC_DEFINE_UNQUOTED(OSNAME, "$uname", [defines a OS version string, used for the user agent string]) AC_MSG_RESULT(user agent OS = $uname) ################################################################################ # Plugins via Introspection GOBJECT_INTROSPECTION_CHECK([0.9.3]) ################################################################################ AM_GLIB_GNU_GETTEXT GETTEXT_PACKAGE=liferea AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["${GETTEXT_PACKAGE}"], [gettext domain]) AC_CONFIG_FILES([ Makefile net.sf.liferea.gschema.xml src/Makefile src/webkit/Makefile src/webkit/web_extension/Makefile src/parsers/Makefile src/fl_sources/Makefile src/ui/Makefile src/tests/Makefile doc/Makefile doc/html/Makefile xslt/Makefile man/Makefile man/it/Makefile pixmaps/Makefile pixmaps/16x16/Makefile pixmaps/22x22/Makefile pixmaps/24x24/Makefile pixmaps/32x32/Makefile pixmaps/48x48/Makefile pixmaps/scalable/Makefile opml/Makefile glade/Makefile po/Makefile.in src/liferea-add-feed ]) AC_OUTPUT echo echo "$PACKAGE $VERSION" echo eval eval echo Liferea will be installed in $bindir. echo echo configure complete, now type \'make\' echo lwindolf-liferea-508e7a9/css/000077500000000000000000000000001451527772200161055ustar00rootroot00000000000000lwindolf-liferea-508e7a9/css/liferea.css000066400000000000000000000124111451527772200202250ustar00rootroot00000000000000/** * @file liferea.css Liferea rendering stylesheet * * Copyright (C) 2004-2020 Lars Windolf * Copyright (C) 2004 delusional * * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* Font Definitions: ================= No style definition should set absolute font sizes, font families or line heigth and spacing. This is to allow a GNOME preference controlled default font size. Color Definitions: ================== To allow using GTK theme colors the following key words will be replaced with the corresponding GTK theme color values: GTK-COLOR-FG GTK-COLOR-BG GTK-COLOR-LIGHT GTK-COLOR-DARK GTK-COLOR-MID GTK-COLOR-BASE GTK-COLOR-TEXT GTK-COLOR-NORMAL-LINK GTK-COLOR-VISITED-LINK */ body { background: #GTK-COLOR-BASE; color: #GTK-COLOR-TEXT; padding:0; margin:0; } blockquote { border-left: 3px solid #GTK-COLOR-DARK; background: #GTK-COLOR-BG; padding: 6px; font-style: italic; margin: 5px 20px; clear:both; } a { color: #GTK-COLOR-NORMAL-LINK; } a:visited { color: #GTK-COLOR-VISITED-LINK; } dd { padding-left: 30px; } section, div.content svg, div.content * img { max-width: 100%; height: auto !important; } figure, iframe { max-width: 100%; box-sizing: border-box; /* Note: object-fit would be best practice here, but it fails on embedded Youtube videos (pushing the embed iframe far to the right with the controls being not in the place visually shown) */ } div.content * img { border:0; margin:2px; } div.content img.thumbnail { border:0; margin-right:12px; } img.gravatar { /* gravatars have align="left" so we need proper margin */ margin-right:12px; } #map img { /* OpenStreeMap map tiles must have no border */ border:0px; margin:0px; } /* styles for the item description (currently also used for the feed description) */ table.itemhead, table.feedhead { margin:0; width:100%; border:0; border-bottom: 2px solid #GTK-COLOR-DARK; clear:both; color:#GTK-COLOR-TEXT; } .itemhead, .feedhead { background-color: #GTK-COLOR-MID; } table.itemhead * a.itemhead { text-decoration:none; color:#GTK-COLOR-TEXT; font-weight:bold; } table.itemhead * td { padding-top: 4px; } td.head_favicon { width: 20px; padding-left: 10px; vertical-align: middle; } td.head_title { padding:2px 5px; width: 100%; vertical-align: middle; } table.headmeta { background:#GTK-COLOR-BG; width:100%; border:0; border-bottom:#GTK-COLOR-MID solid 1px; margin:0; } table.headmeta td { padding:1px 6px 1px 12px; font-size:0.9em; } .hidden { visibility:hidden; display:none; } .author, .categories, .source { padding:0; margin-left:0; margin-right:12px; } .date { white-space:nowrap; text-align:right; padding-right:5px; } div.content, div.item_comments { padding:0px 6px 0px 12px; } div.comment { border:1px solid #GTK-COLOR-DARK; margin-bottom:5px; } div.comment_body { padding-left:6px; padding-right:6px; } div.comment_title { padding-left:6px; padding-right:6px; font-weight:bold; background:#GTK-COLOR-BG; } a.favicon { text-decoration:none; } a.favicon img { width:16px; border:0; margin:0; padding:0; } /* style for the feed fetch error box at the beginning of the feed description and for item comment feeds */ #errors { border:0; border-bottom:1px solid black; margin:12px 24px; padding:12px; background:#ffa; color:black; border:1px solid #GTK-COLOR-DARK; } #errors ul { list-style-type: none; padding-inline-start: 15px; } #errors * li { padding:1px; } pre.errorOutput { margin:10px 15px; padding:5px; border:2px solid #GTK-COLOR-DARK; background:#GTK-COLOR-LIGHT; overflow:auto; } del { text-decoration: line-through; } ins { text-decoration: underline; } /* namespace specific styles */ .slash { background:#60A080; padding-left:5px; padding-right:5px; } .slashSection, .slashDepartment { padding-right:2px; color:black; } .slashValue { padding-right:6px; color:white; font-weight:bold; } div.photoheader { margin:10px 0; padding-left:10px; padding-right:10px; background-color:#GTK-COLOR-DARK; color:#GTK-COLOR-TEXT; } .video-embed { position: relative; max-width: 700px; width: 100%; margin-bottom: 10px; } .video-embed .thumb { max-width: 700px; width: 100%; } .video-embed .play-btn { position: absolute; max-width: 700px; width: 100px; height: 100px; left: 50%; top: 50%; transform: translate(-50%, -50%); } .video-embed .play-btn svg { transition: all .3s ease; fill: #fff; } .video-embed .play-btn:hover svg, .video-embed .play-btn:focus svg { cursor: pointer; fill: #ddd; } lwindolf-liferea-508e7a9/css/user.css000066400000000000000000000050561451527772200176030ustar00rootroot00000000000000/** This is a template file which you can use to redefine the Liferea CSS definitions use to render items. Below you find empty class definitions including comments describing what they are used for. Before you start customizing... Reloading: ========== For performance reasons Liferea will read this CSS file only on startup. So when you modify it please restart Liferea for changes to take effect. About Font Definitions: ======================= You should avoid setting absolute font sizes. This allows Liferea to follow the GNOME font and font size. Use relative definitions instead (e.g. "1.2em" or "0.8em"). Color Definitions: ================== Try to reuse GTK theme colors. Liferea uses the following definitions and will be replace them on the fly: GTK-COLOR-FG GTK-COLOR-BG GTK-COLOR-LIGHT GTK-COLOR-DARK GTK-COLOR-MID GTK-COLOR-BASE GTK-COLOR-TEXT GTK-COLOR-NORMAL-LINK GTK-COLOR-VISITED-LINK Inspecting the HTML: ==================== If the definitions below do not help you, run Liferea with the parameter "--debug-html". Then Liferea will dump HTML into ~/.cache/liferea/output.xhtml each time it renders an item or a feed. So you can check for style classes and the layout you want to affect. */ /* Item display rendering header table (with title, categories...) */ // table.itemhead { } /* Feed display rendering header table (with title, categories...) */ // table.feedhead { } /* 1st of feed/item table display containing favicon */ // td.head_favicon { } // a.favicon { } // a.favicon img { } /* 2nd of feed/item table display containing title */ // td.head_title { } /* Metadata display table (inside header table) */ // table.headmeta { } /* Header table fields to different item metadata */ // .author, .categories, .source { } // .date { } /* Image resizing to fit HTML view */ // section, div.content svg, div.content * img { } /* Resizing for video embeds */ // figure, iframe { } /* Item/feed description */ // div.content { } /* Comment rendering */ // div.comment { } // div.comment_body { } // div.comment_title { } /* Styles for the feed fetch error box at the beginning of the feed description and for item comment feeds */ // #errors { } // pre.errorOutput { } /* namespace specific styles */ /* Gravatar embedding */ // img.gravatar { } /* OpenStreeMap embedded map*/ // #map img { } /* Slashdot Header */ // .slash { } // .slashSection, .slashDepartment { } // .slashValue { } lwindolf-liferea-508e7a9/doc/000077500000000000000000000000001451527772200160625ustar00rootroot00000000000000lwindolf-liferea-508e7a9/doc/Doxyfile000066400000000000000000001313671451527772200176030ustar00rootroot00000000000000# Doxyfile 1.3.6-20040222 # 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 #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = Liferea # 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 = 1.1 # 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 = # 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: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # 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. It is allowed to use relative paths in the argument list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_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 the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_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 DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = 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 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 # 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 = 8 # 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 = YES # 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 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 #--------------------------------------------------------------------------- # 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 = NO # 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 # 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 = NO # 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 # 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 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_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 = YES # 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 #--------------------------------------------------------------------------- # 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 # 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. 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 # 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 FILE_PATTERNS = *.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 = ../src/scripting/liferea_wrap.h ../src/ui/eggtrayicon.c ../src/ui/eggtrayicon.h ../src/net ../src/parsers/opml.h ../src/parsers/ocs_ns.h ../src/parsers/ocs_dir.c ../src/parsers/ocs_dir.h ../src/parsers/cdf_channel.h ../src/parsers/cdf_item.h # 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. EXCLUDE_PATTERNS = # 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. INPUT_FILTER = # 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 = NO # 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 (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # 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 = NO # 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 = # 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 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 compressed 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 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 # 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 # If the GENERATE_TREEVIEW tag 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 (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = 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 #--------------------------------------------------------------------------- # 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. 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 = NO # 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 = NO # 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 #--------------------------------------------------------------------------- # 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_PREDEFINED 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. 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 = NO # 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 = YES # 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 = NO # 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 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 = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # 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 tags 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 = YES # 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 # 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 on 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # 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 a graph may be further truncated if the graph's image dimensions are # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). # If 0 is used for the depth value (the default), the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # 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 #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO lwindolf-liferea-508e7a9/doc/Makefile.am000066400000000000000000000000511451527772200201120ustar00rootroot00000000000000EXTRA_DIST = \ Doxyfile SUBDIRS = html lwindolf-liferea-508e7a9/doc/html/000077500000000000000000000000001451527772200170265ustar00rootroot00000000000000lwindolf-liferea-508e7a9/doc/html/Makefile.am000066400000000000000000000043301451527772200210620ustar00rootroot00000000000000html_doc_en = about_en.html \ concepts_en.html \ folders_en.html \ headlines_en.html \ preferences_en.html \ reference_en.html \ searching_en.html \ subscriptions_en.html \ topics_en.html \ updating_en.html \ enclosures_en.html \ newsbin_en.html \ onlineservices_en.html \ faq_en.html html_doc_de = about_de.html \ concepts_de.html \ folders_de.html \ headlines_de.html \ preferences_de.html \ reference_de.html \ searching_de.html \ subscriptions_de.html \ topics_de.html \ updating_de.html \ enclosures_de.html \ newsbin_de.html \ onlineservices_de.html \ faq_de.html html_doc_it = about_it.html \ concepts_it.html \ folders_it.html \ headlines_it.html \ preferences_it.html \ reference_it.html \ searching_it.html \ subscriptions_it.html \ topics_it.html \ updating_it.html \ enclosures_it.html \ newsbin_it.html \ onlineservices_it.html \ faq_it.html html_doc_ru = about_ru.html \ concepts_ru.html \ folders_ru.html \ headlines_ru.html \ preferences_ru.html \ reference_ru.html \ searching_ru.html \ subscriptions_ru.html \ topics_ru.html \ updating_ru.html \ enclosures_ru.html \ newsbin_ru.html \ onlineservices_ru.html \ faq_ru.html html_doc_pictures_en = help_feed_default.png \ help_feed_error.png \ help_folder.png \ help_opml.png \ help_feed_prop_downl_1.6.0.png \ help_feed_prop_cache_1.6.0.png \ help_feed_prop_adv_1.6.0.png \ help_feed_prop_general_1.6.0.png \ help_feed_prop_source_1.6.0.png \ help_item_flag.png \ help_item_unread.png \ help_prefs_browser_1.14.0.png \ help_prefs_enclosures_1.14.0.png \ help_prefs_feeds_1.14.0.png \ help_prefs_folders_1.14.0.png \ help_prefs_desktop_1.14.0.png \ help_prefs_headlines_1.14.0.png \ help_prefs_proxy_1.14.0.png \ help_search_1.6.0.png \ help_subscribe_1.6.0.png \ help_subscribe_adv_1.6.0.png \ help_vfolder_1.6.0.png EXTRA_DIST = $(html_doc_en) \ $(html_doc_de) \ $(html_doc_it) \ $(html_doc_ru) \ $(html_doc_pictures_en) \ reference.css htmldoc_DATA = $(html_doc_en) \ $(html_doc_de) \ $(html_doc_it) \ $(html_doc_ru) \ $(html_doc_pictures_en) \ reference.css htmldocdir = $(datadir)/liferea/doc/html lwindolf-liferea-508e7a9/doc/html/about_de.html000066400000000000000000000031011451527772200214710ustar00rootroot00000000000000 Einleitung

Über Liferea

Liferea ist ein News Aggregator für Online News Feeds. Es gibt viele andere Programme, aber diese sind entweder nicht für Linux verfügbar oder benötigen viele Zusatzbibliotheken. Liferea versucht diese Lücke zu schließen und ein möglichst schneller, einfach zu benutzender und einfach installierbarer News Aggregator für GTK/GNOME zu sein.

Bei Interesse an der neuesten Liferea Version, bei Programmfehlern oder dem Wunsch nach neuen Features lohnt sich ein Besuch der GitHub Projekt Seite (Sprache Englisch)! Alternativ lohnt sich auch das Mitlesen der liferea-devel Mailingliste. Hinweise zur Mailinglisste finden sich auf der SourceForge Infoseite.

lwindolf-liferea-508e7a9/doc/html/about_en.html000066400000000000000000000027711451527772200215170ustar00rootroot00000000000000 Introduction

About Liferea

Liferea is a simple desktop news aggregator for online news feeds. There are many other news readers available, but these others are not available for Linux or require many extra libraries to be installed. Liferea tries to fill this gap by creating a fast, easy to use, easy to install news aggregator for GTK/GNOME.

If you are interested in the most recent Liferea version, want to submit a bug or request a feature you may want to visit our GitHub project page! You are also invited to join the liferea-devel mailing list. Details on the list are located at the SourceForge list info page.

lwindolf-liferea-508e7a9/doc/html/about_it.html000066400000000000000000000032211451527772200215200ustar00rootroot00000000000000 Introduzione

A proposito di Liferea

Liferea è un semplice aggregatore di news desktop per notiziari online. Sono disponibili molti altri lettori di news, ma questi non sono disponibili per Linux o richiedono molte librerie aggiuntive per essere installati. Liferea cerca di riempire tale spazio creando un aggregatore di news per GTK/GNOME che sia veloce, amichevole e facile da installare.

Se sei interessato alla versione più recente di Liferea, desideri inviare una segnalazione di bug o richiedere una funzionalità potresti voler visitare la nostra pagina di progetto su GitHub! Sei anche invitato ad unirti alla mailing list liferea-devel. I dettagli sulla lista si trovano nella pagina informativa della lista su SourceForge.

lwindolf-liferea-508e7a9/doc/html/about_ru.html000066400000000000000000000043451451527772200215420ustar00rootroot00000000000000 Введение

О программе Liferea

Liferea — простой настольный агрегатор новостей для чтения новостных каналов. Существует немало других программ для чтения новостей, однако другие программы либо несовместимы с Linux, либо требуют установки большого количества дополнительных библиотек. Liferea был создан для восполнения этого пробела в виде быстрого, удобного, простого в установке агрегатора новостей для GTK/GNOME.

Установить самую последнюю версию Liferea, отправить сообщение об ошибке или запрос на разработку функциональной возможности можно на Странице нашего проекта на GitHub! Также предлагаем подписаться на почтовую рассылку liferea-devel. Подробная информация по рассылке представлена на Информационной странице рассылки на SourceForge.

lwindolf-liferea-508e7a9/doc/html/concepts_de.html000066400000000000000000000141201451527772200222000ustar00rootroot00000000000000 Basic Concepts

This section tries to clarify some of the technical jargon used along with feed readers.

What does "online/offline desktop" news aggregator mean?

Feed readers or news aggregators can be realised as web applications or as desktop applications. The place of execution (your computer vs. some webserver) implies certain advantages and disadvantages.

A desktop news aggregator runs on your own PC and stores aggregated feeds locally. It accesses each news feed and downloads its newest headlines periodically. Note that not all desktop news aggregators can work offline. Some desktop aggregators retrieve feeds each time you access them instead of caching them for later use. Liferea as an offline capable desktop aggregator caches feeds and is suitable for use with portable devices (laptops, hand helds...) that do not have a permanent internet connection.

  • Disadvantages:
    • No implicit state synchronization when used from different client machines
    • Higher bandwidth usage compared to online aggregators
    • Need to be installed on each client machines
    • OS-dependant
  • Advantages:
    • Your cached feed contents are saved on your own (secure) machine.
    • Your cached feed contents are searchable locally with other tools (e.g. Beagle)
    • Your feed list is not accessible to 3rd parties
    • Each feed access are done in private.

A online news aggregator (for example TheOldReader) is run on a remote webserver which you can access from everywhere as long as you have network access. When you log in to the online news aggregator it usually doesn't need to fetch the most recent headlines of you feed subscriptions because it implements feed caching to save bandwidth.

  • Disadvantages:
    • You rely on some 3rd party vendor for the news aggregator service.
    • Often you have to pay for premium features.
    • No chance to improve/modify/fix the online application.
    • You need a web browser to access it.
  • Advantages:
    • You get the same feed list and feed states no matter from where you access them.
    • Practically no bandwidth usage except for the access of the web interface.
    • Community headline rating systems to categorize content.
    • Sharing headlines with the community (or specific users).

What is a Feed?

For a news aggregator a news feed is a distinct information source. A news aggregator usually retrieves news headlines from many news feed subscriptions. The term "news feed" is not very precise as feeds can also provide weblog postings, podcasts and practically every type of content. The same goes for the term "news headlines": often "article" or "post" would be a better description. Nonetheless the prefix "news" is usually used with the terms "feed", "headline" and "aggregator".

When you add a new subscription then you have to specify the source of the feed so that the news aggregator can initially retrieve it. The feed source is usually a HTTP URL. When updating the news feed the aggregator downloads the document served when accessing this URL. There are several XML-based and XML-like syndication standards (RSS, Atom...) that define how a feed must look like so that the aggregator knows how to interpret the document contents.

As a user you usually do not have to know about the syndication format. You just need to know the source URL of the feed you want to subscribe.

What is the Feed List?

Typical news aggregators present you with a list of your feed subscription. Following the email client interface paradigm the feed list is often presented in the left pane of the news aggregator interface.

Depending on the aggregator you use the feed list might be hierarchically organized using folders or categories.

What is a Headline?

When a news aggregator updates a news feed it download the source document from the source URL of the feed subscription. This source document provides a set of the most recent headlines which then need to be merged against the current feed cache of the aggregator because the set of headlines provided by the feed source changes over time.

Headlines as provided by the feed source are the smallest information unit handled by aggregators.

What is the Item List?

In Liferea headlines are also called items and are presented in the so called item list. Following the email client paradigm the item list is often presented in the upper right pane in the news aggregator interface.

lwindolf-liferea-508e7a9/doc/html/concepts_en.html000066400000000000000000000130411451527772200222130ustar00rootroot00000000000000 Basic Concepts

This section tries to clarify some of the technical jargon used along with feed readers.

What does "online/offline desktop" news aggregator mean?

Feed readers or news aggregators can be realised as web applications or as desktop applications. The place of execution (your computer vs. some webserver) implies certain advantages and disadvantages.

A desktop news aggregator runs on your own PC and stores aggregated feeds locally. It accesses each news feed and downloads its newest headlines periodically. Note that not all desktop news aggregators can work offline. Some desktop aggregators retrieve feeds each time you access them instead of caching them for later use. Liferea as an offline capable desktop aggregator caches feeds and is suitable for use with portable devices (laptops, hand helds...) that do not have a permanent internet connection.

  • Disadvantages:
    • No implicit state synchronization when used from different client machines
    • Higher bandwidth usage compared to online aggregators
    • Need to be installed on each client machines
    • OS-dependant
  • Advantages:
    • Your cached feed contents are saved on your own (secure) machine.
    • Your cached feed contents are searchable locally with other tools (e.g. Beagle)
    • Your feed list is not accessible to 3rd parties
    • Each feed access are done in private.

A online news aggregator (for example TheOldReader) is run on a remote webserver which you can access from everywhere as long as you have network access. When you log in to the online news aggregator it usually doesn't need to fetch the most recent headlines of you feed subscriptions because it implements feed caching to save bandwidth.

  • Disadvantages:
    • You rely on some 3rd party vendor for the news aggregator service.
    • Often you have to pay for premium features.
    • No chance to improve/modify/fix the online application.
    • You need a web browser to access it.
  • Advantages:
    • You get the same feed list and feed states no matter from where you access them.
    • Practically no bandwidth usage except for the access of the web interface.
    • Community headline rating systems to categorize content.
    • Sharing headlines with the community (or specific users).

What is a Feed?

For a news aggregator a news feed is a distinct information source. A news aggregator usually retrieves news headlines from many news feed subscriptions. The term "news feed" is not very precise as feeds can also provide weblog postings, podcasts and practically every type of content. The same goes for the term "news headlines": often "article" or "post" would be a better description. Nonetheless the prefix "news" is usually used with the terms "feed", "headline" and "aggregator".

What is a Subscription?

When you add a new feed then you have to specify the source of the feed, so that the news aggregator can initially retrieve it. The feed source is usually a HTTP URL. This URL with optional authentication and proxy settings is a "subscription" managed by Liferea.

What is the Feed List?

To manage and easily navigate your subscriptions Liferea provides you with a hierarchic tree of your subscriptions. Similar to email clients the "feed list" is located in the left pane. You can organize your subscription after topics in different folders.

What is a Headline?

When a news aggregator updates a news feed it downloads the source document from the source URL of the feed subscription. This source document provides a set of the most recent headlines which then need to be merged against the current feed cache of the aggregator because the set of headlines provided by the feed source changes over time.

Headlines as provided by the feed source are the smallest information unit handled by aggregators.

What is the Item List?

In Liferea headlines are also called items and are presented in the so called item list. Following the email client paradigm the item list is often presented in the upper right pane in the news aggregator interface.

lwindolf-liferea-508e7a9/doc/html/concepts_it.html000066400000000000000000000141211451527772200222250ustar00rootroot00000000000000 Concetti di Base

Questa sezione cerca di chiarire parte del gergo tecnico usato nei lettori di news.

Cosa significa aggregatore di news "desktop online/offline"?

I lettori o aggregatori di news possono essere realizzati come applicazioni web o desktop. Il luogo di esecuzione (il tuo computer piuttosto che qualche server web) porta certi vantaggi e svantaggi.

Un aggregatore di news desktop viene eseguito sul tuo PC e conserva localmente i notiziari aggregati. Esso accede ad ogni notiziario e scarica periodicamente i suoi titoli più recenti. Nota che non tutti gli aggregatori di news desktop possono funzionare offline. Alcuni aggregatori di news desktop scaricano i notiziari ogni volta che li usi invece che conservarli per l'uso successivo. Liferea in quanto aggregatore desktop che supporta l'offline conserva i notiziari ed è adatto all'uso con i dispositivi portatili (laptops, handhelds...) che non hanno una connessione internet permanente.

  • Svantaggi:
    • Nessuna sincronizzazione dello stato implicita quando utilizzato da macchine client diverse
    • Maggiore utilizzo della larghezza di banda rispetto agli aggregatori online
    • Necessità di essere installato su ogni computer client
    • Dipende dal Sistema Operativo
  • Vantaggi:
    • I contenuti del notiziario vengono memorizzati sul tuo computer (sicuro).
    • I contenuti del notiziario memorizzati sono ricercabili localmente con altri strumenti (es. Beagle)
    • Il tuo elenco dei notiziari non è accessibile a terze parti.
    • Ogni accesso al notiziario viene effettuato in privato.

Un aggregatore di news online (per esempio TheOldReader) viene eseguito in un server web remoto cui puoi accedere da ogni dove fintanto che hai accesso alla rete. Quando accedi all'aggregatore di news online esso in genere non necessita di scaricare le versioni più recenti dei titoli dei tuoi abbonamenti alle news perché implementa la memorizzazione dei notiziari per salvare banda di rete.

  • Svantaggi:
    • Ti affidi a un fornitore di terze parti per il servizio di aggregazione di notizie.
    • Spesso devi pagare per le funzionalità premium.
    • Nessuna possibilità di migliorare/modificare/aggiustare l'applicazione online.
    • Hai bisogno di un browser web per accedervi.
  • Vantaggi:
    • Ottieni lo stesso elenco di notiziari e gli stessi stati dei notiziari, indipendentemente da dove accedi.
    • Praticamente nessun utilizzo di banda se non per l'accesso all'interfaccia web.
    • Sistemi comunitari di classificazione dei titoli per classificare i contenuti.
    • Condivisione dei titoli con la comunità (o utenti specifici).

Cos'è un Notiziario?

Per un aggregatore di notizie un notiziario è una fonte di informazione distinta. Un aggregatore di notizie in genere scarica i titoli delle notizie da molti abbonamenti ai notiziari. Il termine "notiziario" non è molto preciso perché le fonti possono anche fornire post di weblog, podcasts e praticamente ogni tipo di contenuto. Lo stesso vale per il termine "titolo del notiziario": spesso "articolo" o "post" sarebbe una descrizione migliore. Tuttavia il termine "notizia" è generalmente usato assieme ai termini "fonte", "titolo" e "aggregatore".

Cos'è un Abbonamento?

Quando aggiungi un notiziario devi specificare la fonte del notiziario, affinché l'aggregatore di notizie possa scaricarlo per la prima volta. La fonte è in genere un URL HTTP. Questo URL con impostazioni opzionali di autenticazione e proxy è un "abbonamento" gestito da Liferea.

Cos'è L'elenco dei Notiziari?

Per gestire e sfogliare facilmente i tuoi abbonamenti Liferea ti offre un albero gerarchico dei tuoi abbonamenti. In modo simile ai client email, l' "elenco dei notiziari" si trova nel pannello di sinistra. Puoi organizzare gli abbonamenti secondo argomenti in differenti cartelle.

Cos'è un Titolo?

Quando un aggregatore di news aggiorna un notiziario scarica il documento sorgente dall'URL della fonte del notiziario. Questo documento sorgente dà un insieme dei titoli più recenti che poi dovrà essere integrato nella memoria dei notiziari dell'aggregatore perché l'insieme dei titoli forniti dal documento fonte cambia nel tempo.

I titoli forniti dalla fonte del notiziario sono l'unità di informazione minima gestita dagli aggregatori.

Cos'è la Lista degli Oggetti?

In Liferea i notiziari sono chiamati anche oggetti e vengono presentati nella così detta lista degli oggetti. Seguendo il paradigma dei client email la lista degli oggetti è spesso presentata nel pannello in alto a destra nell'interfaccia dell'aggregatore di notizie.

lwindolf-liferea-508e7a9/doc/html/concepts_ru.html000066400000000000000000000245021451527772200222430ustar00rootroot00000000000000 Основные понятия

Этот раздел содержит разъяснения по некоторым техническим терминам, использующимся при работе с программным обеспечением для чтения новостных каналов.

Что означает настольный агрегатор новостей «для работы в сетевом и автономном режиме»?

Программы для чтения новостных каналов или агрегаторы новостей могут быть реализованы в виде веб-приложений или настольных программ. Фактическое место выполнения программы (локальный компьютер или веб-сервер) имеет свои преимущества и недостатки.

Настольный агрегатор новостей выполняется на локальном компьютере и сохраняет сводку новостных каналов локально. Он периодически подключается к каждому новостному каналу и загружает заголовки самых свежих новостей. Здесь важно понять, что не все агрегаторы новостей могут работать в автономном режиме. Некоторые настольные агрегаторы каждый раз загружают новости заново, не записывая их в кэш для последующего использования. Поскольку в Liferea реализована возможность автономной работы, настольный агрегатор кэширует ленты каналов и может использоваться с переносными устройствами (ноутбуками, карманными компьютерами...), которые не имеют постоянного подключения к Интернету.

  • Недостатки:
    • Отсутствие синхронизации состояния при использовании программы на разных клиентских машинах
    • Увеличенный расход трафика по сравнению с сетевыми агрегаторами
    • Необходимость установки программы на каждую клиентскую машину
    • Зависимость от установленной операционной системы
  • Преимущества:
    • Локальное сохранение кэшированных каналов на (безопасном) компьютере.
    • Возможность локального поиска по содержимому кэшированных каналов с помощью других инструментов (например, Beagle)
    • Отсутствие доступа третьей стороны к списку каналов
    • Конфиденциальный доступ к каналам.

Сетевые агрегаторы новостей (например, TheOldReader) работают удалённо на веб-сервере, доступ к которому осуществляется удалённо при наличии доступа к Интернету. При авторизации в сетевом агрегаторе новостей обычно отсутствует необходимость загрузки заголовков самых последних новостей каналов подписки, поскольку используется кэширование канала для экономии трафика.

  • Недостатки:
    • Необходимость полагаться на стороннего разработчика при использовании службы новостных каналов.
    • Часто взыскание платы за подключение премиальных функций.
    • Отсутствие возможности внесения улучшений/изменений/исправлений в работу веб-приложения.
    • Необходимость использования веб-браузера для доступа к веб-приложению.
  • Преимущества:
    • Содержимое и состояние списка новостей не зависит от формата доступа.
    • Практически отсутствует расход трафика, за исключением доступа к веб-интерфейсу.
    • Наличие системы рейтинга заголовков сообщества для классификации содержимого.
    • Возможность делиться новостями с сообществом (для некоторых пользователей).

Что такое новостной канал?

Для агрегатора новостей новостной канал представляет собой отдельный источник информации. Агрегатор новостей обычно получает заголовки новостей от нескольких новостных каналов подписок. Термин «новостной канал» не очень точен, так как каналы также могут загружать публикации блогов, подкастов и практически любые виды веб-информации. То же самое можно сказать и о термине «новостные заголовки»: часто слова «статья» или «пост» лучше подходят для описания данного термина. Однако сочетания слов «новость», «новостной» со словами «канал», «заголовок» и «агрегатор» традиционно используются для описания данного явления.

Что такое подписка?

При добавлении нового канала необходимо указать его источник, чтобы агрегатор новостей смог выполнить начальную загрузку. Источник канала обычно представляет собой URL-адрес HTTP. Этот URL-адрес с необязательными параметрами настройки аутентификации и прокси-сервера называют «подпиской», которой управляет Liferea.

Что такое список каналов?

Для упрощения навигации и управления подписками Liferea выстраивает иерархическое дерево подписок. По аналогии с клиентами электронной почты «список каналов» располагается с левой стороны окна программы, что позволяет организовать подписки по темам в различных папках.

Что такое заголовок?

При обновлении новостного канала агрегатор новостей, загружает исходный документ с URL-адреса источника подписки канала. Этот исходный документ представляет собой список самых свежих заголовков, который должен быть объединён с кэшем канала агрегатора, потому что список заголовков канала постоянно изменяется.

Заголовки, предоставляемые источником канала, являются наименьшим элементом структуры информации, обрабатываемой агрегатором.

Что такое список новостей?

В Liferea заголовки называются также новостями и представлены в так называемом списке новостей. По аналогии с клиентами электронной почты список новостей отображается в верхней правой панели интерфейса агрегатора новостей.

lwindolf-liferea-508e7a9/doc/html/enclosures_de.html000066400000000000000000000067611451527772200225600ustar00rootroot00000000000000 Enclosures/Podcasting

Enclosures/Podcasting

Worum geht es hier eigentlich?

Viele Weblogs und News Feeds wollen mehr als nur ASCII oder HTML formatierte Artikel bieten. Ein Weblog-Autor möchte zum Beispiel seine täglichen Erlebnisse aufnehmen und als Audio Daten (meist MP3) im Weblog und dem zugehörigen News Feed den Lesern anbieten. Das ermöglichen sogenannte Enclosures. Ein Enclosure an einer Schlagzeile hinzuzufügen bedeutet der Schlagzeile eine URL beizugeben, die eine Applikation wie Liferea herunterladen und mit einem passendem Medienplayer abspielen kann.

Feeds mit Audioinhalten werden oft als Podcasts bezeichnet. Das Publizieren solchen Inhalts wird Podcasting genannt. Die Wikipedia Seite über Podcasting ist ein guter Startpunkt um mehr darüber zu erfahren.

Das Anbieten von Audioinhalten ist zwar am weitesten verbreitet aber es sind auch Feeds denkbar die Bilder, Torrents oder Videos einbinden. Praktisch jedes Datenformat ist möglich.

Wie Liferea Enclosures herunterlädt

Standardmäßt lädt Liferea Enclosures nicht automatisch herunter. Es ist jedoch möglich für jedes Feed einzeln das automatische Herunterladen zu aktivieren. Wird ein neues Enclosure erkannt startet Liferea den Download mit dem in den Einstellungen konfigurierten Download Tool. Alle heruntergeladenen Dateien werden im ebenfalls in den Einstellungen konfigurierbaren Download-Verzeichnis abgelegt. Heruntergeladene Dateien werden nach dem Abspielen nicht automatisch gelöscht!

Natürlich können die Enclosures auch manuell heruntergeladen werden. Dazu wählt man die entsprechende Schlagzeilen aus und klickt den Pfeil links des Enclosures an um dessen Kontextmenü zu öffnen. Dieses bietet zwei Menüpunkte. Der erste lädt das Enclosure herunter und lädt es mit dem entsprechenden Medienplayer. Mit dem zweiten Menüpunkt kann die Datei einfach nur in ein angegebenes Verzeichnis gesichert werden.

Wie Liferea Enclosures abspielt

Nach dem Herunterladen eines Enclosures versucht Liferea dieses entsprechend des MIME Typs oder der Dateiendung zu öffnen. Die Anwendung zum Anzeigen oder Abspielen der heruntergeladenen Datei kann in den Einstellungen konfiguriert werden. Hinweis: Es hängt vom Feed ab ob der MIME Typ für das Starten des konfigurierten Abspielprogrammes verfügbar ist oder nur die Dateiendung verwendet werden kann.

lwindolf-liferea-508e7a9/doc/html/enclosures_en.html000066400000000000000000000062001451527772200225560ustar00rootroot00000000000000 Enclosures/Podcasting

Enclosures/Podcasting

What is this all about?

Some weblogs and news feeds want to provide you with more than just ASCII text or HTML formatted articles. A weblog author might want to record his daily experiences and publish them as audio data (often MP3) and of course make this available in the weblog's feed too. This is done by adding enclosures to feed items. Adding an enclosure means adding an URL to an item which the feed reader application can download and play with an appropriate media player.

Feeds with audio content are often called podcasts. The act of publishing such content is called podcasting. The Wikipedia page about podcasting is a good start to learn more about this publishing method.

Including audio content might be the most common use case for enclosures but there are other feeds around containing images, torrents or videos. Every data format is thinkable.

How Liferea downloads enclosures

Per default Liferea does not automatically download enclosures. But you can enable auto-downloading for each feed separately. If a new enclosure is found Liferea will then start a download using the configured download method. All downloaded files will be stored into the configured download directory. After viewing the contents you have to delete them manually.

Of course you can also manually download enclosures. To do so open the item with the enclosure and click the arrow to open the enclosure context menu. There are two options. The first one downloads and launches the file while the second option save the file into a specified directory.

How Liferea opens enclosures

After downloading a file Liferea will try to launch the file according to it's MIME type or file extension. The application used to view or play the downloaded file can be configured in the program preferences. Note that it depends on the feed whether you can use MIME types to associate launcher programs or if you must rely on the file extension to do this.

lwindolf-liferea-508e7a9/doc/html/enclosures_it.html000066400000000000000000000065611451527772200226020ustar00rootroot00000000000000 Allegati/Podcasting

Allegati/Podcasting

Di cosa stiamo parlando?

Alcuni weblog e notiziari desiderano offrirti più del solo testo ASCII o articoli formattati in HTML. L'autore di weblog potrebbe voler registrare le proprie esperienze quotidiane e pubblicarle come dati audio (spesso MP3) e ovviamente renderle disponibili anche nel notiziario del weblog. Questo si fa aggiungendo allegati agli oggetti del notiziario. Aggiungere un allegato significa aggiungere un URL verso un oggetto che l'applicazione lettore di notiziari è in grado di scaricare e riprodurre con un riproduttore multimediale appropriato.

I notiziari con contenuti audio sono spesso chiamati podcasts. L'atto di pubblicare tali contenuti viene chiamato podcasting. La pagina di Wikipedia sul podcasting è un buon punto di partenza per imparare di più riguardo a questo metodo di pubblicazione.

Includere contenuti audio potrebbe essere il caso d'uso più comune per gli allegati ma ci sono notiziari in giro che contengono immagini, torrent o video. Qualsiasi formato di dati pensabile.

Come Liferea scarica gli allegati

Di default Liferea non scarica gli allegati automaticamente. Ma tu puoi abilitare l'auto-scaricamento per ciascun notiziario separatamente. Se un allegato viene trovato Liferea allora inizierà a scaricarlo usando il metodo di download configurato. Tutti i file scaricati saranno conservati nella directory di download configurata. Dopo che hai visionato i contenuti li dovrai eliminare manualmente.

Ovviamente puoi anche scaricare manualmente gli allegati. Per farlo apri l'oggetto con l'allegato e clicca sulla freccia per aprire il menu contestuale dell'allegato. Ci sono due opzioni. La prima scarica e lancia il file mentre la seconda opzione salva il file nella directory specificata.

Come Liferea apre gli allegati

Dopo che ha scaricato un file Liferea proverà a lanciare il file in base al suo tipo MIME o alla sua estensione. L'applicazione usata per mostrare o riprodurre il file scaricato può essere configurata nelle impostazioni del programma. Nota che dipende dal notiziario se puoi usare i tipi MIME per associare programmi da lanciare o se devi affidarti all'estensione del file per farlo.

lwindolf-liferea-508e7a9/doc/html/enclosures_ru.html000066400000000000000000000120531451527772200226050ustar00rootroot00000000000000 Вложения/Подкастинг

Вложения/Подкастинг

Что всё это значит?

Иногда блоги и новостные каналы предлагают не только ASCII-текст или статьи в формате HTML. Некоторые блогеры записывают события своей повседневной жизни и публикуют их в виде аудиоданных (часто в формате MP3) и точно так же распространяют их через новостной канал блога. Это делается добавлением вложений к новостям канала. Вложение добавляется в виде URL-адреса элемента, который загружается приложением для чтения новостных каналов, а затем проигрывается в соответствующем проигрывателе мультимедиа.

Каналы с аудиоматериалами часто называют подкастами. Публикация таких материалов называется подкастингом. Ознакомление с этим методом публикации можно начать со страницы Википедии о подкастинге.

Вложение в виде аудиоматериалов является самым распространённым вариантом использования вложений, однако существуют и такие каналы, которые распространяют изображения торренты или видео. Любой формат данных может найти своё применение.

Как Liferea загружает вложения

По умолчанию Liferea не выполняет автоматической загрузки вложений. Однако автозагрузку можно подключить отдельно для каждого канала. В таком случае при обнаружении нового вложения Liferea начинает загрузку с использованием настраиваемого метода загрузки. Все загруженные файлы сохраняются в настраиваемом каталоге загрузки. Удаление содержимого после просмотра выполняется вручную.

Разумеется, вложения можно загружать и вручную. Для этого необходимо открыть новость с вложением и щёлкнуть по стрелочке, чтобы открыть контекстное меню вложения. Это меню содержит два варианта. Первый — выполняет загрузку и открывает файл. Второй — выполняет загрузку и сохраняет файл в заданном каталоге.

Как Liferea открывает вложения

После загрузки файла Liferea пытается открыть файл в соответствии с его MIME-типом или расширением файла. Приложение для просмотра или проигрывания загруженного файла может быть задано в параметрах программы. Здесь важно понимать, что наличие возможности сопоставления файла по MIME-типу или только по расширению файла, определяются настройками канала.

lwindolf-liferea-508e7a9/doc/html/faq_de.html000066400000000000000000000142451451527772200211410ustar00rootroot00000000000000 Liferea FAQ

Hinweis: Diese FAQ ist auch online verfügbar.

Q: Warum funktioniert Flash nicht (mehr)?
A: Automatische Flash-Unterstützung ging leider mit Liferea 1.10, welches erstmal GTK3 nutzt, kaputt wenn es mit einer WebkitGTK3-Version älter als 2.0 verwendet wird. Eine detaillierte Erklärung findet sich hier (Englisch).

Es gibt die folgenden Workarounds:

  1. WebkitGTK3 auf 2.0 oder neuer aktualisieren
  2. nspluginwrapper und das 32bit Flash-Plugin installieren (Anleitung, Englisch)
Q: Wo finde ich die neueste Liferea-Version?
A: Der einfachste Weg ist es das neueste Binär- oder Quellpaket von der GitHub Projekt Homepage herunterzuladen. Noch besser ist es aber Liferea-Pakete der eigenen Linux-Distribution zu verwenden. Eine Liste der Distributionen mit eigene Liferea-Paketen gibt es hier.
Q: Der Download von Anhängen mit Gwget funktioniert nicht!
A: Eine bekannte Ursache für dieses Problem ist Gwget Version 1.0.0 oder 1.0.1, welche eine defekte DBUS API bereitstellt, die es Liferea nicht erlaubt Anhänge an Gwget weiterzugeben. In diesem Falle muß Gwget auf eine neuere Version aktualisiert werden.
Q: Ich benutze Firefox/Seamonkey, und wenn ich Schlagzeilen mit dem Firefox/Seamonkey öffne wird immer dessen Fenster fokussiert.
A: Das ist ein Verhalten von Firefox/Seamonkey. Um es zu ändern muß mit about:config die Einstellung browser.tabs.loadDivertedInBackground auf "true" gestellt werden.
Q: Ich will Cookies!
A: Liferea unterstützt nur Session Cookies beim Abruf von Feeds. Diese werden in ~/.config/liferea/session_cookies.txt gespeichert.
Q: Ich mag die HTML/CSS Styles von Liferea nicht!
A: Jeder kann die Styles ändern. Dazu kann das Stylesheet ~/.config/liferea/liferea.css editiert werden. Die Datei enthält Beschreibungen der verschiedenen verwendeten Klassen so daß es einfacher ist diese zu modifizieren.
Q: Wie kann ich die friends-only Posts von LiveJournal Abonnements sehen?
A: Dazu muß das LiveJournal RSS Feed mit Authentifikation benutzt werden. Z.B. http://www.livejournal.com/users/pigrew/data/rss?auth=digest. In den Abonnement-Eigenschaften muß zusätzlich noch Username und Paßwort des LiveJournal Accounts angegeben werden.
Q: Warum werden manche Schlagzeilen immer wieder als ungelesen angezeigt?
A: Meistens sind fehlerhafte Feeds mit z.B. nicht eindeutigen oder fehlenden Schlagzeilen-Ids der Grund. Hier lohnt es sich, dass entsprechende Feed im Quelltext zu überprüfen und den Autor/Webmaster zu kontakieren. Ist das Feed in Ordnung lohnt es sich einen Eintrag im Liferea Bug Tracker anzulegen.

Hinweis: Dieses Problem haben viele Planet Feeds, die einfach nur die gesammelten Schlagzeilen der aggregierten Feeds anbieten, ohne für eindeutige Schlagzeilen-Ids zu sorgen. In solchen Fällen hat Liferea keine Möglichkeit die Schlagzeilen korrekt zu unterscheiden.
Q: Liferea stürzt laufend ab.
A: Das hören wir oft. Um wirklich helfen zu können benötigen wir aber detaillierte Beschreibungen über die Absturzursache. Stürzt Liferea reproduzierbar ab wollen wir das natürlich unbedingt wissen. Zum Debugging brauchen wir die Ausgaben eines Aufrufes mit dem Schalter "--debug-all" und wenn möglich einem Backtrace. Um einen Backtrace zu erzeugen einfach ein Terminal öffnen und die folgenden zwei Kommandos absetzen: ulimit -c unlimited und dann liferea. So aufgerufen wird Liferea beim Absturz eine core-Datei erzeugen. Diese kann dann mit gdb liferea core geöffnet werden. Gibt man in der gdb Eingabeaufforderung dann bt ein wird der Backtrace des Absturzes ausgegeben.
Q: Warum fehlt Liferea die Funktion X?
A: Wenn du findest das weitere Funktionen in Liferea eingebaut werden sollten beteilige dich bitte an der Weiterentwicklung des Programms. Um weitere Funktionen zu realisieren benötigen wir mehr freiwillige Entwickler!
Q: Was bedeutet "Es traten Fehler beim Parsen des Feeds auf!" und was kann ich dagegen tun?
A: Der Feed-Parser von Liferea erwartet gültiges XML. Enthält ein Feed ungültiges XML, so kommt es zu diesem Fehler. Die Gültigkeit eines Feeds lässt sich mit http://feedvalidator.org/ und http://validator.w3.org/feed/ prüfen.

Häufig lässt sich der fehlerhafte Feed mit Hilfe von xmllint retten. Dazu muss xmllint beim betreffenden Feed in den "Eigenschaften des Abonnements" im Reiter "Quelle" unter "Benutze einen Filter zum Konvertieren" wie folgt gesetzt werden: xmllint --recover -

Hinweis: Unter Debian-basierten Distributionen gehört xmllint zum Paket libxml2-utils.

lwindolf-liferea-508e7a9/doc/html/faq_en.html000066400000000000000000000141611451527772200211500ustar00rootroot00000000000000 Liferea FAQ

Note: This FAQ is also available online.

Q: Why doesn't Flash work (anymore)?
A: Easy flash support broke when Liferea 1.10 which uses GTK3 is used with WebkitGTK3 versions before 2.0. For a detailed explanation read this post.

There are the following known workarounds:

  1. Upgrade WebkitGTK3 to 2.0 or later
  2. Install nspluginwrapper and the 32bit flash plugin (instructions)
Q: Where can I get it?
A: The easiest way is to download the source package from the GitHub project page. But you should also consider checking if your Linux distribution provides an own package for Liferea. A list of all known prebuilt packages is provided in the installation section.
Q: Enclosures download with Gwget doesn't work
A: Most likely you have Gwget 1.0.0 or 1.0.1 installed, and due to a temporary breakage in the dbus API of Gwget these versions don't work with Liferea. Both older and more recent versions of Gwget do work.
Q: I'm using Firefox/Seamonkey, and when opening items in the browser the focus goes to the browser.
A: That's done by your browser. For changing it, open about:config in your browser and set browser.tabs.loadDivertedInBackground to true.
Q: Liferea is buggy! It does not close when I click on the window manager's close button and the tray icon is activated.
A: This is a pretty disputed topic. We see this as a useful feature, other people don't. If you don't like the behaviour you can change it by right-clicking the tray icon and toggling the checkbox labelled "Minimize to tray on close."
Q: I want cookies!
A: Liferea supports only session cookies while downloading feeds. They are stored in ~/.config/liferea/session_cookies.txt
Q: I don't like the HTML/CSS styles Liferea uses!
A: You can have your own stylesheet. Just edit ~/.config/liferea/liferea.css During startup it will be loaded additionally to the default stylesheets so you can modify some or all style definitions. The file contains comments describing the different style so it should be easy to modify them.
Q: How do I see my LiveJournal friend's friends-only entries?
A: Use the authenticated LiveJournal RSS feed. For example use http://www.livejournal.com/users/pigrew/data/rss?auth=digest. You will need to use the feed properties dialog box to set the username and password of your LiveJournal account.
Q: Why do feed items keep being displayed as new?
A: This is usually due to a bad feed which associated a particular ID to multiple items. If you are experienced with syndication formats please check the feed source code. If you find problems please contact the author/webmaster of the feed. If not please submit a bug report including the URL of the problem feed to the Liferea bug tracker.

Note: If you experience this problem with a planet feed the reason might be that the planet feed does not provide unique item ids for one or all off its source feeds. If this is the case Liferea has no chance to match identical items.
Q: Liferea crashes too much.
A: We hear this complaint a lot, but we rarely do not get information on how it crashed. If you find a way to make Liferea crash, we would love to know about it. Please send us a copy of the output of running Liferea with the "--debug-all" flag, plus a backtrace if possible. To create a backtrace, open up a terminal and type two commands: ulimit -c unlimited and then liferea. This causes Liferea to create a core dump when it crashes. Then, run gdb liferea core and type bt at the gdb prompt. This will display the backtrace of the crash, which should be sent along with the bug report.
Q: Why doesn't Liferea have feature X?
A: If you miss a feature in Liferea please consider contributing code to implement the feature! Please also consider that the Liferea project aims to provide a simple feed reader that might lack more complex functionality.
Q: What does "There were errors while parsing this feed!" mean and how can I fix it?
A: The feed parser of Liferea expects valid XML. So, this error happens when a feed contains invalid XML. You can check the validity of a feed with http://feedvalidator.org/ and http://validator.w3.org/feed/.

To fix this problem, you can try to sanitize the XML with xmllint. For this, open the subscription properties of the affected feed and add xmllint as a conversion filter in the source tab like this: xmllint --recover -

Note: On Debian-based distribution xmllint is part of the libxml2-utils package.

lwindolf-liferea-508e7a9/doc/html/faq_it.html000066400000000000000000000155721451527772200211710ustar00rootroot00000000000000 FAQ di Liferea

Nota: Questa FAQ è anche disponibile online.

Q: Perché Flash non funziona (più)?
A: Il supporto ad Easy flash si rompe quando Liferea 1.10 che dipende da GTK3 viene utilizzato con le versioni di WebkitGTK3 precedenti alla 2.0. Per una spiegazione dettagliata leggi questo post.

Sono conosciute le seguenti soluzioni:

  1. Aggiorna WebkitGTK3 alla versione 2.0 o successiva
  2. Installa nspluginwrapper ed il plugin flash a 32bit (istruzioni)
Q: Dove lo posso ottenere?
A: La via più facile è scaricare il pacchetto sorgente dalla pagina del progetto su GitHub. Ma dovresti anche informarti se la tua distribuzione Linux fornisce un proprio pacchetto per Liferea. Una lista di tutti i pacchetti precompilati è fornita nella sezione di installazione.
Q: Il download degli allegati tramite Gwget non funziona.
A: Molto probabilmente hai Gwget 1.0.0 o 1.0.1 installato, ed a causa di un malfunzionamento temporaneo delle API dbus di Gwget queste versioni non funzionano con Liferea. Sia le versioni più vecchie che più recenti di Gwget funzionano.
Q: Sto usando Firefox/Seamonkey, e quando apro i titoli nel browser il focus passa al browser.
A: Questo è effettuato dal tuo browser. Per cambiarlo, apri about:config nel tuo browser ed imposta browser.tabs.loadDivertedInBackground su vero.
Q: Liferea è buggato! Non si chiude quando clicco sul pulsante di chiusura del gestore delle finestre e l'icona nel vassoio di sistema viene attivata.
A: Questo è un tema abbastanza controverso. Noi la vediamo come una caratteristica utile, altre persone no. Se non ti piace il comportamento lo puoi cambiare cliccando con il tasto destro del mouse sull'icona nel vassoio di sistema e attivando la casella di controllo etichettata "Nascondi nel vassoio di sistema alla chiusura."
Q: Voglio i cookies!
A: Liferea supporta solo i cookie di sessione mentre si scaricano i notiziari. Essi vengono conservati in ~/.config/liferea/session_cookies.txt
Q: Non gradisco gli stili HTML/CSS che Liferea utilizza!
A: Puoi avere i tuoi fogli di stile. Ti basta modificare ~/.config/liferea/liferea.css
Durante l'avvio sarà caricato in aggiunta ai fogli di stile predefiniti così che tu possa modificare alcune o tutte le definizioni di stile. Il file contiene commenti che descrivono i differenti stili, così dovrebbe essere facile cambiarli.
Q: Come vedo gli elementi LiveJournal del mio amico che sono stati riservati solo agli amici?
A: Usa il notiziario RSS LiveJournal autenticato. Ad esempio utilizza http://www.livejournal.com/users/pigrew/data/rss?auth=digest. Avrai bisogno di usare la finestra di dialogo delle proprietà del notiziario per impostare il nome utente e la password del tuo account LiveJournal.
Q: Perché gli elementi di un notiziario continuano a essere mostrati come nuovi?
A: Questo è generalmente causato da un notiziario malformato che ha associato un certo ID a elementi multipli. Se hai esperienza con i formati di pubblicazione controlla il codice sorgente del feed. Se trovi problemi contatta l'autore/webmaster del feed. Altrimenti per piacere invia una segnalazione di bug includendo l'URL del notiziario problematico presso il bug tracker di Liferea.

Nota: Se ti capita questo problema con un notiziario planet la ragione potrebbe essere che il notiziario planet non fornisce id unici degli oggetti per uno o per tutti i suoi notiziari sorgente. Se questo è il caso Liferea non potrà mai distinguere oggetti identici.
Q: Liferea va in crash troppo spesso.
A: Sentiamo molto spesso questa lamentela, ma di rado non otteniamo informazioni su come è andato in crash. Se trovi un modo per mandare in crash Liferea, saremmo molto felici di conoscerlo. Per piacere inviaci una copia dell'output dell'esecuzione di Liferea con il parametro "--debug-all", se possibile in aggiunta ad un backtrace. Per creare un backtrace, apri un terminale e scrivi due comandi: ulimit -c unlimited e poi liferea. Ciò spinge Liferea a creare un core dump quando va in crash. Poi, esegui gdb liferea core e scrivi bt nel prompt di gdb. Questo mostrerà il backtrace del crash, che dovrebbe essere inviato assieme alla segnalazione del bug.
Q: Perché Liferea non include la caratteristica X?
A: Se ti manca una caratteristica di Liferea per favore considera di contribuire al codice per implementare la funzionalità! Per piacere prendi anche in considerazione che il progetto Liferea vorrebbe fornire un semplice lettore di news che potrebbe mancare di funzionalità complesse.
Q: Cosa significa "Ci sono stati errori durate l'analisi di questo notiziario!" e come lo posso risolvere?
A: L'analizzatore di notiziari di Liferea si aspetta XML valido. Quindi, questo errore avviene quando un notiziario contiene XML non valido. Puoi controllare la validità di un notiziario con http://feedvalidator.org/ e http://validator.w3.org/feed/.

Per correggere questo problema, puoi provare a sanificare l'XML con xmllint. Per far questo, apri le proprietà dell'abbonamento del notiziario interessato e aggiungi xmllint come filtro di conversione nella scheda fonti in questo modo: xmllint --recover -

Nota: Nelle distribuzioni basate su Debian, xmllint è parte del pacchetto libxml2-utils.

lwindolf-liferea-508e7a9/doc/html/faq_ru.html000066400000000000000000000256731451527772200212060ustar00rootroot00000000000000 Вопросы и ответы о Liferea

Примечание: Вопросы и ответы также доступны онлайн.

Вопрос: Почему (больше) не работает Flash?
Ответ: Упрощённая поддержка Flash сломалась на версии Liferea 1.10, в которой используется GTK3 с WebkitGTK3 версий ниже 2.0. Подробные разъяснения приводятся в этом посте.

Возможны следующие пути решения этого вопроса:

  1. Обновите WebkitGTK3 до версии 2.0 или выше
  2. Установите nspluginwrapper и 32-разрядный модуль flash (указания)
Вопрос: Как получить это приложение?
Ответ: Самый простой вариант — скачать пакет с открытым исходным кодом со страницы проекта на GitHub. Также можно проверить наличие бинарного пакета Liferea в дистрибутиве Linux, установленном на компьютере. Список всех известных бинарных пакетов представлен в разделе установки.
Вопрос: Не работают вложения, загруженные с помощью Gwget
Ответ: Вероятно, на компьютере установлена версия Gwget 1.0.0 или 1.0.1. В связи со временным сбоем в dbus API Gwget эти версии не работают с Liferea. При этом более старые и более новые версии Gwget работают без замечаний.
Вопрос: В системе используются программы Firefox/Seamonkey и при открытии новостей в браузере фокус переходит на браузер.
Ответ: Это происходит в связи с действиями браузера. Для изменения поведения необходимо открыть в браузере страницу about:config и установить параметр browser.tabs.loadDivertedInBackground в значение «true».
Вопрос: Liferea работает нестабильно! Вместо завершения работы программы при нажатии на кнопку закрытия окна диспетчера окон, активируется значок в системном лотке.
Ответ: Это очень спорный вопрос. Нам такая функциональная возможность представляется очень полезной, но другие люди с этим категорически не согласны. Чтобы изменить вышеописанное поведение программы нужно снять флажок «Сворачивать в системный лоток при закрытии» в контекстном меню значка в системном лотке.
Вопрос: Нужны cookie-файлы!
Ответ: При загрузке каналов Liferea поддерживает только сеансовые cookie-файлы. Они хранятся в ~/.config/liferea/session_cookies.txt
Вопрос: Мне не нравятся стили HTML/CSS, которые использует Liferea!
Ответ: Можно задать свои собственные каскадные стили. Для этого необходимо внести изменения в файл ~/.config/liferea/liferea.css Во время загрузки он будет загружен дополнительно к стилям по умолчанию, благодаря чему можно изменить все или только некоторые определения стиля. Файл содержит комментарии с описанием различных стилей, поэтому внести изменения в файл будет несложно.
Вопрос: Как сделать так, чтобы в LiveJournal загружались новости только от друзей моих друзей?
Ответ: Используйте загрузку RSS-каналов LiveJournal с аутентификацией. Например, http://www.livejournal.com/users/pigrew/data/rss?auth=digest. В этом случае в диалоговом окне свойств канала необходимо будет ввести логин и пароль учётной записи LiveJournal.
Вопрос: Почему новости канала продолжают отображаться как новые после прочтения?
Ответ: Обычно это происходит из-за ошибок в самом канале, когда один идентификатор ссылается сразу на несколько новостей. Если вы разбираетесь в форматах синдикации, проверьте исходный код канала и при обнаружении ошибок сообщите о них автору/веб-мастеру канала. Если проблемы не обнаружены, отправьте сообщение об ошибке, включая URL-адрес канала с ошибками, на трекер ошибок Liferea.

Примечание: Если эта проблема возникает с каналом агрегатора новостей Planet, то причина может заключаться в том, что канал Planet не предоставляет уникальный идентификатор для одной или всех новостей вне исходных каналов. Если это так, то Liferea не сможет корректно идентифицировать такие новости.
Вопрос: Liferea нередко завершает работу со сбоем.
Ответ: Подобные жалобы высказываются очень часто, но крайне редко предоставляется конкретная информация о том как это происходит. Если кто-то сможет воспроизвести сбой, то такая информация была бы чрезвычайно полезной. Отправьте нам копию вывода Liferea при запуске с аргументом «--debug-all», а также, по возможности, обратную трассировку. Для создания обратной трассировки необходимо открыть терминал и ввести две команды: ulimit -c unlimited, а затем liferea. При этом Liferea в случае аварийного завершения создаёт дамп ядра. Затем нужно запустить команду gdb liferea core и ввести bt в приглашении gdb. Это позволяет вывести обратную трассировку сбоя, которую нужно отправить вместе с отчётом об ошибке.
Вопрос: Почему в Liferea отсутствует функция X?
Ответ: Если создаётся ощущение, что в Liferea недостаёт какой-то функциональной возможности, попробуйте предоставить свой собственный код для её реализации! Также не забывайте о том, что целью проекта Liferea является разработка простого средства чтения каналов, в котором могут отсутствовать более сложные функциональные возможности.
Вопрос: Что означает сообщение «При обработке этого канала возникли ошибки!» и как можно исправить эту проблему?
Ответ: Для правильной работы обработчика канала Liferea требуется получения допустимого XML-файла. Поэтому, получение недопустимого XML вызывает появление данной ошибки. Проверить правильность канала можно на http://feedvalidator.org/ и http://validator.w3.org/feed/.

Для устранения проблемы необходимо исправить XML с помощью xmllint. Для этого откройте свойства подписки проблемного канала и добавьте xmllint в качестве фильтра преобразования на вкладке источника следующим образом: xmllint --recover -

Примечание: Дистрибутив xmllint на основе Debian включён в пакет libxml2-utils.

lwindolf-liferea-508e7a9/doc/html/folders_de.html000066400000000000000000000071651451527772200220330ustar00rootroot00000000000000 Arbeiten mit Ordnern

Arbeiten mit Ordnern

Dieser Abschnitt beschreibt die Organisation von Abonnements mit Ordnern.

Abonnement Icons

Dieses oder ein ähnliches Icon (abhängig vom GTK-Theme) ist das Standardicon für Ordner.
Dies ist das Standardicon für Abonnements. Zusätzlich unterstützt Liferea auch individuelle Icons die viele Webserver mittels als "favicon.ico" Datei anbieten. Liferea versucht jeweils diese Datei herunterzuladen und als Icon für das entsprechende Abonnement zu verwenden.
Dieses oder ein ähnliches Icon (abhängig vom GTK Theme) ist ein Hinweis auf eines der folgenden Probleme:
  • Das Feed wurde initial noch nicht heruntergeladen.
  • Das letzte Herunterladen des Feeds schlug fehl.
  • Der Inhalt des Feed ist ungültig.

Wie aktualisiert man Abonnements

Es gibt 3 Möglichkeiten Abonnements zu aktualisieren:

  • Indem man "Alle aktualisieren" im "Abonnement" Menü auswählt.
  • Indem man "Abonnement aktualisieren" im Kontextmenü auswählt (Rechts-Klick in der Liste der Abonnements).
  • Indem man "Ordner aktualisieren" im Kontextmenü eines Ordners auswählt in dem das Abonnements enthalten ist.
Die beste Art und Weise ist es aber keine der obigen Möglichkeiten zu nutzen und Liferea die Abonnements einfach regelmäßig automatisch aktualisieren zu lassen. Mehr dazu im Abschnitt über das Aktualisieren von Abonnements.

Wie ändert man die Eigenschaften eines Abonnements

Die Eigenschaften eines Abonnements (Titel, Quelle, Aktualisierungsintervall und Caching-Eigenschaften) können mit dem Menüpunkt "Eigenschaften" aus dem Hauptmenü oder dem Kontextmenü des Abonnements aufgerufen werden. Daraufhin erscheint der Eigenschaften-Dialog. Die dort präsentierten Eigenschaften sind im Abschnitt Abonnements verwalten beschrieben.

Wie entfernt man Abonnements oder Ordner

Um ein Abonnements oder einen Order zu entfernen muß der "Löschen" Menupünkt aus dem Hauptmenü oder dem Kontextmenü des Abonnements aufgerufen werden. Beim Entfernen von Abonnements wird automatisch der gesamte Inhalt des Feeds gelöscht.

Wie ändert man die Sortierung von Abonnements

Zum Umsortieren der Abonnements und Folder zieht man diese mit der Mouse an eine neue Zielposition und läßt sich dort fallen. Während es Ziehens wird ein Einfügecursor an der aktuell ausgewählten Einfügeposition angezeigt.

lwindolf-liferea-508e7a9/doc/html/folders_en.html000066400000000000000000000070371451527772200220430ustar00rootroot00000000000000 Managing Folders

Managing Folders

This section describes how to organize subscriptions into folders.

The Feed List Icons

This icon or a similar icon (because it's GTK theme dependant) is the standard icon for folders.
This is the standard icon for subscriptions. Note that Liferea supports individual icons provided by a "favicon.ico" file on the webserver. Liferea always tries to download this file and use it instead of the default icon.
This is the standard icon for OPML subscriptions.
This icon or a similar icon (because it's GTK theme dependant) may indicate on of the following conditions:
  • That the subscription was not yet downloaded.
  • That the last retrieval failed.
  • That the content of the feed is mal-formed.

How to Update Subscriptions

There are three possibilities to update a feed:

  • Select "Update All" from the "Subscriptions" menu.
  • Select "Update Feed" after right-clicking a subscriptions in the feed list.
  • Select "Update Folder" after right-clicking one of the folders the feed is child of.
But the best way might be to use none of the above. Just let Liferea update your subscription periodically. To learn more about updating read the section on Updating Subscriptions.

How to Change the Properties of a Subscription

To change the properties of a subscription (the title, the source URL, the update interval and cache settings) either select "Properties" from the context menu by right clicking the feed in the feed list or selecting "Properties" from the "Feed" menu. The properties dialog will then appear. The settings of the properties dialog are described in the Managing Subscriptions section.

How to Remove a Subscription or Folder

To remove a feed or folder, just select the "Delete" option either from the feed list context menu or the "Feed" menu after selecting the feed list's entry to delete. When removing feeds, this will remove the feed and all of its cached contents.

How to Reorder Folder Contents

To reorder feed list elements simply drag them with the mouse and drop them into their new destination. A little line is shows where the destination will be while dragging a feed or folder.

lwindolf-liferea-508e7a9/doc/html/folders_it.html000066400000000000000000000077321451527772200220570ustar00rootroot00000000000000 Gestire le Cartelle

Gestire le Cartelle

Questa sezione descrive come organizzare gli abbonamenti nelle cartelle.

Le Icone dell'Elenco Notiziari

Questa icona o un'icona simile (dato che dipende dal tema GTK) è l'icona standard per le cartelle.
Questa è l'icona standard per gli abbonamenti. Nota che Liferea supporta le icone individuali fornite da un file "favicon.ico" sul server web. Liferea cerca sempre di scaricare questo file e lo usa al posto dell'icona predefinita.
Questa è l'icona standard per gli abbonamenti OPML.
Questa icona o un'icona simile (dato che dipende dal tema GTK) può indicare una delle seguenti condizioni:
  • Che l'aggiornamento non è ancora stato scaricato.
  • Che l'ultimo scaricamento è fallito.
  • Che il contenuto del notiziario non è ben formato.

Come Aggiornare gli Abbonamenti

Esistono tre possibilità per aggiornare un notiziario:

  • Selezionare "Aggiorna Tutto" dal menu "Abbonamenti".
  • Selezionare "Aggiorna" dopo aver cliccato con il tasto destro un abbonamento nella lista notiziari.
  • Selezionare "Aggiorna Cartella" dopo aver cliccato con il tasto destro una delle cartelle di cui il notiziario è figlio.
Ma il modo migliore potrebbe essere quello di non utilizzare nessuno dei precedenti. Consenti semplicemente a Liferea di aggiornare il tuo abbonamento periodicamente. Per imparare di più sull'aggiornamento leggi la sezione sull'Aggiornare gli Abbonamenti.

Come Modificare le Proprietà di un Abbonamento

Per modificare le proprietà di un abbonamento (il titolo, l'indirizzo URL della sorgente, l'intervallo di aggiornamento e le opzioni della cache) seleziona "Proprietà" dal menu contestuale cliccando con il tasto destro sul notiziario nella lista dei notiziari oppure seleziona "Proprietà" dal menu "notiziario". A quel punto la finestra delle proprietà apparirà. Le impostazioni della finestra delle proprietà sono descritte nella sezione Gestire gli Abbonamenti.

Come Rimuovere un Abbonamento o una Cartella

Per cancellare un abbonamento o una cartella, ti basta selezionare l'opzione "Elimina" dal menu contestuale della lista notiziari o dal menu "Notiziario" dopo aver selezionato l'elemento da cancellare. Quando rimuovi i notiziari, questo rimuoverà il notiziario e tutti i suoi contenuti memorizzati.

Come Riordinare i Contenuti delle Cartelle

Per riordinare gli elementi della lista dei notiziari trascinali semplicemente con il mouse e lasciali nella loro nuova destinazione. Una piccola linea mostra quale sarà la destinazione mentre trascini un notiziario o una cartella.

lwindolf-liferea-508e7a9/doc/html/folders_ru.html000066400000000000000000000130371451527772200220640ustar00rootroot00000000000000 Управление папками

Управление папками

Этот раздел описывает способы организации подписок по папкам.

Значки списков каналов

Этот значок или похожий на него (зависит от темы GTK) является стандартным значком для папок.
Этот значок является стандартным значком для подписок. Обратите внимание на то, что Liferea поддерживает отдельные значки, представленные файлом «favicon.ico» на веб-сервере. Liferea всегда пытается загрузить этот файл и использовать его вместо значка по умолчанию.
Этот значок является стандартным значком для OPML-подписок.
Этот значок или похожий на него (зависит от темы GTK) может указывать на следующие состояния:
  • Подписка ещё не была загружена.
  • Во время последней загрузки произошёл сбой.
  • Некорректное содержимое канала.

Обновление подписок

Существует три варианта для обновления каналов:

  • Выберите пункт «Обновить всё» из меню «Подписки».
  • Выберите пункт «Обновить» после щелчка правой клавиши мыши по подписке в списке каналов.
  • Выберите пункт «Обновить папку» после щелчка правой клавиши мыши по одной из родительских папок канала.
Однако наилучшим выбором будет не использовать ни один из указанных вариантов, а воспользоваться периодическим обновлением подписок в Liferea. Для получения более подробной информации об обновлении подписок прочитайте раздел Обновление подписок.

Изменение свойств подписки

Для изменения свойств подписки (имени, URL-адреса, интервала обновления и параметров кэша) необходимо либо выбрать пункт «Свойства» из контекстного меню, открывающегося щелчком правой клавиши мыши по каналу в списке каналов, или выбором пункта «Свойства» в меню «Канал». При этом откроется диалоговое окно свойств канала. Параметры диалогового окна свойств канала описаны в разделе Управление подписками.

Удаление подписки или папки

Для удаления подписки или папки необходимо выбрать пункт «Удалить» либо из контекстного меню списка каналов, либо из меню «Канал» после выбора канала для удаления из списка каналов. При удалении каналов удаляются как сами каналы, так и все их кэшированные данные.

Реорганизация содержимого папки

Реорганизация элементов списка каналов выполняется перетаскиванием их мышью в новое место расположения. При перетаскивании канала или папки тонкая линия показывает место будущего расположения.

lwindolf-liferea-508e7a9/doc/html/headlines_de.html000066400000000000000000000133211451527772200223200ustar00rootroot00000000000000 Arbeiten mit Schlagzeilen

Arbeiten mit Schlagzeilen

Liferea kennt zwei Anzeigemodi:

 

   
 
Normale Ansicht (Email Client) - Der rechte obere Bereich enthält eine Liste der Schlagzeilen und der Inhalt der ausgewählten Schlagzeile wird im rechten unteren Bereich angezeigt.

   
Breite Ansicht - In der Mitte findet sich hier die Liste der Schlagzeilen und rechts der Inhalt der ausgewählten Schlagzeile. Diese Ansicht ist gut für breite Bildschirme geeignet.

Zwischen diesen beiden Anzeigemodi in den Einstellungen umgeschaltet werden. Zusätzlich kann "Automatisch" ausgewählt werden, so das der Anzeigemodus dem Verhältnis von Fensterbreite und Fensterhöhe angepaßt wird.

Laden eines Schlagzeilen-Links

Der Link einer ausgewählten Schlagzeile kann mit einem Doppelklick oder Return im Browser geladen werden. Hinweis: nicht jede Schlagzeile bietet einen Link an! Ob sie einen einen anbietet erkannt man daran, daß der Schlagzeilentitel in der Schlagzeilenanzeige als Hyperlink dargestellt ist oder nicht.

Die Konfiguruation des zu benutzenden Browsers ist im Abschnitt Ändern der Einstellungen beschrieben!

Ändern des Lesestatus einer Schlagzeile

Jede Schlagzeile hat einen Lesestatus. Die Titel ungelesener Schlagzeile werden fett dargestellt. Beim Abwählen einer zuvor ungelesenen Schlagzeile ändert sich der Lesestatus auf gelesen und der Titel wird normal dargestellt.

Manchmal will man nicht alle Schlagzeilen durchlesen. Um sie dennoch als ungelesen zu markieren kann der Menüpunkt "Ausgewähtle als gelesen markieren" aus dem Hauptmenü bzw. "Alle als gelesen markieren" aus dem Kontextmenü benutzt werden.

Außerdem gibt es noch die Möglichkeit den Lesestatus einer Schlagzeile zurückzusetzen. Dazu muß der Menupunkt "Lesestatus ändern" aus dem Hauptmenü oder dem Kontextmenü der Schlagzeile ausgewählt werden. Alternativ hilft auch ein Klick auf den Schlagzeilentitel mit der dritten Mousetaste.

Markieren wichtiger Schlagzeilen

Liferea erlaubt das Markieren wichtiger Schlagzeilen. Dies erleichtert das Auffinden der Schlagzeilen und was viel wichtiger ist es verhindert das automatische Entfernen dieser Schlagzeile wenn sie älter wird und aus dem Cache "herausfallen" würde. Um eine Schlagzeile zu markieren muß der Menupunkt "Flagge setzen oder löschen" aus dem Hauptmenü oder dem Kontextmenü der Schlagzeile ausgewählt werden. Alternativ hilft auch ein Klick auf die Flaggenspalte der Schlagzeilenliste mit der dritten Mousetaste.

Dieses Icon haben alle markierten Schlagzeilen.

Zur nächsten ungelesenen Schlagzeile springen

Durch das Anklicken des "Nächste Ungelesene" Buttons in der Toolbar oder durch die Auswahl des Menüpunktes im Hauptmenü oder durch das Drücken des Hotkeys (Ctrl-N) ist es möglich sehr schnell alle neuen Schlagzeilen anzuwählen. Liferea wird nacheinander die verbleibenden ungelesenen Schlagzeilen des ausgewählten Abonnements anspringen und danach die Schlagzeilen aller weiteren Abonnements auswählen.

Nach Schlagzeilen suchen

Liferea erlaubt das Durchsuchen aller Abonnements nach einer Schlagzeile. Dabei kann nach einem Text der entweder im Titel oder Inhalt der Schlagzeile vorkommt gesucht werden. Mehr dazu im Abschnitt Schlagzeilen suchen!

Schlagzeilen entfernen

Durch die Auswahl des Menüpunktes "Lösche alle Schlagzeilen" aus dem Hauptmenü kann der Schlagzeilen-Cache des ausgewählten Abonnements geleert werden. Mit dem Menüpunkt "Ausgewählte löschen" im Hauptmenü oder Kontextmenü der ausgewählte Schlagzeile können auch einzelne Schlagzeilen entfernt werden.

lwindolf-liferea-508e7a9/doc/html/headlines_en.html000066400000000000000000000123171451527772200223360ustar00rootroot00000000000000 Managing Headlines

This section documents all user interaction with headlines. Note: in Liferea headlines are also referred to as items.

Available Viewing Modes

Liferea knows two display modes:

 

   
 
Normal View - Email client like: the upper right pane contains a list of all headlines of the selected feed and the selected headline is shown in the lower right pane.

     
Wide View - 3 panes: the middle pane contains a list of all headlines of the selected feed and the selected headline is shown in the right pane.

You can change between these modes in the preferences dialog. There is an additional "Automatic" option that does adjust the viewing mode to the ratio of window width and height.

Launching an Item Link

To open the link the item refers to double click on the item or for keyboard users select the item and press return. Note that not each item provides a link! If the item provides a link the item title text in the item views header box is a hyperlink.

To learn how to configure the browser that is used to open links refer to the Program Preferences section!

Changing the Read Status

A headline has a read state. Unread items have bold titles. If you select an item the read status changes to read and the item title style becomes regular.

Sometimes you may not want to read the headlines of a subscription. To mark all unread at once select "Mark all as Read" from the "Feed" menu or the tool bar. Alternatively you can press the Ctrl-R hotkey.

There is also the possibility to change back the item read status. Select "Toggle Read Flag" from the items menu or click the headline with the third mouse button to achieve this.

The icon used to indicate unread items.

Flagging Items

Liferea allows you to mark items with a flag. This is useful to easily find these items and to prevent them from being dropped from the cache when aging. To do so select "Toggle Flag" from the item context menu or click the icon column of the headline list with the third mouse button.

The icon used to indicate flagged items.

Jump to Next Unread Item

When using this feature by either clicking the button in the toolbar or using the hotkey (Ctrl-N) you will be able to access all unread items very fast. The program will first jump to the next unread item in the currently displayed item list and when there are no unread items it will select the first unread item in the first feed of the feed list that contains unread items.

Searching Items

There is the possibility to search all items which contain a specific literal either in their title or their content by using the search box. Please refer to the Searching section!

Removing Items

By selecting "Remove All Items" from the "Items" menu you can clear the item cache of the currently selected feed. If you only want to remove a single by choosing the "Remove Selected" option.

lwindolf-liferea-508e7a9/doc/html/headlines_it.html000066400000000000000000000142041451527772200223450ustar00rootroot00000000000000 Gestire i Titoli

Questa sezione documenta tutte le interazioni dell'utente con i titoli. Nota: in Liferea i titoli sono anche soprannominati "oggetti".

Modalità di Visualizzazione Disponibili

Liferea conosce due modalità di visualizzazione:

 

   
 
Visualizzazione Normale - Alla maniera dei client email: il pannello in alto a destra contiene una lista di tutti i titoli del notiziario selezionato ed il titolo selezionato viene mostrato nel pannello in basso a destra.

     
Visualizzazione Ampia - 3 pannelli: il pannello di mezzo contiene una lista di tutti i titoli del notiziario selezionato ed il titolo selezionato viene mostrato nel pannello di destra.

Puoi scorrere attraverso queste modalità nel menu "Visualizza". Questa impostazione è per ciascun notiziario affinché tu possa visionare ciascun notiziario nella modalità più opportuna. La visualizzazione predefinita può essere modificata nella finestra delle preferenze.

Lanciare un Titolo di un Oggetto

Per aprire il collegamento a cui l'oggetto fa riferimento fai doppio-click sull'oggetto o se utilizzi solo la tastiera seleziona l'oggetto e premi ENTER Nota che non tutti gli oggetti forniscono un collegamento! Se l'oggetto fornisce un collegamento allora il testo del suo titolo nel pannello sarà questo collegamento.

Per imparare come configurare il browser che viene utilizzato per aprire i collegamenti fai riferimento alla sezione Modificare le Preferenze!

Cambiare lo Stato di Lettura

Un titolo ha uno stato di lettura. Gli oggetti non letto hanno titoli in grassetto. Se selezioni un oggetto lo stato di lettura diventa letto e lo stile del titolo dell'oggetto diventa regolare.

Talvolta puoi non voler leggere i titoli di un abbonamento. Per segnare tutti i titoli non letti in una volta scegli "Segna Elementi come Letti" dal menu "Notiziario" o dalla barra degli strumenti. In alternativa puoi premere la combinazione rapida Ctrl-R.

Esiste anche la possibilità di commutare lo stato di lettura dell'oggetto. Per far questo seleziona "Commuta Stato di Lettura" dal menu degli oggetti o clicca con il terzo tasto del mouse sul titolo.

L'icona utilizzata per indicare gli oggetti non letti.

Contrassegnare gli Oggetti

Liferea ti consente di contrassegnare gli oggetti con una bandierina. Questo è utile per trovare questi oggetti più facilmente e per evitare che essi vengano cancellati dalla memoria quando diventano vecchi. Per far questo scegli "Commuta Contrassegno Articolo" dal menu contestuale dell'oggetto o clicca la colonna "icona" dell'elenco dei notiziari con il primo tasto del mouse.

L'icona utilizzata per indicare gli oggetti contrassegnati.

Saltare all'Elemento non Letto Successivo

Quando si utilizza questa funzione, facendo clic sul pulsante nel barra degli strumenti o utilizzando il tasto di scelta rapida (Ctrl-N) si potrà accedere a tutti gli oggetti non letti molto velocemente. Il programma salterà prima al prossimo oggetto non letto nell'elenco degli oggetti attualmente visualizzato e quando non ci sono oggetti non letti selezionerà il primo non letto nel primo notiziario dell'elenco dei notiziari che contiene oggetti non letti.

Cercare gli Oggetti

Esiste la possibilità di cercare in tutti gli oggetti che contengono uno specifico frammento di testo nel proprio titolo o contenuto usando la casella di ricerca. Fai riferimento alla sezione Cercare le Notizie!

Rimuovere gli Oggetti

Selezionando "Rimuovi Tutti gli Articoli" dal menu "Notiziario" potrai ripulire la memoria degli oggetti del notiziario attualmente selezionato. Puoi anche rimuoverne uno solo scegliendo l'opzione "Rimuovi".

lwindolf-liferea-508e7a9/doc/html/headlines_ru.html000066400000000000000000000211401451527772200223540ustar00rootroot00000000000000 Управление заголовками

В этом разделе описывается работа пользователя с заголовками. Примечание: в Liferea заголовки также называются новостями.

Доступные режимы просмотра

В Liferea существует два режима отображения:

 

   
 
Обычный вид - в стиле клиента электронной почты: верхняя правая панель содержит список всех заголовков выбранного канала, а выбранный заголовок отображается в нижней правой панели.

     
Широкий вид - 3 панели: средняя панель содержит список всех заголовков выбранного канала, а выбранный заголовок отображается в правой панели.

Режим отображения изменяется в диалоговом окне параметров. Также существует дополнительный «Автоматический» режим отображения, который подстраивает режим отображения по соотношению размеров высоты и ширины окна.

Переход по новостной ссылке

Для открытия новостной ссылки необходимо дважды щёлкнуть мышью по новости, либо выбрать новость и нажать нажать клавишу ВВОД для тех, кто предпочитает пользоваться клавиатурой. Обратите внимание на то, что не в каждой новости может быть ссылка! При наличии ссылки новостной заголовок в верхней части поля просмотра новости отображается в виде гиперссылки.

Информация по настройке браузера, в котором будут открываться новостные ссылки, предоставлена в разделе Параметры настройки программы!

Изменение статуса прочтения новости

Заголовок имеет статус прочтения. Непрочитанные новости отображаются жирным шрифтом. При выборе новости статус её прочтения меняется на прочитанный, после чего новостной заголовок начинает отображаться шрифтом обычной толщины.

В случае, когда пользователь не хочет читать новости подписки, все непрочитанные новости могут быть помечены как прочитанные при выборе пункта «Пометить все как прочитанные» в меню «Канал» или на панели инструментов. Также можно использовать для этого комбинацию клавиш Ctrl-R.

При этом существует возможность и для изменения статуса прочтения на обратный. Выберите «Переключить отметку о прочтении» из контекстного меню новости или сделайте то же самое щелчком третьей клавиши мыши.

Значок для обозначения непрочитанных новостей.

Установка метки

Liferea позволяет присвоить новости метку «важное». Это полезно для как для быстрого поиска таких новостей, так и для предупреждения удаления новостей из кэша по прошествии установленного времени. Установка метки осуществляется выбором пункта «Переключить метку новости» из контекстного меню новости или щелчком третьей клавишей мыши по столбцу значков списка заголовков.

Значок для обозначения помеченных новостей.

Переход к следующей непрочитанной новости

Использование функции перехода щелчком по кнопке на панели инструментов или с помощью комбинации клавиш (Ctrl-N) позволяет осуществлять быстрый доступ к непрочитанным новостям. Сначала программа выполняет переход к следующей непрочитанной новости в текущем списке новостей, а затем, по прочтении всех новостей из текущего списка, переходит к первой непрочитанной новости самого первого канала с непрочитанными новостями.

Поиск по новостям

В программе реализована возможность поиска по всем новостям, содержащим заданный символ как в заголовке, так и в содержимом с помощью поля поиска. Более подробно эта информация изложена в разделе Поиск!

Удаление новостей

Удаление всех новостей из кэша текущего канала выполняется путём выбора пункта «Удалить все новости» из меню «Новость». Отдельные новости удаляются с помощью пункта «Удалить выбранные».

lwindolf-liferea-508e7a9/doc/html/help_feed_default.png000066400000000000000000000013741451527772200231600ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxtMHTQs;:CDi\QPDH"sljDQ`ȍ-[&[A.EdXZQOBUgwν3҅yac璉dp0z1,`  SD[[7 MgIFd]'2yEH2֓3+ҢSaHm .Ȃ !0oe/\gD8by,Z  l$(/}iX/c?`[56JbߑSh%vK+ <60:wДj6i zv< A7SuǵXrnނg); du o%}&%Qam'29U ⮦(kbe"Ep;of@zMBmX%GO#,ZjWBV<{GHsm,Ec+Q Xag%߼^c;37q".? zIDbcQN}yCfB|f6yef}uYҨ† [%b5q=`6U6uuh%WA͢i0M;`Q5S:9IENDB`lwindolf-liferea-508e7a9/doc/html/help_feed_error.png000066400000000000000000000011721451527772200226610ustar00rootroot00000000000000PNG  IHDRZAIDAT8˭MkQ aMX$R u#-N7Jw] ]T)FD-`4m_.LƎ=ZP]cXf$^2'FIM>:[ kM\Aӏy)5R֨Y{8; ė>e sa Ld5Y~؇? RhЈV5꼾s+ Ŀ|!堕(Jc) P@eQz9Eu T/#&u}.h19^Z[Z@Ӷ*URJRZBHMU[j5ymZAt< Ҫ)QQS(Wh M bhqZDA9d>ͱaohQhfGO${!?iAaaW={f{Rj̬黎c;*ܺR'"#RcbԐS[+ 0#rArC,͵~cf1򄐛)|B+ަMɣK5t5:Lɧ{1_>-**mZ^"9ܘ2^ŶGt0Rj#/UXP|IoEo9\41 q'f,/p;N1 e 7nlzDZQ[nP7T!"R?rPVZ~3n.}E5 &KPM15)(J <˸XX$WPTH?w/V :I|yטYAXⴜOja"tE>qp?Oq2+!;m%}&彬2y*={\zAQlb4GS /ޗ+(}וC&Ynߍ4Z-ԤlVInn Dv]1;rv] ^_)Qz65ŎOױ篦%~W iyeuFU!WQL3 &Sk,'3r#$B,{)h+;h*ZLEٞj5w=|wq&U]o26VfUGTvsU>bQQyB8dB~}Je3cijv؜R>!4!zΘR~GIZ±J:VWBX,V)#ĥӌNWw҄?t:WSWH3wW %d!*K[ZpN*] %g'gEXϰTVj&$[RY񜽐i VSf)[ɮ!U1PWH3w)$YR~t32p^[99itܷ<'8vl%+jZyP5 Vj) v[T g3KKXZ+ _:ŋ,b$9D7n+};yITOV7Qb̍40i>4J51}GH)-Br ˲My)_PTz?6lGs2Kç'oI''0U)TzNŌϟLswJmJ+^%^퍒wU8t7Ĵ⻱u UG> ]%ކ+cnvD.bjRLZק܍*FZjLnJUZZU[CA_!@_%![ߎ]SdlPsWvҋue5ͫ:{f} _=;eq-6o\^f"" fn3TAVd@Vd@Vd@Vd@Vdh:0CCC:d/sN777tmL <{/+_`s8MTU 7Y'Я: !e[;lÒC;]޵%O~0At?9bWq^{׸>}ѻӧOF?WXqeMvVfںփV"pK^y=(GyN7i0qӢ a6X:ZS*wB/h׫iwCU15RWބ^ OofZI^JF^UǠd\7ު[#(\]tìYZ{׍ײkWBHQ׳e^Ny!V=[YkqHI)3tx?̦e7aDXm1BkgOѳe!OD:4%N_U?,>9#!Xv?aҳxz6sYxMJާ@g!Os)>zq8*X.V\$L[[ģգ~{Qk;BȰ{p3.\ta eI++=|ۮCF= k/W3)ޱ[':cQnPdhTvY=2sI};(M ! n|NÍK:*Hׯ5܌BЇWUAIJ !xuɧ BHqΑT=Z:ZjdGl-GD= p}BW%N~+K*宥Gg2\#q͟Oj8損#!N|TYNZFAuGU76t}yO~n}Nd;t~Q=x~ȺH1 >h}9+_6MC=B6ЗR4qf6 f #Vw~?WUq~}c%Y)i\35\{ =EY e-v]8Ҳ.v[']ݴI ;G +g10QJn(Am&҄Zh}.®~H}yZ;FlBH,i\BHZ6~r`_ZJr:us#z;q4"-omau{ᮣ9n&mD%ۚ|[-aa9!w BHIm8l6[K׌[VtzՓKFހW';,b ՚:UnA{ Qc+6 ?s Y-< ŪJBU^5mQ9VތJ(()'q?G%iGB.^6n+*٦ҼaN)dڦfIX)y}/|VwVc(MԻzI)rJ(67ׯ緛ik4DH2ݯ#b3≔~7b8V˙w%ZWb4Z^\\qyΪ-+._*K&iMôW~{y~ViUfB;L/ZzkiA)[K%XM<^^Z 4GVm#]h0rO@.Ohj}۟Of%^:J!2$MmvUE[Ff=!4h;H3XuI5^Si۽VSYQk%"@tL(p5}o D>٫6BTrO5 j($7< ׿&>}Z)UA¯KyerĄ B=tmxZqpA3j L͒Wuٳ5Qj|GÂ7|+}|E)"-ۧSI_B\M)1g-*֊3ߖ:8JGry.dۧ?Խ ^^rl.v \d~)I9)6@cflKY~qAnDϸ9`x2Ń njQy\Ozzv^u<~Ƈ">!Ay wZ>8t?q<>/=aCVgt2>,ɍgs/>~]H{/Sԋ%W5GRrZ+{x1yL(kO- 2Y#O!65gͰ%N7>M$MTeڑas$^kI[xOn?GO^9}.*yZqxaduG=OZL^H琓Sk9 ߙ,\> xQeimѣ .í2"O |(u=aƂ6w}X^| ã . J|~˲cªV7lmm^Ev2Om5{9[{/^e8jޟo|J[RZc-lJNsW.vA?4]]3ڞ ZmȬ6Jj] {'MُǏ4SooJI˵Q44bkUx !O]֣!e­1o2UTsbS j;x#PΝU~;pP_lv— ]6{[? e|;TAVd~ 3 A*ud*&'SnxBCC\l<7n$@Vd@Vd@Vd@Vd@Vd@Vd@Vd@VzXxl_%>-$M-ff"oj VM4?zNc@Cڮ}s Wk< 0,bzUY)ggCCC >: ⼵%G s +6]eKт 焝W=1LXN1epB]dmcn=hDY3ڜf쑘X9]",V9ޤ=GK@DžO*$6$ޥ 9jmP$M=Ք]7Rs,;)V+cgekn=hu-][^1į,iOMr Z_GaWNRœf4er8Acl{ptt-z_//p$a&]u86}/;cפk;N(ŒxT..*GP>{jҧħ’#39l+r e%~{=Qwk6$z`%ݕzuӷ/JBc{&f᫺ʆ=^m*|ṷva%4\wC&}†r }w[oaHqPW-K3R4S O>VF9> ,%^1։W]e&LPk*G%ZuDZAڀFNheZHǮNܤ,"Hx[~X޿{:Ur}#SUöI糘0B !6byd\}52Cq9!ŪZ*, ՚xDE_n(/"@9SiҦjP& ^xM\m_͉ u-w '=j"*/:SBd xyI5@#>*h !JR j 3pCfk2~ګ*034CNt]I3(] gW\|s~W\l,vTzE\{<3;''+E 3ުw=K8`!$>x-P1$o-,~-lrsa9Rm%Tdzř~RZfffVVVvvvNNNvvkz s߅{}?Le1s*`=.dƸ%iiтu%\B[7`K_zb/zXSQ}\z^u^,Rq!IJ۞1&?7Q+5^'1vh)i-)\s~b5:8MTm#E[Ff]W1\6K <"8GfM֩+' [Tk^=a8(] |Y!TI+'-"-ۧSIK}(sK_G]qDTZE@tuBg_I)1gɽNR./q>mŗUcG#i7b7q;o) /i]u qs%6rP k|ɂG2;NѠj4egz ::_ʭ()xqsMGQaqvl~I0rm ӬI}aߨPULzpP4EWRX>7ijlt "L;~O):'. 2u.[|fhj Xleg?ks祇ԫS}O@W`D7$#}N߱J{G"I ^mT^~'?lfŇDǫ7j p!3b.2nѠj4egzD^eQiwS(9b23wQC^kOCfM23U Fj`pmI>u`}`14/3H4/jx:wƅya@K"7e6--t>Y[- IYYYYYYY5?Iy~[J LI:mm IDATۓpB'B>Z;bWT|gjxx8.}x:vÞkov6f_D'[ecL h_3IٹFn >: Kl3j] +VRrW[✰Jw7 )n_H֞5uṱ{ITGyN7i0qӢ ѮP;+3]m]sACn\Jd1=8::?Xسf9GG#1y1G7 ݙñs'(~x,{[k}-NS^qb=ɋ=kC]ڦmEXl6O J|_;G'maiﺶãoc-MM3PBȭՃuuͬ|B֖ıFr +]Q'Ϧnda9!0a 9{98SgeSuBhfE&kc׺.Ss|1\TK_8G4ϑZKo"+ IY*ȷ SqN%BH9)Ғ.{9OkܷGJN{f2p{ns%15e϶ԩ|G, <&%z k?vNr _GFO;)䤗/HN|X|rFBձ W+xyEl޷!B#6 ]zvҺ/Sަp]YN(ŒxN..*GPrZIdx⽞仄U e6Wv{Ru4+X,NK&,y,!m`[9Btn< (l('nː9w&hxUYZFuq6G3-2Y04e\d%,-*⧂j@,U !<u1KR=.Bg_I)1gɝ4 WSXy^)q~C\u qs%6MT`𹎻Er+J DbӜA[ˆyjxmۧ?Խ ^^rlz~Ͽ,=6BUiFJ|BERcv v _EE2C !C]M,e3]lt*??z%giy#Js ]?sT,:Dw 3|!&uՒ #C;7b|J_o7$#}N߱J{5u~9#K:yO:x,7siF54ag>β<`ݺ.*Bި)rޏ9Έr˨gt9޽~N֞eGG/Ԇ ՒDkGu*a2X6& @): bgAoʠ?6=O͌9UtO7߈&>0䛔W%:_.=;i݁wOoSxIC򶝹QQӎ~ 8y;99QbkƜJ5_NTN+c7Fyxig[f*y&#n{H|=+XhtTyekܲˉWB<6z}mT+jTM2}TkP[xx8ZWXai|/T?6.fHqPW%LIbrj 5ᮼgk&}J|/?櫁t1:bV1//5+oÂ׻5N]1(!ꨄ$tVYk4=kHC İȰXUNkRЫO˱#08,2ˁsk1jtLb5Y鷥\QW(^)'FhP5Af[P09p߸=KiO͟Q }v}9&\=>d&wuu.2[QR$\O7~{eumkTNW9WbS+^55'{_R+/\۾5_8&*a>sՁ|n+nc% EjَNkZQ4C'WST= Wv~=vT;BUvNGy0gY3r:MXzxH=%Y-8Kׯ ,E/f1k.m[5U˒um->3[h>D@S9.~'/1xzF*q+v$*+֢Wv4|ctt̴_zu_SPPAtԡfkfOOZ׉ՃukZQ4C-N5gQqNl'xW%f='xeh?q͉E8B sW$/ |+&m@Vd@Vd@Vd@Vd@Vd@VdH:&&D.FFt55]BMT~A⊬k#ݗ{^u2QD!1զјw?h8@sgBs͍?\,RB#_Q{i@uT$j MM+ox$0=sI{n VNk (De=T'P+*PtuNzڜw9 TehB54-Jju 5Bs|䌄cّrmJ@G𥤴K1~SE5tSجlBHvĆKNZweb};7fa7)KtX{_b\- x%3j㸟g(z ".GOEbPic?ѯDY%L;CSy!UOD}݅g^~ɛ/;Qs a>TQMxh9/ᕣFnn.Jé }6Ep#,Qpxfj7F=}BM0ZI }2Rs kz}YV celtJ‡ ,%^UU?T6fC}:] }oT]7U+JOKS9}F!18ut.0R* L旪66^&M4A NuZ/t$'*$*j9䑩aNJ$_^O,Tkp0c7%*XLT5qAqN/B61<*D]b*h%Y=y_P\Nib2tz8ʡQc{w5LGf%L0_ڨ&fu]x;G;H-Jջ, I~RZfffVVVvvvNNNvv-&}QQbإazQ=J؟Nzp️bg>?~eG6c6^V@VSW J=,Hة>NbIJ۞Kx㢭s#I[A DRbOddߖrEJ_`V"bCڵfU")*g>M;4pa^üLWbmTQd&w%]O7~{e ::_ʭ()xqsB\M򹩱Wf;;g<,g:-}um&m5<,* p5Gry.'*OU9ijIW qvl~I0rm2/Sj"hP5suhdIwYvN^7RObIk.m[5U˒D%WׄbI.C̲N'g2Qӎi}MA9KcBBZjxX̜bsn!_ 5TA=?cKs[k}c0Y}̧q']\.{F_%Q \쿲y/UmTA#4gnyT} TW8&fay + + + + + + +|URtj}o3MMF N#Y{Mݷ^MW=j$ߤNglv[Ȱ_w_y1D)*owKq}ggy?s7҈N +Vsшg5[L Ђ 9jj| WAcl{ptt-z_/0l#[k|n^/Jˋ^]ѷ Q>vVfںփVukϚA:Z:փM VAںfv>QLj9敻h }[ Z_GaW\Q}M+o 6~ 9jmPpcazd{->-ьBTF{I\5FjWT0a 9{98Ss/!j~iZ8[j9dUzxԥj};7fa7)KtX{_FlI{٢bw6SX^T짛jofegWk%c7Fyxig[\DRιM t)#|Ql[r915Jgq?_`RQ5ya WDz#'O% ÜJ^0VHɎ0tILL{zuNo~&*ek (G_5 oplsՁ|n+nc0i!.YNgu}㧞_VK p!>\Ma{\^뻋U%rʙQ qvl~I0rm2/Sj"hP5siAh-*ZqX_]Y&O_𻨰vYz0+OEw f Q1u\|J'.;^;~FZ~[N K'C̲N'g2iǏv뾦۱ndCG1Dӥ->3[j0V5*SYefv3h4??W< : \h.Krm-ze2_ڨ&U3G25gYyз %.}ph!}zkΣYYYYYYYWF#~$ $ߤNglv?~U=H/wl" M 57tO_ظhK? < t;a"[0=sI{n U^^ѷf:b72fsQ>vVfںփVukϚA:Z:փ-X^1$}sOl:F {X:ZS*;Yk4m1=8::?X09=kf{ 6u{$&/覡;st8Vvd|NU׉:issq:fTCfrlyp ӱ]bcb#*`Wioݬ]Y&^:qCVns%15e϶vs|))-RGTBJ oN+!sžrBȧIU䄇O|X|rFBձ Wk~6hߘ'ߤ>_/!aZbȩD_3!dY޶3w^:J4~O'o''}^mjZIB"}йFF|0hߣ-C${[){-K3ݵj426M%ᮊgU3 45c iBx i92_BLtNJ,pوɱ杦,W&<<[i%Ӣ= B[{|ޒ۞F}(.'XU: %uwIr:SiFB >䑩jծNJ$ğbjjNlt6lKN8yQQyQJ *5MS?iz{0c7%*19 !@&؈=U8ʡQc{w5LGf+TCfrlyp= ;H-EfM/,}~ =z"nYֿJZ SN9wN&U;us6䭅oeM#7q_n.,~;GðMÆ- Moyr?)-333+++;;;''';;^cC͟1]r0½>z׏N ejNzY\.~NZo@p׮4e=W5^'/zXSQ}`ɪkKA"5W*-VCi Mo]}nduɰX<453DZ#08,2ˁs$TZ,B# ١ҿEEEEռ3\Ma{\^뻋עjtFЭe<FSӜ+\>7%E8?rLJ宐QE{5>ydPBPW#KoRO5@.v \d~)I9)6%t>? ^ya%ɱt%mЈRkH'SvhSmzp[+"m7w«z:fo6_|HK΃K,6ϲֳGꍚ+8Cጘ+繌ҫ(h MoY-802˺~{'-^Qmb)<]wߡS'_|N[ MXoV| Z/3HL.yAf"-IYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYN2 ˅"X_=!$''6;HPYYYYY9 _: :tjl6"#+@|9e\+ kWdw-熇ܻS[RʒjѨMjG ,B^qq/+s^ÈݺȞjm*>|{;ҹحXÙ=p|"D@;,YZ=;^R$-I.UPRWnffحcRL½;Y˙>.ǹ syO򱘻i%dhq>y3ye}ZA"Òf)+ybNoRRҙ0qUbVA{vk))ïmnƤYe\Rcu?wr>Y 54TqXEXR,) KJ%U^P[7˲ZXZ?Ixh{b@ >) *x B |Y+$.[@&X%E4a}N R,!,"H{J=G-u~ܼͪ~Cv74qb\--}>X/ \> I~Aayiׯ['6S~VVYC͜򴭱Ѳw_o6odH%-G5*[6}>s%&7+~ý{N  {:WKoRcnoZ8ZHKʸepVx|R#J+yl^(tԷOf^rq@<.f+Fn|WVTPR!oN(8?s'z@/\"XR].*U."mqA(`K\P9ڔM$3bh-Yg^$33)ec|$ˆ l~>QD)>yu}6UQ4zW^'"r6wpvaS~Uxs\-Sʭ׿_Sx~]b֡cgnلy}8wܷy%sV20Ûrx>뉝/|I!Twy-~w5].ے9Cgw2K^̯8 VcPd7=1bYs!I$JBNb0&]+l>ٮ'<;u4mq]YDͥ9?3.O|0AWlTs '0bd#Jw'vBBLiHD.бW6l1XFBUM3EaYeb(bE LB(Ɣ"J)96 +Zvr-_`!"n R^$ MaoRވe1%RAzCSS6)n>ߎ };O[aw\W)Sun;rK $c$is<է}5_ll %!)._}~HȴoyuӔfkTЧ#*Hg"ATo\O*6w@'[#Vnz]"A?GM+zfvT|[4iXBL8 o|&Š_ϵl_Vew-5n%Zm'~O*bL1!FhKdGKgm?05k mׄ'-۶|ϓw\5741)V5*,&X[Q4M _w]ۦ?^ۧg}U 7߶>խwFiZۯ?#mҢ#Ǯm ȸ©w[>|\}QWfd\J>t['F]sG0e2ךnno7cz{!5!WV:ޮ\%}* `U{_bۋN^)<@gXBZc ;NRZGFZ'b;#bw-)!njyk3:|-;W0c w=hey^ӸIOԄS%\cv[[.a3H\. B/23bcFԨeĴLLRB66qgҜcG>s=so_f߹>(/uET A_N.$559?hQA= K6SPJ)EHbn=E…' C]Yhy3B,SJ,2Wgp|j@u$gy"1"Dcw- bԮb96*ұjs`9cχ99_VPWw9ۂ8˲W\!dYv\!,4d$JoU}]CϞ\^^U}1 T)"˲,˭/zv Ϳ/6 AA}!bpT\`0Q pf,Yk"@: Dj $0qǵ;RH:9V^Jtz,-WV'N8aa>IIHFGz^h2DQMIDQ$-Ecխ\BRO`0@ `FI4MhhN0>BHNy AH(8oJR9+.."@*g=pFNN`$gbpH @*TRH fp̎, s "2cIENDB`lwindolf-liferea-508e7a9/doc/html/help_feed_prop_cache_1.6.0.png000066400000000000000000000506301451527772200243600ustar00rootroot00000000000000PNG  IHDRg}sRGB pHYs!3tIME+s FtEXtCommentCreated with GIMPW IDATxw\'!lE AժVq֪ugbXEڢT{ 8d l Y)#,_|g徹< N+b,dY/ⷯ"sޔcDd&ZJTmo3[xE-sj²  ض PBnmyGPǩHyc_PG{J[ՔQWc,~~% uiicԘC[E+*)g>б>3yOL˽كкbC,͹~SFѦUBBx/3 ^fĥK:Xeƪ(FDgxwXWVK"탤JZeuaֺ*%wfxY..睜!5:h(*1?-YwskV* no~]{SMEyBދϪ̵VP-SMEr^L*[z;sy.^kDhm^II?{ued^j^Ն@mNn [2*Z1*TTVȯ*%ɫH. Yj6mڳ=Sl\?KmF)Ҫ i|@HwDk'n{oxTM~lxCpV+VeҫhEHIP ^>w*~5-6/%Ky>4;UzHs_m9!2ot-+-_ >O"(j\Br^R~s֑g |~4B]z $i| Ys9m廛k\EAie奼e^[{sJ ᭽'£wBB yEyX&ܴr3Jb8\!!o[9Bb2†UJ\-yUW ! b5"dg^WWr铺g?Pl[AD_ Ͷ@/XKT9y7SEQƨw3%HUNUEMH^miTAw}M%9*[SH~LY >fWբ F{7*fh n>S(6f@S\sW!B:v;=%T$%t!E~HxN(@`0TWQ32SrmeŻռswR+BaBHvr ,iw5\PK7^y(f3Ox,Uڥn_#F?l;!$Y!/fjN!SfjU]יn:ZH]AA`MJȃ2!!ݢׯPѠ檼 Y5ͧz|_X_z׎QQ!EwNڙcEۯ<8!VXNѤ[.{ޅO`oQ On>σ'O >6x}-irN%93Mql+{ۚ舖$]>U7G#)6X_װUαGiK kv%n\uwn=9Qz[im؞dr(logB:;s8o>o78*Ai}؃Lfo'LJjE}7,Gh9}#SBȐ9ztޣf.^zEƖwTfU^՞>z;?~ߢLɆ?;D]kRvY&儬b6_BLF^X]!V_a*{C3Oc`rW8߅C[*3U4gzAd]락B?i''5ܻñE/z<)(Σo4E "]txqkwvk/_}JU}sjWD%(fW܋mJwY^[9[!B`0r% 9 4nCcboԚ;~?<$QY?ω+V]@ψ)_޲^{C[V%u?HPB Ra2]V\AS5c6t ;;[}Sןdߞf]2xBS:hS^M7Ê87w9Ec!P7}rq9ݎJ."H&g8d^$Њ~LI .S-BHݟ%vS~Ū]4]UO QٿK矂}Cq!wurmː^]7ħ",E!w ^_$cL>`À'>"#Oe|Ẏ^fj" }  FO 0WmM(\E4eDNo#+ޛVW-}XZgw5%kxTpix5wx8b.RbIO[V6q-_jaRvNעa{B2wYzBF "iC<$+@ݡYPmk/br 硣3`}W4io~% |v%̼(Z8MOV`Fa3Y[TҊrA?\qfϰ:$7^GegDn}=יܲ3ka2HY? Awwqj*WMKIso 3R ^UYx]Zc$5~@G!r >~ão8O';#Qo+|nIMc,V\}=ߤ=Z;g->k KBAa#w["Z[o|@(Ȏw张A?}+Z5Fsů'_W iOoo:i<%_TY 9,FzNY֟6]kj3z?OVc[8eysHͻ-\ͻr tLl]2+҆}sZ}P~opR=UʗBOؼu=si+̥ yҎj ަmA %1DN=۲]wfZjQjQsZFQDQ * * *@T GкL^Z֙~׺X +H E6BrZҒ1{$NvfcO:::_p59Gy[:uAh-c۹ZWh5m$=V'9͖e>9t_r.Xjah<$sF8vr*'^tihC}}s 6 ZKH}`=nΛFdGyMlibkСXbkK][8qH'S#=Cw.XhJӶw褯iw}; p꬯i$CxW5}iBZUl6[@Q5O.k6&%6^,&FEɻ%J~rm ;rC|FD/;!d?kf džR3ݩphӸ-}z<=+剧c7%i;ǻOS^>{K+鳋> s$HqB-C2ӮcߴZYZ3.zNJZV[,I_i[1yyuI?VjIh}IF 2"˸IkS=mt5 7-%K~eМgoGs৓tTDxqme^V:3`y|Dv=o]U-^m@iOv'IC0q󮚛OZl;=xeAzGX_Jkg5d)SQXպHXʹ/5(2"˸2ЦI bG@ҷf c0j9 -{`QsyEn" ˫!7%~S3]~U땽aO~vUKQ:ՇꝖVN/}5 PLjR}d,DqeB!,E9o6t{\(.[ט>}[2l)C>y Գ#MrאuT+Ϩ_ƪeKM2JM4t(-[lToԙCGegB-Kw/a^MAJ_3}[B1shPB֙`_WQ'Cߕ2YX}IFIu[Z "y.Fq:Lp׌D$U1ۖ -x/qoحuo|KN^y.,'*޻Nm?/KFiX e &5^/v?~NHt_ψ3_Y)};e)SXՋ}IFI6"˸5 *w\~lqUN&VK|OLf2ݾlu=ذD}NfAw/͙uo|Kϲ=绤qN=֟*8tuwٷ{欯#zXKNN47vmOd<#m~voخFuVJNYʔ6V"p5r_jQ 2n k-f| [yN.72P=ٟA¯2CƤP^{aL 0Ư^ť5ʾe9$.,esq쳸/ڨ3Hڼg % ڻ{XẢfE4Q! (N 9; /=:o^o@@TC,sЬzucDyzeq?-#<$f!.Ԭlƒcć )y~ZVf5b m{UJ9RUĀ*BHY_in=*5li|>4[PL_ȱ'? ?WH)L<2ru‰+i5[+6l*d^eym9_ow֯(o:wF`繻i>rߏ帥8Mf}Fnqǟf ʒ]6W$r/?;0cL5f+|-.Ρ$SEE<<6yo7Rkg'4pAKYw>uZ$@TD@TDO|fÈFqDtQ'Ehj-ll:D:aǮC._Y}Z<ZTΛuyo*.b_hT`r Z+]復K \4@ "L=qjĉD;U$@T4$@UQQAQRR222ի,8qu@ZAy^^^WиY}̺Zoೊ EEE.\ڵI444!AAAGVSSvlz,%6= ÔK~ g,BBappaì%CFFF.]4iY+ѡTE[#pSXuD%  _,Di QQQvvvU|Yǭ;w~V_hmmmkkM_CNACפ).<_3^*Ҟ.6=l<R#(6-:(ɎMqgl6MZߡ~gki *BȥG>{]rw!粖PXD^w:%#CF~n?r8NY'fGf{or]qcgTzA\ZuB&JX*ɵ1 wCݧ)Y/kҺ)mY!OӡkiiW1oZVYf Xbp"mŇOj&x<__߹s犗8qB}Z/v FN9/ !ގfO'騈V:,JN_(NWkԴ<`GwJ:ilv@b%2thN3J=<|岏4mT;iV&nr%%=- 5C'EM#o͖B`rSt*BHi (쁍IKOv !,Ŏ^A:7͡1{7Z_^Ik?ۉW3_H. BJaa!!֤rˢ"i ժ}beaR eb&$$Q_ɼrslcǗ؈/ bdϫ(~~ksC5V/-U|5 B>EUkuj+Iv' w?LDR%OPm0ꤥ!cN^y.,'*޻EMm:qY|!?+ l *B>|+WBBB8'$$$$$dĈҾ@?.gء Gnuy;.?8*' c+%mQSh`Ksx'{\b=V5n?Y_G擩}]zxa1KW'-= ;9%,;tT^_4ݔzv2䷿w<},oE2N<$߿]^^NQQQ100/JkT{ˍgi`-$էO߿.~vvsƘ|fZГ8|zM^Vtuv *ǪPUWwc*-  * * * *@i6  BQ+Ȏf7Ui26FT|PTTt…]N4ICCRPP4zh555iwRPRoki:cθ~ l)VBappaì%FFF.]4iI:E)AUQ~N\Txо%=>-UW bֶ%04tM;㫝L][8qH'S#=Cw}W`Iv&/-˼s`zNj7Ҟ.6=l<R'}`=nΛFYu !Oldkmx,Dikmmm?.kY E,LfT@UQQAQRR222jlT7cp.\еkI&ihhB F&qh  fmm-yuuu522tҤIh&l $5ˡ9**N2$Y[[FGG7F8vr*W3;u67<㿸bo8pʿyV%]3P_ܦǂGBC:Ztvi N}`=nΛFdGyMlibkСX.ԚBkFbcc#mV] |_%?69a! .v.3m;l˨yygOb)2Js[_ujjf?mVky\W\pYj潳;n-wϒ]OgZI[kaaQ몡JY%KJ24~`$^NSSkʉ*{r{jM档3S GWcWGLO-(*888<}411檄X{{Z3Z;3arxC<]©'/{sw1U? 5Yjo{5&/gD0~J =fےa"\ Žec֙M#ZPT`2ÇrJHH|>ᄄ1BڗL=^bkddbli::'S;.?8*' c+%m!JiSHxȜ_;/;Zk}]zxa1K׉]G>^3LO , gggBTTT /FxbG⯏ _BZv>9< ?IChhhl˭3ȑ#QM2Ip l;hEp Q5}@UQQAQRR222{ig6N\VPYUUյk D(**pB׮]'MA)(( =zz 0qZ-!D}~1wr U4tφɛ$ ^<h6lؠAY,bٮÆ tP(wտsO Fa ֐㾾bbQ3z%\5ݻلǏc3QQQvvv5WY[[FGGK/ ~ ~s-awloyqPq*YX;@(Ғ.`onc#\!%.muutju:wv0qElim/$‰C:l%+H+$;k`KC]ǖ&Q_/p01Mtχw5XdiNO^۷ի}|||||ݵp|DwRRRlll}]6r}+]pADwG qlg[FU8ٴ?ILz+j|%ZgOb)2Js[_ۚn!$m1+e]_uʒK#@2oһCݧ)Y/uV*H+iܖ>Kv=y1}ڌs,e5#> T޽kYyi[˶_Upӛ7o{ /1d/c+VvWΝ;ֳC*OG6kG$.׼&.DrVuB*Gdrd'yJZYC0qGMoGs৓tT5<Ͳ\=T^FS nGYj/~_Zw K,uO=*OiUJ~I,12~piIaZ;Domްᇵk>QTƍ֭$o֙mO.44յdl6E~}bUk>ܥ5(IS#8K>|jl'[bQ9!!GrKڛ-'zp"5XCJϼxdNK+t'ķo,Ę=zhZg2_Za^K7_/,"Y3aɼmJfh;hAnh!%*jkk׺H3Hb,cǦYG:3 (r?-DQZ {k wö^r;4ᓛ~Zl00OB^F3w\㢯&GqٺƄ\_92dAG i+Ǩ ])nTf)~w~>'r_,..NX #m_/є{prڶyb {iz޷r[X-=Eɿ+k5 3 k@5vγ|O:+]{jr R8Ӛ;%JƱ ;(ҝtee{x3ܨĚbcc>h*[h9xJ;kgr|7mͽ3cqmh"y.Fq:YboDg9e-qj+Ia5@R+υUU%Q7{YVPM#|A{noc{_`FnŨΝ|# dƞ8(O^ n IDAT㽰0\W$B 9|ϧ;88hjjB Fd&t3N|k`uU n<b2uUiʪSk1-oOzI>ԢHvUU՝;wNJ-qA X>}qQOAAՕ~h9Zv3  j|/i *=<F```l ,@  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *Ē1]``  p8 l\AQQQQQ> B]]]-dQsA(˩S\Qp_6e)~8?48nI|`2X[O_a!*AP^ MjwWl+x)( Kr1c.W22X5䃗BBQE(BBw^ FDΛ۾-[yYp^y%-U5M3MS{~}-֭79#V/|ϋћ TURP )_W)KIagkAH !'`0 ,*JR`٩#_**&`ꔚ[lVc2_۩*ݎΨ2*Rhof%TGS-?d0L%d3X YU!LRwLؗجBL!`R'$U|'x|[c4 ={;SB!ALdc1ޅ&$AmM 5.Y_pdAM;=%Z{r JH`P%_HB2BRT\R-*k};v3ެ%ԌyEκ=DhWUUʯv4$*BUM[J;r&X'FD7$.w}6ףWR2~Y<$м/mH+*?Qb72EbJ@JʸTUM@^|;9{e˰{;W￰/YKNN :+Dh2oUT9uY_)c 6k%C]PU^Nj?~,YTn{.q0Sc*i;o -ɎE;.߉੶yګ+WW_m]GKAc%.߫o%v]zmǭs>n3$&ѿuRyf#LKAZRSB+)USUxqxzڳ?q-7i9۲uǮoo1mƹE&JloNfyO0PM+vL &?铲}s9I{~ޟ|0<>1o7kS9vqIXr 9(/b*+ʷQQd0țr@( `k㫕9nue_8Dݿ;(}3Cz2ikkKk(Wr 9CNmw\G+(HK*7TO xڮLE3e~qQzOr}T{cd>";\! 1MKI_jd:4'!d xNZvoGs৓tTD/yqme^Fs 7S)j tvۨ(sXDP`1DEY y9gcMyf.Vs4X@_o+';I`/7_Rj8SNPfq sVꕼ'D'ܷOd4~nO E[b^QEnV l5RJ!,Ŏ^ܲe65:[LOOOWWWGGǠ^yܧFc!=F|Z~Ed00(RD $!REKY++ի"՞: ;9k׫WiyR (?":mbG)uG @@ %XZ\L(W ųo*UmfiE%q8%rE5Op8yy1Y@H("$'*UQ%s_V*,/)UT*"())1i'.u8J.>HRz~Wt4CTpp(J^]HS:[HԊƽ?%ej. RgN+-.W/z~k{MKw/a^MAJ_m:*; j.}+E _=~<kVp*!_@J B˔[ew'i[5HLtF,ot]"PJUUeXe;8"RƦ~wIow*aT0TiUxqFp [[eY8n}(Jg W#f+ϙ􀃁 +xUWYa(+^%EQ/:~jbm#,(_ʕˎ?t|v}i,x4, `MTӺVZW#<Ĥe]۪6Frh{EMBS;NM]9Wݛ=HO+8ׯT&$\+B踌 vK-IV<ō3 |- 9Ul[ia=lJ ̈́l\MVB(R +R뮥R퐽=֎}=,|¦e^PPt׷r"{y28>"EJ|anB/ 3[˾mܭE6#K~QhyeUl(tT{NZ4ǷT554Q ˍLQEg`˪aw'Yߵcm~nGH) .v&͚~B10#_BtaF$:R[žT3YixΒ"{Z};1>LJ;7/=ۑp eZK >k/m0?vWѺ IQA4!ƒUJuw5DN<]avޟoġe׹êR[x ϐ. \265ErWi+MQÒrP]|Y6((lc}^Z.Y'g >DjڌQWt ul;Pf0zI>ypBYE|ʳħ OP,y?XK㧞m^sqs6=3/A4(VHfx&QAO]. EiL雅7^,>ߥzR~~be>qp/夦,=i=}5/2r\H .{KW^F⓪6û5S 26%h=+Աß%RWբ!+E|W]߲"@G'< u8P]Wg}P]S*$< w|2c !D&a @,n3T H@*R T| ϤT>O2MtiiiaC wѣOP?6h=w~ %JյkpH=gՈX, > b3>PWy5;bҟ*Y?ZO*4z`V=7CbxYU?֡g֝LXHLUnp̡qMZ7w(O2L&%>vw#<5y0>Re VM[u5k'.ݻs:m\|tƠ3n=p޽K|ӳA*go~GV`+hcc Ytuۼ%;)T8vd^W?>.!9J͉-^RṪW]bЀ]=j8J\: Ȳ:5`PϻܭW?FS!jI2>^BOhaoҝ'^sn]zyjc = ;ìn^M5mQDZڳc+F!)YIt[z5e1uy]K!E|s߲A|<| Z/DIX!?Gƞm_}0̮9C~ٍ9"\iiCݰaCZeL:kOtZV>&ouU)#ߟtLBͳ–v""0i]uE>!DuiדJBH^&>loDlRs!,'x\f{OcMi;jMyş- vy[r>*mBZ3kƞ} Z&!D v*?vn}8ׁ:fH~l~7TQ[Fxo˟wKw 8,5ņ/m;wNMFS=g] x%NJΙ7o\M?Kҧ΢ Kjs}g z|ot4wF7ю]&pE)y-yq{mF-b}dhAy~:9MjxMzl?81a4wj#˯!1{qJ[cvkaZ8Y#bQč}Z6py"~;Ҕo[y9 xm;>*mڇVz+pM=:ҶZ[Pp!H {~6\5;xxs!?|>Ktb C'tmnpW߬g7l?n<|I%GlY٩#wlia~ߦOEo^߳y-kT{Z)K/̆K%"RCv7>U:f;Ux(=jm :`BȱO~uBȿ{hz񄮴*تtԟ4eH.bXPW֔ɧx^ģ:6߼C}>ؠÊ-#t}VV2Ŧ`}@&reY!B/V3{毗RB~JhdvRt6:r N휙l8k, !2g͵sF/eYaeӵޞGwJx)'CEgZ8snKWc56Kh;˘ 3r#D}B.:CBfsm$|#oEƹfn{ea Yu~C{{+S.Kߘ\:6ʑ'kj%dAֱ*w*JNfc/l %0f͒9 w(ѽzQ c[[]pJ!$>xM?978R/k%b 9/8w@WZOl =es oʍ6_󪿕Ȭ9I+r|"Cɷ9N1pn/Gt˄KBrwibci/u Ɋ.- Wt.8 Ҹѵ; [57R[KJ[81"y)*_r4?wNz]dC[@k'd/~6[#}@hų칻r96r3J9cH "h.Β_;J{O]e3aqjFvf~]=<&B|ky}BrVG-EsPgק_]>{?"[e2R;sv݃\}{VTf*>S_$+eyvڽG3Y6J׻/ h"-oSYKu4.9rfcA;ͤ\3ZucW?t0Rx"ЉfM»Է?I ]OcV腃Ov5x#+6 7#FdNŧ_>lM 3|ѻl>ͻ]ZutzCW>Isf㫮NvN]=k{:iu5V;B{L^N'uԿಸ] Cg7Z2sԛ[*to1{:WOA>\KGJ>degcc L=$:I̬7i{M B]qoȣ|bPAc'񩥹Ta%z.ylz&65+&i/a۷׾ 9cmu9+`ݫ{l3Z k)WE.7_*9}GQ1śyjh>pœZMױsߺ5]+1E'En6'u'o뻻[۠A+Hx~IROOO}6 !$અ[=M1s5ku {Viw<|h{TTK4R|P]!@ t<x H( * P_n P V'S1XPj;?T֋bp T H@*R T H@*@EON06nҾ H,p%VUZ;]m{X_缧Vn QBFva```U㚎\4%,L 4wbq?=HӸsH:nNv5wpvRĉ }7qw|҂] m{swO4' QQaԇ*m̼q^_xҲI STk;ذ_ykD2rYO$Ĝ<+li'u Js\*vb<%72aQS 5ԼT֟|yѣ\W^0}}waaTNc뮰$XIHR]ɭ{rc׼פ&qWOuA2s[j3o:,e[T*-[@$zdS&z˳yNu4Rr_z՜A Eq Rhj(m/}yra 7S]x.$̊>fLL5k۬D3) 7%Dnmȣ(yFv.ݍȒ+gΜbŊaZ OIru:ho#B9W]O+`9t u|qFN}뮽C/|Rad]K^.F\Vq董,r*7xݣ;hw'iQfVXwaOWUP@7h r< OГ*1r8"V~}\.ձgKm$B|ioR|g MMA\'Ӫ<)DH>lM 8\k ݭʬ kC}w{qsH]M K aY²,Uҍ荾2x5g|ܸsg'hBHj7&8y]\wpH +>6ƽq c㓒?yĻ_΄%}k-ߵ*^@!+h'tSqn"e0]Զw=5aPԭ†w\UL (swJiR ۹#k ZgtƅUJWUwɓɅFM{+kJi@EBd2Yؤa*T*'i; R>j :.!ݪa*Pax Txҿ)1 WH@*R }4RrhD*|LTxG'\A PP]}ڣ* Mk5mĥ=>T 1eԻO=nuߺi*hLpoBB9W]O+`9t eV 7cd4ejeߨYfu$u.~;mH!{Lup !q\KԺTFFdɕ3g$< >wAzRhbU@*o[wǂ*#n=r4b z{;f%<}YZ9Wx"W3ъ/(}$*7,箉Ӈojkgvei4`|BHN*6ΕH.+VwY&7#9!cv&݋uIDATqj;ZOTUoyRޤD%Do'fin-$lok*g??5 tq.&i'}wr)ó\}fϽ{|I|n^ʔӯt{~5E[mFQI84`OoQIU(0i]uE>!DuiדJBH^&}6{\f{OcMi;j2[ ;j"ؤYT*- o7Qg;y$GB;fRƣM=L'q~V"$us'ɉYi%O-{Sj^\OOx~횧\[B2¦ ~L_\O6]ƃm-ziѢ.:44٪FF?%Ñ:{6_{nㅵۯԩo[/lnp;{}Wv:v5-to,muJwr{]wk@sX.[QAb o*JϟZB;żη釵/GBOJ2*eG6kIR|WJ vvvJxnsr~ˮ۬w:kAX}b)!}?M#(le, (jLF=&S !V?龪 !nQ~JД!]k8bC]"@uD.A[=<&B|ky}Br<:n)BM=>R}Z ^ޯ=i6trw9^K6wW]&d;07fc(rUTA!Xy0vQxIT H@*R T H@*R T H@*R T@*R T H@*R T H@*R T H@*RH@*R T H@*R T H@*R T H H@*R T H@*R T H@*R T  T H@*R T c9_``  ڣ!2 bW5 H@*R T Ca>u666BH``oBX# AZZ4,"/Gsf $yɾ{7M*;q-':_Aq8Ƶjle٦GBQ"|h<9iǎ:װ)65LRy?( E䄱#N>P3 aY%,a !0%R7Nڄί9Vp_Y4 L-kZyՊ Ѯmynjf:ۄNF"!Rj0,y)W4R<:۸HظHVIxKQB lfGk;;~q+bSˣ8\gTy^^?PRRޒ0۵R"PEXa!J5YU(UO> Rݰ"NA1 EC8.*Eqmd,h?uƮrsv;'cвd[OW(#)E,˰D!jSlAZ/ߴhXǫ7𪆷3/k~:R*TFG:) 7%E@b_D-nvN܆4@qY3Gu~]Jh(i`9]@U7;pjt|t??Cͼ{1rGq Pi^ D !eYZc&,mb[uSߛ2",aY<0ݢU=^7˦5qp96MX7H35'14`xW>Ui}{;K]j}9;$BH?tj^vcC^з}G{{'-إ`IΚYX BB|g[XXuWo=1d~ܠusrtOW'qm4m]o__|+"oϭ|a|[Gmr712r9ͿCw9K]tLD#e5rrM7)SUmdeV=pUkt2/=ji& _x>^lnE_3ׄ|g^[=kɓXuvkI%QMg,b#׺G{OSѭmnɹ.f~p8BHz]"97X~3F2}o18~m)@dccS<Qu{ IK).)likmVY@ tLDLFYZ*523|.*7;ɃdcnٷOU{sODINnݓ#kRU5uyP[CKk kjqJ%~f*˲9HDٿk+cClG{2hvMUa0[Ե_=O[fdrgX`y(X[ hWu7oוK~mR/brm\~7:ٴ>|hT۷O!g>y:A"={ҩS]{k~~Ѽác5oS`Y!;Ǧ.~Ok3HSu5t_Gˇ~#3H8Wb֭u1'CdSa8,U#zXeYBD\kqbrAF"A}VYK&l=qۡ+JŲ, áJ2?!R*F<~bf$1/JI("TpK+/NJpk/X@4;#C 1!*%TR|>G(d27&+eFѣcvvv@ ZRT*Ffee1 S4 |> +RLT(6m2xJ 0L\9R1* K-(߹PT@sH.5W\.-:)R300ppp* 3gϖxqqF9&&r[[V `􊦂P(+ji5Sh)RJ2//O.k (BP$" tОBBa#R@`aaRϊ0T TszPhȑs ހT H@*R T|Xt<(O7 $f!, IENDB`lwindolf-liferea-508e7a9/doc/html/help_feed_prop_general_1.6.0.png000066400000000000000000000545101451527772200247330ustar00rootroot00000000000000PNG  IHDRg}sRGB pHYs!3tIME,*tEXtCommentCreated with GIMPW IDATxg@SWA"Z*XF[guI=REkZPālD 2dx?DC "~0{sIsW!!2 21_W;V!efUaDf) 𵕬}YmV P|dZ.M[{otQ!\]VUw9!?ix\ny93.R7j^QE-c:T{)3*J? Ͷ6FkE^ ΃LH%m7{!Wnh8oɬ0Hr/CHmיy񒮦ZczudFdz[UTORSTmM]Fn٣15RGjXh)u*[u?.*~nUU^^Fy{?q!k>?.z]t1R%95[3JHM^peW#^V6qPì =iОIPPWH1w:%wyf-mEujYkMq6Y7z==9y<Sˬ O# rei.!56ˬyͩCth7 kXnd: I(8PCZ`i6p^Vbs8)لyeu\B._5eil+Q:!ĦD&BVK %7qrOHͯ/Iͯ8}/势H p,F)oPNQ6R5nVUW\/uspρ {oBm^& $(uWB*Lcןy!Ri]TW !U%1ꡠbSBKIfBH-sNZ^ WͺS+|-MaE-}E%QqY'sUd޹v-5-4}YAY^xեo\s?̼AlDC&9pXcm,,)x;'BOJEpպQ6SFXt1Ohz(+;h"qU>!dǥ__R"@{E"QRQJ}j} _5\; ٯ[l_4 |Fa0 YYYYYZI[CCv200 bYRXX~^ھ}˨hM>N8;D _ϯ$$$ TDn4 Y t: 9uIw7骭g޳OsֶںE_Lھ쨠h3H\sa ׬Ҹ))|޹mS' |ؖe܍iy2],?u]lc±]5ҲFNMO~rˤ޹B)gM.-;+Kʫ 6drt:_۾sr0j6cUbE8[ڻ&!<'{nj K69ٳqTmi}.KвǷxϞDI!>9hRqVط;z+>x̬7'r[_0IZ2#7q'g_P@q2`ɞg)٩ϼ3ϼ(feEFJJv?ǯK0qmg(NKÏ>jH=yK^:޽l +$ÌFRizwYS&ZNB~S-غspp[>/ůL۵ad7/Zlg^_6㑗[Wmw? [+5}NM>=6]8|_X&Ehm,**6Ռ>Į0')V_pmHwұ?~Km(+j0ks@qvqX])Edw̕eTy>)feͮZ@ҏ~x`o7sũs}c!vN^sᏢ/ۨNѳ}%p谿v=ɚ8LgDI%,<WFa0M/^h=U+xjqh{4TAA>oPoS_^fTbIU-!0mS~c0fݭz߉Cv8\ 5_bmm'Ty\]׼-Un]ON]*eU6::wurrr>~'HIƩs R4ߓWcd?~ob֌[sx+;0mm4#C;.e7"6!Fn߉qnC̷ĕ٫.o#ľg/B|3tYg^QiGBIUAEg6nkgtKxb~n`slCyiJYv藍Qˤkلy{;"19+V:}O5BȵbfIgL= Yd;7ycTgy-Ie"%oʪ7dm5%w.iyDTNN1m;UnOE+ڻi^Yߤ" oNg1B29h,fGg26u/:mc:T_5XlB6{RD&jEEEfG5?+,^`5yzdyzU+V9 GH!9'%jEsWWB"v[54!'aG%طr'91;kASiwdMWۓ7ƿ&7y+&[Fa|b}G_N\޳yъ8Q;I)^)9;olםOW{jVl#;Oe(꿐_i0R4Rw__M IM B3]&ˏ~FV&z]y١Vb<#L qj'/tu{?QW {[RKRNnK% 6A7Wڊ?澭k:{gn>xkO_հ8%I[>o=y'âj,fGaSęumKZrs$%ڮÖkY7*eߐ? Vn^>sGa=͛^Bn!v"82{}d')Y6(ZMf4nRMڄ(4%i+HQWG"+/+o@=d@Vd@VdWdff...MQi  + + + + + + +|:N1-=8?1LxۭVk % <Ȣ$OΘf1ͻi2ngH1>C,tu{~3&ғ#'\ -}8NkjjXMY5?'6 ﮫo7;;'6.TGW˩eb @(f_qK꾽e_upsi懯s]3>^BOj~yZ9緍ٗKGh#DFVAW Y8Mpap^%!dGoyiʧB~XAZ*x׽lvmqNJYS`mojquuq➠Hw t%Bȶ;u{\)U]c[ht_]ݮO=vj;mcfAK(N=.A< ;8mU??Ewڣ A_z -MCքa@||iY}:u*ز \=xl1mK t:SG8|+H7ڹیNBmSב\.6=4q~n-%dYwuD#L-BJIIi;iUE롦,]UɌNט:gp 惧i,i,tGYj+KWU2$^~Q/!hMmB#1>1wOzz~.,ʽ-Goe]?sŽUyzW9xldϳg^g^-}~FswF v><#Ŗj~8dxsе)ݹtܦ+%4;tMrL=t ϳQo/vճ[qh:(յOu5cxn/׷6P א-_pmHwұ?Ԛ&{p[99^Ị̈hlQ+mx]?se9iqOvXSOUZj2vYPᵸ\|VWV߸e+2z^QQp8o/}IϩjDXFRQ--.*;&7ϲ}L=3=y=:vKSp޼=g? uI}e GI5Y̨2į"B>•תL{GNOu~M7Kj ! !NJiB^늚 MJ [Oieo*9Oe_V-$DShW{h** zu쨺f:vRKj+-]e!Pl.ym(/-Qt2þϜ)npU1kN:LA}iV$S+b wKme}]5YTP,8_L1!%\Ajyӵ7͓h+BlhSg$VT]8ZKGi=ق*HYQ%EzT]\qX;iHa|VܩCfmMI 4_[VX6R&m\eiM-qcލ,9pӧH'6 7ǮYS?>7]m] ?\!&gnoy`Wtݔ%[jټ:ElUOKǠq;Cŏ0)#:x7y ֌>{outO=eun6+)%+Q?)bJVZ@ ~BzYDGV@Q(,,@q y6WGRЭ* !z)ML;ArYtMẎBdwFّc!4 ./OSiZJN]MJ ? 3)ã"o}vMQRש=d⍍Iwzd /-Q"+|;!2?22!UU%SFZjij5ux`QMȩ xv7]K)#iR]!\N4"jq9_ϥBϭfrZRD}hWdhWmv'[e3 r !\.WyB rlK  ~X)8݄]q)[G(Gy𶖿!D7cT;/c|b:q]n6<;wfzVc$x^ӶŮ~e%Ww&|$4-+-[e=R2SygLyw~%荴NQ 5pD/gĜ>AS$- z8z7`0֘1[SZ Ef3@~' `Ŋ222XV]QQvD:??y =`SY MMT⽬Jf,;Vgcߺ^#S invGskkg2o2[pߣф'+zd҉BB4XBQsUݗV&ďˬ~Φ}H^fTbIU-!Dh|(z#5RD;b)fS!DF5DnZUje%i|q2 )))B ; .,-- 5e.&;jOr_o9Kg0|Nmr n*,$)r9ͨNHܧ; m;buͲ;AV:\{ׄקhQqRqBB!dηݻtP m.t!񦦦B7].<+@AuE+wE=;5ʛ5Մ.S_}u:'֯OQ}oNE7MM'jګW6cۃbsm.--tRϞ='MJ).. ;vlǎ<ygkfm6O+m%w$e]~=2pnܸb@ssڵ#G6LCCCFFFFFN9ʕ+GԶ}1:`#8#y/999Ob@mcccaaѸ:&&F:_^?NOGĪς '8Eс-tu-=Кo.8agl;vhqsC]m^NE t6K/>/U D{Oq53:}q|E` ;+4m@GKیULo]ڄN#8b;C,S!:Z:C 7$8#X<ݺ:/iWqwwWWxH_>\БC=~14MtСC'B");v^ܭS.3J_Ԍ@+(*****jן vG̭-uʕę !e\RE[N[^?b]z왨^z9Mz –̄+V͛'0/&&i**ղ[EkldT$m2wx@tBRz*6͟o\:f#uImkZp NQ9"}97DYQOW/'&dQ0*ʬfӸ]֦ g e~榋}HhP~#+UI{ݼ býnXRUKwA!2uͨU]%v2"W[/S-NCy.U?1ݗV&'Ф;r8FJ5{Ninkf=!gOҬ5 5^]qr)}㱃"*J_H+(HIeg5E=*z=l읆2}Tz͖<`:t(+2ZZZ3f`-{e;;ϟ7.JJJE^a\*eE\dG<݈bqX1 |cKصѷu<+ǶM7gf"_Ա3b-)Nj5'KU KEJ1#VG2YWȞxc%;-p"!u_śO |?GFo]g~vQe\.0޽5$3Y\.q{*9{^jva a12ӤuZ#G411b0\nk~+HRRRF222!IIIcǎ,cu_qZm/L)8k&t졳rUݗ _Ѹó},Nfu;S,u]QU!k6٨u}wo%)yӗ!Njٳz;ZkkW Yd7{Vv2~osMw2 Jcj^b+r_(1N2֮:;^W}~z97Ϸ~[YYnll|SUUEQRRׯgښv">#kkkiӦBy >uvc ̀$ڵ ]INNŅ%u Wwp8C_Z* +@Ҧ`>ZD`` |o/@k?da +:qf@Vd@Vd@Vd@Vdt>wlvdddvvvuu5!DAAA__BgΏeR"Q6L\^\Ղ|.7.]ٳITUU !111AAAcǎرջ:w2w;ce>mڼ>QK~aWY5p8k׮9B⢯ʕI&II |rٵy A y/ds'fT]j) @+DGG> kk똘hrZGN=pd֥E]7RGKacY_۾sr0j6cUbE]{NS/Y;RW[ys` lok0dsiv8NT /dcbgLWh$ Y 7NH_[ϰ޿cWrŌH:.Sqt`K=^ouCOGy͈`H/PWۼSQ},j`4]?JZMWT& ;&BjjRkk디q-:=Wm]==;ߩKdם'i_ˌg7ѣp1 =z4}gGBӲn2;w~%荴N1ǖKx̬7'r[Pkȩ;KY{?ad Ma l8 `Ŋ*͛7q+VC~kBu7kxE 'W x馮+bդydFx}R&5c6B=/JdGHMFdQ跧[5j;)+HJJJ%%%JKKKE=$TU(g8 k n*,$)r9BWcs켼QP"Qyv;SA>E$Eb!B)#b}L=w YtO JMMMXpӋjR~}LFc(R~-p'YtUtj}"5>(Jw`NޅtܓbnDNAq΢ 5zeH((F@Ѡ]ȩF&k*N*ƴn]tPF3*~5K7+=qQRRR||mUpX#IDAT^ ^n'xd8̘P GFo]"~`*'=[i>g͉&|}kr#nf8//ʌ p5LՃe}EŰ+lQLV]۸%\SV^ -cזG߾&׹?PQ QA1 S/-33`Œ /kۖGGP|'N~3}ԻӎƏ]|YAJJjԨQׯ_ e0,b1ѣGy^}O޵?>/+wrs]]c=l9u452g=ۯs/Ӊ{ Zf3U_GlU!Cuyu3{p?,oynܽfӋr0504[wjA"l~Kztg}H{קb ao叜zgOk.'VM66?n):z2'7;eA[ٞAaX>ɩ"())ǿxB>::h,>v ̀$R]3/%g_3rڈvvH>|Ituh /~_YYYYYYYYYYYYYYY t:E_עfj"دOGQkvvf-ɴhV}-L /_-:ނC[ +|Zoq}6]Rj;/l>F ^Ws+d\8qxw#}m=>{i|xrt:Wu1`I&_(:pÐG`tGqֵpp-Uc|b:q]n֤(ʽ-Goe]?sŽBfğe8ewrl bˊK?"-߻N/> +1ϼ5m[JWN]r%c%*}q2`ɞg)٩ϼ3ϼ(6=i&;BlŌH`0֘1,//x lL41Oc544 [WtzL7uKVMш+hdT&&i*^U%tZvhlӵMN{`tݗ?d?uFFGۨ`P̱5TR'\נMCN]蜌! :$&H̩עimdt:؋Qj W ⭶w{g„Oi?n+ff7x8׾6}9[(SWx2x9!h4&UQft6[DȞƕS%*FB6R7_JUP̱5ӹބ4 cEp拏nF%TBDMEwČS^KfWwhmR˴z\>\mcLD;5оȴǠG^z/,;va`\0=P^Z"n CkBIJ \ƪξmVŬ;w2Z弹new&uӯCt}jpiZgh둂E+wE=;kӵ7͓h% _WOlɚJ% %ƫ+O.|OQ}DcE_`Nޅtܓjү,KfU!64[Dԛ A bZfB|$ZcO?@ [Z]Ǯ-}Ms{w?p9ɪ~q{cE {w#6aeƄzN8,i0ͳbox{l[t{fLq!eM8#vے EU7~޺jcEj #,v򗯴QDv b5vݟg9aSo.j(#*1kvͭ'r2x^m 25ڽ7R~yQGV9-;o5`EC}CV=T_`NI̩e>s]uY;TFrbdc2{g@(*t0r?kNJ{F7^b(bynܽf<{_^&:7 ls;hj6ޝQo.j(#*1kq|LͫY으bѪ&Zg| :0Am  N`YYYYYY@|ns``  '@Vd@Vd@Vd@Vd@Vdh 2NCC@ tqqiNcdxw _B (\.rڴi8W@֔++H_O_ĪfҤ:w_m@ȑF!+W]UKj;v[QS]eu$6<{{:jGƱ8rK29%uQG͔.#$\VAI]izLr䠁͚9t9f|gey6UmNejj̔6]ܪ"CѤy˭~as92]޽GQ}\vv7m7 ¥ HԢ6`&W[ Z/(-‹+0-r K&B6lvw1I Z|?ff͙=c9nӓb ?b # IŻp}W-*6L+x D"HDID"mQmI;ΫX?VRA @AP*AU`* ÝZRwŧٵ a "i URʦN)5n\2{9I>yP6<# mI 3@c2ht VzphND{bϬhkǰ9oT@pW0Xxq Ayyyե*kv\'ON?wpnVY^~ -;D߮%'ABK[ƜW@p_Vܷ}U#GNm؅{ݿ{߷! LsYb2M s!&Nb\EXiX}`bn:Եd.⌁v(c[ZOrpĻz$%̛~̫v/K>bpr|\bj֘ulGɪQ7$سnO]F LӔj<_새 ?Y%ȝV. 0kv=f;b,na?1fz#G 8}LeN1-KyC޴:'1bh8xMlj埾јKh?.Y|ކL5IqWR<<'{> e;>KkM|5׿$ݿbk IX9'̼^zŋ] 7{؍}㾮fFH "(HIC !Q9 >[c>;uZk[RW&p!NxaH#Ո2%"DE)e`ZNTTT<$uΦqGkC}ԆΞ:yzLQߤN&S{+xv`n_8(3c6;f}GUZZz9S9yqlswj6y $" KHD",A-Jgb-,jOONFJkSn=пꎢI}^)--Ͽj$z@M,,24\,#- 4j Q4_ڜꮬDWWvn46ꯋ3G^FwVNnl wW 7uG Wյq"D8PqqJ99HP5A?(¿Z'b* ԓEr䒁Q/r–G1(K+U98Qei TnR;?7ޡZ<9PTU:Nv]+Jp`*Aʂ9VsW7Z-mjk@Q -ɶFvsXFww_9y80BT8KJ{$h[wIYZ!oVҳ">\ljo>GSK  xk6^w`3Zx{j2Λt츷 ZrFVdkS)c$DK IldYYv]>dO{Φ/0B?l1` bVY7\1\!gdEo L&[5]x/ʛ_.qK=ۊ~}(Sok3r֏{hAG@,3}ckN{O9Wm۵Y'1LȨ7nguP/kv_jlfRϯp.ڴ׬HmgXxGU֟:Lm_! ݿ~)>POfC]uVsZ}gDzzZs5[hC=U9cDD<^ )o\G;Na]o]huq?t--nس;f|]b*X_3hMO/>b}:,!?I8r=~)VU Mq?,/rvnmw={㍙#g}3H77>Fnkĝ@tLLsDYO*;J|V }[O܆U~1jЂ5-]:?cz3c-mL=sf1ztÀn]Wg!FyѣusArw |)SJK!F5ԃ }(DE3Yi bRQ~RcZqCS"5%͍7̅(JA P6̛״eK-slUP<$,( gp[<`8iRUSnbujɡE,˲0 ]S!tUtg`0 mZ7T!C$yTd:1z!;Ƙ繨P@L@j\T$(]ߣSd2%$$g;РVTHO\-aa>MKJ2EG[-j Vk*(b0XM(R}ء3?#T@3 `飁@ @eYQj61 CELj!22K.9* T@!tx !m޼z]~~>!~7cSs YۗgBRs 􀅁֍vY7ڥWYa(~T/XE[[@CZP,-,!6I0 'x&\X6 |/bזw曀jnoTsm_()\ڱMG:mf"@͊ e^ dTcJWXBR"|..SA\*RָW}s-NQ~H|"WMWs#5-UVI06)QDzHj$WMG*+/k oA*@lM)_tʯ/mAg+=U.a3&I(jnVzB^QP @8f|GO+KG3F^/~IhidhcSc1م^$]}W(luWPPNj [odT5G„Ȕ!875ҠR\o9K{4^o3&++5*iTKZ.6 M5tx: OUdIa遨(sU5}B! ĿhGt&ħMЄֵ؄9"yeOT U϶\B(Xj zQ 6!d䐆TkUid).P?c  *0vЖMsn;ÈccA#_5uV.|_71r4Uz|= G _'VJUK&!L~np_\v84K|+.so>WrB3̑Q)Ҕ#7ciQX<0"遆(M%[\TzZXVar-Q|1!6K^P\?2@+y,Un^ #x(`򗒔 ztr%w==:Y訨)]!!$]镐G4!&Eijiu7-_B&|Έ!4I\wf:,F(+ !GדhڽNU6Eijwni[Wi!SxnNݖ};̱2SҤe=].44xֆ+NP(.P E JĻieyN Es}㶮Ub|! ѼVMW4e2 >G+SHzhw{ZIO{ި/: * * * * *a j;KQf[HOOGnÿH~nnݺu8 B^xQ{ؠA55t@7}@TD@T8*899)^e_:]&ul9?+JꇙUPM|{22.HolҬQ=ծ}>>a[NͯonP|Z? 9=٧S#lΩ]׾C=sSS&۝+0tI=62sk=wlnRjɵSjly^wn]ԡCnK|~r)|>-l$)ش]?nqq[v榦6M'-9$e˹{gܺˎCXX۰gO;;_Y'f~WWND4K=-uUGU״nCq+ťEs7,ptrr 9st]ݚ1myDHn[ѡsÆ%=[6quntdJPF_aVkCg$Y3lxeޑ);Kg\|ut3xKIתOE?r"rcOPޟ6tȮ$"7沣Ay{Aݛ4rnչƓ5 Xy.YbZ2-ҤXDTbqu:[}8hiփc>uqviucRlK6_FJ+[4KF΍vsTSFyRai Y^wVD+O# *Tف=aPBƳdAo4=b=xQ yNnVu9!-rI1 NP;׍[ھl}0W+q'uwQ}1mV徳5$ov` T8u\foNڳԦ.uU9lmS9"/[]I3/edG#O+}fo(¾5!ͳa%X4O"Uawpq|L-7lҢΑ $M- ~xBVhí'tU%Y8Cݪtt,Zb$^iРAo(zpzHxċ{{!I\.kj$%2Q4s[SGqI#cgfKSbȮ,sN0ïUgQtq\v.Ǣʏ{ nJ dއ,軸3c$+:R!uƍvU-j-4!dif;gڕ62 ^_@ ^sփ}kǜ{IHˍۚF<;atDq5sά#ʎغ2(M"4y`Yy`#$G/xқ¼NJ^Hҕ;٪(K|Jp7#sJ!UJEצpބBb-o=kTq9*u٤ n &*[vfSEBXsׄg-lW~4ΤiWXo8W;]HM0?d{ND0P)ёhێdv%d!z/ѳ/~aqgOZɎ(._r}%kXJOydʛh }٧Gvڪ FKS$@ 虹j%l׏Q0xjb'Ɵ6yM$W=ȭj$q"+^ 2.+H}SxwC2#L4Hb|ۮ> (?B4los:oM)iO .UnSjjOd5ۓB.uoو~+k}] L SA} q}1.8`h~JUU~)Fw6dQ hg2Ĵ(3yMdM]cq!q"Z8n+If;Yp0!K@o/{)ɛG8b836t)^A0[ ,oWU fvEL]qb sҟ:']aϯ7v((8X,zԫ_*UUg錘' mSrj} LM-btyCf:Ģ fa!uD٘ZO^ƭq?8ҼE&$n3pƶ\rSA;WheqX*j౨Q?bspDd/wHˑ&3}hqkIy8;Iu?ߗbZv7VQauO.ydk;BH6gֶJ-=6Fx҇MWxRV >,oWU(_8揿%(mGk>rp٭kv,gTQnlЯ+-Vڽ`Ɯ?zg2uY7Ixzrj;nɿ㖔Oj::tiLʜ7߮w=\ 1o=@keۼLby 'I77ϊeKU70*Ѷ&O8 !KrV7sj{w_7]ܗo~nm۞l*Խ?"tx{BIaww*BAw{mX6s<myOťO؇Mj' >Tmy+pΏg&Aҷ|>>BTD@TD@T“55=PmWZվ[>  * * * * * *g|>Sqx /[}gEJ-m]#S[W.auT.a;f.p!ٽ Po}):176lҡ_թY_{g !z4RWai:t۩{+D_7{k+ 3S󺭺yN\lSuiiea&Mω6&έ=6|d~ިY- rZ9?^ed/<5hЄҩ۰|NK+) GL~ꨠ8ᑿo/)=iuؾk<:LIeo`ݤ$aTب¾ՃmnVqҺ#_y]GI.~+k:"j5/I}qo dUcz3NT/؄ߐfu:O\L/6#D@TD@TD@TD@T/!_cJo;$ (ʅ]wn~oS#R/J(5 Uv|Lz_ܠ87)U~PFDa$OHH(**"x< ͛s8\AZx5)N\6KS׼Mѻ} .ԡq}[fp162D\޿cf&v.;PIm}ڹ86䐀fi U<Ǖ4:QϿgaf&f;. ӪS ;;OSSsȐ!f͚5k֐!C444=[ ѓ026sj6z2'Oeبqb+̊5|ml߀!kML;r#4%5zgwfb:VZ2u㩨WXDn OǂzI^[tn<!dĆ gN~^ORO84߽{Ν;r8ݻw~E? )---%13{ ՝س]phɡKfNiSZǟ.tԓ,fv,z4{Ǔ/r&-v/Sr7kC%ug$D_U[Zc {{M!ħy=!C|׍ղ^-s,~>ԓ'OڵkW"/>I &8hla]~](J% UXQ6^(hd<_l2Cv._߹%Y3Jԩ?(2evI?R0Q:RgX ,|dmfV1i:!$fPýW= Rv\>ETT#!ⓤ D/>I"899yKC^E?vREצpބBb-o=kTq)%p N3ALBmUymX`a~ NHuBbsdbs57QpkA)(-6l z kT->`f0~j"Y9[I >d\W#L4Hv\由{Wlc|ZIӷx~M?T-n66mЬy·Ӣăo%diQf«)ɚCD(.$p==WNdv`B _3S^7?pBqfli%S|qa@$,y~œm2Z7^3e [%Yavfbyxx;w.66UOO IDATާOِS=+:>2s0Xɫ˚JzHw\| QAY|>?Z*߱ZZZ<8qDaa!!D]]S7^9yf?_.1QwpMӪU*ųO *+TW~p)M@TRHT  * * * *׃6hDlR+} < IOgs^Nj#|UQ 1^g͚%﮲P(gY?OHdSn8ǩnO:I3_xyDH^G".I61w>âyɉ_M-̰{OWq=y,QqUׄ.VܣO:J—ٵیU^j|> @NgMӕ.ԟ^qF(9B*&2baFV+J5]s>olf/n. j]0SBzVo BTIճfgg{]WLFQUbs:YRYge-1:ՔO“SRB;Qʰ~ⅼܰ0[[ oY/o~j"9[}%o@MCl2P}ۛ/rvD(W^  sqqpCG[E iF>9Hr.{8- 7pOϕӾF:~_ 7e6n]ж lXiii"H$ٳ+BXԍ=s]3[V64Uhef:Ģ fa5ڿO܎ uZ7WM:99_;YZvaa_AyD"у !fff?7^'P$GjӪU+ r'!}@TD@TD@TD@TDzfΟ?Aիر#ڵk_@\AD@TD@Tq;w?~|?v؝;wD"wlpM7zv~ZZZw?0Lˇ^/bs L,3G'*l䭉iݻ|-,,.^8d D\>ޣ -)Ӏz߫=@M 5IpplHONN quuU[{yuByA{i5vi::ޙMNj%h5m7 QϼbG:JתOE?r"rck*+:WXaVQʣs\3ake:Nߊߢq ՞r_&~imVa8WE %*~U*_ږ?/;!k}'ǸynC>8B_[MOB*>3=w4R':=qYr Uұ]25430456|xvE#,չ~N]B$\:t1֐GhL{Z0r(0DvNg=ctO/hB!hJ#G݊ܞ3}ٕ/ K!Uɹ2wX$bӲn1>&&>}7!W-p0R#KI0arWi@iZ(sL@uu,CC s=4F %=Fpu[;S}-6#[~~ yP[Xױ&Du=!4CVnCuRi&~ⅼܰ0[[[K맯-2[UMO#M7K2"IHFh,Ʌ/|`ސ..FoyPx}ةs/.NQyTa _zUhxxXXM]cq!q"Z8n+I&o#еӺKһ:~_ 7ߚ/ҩ)^A0[ }Iݤ$˥Kܕ RE -*NO|w+Dəb?$ݘ O/`>͊&{gB_ $,ܹszzz>}(BJ[=˯'SgYaQ^fӼ$k؍Zϯ'ԝel{/2pysM,5j=zN5TU7ڡ/>VX"VU6k۷$KmPW{Oo?)8z.l` }[߹=PE]ޭ-[$dCRaE%hhh=:DT\"Y^-Ji\ [a::ޙMNj%?ZkUԍ^9`Q 3b1}(#CvQax/x_&ȻT6zwYdޫE'넯h94n1Hkt]8p~|%!N?.<<4lE G ^K.<~O{z*F;1MWZ`~)JRE8_y/ȿwȲފ1㩭vdB2|WSW°}UXm(g|f}A:oāBB*]0==K{ֻ˴-994pỉ!vJS|qz7ede]fc|Q+SX㌄eJb(TZa?C5ɢHBT.ɒ:Q~KFؼ*\ qj\~QuuKmQ:!cBYWMnK9\K30ze4h%IW;H߇̩=?/i JGqe%o|SPo*+ʙZ*?6<U9üi]f*\LA]UB$j~9SaQU$Մ2m Rf5>}!$m!/=NT_|QnkS'qɺioeF47Ət9eτ̌siJ4ERSSė e^GQ!](60,(f-fUXcO>/k_)74-&r艬CzlֲS7'sMI9ҥepoFl#m.;Hq?YْJhF3(.L䍏y REΗl.F4FW:섐{7ptƩwԩF(iCEy2*|'SUtmzhźaP/*#r N3ALBrrrJJJjjjZZZ _LB{1!̢xFD"XL40cSw__Լ=/Wqzۨh?RJ(_U슪+vBHVJ KU+\QNeI¼ǒm̖fDnU'N f 2.+H}Sxf&o$ɡ(EBW ^h mF/(5\+ Sۭ9 &._}C PGfרpMW㣠*UTQF Qfؓo,龾IU]LOThg2Ĵ(3yMdM]cq!q"Z8n+If;Yp0!K@o/{)ɛG8b836t)^A0[ [*5w1Or\ _ks[\L\~Sv dM aҾ{u^pB4-[qSw7tmZ7咴{qc_-ꛫٺ]Z߽*ëТ#7YJwqȑ ,*L[cmUzѹ"!ʦul[VXHA!4b\ݷMCmհMK.ISͫeجXa䍏2VJap]ZڌMW$}VODMжL/KUBup%!ʬF3HPUw?6rw 6.~cIgx__߬"wa@ⷸ6zӨt1#J|ycRyg.~~};3 q,@7xbWwLm{:k5*zpf"W|^!D!A@TBQ $@TD@TD@TD@TD@TBoƜ^̾l nx$/K޷;_]a"TjsCW~Qp |#<!~+Hy1W&Zļvӎ fE\֧cIK 863kv[{uh`jlи۲owƖuz2_(*zeU5SDKWE^_2^Rʟ Fe.Ie6UɖBu1۸ZwyT»z8[hUU!S7zEozgwfbIzkCg$Y3lxVC7O9J_Ap~ǒOPoGqK~wFhJjHUUsUx +_@M~SON*9|P[fn6χK/:HZfEdeq[Ӆzna>ϓd-%'N{<,ۈ^-ޮ _AK|qzE담*)?a@/t8q[=viܴMG{S I\뙄0PTgHGS 9O?QcNEM,Jj]0bL/q&TJt5%]tysZ9o9 ҷcQ`y}ͥ'7P{vЖܑ &!999%%%555---55EJοصVv5Yp!&]WbS+S|N>-Do.oBlJ^~n7颹s1Sfo=?$0X~#=7W𞺟ڶlbNV5~xWVBVmJ-QЗl8%YRQUDsv+qdaEop$gof %yUtZHҧzlHX΅9ۖ/|Q<}?X(Ό ];$} Ѣq\9ҮiOjGy4ä)r3H d?6,D"ȃLD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TDD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TD@TD@T@TD@TD@TD@TD@TD@TD@TD@TD@TD@Tz~~~,EIKK@$QQQQQ[`j:CCC !ݽL"H(w ?t < ^> U $KӧAA9  (KZy Vݻ!*OA\X9,kZ=i r2Bo\۶< '8{'r"& 0! !}:QfPӦGSX*%iHlggbyMkEGcĪD$w]Y:OUP" -NATTPOg'K:L\$SE8MQ,BsZ:?YRW74V蔜|-<WBS"R,:Xgbqqcm k^>X,ŦXeq,6b)VIԍ└jؗj;a 7X!D IDAT(04C4)1B1#1!ާATnzjZDA4EEX,b6* ,bB&ᝆjms'/eZ3s  SK;g 9RD\z$(ahh"4+$a\ꛛwi5q%yٯϴc=Drǯի3'a !Dc1uDOWuh+:v=Y7$dtoq&rဨĈ+v}q`6EŢ{o˞5T0 %I<:@av/vֻwlw(o~r._K�f/ |SWO#0 20Ok"F\ː"˱1O0),d s>-*|=eg|ژYjZn=z[`J[?jĨ!Jn߲h[&?x!$RYw=xmaҋ$# !VZ}V ,iڒ}0I]~~֍쭌$;A)6QU9,5U*EBuر7b╁ef;ȌҔ{ӧ]{)@dhh({~^L g#Il.Pl.12kǔS*☈iib#1b!hhxe(+ ɚo $ _IDVݒ_BZ;|!FEaዺ3JJSp ;SA:y3~]ZhT8DCp(.p9DCqٔ*p9HæħXrҪH`gf 6YdDY''FH?}u秗uÇ+s#+NJt -&""JM}$$0%yGRR"b sr(.vu|HN% j]0Sє:?ȬNa;ˏ|٫pcҋB(bB DL3"0 C8lVP®RE}^n;#nP$ l8X4Ci:ϱz+fF84j=t.I>PwVu {Hm3n(`ͦys=I01s$m#]79Rר);`67ݷ2sbC3de֡(f__gnsIZƤkisNVg?wNL}3n$O3Hovhoj-#y1X>|mc Cӄ,Su,52fW}x Nߎnv Z;F \acc5gN̖6:y9EhC|E0 COmOLPsjX&$(ꝥjB=CI PX,>"*jO^G[73a PSbi껤|nXf<4M>ت6gץl6UQ' T ?vDCP氈))\*CwmQmr #joq.m!(9.H)RH"i4"i4Bf˥f6ai8t1m1ZktJ.OOM`pTm-LNN-˲{.KM30v$RɛS {5|`ww?"I QEQNj"Iaz*cDj9ߪ]?R`Hiu^𫁪30Fvk^g{ ʃL&F߮*^=eC O=lV+8 ^ t<^ ^ /,{[yIENDB`lwindolf-liferea-508e7a9/doc/html/help_folder.png000066400000000000000000000006151451527772200220210ustar00rootroot00000000000000PNG  IHDRaTIDAT8˥NAYV4v$'ЂG0L)l,@k4KT*c0I؝bvIdI9{.,xL|}A>/*kZxn}<r<e<:=a]jvP\%?TU&!/&@vEis(4@ա"0 DQ@e(ϛ(T-Jt"EDV佢".~aV9Q,@ .D\~ Ok}:-߁18;NS&$t$yO@Ϲ?kNƨK;:7O*o hKtIENDB`lwindolf-liferea-508e7a9/doc/html/help_item_flag.png000066400000000000000000000010011451527772200224630ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  ~tIME8>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3XDIDATxݒMKQ8$\Fm$" DR''ZjQmE MAՙMAݜ{>{ Q1 f/R>Wb:ATp iqT>e`wĀJumO-|Rzw4)q푰2t 5"$p&iq; 5dz  ?UzwaN}v65,v 9:܇ L p $B<66hIJ zb٨^/mWGXIENDB`lwindolf-liferea-508e7a9/doc/html/help_item_unread.png000066400000000000000000000006431451527772200230430ustar00rootroot00000000000000PNG  IHDRa pHYs  ~tIME  )>ͩ>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3XIDATxڥ1r0Ef8J]s$ 83vrtZU>..u#$V_/iWxPV54 <1c6xdY6A'л` P@2@.&I@UUdVy/}~N'W 2Hqr>SMpsR^_@R}XDA1Qڵ~۷qR-vK`Ιc`yTc(CDtIENDB`lwindolf-liferea-508e7a9/doc/html/help_opml.png000066400000000000000000000014311451527772200215120ustar00rootroot00000000000000PNG  IHDRaIDAT8MKlUwg&(}HqjP(ZHj`#BPm{₍d4QQkV l( %h )-$PFJN;|=.A\;{Gv|3.tE^ Ź(&ɚ#}B;t>;8+O,hB $7)j ^P7.Yx k_aWj2M 0N,@LyƁ*M W{;n+"B1¹|{eYO Pu;[=7>C=hOٶu,l †5I:[SqyrK <맋ܝɳg:Q`8ڂ] PPچ(J^-/^Bks s\ʡVHӿ'};Ԍ[O(!T5 !x 6w+UUU/@r3x+U˹O>DhBt#g?tL04Sy)oąʧm{R <0#8)_鿊E_hKֱdR+Aa|9}Op{t?+Z9/T|eQ>h|EK e?M\q\>⅃~V0/@1 F[e&k5Z7 BIENDB`lwindolf-liferea-508e7a9/doc/html/help_prefs_browser_1.14.0.png000066400000000000000000001175441451527772200242430ustar00rootroot00000000000000PNG  IHDR`aSsBIT|dtEXtSoftwaregnome-screenshot>*tEXtCreation TimeSa 29 Mai 2021 23:53:41 CEST IDATxy\." ^(xeifffZ̒4ԴN-4NK0R35oEEX",7zky!/3 """"""""""""""""""""""""""ŕ&m[DDDDDnnh(B # )pȿEGySMDDDDDK^U ;96Kp6y)+"""""3!6y)딼f>gy f""""""8. ۠\v!亜)"""""77GQ.l&8;jUв42&"""""$eyrh F (eܼ GBWGi1#˙us"""""rqgLN×!Hؓ].l _B3d_BA,{^Yvm6K `.BjGDDDDD$#{^rf\{9bޙ0U}&"""""7G~$tY3ϮMG!,P $t{uf4 DDDDDF&pf ke셱!,G `F _,g^˪M{}t _Gf!̐:{m:9 gy ]Y-Y.G"""""rp|e W+}fQc9 `ݏeFC  ېGm+ܼz>㥄V H2ok썂(9 8M9|*Uj\07h4 R"""""Rl6)V51)ǟ:ujpH~b0^Ȳ Y|W42ve _KHƍ_)@bR)))lq`Ʉ;W\Y92r4pԑŚ5};= Qx݈WyҤq7<=WVJX4%"""""ʼnfj|2Ԟ9 KsSMlKDDDDD$H}U3+n!,Ӵ;_P{h0F[cq-m!lݾ '<o7#6k.Es|^>e")OKjW?4fͺ@u}$[HNGr%Kח|w`k@Mڴ H<_«?zVeƷB9G| Ժ-Z7eķPq{&/W*^rݶm­Ž\z!l?8w) Sy^XrݜqNDD D}A{s4 ?1q?~#mG=X&OxpjZ9b'̙ħzF?ٟ"?>)ĞXK=?a!f Ȱ(WK 'L/947}\VzzӲ|5rݟ:P:׬imĝ˺ъ\{ݩrgiRs_=i?ʤ1Z1с;LٮXB3v6~տFِLclv%t'^v]h?ތWio֙e wͤ=#O=^7?ܜJpB}A&y~2eǮ(~e˦߹Nn5ֳt_9Ɖ ?֛*Ayn ]̺ZD_'?۵ٜ͙G #Z-kδ)rc?lgf0K3vC])N?>ˑ0g˼BHQ;'ZKYq60 7y,[BJ˾'4~nq˾k>rE/R6S=GPD Wm+O+%KLޔ6I/ >5Bhۼ"8cQ ^*ݲ+!|(t}H> IKڮvpL;Ẁ+&eg`Fp={oĜym9rѝ%E/R6s+KK<.w>D!1~LgNFjW9q("Rـq&:dx*{xJ'̭Ž\qu3!oa-~cŘ>\ŎH2˜ĹCJt{x~D=s["9].})]`Ĭ{ )n%0\$hxc^/jA>XNnۏ僵; qfҨYNqmd3<&'>|ɪ@VL%⚶sW3Р᭷NiDDDDD'~ײ0 S=Xyىkၭ۷Ii%ëHN[R2, -Ӓ܌XdKfWa{t]&7;mfwoY &P|řo"\d#śX|/߳Ma=YDDDDDH؀((KQ$4 H!Q)$ `""""""DLDDDDD(0B&"""""RH 9`cb )bC )1ͅҎ.A)$ `""""""DLDDDDD(0B&"""""RHDDDDDD H!Q)$ `""""""DLDDDDDu쉌,.ȿTF Y* ADFFVɱM6u%""""""DLDDDDD(0B&"""""RHDDDDDD H!Q)$ `""""""DLDDDDD(0B&"""""RH\"W ~Z֣tOZW,ȿFX&^ÜM(dec1u)w9:v%fh38a+~IիBȀEL\x(6Z3`L-V<7G0oG4b₧wi*lLNxe nEb=eu>CɲTל}ɹJ{G.WH`+'%=?wMDDD(Iѳb-NVgt|[sy.]3x?olǑ7k–ØqēbRVxjr>nU|x_)Dꕞ l֦ O=bٿr eD<+ԣ]ϧx}0sv̲'™E{zGÔ##:?ݧ,չ|4+@7orٟz ;9jxé<٨$K9 ˶=]|B~qz=+0쏊RUBjaoqpDDDDHl]6EWo2b纭<Mxp6V23dքO@ , xM= q ,|m(7ŧ9κe?).Zqy:[lT_v%iVsqk{v>Y0*/`h(Dg-{y:.qh.NǃOei޹wv]:gw;?b_V)ӇvIl񎎟HiEr/7- ?o9k㳡ݙ#ի1v T2sq%.?JY¹Ͳ_x*%.-gpK2&pC>!b/^Z1malؙɴU~^);i;f{_ETh'fvpa';OCݻJ4 ÌK\nIp_#]g&:3葟xq!v.xeݪ#?ҝ;kx_ѺULY~ +{c6ج^uNr `׉c1~kGݙaT(S?aO2P9c;ͭ> -Bo>݇Ad,FOOd۶su0ӬELiYe. GA}tF@=xp4/ng74hIV~Xath]H>з{q}]w}Wv71X-vm2 W LTXIz] y/[Whon ?+&[pBB0-Z0wi}k׋2s'xoOS3Z4uPOJsYon;YπS\(Stౡ!p_殢O>Tq={>uNdX +EDD$Ue}5Ms>fllpyrw;r8|8*y^TjFe5<@ < t$1*@vz'Ì̌ Xb9{6x:W- Q1$8<ԪK]vu#_Mv>;vxԢVPfolTwNʺ߰ 6{Wh =ƼCX =oը!5zboիՙgܻbt.G}MLodշ'ƛ3׮z>S `YYd `hR8fRh8t-|0%dlsu;/ta' 'wuq}+Ҩ!At~%6 ś2e _nW+h^ I(;J'1.Ar)=0år5CuʆSiu;g+:JK")OKVO13#;7zRx/1|8Aڤδgg.7< 1qO;okȭMкN|nd{DDDD.?y2ϸ3,.WjN{ARR҄t,22FH>H#1& hO:u+CPn}.L.bI _1q k=.ነr/_yI\׮3uռ =)GFFVȭبvN|#j}1WM68K6 dzMN{ dX[%u7ׇVrdz5CBndDInf=k]ʣDe )8 Ke:=Ƒҥ>`UuD ?0wyR.s-< _"""R8>' 6q5׼qT*UBq[–͇֫`T˝cpÖ~E${q؀G8s&ѹ:E,'[ң[\:DС^9L 9}zay^t"}x͙|F~'g8 >>"\DW/L}QwCDDDnj `9BH'OgLT/wvl z=&zOgʒZzC oJk@x֘|z )n(_%Ͻ؍JE"""""wCI8DDDDߪ8O¡iEDDDDD H!Q)$ `""""""DLDDDDD(=LK MXÞ;sLɲ^ԾCnR=IGkœ S+?UZϱqDf̔ iAA\`7b.dLP:g N0W?6EBs^=|P”w:`p}gb1xU$qڡl}%6-D[ X>==ɳÛO䍻|) s2Uhiz6 Ԁo/+s;0g~?Ng9J&t g׾ϱ9[Cqϟ;ϻd(us4IcJ9ŊWGKwƿљ#pzǬƧVbq|m7:u \,]3|h=JXbp u־/uïs hƫLanyi?rxQL_aO,{v+.݋k8Fl޽[~4tc9:dWhg8͜ vuX9:Y{;N`~7?CҬ)taDDD)IS-4ј ϊҡ6wlqqEs<`bFM9v4݉T"!5֢&G2c})_8͞_Av_댈b!mZo* k 4i(6uRvΏEuYۯ2L+F܏4\ՋMsk-3P+OEONWϪ o\óz6S4~]' rx7jB]$mЩ [֭'f۶XjtjB);So=Uײ黐nV$cEaCMg/fZCs?) `RltUJS<?Ji3=6O.dzfD{{3$jӼ˶$T=~C )$u-* +E.^t#3.|9ǧ'Ƶ:+l5`.t^ZUմYqu~ϔy?yqk\9px4y,޲l-q5[N@mHxx% ;Ѣ~? L[}>\X9sU!6^U8d<l]mϛh-U#Yxl-,$`{ 4HsX/s!\L.`_?sFßKʢ?3=m*4˧\iy`TJUS_R` Ϝ 栎H^ϋuWи+C>˸ضh98z'5rC{ٟ\:0*BPᤇJmR=j-?/X&f4+_Cٽ~+b6Ȣ\B uM?7,8Pl<([J`AODDDFز&[Cma &xwg8Hwڄp.Ϸin/O]=J[8,ᩳйA \ #]zrwEs4];#gsFĦ++Œ zr<ereVW=9c|}ɾt[\+TwvvWq_Req!99^w.t3HG6x{jN[CBLZrT&\,o`03)~Y7y d=3""""N͊5%域 \Fʱmy+ß2 @ƕ֯/F[b\Wz8C2⡊5+ͱo7;}kMڦƲG{g0unMݬDp#7=h-ɭMQ? (h{kA8V>ݑa҄Ǩq޺cуWs~"#>ע(8-2s$""rXǘ4?]v+Ce8KA|1qk}_m ZR=s]qR[*oa[,\ ƥh#d|:)1~aҳ8Ԯ3uռo),K'ٱ8ݟowmޙ SFE9͊.nHgjx͆ |YXB+o`2a$?3_Q-2.\G~K2fRjV)OO/L=6퍡=^]{8zz3'2md\H "`3v慽0No6b(Mg/^{~ Mg]/#14Kҽ|џ19L\`7b.dLP:`ݹ[<>x긁B{'wԪZ oNeͶߧ s2Uhiz6 f]o}ds+?~?sײL,?1W;M)_|E8t!jt{cz։s|b+nƢE}4Ou>O*kˣOL]Y#)6n !} ۶VJ(w:J66fBl>^G 6q5;Fhq?->Ec1W'Z\\.aeL~ ٽgbg[~_f\ȧTph^ZMSo1\,,BQ⛭lM/@"qo L)il]e]lj>%,1]6Dzٹxn|㬟?ww'pP^>m1g13i;k ^+| @>Վ~穬Ku۷ x~%l\G3^eZe s 'ث,szǬƧVbq|6-xТ3}H.РGc*'=%}H=>rfin6Qch8n@/\pfϯoꌈb!m҂fnqS,]6lf7Ü]MxVmLxC9MVJTOXP!MFyO;0s i5YnƼc&gEs+S9~9g0ZmWNiON@XkfG 6Zf es#0b?=]ΞA q(Ј5>:6pKҶH%#=ed&-}/OpNLg@zq |ӂf&=)Kf0jU %)]Aie\=ޓ^۟ʷ `֘|z )n(_%Ͻ؍ۛ?݀o{.O,R@ڌhjcœK9jfxb[_ƍZN_},οׅ;K0kР)-\=歿1C)~dDZ\3{8gzqvՙ^a0wҪz}r/MfrT捼X}/' j~-"""& `%&oj?08~Oޝ3'4q9F0YLOgOaG?5f/7B:Ԧǒ>\X9P5C؇]k}}12nm03Ƶ$6mΔ W\]!111Mә͘I!99N3[ajGuwOd~{~W_GrT(lY9z$ksVcR^w8݅4--fTE4Պ5:h4[ڨ|!"""& `RRl|v{ }^Cَ8Wz?C)lRר!$<[vK|wMՋm(d'*'q4w~ЏYA])'%KB\\,P>Gu^'~i Ce[dӁsNa eJw;]Ҹ#O.ZžQ/*Uy[;ΎqvF#)Vز&[Cm˗z˴?=;2|ޚG1p+tcѸJtX/Ps3:U!>µD{޻Vۄ2c'^ݡep>T]?v2c<:swV&4ԓZ]E_[-}7Wq_R]walOl"a<>wH'6"Vbvlnܛ 9ٖk"T{r4b1ާފ 7Wln9W"]lk3R{jpY,8#frsflm iEDD$)IbI~r(Cg}gŅ~Tj"Mͅ q~[GtJלͽJG1:v,/z׌,ӚF|īRG`h 2--rK<0"I%+а׭X0؍W_:0re\<.LHa'_ۇ[_"l`ϓ0B>\\cлS϶^;8r֘#[JOBHk=mTBNdD&-s0V9`n%ؾC{@c"^5ݳ>G7fc=N,Eh:4}"u.65M݆͙dlq~VZwEH 笣wQwCDDDLLٜe/G] `""""""DLDDDDD(0B&"""""RHDDDDDD H!Q)$ `""""""ĵ; jrQΜ9CRRSe(_<{o `Rl=z84iSeٿ?GZjbٵr![|;ӻU;Dn6V{*@7GCCRlDEEt gİﲃm.o:vV@,rrwXFghLt$&&f&Owׄ X9G?0%1uWDDD䦢&}M-QȺ#AE~ewu7DDD䦣&}ޕw-dj|s1O2Q~a(8H^W,BNֳ긲eOv}И.O=Ge_k=ƙ6^2S.CqWZ92|ykr3y._]aLX+(]?=CK< s#tz3dBԽgo^#hD]˾3*8^P։qп]dGQcOB IХQL_aO,{v+.݋k8Fl޽[~4aB4-?PaNۮNlY IDAT9vW:v[M,eJGݮi JwD7wnLU0B 9AsP0iwaQǿ3 , (f.-FKޖLm/-K-KsR6wM\Q Wg" s͙<>9zxSt|( o mhI^};Ɍ#U\ID1iܷ ?iUZ6Mo|_|Ci:#C O=kTLE73<  ׁB! LZqWn sd`%|/%_Xcy! j8-۳ RNDžK )!\KH*qcߕA&~tdC8QsADٲjANI9&<ইz^B!n$`gJƍ|_44)-I)&?,?;(`0VKVQcCWbXի,_5шj{9!1qnf ({&x3eٳ;# =m8(J07R03/BP^:C!#I* >4?0/kTzqXPd4lHCuGRƻl}U~5 ".6KxX xvJͬ_vk`ODD - w•xi-pvORط? ??ʆبT8i))U'޾(3ٿ-PY5u Bq䏷ޗ`F5kDCB. 7\㉉+Ƭ {V/`Յ޾89Azv'ܳO=˳߽dnMq' <'AjXt&X4w-G@C8 dZ<=k. !_ع MaуeeU;cQAlr> GGʏsSKXٓtk>KS<9r=ѹK swjX\~emw-ESn3^qআΨJb7=҅BqL ^7% ׼ v}rѪ,Gf0~Jy5"5ͺף~#x_63i3W}JP۹aRr=WGIç3 f|>c5/ 7dн{E]K>HEl~%_Con[@'&NyNuS3s~)`њO^f$]Oû2kl-VbeS4`N鼩o{5^єw]Q5ׁB!W|IYaRUu|g+V;F%,nkrqVrk96 bGroSw]bcc cn߾֭[cn~cKddLYuO t_aw0B!0%4 J󥀾d0+MT;#+Wp`C XI۶qS돳&!l2sGʹD@@vRRRÇqq qkwɒ%7;ظDd1$\At6udB! Xk^gݯOMz ?N!{Sf^6U6Aޯ8uՏnW9xy3ѣowQHX~9%94|8f~!B=en<40uuxxx`4P(Ph4!;› p'n5$ZB!- AY,ް\5.M"2n =|˺u*'3Oy=oZ-qv./']g{/bjxi_Y<2dt2r(Ԫ8/Wy 5Ǩ#|d+Ii(l݈1{:J34MɔB!{?3jWXd(غL]kǐ`K{p_8`584}Q}VF2gx9/3J9C_Y_ `~ H޻LgB#ؾljqcƏ|&_vΐBQkV!BQl<*V((̂hJu-K^IcKY8`ߎv GalH< AV)&e۴G8pZ4]hЊ6mGsYdlh٦-5IN!Bq檑 q01tdN^/maDO)ŀ9OɤDmy {6d]}"ְxMV6Fn#3_?A:B!B1~fAӠGALʾը3yջZ3ռ2J7cSzi#zzn/ zJK#F[D?XbYAИi|X !Bq~ 8zMjd;ҦLދVvxU'ٳ(մ: 6pe,pذ^D +֒4C !B!n?I,: ƭxhz.@r{5?-~؛eZPaˎ `̂)La(}[c;ę^cUNp>n;pm1u?oES P88p#B!$CEn6_ ~W# ,e X5oVe/M<.5)1_}WE(ڊH_m1l(;WuݨzbddܞM:AxZB!B:5)*M d?5?[i7Xll,aaa7bcc 7uB!Bܰ%4 J󥀾d0+M\ 'B!D0!B!% !B!D-L!B!j$`B!BQK$B!BZ" B!BIB!H&B!D0!B!% !B!D-L!B!j$`B!BQKLwlYx> MB!I s s9{%Cz:s@cwt]=7锱VB!Y&nC5m'F%2;04boyyǜ緷_e r(ѫ[t;:zcnÅ}Zv܅B6.4 ` ״.3(!]Imq;OM!ⶒLJjE%\:F=zÝN+!1f#l8/;~M}k)ou7u.o^z'u(J 9gIܺ#_95]ֹ?/>1:K%BM0qG4>o|e yXFID5YIOBܧ/m{9=}oݪ-`O?ylK9I+f~v 3.=.fj\3H]ǿDTx;꒿x_E|%grgΌdmфTLo'u|:qa6rr81Zǫ׸.?__:gT16?u H+Z͇FG.쩡B!n<&jx&X*>2s{>fLy&+8{퍷-*.ox^/3sPy1b Ia˪;z,%r8+ؿ%#3(; =9gY=|3NFtR._ئY9 ؗƆ x.-Ư:r){#fs{N{iW+1qXp*řY2#fƳo\?""h~>#hPv\8@ՒQ3ѿCiyg~ Y[?7eIDOPT=ۖ%7tJ*5띱~8G;9<(C+>x4?!B$-`*C= r̬|yo}g{SF7G&;OIS9h I|ݍ<:m7Zx gIZ]J7sBFFYky/ē>C<Ơaث%7#`\Rܯ_\)ΤDKvwF~i Pt'8p(q(8ٟpЮC^tQ>iO<Ƹ\i?YX,5CygӼwF&7uۤ}$*^ĚO!&-`|JO?B3u8$J栻xGϪK9y8-&_Y76cjҏ.XM7F);Nm1Y!(?7YO|X P}L\G+n$cy(OуEKҠȡ_4]`Wvthkf=%Xv;[3gO{1<&$|O&s=ǫ_ku|Uj5j@PT|AP0!Bܜ:m^ʿQXX:{è<џ>;*{'|gf~h6§xp(IرB.돿 ;tb#V64ٖ^ ݼ43t`qdϧ0  '=>4]l^#yhڌff_gкg~}Mi[Y`4XG9a[6h"i eCgNsX|0vdYi^w۰PXRX>EQQY^ڛU_\ 8X5NŎԌ⫷UGB!DR҄[`$ԡ֘5 ŘCM=#궅v/ͶM*<2q*#[NClhF6 o=/,(#{^\J#+L 13 d36WW |5#90h eS\Z{ AóO$ALSsjc)=H_;Bs ֡y#KOl%8%^^NϣknJJ@{T$:Wݵ><2^=MG*B!nRGO?;a79(-o}7«bE~OQ cMdތudcCeh{̴`A7't =PҨe|~z[Srq{SI@X({5z`KUɗ9>^8Y+ -=B5n[w413{ҋlK 2.փek#ɗB!I[{Y 3cs#!B@0!}ȝAOS!BNC!B! !B!D-L!B!j$`B!BQKA8~g.W\;4iՑC]cB!.IO%P>cb% QFՒLnn.zJooo,,,LBqW0 *oنv)}?thˮY(ggQajG0qplf9F; bGx5 N$UL@0C͔e6_,JRZ> [7"F/ 2dp7#9WKHC_ =CՒh4:+LGr Q!gvAG^Z"k:­+-\Hڲ FfXrPy;N䅥tye*8<_̤_h r0|mD@֡$ #Pb$1 m!Ek )5@9x2S17RE353%X]]|^E4{1%%ƍ8"!u&`ޣGh`4>DДۛO>, -۴Er,X~/dXW[^IcKY8'): !ٳgMBqW?Q|\[0h):ߗpxTr%thU|e GJ@|D&d̿]Gih%6Ջ=/62ޏ]ِqL#sc~@F^|GEz^y:GB!-?0++ ڝcu]<6z# W6#Wνyqz+b8˾^{oc`?fAcc 1SQcCgtӫ`YvB!D=`JTPXd2c2{ecѥ3[ظ|՞v$n_˚mp܉F =?c?ڰwZ[&SU qE]rj -B!K\i/TX9ݤ =I5uSG|f9+>bJ.8G쌱 2}Bi]/B9Rڛ^ OmKConO&yy :?JP9~=z! B!whRT8)+L .ԔWljgH`QzȮdiʿ9qYyܷbbb7uBܛB!111>fh]R@_a2TK*3`BڐSpS"BaR !VruLֽ|\hn!!ҫ9='nd!B} Kpm 5vnv_t`݈=SEciyO[HC IDAThOzPbB&MX ZYUB!H&LHON9ra6\8Ϻ <}2ԦNAu塷frd(%8u/OvjvcB!HDaz^4 &U[#!Vv nt57.[a#qջ~7ݺ1cR``G}aD OVg_>lҹ6^qLx?=vѼ{γcܗɒUWÇųߥ]%c%F=8{㼾^_9tTSP!BܷLyXi٠l[8`4'`F8%-*ۨSpo5Eb@X+kI?[ 9vs^|vsyM> A1A8Y9N&~>NXj޸ǝ7bFIDDDwܹs7o^#B2 ?:w ƗGJHe [xeA]rL~ж7ELJ`VІfѷ̸8lmQőD$A#>>}`[ZeS q6ڽ#j;]_ӬU5Cvc~4V؟| _Ft*GhN8o:6^5y{^y&Mİa߿U֭[W_}Ż[1 !.H*5ƒB֦徠0S`wJسffoPM DR#CNGhKGt #zJqH+*:ȀM;ؗ|b`((׸?G5k iii=BҥKYf 3gˤ1 !:\0:IC?:`,Y;_imY/kۢ}QU8!1qnf ({&x3eٳ;# =ZÂ>e?6`<~:%>^psNZLi0@glffpX_ӵó}ݝ3g2qD>#?Η_~ctB! t?ܳEi!+;IJJA $"+7$no6x](m3n%ƹȁkyK]p2~"?bK5lHCuGRƻl]?\

GGʏ¡0~|PcO`7&x-j¥Sәi3{WsQGޗZлos?ɠ{F勺ҽ.}>e 'J>NL^1L/+^Vxu6 6℥(5V86iX45KxbklїL)z~x^i|Y?`k+[GI}G ?YFl0Ǽ#ɒ&q#thJ B!T|IYaRUu|g+V;F%,[Ubcc 7uQ'ɽ)nsùFZ@W鳴|W &c钫KtW{Stt5YdI-D"B!DLѣMB!J0a2QQQA!BZU7IB!B$`B!BQK$B!BZ" B!BIT*ZaqVJ2uB!]M0! ;;;.\`0JFFvvvC!I&DNjj*Ν0arZgϒB!j0! kkk5jDzz:gϞEכ:$qSTB!j Q)J077Gc4M) T*R:N!B0!(BB!)S!B!j$`B!BQK$B!BZ" B!BC:JrIdzaRaB[$ mY:V%!!WWWh4IǴZ-$&&"Bq mUɸPRbR 6Vw'Oꊛ&hpssՕdS#Bb6 7fP.>v#n5)0_Z8[m0JIMM5uB!]>J]8OA@4FF+"av=\ǃSRz|:GB!-rv^mG>H>3Z.]C1 gx>sո4dȸ1t$5/l%)-?frO _;e;}q/yh)8OcWf8cѿˀ²6>Ezfzk4̓ύ !BqWʔ{VZʺ9tk˱œ֎!ϽX,p,?Gp~9Cv E ],=U+@>dr/'Uyai1]y N9&73 9yQ|ge1=wo?e@ETB!I(|Hm !4e`)ھa]mz%O,e}XYdlh٦-5@ 4d÷2oNS˫Wʂm,X~x1_@^0#:Y"",]cWB!6 KqL#sc~i=8CD̗r{?xvW 'WTs^u>0KЪ,@K,ޕ):ҨMijˏqnąB!H0x(tJ||.ed2 j?EBB.~VH޵GLHPDʞl?Ww!BQ޽{Q}6~ac}P6"yrVTU4B\Q\ a7t¢)(PڕIoa _>nX/]*;5#7f7r=lpUօ-Xу@G/d)/5lTGQ HI&]ԁ@6INsEA NpޯE߅B!DeQKQjpt! t0LGgvoxvxA^>ɶ?2/5= tIL~z|ŠcA䨉 hyuZ>Ղ6=Yf抏 <;c,n4" Pj|6d7`}*Mz?Foǜ}zЕSv[icn=öؓqoIfkЛ^!w(4:6U|uAC`H5;z<}3}-ɸ*ȫ~l[瓑qwB qxg[]ݒXr20`Kq1 (Wܪ~b߶9P|| }B/!BLEEEE`m]Ⓝ{i}#8mi]iaYV./oODnmhFhEܱ}g(,.AkPaUߗV"hh}odx~!/.LqM۵ʯ [Wn ͯ;rW"wnam@7K@.>JcٲN=!7O\.U8< -Z?َ ;ۇnIM . NMhy]&ӿ Mq4!B>L0LTx4!519lLF35h]8!k=R€D}iiLuJ/{NR TYtl;Hi"|oK_!6Oc0z>HnmҠ1S?SvlNvj6.hBn䦞@iO`Э #15!BaJ ҢՂ!.fMJ~(Ԩՠ^y ÚH='ͫ=@UvSmi /!,O{)W.Ж'G}s:3a.եmkVsƥ:^HGoƺcҔ.KIImVי|dOcW-,:RRIh|u6~y} {) ;AI(B{ Q'8{: 'NXFр^oD}jhlue7C.Gm&69bqmՋ>!.y28C~ "T4 oOsW 0fveQx[o s 0Mq& oGNF7x!\|8,_R@hsEQ>Y=*K]k,X-~kNSՏּi~]G[+?%zLGK튽"ݜlşwxA-̒".ShR%v$(8<*նi*U^^!)\IWty EK E?8yKth&9Mtf,. |^v&L^;PKkj1`]V•=5(%[CFtPe)&{I6Sϑ+<_%Şi2dfse*+%?YF蒖ǵ7>K{Qs~&lv4"Lݺ{JUOp5;BQ[<^Rc؊“ً孧uǯ++js_dIݠT-,`ۧSҵ}f a 'k7_tJw<IDATƔj_A[)Q(P5cUߖ與KBCRrLNQc*톦0a1:\А8zv|j,(ȋK~!! TNTm+Wko_f?Ll]|ze⮽W?~FlK6E\6Ew (՛3j{]?MBSY XoShZ:mgUCV<*9B?bSy~#R|HTnWDdV!2IIZ:tH7b)h%%5=:|'m[v[M=;ሾ\-U^VTv!h‹14܂莽B2p&;:q)v IHӥɧ)[ז~e3NL Ј*w͏jEӥ=~%Q3Z]FHoRリJ )6Q:Zض2M$E[F[}2m5Td_kvj%"u,:h*÷/ `I6+*e}urB/JT^j_\ڤ\xH}@. Y;KÆΪ ]]1y۵,R'KdWőzc6Q_%F;.'վwkYe5{ R\USم*"Znڪ%OX()/5}c{걽N"K~tgxex]!jՋw3YWMds>k綺:p^" s[B<2JQAgvfSJʴU$)TC2iUQ*?q-c/8Q=|_)i@{˶7's72J{ mU.JlhoKⓕtX7m\m\dI:<=&EME/zGv 3JYQ Zv᧖ R%P|IR+~_@#D54.IyKXWiղ}ɚ8)Soj>^ӨnV 'U+ouIڲ|\3G(*y&&yh+NS3-͙z衙zκ} 3)oY=*K]jS\0 -Uؤ7*.RNh{] w[!vo^|1-HZ{{J+o}z.0ME^pXmPU-ַ)4Vu6@=`dPLee%:Ih\J]BtijSQzcr1 .o RHt쭾;wRgw{މRy-ަq LYz?EzhdVl1+LҰ~0+">C7=qEY!Wʲ }U)%ٔn}wHe <.يfЎHƟGx]sfZY ݾY˺j|8O`4 yd"0z43)ϿЉە*i⪩zd5HM5cսGzV'-G)R5@QIt=STOEyRthBWױi4wpĮȎ;NHڡ\+E1f-%ms#ѮqK4wLSS.RgԔZpܡ>bE販/A-_ _nV]ԩOy&_jqnڤCow%TG_,YY)nu3ە>M{HMݢd/86>*gSuR]~)ޤ>Z'+s5&O-==j>nwK0O[Gz9"m[Z{[OֽS+"%Uj"4GtEZ={,SsMR 5OiN:T3߹WiU?z_,)U-;?裡[b-ަq ee~=p}{ƩzcP_Y -L)uqgε~+! i45/זQIWKN?/X|w΍`)7koz ں*BIvhGiS=ė$mHe:kWőzc6Q_%v&LsQ;kF SfLj-=gv5vUBJWkhM3BZcbπ`ȢJUTHdI&%nӾ8 ^\OzY͸/ĉ^S0 {nrKQ qamܐ+Y/,-{ J:Nkզͅ NNVܩv7M6IRZ#km6A ڱTmEVtwM4'EhMgepuNvw@L)Kԣ" e&FEO6ݶ&Kү?'kPÇ l_nz4S`W (Ƽb7WsIRkWZ5$9Ju{ Ǵהaeh5YT5R ok=]zm4+ysz.l=_/*S@d[=C-4hҍZ;_z鿙}kW%\?S3Qy>}Νw2loi"U6SN}uQlڎ+~F~ o=z*1o') .AY5O0;n~aPhzjZf`999JKK#Ήeddz@egg׺%,4I%Y%;=VT=T6VO700! `` BA00! `` BA00! `` BA00! `` BA00! @Mrrr|= Zvv4)mzР BA00! `` BA00@*//מ={t1UVVz8lVxxbccE>V^^[M6С,XVhҥ|=$={M6!b(&&Fmڴ޽{}=0ǎ;h_IVQQXee%3_ bן# `` BҌ~@4 #ںj_4i,ԛH픪ߦ}= \~{6WƵ7hz ohqGw &B_I-ׯz%sg>^,[]vE%ӸMըaU;k/?d QY|F>bQLMv$w{>#ζQ`"?A=zznI0i;՗v~Ҿ7S53"0W[GU_='B~:^'WS=\4uXI^wOJmvOX&$Wz;u^{uF=_C:d WjK"-S+%I8_׊o{jF:]vI~~fݦme{$tIJ~Uyꯤ.ucƧ3z}?xFZ#N.C;U0kΪ>]PkZ0Ulk*%2n]&L5cn3(}ezbRucQ P&u=|i`f*U-SfeWYkCN%nmTΝqAjs>f_KA}^b۵S;e腛!̀M^^]ͿVvj"߱Ibה!--XCc_7Oɯ?'oՐҮ_ђ;)P~Z7slJRA=&SdKRPMUn_=hAC/n-KivjU=tHz蕹p{w>/(- BwQVFC&߬/fS/OwS57Y8"E&՝/Nըv'gl?hTfj_?+I|\m[R.V JlqsGKsT:ܼqQFFddgg+--VX,i6JJ*wzz^!a9lvsfn„ Yh#0#|=5 3`@ׯ_?_Urǚ03Cz>/SƩ _s8u 0o/,Ƣ.RΩm:޻Z,a4 VUf.zjw]S֩-\/hV5LëZCX=W7Zn맟~b&Vۧuu=9|8W:@xk߾}٬0o^!!!u9M˛[MUu,P???bRv;}-$,"?:aj4psUnL&z2ͭ^N]vC>mԩs\Xm׼wwۡist;b'n&Ur0W?S[ޛz̮auU*7p>s/W#6u0ogfX&I2;m~.6U=tzEGVI"ͦ#t4&M[u,t:ãst=wcpr]֦p,ǭãHst3bgEZ}gLNo1*3ůj?ǰ#SsXy sbf`u#1oD"M0wa6:&gߔts|9Fu2z| 35Y3]5WM;ǘ0s`w5Mu:g<}8\ٰ,ڞ~W[͂e8ƗYPmՏγX5E}ַ"z` nrbΥ^n;t7En65+܅XMaQ}Vg!)ªs`r(7?py 9\jqaꠒΌ07w#4*jGN筕톮n?tBcdUFPW)\)YCRgCjWvy7fQo6w:0w&r, @C6œv;N W$WqEpyϽ 1yx5Rs)\=z{=p.|"IENDB`lwindolf-liferea-508e7a9/doc/html/help_prefs_desktop_1.14.0.png000066400000000000000000000755501451527772200242310ustar00rootroot00000000000000PNG  IHDR`aSsBIT|dtEXtSoftwaregnome-screenshot>*tEXtCreation TimeSa 29 Mai 2021 23:53:38 CESTO{t IDATxyXT0( Rfe.٢fY}+~[ZfefjfZ"n 3(@a@>s{Fù\p-"""""76gQTZ!HKDDDDD 1w!.Vj +ptT`r@YAʊ@BSaRAWΑ]9VDDDDD$3WBRveX\Mجgv5LDDDDD$'tr:.epq_^([ysPUVA+1ɯte`,5иr ^9YnEDDDDJ8)deӺ+_ f$t5p/vVBW^Yna&F4&"""""-  _92W͖Gnr9| ]""""""ziav+0P6K `9]2x5 YgUHz삖+KYw+ sZ٬ƲjCvDDDDDƐӽ_y ]LՙS5%y ]ٽ2 ]"""""r&)t9H,.eay[neb=}م̮m"""""r9]م#]R2Hfb_vu:ήv,Uj*v9"|-"""""7XN#_UZJ[Y/gy `ݏeFDe|r ΑS `"""""7f=L[O)% -OZ\v̡+Qlr 8M9|z!+W9JK9h4DDDDDp9N#j=yȸǏodd?]62ޯ̓iJҖZ͚6}_DVv;NgFDDDDDD\f00LXftҦ_#""e$,mq{M[;5%"""""ʼnpJ}*&8V\&:9_#ia+-l]%iΆ("""""/'ѫL"fC9t*ecv.x浊~X( fU90H LK$Z N$dv09;/dar ^y_,]vY5j,""ٱԧzU""EhVcLw jם!vWccZ+))۩\T.]ݕYV 1sZTqC];Q9\8G"4<`r:N@[yڔ0nhPGX~</{Q*9h' vO=9: Tm y}O -o7WZHU7iJMky.%Lpc1q0RDf'Dp+Gk/;Q*ITHyS$_gcƿ,ʛDr" S9f>9yM""RhαG721}L}b$S,}wwo-_rcY>+X<«.ntgd?K9iTMJŜ[k4JsQ5ewVST,ʄ}>iCV}:Lܻ;3xϯC$}27:ʅw2}V80z\m""O~%_%@QW\\NlNϕ<W7 Gnr)DDDܭN=j3`L%9Zm.G^ң7S'}?J9Z.gӳ=ǺkU'8NkO4L@r);mDC e\'>hBGaSdo6VrǺU,G{""לotlp]yX&f XX?o#Ņ<֫0{ %쉫#&OC86$.&rv֯XȪ6k|F3FrG \#ySh^<|OktGm)ff0k̹KvŹ.?+7ۖ'y `BHQ;81 YqN ?(Wyl)p;XyǸ3=+/R(f:!+q+ fǰqG!Lɚ?c>O֨EXp0("RELD'*vݳ+ힰ!lӹ(]եi q/TkR6&-i-/[_2G`7/_I_kϻ[rÅcK47Yoǡs^T-qUoKޙ|q[6#9wBz2sO :ޓ.sPDs[t-#^^qW=aC2̄9ޜ 5ø<+#[) F#ɘID|~].`5Rb́?JcK$H<^!i8k{ʱ%g1HȽ`F{Ev`'`M]l^m@rbO8-LK pqU6<2>vlfVlr]WbjgLfZ7ʦNQlXo.vb)N f$V-;M!"""""& `""""""n&"""""& `""""""n&"""""& `""""""n&"""""&n{عUHJDDDDD$O,[%""""""n&"""""& `""""""n&"""""& `""""""n&"""""& `""""""n&"""""& `""""""n&"""""& `""""""nQ NDDDQ7ADDDDDQM4)&d0(v#e˖E <ۺukQ7![QDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMt}?bOp2m[GwnVۙlHe5q>mn*c/l[8.rAN'af<݅cQ[)""""ã ׏o-9h2k nkQqŊ9s׃<U}}cٵ$~NoQ?J.ö.~ݟD|k""""Rf̩iMf"k]g Xxhq{7J]?ӎݑ} YSn)|\K:L]V{F}oxhֽqb*n`$|*֧Óxc^y)KlxkNqٳ 德h}P{[JSn,C=l2sY.$)r?o}ڏ O&.௽#&3-}H@p=n,o3C26L?UL'E{=o~꿏}"|+Ԧ#Ե}/2u&GŁW)*V]xC ᖒv@sX1^Y0v5Ocxt;K+NtLN:v'ضp$Cg#e0Ɍ))H 91o-(Gظv897%}\4y.0@.p`NăW`K@v4eJ9 ^¸NhtP!!!/}iؽq&\8*iO-ce +vL?:ͱ8 ;k|L~ eC 0s //Vز|%uC _&/:6z~y5“$v͜$ ]ê/dЦxgْC ^η2 ̘, M8ӟ#~/ݤT\EŮX,6d6cl#~`lf3&OUDDDD XVJV^YofI_ȋflcP/e܏NN| Ŕ@lD~? 6?*CɊCFu ,]jףǷ켼5?DӴCi-kS;(B,X,-ӧ㡮Oű{(U v[Tʥ:;ǟ'E7(٤15`2Q?{rJըf=Jjck1{CUR^@bCe1}ym.@h3~ 9J8Ks!f<ۋ-xj+""""y&sp(Fg_g`8{x4w u͹O3K3zȀP 1ֲx7;y(ccZ#\_Ptf#+xfA$?;[?23u{BPN䧷}ϕ oVYV 4ߋ&&NCi<'$r8?Xw\Fh4atq8iEusRݳJQ7ODDDlݺ5Yb vV59u=[g%M;5ԬUʁ36l"Oθ˻'D v_xS0]̣iZV.[ƻQGPU}*\b{2nJ@\ ݔ;+|~ϋJa8p4Jk^9**幔QFZ^5M:fR_.[QߎH(Ԉ8u.dsiBS|""""rP <޽ -{Ѧt_sY"*qozx߻5{ԢWytimwj pRj^gy$C)Ӗ[_OǢn N,OL=q~ Y/[pG'u>d ..c(Gh a~^9N]Y 5[T.w."""""WOpH4 \$\ODDDDD䆥&"""""& `""""""n&"""""& `""""""n&"""""&zvbsr%so}Z T-:bc'?_\_qgbu/2aC! &pB'?8U_s6/oCWÞi}ki3/. 0$rhgȑvP.""""0&(ã{Sp zm.o!?n}S޼?+""""Rb'ϴf-a_t0&O-.L4Lff ёdLUf:>5ae3WVc[ .op*-L=gG˙shpL8 <btL֒⽸<āsѷf1u+ (L">95W0'p?1 IDAT7lh~ RBDDDD;uDǛRA%V>Yku] NEuµn~bG6/&n`'geY3NrG>]x/OXVwD[ ^+OY6 ȧ "\F=h,dMz[,mASFZR['Xt3_k ޒe-C(9|6UljRbY_ j+3K4Gtpe'lЛIg13;~önmP)s9viItT{"?џ֍Fݶ#+er BJ1C5qpf]gI8 """"y&ŏ{c TǗ>lawհ9Ӂd%ԭ-{466g:1=3{i*d]3Safp:qf//e\p8j p3FOr5(R|( ij""""7:͂(Œd͋+&p+C F2tm\ o۟KLWƫ-O<ʀ%1$w5%!qs}2΃Lx eynNЎT*x?͝Uofx8}jgj=,p:D)^ xg98[Ao Vƹ-AR#]}ێa&""""70)6;_ÞXT!0cMei2([1H-c"D&SߢD~iLESXHiܳ!RL%2WoI .>OϘUZHƍ(u9oeA1bz?:^ҝѯaܼ)Zu2aԪa0”՝%LcŔn̩V4,""&MWA˖-Z6;{,/ɀ C E""""r-ںukb-krz2`O8-LK 7hL]-;zWlѣK.X _u͟id./Ix4WM* `Rlxxsː4{9Nlbqmڴ)&\0)V,KaJDDDDz瀉(((ogyŻ*eS;V,<߭jŋEb2(U!!!xyyusDD=|vOP&-˗G{DH _{bŊrͳZ={{R~}}EDrq8Vt/v\ _^g_7IDnTXnHX,~9B5E"" R}ddE]xТnH ĉE b`%+S~}LYs^ϕ]p_VݮKdXtO ntHhD.Ѕ ԋ5pYL21yF}iCj!fZsp(Fg_g`8{x4w u͗ؿgUËvS?\{D"rS&""""rؖziR=g,*bCfMIۇs7\M,]u1{;Z!_# Y|Öӫ]J,RYȺ0X&ܨ{s_6kAp ^]!"""""` z1,K0+џ[/ 4l_sT|Dn?z61cشN$StBDžwGBOtʽj~z5`>Y֕981`0duP6l6lw36l"Oθ˻gǙ:fM#ֲr2:?@kQZZ^عδmH~uZRFRƜiԢyzGvF9GLp%'oAMe}l ])eū5ůMl߾ec`ɉZ }C& ğf+#x/߈ީǘ{ągΨWygB6rq?2c;ZT.NN\`ߦ9vy],z NÙ?m/h.7Z\ z /|{r*b#@gi$}2jv.Csx{@IBs8XDDDD&E&F#SM,YZQ#{WL`缓2?<ݰ{?˥L.md,mЋlZkr9gK6;zv]p2>R! x`.R69;m&}Gjv O_sEfּ/sW߳ŵq-N`κ`|[1Y̲~N`ܼ ;dN q+?:üM0I>%l1\\ѝ)ga+;9:Q/wM K^,B\o˹_\yv+1-cyg^ub[=_⃖|$+Iaw`w88\8/qkaWgt >A3SWП7M7v';&T{Dth_>}۷/7|sl̙35k[&"rS)q#.spy.ӓ97qmR&AhyKMl=`~5&zKڦ[ zÞ9|6UFn³l0aarߞ(Q-i^._ƿPNmq_r|ϗӅGh*t(rQlyp1z2Ux>GI5-pܺcyc.o<FgCt]>o^-nl=kK 5cT{饗9r$z{Ͱoaԩ;E:O)r?i8/07}qKR$:Dl{E_(70Ss;[Lll۷OY_\"**jwg$V y!,䧃ލ >ya|J}3#~&`N~OK&!3i$-[ƴip>r…̝;'R^"nI#`R<981`7]gԠpJ9O;pd<< )))ٽl?,,INΥ\>%{61K+wY+6E4 -^}S|pÁ0?y||hsWƽ :S_8SͳWRPP'Nd|?L2uHaOa{cGD$<̎r+eR66}lO:?]vqT K_L@uHj __umK._=WJUsIrH!@uR<>PW/:R*U-q+>p +%Z?HY/F۶n+>.\ ODD Gd)T*x?͝Uofx8}je(K@w2՗#wuGپr+gP[Rf NU\U)|^}c=TÙYhxDµsY^!C춻y\߳W[x$K^cIjPKB4*s_xeӸW +9X wD6x$G'w+IM %>Ўeƺ<Э&/éyƥ˙~vRTՖ>+>Pr?s1WiS#?+r32|{ܷVQj\zߐi=bL-9ՒjEDDФI"(""-[u3D;[nտ8d#srP-"֭[%,`'`l^Sד{őnqfZdk@#`"GY`Z"rr\v&gYS1&SH!ׯ_Q7AsyǼnx j()6muD1U9;zu3DDD ("""""& `""""""n&"""""& `""""""n&"F& Z)pVT)DDϏgu3D \tt4~~zvHnDD(((SNqIujr  *戈{zPzuN>͉'E$b2ZjusDD=072ntuD`d2aX0uaHnDD`0U"?U(((I1ω]~DDu[DDDDD )GEN8{v鰑5v[EDDDDD X8ǎX|gy7'UnfztSvt~zy?E!g%~;>c!+""""> `"-˗PB?,x;O܅XXo~Oy?9.ےƟ=iLN\ZYu"""""ٻX_jO~i7h~/IÀ苡P(q;|u^aty\gs?b1ġc鸃L{ mڴ˰<_҅Lh/xgw}.S 7g$DFr6W )g:$E }kaG3ӟ &8->;Nٓb/GԲ %ҝ1-sa\\̙jp#9gv5~< ,yyJ׾_~%DXʤcVżH3K3zȀP 1ֲx7twb `⏲y,>Ekʥџ?Q0ƴG\?j I]g,G;{'`ؿ?ޣ=ӗ?~@+NdlVq-r]fA Y|Öӫ]JdRYȺ|uauc/=-C&:E^pPJecSDƵF4 {GZV+ ?eGJӾSKJS Hx#9<<\k{h5a#mysL\]̷p?tIRf3f|mDP2pj%o΃l-J9OlJ+daÎ=TWbdh y4Xex2owtGIsb ZL""""R\,73qh:ּbűc%fHN4(EetԢRzGٌܤW.OSx^6DI}l D|V_xmfM-MO%ͥш];oi_{|qX,X4I:42SfDӇrkQ3 *w)""""? `^y{[M=T<ijDUN Fq(ét{wZ*ғ. xG]lٱmwV$WS[|jUJ>#qJ.{ ~5W칅mt[zec'(E3j<"""""EE zcd|>w$b $> dh&,_^j?҆>!f0uL^vC ?ʔoDдKWO]ԯoӮϏJ-ϙuvRTٚGvr\n1dZO-t`N}mdZa4i$/He˖E <ۺukb-krz2`O8-LK 7"}<((((GQ7@$Ü:u 1TP0F=ADDDD70)6>L\\͚5ӥcؿ?ZjЪsld +?Ǜ}=S>dz]9#b<-1"" {^EaNB #-+f(,+,`[ (׎%t&2 IDATD! s]5g~3lstXn!/KJJbݺu4~HC<}9o>8NĮT~[}9wo. V̟ßx N~Z1岁\|r\ўҭ]H+s_/,#YϔJg->(I{00vU/..]J9[ᦳ6aKYC.}Y(뿟#Eנ1DԡY|3V s5׿ݐYtNz7kFՈsEw,3%IRtHXS.1VP8OVTpcʫB4sryqH;XރNIҡ/s.^^Q=IrѝR Xxdʇ,Zq`Ͼv,OǯṋO3_ዱ v:Gf|Ȓ QMZp{8 su3Tkߕ7~R칅ps60\eVIv@%0?yRK: oo:3C\.hXgώ_o╨sy΂w N%S2bNF%F[kxIm ?bU˹qTBT b5 n+=/%aUGx,7 ùVDiOsq4(GQnRUܾ[jM`׼߹o^ Kis:Ժ~n+群r5\tpwQM3Y=X(}g*4>Կ+%o^tn%],yb$7+.1l\ӿenHҡ n=y4gзxqqn`&6TQ&hg79yLXۛ{F{n/Vc!!D"4css}۴j\X)S,ِqAޤ1~$RN`_\|dQ=K)*GйC2p$93Z)߾ZeӲ}m׮+} غ$&6,ĥt}^l;uի5w.A[c޼m: 5vԓ')t.;߄yvJ^/v7㳳η#i15.sW}3L]Dso$zR3#4>+o)Bέ̗"i n$wnuY|µ$mxma N5?GcxYxi EcYzy:[mM;rkZ5X"ԡ6?_J?+\ҝ9S1"if6o.9Qc3w@4 4ri<9^159ii;PY{tO~@6|? gU6+=z4Vq&el|`?AlYJk/cREnI!L[FXYkߕ\%o<=l%I%0U<97OՕ=*1` |&:vWsZ?N1k$@- @:]\N9ELj!lBDGGmbb ;+;ǟN%봿p˟Xÿ﹅!)sOڧ,9s:/s&8%S5ɍuZhq?F*-vR'~OؾDCCXsT POQJ:I&Ydgr0IR(0U\Y睟iwѣL4)gH6{c6QM:dCS̛I86Ow|Qb2q@k̝4 &i溺F98-BHnG|-Rm+\ܛw-}Ȼ?fNtmXݓGcClڜi,]͚,կ|O`8S}* OJ8Lr=IS|ЁVm|X}K9lQ FD* zjOKfⅭBP\.ҚSnʗѷ9|31aw{z3Dz.oÈw2:FE&ydx-М6nwœ\̋m,'; _V7X9!i>tlK맞bz CF&O\.87+_[.#sӚ2#(8aY+~U?!'sьv㜷(8D5ץ^=X91ݚj1O!])|CH%}K:~> (M\BNM^vI@ `[ z =w7rR/O[ɎI>xklEs.4z?͐Px$/DŽʏ1ݲəJ_ףHU Ӊݔ>ûӻU2:F5)Op˿~%#25$4?늛}O0οQ.g+!' '{8NhKNE L^zf]z^FSk=?-$NqGx&?'oW%>.1TR*z)Ν;RSSѣ~LR[C.zL.FT̙3Y"&&f0/,[ZNP hvQ004hŋIJJ"..朞Β%KhР/Mt,9MU%r>?DEI#ZTv>ԯ_oȑnYSf;SVC<1WGz$IL8hҤ Ц4#""hbbbJXR9J&Cg%&&0%I ˛?$I$)L `$I&0I$I $I$L$I&I$IarMCCx䃍lݙED\UjjH뎽8A%I$?\eZ~i}L c;VgNexp_]J$I@xڵmޡ ]+`=th+_LnjϛIG|'ֆV2 >_nѓsFg@R|M&= 9_YwKI$IC3dB"ǑleGYp(׍hO_jVazN:.I'xf;I Y +ml^3I hw 6̍c?֐kk}ز T6Mo༫ngx42oDi]T}$Itf}/'x/r 1sChtawL?w:.NE'I$whNUGAN7ޚ[G5)C\’HÑbVHפy1u̝#%7I] mSI]G7}&\{NNgSR234l?Pl~~,$IC3UOBBBzִܘ_7qO @"" 5ԣG<iO˟O$xˍ1x;ΩYY!ƜݜJDScmv?B:eq$IʉNz6DFs9H̼+ XP9)xɱbG?s6_;II, ^-C:q ,cVc7X $4IxZ]$Iu5| t[Ɯ_-8υ׋s塜?w/I;z 8KsߥѹsgCӇV;39oxܾ~sh^[FDZ;gĬ;5~GFtFV5~WG$I~rZ53KZ hXFg["I<,TȄYcWբW΀{J'{x"c9.ifL/lY_fڭd֤a^\AE%H<3B:5PNL$I:DSDԢZ% :o옑14R]TRSS֭[y!I$ڜ9sJ%bbbF 2+o= j9A-P ^0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$IaR ЁeyhrE$IhcY|BUDdgw9R *M!:2ww9$IRt%ZIZ%UHdZBTd^ Y]$ITπe} Q-RN("*Zw""7.r$I `W,8d~!r.C$IW2 DFw$IRt0I$I( `$I&0I$I $I$L$IV67q׿Vw!$I@2sd"~~FaJ$IҁRy>;p̥{i[Z 'SONtom$T $I$H֍?4u&"s[~Z {SG?_-"%I$U`PS##8(N]9放$4G{Sؚ@L~}͊_iк獸LV3Ǧ}uۈވ?-'X;VLi4λsSqSn};V2 >_nѓsFg@R63*oUiοj(':&I$VPart=:Mo༫ngx42oDie\ý]ÖhX{~]A:m_Ni9Х+G&{vk{rKhSy_։'!_H3rItv@6?a۴rBG$zt+r.sp݉.K#I$ !'uw|ɦqgo\ɢpi >e'ҳEݦܻjpKX^s t86SX*zѲеSu^z?ҝҟ$I02]f$\3 ]:O{92k]1W<Ęv1xx|.]Jъ ;EClw$If~XZ^y⟬ڍ{Ն&$FlNUͿ\q4N9cej̟ID3ooᵪT i۷^CBIq7w%+*'%_d_KH"$It8F~]ɖ5Wye=N}u A3bB##:}#+ҚpFĭhѼqY2Z(xaa׻~dՏq׌$ҒJ4%)*3ߞ?p\^\<WL+DΐxaMsѭ`JINfxι{$IhPFT{&7\;Ș*>p: oӭqo%]Ԙ/?=/]>G~e9_|Ik[{q_Ѵ#& dVwx=.cbn#jC:\p$ǵFcyD&˭B=rp>H[e(֦׸ r S$I:QDԢZ% :o옑14B+7pxivV3eż}"S%l95Q-@q$IeΜ9jQ< ,[ZNP h}L$I&I$Iar=vIray!I$i9&I$Iab$I01I$IR$I$)L&8dDT.C$IuX<9wH+*$I `d/H~ؙFT"k'g.G$IVc"O\dewISh"Ǔ{UH$I"T'~]!aʻI$:(§Ҡk$I*0I$I( `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$I.@{i]u6&G?:mY%I$X!n!x7@Хs<; eOpk/zjz_zcmG+~hzclVN?|7 x͑dI$EN=TWGrnzr Kkӡcn "GfŬуW͆_gQOΑS,ے$IB_ލ*թUujĕVDQFY:oU>Y Tgߞ=z&GmdK~Ը\OF$IR+i-2EJ@t2&o=x1##c|i KMM%%%4T 98z(2RSS֭[_$I[s)u2ˬ, ;@/xI8 ];;Yެ~S~K$Ia; ?VIIPI$17ː$I_9"I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&=4K59]$IB.}8f0@Z&DWEIяG:*ԏ'~5"V$I!n!0H'=};Wg^e]lwm*)tTd)={}C\> ]B Ӣ+7n[_{ VCז9i?x3e]zб҃|6g+\r囅QtH/%I 8~FB7.՜Z}tgJ<0sv=yef # <=]rՉ9iyhklgmtLsB=88})OG%_uz[Xi$IP0?\˻W:jסN]1G1}>M;~®+VX w6SFrUI k]sr!BSJϾ=yo~ZD{$Iʇ ZڴI"jڣFoS,zЇj@wXՆQc 4cDc63o Lśegi٧7VI$IcDe)(N;&=8[ -H\̛S&u2[sxA q wL~O2rٖ[p^4&I$i9V"9$,كΠCՍ?[ncӞW%#25j'кI0XI?&+Optk7וٲ.O=rr$IQaOEXnA-*U1yˎKSXjj*)))٥bY!׳~ 1n#~EX9FMCFqA:6njazN:.I'xf#᧗r v[VakfPўʙլ6wSoa58 +xpmؗcJ$Iڟ*f>N:z2c_+vJ:ҥz.]9L";FlO⦳s9Æ2u' 1[69t ԧR%1~aLJe'ҳE}zrw|ɦqgo\ɢp~8$I2Q1XhѲe!π"&rr!(iۨx;ΩYY!ƜݜJTR%صkWHh1L6r)I$<90q"17w=~HH")n3} II_S`g;gbQ._$4IxZogQǔ$IT*U|=r#!O\OpGNj׀kht"=[֡n=y{|޷]b_y('& k䎞hѼqY2Z@CIOq &աZҹA3bB##:}#+ҚpF{LI$Ibosw-"tl ;Ft<\m"OwOK'vz]ٍ-rٸz$?G*Od¬+jу+g@|nٲ/̤[ɎIֽhw&䮴yb|3*kQδ[B<#5&p DרOC9ĔpLI$I姰'" Ƞ*y˘enj),557~Jnʻ I$̙S,3 dYyY@vP j-nO7 $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$IaR (NjjjypH3gNy I$U(lKII)$I$Ly $I$L$I&I$Iab$I01I$IR$I$)L `$I&0I$I $I$L$I&I$IaR $IZm۶]t^:M6%66)L$I*g,ZFѼysbbbʻNFF7ndɒ%iӆ.Pނ(I$UVѨQ#7nlK1114nܘFz.H0I$m۶zwBzغukyQ$$ITβ*#1113t0I$I $I$L$I&I$Iab$I01I$I6[Ə]Hf$I¢?⛵;˻ Ry I$)LWɼW,]qiҺ#Ǟw9v) 0I$P<똱x!ѐX[2 `$IR~3oM筭sV1ƿ0Ӳ723m>#S>dmDToL?ctϞ}ߝ_b8,'CF]Eĸz2$IT?oIqiP*a'OSvre72,1zLJ_CsOrnHX.hX'ol=7V!mqύh2}$ `$IREq9 ukB=%$ -$ե;3oC̖MlʩNǣӡM wϳW1i5wIe| $ITQb1kӫSn "Nj3En1~,=i<-kNr23 dQkN ԑ&I$Ut4RlR ADD1D5ctM96t&C素Rt4TⶻV;&I$UtR8OMVeQn ~LL&9n3sSW̝4m8tȇ0ՙ754mN4IfhW=tc#`$IRG?] n/ΦWfmei|>#֥^=X91ݚ!:V|}o>Ìvwob~Rsh٢>qYH]ڵׇ Mn㖨 9Ȇ <y `$IҡNn}fGL?] m8 4Kve;_0 c q/Pe/?>3`l"Oؚ4JÍK<Q$1'kF:5Ьe=C6vGgDԢZ% :o옑1~$ItpKMM[n]F1gRRRJOLL(`dXfgA-' |뎀I$Iݐ!CJfڴiaD# ,%I$/K8L$ITݻKPth$IYX̾P 4|I$I:c:XI6|I$I:׌7,: &I$`79s_p$I$**.B **jov-)kJuPt$IRUƍ˻ aÆ TVmow/*sW QX$IT vZ~'GRFFk֬aݺu4lpoyf_ هH$IZ*UHHH`Æ Y.Ej8éRtC+[CJ</G$IbDFFRzubbb&ϥATT111DFՍ~EeLM_WŇZ H$I*BDDqqq]ơ`*ͭ!睽 }L$IfrNasuaN&I$I{{ +,I$IҁU3a\XQ݇.mQ$IfrKpۛG>e=`y4%I$ȂWa#{=`~凯-F2g],$I|OE ae>`Q&"=H WJX bQA}F8^Q5I$I:t]EM[V BZSqψu,% ^ȼ킃L$IRqJ `E=&U0X4Vl{5,`p+j)x be$ITPXa!ѰVm{%?|RW /@n_ua> ^$I *J#]Ņ⦣/J fEUk QF{ +/×$I5GaѰLQرKzmnA,j/[&8|va($I$+6eQBXQ? XoE 5OQ(XHVaA`R,/$I|EF7gEQA+ ;^u|,?+*QȒ"~$It*) ~瑯|r b va'4#_.I$I%)vF cmC~KV톅~X !+[ Δ$IUQXa?B(X Ul+8\m/I$I{#I9BiEzXX!g aPWp2|I$I*k?֊gp ۦTX ^e$IT+JP `_/*L [z%I$). < r$I/Kq_`$IbCWp%$IE"g$I$I$I$I$I$I$I$I6E*tEXtCreation TimeSa 29 Mai 2021 23:52:47 CESTl IDATxwxnB !%&M  6 ޮ^HGtTPz)J$g$dMHyy2ٙ3l9""""""""""""""""""""""""""r2\uȵ^VER+EC \"""""r@Vr&"""""rU ;9NE+""""" Mo#8s G\NYœ INpSR٢~rHq ZEWR*S+k)\I!)"""""׶Qq0V㖨,^1)t^`VE*mq& b^k3ᨸkq6Gs"""""r)Ņq gLi×%'LDDDDD)) B3:Z(J ZE.gXuZ(|: N[ ^BE#"""""(h9>Ӝ `nXbtL+ ^kCq~&t Tgq!PVCK}u7 DDDDDRMQ\貑1lEq R))9r6|X/j0VT&"""""Gr t Cm6Pt+6]nUT*j)*4ߋȵV\Wpu!t]XlEVj `%ݏU԰C#Bx7o DDDDD]zxa=PB` ~?k.pr PqSׅ҄@dDDDZp3F`Pe۱llt;vl#pq3QrJ Y/|W4v_]OoYYd[,XV2މ8`0dݝuo - 'pfv WzI=^WV{ãù,99l%("""""R~l69degU+80'7,⦺/̩a}ƒw)+<WQ|6[zDDDDDJb۱l!/W g! ^xA,msXHɵZM= &( fkym6`"/pg{J `^Q4PDDDDDʃ5\me\8R$辯B\œ c+`vaݥ""""""h37^9|\#$ك2ŏ 5.wr ^Xwv6D2/Y EW}}-aYw&~X!C +BzDDDDDLFe'۩};#3 3٘Qj0R/(yDG W^EDsF\1_p:zbOYͬ""WNnɦo91EeJ>zDD*x6p'9Vpc`SxuiΗsh0=޼?Bjb*9;mOv3bYL9,Ye*""H!Y_4n+@mdkHi{ʤ9JMQ/""2>xח{X6 ݢ15ieb l4-&n@d |ݭOdfZ'zEkv2GwgƳPC@Msaoΐwt+^SUס.=kKuw;i'y=d^yn%xS,/jdyB`ϵ=MR@_S9%NKQT).8:FYb.&E0xn>y[3mŜùg{`wmXFŲ,~/4`6bNxt噏Ӣ^kZȹ[k4UïVX;ӧvCx/ a'K<=2~vlC FO<#J#8Hw)YF˹[DP̯0`7H%C Ωs&ϔ9|MQf ְ1 'FV&K ٱXr,Mˡ=ko_b=DY)^F{P4n?# ߹Q u,Zt0oX-LuYϺaԊ?,e|8Y\u]ݩ9u.9`׋CDDZNvhm|e;?[#ZN|i{if(?5%s۵KtKbKyͱht5ayDZ[LLp ]v-Ѭ{&x;LD*Xߔuab{.9b7J &"R H^˼EH9 #_fPKVD"=u/MJn^:~K-t6h\#dWG+iꍿ +ƿu9uЭ}/uq!>@kTwX=_ +r./(C鲆^PDDQ̨?&-{5v[\eLn>#O曑)]7Ov D3;wOS?¬98NjuUv.R63t}LcH{u aڔ0O*:E(Acuaqɷ_LsfEǕq"""""rm̒w,¤x:Xx`KN9@Śo[셖 tLDDDDDR,Mvc!*efWe*{4PDDDDD݄x;f$w*Sp(H*ٍ_LM] >v#!ȯ&$[n=TƃEDDDDD.[BIL d#gs 1Û1T ;p*ȩnIiJ&"""""RIDDDDDD*H%Q$ `""""""DLDDDDDTs**+RUVU""""""b6+ A$ `""""""DLDDDDD(T0J&"""""RIDDDDDD*H%Q$ `""""""DLDDDDDVuټysU7ADDDDDRZ& `p^k͛i׮]U7CDDDD6nXMpHCEDDDDD*H%Q$ `""""""DLDDDDD(T0J&"""""RIDDDDDD*H%Q$ `""""""DLDDDDD(5$]/eODWrM?}[I*_%^G1 `r Œ2y v$UlMNK ۞d{V^*:q/$e`4@xƴ֟;{7ߥ[XEn=)dwg?ҽ*:Œ!qmmxa򨠪EDDDD `RO!% fOLROo)meߎ`q% ?:ǚߵr.\ !+VDDDD*Tzæ10rҎe'?WNoοgaؼTv5 blg`! z,;رo[6bălzmfvlp`6 !>qo3 _7sw2p'a8ǹs@!uto l.*{wTkG.~-WO..\%u?-{GB'r:skS-n惻7gˉ%dd2el2;;w;q*n=`Eir?c*zD*k/w}QZ@4;3{q~S`fO+ұMѩB`CJnGֺq4c# s_m{ǰXXsȱCLL39Q+`X; <4a25?͢m4's_Mmb)e5&S^[05ojoIuV ʣOEA&Mho;lld..%nO/1[w ßɟF8ro>w o+˟=3~]{0RO/4hLcW c+FGO4;Dl} E}h…am:@Ogd&/gr{hGSy`Ȁ~SjE_r1r~ &o`#dd%s2F&dgcy\Ҳ(u$7D[4<:3?=$8ɶ?)*4{oJج42=SKL4̜ݵ\'wwГ6Qï .;m7~Kv΅F:W Qw/_,lh4l8.tjv[\AX:Dyԩ6aÍv;|d-qmY]%u( b;&PҗocFV +4hכNe֛x+ zҰ6›Iwd!wճ.:PܕfF3tv 3/2e8.kGl_ZFzut[8L_1Z ` 7MëcO;Kr;A5ciӦ.ehϓOcwp-i4aq,qH͒Azzz%3ٹixҍa޸X2v 2^\Qu|&@\29=xq@ ½d$b fLK:5.n3%GbM#b&ncBƉ_H)C1oqL翚ϯb+M6oLVJS~|hmNnDE{ w^Y)߇_;֜\<5oԚS Utx!^;a=a`=ʲ>.4ї~{ӱw'͛7Ӯ]JU K=u{`8ޮ(?->CjUuDDDDH7n,u0c)5z.`ͷ-B~tT&P\`2a‹Ogps|CI8DDDDju%O¡iEDDDDD*H%Q$CDj8Ν;؇T,|||ݽ#""W(0jY,oNhh(QQQn\, ܹ&MQDD!"rՊ#440}ؕ*g6 #44ÇWusDD &"WsX) 00n\DeZ%W٬ED!0J&"""""RIDDDDDD*H%sD$g Kirg Uq EDDD*H≠p Ɏǹ-ۗgg#<b܀W\Og-ʩNx(\2;Kl>c?hRbF>q_9Z1]'S1Tcyg0pCS?28ˏt[6ĞlܼímKVn_ݼ݉=+w}>ۖlo*]Vҵe۴7w >F-x(6|13lP 79k@:O[{︈\;cAw9)}94)IcD'̘DV-0Tmg{/l:`Ύ;7AKtغѼT= iY~Ɲȅch|c[uw_[@9yM{)\;7 繥&nz9FGIعB\Kx㭵ywCR5ΡbO2jZ"m?ʿa<)u%y33ÿ*]eoVij - oܛACR+s)o:w}+u%>|8#F}En߰aӦMc2_&W$Ct L6D>lQf]6#803qۘ46g9d-^-[M[Sק5>秦VZ-i|G~{иad\|ݯv xmGE5'n ~Ճ b{vjo~a{Y.NYڪӢM{70 J,|m`]=ׇʓv|]r%bGLFl[P2Yq( ccq+nta>=btO|q-&5*Rv< /C_~\I&oTQDDfA+Yv;ˏ-XM~dabb44It8M'"Сi 5kN"El,m=lާ NAZZZq('f@ i͒11ݹ?T38{ٛKv1Pv엾Vdfc\]/otǾ6ןݻ-Lb):U3hJyO>aѢEL<ܹs5kǏqUJ_0"e_ZQ5nǎAtP ׳t6n혛q85sa=:\f3fՐN|+/!?xX|ꍗrjuq/O H;֛V>|>wqtMO'\it\P/ڞUwG\$뒲ޡ>ӈbpm#p뙛LRr:9&&$5p~fyxw8p'N9}""R&W >cӻDȖq\7bIx DtFS?f:6m ڷeǺ|vnzNUbu܆q -cjS'52*X$q=U©Çqt,w¯f:9:v!Q2e۶e)}Z_rS}T}e߾9_z@ry*ں[goV}9Qڦ4$"2|K R+f܂x>vb's[NӊiӣG/uG-um7_OLQJ;r xgO䥥簸xMLąn0#уDI|22-P͇-UCz#~7Ro.H~6mC%煋r"1]x廩Y7pyfƪ,Oj`>?TT?%O`l0ACJ_awmSdgX6Ӱ ]BK&yY 7iD>{,^\LDDD(.C1oqL翚ϯb+M6oLVJSD͛i׮]U7C¡ 04ϥ3 d%;+םadzumܸQ?rEϦHڸqcll,@NskŖoZ.(0z 4ȩ> nɵIm"=;O-Dt,<}<C,6Ğ`nqo—HLC=TM9k=tr5nv˘'#~, 9w<9_>D^Ḙ [O&UsU#d777T/zJL&F&bkTѨ.|gJVf 2U_Ylٲd2KVȕK̒/8Y>ذx?,nV\~|-oRE...X,fsU7E"łKU7CDDPh;ު@7`jU)ooo ꦈ\wU7CDDPvA&M(r`:)w̖oįr:Nj(\2)x|[<g}œwDpHnry$7?>Wn" |:vJP=K7ڄw^&UbϩS_~U7GDDPv۰Yo0b46>s3ၧeә4Y,S3fQc?xiCfTV3Ts^ȫNcq+aFȔh}ǏcYM:u戈`ޡM}=L3Y0s^j3g֯=k <Pm[ >s˚iʤx}QjC2. '0񋩼 w5΍=qlIeL?͇; +!"""""姨 /|K0j>k 24 ۼy3Z*M)G7o]vU Y,:DJJ*uaZjib*qRg < XB_sϯ|-b/\P`fUb}vBBBԃJY,Ξ=Ν;iҤ~EDHCDZ"$$P}ؕ*g6 %$$n\D䪕B@@@U7CΝ;W+\Vzc6u?8&"""""RIDDDDDD*H%Q$zTtN8Abb"YYYOXXUBʥ&R[ ҫSP-Ts{Prc~Μ9CDD5 Ξ=֭[ nݺꌗH#8؎(ċEzD.a/2,ǣf^гʷG +_̿V_Ql6۶mbо}{WNTTڵ#;;m۶a*c{9`\αw:] )5021eF tz^msy>MeНӟOSIX16ZbA8D_$䞞й3]b=5κoyS?>ږ77 ɱ))Mۿ?4ngeʜdE/"8c3>zwNb45'#oP)/s;kmǤ<ӿ;$brBdZtՔ`jTLΝ5Yg|{O/mk|mjjMOO̙34h  4̙3N2룄ymFOxS7}z!7v ~""RetHOb;?rsȱY3u7o }i?#MacwWmdaL7%:?oJњ==M}0v3Y i3b*0{zSۿ9@k:,DǎLݸnRĉDDDU+8qzꕺNdsrӷܰi6?G9Qhko|/=kYI-+͉L ~~z_<5y}Mz߲j^Τ ]h~TV/IM$j5m}ؿeqgRu c?z_e6݉[äfZ1UVٱDjzY.TрηLG|%d~a,x3tKuQ/h GO1~\{P׭pg&R>v'fp^2ģ?P-v ߔ&Υ^OmuibNln"݀GmA`p1 m֝z&`ܳH~~E$,{b!#3\c(^GtL5fee]4Uvqrg/ Q1te3HU.a@%z 9S^?~];ˤIy^k$:2.&!McjD8}&5[N6|I̦Cϫ@˸%=9GB9uB(x;sf"vvy~vS?rzsn첛Ee&Z>`8r6J#5n`sﳈHyQnfwM̛' d"ѷ6Gnx!<^E=xG] b;s]_GX;O.\9,Â%'oH_n|a:48W`Cױ)₋Z~nc0TД8eNt)@XK:s&rIKkݒ`miINxS@(,""RFY$?_|I>w馤UY88Cz4mBÜƛwȔ%sx^kKL@ N\ QI8EHf נFP<囸rGz̀oAA z^,}Jgf?wsE.;?337"]>;w.@nnne=!Ք |˻o318Er_Rz* e*;KJBp{7o$[\]qņ [Ξ&cXן.=js: 5VPM5CqB ﳈHR)uaBlcc~7꿟=pNed2r==-kp3fkw8ۗe6_ssH6L7 ~ P'=_1'!v2㉏$a}HW׉6\ϏRKHHR &5Cj^^p.! 0}7;ڸsxVNdgW2(0SO ťc ʼn>"y֤VZ@w^Ԇ>I[8-6#F\PB]9.,Woµʹcs՘,GﳈHD|hӦ>6FFT;ɥ1vsc]:9/>}_5du'gX=' x6'PDƺ }d}0Hњ}@#o|cJ7Ӥ)L~=vvFɬxvV\ܧ.#4i3!!!l߾|C!iҤI,),M#|p$ׄ_4 ǟְla^sqp\>~S#5CYPyK sc-:IdVoHX\_.+ 4 P[~t=Jj AǺm51W_i2_g%m]Ɵt'E IDATi PR~߱o7W})ZJDݶէ/`ɩ=qWI2~l3}-F-ſ6aG0`[}ߧqv6_rG{&,ocj^L^޾RJݻ .ʮ]T\f+6x5{' ˘GF2TkYr(ޕ)?|I3`vp٧2|=Yy"#^<رah-M;~M*ZϦݯn/S {~y]E>≡ʄө}"K\܍d쁗{A{okS1)G5.[M;ʕGtTΞ\4a&O}:6>'6\sɱs,).{=k ,**T"ExxxIQB57CN=MЦwз c 䔔vލ-ժUs$,##]vIjհ/uiY"##WuF*rlذ*"R"## KٽlҀ^33ȺVbɱXZ.*z^|дxjx_YqCdd$xxxuAgrr2qqq;v OOO|||+)ɍ]E*t7HN'''$..]v]~Η=TV gg7MH fɄ3XYшdʚNDDDLDnp䠯EDDDDD0bLDDDDD([h$--BZZF0e_a\!..CDDnRJn3l7Yfǚ)oc%ח'O0)qiii?~SN[ለMJ'X;w;:>ȣ ܁sYooaoeʂE=5j ::X233K:$F\\\^:%ܤn,_x!}?s0ZH`xе$bsOg %ѽmΎCDDD@nfCDDDDD0i"Mbo[>ol`cKKKHCo#>!sJjۗ=j~~릍ӟ6s2ݙ ~/Bs`0,k8}xV26.(]nx?cvD/'Jyx ;n=^fTO8{w+"""""O~m>eGͬU|3_˓ͳRWOXkS@^ROhPR`X+diP%:E:A@mydC?}t3gjk@`; =Hqz2zW4h4;ԕ]*a% N^̜^?g`xRL0'%))h EbE9˙!kG+컯=:>@ͮ(""""r0go\9 R@B&&iDzVCi3.3hz{?.JO'L|k;;$#1}h?j:u`FCH߱ZxEDDDDnS\ĻUF,v7/jMmW*(Dy6RjNY[1fBXI}8g1{ :̾)uaeA0M֡o-KfWs\mMQߡ)z7y'hW9ҔS~c^4.c2gıp77" #A3e2)\T(xDDDD4&w|t;Z=2 XK:h7FĔqc Y>[ dعXfzh3?K"ۛ@ X'nTG|}(}C8ܠEDDD䦧LٵM~Ig[z6ʡͫXu4ŹjKgE|U:6+!QDDDD8J%rȬޟv^F8$ߌ㳕G98wS03pO{{,2͔ Sx ]jƙh-'{{IL1\Mǀ#nۙL{blЂ~ R$l9xxRͳӥ5k*_<˞M GOz4T}5?GDgbϩTjp_b-~1gĂޚ/K3m̤/38CL ``98o |DxXh)NFGEַȭM ? Rzwg',ehw7 ֣G9[;6e+qO,1S۷lJyy)d*x߻5 oB.ٗ8k{v3plHaƘZ<<6û9D,ޫ7M] 1ѢEY-8EGxp+$+؁=Z}94&Eٌ_Nap{ qdXߚ-9t jj)]l\|h{{:8:/~ஊn2HLlPʙSo8x|Կ -աV{zVf'|/k%s…+KΞ'2TpLm6'_}Nuq1P 85!H]ȰFfDöbMZw[j?7;ņsX< C:C.4za otkLf✿8xΊ{@~03g7lNqy%q7xՓ?s"C)/>o̊riVϛ(ؘF|"""""rS3K,$e0x5f9^CL C9 ߽.rSgSDשi.v%_)Nv${th Vv܅z/jǭˌj g\Rob?6&q{ݖ QݔW|"""""r35hrX-X/ۃ:Ѱv?Rͬ}t*ab̘'ץSlKmc7sT)7T[$Rm]\.řZP3U|3_˓K =+vz<ޝy/4.9ʶ_eڛ/`| ޕG{ٛNY?jtg=qDq̍ډq06ƣ1f"*ևF=d+OtM\<ԕ]J&xCOdYsލ*ݲwsس|'i#e*W!Ka,EDDDnwf艟_z@׭GӒ<{WXX1`0#mB\LNn%;L8cx'HpJ!$'i$PW8yxH!l8 l1 = -ֵs%`nL^8 fR)^}w]?{8}<nyvB?:\*m4o=~S^mh]9k!̝2ͮlʠ!ȺHPw̧`dD &O|ekesTkc9p0b9~ |쒎Tk0<8g~y}lޕAXǶjÅ=~1:D%w0%珱٬ s#!?L=O̴`L?Ŋ=~Ye{v.ش#Aͨ7w%`Ş:q}~WzԷJF!XgRWUk0\roDwi_BLi.Ϟh:Z%|9u=sep!`&wλ{Y.|.9؄to݈]3Kn;ߝr9u G$rr`GUع)8^ 9m#jtrOH(G}7WHkT5m 4-ɇNנ*_˱S: Og*Sů_A6@*'GIHϹ7T]YʹCIHOO( \s&KvNt!>F:Oј}_ 66 6@ |qY֮܍ ecn^UAPyB6b~͞f%}\G8GֱbQMT F93s'3y0f֬26@DDDJJP9J}zΥMy\~Y̴V4N48eH!2H1\ݝ@ڝhW!ΝGY'6=^Be{O7 5G{yIJ(P󩉉Lj, %`r2UZ'w_ -l+R_-ٽt&!%9 R1:;Y;~`V; R Ti8Mx"!bsDwِ`APP0?m/iy+Bp(EDDDJ0MUoɒN΍`so։$܅w/xsۻo]nP"""" v봇a ޘs,4vՊx:`Z⛯-<2fjؤ-pnߔNV( Ot;'͟?C28)]!wwbݙ1,څU2#l 8Oxĸ^篴Cz%\c?Ƕ8؟_i6sOoC2_ϧw۷ogS骽qD~?~}r,1-wvj݃T51I+>kLp"z V҇=Io)"""R$t Q=%c ߶cCKͶtή^]\ԆŌA?,,یsԬ sy{nZO9YmL=J#5*3;NӯKJ4]˺@ tZ8C3.`@hh?KhKl^ <7j<"dRp`2|C|J]xyJE?HP&w,???H<ɋ`_F1xLVv h "˃ȯZ=7yص ѩyV:͛%Mgjq9Z}NLײ7XDDDD A ܱf3ps1!###ǃӵ(LbڸxXYN̿T}kq/޼Pev c{)(W#@`Fd/+_+kT>~i _²SiTl("""n0\sɱs,).{=k ,**T"Exx #22QvC"U8a; /HKxୱ԰LI)""""";(C5Ӏfm'xp>=Z3^WriVϛ(ؘH'zd>HPʋ| xcvTȞk|_v Z0s9+Mx~t rn k& G8 NmcFDDDDDn w^v5r3 %v? ZBߦ_$6N{RaZ?{[&<Ƣo'u oX5~w{D/?g//&MQ4btMf8:"""""r3Qbp $YG\l^ WOXMg8cqV ݠ%Uc&3m.탟_6YTwԫ>1O:~iԡAXzi5QKY0g!Xt|d:Ղ7/ߢeەV+ּv _UDDDDDMEns,{9Ӧ;xoJbߑxcptց~cNl=9kSLX̉kN8;A҅+c " 7zi5-[OaS.2r8 DDDDDn;/;-[yZ~kF{ɻSc4R>)tb.=zF<͇i:4~5:?Y#TZפyug{8}<nyvB?:\#S6c&a_W;8`[[́`-'?FM޶8aAA_/\p !j""""7:2\sɱs,).{=k ,**T0,k8}nxoQQQ>"##oxuoN[N2iy#5[Y\E`3_dX,9U%9o/E2xcϱМU+ꀽkEjvxoJ8qc¹}S:X4Nf'1ǏD`Y>?#l:"ָ-x9-_Ƒ|bN{x~[&J~8>#ؾ};۷ogvJW#˗ e霏Ф,=7nŽQ{z_ʢ:5iŇ{-1NdSo!O־<74tح·SWгø96=u{KC/v@smY;j.59nxxyvE3shS3rzmdo3b,S*$1i=ûg10+d_h,Xֺ?;-(R!iײ.Ђ6`a?̴/#6wЖ<ؼ? xny EȐL:V$n eՙ>.ջT󔞷_ϥguܱ $'/ h b~cwSw6Lg޿Mjif6/x soak@doAbb6\(ǽͫxhyu7+G(ӑ:pdk߽ØA `և8Xn6 R:#Hm߼pHYëfP(^ Haw]X.EL$/A/3sZ FNƑbL rícaiɮ&-FfKktAGx/p3ۼ:imΡVpCNahK[~l97yֳX<SPVG>\3vK_VvW֨Z|6eҩPDDD$WzJbN;ߡZlݹB]tۡԘڂb&Oz^Ԁ?dݫd=߶EDDDfu=Y#`"9iA .Xv0~A;s/'_ذ&07ƛ })).JDylqc8|*;O_ ?kKmZC[䡖LMŻ1Ia>!)6JD+|>F:⪍Ms*̰VݨXDDDDl()&JDDDDDD0bLDDDDD()&JDDDDDD0;q2f"i_0lb5()h~!s&fu+P}*2  Ǹͩ- Q\IJ-Һ"""".%`"׭=96oDhb#w%\WDDDe[ܺ*䷿u<97UXt~HiLn[t"BiNxץ9uy1ǏD)y땥l߾۷3mCuzΕC m˥f[:ggWD036|{>tfUί~`Mu3lt!Cv0[-Vg쁘uwZ؄y,s؝V ˗bdmuJ4]˺@ tZ8C3.q.oM)'=PB\s?W""""7mB/#x|ʸ݆)pU߿*r6\(ǽͳ iެ׳""a~~~xL~yC|5&k@d/lNMc3^g-U_c#DG'MlJUEPbu+0=Ggzzvb&L&x1KSSI%Bibŀpf?? b]F7xf3pۛ1!##!Fpp!̸kZr^;l>V`!Ŝk;W""""%A ܖ,ױ1=#zѼ4's@ {7)T|Ie!u˖l"ik&KUG=m.CF;Y 쏈`S|tOZ,ݬ#ZT %|M/Pgؿ!(c,kFџ+pUkݥiNߥ: 55KڹFogOghޯJ=zsIVקk}߯1sN˷Q<g?Zizt.3 t4k̵k+1=enfSR˶d%M˶ټ<)11< )))ZZǨI=A7eV+?ݥ*+j ymWu͘Z,a2K",)Լx@f*MkY#JӺJ5tTfo;jo_u]+`v|5g||'E(WF OV0FGl]7vEiv=C=v2~?-Sվ=p}jՂfljߕg'ww)>ZKsU=]!jNOk*afG ^UMEpGB b2 IDAT};uUܢ Q#H:?&шJl6m:V}*: G_MZk7u{\k34vBok ?S1342&JI1ۖj#oxӰ!}kK]vysϞ*ER^q9^ޚw붅s4*ʠu/C_4ut yI#?*-h[nr:$ *3`v F-\dQf.i7^y{WAl௞CT#fڽGg8x~YP`5B;^_gnT,7uFؗ?XOZnB7!M`&0p  ܄nB7!M`&0p  ܄nB7!M`&0p  ܄nB7!M`& ۫MA.@<9,K> (B5bxڅO$*JQMdp[jzNdܸ=;O[4]hp xY pgj5nA(ulN:uU!hC'Ic4bpԓH:k?wI*Է:`ۜݣCf)5_Q9Tiʭ9S:fiXʝZ=_ `'%^- 0{|=ktB;oЁf4cj1:TR+I٪-9*Ige:HmFQUYВמk4$2ܧ+Ngtm&kQu|xsoQ@%$Z|sNhV}:I;J@lz$9܅Ob/u}R~wRCKi2I2>%+ ST\SQck/%xצ<0D*ܦpt_ L6Ӡ?OߥA˱SyWʴe%*c i0-sv Uׄ ˻,Ђѩ ~k1 NPC$qZ89I~j .edɽL_m۔(лz*ffփ`dB {@o-zK}}"YS7)Z0I T۶q2Vr7Q}juzOA Ю>1Y !@Cl6U騶lNÅ`+9l>l7P~}^ZU%S70mYD|Р$?IWLKzǯg/:d;_o7뻯?҆=߽iؐھn. @Vq`ż,#U֍Ңc诐,3*nsz.zje|B#$nH1h:99TykpkDi5n+ԗ>i4LJ13zE*zRʬ@MUXf֡{tzF;]G8 @D2jo4P?sbyj`5Zƾz Up  ܄nB7!M`&0p  ܄nB7!M`&0poO%gLIR IzsGkZ OTOe9_K˩F6||.j|+<}R_%cKsi=]Rd;%]2F/%uN্2Tm:/Pm:z,K^M"<]P'f9_8OQoXs?euR`K>=_nd-ȗ2:?-55%nC$%%yj-PWM`&0ekˏiǙ.@-Es1ܰAt!j:6 b>Z=_^P&٬t?~\)FQ 4Ptt=@WXc`Ry{=V3駟L&OTfeggVǎ}C `աcG/_7o:vB> kW䘒>]ZEolО7n\vvc=ᅠѯǬ m[Mи Zk<|Rp2 u]ƛ$ŗTb#!Ҳ575`IR{V󟧨O.۸d2UYUW{nN7ۻ{@V54oHh}&T]/Iإ]ym!F. ~Q(Z|xr:H[Tn{'?_,^ Jʢ5 ew/ָ<[5Ֆ^cQҲ8ڲ9ܺtm!Gqqs;?E$^)s^aAں#$5VFґe.Og(q`ttLT7;EN[.hb~5fd~H[MsWw05j, }; \#hֺuc?IWJ~Tk34CfZh,lmȕaC5$5S~qzm˚Ƭqaާͯny{\S"e+=7R&w_Iu3m[{Yuw1lN64*nsz.zje|B#$nHWMM KSs Zn>.5lK-QEѯ0g6:!o5kG3G̝3^ nFu#'5N|^χyEϬ͓OHE%c{O0J-N^6fS<7/fD彻D~ægSTBΘ62D?XJJJcHu_ֿP.M?).5[jjhd2MEYR~yAr$Th3YKM%{gjuFڨ.eƽU6:_Oθy "3o4ߕ/6TƑjSx@{R֩KljA_yPjxQ%ՠ뇩gsj:jNdQn8-O);c>X9_S>ߩgPk, |dz ~v!fPꇫ4ѫ jѺC%tS< >.%;o_׿E\__B% "-\A{s kW:Mナw|TV~_stWh읓5wmzu}EtQ\oLCb$wpM0R}_(Zؗz^O{Cknwa"=+8tR}Mnꖦ u%]$]j;c{Y%76Å/l{cPE`|=kt\ۿZ&#ctB{M]qFo_7?hɔe~%%)W{Ӿב48y<[YԊEnde3!J)M=s"WMSGO$$)W;oY_{57ƫN^oO|]}uL;i;pvMֺ]:P{X oS^^Hߢ_zO|tc^m^ܥzhT u쵯5~2Y=KJTR6*{7`/RP{Ӥ+%Ig֦+ٶi|E)6ss?GaP&Im+ގ5!6N} c~.\&Tju?S7ϾGMN Uα0ĪsP-v2OmN=:^j[=o+Y* 𰫣I_hC5l`mR1-<7 dy۸vBPf5ȚwJ@OR/}B˰҉Zr{aX#5 s@VYeC zyyI$(HW&;=F6/ⱝsW5k5jB=;e ֽhw.*;]AWZT^xQ MgOR?7t/8RT+o61̺O?>^7?_X5-'WdQr<*(H=)[]ڿ" Ӵ.貿O5hǨZjAMSJڠ(MYK^e}%@ӾήWGOX5ɕ.y5h"K^OSu馔6a=~V+VjY6,_{>{M25^Eϯ>4f2ҾvMG9;/JZrvd+te ,s[ijղ ~RP5&6ҵeyv蛏M4{F@6nƍ#iU%5w A el mT壟|OT7yȫITQ?jZ]p,<&)Kix}yں99+.J?C۔cT͋"-~%=:O>!M Fe>>fO< sP:tasSίZƛ6Px\? Ҷ.F4iWe PhML'Gߟơ0&m|WIw<{OHJ-N^6fS<7/fl*3͟MWJMMURRR5/|'WSm]ss6HMM-w0L%md_j^P\ b3LRS  ]\S^񛒒t+WT+Ooɞ.8o߾|hM\^(U_?ڃM`&0p  c4e6=]Fg6e4|UW{ Qvv˨󲲲Rׯ0xLDD:˞f6Ç+""_߮_u'x<&00PZґ#G)ѨlRUv=@@xyy)$$DX,Z.N1 22Lv=@@G y T|g\p  ܄nB7!M`&0p (KZZKRSS=]PJq "  ܄nB7!M`&0p  ܄nHڿN<)rjѨ`5o\.!aڱcբE L&OTfeggk׮]j۶|||<]]܂xWL&EDD(<<\t9;y7n2ƍĉ.!a*b2j3t0p  ܄nB7!/<9B4IǴORy{n_z{r(W Ud]>futq N t8۱h߶t<0+Џ|FF^ԭw!KG.zB?H nZNEz~Wq u=ܴߵEZ;fEq2 ֳ`@]WE!\=K7ل/'ih39֠yEK-k/h/)-=3 5&5ruYX^6S~;ҴN-3{+r4u𩮓`@]Or6mr[WWRLr=4*VIݺFZX?rJCښ$=/ u=M2X~amBm U| J2MN UEKdUNZeZI_hC5l`mR4znW?dVYTHr'n!u]j'+R ZeAC5tjucfFXgG|+}Iڝ;:D@9yM;X(iYcwTUykv~2LӞ]k˚CP \qFͣm35 10Sg-ɷhէMС[qhƍ#iU%5率RhҊ-B+Z[n~|%7z+PZ6_AOOcomkCqxi3di_ns 80>맇_YW_W٧T1mmYVkqZa_%^-.bEZvfB[є%4<0WM Y|(<EIy7Xo'W'{ߢר0{wtJ-N^6fS<7/f^:IDAT9vKKKSRR˨3RSSXmL&tI[$%嗚/HL6Tv0KIIqʕ+P #YKxɓ=]BmSm0۷K@tHo-y2 _jWsL3Ne{6֌SP[T$;7;8ǽ7>FQfe fYF":2rMNEoAt G ((Hٞ.NRPPPE7wa*JT(%E؛8ЬY3:tH'f233ua5k֬`hdWnsa34 W0a`˨J܊rީ0ens`jf {c;5UR~OXe'^0{,9ޕxKy7(؆Р@clJ’ATpd^:mUxjP{G)lCTdn/v:!=`R'g,6sTQ׳ v0eq=&U:X9 7bz*ljmCmJN- =0{!QomsvbJzlOJ:t agUQ*;>^J+Ĝ&tOWY᫬K1Q ]+Ov/Yרs˶ٳ_/8^sV8wQ/XY/[.Y6|ٻЕ bJ8 d^賣g}+v {`%=YXX:x9Q @ GQeY(! %JYIsJsdg._QYts=_%*s %J:?pv|8vIJz셱QKYn?7Bm*)#% VVYrePI+alÕUz"\Õѭ>(I{lC @Us5lorMpc/$ W˕ ^18;+ALN]=*J(L]=r|yYaU\5 a \/Uf\U%/ظ\ YpH*WÑ!]z.᦬ TergLYa@UV/WyPENy=]<=cl T4T?ŕpT[ =}eNU*tEXtCreation TimeSa 29 Mai 2021 23:53:48 CESTJ9 IDATxyXTe  .(nknef=틥fپ=ڳʹE,J,5J\3w Paf~5l,2uk93|ϹHEe8O-"""""7?v%"""""EC \"""""r8lnSMDDDDDJiU ;ZVDDDDDֲ.Ee)ͺ""""""E-Su}Rpm]WV`&"""""≯ArނVXI,O9y D0VzUPk.|gLDDDDDJ$=]'y{ݥ_)y d^/Sr/?CYHkeR]UU@歎3f|}L=a"""""⎷0-l _B/u+ _ނk+\DDDDDę _ίyۇe]*it`i&\6vTfVVij)3̬,F_| a% ]s1wru/VfRϗT$^ }*:R{,D׋>GIOA,n J/&f3w{↯b+ɍ= Q_phypv0]o\p0WX*ks\/׃C) F1B5xII~Vqwݗg0Xqz\UX늈KutR=-Y!(~׸ lO 7?US :H\ð٘ sN@;#,feƱ`w%𬜂X{ a}+`dibLvJ )n\eO â;v~YDD1bI +\^ObDo~v9 9|9O(zrυ&"rY όjMpBHf,ky 3n%jwW6wt&<Ȉntz*{βOf/jH;;Qv.̻F6GV"%]4D >畗"NMOFX !ģB]f""<L,&BץuivAZ-<ߥ~sDDĝ"sr`$Z6OO3\;.øxr~^k܅%O!iv""rV{Ϝ%hP<}/Mtr7w NH;Gm޲䝤Q ﺓ:5#v462}#fut5{.VPsǏ̞4ox>dùm227\FݯqW;4b$T vyOV}7o?GLKdKi#3 c쌍ؼQsϨ!!ܓoyUe7Y 谓焏|Mv6}gxg255ėr*_:3^[ sE0rck##i9@q طx8 ո7?یjY@G3NqT0r3Iuvu-BcMڑ,BjӠ5Tn9+2e"DGUziݫ#M,i̮J |yv^˔-6H!SxwL ܬd#tlv ^6N}pj6%"H@Cd/[Gϑ djکeb:, )ۆǬW1{{IQDDΚ| LޒcL6}+2Y{s9U?Ѕ˯ˤ՟suSY8v 0T|Xw և>KƝPmNxhBd\wI˵JV!Q>g 7?f\:9Sl}G 9m %4( voG\0`[ϴQXt̎14uT<5~e!3pC7:?͊ŒGH޺ea~;^jhrsa/}n;Go0OO 6}{1{DD1=MS ;c[6i wKq׃]V!LDv_vhe"$}s$qDf#֬S*;像!t&Zy/mԛ^ߏrV-vhYegHXX #0|9aވgqkDtabHb 5@t`T5_ׄ aGs~xP*թ ^""e(q|V: Yʩ3x3F$#7vߗW{Çu޲TZv44R۱u̫W֤C d:BLaCywU$5+: NoPDs3M p+Hpg\UpMXPpFB\e*g5ė-~ F#F)X_9$v_[XLaT5[{~?qHڛEp\+:'(m?&;c9+:;ͯf|ϟOb v-TatJ'0*Xo7垇9,L&'vҟ/t0'i|\h^S?'ӣh׾mI-NDDDDDo"ru.g'|8Xa8`=`ɟNV 79MvQd*P$=`""""""bqzK| Q>O7SY^S EDDDD̽A5 2x+a`_eu  b"""""R>KbUk"sj%*m7Ye ى~emF""""""v4;!LM N!8b5͛+܍EDDDDDXX]Iir&"""""RNDDDDDDʉH9Q)' `""""""DLDDDDD}׮DDDDDD*r `;v,]l.Dr&"""""RNDDDDDDʉH9Q)' `""""""DLDDDDD(0r&"""""RNDDDDDDI p'))%9C. 6 ))] b[fKpK 0r&"""""RNDDDDDDʉH9Q)' `""""""BL_MMhp_klΉf?AU؎`J`"f=05刈TJ>Oe`]1 `jCpKYm'nClw-%T:ͫh؆&"Cp(MHOrDDDDD* lG2t!U]HTfUW9rZq]HTONeXd=~+"WHJ[g3g,?DDDD! `R)~7poUl3Yߊ8+l߭|L%/dw\AƳxŊT`~D9c!pu0c,òsl:vLJzMZҕZʿ8roog~ń~cuIYorzDDDD* 09+*L@?lixc,|// ֮~+Rsw5fЅ _"""";TNS~sW#HTlK.2Te)_Ո{(_6/|Xnш{)ɛaLVNIKr$- 9z-zqݣ_l}g}jy}h+Xq;l?ė+1o泧`Ɏ #@Xfa wlon_|\FХ/cZ/I|,\ɶLFT4lO]LIH6~wuOeޯi=ͱL[]0q&d &gbw%O {w$>:Z4r9;E/h" 0G,ATMq瞞>{/#o>9N)cA ;vd.Y @ơM,zn7ڗ+ oi:vO%PƒmXϒ?m%o_|ٗMobk_P.qe,_]I&"""ߥzV>B7ҫWfKy؍Msb.X0s>S2_3Ǔ@-.SX湠}$bԹ.j3v!Ka>u4ms-OiKr//|]%|dw ǟ̛ܮyDq,bw RXlkެGw>9H.~j.?Ӄb_""""NA,$%_Μxa@Xt*z XmO;6 4 ؗeB;ҷK8fsA6y}.F<$g>)8F ܃kI;JK5iբl8Gq_SyFcῚ8 uyڙ5nY 6hjj^%i__׎mlUҿw`,"""R(^ѡݪsk~7X \4'Z`a ͊>}kWz@i@I<:c BsսW*t'&~Ħ31߂br|$1(>F5ƒؗɄ  _"""r^Psj=Zjˎ{*k>|Y6|D&ݹ鮑\kzXÈiOie%<{%R20TC;'hhŜc8ћnL,K4Jdbt\{pa)lޜ˖ŐsCjVs֧䲞 HI; | D5Ѐ#l9 a&\| Jk}̀͘5#GEh O ffhqQ8S+""""\qرll0`46vz' O2f&kgNGp -LǴ{ysx3Ƕ~üMP`_>兗~"bx i{9U;pD_Έ+3~aּ1+SՔ  v5LO{ּ6߯Ahnd}e]٘/_ϗγ'#tiޜh6i* qW0yLXo3d ,}}%lRV/|j4ly1hv/A5p˥syd1~z~?=_mC4+_~+.S`>:$yz4==?la~J/>L[еK.v#ݜ=N]hӴ)m]Jʒh?nS^Nzr3ɰ٨%rc[nUH &:);77ajp-2#ӅƵ 4T6ЖV^x` B6%' L{>4 'r4n"ڠ _7?u FMS C]pi"zZDDD"ϝ'4GssveRq KJJCd/zcj)aƔMA5"h4n3c&C6k.gH9#.၀e?-41C<9Y:k<XXk繀i;M"SBCUZ&gdD­ )^bņٍges3 , h>^,N 7PEB1N # PG鋣n Lv;M~M6~"AYN{ &ÕП^o= d۵wӲG2ӎ9|wem#P Ɲ)J8{rukx"`[”}̺\ٿ%dDF~1+lKu6"8(fb:<ȹ)~L)' `@y=-t:~)< FpI:HM>w3 NaNZ=m?/TMz2# Rs]ECЋ0r&"""""RN4, ɜ8q5. jժGpps, 7oN:c6]RFdd_bѣlٲVZ""%SED伕L:uїil6C:uػwsN8ATTːsLTT.CDQ>9L8]yhfSϗl"Rb>Ԋžo8Tq*UTJ>Ztúk#v9Ng# chS]HTGA4E`rXuZȵ)Є1:jDDDDD* UbeDDDDD*s"I$jʦ_&?x1^ "͟MeƊ.D*$-x9k]yML*=|8nԟVP+ٺr46bSrJcsv {w ֩]YrU?⧿\yye.ADs `Gkз7zK.ck@vkΓ:>Ϥמ[Tnc'|˕ qq Z>]o8׼HZF.~hC,}JZԪBph {c7t Glz+Fv`=[Y\%yja;ilXLEpsgjė"eZWEž=Σ/Ai`ˋt4b]r(b_8ZnM@2MkϼBo57ߟ?gO6a6 IDATZ=2n4&dd FkA&Gcu9<0cGOZ QW[ z^b,j筘QWH/r|:z?tco;Y5\1 !azOpjĵu=Y=Ib Gx`pc|rܻj7[eT#Ў5؆'ZGI8=}.,|ld2>ToԋUMp^k3 1odS撴=Lz8CU_tșxfidBӪ}'&TwRmo쩬ye|kU6'8Zrx}ϝyn_۰Ł>/w`Uv~, gO3Vxg 4V1E6#*N>&`גWxb@5~bã5ƐGKO~ox7O^GF.ϯOdmU8 &uZLv~LmLnobl^._wVTW$|agϬki 'kt3ˌw!3]oWo5~̳/#bԵ&%svudWZĎ{1fgx]d͜Uu eԦ۶ecyp~=Ș3G,eFZ{\@ֱ.m8yMCRwy&;p8RHG7bd)ÊܵUW~uDإ0UR vj""R(IdHHΦ}poޟ./fy_[Ķcۦ@j_Κ }tho`vah\u{ay=J]/hu-|4I}j޾).eۉ!^)S +ޘu^xsFXs*Ui׹mfkߞ :6:еG췌Gc*6u^D/ny"q\1k |3==$d0貪`]/k]0{mn<;[&FMB4k;%.u#`vp-:刈 `RaGdщ;E6rH9zmlޙrNP33jEbcq/uԆS9[NY>mZW?vs+q:IƶHzO<0$оm$օ쵭 dheLw3; bUWpF#25[|OӝeѦ%=`/a5m޾{l_͝9Ve0_5ćAH鎱0\ϋW.4xCL&LwV)S }"{yTsge? 99 Wf3flX`'1knKFJֆ%ml5{m84Nkÿy=Wo/CAAyEmۇgJ.6'nރ`]s?sf\IN1\C[TkS9|?Wٝ:ġt]{ `Rɔ#! L{z}w}lm> p%{PTwsiI(aaAiN2_eڲykJֆ$4i<%%h:=ېFHӦ P|nڵ,jv)3.|cw[q %Uya7i<~_{&>=({}[xsaҥD,ϥ˱V.XjrA RV:0狈yEL/=c=[rC<>zGn61NeOf=hUh$@gƄF40~ȗ,%T <ơBg‹o 5A`nq H,bi49|f"#t5{Yr׳fiv||w a!mHF|gCә{)?ݫr׮ePsQ~$;FJRrH",|6GVv}79{y}eѦx۶!1)#{u ~s=о^=0U1`ڢFA؛Ȍ'rKmL7{߷o{oED|&~@xtM~qs0Y;fSV7>)&3w٘k./q#̷yt ,!WO ޿vw3<"o{TIT4ɥ#ncOx^tՂ#fSc Cm<$hо5,䙇NpJL><4N;V6,H[^eJd&}<Cdys,W Xݴk\\=m7+/dڡ؂Q'7>v0UfG1P&u;2 mRpeѦx۶F漩<) UQv{zWq?wAXsߣփ$nLw:\V x3gb£W1'_q}Jrf]^ͧ4lEpQAn)S `.I%^y) ^Ѱ;&a?# Frɰ~u1|Ճ.w4'L;0T zvt_'z[t(Sx4 `=S;|[P5j7Ʉ^9WW9γ;UYQ.u]T.3b3}xѳ+* O}F.y'xx̂O}ʧoy37bn6g??~šYjҠU7_%J_y6d߶0(.t#"""R)Ya4W!d}؜9le-679{Fٲ7:>lj4{ ~8֘A*|xrV4]u؏v[jvmECF38L6><+r4qefvM8F-=v=LZ#iYkыM v1^Lhu7߼+P_]°dMpZ|\FХ/cZ泧`Ɏ #@Xfa wl?~-; W-%U>.S4];7}c{!w< -@ͱLX*jpl/}r;'Bf`P⧉x}I0 neTc 'j\:'{ >|x-KG9b z*d=ž5hޭ9-S@VU|:"HglڍXt/nۻ 9u0EYc6Mob؍Ԏo9m7v`8iY#*; 3erJ—4ۧH^n/Oc76Y`sw1GNoˤ~OOb>[A_Zg_}&`kޙA0L:`߹Z}e6gfUg ojLYl0C^ͨ X-Rlë&.fM ²e[f.O`'zW{?1e:\}Tl5`UFض?ۘ6/ӜW8p@c_ICH.f CUpMN[r:e'Y?^+O9 x'h7X)1w|R]?ş?~ŪǦ%n1֤uZ GSSqntH ֋F37Wn.\G8sYMc IVD|Xb`buoE9~䤑v Ulο+rXé\uմ ɢ)'!ف9r.PEϰq,1~.l]M ڭV@Ʉ  ߾Tbgdش]6SrsuދȹILO|Ca#zsՍ 5~Bb:|YQ"M߰%{z>K[ dgâYNEHذZ퀃?,g+@p}kwZ_Ë:"dkN,8j@v veAP칹RTО5C 0S32Sej i׶w!>x%_EN=]xܓ'00L=Y;ܠq|/:̚7FpŴpr8aಗߖ5^)w/<׆p5Mj~ /Er8q,\ ]}i͛fR7Ma?P==EK:w ᛕY,{j6L&܏~E\« 1Æ`$WwnkMSJnt.,=O],c6w^Ln:DW@Q%٣Hx~4"0fa1SQKjc3ǼLݪ82LtlS:wnAZ7qD0׆KoExZk׭Anf6X4o1HP {ɉGbćw >22r7cr$ҷ_GծFHDR;xFsۼC]pi"z;-4(4 ^؎t뵡`""""W_תDDDDDĿΊV/\wMg?GJ1qۻD)w8e}{+w&o.I(f![ӥ}"ЎNG}.ZR8aԅ6M@bbٳÇcX|Z'((ڵkX/iJַ2NF{q3{bʱWK8Kđ@eش٦{ffޢI֠{2-PuIx`RW0ˏLo(;/ȕ.Gsn={IN imƞ={hذY$-mq7rs׊ʊ&(J?ȁ U +"""RUVf͛v*p2 a\8~ 6+jH 8K<4:jC,y V,dbņPe6cFn52tLE 4 /^zSRRر zIJJC;̪+} `9y1Y)+W]d[奴VDDQwCLw:MQF컶=W O& 4HlFp'vzW`JUc`b:\ɘalX%J;)V*LNN9y[/.{3|w|M%|4 IDAT1yדʣ qq,ܵyIU^J9)ϙ>"""e\ 9;{rukx"`[”}̺\ٿ% I0YROq8i 1rE[9P(TFn^Z.u˸ët =""(}T 1\$.pg㢮Xq"RٸN-53gW#sU.enͽ5GfVds88@|<w|  eb[0*C}?k&1vT 6,c$be㌛`8w,ySơgfE2hlӛsvT#GEU +o?![F|5 yϛ!͟†q~4OS)[=+e'W}gl3qo7pcX^}O1.D61W5T(/BϛLRPƽ!>Iꒆnz`s%v zv44 Jg0.neiWGmc`ˈjzrz#]!V 5i?+z,qh=s>s7@éUY4w GbrVymT H{BЎ(^1F EF,s4Ɉnav1ѡklNm9|>P⻠>B! Y|;M'q?h4 ?.#!-s gNsSzüxPGY=r4w2z;19k _t,d(vQ vQp?h?gׇ݀ %Ҹ翉+&m;XZYк$ T.7{C9Leơeέ.ivNbG2ni ζxH|jB&ְa.[G?7}- ~B_ǧiQ0|/g԰J%GchĨKZ\]%Y4 V/>gry0ctE/67,cH3oDm]T:֡:G!x0!r̹:kz5 eρX}iQQ6r wM햱n *qWKʼn8ˡkPgK8b"PVm]>}`P|eΧ.i$T] Sku#Hu뻑ܻ'[~>F0)[Z&t<,5iP]-rldsu jCξkqz~jr$ro֬xSSp†Խ>OTvم%]M5Х}BLȎjX\0i@W\Ur:OɽSX #- 4dnO緬˸xTyL#;m] Axt!+ Rٚ5WM#pm]=W"B Mj~\^ՆB Mo!t|h<]>k!o7ff )d쏢B1 |[;0f=)mF0vi7uX>z62n3lRxe~˴ڲBi䂁#gmٱy S6<~bhKjT*!)$m+(5KnFZ^zSE^>}GS~G2BЋ7 V(tʿ9C.T 1qqh;vʋxѶ_k7, U;\yO9GGU3Qi@-Lف?cN'KnC%)YDFOt©31{y-~WeP"Ѯ%sy*["1i'nTOiY.M7<]cݎX/佟X蘖ZDS~t#9OIfȹ&X7& 0FӳŒy,]'&͌2=2_,s[~dXLkWv{vJYbEb8̬)a[v„o1wʸeAqܟ߹ۄF%l<$T]w}跐 X})nJȪ4 ?ek2MaCKO86{6@,QF_ᯟV ʺ7aԸϏ^:13YycfiCʵq+`A(qrSF?&.;f^֟Vvz:oX.`ᎅLZM9 Xcѧ|9,4]-l*6bttm|.BǴ4o-]M4'>K!oV=W}< TQ_EsտՒ&cԨQ#7AD>nݺcǨY&ƹ;;$!!4hǔe'x Hڤ}B'Oz.P(g$ YoJ UTy=tƅҥK;&&Yo@(]:n}}}ucÆiʧB!y%0pppڵk|e5cccJ*C^?(B!K%"[E ))d4_/===P(?,B! Q) L !B7\J!B! LB!L!B! LB!L!B! LB!L!B! L!k+))?~LjjjQgG׎8::bbb8d}U%0!$([,rwhlll:@%))DJr=d}U&KB"""([,vvvoԎY¤P(lٲDFF:CQP^od&cJ,YPdI=zp2EAk|L!k)55U~q"(<%PWLB!L!B! LB!L!B! LB!Lk8fQ![dtQg$pa"VU)`KB&DŽN&`͐p߿Fhnk:ė!E 8q/sͱWov3ß@ܯR-!Ȼ:u^R!DŽxu,#z1=b،beј:w~9cq"3OT) &{~C4f |RLgbuDk~N6qFfXvƻ^+|{ZOX ~s+MqdZ ~^oG'gҩ&@qB!0QRyuX^P8 M鳏'%t'sg#(kz4)\roCQ|WA0L~عG•4+XBQ~;E!!o5gHʕӏ`ԨK6U~նL5ljU Xs,W)(a!&m[ӣt=칱{,_>'pzޫ66ø仕]mFmc`ˈjg7xq/Ndkͱ+*=+ˢQ\= wN%đ kG*xZm7{<~-8j6돆sbULni%dXuG  aBϳxCJC߯E?c7IFنͶrlʹNlXnjwݲR=s{jN2D55SN_[ι6p3$NXOkØ.WW,13-!^o}}ħgbU1[ܪ5M.ԷSu-wfG;m-f4ww -0u!qE􍭍ׇ %Ҹ翉+&m;}]`BK5L{Ҕ(SS_@_HRmd(vQ vQp?h?σe.`de))$'Cdk5f8hvNbG2ni ζx)ߡ_jXK1ǟeճg<_e q6,E}~;Ù8$I0\4JRihE+G>OQgFn1Mak`t,go{c @=%?h͹XGa+z)jӨ!3>A-PS5Vה"{B zғ]:tx5'[ٹ~,me#ך֘\75L*<<N`d4>jG@LK䰔&YOJuM~:?`!$&zAu=th X#yYr[גI&Ս:)?AR8Gc[3pM:;;6oaf?W~P g%sX Pi]fXĚo}Oym&8dc9nCi~cN>'q;~{me d" .dԨQ̚5 ˗/dll޼yvN{MK?O' P8;Ԡ^5H5q궒ѝjt 5[¹ ɴn`ăgkiٳQO.s\ [:z7TU* @uQlF/ѧYr(w8u#]UC$رp7S(xʵr,`BS_k[J%)YDFYLs,, 66вQrZʢ}g<7ptUϼ ]]11"7t\Eݜזf~kv`hּ3oCéiHCD7߿bGSh<)B%t؏iۆ5%?_õi잿u TB g̟?o/{;'`?egAӇ7k `O !Lda 64ZņrX6 xpLaw?_[ wҮ4q%.%'`NgZyProM[EpYSxx#vq8m'~Dг3gA/ޯb">кKEeߚؽ[kʴ,4`Ū%Lݘ%0dIQl}zQgvNJ5xm0{?FZKJҠ^E~wAq:L!aO>R| @i[2}V1X vim2Ti,oaWacg _fLnO={跐 X})nJȪ4 ?ek4Av„o1wzL)V]p/gr]05f&6x},m(Y6n%lh f`Mi6LCEY ֲh{_YbEb8̬)a[κg_g^?ZNocWm,Tckʺ7aԸp קrvXNjT{EV,BJt؏#꬝©Jhq:REWMv =}0xZRRҼdߟ5=#3|'5}sKԞXׇģL->^Ų^N镔~~lwȎ1=PwU~tE6ps(EgmmOŸLh>Zª~}򙿿?u-e/gҨP$&)9^bKLѣo_ZU*Q}"bi'G#x3fzaÆ"ʉB‘ĭĥc,L筛+cK?7``Y85zЮrNKq1YuC 8o0*CYc͚e\qLSy,#<}ZO2*lۺ51]H_h{߹̵Z̒_3uKFVp{L7S: B! 릔f\c^޺%B7Q%"^eR^^%-A B!L!B! LB!L!B! LB HJJ*lFHJJ d׾* Bג5/lF:ᬬd՛u7 !x-9::rmnݺ% GIIIܼy;wvvv2EPvvvE|݈Y!ěĄJ*͛7IMM-, 100oooLLLrܜ+r]"_`eeE 077/+ !xm) \]]:BؘTҴBzzzP(L!B䙞^ zB!B B!=ω IDATB !B!D! B!B(27c: B!5`oiZY7rL!B! LB!L!B! LB!L!B! LB!L!B! LB!L!B! LB!L!B! LB!L!B! LB!L"Ӷ,ꜼٽjuFDog͜{Ty=7- }{ ۗ_C&`-ϽDYl#h|)odnb`Y0 Llگ:m^+.e`_:ůt㗥'7 6~҆+׆z[ZS=y>S !m:~/^/_=EvWdQg Cc[ \MT ۷۽ѹ/NdL>[;Gҿck}В:2p?νgFXJ{`S 9x[$7 "(ǣ1,_ٴ_uڽW%L_pm0rLUW)c僛~a`^ vwWU?[U%CKT:em< z{Ujp-co35IjPJ7d )h[2LjxRaqo큞@?dzxb$I];RtfC]h0˘tz iR2`cp+ʦkc9|:DA{&`T)W6-ݏRuw4Q\'l$qp1 6M,RlƶPtq,%Kf6e|;JhҞs1 ʣ4l*4㡃inCY4M]GhTk]=ͻMFIxp(x|J9m $7K+oSOРGOv@m{ڸ8&i܍J@Y&FuU*r5M01D _SHL֞5myӚʚv38\9{-gDkB>e\8-+us_m?7,Q"eh;OOߏT.˄};ӆTf|d/̘'F͆1m<~ٍfٜzߎW.LbPLV\ʕ+\Pq×+kۅtlڸOrƟ{դiL՛:1ou'0o4#\s~p-+bޕ͜~d-Jm*1D݋!oO O~gj6ڃ'-眢 ΞE He}ܼUϟwmiޭ9VIqnKwc]H7d샧`Z59,QIZC//]dI{0ĀՋ}BL XceUBⰫTI%. 驔9 BC;3sE@r,qIXZf#m)mZE&o߼;y*Krn܎'xHHMyy|iCx_Cה-ܿwc8TV:,a4 זXX@b|<ǿa'$WЩ_bLk(kBvHzӲ9+#hً7xb[ k?7,Q޾#`svŚר64Kyé94o,ݐ֯;r%lǩJFwvFUӁ~~_{1N1uF@uwEsV=i_&ҷ9;x?JVii^Sw<:g~ˤ* VRi5.uql[P>6}7uqDmؓA1'<cn[*2|Р;󮔱\ M'֮6h7 Bob-|=,L W.ŴB?義.vu"#:f{8}?1aAԿ:aED0+:ׯk鍻ʷɔ.Wzq I17o~7O˯ԋ\V3u$ j %eE>x%+y}Lytj!klwPu)_O`l*/[^:,a4Q%H5XZӧ(/d>Do{y$ `v:ƭ!ʚu8Re:l']]}ֺW_Sʇ}(h2@{0^ĥdL9F*)~ٛﶥ]hX*ӯ `Z\q4ں\~82VsV9RL*67k4"k4yR% Q0R-4_-XOd*O({x4gɌqYyI 4^Ph7A\JoH$- U$k ҿL'{xO oo_!nLTKz2Fh*cr38Ka(~څ\Y)fہ sw6+__hn:Ti̹lY|vW.#L,EK9ݗg%0 E.%T0‚wXH/̟3-n عu+lk\yeZTnǕ}l~ ~hi8ڢӑ냱.*t(*4nH.w,6C#gvp o@{*F~wk]hB}φ_cAw(>ן=o\~L|Ȳ%FA8{sgTL WEx64jQ3|b*|P!_~T! L ,wǮZ ZbxUE.n*߅ى\$4ёfqʵPs|AAADgoƭ4eȰ)ꘞbvbc͍TWZqgoMTLX@tKU/}evVBO u(emt-0XD<9gDP P‚S)'MJp0f93vor`4͔o[p#/?Y!&ϠU6_JP1)LeTq .S}+Z}O)dφVư&ֺŝC457cKv!2qJ۸7RoYvlEWL=U)r,*[<;RV/T1ugB!\u]p1x[i\c}vOƻ VLRoNc2,XC2mqvgΞ$ّΝ䟻F@cL*h_+;{|^ 3h5`Rكh &3?יHŻk%{:PLZ_W`{"ۇup}gP:d۶{qŗYs s&cR,N {S/ ilY7o R|+1IIIl!IVz6qӗ4hOJW Y< 䁥7ϖ9DeCė@%c`јcXqLԔrfzyJOat9=&pܖ `T/C>dILN2g#}ߗw+2єjKD˱~KdOR׫2_/WO N oG\t //>z a1PY~{&~/xq<\WLgo16zKѺ1ǠgILޭ:aÝN˱^Y5ЗDsՇ@aH8 EsտՒ&cԨQ#7AevMάOjOPN#*O%lէ|5:ҪRkOV>>/gҨP$&)9~6;fyOqu~}8Xo17ac!}+bHO¤j|6-ɷ-ͼ͸3lL'~Wdf]!# =VB 1РzI~? ;No9EBƑЁB!{bP6#?_ǚϋ:BƑx B!BQHdpÅmӶu{K~~Qe93rS7B!kJ&`~d QF?י%pϥL_Ƕs_aq}me>L5Vi<>`ίܔM)Bs[aAO(]l_gwz \z!tpBjs>_(+58z4zsZq.mnYZE^Nfž,iWKpWGnY!x}Lbn{ٿ 'vĬw*,EOKeSG @²M"a!8}_,7xS,Bd&^O˲-BTLm=ig]XWƓ_ٲa/HpZk G.NO$4g.rlm* fٌ_$Y8P˗ jS`O|[rT đukl?ش| )ޓG"=bGբuJ<<noVj]G2KF9 NyfN_NTtn}C,-gS?u$,5rrZ`2~R$QwNmRL >#jhmFϦ"z81ݶ#'.p#)Js[jথrCNiFLl߸Bn$٘m3_U u(sZ?s&9 :ewvLgЇl!^Ų IDATm%0ZJ<_+i?;?!|RϜOUSi\ b.dCC:俖Ks5]*@DPnkU է>0\qד>1?-3ifq˙~c7 iN>cp+ʦ.ٜ0A|0͍'_@o*ǍGő4ލ:UKUus'MI"eRNUϮNlV|1#e}2T^4+{v2K{@b1O u(*mֆI-%vY}ɗBLkrp0n]y'@y{{qvKb L T6˗BDB`=^gyQ se(#~TsL=9wv\HӧL;p86KD6VTS>KҸҵ-jVn?v{⣦n;qV'fnՌ:U_P-~H,aݗNN/)ys7T3KhviFxPJW_>hTk]=ͻE$;g, SNJoSrGϋކ˃iI+,~GJ16vZaϚikÇ=TuJx 14='Zt K\!He}ܼ:;:8f,$HT0"Qhl{+}KAZ VZP H\¢dcMa= $L LZ:=ЍulGei̹.ۭuҾ.Iu+1t樨Uwu|b3:}jԻzJ}pu=lkONl+uv.Ócu&W۪jLڡcG`hr,YڪP\{Ցzg . K! ?HR/_x]#fֱy8gI9JҤccR= SX +>///L2zgvl(TՌࣺSvٴJ!͑iԖ&^_LmW8lU~ˆ|W~Q3ry]'Y崍:R{Xk.SN6.vKA6׳U;5=[u/UV"ѺOdaVd2K[w>h^g)I0gjݪ'p zmi>~e֖H!-黫S|| :_yu2ECoVɎJHM9Yeꐔ=/Imru\>ϲ[lP֏_vnk֖*uIU_Y';Ru%GYKwjG=;]+WHH}pu=j7Y~L?ef5n]-WǺoU?ehkY!)88ߏ]37#`hb+7@wk#zAgJ{L/\?X1G\|-{ROծ@򭺼s_qu,ާs]nT[GyZ'R%ݬ. 4{E")]AN_֒OYURڍR{+ro6O2}g8LܓtԢ!ցCu(,Ic6+@bݸ's:l]ɍ},} }עzDWlA_3sY,ZT}kmOj &_>2CZI7@}_ֺ" :\ڬ I@3Y]=L#F֤ggװ6uܲ[$I>qsaN@h=)d78b__KR&m*qb Mg4uK_]R_. IRhzH_i1 Mf?WJ}dB%UmVnEM5M}%:ۜxamX'Kڣ`!F)-r>Y^R05&%HmXZR$Iq]O\[m]#(UF)ozrѧZz}cfܷF覬3._cQ[7UV}w7=]=11a0?%LzUׂ ̒2Dh])JZ=l.Y5FWE{4|mM)j}m_<Ǔedd(99ٓSl͟߾LO: =&i ̒5*mJM+}FmfݺM',^9Oџ/? A;/?jMnyjh`xM|cMv74 S 00 B 00 B 00 B 00 B 00 B 00 B 00 BvPkxB/Rh`n;5ky_;vW>|Zi}O6KP'j3Bx; 5Az_雹kuhmnypj9_m+ܦMKV׼jQ"j{u]Bh[5_sVξbE;_WQ|P.Ӽ?OMD_Y}E웭a(\M}C3(}kzM; и)ӕqA.M39uBy7P]s@k-K)v%YM[\&LĤHYV(GU)o飺i!/y+y_/ZMx@o+׉nH9߬ѮД^ .?**5p {A~\P#u*T}ׅ&I_JH|.p_4aw7-*)m8;gs3`~-P#:|DRVm-P.—$*,Bĩυzh&^ Ҽoߌе Sj-=YMuhJm}ӢJUR7gMyvҵg0dR**$UUJ>q$Y,:/V#_3>+V^;_N<%g~Mxśk֒(8!A Rtw4kd6X96jZ_P '}W|@*&6V6M Yyhƍg(%&8;FPƍӔeID]tJuRFu_껡Q3Pv>'xig nan}2Uw_oQmTqPKӪZIk ܬ ?S\][@ISV<~ֻ*$FצRPm6/.=[+\规IZrYR +E][Ih=?~<_VcR.tל{u]lu:Sk{_ 2w~?ZjZ.yY V kֽ/V.xZz2Ueuedr&qݾm)~6_R@Tok6xұ %''>gEFFRRR cg 4MIfIvۊ I6ʦXO7 !A``!A``!A``!A``!A``!A``!A``!A``!A݁dddx towhV.@b "!A``!A``!ARyy T\\JowSXX:t@ow)eVTT:w,.59fYTnnz血ow! ^VPP(EGGd2)::ZQQQڵk bihڴi"ow)e|5tN?CG 00 BH:oȌw{# ^~[4k_-{Kt+ݩysp>8^!-koý+|H;7c%y4{ih@|!#j>R՜wh"Q5kgs_+{o|¢5ٚvAUh/6hQ%j´{44>^4wUO*tMrqv,.Ր;>zd~uW*{KaJ@:#kίַ> ׄvIDATzQ,^gbm0;S;Kv)F[ xH_G~~kF=1X#t*L}/T}z$8}47ai jTD"$__?QNY^T$I>O}| V#tKʗ3m\uFA]ëZߪ:u*UVJ%;׼Mu2oW"V Xd||8ƯL~D\\I+c? @ կ~]zyZpw h5dpK-((wrPuҲXj^'*1g,;~'&sHM}ef_ ?T$u%ڒ_;Mi!^~ -mwvo"ݺQ5ehki#үVJmBwM^<]ߡ퟼eu3(I{?2ԵK[UPF^|""JkMq?que*=%4uH5yh>h>x\U .,4tmZ?GrW:Oys5Q)@TX=Uud{˞"UTT`=:&JxT'xs< `]~{G'n4 fY~~~9Uqk<:N,G!44Tv7(44;0 ^V  'ڷo{jϞ=ՓlVaaۧ׷g=`ΆuZHHt]jrN:)$$>UTyrg*[ `}\|no뫰0L&UVVbϞ񑟟L&|}5Ydiz?8OF,;9+ ݍ}d*y5ݐ45fzG5M;+p/uMG5{9 ap+|9{&: `ֻwX;_i`UgVG>=`B}aM2h:bmQswL&$I~vAQGW]U]SHlKjF_hYqcSaG}wb~6uڵO_!˶T: iNu=#V+5tlCSV:34ߚl @]\0gI+W#aVCX}m.69;z!S #0G!hms5 ^ `֑.ۋ_!Q}U-C:^1W_e?UWk9z029 `{u ct:xَzg q8 `Fx9vlhT]kV8 bu}}sԞK ]άAU,VN^8 Du0 uG2vak a n. +Φ#5(uH]tCGhhR"_Q˜׮;rH|>H9[6|ن+b @}(;CGuπ9 a.ېE agԋ;1BpeEy1wZw eW!̺+lz_Ɠfi"|/OB^K,ظ YpH.wÑ!z.pSuF<\+ Np< Lt6OG9g74 N8jȔBoHiR'ݠIw5V1*@CKx~T.[F%Q=߳Y9?+n6YIENDB`lwindolf-liferea-508e7a9/doc/html/help_prefs_folders_1.14.0.png000066400000000000000000001015211451527772200242020ustar00rootroot00000000000000PNG  IHDR`aSsBIT|dtEXtSoftwaregnome-screenshot>*tEXtCreation TimeSa 29 Mai 2021 23:53:46 CEST+I IDATxwtUnB -$ZB M), HG7T]A:"E"~D*4Г@fw?hH&! >̝;wf}S@DDDDDDDDDDDDDDDDDDDDDDDDDD * lcDDDDD aHKDDDDDW5]p2DDDDD$4Pj ˭M9WkZ.4]iʍIΦɼ""""""yMy=pn^G3`&"""""⊧AtVXv܅,Y\"W]\j8lv5/"""""f3&RK7?Q_< `Ҟz0~("""""hR6f3)p] -8Q!̣0M炥:K`^7D E}|#k|Yp.lŏ\*|orr b{O("""""-̣E0b6:&ӶY|EdW-USdˠK/|٣i;_ظo(ø ^^/pDgf^p*>3-Eri_p x/W.۹12/""׼Ρ=_]2CYqy2r`\E\K kqʑoQtԧaUPχHF{2g-j!Dݹ8#ψݖ̥sq'˿ߎ}vgQ, Fϐi\bII4sQ,[{ ""r5?U],^~ m-0W: پ+eH钄-9dEézK8UoiMo< ;+\# ""t)r|2˿.WL͹7;&1޳SeGO0gaUrvqZn;*jqhc2Fox@ -og]XӷS*q~6)zF8>ޏ{T%TV~KDZn^3 ;Sh qh/5>dqsxB$˨W;TCP%I8U>ŻZS~ yjEaO80dfnwS/8~)8yp9٫DDM,W~h7|M\q&-m⧼wi q$gSyҩ,eܓ0wQB̜DD!KJÜ ;C~2Dbsⴕ╛~]D63Y_pJqv?ju7o22KDgTzP3~ aaQ}JqST1IN8˅`Fԥ~lF*tAR/X@a~Aho9h T)I _"r)kryRC`OI&;Oy@Q1_%M6[ޖQqy2y fw{ED9җd?vfm18B#ե~cnl%h{^`M#;f!n_ N+<]h*Dr r{N˵WjTXDFU.-`hҴj]1۷Bv [?cd?^%BqD֍L0Em}srYHSZy0m' rJe9nq::#OL&Sj5nʀ9+q\D,3INx8ouγ5l`ƯBB,z|V̸3+]_DZ3?ƹ;ƥsx@Wg~Y 4^O7m0 fNڵGy[9u LO>M -`4.;=`""""""yb9?x2r0j("""""nl\G,FzKvSOvʵs5n¡ &"""""s~I0q_4 PnJ1&Ă~Jɵr=ŃEDDDDDrTqL F[ԟN1pb͇71 ;pb%k=݄CDDDDD$(0<&"""""GDDDDDDHQ#y3gբDDDDDD < `ɫExl6rt HQ# `""""""yDLDDDDD$(0<&"""""GDDDDDDHQ# `""""""y7+Llll~WADDDDDQ*8T`FҨQ֭[UpJ 0<&"""""GDDDDDDHQ# `""""""yDLDDDDD$(0<&"""""GDDDDDDHQ,-[̗>gQ]81FY/""""$0)`b#0c):dz=F/ą\VۘԷ=myPg_P.ȞHb\ȵ7+ דLэ2,YLt I6 F!P-;q]7Q'm[};/)?_k)۩,b1BtmL#/}J9]=wHnPh.D>Ζ̹'Fs Adgφٰo~ÈnϓOӕt5$,;S|hvWA>CgxD n6EV¢;9t. 7?GMCRc2p |Gpbޜ֐c0'K>7bPu8~:N Os7[y_1owXY~+_;{ &e0;]y '=pl"Vs(e7)u)voS<˒&8cqw,@8~2a9w]/M{˄3`v?E]f럲daΞ'>@P4{p;To]`?5;'a.G;}U16H5` L`?9)0b [$b48p=dz jDV| #±,>|&4O(齿1kPFKL,cÞÜh)0'?LAeOeDV)#{6rá}eۋ `8kc?"jׄh޼CR`۳HfT3ֲpi;i$,ka;0Ȗ/_[{$~_=39s&3_mKaeV{>\og3/pbnuEh,~17;Fۋ/+$VjuxỄ5h.D``C!vng{ P1[aDd;S _6G7ؿv >nltL֊o徏$>08lł 10e+HHpYjԬz[}ƌD*Mx^}'v#',A)%2,2zjv\>dX]k֠l:|fT-`l,8R4U?=i ~Y{5WNs)[@$>ـrzv qn>]~0RTq4mآh[>ʌ=XXfbv2Z2r/xO=bkzt"a'#MǮgŎ9>uhMP8ΟCpT.)EϋSI{RH:޽P6[J bt5.;۠| #q-Kw귅p,.i.Y[-0G6l  38A%X?}Kinr7>md7&Zx͜fo%]{ Sss=RE_ºM\NL†={+–$V-&xޅ utϋrʲwǹ<>M!.s!iáݓ{p)\uHX'P㞘37p1)KV(Q86>}+C ?@ "Bc'_al%nz=I|`@Si[ OӪ(YˆwgFhhb[Mq{֠a~Xehm9{ 1.eCvFo-itsSz!g33QԊV;hud_ØmV*6k|`dZ ó/ѹn8!>!+a4h,cMNs.ş6^;tb4eC1$lDsvwg-SFdm j=|HKRl)_1멃ekvЇ<<(^$!=>v0:Xyԍ $66l:"eWeP˽T1XJ@4ԧRO@JEա]wd`Lgz#7BC$[ݍˎ@0ԥvhQ= _ߐ}a0WsuGySXի, %vdQo_:+F9ɔA;VK p==MFe@;l4q!yilfttM+yRQFyo~T=wJlFί|n,|8k1?x8!@!f?ݓq{S{ꉈHn:l lKה)5`03 鮸"zZ]0 AWrT@Q?8f! X]DԏEnyT1_AKtN%nu?#R84Nss_;/v77£2%%T+n|h=jVvѫOzT-?Ց).\#9|E'yur(Tñ3I1Rn#:O4"""rP3v)^UnYS)'ӱm ݍhFne^kו=TPSlW"""""90)0|?&qH8~+x,ɿƼWCA"Uc_)o'9C켱|umyQqqNeڮ;ޚy/ޒx.?ミf%n]}b}2ogO؄2IGCک-ZVq٫Ul=vߞr}2'9ƚsXuz:ʋ}WD$wD)0N{5Ljjs9ſ`yq)Z,Unɳ=P85ήzEvGBWi$D<[ձἿ}|ZE!ɿ<~])2y];~m9u~0&*HqyN,nr<ѥu|۬*֖"2gNBmuA|eww5r,6mѵEҺ_ˮv^o\sB#p龜)T4'Oz֟ k/`[>dz%_U ]H5Qs~vVjCOមBA҉i3`?ͱ_3s>]# -n_;v-›<$k??od93%m@HLэo1.Ӭ3~?sHa"kKS;,#8#i%\ZXhFN__1c#xmiMO|<7R??I]ï(7xn&N]Wuu(uHdO9{{N[ HW>{uwq_Ǻ?b78n &jy|.ǸXww6yy s~ꝶ/qgϓl:.mr=2cn8M!4}s^#c3ksnœwǒGH&N` =֌U-rrŸt>&ɉǜT:xq'j4d[s [z8{֟ȹCccߌy|%Z}>Q~ zTQlM;v`#vmێF:8j\ǃX $ndHx:%!p~Dmȩ~_g73ɼ1}RBu*?y5fӷ2pdoApv?KuP`5>>E"K](^Y|:U&VY=/b 4(=4eM<̜=_neluw܍mC#7yy w~1zD>=?<;V`~YӴVi]q݌n^.ǫ;+CDυ}";'8ǜ[n/Wy[/wӇzy,yR'5@L ;R~DF׹1`bwfG~|~&S(͘1`p!M*3voz~_8nCGgI _=< [v; RZS mcnnlir;k'zst;r5r7qWR6=ޟwuF17$Q~ a9}É:ԉV_퀾Q$fϛSފ1<'<<1NpF N!ALL _0U;i9J|vwl<`yya>ݹV)̗ؗPj>en28 bmTJ1)Bq۾0FUqK2+P4G8ӬŋÉe f;0C(xW=FIr4rmA1"/Гu Pź܍nC1m/O+뺺]K>dMZ];LRM$"@Z,?.{#J 0aϓ@H(˦wy޽XW|ms {4G316- S8,r}¸|6{ϹPaK<~nm=<߆c ;'l]OZVUR8aew<`6)AA|"==ƀu0բ=ł.&"""""rP# `""""""yDLDDDDD$(l;ů L`gV"""""Rp)e9v+ێ_r1qΟǪ\M#"""""7 @H`ɳ!O{J"""""rݻAX0w+ʷ+kF`[HKhTX&CnǤHHvcԨY?رh,c?ؔ S1)~ Kebs+˷űngXM҄1mV3$-C&Ai,gfx iC ok>]j17 ͞jyjpys]ɩk""""70 Պ5}F<1i'>Ûo>G21~s;dsRX &>ɰLj Ç j~\L83· 6㯼[.sկ*՞^y5х L-ΨQC|lϻ},y/vM8ۺp5s9XN^pUy[װ~_A_'Ǎ}ڶy<Ą}+_M1 GpOofL[Ca\Vj.>FGeR?(ҧ/fSye0՞=~QvdѸNeo?[L3MQ$jzb~/ﴹ'+y^) ",2A_k@ɬ_doyԏҩ""""y`eLu#.v%i 7v"c'iFe~K1TevDvzŝc_t@NwѴb }YX =9l[)WFqgԬ QSDDDັX`iDGgnǎ7! X.10ĭO{+Gs>OޙNX4oGn Y{'=L< %djnxDfO]ű[ Z;GwLt:;3?+wsi铟Eܖqa<7u.X+VD:{'t]h>6}f+7:͊o0Ühlp{r`l|^1=mrDe{լw*<(S{^"M/{)S#굥g}xbRv?],xkƪadb\x:}{Ďc `IN&c6؝N)l7hyE9{ Nce/Ғ ~!%s~ޗ/PÔXК'Gev7_BBvNɯ2oa=ݫǼڮ8%|}xW!N:џJ[8]NhgQ 8zQK#xr8()9MךWUb~GinoFne^k/_Yn.x|kӍ5KbJ:p:A~[ v*V()6HJn|RMZҵY؜oIݶwUY|ij׼G9QI+(ѽg1cwmB._gӻujܩq7 FVOJh.Ջn,zU+ATT)P(&k(yh%fU}iPgc\Ξ-: S,"""rPsHT01>Z F SDzUnkG,fwMo5?!C&1~dޚwCCis$#C2n$ޞ)$[zs{[0}:!S]WRŰ](-EuxdA>6#6mv?>CZ=l@+zm4I/}ipeSvՇ]w|^3?'6?%s~`KH^Y.] .e-Ey4T@F5+t=wӼҍ}ܘnݮ&1P{Rjui3|HO0.˭~ O>5V{_<쪶;R~DF׹1`bwSz+x<8xz )]n7\WL >pmד LS}Q7 /R AAd817!wfHv<>{ =5s|OL ,[oϧ..ؘ7 hA1"/Гu PRi[ȃ0tZ0_c_BY:zܕU i,{ʴ@aM.Eȗ?Lc~NDZ_%kºev7ڨT1 8bc(R$:Ƥuu8Z!0+KDDD&bea9>p9o B >"B)V.M˧?؇>cSx4cYIBJٴ/ws~=ߕܔمW_:<>"lz7'tşf_w1I*Mi]#2Jj|&Mtt ;8]b>`0d|Sګ9}:ɣXll,#igwͬgOś7IlT2+]\{'""""7uQ^=1C@2`>fl{!w~SU;k7Y֭[79sf)""""-0)0>%= *LL4|Iq*2 ނ] L&f9˸͛vEDDDDr0 {R" k[,cfa#~j8C_Lp?x0SXnƺ{u~)ݱ a;s<#""""r]* B1z)`ٵR,]듯 cX#r~FDDDDTP0m7OwDDDDD[DSdn A%."""""כ BLDDDDD$(0<&"""""GDDDDDDHQ# `""""""yDLDDDDD$(0<&"""""GDDDDDDHQ# `r}p+c䘍kg[~W$%em("""\NWcM\eLxU^X6&mO{bAU^;axO 2""""ruwOgذ`>"ES:a4"̝] S{tc>-y{k4:ng3kAgX:f-F*}MWMOo]HbLHC!45,a~K엏 vUgyRl;| &oz=h.D``CPҾ3g}8@JnϓO?}€[3| h+2f}uo<ۑ/㛭0kyO,݅n ",C~,>T9q/4ge7k}Hm =oϛiwpS) nM)c *E{gddz񌙻'/X&o(R?|,}O2T*UH3OӉ߲ai.q+4[fo[3wܦOzQDPVoNiS>{,vޛn`9Yd V a IDATmRm3y66 ;-+"""R,_掗>e66g&pzo>&>p,@@! F}l$ߘΐb xDC(>s`X–#\#^-u-6P o,e>aM2>~i2+vAD7q ΰiAթɣu0p~-F!wޜAiҬ6F,קiڄbMJԭK8`۲M)55:-u>c?oD&Jwtއ' 9 BBZRRTl(H( a{\+*]^\۵P*(D@:iA@|k&g|3s.Ö#se χ≠o~bMlɎLͶ jspNf̈́D˫t3\ʱq#__F~xm~IzTE}_[tĺg&l{vxd=0_#xd%;$8Nw$Oozy8>Z6WsN:j 6k%<և_, hUsps*~_bR%n߮UiUuٶS$3NcKD> 3~/\Kr_]A6 @ơwMT!XU끢k,It,KNv6y>-<Ͻb}L&Fe]H՛zWWveKY=|F֜-ͣ\f?{#ߎԞpmRg·IJ̙=Zna[ #q}WA&n^/ak{JP<p?y)<[x~b9Ps_d,&#4oP _伙[syЅ aN.P%O-O8Pә4>fbh]{ד>WYYz5A ,%m͸%ːR{͛iV~)ޱ{1rKҨYsz}^Hɜܣ l@@>& / 8>VX8t`mva{rG!(VG5R>sͷ~i*\s}[D \J֩Ob1cT&o5MO㧷c@:I1r7.? g]#]wc.ө+ڮ/(GLV=}l^Ogӈ'i`Pꤎ8 7o,/,ʁ@K5Y(Wf)It8Xԩ[w *;72HJrMùλ/+OY}J2yGr#/+ @PcD"MysDf"uyW;wWWTlƙa֧B'q\O=ރ/%&w_#w-fhdiJmeq >yiE,hol~,W_*QD6+(Nbbt@Æ`*fgk,_.>}Jr,oۥSTKY;ްx(]M3gn2NC;K%Ie$IUN&92KQ91B\L8 /oOZTKC>6Lz|=v[5nMBjgz|A]K2s$({};p\8"s3ٜ~ p\T.E0s-r)X㏯Es yg;&_fH6S:W g[8SrC:4^Xuz/MR8,凌 ҐsCpN Ȝ!ibmhR5e>s W!% IMnԋ’895Y7 a>TI~g ep /" b@d2P^x8;;{Njj첋}<p}&foPȬ5ddVsD/W%K?hLbkyo@>mm1׼ zұQ9xul` OuOl4n VD ?{Sycz fsxK{ho\5?1<}os*uA!Y.j,ˊWTL$iii%@?` -X B-KaiCAODz9z9$ЋCty}5>}oo$;8IԪ7p.̰xypVJRBcZ%/idꐷxi~վK\TՆ[×Rν3&3FĴo}!`|eDRҫig$IG#xL3`EWf1% ӡuJ\vAZ$E΀IQ?JuE LC.aQ!It%I$)D `$I"0I$I $I$L$IBķ Heggƍ+r"""ҥKSjUIT `*2|wTT$@Q$٬Y9sРAKtD *UDBBHHHRJ,Yˑ$IE"qFʕ+WeH!S\96lPeH"dSsKG@ ೎$ `$I"0I$I $I$L$IB&I$I!b:'`\.|>nNi?K$Pe xe>a>}ɟ݊m{yYy~\ܥ=z_؋}UW.}f&$IG/s}E[,|m;?η!g>3Q̢q1pjgC;m@_>Z WJcJvk$I:Z+$L9#r''?K{r8$I_/elɋRv\r՜\NI{Q=9\'Q8?ݟ^ɚM9D=&K_h;b}?O_0^h7Қ?Ժ/cl LrhȂmu9U ~t~<߾We5 na pmW=Oripnb~XLt/.YZ>}|ȖH:oY@?cފ̈́J?pocv9Ͻ?_-va+IofUfhW}ˤ0$}}$I:t!}R߼io#W/baS) 廧r[~Nf{ '\sW7ʕKx<[5noo/x{*@1@ _މo|~ε3[227>S5WgR#aNG1&z=oe ^KLB817g6NvL7\X53Xԛ7$,s >ˀ[J?|21> r?Kjc"'afH.d|wv\" g!XJ$I`QDRNhZHEZ_r-Ͽ%gՊȬϘϤOТ,; #F N,XW -5U6䊿^淾ESǹzwdypv_7޹}cD%OcDlM.gi|9 ڜw>pΗ==Fq%;?9/]@RQ`Ue=yɜs߉ 8!-RkM8|}|A?em~)ߒFu@?==^j׌aÙ13m"Y;}:+K"btӊ,bƌ،O@$i;^uiZfeb産uS>|5|Ȭ5l 33|% YÚ]8eKm@?~1b z\MsFNcUiժʾ\\I=20W%`ۦM_ 7@ɒӮ@xx8DEm+`N9䒗';:9܎7ڔ.:FFII4ySӶ1?#' ᏘَO&kޜ瓿s i۟ Gn.Q.lڻ>e5z ?^ZӺUMF% l!mz2AT>z5g}„ܞ%Ia.Xgʹ_3MKNfsKFTQ&=~U¹ϭK+ϢIJ5׮Gbl1, wޱJ5EfmTZZ})"{1bڜʼn_{gpljT czb0|rmjGczzۂ>s=k{M]h[a޾>R];jM&|sW,M˖=w$|ng$I3`:vz>Ƀ"Rl-3WV[RөS&Eȸ%U޿?^=kktjR9sY5>I/G©(]l-?tg`"k0QZ Us~fsvZD.0k_rfÊfqfՀAe)WV3hQeןw7UhN3Q >oj -=.L1wpO'gԯ@`pmk=jk͓^JXҔ؄Iڍ{'F?E6Q2ɤT1}MkGbIvJ4وSW^z_{g{ U[_gS :O--jcs\$yvKA^Vj_‰[Ҷf9]2Ň1GchC'rN}|_#*TJ9ミ}ڻ}"gvLGWs5 >jǩubAnΪ߃J$ep /" b@d2P^x8;;{Njj(==-Z1س._%^Kt4JKK,3l genz.Wj];= k=zا~cǎ=ȕH$I{gaꫯ.$I}fam۶QsAE$I_C/I$I!r̀M~O|Mr !6"E8!!H$I_t VVOueS[XlOý߬ѱ7(+$It:ԫ[wzf4/a*hTe#_/$>ýCps_ [sAtI)7ubK?]ogXx{]FrG0ldLXJz0O/դz1"cc$jE}ᴤhO$ItH;:9lZ9I%R;Vϧb/nS91vn˓<6N& |w.s7CR)`fgºyܒp̙3`i n)q=naVX4?N1L=w#aToEODDCvv6E]$I*BGg00c9=_ɩlYSxi}$wDЬi"ۮŘQ_ХOS=os8U$kg`URD̘ZR5s35jJo.$5aP苁~KrMrYRԽu%_]8^=we͚5$$$u)RH^آ.C$35;ٲ'}o,KĠg=d ix{ ,F |uy㼚>`L{»/:餯H*CbGz47dᩝܥn%E,ai?d@A%nնzYB-!!r9#Vvv6WfʕԪUˑ$IE `%ʓ}Z-5M`C\{\ $orjYg&?$]Q_?'̰߬4Uj-Itzx4M͉y䚉Խ1_bDRnΥuvxqjԨUX|9yyyE]tPDDDKՉ)r$IR::خrʃ?ZR_a%},Y)B"uIT>O )<_LfSPFڙީi0qϿIdmT>EmE^^`K0"""%Il2;YlZʻ+q鍀_vOt.^kǀ8-~|$//O[Ўv)#yqGTp!x"5 .]pъ1=Hj]Ì%W0ݎ7T 2k ܾ>TXXGYI$Iw t<70 "(w UkL.qv_8#>qwoꭸvho$?8&jڵ^ɴ,Ij?_)ȋ*MZmnl1˟pZR4CƇ#6v2Wn&T%Z^=X[ 7^ # 7|{"Nyfz?# o`/qCꭹoo,8:<9,e lɋb^l$ItX8خ+syq;y'w,Ŧe IDAT1wR,]wd  zSo )q=naVqwnӛzX_F͚Ӱv峁S+ZC/N7GI$)dM slq~a@lcF}A(Z<1-SS&4?&Qit%H$I: `䓿cu"v yjڑ?a=Yxj':w@;Nr2tۇ,`AV<o_%ѨaoN#L51j]̒ǝB'ڣ/+#ZaN`Exx8D]%I$7z1-8Mi#yyy z٭5gtӨbD.:J$I:E,r)nyW8&yNH_ODz9z9$ЋC`b#Wl"/4k;Qe7#F_sK2.:6VWNA0{ȎHKҮ^I/G0| q[qtIy2į|;_L\ItBKj:)I$vQ.[xQ" CtRSSg#2F[`̕)}tZhqǑ$I@0rvYyZ~ܥPxg$I$)T `$I"G3`D.u$I2g$I$)D `$I"0I$I $I$L$IB&I$I!b$I1I$IR$I$)D `$I"0I$I $I$L$IB&I$I!b$I1I$IR$I$)D `$I"0I$I $I$L$IB&I$I!b$I1I$IR$I$)D `$I"0I$I $I$L$IB&I$I!R 8}6;C>YMfDQl[sSU$I_cۍMk~!3]ݜb9[Xt&?N0p4)^J$I:9'4Wqbpg'JzN6Ewv{ڟݍ>\}&1.Dgӽ@Z /.噹n}>潁8(*!cT/NI%I$,}^Qy&>e;rpO6w;7<7so. xmL\O }m6h r֣9f\2w9KIMvѝ$I[$KNvYY[Xd&ymVF5{ߺHNeɚK#$€fMve/ƌ.w74d /m6h֊ej&>3gД,I$!~OÙԵ04ӡܟd ix{ ,F :>Kb[XWן_V4铿d YʪKjc8$I΀q2D(E\|F= #,:m Ɏ!l|,:Tbh}Fk= 7fTV8f$I$1gdeIƱ ۗBJ:fL_Bpg fZO__Oҫ\6 huL3u2jiKqn$I@nekd} xu2ӦMf.5Q%%rmW4{$O~TtT9*E{>$I(NŃx,{mw=7~͵CrAbK&?^p <+}+×ώ$=k:kX_='H$I:vR.[xQ" CtRSSg#C؝!&3"c(S6ڭs9[i '&X$a!V$I`BfJ9rvL&~/`iR|O{V⌻P+I$-4Wqbpg'JzN6Ewv{ڟݍ>\,ctS@>_=ڕSzbYî͜r`n]о\;;D:Ѿ}ss:1\$s$It3`^Qy&>e{qK@Dx 4iՂd$ʌsnvM"!N<ʖz+<9[GAL~7qB~\R 5눩Ifp3SpLfYBLU$I7dguKffeT#7KTZ6N!"S[,z3(9ә:Ԍޜ6;:-C'eм1v|䞋v~Y+{i8Xȟws#h|SC/%IÌ ``:9bZp7С~#ДM1xWl=T3T_gyvG|d-Y hp[<'Zqr! %[lÔYʪEp$IC Kzu K". ebR4O:eI ~M17{Ɠ{V_.ygLޱk~>) {&ojOʹq:J$I*0S'yVi}/|') /ǂ:=cJS%Ў $1cz+ڗǻNge8-f$IBLjt< 3F>ɔvth @xRuHE gEwxDnIdiz$,޾=.];dācuN:JM$I NNg uLW7<߾ac德7Q$jU1 Aex)@I\t}>&i2b$MgLI$Iӑ|Oycd۷Zccy1ʯ1>ԫqI>{.N"ȚK#}5Mdە3 ݆u/IfiX;S)J)3^ozڕ+q|47"$I#35g"JSy]êT2YXix/ `dӺp߰$5gYJjH0,<tuؿɥX!~ȎKܪmpAS$Iqd^nۍ@yF^ [߈D:=<ĉÄL$I: O|gӦ@X2M3y,DjD3|zs6mkn,a.2xKmY `$Iґ\DC?G) #,ODTˠ4.Ox{MuCy$i.n/{$I#]TN94{Ksi{  ~LMuLO`G{"Uq7su\Tֲu(#$ˆr} DHY0 { 2"zqȧDCK//v5V01<9{gw.6sz9s=yN׮Ӎwoվ7KtO$Z5 תA o0y}gu֞:pr-C8ӛײeoc_4jvlU;׫wkޯk-oXKܼ\}SOU.յԷQm^ |j'_u:u 0`>nպwco˳j]S՞tBRCҿ~jxJRZֶy0m߾==G;LX={tz͌5 #`722[NCF\fgX _zAln#`Y&m"{AF"s:u$Qm FCIhV&Wsa"u={۷1'LNN^aJW 7x Ӛ`$Fq9sFEO3=S9`8 J\544IlvzN$Zz%|LE`+<6ËQ0 Zjɒ%jj6j*$QVSZha,M.X[mQTۘ31w.CnmSs\w{ߴÖt +0H+J/o\̷}̖|3M,kBVVs\eo JfƗk:bGֶ(ѯ4ZZ IU]\u@*>$2./4 bli,Ut1ZC,1Y'])2+Ao.#`˙4ҥdKN ; @HV~&eUHk5B#`E̼ LE)v|`\ba03²!`HKG2#u.VM=Ax!,{+_ 33Vfp}IDAT_[hOϧMt1~_|| q7g!׵Vh o,=f|Ƭ~HH!{{+a׾߀垊`Qt$bv)v"|Q5+|!zae*G*4IJ",}/DCWDsa4K#^p\# o:bh$c:o.sM7tM?thFVzF{DFw,cY(#`vHV0ˌFPD̢1oaˌ, @Fڵ>SHL$W\eË㛝gDŽ2cyfS(sc&_dEXVl|.)>jDy7/E08op/)_QldŮpH|GaM r9'd P(B\yU$p#]-XgeFO(s~2S s/G_&t:2' = S3[!e~rJ!4D .[u&O 9ؖIENDB`lwindolf-liferea-508e7a9/doc/html/help_prefs_headlines_1.14.0.png000066400000000000000000001027411451527772200245050ustar00rootroot00000000000000PNG  IHDR`aSsBIT|dtEXtSoftwaregnome-screenshot>*tEXtCreation TimeSa 29 Mai 2021 23:53:43 CEST IDATxyXT 0 垚ifjeͬl/=,sϥ6R+WrM3qGQAy@tfPuks,s<9 """"""""""""""""""""""""""*ݶ\lب'Bn bC \"""""r(@VRש&"""""RU ;EYOI+"""""E M%5Cp\Yy.eY\ I湔e]r)ᦰeMޥ3WXк vA Ye"""""ru+( cEYo.&ԸZk(h9 _u15]Ƌ {ߡWQA VP +}z Y^ we( ] \Ls>W!"""""W?^P*j +p55|:^X jDDDDDęPaaY*(] WaAQr5jBg¶apa^.6dR;ڎ=gYreȿ>q\ݰdܕ0 CA~%tY͂BX8 %t9{u6 DDDDDBuQP貒1q"),9r5|;,9ڦs5]Vr3}38l٥ր9 _BQ+9"N~GA/pŠ(5;4^Cum0WA7% 8 2μ'o\Y-SNan_y@djZE_sͣ&S%h4DDDDDdl6,V|8qϞ_ rp8rBV3 .74orAAOgeqlb`]T흈 ^^^||ɓHH CnMX`{y6c *jW͚ɓZ QDDDDDXVsr:}k*\sС 6K̯sYY j o]ϯɴ4xGl6o[-,uxQ׈j*EED IȸFzF/ Ys2gr/VbVV͗&6 Z(𕿧Y|?b 5Yrr|.r[""""""%&b!XE _Ev1b.C|6Rfr(_y\ `Ҟ~05?`4@o+޹x$e{- 9U(!̥0V0G{uT7`Y" ѧ|u#-ݛũ$\T{q^5/ԥ4Aw7D;4+dcps*z[QM岙q̏%E~X"MsBjDDDDD ͤ{.k2IEٌ SP*r{At0R,""Θ0q8z]sW)CϾ㧕?5ҳ^]_n)w[i9g9QW+V H 0w T&?1ZZO3{3m^7L4+dv3ew*ߙƒB 5bLMfcgYA̗~83!VU:MlV @,~0q4ۥ8Rr9KuQ/""%WVy:Ò@mwH+ ?_tP%Dp՜Nه Թ>:wWo\_&ADD|_{ F??ӿ.%słp'mn!Ά0峘ZSDgQœ%,,ݜf_m'""%!=OgS2d–PBBr:_n~ilM`+G3'ъ=6熇ѻy"RBx)l2C&h(*Wt*6̜q~wM@vNfT|h{WW¿Z]Ozu8=jGZ<^vM@6Ӓ]IInrRY}Wj db&"63t-%'4z,|i4l21;,jCu(YD45T 'NQ.'d/K@}H9A@H^>ζfׅwп~ rIqµqͨmaNOdVY*D41d켃[,>@NI@*Wx#O9~N T!KKD -t5b!@nl9fNG/ d*z[c%)n)e2u /jRseń-g~ЋwDbncC'JcS-OGƭSgMfѰLbd\;Ϲc{y/ׁ>FZiZn{O\ZO>7V}aݮuqqum3i1UcLܲ ȃ%?i 7*b`aۨI`C1+FK[DX 1`MuAe#)d{䙋_pipBDD֧C>]i;/XȆٜA4"#nE_A `1-bC=ODK(%~MIШ!*uטF& s5 ,њAF&ԅmՉsMT3 ni U{re8۵\Z+5\R8DDӲLX1k짥E%.8c^O-,~wksp?6K6fi2O&qzV,˒ =/Žl9?GFkl#gS `oyK[vDÎ2g0dW^D{.Xbϫ&"ibCO];Ib$Y{Ie+UJ?I8͞k} /ڎi\ؽDͷPLz/aƛ@o]نwl3,&?}b*98bI^$>?U~8+!hÅW(]R<%`\KD Yj6i+\[8+>.FGgT7wd̚v-[HZB=\zl_JdY{GҾwk%^GNn'请Iӏ3|Z{EDJ=&݇ i0׺|2;'2|ڜD3uqv\R허HI01^""?MKk_*f@ʚٹ~1 dـMM?/w#R"dݻ?I,e0Y󸙲.lۘJTCU}'xwe\nqf'lVR_a+ 0g)E\Y4fLn>3Lv&qFp"""""ruY4C2 с|y…?lgll `v-ߐ q%,u1D*rrLM EDDDDMN@+fk(63w*Sp(H2՗}=4 >Gs_[Cb6x%;cdj?Ӓc.8m,·71x H6:q07Qq07Qq07Qq=xJ6%"""""R*-ع]) (((((x{$$$x"""""rjڴP `Pz !!-[z"""""EvZO)5Aq07Qq07Qq07Qq07Qq07Qq07Qq02߰hFR=]w`S~1+zl""""r0"Xo:?If>|;{?Β6OD]lc6{St+˲WgOl5Tڍٗ;ZW]9u$ 4=#JhC{/!f|>~} ?<۞~Jh.r(I:k#^2R} O|{ U'X-zޠ!"""R:(I4V%68`W?q{ c|v O}l( ,TGGsԙ:|>a" VohN9"CJcyv(^-:2|xOr Ҳ VCۻHڜ$֓lr*Sf{R:#5:osmvݲ\(pt,5q;Јx\_RȕGyq6,u)z1\JA>vIxl9fBy/;^صg+;TJqv/o?oP2$ ؗL:YHݿ<[-g1! }k:CpdM*q`FVnǥ9}By3~gdEd'g%"""%fBV Gpo;m$Pn$w|>XX¢_087ԙ[wK2m>s=O߲@en~sb)_lbB|=GzIX-wRR~+tzy >W{Vsyv7qqqg}/pG/ jă?Y YQ]BDDDDdjxt./y[t2gJ*tyy,#W߷ ;BsI6zw)z8M hFALXkWp49`ر@.CQwhEW#H{yo@LVcŹ x;$Jb> ||hǷ%~VcԌ KnANxS>}f>3%l=) .l>@pQyp^*EQXyeiD̙ew 6U."""#eQAM&v$f>Tݚ{̍Q~.N?ʺ3$,6 L축MLIiVՠ9w“9}fԟ;5[=-\uYZ,~62  ˂Z)ƳބJ=¦=ɐ(Ƕ}l?獷~|"RpJBq0n_2y{%ԃ./vDYӜL3@hݺ俧@_nTsYs IVƽ]weL_S+d^";4n67NbO[\KQxlцMrvN9qk Q[06*2^1p@M0dLv3V+ON:ifj֧jzx4 kf6ՈiڄҏGhD,]W/OO罇oШy{=9kDMJҫI8A^ATDZk9jrt/S֐ͣqn{䶈e$|n33f,!!MebpK&\:HTT?஡ 8ce܆%;.xzOww!uoeҝl}|LEN=ʹ@˖-ݼUKK:-$ oOϔ0tDDDDk׮-r0LÁsf< Vosӌ.㪕P11xC 7<>?ɿ/$2}_6Xoxz>f …;d݌@~L 7n _""""r(£IgL;׾V㻀ڠVZ~5Mo"n@]wd鼶2ATܘQXSvI,R-O>ӇjstCZ;_iCЋ(:q3Lbb"'NRrEr刌RBLDčf36mjժDEEa2<]$)!fGe4hs-"" Ubb"UV%,,L_ȯp&0Vʞ={<])%DDĉxF!!!z""RJ(bQUd2^?9KLDDDDDMDDDDDDDLDDDDDMDDDDDDDLDDDDDMT[9I^<åH/&1.#lY59\qrLKtDDD./ `R;LYib-erpo}*)$,YO;NV;m*6,"$y/}3|\=]=}U[rڏ UQqstB##XJy<ÿ i]Xxepv\w^~7+ֳP:^1}u_/s-""reS\fUś ]l*CYVFѵ)\nr+o<ɼ>F47t_?"""W60]YM/=]Dwg”M0уp^f?`X}s$(GdniccIؕ9 6^s79w݋?jc_9M7pS`o3{>F:Ayc^ ll>])6*Ԍdž;66NwU}+yCnI̸y1@;y+'4A^[wv_rd6IxCws˺񌝿,֠󓸯m=š'OٝjrL?Dh? O`쬕l;l/T~V'3 $ =%zUƲ=/~3A{;k-o}?۽aM\E%Fƾu|ُXnŝ>y;y M-yᾦx'NѹIqV9%h 6 ]\*8֌\["""&S54UGeg O]}^`ƍ/^[_,?1c1p >Pc`/P|xS5|Pp IDATxGcYzG:֕[e#7Lv ^ݳYt|p$ C& }-6}!ӏ⾇yA(c?3yl9l-- ~!elI/AŌl 8ۏ}Y>'iqׯ-aO٥A?**3cHoŌFVJȩ*ȵMl [ ,MplVZc[H߼=9_76+3W8٢#oԙ{Nu|wcx.|9r:;GmDi3pTrTV:] 91K>a̠ɘ5Us|trm{0`UVYӧG"'s*Q;ygM-Zwέ=дjR[/0P' h@F@C*[y5hw{'41#Y֪pyߊDGW1m*hJCN7us5+d9?QwFckɩ]djzSa({ fo]1b_lyjݙz*S#0SnôzO'Y,<>8f-KZѨ p5~MS0fӽ6l lY6l`;˿lܘF)礫Vu^E?%.~D5fǷeXs˳kkk11b< [o=oڷ~ԩS=zt+)xO2}lZ=,SfdhF{6j4HߏEmj*p8Ow'% 8Ǐ0OvgӶDC4M3s6'pSi2.Kʑus:{9%%oX]]s`Gf05)$|lݓoiB2s\}ѹ'zB\͠ AV}Ooֶsm |?\Pg=FҺu5`+绤Xk, =3~͂ `4:,^ƠǪOڜ7Irs}jZne^صZеVصEeҤI1$ ``ܹ,]'qGODD$xo%t4mr'mt#uv-eb܃/B'n>>>ig+?LL`ɱ8ۀL&LX)` [N>xrF«(߭glr?ƨGb)g;Gx\Vt1j+W$=ߚGOym|=4w﬑V(mZb n.O$;;02|Ẓ|Ӫ[/zB2# a.,TR}-5ck/J\דٽ \g4_(Z-Z+rAXX'Ndȑ[ڵ)S\"""sMc_MQxe(;>g^ZʡyBzzZ.:XlHHBl3X"!$hQ\c<Xwne{N]z FԈGD+Kx\«St oʶ ժS'{2Ikɏf,޻,/eVЁI+ijֆErjKr&ڷwRX绤Ь0ޞ3A讅<۷7>5tlWfpou_󝯌|cݫ}u>1Y~׆|{EGSՂ53~xRSSIMMe _""R,T&c:WfѨYm p@cǜ?J'ˋsb|_x# `3YT'I @:v<_ctycj\ cF55"q"oe;c&zCk`KkR8e|GX>AZx\∿+!y[?ԯANu!VEBBpFj(|֙:w Qsk V p3fL)x٧<'bф>iƻlEc;c;xu<ћ|Q]"?~La`J~.>a1>ө\-C' ]zio2i4Rl0!^G4/1.+؊4],>Κ¨%'0{T!jUz\0 e'0񳉼43 jڊZ!tzrx*'mK70ǪI,ӎ݅;oе{SLN5ϼՁNuOtqU j]O>Vvތw_3BՂ-uD/""|n33f,!!M=߲eKOC=~+4k6<])k^埭:輋ڵk%L&p`#`,vnb^5`1N3gJR sV=) C٪6:Ǝ; QMl6LRRktqDD͊b9XI;Gf'??|Oap"}":cW>t$CL=gQ,{zY?ko٩xE/[BNU .#"/ 5kra8w\Q Fx8""RJ\l͛s?ʹ+5wwDa7 sfϵYgfC?<ӴEyZ'r!7ĺӖk;[覴jsn[sH-hkbP{Fb`<]$)!///L&F\Wwk؟;woE"?Yi0DѨa0^R3$]p_7;cMiBSblw['Sny3mj K˔`X@Uj\x͆ & &@nx|"9_yEY4K/.d.oQ*?"""""U8Cq6nAD+Z3ucg[]Co ؉zãIgL#"B ;~5o~[s2_^1#>=/!CȆRm?>"""""R2-Of·xњ!lؿk[oD6>d鼶2ATܘQg" ̔?dYqn ̚_}GNb-Gmy>TsÑ.'Cqh7x ހϙWәqfy\Q @ӦMZlb\f38qB_(WtED֮][,a235x`v-ߐ.U&"FfM6QjU +lѣlٲ \N8DD*11U/W8DXXUVeϞ=. `""nt BBB<] qRSS=] )%DDb*c2t&"""""& `""""""n&"""""& `""""""n&"""""& `"N%jsl r8N]邈tDDDML Yy;u7VqWʶիt(ϙw5ÿzMk1t8o >]q|ҹr]׺S[vŵ]?F?giM}71{4b/v= םt2=Lbpm$n뿛2FFY)C|U>6MptLm3qc.\3V>o//!n C^cZ(Y8|{7q"mx@혋IύSAc .ђ;Om?_ |{0at}~Y_J9dNZ_OĔ۱BZJԮoNv&ڿُ>aJw/9A]J+׺@L<\$^{-Cyv⬍y{C>M:WE w>gOB 7ŏ?'SM4ˌ~q=m<ou'.~:-_ۛeOqC9_ˣǎA.Ub܏YI5qd;ɖţt{W:v;_5GF:uM?- :oYky.=>lg]dǎsζG/\ֳ ,wCm5vNiEDD. `RsDfβ<ͳKӸn֣t4blͽ/1sLfΜK+\?:ǻ`}kqgHK'4kPR~Yz&c9KJ87uɇ}4rm–3'nbS:u/66oނ~Sk{ 䱞eybM8KRh f%OmD11cwV& }O}aӔa\p:wz~2OeZXڰ9uS?8֟!#3Omw}Ⱥu p8gvJ^ 5kN_f  ( UCLJ%Ct |I ~{hWЩ1{7[Ƨ|DGG^-i׼!5}#odqv;.kq\uyA/u?$V7rBѯiso6l lY6[/7QysʝlRS3)Lpg|G7ݟg]^. 8WCTw?*T'3VcZsF݉V-e@_/>׊g,gSq^=Rn%v;LUGx ~ysn3ĤmlK ~hǫ)svv#F[o_^0o7+-qzYӞ=vޛ6,P>)gqd^_G4)n{f~G[H@|)+Ζ)lU;|~3uXk2>Y0֭[qi'!R $<=[lX4ɓ@$ng{V0mDgMF\=MC{y󿈃{5a:0iHk-ܒ1௡ yz5w}'W+sVˤI1bIII 4ܹsYt)'N$""D-""W0)lv35Qt1uϟϿbm~ &cz$r|9z+7>jDzͷ^~O)771.!)tiӺ?gvC4-wwd~#nֆT~ۉ_ h{7')yfVؾfgMK\y jIlqOs |Zw՛oG`,ia t0&Nȑ#y뭷صkSL!8ȕDM䳉p=7 jթΎ=T$n p~ [wne{N]z FԈGD!@Ҟ=!7ޢ@` 9^Nh_f#K_APĕ)`ZLZOsW6-UX6^ʗ6־=J'=lV~nF>CF^%8g͆?S% *Xov&_'I}~7]lӿ5]eXpVpJ蜕kx3~xRSSIMMe _""R,T&ƍ1ml ?%'XŐOg}tmXSf2ӫѫ[]ƙ,;:U1*7eS=L؊x'lj+~dm0ZV 66dQDf$-^qߖ%^@V4}_hׅs>wSL{> Ԟ6p8X)NHCl*7ܒHo,id~x 6f=hRv}!2ոc@X| Os?=㟽}OYkyuf k TV*3ɍ& '%{[9_Eq3G-5zc̘1nٖ\=<)v`]`t^V"<>|.FSDQíX,.///Qz亂X:KGXgNط_;ɣ-DDD?Iv:ؑ,~] !***eH 0!m0|6%9vkI;@Z~6gY ν6"2uS< Vg$Naas^-gt|r8cz%GYq3[)SڇԂ_c6K>γcb-嵏sYcI$I:X~!;+wY'cpO`!  zS?b5_B:^}&Яy$=sf~\y1;(U"dLU;nIe|=~E>;@kdm^6,e[ŸV$IR@lw{y㤝m_0r2N 32ջmS/ǧszSDhN]+Òϻٜм&d~ovyY,W˰o}z"͛$iV~5)~y%iԬ9'Չ%I$±N!4m#j(ز,fKIk|r!vv 5ߎud"redtdvʕoBPӵ ϣMgW$I0~+Y> R?NINe(W}e"a[<{wސL_xo@ڵQv6rg \rrPcX"MxkDn"{V?`I$番Q-9u#1Sh$Gδoװ>FvN6g>@;ErSR9eX/n8H?yJI$I,-WtJ?+ +% QI5:|L(]l+3 _-=&s{n(yIP:3OJƕSxsz>5#*g-3fK_I$I0{<1y͗xLcʓت'S!*c ώ}DVXqb⒨]i0X(I]٘xyx6BJPBcZ'/&ݻ1e<64#ƈ ?17r3X-DCK$IG - b@x2`qVV֐),==2FԅfW&Ɖ'Sˑ$IZZZ)))ODDD_`d)Xr B-n7"9Q$I$L$I&I$Ib$I1I$IR$I$)@ `$I G| '?sk8n `!I$V!e ]T,2]$ItL:Xxd/E鎄F3YNh_r_I$+$d,^B^0 r]ұX8]dv5{Q\VBpxϖc+XbM*Ds}֕5zjsOұJHj$I D)"NN vDž?ف*]+>\ f ~hFvOܷeڭ+M+*m̏+a Pյ{.L&v:V9R$IvsT0NsM6 ۡfq`ӿ˳|W^# @ V=%7/E?ߺOբ㩆/I#LL d/d"H=2Maږd_Ob,Bа^cxw 7R.uU!r3l拁]hJEVW+ʇygxoϬٰ-!X=,Χ@y{إ)Jy8Mp2V:+2S"w=?-}ua~{|b+!lZ67 I$*0B4l¹s͛7i[v ZALg޼mؐ2_ õb-͈`lep$~]ܔHY7ry=6o?O*MU.{r,cǎelTJ5~&8|`<|:VG d;G|<nz sPx ' )b]WC4E㢿_LEk|kj_uY~p_H$0ЪКVՇ1DžLTSj@xSi!LM{ Q+jP#[vt!n9'c'&SPNK( soΤj$ܭSxe?-k[Vyc3va{cSؾ*Vm@b2c&g Mόw?d@M:$I?{tUU{J<7 ^ A(=/'ͤ=ӓ> {2=zs9ȣ8'_ם"ςX 8Yq`+=p1/ȹW¢y¹\yvYBJYUE:kzv^}I-̹\yl;q9q =z)%ICvVpN>㔝ZjUH}7ljc `KV'l@]?iئ5c ۾ Yᔯٚ#$gZU%X[AVnQꌦ/3%oՄFN]dDFGc{24MLqINiBRQ 1z#N۟˫呒$I:tX[hV 녗La餤.:iѢE8lYr)d-g­=xnV5znGC%IQiii%"""3, {eNz[j{]v{Cf3GS:62ֱa{.o%$Id J$4&iŏ\XqL#/IcL:d8!2$ItrI$I $I$L$I&I$Ib$IqDIG,,Y¦M v9:QtiTBTTTˑ$% `YYY|ǓDDDDKq,++k2g6l$HQQcɒ%Ǔ gҥ.Gt8Fz+Ow-MLlEj7n]:*?#٦MHJJ vnʕ+NJ+]$(qWv7Ք[>&ؿ(<Jڗ\Gtĉ~DIRw D׫sQ3_ajhTyߎ/ V7@qo goqc>q5pM\=y1w~߁#{7/UW'/`wqH8s/Uγcb-嵏sYw֔Q,l ڭ:'EO$I `ey&}29f9{үOgo$Jǒqwpvu?z$#xd4MN"Is'Ϝ9sɯ߃FA%-<ڼzCpw1F~$It;>GiQ#/EuAKTKe_Ȝ yw^DЬi"{d̨ا)Ccwٜ:u3fT)f`-̚6wYWF͚sR#',[ޠw*^>O~}'I$w|& 'C^[weԽ76?q,]84IIqv>b/yS>u>} ;$H_uI_HV |6vcљysJeYͺ:x׉%kH$I:V3UM lܛ?'V>BH߆rnY&1ufnlO/rNH[/ iG5q"]7z=KS,0o˝JӢy2s{gj;jv(R.WtaIfN|Jըe۩HbV.گ跞/}o. v!Y.[x˕f _~XU=Jt8>G6-'?'ͫ|!Kj}ҽs-w}5"! tNO>%;gCl׎Z/̄X+|jT/GTZf, $6؂\ѩ*}&O6@xZdTD9lK4V"- #3]# 7qv8%~ldW_}DVvIS$@["-7HJĞ@ڧ+]J+t 8{7Al\?7wLUsSk8/u^da9VRކƛXTݖ~wubŏa$xcܛ/kǔ'UOڧr|UB]}_r'C/ۛ﨓5ɨsC%Ųvt?ϓR<0ul\ fue3`HW~}@$I.T '6O@iɅ7LJb9z!M y ~)Ypl~YVn!To0SOsw;9:iP'ӲR~x6WADPG)lӗtR:􃌙3n6JSѹtjO{!5dEWMZ=Ln&lU7_՘OWg YzZ^`0՟C݉r%5}<ϼܟk;ZDŗ,x-wmH ޲ZЯh(Nf.F2__r_M{(ut-\z_Շ't }欆j㱮gϞՋ-[)S/3bĈW&I:^|9dge%3xY٘+GBye˪ܬ ~WaJ4)"&RZCzCН%ua8(6ΕЕȰ^R iڨpAL4 aw0mJsb-hWoeXiW2hQcFWoJ&u}R~oLfuy;?{Vv%5=і?ԝ=cK<#yHZJ^u4~Ǻnݻs|?#<$Iu怂ˆ֊^noG& =M1j<ҎZu;Эg { ȅSj3R<{9=W#Y:a׽m+#nyˊֳ~ Hr0g& שcy~'Z1Dn"}}W #r҉9GVҖ?<(uXm4k\8jcL:u6lvVk%$$q{1tP]$v$'`/2b;J)>BA; 5V= @]jժQF2 ŅeE((ը=*`޶mÁ1E_ GDTOs: ֟2ZMbI8:㗢]Zۯ?mKf6};Ŷ̴Fϵ G+v>],vN-*Rgҵ(nݟ%<~N?;EOTT=Xː$g `:…R -,C^{;7B\Ͷv̢G| ^e热qǽnD]dIF{0b+Xnj+Pr3*Ժ:c*WkHפ?EU:_yzs&ŠSɕbd/tٺ~-l}|q蕤zƔM{ĶhΝ/^Kj®k 8|)~ꎤI1Q#h%bQ$rcp - b@x2`qVV֐),==EPzz:-ZvnҎ˟^k8s')Iǡ}@2`=- =.Stی;6H3T.Mb?V'6It40)h` I[Y=&~:3)[j']Pͩ$I~4rJKhZ07Itj%I$)@ `$I 0I$I $I$LQ#,,`!&++`!I:Js( IDAT$5bbbXvmːvfbbb]$(atHHH`ʕ/)貲XbV"!!!H>LQ#::5kzjVXAnnnKq,,,jԨAtttˑ$% `Inn..IDZˆ 4 J$IEctT !***eH$)$I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$ZWI$IG !Ek3vVΞBmJ$IґX |1jl,A UӤ \|-+E{xRJ|$I$Qe_Hʓ ,`_>Oe]$Icq $ҰaC4sϦΝx汧i4!N+ !m0|6%9vkIQ@6K>γcb-嵏sYxmsy[\o>|> |{ gssiao goqc>q5pM\`!i0b$M5o2`z 6/bww:?~_/=.dO~z畤QT'㋁6<0uvdD*BdFNXH#$BfMޫ'cF}M{QiƴLIмU-zQiwGK}H$I: `䑷kubggnb>z;y>][\<Ԉm:me͜[/]84IIqv>hKͽ^MJyLK$I@0 E,jN8%9\Uw튗D:<:ĉ1fO^Mn !doW 瓿 44"#<]%I$][-8mTF -ND rѻ+ =]X'1!#R;i~XWRV "67dFbrsշ\; &NQ.YitI^$ծŇ3t 5ZstL}2 WfЄΕȔ$I{(d-P +ԊˈYYYCtRRRfcrF'-3Wa?[zz:-Z8$I}@2`=- =.׽L$I&I$IrvKrUː$I9&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I b.H | K i%RU$Iҟcۋk%#+O^ۜb[Yl&?E0piR<J$I:9/14_Ѯ5 WĿv}ܳ -ԿuO6/3s w 5ot=dGU0wmV0sp`9JX2'g\6$IX(A$ؑ lfY^|n}pч y,w74ċC1aiՇO?bAv>#W4MsjƄ/ Θ9KNIN>$ICK%?L23~L]VE6s6)Q-'s2#',jyi!@lՓ1mis͜r / 4kMbO0%m3;'f0r)Y$I:FLy9vxIx+}.`Af _$8͟2tC+|>vq;+՚Ӛ2o `2$Ic#`rU Q%JW21QNBH6Ȋ&dzW!mxjs*ҦY4;dH$IR9/%+Qn25&P( )̘]/a ON&2u8O|Kgѳ\]VlZELgʔl{ I$I ءՖkt} x+Mk+{"!ۥI=a̼Z ;bāc N=rp?$ICvHRA<ݫ9{ě!,1~\P 4B\Ro^Az#$w'geCTJꇑ$Itn= B-P+,# /gee 9III9] y6VtZhK$IVZZAg cSjyZmNqdblμAx/I$I숰-AD˗$$`J$I:l_Hʓ6XV-ɤO wמ}b%I$ռ &ѠQ3uwu`ߎ{vᒿN<`9{//ąs v;rFHˆN9/<.<8v&v+b+ D.HM= عL]2'g\6g$I$Bބ(A$ؑ lfY^'4xFªIp&36t#1`3!4 qPD>kΰWdD k tV]re2]Ot|85&Y@q3=g))P']#I$/0琝IfV//˪Ftn&%вq>Қf2-t8dOgthvK3"ikzeXyw>ׄ4ƎOb㊤)k֚Ş`JfvN a4$/%I `w?ԂyMiӴOʶ$b/;>'Xx^)-]Gfx)"A^F(ڊE,GIУTkNk:_}sR^0Yx7I$I:BN!׶ D)bP&&O.Eԓ 9dJ/fGVOι7q ɔ]G!{N16gه?ͩJšg,\I$Ia(Yu nJۨ|ǔ*6$x rҷG*cJS9Ў ըӗ`%Z_Dj|tNYNvk$IxFt(E0c0&Gy-MA|0c-b񢅬,$Ihow^jaZ1 `Q^x8++kNJJrl˛𮷱x8=EhⰟG$I::KDDDfY@˜ P+h^wȖEٖyo R̩?|I$I:< `Gsq*5:{j޵'I$ `Gj\$ v$I S$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$2x.D$IQVd?y2Wmv!$IRł]{]N^cxsBK$IX+JLmxD|#I$IpRiа!axc_>(3k6nfkV8ejB[UV3g_/WBz{9Of5Ǎhe7crɂ YpWm!T<-}{* oک>oqSM|;j0\Ͽ'ZAF cgX)jKhusJ$I c36̜ɺs5 ٺǏ;Hׇa,p;}GoU׾\Y k[X2nӮG~x)1~yKl[xyyذmXf9{үOgo$J1R ]n'd0m]Q毜S$Itlo3sn?R ~,^D7IӬjS&/Ci7#I9a!U;Kwn۬i"{d̨xo["6g}^I5kIu":QJTKe_#',[ޠw*^>O~_?$I `k=`aMC*WXXEh `dѦ!I4:)1gmY|6vcљyצ\٬|)wO.9ĮgsJ$I:$V5j=`{AyyBO KãioMcMuO2Ŋ;~N8%9\Uw<9%I$#%TZzfL_BܙwLrzfL_K9kœIm(R.WtaIfN|Q,^R5ghv*%&Xu뜒$IټY3g.S'y_;jCNI_YO |JӦfʖ_Գi^-;q1xOW?k+q"VNԨ^XAHl,T]d^&dqvrMlQmSULa]ImX̵,ɨ 9%I$ӱf[ZR7F8;)*9zfW׷MͲލ)5v .>q&њc藷'&&#Vn&74k]\pJ'xn|=b)۰)Otp{%y-$IT89%I$` cp - b@x2`qVV֐),==o"==-Z I$頥t =99@nWv&$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$I&I$Ib$I1I$IR$I$)@IOOv ǵ` I$S$I$DI$I $I$L$I&I$Ib$I1I$IR$I$)@ `$I 0I$I $I$L$IX $I,[-[r:aaa*Uʕ+r&I$Yvv6#>>ի쒎:YYY] Pn]Ã]^y $Id˖-#>>ןABB,_<L$I -[P\`qL(W7ovd$I,77בC$""∾&I$Ib$I1I$IR$I$)@ `$I 0I$I~/'{]qsw(A-!+c1kme%.f_g:q'!2"ᗬBb0*:u˜aBjaY)" w3r~%O<|}#9 錎yPoiyپɥ{mm=/jI#K5Jo {̳j8>Xe*LV:ޏWip~{'6=-}Vط^QMi [}^s_pYͿ^|CGZ)R2Bw?V?Vnm= z0 ץW[55Zh/o5c -Q-7ضYs+R^^s@,׋åP6m_o:Puϼoj<|^wև`@koVyr8Ku?UYC=JRUNqO)ݬwPaU*>9@#?7[/Ktx:"Ic4& Ua tk%jz䫚>ntUw2by>n7BZX7Nv%9Fjz}>j4@NY{S{0t9EJK5X jJ=;z.6_}Lmj>_OT]!Ze&إ_IoO^9^SJ([4sB}Z1ՆZgVJNS5k+/g0HVӒoІAaf}WŴ%ymX[ԴL[}ؼH$GFUWWg6rơC4y@eKJHlwvwJJiK[60 yf׮]NdҥK} }M5 #`@-[OV]$ /1'07&%8a2 /;'hٽy{v0bJ$پH$œ3S IDAT2N]uNA,GP\\lFNhkkSqqqӝ&2*MmU'Od$,D":uJeeea/=9 p*rZQQ*++֦%lRT\\QF(%Rr/?S}`#7ËQ0E4UIIɤiT$Q,S<W4jSY\#i3>HDپ_A"лM7{`ms,NS nT~qw200[|9}'+sZf|2MuVW#,W\ۧ'~.hn:bmw~IYͦ}DWV]>\D8hp/)X#wC _~od]‚ƍ݂m+5[ (Wk: 8A.tdϹ^F;2>GL) }&P T~ zd"(gxމ @8̮G,d .ho^ 4~➅_IENDB`lwindolf-liferea-508e7a9/doc/html/help_prefs_privacy_1.14.0.png000066400000000000000000001104251451527772200242240ustar00rootroot00000000000000PNG  IHDR`aSsBIT|dtEXtSoftwaregnome-screenshot>*tEXtCreation TimeSa 29 Mai 2021 23:53:31 CESTht% IDATxw|O&ݥQ(-eo, TLE"8EdodʐwJ[#M-6ҍ|߯׽s#{B!B!B!B!B!B!BWGtB!BG(ZI$^B!BPH$B!B<, 4!+(eJ&B!/yM5!˯dǞr jZ!B!֬Hpai+B!)I,MyKrck^s㳿L!B!QhVD,l%Y*YB!f-!pJ)צ$5J[%Z/iB!BVnZ̽'1Y&4J#kDZBf}!B!ģKIrd-ɲk%!?z$Tp)g<%q!B!=ZeoBf+&3&_J_j!0!B!%![ɖZRd9ښɗD\ҥ4Z!B!L)ReeLkVn0k eksB!BS0K!{y* S)ڠZI2f.K !B! '2d{mk֒0IY~\hOe鯒0K!B6%]2r y,%cٓ0J,~)Mf^g)3LK !B!e)e #1MTfYZ ɘ,-`/sI\"frD,/B!xtXK|&WYIW`0S$n$`2w١ppOdamْ !BakK H[@R{kȞtYjZf-F+#Tl!ˏpjjZ\J!BQF#zvŋ\c91`1Re1!de?_;0m2MІ )$5%Դ4z=FcZB!B1JZggg"%,k0zKlg浭/+Pa4ON`G!B!?]z:)+d\StY$V)M:;7OH/!B!D2$$$Ҭl2w,wh\'"$j .WnpbRR^bB!B|c4ILJ"((5%IX:Y*=4 +7JJ˗B!81 =gυ~D{0g}z&B!Bkx<ɗr fkrdW֠1׼B!1 *@CFbg{zW l\e~0P!B*(h1#LjM:2!%a3 Sf`Y͵ev03B!BOcW Mu8ޒZ̨CzBaI7TLRH޼i]Zvǩi{|~Uy+.EØkx2}{,%K֒(K76 !(y~D)pg3 v > վ4ʀNMmp*6_$"@x} ]V%?^z.fpDek^- Oaijq1ŒSK@Wԡҧ'^|I\STPΟCrxl$q-֟"Z;S ˹cL՟3l!6F}1=CpJ֥L1 W !DQS7RvQCKpn AHQֱn:fE(ɒ,NQR"}%-`2sblQ0!(4̓WKĒuMgb ԺnܔRߕТkkkA/)Hщ:m͛ޭ %R_)*<|ˉ^ ؃l~>5BX:M)gr|A:ZO!B! [TWTe 6W@TI>vƔu3={XIB_[L˦ſpjyǂl 79t)_@@ƧsY\e$ qo_KaOoZϊE+v1Z !C'?5+쯭u!tZ96/eq yt5߬HbT6?zii$߽Ʌؼf)ٺՎԀ>==CJ~qwoFݪ3’3zBLߔLʺe?Z޳ O+IBsg9kj?\lf٪( ;y7ti\~g߈#oD-'ۡRp] dl3@ צtX?^& GIT GO|e{2,WPZ6.Ò3vԣBc7tDw|*uOX$v Jy0KA_0.B+nzMZorbBXįIHwob.+ u¿k,\ܒsTpٺȼnm =1Vл$]<OT̝D'9Q"=.]R !Dgv%jeTH&ruOS$쁞w&i콜@smq&lIB࠶DJ䷯ڷ8tiw&]M:?\,B!EЩ+H'p!B!D!L!B! $`B!BQH$B!BB" B!BIB!H&B!ОWXB!BbQQ(!B!V-%B!BQH$B!BB" B!BIB!H&B!D0!B!($ !B!D!L!B! $`B!BQH$B!BB" B!BǢȢA!B_~Q`VMVڣ 22C!B޽CH.AB!BB" B!BIB!H&B!D0!B!($ !B!D!L!B! $`B!BQH$B!BB" B!BIB!H&B!D0!B!($ !B!D!LiG3KƢRr5 7SԍB!ģ-ʼħP5 (>Ov X1{Nœ~LSsam!,Xȯ{pv**lL:Z=(wk {z*WF!B(' Wwn$>Z75$]ܽg|3noeSLe:=Q I&KP\4?Ly9F=zC.B!vL}2g ,=Eٹz#W۴̌yw7os'YGP>[: 'daحëD~piQ?"F9:q~&o͸$Z/VoNϡ:)3.9)Еu>6w[~z>gL߅Q7| ߴteNίu@ ;뻣sS 1þeә.NQWOFF'p2-3ќY5~ZW|;uӊ!߱½TU8p?E3sǙ\7~S|BU}nC' B!Vbٿfu BS6M2}.m͟쏺B7w5nLrI:;q8xִ hpH4'|J㪏?ӕ\eo9KuUT4k\pg~ˁ8?vwwIUMwTMp,F1gfهÙ;){U& Jzx\޶ӗI Og=w`q}4i6!̡kxU&Qغ2F?l9 i{S$_B!FZ v^NwQ d.e3(@0T7ӥ-Ѵ췇G@%7+@a8LGB]yiǁ2ldHōC3kΆ$pKhFI8vy~"ҴK$KwൗeQ^|ּ-]^z+{ȼ.cP1p4"ۼ?/~MΏ.~`H["S`VDo`W0S/`L o.Me.u0:1+YB!%IȆ;2i1 /ں~HSz,7T޴іR6 L'OЪ$ΝH=žUYx,W=Ӟr.p t}!$<n΀sKZ՜ʱgرa:P-J[7 ͲfO}AoZ~e)8y̎hlٯ\*Pٞ :Z5J¡܎Np M oT+טfb$߼ؕ?Hn4ӂB!DAoZ|?p}GYWT-.^O=Pמ>O|1&ɩ.`/:~iJ)'3znUS-uVp85svGG4uÇV1>+!a-lзz O1ZWzM!<ьr @ܧ&omZNph:|(d~s9v͚E ruB!DAԨY7hv/͇pWC@& vV86{~ˌpSN`1Y Lgʒ휼ʣ4N`tk SU/b,x-&KiY 7npS4x[,!j877\NhI'11wwgHr| S/&C]ڵ _Q9 'ޙ޽8+RQ G 1${qSAZe\eCE g g$AYKQ[ !XǓv'ף&=XCm_ck}Xu-ӳB޶B!0O0s zT8Հ3G3O^zC$odxߑ2 P]ck|:Gg4<{$Ĝkk-xECEoSc:?[?W@y"Uß#D+}y¿}[ m]uZ#84KER87kG+Q@&_Uj@MM:u]?CJ|gwU@ 5tIlyNq&EۚI_#\h,1lf9'ti]ӸqrL,B!\gdή/iӺ5gwo+ _Ӳj4 ')Sgޒǚ\4.aXb 7|aan C\ډzg3us*&=4-jP)YΝVorL#!!/O-iz[rÍ&2xzi$-ghNnn8WBg/lm N֋B!fUצdp0M_mkӿu&Xdd$׷g| S57;u%8yqJb4Ku4zgƕ_l}|ՁiEBϔ### /ZO'wtg!~Hq_ @e՗Ҩo1{/B! ݻ%ZpM|M`6dyGi:T yFwxs*>8 nY=zk"DƺU?h}×]+:3u 9&\{gҸVW*bGr=1uv\뉪#rJ60 t׬ )"eطv)ke;ؾ#ד -*HūqKp;BqTʖ`v(J\;}Ώrm?q~lȹȽN[.7R󿯇ӳSZ=Ֆw- IDATFj߱Աg}&??;$_38Pv|" (6o%5WYJsrO1Qs#h[7mKϻҶU 7oб`n=m.A,4ysKl QFXZ1NH'a%TP Nҏŭ&?3?-j#73Znrmo5qʗ;t>Hh<nClŏ&Jnt"VDrt'$bq%q?[-CdATuu<1b22sk2XCӞA.2<[С>ӭ%}rx\]<;IN׊Cq| ƸCn.ҡŕXJX΀/~%jQqv y3y1HOecK֥* Z9ٿX?Lي;N0ʨ/}k}gHMrVtN%,9Eb.-s^?\¿eC~ wI~XO %JTv)kGz*@K8|}{RcQ̈x[48z&겨7xo=+ Ypb_̳Ocu+,#Sm(9lK2ra Ooҧ/ʨQv*[^0n1a\S/d׹*t>zڵ/fU֏:qzWXVϏ;KCo'Hl>n̨.oSR3dHb؟D*> #7FF{wfƬZ NQ=3_b$DŽ.#1<z*=HB)ĺ=_z{Ǽ2ߴl-+-wyF9x4ןByw8)ff9}ϋV 77HH$`1É64~~s-D),WWH'w;qw=fe :}WYTm2tFwZ=>ZF\|-Xws^!4|>m052U޵b۽a0^q3h4@*jjAш*kEUZ-Zgmkܦ˵-0 >E1)]7'jG3nI^vi϶&^h@zUsP@`5V2pƈNGo86J#eԈfd^6cTf>,KPEL6}JO{ͣT=U_jX`Z'֟By:V;u.S3JERpm$滖yIoX22rgDq#ᯜx^~.鎳;2ǐgtf7o@ T$rb2e2,>n%T2?{u{>Yy!63Ddz5:oK T N9Osݧ-?g#71燐0œcyϳ`.aac69'س?j(dBƬ (&#+Ufre@C gz%v!i+JPM̎ [lol;(9l Eݺu3+PA)nCbb_|,[(׮e昰S __FGlF(v }ܬwyrCBEwy? Xu 6e }&7)akv r!ŗbːnৡ<;g6ȚvQG/o RFuKFi4zk&@8Gy!7^-x`h^<[h'sۚd*;Zy_4Q^H%*˂y%cfХzo{/;e1\sn+Uƹ psXv%62?O͗=?`Y4>޳#ն}{{2IWطnkndh3??'-CM^eY#uJ⪿Ǧ[:TnNMzа/eRʄ %eFz8CϡG2ړ]R2b.(5t3uwR6=d^͉x1G1؛gjD{eyX^9XBVWD ~-yF^E55qg1-9DCZU1,=IZS ȹOZ^S|02>1c~gW u ʶ3g znykn z:߻) "_1b~6e Y}a谐2}-wx#eiQ[y$ IDY;h}~bQvjfYʉI0Rr#Mxu3>F qضr5ţw*A- Sf&,KA@P<B{EM1<31[LZ4Oe~R-3^qk |Kգipuy9Txy"S]0yxFJ2m])g}0Ǹmn{w*ԫ|6.nђQҦL"<vNi?7'|pu1i>.vbt\*Ne^תTNτ3􇃌_gwZ>`wO)ې1eTvO-}|Ni3j4/mr{Srٿa0c SG SxŐ4s٠y~ |i׻Ol\ˑlw;e~=[{qc*LmGS֛}ʼ/Y|6 Ny8ppŷ,s`"I*_w||bf~jx2,> -zC&v2 |7ʅҶm\,8W'*kAm28 &6ߺiii ,223G2g6Dh^҃[GsDB]&:J19*{D<SG擖Zx~Yn%›gRl`&0ŚW{3O-ZL|t[ƌelkݻ%ZpLe:Л mU&j]}?>""4K,)H_`I\O_Ԛd9s#*\0$94gc_IY9x:33=">JOLvZ'4S:2Q~ng5\܍AzCN0Ql4z F)n s/AX4zIGg:! DYhzMÖ+%`033TVpTלst[-GX7rZ7H.HDZ pgSI承Yi7UrKӹؐzQFͶU~0>W[^LQ)U+8ԃE#(#?.cw6/])}沯q|)OE!Ѿhף .,}sNR|;t*sae9: FNX|8z]9q/t=gf/4!>Ɠ|<9mKO1ӹ7\[_mAr8O̸zвKzcc$w8}G'[_3,Й^$sNRqD_ɦ\n^\gl9[PuDAo{)'bcڥ~nRuȹȽNɧþ(Qh62=?Rv`iǨ ʑܿf/+e;+_JE7G/i@oťl:6u2&s O㺡},X;u>F0-UQ$Jkz`qC3bNWw~v~+AA${3hRTJM7yk-NAo{)Ŝ%B/vVS5ɗrOq*śu34`fޓ\ut4eKg83+m&fiDO:^7#ⱿVo@NѴ#|F/rhE$G4;#&S)Vsk2XCӞ@<r)H<[B!ޣJhh_FPdN=zi44ěSUQ.>Ns(G 7֭ZA6Z܀^Aytuv-8$n]*gM`ŮSXh)ڔL8&-ʉ <Չm\b~~|6ry|z7OxÿCF<[2rY~?>džLvķ}g8m3OygAnp-Ov1W]kG;!ԟsCA``eGϱ0yԜo KL{p+.Ii뤴=*3h|ҏCoXq55%~pkfzӮNu'`=U1!65KIͅ@:vXH ~8DT^^xt=jQgJdݫ+wIڦ~Àe\?t5 /coS_aԨkGYq1<ۨ1uj6gq-GHH)h[F3y6U0> kl;5R8-2^݇ "%l\R|5B-ct@ ;^6_r h0{g{`v|"罗kڄ({Ngm7j*hLCj IDATa~N҄j*kH h1j94?}.u6*z̊;;8N,VM=x}N7 (b!  LޜqSRUBQ$3KMHϯ2⃻U 'S__yOovM\_؀j4)sr.uiu}'1s:3a܊4{Obf;ώkw=S JUi0vy]އ]}ue Fֿ\B.Fq{B'ZMz3~vtX73yxOND.i^{l:]@%6=K]M$0$*{MWs^Gځp)4ge[B:,sQ TN꼗Wc}͊}G16ʾȓԊӜ_w iZM%7@y] :(k8ˍ6iN'{Ө i缷x,)[1{(B&`&QyRQLJ){^&Q&a/b F׼MKL\h[Gp?{wEqű%ނ(xWmZiYjjfiڝGUii2J2ADv삸u77 NT;;Wŵ걹\h4b$d76_d w*7͌Ʉ쯑͵_&gK{i԰S㉊ $l`k\b:^F hfb?l6CRII۶Wf3f+Ւ*13 m ۢmt/HO 0KeC{q28~?,ߙ7 )OyC{]LٲM7pknz+~u:2ٌԓM ~ J=(T26j=0䪴ݖA\ [uw&= v=OLAw1cq lN۴i~-Wͩxr+!xa S~0w{T–~Ɩz'//y'\ƣjk]m.sR_y}>vƀpꝟ˰7~نmEDDn{ fa1ufߊlzSܵ)ݟๅ3I,ĕcRbToD%L|mb&!e||Fϟ`2U:PtŚӢzln#g)8e3ƷEy ; ge5_Hͭ)zk0ғp3Humӑ5{=CO1h0nBK8?ZOٿuzOO?eŏA65ԓ6K8+8eҙ|}/l!R{Z+&D>ssĘpi\JR-L}JͶlQ6McPמ-@K1_w=Ʌ'1Oxk~"m ۂ+>4}Ô\^_c3x5z'+ƣOcH*T=jѢzl1FVe;1L=^$ "vH"M֎F~4OS\{aM>n}^7edq?kmZU6gh"[K5EiNnG 5ԓ89BBѨż3" |7ggvޟω-gVʉ^9LY|д_KpFgaaDf[-ۢ NghL{1$))ibN &4Ty/ф۵OL tNq+TғVes흈3r%F@`2<&=OR t%p gUWnڇoDDFFfܹsT|C, ~nB%= ~oxgDDDDrLL 77 lJݾ d}888`003Y5i$K10)PF”ܵ=`""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b']5)MC8)T“נf8ns"""""FGXlO@lO6VfVOeGx-γ!Zr0 2,+w!9t}ʗOd3?/m35^4yQ]H۵γ[$Dmm} R)I㻭vAW8u$p \'dzȓnƜUZ=gxt'j]%ۯXRcٸdw^f2պ͖֗>EmX~` :D@<:z5Wo=ǿUOuW<3bӹ䭶پ8cF {s Úd&l}F1f})y}jD\n\;;>"yMLHE=8 ,fے]y}"mΦxᇹo.>5|YmʖlP>r+bރдⵟaΠDGݫ\}${բ-̘9ۻ pNbh8@.X6o:H_[귣Py{ `r.ãuŽgvѴLȜ G9{$E+7+iz}S;djVN`>/&1s&\0R2:tY;̗="Y`: ,OeU>sCXiLx+wB(i\JBS_/1g:G^4z lʗ9{ɄKr~/ Z1f܊WSxZnIδ_|2=~ɖҏ.}ի>M8~0ЦY.sHԘQIٴfb;ݎuymrLbµkH&tyq_;i[[Nmw)N]qVum/0{;O\ӗϏgdDφ.mg˸ա CQhg[S5VZq\ ,gϞxeo|GeGd9$oQ:SgfNLА7m.s2^ԗ&RguZ-md_">yTgܣ#/dp_,[G_΢˙2۲ز9Hey,9e֖lw_=T%ov=p:<W!V=uIQ7fab=t'˩9M *w5s3eW~5i{ ?ddbpR;s(E o3er<߼T7t -7>?OؓyFqϭd?B51$ װ 5 {K3DWxW?Ɣ~I(hCڰY䐱l3z?Bc3-붎}ͻw^bPH&sFom}2]9 JMm]TY2UR@v&ha+@v2S}U'$<4M'7VH'0$y{[zHPmI?6_ zH 0g~3¸|ŏ9j/ˑ аv?NӴժH~z+OfIY=0gYH&h»SzSʩY.g%+K2D8wp-'\B]7-Qa.Xum;Þoe~JS.ڳi99Yps\AGjgs߿ E6%¼s i3n4ZN{W`z~g3Rf= mZaY_: wߺ<]>4NԮìvrNŶr_mUiOߙ8{Zu#ѤrԼ03)ӚZٸl9/IpY LD(W~܈ᅩ_ l>C8p؟V4 7sl\: $JM.KSҽo}eMvo:~~@r 1k5[j4/$~~qN֑[Sz׌a 'kf/m}-]je9sk SZ::Vg9\ؖIdys(w50)RL),.^4?o#PijEe =Ʌ'1Oxk~"m ۂ+>4}Ô\ 3Ʌq"fωŘvz 8Yi/ˑ߬\#_;̈́E*HPk>v"$&yNb7ycV"24W_.=/1Mbc^e}8r_ 3RHsNNV2x>n}^7e-_2s~V/RAMyu7=|F-条Ix[9C?Kc7޳hٺoO6OER$-8UoRߖ>˄c Z6m1Ԛe?ffAmy޽<) F#>B=7v 1,7&^j(ݦeپΚ-2۲9@=7uu .GP`NdwtY~:2-\pjGф۵OL t添PIO[5(+_wZ̞S]L("""@TTThlS@Jnd-N~"ux(-]`ڵlk=0~kw*s7C7822sռo+糝)V:θXP?bK}oӝ:w8~xa&c-n2ezQ;/^(o{g|C, ~nB%= ~ox{>l^G9Oϩ 8{"fgJxED ?5_ڽf|iW~wq+Jie0nn4ؔ}`7rpp`0`4|?&Muyă}'So~qS? n`>CԬ)} /(Q!]e@ꥱ~ɰp "eն/DiY~)S!|pB63=^OkcQ\D|"DՐ}&:Isװe_Oc~T¸~ܪE8)~~*BiߛV?ɶV>j!-~`m7B IDATT+gFyΛ Qn5@p[{}O27i3_;}&?NkcXH!SWl+9 $9.[䠩( ӲʔXVjl a+RhѨ(""""RUV.d,""""r~{ ~*tU3/”J7B \bㆽkTSm_kLo ɔ Z]ߎ%"""""E̵1:7IDr0Ώ#P@ǹ4g9R'M֘A9ZvrjFPZ&/k<%1*/kY6[C `8s2mg0Wqe?W0itF}$'7|w0#]13>sYEJ0-mZ>Ճ5"hK]'.RR3dX'a/ȭs3 c) i?$%%MIaфdCфw"""""9,a4$19y2n0,knI70;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q0;Q.|Ʉ?rJ2xyrHcډ.ODDDDDb\p*u$s~Y0ჹ/Rː `xSjvSPE6{9zy@?:2tk{fIy#:ɧÇ}5:L40[=Isװe^eм+z8 > IM}~ ζ88s㈅w`֓Z?{a! e^t;~%8{"_swV?ODDDDD {3}-0㑷#CPĵ\r]f0uһsfC:TsLmhܦMi&vS*˖͗ضc缹Q3N*f.8Ly'U_>_Oc~TE}"""""Rݛ3|ַ?~ˬp)ݗ4v;чF! jaΆ]HXG,ގa011ѥ._Db&? DdK=ۢ=whG ^<}&?Nk YH!SWnkuo0>/_ju|Х?+4 ppm(FtY{O}%.>egiž OfS'.Z}Qχy< ldrc nE\bEDDDD${L$S6Dy6rgl[Pͨpj5+eCz+Y [kQYS*^+oX͋ /@C{_tC1.;ٽyn݊%9K'b~-cj3Ƶ1OuDy֋,<D7ۜA3r J?15nMRY`kʩ:%1*/kY6vu*GEo0)%1$`GT&\.Y ?3x,prݻe+O}ٝH`LpEcq+4义TIZ͗y i?ٓ܆?2`%8q”ܘ!:zA='0k*Ӗ|ƻ 1xǿA/ZF&""""r& t3`H{4=O41'EGGI$EGGeXTTThlS@JndI\׀؋(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉(؉X:Ϛ)CyC]@ `y*1lb_ĶDLkU"""""R08wsUcf3ę݈6>L}?W;԰. pC{"""""RC,KgOɇ`J nW'ڍ"EDDDD.v4^ԨQ'a4kۚࡽ Ԛ6g59oE%*7k> pLu*a8xުm%`X?& i'|+|qX.cT&/,ThDT(mfY;e4>̩sOTftۋ:&""""rGXF%iܣ,}f?zopF.kQ+3QFVbPFS'>xP1 (Gq'y2hz=ؿ| |&gL4<Ð*w0J9إDDDDD$T4z$a{PP?Wzbάutcڨn! j֠rV^!FDDDDDfמ>s'bZH!SWŃDdK=ۢ=whG ^7Ny/]>D=o?݉>4 I _8Ps60t*dɖ>9_p#0/L+W  2;}_0>Mh9ٙ ޳\|R3}X Nci~{ ~y\.W|Cߘ/۱-cWY"Pꜟ,k7Dy6rgl[PY[/H,;v7o1 vYyzDӭS9/zND(!,x8:'ֳ$BpM>˦Cq8x{LCǒQ [8"Δ!(ȃMp{M'+ڌTJ7nhcA| Gήlw,wu `Nx+N x8)Y]xgd{}]s2mg0WqecvfDKaJUn̐a(I.A rEҵ+ yc?e;QZkҼZ!eT&/ˈ]!MGR_ED2EWҁL;AfW9dx~pL78Cڣ1yǐ9),::МLr;^Okt[&<<#""""עr%F@`2<&=OR t%pMLDDDDD^DDDDDDNϓ3Vd~!"""""#`""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b']@AjLƯՇHxu.P/0oc'BTJKoG6h߱O |g8e3͡NVHj!Z5}Hص^ зgxOx #1k$`$V%4D-t,+=gquۧE\U 88d7R<{6%T[ڕt=FuoEb֯?BM(};MDDDDDX^rmS]*qh(F/^ƍkX,<Dᒴ/'w!t W&` HcU:ĎEc~_&GDDDDDXr$X&c1b,K1twТhy]8vcEs Sŝ%z|uaDDDDD$evCtS0=Ӟ IJJ¢ $wNF̩yWMxxx/""""[QQQ9Fq HLӞ')sa&s݄`H}$Xsd~/|V ^fQ7jaĻɡ"""""w!.{~!"""""؉(؉(؉(؉(؉(؉(؉(؉(؉s~ KlX| _k̜pH9uS~sW8p*Q .`刈ܕ |3'\ƴk*P1]]ɒO8U HIDDDDD:pPʵn#W+r }R`)T6(˸gX.eܕ |sH1ȗYMX R`""""""w 0;Q0;Q0;Q˵|'| .EDDDDD]@~[5 W!o%a=A"Sw_vVDDDDDd|t4qA|lΦx̲1݌"ݲ4_,VDDDDDh:˟ժRV]S/oc2p F1WW{(:֯fzAG5#fK<}LpǑ<٩"Hykfbo("ߍDDc ab7^nv—^ `1~euïVFۍ@]'""""rR+2w"""""'t}[H#aJ{q,\]]C!o#y:L7B)K;9p,Oʱt5+^D~qOx`~ """"r׺#؏=DGGS"kkDDDDDD `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""v&"""""b' `""""""vftt, ;.kZ߅9 [qLʽ0KIs453W K˷rDDDDDDn `e^N7qՓcG9sITjB6N<¤ֲ| nkI;KX:ɋd >y@?:J_2ivgi?;ᭊKe>;L7<.e@l5ryOg59oE%*7k> pҦ䧻3e)7ss:"Y7ㆺ??՜,Z g_A@W+y IM#_9ŠC!JX%v^ˑRҿ:n 8R7g8#yѵ(c쉌~YvV `OG~?дn#vB OQ̝ .3x[ٵ P > cAIDAT:n:\݋wQ$4" LI9B#*jPb]eR9 */Ҟik5v]{) Ć`D%8drwLrLs޹?~s3mxS3L~DG0i.1$$QTsOZY~@4v!}f 5.5 j͝O?rC}*WKj٫E41N|Iҁ=sHc}pqj;͞ w^q90'?uvk/# KtHW5 kQ6π0  KR8|ŭ/I"Q4o߮Go߮?Ǯle+;[O\}O (_gnsĹ&tbbĬJUܱ_x"?TV:v8p~}5rUV{>]]_ֻb "}ܬ`"c,RU6w|0 3mşs:]@:ef~׮32T5N't˭M7T-ͺjP:Z,RkH饚\>Es~n7OWVI~mk7W$vD4rDrڴq U(I*ѴiZ?ݭAM&}NѬ.]ַ5c lfEʍyM错f-w󙿫|!Ή~UZkFl:@QQQCt9zk<f-ӓyj2-X*yXP3Jp{~KzB9T2zT}E9Zqّ2]8$Zk^zZKT`y7t ɈsMcڼe6i˖ݯ`pE"kllTmmm+UWWa khhH% ø[NIAI}W.I!6muM<!#x` _mH@2Zv#'-k{ǥ"/ܴ@LJ NAku/TWn% ~w~{td.ῖj˾2ZF/_ꃳO_\~} 5U_E&N5ROn|][WP\ozgWjw#CWk^2 t+xգ_qNRsꮍ|ʧ}<ޣີqx> ,ֲR~(}~H{?@#Zt1ϺZz7/E6 tmMj:.U-s =i*goЃ_Oҥľ9ZWi2?ԇMs0Ɛ4'~g7?м+ $I8Q?}g.ß L(")+ݓES%IU:ip՚SV=K]5S^:j੥N=>S?}BRIng2 d UJ)ra"qf.ۢI^ܺM:o}sHe (__\VsǞyZސdZ]>m_Y͝*HǪюJ&ծ \_r=Q˿R[ݒT1B#ށU  a xt·f|zM}ru.]ӇXgjR*٣5o-͛#}?yZ[RI:֨)H;M7X;ߢ/]\"㰚W/W]ӴUa^ jh]ՠ"*y_S?;i˵*oVl{T|$O-uO`7y Ri4ݿF $Us*R^Xl9^?_ӿ~`vwt,[ilIڼ WGFե{A cݒvJ J컺_wI iX(kfL7{lڴɃ7,bH {}M5 3`@:ujn=c:d6 ̓I%혤'x&%8 2 H_Duۭ+ {! 'sjqꚄZ'[\֖adÇ+???ӝ&U8())QkkBt\$a9Ǘ[]q`79bRAA P(R$>'0 ee%uS$4}Df"aN[pagJVD׽2n790}MmTXk;vlpKTi&.\+ 9x޽-:PEt]̣V1ۧ'.h8vY"s;as%-[ͦOW] *$y ggڢ鐲Uv5̲\iL/rZY+.̓N;+RY>9Btf4Ydug; @,1)kXś [ 1d|Qh0sz 50v]9͆#,mIq`љ.ΜƗ9/S;zh} 5}Mu+V|Zcq)XS|9?z_</ 8i6,8wI݂4 ˖ǘC7bnCX"ggmܰdمtۡ i6*֚N!;fwR]#*gaL6{9 DbN?<-9A%a7 u$2EtvX3av1Y7!vCVH4GVt[+%2 Y΂Ŋ1ㅗE9$%>f )>ez1 np9zh SI3\"4fns:')nH+TË*tEXtCreation TimeSa 29 Mai 2021 23:53:34 CEST8 IDATxwxUn)BI  Uz/RD j4Q^_H/"͂DQRRu# lB๯k9sfw<9s΀TV"""""ruTI+")xHeQA<\..i bT`rLYYs҅KuMep1SVDDDDD(gBc.S.&ܔT.&8lвu\IA낂؅GJ Y'"""""rusXi-хg{l-{K=c"""""r.ziYIm*mq&9 ^@Vvz9,{֝91e1#˙}s"""""r)iVuGvl)mrv2=%–(9s^\K:᫤e+t9ĊXsB{z[I08qM2x1 6mGDDDDDĚf/h9`gi0gg7t;l6:8Ue.^9CYY܂Xeՙ0PM(tfe셱!TJ `z _F cim"""""r.{hO b 6;aa80{V貵 b%ݎEDDDD(9W`1ۨQ+cٺP8t^@0 xXC:[LDDDDhÂu[ @.$mE; /5u ]zr&( ^]u<l4\Z\ٜu#ӏ; 8 `?e/t d%?Ut2 .UDi232"77zDDDDDDf0pqqdÃٱ%Oz kz;=mŸ8jzWѥN֭t6)lfy);f223X$ĢMu_SK>!gwHHH*%"""""bgZ:؟8$4h3᫠+8v1)V2cXHIM%,, řvA `*|.[aUsb`6~_Egj/(9z biCGnN%"""""r{O)M$6Gs VAq]s b!\[3V-v p5/UYG=Ņ~xInA,։0MU3:`at`:Lfz42U%ςhâ'^؋}ೈ֔ыOf0N?n!t}ɆVͬzDD.{2_nRclek%\ȅX=`""Ј[.9[vfœִmGix|oFK ɸV&TŴݾ:_w#s鉱|nk wL'Ѐ Fm(タ ~Ju#.۩8R rc%@GSԋȥpb=o׏w@H*=s nHY.-7kVY)fBÎ!4؃f/ˤ/N_Du/ADD䟉/gҿ[UXwf_r.,\nEaluʺfL!ռpL?gY|u- ep֜ɰ&t|!_|K nOE7MP5?|<,M[I?ƒrk^f-}v8V$qw|x?%ͷJD ;F2Hz9=3%XXglމt&%NL Vl3=`%2[ hZT)7tsI>y3@b|1;S=/5wT nw䦝lUsR|BIeEu ΜJ+uΔ;dGhyV¯|5 /=>ԠY4pr nIzfԍqqrR ŋDri<(xt/fR /Tw-6<@wB`w$/Ϲ@f-Lu%NKa+8>m}I]D{CSIhJ`pp#Ww[9t8Nxk_!oϦ#9ZDSv-js]s;CDD*Zv69o[%FE(ߑ*Y~OimXr$)wkW΄ .7ՄɫǒΜ#g/sGays7k{vcA;3\fMzW-cŠՕSMao[69; a"" Mx&~{b03{ek֤ Y+ΐ@{Mŧׯk$eT-j?d኷+)Μ՗jƿld>{]ƐPK>Tb']1Z/U=U0&h1r_PrEzXR0%"R"ǬG{29W8v=~0עK|t9ў;({znbiFPX'xPE]n]%)k', |YR,_܉sDe[1{Twj^ѣNG@JlM1꩐#U0&̽ͤ^J5vKaLϖzDD.b,?x>x~',7>nY>'3=.xq$jsNKk$ec[O"׽ nHljs9W"\G?[F\n$zi3S؜p#Ue1Li}YV[~Wb/ hѲym\ndt`z07֓:q/<_'1@Vm /VjY ꀻ0rQ;8Ots:|[ EDDDD͉xʴXQ̲ΥCALDDDDDljbvL:yeZq9F~J5;q9ev_gxE127֓wb=n2?E}|SƲ|xs{H'̮薔&)' `""""""DLDDDDD(0r&"""""RNDDDDDDI=,̙:HTnlu*Rqss+Dr&"""""RNDDDDDDʉH9Q)' `""""""DLDDDDD(0r&"""""RNDDDDDDʉkE7;vTtDDDDD2ժUnM6A}Ӯ;v} R۶m[E7.݂("""""RNDDDDDDʉH9Q)' `""""""DLDDDDD(0r&"""""RNDDDDDDʉH9Q)' `""""""DLDDDDD(׊n\Y ʢC9z%5>ތ/&╭*j0Lgcˉ`g,If FU lE[51+xK]b~c%|ANĥbn ,#*[kEDDDI0`40/Bm&+.%め,O")ӌ O#goz~r$~kRee}2,s./tQQDDDDQT}nOO?ؓxݳluVg@=V|޽'],yqN5_rd`2=8>ܾNőn'V^\8$Z}3ٔ^Cbd<0sx8FڃA%{yT"yMdڶZׂ{6O7cȽ_l |[yx?w'au9aO4X ݣ`x08FtLϫ۲?o8t`h̾ M ~7DDDDlp \+>S b5o∿2Gش[v8FB'>^fΚ2oC bt3pvLkcH]ڢnxY?%zM4SkCM1;w7 I@PA$r`O\۩1y|77Pυ[x LߖkS9o[܉NDDD䊧VNuj6^ )Ss]v_sv:odͷ6T&qhW|={5?c{cƏ]͗_|[N&͟O1&O77dϰ)èo]hd@Nvs ٟ'Z11w@2cd0#֬m|{ UX䚀q8-GԟG..~ɣ[ I'0}g=mWy.WFcto1c;l]\?=0/ȑL&Jngsq:G1lSFЙ8dS&?l:ݻyIA7մJ/Z{]a/zٰ=OS| ط=f}̋<ǎq_k𿎞-0?t;7# Q lEDDDPLѪP Ra͹E\asKb䆧_0uZc]o_eD8]2,̜ܳx"o%F-k;{~&Q=c3B@ oܗa 㙾%~}Ʉ+e{tj[n_K>혱'B6Fs}^EDDDl IӦgeے,75ܠw?8=KOc8Mp\ұ:W6?d2t:OqkVi؄&_Ͼu/?<0<3׾5̦-ә)o~l=˙u$\ZpS_{8}qV-셋ɗ`SZZp~7Ǔ׍ngm\wfķ{`6u]/"""" `Y̘ssl0b4\4~<Ǹ/ORk8Jڟ&z }1n8?‰x?(/ 3GHQdcൌ]~_Ķ7Ldf`D#$mb8k2 _b]9b7>8Mj*xt'L{e.-sյndĀUޛ}>gx hW)[}afwv1yoMcJK_9 7fYj2wj;J )1zIVN112ٿq{6v#=6Ou{N&X> ug7}R3g@}͆֨6U87<3*ͭ`ȚucQRPJ516zٷ~b(ZCImWȹtz4Vnd:7u`j!v cn[BOyEަ=suNzŞ.`Ibx3P^WzdQUh֬.h0ޜ-Ui. 1Jtzdg'<@slOR[L_x]àgf3:naxﯚ3{.[]15ub^g:{ļ23 _N\:<6IVCpmBby[~X~ IDATfXV0BOP 4- )= _gs*|B_KŒFOx\;wJ؂ l=4>HCL*?]lC>IP?ڍ[-Žtn?jz4g> (eg5wQ]3=ƃK9r"Gw=Qepl2 _g߇''D?"'DWBV^{rK(gG(CeX,x:uZa׮!9ϿSV(|Q?/0-r:V-~LNU{?Ft}LcTV?_nIUHLLcy$l/YnCBoXMS;x?C|gٳqGkbΩT>KXUʡc1x VMUT|'; 'Lvv ^{hⒿxXƚJL$￟BE|Yj6YM6h泈_=EsKL*gm\Z۟k"ez?~hi: OX>q~C&.%<}gm0E?rsg̮G!4 W1'dK4ia=i;.d K%,z 7昡bur|wC)|M`}Z.zE?‘TFyc3pq TL>|~8'ۺq胕<B]؟:_t:^72틉>Y)>_΍p%}.g:ҾUВ'elsMtslݖ-7@vlvOÍX,֞R\v4_)GRl{ދ6- Dok^DP (CL* D`1[of0d58Ars}~){OCڄw[[uvCovnLhDE^KvPf HK !p\kP#v'j^;䅗$''tH&Oͪ,?CZ;/܉Gϰ=ִq;fv}9G-{WWwOQۼ~WW,>,vXWJs H`2a›OeXyoOIN1m3ፏJ/rVD$mcM϶aoںQ ^m~iW|Y\_Gr2x{{&u;ѫ;3on`@UҨ1XL`yC,&9;4vm5_>#dQm^x{CJJ2`uTDQ+ٹ0y= C QQ&L(Q Z1ukJatBFxVP..uعE{Y.% psmE|B j]ul4h!̐-@.{_\Zѻg_~7g5Vgݼ9ݙ;yII]R?AñO' `(Ϸ ^])K6ur,*k)vG8!00VAJKL*F6c_mL,6X[ۖ ~Hn[SȄ>=|ԝp](/|VdqCTs~DZmX4$Wn݀KHԅxEq]폋JiiY07=cO"r>OOWrSH3_=¯11gMF8?U~Eyy:0~[VK9HY]Ki];^ߓBvmKzKBL* jD~ LPEh26f;ѽ qH੼WʏFج- <2)n{m??,ڜ^M{4fyd0)uajsD|ްG'V4lͫBsE?YUg2k\^x/o0aGҧxmOX \1>3nY?n:е~kԡug}̦?&Ь1Y4]rMҾsO4@GGՐ7 isߥɊ|<.KHf}y!ܸ`Rt3 gRM!2 MR~y:H[]rE.k)vݴ#;K|K"֋jqZ\S[ki؎;hժUiHڱc۷/MeQ9d$f8uÿz#.ϟXBK7?AJ>^DD:۶m+upssY@vל j1[-"KBkVT*^UQ|4|e=aQܶn+::کs._z;Y5fooo㭫Tt䪓ˁoF_KDD.? `RT 5É=p?柭G8{<9_UCN͍+F*&_U\ 2JnE7EJ9B0rZb&~BL*%wwwj5 !~0e0pqqd2a4:ҵkhUȕ(|/Nx߱Wt3DDD.TZFaRN%""""""VDDDDDDʉH9Q)' `""""""DLDDDDD( w_wpL;׾ʟϔ[DDDDDR`ۼ?N;8$[׬fߎkE7b6}̫˿I"""""rŻJX2mDB݀>U*9RXjj*'N !! <<Ö2ZyU[,^yaXX艓X8<\""""rWMDFf`4ggM.w4c2a›ŐwyVs]6_^J_ռ2z5FkwԽ>'NZCG\]] ĉԯ_1ƨԉy)0{xT$vɌ7 uGskqUh֤qwE[g0p'|ô _gs*|B\I_){3{4v1p8Md /NX~-O[4vpuH"=yK6a~ yd}cD~lސ"L)8NHԶZJ(bi7wLwj>SWaK-^*\>sxwy LA8b7bXoUѠ ODh9łEM4ccF0m:OYx}KqlϒrnؼW\>͎̹|CzyugB6ͤ}1јh 8,\̛_͎1I̹A-KXmM3I̺ Y!Eʹw;jÃt!==wwc Cmx {֍͎2*>U ף(Εʟ;awx&nazCW?Ihe T+ZJߟRZ5禒7cmkBZOEG;ww3*܄ШQCr&|9ym3y+?FyQv3Տ8h./`}-[R[7̽)""""TիWرc8]&''Ǐtޏ1T5ž={ ǧg ߣiQhНNc] & 7 +Lgҟ \0ƄAl;s|;cIhڏ>!e<dlB1Y^V _׭_[dee(MvAVJSDЎ;h߾}7##{JÆ qu=L1''={KÆ ;ɼԨ5L[ѭTmV,6"99@bZ,EzI8A?l۶R iiiqq]y/_^&8itg>w3—DL*///""" "..={{Η4looo5\NkOB[^XDDD䲢&;& ooorssύ 3 `20]GSQ]. ` `RiF%""""r L""""""DLDDDDD(0r&"""""RNDDDDDDʉH9Q)' `""""""DLDDDDDVtDIMMĉ$$$ժUVZxyyUp EDDDDJGL*9}44nOOO҈'&&`իx%uƲi C+1""""RƮ\ `6ٵkYYYtЁpqqqi߾=ڵ \.Cq~ N?Pt@+W;,"""RR9x 4iYsAǙ7@Ǝ {-]>]Dz6 _Gpͽջ?>EYJɓs۫FX72iD4RSS9}4:tpx@Æ ٶm!!!6DŽ%>M.|2{/J$qvoG.8s,dҷ/)/0t>*\gfp%[DDD&Ɖ' uU+!!!8q 9śnn! FhiΗ9i\+qIٸԡM_`/8},Y&\''/7M`jWaܶHwl?K<{q1l]8b8FDOx>3g]w{{^ioq X9:ʉkH9Lo#f@p5<%n k<ǯ^fVJ^+T 4nܸٳg}Pw,%km(agaGg6y2>oL!L"Xg`-ۻ!.|O?VC~\>W l8@vMĩ&]^,r`$ė^d|do4^JȊ4?;~y}^loy%]#+e ya9/}Spks\7IDDD &FFFƹKJ*禩/,TL>|~8'ۺq胕<B]؟^{иq5oߏB=lU\KVQ@K߲ 4iTr{ߦ{YZN}nb-}hU3){8B'>bDO:ۗikPŪ(^+Kw:<2oiʿӼ7%/"""r%S˞b`5MD2I I+`5X1ڍzL~$?/gopn9% kBB+} 8;䚥/ۑ&[w\r;y)fU,r?͏6#5 `RixxxwʥndɯDn'oz .D9$ OOWrSH<#Q׸I^u g<&ub·yiE7DtK?@8[P7Yw IDATQ_dL2Y:lHMEPTTjVKVU[Vmzkv7***uED $gu&3#AUy?㜜93LO|| i$[pTѢש%7ɷS4~+ $te6A$ ,̹k9=cTɼkp߳xH]v]QDDDD 3ˆf˖-3u}yfbbb h&N:blkGl6k <<yq"SIO:n<X:=v"iQ oۿɪ^oN۟ 2E`o}VaQ$f\v;dO^| -wrD _?/~+40sL1)0I< !9# sm""""r~co3Uc\VRRB^^ީT9`+/5ndYS-"%%% z]]]lٲ@233͛xw1=1NDZZ555Htt4ttt޽{!99׼yN ?Z"NRtY+ԎRȹNxDЏy?f`6ϲsٯZo\؂IN&9&t.ȡ.$$Tbbbhlld͟n'33c~[`,S#-}.#:FfRWNe\q8Y,L&x<|} F#&>}`* ;OQ!"""rRmxx T46﹋Y[0?~v#Mn,)\yߝ|㛥ԻCIpbcOTó{O@+~k^XV]&"GMQx ^s/p.ͅzp\xmÎ%6nϸ;u>o~H‚m̫߿BT/r$ '7|[N3M[aFh\uPYVF辑ګY|{ a16,7~HļI1\E0Au'`+q<[gLY?_}ftĴղ"\v+lI#QGڭ LC:2i|:K~L=k^m0qM8 %'2@),"""""O~'?bA^pizzf?~xz,4yUMt°toܽT26ጆmHJ"f48s&-pܫ:¦EDDDD1~HfV֑ և?L?72j@k/sx;jy7Stx'7<,3zzN"Fc2Y&k_w-"Ç,""""rTRMml$yoakO&6\@8I~;8Iĺ5f:FS`>߀/~{w-wfEK9&EDDDDS4E?a>8*++ %`"DEE; CDD0 ǣ/z{ СLDDDDDd($JDDDDDD0ALDDDDDd($JD;nW@DDDD;S{KՆ&+!6bRF1fLVsQs2]m3G ﮥmYSvA_F6Mn$nAL+ms2?:nXś}9L ‰aOia -$bUU6I72cfbVWq #dcC^]911Vʗ,fc4Q4\Kx_ͥY\7{Z'qXzyiQJuc2 .ּ5KnҔZ^}3 4/MJg0ċtVI@\6K ϛF@uym<]M_僢RNRQD.9何QK]g.V1'3P@>/^uWš;˓BWf"gs`!ϋCDDDDMJq\u[8dgl]DR?S D$%>Ud]Y8WRʍew 3H RHXIUM7iS@|0|ꬺ °AB|b2b0@gcےo=(""""O Hpؓɻl !ǩHcGF;VJkhIA$>5q*_Mq8U07Qeܱ869G$guY;Xb2IE^idY8#-'|""""rP&a31@ k0HL| xc455a.I0`]Tv]]C{H{(mc 'Iܻ,-dH0LLDDDyc #&&!'|b;m鷱}bk)aeַ1ZT'aI+[b&6n7fpO7%`24:?. Jål<Mn:n*FO~-;;{bʌbl9Ijj"f*54Ұo` w pbQʦ]zh᳼\\/Q+T (a 2rldo-1s::$.gOXF^,f*7P7>'.7 ~ dXÆec#!w#5m G/_ L}KszezT+))!//TTRRBAA8(^mnd90D k׮\3s |/P Q˞ӯxQ#Wqy8ԄMfJDDDD(9VvEAi̘]#iR&r\vrB FA$JDDDDDD0ALDDDDDd(0\.!w. 0DDd(l455; kllf; $JD/թ'L$Emm-p;$LD"((l*++;$Ae4l= #""d%`E6ك!([0r1`wx"Cl&--a !ђv s|vj6xxm}1;BP  [2zsdbmbS=$d͂yqv?@6&<<V64O-]->#rfnz0ke(܆Ǿ#}~w~'M<χpx?_DžC)c@AiS ӆfvMM,yo3hbJjnbT#{Ky?9 zw>q)?[|a@&>i[*^[H>6mڌom4-G~HļI1\Eǰ =Klqwl}$w3tDDDDD\74f֬_ϋ\< s?еgnq|މȟL܂U̽g l+h*->, ci)[)$l(;+':Ob\<[g}|XnF#>9 l;6< G̷NVvٙۛ|`p3sk*K6ᛒ[ɾv,%5i*.ɓ!y&-pܫ:;'@v4=~=?ܐ=Dw""""""gLcp:=!ͷJؤ|0`0 2D3p$^R̶eN; ˚?lm#W?\gP-Zݵ~#'dD()yd H˙8{sbݴjzrCp84 24@8R;IzU8z{|mhƚN2`bF,[ʚ̋ :)V- >!ODB޵ܝ7-2&1TS۫;I,M3erQ^^N\\)))͚BESS6m";;[!bh&`k(//E2o5r ƭ7~o3+v3M綟O0 Kӽ!^tYK;[>F &Ҫ6 Dܳ\l6 .}Բo+~wT91,JDDDDDD0ALDDDDDd($JDDDDDD0Cmv;9MCn"f9^+w@JpQFui+{4DD|^iaW56؉y 8뫃YCn I%rꋈAJw{s5WΚĬ8\;WQ!9keeu iq|JVzO-?`ƃDKg=}3R_DDDR‰A|N{ Tuo! N{ֶ֯N<#@77] 3UFιFRd1o1|\Bh.]S/q:9ڰ%]w^rRK gt5:P |C^ϖ-g\8H&̢e@:#h}\hy`2Obe%C'0 p+ࣹm7<XxlG!E%Ν)\4s{+Y\­.5cN';AC ٳxT0󝅫o!ر֬,lжk 1a@k= K;ߔH/Z 09x==xz\7ױuot=T~C#l;II,t}Y8qN!եrc݂c RVRUMF|76:^|=O91ZñCmIfͷ<1}?fM$N &@LDDD,%`r.b3E}?`'w2BS+{v㭔4Ђ(I}XAkTdx*VVVJKXG;q x5DsM.`fy"Bpk[QKZ}L gșL?3gb& A`-']ǀ7Mc]#^-PQV/Eew5G$X#Ǎd8K zjX[)LdXҔY D]:!(니aQ?0bbbrR`!&ږ~׉)&VϹ h m}{I eێZ[Juv:DfldLsϒ!SL?dJ?\ƃ:1zY㦒m` R!(o\ΖӍ㸕É6spG)gw;]гrqt. K$kYȁZ^O/aA`Fffz^lfŚ]?3P_DDD -2D\UbVNF98-eTc#{{lYkֱ1@&t9{2vv8@Z ޣFB0F\ȝ55).,Ǒ}FuFd_ʥլ];{D$gfA:!g67>QK@bWSܷr\l6 .}Բo+~wT9숧&r\55jYz/9=JDEoQvDx|3f`j#Lν\!""""("""""2H %`""""""D Q&"~a4q\C\.Fa Q&"~ahjjw"~؈fw""2H_8멫SO I.Zߏw8""2H4EPPTVVRWWwH"h4b=z4AAAGDD0LZZ4QDDDDDd(;P?Q^]xOVSR1Qȹa=GhsLDSR8@o?}7H3xsJ<6-}cw͵[_/;⪇ǿF;H -l'q񕗓=As%့6PyDln.f97=/b! a~1,mul/_!-Kܻ>w%FyjGja1w7sCv /vO\׾s;ԛ&""""r^z _;_ୢ.Ǝ%6nϸ;u>o~H‚ݰ @;֗?Nnm{Xs<3waP.>%`HhL:# 㯾Mw3tPr'1. d|&? X7_<Q 30o2-ly ν#lG 'yHn}L8櫶 qv[SA59P=S&ƇxPH꩟yQSSCCCnfINN`P .%`ovvp8dD()y~H 2^[kYwG {)o!wdh;χX@@@XXNy0'\.!%%,G(;k$/5 ?ސfTRMml$19~%: "!Z~xK-ZBEC?/_-aߧk!@[#cptUoURkz: 9S;>FI'_p8hll<ɑfoѽV{=@?}}6DDDB2zVQVVF@O'{+X,f4v{ʶD=,^chz)jwǿ=|17@HOaj5$hqM녟J]{ӹSj\"&"f,N {Gub\.)%_f\.׀6#7?&23ٽb1+w@JpQFE{'CL+39q7{4D`>xvMb_hCDDD.$C(3b!tB 0cs>&~5$}_mOi߻0bH|;fy7+_^VpEpe~2^-ulݰ7w52)$##l)LP]92ȏ9ӊ0F]|%6DDD|40+\`cW੯ Z<Ǩ7/@MOM7{~7{h3Z؄'qrxiQJuc2 .ŔHhqi?-(p{X{ Ipس~euҍiٿUHمdŘW60ruLg|b6O#EMcu\ \}S;Z>BkHO֖W3#ߨuz_4kk/%ynjX;/Kw\[c$8IB_^v {Zi~LrѸʫ8%0$1!'@kS.ħO0'\~IȩjNlv븗wyk&]JAh7{K?b]_@ItVL&]쯬`avn|4͒27g7мck|uW(dWԹTQr0f yo%vRיKEf̉ 08ݻ7IlpJnfgG*8wdl.[م0;JH Zh>D ?~l|7wȝX+NLa|t!).u_eZg7_GDDDoJDNUg> 1BŽr3G>;q\u[8dglg_DR?S D{'OJ }`1Ⱥĉp .hg$n2,૧!a<ƶՄ];xr&#`f2r8pmD; $rxz']c<Ք51:f9"q!JˮWعNxn:}ѷ7dB 22pFZz&<^:V.U+% M]]Ăg~bO&)d'F{8' v㭔4Ђ(I}XAkTKgq2c{?.f*7P7>'.7{1pUP1oZ˲=-!;&02L~ s*S1Wn'XLS@Vb*ʱ=G, T5Fb GT=qce;n*WsC'flȬ`lc.efwo,mdD GtVaò1; 'nyWq7}̲6qްt1ۉYN_"""2t ?%_1+./s].דXII yyyREΠ q_LfwreƏ";O(^mndˉ9Or.a6J>jӷxo;vSߚYF[TUUrt.*bb5@c-+V͒Mp%_""""E y+99lrIl&&&ݹEoQvDx|3f`p""""F )));ܹ0DDDD(݂("""""2H %`""""""D Q&"""""2H %`""""""D D"2\.vMkk+f4l8 %`rn"r\.ˉ#%%ds\455i&QDd8/0o!zWᩯq; h& Y{n∏w("O-VVVDDd0 `1ӸiBՎz+xj!q; #DEEQWW0DDdp8bi|Eki &ሜGy9l6yD!O<SƐkk!0DDDDD.H|f5|=n|F!""""rA:0 0ALDDDDDd($JDDDDDD9?ٶ{KՆ&+!6bRF1fLVk쵗)OK:╦WD\HSL6\9\LEGK[7]̾n &G("""" %`XM<67B"J clrl"u)({rp{X{ Ipس~euҍiٿUHمdŘW60ruL5%<|G5+BsbW$pMĞ xiQJuc2 .7ŔHhqiq~>v {Zi5$wj!i_N>:<G>œxt?H{g7n,ǧ3ᣦb'#pLgjVgk^}3 o?Q6wߚD2Vo;B9 &x.WVr0t 0y; >fIyȳhޱ5o纫v2y|PTB܉X*(9E3GU;j% ~_3|bN'M,_ kT.O \azi*}1nҥv#@Zh>D (z' kl:lڍ|2-p('%&#/MtVRBgBIĊϋ;ﲈSv,dGgag.㧵f㼸b;{ ge_+_{}ĮS{w37=֏~7V']Ye}wRiyǶ}gBr_ n/M/Őq\u[8dgl]DR?S D$%>Ud]Y8WRʍew 3H RHXIUM7iS@|0N멳:}ci{774fƏ;c_Sxw{ x9rވ.00y$rVΖIW2{L$F#F v59GupOWш/^/ph3K+Û>bSyFKocx}~?CXV?UW\5_[{wqۯߡl˻I8;TئL72v{Q_I.hغ ]YꁳAa #&&!'|b;m鷱}bk)aeַ1ZT'akĊ=‚o6PSM@ۧ%fR0mnVlvFM-=GDѯO}_~d䥑m'2:pˉYUDDD\?)o  #I-٪χ~Olg[v\!!6Ȫ+*0W(jͨ4|%~d(Q>Miױ`4y3=hqגmؽx-;aC,YQq9:"ɺ4|fs12263[@'m`s[YIT#*2n1Q 9 ne#3-  el+݁mK@Ǿ(V("""9%`Hff:g:A/Q Go/ XI}4}/[O|?=:~{-q@y/o5h:g 1`ϹLŬ._`r0qNYZʊ +F[eQ8Y^4>(1a֖TGN"|~}Tobݡn|F a1N]4ob&᪠b>޴e{0ZBwL`d%%Ya oc0a m"`g)Vs@}5~دt| `[u\OJ`%%%ݧR {㇗DЏy?f#o§y~πe䛷3+v3+ 涿>ōq[r7`~yioWWp?7gMG0gFb_=EEۄ9޿''R\\L~~kRPP0DD.R|/P Q˞ӯxQ#F3`gT_{'ȠGyGY\| T-z7}sYl—+|t!H\;.P5@c-+V͒Mp%_""""CՏ-7/dx˟1;x)4p+IrajeG[4ƌY95Ȑn:|ly) XN[w""""2蔀o {$\C5RusG 9!y _w"""""rVEDDDDDd($JDd0{wUy3d/@BV܉"#RjjkkݱV\ZkV뮕E"!$?HCL8uΜ{Nx>1n (v]fNn#<<\.8JEENfnh.8!RSSUVVRZwv]%%%ڳgRSS] ~Dsd5(s0=EyU'fSNN UZZ*1 e] >YёEJRdsE]F'GV0VU.tS>B#e=TuWHu.k ( .1|w5@$:2et <%]I`$IZӏ] BD݊nU]]0aSSSnnkڵիRRRdZ]1ݮJ[N999{n.۷W^?vwVUի ] 0Fuubbb]p߿e Bm8ZXVGn!A``!jUr}߅W0XV+]q۾ZFv` VHpťӠAlsuuھN\ڂnc hоRm\TmP޴J:g'mA$^z6ɍORZT^6QB]V. Uꈂz:##XYek1c4 Ϊ#E۟+i,9wmx0ŕtɴh*j;zgC\9Z=T_7|V֡D*>k W$AU[lu)(L)#i=l Ѯ% QYM8WQ,:>ug*Y4:9:i%ZDA Υt.-ڝ~.pb aX9ꝒkOaѽdiU@D$VRIDATWשOxFTeӦ('uN>_\ G*hbOij*PKv"%ɮU&P\듂{fiĄA HKU~Z{'ur6II=}5(L{$i_ҡ=rOIҞr9{*ʳ0yy *[>^e֡=[f;t6<~d? lP^zVj:`)vF%*%!c rM"OĜ(IRRRU+44?u ھOPMRRhegI2(>ܾJ}d53XII1R!:qf5y^UAY:TR JKTũRG([},v}]9BTHe? ӯO ЙmW<^ 'y۱X^Y#@AQ=g{x9BJMrY`Y}JSLPƌJ՛۠q")(M}jIa왙V{zk}NܵF߬٪UUg)Nrw֐m[VJj z޶ْTkKʤ8 \IPJJTg9VW^6@ؗ^9_NTtLiy-V(.9Yq[,pr=LLR%HwumV֩B Vgj*IKղ/Hbw %OV!TM'OUؼ= BϹTśڵݵZ?< Vm-߰S#Y12\m*ӴCa%ܗg!jha_\oأ'[\OYOkokү.K p)|IS\`JKRZYb)|-aO=zz4iI̐mR;)&=MaYG =(ETDP*WKگgN%S72=Izu智o%5'.ҙ3ii 9aIݯk.P&kUuT_i˛fLӲGsy3udM` Ѿ5 U\\LСi2;ʴ- \UU*9JhuYu//QLS+g_~P/{]w TWuٺz`{#ޢ~#Rykݺ"ȽI?Ť!j%_.ǵRpLF?Z"Mڷ:_Nnl 16_W8uJZv:E TDNpP,קa(($J`*]iRX\Or$9Ug?Çjoj⿵;hc?\ܱ^~@S'Iu+l4J;Vu;QR]/ؠ+_oJ;ۈWkʹRwZYC`%ܙH 6Sn Rρu@7G @q]cR5s*kmP[}/@܌Sn5ɗ nfyB44==?FޞUc59{C4k p2 IҲ5Ǜ~6ZYk@=kt꛺\ ׅۢJ)PԊVYk4bhڱht<ظFkFk@ЁJ9g2m є>Ǽ.&I\o-[H"nkGMN)ӣ_諚RɽU{H*}WB՟wi"%#yPq54A&q?|yꗿLhD}qr֖h~"3uCH.LBտ|clˉ ԰e644\"OBҭ{jem ;Myѳ'+Ul2&NP|k?EijxxgGkKjI}^XDueH&OkuN_n@u64ɺtk'_?JRϺ]Ou˘5{&*1"XN=÷N:>unvnޢCZw>\>oNX>q VsuCW)v3ͲZ.na' Xw@J3(: ӻ St*++SiivA7gURR={(55 B nf)''G*--wIf5p@l60 @bZ2@7ED0 B 00 B 00 B 00 B 00 B 00 B 00gZ.I}ڰd]B]Uu-7L0$hX5gfQ{!~+’4('Gc6Tj3Ԃov|_-7AblM=gD[:Gi:j}sWڶϩt¬ЦTszfbm}@xq{Nz_h 5^WYW!|-\YUugGI ʟ^| [3sϺEgZ&̣C*\Zgtp.|IcSYhv_j:ul]=0ZΊU.[?_PoSק_\] G"gܡ?twVkâ%{5HudNЖkOm=kէȯ06 ,5H]3}98WN6 N=EeIqeϴd, |KUi2y%zMJ%si#'ƙzmR]xxYjoCVIm\C_whugIܵ[__@M-&k!70s=jJJRJRfm҈/I*ڨ4u_S k7h+#|Zm>k.p Г;hK]*\9+r^eY'BzoFwܰZeC L/INkN?7÷K}֧oӅɍѯjTZ-GPzgםLIMWKwz =ZZH WVjOSsze S3uvdmLˮSdv%Y֦ePt[ +((Pnnn;(((ѣ]fmVuUZ뛖%9\bjvM!A``!A``!A``!A``!A``!A``!A``!A``!A``@MAAK]Хtย "!A``!A``!A]N;vЁp8]Il6+,,LIII w9?>}jnWEE6nܨb$َ;W;YV%$$(>>^;ww9?;pbcc]Fj 3AqbZ;;t00 B 00 r-z>=.ҥHڧimi ]ޡ->_M5-JCuu=зzgwjaaF_|`{\k]]Az}pkzy2 -ΜڴTvaj{=mr*:ckZvhu3ӫ_j}4'st^ {Vi>zeӌ?դt Όtu K~ú%|r zVgtnL7i/tEJTzsE^{S*ԡM;{k~{7/Cw*qd9Q7۹bHi9^ߨt2I9"E^W^^iLR a:rJi]gI޳[.yU|w =x ]]SNIfߏ)ܠ 4~Xc$5lH}^E~џWi9iS4!#q\W/ԙ7)V-q]  bd nC)9r$>]BX~ aӧ}hȢPq nчtA?̉eNIll^,(T*9k*gg+lJ~nU͹8L^KRRhSQRR210˳iOY7ߤ/8Wtj'\Yb+|s4:inާoҤ>^]ٺ$I%_魂e􍓭\dR$&+tѽkt޲֖k{M.:/GuDDO}/UμzeA5X3F^bS4-}m=u\=Gso<{IQu۳kZJc VC6-?גj9"5Qww%Ife8Ws#ܷ^Ѓ S)nҤmˮSdv%Y֦ePVPPѣG.#??_m:jΖJ]R]y}r$29[L\i3f '"9[7N6',tq&Lw hr<i Йg:|-dkiwh Xk&|8ЌӞiphO~isikswq[{n|.fvvfs{m-x5m:˅Ahh***]FP^^)t8x5; 6nA޽UZZZnXwV޽{g:0Oq nu.-$$Diii*//WqqK:f*55U!!!9EdljU@@:y0m?\[ZܼkrЗ by\×krʷV/Z/r2yz>;`B久5doMi_}܅$wu0OZ.ʲ,6kR+ѽ[}[ޫ#_ɍvQx^wetOǻ2ݕK#%tkʭlN(w3kwU8EK7u㣽W#eP*%W :}_>[&so~>Kz5\sC!^#'UN ?@Ñ<@Cwy\g>u7sm^|%f'>/IOPIpvvv}@N#O-_]F {şh"^HNb/& 1ضP`+~ 7)+*vͽyT8VUݞt Qi1Vy2U$t͟$k=o,*djDRy.qBc<[0;1m8Տi $w( j|O𼛓CVC:sؾklg2F ơdNS:׉`sMl#atiĸƆ-sE \١nAb6I9>'>^Mΐy-ϥ$'=u䞺bO2'ݎyU$Y}  NbS`A:K?[>'(bD' ݹmq[@ILЋy=^29 U2yjL|ϵ3o8] m8gȚiڝ[P3o=Sh?bD#C|J Iڳ?-$t SaƵ 64U{`FO#}aTzܞb 3(&n5;h y=`gyԆ}g /{o|ӫ͸dǗfDz)U3; T OgdW_p8_D,;NUnT]^8iPtDk6Ԇ=;F k܀}̪V$ %a1æ.p Q[>y1)N,%d-<)BHGh.L͙v="ÖT=i^s_#S޻2+Q괃G׏j4<ĥ.T?yi٤7N۝'+οrr <JKK]7gMY =HY s(|Ҧ#hob.4组{vס ud>|CXWخ* OYV9B%;|꓄vnɇW7[ C"noފy{]wח$N,VIpY7tUVp hVW^kyy#az^bj~@Z'?4P/QS"G@'͚$\(R2鰔56{SI@(uWщ  'Ez.]6%WE?4<`PUlxgDH7-mb{MmlX|/YcFz~C?+ˍ]×᪚>Čq>7mW^8jў_vG~ڶ Sg9Us>&^>lsv]s|G|6ù/-gC{t~:w)yvzQR44&aNھ\U{~3<8׸.I,N*9f'?|y+" w4hƌ7ogioT|G@hj1siFmiFsiП?B8FϥBiF!F#H#0!4B#F!FaBiF!4B#jMkn:t{ƃ#Gd Yǚk :}4siF!FaBڬ;w x;wpyZ&u[mQkJb&2i`6weȿ/:"zr$I Xh$I x7m[D ѣx{{Yvdb*;jhDu.oٷ s[s$t:]1h4]Nѐ$Ibw`p:M)M6=<ޣZQ+** :5kW{=ױd2YZ* D2YTzkw}bSeӾkIoOI}z7cL%-HžppwiU$^\`7݊Mڝ- LvIC%f_ƗjT$X( 6uэUw_t tlgVSzZN "<Aߝ8RwsYLwv|C_]wsTN[yH켫[ݒg!%IB;vqigFckC=vС'FvvvTT$p8**MUUvlxxBP: A*uk0 ^ߩS'\zӦMMSG0-gH;PNY{GOn7S\b͛;Er& r G~sm?T NIĘAuܽπXqi;.Ӹ<5?>,xWX48G%a)ffT-'&x A8:NӼ^^^ ///WEdddTTA*N]"P}"]YYf갰0Xl481 RiHXXXϫkF솏=)6w+ ֦κk*|UYcSq)o 򊲤<^doX};[V@)' 3TM%xG&,nj{ k0̢¢7o+C?p8 &I@bش}עmvY  r.T j˅ CNѸ7\9I/ܧNˇm0xsO渪zOZpldsXO*>Čq>7mW^8E?EuPS{xY=_Vl=J.oK!|G{~5ewϿ;;m0uyC+]5g#{Z/;iScZ|}}X,Fu:1B  Battttt4I[-Y.}>)+3$i(+:yZ[tUU՚~@r<\. ELp:@ YU<:p}fi_i&y+" wZǃisFIw_W\횝(ihLœ}S }6_Qϊ9 o]){wgffƮ&v"wI4 5n!?%)+ I,N*9f' kzF:.yGxآgqsZN   DQ:}z>,<^KPZ%(HRD"RNE6nfM&JhʶcnPN.X,1Z>+}ڑR eȐG ǍL&׹K_>}TnU~!G=scoJܺy[bk"r񫓧vhL&ft:d21 _r: ˋ`X,4z -#;t:Q>Bi>Fx\.U 4@YH7 G]ϵf?'F!FaB鱌 f{ M}FԘ^jsiF!FaH#0!4B#H#F!P_@m !z:ǀ-RؐIENDB`lwindolf-liferea-508e7a9/doc/html/help_subscribe_1.6.0.png000066400000000000000000000253721451527772200232600ustar00rootroot00000000000000PNG  IHDRsRGB pHYs!3tIME46ttEXtCommentCreated with GIMPW IDATxw\GǟJ@ ``7[lѨ}ŒhnTDc]b7" sHwB}8ffyfs{ $J*/Rc#7Y1zAA`b#M>wy8qtP5At =@:a݂r;^{} /\ 8@S)Y(}]= :55eq>z#:NYgnԮ᠆zoTָMM D|f3GBN$h56[[|WOԛ:dz+#4OrpGputdssbsC-&Ko7F߄ϒII酏ó\}3>ͬl LgiŪml糉 /kTẙFUCUVBV|.ٹ"JfZoKW >LQ;)%~Vϲ jiB {9;O4F6wGn|eT9roi!6,0Z@AAbguȘK+@Wo=/\ǫ=q_um ?[OTI?׷djpK [k1 ?r# ,[Ƽ+cдQkTUhlc;xӉh0ؽQ/n2S|.~q7@tBSjVO}6xsty' -ȎMӤCsF1\;vpFFxzr8 ZmCZGI\yzA=IG i*)%;ioԕ"  yM{'!(R$E+J⥯(ސE\ѴlzdJwSh-J <+vSnś#H5Д"P1ЌވՈ]&"m?J`eDYL&qso} YV\=s>lico`X , }?LX~D)^q'J,VeDѴ-H{QJwt-x.lMG|.vM$LJ {xS+z^e:YдBua<}JKߪUǟ ~Z: ZL@SvIQf?jG6UV@_Oȓ@Fd 4GH+z#SJCnN\AyY**+C"E(pûs,ьc,6۹5dǧ)sP0E POܣ@:݃ȌϢdi[!QJAV|6AaIL fh6YX:44=RﴩRbz@"#w~dw ñVc|G2,)'PH _J)/>K&I;bK.-jǤR·m'?"hX "L zZnE<|7-t1E' x,}F^ W^Ҿ}W˦(?mX/\TWMno'oɧZv A_ZPQ)qaL5D6Kzڜ!zg):<{A'/(>X=\~§TO_=8{A0wd΄;ONIS. bGBSC/XM U~Ӫ[ J` ick=#.ikZڈvPwE|IE}`f _S,sۑZ&0׈:>zW$)M{ Zi;uH 6_[Z~FC~=Gm{"<:Y,gvW~%JDvNS掴7$ 2'߅ÖVگhaݥ2R&!|~t A${7O,۸o&Bv]46aneZSѳVmWI MH.*lgce~{Wuߢ ߵqo笞JIڍ93W\{JLx=mѲI=ýF. }^xfƽMGyŸ#8u`#"#W|ƒH~gb f bhC474=aNys}R!]HQPa2ȹC#K夬(Yۏ:RxR$_8to53YӶ=0Sr27)b>(mLTopſI($6_ɫ՘ 0dM8D5&S5}M49J`0g$=] pݢ뇏x3fjMRm*0a*%M}z9=c}7ia&Xv -=dR*Y$%[#`0}rd'+6m.A}x|#Kn_PH$:z%`[:L]Wb7Զf gn!>Bs6c3yIjUWڠ΍JCN7<)y##5ˆgr#1ҁ/B~&aGV:AYIߞy~5уͳsj :Dw0 :  (OUkᱫCT3MʆO4cA Irϫ 'Q0܈?:?xR'5erQ\Y 2^b"wZs|*{g)(G/uNt#(OA4E+KϠ1ؠ, ǩy5 6wm;Ƶev&DtV$YZet=X-<]<{yhOQ\haiMe_Cis"HALS$a|Vl5 l)sO5!ܱ2V_ F+CuZe|8btdUzLp>t hj}-RWA]b' d"ɕEgUVfl<X;jEw౵qJ#M2>C1,{ҩՠUi4ZR9t65K|jʹUm>]x]5toj-\,_^d@oG45omCiy"ԟSͣiCUcA Sk,h[va'4Ҟ땆tYҍ ŲnS9ۆm'bMMek546#;?;yyT3mj 6Sd q*b5 <VC2GStYҍIsCmə#m۞<|聡R4Z6VCi3RyA}i/fαu[ps4Kr2}ɠ_'88h1noټsVKO]n?ΑoЩ̠|ME;כ'{jӱ&TN 9FN 0x[5qcѤ[>H9%ߴj1ml*NYrhF(y̞.<59{}s>o{ʕSFSk`2d9t_r~ӵvww5q=RUU7Z]Il!TBDP#5 SR7`APAPAyBAyB AD BBByQF xs ȧ (O (O)7пwz^eZh%֍>~|;H>F4Ml9m@ HM[s6c ,Z,&O*j{+ncM;p4T[8Gs3U׮ls '{[goG;wkγyO?c`g?OIl38锁pH\6+,xU7/;]{/]=(E_ח:sHV;2rnljn>Ok>s=+ٛ\q3kjͤVfoE]pn㑿_G^0&vǛ;("؀O4ʿɄhyc#sdbtɼEMS4UTlb+xǞ3WdŐgn{:)5t1cOFnt4:)=AÆTgY0̈O [IDATeJHV˔ُX>c_q)Otw:X=6?XJOa.'$\3Ŧ1Z!Yp?KU,^qV/Κjh:ر`خ[<Ϻ![ u ]K$I)w/zJruY?՞_˦=k䡢wu}?`Ŕ)za ;%%86.]cd*W;gFw%)y{{}-Y ikW P֖1!!!GVy@GnfSR9P@@@,OˤEsǐY4EҔD1b w8k啇yb:w!G3KWPfqa3;VDƐM7爜Vp\$~a*i=6[ihRKcqPEu9DSOйXJ%f"Xrˉ&)` 44Mp,\cWɐ[&;nwO4׳% yi;gGw_%Z`fC6am`!{|w9"EA)/MGUH83\ ztLեCZ>˨sHhf|m;5ۦu#CJ,Q<\{3]rQUn{FN$=e|c32tvNpw?nޓz ]]2lTś7GC7Y@ddfaE%EbqNc˵6;Gt7na]ܵ'4eNۗwү+mm%o]8vcfS[Ͼszцň }}[j!:KzȬvן|޷ǥ =p8!b>bs9WU)uV Z{o=s 5sht/&ƃ;zkZue+"1ڹs7nLYY;qԘNjKHIlnݼ쭸EPR|@"x=EMS˲wLrY뵋uY*/;xWAW'di]u0tww Lܾ EP,(%i@πm%HoҴ61R=ɝwrwX,B*KՑDiӲBBM vTˀ P~KͲbsr$l6 RPx lM96yŪ_I#r\$.?v,1;Cks.'6m;61?_ogggddDjB!rCS'A^EU%.rx<^k'S2L*IڷSϐ1adi\N}=x6%HR jqSꑳ1Iʛ;6f˖QԯnQX̼r ?1*AC[7y;v1[+ ?=2{U@ΧO$8rcP2uVPU).ǵ-1i,.qY2.q>qٰO0VxSPJ2h*͵Z4ńCbW!85+(Gݗx"r;hi(/,!^b͛]-.]x ^.T`:Sunue9@WqSS }Nƴ]:2TE׈$_s:RMd+NDE[9 %/ߥXP?lp_Ư=m#xm ?tN.V{؃ٷdHj@wC1_m.Ғ23Y\x2yuO  5SAG~E , }h#4wAo͎OX:vـѻ03 y5x*w2NYPRpyʘʘ*ҕ($/`@qQYphp'tJ̠Bu81`fں72ʹ) U;0@^gA"L7*=gϿMhy8u,0{zׯ$W(.j*ג.f\NUjuJ<.'X섌z*݌:v+*HuX4zlۼ5! ^q5b&󹘕]ixPf+YVQW髺\   X=hٷ$MI^RpǴOx$(:li74-# 8"q!rm']ģԠjKS Gx”ҥȬN]4)v핆3n<4%S04S./44=# WHzaF rOk1yz挑d),VUJV7;aWGWr奪ҫyr@%⏕b nJڌ6FF^FG]޸ПnϞaINqg2Q(c=xt;Ƽ{W2\kx_%UJVܠ52+ ?yک(O#qԮ"Jdgcm,>^]KA{'\+_=y= |y#H]Jn!ZC` . = ҆]^5!&"#sJ@mAT ?=T*__ ҆@ <A4y hA!CA &AM <A4y hART*Af^Eox)>c'eJ5-:[84.6\}ӯɆʍxz̑8|mM;1htC'N>7"p0;sm}GE˚JrRqSI5@Ww )WNug#H/r$s#6zݗߒ ?ˋk²=JKw-6RܬveR<%tT6r-~攱ځ?s[;o?%7m)B!ȌI^}JKofN:33!i!6[MfPNYO=)GcRǪ+2KA!5LJ/4_[2u]T7H)^Zv};F̒I M0$Ofg#Q)5z<]cVGA! R6y" iln]kJh0טN+bs2U)kiHw⹛W<5%%!+Sh䲳&/=;GVh#hC+edP5dAZk8b83!'F%v86cfxS RgNY<U A\--ϹL <R24eUSʴ_ǭ*5+Ͻ`z@|ac l~9NZ*QLS)b=.5BMȯO]#Ǚ;^M-T}nR(;U PdtΠ+OYlN^S748'P 0mrsRNd Hy7%56}NhB2gy2:^e>;=uhܒ2OZ^[~^3kN^هt=o5c1<9}.nk6._?˫iAT_YEZFs A!h A[AhA &AM <A4y hA!CA &A$pFu'}Yպϐ N`M', ]YYܹsōں։ZIRhtS^swWql{M)eRJEfpw Jf&xEF<˯;o<= 66v[WR=iZ ZI2PAfhpRZҝNA$0%\.ۣF>| Jupp5j͛7\{ۜ} /т.BSmph3ztV]ez[uV |R5[粤~"*z,&u?}!Ѻc~}l oZ]o̤{#AE񻺎y}ǯε4%*0vݗЎ[l+#67؝ׯ_+**<ͽ:#2;H=x𠺺Ɔx "'f%d~hͧ{i^ZE "Okqx"3ko>U,5 j"2m:)>*R~SY i4NHs5orQ[nҡV`%9d$$$XZZOb>إ,7_gէOc~xc55ZY8q|g 9b@ ("#ϓZ3jC[ ,YOyyO)NR47CUUq3;'Ϳw]vĎj#%W8Y]V:U`נҞ鳴}fJ,vVyGJ)z^ů ZT@:Yƻz*JѻrBॹx h>=y13e3F?kӑ)l.;5"u1[=Y^=,`q٬;v;WVVsS"=Fӗ,tƋB] oAQ5vӜ?ڢ U;:y46yuRddRAAXwN-,,l߾Ȋ RRWe" |H{(z@5W sT.t^Ѯңn_VrG]m]ۻ,?w.?kŋw7O<`.h |Nr6cc=?]3GWx]}Q81?fm.]wؼm֫.i`hhmGgNAL?3vtxȊ#3KSJҎ+;2z]u"f߂Lߩ H[: fV o־\n``ywN>]JJĽ*UXX"mM^tCku湱olƱAUizw{bQWW𨨨ǫvj+q*ct`BA&%~"*4ymB#r]Lϟ A! ')Fe[4jB <A4y hA!CA Z)m<A׆(,,~z׮]OwqܹNjs\v^LJ6EY3~Y>U hZ)p?žT~tuuo޼)Γ ]'vA]:kqXUZ=GUDDȊQmH[NZJIjA Ͱ`up>"?"pC. :~*V=DA4dՂ.lG1::^K5ֱc\ ܏H8I\E@s\{m1s$95?{})6e֜k3F-;ꋩSN31p$%Ya,\H TZǏ_|~~~ .eM{l'MY88U9Tej3/1<43=|yFcSNuX㘞]k023=v3=6ff{qY"NuDZā4 `WNu^UdOs4ĠR4s6+QP]`@F3&ZS`NW13M|!xm+ ܏?yn_ܡb_ruTfvNNV*m&!#p? -"A lz>1)PqLiJ_̌;AVy]tttwMdEe7i德 \s3s i6/#?m/*n;& bfFN9AfDJjAAA999l6f3F@JF}'cԒf ﬣmlޠ.sj^l^]K=Kg3 ӥpni\H ol[)A S%A.N1@ dgyCA C>cǎE ??AM hA!CZxǏ?>,,fG&$*w߾o٩0ƶ5"YPQÿ}Gxʏ/F'VH*ihwfPmQ믿JkH{Qơ^޹`9dt/v7A& %O}ݭVqP̈ >{Cb n7P{:c& J7yby1{Oj'ح_}{*_e)1OsߵfyyRZB)v:: #C|/VhomP/3J) ($<*;DFQn`/s'͑1g"wdk.Y^C⠎"!au'cҞGF~:ATF}m춈${B7nӆ8͎TRqȬ6xE gNvP),|W'qp!2Y6/H&3p3S^^~'zMom\/e6]owh?8qbŗ;bn^{kf>Fc<,>;{-%[x:hlݼr$&!e>f)rGa'AI Ditд2E-dQeUg?x(eb򍕇֏`h~fA555Eu$p EkkҹL^Ǣ>('3q~[iUC3UC(J}y1\'`k{i; 27ﴭ: ҞU$ }f~M+湘y;2eLd~NPM`h~f$(Xn{2jN~J(~QdI{ȢIn(d+ޅvs윿~/*1UXBo)igu-ĬJ6ˮMO|tNu2C,> p7OJE5%:`O}ƃ ?bccQQQǏ'Q^7 zcYabr.qA~N^e%VTYivjcsAvC7 [#HRy2iiSbodS_G۴-_<0~ N7x)3 H˚<#ERY7]#A^3=nis#3# ;lO$=g«2/tԴ7wOv"vhAy)68z\=Ow+.Rb`:YgasY{?I# JIO_oc_nX_[#k)Vl3^Z!!!!"S(wBgϒEƱ [""_9 ]i sl5j^kS5AIUey=lQMA\VKKeNew3}B̢?Ti˴Ԍƹ>fϪ IDAT SԦF"bZ'3qv÷]%'vT<W(*ۯq"t"-bנҞ鳴}f"MM^񿞼WчWOT6:蘭,/מdlV|w;WVVsS"=Fӗ,tƋB] oA‡yuA^1,Qz}GK}qn͎oS8j:.euYs.^}վ]xSwh:\l3az~gؙ/37b904 ZA$%8?E{R&  <仂M HSp? QK m*[AhA &AM <A4y hBR[g 5VL,Pe4&v]~Хh*xJERcOT Ut˲-KJ7@JA./;+3'wheߎqۂx쭯r#I|Yߛ]'ĵ%RE;J)u#u_}?){f`Cgt?ﻉ,S=*z:;1eyi*g"|zЌ tt'0\0=@ T*UKKfִ* +"p0;sm}GE<#ՎK͈)kZKFBV'u77Ӵ,;G ~#ZhoY~eT~:Z)r$s#6zݗ 2.hoډA:a&Ϊ?)~wwx &O` 3WS»{C. (>U^UUŷw/M~܆AC.AƁGw{fz1wwqٮLG>=\&$-Su"aT!#3O uf3-_syhɢן F!4K8w$>k^wq7 INK 9j~V^^wYTZBmV&Ϊ) ྃ>Oϯ?>/Th[OxB-LOdkD2el cIBz(tQu1f1p]8l ^dzzي|?M|BSnu.Mǒ"%^G LZtYmIk+beηh[?LoP-!.r{37(Mg͠4m~JmSY;w]pK =2YCQPw&cXԍhOJјԱ LRPsH=C,6OÃte(MˠZ|4}oLVLRUN3 dwU y=}yW;XJV۰pkvd5ǭ/qp= vyaחM)3"KieA33shPFx)xu"]:CUp'"`K nt"'Uj ٩$p#$=N*ꊬ}~to oB~EE~bҭQ]$/&/=$TZ2td(꾧muBW{_xU &Wq?'EW;i@G1YNU~ FlPl,wˎ? n&OKod1zץƾ'Cw4A*í :[ s:޵-WsJZee]i6QM^=\?Ċqإe#W%h2=F,VyB\;38SJPS#.Zk?{πqkL?hҵSgpQtL]AjKܻNL}P=NPv E]cT;G+e4T9U',0gwҒs K\r*F*$\\U>^ZeYǒzȑ,b&cO)̄)\kPZ"`K,<\v>].+3:Ygֹ,T ,ve%H1.JZ/șwӿD\.7fҽ-?]%BvA[Ĉc1kd&]{O8s? jԾ(~W16ѹ1$nPĪC dϽ>j6 |^o0?7ˡ_s`|9|aʖ{zO@fZyFcSK ?<ޗЪW* rT͖U#*@F3:Ybd3'Gg Oezv3֦hZZZ:VقIm`rU%9 je&z7O9S@#i׼GGyػ:NX asʿd M:wG52rSr:q "h"+}i'J阳Y J H9iaw䯔­U4;T7MS+iPJVC|ӿon p_ %}4ϳ(H5]Lun;& Ovrd~bL/lhxA#?m/iZa)eT5&6㦻N,SGGm8t)Y0i?e.W'4j?#(:ݧ[/s}DZT-{ _uC_zfѰrIs`^P}~YוfA{|!NV/ۣb?uI哃RLc7-dES}թM+w(QcNe_,(,A=o+ق=S5,,qD]hOi~|btAi6JgH-ܗw[zFD&qu*xhޭV* EkBZzCm ` H%(AhA &AM <A4y hA!CA &AM^AZIyg---f}hYQ!!!ԱE]lx 9٤#yU#&!.-^h^T_bк!ȏw-I6m6C}Dbo?؆AY\+:_쭃{hv AvC7  ?nd4{jvEM>6joo]&JʈE0gxT*` QP&tߟK`&Ɯw|ӋrmKw_IHM{snn WƓ1IiO٣j#?=W@P239(+w4A{MɈ{{w)'dך~]Y&e%YHȬlhT"w999"w¹%G"`+ٳ<:򧴮uCy~7]KCgߘI[oc_nl۪Ju6:%w}<:թ?]k023=&ղˍcCk`3tO*$T*%n,J 2j#J ]llثuρȊJz@*{iV?j^ktUey=_d;s@fz嫒E=TJ^lPG5y͆c8"]s좏3Y sx~g5vŕSMpiYS,tO۰qPa6uuHj0]Vkߓ`,$$;}Gn !/9`[A ?+w5[;fAꃞTA &AM <A4y hA!CA &A付<݅J#?""C`M쨹1{+2yē21O\0ߝoIEC84C o.ч lUDW$={>iȤ녲.*td"dU R!xb\v[o? _^aiSqb[ Rjgcngs6Q3OlbcFצ[ ]wq86OhH ^Gg}muu/beqk۠A JM޷R omSf͹V_q 6!&YLJF}w𙷫GPѧ/BЎ&F7R29M >kǕGҒs23x4OMNKsݳDlGzxDŽ?ýtd凝 2$?-8p.$CtstƤ<..tDȮX{™ _VTЄh$GZG9 -,J?]gQ zsebfSV[(_xƬ頽 q*n*qva=f {Mأ^be +@eL>h4AɊPe[XP^ MPkz7s/_]SK0R2myIgU%9=6RnK/&N \'َ01څSBx&K7KubIE//-2W8h4AMNsKw`0c{iJ#JZьl棐Wo^2IdKJeH&*SNG:{7 Ox-L"IY^A>h4Aɳj@i)eą&SuYD[wK8) e?w>̺jީ;֜MZ"w ;PN#?#S4'V/?މK4{܁&*Όtx4y5MPr؜MY]\n2u 8IffŇq)jbqq*Cǻ^LZ77ͯD\NdN:)`b3wb>0\6S4j \1vL=5"uh2HKGMkӰ ;Uvz6~W,gnlmRYG$o"u8Pg2V0Wy0u?+:2ꚟGwcNf=7\:xCY[8xչfjf>_y#Wsw56yD\|G]y۬W]C~F#v42^0h_iC7MAoS8j:.ebb 󽼪ytz#\[vZ`FKァ o%<1'Qmd[1r_drΌ}=էۯިFr B3p.l- <AZG>Foh ӄ&>J9j7mGikxU8sGZRNtqnAklЏ#yY5q$)_Rˆ+&|%{U4ʻd}wϬ:IO'SJ ܝ{B%Fd%EkIq~:ť>篱A?}dk$HR= CI߫"祱%E`fAғb“l2!pw*.哕 Fv-)Ot߇56ʏ#qY N?~% zJW yݑ6ղ%gIj2Lfi&_ruTfvNNV*ǭafffVVVvvvNN񢏝3Y #NAY@ѐHX}߫"I8_dR\?OʚCfDY )EkIq~:ť>篱Q~ "HF \ob$)n^]Rm $s#d ܝ"/-y4yuZRNqklG.5@כ=JPKӽKJ0-D'3R tw*.}JfEkIq~:ť>篱~ "HF \o(A17/M.)̶SJݩ,Ғ*AAO* pwڼPVѭ m4y!` lA` &O4-'omq-%}eق&lF؅7{ Цu2:nhZ~nDZ?%Mޫ?]yUj4wђQBkwYR&N#^?΂A>h0 [eWkY'"OXw/+}T;5s W2: P6 bܲ{$3Abs)bͲM)Iohaj+$kZɫンQ#_$%9z$c_ MIs\寓_ODɼ61R J)%KQ$ x$P8Đ bEZH2 OMYI.aTw$k$'F95*Lm8/_fG騎M4U0)68z\=Ow+.Rr̥8J x$P>I72D 6` eE0˂M)٢o+z%ٌ%QF~U6U|U5[VQ&Hi <5EfIqnKЭQ\ą9p*׮L0wT7&j5l`o?URIf7:eˌd-|(2#^d Myc3N )@&sw;0ޱ4Ecg3z pO^D95q.F πsbያE}yU$dBr[h5q4j/ɦ }#,._OĦx`8 Q#K|s]YcШ,weg5ߪwyQmH[NZJIjvC7 ?nd4{jvEM>+7`@0t#˞7bqyceD_- $۴f Q__`A;OlbcFצ[ ]w14q~>UVZcع[k-ra:8ɾiA[N,FmD##X0yD{lqz?+ (;f wި~bS2ޝ@}1u E&ߟe d?e\Q&嶱" ݸNjʊGgFfegoP9_ ?#]U]31漿^ ^1wӒ=j,eeTki&AMYT%5x@V:B{fjئ"M'3E֒4u |o=($W/vw&D,rjF\@}364TEʳ<;⁸Bע'6ئڹ{Qsgi+<$uP8beYlWV-\Kv{R0ECpBQ0UDoW9Ag-=Q"HBMŲsvrۄj.U9UK}Lq Hes٩S`}~`bF;~ExQbWW 2HT=6+*˺',.~} k k՜TW߉SdsO=Bi동y%.;}x4j?/r2n{2jN~JǨ+P0.cd2F-k:W 2篚;<-/pu\3{Giv]λ̗hzY*;c=}S+g~A/?Xfŋw7O<`^FKH+്aWv݅N;5\zs/r2|Nr6cc}WI_}B~cԧ<1',ol2ȼm7 [\(#m[1~[t *A$M^Т;M}~HW8N[yYT8i*yA:BM l  h $z"xWkSi+PT| HM hA!CA &AM <A4y hA@HkGSSbb_`;$}C~0 <o...C% ugyC-SQMnHHѳ'%,T;c@5 (T<ǭ_5 ;ޡ8' 249F}]:kaqzr<ҽ3zCoMg-PSÒ(DH)UP^PݠqrDܳo`̝kl++sx6<(.go=&A5e 34;xqHKS(RE".ǕQdbV)%%ԩI*ҧAYQDjR;wEy7\{"A@$ (D,EAhlE `ZGr$hbnfwgCbi+}cwfw9ށF$1x6F>3y8^D%^9^`+-?WZrrN ܖ+Ǫ^^pQ  F1Ph;r%_LHvR^Aq<2,\S6uMQq٣IN݆_\r$ccJPP)G(4=Hի(;ɖ;gHZ8Л><3cΫ0 V,^ܻW"9J^b\>tػw˯O+?~ ܬץ,~mgř=;&u-;HP A? z]P@p_Vܷ}U#FLmTkݿ;߷yuUsYf 1>* ֯ADe$"^\ogit:Աd.܌6"[ZO[9{h-z$YSGM?U{.u/JI&fonY"yMD[7[yI 2^)jS=keIٯ~֢2c7g'g2t*ࡴJf։3xg^S0/po&ۈ/P9a(h{;,l{"U92Mod6:1їZѠ1,Y|ކL6Ăo}Xmф+^,ɼ g솲sutMO_/< ;Ew-XC~wW=_bKMozut뗵ԨGA8$"opqB3}W >Sc>9rkG[R'|8,/5xah=' qnłN'*wm"*#*# caQ-Ƙu77n |I1ߏݺǾu_r}PDEN'rI' b3u[KDǧj s ==k~ꎢ܉>TR^w%f3آJ -X0]:DeT# rv-YIfٚGW/j;44j-3E_FwVNfZ%1&wqᦃpV<2 e*e01>Vqݑ_}/buu^_:J6dXwN_3ˆa0&^'<3cSKhCǿk.4cGQWU:r|njB(0 aAB9ZsW7xM-AOPe%G'&._}7dӨ}Ƽŝo#yx 0I>w*c&s]bzZaoVɬua ݾk/60>+qm>]1HoƮK/-*㼉7ȶ·)Fo+n[T&F#J"f(.=2,')dF幫,8'2}tɞ?zMc!Ddg{͔Q;UXRˎ*v)#+fߴPoQwlŃN<7gſ+ e~O=ۊ~}c3+m޷=SGθ]i^y&(eo؁vs5NxnduUZmӜaG+65]{~S*1{Ѫz((sA-vZWXȷo?{[WlQlazs8Sch8Zc̨5[HC=Qm^U.^yyG>3{(ig0zk>IfbZ7{u;ǹg|Yf*X7pM/ԓ>?J(}^6?mtɤ ^@HCBlDލYxA5{>XS: |P#}KJ? n{3GWlѕ;@W_}2rd8-ms=)J1JOH.;Lt¸qUoW/G\ҥB2]b<23ӋV,ό78<: d17 q泵 wʻڭazia~Ⱥm{@Q׆y~+y(:YZj//O ӛm pN/1T+k5>!DjB)Uی%)inl<o#؆+ F m\.ݼyM[ob 3G%ȂANxYf5{&NjjUVlp,FUUEQEi?%}(N$I:?FB?ƾ ȐFٻysMN HAVPE 'Geg[(@:vⴣW-RVA:~Fr[B`HLL,;РTTO9Ţ&'bc&dMMMX,:1dYtBTh!y(t`0~\ 8N$Yz}xxhĤ9e'y'}:.::K.ٟ 0BlBW͛7c0E~~>p-B"#<FBa!FBa!FBa!FBa!FB!|B <Bj]IENDB`lwindolf-liferea-508e7a9/doc/html/help_vfolder_1.6.0.png000066400000000000000000000355501451527772200227370ustar00rootroot00000000000000PNG  IHDRVbsRGB pHYs!3tIME841TtEXtCommentCreated with GIMPW IDATxwXSf&lD@nQ먫V[՟ZWպֶjUZ.Z[+PTddCFdC$"" %G_'$ ,$M5472w.|m=EBRs/Nf6&hxY+K BFtt9d۸ Wf4yf.BE޾=HSԅ>?hOv沞>kk5}$jü~{I tęe=gvMM]{"Igr^uDX}>?LV{¼Ǔ XB hg?Jr@dh#\fyߧc&e.rfRE/~ڼ9q{hDQB$g!>G=~ZIl"ыGHBEɄǜ3n\|T4g%2?P[K D WEDgIY3'wХcG3ޥ5CtԖ+ʗViՠOҐ|Ҷ#`4sD9T<| W2>YuRRIfFV^%nKUV0 X1 Jnlk/Z"?EdlCT<ŷ6ԖnxPѕ'AVmVx#O)tϲ)9oK,dr1OK+iBe~ߝto_D$25 Pn~/)*v 9%ewV^W}=zXZ^ǎR'\;Vn<111li7V>KD"@حs)|R>Kۊ cjnܣ}.ztu"Q@{SKRGԣ!PԳKlx5'K%iNVqDT߸餻nmL-E,5rǐ';4g|8tIѺcwp'Ԛ+dQJ̃oF koee&j-^ju<P'Ej3R):xB@x@x@xx@xx}e¯UHH:^]@@R|MGU'jj-xxatR< ſ2XA;T{T;ѥecGzMyⓚLP6==Ujͤ{m>|>Zx iQ5%Kx)F2)s NmRG,L\:}0?jK#Oը䥻luNBܑ=qqpv:x\9x9pr`uw^皶ݻϘPm;/*Y#_wmɵyÃWiSm]_uig_c!ԶsڢS}d_5]| BKo^vI}Z[ͺ_]ޣp%)Hp:6Ԣ>X>}ᨸgw>gIao9dEn=Dݚ"vأڣwz?SR(%ۀF|˿o4v"&فkUj B{t3d"1L>xRl̃Uslpcc_0iȏ嶮Z3{g2eZ=i>=g{DͲDriQE\f<#+Ϲ٭n/-!+Ȋ5%gft߮sX?Z!"TϮGqЯov͛4lܬ}&ϟ )ȹYᩆyhvڝ8+5$i߭b)ON<y/ov–YLD\v bqBTzNs-E7f=Ո;nl2`^lCTC:ZWQJJ)XNu6ᱬdMDM5ۭJͩyBxڗ+V^Gyi^ic#HI!K\`'s>';XZaJyI,ME{]O="ѺWacrԜ99u67آ]Qna)o?(g7wY|_BYQŻu̹}JI<9e6xcDz4߆=1ߎ/SV4hݫoc56옭F6^􋳒R~5g؂PNv&kdhGv&z_IZUKpۧ|:xkr2?N:k޷62\N}rA˪|ʦ;9r%@NvFJ7I`cxOUʢu o.ϊc@8?t_ﻥgy'w_w(4#_e}hr"F3wRD^Cc1*V߱6JxSu?wNNn}8MmY{_y~znuf9hUmssm/rOuO7vg[-~Vy/,:Z*}|Ock,}/Wzml~um|d_ .G4d;)X{kg-Phï~Zbo+*vkM xmP]oLJڐJ/@w?wu^>4 P;b,ZHHHHHH՛b?ZMǾqou51ج>u=uu| *%D)ZXsF)&4G0;ΉD*G;jމ#c BSQ 5dWy^N^ [1@D:$hX,w9ceBJįtF嚬;bkZlwGWg'٧Gv{...]X""Ib7Qw~[ݣUC4ֽyv'|]|;pVѳaΚUUzڗU9 H3dͽ[DF=޷݋G>D=3'^-9{U6D*jO fkGDGMkrJiE=pzл'J^jx-M݈f * iQv8ђ >ur0=cX" h]IB1UOAGiaT Vwh-G9׍|1wʹ }'":p6d){"d ,B "')ơL^b=ۜsnḿ+{Cb⟆X"{aFnb\i_V:$V~:K.3Xes#'LIN =%䬺=фv]PV ◷ø HU* .rv-E*ɛFX8VXe)"rs/ǐ}] .nK8Ihw^'~O/Uh-^wu 0sX|}TF0"[v̧{:7߃ #Wx[Uh/*Y=Ʉr~h\^O2gUCR5"vQN{ꘓPY/C{— B["Xᾔ<"*.,5!ZPM% ܊n,<_ag VWK1}zj+nor^5#/y/Je9J#z7/Q3%Fr&4'iQf%Ѱ&#UOD4eY;1iWvTSK/CD&Ir1ټO.|PqڍK~{Ow4*lͫ7>'rbV"Zl9^ãGA^ӽZjŗ_nX7_Y2֦h(@e=J4-dx$`-^Dt(m+3ٌ6GdbHv8_DSQn=c-8) i%3RAwiaT4WL7KW<z"ڵafm>myYUwQgy:vfNDO2+uS^ǜ*0yHa֎_<.$Hg;y]xV+I A/%dM,lMu16HlLDkG)7OZ*U頻tFE|AS!|'i51`)xs)D۵Z(`+hJJMcx 3ӟx'R>d[1 YtY}Դ1') 8vYvzL =[l.=PGsЦw}}vNٽmv i.῭Ǝ'8Xt[~tK&.?Ш^RAwiaT4WqVۤYU{BQ"ݭ ~Lg Zui%D;tXyd_{VFXΖ㮝5`x77gw_1헾icNBTO@ 2θz15X,אTލS̄k>OD5]P /5xxYx5n=S>n 5jj3xx@x@JٽE}9HJMME/X@x@xe_}effdz^h)FgdXrǟJ:"ݫQN l[= ૶D_ b< Re`ГZ ޹sΝ;R^7w]B]MWE%/jUV3/9mc*}T& R*|W?1djj:|ٳgϞ={&&&~JRT[55S O2_wuz6L5gjӄAcd}''k:i'- Zѹan_E,{ԩ޽{N Xлw'N,[PbkwigJyI79jũR_Qo3оn9['.q7TQ]\tJ=Ų'+%hO8]NBܑ=qqpv:x\3:ؿugG杗d?dN)z5put :I(wtQ)Jٚ3aU=֎'_\br'b}y֍֧\aaa>>> {dq\(TO&M+*1y;G_p.C>'N;" ]y~c#NULU7yv }\-uO.KZs00ɒMjvCVtXIԭi-bG=JZ9"J 6`0: o| r>XpNk=;1GA,Y*XU9Lz@çC(95g@)Tήw|¬쬢[,"66v߾X ߣɀ?13&|tވѢf}7nh3#bwM( )k80l0;;#W%>novP[T\e*w>ccSU~Rì'>i[hHbY*i~'i_^ /V)Ws%oRi҅{op"mXSOX,D*\%^.b?Oy_(tY&BgvKObچIgtQ)JmlM0P&srWX%q 3a۷n.YCUV".vښD,]oӲTMu.$YYYؗf jbiiYJPH;MH V׬aF_L]NugnLk(Nn9{a|Iim-]ANEK/Ν2UϾ덬J-*taT>~] ٦oN>N&b*=^c4Lӡf' Ԕ$D"IHHY eY8R?TĖ^eIO-<oPuۈ(rҀuJݧ}픴{ LIRRRrrrJJT*MII.Ş`q`_~o˅K0I)RirDZ_5VIWrpyKW[GoК6=LçC; M( ś-bA-&Ld槟0Qi#ݒ$9"gFavƁ>g>zE266ȰkRǢBM:Dinn^(ݡ j}4cg\o"Ɲ7 Dd-?sK-A| ä>azb#[s& Ԉeܼ߮菼@. B,_yۖM[7o ܴa˦ [/1G]ވo༪#1D4!?x ?3aOt޽{DԷSSCA}[:ݻwիW(ݡw_\=lij yX__~dYI؟*yB>LJu'Qu5,,,,W*u˟ZLڔMcwsJdR{{KGG9zvfR 딁e;TU?kw ?ߣGGQܹoP[o7fxAm] w6k֬1b+'y3o=#zկh~{`۔#ͽ =--f~-p1?TnVZϵ]}Gwv׼s_tsi7prkO79fFzn Z/9bɢjjJ@tQ)l͙0PRkDMIϞpŋ7o{S}5D4lښ""" `ffV^&a`V<o֛D'|FweUs1իdDdll|7>ojT 8,yו@ СCTbo`3{׹o|)U99:mظ8KKKݷU)~ *HHP) t1R_`oX,B @HHHHHTא^Q@@@ML2jj-xx@x^J;;;{ |l &쭦*x#HMMXc0{j))MbGX_\[zj5ŋwpnfu u>xK(;rWWʻ~/JRirB~hwoUҫxUjB m>geEGɫQKwYN='!lȞ88wΎ [vK=]N)z5putõ[Rr7-u'ݻϘwX,>yN&^:X'_wmɵyÃWiS5n-:985lmɎDQ/]jaU~u<tJqĩR`U ohC%W5E-0cӭDZ[ZĎ{T=W?ͻnt\%ypiNJ+,%wӡNM싌M|t@n'T`BD7``ؘ+LfF=gIsW4DgQ}+)ڪR./HV/CBBJ~]_F! #aUػ;lO'jJܝsO8w河gD,]oTM%OaT>~] ٦oN>N&VY牊YreTTŋ;vrWP6@TWL>ieZjܼܕ+V~s0D]r[6UaV!"MB'"#u.PL~$-?oVDkY5i+3E΍5q=c_)|c$1z;%-ាHIRRRrrrJJT*MII-3.sE$Hq>IޫO^9ѭ#7xMhuyb|Ν;usN>*[$d5 VąH$񒄄xIff9eWmV)\(Z7[qާDt"^Lg8<ȭq-'w5$i G>v4YO.%JȽ?svk3|ȧ96Q`Ygt<޷3)2i4> "è坥nBSðci'=Q̓o @wz| 47ya4x<_hV G_=_`zf=M޹jSĸs-ʽ4މ ,/UDpi!vZ\Ϻz|Κ "WS\|Ћ)y?oǫXU\ C*DG9zvfR 딁e2z+A{^Y6f_%rV%=kO:_ S-]yۖM[?7niÖb?mZ**zOC' {>orerk5dӪ:cIDsЫ_onbV~߲[ok7hա5q>a\q۵;w_}h~Uwwur5Ệ),?}빹7hP?7k[>~NRlM9ɭްYӂ=kO:_ *zr`YkOk<{料S}֏X3u>F5A[~O|H :kD @Uѽ:ox/i@xx@x@j>~G`6c0{_, R< R< R<R< R< R<  R< R< R<R< R< R< R<R< R< R<  R< R< @9}2T*EG2b 5R<R< R< R<  R< R< R<R< R<t@bggN tvHMME'sj)jŲnL ɺr)~*_x<-ڶQܻ71 )>jW_íܢo+#k e^~4=Ř77'CWWU% };*%8#l+ʕN5tZIbs6&֞ń?ҩcK\ƍCUJxy[PE8HŒ%˨Y)vZ!ٺhRf \]40iVJ>e>dPD}]xR*d~ulb%w P:]e2\y9g h{w{NG'D_\9׽]k]_eV8"c,)Ԕ'9m_@e.]O0T׮SUlɳ$nQ;/R<.}8:gk!V8` ^ qqd,8͢UElqkkfy9yFv- ^4'!lȞ88wEDW}*jɥFYRﯥxgz|^x8c'/DBScPZLf5+~tvh:6|v31:~iI IR\<5]Yߴuo$ðNV2|2{_Nzs@}TVqjVrEGhpt#I2!Ls{YsA\CM Dϓv^צ[xy3XP)Wst$RiJЅC (5Kn 10B $0B>#P@n>8>rC'WuogIV:Se8iiݩc<9װKJ휒b1jB>-P,jbĪHњ) rV%UQsjB+?Q~izzbgH߉H Vk~ߗy#UNΝٽRvvWLA% cR9"cx<"#H͒T,VsqG>@22WD}?ܾ7XxE۶2'0`՜GlM~g DpbS8c'fzy*J{Z~Y'Zg\nHJJ8U5GWc$III)))R4% Sf#HjVji<1#?1C%Oˑg)ry*P$LNqV7X2o"ڇV>CkݗDR_808Rl[6**Rm g)ȫ dm^o>ټTY' J<96xcDzMTq]}#$qnZ&SJM8S95 < }!;7sV2y~+3O&bW5oo8R<b뛛ͲĒ@nu[$R:<@~tD2*RmAXa,[*ZUÙZ>rͷR,'yv܏:iJ߷62\N}rAmʦ;9r%@NvFoۧ|:xkr2?N:{C[9s195:tnb߾}ľv^2NTWEMwb)gw7i;Рȕm[O5 M<S< /76O޸pLGNݶŬнv_G2ƨ~P:ӆi_oz{ͼX;T|!ks#'kR m~|;1v]IR -nvl&>QPHޓ'}l9<Co|X/9ޏM[߮~OԼO]$bُvNIbwo//sc6o$sX8Иo+NHJ3jҴX~0=pg>q#HTr<Ҿoש9}3eJJHHdDؑM{FJ1C&x| +=ML.U|>LeaYVu,?NO/|ǘ<޺Dx(JTjdI;Y)B Schlagzeilen und Sammelordner

Was sind Sammelordner?

Sammelordner sind Ordner die mit Schlagzeilen befüllt werden können. Sie sind selbst keine Abonnements, werden also nie aktualisiert und würden nie eigene Schlagzeilen erhalten. Sie können nur explizit Schlagzeilen vom Benutzer zugewiesen bekommen.

Da sie die Schlagzeilen die in sie hineinkopiert werden niemals aus dem Archiv entfernen können, wie das bei normalen Abonnements immer geschieht, können sie zum permanenten Archivieren von Schlagzeilen benutzt werden, so dass selbst nach dem Löschen eines Abonnements die zuvor im Sammelordner gesicherten Schlagzeilen erhalten bleiben.

Wie erzeugt man einen Sammelordner?

Um einen neuen Sammelordner zu erzeugen muß "Neuer Sammelordner" aus dem Kontextmenü der Feedliste oder aus dem "Abonnements"-Menü ausgewählt werden. Dann muß dem Sammelordner noch ein Name gegegeben werden und er wird in der Feedliste erscheinen.

Schlagzeilen hinzufügen

Um eine Schlagzeile in einen Sammelordner zu kopieren muß im Kontextmenü der Liste der Schlagzeilen "In Sammelordner kopieren" ausgewählt werden.

Schlagzeilen entfernen

Um eine Schlagzeile wieder aus einem Sammelordner zu entfernen kann "Löschen" aus dem Kontextmenü der Liste der Schlagzeilen oder dem "Schlagzeilen"-Menü ausgewählt werden.

lwindolf-liferea-508e7a9/doc/html/newsbin_en.html000066400000000000000000000037311451527772200220470ustar00rootroot00000000000000 Collecting Items in News Bins

What Are News Bins?

"News Bins" are containers that permanently store items you copy into them. News bins themselves are not subscriptions, get never updated and produce no items of their own. You only can copy items into them and remove items from them.

As they store the items permanently and do never drop them, even when you remove the original feed, news bins are optimal for categorizing and saving items. Just given the news bin a speaking name and use as a category container!

How to Create a News Bin

To create a new empty news bin select "New News Bin" from the feed list context menu or the "Subscriptions" menu. Ensure to give it a good name, click "Ok" and the news bin should be created in the feed list.

How to Add Items

To copy an item into a news bin select an item and select "Copy to News Bin" from the item context menu.

How to Remove Items

Select the news bin and select the item you want to remove. Then select "Delete" either from the "Item" menu or from the item list context menu.

lwindolf-liferea-508e7a9/doc/html/newsbin_it.html000066400000000000000000000043731451527772200220640ustar00rootroot00000000000000 Collezionare gli Oggetti negli Archivi delle Notizie

Cosa sono gli Archivi delle Notizie?

Gli "Archivi delle Notizie" sono contenitori che conservano permanentemente gli oggetti che copi al loro interno. Di per se gli Archivi delle Notizie non sono abbonamenti, non vengono mai aggiornati e da soli non producono oggetti. Puoi solo copiarvi oggetti e rimuoverne.

Siccome conservano gli oggetti permanentemente e non li cancellano mai, anche quando rimuovi il notiziario originale, gli archivi delle notizie sono ottimali per categorizzare e salvare gli oggetti. Ti basta dare agli archivi delle notizie un nome a piacere per usarli come contenitori categorizzati!

Come Creare un Archivio delle Notizie

Per creare un nuovo archivio delle notizie vuoto seleziona "Nuovo Archivio delle Notizie" dal menu contestuale o dal menu "Abbonamenti". Assicurati di dargli un buon nome, clicca "Ok" e l'archivio delle notizie dovrebbe apparire nell'elenco dei notiziari.

Come Aggiungere Oggetti

Per copiare un oggetto in un archivio delle notizie selezionalo e scegli "Copia in Archivio delle Notizie" dal suo menu contestuale.

Come Rimuovere Oggetti

Seleziona l'archivio delle notizie e l'oggetto da rimuovere. Poi seleziona "Rimuovi" dal menu "Articolo" o "Rimuovi Articolo" dal suo menu contestuale.

lwindolf-liferea-508e7a9/doc/html/newsbin_ru.html000066400000000000000000000063241451527772200220740ustar00rootroot00000000000000 Сбор новостей в подборки

Что такое подборки новостей?

«Подборки новостей» являются контейнерами для постоянного хранения скопированных в них новостей. При этом подборки новостей не являются подписками, никогда не обновляются и не получают своих собственных новостей. Можно лишь копировать туда новости и удалять их оттуда.

Поскольку новости, хранящиеся в подборках, ни в каком случае не подлежат удалению, даже после удаления канала, из которого были получены, подборки новостей удобны как для группирования, так и просто для хранения новостей. Достаточно назвать подборку говорящим именем и использовать в качестве средства для группирования!

Создание подборки новостей

Создание новой пустой подборки новостей выполняется с помощью пункта «Новая подборка новостей» из контекстного меню списка каналов или меню «Подписки». Подберите подходящее имя, нажмите «Ок» и подборка новостей будет создана в списке каналов.

Добавление новостей

Для копирования новости в подборку необходимо выделить новость и выбрать пункт «Копировать в подборку новостей» в контекстном меню.

Удаление новостей

Выберите подборку новостей и новость для удаления. Затем выберите пункт «Удалить» либо в меню «Новость», либо в контекстном меню.

lwindolf-liferea-508e7a9/doc/html/onlineservices_de.html000066400000000000000000000107261451527772200234220ustar00rootroot00000000000000 Abonnements mit Online-Diensten

Was sind TinyTinyRSS und TheOldReader?

TheOldReader (http://theoldreader.com/) und TinyTinyRSS (http://tt-rss.org/) sind Online-News-Aggregatoren. Um diese Dienste zu benutzen ist jeweils ein Benutzerkonto notwendig. Mit einem solchen können die im Konto verwalteten Feeds

  • mit Liferea
  • mit einem PC im Browser
  • mit einer Smartphone App
also praktisch von überall aus gelesen werden vorausgesetzt der Benutzer hat einen Internetzugang.

Warum einen Online-Aggregator mit Liferea nutzen?

Liferea als "Desktop Aggregator" ist nicht auf jedem PC und von praktisch überall verfügbar. Liferea als Programm muß auf jedem PC, auf dem es genutzt werden soll, installiert und konfiguriert werden. Es gibt aktuell zudem keine direkte Synchronisation zwischen solchen verteilten Installationen.

Mit einem Online-Aggregator kann das Problem umgangen werden. Mit Hilfe eines Online-Kontos können mehrere Liferea-Installation dieselbe Liste von Abonnements haben. Durch den ständigen Abgleich mit dem Online-Konto haben alle Installation dieselbe Liste von Abonnements und dieselben Schlagzeilenlesezustände. Außerdem kann der Nutzer weiterhin den Online-Aggregator direkt nutzen, sollte mal kein PC mit Liferea in der Nähe sein.

Abonnieren

  1. Zuerst muß, wenn nicht bereits vorhanden, ein Online-Konto angelegt werden.
  2. Danach ist "Neu/Neue Quelle" aus dem Kontextmenü der Liste der Abonnements auszuwählen und im nachfolgenden Dialog "TheOldReader" oder "TinyTinyRSS".
  3. Um den Zugang zu konfigurieren müssen zuletzt Benutzername und Passwort angegeben werden.

Kurz nach dem Abonnieren sollte alle Abonnements des Online-Kontos in der Liste der Abonnements automatisch hinzugefügt werden.

Google Reader

Bis zum 01.07.2013 betrieb Google den Dienst "Google Reader" und Liferea hat das Einbinden der "Google Reader"-Abonnements unterstützt.

Existiert noch ein "Google Reader" Abonnement in Liferea so kann dieses in normale durch Liferea verwaltete Abonnements umgewandelt werden. Dazu dient die Option "Convert To Local Subscriptions" im Kontextmenü des Abonnements. Der Vorteil dieser Umwandlung ist, daß alle von Liferea geladenen Schlagzeilen erhalten bleiben.

TheOldReader

Die Benutzung von TheOldReader setzt ein existierendes Benutzerkonto bei diesem Online-Dienst voraus. Für dieses Konto muss zwingend ein Passwort gesetzt werden! Dies kann auf http://theoldreader.com unter "Einstellungen" gesetzt werden.

Wurde "TheOldReader" als Quelle ausgewählt müssen Benutzername und Paßwort des Nutzerkontos angegeben werden. Liferea lädt dann automatisch die Liste der Abonnements.

Hinweis: Werden TheOldReader Abonnements oder Schlagzeilen in Liferea gelöscht, so werden sie auch im Online-Dienst # TheOldReader entfernt!

Hinweis: TheOldReader Abonnements unterstützen aktuell leider keinen Abgleich des Markierens wichtiger Schlagzeilen. Wird eine solche Markierung in Liferea erstellt, bleibt sie auch nur dort sichtbar. Analog gilt dies für in TheOldReader stellte "Likes".

TinyTinyRSS

Liferea 1.10 unterstützt TinyTinyRSS ab Version 1.5.3.

TinyTinyRSS muss vom Benutzer selbst auf einem eigenen Server installiert werden. Das erfordert Kenntnisse in Serveradministration! Einmal installiert verhälft sich TinyTinyRSS aber wie andere Online-Dienste.

lwindolf-liferea-508e7a9/doc/html/onlineservices_en.html000066400000000000000000000102601451527772200234250ustar00rootroot00000000000000 Subscribing to Online Services

What is TheOldReader and TinyTinyRSS?

TheOldReader (http://theoldreader.com/) and TinyTinyRSS (http://tt-rss.org/) are online news aggregators. To use these services you need an online user account. With such an account you can read your subscriptions

  • from Liferea
  • using any web browser on any PC
  • or using a smartphone app
which means you can read your news simply from everywhere you are.

Why Using an Online News Aggregator with Liferea?

Liferea as a desktop aggregator cannot provide the global accessibility that a online news aggregator provides. While you can access an online aggregator from virtually everywhere, Liferea needs to be installed and configured on every PC you use. Also it ensures no direct synchronisation between the different installations.

Using an online aggregator you can workaround this situation. You can subscribe to your online account from all your Liferea installations and will have synchronous feed lists and item states everywhere. At the same time you can still use a web browser to log in to the online aggregator directly if you are at a public terminal for example.

How to Subscribe

  1. Create a online aggregator account if you not already have one.
  2. Click "New/New Source" and select "TheOldReader" or "TinyTinyRSS" from the dialog.
  3. Enter you account username and password.

Shortly after subscribing the feed list of your online account should appear and items should be retrieved.

Google Reader

Until 01.07.2013 Google did provide the "Google Reader" service which Liferea was able to import into the subscription list.

If you still have the "Google Reader" subscriptions in Liferea you can convert them into normal Liferea feeds. To achieve this select the "Convert To Local Subscriptions" option in the subscription context menu. The advantage of converting is that Liferea can keep all downloaded headline for further use and while fetching new headlines.

TheOldReader

Using "TheOldReader" requires an existing user account with this online service. For this user account having a password is mandatory! You can set a password on http://theoldreader.com under "Preferences".

If you chose "TheOldReader" as source you need to provide user name and password of your online account. After doing so Liferea will provide you with the subscription list fetched from "TheOldReader".

Note: If you delete "TheOldReader" subscriptions or headlines in Liferea then those will also be deleted in the online service "TheOldReader"!

Note: "TheOldReader" doesn't support synchronizing the flagging of important headlines. If you flag an item in Liferea, this flag will only be visible in Liferea. The same is true for "TheOldReader" if you "like" an headline this won't be visible in Liferea.

TinyTinyRSS

Liferea 1.10 and later supports TinyTinyRSS versions starting with version 1.5.3.

TinyTinyRSS must be installed on your own server, which requires server administration knowledge. Once installed, TinyTinyRSS behaves as any other online service.

lwindolf-liferea-508e7a9/doc/html/onlineservices_it.html000066400000000000000000000107231451527772200234430ustar00rootroot00000000000000 Abbonarsi ai Servizi Online

Cosa sono TheOldReader e TinyTinyRSS?

TheOldReader (https://theoldreader.com/) e TinyTinyRSS (https://tt-rss.org/) sono aggregatori di notiziari online. Per usare questi servizi hai bisogno di un account utente online. Con questo tipo di account puoi leggere i tuoi abbonamenti

  • da Liferea
  • usando qualsiasi browser web su qualsiasi PC
  • o usando un'app per smartphone
il che significa che puoi leggere i tuoi notiziari semplicemente da qualsiasi luogo in cui ti trovi.

Perchè Utilizzare un Aggregatore di Notiziari Online con Liferea?

Liferea, in quando aggregatore desktop, non può fornire l'accessibilità globale garantita da un aggregatore di news online. Mentre puoi usare un aggregatore online virtualmente da qualsiasi luogo, Liferea dev'essere installato e configurato su ogni PC ove lo desideri utilizzare. Inoltre si assicura che non ci siano sincronizzazioni dirette tra le varie installazioni.

Usando un aggregatore online puoi risolvere questa situazione. Puoi abbonarti al tuo account online da tutte le tue installazioni di Liferea e godere di elenchi di notiziari e stati degli oggetti sincronizzati ovunque. Al contempo puoi comunque usare un browser web per accedere all'aggregatore online direttamente se per esempio ti trovi a un terminale pubblico.

Come Abbonarsi

  1. Crea un account online nell'aggregatore se non ne hai ancora uno.
  2. Clicca "Abbonamenti/Nuova Fonte" e seleziona "TheOldReader" o "TinyTinyRSS" dalla finestra.
  3. Inserisci le credenziali del tuo account.

Poco dopo l'abbonamento l'elenco dei notiziari del tuo account online dovrebbe apparire e gli oggetti dovrebbero venire recuperati.

Google Reader

Fino al 07/01/2013 Google offriva il servizio "Google Reader" che Liferea era in grado di importare nell'elenco degli abbonamenti.

Se hai ancora abbonamenti "Google Reader" in Liferea puoi convertirli in normali notiziari di Liferea. Per farlo seleziona l'opzione "Converti In Abbonamenti Locali" nel menu contestuale dell'abbonamento. Il vantaggio della conversione è che Liferea può conservare tutti i titoli scaricati per ulteriore uso e nel mentre scaricarne di nuovi.

TheOldReader

Usare "TheOldReader" richiede un account utente esistente con questo servizio online. Per questo account utente avere una password è obbligatorio! Puoi impostare una password su https://theoldreader.com sotto "Preferenze".

Se scegli "TheOldReader" come fonte devi fornire nome utente e password del tuo account online. Dopo averlo fatto Liferea recupererà per te la lista degli abbonamenti da "TheOldReader".

Nota: Se cancelli gli abbonamenti o i titoli de "TheOldReader" in Liferea allora questi saranno anche cancellati nel servizio online "TheOldReader"!

Nota: "TheOldReader" non supporta la sincronizzazione delle marcature sui titoli importanti. Se marchi un oggetto in Liferea, questo marchio sarà visibile soltanto dentro Liferea. Lo stesso è vero per "TheOldReader" ove se metti "like" su un titolo ciò non sarà riflesso in Liferea.

TinyTinyRSS

Liferea 1.10 e successivi supporta le versioni di TinyTinyRSS a partire dalla 1.5.3.

TinyTinyRSS dev'essere installato sul tuo server personale, il ché richiede competenze da sysadmin. Una volta installato, TinyTinyRSS si comporta come qualsiasi altro servizio online.

lwindolf-liferea-508e7a9/doc/html/onlineservices_ru.html000066400000000000000000000155411451527772200234600ustar00rootroot00000000000000 Подписка на веб-сервисы

Что такое TheOldReader и TinyTinyRSS?

TheOldReader (http://theoldreader.com/) и TinyTinyRSS (http://tt-rss.org/) — онлайн-агрегаторы новостей. Для использования этих веб-служб необходимо зарегистрировать учётную запись пользователя данной службы в Интернет. При наличии такой учётной записи подписки можно читать:

  • в Liferea
  • в любом веб-браузере на любом компьютере
  • в приложении на смартфоне
То есть новости можно читать практически где угодно.

Зачем использовать онлайн-агрегатор новостей с Liferea?

Liferea — это настольный агрегатор и он не может обеспечить тот же уровень глобальной доступности, который имеется у онлайн-агрегаторов новостей. Доступ к глобальному агрегатору можно обеспечить практически где угодно. Liferea необходимо устанавливать и настраивать на каждом используемом компьютере. При этом непосредственная синхронизация между различными установками не обеспечивается.

Олайн-агрегатор поможет исправить эту ситауцию. На учётную запись можно заходить со всех кмпьютеров, на которых установлена Liferea и везде получать синхронизированные списки новостных каналов и обновлённое состояние новостей. В то же время в онлайн-агрегатор новостей всегда можно войти напрямую с веб-браузера, например, при использовании некоего общедоступного терминала.

Оформление подписки

  1. Создайте учётную запись онлайн-агрегатора, в случае отсутствия таковой.
  2. В контекстном меню выберите «Добавить/Новый источник» и в появившемся диалоговом окне выберите «TheOldReader» или «TinyTinyRSS».
  3. Введите логин и пароль учётной записи.

Вскоре после завершения оформления подписки на учётную запись, появится список новостей и начнётся их поступление.

Google Reader

До 01.07.2013 Google предоставлял веб-сервис «Google Reader», который Liferea мог импортировать в список подписок.

Если подписки «Google Reader» в Liferea не обрабатываются, то можно преобразовать их в обычные каналы Liferea. Для этого выберите параметр «Преобразовать в локальные подписки» в контекстном меню подписки. Преимущества преобразования в канал Liferea заключаются в том, что можно сохранять все загруженные новости для дальнейшего использования и при этом загружать новые заголовки.

TheOldReader

Для использования «TheOldReader» необходимо наличие учётной записи на этом веб-сервисе. Для этой учётной записи обязательно наличие пароля! Пароль можно задать на http://theoldreader.com в «Параметрах».

При выборе «TheOldReader» в качестве источника канала необходимо предоставить логин и пароль учётной записи. Только после этого Liferea сможет получать список подписки с «TheOldReader».

Примечание: При удалении подписок или новостей «TheOldReader» в Liferea все они впоследствии также удаляются и на онлайн-сервисе «TheOldReader»!

Примечание: «TheOldReader» не поддерживает синхронизацию установки меток на важных заголовках. При установке метки на новости в Liferea эта метка будет отображаться только в Liferea. То же самое происходит и на «TheOldReader» — если поставить «лайк» на заголовке, то он не будет отображаться в Liferea.

TinyTinyRSS

Liferea 1.10 и более поздние версии поддерживают TinyTinyRSS, начиная с версии 1.5.3.

TinyTinyRSS устанавливается на свой собственный сервер, для чего необходимо иметь навыки администратора сервера. После установки, TinyTinyRSS работает как любой другой веб-сервис.

lwindolf-liferea-508e7a9/doc/html/preferences_de.html000066400000000000000000000155171451527772200226760ustar00rootroot00000000000000 Ändern der Einstellungen

Ändern der Einstellungen

Der Einstellungen-Dialog kann über den Menüpunkt "Einstellungen" im "Abonnements" Menü aufgerufen werden. Der Dialog ist in sieben Registerkarten unterteilt die im Folgenden beschrieben sind.

Abonnement Einstellungen

  • Caching von Abonnements: Hier kann die Default-Anzahl zu sichernder Schlagzeilen konfiguriert werden. Diese Einstellung kann jedoch für jedes Abonnement einzeln in den Eigenschaften des Abonnements überschrieben werden.
  • Aktualisierung von Abonnements: Hier kann das Default-Aktualisierungsintervall konfiguriert werden. Diese Einstellung kann jedoch für jedes Abonnement einzeln in den Eigenschaften des Abonnements überschrieben werden.

    Mit "Aktualisieren aller Abonnements beim Start" kann das Verhalten nach dem Start von Liferea angepaßt werden.

Ordner Einstellungen

  • Anzeigen von Ordnern: Ist die erste Option aktiviert wird Liferea beim Anklicken eines Ordern die Schlagzeilen aller in diesem enthaltenen Abonnements anzeigen. Ist die zweite Option aktiviert werden gelesene Schlagzeilen zusätzlich ausgeblendet. Das Standardverhalten ist es keine Schlagzeilen anzuzeigen.
  • Abonnement Icons (Favicons): Dieser Button erlaubt die Aktualisierung aller Favicons.

Schlagzeilen Einstellungen

  • Schlagzeilen anzeigen: Hier kann der Hotkey zum Auswählen der nächsten ungelesenen Schlagzeilen eingestellt werden. Zudem kann der Standard-Anzeigemodus ausgewählt werden.
  • Standardansicht Hier kann die Standardansicht festgelegt werden.
  • Verzögertes Entfernen gelesener Schlagzeilen aus Ordnern und Suchordnern. Beim Lesen von Schlagzeilen innerhalb eines Ordners oder Suchordners, wie "Ungelesen" werden diese beim Wechsel auf die nächste Schlagzeilen entfernt. Mit dieser Option kann dies unterbunden werden. Die Schlagzeilen werden erst nach Verlassen des Ordners nicht mehr in diesem angezeigt. Auf diese Weise kann man schnell noch mal zu einer gerade gelesenen Schlagzeile zurückwechseln. Bereits gelesene Schlagzeilen werden heller dargestellt.
  • Web-Integration: Hier kann konfiguriert werden welchen Lesezeichen-Dienst Liferea verwenden soll und welcher Blogsuch-Dienst in der Schlagzeilenansicht verlinkt werden soll.

Browser Einstellungen

  • Einstellungen für internen Browser: Hier können drei verschiedene Dinge konfiguriert werden. Erstens kann eingestellt werden ob Liferea angeforderte Links im internen oder externen Browser laden soll. Zweitens ob für den internen Browser und die Schlagzeilenanzeige Javascript aktiviert sein soll und ob Browser-Plugins aktiv sein sollen.
  • Externe Browser Einstellungen: Werden Links im zur Anzeige im externen Browser angefordert startet Liferea ein Browser Kommando, das hier konfiguriert werden kann. Im ersten Auswahlmenü kann der zu verwendende Browser verändert werden oder mit "Manuell" ein benutzerspezifisches Kommando eingestellt werden. Mit dem zweiten Auswahlmenü kann eingestellt werden wie der Link im eingestellten Browser geöffnet werden soll.

    Nur wenn "Manuell" im ersten Auswahlmenü eingestellt ist wird das Kommadoeingabefeld auswählbar. Bei der Angabe eines Kommando darf ein "%s" das später durch die URL ersetzt wird nicht fehlen. Der Platzhalter sollte doppelt gequoted werden um Shellprobleme z.B. mit dem #-Zeichen in URLs zu vermeiden.

Desktop Einstellungen

  • Menü-Einstellungen: Hier kann eingestellt werden, ob Liferea die Werkzeugleiste verbergen soll und wie die Werkzeugleiste aussieht.
  • Anderes: Hier kann ausgewählt werden ob beim Markieren aller Schlagzeilen als gelesen eine Sicherheitsabfrage erfolgen soll.

Proxy Einstellungen

  • HTTP-Proxy-Server: Mit dieser Registerkarte kann ein HTTP-Proxy konfiguriert werden, den Liferea zum Herunterladen von Feeds benutzt. GNOME-Benutzer sollten hier keine Einstellungen vornehmen sondern den Proxy in der GNOME-Konfiguration einrichten (sofern das nicht bereits geschehen). Liferea wird dann die GNOME-Proxy-Einstellungen automatisch übernehmen.

    Zur Zeit erlaubt Liferea keine Angabe von Rechnern, für die Proxy-Einstellungen ignoriert werden soll.

    Um einen SOCKS Proxy zu nutzen, muss "Auto Detect" ausgewählt werden und der SOCKS Proxy im Desktop (GNOME, KDE, ...) konfiguriert werden.

Anhänge Einstellungen

Diese Registerkarte erlaubt die Konfiguration des Handhabens von Anhängen durch Liferea. Mehr über Anhänge im Abschnitt Enclosures/Podcasting.

  • Herunterladen von Anhängen: Hier kann angegeben werden welches Tool Liferea zum Herunterladen nutzen soll.
  • Öffnen von Anhängen: Mit dem "Eigenschaften" und "Löschen" Button kann die Liste der bekannten Enclosure-Programmverknüpfungen verändert werden. Dies ist nützlich wenn man eine Verknüpfung entfernen oder gezielt ändern will. Neue Verknüpfungen müssen nicht manuell angelegt werden, weil Liferea beim ersten Download eines unbekannten Typs nachfragt mit welchem Programm dieser geöffnet werden soll.
lwindolf-liferea-508e7a9/doc/html/preferences_en.html000066400000000000000000000150471451527772200227060ustar00rootroot00000000000000 Changing Preferences

Program Preferences

The preferences dialog can be opened by the toolbar or through the "Program" menu. The dialog is divided into seven tabs described in the following text.

Feed Preferences

  • Feed Cache Handling: Here you can set the default number of items to be saved for each subscription. Note that this setting can be overwritten for each subscription by setting the item cache size in the subscriptions properties.
  • Feed Update Settings: Here you can set the default refresh interval for all subscriptions. Note that this setting can be overwritten for each subscription by setting the refresh interval in the subscriptions properties.

    The "Update all subscription at startup" check box allows you to control the update behaviour right after startup.

Folder Preferences

  • Folder Display Settings: With these check boxes you can control what Liferea loads into the item list when you click a folder. The default behaviour is to load all unread items and to hide all items you've already read.

    Usually you will want to enable both options as this allows to quickly read through all unread items of a set of feeds.

  • Feed Icons (Favicons): This button allows you to trigger an update of all favicons of all subscriptions.

Headline Preferences

  • Reading Headlines: Here you can set the hotkey for skimming through all unread headlines.
  • Default View Mode Select your favourite viewing mode here.
  • Defer removing read items from folders and search folders When reading items from a folder or search folder, like 'Unread', defer removing the items from the UI until you leave the folder. This allows re-reading read items or marking them unread. Read items appear in light-weight font.
  • Web Integration: Here you can configure your favourite social bookmarking website. This setting is used when you invoke "Post Bookmark" from the item context menu or the HTML view.

Browser Preferences

  • Internal Browser Settings: Here you can configure three things. First you can specify whether or not Liferea should open clicked links in the configured external browser or in the internal browser. The second option allows you to switch off Javascript. The third option allows you to enable browser plugins.
  • External Browser Settings: When you click links in a article you read Liferea launches a browser command you can define with this preferences. The first option button is to select your favourite browser or "Manual" for a user defined browser command. With the second option button you specify how the link is opened inside the previously selected browser.

    Only when selecting "Manual" as browser you can enter a browser command in the command entry. When entering a command don't forget to include a "%s" within the command which will be replaced with the URL that was clicked. Please keep in mind to double quote the place holder to avoid shell problems with the hash character (#) when launching the browser.

Desktop Preferences

  • Toolbar Settings: Here you can select whether you want to display both menu bar and tool bar or only one of them. Additionally can influence the toolbar button detail.
  • Other: Here you can choose wether you want to have a safety confirmation when marking all items read.

Proxy Preferences

  • HTTP Proxy Server: Here you can specify how Liferea should determine the proxy configuration. The suggested default configuration is to figure it out automatically from the environment variables and the GNOME configuration.

    If Liferea incorrectly detects the proxy or you want to configure a different proxy then you should use the "No Proxy" or "Manual Setting" option.

    There is currently no direct SOCKS support. For a SOCKS proxy use "Auto Detect" and configure your global desktop (GNOME, KDE...) to use SOCKS!

Enclosures Preferences

This tab allows you to configure how Liferea should handle enclosures. If you are still unsure what enclosures are about please read the Enclosures/Podcasting section first.

  • Downloading Enclosures: Here you specify which download tool Liferea should use.

    When you have problems downloading enclosures please ensure you have installed the configured download tool and that it is working correctly when you run it on the command line.
  • Opening Enclosures: Using the "Properties" and "Delete" button you can edit the list of known enclosures types. Typically you only want to do this if you want to remove or change program associations. You don't need to create this definitions manually because Liferea will create a new one and ask you which program to use when you open or save a type of enclosures.
lwindolf-liferea-508e7a9/doc/html/preferences_it.html000066400000000000000000000161741451527772200227220ustar00rootroot00000000000000 Modificare le Preferenze

Modificare le Preferenze

La finestra delle preferenze può essere aperta dalla barra degli strumenti o tramite il menu "Strumenti". La finestra è suddivisa in sette schede di seguito descritte.

Preferenze dei Notiziari

  • Gestione della Cache del Notiziario: Qui puoi impostare il numero predefinito di oggetti da salvare per tutti gli abbonamenti. Nota che questo settaggio può essere sovrascritto per ciascun abbonamento impostando la dimensione della memoria degli oggetti nelle proprietà degli abbonamenti.
  • Impostazioni di Aggiornamento del Notiziario: Qui puoi impostare l'intervallo di aggiornamento predefinito per tutti gli abbonamenti. Nota che questo settaggio può essere sovrascritto per ciascun abbonamento impostando l'intervallo nelle proprietà degli abbonamenti.

    La casella di controllo "Aggiornare tutti gli abbonamenti all'avvio" ti permette di controllare il comportamento dell'aggiornamento dubito dopo l'avvio.

Preferenze delle Cartelle

  • Impostazioni Visualizzazione delle Cartelle: Tramite queste caselle di controllo puoi controllare cosa carica Liferea nella lista degli oggetti quando clicchi una cartella. Il comportamento predefinito è di caricare tutti gli oggetti non letti e di nascondere tutti gli oggetti che hai già letto.

    In genere vorrai abilitare entrambe le opzioni poiché ciò consente di leggere rapidamente tutti gli oggetti di un insieme di notiziari.

  • Icone dei Notiziari (Favicons): Questo pulsante ti permette di innescare un aggiornamento di tutte le favicons di tutti gli abbonamenti.

Preferenze dei Titoli

  • Lettura Titoli: Qui puoi impostare la combinazione di scelta rapida per scorrere attraverso tutti i titoli non letti.
  • Modalità Predefinita di Visualizzazione: Scegli qui la tua modalità di visualizzazione preferita.
  • Integrazione Web: Qui puoi configurare il tuo sito web di social bookmarking. Questo settaggio viene utilizzato quando scegli "Segnalibro su …" dal menu contestuale dell'oggetto o dalla visualizzazione HTML (il browser integrato).

Preferenze del Browser

  • Impostazioni del Browser Interno: Qui puoi configurare tre cose. Primo, puoi specificare se Liferea dovrebbe aprire i collegamenti cliccati nel browser esterno configurato oppure nel browser interno. La seconda opzione ti permette di disattivare JavaScript. La terza opzione ti permette di abilitare i plugin del browser.
  • Impostazioni del Browser Esterno: Quando clicchi i collegamenti in un articolo che leggi, Liferea lancia un comando per eseguire il browser, che puoi definire con queste impostazioni. Il primo menu serve a far utilizzare il tuo browser web preferito e se è su "Manuale" viene eseguito un comando definito dall'utente. Con il secondo menu specifichi come il collegamento viene aperto nel browser precedentemente selezionato.

    Solo quando scegli "Manuale" come browser puoi inserire un comando del browser nella casella Manuale. Quando inserisci un comando non dimenticare di includere un "%s" al suo interno, che sarà sostituito con l'URL che viene cliccato. Ricorda di virgolettare il segnaposto per evitare malfunzionamenti della shell con il carattere cancelletto (#, usato negli URL) durante l'avvio del browser.

Preferenze della Scrivania

  • Impostazioni Barra degli Strumenti: Qui puoi decidere se vuoi mostrare sia la barra dei menu che quella degli strumenti o solo una di esse. In aggiunta si possono influenzare i dettagli dei pulsanti della barra degli strumenti.
  • Altro: Qui puoi decidere se vuoi ricevere una conferma di sicurezza quando marchi tutti gli oggetti come letti.

Preferenze del Proxy

  • Server Proxy HTTP: Qui puoi specificare come Liferea dovrebbe determinare la configurazione del proxy. La configurazione predefinita suggerita è di settare tutto automaticamente dalle variabili d'ambiente e dalla configurazione di GNOME.

    Se Liferea individua il proxy erroneamente o se se vuoi configurare un proxy differente allora dovresti usare le opzioni "Nessun Proxy" o "Impostazione Manuale".

    Attualmente non c'è alcun supporto diretto a SOCKS. Per usare un proxy SOCKS usa "Rilevare Automaticamente" e configura globalmente il tuo ambiente desktop (GNOME, KDE...) per utilizzare SOCKS!

Preferenze degli Allegati

Questa scheda ti permette di configurare come Liferea dovrebbe gestire gli allegati. Se sei ancora incerto su cosa siano gli allegati per piacere leggi prima la sezione Allegati/Podcasting.

  • Scaricamento Allegati: Qui specifichi quale strumenti di download dovrebbe essere utilizzato da Liferea.

    Quando hai problemi nello scaricare gli allegati per piacere assicurati di aver già installato lo strumento di download specificato e che sia correttamente funzionante quando lo esegui da linea di comando.
  • Apertura Allegati: Usando i pulsanti "Proprietà" e "Elimina" puoi editare la lista dei tipi di allegato conosciuti. In genere desidererai farlo solo per rimuovere o cambiare le associazioni dei programmi. Non hai bisogno di creare queste definizioni manualmente perché Liferea ne creerà una nuova quando apri o salvi un certo tipo di allegato e ti chiederà quale programma utilizzare.
lwindolf-liferea-508e7a9/doc/html/preferences_ru.html000066400000000000000000000263701451527772200227330ustar00rootroot00000000000000 Измеение параметров

Настройка параметров программы

Диалоговое окно настройки параметров программы может быть открыто с помощью панели инструментов или меню «Программа». Оно подразделяется на семь вкладок, содержимое которых описывается в данном руководстве.

Каналы

  • Хранение новостей в кэш-памяти: Здесь можно задать число новостей, сохраняемых по умолчанию в подписках. Этот параметр обладает меньшим приоритетом и может быть переопределён при указании размера кэша для хранения новостей в свойствах конкретной подписки.
  • Параметры обновления каналов: Здесь можно задать интервал обновления по умолчанию для всех подписок. Этот параметр обладает меньшим приоритетом и может быть переопределён при указании интервала обновления в свойствах конкретной подписки.

    Флажок «Обновлять все каналы при запуске» позволяет контролировать возможность проведения обновления сразу после запуска программы.

Папки

  • Параметры отображения папки: С помощью этих флажков можно управлять содержимым списка новостей при щелчке по папке Liferea. По умолчанию загружаются все непрочитанные новости, а прочитанные — скрываются.

    Обычно удобно оставить оба флажка, поскольку это позволяет быстро пробежаться по всем непрочитанным новостям выбранного набора каналов.

  • Значки каналов (Favicons): Эта кнопка позволяет инициировать обновление всех значков всех подписок.

Заголовки

  • Чтение заголовков: Здесь можно задать комбинацию клавиш для пролистывания всех непрочитанных заголовков.
  • Вид по умолчанию Выберите здесь наиболее предпочтительный режим отображения.
  • Отложить удаление прочтённых новостей из папок и папок поиска При чтении новостей в стандартной папке или папке поиска, например «Unread», можно отложить удаление новостей из списка до моментa перехода в другую папку. Это даёт возможность перечитать уже прочитанные новости или изменить их статус прочтения. Прочитанные новости отображаются нежирным шрифтом.
  • Интеграция с веб-сервисами: Здесь можно задать конфигурацию предпочтитаемого веб-сайта социальных закладок. Этот параметр используется при выполнении команды «Публиковать закладки» из контекстного меню новости или при просмотре в виде HTML.

Браузер

  • Встроенный браузер: Здесь можно настроить три параметра. Прежде всего следует указать где будут открываться внешние ссылки новости при переходе: во встроенном браузере или в соответствующем внешнем браузере. Второй параметр позволяет отключить Javascript. Третий параметр позволяет включать подключаемые модули браузера.
  • Внешний браузер: При переходе по внешним ссылкам новости Liferea запускает команду для открытия браузера, которую можно определить здесь. В раскрывающемся списке предлагается либо запускать браузер по умолчанию, либо «Задать вручную» с указанием команды запуска браузера. Второй вариант позволяет указать способ открытия ссылки в выбранном браузере.

    Указать команду открытия браузера можно только при выборе варианта «Задать вручную». При вводе команды не забудьте добавить в неё аргумент "%s", который заменяется на URL-адрес ссылки. Также не забудьте поместить его в кавычки, так как командная оболочка может неправильно отреагировать на символ решётки (#) при запуске браузера.

Рабочий стол

  • Панель инструментов: Позволяет задать либо совместное отображение панели инструментов и меню, либо только одного элемента из двух. Дополнительно позволяет указать вариант отображения кнопок на панели инструментов.
  • Дополнительно: Здесь можно настроить необходимость вывода подтверждения при установке статуса прочтения у всех новостей.

Прокси-сервер

  • Прокси-сервер HTTP: Позволяет указать конфигурацию прокси-сервера для Liferea. По умолчанию параметры содержат настройки, которые были определены автоматически по значениям переменных среды и конфигурации GNOME.

    Если Liferea неправильно определяет прокси-сервер или требуется задать другой прокси-сервер, то следует использовать параметр «Не использовать» или «Настроить вручную».

    На данный момент непосредственная поддержка SOCKS отсутствует. Для прокси-серверов SOCKS используйте «Автоопределение» и настройте конфигурацию всего рабочего стола (GNOME, KDE...) для использования SOCKS!

Вложения

Эта вкладка позволяет настроить конфигурацию использования вложений в Liferea. В случае недостаточной осведомлённости в этом вопросе необходимо более подробно ознакомиться с информацией о вложениях в разделе Вложения/Подкастинг.

  • Загрузка вложений: Здесь указывается инструмент, который Liferea будет использовать для загрузки вложений.

    При возникновении проблем с загрузкой вложений убедитесь в наличии установки и правильности настройки конфигурации инструмента загрузки. Убедитесь в его работоспособности при запуске из командной строки.
  • Открытие вложений: Кнопки «Свойства» и «Удалить» позволяют редактировать список известных типов вложений. Обычно необходимость в этом возникает только при изменении сопоставления программ с типами файлов. Нет необходимости создавать эти определения вручную, поскольку Liferea самостоятельно создаёт новые определения и запрашивает какую программу следует использовать при открытии или сохранении данного типа вложений.
lwindolf-liferea-508e7a9/doc/html/reference.css000066400000000000000000000010241451527772200214730ustar00rootroot00000000000000h1 { font-size: larger; margin: initial; } table.reftable { border: 1px solid black; border-collapse: collapse; } table.reftable tr td { border: 1px solid black; } td.back, td.next { width: 50px; } dt { font-weight: bold; } .fullwidth { width: 100%; } .left { text-align: left; } .center { text-align: center; } .right { text-align: right; } header nav a, footer nav a, nav li, nav li a { padding: 3px; margin: 3px; user-select: none; } main { border-top: 1px solid gray; border-bottom: 1px solid gray; } lwindolf-liferea-508e7a9/doc/html/reference_de.html000066400000000000000000000047141451527772200223300ustar00rootroot00000000000000 Kurzreferenz

Kurzreferenz

Strg-U Sofortige Aktualisierung aller Abonnements.
Strg-R Markiert alle Schlagzeilen des ausgewählten Abonnements oder Ordners als gelesen.
Strg-N Springe zur nächsten ungelesenen Schlagzeile.
Strg-M Umschalten des Lesezustands der ausgewählten Schlagzeile.
Strg-T Umschalten des Flaggenstatus der ausgewählten Schlagzeile.
Strg-O Abspielen des nächsten Audio/Video-Anhanges.
Strg-+ Schriftgröße erhöhen.
Strg-- Schriftgröße verringern.
Strg-0 Schriftgröße zurücksetzen.
Leertaste Durchblättern der Schlagzeilen. Entsprechend der Programmeinstellungen muß Strg oder Alt gedrückt werden.
u Cursor in der Liste der Abonnements um eine Zeile nach oben bewegen.
d Cursor in der Liste der Abonnements um eine Zeile nach unten bewegen.
b Cursor in der Liste der Schlagzeilen um eine Zeile nach oben bewegen.
f Cursor in der Liste der Schlagzeilen um eine Zeile nach unten bewegen.
Entf Löscht die ausgewählte Schlagzeile oder das ausgewählte Abonnement.
lwindolf-liferea-508e7a9/doc/html/reference_en.html000066400000000000000000000043731451527772200223430ustar00rootroot00000000000000 Quick Reference

Quick Reference

Ctrl-U Updates all your subscriptions at once.
Ctrl-R Marks all items of the selected feed or folder as read.
Ctrl-N Jump to next unread headline.
Ctrl-M Toggle unread state of selected headline.
Ctrl-T Toggle flag of selected headline.
Ctrl-O Play the next headline enclosure (audio or video).
Ctrl-D Open current selected headline in an external browser
Ctrl-+ Increase font size.
Ctrl-- Decrease font size.
Ctrl-0 Reset font size to default.
Space Skim through the headlines. Depending on your preferences you might need to use the Ctrl or Alt modifier.
u Move up cursor in the feed list.
d Move down cursor in the feed list.
b Move up cursor in the item list.
f Move down cursor in the item list.
Del Removes the currently selected feed or item.
lwindolf-liferea-508e7a9/doc/html/reference_it.html000066400000000000000000000044311451527772200223500ustar00rootroot00000000000000 Guida Rapida

Guida Rapida

Ctrl-U Aggiorna tutti i tuoi abbonamenti in contemporanea.
Ctrl-R Segna tutti gli elementi del notiziario o della cartella selezionata come letti.
Ctrl-N Salta al prossimo titolo non letto.
Ctrl-M Commuta lo stato di non letto del titolo selezionato.
Ctrl-T Commuta il contrassegno del titolo selezionato.
Ctrl-O Riproduci l'allegato del prossimo titolo (audio o video).
Ctrl-+ Ingrandisci il testo.
Ctrl-- Riduci il testo.
Ctrl-0 Reimposta la grandezza del testo al valore predefinito.
Space Scorri tra i titoli. A seconda delle tue preferenze potresti dover usare il modificatore Ctrl o Alt.
u Muovi il cursore della lista notiziari verso sopra.
d Muovi il cursore della lista notiziari verso sotto.
b Muovi il cursore della lista titoli verso sopra.
f Muovi il cursore della lista titoli verso sotto.
Del Rimuovi il titolo o il notiziario attualmente selezionato.
lwindolf-liferea-508e7a9/doc/html/reference_ru.html000066400000000000000000000060161451527772200223630ustar00rootroot00000000000000 Краткое руководство

Краткое руководство

Ctrl-U Одновременно обновить все подписки.
Ctrl-R Пометить все новости в выбранном канале или папке как прочитанные.
Ctrl-N Перейти к следующему непрочитанному заголовку.
Ctrl-M Переключить статус прочтения выбранного заголовка.
Ctrl-T Переключить метку важности выбранного заголовка.
Ctrl-O Воспроизвести вложение следующего заголовка (аудио или видео).
Ctrl-D Открыть выбранный заголовок во внешнем браузере.
Ctrl-+ Увеличить размер шрифта.
Ctrl-- Уменьшить размер шрифта.
Ctrl-0 Установить размер шрифта по умолчанию.
Пробел Пролистать заголовки. В зависимости от параметров настройки может использоваться в комбинации с Ctrl или Alt.
u Переместить курсор в списке канала.
d Переместить курсор в списке канала вниз.
b Переместить курсор в списке канала вверх.
f Переместить курсор в списке новостей вниз.
Del Удалить выбранный канал или новость.
lwindolf-liferea-508e7a9/doc/html/searching_de.html000066400000000000000000000134421451527772200223330ustar00rootroot00000000000000 Schlagzeilen suchen

Schlagzeilen suchen

Die Titel der Abonnements oder der Schlagzeilen durchsuchen

Um nach einen Titel zu suchen kann die GTK-Listensuchfunktion sowohl in der Liste der Abonnements als auch der Schlagzeilen benutzt werden. Um sie zu aktivieren muß erst Strg-f gedrückt und dann der zu suchen Text eingegeben werden.

Durchsuchen des Inhalts aller Abonnements

Liferea unterstützt eine einfache case sensitive Suche in den Titeln und Inhalten der Schlagzeilen aller Abonnements. Der Suchen-Dialog kann z.B. mit Hilfe des "Durchsuchen" Buttons der Werkzeugliste aktiviert werden. Nachdem ein Suchbegriff eingegeben und der "Suchen" Button gedrückt wurde startet Liferea die Suche. Als Ergebnis wird jede Schlagzeile deren Titel oder Inhalt den Suchbegriff enthält in der Liste der Schlagzeilen angezeigt. In der Schlagzeilenansicht wird zusätzlich die Anzahl der Treffer angegeben.

Permanent Suche mit einem Suchordner

Ist man immer wieder an einem bestimmten Suchbegriff (z.B. allen Schlagzeilen mit dem Suchbegriff "XML") interessiert kann ein sogenannter Suchordner erzeugt werden. Dieser erscheint dann in der Liste der Abonnements und enthält automatisch immer alle Schlagzeilen auf die der Suchbegriff paßt. Um einen solchen Suchordner anzulegen muß zuerst eine Suche durchgeführt werden und dann im Suchen-Dialog der "+Suchordner" Button aktiviert werden. Darauf sollte ein neuer Eintrag in der Liste der Abonnements erscheinen. Der Titel und die Suchoptionen des Suchordners können über die Auswahl des "Eigenschaften" Menüpunktes im Hauptmenü oder Kontextmenü angepaßt werden

Die nachfolgende Tabelle enthält alle unterstützten Suchregeln und ihre jeweilige Bedeutung.

Schlagzeile enthält Hinzufügen jeder Schlagzeile deren Titel oder Inhalt case insensitiv dem Suchbegriff entspricht.
Schlagzeile enthält nicht Entfernen jeder Schlagzeile deren Titel oder Inhalt case insensitiv dem Suchbegriff entspricht.
Titel der Schlagzeile enthält Hinzufügen jeder Schlagzeile deren Titel case insensitiv dem Suchbegriff entspricht.
Titel der Schlagzeile enthält nicht Entfernen jeder Schlagzeile deren Titel case insensitiv dem Suchbegriff entspricht.
Inhalt der Schlagzeile enthält Hinzufügen jeder Schlagzeile deren Inhalt case insensitiv dem Suchbegriff entspricht.
Inhalt der Schlagzeile enthält nicht Entfernen jeder Schlagzeile deren Inhalt case insensitiv dem Suchbegriff entspricht.
Titel des Abonnements enthält Hinzufügen aller Schlagzeilen jedes Abonnements dessen Titel case insensitiv dem Suchbegriff entspricht.
Titel des Abonnements enthält nicht Entfernen aller Schlagzeilen jedes Abonnements dessen Titel case insensitive dem Suchbegriff entspricht.
Lesestatus ist ungelesen Hinzufügen aller ungelesenen Schlagzeilen.
Lesestatus ist gelesen Entfernen aller gelesenen Schlagzeilen.
Flagge ist gesetzt Hinzufügen aller markierten Schlagzeilen.
Flagge ist nicht gesetzt Entfernen aller nicht markierten Schlagzeilen.

Hinweis: Die Reihenfolge der Regeln ist nicht relevant. Eine additive Regel wird niemals von einer Entfernen-Regel betroffenen Schlagzeilen wieder hinzufügen.

lwindolf-liferea-508e7a9/doc/html/searching_en.html000066400000000000000000000155671451527772200223570ustar00rootroot00000000000000 Searching

Searching for Feed Content

Liferea supports a simple case sensitive text searching in the item content and titles of all your subscriptions.

To open the search dialog click the search button in the toolbar. Enter the string you want to search for and click the "Search" button. Any items containing the string either in their title or their content should appear in the resulting item list. Also the item content view will give you a message about the number of matches.

Permanent Searches with Search Folders

If you want to have permanent searches (e.g. all items containing the term "XML") you can create a search folder which will be added to your feed list and contains all items matching this search rule. To do so enter your search term into the search box and click the search button. After the results appear click the "Search Folder" button to create a search folder from the search results. Now a search folder should appear in your feed list. If you want you can edit the search folders title or change its rules by opening the properties dialog either from the "Subscriptions" menu or the contextual menu in the feed list.

The following table is a list of all possible search folder rules and their specific meaning.

Item does contain Adds each item whose title or content matches the given case insensitive string to the search folder.
Item does not contain Removes each item whose title or content matches the given case insensitive string from the search folder.
Item title does contain Adds each item whose item title matches the given case insensitive string to the search folder.
Item title does not contain Removes each item whose item title matches the given case insensitive string from the search folder.
Item author does contain Adds each item whose item author (or creator, acording to the feed) matches the given case insensitive string to the search folder.
Item title does not contain Removes each item whose item author (or creator, acording to the feed) matches the given case insensitive string from the search folder.
Item body does contain Adds each item whose item content matches the given case insensitive string to the search folder.
Item body does not contain Removes each item whose item body matches the given case insensitive string from the search folder.
Feed title does contain Adds each item whose parent feed's title matches the given case insensitive string to the search folder.
Feed title does not contain Removes each item whose parent feed's title matches the given case insensitive string from the search folder.
Read status is unread Adds each unread item to the search folder.
Read status is read Removes each unread item from the search folder.
Flag status is flagged Adds each flagged item to the search folder.
Flag status is unflagged Removes each flagged item from the search folder.
Podcast included Adds all items that contain a podcast to the search folder. For this rule, podcast is assumed to be any enclosure for an audio file.
Podcast not included Removes all items that do not contain a podcast (i.e. an enclosure for an audio file) from the search folder.
Enclosure included Adds all items that contain an enclosure (for any file type) to the search folder.
Enclosure not included Removes all items that do not contain an enclosure from the search folder.

Please note that the order of the rules does not matter. An additive rule after a removal rule that does match an item that is to be removed because of to the removal rule will not add this item!

lwindolf-liferea-508e7a9/doc/html/searching_it.html000066400000000000000000000154231451527772200223600ustar00rootroot00000000000000 Cercare le Notizie

Cercare nei Notiziari

Liferea supporta la ricerca semplice insensibile alle maiuscole nei contenuti dell'oggetto e nei titoli di tutti i tuoi abbonamenti.

Per aprire le finestra di ricerca clicca il pulsante di ricerca nella barra degli strumenti. Inserisci la stringa di testo che vuoi trovare e clicca il pulsante "Trova". Qualsiasi oggetto contenente la stringa nel titolo o nel contenuto dovrebbe apparire nella lista di oggetti risultante. Inoltre la vista del contenuto dell'oggetto ti mostrerà il numero di corrispondenze.

Ricerche Permanenti con le Cartelle di Ricerca

Se desideri avere ricerche permanenti (es. tutti gli oggetti che contengono il termine "XML") puoi creare una cartella di ricerca che sarà aggiunta al tuo elenco dei notiziari e contiene tutti gli oggetti che corrispondono a una certa regola di ricerca. Per farlo inserisci il tuo termine nella casella di ricerca e clicca il pulsante trova. Dopo che i risultati sono apparsi, clicca il pulsante "Cartella di Ricerca" per creare una cartella di ricerca a partire dai risultati della ricerca. A questo punto una cartella di ricerca dovrebbe apparire nel tuo elenco dei notiziari. Se lo desideri puoi cambiare il titolo delle cartelle di ricerca o le loro regole di ricerca aprendo la finestra delle proprietà dal menu "Notiziario" o dal menu contestuale nella lista degli abbonamenti.

La tabella seguente è una lista di tutte le possibili regole di ricerca e dei loro specifici significati.

Articolo contiene Aggiunge alla cartella di ricerca ogni oggetto il cui titolo o contenuto corrisponde alla stringa insensibile alle maiuscole data.
Articolo non contiene Rimuove dalla cartella di ricerca ogni oggetto il cui titolo o contenuto corrisponde alla stringa insensibile alle maiuscole data.
Titolo dell'articolo contiene Aggiunge alla cartella di ricerca ogni oggetto il cui titolo corrisponde alla stringa insensibile alle maiuscole data.
Titolo dell'articolo non contiene Rimuove dalla cartella di ricerca ogni oggetto il cui titolo corrisponde alla stringa insensibile alle maiuscole data.
Corpo dell'articolo contiene Aggiunge alla cartella di ricerca ogni oggetto il cui contenuto corrisponde alla stringa insensibile alle maiuscole data.
Corpo dell'articolo non contiene Rimuove dalla cartella di ricerca ogni oggetto il cui contenuto corrisponde alla stringa insensibile alle maiuscole data.
Titolo del notiziario contiene Aggiunge alla cartella di ricerca ogni oggetto il cui titolo del notiziario padre corrisponde alla stringa insensibile alle maiuscole data.
Titolo del notiziario non contiene Rimuove dalla cartella di ricerca ogni oggetto il cui titolo del notiziario padre corrisponde alla stringa insensibile alle maiuscole data.
Stato di lettura è non letto Aggiunge ogni oggetto non letto alla cartella di ricerca.
Stato di lettura è letto Rimuove ogni oggetto non letto dalla cartella di ricerca.
Stato del contrassegno è contrassegnato Aggiunge ogni oggetto contrassegnato alla cartella di ricerca.
Stato del contrassegno è non contrassegnato Aggiunge ogni oggetto privo di contrassegno alla cartella di ricerca.
Podcast incluso Aggiunge alla cartella di ricerca tutti gli oggetti che contengono un allegato.
Podcast non incluso Rimuove dalla cartella di ricerca tutti gli oggetti che contengono un allegato.

Nota che l'ordine delle regole è irrilevante. Una regola di aggiunta posta dopo una regola di rimozione che non corrisponde ad un oggetto da rimuovere a causa della regola di rimozione non aggiungerà tale oggetto!

lwindolf-liferea-508e7a9/doc/html/searching_ru.html000066400000000000000000000241661451527772200223760ustar00rootroot00000000000000 Поиск

Поиск по содержимому канала

Liferea поддерживает простой регистрозависимый текстовый поиск в содержимом новостей и заголовках всех подписок.

Диалоговое окно поиска открывается щелчком по кнопке поиска на панели инструментов. Введите строку поиска и нажмите кнопку «Найти». Все новости, содержащие эту строку либо в заголовке, либо в содержимом должны появиться в списке результатов поиска. Также отображение содержимого новости содержит информацию о количестве совпадений.

Папки поиска с постоянным условием

В случае необходимости выполнения поиска с постоянным условием (например, все новости, содержащие строку «XML»), можно создать папку поиска, которая будет находиться в списке каналов и содержать все новости, совпадающие с поисковой строкой. Для этого необходимо ввести поисковый запрос в поле поиска и нажать кнопку «Найти». После появления результатов, нажмите кнопку «Папка поиска» для создания папки поиска, которая будет содержат его результаты. Теперь папка поиска должна появиться в списке каналов. При необходимости у папки поиска можно поменять имя и поисковый запрос в диалоговом окне свойств, которое открывается либо из меню «Подписки» или из контекстно меню в списке каналов.

Следующая таблица содержит список возможных поисковых запросов для папок поиска и их значение.

Новость содержит Добавляет каждую новость, с заголовком или содержимым которой совпадает регистронезависимая строка поиска.
Новость не содержит Удаляет каждую новость, с заголовком или содержимым которой совпадает регистронезависимая строка поиска.
Заголовок новости содержит Добавляет каждую новость, с заголовком которой совпадает регистронезависимая строка поиска.
Заголовок новости не содержит Удаляет каждую новость, с заголовком которой совпадает регистронезависимая строка поиска.
Автор новости содержит Добавляет каждую новость, строка автора которой (или создателя, по аналогии с каналом) совпадает с регистронезависимой строкой поиска.
Автор новости не содержит Удаляет каждую новость, строка автора которой (или создателя, по аналогии с каналом) совпадает с регистронезависимой строкой поиска.
Содержимое новости содержит Добавляет каждую новость, с содержимым которой совпадает регистронезависимая строка поиска.
Содержимое новости не содержит Удаляет каждую новость, с содержимым которой совпадает регистронезависимая строка поиска.
Заголовок канала содержит Добавляет каждую новость, с заголовком родителя которой совпадает регистронезависимая строка поиска.
Заголовок канала не содержит Удаляет каждую новость, с заголовком родителя которой совпадает регистронезависимая строка поиска.
Статус прочтения — непрочитано Добавляет каждую непрочитанную новость в папку поиска.
Состояние прочтения — прочитано Удаляет каждую непрочитанную новость из папки поиска.
Метка важности установлена Добавляет каждую новость с установленной меткой важности в папку поиска.
Метка важности не установлена Удаляет каждую новость с установленной меткой важности из папки поиска.
Содержит подкаст Добавляет все новости, содержащие подкаст, в папку поиска. Для этого правила поиска в качестве подкаста воспринимается любое вложение в виде аудиофайла.
Не содержит подкаста Удаляет все новости, не содержащие подкаст (то есть вложение в виде аудиофайла), из папки поиска.
Содержит вложение Добавляет все новости, содержащие вложение (с файлами любого типа), в папку поиска.
Не содержит вложения Удаляет все новости, не содержащие вложения, из папки поиска.

Порядок расположения поисковых запросов не имеет значения. Запрос на добавление новости, расположенный после запроса, который её удаляет, не сможет добавить новость даже при совпадении с ней, вследствие наличия удаляющего запроса!

lwindolf-liferea-508e7a9/doc/html/subscriptions_de.html000066400000000000000000000237111451527772200232770ustar00rootroot00000000000000 Abonnements verwalten

Diese Sektion beschreibt die Möglichkeiten die Liferea bietet um verschiedene Typen von Online-Abonnements anzulegen.

Was kann abonniert werden?

Als News-Aggregator kann Liferea verschiedenste Quellen von New, Blogs oder anderen Inhalten abonnieren. Liferea unterstützt folgende Abonnementtypen:

  • einzelne Feeds
  • OPML-Quellen (z.B. eine Planet-Feedliste, ein Blogroll...)
  • ein TheOldReader-Konto
  • ein TinyTinyRSS-Konto

Abonnements anlegen

Mit dem Menüpunkt "Neues Abonnement" aus dem Hauptmenü oder dem Kontextmenü der Liste der Abonnements kann ein Dialog zum Anlegen eines neuen Abonnements geöffnet werden.

Abonnements können eine Vielzahl von Quellen haben z.B. eine Feed-URL, ein lokal ausgeführtes Kommando oder vom Rechner aus zugreifbare Datei. In der Mehrzahl der Fälle wird aber eine Feed-URL die Quelle sein. Nachdem der Quelltyp korrekt eingestellt ist kann die Feed-URL, das Kommando oder der Dateiname im Eingabefeld "Quelle" eingetragen werden. Um zum Beispiel Slashdot's RSS News Feed zu abonnieren muß "URL" als Quelltyp ausgewählt werden und die Feed-URL "http://slashdot.org/index.rss" als "Quelle" eingetragen werden.

Im Falle von Kommandos und Dateien als Quelltyp können diese mit Hilfe eines Dateiauswähldialoges mit "Datei auswählen..." gesucht werden.

Es kann vorkommen, daß ein Feed-Format von Liferea nicht unterstützt wird. In diesem Fall kann ein Konvertierungsfilter verwendet werden um die Daten in ein für Liferea lesbares Format zu überführen. Solche Filter können zum Beispiel aus dem Snownews und Liferea Skript-Repository (Englisch) heruntergeladen werden.

Um solche Konvertierungsfilter zu benutzen muß die Option "Benutze Filter zum Konvertieren" aktiviert werden. Der Pfad des Filter-Skriptes muß dann unter "Konvertiere mit" angegeben werden. Alternativ kann das Skript mit "Datei auswählen..." gesucht werden. Ein Filter ist ein einfaches Programm welches die Quelldaten von stdin einliest und in einem von Liferea unterstützten Format auf stdout wieder ausgibt. Solche Filter können z.B. mit Perl leicht geschrieben werden.

Abonnement-Eigenschaften

Der Eigenschaften-Dialog für ein Abonnement wird nach dem Anlegen neuer Abonnements automatisch geöffnet. Zusätzlich kann er mit dem Menüpunkt "Eigenschaften" aus dem Hauptmenü oder dem Kontextmenü eines ausgewählten Abonnements aufgerufen werden. Beim Erzeugen neuer Abonnements ist es oft gar nicht notwendig die Defaultwerte zu verändern und es reicht aus den Dialog mit dem "Ok" Button zu bestätigen.

Der Eigenschaften-Dialog ist in fünf Registerkarten unterteilt: "Allgemein", "Quelle", "Cache", "Authentifizierung" und "Anhänge":

Allgemeine Eigenschaften

Die Registerkarte "Allgemein" erlaubt das Ändern des Titels und des Aktualisierungsintervalls des Abonnements.

Das Aktualisierungsintervall kontrolliert nach welcher Zeit Liferea ein Abonnement aktualisiert. Meistens ist es nicht nötig die Defaulteinstellung zu ändern. Es wird empfohlen das globale Aktualisierungsintervall zu benutzen, welches in den Programmeinstellungen festgelegt wird. Auf diese Weise kann die Aktualisierung aller Abonnements zentral gesteuert werden.

Manchmal geben Feeds ein eigenes Aktualisierungsintervall vor. In diesem Fall wird Liferea automatisch die Option "Benutzerdefinierte Aktualisierung" auswählen und das vom Feed vorgeschlagene Intervall eintragen. Dies passiert nur beim Anlegen neuer Abonnements Gibt ein Feed ein eigenes Interval vor sollte dieses auch beibehalten werden.

Es gibt folgende Modi für das Aktualisierungsinterval

Nutze das globale Aktualisierungsintervall
Mit dieser Option wird das Aktualisierungsintervall durch die globale Programmeinstellung festgelegt.
Benutzerdefinierte Aktualisierung
Mit dieser Option kann ein beliebiges Aktualisierungsintervall für das Abonnement vorgegeben werden. Beim Angeben des Intervalls sollte man sich immer bewußt sein, welchen Datenverkehr man mit unpassenden Werten verursachen kann. Ein Abonnement sollte nie öfter aktualisiert werden als sich seine angebotenen Inhalte ändern.
Feed nicht automatisch aktualisieren
Mit dieser Option kann das Aktualisieren des Abonnements deaktiviert werden. Das ist nützlich für Abonnements die man nur manuell aktualisieren möchte.

Quelle des Abonnements

Die Registerkarte "Quelle" enthält dieselben Dialogelemente die auch beim Anlegen neuer Abonnements angeboten werden. Daher kann hier die Quelle des Abonnements nachträglich verändert werden (z.B. wenn sich die URL der Webseite ändert)

Cache-Eigenschaften

Die dritte Registerkarte, "Cache", erlaubt es die Anzahl zu sichernder Schlagzeilen zu konfigurieren. Diese Einstellungen sind analog zu den globalen Cache-Einstellungen. Normalerweise ist es ausreichend die globale Einstellung zu verwenden.

Default-Cache-Einstellungen
Für das Abonnement soll die globale Cache-Einstellung verwendet werden.
Cache Deaktivieren
Verhindert das Sichern der Schlagzeilen.
Unbeschränkter Cache
Sichert alle Schlagzeilen. Verwirft niemals eine Schlagzeile.
Cache begrenzen auf # Schlagzeilen
Sichert nur # Schlagzeilen. Verwirft alte Schlagzeilen sobald mehr als # Schlagzeilen vorhanden sind.

Hinweis: Markierte Schlagzeilen werden unabhängig von den Cache-Einstellungen niemals gelöscht. Durch das Setzen der Flagge einer Schlagzeile die man gerade gelesen hat verhindert man deren zukünftiges Löschen.

Authentifizierung

Mit dieser Registerkarte kann die HTTP Authentifikation für den Download der Abonnement-Quelle aktiviert werden. Nach dem aktivieren der Checkbox können Benutzername und Paßwort eingegeben werden. Üblicherweise ist es nicht notwendig die Authentifikationsdaten im Voraus anzugeben, da Liferea automatisch nachfragt sobald eine Abonnement-Quelle Authentifikation erfordert.

Erweitert

In dieser Registerkarte können verschiedene Spezialeinstellungen für dieses Abonnement aktiviert werden.

Alle Anänge dieses Abonnements automatisch herunterladen.
Diese Option ist nützlich fpr Podcasts oder Torrent-Feeds. Wenn diese Option aktiviert ist lädt Liferea alle Anhänge automatisch herunter.
Link beim Auswählen der Schlagzeile automatisch öffnen.
Per-default zeigt Liferea den Inhalt einer Schlagzeile. Ist diese Option aktiv wird stattdessen die Schlagzeilen-URL geladen.
Ignoriere Kommentarfeeds dieses Abonnements.
Manchmal sind Kommentarfeeds fehlerhaft oder schlicht nutzlos. Mit dieser Option können sie ausgeblendet werden.
Erzwinge Popups für dieses Abonnement.
Wenn die globale Einstellung für Popups deaktiviert ist können diese trotzdem für dieses Abonnement erzwungen werden.
Keine Popups für dieses Abonnement.
Wenn die globale Einstellung für Popups aktiviert ist können diese trotzdem für dieses Abonnement unterdrückt werden.
Markiere heruntergeladene Schlagzeilen als gelesen.
Neue Schlagzeilen haben immer den Status "ungelesen". Diese Option kann nützlich sein um für uninteressante Abonnements die Schlagzeilen automatisch auf "gelesen" zu stellen.

Abonnieren von OPML-Quellen und Online-Diensten

Um eine OPML-Quelle oder ein Konto eines Online-Dienstes zu abonnieren muß "Neue Quelle" vom Kontextmenü in der Abonnements oder aus dem "Abonnements"-Menü ausgewählt werden. Im dann geöffneten Dialog kann die gewünschte Quelle ausgewählt werden.

OPML-Quelle

Wurde "Planet/BlogRoll/OPML" als Quelle ausgewählt muß die URL einer OPML-Quelle angegeben werden. Wenn nötig auch noch zusätzlich Authentifikation für den Zugriff. Geht alles gut wird ein neuer Eintrag in der Feedliste angelegt und nach dem initialen Download der OPML-Quelle werden die enthaltenen Abonnements hierarchisch hinzugefüht. Ändert sich die OPML-Quelle werden mit der Zeit alte Feeds automatisch entfernt und neue hinzugefügt.

lwindolf-liferea-508e7a9/doc/html/subscriptions_en.html000066400000000000000000000242531451527772200233130ustar00rootroot00000000000000 Managing Subscriptions

This section documents all user interactions necessary to create and maintain subscription.

Things Liferea Can Subscribe To

As a news aggregator Liferea allows you to subscribe to different syndication sources. The most common use case is to subscribe to single feeds. But Liferea also supports subscribing a source that provides a collection of feeds. So you can subscribe to:

  • a single feed
  • any OPML source (a planet feed list, a blog roll...)
  • a TheOldReader online account
  • a TinyTinyRSS online account

Subscribing to a Feed

To create a new feed subscription select "New Feed" from the feed list's contextual menu or the "Subscriptions" menu. A dialog to create a new subscription will appear.

For example, to subscribe to Slashdot's news feed enter "http://slashdot.org/index.rss" into the text box and click "OK".

Creating Special Feed Subscriptions

Liferea supports obtaining feeds from a variety of different sources including Internet URLs, the output of a locally run command, and by directly reading from a file. Most often, it is desired to subscribe using an URL as described in the previous paragraph. For special subscription you must select "Advanced" to open the following more complex subscription dialog:

After selecting the desired source type, enter the source URL, command name, or filename into the "Source" textbox.

When a command or local file is selected, the command or file can be selected using a file navigation box by clicking "Select File...".

Sometimes, the data in a feed is in a format that is unknown to Liferea. If this is the case, a conversion filter can be used to convert the data into a useable format. Many filters can be downloaded from the Snownews and Liferea script repository.

To use conversion filters, the "Use conversion filter" option needs to be activated in the subscription dialog box. The filter is specified by either typing the path of the filter script into the "Convert using" textbox or selecting the filter after clicking the "Select File..." button. The filters are simple programs that read the non-supported feed format using stdin and output the valid feed to stdout. Conversion filters are often written using perl.

Changing Subscription Properties

The feed properties dialog is used to configure additional feed properties and can be activated in the "Subscriptions" menu or from feed context menu. After successfully creating a new subscription you usually don't need to change the feed properties.

Only if you want to change the HTTP authentication, the caching behaviour or other feed specific options then you need to use the feed properties dialog.

The dialog groups the feed properties into five sets: "General", "Source", "Archive", "Download" and "Advanced":

General Properties

The "General" pane allows you to set feed title and update interval. The feed name is the feed's name shown in the feed list. Multiple feeds can have the same name.

The feed update interval controls how often Liferea attempts to update a feed. Typically, the feed update interval can be left at its default. We recommend to use the global update interval preference which you can find in the preference dialog because it allows one to change the update interval of all feed simultaneously.

Sometimes a feed provides a feed specific update interval. If this is the case Liferea automatically activates the user defined update interval setting and enters the feed specific update interval. This is only done during the initial feed subscription. You should never need to change such a setting.

The update interval can be set using the following options:

Use global default update interval
This preference is used for all feeds that have the update interval setting to follow the global default update interval setting.
Feed specific update interval
There might be situations where you want to specify a update interval which might be more or less frequent than the global update interval. Then you should select the user defined interval option and enter the interval value you want. When specifying an update interval, you should consider the web traffic you will cause with an inappropriate update interval. Don't update more often than the feed's content is updated.
Don't update this feed automatically
This option allows you to prevent updating the feed. You can use this option for feeds you always want to have only updated manually.

Source Properties

The "Source" pane contains the same fields that the advanced subscription dialog provides. You can use these settings to change the feed source (e.g. after a feed's URL has changed).

Archive Properties

The third pane, "Archive", controls how many items of a feed are kept when Liferea saves a feed to disk. Similar to the update interval settings there is a corresponding global preference which sets a default cache size for all feeds. You should use the feed specific cache settings only to implement exceptions from the global default cache size.

Default Cache Settings
Makes the feed use the default cache settings, which are stored in the main Liferea preferences.
Disable Cache
Disable the feed's items from ever being saved.
Unlimited cache
Save all items ever downloaded.
Number of items to save
Limits the cache size to a fixed number.

Note: Flagged items are always saved, regardless of the cache settings. So if you have found an important headline and want to prevent it from being dropped from the cache just flag this headline.

Download Properties

This tab allows you to disable the use of the global proxy setting and to enable HTTP authentication when downloading the feed. Enable the checkbox and enter appropriate user and password values to use password-protected feeds. Usually you won't need to use these settings because you will be asked username and password when subscribing to the feed that requires authentication.

Advanced Properties

This panel provides different special options to control how Liferea handles the subscription. These options are:

Automatically download all enclosures of this feed.
This might be useful for podcasts or torrent feeds. If you enable the option Liferea downloads attached enclosures.
Auto-load item link in configured browser when selecting articles.
Per-default Liferea shows the item description in the HTML view pane. When this check box is enabled it will automatically load the item link when the item selection changes.
Ignore comment feeds for this subscription.
Sometimes there are feeds with broken or useless comment feeds. This option allows to ignore those.
Enforce popup notification for this subscription.
If the global notification preference is disabled you can enabled this option to generate notifications for only this feed.
Never do popup notification for this subscription.
If the global notification preference is enabled you can use this option to prevent notifications for this feed. This might be useful for high-traffic feeds.
Mark downloaded items as read.
Normally new items have the status "unread". Sometimes you might want to use this option for new items of a special feed not to show up as "unread" so you don't have to mark them "read" manually.

Subscribing to OPML Sources and Online Services

To subscribe to OPML feed lists or a online service account select "New Source" from the context menu of the feed list or from the "Subscriptions" menu. From the following dialog select the source type you like to create.

OPML Sources

If you have selected "Planet/BlogRoll/OPML" you need to supply the source URL of the OPML document. If necessary provide authentication information. After doing so a new OPML source node will be inserted in the feed list and after downloading the OPML document for the first time new subscriptions as described by the OPML source will be created. If the OPML feed list changes over time old subscriptions are automatically dropped and new ones are added.

lwindolf-liferea-508e7a9/doc/html/subscriptions_it.html000066400000000000000000000267161451527772200233330ustar00rootroot00000000000000 Gestire gli Abbonamenti

Questa sezione documenta tutte le interazioni dell'utente necessarie a creare e mantenere gli abbonamenti.

Cose Alle Quali Liferea Può Abbonarsi

In quanto aggregatore di notiziari Liferea ti permette di abbonarti a differenti sorgenti di notizie. Il caso d'uso più comune è di abbonarsi a notiziari singoli. Ma Liferea supporta anche abbonamenti a fonti che offrono una collezione di notiziari. Quanti puoi abbonarti a:

  • un notiziario singolo
  • una fonte OPML (un elenco planet di notiziari, un blogroll...)
  • un account online su TheOldReader
  • un account online su TinyTinyRSS

Abbonarsi a un Notiziario

Per creare un nuovo abbonamento ad un notiziario seleziona "Nuovo Abbonamento" dal menu contestuale dell'elenco notiziari o dal menu "Notiziario". Apparirà una finestra per creare un nuovo abbonamento.

Ad esempio, per abbonarti al notiziario di Slashdot inserisci "http://slashdot.org/index.rss" nella casella di testo e clicca su "OK".

Creare Abbonamenti Speciali ai Notiziari

Liferea supporta l'ottenimento di notiziari da fonti differenti inclusi URLs di Internet, l'output di un comando locale, e la lettura diretta da un file. Spesso, si desidera abbonarsi a un notiziario usando un URL come descritto nel paragrafo precedente. Per l'abbonamento speciale devi selezionare "Avanzato…" per aprire la seguente finestra per gli abbonamenti complessi:

Dopo aver selezionato il tipo di fonte desiderata, inserisci l'URL sorgente, il nome del comando, o il nome del file nella casella di testo "Fonte".

Quando viene selezionato un comando o un file locale, il comando o il file possono essere scelti usando una finestra di navigazione cliccando "Seleziona File…".

Talvolta, la data in un notiziario è in un formato che Liferea non conosce. Se questo è il caso, può essere utilizzato un filtro di conversione per convertirla in un formato adatto. Molti filtri possono essere scaricati dall'archivio di script di Snownews e Liferea.

Per usare i filtri di conversione, l'opzione "Usare filtro di conversione" dev'essere attivata nella finestra degli abbonamenti. Lo script filtro viene specificato scrivendone il percorso nella casella di testo "Convertire usando" o selezionandolo dopo aver cliccato il pulsante "Seleziona file…". I filtri sono semplici programmi che leggono il formato di notiziario non supportato usando stdin e producono un notiziario valido via stdout. I filtri di conversione vengono spesso codificati in Perl.

Cambiare le Proprietà di un Abbonamento

La finestra delle proprietà del notiziario viene utilizzata per configurare le proprietà aggiuntive del notiziario e può essere attivata nel menu "Notiziario" o dal menu contestuale del notiziario. Dopo aver creato con successo un nuovo abbonamento non avrai in genere bisogno di alterarne le proprietà.

Avrai bisogno di utilizzare questa finestra solo quando vorrai modificare l'autenticazione HTTP, la gestione della memoria o altre opzioni specifiche del notiziario.

La finestra raggruppa le proprietà del notiziario in cinque insiemi: "Generale", "Fonte", "Archivio", "Scaricamento" e "Avanzato":

Generale

Il pannello "Generale" ti permette di scegliere il titolo del notiziario e l'intervallo di aggiornamento. Il nome del notiziario è quello mostrato nell'elenco. Più notiziari possono avere lo stesso nome.

L'intervallo di aggiornamento del notiziario determina quando spesso Liferea cercherà di aggiornare il notiziario. Tipicamente, l'intervallo di aggiornamento del notiziario può essere lasciato al suo valore predefinito. Raccomandiamo di utilizzare la preferenza globale che puoi trovare nella finestra delle preferenze perché ti consente di modificare l'intervallo di aggiornamento di tutti i notiziari in contemporanea.

Talvolta un notiziario fornisce un proprio intervallo di aggiornamento. Se questo è il caso Liferea attiva automaticamente l'impostazione per specificare un intervallo di aggiornamento personalizzato e la popola con questo valore. Questo viene fatto solo durante la creazione iniziale dell'abbonamento al notiziario. Non dovresti mai aver bisogno di cambiare questa impostazione.

L'intervallo di aggiornamento può essere settato su:

Usare l'intervallo di aggiornamento globale predefinito.
Questa impostazione viene utilizzata da tutti i notiziari che rispettano l'intervallo di aggiornamento globale.
Intervallo specifico di aggiornamento del notiziario
Ci potrebbero essere situazioni in cui desideri un intervallo aggiornamento più o meno frequente di quello predefinito. In tal caso dovresti selezionare questa opzione e specificarlo. Quando specifichi un intervallo di aggiornamento, dovresti considerare il traffico web che causerai con un intervallo di aggiornamento non appropriato. Non aggiornare più frequentemente di quanto i contenuti siano in genere pubblicati.
Non aggiornare automaticamente questo notiziario.
Questa opzione ti consente di prevenire l'aggiornamento del notiziario. Puoi usare questa opzione per i notiziari che vuoi aggiornare solo manualmente ogni volta.

Fonte

Il pannello "Fonte" contiene gli stessi campi contenuti nella finestra per l'abbonamento avanzato. Puoi utilizzare queste impostazioni per cambiare la fonte del notiziario (es. dopo che l'URL di un notiziario è variato).

Archivio

Il terzo pannello, "Archivio", controlla quanti oggetti di un notiziario sono mantenuti quando Liferea lo salva su disco. In modo simile all'intervallo di aggiornamento v'è una preferenza globale corrispondente che imposta la dimensione della memoria per tutti i notiziari. Dovresti utilizzare questo pannello solo per implementare eccezioni alla politica di memorizzazione globale.

Impostazioni di caching predefinite
Fa sì che il notiziario erediti le impostazioni predefinite, che sono conservate nelle preferenze di Liferea.
Disabilita la cache
Impedisce che gli oggetti del notiziario vengano salvati.
Cache illimitata
Salva sempre tutti gli oggetti scaricati.
Numero di articoli da salvare
Limita la grandezza della memoria a un numero fisso.

Nota: Gli oggetti marchiati saranno sempre conservati, a prescindere dalle impostazioni di memorizzazione. Quindi se hai trovato un titolo importante e vuoi evitare che venga scartato dalla memoria lo puoi marchiare.

Scaricamento

Questa scheda ti permette di disabilitare l'uso delle impostazioni globali del proxy e di abilitare l'autenticazione HTTP durante lo scaricamento del notiziario. Abilita la casella di controllo ed inserisci i valori appropriati per nome utente e password per poter utilizzare i notiziari protetti da password. In genere non avrai bisogno di utilizzare queste impostazioni perché il nome utente e la password ti verranno richiesti durante l'abbonamento al notiziario che richiede l'autenticazione.

Avanzato

Questo pannello fornisce certe opzioni speciali per controllare come Liferea gestisce l'abbonamento. Queste opzioni sono:

Scaricare automaticamente tutti gli allegati di questo notiziario.
Questo può essere utile per podcast o notiziari sui torrent. Se abiliti l'opzione Liferea scarica gli allegati.
Caricare automaticamente il collegamento dell'articolo nel browser configurato quando sono selezionati gli articoli.
Di default Liferea mostra la descrizione dell'oggetto nel pannello di visualizzazione HTML. Quando questa casella di controllo è abilitata esso caricherà il link dell'oggetto automaticamente quando l'oggetto selezionato cambia.
Ignorare i commenti del notiziario per questo abbonamento.
Talvolta ci sono notiziari con commenti corrotti o inutili. Questa opzione ti consente di ignorarli.
Forza la notifica popup per questo articolo.
Se la preferenza di notifica globale è disabilitata puoi abilitare quest'opzione per generare notifiche solo per questo notiziario.
Non mostrare mai notifiche popup per questo articolo.
Se la preferenza di notifica globale è abilitata puoi usare quest'opzione per per prevenire notifiche da questo notiziario. Ciò potrebbe essere utile per i notiziari aggiornati frequentemente.
Segnare articoli scaricati come letti.
Di norma i nuovi oggetti hanno lo stato "non letto". Certe volte potresti voler utilizzare questo settaggio per far si che i nuovi oggetti di un notiziario speciale non appaiano come "non letti" così non li dovrai segnare manualmente come "letti".

Abbonarsi a Fonti OPML e Servizi Online

Per abbonarti agli elenchi di notiziari OPML o ad account di servizi online seleziona "Nuova Fonte" dal menu contestuale dell'elenco degli abbonamenti o dal menu "Notiziari". Dalla finestra che appare seleziona il tipo di fonte che desideri creare.

Fonti OPML

Se hai selezionato "Planet, BlogRoll, OPML" hai bisogno di fornire l'URL del documento OPML. Se serve inserisci le informazioni di autenticazione. Dopo averlo fatto un nuovo nodo sorgente OPML sarà inserito nell'elenco dei notiziari e, dopo aver scaricato il documento OPML per la prima volta, i nuovi abbonamenti descritti dalla fonte OPML verranno creati. Se l'elenco di notiziari OPML cambia nel tempo i vecchi abbonamenti vengono scartati e ne vengono aggiunti di nuovi.

lwindolf-liferea-508e7a9/doc/html/subscriptions_ru.html000066400000000000000000000437451451527772200233460ustar00rootroot00000000000000 Работа с подписками

Этот раздел описывает все действия пользователя по созданию и поддержке подписок.

На что можно оформить подписку в Liferea

Агрегатор новостей Liferea позволяет подписываться на различные службы синдикации новостей. Конечно, наиболее распространённым вариантом использования будет подписка на отдельные каналы. Но Liferea также поддерживает подписку на службы, которые обеспечивают создание коллекций новостных каналов. Таким образом, подписку можно оформить на:

  • отдельный канал
  • любую службу OPML (список каналов Planet, список ссылок на блоги…)
  • сетевую учётную запись TheOldReader
  • сетевую учётную запись TinyTinyRSS

Оформление подписки на канал

Для создания новой подписки на канал необходимо выбрать пункт «Новый канал» из контекстного меню списка каналов или из меню «Подписки». При этом откроется диалоговое окно для создания новой подписки.

Например, чтобы подписаться на новостной канал Slashdot, необходимо ввести в текстовое поле строку с адресом "http://slashdot.org/index.rss" и нажать «OK».

Расширенные возможности создания каналов подписки

Liferea поддерживает получение каналов из различных источников, включая URL-адреса в Интернете, выводы локально выполняемых команд, а также непосредственное чтение файла. В большинстве случаев рекомендуется стандартная регистрация на базе URL-адреса, как это описано в предыдущем параграфе. Для особых случаев подписки необходимо выбрать «Дополнительно…», при этом откроется диалоговое окно с расширенными, более сложными вариантами оформления подписки:

После выбора необходимого типа источника, введите URL-адрес, имя команды или файла в текстовое поле «Источник».

При вводе команды или локального файла возможен выбор с помощью диалогового окна «Выбор файла…».

Данные в канале могут иметь формат, неизвестный Liferea. В таких случаях для переконвертирования данных в необходимый формат можно использовать фильтр преобразования. Многие фильтры можно загрузить с репозитория сценариев Snownews и Liferea.

Для использования фильтров преобразования в диалоговом окне оформления подписки необходимо установить флажок «Использовать фильтр преобразования». Фильтр указывается путём ввода пути сценария фильтра в текстовое поле «Преобразовать с помощью» или непосредственным выбором фильтра с помощью кнопки «Выбрать файл». Фильтры — это простые программы, которые считывают неподдерживаемый формат из stdin и выводят поддерживаемый формат канала в stdout. Многие фильтры преобразования написаны на языке Perl.

Изменение свойств подписки

Диалоговое окно свойств подписки используется для создания дополнительных настроек канала и открывается из меню «Подписки» или из контекстного меню. После успешного создания новой подписки обычно не возникает потребности в изменении свойств канала.

Однако такая необходимость может возникнуть в случае изменения HTTP-аутентификации, параметров кэширования или других специфических параметров, настройка которых выполняется в диалоговом окне параметров канала.

Диалоговое окно подразделяет свойства канала на пять вкладок: «Основные», «Источник», «Хранение», «Загрузка» и «Дополнительно»:

Основные свойства

Вкладка «Основные» позволяет задать имя канала и интервал обновления. Имя канала указывается в списке каналов. Несколько каналов могут иметь одно и то же имя.

Интервал обновления канала позволяет задать периодичность попыток обновления канала в Liferea. В большинстве случаев можно можно оставить значение интервала по умолчанию. При этом рекомендуется использовать один общий интервал обновления, настраиваемый в диалоговом окне настройки параметров программы, так как это позволяет одним параметром изменять интервал обновления сразу для всех каналов.

Иногда каналы устанавливают свои интервалы обновления. В таком случае Liferea автоматически подключает использование собственного интервала обновления и вводит заданную величину интервала обновления для канала. Это происходит только в ходе оформления подписки. Изменение этого параметра в дальнейшем нецелесообразно.

Возможны следующие варианты установки интервала обновления канала:

Использовать единый интервал обновления по умолчанию
Задаёт использование единого интервала обновления для всех каналов, которые используют обновление с интервалом по умолчанию.
Использовать собственный интервал обновления для канала
Возможны ситуации, когда обновление должно выполняться чаще или реже, чем задано в едином интервале по умолчанию. В таких случаях необходимо выбрать использование собственного интервала и ввести соответствующее значение. При указании интервала обновления необходимо учитывать веб-трафик, который будет потрачен при указании неверного значения. Не обновляйте канал чаще, чем обновляется содержимое канала.
Не обновлять канал автоматически
Данный параметр отключает автоматическое обновление канала. Это полезно при необходимости обновлять канал только вручную.

Свойства источника

Вкладка «Источник» содержит те же самые поля, что и диалоговое окно дополнительных параметров подписки. Можно использовать эти установки в случае изменения источника канала (например, при изменении URL-адреса канала).

Свойства хранения

Третья вкладка, «Хранение», устанавливает число новостей в канале при сохранении канала на диск. Аналогично настройке параметров интервала обновления, существуют базовые параметры, задающие размер кэша по умолчанию для всех каналов. При этом собственные настройки параметров кэша для отдельного канала могут использоваться только в виде исключения из общего правила.

Параметры кэша по умолчанию
Задаёт размеры кэша по умолчанию, установленные в главных параметрах настройки Liferea.
Отключить кэш
Полностью отключает сохранение новостей для данного канала.
Неограниченное сохранение в кэш
Сохраняет все загружаемые новости.
Количество сохраняемых новостей
Ограничивает размер кэша фиксированным значением.

Примечание: Новости с меткой «важное» сохраняются всегда независимо от параметров настройки кэша. Поэтому, предотвратить удаление из кэша важных новостей, которые должны быть сохранены, возможно путём присвоения им метки «важное».

Свойства загрузки

Эта вкладка позволяет отключать использование единых настроек прокси-сервера и активировать HTTP-аутентификацию при загрузке канала. Установите флажок и введите соответствующие значения логина и пароля для защищённых паролем каналов. Однако обычно эти параметры не используются, поскольку запрос логина и пароля происходит при оформлении подписки на требующие аутентификации каналы.

Дополнительные свойства

На этой вкладке представлены различные дополнительные параметры, позволяющие управлять подписками Liferea:

Автоматически загружать все вложения в этом канале.
Это может быть полезно для подкастов или torrent-каналов. При включении этого параметра Liferea загружает вложения.
Автоматически загружать статью в заданном браузере при выборе заголовка.
По умолчанию Liferea показывает описание новости в панели просмотра HTML. В случае установки этого флажка при выборе новости автоматически выполняется загрузка её ссылки.
Игнорировать каналы комментариев для данной подписки.
Иногда встречаются каналы со повреждёнными или бесполезными каналами комментариев. Этот параметр позволяет их игнорировать.
Всегда выводить всплывающие уведомления для этой подписки
При отключении вывода уведомлений в общих параметрах по умолчанию данный параметр позволит выводить уведомления только для этого канала.
Никогда не выводить всплывающие уведомления.
При включении вывода уведомлений в общих параметрах по умолчанию данный параметр позволит не выводить уведомления для этого канала. Этот параметр может быть полезен для каналов с высоким трафиком.
Отмечать прочитанными загруженные новости.
обычно после загрузки новости имеют статус «непрочитано». В некоторых случаях для некоторых конкретных каналов этот параметр у только что загруженных новостей предпочтительно сразу устанавливать в состояние «прочитано», чтобы избежать необходимости менять это состояние вручную.

Подписка на OPML-каналы и веб-службы

Для оформления подписки на списки OPML-каналов или подключения учётной записи веб-службы выберите пункт «Новый источник каналов» из контекстного меню списка каналов или из меню «Подписки». В открывшемся диалоговом окне выберите необходимый тип источника.

Источники OPML

При выборе «Planet/BlogRoll/OPML» требуется предоставить URL-адрес документа OPML. Введите данные для аутентификации по запросу. После этого в список каналов будет добавлен новый источник каналов OPML и при первой загрузке документа OPML будет оформлена новая подписка в соответствии с описанием в источнике OPML. Если список каналов OPML со временем изменится, выполняется автоматическое удаление старых подписок и добавление новых.

lwindolf-liferea-508e7a9/doc/html/topics_de.html000066400000000000000000000027061451527772200216720ustar00rootroot00000000000000 Hilfe Inhalt

Dies ist die Endnutzerdokumentation für Liferea 1.14.

Hilfe Themen

Online Support

lwindolf-liferea-508e7a9/doc/html/topics_en.html000066400000000000000000000027451451527772200217070ustar00rootroot00000000000000 Help Contents

This user documentation applies for Liferea 1.14.

Help Topics

Online Support

lwindolf-liferea-508e7a9/doc/html/topics_it.html000066400000000000000000000030371451527772200217140ustar00rootroot00000000000000 Guida

Questa documentazione utente si applica a Liferea 1.14.

Argomenti della Guida

Supporto in Linea

lwindolf-liferea-508e7a9/doc/html/topics_ru.html000066400000000000000000000036011451527772200217230ustar00rootroot00000000000000 Оглавление справки

Это руководство пользователя составлено для Liferea 1.14.

Разделы справки

Поддержка в Интернет

lwindolf-liferea-508e7a9/doc/html/updating_de.html000066400000000000000000000055331451527772200222050ustar00rootroot00000000000000 Aktualisieren von Abonnements

Aktualisieren von Abonnements

Wie man ein einzelnes Abonnement aktualisiert

Zum sofortigen Aktualisieren eines einzelnen Abonnement reicht es aus den "Aktualisieren" Menüpunkt aus dem Hauptmenü oder Kontextmenü des Abonnements aufzurufen.

Wie man alle Abonnements auf einmal aktualisiert

Eine Aktualisierung aller Abonnements kann mit dem "Alle Aktualisieren" Button in der Werkzeugleiste oder dem entsprechenden Menupünkt im "Abonnement" Menü gestartet werden.

Die automatische Aktualisierung benutzen

Um alle Abonnements regelmäßig automatisch zu aktualisieren kann in den Einstellungen ein globales Aktualisierungsintervall in Minutengenauigkeit eingestellt werden. Dazu muß der Einstellungen-Dialog aufgerufen werden. Mehr dazu im Abschnitt Einstellungen ändern.

Soll ein einzelnes Abonnement öfter oder seltener als nach dem globalen Aktualisierungsintervall aktualisiert werden kann ein spezifisches Aktualisierungsintervall in den Eigenschaften des Abonnements konfiguriert werden. Dazu muß der Eigenschaften-Dialog mit dem "Eigenschaften" Menüpunkt aus dem Hauptmenü oder aus dem Kontextmenü des Abonnements aufgerufen werden. Hinweis: Abonnements sollten nicht öfter aktualisiert werden als sich ihr Inhalt ändert. Ansonsten wird unnötig Datenverkehr erzeugt wenn z.B. tausende Clients alle paar Minuten das Feed abrufen!

Manche Feeds geben ein eigenes Aktualisierungsinterval vor. In diesem Fall verwendet Liferea automatisch dieses Intervall anstatt des globalen Aktualisierungsintervall.

Aktualisieren von Abonnements beim Programmstart

Standardmäßig aktualisiert Liferea nach dem Start alle veralteten Abonnements. Ist das nicht erwünscht kann das Verhalten in den Programmeinstellungen deaktiviert werden. Mehr dazu im Abschnitt Einstellungen ändern.

lwindolf-liferea-508e7a9/doc/html/updating_en.html000066400000000000000000000052571451527772200222220ustar00rootroot00000000000000 Updating Subscriptions

Updating Subscriptions

How to update a single subscription

To update a single subscription select it in the feed list and select "Update" or "Update Folder" from the program menu or the context menu from within the feed list.

How to update all feeds at once

To update all subscriptions at once use the "Refresh" button from the toolbar or the option "Update All" from the "Subscriptions" menu.

Using Auto Update

To automatically update all subscriptions you can set a global update interval with the resolution of one minute. To do so you have to use the preferences dialog. To learn more about this refer to the Program Preferences section.

If you like to have some subscriptions to be updated more or less frequently than the global default update interval you can set an per-subscription update interval in the subscription properties. To do so select a subscription from the feed list and select "Properties" from the "Feed" menu or the contextual menu. Note: you should not update a feed more often then the content is changing. Think of the web traffic some thousands of clients polling each minute could create!

To help with the decision for a good update interval some subscriptions provide an own update interval. When you create a new subscription this value will be set as the default update interval. This setting will overrule the global default update interval.

Updating all feeds on program startup

On startup Liferea automatically updates all out-dated subscriptions. If you don't like this you can disable this behaviour in the program preferences. To learn more about this refer to the Program Preferences section.

lwindolf-liferea-508e7a9/doc/html/updating_it.html000066400000000000000000000060001451527772200222170ustar00rootroot00000000000000 Aggiornare gli Abbonamenti

Aggiornare gli Abbonamenti

Come aggiornare un singolo abbonamento

Per aggiornare un singolo abbonamento selezionalo nell'elenco dei notiziari e scegli "Aggiorna" o "Aggiorna Cartella" dal menu del programma o dal menu contestuale dall'elenco dei notiziari.

Come aggiornare tutti i notiziari in una volta

Per aggiornare tutti gli abbonamenti contemporaneamente usa il pulsante "Aggiorna" dalla barra degli strumenti o l'opzione "Aggiorna Tutto" dal menu "Abbonamenti".

Usare l'Aggiornamento Automatico

Per aggiornare automaticamente tutti gli abbonamenti puoi settare un intervallo di aggiornamento globale con la risoluzione di un minuto. Per farlo devi usare la finestra delle preferenze. Per imparare di più riguardo a questo fai riferimento alla sezione Modificare le Preferenze.

Se desideri che alcuni abbonamenti siano aggiornati più o meno frequentemente dall'aggiornamento predefinito globale puoi impostare un intervallo di aggiornamento per ciascun abbonamento nelle proprietà dell'abbonamento. Per far questo seleziona un abbonamento dalla lista dei notiziari e scegli "Proprietà" dal menu "Notiziario" o dal menu contestuale. Nota: non dovresti aggiornare un notiziario più spesso di quanto cambino i contenuti. Pensa al traffico web che potrebbero creare alcune migliaia di client che interpellano il server web ogni minuto!

Per aiutare nel decidere un buon intervallo di aggiornamento alcuni abbonamenti forniscono un proprio intervallo di aggiornamento. Quando crei un nuovo aggiornamento questo valore sarà impostato come intervallo predefinito. Questa impostazione avrà la precedenza sull'intervallo globale.

Aggiornare Tutti i Notiziari all'Avvio del Programma

All'avvio Liferea aggiorna automaticamente tutti gli abbonamenti obsoleti. Se questo non ti piace puoi disabilitare questo comportamento nelle preferenze del programma. Per imparare di più al riguardo dai riferimento alla sezione Modificare le Preferenze.

lwindolf-liferea-508e7a9/doc/html/updating_ru.html000066400000000000000000000106121451527772200222350ustar00rootroot00000000000000 Обновление подписок

Обновление подписок

Обновление одной подписки

Для обновления одной подписки выделите её в списке каналов и выберите пункт «Обновить» или «Обновить папку» из меню программы или контекстного меню списка каналов.

Обновление всех подписок сразу

Для обновления всех подписок сразу нажмите на кнопку «Обновить» на панели инструментов или выберите пункт «Обновить все» из меню «Подписки».

Автоматическое обновление

Для автоматического обновления всех подписок можно задать общий интервал обновления с точностью в одну минуту. Этот параметр может быть установлен в диалоговом окне настройки параметров. Более подробная информация по этому вопросу представлена в разделе Настройка параметров программы.

Если же какие-то подписки должны обновляться с большей или меньшей частотой, нежели задано в параметрах по умолчанию, то может быть установлен собственный интервал обновления в свойствах конкретной подписки. Для этого выберите подписку из списка каналов и выберите пункт «Свойства» из меню «Канал» или контекстного меню. Примечание: не следует обновлять подписку чаще, чем изменяется её содержимое. Представьте себе какой колоссальный трафик могут создать тысячи клиентов ежеминутно отправляющие запросы на обновление!

Помощь в выборе разумного интервала обновления иногда оказывают сами подписки, предоставляющие свой собственный интервал обновления. При создании новой подписки это значение будет задано в качестве интервала обновления по умолчанию. Также это значение будет иметь приоритет над общим интервалом обновления.

Обновление всех каналов при запуске программы

При запуске Liferea автоматически обновляет все каналы с истекшим сроком обновления. Изменить это поведение можно в параметрах программы. Более подробная информация предоставлена в разделе Настройка параметров программы.

lwindolf-liferea-508e7a9/dtd/000077500000000000000000000000001451527772200160705ustar00rootroot00000000000000lwindolf-liferea-508e7a9/dtd/html.ent000066400000000000000000000725631451527772200175610ustar00rootroot00000000000000 lwindolf-liferea-508e7a9/glade/000077500000000000000000000000001451527772200163715ustar00rootroot00000000000000lwindolf-liferea-508e7a9/glade/Makefile.am000066400000000000000000000011221451527772200204210ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in gladedir = $(pkgdatadir) glade_DATA = about.ui \ auth.ui \ enclosure_handler.ui \ google_source.ui \ liferea_menu.ui \ liferea_toolbar.ui \ mainwindow.ui \ mark_read_dialog.ui \ new_folder.ui \ new_newsbin.ui \ new_subscription.ui \ node_source.ui \ opml_source.ui \ prefs.ui \ properties.ui \ reedah_source.ui \ rename_node.ui \ search_folder.ui \ search.ui \ simple_search.ui \ simple_subscription.ui \ theoldreader_source.ui \ ttrss_source.ui \ update_monitor.ui \ liferea.css EXTRA_DIST = \ $(glade_DATA) lwindolf-liferea-508e7a9/glade/about.ui000066400000000000000000000101141451527772200200370ustar00rootroot00000000000000 False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 About False center-on-parent dialog Liferea Liferea is a news aggregator for GTK+ https://lzone.de/liferea/ Liferea Homepage Developers: Lars Windolf Nathan Conrad Arnold Noronha Adrian Bunk Emilio Pozuelo Monfort Laetitia Berthelot Contributors: Code, Patches, Debugging James Doherty Jeremy Messenger John McKnight Tomasz Maka Karl Soderstrom Christophe Barbe Juho Snellman Roshan Revankar Johannes Schlueter Niklas Morberg Pierre Phaneuf ahmed el-helw James Bowes Marc Deslauriers Amit D. Chaudhary Christoph Hohmann Raphael Slinckx Bjorn Monnens Thomas de Grenier de Latour Aristotle Pagaltzis Norman Jonas Sebastian Droege Daniel Gryniewicz Remi Cardona Frederic Peters Don Malcolm Ed Catmur Chris Pirillo Eric Anderson Daniel Gryniewicz Ori Avtalion Stephan Maka Alexander Sack Gustavo Chain Lars Strojny Jon Forsberg Mathie Leplatre Mikel Olasagasti Maia Kozheva Peter Oliver Sergey Snitsaruk Lorenzo L. Ancora and many more... Lars Windolf Bart Kreska Wojciech Myrda Piotr Sokół Dario Conigliaro Emanuele Grande Gianvito Cavasoli Fernando Ike de Oliveira Og Maciel Leon Nardella Khaled Hosny Sargate Kanogan Rodrigo Gallardo Takeshi AIHANA Takeshi Hamasaki Vincent Lefèvre Daniel Nylander Mehmet Atif Ergun Eren Türkay Ihar Hrachyshka António Lima Bruno Miguel Martin Picek Justin Forest Oleg Maloglovets Sergey Rudchenko Leonid Selivanov Máté Őry Gabor Kelemen Pavol Klačanský Evgenia Petoumenou Besnik Bleta Christian Dywan Robin Stocker Paul Seyfert Gil Forcada Iñaki Larrañaga Murgoitio Mikel Olasagasti Uranga Adi Roiban Erwin Poeze Anxo Outeiral Aron Xu Joe Hansen Marquinos Iñigo Varela Yaron Sheffer Yuri Chornoivan Rūdolfs Mazurs Rihards Priedītis Mindaugas Baranauskas Trần Ngọc Quân Pauli Virtanen Jorma Karvonen Guillaume Bernard Lorenzo L. Ancora net.sourceforge.liferea gpl-2-0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK end False False end 0 lwindolf-liferea-508e7a9/glade/auth.ui000066400000000000000000000163511451527772200176770ustar00rootroot00000000000000 True False 5 Authentication False dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True True False True False False 1 False False end 0 True False start False 5 vertical 12 True False Enter the username and password for "%s" (%s) True 0 0 0 True False 6 12 True False User_name: True usernameEntry 0 0 0 True True True 1 0 True False _Password: True passwordEntry 0 0 1 True True False True 1 1 0 1 False True 1 cancelbutton2 okbutton1 lwindolf-liferea-508e7a9/glade/enclosure_handler.ui000066400000000000000000000222121451527772200224230ustar00rootroot00000000000000 True False 5 Open Enclosure False dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False False end 0 True False 5 12 True False 6 True False Open an enclosure of type: 0 False False 0 True False 6 text/plain False False 1 True False _What should Liferea do with this enclosure? Please enter the command you want to be executed below. The enclosures URL will be supplied as an argument for this command: True True enc_cmd_entry 60 60 0 False False 2 True False 6 True True True True 0 _Browse True True False True False False 1 True True 3 _Do this automatically for enclosures like this from now on. True True False True True False False 4 False True 0 False True 1 cancelbutton4 okbutton3 lwindolf-liferea-508e7a9/glade/google_source.ui000066400000000000000000000263231451527772200215720ustar00rootroot00000000000000 True False Add Google Reader API Account dialog True False vertical True False end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False False end 0 True False 12 12 True False Please enter the details of the new Google Reader API compatible subscription. True 0 False False 0 True False 4 2 6 6 True True 1 2 True False _Password True 0 3 4 GTK_FILL True False _Username (Email) True 0 2 3 GTK_FILL True False _Server True 0 1 2 GTK_FILL True False _Name True 0 GTK_FILL True True False 1 2 3 4 True True 1 2 2 3 True True 1 2 1 2 False True 1 False True 2 cancelbutton1 okbutton1 lwindolf-liferea-508e7a9/glade/liferea.css000066400000000000000000000001211451527772200205040ustar00rootroot00000000000000#browsertabs, box > box { margin-right: 5px; margin-top: 5px; margin-left: 5px} lwindolf-liferea-508e7a9/glade/liferea_menu.ui000066400000000000000000000174361451527772200213760ustar00rootroot00000000000000 _Subscriptions
app.update-all Update _All app.mark-all-feeds-read Mark All As _Read
app.new-subscription _New Subscription... app.new-folder New _Folder... app.new-vfolder New S_earch Folder... app.new-source New _Source... app.new-newsbin New _News Bin...
app.import-feed-list _Import Feed List... app.export-feed-list _Export Feed List...
app.quit _Quit
_Feed
app.update-selected _Update app.mark-selected-feed-as-read _Mark Items Read
app.remove-selected-feed-items Remove _All Items app.delete-selected _Remove
app.selected-node-properties _Properties
_Item
app.next-unread-item _Next Unread Item
app.prev-read-item Previous Item app.next-read-item Next Item
app.toggle-selected-item-read-status Toggle _Read Status app.toggle-selected-item-flag Toggle Item _Flag app.remove-selected-item R_emove
app.launch-selected-item-in-tab Open In _Tab app.launch-selected-item-in-browser _Open In Browser app.launch-selected-item-in-external-browser Open In _External Browser
_View
app.fullscreen _Fullscreen
app.zoom-in Zoom _In app.zoom-out Zoom _Out app.zoom-reset _Normal size
app.reduced-feed-list _Reduced Feed List
_Tools
app.show-update-monitor _Update Monitor app.show-preferences _Preferences
S_earch
app.search-feeds Search All Feeds...
_Help
app.show-help-contents _Contents app.show-help-quick-reference _Quick Reference app.show-help-faq _FAQ
app.show-about _About
lwindolf-liferea-508e7a9/glade/liferea_toolbar.ui000066400000000000000000000072221451527772200220640ustar00rootroot00000000000000 True True True app.new-subscription True _New Subscription... Adds a subscription to the feed list. list-add True True app.mark-selected-feed-as-read True _Mark Items Read Marks all items of the selected feed list node / in the item list as read. gtk-apply True False app.prev-read-item Previous Item go-previous True False app.next-read-item Next Item go-next True True app.next-unread-item True _Next Unread Item go-jump True True app.update-all True Update _All Updates all subscriptions. view-refresh True True app.search-feeds Search All Feeds... Show the search dialog. edit-find lwindolf-liferea-508e7a9/glade/mainwindow.ui000066400000000000000000000336671451527772200211230ustar00rootroot00000000000000 100 1 1 False Liferea 640 480 liferea True False True True vertical True True True True 170 True True never in True True False True False True True True False True True True False False True True vertical 199 True True False none False True True False vertical True False True True none 0 0 True True True False page 1 False True True 100 True True False none False True True False True False True True none 0 0 True True 1 True False page 2 1 False True False Headlines False True True 0 0 True False 6 6 0 0 0 1 lwindolf-liferea-508e7a9/glade/mark_read_dialog.ui000066400000000000000000000075341451527772200222050ustar00rootroot00000000000000 True False True Mark all as read ? True dialog question Mark items as read ? Are you sure you want to mark all items in the selected feed as read ? False 5 5 5 5 vertical 2 False True end Mark all as read True True True True True 0 gtk-cancel True True True True True True 1 False False 0 Do not ask again True True False start center 12 True True True 2 okButton cancelButton lwindolf-liferea-508e7a9/glade/new_folder.ui000066400000000000000000000120321451527772200210520ustar00rootroot00000000000000 False 5 New Folder False True center-on-parent dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True True False True False False 1 False False end 0 True False 5 6 12 True False _Folder name: True foldertitleentry 0 0 True True True 1 0 False True 1 button3 button2 lwindolf-liferea-508e7a9/glade/new_newsbin.ui000066400000000000000000000127711451527772200212560ustar00rootroot00000000000000 False 5 Create News Bin True center-on-parent dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True True False True False False 1 False False end 0 True False 5 6 12 True False _News Bin Name: True newsbinnameentry 0 0 True True True 1 0 _Always show in Reduced Feed List True True False True True 0 1 2 False True 1 cancelbutton6 newnewsbinbtn lwindolf-liferea-508e7a9/glade/new_subscription.ui000066400000000000000000000403101451527772200223230ustar00rootroot00000000000000 True False 5 New Subscription True center 400 dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False False end 0 True False vertical 18 True False True 6 12 True False Feed Source 0 0 0 3 True False 12 Source Type: 0 0 0 1 3 _URL True True False True True True 1 1 2 _Command True True False True True feed_loc_url 1 2 2 _Local File True True False True True feed_loc_url 1 3 Select File... True True False True 2 3 True False 12 _Source: True sourceEntry 0 0 4 True True True 1 4 2 0 0 True False 6 12 True False Download / Postprocessing 0 0 0 _Don't use proxy for download True True False 12 True True 0 1 Use conversion _filter True True False 12 True True 0 2 True False 12 6 12 True False Liferea can use external filter plugins in order to access feeds and directories in non-supported formats. See the documentation for more information. True 0 0 0 3 True False Convert _using: True filterEntry 0 0 1 True True 1 1 Select File... True True False True 2 1 0 3 0 1 True True 1 cancelbtn newfeedbtn lwindolf-liferea-508e7a9/glade/node_source.ui000066400000000000000000000132101451527772200212320ustar00rootroot00000000000000 True False Source Selection True 300 400 True dialog 450 True False vertical True False end gtk-cancel True True True False True False False 0 gtk-ok True False True True False True False False 1 False True end 0 True False vertical True False _Select the source type you want to add... True type_list 0 False False 0 True True True never in 400 True True False True True True 1 True True 1 cancelbutton1 ok_button lwindolf-liferea-508e7a9/glade/opml_source.ui000066400000000000000000000145701451527772200212660ustar00rootroot00000000000000 True False Add OPML/Planet dialog True False vertical True False end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False False end 0 True False 12 12 True False Please specify a local file or an URL pointing to a valid OPML feed list. True 0 False False 0 True False 6 True False _Location True location_entry False False 0 True True True True 1 _Select File True True False True False False 2 False True 1 False True 2 cancelbutton1 okbutton1 lwindolf-liferea-508e7a9/glade/prefs.ui000066400000000000000000003136471451527772200200650ustar00rootroot00000000000000 1 10000 1 1 1000000 1 1 True False 5 Liferea Preferences center 300 dialog True False vertical 2 True False end gtk-close True True True False True False False 0 False True end 0 True True 5 left True False 12 vertical 18 True False 6 12 True False Feed Cache Handling 0 0 0 2 True False 12 Default _number of items per feed to save: True True itemCountBtn 0 0 1 60 True True 0 adjustment3 1 True 1 1 0 0 True False 6 12 True False Feed Update Settings 0 0 0 3 True False 12 False False False 0 False True False Note: <i>Please remember to set a reasonable refresh time. Usually it is a waste of bandwidth to poll feeds more often than each hour.</i> True True True globalRefreshIntervalUnitComboBox 0 False True 0 False False 0 0 4 3 _Update all subscriptions at startup. True True False start 12 12 True True 0 1 3 True False 12 12 Default Feed Refresh _Interval: True globalRefreshIntervalSpinButton 0 0 2 60 True True 1 adjustment2 1 1 1 2 True False 0 2 2 0 1 True False Feeds False True False 12 vertical 18 True False 6 True False Folder Display Settings 0 0 0 _Show the items of all child feeds when a folder is selected. True True False start 12 True True 0 1 _Hide read items. True True False start 12 True True 0 2 0 0 True False 6 True False Feed Icons (Favicons) 0 0 0 _Update all favicons now True True False 12 True 0 1 0 1 1 True False Folders 1 False True False 12 vertical 18 True False vertical 6 12 True False Reading Headlines 0 0 0 2 True False 12 _Skim through articles with: True skimKeyCombo 0 0 1 True False 12 _Default View Mode: True defaultViewModeCombo 0 0 2 True False 0 1 1 True False 0 1 2 _Defer removing read items from folders and search folders. True True False start 12 True True 0 3 Ask for confirmation when marking all items as read. True True False start 12 True 0 4 0 0 True False vertical 6 12 True False Web Integration 0 0 0 2 True False 12 _Post Bookmarks to True socialpopup 0 0 1 True False 1 1 0 1 2 True False Headlines 2 False True False 12 vertical 18 True False vertical 6 True False Internal Browser Settings 0 0 0 Open links in Liferea's _window. True True False start 12 True True 0 1 _Never run external Javascript. True True False start 12 True True 0 2 _Enable browser plugins. True True False start 12 True True 0 3 0 0 True False vertical 6 12 True False External Browser Settings 0 0 0 2 True False 12 _Browser: True browserpopup 0 0 1 True False 12 _Manual: True browsercmd 0 0 2 True True True 1 2 True False <small>(%s for URL)</small> True 0 1 3 True False 1 1 0 1 3 True False Browser 3 False True False 12 vertical 6 12 True False Toolbar Settings 0 0 0 2 _Hide toolbar. True True False start 12 True True 0 1 2 True False 12 Toolbar _button labels: True toolbarCombo 0 0 2 True False 0 1 2 4 True False Desktop 4 False True False 12 6 True False HTTP Proxy Server 0 0 0 _Auto Detect (GNOME or environment) True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start 12 True True True 0 2 _No Proxy True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start 12 True True proxyAutoDetectRadio 0 3 _Manual Setting: True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start 12 True True proxyAutoDetectRadio 0 4 True False start 12 vertical 6 12 True False 12 Proxy _Host: True proxyhostentry 0 0 0 True True True 1 0 True False 12 Proxy _Port: True proxyportentry 0 0 1 True True True 1 1 Use Proxy Au_thentication True True False start 12 True True 0 2 2 True False start 21 6 12 True False 12 Proxy _Username: True proxyusernameentry 0 0 0 True True True 1 0 True False 12 Proxy Pass_word: True proxypasswordentry 0 0 1 True True start False True 1 1 0 3 2 0 5 True False warning False 6 end False False 0 False 16 True False Your version of WebKitGTK+ is older than 2.15.3. It doesn't support per application proxy settings. The system's default proxy settings will be used. True False True 0 False False 0 0 1 5 True False Proxy 5 False True False 12 vertical 6 12 True False Privacy Settings 0 0 0 Tell sites that I do _not want to be tracked. True True False start 12 True True 0 2 True False _Intelligent Tracking Prevention. True True False start 12 True True False True 0 True False This enables the WebKit feature described <a href="https://webkit.org/tracking-prevention/">here</a>. True True False True 1 0 3 False start 24 False 6 end False False 0 False 16 True False Intelligent tracking prevention is only available with WebKitGtk+ 2.30 or higher. False True 1 False False 0 0 4 True False Use _Reader mode. True True False start 12 True True False True 0 True False This enables <a href="https://github.com/mozilla/readability">stripping</a> all non-content elements (like scripts, fonts, tracking) True False True 1 0 1 6 True False Privacy 6 False True False 12 18 True False 6 12 True False Downloading Enclosures 0 0 0 3 True False 12 _Download using True predefinedDownload 0 0 1 True True False True True 1 1 True True False True True predefinedDownload 1 2 True False <small>(%s for URL)</small> True True customDownload 1 0 2 True False 0 2 1 True True custom-command %s 2 2 0 0 True False True True vertical 6 12 True False Opening Enclosures True enc_action_view 0 0 0 True True 12 True True in 100 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True 0 1 True False start 12 12 start gtk-properties True True False start True False False 0 gtk-delete True True False start True False False 1 0 2 0 1 7 True False Enclosures 7 False False True 1 prefclosebtn lwindolf-liferea-508e7a9/glade/properties.ui000066400000000000000000001263061451527772200211340ustar00rootroot00000000000000 10000 1 1 10000 1 1 True False 5 Subscription Properties center 300 dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True True False True False False 1 False False end 0 True True 5 True False 12 vertical 18 True False 6 12 True False Feed _Name True feedNameEntry 0 0 0 True True True True 0 1 0 0 True False 6 12 True False Update _Interval True updateIntervalDefault 0 0 0 3 _Use global default update interval. True True False 12 True 0 True True 0 1 3 _Feed specific update interval of True True False 12 True True updateIntervalDefault 0 2 True True 1 adjustment5 1 1 1 2 True False liststore6 0 2 2 _Don't update this feed automatically. True True False 12 True 0 True updateIntervalDefault 0 3 3 True False 0 4 3 339 True False 12 This feed provider suggests an update interval of %d minutes. True 0 0 5 3 0 1 True False General False True False 12 6 12 True False Feed Source 0 0 0 3 True False 12 Source Type: 0 0 0 1 3 _URL True True False True 0 True True 1 1 2 _Command True True False True 0 True feed_loc_url 1 2 2 _Local File True True False True 0 True feed_loc_url 1 3 Select File... True True False True 2 3 True False 12 _Source: True sourceEntry 0 0 4 True True 1 4 2 Use conversion _filter True True False 12 True 0 True 0 5 3 True False 24 Liferea can use external filter scripts in order to access feeds and directories in non-supported formats. True 0 0 6 3 True False 12 6 12 True False Convert _using: True filterEntry 0 0 True True True 1 0 Select File... True True False True 2 0 0 7 3 1 True False Source 1 False True False 12 6 12 347 True False The cache setting controls if the contents of feeds are saved when Liferea exits. Marked items are always saved to the cache. True 0 0 0 2 _Default cache settings True True False True True True 0 1 2 Di_sable cache True True False True True feedCacheDefault 0 2 2 _Unlimited cache True True False True True feedCacheDefault 0 3 2 _Number of items to save: True True False True True feedCacheDefault 0 4 True True 0 adjustment4 1 True True 1 4 2 True False Archive 2 False True False 12 6 12 Use HTTP _authentication True True False True True 0 0 _Don't use proxy for download True True False True True 0 2 True False 12 True 6 12 True False User_name: True usernameEntry 0 0 0 True True True 1 0 True False _Password: True passwordEntry 0 0 1 True True True False 1 1 0 1 3 True False Download 3 False True False 12 6 12 _Automatically download all enclosures of this feed. True True False True True 0 0 Auto-_load item link in configured browser when selecting articles. True True False True True 0 1 Ignore _comment feeds for this subscription. True True False True True 0 2 _Mark downloaded items as read. True True False True True 0 3 Extract full content from HTML5 and Google AMP True True False True True 0 4 4 True False Advanced 4 False False True 1 prop_cancel prop_ok lwindolf-liferea-508e7a9/glade/reedah_source.ui000066400000000000000000000170301451527772200215410ustar00rootroot00000000000000 True False Add Reedah Account dialog True False vertical True False end gtk-cancel False True True True False False True False False 0 gtk-ok False True True True False False True False False 1 False True end 0 True False 12 12 True False 0 Please enter your Reedah account settings. True False False 0 True False 2 2 6 6 True True False 1 2 1 2 True True 1 2 True False 0 _Password True passwordEntry 1 2 GTK_FILL True False 0 _Username (Email) True userEntry GTK_FILL False True 1 False True 2 cancelbutton1 okbutton1 lwindolf-liferea-508e7a9/glade/rename_node.ui000066400000000000000000000115251451527772200212100ustar00rootroot00000000000000 False 5 Rename False True center-on-parent dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True True False True False False 1 False False end 0 True False 5 6 12 True False _New Name: True nameentry 0 0 True True True 1 0 False True 1 cancelbutton1 namechangebtn lwindolf-liferea-508e7a9/glade/search.ui000066400000000000000000000332371451527772200202050ustar00rootroot00000000000000 True False 5 Advanced Search 600 250 dialog True False vertical 2 True False end gtk-close True True True False True False False 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-add True True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK _Search Folder... True savesearchbtn True True 1 False False 1 gtk-find True True True False True False False 2 False False end 0 True False vertical True False Find Items that meet the following criteria 0 False False 0 True False 12 True False 6 True False vertical 12 True False 6 gtk-add True True False True False False 0 A_ny Rule Matches True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True 0 True allRuleRadioBtn2 False True 1 _All Rules Must Match True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True 0 True True True True 2 False True 0 True True True False True False 6 True True 1 True True 1 True True 1 cancelbutton8 savesearchbtn okbutton5 lwindolf-liferea-508e7a9/glade/search_folder.ui000066400000000000000000000334351451527772200215400ustar00rootroot00000000000000 True False 5 Search Folder Properties 800 600 dialog True False vertical 2 True False end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False True end 0 True False vertical 12 True False 12 True False Search _Name: True searchNameEntry False False 0 True True True True 1 False True 0 True False Search Rules 0 False False 1 True False gtk-add True True False True True False False 0 False True 2 True False 0 True False True True True False True False 6 True False Rules All rules for this search folder True True 3 True False Rule Matching 0 False False 4 True False start 6 A_ny Rule Matches True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True allRuleRadioBtn False True 0 _All Rules Must Match True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True True True True 1 False True 5 Hide read items True True False start True True False False 6 True True 0 cancelbutton3 okbutton2 lwindolf-liferea-508e7a9/glade/simple_search.ui000066400000000000000000000137011451527772200215500ustar00rootroot00000000000000 True False 5 Search All Feeds False dialog True False vertical 2 True False end gtk-close True True True False True False False 0 _Advanced... True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 1 gtk-find True False True True False Starts searching for the specified text in all feeds. The search result will appear in the item list. True False False 2 False False end 0 True False True 5 12 12 True False _Search for: True searchentry 0 0 True True Enter a search string Liferea should find either in a items title or in its content. True 1 0 True True 1 closebutton2 advancedbtn searchstartbtn lwindolf-liferea-508e7a9/glade/simple_subscription.ui000066400000000000000000000145611451527772200230340ustar00rootroot00000000000000 True False New Subscription dialog True False vertical True False end gtk-cancel False True True True False True False False 0 Advanced... False True True True False True False False 1 gtk-ok False True True True True False True False False 2 False True end 0 True False 12 12 True False Feed _Source True sourceEntry 0 0 0 True False 12 Enter a website location to use feed autodiscovery or in case you know it the exact feed location. True 0 0 0 1 True True 12 0 2 True True 1 cancelbutton5 advancedbtn1 button6 lwindolf-liferea-508e7a9/glade/theoldreader_source.ui000066400000000000000000000151371451527772200227610ustar00rootroot00000000000000 True Add TheOldReader Account dialog True True 12 12 True 0 Please enter your TheOldReader account settings. True False False 0 True 2 2 6 6 True True False 1 2 1 2 True True 1 2 True 0 _Password True passwordEntry 1 2 GTK_FILL True 0 _Username (Email) True userEntry GTK_FILL False 1 2 True end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False end 0 cancelbutton1 okbutton1 lwindolf-liferea-508e7a9/glade/ttrss_source.ui000066400000000000000000000177351451527772200215040ustar00rootroot00000000000000 True Add Tiny Tiny RSS Account dialog True True 12 12 True 0 Please enter your TinyTinyRSS account settings. True False False 0 True 3 2 6 6 True True 1 2 2 3 True True False 1 2 1 2 True True 1 2 True 0 _Server URL True serverUrlEntry 2 3 GTK_FILL True 0 _Password True passwordEntry 1 2 GTK_FILL True 0 _Username True userEntry GTK_FILL False 1 2 True end gtk-cancel True True True False True False False 0 gtk-ok True True True False True False False 1 False end 0 cancelbutton1 okbutton1 lwindolf-liferea-508e7a9/glade/update_monitor.ui000066400000000000000000000163171451527772200217710ustar00rootroot00000000000000 True False Update Monitor 400 300 True dialog True False vertical True False end Stop All True True True False False False 0 gtk-close True True True False True False False 1 False False end 0 True False 6 6 6 True True True True in True True False 0 1 True True True True in True True False 1 1 True False _Pending Requests True right 0 1 0 True False _Downloading Now True left 0 0 0 True True 1 button4 button5 lwindolf-liferea-508e7a9/js/000077500000000000000000000000001451527772200157315ustar00rootroot00000000000000lwindolf-liferea-508e7a9/js/LICENSE000066400000000000000000000011271451527772200167370ustar00rootroot00000000000000Readability-readerable.js: Readability.js: Copyright (c) 2010 Arc90 Inc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. lwindolf-liferea-508e7a9/js/Readability-readerable.js000066400000000000000000000100761451527772200226100ustar00rootroot00000000000000/* eslint-env es6:false */ /* * Copyright (c) 2010 Arc90 Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * This code is heavily based on Arc90's readability.js (1.7.1) script * available at: http://code.google.com/p/arc90labs-readability */ var REGEXPS = { // NOTE: These two regular expressions are duplicated in // Readability.js. Please keep both copies in sync. unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i, okMaybeItsACandidate: /and|article|body|column|content|main|shadow/i, }; function isNodeVisible(node) { // Have to null-check node.style and node.className.indexOf to deal with SVG and MathML nodes. return (!node.style || node.style.display != "none") && !node.hasAttribute("hidden") //check for "fallback-image" so that wikimedia math images are displayed && (!node.hasAttribute("aria-hidden") || node.getAttribute("aria-hidden") != "true" || (node.className && node.className.indexOf && node.className.indexOf("fallback-image") !== -1)); } /** * Decides whether or not the document is reader-able without parsing the whole thing. * @param {Object} options Configuration object. * @param {number} [options.minContentLength=140] The minimum node content length used to decide if the document is readerable. * @param {number} [options.minScore=20] The minumum cumulated 'score' used to determine if the document is readerable. * @param {Function} [options.visibilityChecker=isNodeVisible] The function used to determine if a node is visible. * @return {boolean} Whether or not we suspect Readability.parse() will suceeed at returning an article object. */ function isProbablyReaderable(doc, options = {}) { // For backward compatibility reasons 'options' can either be a configuration object or the function used // to determine if a node is visible. if (typeof options == "function") { options = { visibilityChecker: options }; } var defaultOptions = { minScore: 20, minContentLength: 140, visibilityChecker: isNodeVisible }; options = Object.assign(defaultOptions, options); var nodes = doc.querySelectorAll("p, pre"); // Get
nodes which have
node(s) and append them into the `nodes` variable. // Some articles' DOM structures might look like //
// Sentences
//
// Sentences
//
var brNodes = doc.querySelectorAll("div > br"); if (brNodes.length) { var set = new Set(nodes); [].forEach.call(brNodes, function (node) { set.add(node.parentNode); }); nodes = Array.from(set); } var score = 0; // This is a little cheeky, we use the accumulator 'score' to decide what to return from // this callback: return [].some.call(nodes, function (node) { if (!options.visibilityChecker(node)) { return false; } var matchString = node.className + " " + node.id; if (REGEXPS.unlikelyCandidates.test(matchString) && !REGEXPS.okMaybeItsACandidate.test(matchString)) { return false; } if (node.matches("li p")) { return false; } var textContentLength = node.textContent.trim().length; if (textContentLength < options.minContentLength) { return false; } score += Math.sqrt(textContentLength - options.minContentLength); if (score > options.minScore) { return true; } return false; }); } if (typeof module === "object") { module.exports = isProbablyReaderable; } lwindolf-liferea-508e7a9/js/Readability.js000066400000000000000000002364261451527772200205350ustar00rootroot00000000000000/*eslint-env es6:false*/ /* * Copyright (c) 2010 Arc90 Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * This code is heavily based on Arc90's readability.js (1.7.1) script * available at: http://code.google.com/p/arc90labs-readability */ /** * Public constructor. * @param {HTMLDocument} doc The document to parse. * @param {Object} options The options object. */ function Readability(doc, options) { // In some older versions, people passed a URI as the first argument. Cope: if (options && options.documentElement) { doc = options; options = arguments[2]; } else if (!doc || !doc.documentElement) { throw new Error("First argument to Readability constructor should be a document object."); } options = options || {}; this._doc = doc; this._docJSDOMParser = this._doc.firstChild.__JSDOMParser__; this._articleTitle = null; this._articleByline = null; this._articleDir = null; this._articleSiteName = null; this._attempts = []; // Configurable options this._debug = !!options.debug; this._maxElemsToParse = options.maxElemsToParse || this.DEFAULT_MAX_ELEMS_TO_PARSE; this._nbTopCandidates = options.nbTopCandidates || this.DEFAULT_N_TOP_CANDIDATES; this._charThreshold = options.charThreshold || this.DEFAULT_CHAR_THRESHOLD; this._classesToPreserve = this.CLASSES_TO_PRESERVE.concat(options.classesToPreserve || []); this._keepClasses = !!options.keepClasses; this._serializer = options.serializer || function(el) { return el.innerHTML; }; this._disableJSONLD = !!options.disableJSONLD; // Start with all flags set this._flags = this.FLAG_STRIP_UNLIKELYS | this.FLAG_WEIGHT_CLASSES | this.FLAG_CLEAN_CONDITIONALLY; // Control whether log messages are sent to the console if (this._debug) { let logNode = function(node) { if (node.nodeType == node.TEXT_NODE) { return `${node.nodeName} ("${node.textContent}")`; } let attrPairs = Array.from(node.attributes || [], function(attr) { return `${attr.name}="${attr.value}"`; }).join(" "); return `<${node.localName} ${attrPairs}>`; }; this.log = function () { if (typeof dump !== "undefined") { var msg = Array.prototype.map.call(arguments, function(x) { return (x && x.nodeName) ? logNode(x) : x; }).join(" "); dump("Reader: (Readability) " + msg + "\n"); } else if (typeof console !== "undefined") { let args = Array.from(arguments, arg => { if (arg && arg.nodeType == this.ELEMENT_NODE) { return logNode(arg); } return arg; }); args.unshift("Reader: (Readability)"); console.log.apply(console, args); } }; } else { this.log = function () {}; } } Readability.prototype = { FLAG_STRIP_UNLIKELYS: 0x1, FLAG_WEIGHT_CLASSES: 0x2, FLAG_CLEAN_CONDITIONALLY: 0x4, // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType ELEMENT_NODE: 1, TEXT_NODE: 3, // Max number of nodes supported by this parser. Default: 0 (no limit) DEFAULT_MAX_ELEMS_TO_PARSE: 0, // The number of top candidates to consider when analysing how // tight the competition is among candidates. DEFAULT_N_TOP_CANDIDATES: 5, // Element tags to score by default. DEFAULT_TAGS_TO_SCORE: "section,h2,h3,h4,h5,h6,p,td,pre".toUpperCase().split(","), // The default number of chars an article must have in order to return a result DEFAULT_CHAR_THRESHOLD: 500, // All of the regular expressions in use within readability. // Defined up here so we don't instantiate them repeatedly in loops. REGEXPS: { // NOTE: These two regular expressions are duplicated in // Readability-readerable.js. Please keep both copies in sync. unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i, okMaybeItsACandidate: /and|article|body|column|content|main|shadow/i, positive: /article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i, negative: /-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget/i, extraneous: /print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i, byline: /byline|author|dateline|writtenby|p-author/i, replaceFonts: /<(\/?)font[^>]*>/gi, normalize: /\s{2,}/g, videos: /\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i, shareElements: /(\b|_)(share|sharedaddy)(\b|_)/i, nextLink: /(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i, prevLink: /(prev|earl|old|new|<|«)/i, tokenize: /\W+/g, whitespace: /^\s*$/, hasContent: /\S$/, hashUrl: /^#.+/, srcsetUrl: /(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g, b64DataUrl: /^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i, // See: https://schema.org/Article jsonLdArticleTypes: /^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/ }, UNLIKELY_ROLES: [ "menu", "menubar", "complementary", "navigation", "alert", "alertdialog", "dialog" ], DIV_TO_P_ELEMS: new Set([ "BLOCKQUOTE", "DL", "DIV", "IMG", "OL", "P", "PRE", "TABLE", "UL" ]), ALTER_TO_DIV_EXCEPTIONS: ["DIV", "ARTICLE", "SECTION", "P"], PRESENTATIONAL_ATTRIBUTES: [ "align", "background", "bgcolor", "border", "cellpadding", "cellspacing", "frame", "hspace", "rules", "style", "valign", "vspace" ], DEPRECATED_SIZE_ATTRIBUTE_ELEMS: [ "TABLE", "TH", "TD", "HR", "PRE" ], // The commented out elements qualify as phrasing content but tend to be // removed by readability when put into paragraphs, so we ignore them here. PHRASING_ELEMS: [ // "CANVAS", "IFRAME", "SVG", "VIDEO", "ABBR", "AUDIO", "B", "BDO", "BR", "BUTTON", "CITE", "CODE", "DATA", "DATALIST", "DFN", "EM", "EMBED", "I", "IMG", "INPUT", "KBD", "LABEL", "MARK", "MATH", "METER", "NOSCRIPT", "OBJECT", "OUTPUT", "PROGRESS", "Q", "RUBY", "SAMP", "SCRIPT", "SELECT", "SMALL", "SPAN", "STRONG", "SUB", "SUP", "TEXTAREA", "TIME", "VAR", "WBR" ], // These are the classes that readability sets itself. CLASSES_TO_PRESERVE: [ "page" ], // These are the list of HTML entities that need to be escaped. HTML_ESCAPE_MAP: { "lt": "<", "gt": ">", "amp": "&", "quot": '"', "apos": "'", }, /** * Run any post-process modifications to article content as necessary. * * @param Element * @return void **/ _postProcessContent: function(articleContent) { // Readability cannot open relative uris so we convert them to absolute uris. this._fixRelativeUris(articleContent); this._simplifyNestedElements(articleContent); if (!this._keepClasses) { // Remove classes. this._cleanClasses(articleContent); } }, /** * Iterates over a NodeList, calls `filterFn` for each node and removes node * if function returned `true`. * * If function is not passed, removes all the nodes in node list. * * @param NodeList nodeList The nodes to operate on * @param Function filterFn the function to use as a filter * @return void */ _removeNodes: function(nodeList, filterFn) { // Avoid ever operating on live node lists. if (this._docJSDOMParser && nodeList._isLiveNodeList) { throw new Error("Do not pass live node lists to _removeNodes"); } for (var i = nodeList.length - 1; i >= 0; i--) { var node = nodeList[i]; var parentNode = node.parentNode; if (parentNode) { if (!filterFn || filterFn.call(this, node, i, nodeList)) { parentNode.removeChild(node); } } } }, /** * Iterates over a NodeList, and calls _setNodeTag for each node. * * @param NodeList nodeList The nodes to operate on * @param String newTagName the new tag name to use * @return void */ _replaceNodeTags: function(nodeList, newTagName) { // Avoid ever operating on live node lists. if (this._docJSDOMParser && nodeList._isLiveNodeList) { throw new Error("Do not pass live node lists to _replaceNodeTags"); } for (const node of nodeList) { this._setNodeTag(node, newTagName); } }, /** * Iterate over a NodeList, which doesn't natively fully implement the Array * interface. * * For convenience, the current object context is applied to the provided * iterate function. * * @param NodeList nodeList The NodeList. * @param Function fn The iterate function. * @return void */ _forEachNode: function(nodeList, fn) { Array.prototype.forEach.call(nodeList, fn, this); }, /** * Iterate over a NodeList, and return the first node that passes * the supplied test function * * For convenience, the current object context is applied to the provided * test function. * * @param NodeList nodeList The NodeList. * @param Function fn The test function. * @return void */ _findNode: function(nodeList, fn) { return Array.prototype.find.call(nodeList, fn, this); }, /** * Iterate over a NodeList, return true if any of the provided iterate * function calls returns true, false otherwise. * * For convenience, the current object context is applied to the * provided iterate function. * * @param NodeList nodeList The NodeList. * @param Function fn The iterate function. * @return Boolean */ _someNode: function(nodeList, fn) { return Array.prototype.some.call(nodeList, fn, this); }, /** * Iterate over a NodeList, return true if all of the provided iterate * function calls return true, false otherwise. * * For convenience, the current object context is applied to the * provided iterate function. * * @param NodeList nodeList The NodeList. * @param Function fn The iterate function. * @return Boolean */ _everyNode: function(nodeList, fn) { return Array.prototype.every.call(nodeList, fn, this); }, /** * Concat all nodelists passed as arguments. * * @return ...NodeList * @return Array */ _concatNodeLists: function() { var slice = Array.prototype.slice; var args = slice.call(arguments); var nodeLists = args.map(function(list) { return slice.call(list); }); return Array.prototype.concat.apply([], nodeLists); }, _getAllNodesWithTag: function(node, tagNames) { if (node.querySelectorAll) { return node.querySelectorAll(tagNames.join(",")); } return [].concat.apply([], tagNames.map(function(tag) { var collection = node.getElementsByTagName(tag); return Array.isArray(collection) ? collection : Array.from(collection); })); }, /** * Removes the class="" attribute from every element in the given * subtree, except those that match CLASSES_TO_PRESERVE and * the classesToPreserve array from the options object. * * @param Element * @return void */ _cleanClasses: function(node) { var classesToPreserve = this._classesToPreserve; var className = (node.getAttribute("class") || "") .split(/\s+/) .filter(function(cls) { return classesToPreserve.indexOf(cls) != -1; }) .join(" "); if (className) { node.setAttribute("class", className); } else { node.removeAttribute("class"); } for (node = node.firstElementChild; node; node = node.nextElementSibling) { this._cleanClasses(node); } }, /** * Converts each and uri in the given element to an absolute URI, * ignoring #ref URIs. * * @param Element * @return void */ _fixRelativeUris: function(articleContent) { var baseURI = this._doc.baseURI; var documentURI = this._doc.documentURI; function toAbsoluteURI(uri) { // Leave hash links alone if the base URI matches the document URI: if (baseURI == documentURI && uri.charAt(0) == "#") { return uri; } // Otherwise, resolve against base URI: try { return new URL(uri, baseURI).href; } catch (ex) { // Something went wrong, just return the original: } return uri; } var links = this._getAllNodesWithTag(articleContent, ["a"]); this._forEachNode(links, function(link) { var href = link.getAttribute("href"); if (href) { // Remove links with javascript: URIs, since // they won't work after scripts have been removed from the page. if (href.indexOf("javascript:") === 0) { // if the link only contains simple text content, it can be converted to a text node if (link.childNodes.length === 1 && link.childNodes[0].nodeType === this.TEXT_NODE) { var text = this._doc.createTextNode(link.textContent); link.parentNode.replaceChild(text, link); } else { // if the link has multiple children, they should all be preserved var container = this._doc.createElement("span"); while (link.childNodes.length > 0) { container.appendChild(link.childNodes[0]); } link.parentNode.replaceChild(container, link); } } else { link.setAttribute("href", toAbsoluteURI(href)); } } }); var medias = this._getAllNodesWithTag(articleContent, [ "img", "picture", "figure", "video", "audio", "source" ]); this._forEachNode(medias, function(media) { var src = media.getAttribute("src"); var poster = media.getAttribute("poster"); var srcset = media.getAttribute("srcset"); if (src) { media.setAttribute("src", toAbsoluteURI(src)); } if (poster) { media.setAttribute("poster", toAbsoluteURI(poster)); } if (srcset) { var newSrcset = srcset.replace(this.REGEXPS.srcsetUrl, function(_, p1, p2, p3) { return toAbsoluteURI(p1) + (p2 || "") + p3; }); media.setAttribute("srcset", newSrcset); } }); }, _simplifyNestedElements: function(articleContent) { var node = articleContent; while (node) { if (node.parentNode && ["DIV", "SECTION"].includes(node.tagName) && !(node.id && node.id.startsWith("readability"))) { if (this._isElementWithoutContent(node)) { node = this._removeAndGetNext(node); continue; } else if (this._hasSingleTagInsideElement(node, "DIV") || this._hasSingleTagInsideElement(node, "SECTION")) { var child = node.children[0]; for (var i = 0; i < node.attributes.length; i++) { child.setAttribute(node.attributes[i].name, node.attributes[i].value); } node.parentNode.replaceChild(child, node); node = child; continue; } } node = this._getNextNode(node); } }, /** * Get the article title as an H1. * * @return string **/ _getArticleTitle: function() { var doc = this._doc; var curTitle = ""; var origTitle = ""; try { curTitle = origTitle = doc.title.trim(); // If they had an element with id "title" in their HTML if (typeof curTitle !== "string") curTitle = origTitle = this._getInnerText(doc.getElementsByTagName("title")[0]); } catch (e) {/* ignore exceptions setting the title. */} var titleHadHierarchicalSeparators = false; function wordCount(str) { return str.split(/\s+/).length; } // If there's a separator in the title, first remove the final part if ((/ [\|\-\\\/>»] /).test(curTitle)) { titleHadHierarchicalSeparators = / [\\\/>»] /.test(curTitle); curTitle = origTitle.replace(/(.*)[\|\-\\\/>»] .*/gi, "$1"); // If the resulting title is too short (3 words or fewer), remove // the first part instead: if (wordCount(curTitle) < 3) curTitle = origTitle.replace(/[^\|\-\\\/>»]*[\|\-\\\/>»](.*)/gi, "$1"); } else if (curTitle.indexOf(": ") !== -1) { // Check if we have an heading containing this exact string, so we // could assume it's the full title. var headings = this._concatNodeLists( doc.getElementsByTagName("h1"), doc.getElementsByTagName("h2") ); var trimmedTitle = curTitle.trim(); var match = this._someNode(headings, function(heading) { return heading.textContent.trim() === trimmedTitle; }); // If we don't, let's extract the title out of the original title string. if (!match) { curTitle = origTitle.substring(origTitle.lastIndexOf(":") + 1); // If the title is now too short, try the first colon instead: if (wordCount(curTitle) < 3) { curTitle = origTitle.substring(origTitle.indexOf(":") + 1); // But if we have too many words before the colon there's something weird // with the titles and the H tags so let's just use the original title instead } else if (wordCount(origTitle.substr(0, origTitle.indexOf(":"))) > 5) { curTitle = origTitle; } } } else if (curTitle.length > 150 || curTitle.length < 15) { var hOnes = doc.getElementsByTagName("h1"); if (hOnes.length === 1) curTitle = this._getInnerText(hOnes[0]); } curTitle = curTitle.trim().replace(this.REGEXPS.normalize, " "); // If we now have 4 words or fewer as our title, and either no // 'hierarchical' separators (\, /, > or ») were found in the original // title or we decreased the number of words by more than 1 word, use // the original title. var curTitleWordCount = wordCount(curTitle); if (curTitleWordCount <= 4 && (!titleHadHierarchicalSeparators || curTitleWordCount != wordCount(origTitle.replace(/[\|\-\\\/>»]+/g, "")) - 1)) { curTitle = origTitle; } return curTitle; }, /** * Prepare the HTML document for readability to scrape it. * This includes things like stripping javascript, CSS, and handling terrible markup. * * @return void **/ _prepDocument: function() { var doc = this._doc; // Remove all style tags in head this._removeNodes(this._getAllNodesWithTag(doc, ["style"])); if (doc.body) { this._replaceBrs(doc.body); } this._replaceNodeTags(this._getAllNodesWithTag(doc, ["font"]), "SPAN"); }, /** * Finds the next node, starting from the given node, and ignoring * whitespace in between. If the given node is an element, the same node is * returned. */ _nextNode: function (node) { var next = node; while (next && (next.nodeType != this.ELEMENT_NODE) && this.REGEXPS.whitespace.test(next.textContent)) { next = next.nextSibling; } return next; }, /** * Replaces 2 or more successive
elements with a single

. * Whitespace between
elements are ignored. For example: *

foo
bar


abc
* will become: *
foo
bar

abc

*/ _replaceBrs: function (elem) { this._forEachNode(this._getAllNodesWithTag(elem, ["br"]), function(br) { var next = br.nextSibling; // Whether 2 or more
elements have been found and replaced with a //

block. var replaced = false; // If we find a
chain, remove the
s until we hit another node // or non-whitespace. This leaves behind the first
in the chain // (which will be replaced with a

later). while ((next = this._nextNode(next)) && (next.tagName == "BR")) { replaced = true; var brSibling = next.nextSibling; next.parentNode.removeChild(next); next = brSibling; } // If we removed a
chain, replace the remaining
with a

. Add // all sibling nodes as children of the

until we hit another
// chain. if (replaced) { var p = this._doc.createElement("p"); br.parentNode.replaceChild(p, br); next = p.nextSibling; while (next) { // If we've hit another

, we're done adding children to this

. if (next.tagName == "BR") { var nextElem = this._nextNode(next.nextSibling); if (nextElem && nextElem.tagName == "BR") break; } if (!this._isPhrasingContent(next)) break; // Otherwise, make this node a child of the new

. var sibling = next.nextSibling; p.appendChild(next); next = sibling; } while (p.lastChild && this._isWhitespace(p.lastChild)) { p.removeChild(p.lastChild); } if (p.parentNode.tagName === "P") this._setNodeTag(p.parentNode, "DIV"); } }); }, _setNodeTag: function (node, tag) { this.log("_setNodeTag", node, tag); if (this._docJSDOMParser) { node.localName = tag.toLowerCase(); node.tagName = tag.toUpperCase(); return node; } var replacement = node.ownerDocument.createElement(tag); while (node.firstChild) { replacement.appendChild(node.firstChild); } node.parentNode.replaceChild(replacement, node); if (node.readability) replacement.readability = node.readability; for (var i = 0; i < node.attributes.length; i++) { try { replacement.setAttribute(node.attributes[i].name, node.attributes[i].value); } catch (ex) { /* it's possible for setAttribute() to throw if the attribute name * isn't a valid XML Name. Such attributes can however be parsed from * source in HTML docs, see https://github.com/whatwg/html/issues/4275, * so we can hit them here and then throw. We don't care about such * attributes so we ignore them. */ } } return replacement; }, /** * Prepare the article node for display. Clean out any inline styles, * iframes, forms, strip extraneous

tags, etc. * * @param Element * @return void **/ _prepArticle: function(articleContent) { this._cleanStyles(articleContent); // Check for data tables before we continue, to avoid removing items in // those tables, which will often be isolated even though they're // visually linked to other content-ful elements (text, images, etc.). this._markDataTables(articleContent); this._fixLazyImages(articleContent); // Clean out junk from the article content this._cleanConditionally(articleContent, "form"); this._cleanConditionally(articleContent, "fieldset"); this._clean(articleContent, "object"); this._clean(articleContent, "embed"); this._clean(articleContent, "footer"); this._clean(articleContent, "link"); this._clean(articleContent, "aside"); // Clean out elements with little content that have "share" in their id/class combinations from final top candidates, // which means we don't remove the top candidates even they have "share". var shareElementThreshold = this.DEFAULT_CHAR_THRESHOLD; this._forEachNode(articleContent.children, function (topCandidate) { this._cleanMatchedNodes(topCandidate, function (node, matchString) { return this.REGEXPS.shareElements.test(matchString) && node.textContent.length < shareElementThreshold; }); }); this._clean(articleContent, "iframe"); this._clean(articleContent, "input"); this._clean(articleContent, "textarea"); this._clean(articleContent, "select"); this._clean(articleContent, "button"); this._cleanHeaders(articleContent); // Do these last as the previous stuff may have removed junk // that will affect these this._cleanConditionally(articleContent, "table"); this._cleanConditionally(articleContent, "ul"); this._cleanConditionally(articleContent, "div"); // replace H1 with H2 as H1 should be only title that is displayed separately this._replaceNodeTags(this._getAllNodesWithTag(articleContent, ["h1"]), "h2"); // Remove extra paragraphs this._removeNodes(this._getAllNodesWithTag(articleContent, ["p"]), function (paragraph) { var imgCount = paragraph.getElementsByTagName("img").length; var embedCount = paragraph.getElementsByTagName("embed").length; var objectCount = paragraph.getElementsByTagName("object").length; // At this point, nasty iframes have been removed, only remain embedded video ones. var iframeCount = paragraph.getElementsByTagName("iframe").length; var totalCount = imgCount + embedCount + objectCount + iframeCount; return totalCount === 0 && !this._getInnerText(paragraph, false); }); this._forEachNode(this._getAllNodesWithTag(articleContent, ["br"]), function(br) { var next = this._nextNode(br.nextSibling); if (next && next.tagName == "P") br.parentNode.removeChild(br); }); // Remove single-cell tables this._forEachNode(this._getAllNodesWithTag(articleContent, ["table"]), function(table) { var tbody = this._hasSingleTagInsideElement(table, "TBODY") ? table.firstElementChild : table; if (this._hasSingleTagInsideElement(tbody, "TR")) { var row = tbody.firstElementChild; if (this._hasSingleTagInsideElement(row, "TD")) { var cell = row.firstElementChild; cell = this._setNodeTag(cell, this._everyNode(cell.childNodes, this._isPhrasingContent) ? "P" : "DIV"); table.parentNode.replaceChild(cell, table); } } }); }, /** * Initialize a node with the readability object. Also checks the * className/id for special names to add to its score. * * @param Element * @return void **/ _initializeNode: function(node) { node.readability = {"contentScore": 0}; switch (node.tagName) { case "DIV": node.readability.contentScore += 5; break; case "PRE": case "TD": case "BLOCKQUOTE": node.readability.contentScore += 3; break; case "ADDRESS": case "OL": case "UL": case "DL": case "DD": case "DT": case "LI": case "FORM": node.readability.contentScore -= 3; break; case "H1": case "H2": case "H3": case "H4": case "H5": case "H6": case "TH": node.readability.contentScore -= 5; break; } node.readability.contentScore += this._getClassWeight(node); }, _removeAndGetNext: function(node) { var nextNode = this._getNextNode(node, true); node.parentNode.removeChild(node); return nextNode; }, /** * Traverse the DOM from node to node, starting at the node passed in. * Pass true for the second parameter to indicate this node itself * (and its kids) are going away, and we want the next node over. * * Calling this in a loop will traverse the DOM depth-first. */ _getNextNode: function(node, ignoreSelfAndKids) { // First check for kids if those aren't being ignored if (!ignoreSelfAndKids && node.firstElementChild) { return node.firstElementChild; } // Then for siblings... if (node.nextElementSibling) { return node.nextElementSibling; } // And finally, move up the parent chain *and* find a sibling // (because this is depth-first traversal, we will have already // seen the parent nodes themselves). do { node = node.parentNode; } while (node && !node.nextElementSibling); return node && node.nextElementSibling; }, // compares second text to first one // 1 = same text, 0 = completely different text // works the way that it splits both texts into words and then finds words that are unique in second text // the result is given by the lower length of unique parts _textSimilarity: function(textA, textB) { var tokensA = textA.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean); var tokensB = textB.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean); if (!tokensA.length || !tokensB.length) { return 0; } var uniqTokensB = tokensB.filter(token => !tokensA.includes(token)); var distanceB = uniqTokensB.join(" ").length / tokensB.join(" ").length; return 1 - distanceB; }, _checkByline: function(node, matchString) { if (this._articleByline) { return false; } if (node.getAttribute !== undefined) { var rel = node.getAttribute("rel"); var itemprop = node.getAttribute("itemprop"); } if ((rel === "author" || (itemprop && itemprop.indexOf("author") !== -1) || this.REGEXPS.byline.test(matchString)) && this._isValidByline(node.textContent)) { this._articleByline = node.textContent.trim(); return true; } return false; }, _getNodeAncestors: function(node, maxDepth) { maxDepth = maxDepth || 0; var i = 0, ancestors = []; while (node.parentNode) { ancestors.push(node.parentNode); if (maxDepth && ++i === maxDepth) break; node = node.parentNode; } return ancestors; }, /*** * grabArticle - Using a variety of metrics (content score, classname, element types), find the content that is * most likely to be the stuff a user wants to read. Then return it wrapped up in a div. * * @param page a document to run upon. Needs to be a full document, complete with body. * @return Element **/ _grabArticle: function (page) { this.log("**** grabArticle ****"); var doc = this._doc; var isPaging = page !== null; page = page ? page : this._doc.body; // We can't grab an article if we don't have a page! if (!page) { this.log("No body found in document. Abort."); return null; } var pageCacheHtml = page.innerHTML; while (true) { this.log("Starting grabArticle loop"); var stripUnlikelyCandidates = this._flagIsActive(this.FLAG_STRIP_UNLIKELYS); // First, node prepping. Trash nodes that look cruddy (like ones with the // class name "comment", etc), and turn divs into P tags where they have been // used inappropriately (as in, where they contain no other block level elements.) var elementsToScore = []; var node = this._doc.documentElement; let shouldRemoveTitleHeader = true; while (node) { var matchString = node.className + " " + node.id; if (!this._isProbablyVisible(node)) { this.log("Removing hidden node - " + matchString); node = this._removeAndGetNext(node); continue; } // Check to see if this node is a byline, and remove it if it is. if (this._checkByline(node, matchString)) { node = this._removeAndGetNext(node); continue; } if (shouldRemoveTitleHeader && this._headerDuplicatesTitle(node)) { this.log("Removing header: ", node.textContent.trim(), this._articleTitle.trim()); shouldRemoveTitleHeader = false; node = this._removeAndGetNext(node); continue; } // Remove unlikely candidates if (stripUnlikelyCandidates) { if (this.REGEXPS.unlikelyCandidates.test(matchString) && !this.REGEXPS.okMaybeItsACandidate.test(matchString) && !this._hasAncestorTag(node, "table") && !this._hasAncestorTag(node, "code") && node.tagName !== "BODY" && node.tagName !== "A") { this.log("Removing unlikely candidate - " + matchString); node = this._removeAndGetNext(node); continue; } if (this.UNLIKELY_ROLES.includes(node.getAttribute("role"))) { this.log("Removing content with role " + node.getAttribute("role") + " - " + matchString); node = this._removeAndGetNext(node); continue; } } // Remove DIV, SECTION, and HEADER nodes without any content(e.g. text, image, video, or iframe). if ((node.tagName === "DIV" || node.tagName === "SECTION" || node.tagName === "HEADER" || node.tagName === "H1" || node.tagName === "H2" || node.tagName === "H3" || node.tagName === "H4" || node.tagName === "H5" || node.tagName === "H6") && this._isElementWithoutContent(node)) { node = this._removeAndGetNext(node); continue; } if (this.DEFAULT_TAGS_TO_SCORE.indexOf(node.tagName) !== -1) { elementsToScore.push(node); } // Turn all divs that don't have children block level elements into p's if (node.tagName === "DIV") { // Put phrasing content into paragraphs. var p = null; var childNode = node.firstChild; while (childNode) { var nextSibling = childNode.nextSibling; if (this._isPhrasingContent(childNode)) { if (p !== null) { p.appendChild(childNode); } else if (!this._isWhitespace(childNode)) { p = doc.createElement("p"); node.replaceChild(p, childNode); p.appendChild(childNode); } } else if (p !== null) { while (p.lastChild && this._isWhitespace(p.lastChild)) { p.removeChild(p.lastChild); } p = null; } childNode = nextSibling; } // Sites like http://mobile.slate.com encloses each paragraph with a DIV // element. DIVs with only a P element inside and no text content can be // safely converted into plain P elements to avoid confusing the scoring // algorithm with DIVs with are, in practice, paragraphs. if (this._hasSingleTagInsideElement(node, "P") && this._getLinkDensity(node) < 0.25) { var newNode = node.children[0]; node.parentNode.replaceChild(newNode, node); node = newNode; elementsToScore.push(node); } else if (!this._hasChildBlockElement(node)) { node = this._setNodeTag(node, "P"); elementsToScore.push(node); } } node = this._getNextNode(node); } /** * Loop through all paragraphs, and assign a score to them based on how content-y they look. * Then add their score to their parent node. * * A score is determined by things like number of commas, class names, etc. Maybe eventually link density. **/ var candidates = []; this._forEachNode(elementsToScore, function(elementToScore) { if (!elementToScore.parentNode || typeof(elementToScore.parentNode.tagName) === "undefined") return; // If this paragraph is less than 25 characters, don't even count it. var innerText = this._getInnerText(elementToScore); if (innerText.length < 25) return; // Exclude nodes with no ancestor. var ancestors = this._getNodeAncestors(elementToScore, 5); if (ancestors.length === 0) return; var contentScore = 0; // Add a point for the paragraph itself as a base. contentScore += 1; // Add points for any commas within this paragraph. contentScore += innerText.split(",").length; // For every 100 characters in this paragraph, add another point. Up to 3 points. contentScore += Math.min(Math.floor(innerText.length / 100), 3); // Initialize and score ancestors. this._forEachNode(ancestors, function(ancestor, level) { if (!ancestor.tagName || !ancestor.parentNode || typeof(ancestor.parentNode.tagName) === "undefined") return; if (typeof(ancestor.readability) === "undefined") { this._initializeNode(ancestor); candidates.push(ancestor); } // Node score divider: // - parent: 1 (no division) // - grandparent: 2 // - great grandparent+: ancestor level * 3 if (level === 0) var scoreDivider = 1; else if (level === 1) scoreDivider = 2; else scoreDivider = level * 3; ancestor.readability.contentScore += contentScore / scoreDivider; }); }); // After we've calculated scores, loop through all of the possible // candidate nodes we found and find the one with the highest score. var topCandidates = []; for (var c = 0, cl = candidates.length; c < cl; c += 1) { var candidate = candidates[c]; // Scale the final candidates score based on link density. Good content // should have a relatively small link density (5% or less) and be mostly // unaffected by this operation. var candidateScore = candidate.readability.contentScore * (1 - this._getLinkDensity(candidate)); candidate.readability.contentScore = candidateScore; this.log("Candidate:", candidate, "with score " + candidateScore); for (var t = 0; t < this._nbTopCandidates; t++) { var aTopCandidate = topCandidates[t]; if (!aTopCandidate || candidateScore > aTopCandidate.readability.contentScore) { topCandidates.splice(t, 0, candidate); if (topCandidates.length > this._nbTopCandidates) topCandidates.pop(); break; } } } var topCandidate = topCandidates[0] || null; var neededToCreateTopCandidate = false; var parentOfTopCandidate; // If we still have no top candidate, just use the body as a last resort. // We also have to copy the body node so it is something we can modify. if (topCandidate === null || topCandidate.tagName === "BODY") { // Move all of the page's children into topCandidate topCandidate = doc.createElement("DIV"); neededToCreateTopCandidate = true; // Move everything (not just elements, also text nodes etc.) into the container // so we even include text directly in the body: var kids = page.childNodes; while (kids.length) { this.log("Moving child out:", kids[0]); topCandidate.appendChild(kids[0]); } page.appendChild(topCandidate); this._initializeNode(topCandidate); } else if (topCandidate) { // Find a better top candidate node if it contains (at least three) nodes which belong to `topCandidates` array // and whose scores are quite closed with current `topCandidate` node. var alternativeCandidateAncestors = []; for (var i = 1; i < topCandidates.length; i++) { if (topCandidates[i].readability.contentScore / topCandidate.readability.contentScore >= 0.75) { alternativeCandidateAncestors.push(this._getNodeAncestors(topCandidates[i])); } } var MINIMUM_TOPCANDIDATES = 3; if (alternativeCandidateAncestors.length >= MINIMUM_TOPCANDIDATES) { parentOfTopCandidate = topCandidate.parentNode; while (parentOfTopCandidate.tagName !== "BODY") { var listsContainingThisAncestor = 0; for (var ancestorIndex = 0; ancestorIndex < alternativeCandidateAncestors.length && listsContainingThisAncestor < MINIMUM_TOPCANDIDATES; ancestorIndex++) { listsContainingThisAncestor += Number(alternativeCandidateAncestors[ancestorIndex].includes(parentOfTopCandidate)); } if (listsContainingThisAncestor >= MINIMUM_TOPCANDIDATES) { topCandidate = parentOfTopCandidate; break; } parentOfTopCandidate = parentOfTopCandidate.parentNode; } } if (!topCandidate.readability) { this._initializeNode(topCandidate); } // Because of our bonus system, parents of candidates might have scores // themselves. They get half of the node. There won't be nodes with higher // scores than our topCandidate, but if we see the score going *up* in the first // few steps up the tree, that's a decent sign that there might be more content // lurking in other places that we want to unify in. The sibling stuff // below does some of that - but only if we've looked high enough up the DOM // tree. parentOfTopCandidate = topCandidate.parentNode; var lastScore = topCandidate.readability.contentScore; // The scores shouldn't get too low. var scoreThreshold = lastScore / 3; while (parentOfTopCandidate.tagName !== "BODY") { if (!parentOfTopCandidate.readability) { parentOfTopCandidate = parentOfTopCandidate.parentNode; continue; } var parentScore = parentOfTopCandidate.readability.contentScore; if (parentScore < scoreThreshold) break; if (parentScore > lastScore) { // Alright! We found a better parent to use. topCandidate = parentOfTopCandidate; break; } lastScore = parentOfTopCandidate.readability.contentScore; parentOfTopCandidate = parentOfTopCandidate.parentNode; } // If the top candidate is the only child, use parent instead. This will help sibling // joining logic when adjacent content is actually located in parent's sibling node. parentOfTopCandidate = topCandidate.parentNode; while (parentOfTopCandidate.tagName != "BODY" && parentOfTopCandidate.children.length == 1) { topCandidate = parentOfTopCandidate; parentOfTopCandidate = topCandidate.parentNode; } if (!topCandidate.readability) { this._initializeNode(topCandidate); } } // Now that we have the top candidate, look through its siblings for content // that might also be related. Things like preambles, content split by ads // that we removed, etc. var articleContent = doc.createElement("DIV"); if (isPaging) articleContent.id = "readability-content"; var siblingScoreThreshold = Math.max(10, topCandidate.readability.contentScore * 0.2); // Keep potential top candidate's parent node to try to get text direction of it later. parentOfTopCandidate = topCandidate.parentNode; var siblings = parentOfTopCandidate.children; for (var s = 0, sl = siblings.length; s < sl; s++) { var sibling = siblings[s]; var append = false; this.log("Looking at sibling node:", sibling, sibling.readability ? ("with score " + sibling.readability.contentScore) : ""); this.log("Sibling has score", sibling.readability ? sibling.readability.contentScore : "Unknown"); if (sibling === topCandidate) { append = true; } else { var contentBonus = 0; // Give a bonus if sibling nodes and top candidates have the example same classname if (sibling.className === topCandidate.className && topCandidate.className !== "") contentBonus += topCandidate.readability.contentScore * 0.2; if (sibling.readability && ((sibling.readability.contentScore + contentBonus) >= siblingScoreThreshold)) { append = true; } else if (sibling.nodeName === "P") { var linkDensity = this._getLinkDensity(sibling); var nodeContent = this._getInnerText(sibling); var nodeLength = nodeContent.length; if (nodeLength > 80 && linkDensity < 0.25) { append = true; } else if (nodeLength < 80 && nodeLength > 0 && linkDensity === 0 && nodeContent.search(/\.( |$)/) !== -1) { append = true; } } } if (append) { this.log("Appending node:", sibling); if (this.ALTER_TO_DIV_EXCEPTIONS.indexOf(sibling.nodeName) === -1) { // We have a node that isn't a common block level element, like a form or td tag. // Turn it into a div so it doesn't get filtered out later by accident. this.log("Altering sibling:", sibling, "to div."); sibling = this._setNodeTag(sibling, "DIV"); } articleContent.appendChild(sibling); // siblings is a reference to the children array, and // sibling is removed from the array when we call appendChild(). // As a result, we must revisit this index since the nodes // have been shifted. s -= 1; sl -= 1; } } if (this._debug) this.log("Article content pre-prep: " + articleContent.innerHTML); // So we have all of the content that we need. Now we clean it up for presentation. this._prepArticle(articleContent); if (this._debug) this.log("Article content post-prep: " + articleContent.innerHTML); if (neededToCreateTopCandidate) { // We already created a fake div thing, and there wouldn't have been any siblings left // for the previous loop, so there's no point trying to create a new div, and then // move all the children over. Just assign IDs and class names here. No need to append // because that already happened anyway. topCandidate.id = "readability-page-1"; topCandidate.className = "page"; } else { var div = doc.createElement("DIV"); div.id = "readability-page-1"; div.className = "page"; var children = articleContent.childNodes; while (children.length) { div.appendChild(children[0]); } articleContent.appendChild(div); } if (this._debug) this.log("Article content after paging: " + articleContent.innerHTML); var parseSuccessful = true; // Now that we've gone through the full algorithm, check to see if // we got any meaningful content. If we didn't, we may need to re-run // grabArticle with different flags set. This gives us a higher likelihood of // finding the content, and the sieve approach gives us a higher likelihood of // finding the -right- content. var textLength = this._getInnerText(articleContent, true).length; if (textLength < this._charThreshold) { parseSuccessful = false; page.innerHTML = pageCacheHtml; if (this._flagIsActive(this.FLAG_STRIP_UNLIKELYS)) { this._removeFlag(this.FLAG_STRIP_UNLIKELYS); this._attempts.push({articleContent: articleContent, textLength: textLength}); } else if (this._flagIsActive(this.FLAG_WEIGHT_CLASSES)) { this._removeFlag(this.FLAG_WEIGHT_CLASSES); this._attempts.push({articleContent: articleContent, textLength: textLength}); } else if (this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)) { this._removeFlag(this.FLAG_CLEAN_CONDITIONALLY); this._attempts.push({articleContent: articleContent, textLength: textLength}); } else { this._attempts.push({articleContent: articleContent, textLength: textLength}); // No luck after removing flags, just return the longest text we found during the different loops this._attempts.sort(function (a, b) { return b.textLength - a.textLength; }); // But first check if we actually have something if (!this._attempts[0].textLength) { return null; } articleContent = this._attempts[0].articleContent; parseSuccessful = true; } } if (parseSuccessful) { // Find out text direction from ancestors of final top candidate. var ancestors = [parentOfTopCandidate, topCandidate].concat(this._getNodeAncestors(parentOfTopCandidate)); this._someNode(ancestors, function(ancestor) { if (!ancestor.tagName) return false; var articleDir = ancestor.getAttribute("dir"); if (articleDir) { this._articleDir = articleDir; return true; } return false; }); return articleContent; } } }, /** * Check whether the input string could be a byline. * This verifies that the input is a string, and that the length * is less than 100 chars. * * @param possibleByline {string} - a string to check whether its a byline. * @return Boolean - whether the input string is a byline. */ _isValidByline: function(byline) { if (typeof byline == "string" || byline instanceof String) { byline = byline.trim(); return (byline.length > 0) && (byline.length < 100); } return false; }, /** * Converts some of the common HTML entities in string to their corresponding characters. * * @param str {string} - a string to unescape. * @return string without HTML entity. */ _unescapeHtmlEntities: function(str) { if (!str) { return str; } var htmlEscapeMap = this.HTML_ESCAPE_MAP; return str.replace(/&(quot|amp|apos|lt|gt);/g, function(_, tag) { return htmlEscapeMap[tag]; }).replace(/&#(?:x([0-9a-z]{1,4})|([0-9]{1,4}));/gi, function(_, hex, numStr) { var num = parseInt(hex || numStr, hex ? 16 : 10); return String.fromCharCode(num); }); }, /** * Try to extract metadata from JSON-LD object. * For now, only Schema.org objects of type Article or its subtypes are supported. * @return Object with any metadata that could be extracted (possibly none) */ _getJSONLD: function (doc) { var scripts = this._getAllNodesWithTag(doc, ["script"]); var jsonLdElement = this._findNode(scripts, function(el) { return el.getAttribute("type") === "application/ld+json"; }); if (jsonLdElement) { try { // Strip CDATA markers if present var content = jsonLdElement.textContent.replace(/^\s*\s*$/g, ""); var parsed = JSON.parse(content); var metadata = {}; if ( !parsed["@context"] || !parsed["@context"].match(/^https?\:\/\/schema\.org$/) ) { return metadata; } if (!parsed["@type"] && Array.isArray(parsed["@graph"])) { parsed = parsed["@graph"].find(function(it) { return (it["@type"] || "").match( this.REGEXPS.jsonLdArticleTypes ); }); } if ( !parsed || !parsed["@type"] || !parsed["@type"].match(this.REGEXPS.jsonLdArticleTypes) ) { return metadata; } if (typeof parsed.name === "string") { metadata.title = parsed.name.trim(); } else if (typeof parsed.headline === "string") { metadata.title = parsed.headline.trim(); } if (parsed.author) { if (typeof parsed.author.name === "string") { metadata.byline = parsed.author.name.trim(); } else if (Array.isArray(parsed.author) && parsed.author[0] && typeof parsed.author[0].name === "string") { metadata.byline = parsed.author .filter(function(author) { return author && typeof author.name === "string"; }) .map(function(author) { return author.name.trim(); }) .join(", "); } } if (typeof parsed.description === "string") { metadata.excerpt = parsed.description.trim(); } if ( parsed.publisher && typeof parsed.publisher.name === "string" ) { metadata.siteName = parsed.publisher.name.trim(); } return metadata; } catch (err) { this.log(err.message); } } return {}; }, /** * Attempts to get excerpt and byline metadata for the article. * * @param {Object} jsonld — object containing any metadata that * could be extracted from JSON-LD object. * * @return Object with optional "excerpt" and "byline" properties */ _getArticleMetadata: function(jsonld) { var metadata = {}; var values = {}; var metaElements = this._doc.getElementsByTagName("meta"); // property is a space-separated list of values var propertyPattern = /\s*(dc|dcterm|og|twitter)\s*:\s*(author|creator|description|title|site_name)\s*/gi; // name is a single value var namePattern = /^\s*(?:(dc|dcterm|og|twitter|weibo:(article|webpage))\s*[\.:]\s*)?(author|creator|description|title|site_name)\s*$/i; // Find description tags. this._forEachNode(metaElements, function(element) { var elementName = element.getAttribute("name"); var elementProperty = element.getAttribute("property"); var content = element.getAttribute("content"); if (!content) { return; } var matches = null; var name = null; if (elementProperty) { matches = elementProperty.match(propertyPattern); if (matches) { // Convert to lowercase, and remove any whitespace // so we can match below. name = matches[0].toLowerCase().replace(/\s/g, ""); // multiple authors values[name] = content.trim(); } } if (!matches && elementName && namePattern.test(elementName)) { name = elementName; if (content) { // Convert to lowercase, remove any whitespace, and convert dots // to colons so we can match below. name = name.toLowerCase().replace(/\s/g, "").replace(/\./g, ":"); values[name] = content.trim(); } } }); // get title metadata.title = jsonld.title || values["dc:title"] || values["dcterm:title"] || values["og:title"] || values["weibo:article:title"] || values["weibo:webpage:title"] || values["title"] || values["twitter:title"]; if (!metadata.title) { metadata.title = this._getArticleTitle(); } // get author metadata.byline = jsonld.byline || values["dc:creator"] || values["dcterm:creator"] || values["author"]; // get description metadata.excerpt = jsonld.excerpt || values["dc:description"] || values["dcterm:description"] || values["og:description"] || values["weibo:article:description"] || values["weibo:webpage:description"] || values["description"] || values["twitter:description"]; // get site name metadata.siteName = jsonld.siteName || values["og:site_name"]; // in many sites the meta value is escaped with HTML entities, // so here we need to unescape it metadata.title = this._unescapeHtmlEntities(metadata.title); metadata.byline = this._unescapeHtmlEntities(metadata.byline); metadata.excerpt = this._unescapeHtmlEntities(metadata.excerpt); metadata.siteName = this._unescapeHtmlEntities(metadata.siteName); return metadata; }, /** * Check if node is image, or if node contains exactly only one image * whether as a direct child or as its descendants. * * @param Element **/ _isSingleImage: function(node) { if (node.tagName === "IMG") { return true; } if (node.children.length !== 1 || node.textContent.trim() !== "") { return false; } return this._isSingleImage(node.children[0]); }, /** * Find all