pommed-1.39~dfsg/0000775000175000017500000000000011571653265013344 5ustar julienjulienpommed-1.39~dfsg/.gitignore0000664000175000017500000000000711571653265015331 0ustar julienjulien*~ *.o pommed-1.39~dfsg/AUTHORS0000664000175000017500000000443111571653265014416 0ustar julienjulien pommed ------ Written by Julien BLACHE , with code taken from - Nicolas BOICHAT for the Radeon X1600 backlight support - Ryan LORTIE for the Intel GMA950 backlight support - pbbuttonsd for the audio thread code in pommed/beep.c The following people contributed to pommed: - Romain BEAUXIS base of the ALSA code - Yves-Alexis PEREZ pommed PowerBook support On PowerBook machines, pommed uses the OFlib written by Alastair Poole The water drop sound goutte.wav included with pommed was contributed by Romain BEAUXIS under the WTFPL, Copyright (C) 2007 Yann Beauxis. The click.wav sound file shipped with pommed comes from the Classic theme from PBButtons and is released under the GPLv2+. gpomme ------ Soeren SONNENBURG provided the base for gpomme, based on code taken from gtkpbbuttons. Daniel G. SIEGEL wrote the configuration GUI. Glue added by Julien BLACHE . Themes: - CrystalLarge: made by Soeren SONNENBURG , based on the Crystal theme for pbbuttonsd using icons from the Crystal themes by Everaldo (icons licensed under the LGPL). - Tango: made by Daniel G. SIEGEL , based on the Tango icons available at (icons licensed under the Creative Commons Attribution Share-Alike license). - KStyle: made by Natanael ARNDT , based on the Crystal SVG icon theme by Everaldo (LGPL), see - Elegant Bright & Elegant Dark: made by Natanael ARNDT , icons released under the GPL. i18n: - french translation by Julien BLACHE - german translation by Soeren SONNENBURG and Daniel G. SIEGEL - spanish translation by Eduardo BELLIDO BELLIDO - italian translation by Daniel G. SIEGEL - japanese translation by Nobuhiro Iwamatsu wmpomme ------- Written by Julien BLACHE , based on wmwave. Icons ----- The icon found in the icons/ directory was contributed under GPLv2 by Jan Larres . pommed-1.39~dfsg/COPYING0000664000175000017500000004310311571653265014400 0ustar julienjulien 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. pommed-1.39~dfsg/ChangeLog0000664000175000017500000003177711571653265015135 0ustar julienjulienChangeLog for pommed -------------------- version 1.39: - pommed: add new sysfs backlight driver apple_backlight. version 1.38: - pommed: add support for the Early 2011 MacBook Pro: MacBookPro8,1 (13"), MacBookPro8,2 (15"), MacBookPro8,3 (17"). - pommed: add acpi_video0 as a possible sysfs backlight driver. - pommed: allow disabling audio support entirely. version 1.37: - pommed: fix oversight in applesmc probing change. - pommed: prefer nvidia_bl over Nouveau. - pommed: add new option to fade keyboard backlight instead of switching off when idle. From Alex Launi . version 1.36: - pommed: probe for applesmc through /sys/class/hwmon. - pommed: add support for the MacBook7,1 (April 2010). - all: use LDLIBS instead of adding libraries to LDFLAGS. - pommed: fix keyboard backlight fading on pmac. - pommed: lock/unlock auto kbd backlight using up/down keys. - pommed: add ADB product IDs for ANSI and JIS keyboard variants. version 1.35: - pommed: fix crash if no fnmode sysfs node found. - pommed: add support for the MacBookAir3,1 & 3,2 (October 2010). version 1.34: - pommed: be more careful when invoking eject (Alioth #312213). - pommed: add the nouveau sysfs backlight driver. version 1.33: - pommed: added support for the MacBook6,1 (October 2009). - pommed: added support for the MacBookPro6,1 & 6,2 (Core i5/i7, April 2010). - pommed: kill PCI device check in nv8600mgt. - pommed: added support for the MacBookPro7,1 (13", Core2 Duo, April 2010). Requires a patched nvidia-bl module for backlight support at the moment. - gpomme: replaced Glade with hardcoded GTK+ code. version 1.32: - pommed: add the rivabl sysfs backlight driver for older 12" PowerBook G4 laptops. Reported by Nic Boet. version 1.31: - pommed: add IDs for newer wireless keyboard. - pommed: add the MacBookPro5,4 (15" June 2009). version 1.30: - pommed: fix a crasher in the i2c probe routine on pmac. - pommed: fix sysfs backlight driver to handle > 3-digit values. version 1.29: - pommed: add support for newer nvidia backlight driver which changed the sysfs layout. - pommed: move VT state checking to pommed, exposed over DBus. - gpomme: switch to asking pommed for the state of the VT. - wmpomme: switch to asking pommed for the state of the VT. version 1.28: - pommed: added support for the MacBookPro5,3 (15" MacBookPro June 2009) version 1.27: - pommed: added support for the MacBook5,2 (white MacBook). - pommed: added support for the MacBookPro5,5 (13" MacBookPro June 2009), MacBookPro5,2 (17" MacBookPro June 2009). version 1.26: - pommed: only keystrokes on the built-in keyboard should reset the keyboard idle timer. - pommed: add USB IDs for the Apple external aluminium mini keyboard. - pommed: switch to sysfs resource files for PCI memory access instead of mmaping /dev/mem. version 1.25: - pommed: check current hardware backlight level before setting AC or battery level. Do not act if the backlight is off. - pommed: do not reject the Apple Bluetooth keyboard because of advertised EV_ABS events. - pommed: fix DBus configuration snippet for newer, stricter version of DBus (allow clients to send messages). version 1.24: - pommed: add new path for fnmode setting for 2.6.28. version 1.23: - pommed: add backlight support for late 2008 laptops. - pommed: default to sysfs backlight driver for nVidia machines, with the mbp_nvidia_bl kernel driver; fall back to native nv8600mgt if not supported. - pommed: try to reconnect to DBus if DBus is not available at startup. Previously we would just drop it and live without DBus. version 1.22: - pommed: do not probe for LMU controller on pmac machines that do not have a backlit keyboard. Avoids a spurious error message. - pommed: factor out ADB & LMU write routines, avoids duplicated code in the kbd_{lmu,pmu}_backlight_set() routines. - gpomme: add japanese translation for gpomme, courtesy of Nobuhiro Iwamatsu . - pommed: use a common sysfs power class routine in power.c, add sysfs power class support for pmac machines. - pommed: added partial support for the October 2008 laptops (MacBook5,1, MacBookPro5,1, MacBookAir2,1), LCD backlight missing. - wmpomme: turn wmpomme into an event-driven dockapp, eliminating the fixed update rate (and, thus, wakeups). Thanks to Kalle A. Sandström for the prodding. version 1.21: - gpomme: use compositing if available, patch by Soeren Sonnenburg. version 1.20: - pommed: fix array boundary check in check_machine_dmi(). - pommed: use BUS_BLUETOOTH for the Apple wireless keyboard. version 1.19: - pommed: get rid of the libsmbios dependency on Intel machines. - gpomme: integrate config file monitoring and DBus messaging into the main loop. Get rid of the 10 times per second polling. - pommed: new event loop. - pommed: convert power and kbd to timers integrated into the event loop. - pommed: integrate DBus into the event loop. version 1.18: - pommed: add more IDs for Apple external keyboards - pommed: relax event devices identification for internal keyboard. version 1.17: - pommed: handle path change for the applesmc led interface starting with kernel 2.6.25. version 1.16: - pommed: add support for the MacBookPro4,1. - pommed: add support for the MacBook4,1. - pommed: add support for the WellSpring keyboard+trackpad assembly ("MultiTouch"), found in the MacBookAir1,1. - pommed: add support for the WellSpring II keyboard+trackpad assembly ("MultiTouch"), most likely found in the MacBookPro4,1. - pommed: fix MacBook Air machine identification string, the real string is MacBookAir1,1 and not MacBook Air1,1 as the Apple technote puts it. version 1.15: - pommed: add preliminary support for the MacBook Air1,1; USB IDs missing. - pommed: add support for power_supply class to the ACPI code. version 1.14: - pommed: fix error handling in the audio sample loading code to properly report failure, preventing nasty segfaults later on in case the sound file is not available. - pommed: make goutte.wav the default beep sound, add click.wav and remove the KDE beep sound. version 1.13: - pommed: add an option to disable the beep on volume change. - pommed: add the videoSwitch DBus notification. - wmpomme: add video switch support. - gpomme: add video switch support. - pommed: add support for LCD backlight control on the Intel 965GM found in the MacBook3,1. - pommed: rework the inotify code to handle several events at once and to handle events with long filenames (longer than sizeof(struct inotify_event)); pommed could enter a busy-loop when receiving an inotify event with ie->len > sizeof(struct inotify_event). version 1.12: - pommed: do not expect at least 3 evdevs at startup; there are only 2 on the MacBook, and possibly only 1 on the pmac machines. version 1.11: - pommed: beep on volume change, now that we have the audio code in pommed itself. - gpomme: remove audio-related code. - pommed: partial support (ie. no LCD backlight yet) for the MacBook3,1 (MacBook Core2 Duo Santa Rosa, November 2007). - pommed: rework the event management. Use epoll() for event polling instead of poll(). Use inotify to watch new event devices appear in /dev/input. This effectively fixes our disappearing event devices issues after suspend. YAY. - pommed: add support for the external Apple USB keyboards, white & alu. If you have such a keyboard with another USB ID, please contact me. Patch from Carmine 'earcar' Paolino . - pommed: add secondary locations for the uinput device node. Heads up & patch from Carmine 'earcar' Paolino. version 1.10: - pommed: add a beeper feature as a substitute to the missing PC Speaker. The feature is disabled by default, as not all machines need it and not everybody wants it ;) version 1.9: - pommed: add an idle timer to automatically switch off the keyboard backlight. Suggested by Javier Marcet. - pommed: turn has_kbd_backlight() into an inline function. - pommed: kill code duplication in the main loop. version 1.8: - pommed: probe for the applesmc sysfs path in the ambient light handling code. The path has changed in Linux 2.6.22. - pommed: added automatic LCD backlight dimming when switching from AC to battery power (and vice-versa). - pommed: send out DBus notification when the automatic LCD backlight dimming kicks in (similar to the automatic keyboard backlight notification). - gpomme: adjust for the new LCD backlight notification. - Add the gpomme icon contributed by Jan Larres under the icons/ directory. - pommed: add support for the nVidia GeForce 8600M GT found in the MacBookPro3,1. I don't like that code, if there's something better that can be used, please mail me. version 1.7: - pommed: add partial support for the MacBookPro3,1 (Core2 Duo, 15" & 17", June 2007). New Apple IR receiver too. Missing nVidia backlight control. version 1.6: - pommed: add new "Apple Inc." vendor ID in SMBIOS routine. version 1.5: - pommed: back to using eject(1) for CD ejection. - pommed: fallback to of_find_node_by_name() for LMU controller detection; it seems some PowerBooks (5,4) do not have a node type associated with the node in the device-tree. version 1.4: - pommed: add proper support for the PowerBook5,8 and PowerBook5,9 (PMU05 machines); add Geyser keyboard identification, PMU05 ambient light sensors and keyboard backlight. Thanks Gaudenz Steilin for the report and testing. - pommed: added a simple backlight toggle mode, used when the automatic backlight is disabled in the configuration file. - pommed: enumerate i2c adapters. version 1.3: - gpomme: added configuration GUI, courtesy of Daniel G. SIEGEL. - gpomme: added elegant-bright and elegant-dark themes, courtesy of Natanael Arndt . - pommed: rewrote CD ejection routine; no longer depends on eject, sends the dbus notification before ejecting the CD. - pommed: add DBus methods to control pommed over DBus. Original patch by Alexis ROBERT . - pommed: add keyboard backlight fading for automatic keyboard backlight. Based on a patch from Mario Oschwald . - pommed: try harder to reopen the event devices when coming back from suspend. version 1.2: - pommed: PowerBook5,5 has an ADB keyboard, not a USB keyboard. - Added October 2003 iBook G4 support (PowerBook6,3), patch by Arthur PETITPIERRE. - pommed: tell DBus clients who is adjusting the keyboard backlight, so they can decide to skip the notification if it's not the user itself. - gpomme: adapt to the new DBus notification. - wmpomme: adapt to the new DBus notification. - pommed: added support for nVidia GPUs. - pommed: added support for mouseemu users (mouseemu virtual keyboard) - pommed: rework keyboard backlight automatic mode, the backlight off key now works as a toggle for the automatic mode, as it does on Mac OS X - pommed: turn off keyboard backlight when lid is closed - pommed: added UNTESTED support for + PowerBook3,3: PowerBook G4 Titanium 15" October 2001 + PowerBook3,4: PowerBook G4 Titanium 15" April 2002 + PowerBook3,5: PowerBook G4 Titanium 15" + PowerBook5,1: PowerBook G4 Aluminium 17" + PowerBook5,2: PowerBook G4 Aluminium 15" September 2003 + PowerBook5,3: PowerBook G4 Aluminium 17" September 2003 + PowerBook5,4: PowerBook G4 Aluminium 15" April 2004 + PowerBook5,8: PowerBook G4 Aluminium 15" + PowerBook5,9: PowerBook G4 Aluminium 17" + PowerBook6,1: PowerBook G4 12" January 2003 + PowerBook6,2: PowerBook G4 12" September 2003 + PowerBook6,3: iBook G4 October 2003 + PowerBook6,4: PowerBook G4 12" April 2004 + PowerBook6,5: iBook G4 October 2004 + PowerBook6,7: iBook G4 + PowerBook6,8: PowerBook G4 12" If you own one of the machines listed above, please test pommed by running pommed -d and tell us: - if it works at all - if, not running either pommed or pbbuttonsd, pressing the backlight up/down keys makes the backlight level change Please send the debug output along with these information; we know that pommed won't work out of the box on some of these machines. version 1.1: - gpomme: added theme selection; use -t theme_name to select the theme to use. - gpomme: added the Tango theme provided by Daniel G. Siegel. - gpomme: added multiple head support, based on a patch by Eduardo Bellido Bellido. version 1.0: - Renamed to pommed in anticipation of the PowerBook support - Added fnmode setting - Added DBus support: signals and get methods - Add -d option to pommed, displays debug messages (replaces -DDEBUG) version 0.9: - Added preliminary audio support: increase and decrease PCM, mute and unmute both Headphone and Front - Allow disabling the initial backlight level setting version 0.8: - wait for both light sensors to be under the threshold before lighting up the keyboard backlight; switch it off as soon as one of the sensors gets past the threshold. - added a configuration file - added optional Apple Remote control support version 0.7: - allow MacBook users to switch off the LCD backlight entirely - fix model identifier string for the Core2 Duo MacBook pommed-1.39~dfsg/INSTALL0000664000175000017500000000452611571653265014404 0ustar julienjulienInstallation instructions for pommed ------------------------------------ pommed - the daemon gpomme - GTK+ client wmpomme - WindowMaker client Building -------- pommed requires: - pciutils / libpci (on Intel machines only) - libofapi aka oflib (PowerMac machines only, see below) - zlib - libconfuse - libdbus - libasound - libaudiofile - eject gpomme requires: - libdbus - libdbus-glib - GTK+ 2.0 wmpomme requires: - X11 libs - libdbus To build everything, just run make from the top-level directory, or: - make pommed, to build pommed - make gpomme, to build gpomme - make wmpomme, to build wmpomme For PowerPC machines, if you do not have libofapi installed, can't find it or do not want to install it, run make pommed OFLIB=1 to use the embedded copy of libofapi. Installing ---------- To install pommed: - copy pommed somewhere in your PATH (/usr/bin) - copy pommed/data/* to /usr/share/pommed - copy pommed.conf.(mactel|pmac) as /etc/pommed.conf - install the pommed.init initscript as /etc/init.d/pommed, make it executable and perform any additional configuration needed on your system (links to /etc/rc?.d/ for instance) - configure DBus for pommed + if you have a /etc/dbus-1/system.d directory, copy dbus-policy.conf as /etc/dbus-1/system.d/pommed.conf + otherwise, copy dbus-policy.conf as /etc/dbus-1/pommed.conf and add pommed.conf in /etc/dbus-1/system.conf, between the ... tags (usually toward the end of the file, before the tag) - restart dbus To install gpomme: - copy gpomme somewhere in your PATH (/usr/bin) - install gpomme/themes as /usr/share/gpomme/themes - install gpomme/po/$lang.mo as /usr/share/locale/$lang/LC_MESSAGES/gpomme.mo - copy gpomme/gpomme*.desktop to /usr/share/applications Icons for gpomme are available in the icons/ directory. For the .desktop files provided with gpomme to work, the icons should be installed under /usr/share/icons/hicolor. PNG files go to the appropriate sub-directory depending on their size, gpomme.svg goes to the scalable/ sub-directory. To install wmpomme: - copy wmpomme somewhere in your PATH (/usr/bin) Pick an icon from the icons/ directory to display in the dock. You can install gpomme_32x32.xpm to /usr/share/pixmaps/wmpomme.xpm and use that in the dock for instance. pommed-1.39~dfsg/Makefile0000664000175000017500000000046011571653265015004 0ustar julienjulien# Top-level Makefile for pommed & tools OFLIB ?= all: pommed gpomme wmpomme pommed: $(MAKE) -C pommed OFLIB=$(OFLIB) gpomme: $(MAKE) -C gpomme wmpomme: $(MAKE) -C wmpomme clean: $(MAKE) -C pommed clean $(MAKE) -C gpomme clean $(MAKE) -C wmpomme clean rm -f *~ .PHONY: pommed gpomme wmpomme pommed-1.39~dfsg/README0000664000175000017500000001367611571653265014241 0ustar julienjulienREADME for pommed ----------------- - Kernel version requirements - Supported machines - Using pommed - Beeper feature - When things go wrong - Using gpomme and wmpomme Kernel version requirements: ---------------------------- pommed requires at least a 2.6.25 kernel, due to the use of the new timerfd interface that was released as stable with this version. February and October 2008 machines require a 2.6.28 kernel for full support. Supported machines: ------------------- - Intel machines * MacBook Pro Core Duo 15" (January 2006) * MacBook Pro Core Duo 17" (April 2006) * MacBook Pro Core2 Duo 15" (October 2006, June 2007, February 2008, October 2008) * MacBook Pro Core2 Duo 17" (October 2006, June 2007, February 2008, October 2008) * MacBook Pro 13", 15", 17" (June 2009) * MacBook Pro Core i5/i7 15", 17" (April 2010) * MacBook Pro Core2 Duo 13" (April 2010) * MacBook Pro Core i5/i7 13", 15", 17" (Early 2011) * MacBook Core Duo (May 2006) * MacBook Core2 Duo (November 2006 & May 2007) * MacBook Core2 Duo Santa Rosa (November 2007) * MacBook Core2 Duo (February 2008, October 2008, October 2009, April 2010) * MacBook Air Core2 Duo (January 2008, October 2008) * MacBook Air Core2 Duo 11" & 13" (October 2010) If your MacBook Pro/MacBook Air/MacBook is not listed here, please contact us and include the content of /sys/class/dmi/id/product_name in your mail. Thanks. - PowerMac machines * PowerBook G4 Titanium 15" (December 2000) * PowerBook G4 Titanium 15" (October 2001) * PowerBook G4 Titanium 15" (April 2002) * PowerBook G4 Titanium 15" * PowerBook G4 Aluminium 17" * PowerBook G4 Aluminium 15" (September 2003) * PowerBook G4 Aluminium 17" (September 2003) * PowerBook G4 Aluminium 15" (April 2004) * PowerBook G4 Aluminium 17" (April 2004) * PowerBook G4 Aluminium 15" (February 2005) * PowerBook G4 Aluminium 17" (February 2005) * PowerBook G4 Aluminium 15" * PowerBook G4 Aluminium 17" * PowerBook G4 12" (January 2003) * PowerBook G4 12" (September 2003) * iBook G4 (October 2003) * PowerBook G4 12" (April 2004) * iBook G4 (October 2004) * iBook G4 * PowerBook G4 12" If your PowerBook/iBook is not listed here, please contact us and include the content of /proc/device-tree/model in your mail. Thanks. Using pommed ------------ Launch pommed at startup, a simple init script will do. Your distribution should take care of this. Keyboard backlight on PowerMac machines --------------------------------------- The keyboard backlight on PowerMac machines (except the very first ones) is driven through i2c. You need the i2c-dev kernel module loaded on your system for pommed to work properly; you can add i2c-dev to /etc/modules to have it loaded automatically at system startup. Beeper feature -------------- The beeper feature relies on the uinput kernel module being loaded. You can check for its availability by checking for the uinput device node, which is either one of: - /dev/input/uinput - /dev/uinput - /dev/misc/uinput Or by checking the output of $ lsmod | grep uinput If the module is not loaded, load it manually with # modprobe uinput then restart pommed. You'll need to ensure the module is loaded before pommed starts; to achieve that, add uinput to /etc/modules. For the curious, as I've been asked a couple times already: pommed uses the uinput facility to create a userspace input device which handles the console beep. Once this device is set up, the kernel happily passes down beep events to pommed through this device, and pommed only needs to ... well, *beep*. When things go wrong -------------------- First and foremost: don't panic! If something doesn't work (or so it appears), there's usually a good reason to that, and pommed should be able to provide some insight as to what is going wrong if only you ask it. By default, pommed uses syslog to log warnings and errors, so check your system logs. If you can't find anything, running pommed in the foreground will help a lot; in this mode, pommed will log everything to stderr instead of syslog, so you'll see every message. First, stop pommed. Then run # pommed -f Use Ctrl-C to stop pommed, fix the problem, and restart it. If you still can't see what's wrong, ask for more output by running pommed in debug mode. Be warned: in this mode, pommed is very chatty. First, stop pommed. Then run # pommed -d Use Ctrl-C to stop pommed, fix the problem, and restart it. If the debug mode doesn't offer any hint as to what's going on, then contact me with the details of your problem and I'll be able to help. Using gpomme and wmpomme ------------------------ - gpomme: launch gpomme at session startup, using whatever interface your desktop environment provides for that. - wmpomme: run wmpomme and add it to your dock. Both gpomme and wmpomme are responsible for running a user-provided helper when the video switch button is pressed. This helper is responsible for activating/deactivating the external video output. The helper can be set system-wide and overriden on a per-user basis: - if $HOME/.videoswitch exists, is readable and executable by the running user, it is executed; - otherwise, if /etc/pommed/videoswitch exists, is readable and executable by the running user, it is executed. The program is invoked without arguments, and argv[0] is "videoswitch". The videoswitch helper can be anything you want: shell script, perl/python script or a plain binary; anything executable. It is up to the script or program to perform any housekeeping/statekeeping that is necessary. If you want to run urandr or grandr, you can just symlink it as /etc/pommed/videoswitch or $HOME/.videoswitch. As different machines require different scripts, pommed can't ship a default script (there's no one-size-fits-all, unfortunately). If you write a nice script for your machine and would like to have it shipped with pommed as an example, mail it to me with a proper license and the machine model. pommed-1.39~dfsg/TODO0000664000175000017500000000041311571653265014032 0ustar julienjulienTODO for pommed --------------- * General --------- - use ambient light sensor - for automatic LCD backlight tweaking (powersaving) - for (better) automatic keyboard backlight tweaking -- Julien BLACHE , Tue, 27 Nov 2007 17:43:42 +0100 pommed-1.39~dfsg/client-common/0000775000175000017500000000000011571653265016110 5ustar julienjulienpommed-1.39~dfsg/client-common/dbus-client.c0000664000175000017500000002055711571653265020476 0ustar julienjulien/* * dbus-client.c -- shared DBus client routines for pommed clients * * Copyright (C) 2006-2007, 2009 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include "dbus-client.h" static DBusError *err; static DBusConnection *conn; /* Method calls */ /* WARNING: method calls are synchronous for now with a 250ms timeout */ int mbp_call_lcd_getlevel(DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/lcdBacklight", "org.pommed.lcdBacklight", "getLevel"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } int mbp_call_kbd_getlevel(DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/kbdBacklight", "org.pommed.kbdBacklight", "getLevel"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } int mbp_call_ambient_getlevel(DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/ambient", "org.pommed.ambient", "getLevel"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } #if 0 /* Needs more work, using dispatch & stuff */ ret = dbus_pending_call_set_notify(pending, cb, NULL, NULL); if (!ret) { printf("Failed to set callback\n"); dbus_pending_call_unref(pending); return -1; } #endif /* 0 */ dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } int mbp_call_audio_getvolume(DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/audio", "org.pommed.audio", "getVolume"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } int mbp_call_audio_getmute(DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/audio", "org.pommed.audio", "getMute"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } int mbp_call_video_getvtstate(int vtnum, DBusPendingCallNotifyFunction cb, void *userdata) { DBusMessage *msg; DBusPendingCall *pending; int ret; msg = dbus_message_new_method_call("org.pommed", "/org/pommed/video", "org.pommed.video", "getVTState"); if (msg == NULL) { printf("Failed to create method call message\n"); return -1; } ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &vtnum, DBUS_TYPE_INVALID); if (ret == FALSE) { printf("Failed to add arguments\n"); dbus_message_unref(msg); return -1; } ret = dbus_connection_send_with_reply(conn, msg, &pending, 250); if (ret == FALSE) { printf("Could not send method call\n"); dbus_message_unref(msg); return -1; } dbus_connection_flush(conn); dbus_message_unref(msg); dbus_pending_call_block(pending); cb(pending, userdata); return 0; } /* Error checking, mainly for replies to method calls */ int mbp_dbus_check_error(DBusMessage *msg) { DBusMessageIter iter; char *errmsg; if (dbus_message_get_type(msg) == DBUS_MESSAGE_TYPE_ERROR) { dbus_message_iter_init(msg, &iter); dbus_message_iter_get_basic(&iter, &errmsg); printf("DBus error: %s\n", errmsg); return 1; } return 0; } /* Connection init and cleanup */ static int bus_add_match(DBusConnection *conn, char *match) { dbus_bus_add_match(conn, match, err); dbus_connection_flush(conn); if (dbus_error_is_set(err)) { printf("Match error: %s\n", err->message); return -1; } return 0; } void mbp_dbus_cleanup(void) { if (conn != NULL) { dbus_error_free(err); dbus_connection_unref(conn); conn = NULL; } } DBusConnection * mbp_dbus_init(DBusError *error, unsigned int signals) { err = error; dbus_error_init(err); conn = dbus_bus_get(DBUS_BUS_SYSTEM, err); if (dbus_error_is_set(err)) { printf("DBus system bus connection failed: %s\n", err->message); dbus_error_free(err); conn = NULL; return NULL; } dbus_connection_set_exit_on_disconnect(conn, FALSE); if ((signals & MBP_DBUS_SIG_LCD) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/lcdBacklight',interface='org.pommed.signal.lcdBacklight'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_KBD) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/kbdBacklight',interface='org.pommed.signal.kbdBacklight'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_VOL) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/audioVolume',interface='org.pommed.signal.audioVolume'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_MUTE) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/audioMute',interface='org.pommed.signal.audioMute'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_LIGHT) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/ambientLight',interface='org.pommed.signal.ambientLight'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_EJECT) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/cdEject',interface='org.pommed.signal.cdEject'") < 0)) { mbp_dbus_cleanup(); return NULL; } if ((signals & MBP_DBUS_SIG_VIDEO) && (bus_add_match(conn, "type='signal',path='/org/pommed/notify/videoSwitch',interface='org.pommed.signal.videoSwitch'") < 0)) { mbp_dbus_cleanup(); return NULL; } return conn; } pommed-1.39~dfsg/client-common/dbus-client.h0000664000175000017500000000235711571653265020501 0ustar julienjulien/* * pommed - dbus-client.h */ #ifndef __MBP_DBUS_CLIENT_H__ #define __MBP_DBUS_CLIENT_H__ /* Signals to listen to */ #define MBP_DBUS_SIG_NONE 0 #define MBP_DBUS_SIG_LCD (1 << 0) #define MBP_DBUS_SIG_KBD (1 << 1) #define MBP_DBUS_SIG_VOL (1 << 2) #define MBP_DBUS_SIG_MUTE (1 << 3) #define MBP_DBUS_SIG_EJECT (1 << 4) #define MBP_DBUS_SIG_LIGHT (1 << 5) #define MBP_DBUS_SIG_VIDEO (1 << 6) #define LCD_USER 0 #define LCD_AUTO 1 #define KBD_USER 0 #define KBD_AUTO 1 /* Method calls */ int mbp_call_lcd_getlevel(DBusPendingCallNotifyFunction cb, void *userdata); int mbp_call_kbd_getlevel(DBusPendingCallNotifyFunction cb, void *userdata); int mbp_call_ambient_getlevel(DBusPendingCallNotifyFunction cb, void *userdata); int mbp_call_audio_getvolume(DBusPendingCallNotifyFunction cb, void *userdata); int mbp_call_audio_getmute(DBusPendingCallNotifyFunction cb, void *userdata); int mbp_call_video_getvtstate(int vtnum, DBusPendingCallNotifyFunction cb, void *userdata); /* Error checking */ int mbp_dbus_check_error(DBusMessage *msg); /* Connection init and cleanup */ DBusConnection * mbp_dbus_init(DBusError *error, unsigned int signals); void mbp_dbus_cleanup(void); #endif /* !__MBP_DBUS_CLIENT_H__ */ pommed-1.39~dfsg/client-common/video-client.c0000664000175000017500000000702511571653265020642 0ustar julienjulien/* * video-client.c -- shared video switch routines for pommed clients * * Copyright (C) 2007, 2009 Julien BLACHE * * Some code below taken from GDM where noted. * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "video-client.h" static char *vsw_user = NULL; /* * Get the VT number X is running on * (code taken from GDM, daemon/getvt.c, GPLv2+) */ int mbp_get_x_vtnum(Display *dpy) { Atom prop; Atom actualtype; int actualformat; unsigned long nitems; unsigned long bytes_after; unsigned char *buf; int num; prop = XInternAtom (dpy, "XFree86_VT", False); if (prop == None) return -1; if (XGetWindowProperty (dpy, DefaultRootWindow (dpy), prop, 0, 1, False, AnyPropertyType, &actualtype, &actualformat, &nitems, &bytes_after, &buf)) { return -1; } if (nitems != 1) { XFree (buf); return -1; } switch (actualtype) { case XA_CARDINAL: case XA_INTEGER: case XA_WINDOW: switch (actualformat) { case 8: num = (*(uint8_t *)(void *)buf); break; case 16: num = (*(uint16_t *)(void *)buf); break; case 32: num = (*(uint32_t *)(void *)buf); break; default: XFree (buf); return -1; } break; default: XFree (buf); return -1; } XFree (buf); return num; } /* * NOTE: you MUST install a SIGCHLD handler if you use this function */ void mbp_video_switch(void) { struct passwd *pw; char *vsw = NULL; int ret; if (vsw_user == NULL) { pw = getpwuid(getuid()); if (pw == NULL) { fprintf(stderr, "Could not get user information\n"); return; } vsw_user = (char *) malloc(strlen(pw->pw_dir) + strlen(VIDEO_SWITCH_USER) + 1); if (vsw_user == NULL) { fprintf(stderr, "Could not allocate memory\n"); return; } strncpy(vsw_user, pw->pw_dir, strlen(pw->pw_dir) + 1); strncat(vsw_user, VIDEO_SWITCH_USER, strlen(VIDEO_SWITCH_USER)); } if (access(vsw_user, R_OK | X_OK) == 0) { vsw = vsw_user; } else if (access(VIDEO_SWITCH_SYSTEM, R_OK | X_OK) == 0) { vsw = VIDEO_SWITCH_SYSTEM; } else { fprintf(stderr, "No video switch script available\n"); return; } ret = fork(); if (ret == 0) /* exec video switch script */ { execl(vsw, "videoswitch", NULL); fprintf(stderr, "Could not execute video switch script: %s", strerror(errno)); exit(1); } else if (ret == -1) { fprintf(stderr, "Could not fork: %s\n", strerror(errno)); return; } } pommed-1.39~dfsg/client-common/video-client.h0000664000175000017500000000047011571653265020644 0ustar julienjulien/* * pommed - video-client.h */ #ifndef __MBP_VIDEO_CLIENT_H__ #define __MBP_VIDEO_CLIENT_H__ #define VIDEO_SWITCH_SYSTEM "/etc/pommed/videoswitch" #define VIDEO_SWITCH_USER "/.videoswitch" int mbp_get_x_vtnum(Display *dpy); void mbp_video_switch(void); #endif /* !__MBP_VIDEO_CLIENT_H__ */ pommed-1.39~dfsg/dbus-policy.conf0000664000175000017500000000075711571653265016456 0ustar julienjulien pommed-1.39~dfsg/gpomme/0000775000175000017500000000000011571653265014630 5ustar julienjulienpommed-1.39~dfsg/gpomme/.gitignore0000664000175000017500000000002011571653265016610 0ustar julienjuliengpomme po/*.mo pommed-1.39~dfsg/gpomme/Makefile0000664000175000017500000000317511571653265016276 0ustar julienjulienCC = gcc GTK_CFLAGS = $(shell pkg-config --cflags gtk+-2.0) GTK_LIBS = $(shell pkg-config --libs gtk+-2.0) DBUS_CFLAGS = $(shell pkg-config dbus-1 --cflags) -DDBUS_API_SUBJECT_TO_CHANGE DBUS_LIBS = $(shell pkg-config dbus-1 --libs) DBUSGLIB_CFLAGS = $(shell pkg-config dbus-glib-1 --cflags) DBUSGLIB_LIBS = $(shell pkg-config dbus-glib-1 --libs) CONFUSE_CFLAGS = $(shell pkg-config libconfuse --cflags) CONFUSE_LIBS = $(shell pkg-config libconfuse --libs) INOTIFY_CFLAGS = $(shell test -e /usr/include/sys/inotify.h || echo -DNO_SYS_INOTIFY_H) CFLAGS = -g -O2 -Wall $(DBUS_CFLAGS) $(DBUSGLIB_CFLAGS) $(GTK_CFLAGS) $(CONFUSE_CFLAGS) $(INOTIFY_CFLAGS) LDLIBS = -lpthread -lX11 $(DBUS_LIBS) $(DBUSGLIB_LIBS) $(GTK_LIBS) $(CONFUSE_LIBS) SOURCES = gpomme.c theme.c conffile.c \ ../client-common/dbus-client.c \ ../client-common/video-client.c POFILES = po/fr.po po/de.po po/es.po po/it.po po/ja.po OBJS = $(SOURCES:%.c=%.o) MOFILES = $(POFILES:%.po=%.mo) all: gpomme mo mo: $(MOFILES) gpomme: $(OBJS) gpomme.o: gpomme.c gpomme.h theme.h ../client-common/dbus-client.h ../client-common/video-client.h theme.o: theme.c theme.h gpomme.h conffile.o: conffile.c conffile.h gpomme.h theme.h ../client-common/dbus-client.o: ../client-common/dbus-client.c ../client-common/dbus-client.h ../client-common/video-client.o: ../client-common/video-client.c ../client-common/video-client.h %.mo: %.po @echo Building $@... @msgfmt --statistics -o $@ $< updatepo: xgettext -L C -k_ -o po/gpomme.pot $(SOURCES) for po in $(POFILES); do \ msgmerge -U $$po po/gpomme.pot; \ done clean: rm -f gpomme $(OBJS) $(MOFILES) rm -f *~ po/*~ ../client-common/*~ pommed-1.39~dfsg/gpomme/TODO0000664000175000017500000000010311571653265015312 0ustar julienjulienTODO for gpomme --------------- - Use compositing when available pommed-1.39~dfsg/gpomme/conffile.c0000664000175000017500000002157411571653265016572 0ustar julienjulien/* * gpomme - GTK application for use with pommed * * Copyright (C) 2007 Julien BLACHE * Copyright (C) 2007 daniel g. siegel * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #ifndef NO_SYS_INOTIFY_H # include #else # include # include "inotify-syscalls.h" #endif #include #include "conffile.h" #include "gpomme.h" #include "theme.h" #include #define _(str) gettext(str) #define CONFFILE "/.gpommerc" static cfg_opt_t cfg_opts[] = { CFG_STR("theme", DEFAULT_THEME, CFGF_NONE), CFG_INT("timeout", 900, CFGF_NONE), CFG_END() }; GtkWidget *app_window; GtkWidget *cb_theme; GtkWidget *hs_timeout; void on_gpomme_response_cb(GtkWidget *widget, gint response_id, gpointer user_data); void on_gpomme_window_close_cb(GtkWidget *widget, gpointer user_data); void update_gui_config(GtkWidget *widget, gpointer user_data); cfg_t *cfg = NULL; static char *conffile = NULL; static int config_validate_positive_integer(cfg_t *cfg, cfg_opt_t *opt) { int value = cfg_opt_getnint(opt, cfg_opt_size(opt) - 1); if (value < 0) { cfg_error(cfg, "Error: Value for '%s' must be positive", opt->name); return -1; } return 0; } static int config_validate_string(cfg_t *cfg, cfg_opt_t *opt) { char *value = cfg_opt_getnstr(opt, cfg_opt_size(opt) - 1); if (strlen(value) == 0) { cfg_error(cfg, "Error: Value for '%s' must be a non-zero string", opt->name); return -1; } return 0; } int config_load(void) { struct passwd *pw; int ret; if (conffile == NULL) { pw = getpwuid(getuid()); if (pw == NULL) { fprintf(stderr, "Could not get user information\n"); return -1; } conffile = (char *) malloc(strlen(pw->pw_dir) + strlen(CONFFILE) + 1); if (conffile == NULL) { fprintf(stderr, "Could not allocate memory\n"); return -1; } strncpy(conffile, pw->pw_dir, strlen(pw->pw_dir) + 1); strncat(conffile, CONFFILE, strlen(CONFFILE)); } if (cfg != NULL) cfg_free(cfg); cfg = cfg_init(cfg_opts, CFGF_NONE); if (cfg == NULL) { fprintf(stderr, "Failed to initialize configuration parser\n"); return -1; } /* Set up config values validation */ cfg_set_validate_func(cfg, "theme", config_validate_string); cfg_set_validate_func(cfg, "timeout", config_validate_positive_integer); /* * Do the actual parsing. * If the file does not exist or cannot be opened, * we'll be using the default values defined in the cfg_opt_t array. */ ret = cfg_parse(cfg, conffile); if (ret != CFG_SUCCESS) { if (ret == CFG_FILE_ERROR) { config_write(); } else { cfg_free(cfg); fprintf(stderr, "Failed to parse configuration file\n"); return -1; } } /* Fill up the structs */ mbp_w.timeout = cfg_getint(cfg, "timeout"); ret = theme_load(cfg_getstr(cfg, "theme")); if (ret < 0) { fprintf(stderr, "Failed to load theme '%s', using '%s' instead\n", cfg_getstr(cfg, "theme"), DEFAULT_THEME); ret = theme_load(DEFAULT_THEME); if (ret < 0) { fprintf(stderr, "Failed to load default theme '%s'\n", DEFAULT_THEME); return -1; } } return 0; } int config_write(void) { FILE *fp; fp = fopen(conffile, "w"); if (fp == NULL) { fprintf(stderr, "Could not write to config file: %s\n", strerror(errno)); return -1; } fprintf(fp, "# gpomme config file\n"); fprintf(fp, "# - theme : name of the theme to use\n"); fprintf(fp, "# - timeout : time before the window hides\n\n"); cfg_print(cfg, fp); fclose(fp); return 0; } int config_monitor(void) { int fd; int ret; fd = inotify_init(); if (fd < 0) { fprintf(stderr, "Error: could not initialize inotify instance: %s\n", strerror(errno)); return -1; } ret = fcntl(fd, F_GETFL); if (ret < 0) { close(fd); fprintf(stderr, "Error: failed to get inotify fd flags: %s\n", strerror(errno)); return -1; } ret = fcntl(fd, F_SETFL, ret | O_NONBLOCK); if (ret < 0) { close(fd); fprintf(stderr, "Error: failed to set inotify fd flags: %s\n", strerror(errno)); return -1; } ret = inotify_add_watch(fd, conffile, IN_CLOSE_WRITE); if (ret < 0) { close(fd); fprintf(stderr, "Error: could not add inotify watch: %s\n", strerror(errno)); return -1; } return fd; } void config_gui(void) { GtkWidget *content; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *img; struct dirent **namelist; const char *cur_theme; int n; app_window = gtk_dialog_new_with_buttons(_("gpomme preferences"), NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size(GTK_WINDOW(app_window), 400, 240); gtk_window_set_resizable(GTK_WINDOW(app_window), TRUE); content = gtk_dialog_get_content_area(GTK_DIALOG(app_window)); gtk_box_set_spacing(GTK_BOX(content), 10); /* Theme */ vbox = gtk_vbox_new(FALSE, 10); label = gtk_label_new(_("Theme:")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 1.0); gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 10); img = gtk_image_new_from_icon_name("gnome-settings-theme", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, TRUE, 0); cb_theme = gtk_combo_box_new_text(); gtk_box_pack_start(GTK_BOX(hbox), cb_theme, TRUE, TRUE, 10); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(content), vbox, FALSE, TRUE, 10); /* Timeout */ vbox = gtk_vbox_new(FALSE, 10); label = gtk_label_new(_("Timeout (seconds):")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 1.0); gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 10); img = gtk_image_new_from_icon_name("appointment", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, TRUE, 0); hs_timeout = gtk_hscale_new_with_range(0.0, 5.0, 0.1); gtk_range_set_value(GTK_RANGE(hs_timeout), (gdouble)cfg_getint(cfg, "timeout") / 1000.0); gtk_box_pack_start(GTK_BOX(hbox), hs_timeout, TRUE, TRUE, 10); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(content), vbox, FALSE, TRUE, 10); /* Populate combo box */ cur_theme = cfg_getstr(cfg, "theme"); gtk_combo_box_append_text(GTK_COMBO_BOX(cb_theme), cur_theme); gtk_combo_box_set_active(GTK_COMBO_BOX(cb_theme), 0); n = scandir(THEME_BASE, &namelist, 0, alphasort); if (n < 0) { fprintf(stderr, "Could not open theme directory: %s\n", strerror(errno)); exit(1); } while (n--) { if ((namelist[n]->d_name[0] != '.') && (strcmp(namelist[n]->d_name, cur_theme) != 0)) { /* printf("%s\n", namelist[n]->d_name); */ gtk_combo_box_append_text(GTK_COMBO_BOX(cb_theme), namelist[n]->d_name); } } /* signals... */ g_signal_connect(app_window, "response", G_CALLBACK(on_gpomme_response_cb), NULL); g_signal_connect(app_window, "close", G_CALLBACK(on_gpomme_window_close_cb), NULL); g_signal_connect(hs_timeout, "value-changed", G_CALLBACK(update_gui_config), NULL); g_signal_connect(cb_theme, "changed", G_CALLBACK(update_gui_config), NULL); gtk_widget_show_all(app_window); gtk_main(); } void on_gpomme_response_cb(GtkWidget *widget, gint response_id, gpointer user_data) { on_gpomme_window_close_cb(widget, user_data); } /* window is closed, so write the settings to the config-file */ void on_gpomme_window_close_cb (GtkWidget *widget, gpointer user_data) { update_gui_config(widget, user_data); gtk_widget_hide(app_window); gtk_main_quit(); } void update_gui_config(GtkWidget *widget, gpointer user_data) { gdouble timeout = gtk_range_get_value(GTK_RANGE(hs_timeout)) * 1000.0; //g_print("setting timeout to %gs\n", timeout); cfg_setint(cfg, "timeout", timeout); //g_print("setting theme to %s\n", gtk_combo_box_get_active_text(GTK_COMBO_BOX(cb_theme))); cfg_setstr(cfg, "theme", gtk_combo_box_get_active_text(GTK_COMBO_BOX(cb_theme))); /* actually write them */ config_write(); } pommed-1.39~dfsg/gpomme/conffile.h0000664000175000017500000000031711571653265016567 0ustar julienjulien/* * gpomme - conffile.h */ #ifndef __CONFFILE_H__ #define __CONFFILE_H__ int config_load(void); int config_write(void); int config_monitor(void); void config_gui(void); #endif /* !__CONFFILE_H__ */ pommed-1.39~dfsg/gpomme/gpomme-c.desktop0000664000175000017500000000032111571653265017723 0ustar julienjulien[Desktop Entry] Version=1.0 Name=pommed GTK client configuration GUI Comment=A graphical client for pommed (configuration GUI) Icon=gpomme Exec=gpomme -c StartupNotify=true Type=Application Categories=Utility pommed-1.39~dfsg/gpomme/gpomme.10000664000175000017500000000147711571653265016207 0ustar julienjulien.TH GPOMME 1 "2006-12-31" .SH NAME gpomme \- GTK+ graphical client for use with pommed .SH SYNOPSIS .B gpomme .B [\-v] .SH DESCRIPTION .B gpomme will react to signals sent by .B pommed over DBus when a key is pressed, displaying the action taken by .B pommed and the current state associated with this action. .SH OPTIONS .B gpomme accepts the following command-line options. .TP .B \-v Print version information. .SH FILES .TP .B ~/.gpommerc User-specific configuration file for .BR gpomme . The file is automatically created when .B gpomme is run for the first time. Currently the theme and the timeout can be configured using this configuration file. .SH AUTHOR .B gpomme was written by Julien BLACHE and Soeren SONNENBURG based on code taken from .BR gtkpbbuttons . .SH SEE ALSO pommed(1) pommed-1.39~dfsg/gpomme/gpomme.c0000664000175000017500000003542111571653265016265 0ustar julienjulien/* * gpomme - GTK application for use with pommed * * Copyright (C) 2006, 2008 Soeren SONNENBURG * Copyright (C) 2006-2009 Julien BLACHE * Copyright (C) 2007 daniel g. siegel * * Portions of the GTK code below were shamelessly * stolen from pbbuttonsd. Thanks ! ;-) * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #ifndef NO_SYS_INOTIFY_H # include #else # include # include "inotify-syscalls.h" #endif #include #include #include #include #include #include #include #include "gpomme.h" #include "theme.h" #include "conffile.h" #include "../client-common/dbus-client.h" #include "../client-common/video-client.h" #define _(str) gettext(str) struct _mbp_w mbp_w; struct { int muted; } mbp; DBusError dbus_err; DBusConnection *conn; dbus_uint32_t mute_serial = 0; /* Timer callback */ static gboolean hide_window(gpointer userdata) { gtk_widget_hide(mbp_w.window); mbp_w.timer = 0; return FALSE; } static gboolean window_expose_event (GtkWidget *widget, GdkEventExpose *event) { GdkRegion *region; GtkWidget *child; cairo_t *cr; /* get our child (in this case, the event box) */ child = gtk_bin_get_child (GTK_BIN (widget)); /* create a cairo context to draw to the window */ cr = gdk_cairo_create (widget->window); /* the source data is the (composited) event box */ gdk_cairo_set_source_pixmap (cr, child->window, child->allocation.x, child->allocation.y); /* draw no more than our expose event intersects our child */ region = gdk_region_rectangle (&child->allocation); gdk_region_intersect (region, event->region); gdk_cairo_region (cr, region); cairo_clip (cr); /* composite, with a 50% opacity */ cairo_set_operator (cr, CAIRO_OPERATOR_OVER); cairo_paint_with_alpha (cr, 1.0); /* we're done */ cairo_destroy (cr); return FALSE; } static void draw_window_bg(void) { GtkWidget *window = mbp_w.window; GdkWindow *root_win; GdkScreen *screen; GdkRectangle mon_size; GdkPixbuf *pixbuf = NULL; GdkPixmap *pixmap = NULL; int x, y; int monitor; screen = gtk_window_get_screen(GTK_WINDOW(window)); /* Find which monitor the mouse cursor is on */ root_win = gdk_screen_get_root_window(screen); gdk_window_get_pointer(root_win, &x, &y, NULL); monitor = gdk_screen_get_monitor_at_point(screen, x, y); gdk_screen_get_monitor_geometry(screen, monitor, &mon_size); /* Move the window to the bottom center of the screen */ x = mon_size.x + (mon_size.width - theme.width) / 2; y = mon_size.y + (mon_size.height - 100 - theme.height); gtk_window_move(GTK_WINDOW(window), x, y); /* Redraw the window background, compositing the background pixmap with * the portion of the root window that's beneath the window */ pixbuf = gdk_pixbuf_get_from_drawable(NULL, gdk_get_default_root_window(), gdk_colormap_get_system(), x, y, 0, 0, theme.width, theme.height); /* render the combined pixbuf to a pixmap with alpha control */ pixmap = gdk_pixmap_new(GTK_WIDGET(window)->window, theme.width, theme.height, -1); GdkGC *gc = gdk_gc_new(pixmap); gdk_draw_rectangle(pixmap, gc, TRUE, 0, 0, theme.width, theme.height); if (!gdk_screen_is_composited(screen)) { gdk_draw_pixbuf(pixmap, NULL, pixbuf, 0, 0, 0, 0, theme.width, theme.height, GDK_RGB_DITHER_NONE, 0, 0); } gdk_draw_pixbuf(pixmap, NULL, theme.background, 0, 0, 0, 0, theme.width, theme.height, GDK_RGB_DITHER_NONE, 0, 0); gdk_window_set_back_pixmap(GTK_WIDGET(window)->window, pixmap, FALSE); g_object_unref(pixbuf); g_object_unref(pixmap); } static void show_window(int img, char *label, double fraction) { char *m_label; char *u_label; GtkWidget *window = mbp_w.window; if (img >= IMG_NIMG) return; /* Cancel timer */ if (mbp_w.timer > 0) g_source_remove(mbp_w.timer); if (!GTK_WIDGET_VISIBLE(window)) draw_window_bg(); /* Put the appropriate image in there */ if (mbp_w.image != theme.images[img]) { if (mbp_w.image != NULL) gtk_container_remove(GTK_CONTAINER(mbp_w.img_align), mbp_w.image); gtk_container_add(GTK_CONTAINER(mbp_w.img_align), theme.images[img]); } mbp_w.image = theme.images[img]; /* Set the text label */ u_label = g_locale_to_utf8(label, -1, NULL, NULL, NULL); if (u_label == NULL) m_label = ""; else /* accepts only UTF-8 input ... segfaults otherwise */ m_label = g_markup_printf_escaped("%s", u_label); gtk_label_set_markup(GTK_LABEL(mbp_w.label), m_label); if (u_label != NULL) { g_free(u_label); g_free(m_label); } /* Set the progress bar */ if (fraction >= 0.0) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(mbp_w.pbar), fraction); if (!mbp_w.pbar_state) { gtk_container_add(GTK_CONTAINER(mbp_w.pbar_align), mbp_w.pbar); mbp_w.pbar_state = 1; } } else if (mbp_w.pbar_state) { gtk_container_remove(GTK_CONTAINER(mbp_w.pbar_align), mbp_w.pbar); mbp_w.pbar_state = 0; } gtk_widget_show_all(window); mbp_w.timer = g_timeout_add(mbp_w.timeout, hide_window, NULL); } static void create_window(void) { GdkScreen *screen; GdkColormap *rgba; GtkWidget *window; GtkWidget *vbox; GtkWidget *align; window = gtk_window_new(GTK_WINDOW_POPUP); screen = gtk_widget_get_screen (window); if (gdk_screen_is_composited (screen)) { rgba = gdk_screen_get_rgba_colormap (screen); gtk_widget_set_colormap (window, rgba); } gtk_window_set_decorated(GTK_WINDOW(window), FALSE); gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE); gtk_widget_set_app_paintable(GTK_WIDGET(window), TRUE); gtk_window_set_default_size(GTK_WINDOW(window), theme.width, theme.height); gtk_widget_set_size_request(GTK_WIDGET(window), theme.width, theme.height); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); /* Image */ mbp_w.img_align = gtk_alignment_new(0.5, 0.7, 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox), mbp_w.img_align, TRUE, TRUE, 0); /* Text message */ align = gtk_alignment_new(0.5, 0.0, 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox), align, TRUE, TRUE, 0); mbp_w.label = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(align), mbp_w.label); /* Progress bar */ mbp_w.pbar_align = gtk_alignment_new(0.5, 0.0, 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox), mbp_w.pbar_align, TRUE, TRUE, 0); mbp_w.pbar = gtk_progress_bar_new(); /* make it 10px high */ gtk_widget_set_size_request(mbp_w.pbar, -1, 10); gtk_container_add(GTK_CONTAINER(mbp_w.pbar_align), mbp_w.pbar); /* Up the refcount to prevent GTK from freeing the widget */ gtk_widget_ref(mbp_w.pbar); mbp_w.pbar_state = 1; mbp_w.window = window; mbp_w.image = NULL; mbp_w.timer = 0; gtk_widget_realize(GTK_WIDGET(window)); if (gdk_screen_is_composited(screen)) { gdk_window_set_opacity(window->window, 0.8); g_signal_connect_after(window, "expose-event", G_CALLBACK(window_expose_event), NULL); } } static void mbp_video_getvtstate_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, (int *)status, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } static gboolean mbp_dbus_reconnect(gpointer userdata); static DBusHandlerResult mbp_dbus_listen(DBusConnection *lconn, DBusMessage *msg, gpointer userdata) { int scratch; int cur; int max; int who; double ratio; Display *dpy; if (dbus_message_is_signal(msg, "org.pommed.signal.lcdBacklight", "lcdBacklight")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &max, DBUS_TYPE_UINT32, &who, DBUS_TYPE_INVALID); if (who == LCD_USER) { ratio = (double)cur / (double)max; show_window(IMG_LCD_BCK, _("LCD backlight level"), ratio); } } else if (dbus_message_is_signal(msg, "org.pommed.signal.kbdBacklight", "kbdBacklight")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &max, DBUS_TYPE_UINT32, &who, DBUS_TYPE_INVALID); if (who == KBD_USER) { ratio = (double)cur / (double)max; show_window(IMG_KBD_BCK, _("Keyboard backlight level"), ratio); } } else if (dbus_message_is_signal(msg, "org.pommed.signal.audioVolume", "audioVolume")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &max, DBUS_TYPE_INVALID); ratio = (double)cur / (double)max; if (!mbp.muted) show_window(IMG_AUDIO_VOL_ON, _("Sound volume"), ratio); else show_window(IMG_AUDIO_VOL_OFF, _("Sound volume (muted)"), ratio); } else if (dbus_message_is_signal(msg, "org.pommed.signal.audioMute", "audioMute")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, &mbp.muted, DBUS_TYPE_INVALID); if (mbp.muted) show_window(IMG_AUDIO_MUTE, _("Sound muted"), -1.0); else show_window(IMG_AUDIO_MUTE, _("Sound unmuted"), -1.0); } else if (dbus_message_is_signal(msg, "org.pommed.signal.cdEject", "cdEject")) { show_window(IMG_CD_EJECT, _("Eject"), -1.0); } else if (dbus_message_is_signal(msg, "org.pommed.signal.videoSwitch", "videoSwitch")) { int vtnum; int vtstate; int ret; dpy = GDK_WINDOW_XDISPLAY(GTK_WIDGET(mbp_w.window)->window); vtnum = mbp_get_x_vtnum(dpy); ret = mbp_call_video_getvtstate(vtnum, mbp_video_getvtstate_cb, &vtstate); if ((ret < 0) || (vtstate < 0)) fprintf(stderr, "video getVTState call failed !\n"); else if (vtstate == 1) mbp_video_switch(); } else if (dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected")) { printf("DBus disconnected\n"); mbp_dbus_cleanup(); g_timeout_add(200, mbp_dbus_reconnect, NULL); } else { if ((dbus_message_get_type(msg) == DBUS_MESSAGE_TYPE_METHOD_RETURN) && (dbus_message_get_reply_serial(msg) == mute_serial)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, &mbp.muted, DBUS_TYPE_INVALID); } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } } return DBUS_HANDLER_RESULT_HANDLED; } static int mbp_dbus_connect(void) { unsigned int signals; DBusMessage *msg; int ret; signals = MBP_DBUS_SIG_LCD | MBP_DBUS_SIG_KBD | MBP_DBUS_SIG_VOL | MBP_DBUS_SIG_MUTE | MBP_DBUS_SIG_EJECT | MBP_DBUS_SIG_VIDEO; conn = mbp_dbus_init(&dbus_err, signals); if (conn == NULL) return -1; dbus_connection_setup_with_g_main(conn, NULL); dbus_connection_add_filter(conn, mbp_dbus_listen, NULL, NULL); /* Get the mute state */ msg = dbus_message_new_method_call("org.pommed", "/org/pommed/audio", "org.pommed.audio", "getMute"); if (msg == NULL) { printf("Failed to create method call message for audio getMute\n"); return 0; } ret = dbus_connection_send(conn, msg, &mute_serial); if (ret == FALSE) { printf("Could not send method call for audio getMute\n"); dbus_message_unref(msg); return 0; } dbus_connection_flush(conn); dbus_message_unref(msg); return 0; } static gboolean mbp_dbus_reconnect(gpointer userdata) { if (mbp_dbus_connect() < 0) return TRUE; return FALSE; } static gboolean mbp_check_config(GIOChannel *ch, GIOCondition condition, gpointer userdata) { int fd; int ret; fd = g_io_channel_unix_get_fd(ch); if (condition & G_IO_IN) { ret = config_load(); if (ret < 0) { fprintf(stderr, "Failed to reload config file, exiting\n"); gtk_main_quit(); } } close(fd); fd = config_monitor(); if (fd > 0) { ch = g_io_channel_unix_new(fd); g_io_channel_set_encoding(ch, NULL, NULL); g_io_add_watch(ch, G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL, mbp_check_config, NULL); } return FALSE; } static void usage(void) { printf("gpomme v" M_VERSION " graphical client for pommed\n"); printf("Copyright (C) 2006-2008 Julien BLACHE and others\n"); printf("Usage:\n"); printf("\tgpomme\t\t-- start gpomme\n"); printf("\tgpomme -c\t-- open the configuration panel\n"); printf("\tgpomme -v\t-- print version and exit\n"); } void sig_int_term_handler(int signo) { gtk_main_quit(); } void sig_chld_handler(int signo) { int ret; do { ret = waitpid(-1, NULL, WNOHANG); } while (ret > 0); } int main(int argc, char **argv) { int c; int ret; GIOChannel *ch; int fd; gtk_init(&argc, &argv); bindtextdomain("gpomme", "/usr/share/locale"); textdomain("gpomme"); ret = config_load(); if (ret < 0) { fprintf(stderr, "Failed to load configuration\n"); exit(1); } while ((c = getopt(argc, argv, "cv")) != -1) { switch (c) { case 'c': config_gui(); exit(0); break; case 'v': printf("gpomme v" M_VERSION " graphical client for pommed\n"); printf("Copyright (C) 2006-2008 Julien BLACHE and others\n"); exit(0); break; default: usage(); exit(-1); break; } } mbp_dbus_connect(); fd = config_monitor(); if (fd > 0) { ch = g_io_channel_unix_new(fd); g_io_channel_set_encoding(ch, NULL, NULL); g_io_add_watch(ch, G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL, mbp_check_config, NULL); } signal(SIGINT, sig_int_term_handler); signal(SIGTERM, sig_int_term_handler); signal(SIGCHLD, sig_chld_handler); create_window(); gtk_main(); mbp_dbus_cleanup(); return 0; } pommed-1.39~dfsg/gpomme/gpomme.desktop0000664000175000017500000000025011571653265017504 0ustar julienjulien[Desktop Entry] Version=1.0 Name=pommed GTK client Comment=A graphical client for pommed Icon=gpomme Exec=gpomme StartupNotify=true Type=Application Categories=Utility pommed-1.39~dfsg/gpomme/gpomme.h0000664000175000017500000000112011571653265016257 0ustar julienjulien/* * gpomme - gpomme.h */ #ifndef __GPOMME_H__ #define __GPOMME_H__ #include #define THEME_BASE "/usr/share/gpomme/themes" #define M_VERSION "0.7" struct _mbp_w { GtkWidget *window; /* The window itself */ GtkWidget *img_align; /* Image container */ GtkWidget *image; /* Current image, if any */ GtkWidget *label; /* Text label */ GtkWidget *pbar_align; /* Progress bar container */ GtkWidget *pbar; /* Progress bar */ int pbar_state; int timeout; guint timer; }; extern struct _mbp_w mbp_w; #endif /* !__GPOMME_H__ */ pommed-1.39~dfsg/gpomme/inotify-syscalls.h0000664000175000017500000000571511571653265020325 0ustar julienjulien/* * Inotify syscall numbers * Taken from the Linux kernel source tree * * Licensed under the terms of the GNU General Public License Version 2. * * Copyright (c) 2006 Tobias Klauser */ #ifndef _LINUX_INOTIFY_SYSCALLS_H #define _LINUX_INOTIFY_SYSCALLS_H #include #if defined(__i386__) # define __NR_inotify_init 291 # define __NR_inotify_add_watch 292 # define __NR_inotify_rm_watch 293 #elif defined(__x86_64__) # define __NR_inotify_init 253 # define __NR_inotify_add_watch 254 # define __NR_inotify_rm_watch 255 #elif defined(__powerpc__) || defined(__powerpc64__) # define __NR_inotify_init 275 # define __NR_inotify_add_watch 276 # define __NR_inotify_rm_watch 277 #elif defined (__ia64__) # define __NR_inotify_init 1277 # define __NR_inotify_add_watch 1278 # define __NR_inotify_rm_watch 1279 #elif defined (__s390__) # define __NR_inotify_init 284 # define __NR_inotify_add_watch 285 # define __NR_inotify_rm_watch 286 #elif defined (__alpha__) # define __NR_inotify_init 444 # define __NR_inotify_add_watch 445 # define __NR_inotify_rm_watch 446 #elif defined (__sparc__) || defined (__sparc64__) # define __NR_inotify_init 151 # define __NR_inotify_add_watch 152 # define __NR_inotify_rm_watch 156 #elif defined (__arm__) # define __NR_OABI_SYSCALL_BASE 0x900000 # if defined(__thumb__) || defined(__ARM_EABI__) # define __NR_SYSCALL_BASE 0 # else # define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE # endif # define __NR_inotify_init (__NR_SYSCALL_BASE + 316) # define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) #elif defined (__sh__) # define __NR_inotify_init 290 # define __NR_inotify_add_watch 291 # define __NR_inotify_rm_watch 292 #elif defined (__hppa__) # define __NR_inotify_init 269 # define __NR_inotify_add_watch 270 # define __NR_inotify_rm_watch 271 #elif defined (__mips__) # include # if _MIPS_SIM == _MIPS_SIM_ABI32 # define __NR_Linux 4000 # define __NR_inotify_init (__NR_Linux + 284) # define __NR_inotify_add_watch (__NR_Linux + 285) # define __NR_inotify_rm_watch (__NR_Linux + 286) # elif _MIPS_SIM == _MIPS_SIM_ABI64 # define __NR_Linux 5000 # define __NR_inotify_init (__NR_Linux + 243) # define __NR_inotify_add_watch (__NR_Linux + 244) # define __NR_inotify_rm_watch (__NR_Linux + 245) # elif _MIPS_SIM == _MIPS_SIM_NABI32 # define __NR_Linux 6000 # define __NR_inotify_init (__NR_Linux + 247) # define __NR_inotify_add_watch (__NR_Linux + 248) # define __NR_inotify_rm_watch (__NR_Linux + 249) # endif #else # error "inotify not supported on this architecture!" #endif static inline int inotify_init (void) { return syscall (__NR_inotify_init); } static inline int inotify_add_watch (int fd, const char *name, __u32 mask) { return syscall (__NR_inotify_add_watch, fd, name, mask); } static inline int inotify_rm_watch (int fd, __u32 wd) { return syscall (__NR_inotify_rm_watch, fd, wd); } #endif /* _LINUX_INOTIFY_SYSCALLS_H */ pommed-1.39~dfsg/gpomme/po/0000775000175000017500000000000011571653265015246 5ustar julienjulienpommed-1.39~dfsg/gpomme/po/de.po0000664000175000017500000000247011571653265016201 0ustar julienjulien# gpomme - graphical client for pommed # Copyright (C) 2006 Soeren SONNENBURG # Copyright (C) 2006, Julien BLACHE # Copyright (C) 2007, daniel g. siegel # This file is distributed under the same license as the PACKAGE package. # Julien BLACHE , 2006. # msgid "" msgstr "" "Project-Id-Version: gpomme 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: 2007-03-08 18:44+0100\n" "Last-Translator: daniel g. siegel \n" "Language-Team: german \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: gpomme.c:343 msgid "LCD backlight level" msgstr "Helligkeit" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "Tastatur Beleuchtung" #: gpomme.c:373 msgid "Sound volume" msgstr "Lautstärke" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "Lautstärke (Ton aus)" #: gpomme.c:386 msgid "Sound muted" msgstr "Ton aus" #: gpomme.c:388 msgid "Sound unmuted" msgstr "Ton an" #: gpomme.c:392 msgid "Eject" msgstr "CD Auswerfen" #: conffile.c:282 msgid "gpomme preferences" msgstr "gpomme Einstellungen" #: conffile.c:286 msgid "Theme:" msgstr "Thema:" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "Timeout (Sekunden):" pommed-1.39~dfsg/gpomme/po/es.po0000664000175000017500000000246711571653265016226 0ustar julienjulien# Spanish/Spain translation of gpomme. # Copyright (C) 2007, Eduardo Bellido Bellido # This file is distributed under the same license as the gpomme package. # Eduardo Bellido Bellido , 2007. # # msgid "" msgstr "" "Project-Id-Version: gpomme 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: 2007-03-21 23:04+0100\n" "Last-Translator: Eduardo Bellido Bellido \n" "Language-Team: Spanish/Spain \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit" #: gpomme.c:343 msgid "LCD backlight level" msgstr "Nivel de brillo de la pantalla" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "Nivel de brillo del teclado" #: gpomme.c:373 msgid "Sound volume" msgstr "Control de volumen" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "Control de volumen (silenciado)" #: gpomme.c:386 msgid "Sound muted" msgstr "Sonido silenciado" #: gpomme.c:388 msgid "Sound unmuted" msgstr "Sonido normal" #: gpomme.c:392 msgid "Eject" msgstr "Expulsando CD/DVD" #: conffile.c:282 msgid "gpomme preferences" msgstr "Preferencias de gpomme" #: conffile.c:286 msgid "Theme:" msgstr "Tema:" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "Tiempo de espera (segundos):" pommed-1.39~dfsg/gpomme/po/fr.po0000664000175000017500000000232111571653265016213 0ustar julienjulien# gpomme - graphical client for pommed # Copyright (C) 2006, Julien BLACHE # This file is distributed under the same license as the PACKAGE package. # Julien BLACHE , 2006. # msgid "" msgstr "" "Project-Id-Version: gpomme 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: 2007-03-08 18:43+0100\n" "Last-Translator: Julien BLACHE \n" "Language-Team: french \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: gpomme.c:343 msgid "LCD backlight level" msgstr "Luminosité écran" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "Éclairage clavier" #: gpomme.c:373 msgid "Sound volume" msgstr "Volume sonore" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "Volume sonore (muet)" #: gpomme.c:386 msgid "Sound muted" msgstr "Son désactivé" #: gpomme.c:388 msgid "Sound unmuted" msgstr "Son activé" #: gpomme.c:392 msgid "Eject" msgstr "Éjection" #: conffile.c:282 msgid "gpomme preferences" msgstr "Préférences gpomme" #: conffile.c:286 msgid "Theme:" msgstr "Thème :" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "Délai (secondes) :" pommed-1.39~dfsg/gpomme/po/gpomme.pot0000664000175000017500000000206711571653265017263 0ustar julienjulien# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: gpomme.c:343 msgid "LCD backlight level" msgstr "" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "" #: gpomme.c:373 msgid "Sound volume" msgstr "" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "" #: gpomme.c:386 msgid "Sound muted" msgstr "" #: gpomme.c:388 msgid "Sound unmuted" msgstr "" #: gpomme.c:392 msgid "Eject" msgstr "" #: conffile.c:282 msgid "gpomme preferences" msgstr "" #: conffile.c:286 msgid "Theme:" msgstr "" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "" pommed-1.39~dfsg/gpomme/po/it.po0000664000175000017500000000233011571653265016220 0ustar julienjulien# gpomme - graphical client for pommed # Copyright (C) 2007 daniel g. siegel # This file is distributed under the same license as the PACKAGE package. # Julien BLACHE , 2006. # msgid "" msgstr "" "Project-Id-Version: gpomme 0.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: 2007-03-08 18:44+0100\n" "Last-Translator: daniel g. siegel \n" "Language-Team: italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: gpomme.c:343 msgid "LCD backlight level" msgstr "Illuminazione" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "Illuminazione della Tastiera" #: gpomme.c:373 msgid "Sound volume" msgstr "Volume" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "Livello suono (muto)" #: gpomme.c:386 msgid "Sound muted" msgstr "Suono muto" #: gpomme.c:388 msgid "Sound unmuted" msgstr "Suono normale" #: gpomme.c:392 msgid "Eject" msgstr "Espellere CD" #: conffile.c:282 msgid "gpomme preferences" msgstr "Impostazioni gpomme" #: conffile.c:286 msgid "Theme:" msgstr "Tema:" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "Timeout (secondi):" pommed-1.39~dfsg/gpomme/po/ja.po0000664000175000017500000000263211571653265016203 0ustar julienjulien# gpomme - graphical client for pommed # Copyright (C) 2006, Julien BLACHE # Copyright (C) 2008, Nobuhiro Iwamatsu # This file is distributed under the same license as the PACKAGE package. # Nobuhiro Iwamatsu , 2008. # msgid "" msgstr "" "Project-Id-Version: gpommed 1.21\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-03-08 18:42+0100\n" "PO-Revision-Date: 2008-10-07 21:24+0900\n" "Last-Translator: Nobuhiro Iwamatsu \n" "Language-Team: debian-japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: gpomme.c:343 msgid "LCD backlight level" msgstr "LCD ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆãƒ¬ãƒ™ãƒ«" #: gpomme.c:358 msgid "Keyboard backlight level" msgstr "キーボードãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆãƒ¬ãƒ™ãƒ«" #: gpomme.c:373 msgid "Sound volume" msgstr "サウンドボリューム" #: gpomme.c:377 msgid "Sound volume (muted)" msgstr "サウンドボリューム (ミュート)" #: gpomme.c:386 msgid "Sound muted" msgstr "ミュート" #: gpomme.c:388 msgid "Sound unmuted" msgstr "ミュート解除" #: gpomme.c:392 msgid "Eject" msgstr "イジェクト" #: conffile.c:282 msgid "gpomme preferences" msgstr "gpomme ã®è¨­å®š" #: conffile.c:286 msgid "Theme:" msgstr "テーマ:" #: conffile.c:289 msgid "Timeout (seconds):" msgstr "タイムアウト (ç§’):" pommed-1.39~dfsg/gpomme/theme.c0000664000175000017500000000564711571653265016112 0ustar julienjulien/* * gpomme - GTK application for use with pommed * * Copyright (C) 2006 Soeren SONNENBURG * Copyright (C) 2006-2007 Julien BLACHE * * Portions of the GTK code below were shamelessly * stolen from pbbuttonsd. Thanks ! ;-) * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "gpomme.h" #include "theme.h" struct gpomme_theme theme; static GtkWidget * load_image(const char *name, const char *img) { GError *error = NULL; GdkPixbuf *pixbuf; char file[PATH_MAX]; int ret; ret = snprintf(file, PATH_MAX, "%s/%s/%s", THEME_BASE, name, img); if (ret >= PATH_MAX) return NULL; pixbuf = gdk_pixbuf_new_from_file(file, &error); if (error != NULL) { printf("Error loading theme file %s: %s\n", name, error->message); g_error_free(error); return NULL; } return gtk_image_new_from_pixbuf(pixbuf); } int theme_load(const char *name) { GError *error = NULL; char file[PATH_MAX]; int i; int ret; ret = snprintf(file, PATH_MAX, "%s/%s/background.png", THEME_BASE, name); if (ret >= PATH_MAX) return -1; if (theme.background) g_object_unref(G_OBJECT(theme.background)); theme.background = gdk_pixbuf_new_from_file(file, &error); if (error != NULL) { printf("Error loading theme background: %s\n", error->message); g_error_free(error); return -1; } theme.width = gdk_pixbuf_get_width (theme.background); theme.height = gdk_pixbuf_get_height (theme.background); /* * We need to up the refcount to prevent GTK from destroying * the images by itself when we start adding/removing them * to/from a GtkContainer. */ for (i = 0; i < IMG_NIMG; i++) { if (theme.images[i]) g_object_unref(G_OBJECT(theme.images[i])); } theme.images[IMG_LCD_BCK] = load_image(name, "brightness.png"); theme.images[IMG_KBD_BCK] = load_image(name, "kbdlight.png"); theme.images[IMG_AUDIO_VOL_ON] = load_image(name, "volume.png"); theme.images[IMG_AUDIO_VOL_OFF] = load_image(name, "mute.png"); theme.images[IMG_AUDIO_MUTE] = load_image(name, "noaudio.png"); theme.images[IMG_CD_EJECT] = load_image(name, "cdrom.png"); for (i = 0; i < IMG_NIMG; i++) { g_object_ref(G_OBJECT(theme.images[i])); } return 0; } pommed-1.39~dfsg/gpomme/theme.h0000664000175000017500000000075411571653265016111 0ustar julienjulien/* * gpomme - theme.h */ #ifndef __THEME_H__ #define __THEME_H__ #define DEFAULT_THEME "CrystalLarge" enum { IMG_LCD_BCK = 0, IMG_KBD_BCK, IMG_AUDIO_VOL_ON, IMG_AUDIO_VOL_OFF, IMG_AUDIO_MUTE, IMG_CD_EJECT, IMG_NIMG /* Keep this one last */ }; struct gpomme_theme { int width; int height; GdkPixbuf *background; GtkWidget *images[IMG_NIMG]; }; extern struct gpomme_theme theme; int theme_load(const char *name); #endif /* !__THEME_H__ */ pommed-1.39~dfsg/gpomme/themes/0000775000175000017500000000000011571654363016115 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/CrystalLarge/0000775000175000017500000000000011571653265020511 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/CrystalLarge/background.png0000664000175000017500000000274511571653265023346 0ustar julienjulien‰PNG  IHDR\r¨fsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<bIDATxœíÜ1oY…ásA¢ Dƒ´ÿÿÇ Ñ  ¨H‰@ ²î3dɆ@ˆ{7çy™q¾æ¾žÏxÌ9scŒGIŽ’áá¿l›äC’÷sÎíï6þmÆO“¼NòàVÆvá[’·sÎO¿Úè—c¼Jòò–vçxÎùîª?þ4ë!ÿ_YÎõÿ·“$o~vJ°¹b‹î£,kú’KXû-~¸_ŽÖµ}Á…¬üœóÃýôr]ãçΰž÷¿ÞùHÀ.½^×z’‹G/â«>¸ïdYëIÖ¬wø=ß×DÀN=_×üùÀ³¸ÃZdYóçpÕº%Éf}ªÏƒ=ÐåñãÑ&>ý¡ÕÑ&Ëóü@Ÿ'›,?âô9Üdù% ÏCGÐëpßÿC«ƒ« (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€b›$Û}ìÅv“ätßS{qºIr¶ï)€½8s½N7I>ï{ `/>o’œì{ `/N6sίI¾ì{`§¾Ì9¿~¿ÀQt9Iþ¹ècÜ-¶YÖü€9çi’ûœØ™ëš¿p+ðû$ßö3°#ß²¬õ$?`ιMòv;óv]ëIþõ0МóS’ãìÂñºÆÏ]zpÎù.¾€ûæd]Û\õ8ð›ˆÜ'YÖô%cÎyå^cŒWI^ÞÑPÀÝ;þÙ'ÿw¿ @’Œ1ž&yäÁ-ÜoY.ø}úÕF¿ @’Œ1’¼Hò<ÉÁ­ŒÜ…m–{zÞÿxµÿ*× ÀùÆc&y–ä(Éã›Nܺ/YÎõ?~¿Éç:þ(vãQ–"¢òÅ‹êÙ³güêի۾ģåÃ¥ã቙™=föžpÇñýù|þPk=gæ±Öz`„º˜Q,„¤”¾ïûžÖZåyþHk}@4ŸÏ£þçþöôôôý³gÏÔmôGøÊv'ÔL4Í×Zû‚óóóðË/¿ŒžÕZŸÑYE§³ÙìT)5›d”…;#ÏóÂ(м8Žåx<ö&“‰7N½Ñh„0 ­—¶PA´<»¢åå­Ò»Êß]'"„aˆ³³3!˜ˆ@D~Q÷ÖëõÌ|Ÿ™_XøäµG¸CÒÃÎXfÆeh|Ó­µÏÌÁ“'Oâ/¿ürúäÉ“9€9€3!ÄÆfäyž/¥ô Kãû¾„a(,ŒÇÇÙ¥ÜCÛ‡Î{È÷Ý” àŠãé¥ef˜Ù???¾üòËа3'†‚œ2óTk=UJ!¦RÊ©ÃÐŒ}ß‚ ð¢(ÉVÑã8Öa" C2K„aÏÛüÌ}ŠÜý›+Cû÷)ú¡ç° NÝhWp4€O(ÆÓ‹Ç˜ùž©9ãx>›ÍæÆÓOLæ56°'’RFA£ÑÈFÞx<–ãñسø=Š"ö}Ôi—™±íº·¶ìRî뜿/p¾Í^àhH‡ÃÎX†¦©Ÿj­­§·54'î8#¢3ÔAìL1‘RF&hµ«F4,CÃãñfƒ `cȯGSy=9´ï.8d½+6è3®Û£ f3KföP³2j¥P©sf¾à3[O?ÕZ¤”‘”2”Rú¶AàF#i=ûx<Vñ£(â ¼Þ¥"-+cp˜GÞ¥ØCÊxaHîîwåhŽtǰj­¥ñä–ñ™90e¿cl;d.¥¼ojgN…3"šxžAÐÔÏXèÇqãÝmF°ô¤”’™™z»…“wáñ¾Ï‡Bœ>ùPp÷q ¶ç¸µŽ£8Ò©{¢ŸÄq<™Íf¥Ô5f?1&0µïžçÅa†¦n&ÃÐ7AkSN`‚׆©q³«®—'"h­Eß§ }ŠÝwÜ.ÖçP#ø©r—â€_¤txxÏ`öа3á4²Š®µž1󴪪 M¤”ÏóN<Ï›†&2™Ui¸t¤ekLÑXÃÐØú[Ѻ¿"øPêqß¶!9ĺœýuƒà.dëžþ“ýð=ò‹4ÇÓÌ|¢µ>𠊢3‡vfb“RDI)ƒ(ŠüÉdâM&o<{£ÑHŒF#KM6u4¶HÌáßÉegö@-Ù…Û¡$ûÖ?D>c€O(]ìnF8Ù&Í}úÖÓ?yò$´<<êÒ‚3"z€º´`ND!D$¥ =Ï mIçyž­Ÿ™L&˜L&ìâö0 ¹£ð²IŸ§ßG9öµ]ÇöûºÒ÷Zk(¥LYA Ï“†zþÞëþ§”Ÿ…N&³ê1s 4-FÓçÌ|ÆÌâ8>3õðc!Dd†òžçBˆÀ÷}iëg&“‰˜L&Â24Æø¾Ï.fw±{CÓ'ûpú! ~ÿS”_)Õ(|Ý*äy,K¡µ†çy6¨‡ïÝ÷O½®!Ÿ…ì›Æb÷'OžØN#ÔJoG8M‰h.„¸'¥|`*%§†ƒ¦öÝÒß(ŠšêÈÉd‚ñxl½<¤”Úàö­ µo}-¹ ÖBM²ýézv­5´V¨ª eY¢(Šf™ç%’$År™ ªac29ÁÙ™Âl6ÁxÀ÷EïuY kŠƒÙíÖ5FŸ˜šN¥Ô„Í mÔeÁ'D4BÄ&H £( ¢( ‚ ðÂ0$g(›ÀµÁð¾ï·0¼ g¬ò_§”àÐDÓ¡´dŸR"CÇi­Ï›–eÒ4A–¥æs†Õ*Ãb‘ãò2GYJ„á f³3)ù®ÏÝóì“Cöu=oUU ”©*ëå dYÖ´4Í$V«Ëe­ôI’c½.°\æX.K, EáAÊ󹯝-ÀìãÑ£ NO ZÌzçuw®ýÈY9== ¿þúë_}õÕãù|þ+¥Ô}®‡öÙùg¬1ÄDú¾ïÇq,ÍÈ&2™ÈÑh$¡|ÍÒõ ËÐ\W-|ØÅÒ¸çÚå  ^·âz÷Íg†RÒ4E’$X¯×H’µYÖ^>ÏsE,+±Z•¸ºªpqQa±ÐX­4ÖkÆzÍHSB–I u†Ùl‰õ:ÄééE¡Mũ£{'˜¡;i¾ïc6›áéÓ§“¯¾úê7?þ[f~ à¡ñê¡–ÃÌAã™À•,CsrrÒ04Òô Ø6*õymWͰá÷Cc„]Òͤ}·5¿·½|U)dYn”ÓV«ÄxøiZ"ÏÒTaµRX,4®®Ë%$@šòœP„ª(K6ç-0›eX. (APjû‡àÚmŒ ¸“pzzН¿þÚûꫯæóùüï˜ù !΃ ˜šÊH1h2™ˆét*&“‰pg÷R‘D´·†Æý|] r—Ñt?ˆtÏå^» Z-¬©½BžçX¯WX¯×޲§H’:ˆ- …ªÒ(KFžë5°Z–KË¥Àj%‘¦Œ4ÕÈ2Fžk”%ŒÂ×Mk NX³ãé ®.ÊçòSåN@Ç8??§óóóX)uÀ£0 ÏæóyüðáCžÏçMýŒ&ŽcxžÇ.ç~]NüPŒ~ˆ‡ß÷]ûöéó†5+³i–’´«Ûj–&ÃjµQüÕªÆñYV¡,­˜%´–¨*y.±^ ¬VÀjÅHSFž3”b Bhxž A¤@¤QU fíe[ù-©3Äõ=†®P;äNÐÆÓ¾ïc<ó£GøoþæopÿþýÁú™C9æ},L÷o»°ü®óÿ”ûï®[¯^côY–#Ïë`5M¤iŠ4Í‘$9Ò´D–i ”%¡(F(KªªŸÙ³0Æ@ð}`2°öðJÕË¢P(K¢¨P E¡çÒ´B–UÈsezU{½›å>8yÌtÄQ6ff&"†!O&Ü»w’¤DJD‘)í8¡í{·F®µFUUMríÈ ×eV†¼¯ç¸Ž‡ßµÏP¥äæ{Zo°ÖX¾Î¸Ö‰¦V«I’"Ij>>Ï-›SCšª"EíÑ™C>ˆ|µÂDnÚb£Ôu3[Á ³m_6ûÑ€uOáy¾/àûA áûã± bcжuc˜,Ë$ ò+’>Ïn»Õ]FÑwžCdW×÷}V6,M‰ˆÐ”PdY޲,[åJ)Eaâ–J}òY{ågcÖ«¸Ÿíßúößw¾}“@uiÔn «ôeYØR/ó¼4\|Šårm˜š iZsðµ.x<ãÑ0‡ AAˆBxBˆê^…YCkvîaãÙw)üaÏxh½î­m“c½ÖX,H’´Ü„ÞmMˆe宀+=¡n/pÈþ[_Ôù1¶]w’N†¦¦%kL[Ó’¹i…ÃÒ”†2¬OZ ù Œ§÷°Áñõ:Q­ô]=q•t³t•wÓ¬lÖ»4eûsŸ·ï‹ ¶Ý@¾ÚÛëÆ¸N©›ˆ¼M#ø  W®ëá?†QhÍ(ŠI’`µZ–fmhÉ yž!ËrdY‰4UÈ2 Ï eY³4Z‡Ðz­E“„"ò „!¬¢»cy´†¬6Wj®×5ÝRàÙÞ[Ʊ1ŠîöÍwØíÝõvï`¯gs¾Mo¼QðnÏy”øL `_¿+ùå>ð.CÓÅòÖÃ×^^¡(JdY†õz¼®Vuò)ËÊ&YT–Œ¢ÊR¢,=hí/8pF4K›ˆÂUjðü¶l_×ó»°Y‡³Ž–t{‰]móý›å6k_sŸ¢ß¶òŸ©¸rž «ü.½4Ê`ùëõ«Õʪ©¡"K“ ­³¬y¡,%ª*‚־û‹†Žt=|M)nf>¯½¼³Í¤’Qzj”mÜß…DØc}¹ŠvÈx¶­½¯Û+Ô÷á>÷¾rˆÛŽ>;Ø•Ø×Øý,3SÓE3¤Î¤N |‚Åb…Õ*Åz#Ë*…†R¶†ÆƒR¾7´®çʪah°»[#³Y·ŸÙÙ^+}tºË®l¼mH³½ì7€>¥v•»þ‚mÃêë¶=¾½×>´Ùçv¡Ðgg}rh/`½}’$¸¼¼Är¹lJ ê’à‹EŽå²ÀjU"I²ŒQ–õì‡ZÇкV| .-ØÌŠh^ÂzõúM@öí’Zôd­ì(L½ßÆó÷+ƶ@¯â[ð ?l(ë¶!€ ºï56Üé ûÆ# µíØ|€Ò tÅz¡²,±\®ðâÅK¼~ý‹EŠÅ"Ãr™c±È°XX¯Ò¨* ¢RðýRFé-G¿_óñhZˆZéÜ1w9Ô6×Û^=ƒÍºû ö@·GèÆºëñ;1Ãþ8¡ÝôÉm{à35W®SœfǼ.—Küøã+üå/¯ñúu‰wï4./Ë¥6¿öê¾`<ŽE!˜=Hé98¾†7uõ5o×Ѭo ú‡ ÂÞUŽ}I»ösègyœåž@['¢¿¹Ûyßv·¦¨ÜÅ]~­|¶0TâÐýàa5»“¦9./Wxñb‰¿þUãÕ+Âb!e@­èAàCˆZG`ö¡T mjOO[Šß†/ÛJ½Q†í}ëåÙ8`»¶¾ç9˜ÿÈÒ¬ù @ÛuXøƒövwÝÙ®57Ÿ»Ïþà¶ä³3€]Šßý{wÛ†§f”e=êí[7oÒ´žC+Ž}Äq€ñ8DÛÂ.wôÕn(³ñô]åßþ\Ÿ£änX khý½¹'ô¬3ZÌüæžÒ£­Ôn«ah»ÍÜ “=Ô=ÖÍ3å׌í§o¯¿]ZrÛŠoå³3`XÉ÷á!(UÓ—õW¥$‚ @ˆãº…a¿ò×Ê+z  ¿m÷Vú⃠ûCMIÍîl¶ €³lš‹Ô(³Ý§¥è´Ù_Û^ƒœ¿ Í1škãÑ\·ÖÅ5÷Úßc€~9ømV÷³á×=O kÏ?™ˆ"B¸‰(2ŒŽíÊëãQ~ûÛ=€ñüàF»»ûÃí6¨®U°ÙÆ;csÀ–4ûR»WpŒaóysŒ6Jw‹A(•ÖPNu½õã{€ë˾Á)C,Ð0 xžDIø¾ß@φ<›%xùCb‚ö54ŽÞþÍ&ĈÛ.€È1sϨ÷or”×ñÆG·ÐuŒ€;†AYc#ÓS˜ãjÅgˆJ£¨4ÊJ7LÐÎõ=ÿc pmÙì:¦»«”qì¡,xÞïÛýÝ·ÍÛÛ$°1ê1ˆlãùA ³ÊØD ÿ ÜÛÀzkœúëÝíöMOàÆd¼ºa‚Pç.ØQø®T¬‘ Š5ÒÂCa €¨ÿÒo[é]ù, `Ës( ä†|Dd DÚWÕûÕüýnLïz¶ÝlÝ×É 8žöïÌ .æo¹û„Xó§Í[Kb§§p Rßvr¼?Q{›ƒÿµ2Œk p mÖQ@©I^a–X%%FZ tà“½Ï¡Z CgÑþ”òÙÀ>9|Ì&øu3¸–"=Ãï·]ÖàB7KÚ8xêêñ¶2t·sŸ¸µWyÌÿì× r7O„[ñ‚‹ý7=7Á¯ÒŒJ1²Ra•UXg’RAeöG«wÜ8²@Ê®2çÏÐ)ÜÚ¤öû¼?¯?dÆxD»èŒÚ´ÖÖ’œZØÙÙ@Ý“8°¯µìÙîÆ­'Ò—@ *±iš3 ¥‘e iZbUÈJ ÔÝ›€I’s±Ç<ÀG’]õ>Ý¿íÚh3˜n ð¡¼þŽÀ.¹1.ÌÇÖî±ëê 6:ñu Àé)z–]ci’[ÔÞÇe‰*m&È*u=oh^!˲ª¦=!$¨m·ÇàÓÈuÇþº52îñýÐOkÚí@Û#jM$BÔ@¦æ¿e ]v¤‡-éöíÖcüιÜõýù7FÛÆBÅŒ¬ÔÈò iV!Ï«zàÒЄZñ€Gµ!Ø9X ßU z›òY@ß@–CèÐý³?l¼Ýlл‹ÕlPÛl–Õˆ#@‡ßïYnœ¸£Ž¡l? w‡ÍNÍ,&6à4ÿ; c[Ñ 5 rÙ¡M}Òõ¬pE©Ò\!/ÊŠ¡4×X_ŠÚ MA͸ J¾K> ’Ÿ2ûC×û+Å@xˆ×‡¡ö°Q~¦‘lžšýêMµ¶o¶S³ÕI4lQkÝî#°Qð®Ru<¿½·&¨>®½ß¦G Fùmb«(²B!Ëë¹?ËR×`A`@°©…0õÑ’êf PtX îh°#º¦ì ¶;à.±õÃ!À(½í)xÓÂô]vgèï-hCm€1GñíI‡ À~·Ö·îÜøàM§âÚ³Û)Ó³¢Npå¥F¥Ìls %$€¦H c®®íÿnVîº|”§ÒÍ´k×í,æM0ìšßõn.ãA›n¢r½¾5&±ùrz¦çèôNT¹õdر`[ñ7y‚.D"h®³¹¥b”¥F^š1Ïeýþ€…u6ÉC“™¿5Þߥ³Ú,PwfˆÛ†GwÙš'³+á543DëD=™àúËÙX@7yú8§‰ Nw¶‹°…ñ‡¶o{þ=ëîq¿Ü}½1Àv©„õüÚx~¥5”b”¦†§(ëVVJ×5@ ªG}ÚƒmJ˜°Éfoðÿè®Mr— `KvA}ÃîÚsܸçtaËûÛì-×”¦utfV‡ Æ5ÿZÜ5j)k[ úŽk¯oõ­èÚ¹Ÿ:T#ԥ͕Qú¢R(+J1*UÏGjŸ%Õ .¥w—¶G°×#ÉäAȽ”ÁßçØüDézÿ®ô=\w77Vʰ@.«#6ç°U .ìiÃ=Ü­ýAgÿ^…·qvÿ"™7;m.Š;\j›÷7ã}ÐÜñøFù•b([üfă/®q~wÝÁ¤°½€¼ïSòcp ÙWøvàY°Ék(¥ `âšÕq˜ € ·èPj)pï ´pÿÖõù¸Ðb{v°B­%,in‹Ü»ÛÀu¥7å ¥ÒÇWJ;uý¦ŒBX~°Û…Ý΀ xc¤}ª}Wæ>è{PžhÏv ¬÷S Í‚$«M.Ö¯×-䬶ÿ¾ óoŽs=¿Ëþ é šýÜž Ó#ô–/=Õ.³c NYÕŸ•¶eϹ)+m+zWá»_ Pn à”B¸÷zGå³0€!ùiy;“qÝ(mæÖ—ý,µ¼w»Øíí2¸_lï³Qüží µÙÙ›rÕ@Þ,5PP&ÆÑ´0Fµ€É޹å uf¶›·BšB-<@}‘]ÕïcŽèéc{†öé®÷?à þ·‘Á-г‹ñ©¥¼Œßxw3§í.ögp»… ‚:û¶=K'ë»h<½»tyýfœ®ýžFs[埛϶kið‘ÙߞؙuËÔÉ}=À]b‚> è£<í²k×í¬ÒTš¡Á5 jó=Àƃ;‰t–‡o Ë/\‹rös¡“p•¿Î71\O¿ÙÞ†é¼Áö€ÁöÍECiÚU؃ic.ïo ¨aÌz]Š&Ðe½v<û»> påEß_ ÊÍÿ¶@LAƒjR›gË ›£›e·hy¾a¯ÑÙfNêR•ö:›R¦&áªÐVþZiN!†µ¯Oñí²QøN0ì Û3Xþß²@ þ·÷0ìÝïÂ`à34à084päÖ¨0H{dL4\¶¢M5»íÜ€x£ømJt+p{Ž÷·p¤¥k¨ÇâÚrÝŒÈr ;ÆÆUzk¥Œ–x€öql¯7ŠÞ1wÆ, }¬—Pu@ ÔbË:Ò7EýmÉgiŠöŠõZRÔTê'c‡¢tLÕë›óµz j•[4Ä-ÏïÌØê,ŽßZ »n/ as[Ö}.6ÝŠe{tÇØô0KA !6†îRÃC?Á‘ýp9tJôÍþ@+GjƒBaØ 8Ÿ-›!E£],o©NGã·Ø±ºˆ qœ¬«ÈlYZè\§5 .eê*üu  Åüt=?œ’÷üf]·ïØ-…nœ† à¶•ø à§”?·ÄQ´z@‡¡pÅw3›v;Ûí´1Šûa@ÀaDºûa3n¶ÙŽmxäÄÍ»§»Á1@ëfႳîzú–!`39ÞÞ‚¶øß±„Î=4ƒêË=Æ×’!ö烠¨Í]ÛèÔQöf€G³îö}…ݯ^¶ŒCv @ôE׈6Ee;z‚Öè›ÆU=@ç3z^Ø„=o«ÀÆë»ŸmOØÊ·6Ü1Á}4èmÉgeÀõßû¸=€çP3]…ïSvé*|w}Sß6Œ=àö­`í¥p®ÝÅ_.Úzæï½´çŽ¥@ôr{Ûš*Pmväv¬S624&ø¶å³1€}…o$äxy6£\º 퉾Ç@võ» ¡eè1€Æwbˆþ‡‡k€…?5£¾àðô©RÎ5tòî¬íÇÞîŽè@¹Î;öJ7ÀŽ Û |LØ2|€ µ‚_l  éåzzn÷ ü±\(:™`·Žn[>+°2¤øÝñ{!P£÷N ÐÅùt £OébƒC ¥èƒh Á‰>Ä\vÇfƒ»ø¿QtlzÛ4¶… j Üærö½"éX qMéƒB‡ÎÝ'ð´A0Ѷ§·0¨/øíö®ˆ0ñ‘ À½ÇÖ³¡ºÓ1‚.ÏOÎzo³Sgo÷›Ÿ`¿!Ð5åƒÙŸ-± l«ØÄ¶b{C¿§gpƒÞ-…û  ¶X kÆn’¡Áýèd{±1«ø¶¾ÂÒ»žœó¸õP:­£îP0üÙÀPð!ÅpLÔîZ¼Äbà¸-¯ èƒD¶·r{+; må·Û»ßf„—ƒõµ¥X®ß…Cd ›¿Éöu7ã&Яä·íýÏÌú”üƒ”ŸL–ÕÍعN\Åö\(Ôõð]OßcCAñ^#p ÁUxwpß]é}pf‰Nàx{aaÓÜ<€õè½1€Ó#¹uPĹ‹ó‚Ÿ‘ )ÿ¾ÏÀŽî²@DmÅoaÿ==À>®’wöëbÿ¾˜`ößüÂñø ÛÃí’Ò.ÎoP”Øþ›‹ýí²¡r›ØuY ­Žûl `¨‚ðƒcÛ[ïmG»Áo/ Ôc ®"&Ïvô²£ød¯É]LJ€‹õ»´gãáïß}>}¿9·ƒýV/fk€vU„öÁ7]úÙÀÇ ß7`'ÞRèŽW·ÐÈнûîc‡†®aÎ}´o -oßòühWrvk}ìù›ZǺܭÓn‚àv’ºéïnÝup%ׯív+“뎩m]ïßËöôåX£n•é`L€~h 0Ëñ£§ÖÇùL=Ëæx» lÑÍW˜ë±Atcœ›ëqK!6Û¶â˜Ø-­§³Ïö?LÇS5=À–ï‹ú–}µCCù¹Ç„‰GvÑ Ô¾—–r’£ÀÝù|\üïòüÝÚ~2ûÀü ºmî zMu,áæ(:Žü®¾)òs1€F>*êÖõ1èÊu¦Gï¨Q Wéº^Wô+~·Ø­ ê Ìwö#l÷½5@ØôÛ7ŒV,`½3¨ÅÍâºÖ`±}½Y€Ì× fxÁ׌!€@@À˜€pHÜ$ÎÇ~sà×'>"IPZ0GÓíÊ7€¾xˆçߣÍû»Ã! =ì×Ù·7f`‡¬×ï‹ZƒLЯüõ]Û›o³>vÔ¢;² ó˜ŽBð…¨•œ€‰æRàžO¸<%„÷B‰{¡ÀÄJBì" ø¤QUºçw8¾#ì'ÈPè•Ø6^ßÙ-OØJ\íªÚ“†2ÇÝïlÕ ¡üÚ tƒãÚì…A–îl±<æ¶aH(!à †Ç€ÏŒÀµg0ÀXf’jå÷„÷C‰û‘ÀY(0óQÇ_õ„¼\¿uFkh­‹n)„³Ï‘r¥ØÏûöïÛÖ1ûLJm1;.«Ó…1{¼{ž.EÚWS4w®Ñ^³»d›°2ëêh{ŸmÈ#Ä‚0ã„€© œ`.÷<©$Ì=Â\f^ݦ’0€O@ êæC+…\¹°1ìûMî,ºË°q =Ôç®7ÂW¶NëxÕn Ð ~‡Š×ö&²úJ§‡hÒžøcŸ¸7æÖ÷›ZA O0&„Ì™‚1pJÀœ€¹$ÌòŸJàÔ«=þÔ6¯îBl¼¼Ur¥Û1Ùu{âc-P¿ô>„]s‚ÆYm±4ОŽ=J ´Æ ¸ÛK¦ûÚPáÜÀ²f–5´  /h mÜ05>€3îð€€‡¸/ ÷%p&3qFÄS ƒ0$’4<„6o™ãåÍ÷2pí@÷˜ Þ/f_çm['ÙúahÛ´võ»Z/EÚ1ž¾ÄW×¼NÐe‰Ü X±=ÚŒçÃ!j/FÀ@Æ €Äx@À<µòŸŠöŒ¨fs|>€0F¤¹ kú_2Ø~¾×ü‘?JaãO“»jdŠõÓ{åúÓ¢ÐfzBê(猈Òåð»qÁ[䇨(ÿ;Ôaƒ¤ „D†Žd„ Ì<"à¡UvbÜ#`NŒ €˜j¯0ÃÃc††Ðõ¼6ÉË\¿{À>ÏVñçêçCW¿›M¡ªª&X¾ ¹Sf³¾øâ E‘¥œ}Ôq»½Fß‹˜‡¤AÝB®Cbѳ½¯ü¹›O°Û¼#1û Ið¤€/ ž øFñcã¹§¨Ùš‰i§`<¢Úà>÷À˜ïNpކɺñîºy†õûvéø‡xyf†RªQx«ôVñ³,Ãjµ¢õzMUU‘ùž¡r¢O"wÊNOOñõ×_ãéÓ§Þl6;ÑZŸ¢þ­lz…k—A÷³@èÔÖ ƒÐN 5Êílïâû-vh äZH „†y™I‰0jèr_§æ`Ìœ€1aF ]à 0|®½=3£l|ãÕ7ÏϾ~ãñøÐ3·J_–%Š¢hZžçÈóEQ Ë2J’ËåEQXå·ÙŠ1‚;eQ‰óóóàüüü¾RêK¥Ôo˜ù@ÈÌbèuHOµGÍíÒßÁRäˆ vK´¿Ë“„ȈÏsʲ yžëªªTQUQežç©Öz!„xNDï‰(!"uËú`¹S ÐZßgæÿÎÌÿÄÌ àj($݇޷Ü/´a€vr©¯ð¬·Lâ#éÝÍg2°æD¾ù<Â}¯æá碦&§1#fFÈ _3ÿ_RÊ¿ Ãð„ˆ¢²,¥”’4T—58xºt Eí±­”t©Æ­x=åÛ"…€/"_"ô_bä LûÄãHâQ q߯. IˆÁ(:jï.5C°®‹0ÍË’j*Òéõ>ñocX.Ëyž#˲ÆËgYFf‰,ËP…6Jn[®”Ê$D´p©µ¾$¢wBˆ·WWWW¿ûÝï’ü1#¢R‘ȉ(PdYV]^^þüc€(ŠèüüÜûꫯæBˆ¯ˆèï‰èïâ8þo³ÙŒ…z¹\B)ÕÔû[/$„hÎ3¤ü[Û F¶K;æp{kÐ mŒ„!êú÷ ð} ÏÆÃKŒC‰“@`HŒ}_`<‚êœJ`B„Ì59¬ŒfÝdZ](3H~ ‡ß%J)”e‰$Ih¹\b½^[X£Ó4UišVY–UY–Uyž—Z뜈R"JQ+}`eÙòòòò2MÓK—BˆwDôöÅ‹«ï¿ÿ¾|õêÕ­’¹U "ˆ¦Dô+fþŸBˆ¿¢h:›ÍøñãÇ Ô^?I’–¸=µŒÁJïDZÍöXûÚ’-¯oþH!‘/0 %æ#óHâ$¬Û,ôpJÜ%ι/0õj/?@d> Ò®ßâÞ êádY͵|lå>à7±Ê·oßâåË—¸ººâ<Ϲªª¢ªªµÖz­”Z+¥–̼$¢¥bi¼ý’ˆDtuuuµ~öìYþüùóœˆJ"*ˆ(ϲLÝ”‡ß'·b¾ïc6›Ñ_|1Š¢è13ÅÌÁ“Ùl=|øPß¿eYòû÷ï)Ë2í€íl06Tá BÀóþ¼""%„¨TY–ñåååmßÖN¹ˆãØòäÉéùùù¯´Öÿâ«8ŽOïÝ»<|øÎÎÎ ¥l +]¯é*·"±{¬¾ïc2ãáÃûøgxá8•¨¤é{ˆC‰i$1ûx0ñq> ðhìã~\Cž‰/k¥—uvÖ€›é0ÛöfZžÝ*ŠÂÜkq &i­ Àšˆ¾Í²ì_///×Y–å kª/^èï¿ÿwÙÓÉmÅ13ÿ Àß !þf4?~ü8ŸãÿññôéÓÉ|>ÿâ×£Ñh4›Íx>Ÿód2çy@OvþÐù€i$%0"‰/¦„Y$Á „¾Dè ÐPŠ¡Øef:ÞýƒÔOu¾î¸k'ÖrgËúYÉ@Çâüü99á ÐGyº²kb,+⥮3—åÎóÐ;}Jé{oZ·RÓzySâ@Æ8MS$‰N’D¥iªó<¯l-Ožç/.//×ÏŸ?×iš~Ò{¸i¹pêü§³Ùì+Oƒ O&>==Åt:eß÷ð]Jx}jÛUûî*œ‹Ÿ…MÏö©®¡oÀ‰)VkêïÓ4E’$­ežçvmêw2ÓR­uàJñöòòò?~ûÛß¾ÿöÛoquuõIŸñMË@Exüø±~~>©ªê¡â~Áx<Æx<æÑhD}å ®ôAŠ‘n@h³ÏnA^_å* ! ÃzþÌ0‚¡Úûn³µ;ÝfË”ÝÖ)b³÷QxGDo‰è]Ñ*ÏóËËËË7ß}÷Ý‹?ÿùÏ‹·oß~D­¸r#ÀÌBk*¥bfŽ„~Eb4qEð<ï`>ÿ ™~¢ )žÑä*­E2ìU3D)Ó«AJymèÛ×^ƒm¶RÓ­ÖtŸ4׫ÔvÁ´œTªªJüÀÑ·RÊ×D”^^^æ¿ýíoóo¿ý6»ººÊ~ÒC½£rS ˲ ˲Œ‰(BxaR†ð<¯)gz»£ëY­r ½ àºx»ëéûF6™²€JXe³U©žç! Cø¾ßÔ&Ù6šÅ!Á©56×\ÜÞ§èîºõþnoU×6yR6Ï›ˆP˜™˜¹dæ«4M¼¼¼üÏ¢(^š /þò—¿àçèù­Üˆh­EUUQY–±çy ‚@ô¾ÇC)Õüж×è¦ë(ß¾J©FÉ×ë5Öëuƒ—Ý1­ÖûZå ‚£Ñãñ6—Ѹëp{š$Išï¶¸ÝÞ¿ý~Û\CafH)†!â8†ïûòK)å·U¶ÆXXkÍ———úÙ³gÅ‹/*k Ÿk†÷P¹±@)+¥FBˆˆš û»°"Š"AÐ(ÄÕÕˆ£ÑA4У Í#Ô ]k1s’$ò'I‚<Ïlu^)e£œeY"Žcxžß÷›ë°AñÐ ]/ß5k„®²wÙžFJÙ¥5—Ç·=]UUÖ0$3‡yž¯^½¢ŸS¦wŸÜT@j­#­õÈÄ; ¨qsE˜ÍfX­V–Ÿ†Öyžãìì Óéq7Ǹ^Ö³ÚU²<Ïåê*º…®‚¹Æ¦”²©š´S|E4M10™Làû~óV\HÕíi\ïg_ÐmÝ:`ƒ hz€(ŠZ†l}†¡b!„GDv–•»6Nü“ÊMݬ@=³CÄ̾Bú¾OÖ3ýŒŽïûFFð<I’`µZµj€ˆ¾ï7ÞÓzC—qGw·K fY†²,›sZúÒ.Ýæy^s\¶¥ª*¬×ëÆˆ¬—e "rù÷–¸´¤=Ö58÷³»Þ d{{}öZ­±º5SæXBI"Á™|à— 7Æ1³g¾¯~â{˜ûãAÐ4Ïó µFš¦÷Ð(†U`w«´º0ÅÂkxBˆ¦Ã*¾«H.~¶KÃeY"‚Öù‹Ec„Qµi ©¬wwãß÷-CÓ«ð»Þ“ð!stš&`gH4°ÿRä¦z23 Ã:T"`•Ð5«46#)¥lÖ¥”-,oa‰KZÅ·Âõè]Oï*¾m½Ños«àëõJ©æºmàæ ºß3dh}y‰¾øæ_:aæ øŒj·?’Ü „¢(¸( ÖZ³Å®×ê›íÙ€]v§Ö{ÿþ=V«‚ hÁ «hV¬rù¾ß«tC^~ÈûºbÏaÀ2IeY"MÓFÑ…­Ä˜ëá»ß7”ð뎈sÅ…I‡äg¤™ÙÎÊp#RݹPJqžç:ÏsE‘ÖZkc;'Fµ#¸¬X/m=Kº…tnàêzyK vaͺ²/1×÷=1s«—p•sȰºÐÈõò–:îz›OqïËÛ•NVYHL;ÀGRJ!MÓ*I’r<WUUi‹…û²”n°†!Ü„™UÏó¸Ó'ܤOÆô)=°Í×’¸rÅõ¾A´(Êî9û »Þ]öCßön?T•êʑֺbæ%€%€™ê®ÈMA 6sÉ”J©Jk­ó<ç<Ïî¬WuÔÍ"»Ý¾ïû Ôé’Àðû©ö-­ì*Šòº‡(ñД×1­Þmè:Ý\„1€5€5ŽðñE)¥³,+Ó4-”R•RJí3Zø¾ßô6 Õ­Áqño×îköøaCÛ5—•ê# ¬Á÷=/÷™ô}_,aZ…Zù×8B /UUéÕjU¬V«¬,Ë\)UåyΖ¥é«í6?ªÍX¾Üî?Dî bw)ÿ!=ÁQÒÍ>»yŠnŽ£;–ù:­/°Û41È®ØIà±™¨6G­ü Ž=ÀÇ—²,Õb±È¯®®Ò<ÏÓ²,s3£IñÛ¤XŸ‚ù¾étÚЋnfŽß¥üC˜ÿ§€»_WÁ»Çî¢Ý@¾OÜ Ëû»¹‹néƒ{~§²U+¥rf^Ñ@ŠcðÑ…•R:I’b¹\®¯®®Þ/—Ë«8Žgëõ:^.—l‹È‚ hè`ÚñxÜÔÈØÀy—gß×3 o·w—‡òêCÉ©ëÀŸ]ûYã°ÕX¸Ø% º×g)ä<Ï ¥Ô%€·f Àšnh^þ»"7•ÓUUU«ÕjùæÍ›—Óéô~ÇÖëõÉÅÅF#¶åÄV\E’R"ŽcL&“&¹ds}¥Ÿ u?»2ôv×»ŠÞÔ«/èŽ0Ðê!ìµZøã–˜t¿ß–Z›»Lký‚ˆþ‹êÁ0Çà Piš&¯^½z3Þœ­“$)¯®®äd2!;0¾OÁlI„-2SJ!ITUÕ«Ü}Êþ)b‚ææ®©ü‡xú!Üïâ}·Gè²_½?¦L„‹¢ÐUU­¼Ì²ìÅÕÕÕÕ?þ˜§iú³ø¾Knªð‰PW„zEQxRÊÉýû÷œœL¥”2 CáN‹²+e•Âfz÷){7PîËôåúrû²Ä×18÷¾†b6–è{îÒ*¿MöÁ2Yò,˰^¯y½^UU½"¢ûöíwÏž={ý‡?ü!½¼¼¼Õ·6Þ´Üh µ.’$Y-‹«Åbñn¹\Þ ‚ÀŸN§þb±à8Ž1N·ÊwMN`<7¯å±xÖ­pìS®|ŒÀ½¾.÷]ߗ͵çµ0Ï…AÝÀÍ>[ïßy~l¦A!}”R*%¢K!Ä«<Ïß¾|ù2û9ü’5€¼(ŠÅb±xuqqqÁäêê*zóæ ‚ °`æ•H®Øòb;§ 3c½^7PècÁ }Ðýl×w@׫ö±=®bqýî±¶—rK,z¾S!›$ eYV)¥–Þ2ó+f~o~›_œÜ´”¨ `ùîÝ»W“ÉdÁIE¾ïû‘ïûÒÌ J}<¶ ôÂ0Ät:­OÌŒ,Ëz‡öyþë=§{îÁ›Üav9tù}wÿ>Ïï¾ÝÂ7Çq°Q~²cÒ4UeY.ü%Ïóoß¿ÿúÇ\§iú‹ ~­Üäà†™Ÿë!’€E‘ïyž_UUÀÃÜ¢µ>q½°Í¿w±ÿ!Ê¿/6Š%íaìuöÅîߺÛûÄ*~· {눘¦©éM§išk­¿'¢ÿýöíÛ}öìÙë?þñùÕÕÕ/ û[¹Ñ?ÄÌ¢ª*€ ‚@zžçQ,¥ |ßRJkl£¥ 6ðë&{öÅ}Aîu(¦Ø•‘2€¾@Ø~|p´)tsG{ pþlÞâHëõ‹ÅB§išTUõ2MÓoÞ¾}ûÿýùÏþî›o¾Iß¼yó‹T~àv €Mà3³!„Œã8Ã0dfŸˆ¤¥ôÌÜüº]oß­ãß…†z‚¡xá8B¹×óSÄ5€]É.˜Ù‹¢h<ÿz½.˲|ÍÌÿöæÍ›ÿûìÙ³ïþð‡?\þÒXŸ®ÜŠ vçi­…RŠP¾ïû¾b$„⑆~ì> `go0dÒ|h<Ñý¼õ:å ]ï?0B™J)Êóœ’$Áb±Àjµ*ò<¿ÐZÿ™ˆþåíÛ·ÿñoÿöoo_¼xQþ’•¸uÁURU•·X,$ùRJŸêéRf£ÑhDDžez4³,ÛÊacK•Úáî y»ï!¼ý!X¾÷Æz’]®ì3‚nÖwܯß\CQÍç«ÕŠó<_UUõ=€ÿB|ÇÌ/™ùg9ÓÛuå¶fh´ÃÔ¤sUU€‚ "Ͻ ®_ÑCÖûýŠÔÚèzÌ>·Ç Á¡a×öC ½nwۮ¸]×çŠ}s{–e´Z­puuÅ«Õ*O’ä}Y–ÑZÿ>˲oÞ¾}û×~øáêÇÔI’ÜÒÏwä6§ÀÐ0Ì©NÔeYª², ¥T.¥¼$IdžçRA–ýÙ7›„[àî¿ çw ãP6¨ÛkØkè»®}Ò¿tƒý¾ó*¥¸( J’———¸ººâårY%Iò6Ïó?(¥~§µþ?oÞ¼ùó¿üË¿,¾ùæõKe}ºr›ÐzíŽÖšªªÒEQJ©JAÌLEQ­µBª§ï¨®ƒ`Fýò†–òô t·JÔ7J¬/&¸N Å!AoßÇÖÃèlëöVÝsšüÛ×™¼Ï‹ÅB¯V«4I’w‹Åâ»W¯^ýŸ7oÞüÛååå÷?þøãâOú“~÷îÝQùÜö$Hî¯NZk2Ó—¨ªªJ­uéû>yž'µÖaY–¾OØÀ!Û‰'׋öMq²Ï›ï£>‡ Nss‰°¡m̓8€í<¸ººÒI’diš¾É²ìO/_¾üýïÿûÿûÍ7ßü×ý×¥/_¾äårÙ;û—*·m@çåkæ‡å²,K¥TeþFÌh­¥RJTU%LŒ`_ßc‘a7;!Ï»³‹íÛ¶u3{ª=û¶»2¤ü¶—³e vzÇõzMËå’—Ëeµ^¯—I’¼L’ä»Õjõ‡—/_þûþçþõÕ«WËÕjÅv4ÝQ6r— À ¸,Kçy•¦i^–eåyyž'•R~Q~’$äþ –·ºß÷E}†Ðíú¨TûÙÝÖçùûêû»/Ôèþ}—t¾›miéÍ««+Z.—´^¯U’$«$Iž¯V«?.‹ß_^^~óöíÛçoÞ¼YgYvÄ;rW&Bը넀ÚÛë²,«årY–e™Wõˆœ¦i~zzºžÍfóÉd2šÏçA–e~’$"MSÇdÖÅÞêÜa—ûêôÝ϶îÞ­Ø´^yHÙÝm®òïš [äLðKv­ÕjÅ«ÕJ%IR¥iš¯V«Ë‹‹‹‹ÅâÏI’ü{’$I’äõû÷ïWyž•‡Üµw^ ÔFˆŒ¥”cß÷OF£Ñ|>ŸÏXÒ7Ð¥Ov’«ðÝÏCßé¾ Ã…;fr`β¬Êó<Ëóür½^¿~ñâÅ_þô§?}óæÍ›¿VUõN)µ¬ª*+ŠB ͽt”ZîJ`E£.ËÕ¦)#U–e™Á¸—I’\¥iº^.—ëÙlv:ÎF£Q4NƒÕj%g³™˜N§4šÁÖ˜ãÆ {Y™!Åv÷‚5Ý}»ŒU÷]_.Æ·sš¦iÊI’èõz]®×ë‰ãx†¡†¡‚€-rgœ‹¢a6Ó0öà:°Ý]wßJã¾cÌ™²œ—ñ‘?yš¦WëõúrµZ½_­VïÍç×ËåòÅÕÕÕ›ËËË«õz½*ŠÂ’Ç`÷äs0{ÖÓ"Ôrìû~<¢ÑhF£Ñt:=9==½7NOG£Ñéx<žŽÇãx4…QyAxžçIó¢>Š¢ˆâ8&óÚ&2É·5Úº˜£è2?.‹c<<›é Ù̌ͦüC—eY•e©Š¢(Ó4Í×ëõÊ(ýÛõzý6I’÷I’\$IòÞ¬/“$É«ª²ðð((Ÿ‹ØkµMbÓ#ÄT¦ M <Ï‹‚ A0 Ãp4›Í&<8¹wïÞl6›ŒF£q±ïû”Òó<Ïó}_zžçI)…)» ÃQ_YJiK8`^þÑz'3³5ó&v­6R)¥TUUEY–YžçI–e«ÅbqõîÝ»÷ïß¿¿xÿþýåz½^(¥VJ©¥RjUUÕڼѽ4S!ÏO”Ïɺb{„›^!À¦—ðžçãñxôàÁƒ“ÓÓÓ““““yÇ“0 GADA=!‚ ôcìŒs~(¥<’RçyÞã8MÓTdYö§f‚?´0%¾RÊñ}ß‚ Q«Õºã=BÈmÛ\×}àûþv³Ù¬u»]¼½½vvv`{{vvvTñ[A  "ÖQµ<ç,yT<ÏQEÐëõÐÉɉurrbÕÎÏÏáââB ƒ|4EQõÒ4ÝÍó|‡sÞͲì„rI )¥1cŒ)¥¤f¶?“¯ð‡Ö®ëB·ÛE¾ï°ƒ1>°mû±eY–eíø¾ßi·Ûõ½½=ÿÉ“'Îþþ>ÙÞÞ†n· Ífjµ¸® ®ë‚mÛ@)Õ”q/ÚMkˆ<Ï!MSˆ¢Æã1 ‡CÔëõàääDòÃÃÃüôô4é÷ûÃ$IÎó|OŸ>…gÏž©‡B§Ó×u¯˜6š¾T H)J)¸® F¶¶¶ Ïsµ³³ƒšÍ¦Õétì­­­ÚÑÑQûââb{0t£( ’$ibŒ›¡¥Ôe–eQѹ&‹Žº»~µµãËq%¸®köÜÚ¡-¥Ô3Jéמç}U¯×lmmµ?~\{ñâ…óäɺ»» NG5›Mð<Š0¥ÎG¸ñöÐDtÚEßCG—täh4A¿ßG‡‡‡ê—_~oÞ¼É>|ø^\\ô“$9Ͳì}žçÿÉóüCš¦ý4M“$I”âÆŸù¶A>ÿ·-ùëõ:jµZV Çq8Žóïûß7›ÍW[[[Ï?~¼÷—¿ü%xýúµý׿þ¿xñ Ûí*Ïó¥B ”B7Iü&!šë›†y„X–¾ïC£ÑPNšÍ&ø¾]×µ(¥5BH£Ð5B)R9BHJ)e‘kt+Ï~[ø"ÀqØÚÚ‚v»m9ŽÓD=Fýò£çy/vvvö_½züío³þþ÷¿£W¯^Áþþ>4 °m0ÆSb¿jJûëÞo!„!àº.´Z-èv»ÐívQ½^ÇJ)›sî1Æ:Bˆ!„BÆ8CeœsõGê7øR€v: ‚]„Ð×”Òo=Ï{½µµõüÉ“';ß~ûmð׿þ•¼zõ ={ö vwwÁ÷ýio¬Ùét“˜×ñµŽëÌ;~Þ=t¿C¡T¨^¯C­VC®ëRÛ¶Œq¾RÊ MRJQ$íý!TÁ—ʵz½þÔqœ×¡xž÷×½½½ƒ—/_6ÿë¿þËúç?ÿ‰^¼x<€ ¦áÌu™ š€-e˜Œ· Q_‡ªžaÆuÆÇF£{{{°½½|ßGc;I’f–em„P“bSJ„PÂ9—RÊ/ž ¾ÐÈq˶í†ïûƒ xÁëv»ýíÇ÷_¾|üðÃÖ?þˆž={ív[yž‡0ÆW¤ý:ˆÿºXUó\‡ðW}ݾ”Rð(˜à‹e„/‚Çn·K;N·^¯¿ ‚àÇZ­öãÖÖÖ³çÏŸ·~üñGûŸÿü'zõêìîî‚ëºP>šEü×%äϵÅgÿ¬ëÞ¤¦0Ï1ׄT«Õ ÙlB»ÝÏóHžçNžç5Îy<˲rŒqÆãBˆ/¶ëø^3€íqÛíöv_;Žó}³ÙüîÁƒ_=þ¼ûý÷ß[¯_¿F/^¼€½½=å8 IØ™±ëu˜¬ËXÙ/;Áë6Ÿ×ø\¦²ïûP¯×Áu]ÝÇâ2Æ!„ƒ1V0§Ì‹1z,ó…{ÝfÛ6t:R¯×;¶m¿€W¡ív{ÿ‡~¨½~ý=þööö Ñh@á¤-Eô7/‡>aÖó¬û9]ÇôQ Í „¨ÕjªÝnSBH])õ¸×ë!D€1¶lÛ†ÑhÔKÓ4¹‘ƼAÜK  %^«ÕÚ ‚à/¶mÿP«Õ^îîî¼|ù²ñ÷¿ÿ|÷Ýwppp­VKB®Äó—!¼yfÇ2æÒªÇ-òV5ƒ>÷¹µ‹ö \×UA€ã8H)E•R–”Ò—R:c\ŒCΊñÌêKŠÝK($iµZ»Žãü?Û¶ò}ÿå£Güãÿðþõ¯‘o¿ýöööÀó<-ùÑ*Îå<¢XÍYõ8‹Â“Ë<纟«|œéhm@)EžçA»Ý†z½Ž”R4Ïs/˲cÌ'„¤„¤0‡ø—Â÷Š Éêõº×jµ¶ ÉÿS£ÑxùèÑ£ÝW¯^?ýô~ùò%looƒçyJ)…„+ÿuö­ã¸y`™å¢û®+jTñ,ˆŽã¨ Àó<“r/NžçuƘâET(SJ±"Jtï¹à^1€ã8¨ÛíÒV«µí8Îw¶mÿèûþ‹GíþôÓOÎßþö7ôìÙ3èt:@)!Ò…¢–Œyß ”#+«˜?7Áe­°¨ª´Æ,ËB#ç3ÆH’$µ<ÏmŒq ižçù—ºWN0!Äö}¿ãûþWðçyyôèÑηß~ë¿~ýZ}óÍ7ÐjµÀ²¬éAMüJ©iOﬞÐy=¤‹zOõ1‹C™UûMǼ¼¿Êf¯²á¯sßyûËö „0Æàû¾zðà`ŒQQmÂK’d?MS1K)y–eBJ)„¬(øu/q¯4€mÛÍF£ñÂqœï1Ưöööþñx?ýôÖ’ŸBȲ ò<Ÿá[Fº]WúϺæ¢{VÞuÌŸe$õ*ϵÊuª®ðÑ\m4@)Eý~Ÿ†aH9ç®”!„B„PT„Iïmé2€Žö8ŽC,˪ÕjµGAüÐl6_moo?|ùòeãŸÿü'yñât:°,k:0Ïóiõ³²´\–€í¯ºÎ2i Ë ~Ÿuý›x®Yežó[µýê%²,KÕj5À£4M1çœ2Æ\ÆFåRJÆ9O…ù}õ8?´Ûíz£ÑxZ¯×¿÷}ÿÇ<ýñǃŸ~ú‰¼|ù¶¶¶€2­Ÿ£‰ßlS¡X™G«DY–‰¾Ì»ßç2À"‰?ï¹fú¼ýóþ›ï@)EF\×Eq[I’8B_AŠ¢]ãûêß  „tœµZ-;‚=×u¿‚àû­­­gÏž=ëüôÓOäÛo¿…ÝÝ]pG1Æ&~ÆØ'¶t•˜Gȳžk•íåýæýf}ëªTâë0Âçh¢*(?ÕÿŠöF€(¥*°, ¥iJ²,³ã8ö²,¥ÔH)K)ù} Þ 8Ž­V šÍ¦í8N“ò cüv»ýòùóç­×¯_ÓW¯^ÁƒÀ¶mBL‹D-[ÌɬÇù¹¢ëÚÐUÛÖá¬*ñ=ï"  “ùô‘mÛ ”Bý~ßÃ`R¸—K)c)ezß4Á]2ªÕjMJéJé+ß÷¿?88Øÿë_ÿj}÷ÝwèÑ£G’RB–eH—¬"þyÑUÂ~³¶—¥ú,‰¹èºë2ÌÿËöDW=ï"M°  €t„Èq(Š"’$ Êó3ƤRj¬”Jcì>9Åw-Ë&„l!„^»®ûj{{»óÕW_Ño¿ýž>} A€”t‰ÀYñþ2´Slæ´Ì3…V —Þ7\÷Y—eâ2Êá\}¥X–¥Z­<~üÆã±’RzI’„a˜»®Ûçœ'I’0Î9€{Á·ª´íïû¾Á¶ã8ßPJìv»Ï^¼xÑxýú5)zy@žç(MSÐåûIz ó#-ãϲ©W”÷Wi€y>@ù9–}®Y¾Ç,É>ËGª’ü³úª¶=ƈR Žã€‚ôz='Š"¤”âBˆ<ÏóP‘}w.en•lÛÖ¶ÓuÝ—–e½v]÷ÅãÇwþõ¯Ñï¿ÿmoo¥²,ƒ4M‘ë_æÇÔu:gùŸã,/2-æF[Ö)wÿyÏ9K,ºN#T~™I1Æày(¥`<£4MIš¦NáŠ2îL)uçZàV¡ÉøÓZ­†šÍ¦åûþ>¥ôGß÷¿ÝÙÙyðâŋয়~BOŸ>Û¶s>­ŽGó,Ó.‹`‘Í?/âVfŒ¢G^Ù¶ €ŠÐ5 ÃÐI’D)¥FRʈsžpÎï|[aÛ¶¡ÙlB£Ñ°=ÏkSJ¿&„ü­0}‚ׯ_“çÏŸC«ÕRE//J’Vn[v^ˆtYgy™žÓò~M æû,ËŸÃ(³A Ÿ{Qj‡¹.½3*r¶ ×ë‘ñx,‹™orÆØPßµ)t« ARúĶ헾ï÷ðáÃÝ~øÁzùò%ÚÙÙ˲&~ÝÙeb‘íZ>¦Œyö¯¹–„ž%1義‰ÊÄ4Ð˾@ÕýªÞ¯ê9µÓ,;™m3L#¤”š¶B Ñh„£(Bišâ4MçüRJU&î,WèÖ Ñh`ÏóvB?ø¾ÿzggçà›o¾©ýøãèÉ“'ày! Š"HÓtj÷/û1VBèJ✹½|ܼuÕqóbç«0À2÷«z¯EBbQXx–dŸµß|·òq! ”‚R 8çeî÷ûn†BJÙ“RŽc™”’Ãi[ ƒ"„Æ8Àï"„¾ò}ÿÑÇk_}õÞÛÛSõz]égš¦ÓžÞ*‚še{—·Wý×¥ýtÇM¹îªÃí_Æ$«zŸEY›ËdqÎ’üU×)ß§J²/».¿!šÍ&<~üƒýý÷ßë———ÛRÊGœó~š¦ ç\ç ݺ&¸­~!´zH9h6›ÝgÏžÙÏŸ?WÍfsZ·2I’µMï9ë# !®DU%è*³`•~„2n«Oa‘ä_æËšêsA3mÛ°»» =‚ƒƒtyy!žfYº®;(4wPrîF@¿¼ëº5ŒñCJéã º;;;ÞãǧU„Óx¿f€U¤ÿ²ÐÇd‚E&AÕùŸó Ë<ã,M¶*#­"ù—1mæ1FÕñz!DÕëuØÙÙA=‚^¯çEQ´†áÀqœß8ç—EçØ­›B7Êż»´^¯7ÇyâºîãÝÝ]ÿÑ£G°³³£êõ:`ŒAçùäy~Eú¯òÁ—!óÍZúÏ›Äîsñ9=Ë‹ži¯"ùö2ÇÍÚ_<"„¨F£?V———ÖÉÉI˶í×uwcçY–ÅBˆ n¹‡þ%fƒB}ß|ßß²,ë ‚ÝG9?Vív(¥À9m÷—;¼ $ùh&àœÏW`;Ë'Y7ªî[å<¯Â5£=ËHøY˲Ǚ‹žïûppp=ÂNÇó}¿íºîmÛФú¸Ý’ý7mÙ¡.Æø¥t·Ùl¶ž|ˆvwwÉññqsþ(Š¢Æø&³Þ ¸E-pÓN°‹Ú£”>¬ÕjíN§ãîïïãÝã išN‡6šu0#Cœó©Id2Ý*ϳlthÙÿë²ýõÜV­õïeŽŸu\YkBT­Vƒ­­-´¿¿NNN¼$Iv†Ãá˲:yžŸ‰É¹µÎ±›fO)õȶíG­V+ØÞÞÆ[[[ÀtpKyt×2|^¼½ê¸yCkÓ'XÆ1žŸ÷‹˜jÞùUYó:˦ϲëy’¾¼žÇæ»j ïû><~üXõz=Úëõê]ß÷·¤”­$I2!Ä­e‹ÞˆPô"×u넎ãìíììx<@Íf,ËRBeÎŽ~[¡Â*h[Uûó:áÖyÏyÿWe¼eÂ,»~›Þ<^Û÷³ìþòÿ¢xrvwwáàà7›M×÷ý†ïûÛ®ëv !Ü¢/p#À²,Üétü ÚŽãìø¾ßÙßß·÷÷÷•çy ¥œÎv¾*ñ/#ÑM¬ºÔÓŒj)ZL¾7Ëtd­ó¤ý¬|ŸemüU5Ä,¦˜u½²)D)…v» [[[¨Ýn“z½^˲l'MÓ]BÈ9Œà–|µ3@QgÞ®Õj vlÛn7 ooooo_â¨Ãž·i÷σ–V&Ì›.u©]Þ?/½¡ª§wQzĬkèß«ü¼ó~ñ›×-ŠíB§ÓÑLàFQ´mYÖ.¥ôWBˆSÕºq_`­ @)…Z­µZÍ£”> ”îAà·ÛmÜív¡ÑhÆøJu‡²­Yõ1MÜtg”É g‘¼ÖµÊÚª*2²Ì5æIz5›'ù¯+ñ™J×9^ =#Íîî.lmm9½^o‹²cYV˲,O)u+9BkeBxž‡<Ïó)¥{–eí6›M¯ÛíB«ÕÏóàªó{±õU ®hZåYM‡Ò\JDWÎYÖùž¥MV‰óÏ:ÞÜo ¨e³™íªµÀîî.ìììX>|hPJ;–eµ(¥5ÆX9LàÆ˜`­ Pº¢¶m×0ÆÛ¶mwÛí¶³µµ…êõº², c•u}>Çv¿ ”5ÎZ† ÊD ¯£+Z”¥á¬ÈS•ô_Åæÿ\B.¿Ï<óf `†•µØÞÞ†ÝÝ]âû¾G©SJ„:Bh ܰ°V@aBˆE©!„:¶m·Ûí¶Ýív•ïû€Îù½³ýg¡J̳ãõ;•%¾ÉUæ€Éc „|³Bœó$ÿ¬ICV‘øóhUsÉÌÆm·ÛÐívQÔqß¶í6¥´…1îÀn8?hÝN0 jJ©¶mÛÍbn/°m[G*Gz-Šß¯›QfUJ}̘ÝS¬Ó¦îÙÖRß”þeÍW&~˲À¶í©Ö)?¯ÙŸcó¯"ñgm_5´ªABˆž¸AàdYÖM’d !t“p(†L“^7P„P€j!„®ëz[[[¤Ûí^©èl2À}×f,»œEjJ{݇ @1%ú²f(Ãd]üWJ9”R ”NñE’Y»|Y‚]×µÌc„@)ÕU«ÕBÍfӊ㸆ac\ƒ‰0Ínòû®Û²B„P—RZó}Ÿv»]Ôn·•®ôPeÿ¯ƒ fIòyöó¬ó«ÌŒríQŒ1H)§>&ü²£;/$X&d“Q´©hY8Ž®ë~’µº,Ñ™÷ø¢½Îör[”… Æ\×…N§Ýn×  BH‹ „¥TËâFÌ uk:”ÒŽçyN8庮RJçiÉxߢ?‹ ?žYŽÝ¬T­{´ç;ïÚz­5KY{èýEµ…+m§™³ŠØªˆoÂÿ\ QõL“Ü+­õÇv»­Z­q]×§”6(¥¥ÔãœÕdÞ·/†š¶m·Z­–Õjµ¦LÛÅfÏï]2À"œ5 GK/Óä)Gwʨ"€e:Í ¡q従qÚA^&2SÞWõL×Ñ«0Q• $„BÈ´hB«ÕÂŽã8”R϶í Ïóš”r „¸1?`-  U³eY6ƸeYV³ÙlZÍfSÙ¶­¤”Èt ¿T˜E„_erÍÓUûLbÑû5Ñëº*S˼ÞçJøuŸ«ßÇ|/BAõzMèŸz–e–eùyž[01nD ¬…Š`C)mX–U/ŠjÁS‰9Ï0 gÖÿyVµ}ÛtK/:»qÖ3”W Óç)k•2±›ÇèbBð},ËšF‰>—˜Íó>ÇL*'ÇU¯¡ßWgˆA À¦”úc!dÁ$tcŒ\×µ<Ïó(¥eY~¤^¯+J)ž¿˜ø¿ 3ÚS5A‡ŽÙk‡N‡÷(¥`YÖ'Dj^W£lVUP3£MzÌ´”rzýëü,¿aÖöu0€fb-$B&J©Cñ !>BȆI8ôF&Ü[`˲\J©OqmÛ¶kµò}ÖKÓ’$¹Sׄpœ˜Yû—½Î¼íU¶¿–úzà~Ù<ÑŒà88ŽóIßœ×`Ö»hÂÈó|:LÔ – ÊÔæöÏ1]m_–À«´‰¹MoׂÂó<¨Õjš´ðaâWÞXzôºœ`‚1v !!ı,‹zž‡uèÎŒ–(¥®˜ _‚6Ð\šøËL¬ßÉ YÚ¶ „ÓI¼MØÔfÆ©”òJÑ.SkšÑý[Kв)´ŠŸeòTmÿ(k1€IpĶmå8xž‡Ç˲(!ÄÃû… ¤;ÄÖn­Ë ÆàL`[–E\×EfH«wsÜoU~»qÍ¥$þu}€e¢@úãjž5xG1áß4J£¡£9¦ù¢‰¿œfaV©Ð×ÐDc¾N–e€ª4…Ìû_×4úÜE_Çì/›qJ)dY–²m[Ù¶,Ë"„!äÁDhâ_;Ö¥pÑ VÉåÞPó£ÎKðºk˜Î»^Êvü<{?ÏsE„aÃáPEQ¤ò|RMgÎÖëuÔh4P£Ñ˜š3–e©‚˜‘I0eâBAš¦WœîÏ%Týìë`3ªÌºm~•é¼®ëbJ©‹ò p¿l„C±,Ë"Žã Û¶§&©þàJ\»l”›ÿW•üe,£iôo³§·ªd‹ÎÛÑRŸRJÅCJ)‡ðáÃøðáƒúðáƒ8==£ÑHpÎ¥mÛ¨Ýn“ýý}ëéÓ§ä믿†ýý}h4S B)×u§Ï¡ï«s³éoÜ¡¯zžIøe&6aî+„xžG(¥.ÆXk ÷Ù‚‰p0Æ.ÆØ"„Û¶‘–H³ràõ>MlæHwíèg3cþU6¼mÛSâ/Þ%I¢ƒüöÛoò?ÿùÿå—_ò÷ïß§§§§Ùh4b@«Õ²Ü““w8:ãñ˜>}ú·ÛmT´², i‡ºªïAûæ3Ü%”³`ç¿>^ï/Ò"”çy˜Rj#„˜ä™>ÀZ±nÈAYd‚iü»L8UéÅ&3hÓBcží¾ŒÍ¿Ìö*0³;«˜X's™ö·...àßÿþ·ú÷¿ÿÿç?ÿÿúë¯Ã‹‹‹þx<Žc¹RŠcŒU¿ß·{½^íää¤utt´uzzZgŒÙÏŸ?'ÍfÇ„"„ =–¢ü,Z;h­ÜC{ö Y–…ô3Y–¥ïó ái-¥;Þt¢ÞªÄ{]¨²õ«Â·æwÖ0¯©…ŠeYclÿ½×hò~#„& Ý Vn3ÿ}^Ê€f‚*sh‘­_>nÙízŸ)ÑfE~Œ¦Òéññ1¼yóFüüóÏÑ»wïzgggÇažqÎ/•R!LF9å ¤”„sî(¥ú¹®›A`9Žcw:Üh4¦¨5j™AMMeVº^Õù]u9º3kØç,é¯Qvê‹÷DcMøeé¿V¬-NM2ö®8e…SXi•Í¡Y[—èºXõܲt+_K¤ž  I8::‚wïÞå¿ÿþûàüüül<Ÿ0ÆN &H¥RJYY–Â0ŒOOOá—_~iv»]ïåË—ÞÎα,ëÊýLæÔÏhFªôñó¤õç0À¬Qof˜¶Lü³Ú¾|M­é €à#ñßû0¨A5!d½˜Eðem0K+̹áÒ‹y|ù|óC•‰¿Ê„3`b‹GQ¤Õ‡’‹‹‹^Ç'œó38€^Á|懀õñã0 ÉÉÉÉÖááapzzJö÷÷½¢Ø•ŽÃ2a"„®dÛÎ:n‰¾¬©SÅ‹¤}Ìs !àº.¸®«Œ~“fP¥I3øË>Á*å WzÀ%S%ÊÄo~XÓŒ+O³”e\^^ò^¯—FQ4dŒ]*¥.aRôuǸš°R*ãœçišÖÆãñÙp8Ü 0 }ß÷•Nu¨bÐ2˜„¹.˜%õ«Ž]¥½«ÎÕ¦sq.*-zÛ½s‚?y1ó¥®+ù«¶/jØUz€gm¯"ò=ÊÏÀ9—I’ð$I2Îy¤” •R#˜~ …í_ú€¤”RI)GJ©¾bÇ1‹ãXéηy‹Î¨¬‚¹¬„_dêT ½môR´5B?ÎH~-Ž[–œ³lþ*&˜õ»L´7ùìU `2O•ïR2‡I´'FÅj2¬/‡êŒFcœB2ŒqLJ)Ë=À³Ì³å¦À\W}çë~Óo0®W–ü÷Úª|!Ý e©9KâÏÓËÚùå1OsTWe™ïUÖnÆ€vdÛ6¶mB8Æ8BhŸ)* !à8Žô`ŒU9wf^'Ó,©½.˜5à^›ÎCYÐT„¿œÒˆf#éÑ/¹Èæ_¤fõàÎÚ¶ “ÌzøÄ¾/o†Gõ±õzíïïÓƒƒÿôô´3[œs[1—2!Ä÷}¿^¯·ëõú^»ÝÞêv»N³ÙTz¦u³t{• d>ÿ,[}™Ðç²fÓ:`~{¸’u[´í÷‚®“Ô¤ý•*×Ù¯r€W±ùË„¸,ÌjpóÕ1zm2­¹ß”TÅ6U0~üø1:??÷Žw†Ãá¾RêŒ2–R )eª ê1"¤¨¿ßn·Ÿîîîî4[­u]`ÚÓ«“òª"TUNü*vÿ*þÂ:lþªo"!§|9&Pa§*-ý5'—‡ š/½ªÍ_uî2ÛËû}“øÍ=½O)u¥À—>7õÕW_Áx1t[™Ò‘i3oßâýåçÒ…›4qèúFú¿.üe:­š0µvÐÑ$˲¦£äÌNCÓæ×o•ݯŸÓ$~m6-ÛáU–ü‹¢=ëFYPšT¿Êó\3€©îoq\)¥Ð ÀËó<Q©8ާsl-ÒUÛg»nÉoî¯bF˲ V«MC¹:^mF\`*­“$™–×U#ÊÏ­ãû:YWÓÄoÄ*Kì"wt€¡*òsŸ¢=U0ÛY (Št” !´ g¿3h] ³,Ë-ËJ„qžçéx<¢(º2 Fc‘ä_&4ZuÍªßæýf;O#™…ª`JøI’|bšè2Ý›©‹eéN³²³j†RÍÒ‹Zê›áM}=¿¨ vÅ[V ÜE´§ úÝ„EŒÇcU˜?œsž !2ƒî¯ $¥TY–q˲R!DÈ‹Â0lF#¤ A™ ºŠ”¿ ›ß$ôyLiÛ6Ôëõ+š ŠÀ´I£Ë)&IRY%ÚNXNrÓbš7Úq6ëéë\§×÷.$UÛ—€3ÆòŸL ¸±I³×™ !…™bÄ Ã0ä£ÑŠP¨ª V5Æ<éln_ôÛ<Ñþy9J¦é¦ów4qk©²Ó5akóÆŒÕí5]ϲ¿Í°ª^k³ªªÐ}‰ö,³9çPTÐSiš ÆXÎK9çIÁÚ¸¿  ”Ê•RÃ<ÏGa²ñxŒcªºNTg–S<ÏY6÷Wm7÷/2ÃLÆÕ±wSèíæÈ¨²­­C”åcªŽ-?«¾ß, rߣ=³¾™dȃ0 ! C•ç9çœgŒ±¸`sݽ­ ŃåRÊažçƒ8ŽYE*IÈó™*[7²ßÜ?«AËÿçIþy=ϳ†`–ÃzâÓ\1gˆ¬"¾+U"z.Ö×2£Gfg—9ø}Ñ •»Žö̃™º‘ç9„a£ÑH¦iÊ8çiɺß>@¥”Ê„}ÆX?MÓ4Š"†!Š¢húA–öè†Òû͵iN˜XUò—‰¿j@þ,¢”BÓHO9|©ãý 5]—M³wWÛúFÝQ0;¿„hϬo¤ÛY¿Óp8„áp(Ó4M9ç‘"VJ¥`2ÀÚ±nˆ !BÎùs%I’÷û}k8"]3ßl„U£=ËÚôUûçE{f•b1%•ÕÄZf BÈ4u¢üÁgE[ÌsÍRë:Ö¯Eý,æ ™e¢=óÌŸ›¶ýËLnš–œsH’†Ã!‡<Žãˆ16–R&0)!£}€/‚„"•RŽ•R£,ËÆ½^¯~qqa5›M¨ÕjWŽ¿¯Ñ}Þ²˜2‚N +O hú úü²©£súÍšCf’›¾¾mÛ•sŠ-"þ»†n_ýnJ)Ȳ Æã1 ( dŒ ¥”1Lˆßì ^;ÖÊRJÁ9OccÇqyž‡———Þåå¥uppp%¶]n”ûíYFòÏr2õ‡ÕëòØV}íò¶*‚/¿OUd¨Š ß½mÉ_ó9çSâÇ2I’<˲1c,T+iܘý°~Y–å”Ò±çyý<χÃá°5 ¼8Ž1öIdE¯ï[´g•eV-“¨Íê¬~‘*TIn2M!Ó<šå Ü5Êmžç9ôû}¸¼¼”I’ðBxFÅäØe¸¬ÛRŒ1žçyÄ;ϲ¬7ôû}Ã’$™†I‹$ø¬í×µù—‰ö,#ùõ¸êûèH޾IŒUD:kmœœÃÌ'Òǯ»zÃ5éá“ïeš?išÂÅÅ\\\H]LŒs>¾-à€s.cqžç'I’œ„aøl0@¿ß‡­­­éG›Åëˆö,²ù—ö\GÌ2=¤”WÞeU¢¯Ú¯³L>ÎBY.¦u_PþBE*@ÄqqÎGBˆq1h(…¢ˆ0|) P@qÎÓ4M/,Ë:§”†aæ½^ÏÚÚÚBµZ |ߟvùWõ èßæöªÆ¬Ú_&þyRÝ’¿üÛÌÑŸ6NÅïYvzTùÚé6Ó*ªjÝ…Ío~3öŸeFÐëõ ßï³8ŽÇyž9çÚþ×E„o$ TãF@‘Çq<Ä÷\ׯqŸív›nooƒRç·2Ë~¯;ڳ쨳uIþUz[Õq³®§G Àâ×~~Ï»„ùM8ç†!ôû}‡2 Ã<ŽãQžç)å>–×Ã!o 7ÂRJžçyœeÙ€1vž$IÿââÂîv»VEJgˆšòs%¿¹™1ÆúøëJþªŽ±eãïŸ+ùËûµŸaj3©®ÜÆ7yýcÈó.//áüü\F#Çqš$É(˲¡"‚I]Õ·ÿn®6¨,:ÅÆBˆã4Mwúý~óòò²6 I€™hTá>D{õ¼~‚2q¬Cò—÷ëYÀdsCŸx1Ìocjú,Ëàìì NNNd†,˲8I’a–eÃBÜx˜ÆM1€‚É@QžçÇI’lSJôûýúùù9mµZ¨Ûí‚eYÓ’"óÊÞ÷hϬm¦†›¥>Gò—÷›áQ3[µjDÙmÁ”þßÎÎÎàì쌇a8βlXt~…0)#ŸÁ-H€É47Œ1.æ{ò0Æ[¶mŽãX¶mãz½>•V¡+)¾å\ÆÔ©ª:=«õº$ÿ,f1Λ½½UŒWƪ’¿ÊÜ0óÊ(Þôûëžn)%“Âÿýßÿ©ß~û- çQ¥iz(„8€!DðQÜ(n” (Œ±K)mSJëcÏq»ÝnC­VS€tNͼd9s;\ oVõð–·éó×혟_¯áJs‰]¹÷´>SòW…”gM¨g¶ÁM3‚&~ýþišÂùù9|øðA½}û–ŸžžŽF£ÑI’$‡yžŸ(¥z0‚‰|+àF'ÈRò,ËbBÈ¥çy‡qwÏÏÏ›­V«6P·Û†ò8çåéqF{V­)º.)°|ýÍò{Ü”ä/·‘*¾ï_yw32tÓ(›?qÃññ1‰0 ³,ËÆiš²,æÏ­ôþš¸Q€IvDÎfYvÇñ!d¿×ë5ÏÏÏI«Õ„ÐtÜl9ÆlÈrÃ.ËúøuF{–ˆ2Ëž÷ÿº’¿ü_kÇqà£`f©®[”¯§¿¾ïp8„““899£Ñ(JÓtçyŸs>TJéðç­8¿7Í &LeYv’$É–eYýÑhÔ=<F¯Mç¾lÖ­Cò/"زi¶›Ö«\oôùfÌŸs½^~þùgxûö-?;;‹ƒAo<ÿ–¦éQùéÃÇ9”oÏI[ÔÅÄcŒr C) ÇÁ¶m£Z­v¥€TYÌ‹öÜ”ä_&ÚcWÞnj´rÔ<¾ÔF ÷Ïë04÷Ï‹ÍK˜[–ªžÇ û !`4ÁÑÑüüóÏê·ß~K///ûãñø4ŽãÃ<ÏOÕdåL¤?ƒ[”þ·lL„M)íB)¥mYít:Óc&˜Œ0OÚ¯Cò_7ÚSuœƒjÈLú[ÆžÿÉ?ïør€@'ÏÍ :,{}3î1†8ŽáèèÞ¿¯>|ø ÎÎ΢Á`p:³,;‘RžÃÇ Äo]úÜ.è*B¥4À{RJß²,§Ñh€ëºÈ”êfMÍYZ`]’ÿºÑžyy?U&Pa¯Kò—1«Å4ÇÖQ®lž"4¿|yy oß¾…wïÞ‰“““äòòò2 ÃÃ$IŽ„¦ôOà–m[e€i4B÷[Ð$„Ô(¥„‚<ÏÛ¶•”À'… n£‡W?çu¢=UƒæMßæ6%ªÚP)ue@ͪ÷+_O1ùÿïÿþ/¼ÿ>Ó¦OE‡Y–(¥´ôàcìÿÖqë   !¤€"„ê!lŒ1õ}Çù$*TîQ½‰ÞUÞEÇ|µU® §qS’Éöÿ¤@m™Ì㫞»l–bŒ•R â8F§§§ðîÝ;ùæÍ~||ŽF£Ó8Ž“$9’RžÀ%|4}îDúÜ(¥”B*¥!ÄBÙyž7B^ÁSɩۜ¢Šøo3Ú³¬1«º•M´Š6¹QÉ_uMÓ)ÖÐﻌO`:¾z˜kžçp~~Ž~þùgxóæ ?==Ѝ6}ÎÔÕ°ç­äüÌÂ]0ÀÔ.€-¥l`Œ=˲°eY¸˜FT©¢¤¢éLš9CŸcó›Ñâ™úË2&Œ* pW’¿Œ²Ðm`FµfWŠú(„dY†.//Ñï¿ÿ¿üò‹Žú\†axÇñQ–e§†éc:¾w6vóN4€FA40¥´Fñ8ç.BÈò}ÿŠS¬?–)QõºŽ„.ëuýƒY÷øÈ¦¨jƒÛ”ü³`úå5³žËd ¥ ôþý{x÷î:<<ççç£~¿4²,;•R^ÀÄôÁdÐË™>wÅz–U0ÂÛ` !<°-Ë„T˜>ªhpdúeóg–_Ôaµ “Ìóf]ÇœÅÅ$”i#Ü‘ä/£ìS™Ïf>_9¿ª8O1ÆÐp8DGGGðæÍõáÃvvv6î÷ûçaþ^ØýçP6}îÄñ5q§ ˜ðd…íYSJyišÚRJª;Ȥ”HMTËš'×1cVÝ6Ë Ö¾Ë"Ó¸Mâ7ïi¦oWi´2ñ#„BÂ0D¿þú+¼}ûVýúë¯âääd|yyy†áQ’$‡œó30£>wó¯Â3À´¤"(Ò$ì<Ï¥”eÛ6.&œC!U| TvÞIíëøË8ÈóÌ*]EzVG˜ùàö%eM`šCæ1zÍ9GãñœœÀ/¿ü¢~ýõW~rr_^^^ŽF££8Ž9ç'J© ˜¤;Œáž˜>wÍS¨3‚ „§”ró<§œs¢+%fÒDTÕÁ´ªÔ¿‰¦% «úî‹ä¯z3:4kfz)%„a‡‡‡ðöí[õîÝ;y||÷ûý^†Çqåy~j„I~ ÓîׄoÌZ©c¦) ÜœÀ»wïÔ¯¿þ*ŽŽŽ’‹‹‹þp8<Š¢è(˲S!Ä|$~m÷ß;⸠  è(–RòbÉ¥”\)eqÎí8Ž-Æq]\×Õö(ÒÓÀÜé:£=ómG—§35q_ˆÚøÅ³ë¹Ž£(‚8ާ3Þè8ÿ›7oÔû÷ïeaöô†Ã¡Žõ6¿vzµÝ¯çù½w¸o p• „œL–,”RTAÓ4µ„„RŠ )¥® ó[Ö”YG´§ê7ÀÕ:þf?€ÞwŸˆ_?¿ IqCÇ*Žcˆ¢ t||¬Cìää$éõzýÑh¤m~MüZòkâ¿Õ!Ž«â>2€†ö D¡¸šØD–”ÒIÓ”fYF>ÆÛuÝIm·jÌJýýÜe^/°©æõߘ&–úz¾³8Ž¡×ë¡÷ïßÃÛ·ou^¿ÕuZØü'%³Gîº×ÄpÏ&>(Vh,„ÀyžSƘU¤M£RŸ€ÒNrUØqM _å8€j'ø¾1€.¨¥~’$W–Ñh„ÎÎÎÐï¿ÿïß¿—¿ýö;==úýþåx<>‰ãø¤°ùÏácG×!ù5î;h&RJ.„Èc©‚#„l!„$‰$ ÑÕ¦µÄ-&CºXlY/#Õç7/º¤A)×uï”Ìðfy;ç²,Ó³´C1¥-¤i £ÑŽáÍ›7ðöí[u||Ì/..ƃÁàt4GQt’ç¹&~ãóÅH~ûÌW™€ !X1 ×!Ð,ËPžçˆ1†„”qÎѪ9@Ëä-r”Ë⋬Ö;c€rtGÛùšÐã8†$I Žcdž!ôz=8::‚>ÈwïÞñ"Ì9‡EzÃ1c¬êü¢$¿Æ}gƒ @(¥xQl+áœÇRJ&„PY–9QYaâ$I™×“I;. UN÷]ÖÞ_–ø>ŽÐ p—>€Ú̲ ’$ñx ãñxjëS•Âáá!¼ÿ~ùåxÿþ=;??÷ûýËápx¬‰Ÿsn¿íù¢ˆàæ c­ º÷P€0)e¢&“s§Y–ñ8ŽwÆãq#Š"'Ïs’$ êv»Ðh4ëºà8Ž*æàEºã¼$µYZaÑø»¶õMÆÖåO„Ó¸¾&ø,Ë ÏsˆãF£œŸŸ+]ºðää$ï÷ûQ’$—q_Äq|–eÙ…¢s§“´f3¹í‹"~€/C˜PÆ2ÕBˆ´0„”’pέ8ŽqE8˲)±Å¡ŽiPÖÅq+÷(|L%°m{êܶÐnžçÓ˜¾áɲlJø'''ðæÍx÷î:>>–I¿ßï‡ax6“$9Éóü\qí}Mü:­ù‹#~€/Ghèd¹ŠTjÆ“RfBˆ¤`–eY2Ûaãñ؉¢ÈJÓu:xžÅÌõªp˜?g0½á_Àd}ümkó9̉1´­¯%¿–þEŒF£ 8==•¿ÿþ;???Ï£(J£(Rÿ"MÓ3Îù¥Rj[M=‰ÝIü_|d‚i‡™‚k&Èó >Ç£ÑhEQ?Žã~–e—œóK!DO)¥Í®d¿—é «àKd€«L0í'Èó<ãœ'Å\³cÆXÇq†ag0ÃáÐ ÃÐ ÃÇcÜjµçy S­õà³Ѽr†‹ \„jå—¬0ËÊN¹)íõ¢%½¶ñ €Æã1ôû}u~~®NNNäÅÅ ùx<޲,$Ir™$I/ÏóKÎùÀú#˜¾9{£6E¿h|©  ¡U¯v¸”’1ÆR)å8˲K˲N=ÏÛeŒí1ƺQ5...¼ß~ûÍjµZxkkKu:h6› g­±m»rʦU‹RÍû¿e3K/EÿƧ<1ži÷D¯§#…áp¨Â0äãñ8 Ãp<†…Ä0Æúœó”rX¿–úzÚ¢/Úޯ—ÎmP “#Šº˜s2ÆBˆ¡bœ¦i†a×¶í†ëºA£Ñp†Ã¡5 p»ÝFÍfÕëuð}lÛ6Gs©B# *‰^U7G«ž÷ ¬ L‰^>·Lô³ˆ_3€)ýu¯nE†! ‡Cuyy©ÎÏÏE¿ßçãñ8O’$)&§&Ir™eÙ%c¬/„Ðö½&ü®NYz¯rù×ûÕ7ÿùÀÅb€ B(À7)¥˲º¶mwÇézž·åû~»V«5jµšW«ÕH¸Ùl¢f³ ­V šÍ&A®ëª‚P•YSÅ:Î÷ý+aæ¶Yý :±¯Š̰faþ(mÞ„a£Ñ†Ã¡–ôj<«(ŠXEéx<Žâ8S’†Œ±ç|(„H)ðÑÔ‰á£Ô×¶þŽøþx  ß Ã$Äk€>ã†eY­‚ ¶mÛÞ²,«í8NÝq¯V«¹õzÝj6›V«Õ­V ×ëuT”h™j]ëgVÅ:½˜Çšû>u¨õ6“ȵ}_–üåuÇšøÕ`0ÃáPŒF#>Y’$,MÓ”1eY6,fe2ÆB!D¨”Ò_‡5µÿ‡•úebù£BkÍ.xãB¨AibŒ[”Ò¦eYMÏóÚžçµ|ßoxž¸ØŽãPß÷Q­VƒZ­¦jµxž7]´­hÛ¶¯T[›7ý+@µ ¤%»î½6C˜:mA/Q¡(ŠT’$2MS‘¦)K’$M’$ÒK–eã<ÏÇœóPJJ)C¥ÔXM¦%Ò¦ŽiçkÂÿÃØú³ðGfóI±Ø0ÑL´B !PJ›Žã´Çé8ŽÓ±,«1(¥žeYŽçyv´V«áZ­†}ßǾï#Ïó뺨`d2BÕBäBˆœsž2ÆbÆX”çy¨{ÕR‰”Rº^Rc­Û?©3 60ßÛt–MfpÀEyzÁûcøÅ¤ß^±8„‡bBlŒ±…1¦t2Ù%P„. {Ír‚§Õ0 äB.„ÅXÆ9Ï9çç<BäRÊT)•I))e¬”J•R)Lˆ<†Äž‹IøˆÎ¬ÏÁŸ•LhF0fF5µƒæp!¥Ô%„¸c§X4Ø! cL5mýI›«¢<¤ýV”‰Ì‹5׃ŠÄ¿L‘I)Ë„­íxmÚèÿ>•öZ‰_Ɔ>ÂÔ šÊÚaÊ!!äk,„…²`2ñ1Öĸ~&c8?ŽyJ)^üfÅoVüΕRšè™±èÿ®Úõúºf&í6 0e† ð‘!LMAg,&ékÌd€býI¯v±ðÒÂ*¶™Çëklˆ}6 °º4cøTKTýÆ¿ç1€9òm#ÈŠµIì»~Elàz@pUCÌZ›„?×2Ö&!Ï#pýß<ƒ±a€Ïš³®"ür›«ÿ|j·«9çmp làv±Hèc6ĽÁl°Ál°Ál°Ál°Ál°Ál°Ál°Ál°Ál°Ál°Ál°Ál°Ál°ÁWðÿ b{í›IEND®B`‚pommed-1.39~dfsg/gpomme/themes/CrystalLarge/kbdlight.png0000664000175000017500000003250411571653265023013 0ustar julienjulien‰PNG  IHDRÀÀRÜlbKGDùC» pHYs  šœ4äIDATxÚí}YwÛFšöSXIp§6K²åx‘=þº;铤¯fnç¿ÏÕdº'™Äé8v{•Dqß°ã» .BU@¤lSÁs%(Þz÷z«(P @ (P @ (P @ (P @ (P @ (P @ (P @ (P @_(ÈçîÀ&`Êå²F±! €NHú#FQô¹»ÿÉEQ\ÁÃpì8Î|:žçýሡ}îlFß|ó Ž+º®¥ªêBÈ !¤A‰!ËèI¦ç ì1²„NöœuÎô•€çyþü ïÇù¿‹‹‹w¿ýöÛt0x¹nr °Õ°ÐüäÁƒæ£G''''–eýŲ¬§µZí¾a(ŠAäû~Ì,3Ñc<Išu—™W¹&­¿ŽãøƒÁÀFoF£QÉ0ŒÊh4zçû~>Ÿ»AþÖ`« Õj‘o¿ýV{üøñ^»Ý~V.—¿®Õj_ß¹sçÞÇkõz]wóùÓéA@Ó4(вÔËðIæ¿iaø” B4›Í¢ËËË Óé쨪ÚtgßuÝ Ãxñ¯ý«;g(àË…¦i¨Õj8991?~¼wïÞ½SEQ¾5 ã/–e=nµZ탃¥Ùl¶mL&”J%A€R©MÓ@jýÛ.ÓéäJ,EQÊŠ¢˜Š¢D¾ï+Ãá0pÇó<Ï[øÛù ’ØJh4øóŸÿŒÓÓÓF»Ý~¦ªê·ªªþÕ4Íû•J¥V.—‰ªª3xŠ¢@Q”Ëe†·•ä¾tP  ( ™ÏçQ†šeYÍr¹ü e4©#ß÷§½^oæ8 ¶ïa%±•P.—µ»wïÖîÝ»÷U¹\þZUÕ¿hšvß0Œ¶aÊBÃG Q„hš]×… ¼j€¼- „Àó¼Ð4MÔj5R«ÕLÃ0Ú¶m«ÓéÔÇlÛžÍçó®ëŽ¢(ºÕñÀV €ªª•r¹üȲ¬o ÃøFUÕǺ®×TUUÈõh‘(ŠUUA… fÏ#_º`Ðg§ýÔu–eE¦ijžç5\×½?N¿Çþp8ôlÛ¶]×uÂ0¼µ®ÐV€a¨×ë0MSQ¥t÷îÝ£z½þgÃ0¾Ö4í+UUÛªª&¸½RûW!ªª^ˤ°ÌÀKBÆ÷ÿÒ™?ÑWªªF¦iÂ4M%Óó¼ñxüd2™8³Ùl†¡7»óù|[([!µZ úÓŸp||lY–uÜh4þ´»»û­ªªÏ4Mk¨ªJÒÒ„TóÓÀgþ,ÜkÀ>;!†aD{{{ð4Çñ¢(šjš†wïÞýÒívýù|.Ò£· [!¥R wîÜ!>¬ÔjµcÓ4©ªú@UÕ;ªªêIÍf†›2|’ùYä p·=N`úFи(jµZÚÑÑQݶíCÇqÏçóñd2éÎf³±ëºA!n™Ø  „@QUUÕ !ä!äHUÕ†ªªÏçµ±dúKÎEQt-b•‚aØÝÝUf³™ÕëõökµÚQµZÝ-•Jñxìðܪ x+ Š"E‘†a) ÃFEuEQJŠ¢¨„@¸85“Ëy9}ö7Þ,1ïÑõ_²¤‘TU%Õj•Ôëu½R©ÔJ¥RKÓ´¦¢(UBÈ€+ZoÅCÉ`[¾ï+¾ï«aj‹~“UµúºL)Ëü›¼ç&Á) !¢E¶,Òu躮©ªj†ahù¾oEQdPqen‰l‹ÏóˆçyJ†*êô_óùSÚHÕîiÇe&Çòþý™éÉ;L®&E!Š¢¨ô Ì LF|´¸[­€0 áû>BÓx²È›ùÉ›ÙY%ô¥›$Hô„a¨A`„ahDQ¤áJnE =ÅV@EÄ÷} ÀÔ@ð2?iq@â¾Üà9í¸¨¬¿?!-ãO’ù™2E‘E‘Ê0¿‚B>=¢(B†‚€Õ⹸‡x QZ4o»›8÷SÏiÏ›O)¸…ŒO±a’0 ¯å°ÓÀ›ù ÃaÆÚN&³ÃÃ:îÍ玒J i˜c±µ]¸·N¶F Ìg%A ,Ø4òN¨É^·nx ƒÒhÁ±¸Eh[Àj7Ö•R%•“£u„eA¸)!H>Ï|Š~|)ØFÈ]™ÈšuêþвÞ ¶ûD o²b zÜ©ØF „¤6gã€äòHö¼´ÿ?ÉJf«ò¶Éº@ úR”ÃMa› xB Á7†U™z]¡H® `'­Àmg~`» ÷è°YÖð‚B@®j4™IʃU˱×óóþÆ-Ìú$¡¬ßÄ'G®,o²Xž[XµÌ=KC®¢AoÚÕiþd0œõè7ÚÉOˆm¶Òà1?peØsÒâ™:¢äý6i6YV‘vþÁía±°ÒúÔ¤OËÞyiíÉ0ÞªÂÀúêëÌ ó4>[ ‘SóÇÍæz˜/Û(+ùM u‡€åå“ìµiÉñF$¢û­²“E^kò9ŸÛ(¹g‚“Ì̛آBEÑ5!¸ fY´[y +,+>[1ü¥‚7ÓI¿EÌ,3F†q< žUV”Ý4òÎ]ˆªA3„âV™†mÌe"mEîMrÍ,ÛÆ\¹¿« mÅš(¦ÈëöÝÜ* Ò^iš-©ùÙðqKE¶ z,™5JóÝEýJö!ëùòœÏÞ_¶¼BBn…ëC±°”âÍ^¦ a æó9Çëºqå(ýhšÃ0P*•P.—…iÓUÀcnÖÕ’É:ÉœÃ[±‚¶¿5B°Ü@‘7©“ü=Ù›œÍføðá:úý>ÇYj¯T*¡ÙlbÇÇÇÐuýZ6á:|*Ë R÷ØNXÊ%]Ñà¥e‚h•èp8ÄóçÏñÿ÷xõê†ÃáR›F'''øóŸÿŒz½Žz½¾TW¬øŠ¬ Q^?­äy`ü" ô¹‘Ôö"퟼Xv’š›-‘Çè÷ûñË5ö÷÷aš&"æçÏJÿ‘°@°ØÆ/+øMóm“ùuß÷ÑëõðóÏ?ã‡~ÀóçÏÑï÷Ñn·qxxˆF£EQ0AA³ÙD©TZjOTlÇÞ‡§á×€´O’tñh @Îõ·Â l£À’öO‹xÇyLêû>ƒ~ûí7<þïÞ½Ãl6CµZÅl6Ãû÷ï†a'<{ö –e]+§—Õ Dòï, ¢iÅ~Bp«LÄV €hâKä%¯® çyÇ8??Çùù9f³lÛF§ÓçyøðášÍ&¾þúkcÀǽ†X¤Õñ´³ÌŒ/oþB¶ô:y}2VYÈÛŽ­@œþL ‚Ùk“ÿ+Š‚R©„Ü¿¦iÂq”J%èºEQ ë:4M[ ³îÅB&0NºRyö$bÝ,öož[”¥0Rîy«$c "„DiîOV-P”ùñïÿþï8==Åt:…ïûK3Áªª¢T*a­V+u1½¬Æçõ“ûÐ ‘6‘&j?ËUÌê n‘l…¤•ﲚ,- Äû›¶Mµ{»ÝF©TÂýû÷ÁR…BUU˜¦‰J¥’É蛬µ—5ͳ¼2¶l…$@ÈbtdK Øs“š”Õî¦iBÓ´%Æç¥1im›' i_VÓóúœv½$×)…Š,ÐçGÖl°è ž­ªêcÓóØoú·(ƒ#«³°J F«äºgÖµ“-Ý ?¯Õ™/ ['É 0ÞbYÍ–Æ\²;>¤Ub¦iì4MŸ<_´~Aöz ™y€?ŠëC±uˆµÖL0Ï¥H"+¿.ºŽ½~•¬P“gÝOF˜7Äì·Âõ¡Ø: L-ÏõÉ €³fjy³ÉƤùÿ2÷‘Éå± ?’¸5B°u\×d2Õ ë0 OËÊ0nZU¨è>ÉóÓædÎgïǺ?,ýþhn‹m€¥Z Öý­Kº@@¶ûA‘‡ùeþO¶Ã³²®{NòyEý`éÁ%®œ@Y Ï´ Èbƒ@QQû¯.'y~ò˜èº¬¶d®[å|^?i—Îp‹è+"ýFð ÁV @šë#Jƒ²ŒŸÆT,Ò˜5ïñ´{Éö'Ïù2÷OfÒØcIé¶c«€ErÙK›Ä¹;2e ,ò‹­›nÍsŸUh(;ÑÛl¬Ã_¶Q"BH”8*tÂ'Ͼÿ"—(ëYdÍPçÅM “d pk„`ë€5ÏÉÉ0àjY ëº°m[xï8ï7™>¬Ú÷<ç¯J£uðGp€-,jx`àû>lÛÆx<†ã8ô¡¹OcJžpÈž/{èÿ4Á\µÏ2}•dü" ô9Ác~Öò}óù<ÞÊD4cLÛâ}§ý&bÎÿÉlûŠÔ,†Y…¡hÿVY®ÈþÖþ¦ªEW`þ[áúPl,2@KY ä|ovXT.qߢ‰¸¼Çó|¯rÝšÿÖÁÖ@t¥C|,„»¶,2ÉøŸ‚ùóšÉãi¯êŽÉö3«ÏÑG„¸búŽÁ'úŶÀµw$'ÀDB'”‡Ñe²B,Ò´¿è\Qœ±®…‘ékLøîÚJoçüÒ‘*¦i¢Ùl¢\.*Q™Tp^­”w:_æ¼…ÖG«ÕÒjµZIÓ´;Q5]×-Ù¶­êºÏó"UU…nP’yÓ˜a,hš¶´‹„èš$’í…aÇqàû>wãݬfž>³Ç‚ €mÛFÄu]UUÕR­VkììììY–5ó}ß „؄˖@øp›ä Ž0zQÙ®ë:“ÉÄóŸc2™ ÛíÆ»L¨ª MÓâça¿©æ§×œŸŸ#Š" ^¯£ÑhÄ4¦[¶Bâ8C†Ö²ë (=ÉUç®b=¡ïÊš&oõ,”fžça6›a0øº®ï*ŠRÑu=Š¢H™L&¡ïûmÛR–`IZ­–ú·¿ý­rzzzoww÷oŠ¢|«ëú£r¹Ü®×ëZ½^K¥‚ €ïûñÀêºÃ0â-EdÝ›<Ú!9H«wÓ „`>Ÿ£ßïÇo‘¤B\)ʬI! š2™àââN£Ñ•JÕj­V •J…j¼8À7 #ÞÃ(‹Žiÿg1Z‚æ_Lý뺇0 C1 £dšæ¡¢(ĶmÝq[Ó4ïõëדÉd†Œ´­F©Ñh(=ªžžÞ»wïÞÿSUõkEQNu]o›WˆLÓ oO!”øt0XÈ"°Œß/‰Ï:wOEUUض ß÷aš&&“ z½f³ºÝnl!é›gèµ®ëb<£ÛíâòòƒÁŽã Z­Â4M”Ëe†Ïó ë:¢(‚¦i0M¥R)€¼´N9žFÏÏÎü”v¶mG‹äQ¯P#„hazžçõlÛv'“IÁ…ã8N†¨ÿ´Z-å»ï¾+=}úôhww÷;EQ¾Õ4í‘amUUuEQ®]L•¦ yDÝ„ˆÖË&‰ò9Ž'ƒ`6 J_²wqqÏóP©TP©T–2T®ëâââçççKA/om3½†nÎËö)/ógýö¥Ñ™=NÓÄ4², š¦)¥R©¬(ÊÑhôu¿ßǽ{÷\MÓܳ³³Ál6³!°ÚÝ»wÉÝ»w+§§§wîÝ»÷oŠ¢|­ªê¿©ªº§ªjIQ”ˆ.:Bh'¨ÿ™\ˆ"Kè¼Âò¥ @ò8€¥7¯P—‡þßét0£ËËKWs+”vƒÁ€j~âºnìß' ½«tè}óÒ9ë¸èwVà“éknXÈ‚¾‘®ëÐu”Ëe5 Ãz¿ßÿʶmWQ”A†îl6ƒïû=ÏóÜ(Š®­Òþó?ÿÓ¬V«»;;;Qå{UUŸjšv ªª±ˆúã°c˜Ëp]A½ˆbS¿ÊqÞ Q!0 š¦Á÷}L&¼}û½^/ª×ëXLàa<“~¿Û¶—Öçòœñ^µïyb„äñä‡íWr^ã&éŸL¤,„ Úßß×lÛn*ŠrÀÔ¶íp::a:ƒÁ t]÷šОšL&³Édr6›Í“ÉÄu]×GÂÒ!-EQ4MûJÓ´cUU-†±—ÒŒi³˜y¬AÚ€åÀ/¢>𦉽½=ø¾N§u»ÝÀ¶mWUUÔj5£\.«š¦*,²ÌŸu˜ƒmÛ°m;jêëºÓ4ã}žOHó4M#õzûûû¥Ñht0½^ïðâââLUÕ ‰š&- ê¢(uEQÚªª6EQ #|Ф& JÞ´çª&ús é'ŸOUUT*Ôj5”Ëe„a q­ªëºÂÖ åU ²Ú{Ýÿéë£èdJü[–…(ŠP*•–æ…6¤ †…‚¦/0©×ëZ»Ý®¶Z­¶eYm]׊¢”LðÑ\ Mº¢(:!ÄX|¯Tõ—´y3²ó% @²o¢ÊSÃ0P¯×£z½u»Ýp1‡-,-ͱ§B$ÊÒxUúÒ~¿Ñh»@,E‰…ƒö•¾Jö&éT:Ô3 ƒT«UÕ²,CÓ´ € WYÏ¥B>-UUU5Š"•|ä`q¦Vù‰j5DDN¤mÑ@$¡ª*Êå2­ Š/Õ‹xée’Š…-Ž“¥Õ*Aµÿ|>Çx<Æh4âißø;‚8`Ó㛦9ñßÑÂ"]׉®ë€REVtUɬpqUHÐ|ßW5MS 9©ÄæaÙ%‡²~iÞx K dë[XBmê8›þMËŒ$?¢=Le@çxµ@«Ð7 tš¾1“ÎSPPKÏeŸŸÎ‡ðfUú³4 !ý{!|J†FæB4\•wÐRH[TZ’‘2G‡—™éU2=yb‡4 œ¼V”AYåx«´´„3mpE çS;ÉÐWtŒ–G»®{mm;D¯uQų×Im½Iú'-ÀâCt%ajaêÑU ÿµµ,%h–Ô‰À.0_E«­2+œ<¶Ž©_ç¸hŽ$IGæï•â+¶ Öò®jEd-n†ð}¾ïÀ5—†–wÐsi97- á¹+›šH»&‘ !‹d-u|jÖMf2òºyµ}ZŸ2k”åú‰ÊVkxs«<·LŒF·˜¤‚ÀZ0* ´_ô<×uc—(+>Z•î9Û\bzk­ f]Ÿ¼Z%à øºl›Ïÿ§ i:6]—·?¼ ˜ZM>ƒè¹èn{óù<.Å „`1‘ŸK…%Éü7-¢Ùhúsâ³mÄÞˆú…¼¨?‹9×õUóX›€,zmò^lb•X@ÔVˆ©b£ãJ}þJ¥‚R©EQâ5Ätý²çy±Pxž‡E¶ëF€GcÑj»4HY€´²‰ò´µ‰sEç*K¡‘è+ß< Ò\|Ú„“h’ì³ÐY^Zà§iŽÑl6ãðÁ`€^¯‡^¯oGY©TâÀù&æx)Píe°’ Äkœú€¼– L7%4Y÷ûTþh2ãCsÔ›ºg2öÊC¯<4Hî±T.—Q­VcWˆºEÔUr]7^4›ÍâuÑ›¤»h@ôVŽ’’Æjÿ¼ Ùs³^Ñù¼ÿ7aØg ñ¦˜>YzBé½nF(‹~Ô§§Ï8›Í ë:TU…ã8qƇ" Cض~¿Okõ—V®­+l¼É˼å¥ÃÚc±nP–ùiþu‰Âc>™Tߺ–ב/J6Ì¡¬R®R "Í} ‚Óéóù<~.Çq0Nãß«¢?˲b°m½^år–e ×/¯‚4‹» Ö€de";2ÅP¼ß7! ›žm–½gJÚsíEål{,#%c:ÇÁîî.jµÚÒj4]×ãm[t]‡ëºèv»ñ¾Fš¦¡Z­BÓ4´Z-”J¥µé-ºNTªŸ5‰’V€v0¹]ЍSy‰ SzuœOð›Ö·´ Í}â }W¥w²M¶ß¬å•‰Ò„$Š"Ìçs\\\àýû÷èt:(•Jh4888Xzã&[ ¤ë:æóyÌäÓét))Ân“6‘'“RÎ3ñ(z^е yú`¬%`3ið©S–2î’l,Á2…€àk? O³±Š‡B4A–õ¬4“7ñþý{œÁqÔjµx]C2¥×«ªŠjµo6ãI2ê*†J¥—O°}È“Øà¹œI ðÉÒ Y~dÒ%ÚSoª Ù2 Y¿:I—uj¤’™ød?’;ÇñÚ=Íà ¼{÷ƒÁ­V Ífsi¯S˜Å(¨V«èv»± ®O`@fDôNÒc•Ò)H˰³†Éò,L–BÔ^Zÿnr¦W¦¿2d\÷þY&7£›d´¾ú¾étOn¹® ˲Ðl6c¦•8rµ¦Ýn£ÛíâíÛ·p®ëBÓ4X–…r¹Œf³o³ê|Å&-@j1‰Œtñ‚Žä¹ìLñ*¼Ê`Ó§Ià¹SœÁ¸V $zѳÈX¶lî^V³zž‡Á`€~¿§>kµjµZ\ÛŸv_Ã0°··‡½½=躗GŒF#¼{÷ïß¿Çl6Ë] ¢¹ˆ~y°–à#Ê-§Í^~ΆUÀë›(+‘u,í‘ÒI£1ûwÒýÌ‚mÛ¸¸¸ÝèZ­Æ. » ]²Oô¾ÔÕ©×ëñ 07ð<µZ ý~­V+Þiz‹\Ï<à>ÏœðÌ)/+‘UœÅfˆd:ËÖ±AæMk{^–B”%bPA U $«åEY´ä8ˆÒÒ"á™N§xóæ ...`Yöööè R–ÊÝÓ40 T*•xrŒÎ)œŸŸ£Ñh`ww÷ZZ4Ù~ZL¶‰Y`€#I&Ë«µ’’|0Z3âyÄÛh¤ „çy‡ð}?Þ‚ƒ­1I›º³²D&“ùÓ²H¼ñàÑ™ýMæùéŒî|>G¯×ÃÙÙƒšÍ&F<“+“z¦ýÓ4 år¦i.½7a<£×ëa0ÄïOÑ0m,²¬mÞº@YB úMÀ²i2™ Óé Š"ìîî‚î––,¤£íÏf3¼~ý“ɵZ ;;;ØÛÛK5˼¾$û“Fü¬ßÓh&ú?9X"ëšT¢I°4k+ ö:úí8.//qvv†n· Û¶¡ªê’rÊKj1ØE3Žã`8b<Ç‹kDý–¹Ÿˆ¾¹Ò "SB?ì»¶Dœ%:Õü“Égggøç?ÿO”±oRaÛ¢D´m›n-ˆÝÝ](Š‚f³yXŸ:NHKÇqXj¥¬d-EZ-¨Ÿ¼>Û¶óós¼}û———qÛt·7Y¦dpº‚Ìó¼ØÚÓ͵Ø«¬‚4W|í@ä÷Ëu"‹@¿=ÏC§ÓÁ?ÿùOü÷ÿ7Êå2ööö°¿¿Ÿú°Žãàüügggˆ¢Íf3&ªÌ óú,rÖ"ÁdÖeùÿ¼t¦Lì%ó¼óùïß¿Çëׯqyy ˲–*ŸÇB@‰Í;Žsms­4º³ã,Jˆðh/°g½\š7¨®ëâòò/^¼À?þñ¼|ù½^Š¢`ooÇÇÇ899mÛøñÇñóÏ?ãÍ›7¨T*øûßÿŽápˆR©„ù|Žóós ضr¹Œýý}8Žƒ—/_"Š"ŒF#,¶¼æ2§,C')9?!Êø°³­Éï$-³²@Ÿc4áòòoß¾Åd2Áîî.ž={Ïóðúõküýï÷=::B­VãÒ›öm4áçŸÆ‹/Ðívceæº.»#6F£‘”gi›FoOD(Y€'I}6›á÷ßÇÿüÏÿà‡~À»wïàº.EÁùù9z½^üŠú º’h2™àòòAàòò¿ÿþ;úý>EÁÎÎN|ÏÉdEQâõ¦,aÒ «¼!«(+©éyƒÁaxÞ'¾‰ˆÖ2ƒ'Ãüi VöǸ¸¸ˆƒÒjµŠF£‡Æ/뻸¸ÀO?ý¿œïèè–e-%+Ø{Óy„~¿Ã0Ðjµ0™Lâùº’ÌqL&L§S†±d±xÝEôX)Hï ìóùtÊüÎ;h·Ûxÿþ}ünÜ|ýõ×øî»ïpxxEQ`šæÑy}I›å1v^ÂeÍ)LMè7¡ó¦òD¾=ÉséÿAÀ²,àéÓ§×\`ö5±³Ù ªª¢Õjáøø{{{‚¥R žç¡ßïãÇxóæM¼h†¦µMӌەQNy’B™p™†Ùãt3$:N_ 7ã㺮£T*Åy:ÙB'\[[£^¯ãððÇÇÇh·Ûøðáw9¨?< ™<–ÆØÉt#ûáckœDñRÖRfâÅ]Y)Ò$D¼–¾Àãàà ^ ELÓÄÎÎîß¿?ýéO0M3~5éd2Á|>_šÑ xÿþ=^½z…Ñh„v»r¹ŒV«…z½/ܧK)é*tí1E¹¶ÿh–;”au³€× ›þdcQã†a Ùl²¬x1Å»wïÐívñã?Æ&”æ—ÙÜd2‰ L€}åŽè¾"k$“Ï:–ìÙ‚`v) ”s‰â.§Y=žöý`6›Åc‡‡‡ØÙÙA­V‹­y–ÕN£CVÂ!+q²”Mf%d²QtµŽFþív³Ù,¶º®Ç`”¡i–ȶíxÓUªíÃ0ŒM/=V­VñàÁø¾MÓâÌQZŸÒ˜7oà›v>´e-òIÒ‘¥qÒ¤¹@yžçV*œœœ`gg'Þö|<CQ¸®‹étÍQ-ÿøñcìîî.moBw‰>;;Ë/à8Nã9ŽUUÑn·qxxˆ»wï¢Ùlr·G‘Ií²ôH êE¼‘ÄR ʉ öT³ëºŽF£±´; °(³Pææm§ÈfS(S躎z½¾ô[’!nJã‹jlD .øÐq#ÞyiéçU4\–hš†z½˲–^€AWoÑjNºË›¦ih6›h6›ñNoIˆa™¡\ÅE\9 Ä»ar#Ôä7k¶’» ðÎe”j|Þ¹i Â#¦LL¬´ï$ EÍòè—t{²ÜͬgÍzàã&UÉÀ“Ò¦§G£Æã1t]ÇÁÁªÕjꛀhUïh4Âp8DE±‹KŸwmr\’ýeû'R"÷3 Ü 8ËðJ6»Âc>‘ç ^Ú¹Y÷“%¸ ³‹ž#O€TÌÅ;&ëÆÉöŸ?]×c–0ÐEì"Ú÷¢ÅoQÅ)mvïR^|"br™xà³XznræNÔIžTgÍÒòþæÕóˆj|d¯Ï:Wövm3G8®QdÒ‚`Þß<ú¥=ïovE‰×bPð¶³áÝ‹ÎîÓ=C“ã“wlD÷ÏW$Ý Yí¤ÄišŒmœ–(ˆ‚×qbÈ´‘vÏ4ÂñŽe/ó?HâÐ,è¶T ”,;ÄEuTÙð,Íów !°mÛ\|ß'Y´ÐMÐ}]:ÉŒÅ*çæÁb[–h<G¶mGžçEB˜L&.€Y¿ßï)ŠÒ™ÍfšaÀµuxY.„ÌÃm¢MõcþŠÀÛf0„¯^½òÞ¼y3½¸¸jš]\\¦izžçéårY%„™móÐáS!é{ölâXÙã‹wQGoß¾Ûq?‚œUyZ·ÛÌçóË ^ ¨ªZ`†a¨…aH…`c‹=)±n$r˜N§A§Óñ...&Ýn·oFH©M§S«V«•t]×¢(R¢("¢v“4Lëƒì9ŸëŒÖ"ý(ŠÈb5]4‚³³³îÙÙÙh6›Ùaú¸âcúh¯_¿ž†qy~~þOÃ0œ0 ›aZašaªýZéÖÙ±Aö¼M:ïy¼c®ëÓéÔ›L&ÓÙl6Òu=p]·tqqQ2M³¤(ŠE‘E‘²hCÊääy¾<ÛÕ¬{ϼý’V  ‹‰BÇq‚Éd2 ½ù|> ‚ÀpÍ v»½«(JUUÕ;Š¢ìhEQT‹¢¨E‘†Ï„Ï¥µnâ¾a†¾ï{A8AÌ!¾išD×uMQ“bDQ¤P±È}ªçÿœÖá¦v‘ˆ¢( ®0õ2¿’ç®RA… ÄG_”à#ãÌ¿YP:SKààÊò. a> ®ƒëƒ`9ûÀb„ó)°9PzÌg) ļŒ›Åµ’h½oç³Ñ‹Á¸9ˆ ÀÍáË™)P @ (P @ (P @ (P @ (P @ (P @ (P @ ÈÿCœ–2óADwIEND®B`‚pommed-1.39~dfsg/gpomme/themes/CrystalLarge/mute.png0000664000175000017500000006612511571653265022203 0ustar julienjulien‰PNG  IHDRÀÀRÜlbKGDÿÿÿ ½§“ pHYs  d_‘kõIDATxÚíý÷“G’& {DFêÌ’­@rçf—'wÆì„Ùýxÿñý {kwk÷ñì½oßåpÈ!DËÒ©Eˆ÷‡ OF'ª B4¸ÓnV(t‰¬¬,÷?ð(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò«òÐ'ð(Ÿ—PJ ¥”€ ”Rª€J)%¤”}ŠTØCŸÀ£|>B)Çq,Û¶”Òˆ¤”\)µQJsγ¶má_’<À×ua4çyT)E`»Ë-@‘”RE)EQÀb±€ªªúÔ€RJmÛv<Ï›8ŽóW–e!æu]MÓ\@*„¨•RB)õ†1PJRJÀ‡âQJ]˲\Bˆ ””²Ñ·Z)UBjh•RRJùÉŒìÑ> ŒF#øÝï~ÇÇÇL)å(¥l°€B¨eYʶmî8NcÛvõêÕ+ñw÷wpvvöЧŽbQJC×u¢(úWA|å8ŽÛ4M²Z­žåyþ=cì;!Ä…”²àœ‹º®;e¥”‚ëºÄ²,R:¤”î1ÆŽÇ9ô}϶í!¸RʶmÛuÓ4ó²,gRÊ+Jé¬9çuÓ4¢išObð ÄXé P)¥¥”²ONNìçÏŸ»'''¾R*”Rz°]mBˆeY–t§v'³m{mÛvzvv–×uÍ7› ´mûÐ_@hÛöt<~±¿¿ïµm[¾zõ*ººº Ò4¥UUymÛ. B´B –eY̲,Ïqœ±çy'až ƒ“ápx4ö‚ RJ]!D[Å:MÓÅz½¾Î²ì¼ªª—u]_PJJ©T)U·m+?¶<À/c¥·”R¾”2€Ø÷ýáp8 !F0TJEJ)ŸâÀöZ‹¦i !IJªªs×u_ý‡ÿð^EQ´ùöÛoÕõõõƒ~/¥“RÆŒ±Ñd2‰~ûÛߺÿæßüÎ?þã?î÷ÝwôÅ‹Þ|>?R¾”R^9Ž“(¥¥Ô€ˆ2¶mûd<u|||ôôéÓáééipxxè ‡CÛu]Ú¶­µ^¯'óù<¾¼¼<>;;{úòå˧‹Åâ'ÎùŸc¯ !sJiÑ4 !>Úw~4€;Äôé•RTJi€{rrâ>þÜ?99 •R±”r#BȘR:±,kÄ‹cvBˆ%¥œóªmÛu]×{„èðð¤”tµZ¥RÊö!wBˆcYÖÄ÷ýét:õŸŸ»EQ8”R¡”âíöb¨õ à1Vzª”r¥”1L=Ï;‡GBˆ‰R*VJE2ÆBß÷Ã0 ½Á``GQdyžGÇ¡”RR×µZ¯×Ñjµ¬V«IUU#!„3œßÿþ÷?ŒÇãõ·ß~ µPJ=×u¢(:Çîp8ÏóÔp8„¿þë¿&£ÑÈ9::ýøãî?þ8º¸¸x¾Ùlr)¥ð}߇þt:ž>}þõ_ÿuðìÙ3ûàà€ ‡Cð}_9Ž–eÀþþ>œžžª<ÏÕÉɉ†áØ÷}ö‡?ü!¸¼¼ôêºÎ €>ÚŠði½l èlÛ …%¥dJ)çôôÔ}þü¹wzz@ÛU~J9 „Z–5²m;`Œy:{âDQdÇql Ã|ßW¶m¥꺆ÕjEâ8ö|ßW«•繤”’ããcdµZåRÊæSï„°mÛ÷<ï0ŽãÃétêF#ÅÛ¶a:‚ëº4 Cg4ÙÓé4¸ººš$IÒ!TÖp8´÷ööœÓÓSëË/¿„ƒƒˆ¢\וÛÄÌB€R*mÛ†0 Éþþ¾{ttÄ®¯¯Ý<Ï)åe]×4ðhVŒ•(¥¨ÎÖ¸°-þøzUû¾0•R{–e ,Ë c®ã8®ëº^†ö`0°â8¦ƒÁ€†aHõжm+ƦRJ˜N§êèè‹…u~~>øé§ŸþjµZ9Bk4ùz'X~ûí·âSí˜ÿ÷}?ö<ï(Š¢ƒ½½=g<ƒeYÀ9€í±¿¿q“gÏž±º®)çÜQJ)Ʊm›º®K‚ €0 Áó< „ç! „€¦i ( HÓ’$Ífëõ6› 0ƬñxdY¶_×õ_E‘À²õÝÿ" W|Çq¨RŠél ;==u¤”žR*€bJiD)i_þÀ²¬CÆØÄqœÐu][ÿÀ* CE 5 Žcð}ôj¯”Úº­x@Qa’ À²,·,KGA²,„8>>n@­V«Í§Š !̲¬ØqœqÃÁ`ŒF#ÃP@§À„åyø¾O¦Ó)¡”Zúq<ŽyLPJ.œÎ9Ôu Y–Aš¦¨ô$I¨ª „`Y 6«Õê ÆØŒ1ö‡Yø‹0½â“ããcW)5p]w0BˆX)5TJ`J)kEˆ|ß÷|ß÷‚ ð|ß·ƒ °ôÊ&ƒ € Àu]eÛ6ض Œ±Î¿UJÁ.@±, ¢(‚ýý}(Ë’@xqqñ4IBˆÑhD~ÿûßÿi<o>QLàBömÛ>ˆãØ ²m»SbÜÅú7|Þ¸WJªª‚<Ï!IX¯×¦)Eu]£€R cŠ¢Èó<ïÐqœCOû©«.ð/ÊÌü¼RÊ–R:Ú—÷ž?ÄJ©‰”r¬”À16°m{è8ÎÈqœëºïûn4 Cˆã‚ P¾ïƒïûÒ÷}ð<Çƶ—ÏTvóÖk!DÙ¶ Qr8çc¥”JÓ´u]—ŸœœdUU5øÃjøhÉpJ)è*í¡ã8£ÑÈ›L& ÝTN­èxþ€÷»nRJhÛªªêVýÍfI’@Q° RA)½Ã02Æ<˲nì.RþE€áÛ;J©¡”rª”Ú÷}: ÆBˆ‘VüHW<ý0 ÝÁ`àŒF#;Žc;Ëó<âyè[—½0o”Ò7ÿ¾¢”"J)eÛ6ŒÇcPJÎ9€¡âë<ÏAƒ8\@ñ1®—eYàº.èTí뺇ÞÞÞضÝùþЮð†²÷ @J u]Cžç°Z­:¥/ËÚ¶Îù× Lï¨Ô²,ªÓÇlaÅüU@/kC”RtÆl)¥­”rOOOçÏŸ»§§§1!dö!û”Ò º7¶mû:ˆu|ßgQYƒÁ€ŒF#EQ·ºë Vi׿åg—Ò¿‹À¤<σÑhD„\!Ät>Ÿ·yž'Žã¨ƒƒB\Bª¦iÄz½†º®?Èu%„lË·ŒE°ïyÞdßÙÛÛ˲Æ»üü¾ ` kúúyžCÓ4âãuÂ8Á<Ƙ²m,Ë¢;äꛀ°þ*  —GŒ¡Rjc¥Ôžïû{£Ñh2bŒE¶mû:kãA`GQÄÆã±Ç1flˆmÛà8ŽB?³6†ÏÛýÂï¨àwŠy,×uaoocDÒÆgggßL&ïw¿û]×µC)=»¸¸H¿ýö[uuuõ¡Nƒ@L™PJÇADÓéÔÇŠRz#ø¾kÕÇïÓ¶-”eÙ¹;¨øBBÜzýL£°,‹èViPÀGq?K0²6DgmíÃJ©@)@HZ–5¦”N-ËÚÛã8‘çyŽçy–ëºJgm`0¨ÑhÔelǹ±‚íøÈ]>ýmrŸ×ê×˲”ïû@!RJ"¥ô˲<B(ŠZ¥”"„Pžç°] ßK´ïoëk8 ‚`0 ‚8Ž-×u ¿ìÚ0¯þ~žç¦)¤i u]wÏK);C¸Í0¨ÆçuÌÄôí£Ÿ¥ôP•±ëº“ápx(„؃-Æf#Û¶‡®ë}ß|ßw<Ïs=ÏsÂ0dQ‘0 UJ»5J»6 ·ØŸù®J~—˜«¢yüÛŸ³m&“ H)IUUL)5^,¿©ªŠ*¥¸Î­ž@þ>ç§Q›À³)¥C×u'Óé4žN§®mÛboLWe×êJ]×5EÑùùUUAÛ¶Ý5åœCUUPU”e MÓ(ߣ(¥Ä²,ÂÆäymÛs‘øXòY€mÛ0ÉóçÏ/¿ü2<>>)¥ö¥”Ç„S˲öc±mÛ±mÛÏóÂ0 ý0 ™NM*}ÃÿKÏóÀ¶m‚™„]›î—x‹üR¹+%ª¥ËaLpttD„žbµZɪªjÇqÄááa™çy½Ùlø/­hß³?#ÇqÆÓé4ǶeYƒßÛ `sΡi(ËŠ¢€ªª iš.Эëʲ$Ú8TQmžçUÓ4­Bè ãfÛ6cŒ±<Ïí<Ï-ιRJIØb> è³2€ñxL~÷»ß±¯¾új<¾”R>“R>¡”:Ž3 ‚  ö`0`qÛaZÚ—¿±ÊãJ‚›þŠ|›"îZ¹ßåù]Òm?ðÛõzÇq`` µv`±XÐÉdB~ÿûß'“ɤúöÛo7×××”RžRjhÛöp4y£ÑȺËðÿèj‡º®»  £( X­Vp}} «ÕJ•eÉ«ªÊ꺾nÛv£a¤î“pt•=°,+hÛ6LÓÔkš¦•R¶èþ½·‚íÏÂôÊ_~ùeðÕW_ퟜœ<€¿¡”>w]÷ ‚qÇÁ`0°‡Ã!Äq q+]ŒÛ¶%fkz9ãì}øCìweŠvÅÛ˜ C¬ ZJ)mBHÇñ är¹|á8Î’Ò6M#ß1;DÀ¡”Fý9‡nE„MÓt†Ú‘Ðßoš¦sk0§Ï9‡¶m!MS9›ÍÚëëëj6›I’äu]gMÓ,›¦¹æœo¤”5Bˆ¥Q¨>¥4 ”J© m[Oq&¥\è´¹`¬üû£Ñèo !ߨ¶ýl0L÷÷÷݃ƒ{ߊã¸ÃØàmW…²/ï³¢¿mÅþXB àøøÇ!„Û²¬ÃÅbñ»Ñhýíßþ­ûÍ7ßü@)]\\\”ß~û-Ü7;D¡„϶íaÃápDZãºn§à}1]ž¶m;7W}¥Ôu ›Í...Úü1™Ïç—u]ÿÄ9%„¸hÛvUUUÉ9o`›ÑQÛÓ!,m L)eiŒVK)eõ±:cÔŒ•ßùꫯÆ'''Ïà×uÿz<ïíïï{'''êððPM&ð}_õýxüMo©¼îüû6Åï?ßÍ]i¼»ä>pOˆFg*]m&œsª”Šš¦yÊ9§AT ô¹Î=ÏC¥z«(¥,cÃ0 'q|ßgŒ1%¥$hxnìâÊß¶-!ºJ.>—¦©ººº’¯_¿N...~Z¯×?H)¿€—pÅ9Ï?U«ã}åA `<Ãï~÷;øê«¯âÑhô5üã8ÏÆãñôéÓ§öÉɉšN§*Žcp>l¶æ—È®á—ÄoóXžçÁÁÁ©ªÊBì¥iúMÛ¶–nN°„m®ü>”R¥tèûþ ‚ÐqK§aodpPùqµï§11Ë“eÌf3ñêÕ«êêêê²®ëÿGJù‡¦i.…¨w5Ñ?´<¨ø¾ONNNÜããã©âKJé—ƒÁ`zppàŸœœ¨££#†!ÖÞºïZÁw=þ¶ ß%µù!ïÕ C˜L&$ÏsK)¥NÓ4•mÛVŽãÈÃÃö(Šf½^«{d‡l],œú¾ú¾oë´°2`tmÐŒü|÷!”e ‹ÅB]]]•óùüj³ÙüX×õ÷BˆŸ8ç™”’¿í„J:p”R#¥Ô±Rê©ëºG‡‡‡Þ“'OÔÞÞž ðœÜ®àBîòõ?ë]Åó<8::Ý^*¥N“$±Æã1ÓÙ¡ìÛo¿­¯¯¯ïÜŠ!®eYûŽãìû¾ïyž–e)su7oXÈê/BRJhšFm6uqq!.//WY–}×4Í?UUuÞ4M*¥üx ½@ÄÐ÷?<±Á‡Ü1!c mÛ2¥Ô°mÛ¯tv¨¤”JBÈkØxžÇ÷R˲| !û¾‡aH|ßW–e½­—¡Ëö Æÿââ¢>;;[___¿¨ªêŸÛ¶ý£”òŠsž?d¢â]ä¡b¢”bJ)|Ƙ†! ÃP™>ÿ'9‘÷Èó¿ÏªÿK?ßC)…0 áøø!¬išHq\–å¿BXH+[ÜC™RJ§®ëº¾ï,&âùì2d³³+MSX­Vj6›Éëëët¹\þPUÕ? !¾“Rž5MSüšøCÄôÊn)¥l¥”gY–ãyu](¥ Œ¼þ.%û¥®Ìûäëo©?Üùþ_šMºïq0&B¢(l!Äh>Ÿ?/ŠBJ)Kz•çyºÙl@á*¥cAx:øúïÈúöç¹Ül6|¹\–óùˆm×ç¿íuæßoé3xãñÛün„w˜®Oÿ{i†  ”R!„G)Îçs˲¬v8.¤”òììl]–e¬›ß÷F£‘;»Æw€º®Õ|>Wëõš§iÚ–eÙÔuÍ‹¢hÒ4­‹¢Èš¦Y¶m{Þ4ÍRÊ—J©kÎyÆ9W¿6åx8tãÝâø®©Èû|Æ}^ó±j ï{®»Œ¼ÏÄ`~â¢càyžM/—˯›¦QQŸ÷Kw‚_òØ»aŒYA¨Á`°7 \×u)æý5 6›M“eÙº®ëŸ¤”ÿ?)åOu]×Bˆ¶8£øçˆéù¥ò` oD/ûw¢9o«ßûó!Ï»¯”wí6÷ ¦Ñ§”{—â#"ÓPFà8ŒF#hš†,—KÏuÝ !Ä¡”*ì«°m»û0ä,]­VuUU—œóŸ¤”B¼þµúö÷•Å™€/ý·z´çÇòé?Ð÷ÜÙWk2«@§Ð»ð7}c@¤¦,ã±]×…(ŠÈh4¢Aøœs[¡4 ŒÅ£xŒªªÈb± ‹Å¢lÛö•RêeÓ4é¿tåxx0¼ÝŸ~×àmÙ¢_ú÷®cöýpóñÛ(ïrmLö¬ºbë!6•£ÿmR¹0Æ@3a€‚H) ¥”¶mˤ”H=Œ1“¬Vm6™$IVUÕçüŒs^þKW~€‡7€~³3Á]à½úìw¹6}Eï¯öˆ±Ïó–Ë%Ìf3¸¼¼„««+¸ºº‚$IºŽ,TR,ŒA“ÉNOOa8!™` AÃPY–mÛ"S³Ìó¼-ŠbSÅE]××RÊŸ×ô)ä¡ à†Ü·ƒë]c‚];Â.V²ûd‹ÌÇß–™1Û/ÆŠ«ieYÂz½†Ùlpuuóù–Ë%¬V+(ŠâÆëñ3ê°( R×5Äq Œ±n¥eYày¸®Køª( Èóœ—e™4M³jÛ6ùKQ~€‡7LnÿÐôáøö^'{ ø.—¦Ÿ™é»,ækÌ÷ !`µZÁwß}?ü𜟟C–eˆä„'Ož˜ô]¿vlacz]×p~~yž#Ï«è¶ØÌ’çy]×õŒs>WJ}ÞÅ_‰<´ ÜÀý£ +sÛÊü®;ƒyŒ»þî¿gW>¾¿úîJMö¿¿Ò÷Ù4 ¬V+xñâ|÷ÝwðêÕ+(Ë,Ë‚8Ža2™Àd2Á`¾ï¿¡Ì¨øY–Ájµ‚ÕjÕÁ%pbM†{Æ9':®hš¦YhhZ>¥|.p¯VC|î—ú÷¿$§ßÿ¿i¦b›ÝT¦¢÷Wùþw4?#MSøþûïáŸÿùŸá§Ÿ~‚¶máøø:Å‚àÀd¹Ã¼>²3§i Y–AQÐ4ͽ¼UU‘º®›¶m—Bˆå£<Œ(€7›/Þ¶rÿ’à¶ÿãënËí÷Ïm—òï fûçºKHêìì þøÇ?ÂË—/AJ ãñNNNàøø¸[õ‘ø I¿Ìÿ›¤¾¨àfCW(MSÈó²,CCQu]7œóRjq×ç(m]Ȩ ¨¾âìRÈYáí¯ôw¥&MeßU½óËTL]B Ïsxõê|÷Ýwðý÷ßCUUðüùs8==…ñx A¥´ãì‘Rvaœó7æ˜÷8Ðc<C]צ)Ìf3¨ë8çªiÙ¶m­”J !fïÀ_„<´Ü]EŸþó¦¼-»sŸá®JkŸÕ™î;³ WáÛv  çó9üôÓOðòåKȲ <σÉd{{{ƒ5ºWæJo*:îø·yC2`×uÁqàœÃ|>Bˆäœ·mÛVJ©>ùç,m7²@ps7øùÁ; ï»;àÊj*¸éÚìRܾ‘Þæ2¡ûQUU—îìï0RJ¸¼¼„?ÿùϰX,º<¾ÉÒ&„¸¡ôý•ÚûÏ¡aàs8%ˆ¢Hyž'¤”eÛ¶…”²!„pü þRä¡ å8<ï›Ý¹ÏN€Št}~WÖ¦/f¶ ³1ȘŒC"à†b²ª™`6›A–e0Na0ª8ço(¿©øøøm`>nÆ ®ëÆ˜àœ—MÓäRÊJm[( à¡å]ï#`ÞLò'ó<î{<ì›M’‹¤iÚ)°þ¶mwéKì¾Â¢m[p]<Ï¥TGR‹©Ì·AßÌÕãÆX7û‹"Ú¶-š¦É…lýÿGxÙY» gc>¶«^Ðÿ6 Nˆµ1ù.ûþù®séw „Cáp¾®ÃŽãt†ày”e «Õª{?!¤{ÀÏóyà 7èmÊo*<>ŽÊ_–%îP¢ªªn€mè1ø„r ¤¶#qÔ®•÷mçûÀ"ð1œj‚7ŽÐ z+LÙ<¦¢ë›],ж-xžºçö†â †!@ça°jŽ_5mì¸ÂóêÁ»¦Xöî±4MÉb±€år)ʲ,…9TÐšÕø¿yhèd×Ê—ß¶â¿ ³Á-º=&Õ7þÙÇqLž7ÎUl6HÓ„Àƒ0 !‚®R‹F…#šú¶ûn ~^ÿZ!n@©ßfý€™›Íf³¬V+Y×u¥”*(¥ ùˆƒ(>Wyh¸‘Ú…½­Hu׎p›˜®9¯–sI’tÌ…à8Äq Óé´3€þg!–W~! ‡C‚ [m»/ºc7!„tsnö˜F°ëÞ<æ}vÓ•Z.—j±XÀf³áœó’RZÀ½éÕÿ%ÉCÊ,Ðm.Ðm¸ ûæûûTßèú`&f¹\Þ0€¶m»‰’»vœ¶m»ªj]ר¾ïߨ#À´ƒø8º=„n…¹Êïº&ýï†ßë¶øÀ<ç6›Z­V2MÓºmÛ\JY!Z^ý—"Ÿ‹Ü»@q÷]ñQÌ÷¡‚™ù~TâÙlóùüF¥•GGG;Ï 3HY–AY–7¦¦˜¯GåÄs€.&°,«Ëû·mÛ)ð® ómCL­îbŽ0ƒÿ,Ëd’$užç¹b#„H«ªâ¿Vf‡÷‘ÏÅÞÀáß·É]À¶];••Acèa6SˆfV¨oH˜ò,Š|ßï”»ÿ]PÍcãë<σ(Š`0tcF“$ápØ”y-n»>o«‰àn„3¼Ò4­…ùp8L‡Ãa%¥´”RŽIÍaø£¤•žUU=´Þ¼·<´(Ð×±@ý8àmM*÷!­2_Ó¯ôöÛ  «–â|‚]ÊÔ4Mg8UUc Ǻ®»@Ú»®ëÂáá!NX„4M»N°ét Ãá°‹Þö½úbÆ*‹Å...T’$•mÛ‹áp˜ù¾?PJ ʲrÎcƘÇsmÛ¶µ4°e˜^ëY_›Éd²ü¯ÿõ¿ÎöööVÿ÷ŸŸŸÿj¤m(·v„Üo2Ì} ¢ÆÄtgÛ¶†agqwéLóøÐùÒpbð‰ 7ó\QùÑ•ê×0`Õ3À`¿cÈó”RP ¹YÙÝàš·þ$÷ÕjÕ,—ˤiš×AüdYÖU]×r³Ùøyž Ƙr‡:ŽãzžÚ¶í3Æ¥Th¨t ‰çy‹/¾øâB)uy}}}é8ΚRZÖu-~m±ÁçbìJƒÞ–Õ¹í߻똦`Ö÷}ØÛÛëýyL!îʡۃÇ@·¨®ëîóе2 _f=_ƒ»‰ïûðìÙ3ð}V«,—K˜ÏçÐ4 ¸®‹(Î1¦A™Ã«1¶Á~`-J›¦ù“Rê;!Ä‹¢˜_]]©4MÛ¶}ÇqBÛ¶#ÏóF¾ïï…ax†á±çyC˲Fšº¾VJeRÊõx<>ûOÿé?ýéßÿûÿgÆØÙÙÙYò?þÇÿP¿¦Øàs1ÕW|óþ][w|ç=ÀÍ¥_´Úe€&d¢_)6Vú_|_Š[×5X–‡‡‡0 I¸¾¾Çq`µZu«:‚æÌ] ïë£A£”@)¥‚ (†Ã᫪ª~H’äÕl6[o6p‡Ú¶Íc.cÌsgàºîx0ííí­Çãñ“8Ž]×PJc !ö=Ï}ñÅ‘eY±eYïûççç盺®«Íf#î1­òÁå¡ à ,ÐmÕà·Â}¹íõwÚn{ï®]±5Œ±ÎÌ–D4 ÜML#Á|;®ÔRJ‡8Š¢€ßþö·0ŸÏa±XÀjµêªÕ¶3yÇéb„b`0]–¥B”–e-ÎÎÎfÿðÿœ•:':ðÍu¼ ”ž ‡ÃŸ€|. îêÁ½M©ïããßçÇ¿m¥¿­þ€àº.„aØ¥@Íï`* Ùj‰½Hg†a´¢ßol™¨Rï™™<Ÿ>;ç½I. à Bâ·JUUpuu%-ËÊ”R¯ƒ ˆöööNƒ B¦ðóÀu ¶co÷Ã0üz<çiQužç çü³«?´tX ý¿‘ºKùï †ûÐ;‚Y?F@)…õzÝ1¯a Ò |QiQñ}ßïVÏóÞH¯âÿÚ¿¡õ S¯žçuAúûœ×ë5üïÿý¿ÁuÝF)µzòäÉÙüÿñ…ïûc•Rˆ!RÛËCÛ¶ŸïííUß|óÍÂó¼òüãrµZ}v¼£mðæÀb`ÊÛÜ›·ñþ¼Ëù˜ÇÛõ9˜ ‚ [Ù‹¢¸ñyXXÃïÝÎ1 ŽãŽ«³ßo~óºôc¤~î: l¾¯ëÚ¼¦jWªù.©ë®®®ðÏÖ²¬UY–/•R{p¢”šÀÏ»ŠDz¬I†'GGG'EQ,ÏÎΊõz],÷ô—ÊCÀ ,Rªs…Ì"Ï7ÜRœÚõØ/Qþw:y{GcÀêk]×7&· +®Ìš¢¼ËÔ˜®×\Íñ¦kd6õ˜ì&½ â“´‘Ø'Äéœï#¼€=¥Ô¿–RªÞbAÀ¡”F¶mï{ž7 ÃðÚ÷ý´ªªÏj–ðCJgè÷‘œøü7½% îÿÿÖ¿Ö趆î`®¸?0›_Çé2BæÊÞZûu?«…× d¦!àëuöÇ•RŽÇœœ¬‹¢¨V«UÇ[tR:'„\K)S¥T£¶óžñ"¥€€R:u]w:‚4M­Åb¡êºþl¶ÏÅn|wíïî½¼-ÕjºDQun‘ùœY0ëâÌÀ¿ÿYKÜ–ÆECÀ”'6ö`›¦ñˆ”2âœ?F«ÿüŸÿóõÁÁAú?ÿçÿ„‹‹‹w½$’RB¥ÔFJ™B"¸©O¶Y¡±çy“ƒƒƒ¨ª*'Ë2ñhoJ‡2àöé‰÷•~õUØ®¸WM᮸ÀÌõ›¾;®Ò&¨ÿü®”f¿ÑÝü¬þ÷Ã>fÌág`HŸO=ÏK¢(º¨ëºÚÛÛË×ë5Ç8á>R–%¼~ýZ¹®[ ƒ•ã8p•R6 ;DÀ&„ lÛ‡aAà1Æ>«æû‡6€X T €ŸgmÝ%oÛ îª+ÜuLó=}„êml³ñ¾ïš˜F`¾Þt°¾`h™0è]çˆÆ‡qÆ ›Í¦s…!žeYGBˆ6˲”sN(Ëryqq¡ò<¿×¶\.áý¯ÿóù¼ùÝï~·899YÀHJl?†`vBBJ醰ÍåðQ°?´¼!¨ýêæmr›¿ß÷Óo«›Ç1ïÍUÚÜALŸÜ\íQé&O4Äûì*N™F€)Nó¦!˜ 7ýó6Û.M΢ªªð‹3J©-„8äœÿ†RZN&“M–eÅb±¨ó<¿×ÊÜ4 \__ƒïûÍ7ß|³€RªUo›QJ©Cñ¥”¡‡ŸkŸ…<´ìä2•`÷JßWþ~Ún(Ì}?Isû.ŠÙÜ‚ÊfNdÉóüFê³@}ó¾¡òc_¶Ã8Ž!Š¢} ¦AÙ¶ ƒÁÚ¶í†êéï ô÷pÇ9Ã0išæ" Ô1¶„më㻈PJejÛÀM·Õª”²…®‘R¾}Kÿ„òЀòè®`n×€i|- &þΓè¬0“‚Šlrí@—Ž,˲,ëzz³]ê3 Cp]·›íe ¹JÑ0¥jR¹˜qÁ®LÀÏs†EEA=ªÝ›16r]÷Ð÷ýcß÷¶m#=â½E)Å•R…¾‰¾›¨”"„ ˜”Ò‘RÚ°M‘~6ò¹Àή]Ø ] 8“Z{žwãsvÛÍœºIe‚&PiÛ¶…$I`½^Ãz½î(RL:t“¡‘ž¦;cVŒÑò<‡Åbѯ®ëΗÇ̘ œÃïc^#èÚ=qN0Ö`«„.¥thÛö‘ëº×¾ïÏ<ÏK뺖ï°[J¥T#¥l”RR½k „¦‘£ î‰DýTò¹À ^ sØå¾àß&Ë› €E$ÓïË®\:¢4~Fbbp‰V8skµZÁf³éæàÊÛÏâ@ç&ṡQán€çêû~÷p­×ëÙ¢>ðÍd¸@Î"ÃX`€zàyÞád2y™çùjµZÕ璉ZùsèýVT)eI)™Rʺ/õSÉC@‡x³#ÌĹôÓ‹èz˜Í!"t;²PÙví¸â®×ëN‰MÒ*ô½Q)•Ú6©krYHÓ´kQŒã¸›ähö7MÓ'tű~\€¤¼x4<$áB¼a@}1{ŽQùMŠu­ˆ.¥tÁÁÑÑѨišYQ¼®ë{Á—õoÕJ)ÛmòNîz !ˆÂBXð¸ì–~•¼þX!L/â<\$¦€Î­ÀT¢ù7B ðXèo#­ùr¹„²,o¸;¾ïw­…Žãt틛͖Ë%$IRJp§CuN&ðËÉSJ¡ª*ð<¯ãͲ Öëu§äýÜ?2î6fÁ ã4MÁó¼ÎÈÍlºLÈ14ŸÏa6›AQ`Y–²,‹èkk7M+¥F¶m5DIá÷tƒ””RH)Åmø"©E¡î3mçSËgcoR–ôƒad6˲ ò<ïücè‚Ë  Žã.'ÞÍUýwôµÑý@^ „)£¯]ÌçsX.—+3ºöÃ0 ;¨ƒ¹ó qDQ„léÉW«0Æ`<ïìCzö0 »ìî BÈ󼫸®{à *Š^¼x¯^½‚ëëën§ÒÅ2‚» ¥”J)Ý<Ï£4MGeYÆŒ±µëºoÔ,îú½¤” ¶ÆÐ×n%„B.„àh(­g¦<´ìœ fþ­”êr⨴8ø¹øq¥Ft%2! ò›éJ$‰Z­V]ðZ–%(¥ºlÍh4‚ñxÜaô¥”PUU·ògYÖùúæk rÍ}ú46œ$ƒ®Û.?æ  ‚“ep'F7èÔ…$ üôÓOðêÕ«(T\Tðz*¥(çÜNÓt¸X,ž¤iZ !<˲֌1!„àÀÕvvXwÓÙÙcžÆ”¶YØTJ)¡S¤­ú g=´ÜR0qôH_ŽÁfUUÝ<-TV\­Ñ'ÞU3àœCš¦°X,`>ŸÃf³éÜ'dSØß߇ÑhÔùüй«Õ ’dÛÜ´¿¿ßÉ.?|ÀáÓ®ëÂb±¸ÁIÚ§OÇ›9¨Á€ÈS„?Ôu Ëå^¾| išÂoû[FÝÎiÍβŒ¤ij¯×ëñjµúmš¦Ó¶mÿ¥4ó}¿€BJ™jÀ[ºš[èŒmq‹ìXÄ”BH)Ñh à.écÐßÇH«”êÌÕz™•iDI’tþ0®üRJ‚F£ìííÁh4êŠM+ §æf³¥AÃáƒÁ ˆ‚Y¼3»¸ óçqwèèÛÅJaÖáy^§ÄXiæœw­™h¨yžƒã8ðüùsøâ‹/ ( Ȳ¬» 9š¦i$ÉQQ£¦i*!D­”ª9çEÓ4Y]×I]×IÛ¶™¢BäJ©Âu]«(Šñr¹<ß„‰Ýp²( YU•âœSBˆ…ģ؟FðSC¥?0™ ˆRJ¡âc°ˆn¦8}߇étÚÝLç]¸¤1ŸÍfpvv×××7 UƒÁŽŽŽ`:vn ¥´s»V«UÇІ<¢fjY!ÌÕÞäþÁº„¹â£‘ ;ÓG¾š0 è wŒe°î«?úüAÀÞÞ<{ö ¾þúë.UlöèiÛ–ÕuM‹¢p7›M”¦©Ìó\¦i*’$áëõº]¯×mš¦¼,KÑ4àœsƘZ­V´(ŠHã}$¬N()¥ÔFg·më1Æ"ß÷9liX$!D(¥<ÇOim7¶Cs04¦&W«U§ü˜×ÆlËd2¹1‡«;¨‘FE<Ìz½†«««.€ExBE0º•ß”¶m»LŠÎ tô„˜5A{& ÓÜÅLeG÷ÍÜ!Ì},~³v€Æ‚ÇÇãUUóù²,ƒÁ`ÇÇÇ0™L`<ß8–‘1"[Å…"MS’¦)èÁk ](‚…µ¦i$çœ !”RŠš;ž>?"„°¤”!cìÐó¼Z)å5M³áœ·B¬!´°%áå „R)%ak$x“Ðk¡ý—`˜Aª&r‚ÍfscÕt]†Ã!L§ÓÎO¿ +°õù‹¢€år 0ŸÏ»T§É Š“ÙMA…ÂBt+°9Í?S¶ø¶9¢²a Ó4“ê¤ÿ£îB öÙð¸XÄX©,K˜N§°¿¿Žã¼Á!„×Û¼ØÊ: W“É8ç„s®ÌB#¦ AàVQ øýt5VUåÛ¶½ï8ŽEÑaš¦«<ÏÓ<Ï˪ªª¶m+¥TE)mÛ®mÛ®•RµÜ])¥J¨!5h#B¨woß%m7²@H…Óí1›Ð‡Ãá µÏ€ÕuÝåÁ1è5a QÁp8ì˜ØÌ÷¢ûƒ,s„©I]b®ªXkØ5ž1ÏóŠß x׈¢]ŸaMf—8çÝ.iN£¹m¡èmÛ8M™†‚)Ot½ÐpW(ËRé{¢§Ýв,iUUV]×^Y–£,˲,+Ó4­‹¢¨«ªªÛ¶­9ç{TœóJÏ/.š¦É9ç¥Rª€”²€”RÚ~ˆÞÊ5lœÀ¿ª*…·YLubU³=fà¹Kip Äb±€Åbyžw¾²Y¸Bú@3¥‡Ù¢$I ,KBtE'³¥ÏÏc*¨©Tæ,2„4 »cóÞVIíú ó¸ú#ŒC)Õ]+d™»Çï°óÿ»`☞ÅëhR²n™jš†hW‰4MÃôŽà”eWU%«ª’eYÊ,ËD’$"Ë2^E›eY³Ùlêõz]¯×ëJSª´J©Kø¼€lw„÷’‡Þ¶Å’Ž[h&Kª£Ñ¨ãìÇUxWÃŒ™¹Y,°^¯;x2®þÈŸ‰X̾mÛ®ÚjÛÌU×ôóûF° ¨‡8 ¤+Çó0ê6cî7Íô3Fh°¸ú;ŽÓæÌfúÛv“þnÕ—]h\¬˜÷FHumÁºù¾ ´…¤m[Ê9gmÛt«°¯w|•ç¹È²Œëà›Ïçóv6›‰««+‘$IÔ4͵â >P_ÁC€2@J)B¨>é“çy0Na2™tUYTþ]* ^]]u)AT~\µ0‰¬få3PXuí»ȳƒçÙw‡º/g¬Ð˜·ÇŠ3B•1f¸MÙLè7ç@—Â@•R Quø%s*%ÞLå5xwuÖíê?ØGô㥸®Û±ß‹ô¿(çÜæœ³²,Õf³‘úÓŸÔ?üÃ?´ß}÷]0ŸÏ©ë}zÂCˆBªª@`¸QÂLùƒš™sÀÇqŠáb±èât7ÌAæn‚ï7‡L`Í?sWÖfW‚yÉ<Ùõ  ¯PæçöqA˜nBÀ|>ïðEæ°nLêt²Ò‹AÞ /ÕŸZ¿k‚ý®4ó­?p¯[m×ÿáçâÎ%ÆìTÓ4°^¯‰‚÷Ýw-cŒBZضTþª ¿¤¥ÏÁÒ©¸–1Öù²¸R›)N¼pý¦¬ †•Ø„ôáÐÖîêß5›dð³LºCsò$*ª9‹ØìSð<¯ ¾ßfx=ú†ÆÏƒº®a6›Áf³½½=˜N§Ûœ”’$/^ÀË—/áêêªk³Ô7‚˜"ÄAù¾¯ÌždÄÙ¶ÝŸ™¡ºãG~ãÿ÷y oÆTK¾X,’Íf³®ë:SJÕðëÄ´òÛ”R—âÁ–Q€âÅ € ôöWŸ~¯/ç²,ƒÍfÓe“ðuxÑÆ  ˆ¹2©ØÍä>-ûF`>Žž@UUd½^Ãb±h—Ëe’¦éºmÛ ¶Áï¯Ú,J©G)` ” ”RÌt}ÌVBÌ÷›sZóö«Õ úybôÿ£(‚(Šn¾æ`*±ù*1ÅæJÜWøþ :4&ü|Ïኺ+Û7v³ë Óšf?2ùŽãÆã10ƺìÐz½†‹‹‹nõ—Rªº®E–ey’$«ªª¨lÛ¶Â0Œ|ß]×õ<Ƕín—ÃP¡KÇq·“áBe~¯Ûä>€Pý{’Õj‹Å‚'I’UUµÑ8¤_ç€Ùœƒƒ×ó¼C8VJ ”Rl›§»/¾:¦Ûî Ðp%Æ{³Ùtþ; f]ð‡ÂÔc_éú<=¸ó`pŒOŒlÇ ØeÐÕ>íºîØbWPi¹Ù„óÄ(¥]¶ Ѭ˜Úµ,«««¬V+˜Íf$ v¸I¥T]×õz>Ÿ¿X­V—œó”Rª\×ÇÁ¹_¾eY.cÌfŒ1ÏóXÇöp8ô‡Ãa0Ý8Ž-Œ§‚ P¾ï+×u•[PÆ1n¸S(³« ¡?ë?ªªÔõõ5\__×eYn8çk)e)„à VýI `4Á¿ûwÿž?‡Ã¿Bü†J©)-,z™cT¶ÛÚ1scÐų́„Aܨ#ôÍìB3mXÌB^ó}fÜtƒ0û¢ÉdÒÞvU{QñÍÔ(~>¦wëºî2*———7°?Ãá°«j#Šu±XÀf³º®ñû Îy‘¦éu]×ßçyþcÓ4 ¥Tmm†1BcŒ1×um˲|ˆlÛA0Š¢è8Žã¯\×ÝÓ.,UÛž`Ai]×ÃáP ‡CÇ1‹¢ˆAÀâ8&¸á†sÍׂ̈R yž«óós~qqQ6M³&„lÚ¶­Û¶U¿J(„çyp||l¥”O¥”O`;dEéU·ÛrûYš]b¯X B?ªOLÛçãì+2if Ú¾’š Ϙ¥ ð¼?´i<¦Â÷¿+õÌœ9ç|ßïÀoyžÃp8„£££.÷°Mc6 âÇ!Œ±¶®ëU]×UU½®ªêç| µ9Ù‘RгEQäºîÔ²¬c)%mšæHÃ$TÓ4¢,˺(м,Ë„RZ >é`0ð¢(rƒ pÂ0dq[aZAX¾ï³ 샃ëË/¿$ãñ˜@÷ÛE!///Û«««¼ªª5$BˆæC‚å>©(¥l)åHJ¹¯”:PJ sqÕÅtåm®O_YÌasX=6«§¸úcáÉÌíRâ>öÀtoúð3Ccbø1åŠÊob…n+ä™bº>ˆÿ—R‚mÛ]º—s§§§p||Ü7À–Âðêê æó9b©ˆN›ÖI’\¯×ë‹¢(Vœóv ÉÃø"Žãæ‹/¾ØL§SF)B”Þ),¥©ëº)Š"Ñ®Ô˪ªæ›Í¦*Ë’¬V«Ð¶m_Ç|¥ÔÅ™ÄAÄ£ÑhôÍ7ßø£ÑÈF7 Ë29›ÍêÙl–•e¹B$º§àƒÉ'1ôý÷÷÷=Û¶„§0VJy`àÁ !ýA“‚¤b4Ý4c™ƒ#PÌFó~—Xߥêމ½1ßkºJøZ|wìäÂ@Þ•Ú/äí:—» shEQ¥´ b]á×———p~~iš‚eY*Ë2Å9o‹E¹^¯«¶m%!„’íü/²£­,ËRÃá€R*RF G#)¥$c¬àœ_[–õB)õ}]×—eY–úºøàI)¥”Kñ(¥Çqö¢(:žN§Îx0­â'1€ápÿößþ[xöìY4 žI)Ÿ@`¬ìJ_,bR‰›´&· ‚èÌB“‰}AeÁ oýcí‚5à*.Í.„9¢Ïo¸“íª^ïÚL÷w7œŒ î ˜]BÖ8‡pvvUUcLE!8çj>ŸÛY–„ïû%€”²hš¦éƒÌÔ–­ÃÑ ‹c¥Ôl‡åQ!D]UÕ:I’³õzýç,Ë^Eq-¥ÄLz¥ÔbŒÙ¶m•ROc{”Òv¹a*{¹\’‹‹ ™çy#„(”R !$‡;ÕûÈ'1ÏóÈáá¡}pp0”RžH)a»‚ ¾›˜Å*s²ú®Ô`3ɬ̼:®âˆæ4nWîÝt{ÌÕyWnÏÁl1sã&—¾Öt{nÃÿ à÷®º®;PÖ+0µŠü¼‹1Æ`2™ÀñññšHUUN†SBH-„ð¤”GJ©Œs^TUUhœ>×½¼œBŠ¢ð6›Ís˲žQJ!>ç¼-ËrµÙl.—Ëåë$I.š¦Y„a˜´ãñX™ç¥wxšç9¿ºº)¥jƘ’RÒõzM.//sÞ¥m_½zų,K¤”+)e¦Ñ¢T7?‰(¥˜”2–RN¥”{RÊ¡þìú`Òþ™Mo[ýM¬9™¥[1[÷q/æ nR“ô•¿Eî?orš­™}wÌ\áo‹°(‡Ì8kw0!®®® ( ˆã&“IGÛ‚ï%„Àh4‚ÿò_þ üæ7¿é\¨²,iš¦Ñr¹|š$ÉAžçu]×mÓ4¢mÛ–sÞ!*)eÎ9OÛ¶MmÛæ«ÕÊæœAðµëº{–e9UU­‹Åùz½~‘$ÉUQhž>}ªþÛûoäoÿöoáää„ÄqLÀjÛ–æyÿ÷ÿþ_ï¿ÿ÷ÿŸŸÇ–eyMÓØ¯^½"EQ€”V«yùò%üøãUQ×J©ë¦iÊ÷uö  „ˆ…c¥ÔP)˜Ÿ-„P8<Î,l19æ6èóxötýŒÌm;@÷r—ò÷cƒÛšUú¸ >­oäøbU›sAÀ`0è eYv€¾¿ižçÁ³gÏàèèHi yž“,ËÜ$IÜ,Ëbù«ª"MÓ¨¶m…ÆççMÓ¤UU¥œó,BÈ@)u „¤”²®kYU•¬ëšrÎC˜X–eÛ¶]yžÇÃ0TÃáPÅqŒ-QU•PJEJ©!$rÇ%„P]ÈSJ)X,pvvFf³Y]UÕL)u­òƒëæ§Ê1ˆµÈ-I*"ŸpW„¥¡²¤‡Ç郷VHMøô.ÀÖ.å6WðþkvÁ]÷e×ùôsÿý¿±{ WÿªªÀqœ®Èer†N§S‡]\°+cæ8‡* Ã7¡B… 5:ÍŠ˜}«ª*¿,ËIY–²ª*Ò¶­Í9wõ‚¥lÛöÂ0mšÆjš†à®@vhV?uiBLÅ2W×»²?pà êǻ޿Ë(Þff ·pãßXÀÂ^dtgÆãqÇþ€­¢8nµßøÒolÛ&&˜ O  ιBJöªªhUU´®k[?†»Ôu­ô Š¢p²,›dYæçy>)Š¢¬ªªB4«ÕЧiÊÇi lš&Ͳ,Ûl6E]×±mÛÇa\×eJÄ„†ŽoTÛ¶•”rÛæ—2Tã£Àp8„¿ù›¿!OžÄCõ}MÓ<ÏíÕjE7››eY\…¨ëZÖu­š¦‘mÛ Î¹hš¦æœW–eU¶mWàØ¶=q]wè8ŽcÛ¶"„ÌxUU¥Ú¶åBˆR)µ-ÑÍÿ£|Tp]ö÷÷­ýý}WJéü±£sÎúÚw;@¥”*W«¸®ëA1Æ<¥ó<êLÂ_õ.ÛÌå÷+¼·án°õ[$ûгKÉïë.õ?˼¡b×R"¸mR ¯_¿†år RÊî\1]Üá)¥”>rÛ¹êóQ¸Ëb&«/Foƒjš†h8±,‹zžgÇqŒY8bŒmUÚ xÓ4¼,˶,KÎ9'–e¹ãñØŽãØÒÉ Õ¶-Ñ¿¶®ë´mÛ5ç<רŸ¢£Õ4ÆŸI)])e(¥4GätRJ)„¨Š¢Xäy¾®ªÊ¥”~¹ïI|ß'ýf—{ÓϺèã߈ú+2þa eYÞ 81 `W ü¶àx×{ÍÇÌ€û—…0 àôôNNN`oo¯c·¸¼¼ÆØ/ØRŠÍñÈ"mÎ!0Óµ½¬—Ò,o;•߀c³ÿ!X·‘R*Í •R2ÍípÎ¥”’B¨mÛ$‚uƒ8 ªëú²išKÝÿѸ‚>…XBG)å)¥\0&„he$jK­Ý–e¹É²ìuQ–ëºcŒBFB,\™)¥¤¯üfÚÔ\éMîF|[Œì0 »Â rÀ[w€Û”¼ðs“ ¼È謔‚Á`‡‡‡p|| ûûû†!\__Ãåå%ÌçóŠlÂEŽ,ÔMÓ ÿP ´²+]¡ J³ßýeîP&«î&-Œ9É‘šÆªÝ!}oË„éà«®ëzÖ¶í5çü£d>‰À–ñj¬¿­¶Ã“ßHzë Ö6M“/—ËYš¦­ïû–þq)l‡»9„Ëu]ÒWàþ(Ñ]YüñvaïÑðL§SàœÃl6ë ÿ¶TèÛVTþªªnŒVÂb®üÇÇǰ··AtІù|I’ÀÞÞ^G͈Á¯ }Ѐ»ƒjšFH)¥TضM\×µÇa¶mÇqn´HêÕ\õù‡ÌÐ]7SÁÍß¡ÿ›ô3UU‘ªªš¶mRÊ…R꽙¨íT¦Ké]ú•ÎXÉ•”².Šb%„ÈtðK•ž@Î[–åk%UZÉmùwó"#TÂ\·Ë cŒF]! 3}ÜÏ»¸@ýÝsùHø‹ÿ8Žáàà S~„7 ‹„ü¨²CèƒÔSk4ÿ‘Òr¢ ¾DQyžçIÓ4)¥°mÛ³m;t]7²mÛÅ ¶ª‰Þ!(¥Ô‚í Ž=܈ãG!ÆwUæ÷Þ¥üú¦À ÓÅø¢i¥ë •b­à:Rõ“ìRJŽ”ÒÖ+úeÃPX!¥Ìó<_\^^!Ñ•Rå8ާqé7(EL.þ~^àgš“>˜ÌD”šF`Û6ÄqÜ5” oŠHS¸Q-ÞôW|µ!dç K„çy0áèèºAŒ±°æ¦i:–i“õ{6› Bà믿†8Ž!MS²^¯›õz=ŸÍf/.//HÓ4€È²¬×u¿ ”Ž„T¯ê„RJ]×eŒ1—âB\° ¬–B¼ÂËuöŒè{e¦6wUôM#0\,Y×uÓ4Mþ±°?ŸÚp Æ­Kë÷\º TÍ9Ï’$ÁçPÆX ã…@»SÔó<„Nì†Ç4 ‰®ÌN±»\!ìÛßߥÌçól‡³ Ìà²5kÎFÒ/„mà$šñx Óéß gϲ ^¼x`YÖÎà©®k°m› cL@nYÖ%çüåz½~YEÎ9Û¶Í›¦©8ç] –\J¶m[–e¹àQJ=˲\˲l˲,Ƶm›zžg{žçxžg;Žc9ŽcÙ¶MµKEc„RJÙb€cTç ýBÃYxY–YUUk!D ;aÚ¿&PJu㤾ï–Ãpš Õ5Bˆ4Ë2ÐÐîPÃ9?圤”¶ÎÝè C¼ÙÓ4MWXBZ»ƌ¢ø¾‡‡‡3R´£1!Ìzx¯ÓÀ€?‹RÚÍ#˜N§0;P›9 ›sËå¾ûî;xùò%A“É<ÏëŒÜ„Fè¢è|£”ZAp6¯ƒlÛÖBXUUe›Íæišª¢(dÛ¶Ò=·Úˆ XŒ1ÛÝn >!$ „„„ß²¬ˆ16°,+²,+$„x„—Rʶv¨6 Û¶mw0Øv­áb…„eY6yž¯Ê²\!6°Ûúë5ýIµ ÈÕ–[ž$bl„b‘-M -Œ¶ÖGr>ŸÓ cÐ?L Û!o”Rª|ß'Øj‡!º+æH$„ {ÑG˜Þ¸8ŒuLÐ&J ¸>¨Y¡6¡ؘƒ….Ït:…(Šn´⪘ç9\__Ë/`±XÀ“'O`ooSŽ]ý@SÈc†TUE,Ëj›¦YqÎÏ॔ò¢m[Q×5kÛV–e)²,KuÚQ !jØnøÝmÛ)¥eY–«”  зˆëû<4pc¶.t lÛÞßÛÛú¾O‚ °úó–uf©­ª*iÛv¥>póûƒ€Vr©•i°ûXs€ŸgÉÚd;O–À¶ò×@^×5»ºº²)¥Ì¶m¦Óz§„fYæ’U†$ ÃÎÕÁ€×ÄÔÏçs˜N§Ýʽ+0…hPÙd2é¨Ùq71§Jö±H¸Ê#¡.òû#+…y3yGQP)æóy—ú,˲Ä™ÐM …ä¿DAÒ4%Bˆªiš×œóªªz1ŸÏ/ÏÏÏáââÂjš†é¢V%„hÅö`x»!šE‚B¤þMRØÖs˜y³,ËrÇÖ®“/„ðëºêº~B)ý7Žã¸u]3)¥eº¿† Ç9ç™Ú6¾”ð °n“n hv|!Ûf ײ,O:ˆ mÛ4IK_`KǶö+„GWEÕp8„<Ï;h­Qlƒ<Ïa6›uéšùV¨‚ ‘ÀI‘fÝìC0ẜ÷Ç!uˆÉMÔ‡C£ñà¼/lhÇ •Az¥!P×5Ñ3ÏcŒ(¥dQµ”r&„ø!MÓ.//¯_½zµ¹ºº"«Õжm‹JÈa»(ݹÒêï…¯Û™™QÛvPL)åBJi Û`÷ç¼Åì‘ëÎ6YEÍ9O•R‰”²Ös>ª‚~tHnÇh¶PëûZ+µ,ËÓiNôÌ)ØWJÕmÛ&I’г³3¢39TW5]J©;c ööö:¢¨4MoœOUUpuuÕùÞqßèØq^7v3ëA7ËÝ ³!•ØL/öã…]œœýª66óìj¨Ç¹`ëõšŒÇcB©›¦¹VJý(„øçù|þçú§J_¾|)5«…Ôî(€Ñ’ú¾¢{ˆÙÒ ˲„ã8–eY ¥Th…É ι̲¬É²¬àœo¤”i]×ÍÇÀÿ÷åcï8壒RfRÊ8!Äœ$J)‹Rê1ÆBÛ¶J©+¥4Ù¿Zíë’õzmPˆNÓ¥”DZåyFj4A]×ÄdˆÀtb†°··ŽãÀx<îJ³À³«9àg¬ Æútˆ¦˜5Š~…µ{ôw!tÜ·?œC_7"„€4MÕz½–iš¶QUUÍò<Á9ÿçüÅÅÅÅâììL¬×ëî²ÃGr- F [¸‹mY–ë8Žãû>óª4M‹Åc•ïûkÆØ ¶c6[BˆY&°Íõûq‹¢µm»BTÆáÐTÓ4²inY .cŒJ)©¾øïûl8 °!]! ÝÌ@0Æ Ïón‡@*u×u;ŽMß÷ï„SïúÿÛ^ÓË)­ •³ÙÀëׯáüü6› ŒÇc‚ ã'EZ”ÙlÖ¦iºNÓôµmÛÿ,„øþâââÕjµZÕuýAytî#ˆ«²,Ë!„ cã(ŠÂ(ŠÆXçûh—‰”e)꺮ڶÍ!þÜ—jyžÃ?üiš¶ÏŸ?ߌÇã%¤J©ZmÉp^0Ƙ; öʲÜOÓôª®ë¤wH¥/L ÛTßòââÂÓygKg‡ÆãqÇ1Ç]G$a!êêêªKO‡Cø™ÿS©íPŽÓÓS˜L&0wV3Íü®¿ñ±þjoR€à !×××ðÃ?Àåå%TUÕQžà{ðújêÀ*MÓ‹ÕjõÃz½þ^só$mÛ6»hN>…èTµ«”Š)¥qn–eY]œâ“ç¹B„rØæÿ?‰Õ~Tàœ#eÛ¶íJ©Ú>ë¦ÒaÅ—Rêø¾?¢hß÷ý°ª*†•ICЪ¦i’ÕjÅÌì”’B¬­ËéÛ£ÑH!%¢&Z]`ƒÅbÑáêQÁQÉÑO=99…zƒyWñm>½Yú\8SK€Z.—òõë×òÕ«W$‰…¼š8] ¢(Èr¹$Ëå²,ËòuUU?VUu®»¨>z ñ!°Õ-ëѨŽïûÔàÿìšò _2Ʋ Šõz]ÍçsUUUÿÐjœ0y}}-’$i’$i(¥–eYJ1±mÛŸL&°··GF£|ýõ×*Ë2‚XðòåKØl6@)… `8ÂÁÁA7’ÙŒQ M¾Ð¦iP!!MS˜Ífp~~ÞÅY–½1üO§[¹Rªªë:ɲl™eÙ"˲EÛ¶.!äÙh4r'“‰2'äüìZn6›º,ËEÓ4—u]¯š¦)>•ëð¡à3Ɔ¾ïOƒ yžç`Í ½Pªªj)å•Rê >ûÃmòI @çªJÏóÎ¥”ƒ ^Ú¶="„Œ !>èL8–e]×}jYVjÛöJQm6›¢ªª]À( [#PBQUUkY™L&¾mÛç\× ‡C7ëè舄aHÌy=Æ!sAt, ãñÂ0¼1ß‹AÜf³ÁBT×Öx}}ÝM¥Ç×îjZB(õQëõZ¬×ëFJI£(¢Ãá…aHq ÀÏ„Yº‘¦*Šâªiš Îyþ™(?ÀV¯B½›|ß÷uAlûƒý' [#ا”þë0 íÓÓÓÆ÷}qqq±Ìóü¶[@Ë9Ïó<·f³™¥;ÐÀóÜ¡i‚öb±°///‡«ÕJ•eÉ<Ï#8MÆx=hsUÅF±€>Qåô>Bq,ËšÚ¶=õ<Ïu]W™ß3bUUÕu]ÏÛ¶}ìÞßÛäA  m[ž$I‚xÆ÷}_:Ž“[–5¡”°œBŽÇQšPÉ«ªê5clIA¸,JEŒ‘†`W”Òu’$äüüܲmÛ‘RÎ9Ñ@:ZU ³:†kEQ¨4Måz½VI’È¢(džç*MSu}}m½|ù’eYf¹®KF£œœœÀééi8cÐŒuƒÞEb¦P©uzzj-—KµZ­º™Â˜:Ô7)Š‚§išêákØVNß«qĨk Ju±’œhöj(ø*z÷ÀócûŽãìû¾ïâîgÀˆ®yÔmÛΤ”³‡ÚÁĪª‚‹‹ 9›Í2¥ÔO¾ï§“Éd> ¾ö<ï¯mÛ>¥”`['pà˜â…aøôÉ“'/9ç¯à –°­6«.AÓ­K)IY–Íf³ÙèqÍf³©c–çyVUUþÅÅ…Eh¦ bЬKžl5CA#¥l’$çççd±X¸eYƒõõ×_Ó'O:ŽNß÷;]¥éÉMФnG„ét:…,ËÈ|>WÈ ,ph(yž·iš®ò<_!xÏÎ)Œ{ôÔ׸î®&3ð”RÈéÄa hla‹ë*õçWZ‰¥mÛã8®ëîAà"úÓÀþ@Qª,ËŠs~­”šÁ'Îþ <ˆ! ÏsÐ3«ëº€\‘ÅqÜxž—0Æö)¥CÝ‚çÀز,?Š¢l¹‚Æ0€ lƒãì<B(BˆÌóœgY¶Y¯×-ÐýýýX+ÛÈó<ß÷}†ølÌÖm˜MUUE–eyÓ4•”²Í²Œ]__ÇBk8ªÃÃCøâ‹/àä䤛ýe¦ùL´h¿wØ| oè&éÞ‚«?Î@ÒÜ,ËÚ²,“¶mW°]ýßyn®ÁgY–e3Æ\˲BJéR[–QJÝáåëøÌÒ×—+¥Z¥T%¥L¥”‰_”*¥ÆØclä8N w®†×X×>r!ÄÐ…{¨à†4MÃW«ÕF+^EÑkÏóŽc”Ò1!dDBí=­¤„¦ÏH5äºBTœó¶mÛŠ1–;ŽÓVU•§izùÓO?¹Bˆüðð𠊢î^bJ‹î_¨¥”åf³IÎÏÏË岪ªÊjÛv‚ƒƒ÷ôôÔzöìÄqÜõ ÀæxSÑMCÀʾH);W!‚®Æ`Ræy®4t ÓØ™ ¶+ò½¯·±â3BH¤SÑ{„}˲ÇÙó÷///ÙÅÅExyyyp}}]ó}?ô}_õç)·mKªªâUU¥MÓl„¹Fÿåî(Z™TÛ¶ lÛÔ²,«®k[áÚ¶A™­ ûƒ•BH))eÕ¶m]–em4Ôt™ Óo²,K !6cÌÖÐ]ÍÑ+Z’k !-¥T2Æ<Û¶Ã(ІûûûÞÞÞó}Ÿ`NÛl¾ï3ÕÝÖ¶Kùñ3Ff¡q3"I’2˲v7Ö÷›«}~¶¯O<Ïû›8Ž3ŸN§Óý£££àääÄ>==¥Óé´«]xž§°•];)¥ÒUp²^¯­““ëòòÒ}õêUôâÅ ^–% DZ2Y½1†)˲­ë:ÑÝ_…®þ>Hû³2€¾hÅæUUIÎyK)à磫 ]xЊÜç ‚ŸQ§0[J)‹sŽlÕß7J)qÇu]7pg†ád:º£Ñˆ -‰þl¸I¡Þ¿íRôÛ y‹°9ë«ÕŠ'I’—e¹Ò©Ãå} Ú¢–eà7žçýÍh4úæääääùóçÁ“'Oœýý}k<S¤–1‡üõ™¤1‹…ÄaiK...è÷ßoÏf3Ðè€nƒý'?n`‹\ÍáÑ«ŸµüôÎë¢Ó¬6c,bŒ2Æþf8þë“““/Ÿ?>úꫯÔññ±D6º¾’cðÞƒ{Ó5£”b˜DQD...nмìª( ^n‡ltïoÍ9§æCÊgoYÞfT¶ÓL‚0 aFëØ=¼¯xë÷ÜÇð8Èe´X,ÈÅÅ™ÏçeÓ4gJ©×MÓdškÿÖ“ÇÔ*ç”[–õµïû_ïíí|ùå—Þ³gÏ$ò¸Ûôã3@7w'$3 |aÂÓ§O;Ê—ëëëŽ\`ãEÑ”eYH))eÖ4 ÿ”øÿ¾ü¥ÀÛ„€E)uÇ \×õmÛ¶vѨì¦Ç̉#˜+=® fL)¥ôÜ’$ v²‰Íf“·m{gBˆâmJ£S±c,"„œº®ût<íïïØh4R¶mßH·îR~ÆpÎo¸Bæßæ}EØ­Öa§Ð„²ªª¶,ËB‘*¥rí®>Øühw B´-J©mYÓd¯Ý L…ï+?À›;Ö PáÑ(Ì×c! áÚëõZ&IÒ”e¹BœÀlsçwІ2`cúqEÇÑþþ>ó<`pm*~ßß7•½o ýÇñžƒÁŠ¢èú°5Gªªªª­ëº’R¦é´óƒÉ£ÜOHïv}¸í9ƒËèF»$ú×h@8bˆsŽTŽj>Ÿ—I’,ʲ<«ëz®éïsÞ|JéÈuÝ£8Ž÷'“‰?‰™eê»c¦[ƒïÂ4áã¦Ñ`¿Æ+i‚`Ù4M#„(`K¯XÀ'b¸M ànQÐ%£×7ªç–Ý:åmÏ™‚dõóàˆÎ%I’D]^^Ê«««Mš¦,Ëò{=‹÷¾>3#„„¶mÃ0<ˆãx†¡ƒõ ú;Ómþ_ùÍÇwÏSgHQRSÝä°…pÃõ`òhw‹RJq)eÝ4MQmñ»VÛ¶ CúEÝý.ÅÛkŒçÀ,˜$ \__ó«««l±X\”eù'Îù Îù[}C,¥TH)zž7‚ ð}¿›lõú•ëÛv…þj¿k‡À|?öY#WQ­öýײòÉØn“G¸C4¬ºnÛ6+Šb¦i’e™[–¥, Ækw®ðæs÷y\˜ÔÅÅ…:;;˯¯¯ÏÓ4ý‘sþ!äŠò._L)ê]Àq‡jEí±ë°F£ôý}3øí?†ÿÇÑRHê‹lšýa.¥œ×uýIÙn½@ú響`¿qRUÕu’$‡³Ù, ‚Àó<˜êï"}Jv£CŒdY³ÙŒŸeWWWçiš~_UÕ÷RÊs¸|Ÿ™ªí\6G“J©ÒÅs€Þœ.<3su›ì šqG¬ëºcÜ@2ÍØ] !®”RWŸšýá6y4€»EÂb½iÛö,I’É«W¯&–eEQÙžç³×÷— 6ׯV+ryyI.//«Ùlö:MÓïÚ¶ý¥”?UUµjÛö¶vлäFÅ SvÒû{§›†=¼}#À Øb2ÝE¡Š¢ eYvWUU!Îàî‘Åúòhwˆ®B BHF)}]–e°X,"Û¶‰ïû“¦i‚(Šh¿çÕ|_©¤”Ę殚¦‘EQˆÍf×Ëe{uuU.—Ë‹Íf󇺮ÿHù‘s>çœÿRšÃLÐÆù(£ ;ž¿ñ¸ òC¾U“=v°‡Z÷ü"UL›çy^–åuÓ4×ô -}y4€;«±RÊÂqœ3)%/ËR\^^UUýöüüüpßÇVEÛ!jÒ¼¡›ƒ R–%äy.6›M“$I•$IVż®ë×eYþ9Ïó¹$„äJ©Vþ2”$àíÇ*o àwÁ<vÓ¹›ß;¿ÖëµZ.—Yžç/ªªú¡,Ë¥Fé>ôÏ ðVÑi×Ý_í'ø¾ï,ðžbü mòâ/ì¦ÓuŒ³¶m¶mBˆrç¨išA†Žçy̶mÂëvãÄLmê_rÎe]×¼(Š:˲J÷*'eYΚ¦ùsþÿoÛö•æü|ƇûÈû•0å³ W ¶m;švò¹mÛ_AðuEOÂ0œAº®kÛ¶McJ1R@¤”ĤBÑÊÏÛ¶­u`½¨ªjÙ¶íJq-„8kÛö¢®ëYÛ¶é/¬_|2yÜþ…‹îÉUP+¥–„%¥¬9çeUU›<Ï÷=ÏÚ¶íëÞaªÙ´ kÐQ¨ø:[sΫ¦iÖeY^qÎç°€¹”òšsžpÎiñî“Êãð"H…6c,òõm>¾ïO=€Ÿä&BfŒÆ],ÑÅÅEœçyBI)¥iEižçér¹Ì’$IB ƘaŒ!ÄbŒBˆ@5Ƹ’R®w»ÝÍŸþô'þ›ßüæ³ääÿ,8¡~bŒÑpx"”Òñˆ¢ˆ%I/—Ëäêê*+Ë2§”æQåqçQå”ÒŒ1–EQSJc QJ-!¤Ã·ÖÚJ)µBl£(ŠÓ4µÖÚõz½Ÿ#'ÿÕs0Æ!cŒc$Š"õÇqœ¤išDQQÚ¿$I’çyºX,²<Ïó$I²8Žó$I²(в(ŠRÆXEQÌ£”R̳”R ­1f'„Ø6M³©ªêv»Ýþ¥ªª¿4Mó—o¾ù¦ùû¿ÿ{¸½½ýÔÓ2Ò_ :0Ƙ‚!x˜|Ï¡t0J’$ã8KÓ4˲,‹ã8¡”ÆQÅI’$iš¦I’äþó,ËÒ<ÏÓ4M“4Mã8Ž#Ö£K(¥ˆâ!„ÖzÙ4ÍÙýý}‰ʤ”åriBäîîNh­U]×Nký©§í¯àA‡"Ɖã˜&IÂÒ4Ò4â8ŽqGQ”ÄqœÆqœ b7‹ã8¢(ñ\¦i<,€<˲¬(Šl±XÄËå2.Ë’- ’$ aŒaŒ1 3‡rι…µvµ^¯[ŒqiŒIB´ª*ܶ-)Ë2ýõ¯}“¦iõûßÿ^®×k÷ñwÿqôY<6x8¥”0ƨ7˲8Ïó4˲$MÓ4Š¢Ô‹×Ô,Š¢Œ16Çq”¦i”çy4ü.þFEQD‹Å‚EAò„¤iJß¿_B€1YkBÈœ¡ëëk0ÆÀÍÍ Büäœü¦{.eŒ¡$I0¥;ç(Ƙ>iš¦i‘¦i‘eY1€@Ó SÓA4GY–±¢(¢<Ͻє$Içy- –ç9I’Çq Œ1Àú4sÊ¥Ïå0J).Ë2ÐZ»áž8k-BÀW_}å!v½^ó¦i~Rëú-F„Ç1^­VìúúšE‘cr„P6ò(ŠŠ(Š b×§^— ²²,Ùjµ¢Ëå’æyNã8öºn "„ƦúôµÄ¤sÎ[÷Pýú믋Aä;k­_@ÎZ I’Àåå¥þðáƒý§ú'¹ÙlìÇ^ÿTzU€‡&Œ1E‹ã˜åy]\\$_ýuR–e „ЂRšSJŒ±‚RšÁ/¢£ÁR޲,‹½o:¸G4Ïs²\.qQ8MSÌ{Ä¡884óþ“àú„0Æ<'RJëœón8çPÇ®,KmŒqßÿýv³Ùto ë½*À„RE²X,²ÅbQEQ Q£¼,Ë<˲"Š¢‚1–Ü›¯Çðà``±årÉ–Ë%)ËgYF’$ÙÓ¥CBö&|΋"us‹åèáûišÒ¯¾úªdŒaçcÀZ ì8ŽQš¦:ŽcýS]¯ðK%yž'«Õª<ëiU–å2ÏóEš¦‹$IÊ$IŠ4Mó4M³Þ¶JÒ´gÏdˆ-FqÓ<Ïéb±À‹ÅE’$(ŠF®žš°—Nè©â1†ëºBX¯ã°Ñr¹´ïß¿—RJwß´mûæ‰äW˜1F–Ëer~~^^^^^].‹‹¢(VEQ,Ó4]Æq|–$É"Ïó¬(Šdˆ±¢(¨çÐ8ŽqExàN`Œ!Bø C˜|ŸãÔbúáKO|>GÓïúq¢Àº.1ÆÈ9çŒ1àœCÞ‹ã˜þáø^JiŒ1oÊÉðàîà¢(â‹‹‹Å»wï....ÞŸ½/Šâ²,Ë‹²,WeY–‹Åb‘eY6D˜eY†Ò4EÞâõÆÑtr€{28Ïý|î;§ˆmJéÈÉZk;Ì „`k-TU¥sˆsÞt]§º®³Ç|ï—ÒGìÝ„ËËËâêêêòòòòúììÌWççç—çïÞ½+®¯¯£²,éÓðþèȡޕ™ãáȧ8î-hXøP t2ò:YaùË_BQÑv»ýáþþ~wss#9篎ð‹&„ 4MYY–ùÙÙÙÙjµº<;;{·Z­Þ_\\¼¿êéüêêjùîÝ»äýû÷8ÏóG~Œ+}ØéçÓïœb(=÷óc‹/Š"L‰s ¥tÖZ䜥XkQ’$øîîÎaŒQÛ¶•”Rc^ä<€K‹EZ–åÙb±¸Ìóüª(Š«Õjuõþýû˯¿þúâúúº¼ººŠÊ²DqïMȧÛù‰ŸÓ«¯=&.Œ1äyή¯¯„¬µ¥ò~4B¤”t·Ûa)%´mÛi­_-âõR€ñtÈó†™_0BSJ£!><& ʲÌß½{—]^^ÆI’Œñ_MÍ×OamcŒ!Žc(Ë’9ç J©O3:k­8ÙE8çúþþ^ûí·ºªª쥣¡J1ª(Ò,ËâÅbåyN)¥(ø>¼aõ”ÑtŒëNÑͯÉñcH’#„b眂Îg·Be™B(„»½½­êº–î…“÷R Cæ†0Æ"ƘOÄ3J)&„¼‰ž£á¼ãK¯ëœ9y±X°«««Å`lSJív»uI’<Ï¡®ëm×uÚZûì ¾”ƒ}fŒÑ¡‘BNˇ&ö© ÿ5äT|©5~ Ç{N>;;‹‡JQ'ÃO^.—îêêJcìýý}ݶ­|vÎúYß&+ˆ57ÏeÛSDçSã˜{ïÈ~ê{/¹Þs)¼&!eYιȳ€Þ}u±1Æ`ŒmEÈZkŒ1ZJù¬æK#YhȳŽ-Cy)AžuH¿E’ üþs%Ãtܧpü!ý; ¿ú8;ôýNˆ1†pÿfŒcŒ5Æ8°`(¥ÆZ«8ç­1F¯×kÑuÝÉfõ‹¶Ö"­5QJçö¥9þf†BþÆ^²òOM¼•Oý±c[ÄAñ> žBu„¦µ^ !Æ9«@I)…”ªµÖ™¶å·o0ôL†Áàâú¾§"QÓ‰<Äés“õÑzª?ûÙ'?v?sï‡çó¹lJ)JÓ”¬V«X)å”RJ)­´6”ªUÊ4­Píͺ«[E;Ýíا{ >ÊÈ"„ì‰äp•¾|,‡>wA<÷ûá§÷?æÞ1p*ò:ÕZ‹²,ëÕ*â\”BtZJÉ»NÖ¢ëªÅê«íê竵ÀßñÝÿ^©ööIeüb?xйG8C>ôúÐï^‹ætë1iqбæuêÜ¢žT@PŒ7ÆXèÝçã (MSR–e¹(8‹¦iË8ŽË4s‹Å*/v oÛ{fT¯§Ò³öÜëã©“-f'æ¥|..¸)·Nyž?¦?¼v`ŒìpùRc‚Š¢ Bˆ¨ªvi±œRPj ㋘ÕFšÀ“õ·Ï8;!ëàdš S^?em¿ôõÜ9§ú=|:ž#zt31cÁ5üîÃÿ¬uõúÓö PǦ)"BR„p†‘Íér†»#Kàz6À”R_ÑCç»›«—úNü8ù)Ñ;2¬¢ 95üÍÜ}†o;fŸ0"”`LCÅA‚Á%ÌÙ„‹†èE"z8 ÍXþ©S9÷k;|ï9¯çÞ?Ä‘ó@ÌsªÖ†¢ºG{Ú\ÂÁk¦E1@¸õEàNâ€gìM{k­»9=ü9Ò ‡¬Ý©î A{?üíKÆ.:×8k¡—Úˆ8€ápÀâS¯ò+ÚÖ)OG|æ8èÔ×ÓI9ôz&4û!K7HÊÏêÔ×ZÜt}g@àÁuÁ[qð»á9ýõRýúŸöÐä…z4Ô§SQ;µ|Ãû}͹›ŒÓ±h"p!gr!°CÿâÓôR€Ýà"‰ŽöÀ*¥@)õHŸžâ—úEåϧ”Î9´m MÓŒ»É›®= O*%¡iˆ¢Žlâò|p÷ Î!–äýKdÓ5Ü&ÅÑs½ÈÈÄ_è {#ûÍ©úøT.¶Ö‚”r< C8Á§žÏBØívpwwUUÖÚ—×@š¦Àƒpk­5l·[BÀÅŤiú*œüh̽Ãä–€ww€wk@úx/ùK ÄôXó|,š¾?µˆŸÒÑ¡xôœ&„)åȽþ󹯡 ôœÎ9‡ªª`·ÛAÛ¶ µöüEDQI’@’$Ç1PÚOŸC×u#'SJÃê7øÈH j³±Yƒ‘ÇsÂãï7èÐcO…!§û¾Ï]ׇסH»ŸJic mÛ‘s•R$ ,—˽–VJ)Äq qFU?}HÎ9ìv;BÀjµ‚$I^>¹¬zRi´Û4°Þ6 Õñ„Ò‹ž\ü‘Qð÷ÎqìTœN_{ãÉ‹e¯{µÖãkçB Š¢=N›ŽÇŸ«m[Øn·PUc€R yžC–eà÷ÿð‹†1æ ÷ö®TÓ4 µ†Åb±'q^­¤T°ÝÖh·©A½ÀS`|¹Ît`‡‚Ïñ“çŒ ª·ìw»TUmÛ‚1¢(‚Åb#ÓkcF®»»»c ,—KȲ쑈ÖTyƒ+êWNøkí¨‹ý"óÑ+cìÞ‚;f\='•øððyc‡¸È^9ÐÀEGÏóÑÏ­ÒS‚òÇtÒ§ûóù‰ôâÚ[®^Dí¬êéBñ.QÛ¶¦) ûKŽ× %ˆÿÝPÕÆh@B0œ¯_psspHäžîð+@Îvç¬r nˆ5€y7iä0D8·ú”~šr÷4R%„ÎùȹŒ1Ȳ ò<‡¡ƒo{ýÂB¥¢(‚®ëFC-£w—üâÑÚBœóí±Ç}íS3Qsá×þ‡‰µ(2ÖÜWÿ' Õ€^¿ÀsÁúc¡À§8ö˜6ÕÃá¹0Æ£Š1†4Ma¹\Âr¹w”r‘Rjô]»®)%0ÆF. ã*çPJÝlÀ¯—-ó Y†«“gÍóø9 ÄZÓYè¾sOûb€õb¿?ljtÓÑs×ö®Pš¦P–%¬V«ÑgͲ V«œcì¸aœ:´€=—†•ØŸÛ“µ~3SÆôâ^Ƙaö‡-‰_ ð(pÈþxã|ðTŒ¸ܧ8ø˜¡õà!À¡ÑRJAžç#è‹ÅbtwÂó÷àØÑÍòâ×ëäP‡àzQ?õ¡ýo»®!:B‚s´6³À>`çFÎap@çÐ[äƒOÐc7éU|èït"޹&ÐËËËq½> wÈ ÉZ;Še/¶»®¯çE?clçëÅr¸[ü”³Cѯ”‚ªªÆ0g–¥Ç}–ÉcgÚxaŒüÙGu`/¥÷[kC.ö<«ƒ=`ÇâÐÇ@gâÛ<–S=e’];L Û•áõ|àÄߌœ_–%, Èó|ÌBÙ« äFËéà8ŸH“ööM ¾ýÎ(§ÎÅ«E²Bnc¼‡&xz3nðÑû¯I>ÔéÁö™©®ëF°¼^N’c{Ew>²5]Øè¬{ê½9äÀbë,í‡OûዬCï{C}ç'in‚çÎ7“~ ¨ð+™à‡@CCƇܾa½hößõÙï§"„Àº¾º’su]Ãn·ƒív mÛ‚R}Ïwò<‡a缾["ÔÙ¾JD1.ïr…¥¾á☓¨“ #ØÓ|±êMBõ‘•“Ç:ØÓ!]|ªØ~Ô :¸"` vÔ¯‡ ©1—‹& ”‚Ýn›Í6›ÍXB¶‹úð#!â8BÈžF¼<ÈMÓÀÝÝÝx¾®ë`»ÝŽ¡1´9úÎá<8ë,8ëÔŒ u#‰ÐÓ›~À³àúIœ+·™êâçZÑ}Mamzä\4ó»Éä9p ¥†Võ†Óz½†ív;öûøò4Ù£÷~±jynö*&MÓñ3¿p|ýf³δÏxïÿMm(À ¿9 9˜pnx„i»9×é9‰Œ1Xl÷üE‡Üȱ>I~,ŠäÝÑ ¸½¹…õz UUR !°X, ,KȲl¯¦KJ9ŠÜ¦iÆQü˜êeßôæÏã9Ý7¹cÆb)ÈÏìZë9åhx[Áõ Ìe“ÂÏB°¦ïuæš}Èí[Õ¸éï§‘"­uß&ºÝÁýý=ìv;°ÖBEcVèüüò<ß³x…$ÉØÿT×5l6›ÄiÙM!{sâ›Ý¼¾÷àúßÌÍq8Ïà Ƨnùò*~ð¡í‡|(Dwl`Á‚ ú$v§ÂdÂíí-Üßߢöìì ʲ„¢( Ïó=wÆ‹a~Q€‚ív ëõ(¥°Z­f+>|ûjžç£uí%€1š¦}eß‚ 0z½Yè Ü?ΈRŠÑ‰¤ú¨Â÷)×ãà©+4þ‹´—ð†@O,æc ÆsÎv»9ÐëÚóóóQ,{#ÊaÁ?§7œüNJ©ƒv…7Ȳ,ƒ,ËF˜s>ròÙÙÙlÃÚ^,¶= c\oð0i؃mõw0l8ù” ȸ¶°Ã{×S‹QJ9rÝn·€««+X­V£û–݆JŸ^Œãîîîöz¢¦í¥þÑ=Ø> â-lŸ–<”:í%‘}¼Ϋìó”¾kÊ?¢mÖA÷c ]„SÄt¿–Ñ£<ë\Ð`ê¶xkÙ9Y–Ár¹„²,÷êÃ.\õ©çîé0s‘½°1ÜßÃïÞã#e¾èojlíðPpŸ…ûÕ¯ÿ+ØívðáÛo¡©«×8\WhöÏߦ8õ}§ÿÅö!w!L¶[{Ùœáðºn½^Ãíí-H)Ç>&ß.ê¯ÉC4÷jš}ˆ2äX¿¼¸õ:xštñ¯=À^ZøÅç#_”2 䈜qÎhã¾þù/Üýßþw°Ûíàþþ üñþá̓އ‚¾ãX?Ò4¢sà'WÛäJ)Øn·°Ùl mÛ±1­(бà=\Œ¾…%4=¸LßÁ0·g´µÓù€=ß9ÜÓÃoGÇœ£³óôà&õ’²(Køÿò_AUíàÿø_ÿ—£sòš[8ìùÄ”°):¬Lô¿Kt‡“d­Á86†éÄXkA1Šf9ȋذØ/Dÿ™/Ãñçõ†Z²oM[ˆsFdèN…ý±Ð÷2=á8Ö9PÆ€2Ooòö±è=x®&ëXµã¡â÷ð\Ó~àpç®6xû…¯ƒöñÔâ÷cö\ïC7M3f–`ÔÉ¡4˜Žqz0úO>}§xc,)‘ÌÒí£"Y؇{Ù#tH4ÏÙ' …ÉtŸ}9öýi™«wc8ç`Œ÷µò hºãì£lp­p/rôâ8l|›S%S]<½ï°``nŽf&ŒµÐIBª'Õ×K#Y},Q–‡âÝ@TyŽ?sÎ=zàÅœx{&¡<êôJ)¨ëªªÚK„bq.@37?‡nšf mzƒ)”:‡ÝÇCYµc¶ˆ c-´¢.:Ðæ-8¸ïe´#&`&£äuÛô¦C7êФ†Ç±ðåTgûÝs|Ô(,úó‹æÐn´sàøü®¯ìpÎAžçPŨ³§ Í<íó•cŽ7Ñ[øÕ€ºá õñǾ`,"È"Œ¦•ö.¼ÐÅ™¦Æ¦•—Ó(×);ÅÎé^¿‚/d÷úîжÇùþœ½ÅÃbÑ·‰Nž‚^w—ö>ò¡*G¶ FˆP‚”tèÇï´ÝÖÐñ·Ø C``€€üÐN€ë Hà…Ü–§‚< ë†!ѩoŒ1DŒ!ÉúÓØÂz³†¦zƒÍHv`"cmd­#Î…UsàN›Ë Ïd¡ásÜðÿ>,nP‚ï}Îé¤OÕA¶¯ÆðÑ*ßÏTÅ, ýßé¢ %Qx>/Yüæ¦>£tlQ#„‚„p[ÿÖÕ¸nß`§"eU¤Œ%v@ôéÏSÝ€æ¬Úéûád† …‹Àƒä®“¦€†çw°‹¢hìGò•Nìô¾C}ù­÷¿}l;˲ÙýèᔂmàÇåÖvŠî^à ®ÐBhú<{xé.>)0 «ÔôtLŒíû•] ¡ñ%„Øãì¹§¯LAˆãŠ¢Ó‹qïéöC¹iTŒs>VŽÄq<úæSK~–à´j¡ÝÝ»n·xUþ þ{rEpü1‹w1ÅQŸ˜|ªç)îósç¶å?$ƦÖjèÓ†ì êB÷&yj€9çÆf³Õjççç°X,ö@™Žj0úë{_ZQA–¥ Ó˜vÿÁxô…;åàŸ·ë-@õšVt€ÿ¹ ˜|GY‚Ýþ£Ýæ»ÄûsŸ¾7µjÃp_8)!ÀØKć"8Œ1‹šy(Ïóqc5_í.ŽÐiÆÌGÁ¼%îX§Eé£ÐíÁù@½1k‘µ¶ÓÖÝv¶O>]ö™OUð#L1Ù×êŽuïSZ{Œ|,‘?ŠH7X s»̈gË ]®)HÓÅàAÅïtóp1…9\Ÿœðà†±ê§v–õçõ¢Ùç­u@i”Æ€GƒëË~¬ÁÖhlL¿EÚÓô<Ö¨B1„@*ûrC•ë ö,èc+Ó ÿŠ$Os‹üÊŸëa!Œý†–ê´Í54Ú|-´7€ò<+%ýø§îÞ1µáãâ>ðB)ƒ¢XŒ’é½íÙóâ ßúÃZaAí+l@uƒäÌþV#7O@žÒ^Ñ:<”á„7{ àC g.ìè¹Ì‹Ü¹¥_¾Ë»/Þò‹bêÃÏqp(ž}˜s·ÛÕ˜E‘Áåå ÎÏ—ãô¦ª'œ©áÆ;0Ô"C-:±íy[è€rÒ!§²Ú¢Á(ñI†Ù:¬= ƒþÙ±:2è§=¥ú˜Ïì»=†/´¶ýÆgáÖ…á&¤!ç† êùÒ_E©”‚år ———°\. Mcè"×[P{aI?Ö`È ˜!Š:eŽ^ °Œ4 Uo0Os“8]0!†e¨SpÿÓE‚<ÝŸ#ŒTM#n‡ô°ºøÎ‰ªª ŽcøÙÏ~ïÞ½ƒ$Ik¿/¡›O> 4@0AIã8Š &§•U>`à˜s–ö¥9J*§¤r]×Y)¥UJ¹°‡v6× µÇØ ´{ú~¤)‡Dôtë£càNuó¡dü4.=õËçÆç?÷†Uø4—(ŠÆZ°iviÎÍ‚‘µûéÁ}Ù,¦” SûŸ÷ìBæÀ.­Ó…¶ ++•4¢š ®Û¶5B«µvÃ`÷ö¬Áð)ØFa¶üub|=å{œ<ò±÷c"Aæ|ßéëði.›Í8çƒßÛG¬¦~zxgáÞœÅã«×€ý‹uºÐFv² „PBpÁ»¦iºÝn'7›fŒÑ8Ž ¥Ím©Hm3i»)˜‡‚ñÓN¹¢ô9§Ç! §Riʅι±Ù̃‹‚²,¡,ËÑÍ 3Hs–¼_°_?*÷ ±ßà[ø?Ì™Q<çm”DUb“š·¼©âª½»¿ãŒ±¨ë:¼Z­¢²,Iš¦hN y@§=¿O6zO€! Þõ-!a½ñœ6åDZ Mhh­¡®k¸½½…ív ÖZ(Š...àüü|¯ŽëØØB~³—i†r÷gôÑ?›ƒá;£?uTF[ñƒØ‰FìÚŒ²¢CQ<²Ö"ÀišzNw|šé)zêæÀEÏ=òÍÚÓßÌxª8Ÿ.®ððúÔW}x£ÊEQÀùù9œÕœs‹ll1· t£]rz+ü‹²IfaL÷ë®á9߈¸± ˜$˜àcLBÄ9‡€0P0øƒäwŽ£üÿ}X‘s¾W<Ç)O_s¿ ß ª»»»1 ±X,àúúzlh 7Ÿ…ús¤ÔO’ŒÓÞjw`Í©aŽ—&ü8³5ª#]Õ,šÒ‘Ø*Ka!D`Übx8”¦)nh4ÄæÀ>æ[>edùnü<ÏǼ°o¼ÆsTŸ4ÀC7¨¶ÛíX¢»X,àòòrðy—ÀZí÷„À:„À;lÕ\Vk@8…¸ü;Ää4ÿœ9œQzÀ?Àÿ ÿVŠí¿Øþ Ïµ54v€}$k B(B!¿¯ãTÌ>7W|(ÐP¿µïÅÅh­áææfØ‹í§\¥§¸×ƒ+„ØÛúAÎ9(Ë~þóŸÃÅÅÅæœ½O’×±€0DQ išÁĹ¾iÄY£Áj4¾B‹_ü7Hçw°ûóÿªú¯ °€o¬±F\ŠÚ•!†0@H"„ªÁC¬ÃÁ"Œ%I²ÇÉCÒâx‡@Ÿëáµ’$³³³1Ðà[D¦ÖêsD´×µ^"øø²ß ëº±‰üÝ»wp}} Ëå%@ÉÃnò!§öð¸á ÀÈaBà ¢(r5ÆZcŒ5Ú8£ %ç€Db8FWø~àþoçä;Ùî®wì…Õx®ûb!òœŒÑ˜M"ˆFû½Lsœ=ǹÓÿ÷[ë/ÆÙ}XJ¹×LvÈ‚žãXŸ4ð••MÓìUY&I«Õ ®¯¯ÇÎÅ$IFaå!é÷u€1êS‚Ã7Æ€8c­Ñ=Y­µSZ»Nl\¥þˆêjƒ´®Š¾¸€¿ØÎê.î*”  ;!݇Y¼¸Ä$sÎá8‰&xÐ5£Ã-”!³›—ßñ•WWWàœƒÛÛÛ±*Ò?¡4ÜDešm Ïî¡åÛW|ÛgÇ¥œ­ÎàââÞ½{Ë岯³¢ŸÅhHäOö®o=ܼÖx+ÜfSÙ¶ZJ¥•RZk­¶VÛ“¨‰7`¡> Ñël£TÀ?‚“DòÚýÅFÖ`ŒQïÃ=ÜÐÀΓZk{?9Kbzò­¡.=Ô-à)MSxÿþýØIïw¾ñ]áF¤áF*þÜa%¦7ØFÀ0†²,áêê ...Æ^ã(Ž€’A×ÛÂ0WÈôQö-ÝÎ݇ï´ß~óYo¶JˆNJ©¤’Ze´#•åÆ!ºôcsÔ ~€¬,X%Ø¡¥”…“ˆ»Ð‚FcD0ñœî{œfÑ>Vœ˜R:úžawŸ0ùJËi?Ò´üÇí« ý‚Y­Vðþý{8??‡b1lpfÝCƒ×yzS¸ðàí8çœ1ý¢ª«ÚÞüx«üñFî¶»ŽsÞIÙ ­Ug¬–ÖpíĽ±sî­z“‘sÎt²k¶Ûí÷ÖZ=qœ¯BïJ!‚ Ã#¿™É©t Àþý$Iàüü||Ρ#ú­“Âʦ9b_çû{ýnu~O4MJxìàúD@˜ ^º\„úÍrlo&ƒ”ÒµMk7뵩ªM×4;Þ4•àmÃ…\jÉ5Hn-Í÷ÆØÊ4ÇçéÕ0ÆH!„¢KtàL‡rØFã>Â…C~ò)Vôsö}Á$ï'ûNA¿?´¯×ò¿óÀ†Û/øßú²Ùýëº> ˆ]® ¿çœ³¾-F§µvRIË[nw»¹½¹U›Í=¯ªMS×»ªi늋¶¯„àuWwÜÜcÛ§]Ë7ÀZk„õf³ùÎ#pý„8€<ÉœsÈOÜ!pÃÊ\Yíàa¤Ë—eÙX£ìÅtXpç9Øøw¨¯çvïçø/šÙYgŒ­”“]g9†snZÞÚ¦®õn·Ó÷÷ëîææ†oÖ÷»ªÚmš¦^ó¦Ù´u³­wõ¦­ÛZyƒàS `ŒQmÛîÀBp/‰†g²>Á9çô±k ”>YŽ;âS¯}Õ†O¸ÏmêíiºÿÕtɱkaîz0ˆ^cA[ ÚXgŒvFk§¥´]×YιiêV5M£Û¶Öu]ËÝn'·›­X¯×Íf³Ùìv»›j·ûq³Ùü°ÙlnªªªxË;3׌üSä¤צÁ®·z5˜a»¨!6mõ W…¦iÝ4®ëVµm«ZÎ%ç\¶‚wmÛŠ¶iyËyÛJÕ¶ÂUBàŠ7m%ªM³»­«jWUUU5M]qÎ[­µ´§n3ô©ö¤”â»ÝîBÈPJ!y‹z`T F˜PFKB)‚ÎuP&%Ä4~ö5UgŽáIè‹F­Ù9¿e éPJ¹n0:!ú¿]g†C .4ï¹U6-﹕ Á\t¼åmÛÔM[ QWÊî*‘ÝïêËÛfÓnåÝ7\Õ’JmL~6=˾ÜOð “«ÁŽë›ÈûF˜P‚XÄb–0åJ’¹Ø®Õ4âu(Ž}(¦Ýdž‡ï‡Ê~ ÛéAüv]g…Üš¶õF’âúTvBHιh9-¢åo¥jmšp]“EU;T57ßÔõúv[sq/ªmc¶7Êu»ç÷×~Ž ;Îyëœû`Œ1!„1Fa‰RjeEš¦p¾:gÌ2D“ /é7öŒ0p€@D;çúàC×¹ÞG冷­i{@5ç\‰¶D¯è8BˆnЩ½nBð– ^sÙì Ô[UÕê«mý³_mÅÝúÝo;ýÿ(µM¤1Ö€^¿:¸Ÿ`ÕÛû;Ú×ó8çœÃ»Á}q>(Qojh³–åiŽe>¹»žk[ñ€†4ÆÅ‚Áúuf(ÜWZ[5¸6œsÝÔõ Skéuªè=§ .xÇE×5B¨¶ëlÃ%4mGÚ¦µm]ÝðZ¶mÍÒ¦®¬¬Õ涃õ…æþÍçø“ ðñº¿¿ÿÎZ+1ÆÀC”P ”:Ƭï×0€Š(£”‚¯°×Èׇ-'‡RŠnØ}ÂY èÝ™ªªTÛ¶šwæœë¶i?µíxÛ Î9çB´Bt­]˹h„m×ÉF¨A«J•»­¾¬ë ñã¿“²ù“6˜ÿQÛø5¨ÎÂ݇Ÿd~?9À='[kw0”â0–QæcÀ(Bžƒ „Øùù9ʲ MÓ|@Œq÷†PŸ¦:Ós®íºÎ6McªºVÛí¶«ëZ¶B(ι÷S=µ4¦6€k‹i ‹³:*Yƒ,æâv×Þß|ÓÜÜíšÊɶk¿³Nl‡‘ÝýäsûY `Œ±mÛ6···ß[k#ÌÅQ¼W¨Æs¾ÞÙZË...PQãÃ"ƒBo°9„öÆpœs[×µáœë®ëL'¥‘Rê®çÖÞú­kÑ´m×JUtï„h…ìš®“µ–²Êv´\nÓ‹÷»Åõ/êøüš»äLýéwÿ^ÿþ?üFßþùïµA©qN;'zPCúlè9¹®ëޱ‹!¦!ç„scG0  .Œ]çyŽö÷ÂÒ µ±~k­µB¸¦itUUªiÅ…]ש®“RtBv]× ÎÑu­ÔºÕÕŽFΗ»Hj¥T½ÞlêµPÍÒažiPuvsÿ#Ô»@‰?õTŽôY Ð[×5ª[“›ïº´“ÀÁEÐгЬÖ:qÎÅRJ2Ä“ÖD¯Oç\ËÞ½éýÔ®Ó‚s)º®ë¤ì±í¤è¤äRv¼ë:!8çèýœNÉV:hq^Véêzsö7¿¬ÏÿæïÚ»ïþÜýöú7úÃ~§YV–æ^U°þîOŸz ÷è³@I¥u¥+ L2 À`3n•h­5²¯F)e—Ë%²ONkãúˆRÝ5M«„àJˆNIÙ))•”ZuJ)!•n•R­ÔŠKci]+­m¥q­¢ 7Ë\ðjÇw¾n½mrƒëŽe\G™¼ûðÁþðí·ðß?/0çè³j÷{mÙ¶Î>|/R9p[ìŒ5V)åƒ j»Ýviš2ÆĶÕÚ(!:ÙuBtÝÀ±R)¡µáÚ˜V[S+cmM«i$‹k%ÊËsN/ÞwÍwߨ¿ûªþÓ?*úûß›¨øL”çV¶-¬¿û󧞥“èóx¨ñÒ\›ÊT5H€(Š¨Í¬ã¢6¤iªªª÷÷÷c,¢”âÞ/FÆZ§´6R)%º®ã”¼ë4—ƶڢFSÚ¨4®uZ4:ɸêD+oþÂUwÃM–u˜KY¬›»[³¹¿·õý=¼½ÏúôyìIÀ-ßrþ|øÐmwÞœ«år©ò<qŸ1ÆrBHD¡a‡2뫅 ­5—Rµ¢ÓèLÓ\k’Öj™6òê]-ñ_pýÕßùÝŸ•øwÿVë?üÆ8Æ,JR‹ãÄ!ÿñ§ñWߊ>o€--´©Q]ëN[­5âœË,ËÚ8Ž·Œ±!$î›Þ0 „´s ³BkÒJW]§jÞmiukHʵà\QŠERãHé>XõÃ÷`o~øÔwüêôqIÖŸ˜0Ƙ1GQTDQ´Šãø,I’%¥4Å“¾2§œsÖe-ÄW[ÑuU×ý^hs'¢ÆE‘uiblšY—dΉì‡ošêãù™Ñ_Àã ¢„œ1VDQ”SJcüPskœq”1¥èäוRŠkõåÜÛô?gú«ú.‚¢ç’ T9fþœ£ÆÚT[ksµë­·/ô…¾ÐúB_è }¡/ô…¾ÐúB_è }¡/ôWIÿ‹xeX<¦EëIEND®B`‚pommed-1.39~dfsg/gpomme/themes/CrystalLarge/src/0000775000175000017500000000000011571653265021300 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/CrystalLarge/src/background.svg0000664000175000017500000000403511571653265024142 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/CrystalLarge/volume.png0000664000175000017500000007700011571653265022532 0ustar julienjulien‰PNG  IHDRÀÀRÜlbKGDÿÿÿ ½§“ pHYs  d_‘} IDATxÚìýY$Y–ç‰ýî½²‹®¶›¹‡‡{äZY]ÝÕ™ÓÁ°»Ä3ý@€à A€|ã§ øBða¾ÂÌtW5ÑìΨšªŠ5cñÍvSÓUv¹÷òATÔÕÔÍ—Èp÷ìòã×MLDTôüÏ=ûô>Ðú@è} ô>Ðú@è} ô>Ðú@è} ô>Ðú@è} ô>Ðú@è} ô>Ðú“$ñ®/à½OÛ"wùBL:‡TÃ(Þõ…¾1rÞõ| ÷‰¶ü+…ø¸'¤8Óµ–[M°Ù ö•óç[ž/¡ûB`µ®Fe±ˆuX›,°Ý„ÌÂh¯?¶H.O)E ”ð¥ns_0ÆÚÊ[m k)„$QYc $ÀõÚqß}À¤Á`Àoû[k­g­uiÔ%„J)ãºníy^éºnþäÉýWõW¿ëKoH ¤‘竽nÏùUËŸy¾òËBOÇ×â^š~ü]w¿²&?±Æ¦ØGþh¯øW> ¤dÇuÄï«ý0rv]WöøÆØª¬Ì¸(ô(Ëô…Ñæ\*y†eR׺°æ¡†ÿœ¼õ¯ü­IzHcŒc­uŽŽŽÜû÷ïGGG¡µ62Æ„€/„p„J)e<Ï+<Ï[¸®;v]w~||œEQO§Sªªz·_Ìâ€=íÁ¶{¸~´»Ue²Çýîùi/¦Û2OM +sem¸€Ë \ HxàÀ¯©ly:Š;Î~Ï=üƒá–¿ENßQÂ×µ©i=žM«Ñd\\ÌçåIžëGEaN®¯4á® °ºY ÞžÍñ­Ize­ 1 †a¿ßïµÖ``­íXkC!„Gs¯uY–™Öz”çù±ïûOþò/ÿòq§Ó™~úé§öââ]ëÖÖ1ÚöW·öÂÎ/þbËÿó¾+ﳿ¹ÚýêïÇòñw³àú"Û/¬}TWÛçØ5ƒ^#„Q»5t]{4Ürvt'>|p¿Ûûè£8><Œ¼áÀsC_ɪ2j<.¶/.²îéIzôøÉâã‡ç÷./óï¥â[c÷žXóß^Á^ ÿÞ>[aÞ<}ÀKh]§·ÖJcŒü£££àþýûáÑÑQl­íczÀ@1”Rn+¥Žãtlj”R¾”ÒB(cŒ©ë:¯ªj\ÅŽ¢»¿¿1æéx<žcªw»_*±íGÎÎ`7Œî÷äýß ­8Rx*rCG†å?TÝñeÞOfò¼,zkEí¸2p]Ñu=¶·¶ýƒ?é}ôÉÏz[?ûYß½w7–{{ƒ¾g#_¡k#fÓ2òèü,_öd¤ºúÛYçú2 ô¼ëÚª¯1Y Ÿ–€}[ßø^Bk’^Zk}cLØ ‚`¯ßïh­·­µ]kmˆljÃ0ìÄqôz=§Óé8AHÏó¤”REa'“Ig<wÇãñvžç­µ; ¼ßýîw߇Ãñ§Ÿ~Ê»Z ¤¾ªý¸ïíwwC?Þ¬êx6úüìŸnÓÙò½½»ñàÑ×ÿáW“ÁÙÓäþìºLŒ¶:Š]¿?ðÂ=?¾÷ ÿúÏ·âûzîÁA(¶úQèØÀ“¸J ¬eg/ä],*»ýqß-¶ãa19Åß]Eù“Ì7‰N¨lŠÅoM"ü£À†·†¥·FÑxlÔR§÷îܹãß¿?¼sçNth¤üŽbOq ”¸®9Žã»®ëAàu:¯Ûíª^¯GÇ„ah]×EJIQŒÇcÑívƒ0 ;ãñØM’ÄH)Åááa ˆñx¼0Æ”?íJà[ùQäƒpàí÷ö£ Ú ­ làÐ=ˆP‘+ƒžïw·C¯¿uŽŽ“íù¤(¶&Šg0ðÝÝýлûQG=øyƒƒˆ^Ç%ð¥q„¨ T ך©pUû"I]¿J•cÆÚ·©(1éÚÎѶäÞ,­Iva­•KoOãÇ ­µ=kí0 ÃÝ~¿h­ÝQJõ”R‘ã8¾çyïûAÇn¯×SÝnWöz=DZ\J|\×µŽã ¥DJ‰c ÛÛÛöàà€Ñh¤NNNz>üùx<ö´ÖÎ`0—+ÁèÓO?Õ?ÝJ°ü7JÊ¿èºþþAÔw÷º‡‘ìFÔ®"5 …„È¥w§C0ôÅÁϪÊk_WÆÖâ*);;;íù¥ëºÃããã?ßÚÚ ûÛߺEQxRʧ§§§óO?ýÔžŸŸ¿¡«Ðä]D>ÊÜŽ× ît•sб¥ç`ô3Ý~SÝÙd~c•纄§|—Áy ÉRâWvùáÓ¯oB€£[À‘‰Dàƒõiò!þq`Ík#–^oy ­µñÒk !zJ©í¥ÇfgéµÙñ<¯ô}ß.Wz½ƒÁÀ¶ÏóXãïÛ\¼L§½Î¾Ë}€RʆaˆBc„1&̲ì@k-:Ni­µB Ø Riøcî0°ÜqN_ºõ¶ÛõúÞvÊ­P™ŽG”zMÿçyug%õmS)0®/ÏñÒÓ³¨iXV[¨ Tºq iÓ¼¿ºM¢Ù”!››öþX§ÙÞNíÊ{ €¬Ê®ïûÛËÈëзÖöëº}ß÷ûaÆazAøAxq;N‡¥ÇÆ.Õ»Tmp]wå±ié‡2ù˨Õúñ^vìö3×uÙÚÚÂ#òƒOŒ1÷1w¤”žçmGQÔéõzn¯×sºÝ®DZ³ÔåoHyÇqV~ù–ñáÕŒx›äþ!ŸßF›û®ƒðEû{žÇîî.4©Ö>°7äÖÖ–úÝï~7ÛÚÚÊ>ýôÓéÅÅÅðŒX&Û—žÓwâ@íǪò‘­¿›6€Xº‰nüûW%L*XèÆÈ­, ós8™Áw×p6³L‹šy¹ ©.(ô”ÚäX RHéáªOŸNH^Ç\-B2]a¨@ÖÍ™ß<½XJ~/ÂY)^ð™B¬Àˆº®¥µ¶S–彺®EE9`—ùEWA”¼¾›Ð"áʾêÛlG}ÝÝ2t-BŠª^Jý¥jLÃèi 3½L_0Ë`4â?¯- |3Ò|~1ã«ÑC.Ï¿«¯!{ â/àKn¸¼5íþõoÄ;£¥äç“O>郟æyÞƒáp¸}ïÞ=÷èèÈnooÛn·‹çyÍýzƒÞš?†n[þÛàU´~¬ ØÛÛyž{ZëÝù|þ›ªªäÒ;¤ùaµƒ k;8r@ÏïÛaÕ±ç®#4©Û8qZæÏ6$þŠù-PhËU ¯kþá,ç›Ñ)Iý7pýüÕ<ž€(š"÷Ñ»øÙ^HïaÊ££#ïððp[ký@JùI¯×ÛÞÛÛ ŽŽìÁÁ‰ã¸¼Rß&Áo{ÿUÜÛ^ÿ׿›x#N@Çlmm‰$I”Öºc­½3ŸÏMUU¹çyf¿JÓ´œL&ö5¼CB ­çlÛ^›~è¡'ŒRV0¾ßêüekàš+‰m,Ô¦9<™X¾e<ŸsyùÅù×ðåwð‡ŽëÅ(o‘Þµ àZk‡ÖÚ#kíǾïìïïwïÞµ;;;6ŽãU¼˜Áß½L×çûc(X–Wv¬µwf³™‡ÎÒ;´øôÓO‹‹‹‹—/EBø¸r×Fî®~Õ 0žk+Tã·o¥ÿrЦñù[Ë3%ËÒ¼™V–‹…åëKÍFFùW”gŸaþÝ |±€ë´{»ôNÐêþûûû¾ïû»ÖÚ#Çq:ÎpßÝßßoÕžÆ{ÿ±ŒùªãU÷ªý_Ç.ù!ûº®K¯×Ã#«ª’@p¥”U§Ó¹Ìõõõ™çys!„.ËÒÞô-#Àò^ˆ×= ã˜í(°Ãã9ÏÒ’Í3¬˜~ýRŒm-Óާ–¯¯r¾9™?d¡¿¤Î¾Ã>™Àé{ÍüиvrÚÙÙáw¿ûøÍo~3 ?ó}ÿ—aÞ?88þüç?Wûûû¸®ûJÑçoêýB?Õ*!¥D)Õ¦r­µS×µWUU×Z‡ÃüþýûÙÏ~ö³ºÛíšñxL’´ãà_ œy—ÎÑÍÝá/ùóÝÈ~<¶`]…]&¬™ÛruZh Y O§–ß×üÝɈǓ¯˜”OÉ—˜Ñ)|‘Ãèš·¯Gïdã£#uttj­‡RÊaEѲÜú¾o`•6üVŒÌuz•Qû2©ý:¶Á›\1„ø¾ßª†¢ª*ÇZ;¨ªÊ©ëZFQ”J)â)0 ‚`©Ô@Ó±í~ˆz0 ¶èù=¶"A?°Ö‘¤ßLSn®¢y]™Æ^0Jáë«‚//Æ|?~È¢ü‚2ýFgðýâ­ep¿azW6€°Ö:ÖZÇ â8–qÛuÿ'¹áçÿ1Rÿ=oû7RJâ8æðð!„S–eGk}”eÙ_h­•”R[k+š¼¡ÖõÀnãˆm"7 ç z>D^“‹[Ž>4ïW¦Éç¹Ládjy86|7šñtú-óò3j¾„˧ðïSø‚Æ)õþÓ;ÀR²+k­k­õ•Rmæ&RJËš_ÿ6&ûcU™ã¯Aüá¥ÿÇz“^÷8­M µišºZëÁÕÕÕý4M1&[z‡'É|>N¨*€ÙÇû ‚€­b¯I?nZ½Ìu(uóØøø‹Æ™álQs<Ëx4žqºx̤üœ*ù ®Žáó)|eÞFéâÛ¢w¶ÐÄZÀB¸®ëŠ6=ùǦ*¬3ÚK/âàz‘Jôªýþ˜óýPZ¡bU_|tt„RʳÖnYkm–er0¸¿ûÝïæ[[ýyS[l}°„î!{qÀ^|wy@—fVü€I&˜T–I Œ’šI¾`’Ÿ2-¾e¡ÿ@)¾ë3ø÷ øÜü©Hþ–Þ™´í´f­mûfÊ<žç¼4/²ÞFÛmçÕ~ë¯_QgðÜû/ÒÿÛôŽuÕgó{-;L ¥”Zë@J¹suu¥”’U¿ß#íãÇóÉtâöÊ*ܳ³Ía×ç c œgjORZO-§³š«¤dZT$UŤ(¹JJfùœ¬¼¦˜S]|K=ÁŠ‹&Âûµ³Áï†Þ™ dŒÁ#hÚˆËêŠ|s¼Ö>o+¦ðc¯õ6·ÛzþSKm^”ã8Aà !¶®¯G?/ËÂFÑÞÖáÁ¿ù*Y8ñÅÕÎvª—ƒøÎ3ã÷*µü§'_\,˜æ#²zBmg”vB¡¯¨ê+tu…9cÿC‚}’.#¼æ}‹ð¾.½³`Yù´,ZåÃߺï‹$ñºd_ÿìe`úcT—×õ翉ìÑõÕî¶ïô¢•eé²Ëúb™e™o­ÙGÂu…Ól«þ¶'Ç•³›õýˆ­HÑ šJ÷Võ¹Lj¾¥|yyNª¿A/Nár éĸ†zÖdg~ÅŸ’®ÿ"zW+Zk´ÖÍÔˆ¦]ÈÅ/S!~ ýPÀüÐýׯq3«u“Ù77cÌÇöy†ìííYc´“eiOÊùG®[+¯ëYi¢]v;>‘+qD£úä5\¥p¶¨¸NÇ$õ÷ù{¸~Ãò‘ô²[7.Îñº¯ï ½3´[[tþ2‰ú¢ðëæþ¼ÉëÞdÊ—­6¯cL·:ýí©ÜvY¸Ìƒ²k ÖŒµmЦymŸ¥<Ïa0èS–…¸¾¾|¿Ø¸ÖŲÅìÅ»¼‰4é'3Áñ¬/Sm6½•úë@¨kC’ÔŒ® ÎÏsŽOsžœ<¾,¹škòÊPÖ¶i/ˆÅ–ÀµtC8Üòøä(b{ R0OC¦U$*B÷cË húï&Œ2ä,INfÔÿËüý\¿ãyM? ½/^¿‚ë‡Ú·­›Æê«^ßöþ«<3ëïmJùu]¯^cM>Ë4ãqÉÙEÉ£“œ'çÇ£Šã±æxfPi¹ÌLnNH« ¤¡›Z®‹ZÌÊ‚í®ÂS–ókÅe‘†]ên$ˆý¦O¡a’ÃuV3+çä³1úÑ NÿQ0?¼?xÎ ú.«¾^x‘·0ü‹¼5›ž™u¦ßܧ5vï˜åúºä>›ñÙ·)_Ÿ—œæ‚EàQ cĽ€­ÈÅó®'›‚Ö"*,jT^!³Š³´äéeI>+™¦– “÷û˜NØøþ¥„jÙ«g’ç$Å%e}‰±ÿåLÁ~ z_¼8¢ú"ÉüCW†õc¼ìõæßÜæß´QnsMn2þºªsóü‚²0\K¾y˜ð7_'üÃIɱqXÄÎ^‡h/¢¿ÑëûÄ‘"ò¾+p-ȶ#CRRL æW³ËŒÊIQ‘!ö<ì^´R;Ë,øÒ4™³¼$«®¨ôöÞ ½nÛ’£ßÿ1>ýÍçëXgìVŸ_gþ›Rþå†=XfóŠ/¿œóû/~\r¢|ä/wغ×c°Òïy "‡®/‰Aè žh•:Æ ëSjʼ&ŸW$“œ«ÔðT+;>O〩Mä·¨‹R°(JòúšÊ\ƒ}óS(Þczo7 àÛŒá×­õ}Ùë=o÷{‘oóÚncþÛŒÙÍk½êÚ’&šÇO2þþË9ÿp\sDd‡}¶~¹Mÿ£.ÞK?t¥ –Šfó%|®P¸¢íãc1•¡J#¦¹a§’ +IG+ŽKÁ(5d…nòÒª¢Ò°SÞâ<®÷‘ÞØ1Ë‹òMFx7%ýË\“ëÌ~[tö_²1v—Ï¥H©X,j?Jùû/çüí·ßÉýÏöèüj‡ÎV@» ¥¤¶©ØªKÆ–@ðÅr5à £$aìF–] ÷´à~!ø|fù}b8ÎkkÒÊ’×Æ.hjÞû2Æ7Iï €çW€Û>_§Wyw^geØ\qnÓã[¦¯ëú†¤ï³ù7Qp„P\^Ô|ûÝ‚¯ç<,Wû1ѽÎÝÂÔ@n›$-æ÷i˜Ý[ X AA ¡‚Ž€ØBä‚®,§J3¯k³È«ªÎë cR„ȱð.è†8Uzñú>?vuRÞpI®Kø1î&H_¤2EAš¦äy¾rwÞ\aÆHŽ5ß|—ñhê09PÜ߯íËÞú>Ϥ}¹”þÞ¥€r© µ«B±E%[×—ÍÊ)Øw-÷\ÃTÔúiY¥‹¢N—ÞŸšwڦꧧ÷+z½ùu½;¯³´Œ_UUU=§Ïßæµ¹íš[ÆÖZSUY–‘¦)I’P–]Ù´+Õ¤?Ô5¤©áêºæéeÁiéÜïPv)|©›­‚fHËüë’¾X¾_Éæ3oí³¾O6€$²-ŒÝ¶u}‘Wy•P›x_è‡dvþÁCY–«­]6%üëOkMžçÌf3F£óùœº®‘RÁjŒê²¡/eaÈÒœ¤4\–’‘p(»>¦ëS¨¦G§k¡b\n€5F_WDÃð7°|^ªÆ[êC\×Z¥eJZ-šnÍöÞ5½hxY¥Ømñ‚ÍÏÛ×­úÑJê<Ï)Ër%ýoêç/̵Ÿ·+E–eÌçsf³išR×õªv×ó<<Ï[!2eRRËLÂÜõ©:>D.µhݤêW¶qÍ”K‰ïoØyk,_{K{ —ÏìO@!›‡iaIÒZ‹J›¤lVmsom"åûIï š¤ß—HÞW¥8¿NZDûžÖš¢(VÛz:B«òlv~á…/Á”¦éJòWUEôûýÕ4š¶ZË÷}‚ Ž#¬±H!ÐRPeBäƒï`…Àê¦1•^ àÙŠàmHü@Ü4€½5PøòÙæ ˜¥†ãq%.®KS$UF­SK¼>üï+½/¸Uò¿Œ‰_$ñ_•³ß·­ÚÓêþu]¯^[kQJáyÞzžç®§=Vš¦L§Sæó9ZkÇ!Žc¢(Z5øjAÕŒhr–à¨!+´£Áqš$5!WŠˆ]kS¨—­8+š™éÏPðŒÁ}Ù¨G…\Ųu6QçɈ“«’«q¡Ë¼ÎTJÀ»¡õëô¢ ÕËV„`]õi™¾uUÎf3æó9i𢵯ó<ºÝ.ÛÛÛ+lžKkM–e+ɯµ¦ßïEѪFwõo¬&Íq¤Ç¸Ž@YÛ4ᬗœÞžk­+[ „ªÏÀÐz†ü¥ªã¯Ùž`UüUO=»*™ŽK]Õ6™ScÞÒ,º÷–Þ¬hÓÍø2=ÿU ØϺ»³ÝZÝýúúšëë먪Šv¢äm+NUU$IÂb± (ж 0 oÄ€Õ`m»¬êjÞx¾ ð °UÖè¶\Šëµ~-Z ¬0Òl-Z»À-™_,÷Ë5ÌÚNG™)¯‹œ‚ä œ•ð?•ŽnoŠÞ;ÀË“â^Wâ·´þwƘ㯊N–L|yyÉÕÕUUaŒYÙ·^SëAZ,dY¶Òï°ÖÿƳ²êº!(ü:>ôLM\V$Y‰.jpdÓ¹õ¹6…ÏÞ[Ö¬ԣv5pÚM¬35K(mÊQZ0É*;Ë9üU Ÿó§ÚÝá¥÷ ?$æUíÌoó µêN«ú´Æp’$+¨ V9ŽóœWhH­Ë3MSÂ0\2wýÜwiUŸgÇVÔµ!CÁ°+8ŒádZq:JH:ìKˆ—Y›k+ÀæöœÀÆTÇ$´¶Ô¥Á\ç†Ñ¢ ¾N¸;š=Ê¿V¸'ö¹îÐ6N˳Nh‹Ù»æ˜OïlCíó—ºB_§Ð|ãØ7öÙŒôæyN–e+ÉMò(Šhçlž£•þ-pò<Çq<Ï£(Š•!½~­;´W]×8Ž {CÉ/öã¢fqû½^áp¸òÙGQÄp8d0àºîsÌ¿ž'Ôž¯(Š•”_7x•ûs}:}«‚ !ðËá‘Ã9Ÿ,˜_¥œ}餄°7†‚{Ëϵ€õ÷Ú'ÚBZÂu OÆð‡sÃèqFïÉ÷ž.Ø:í!Ç=&Õ€‚.>>>>îrzDEÃüc` Lù„kþï\ò ×ü?Hø‡?Ýê÷À¯ ÞÜ÷u±™Ùº;«ª"Žã(ºÝîʹ~|hT ÖÚª7­M°nÀ3æoU©ÍBÓàÖÐéZö· vJ²Â¢Ò—'’¤¨¨®S,;9ûn+¢‰´dh:9W*ý¬ÃsVÁ'›ΪK„$ƧK‡ˆ—Á˜c™ÑeÄ_pŠæ”?pJ̇Œ9úOÍ6x¯·»A_äÕyÑcû··sÚîÊa²³³³bÈVŸo›õÞæjÕžö­ZTÅê|­jÕ½ÜA±V “R¢u…19q§ä“O^G°3¶<'|ÿõ‚‘u¨»v5-Mº„˶æj©­Ô¦io¸È›îÎóåã¬@¥9~•â$É‚Åì›Ú¿ú²°¾Òóã+þÁ—˜ˆ] Ùa‹¶9¤K ”XÆÜã)ÿ7¾áÿÄ÷<åo™ñ?bÿ”lƒ÷·¥¿,êûC}Û#Ü”Ð-m¦@ÜÀõ”‰ÍHqëFUJ­9É~õy»kPE†R‡‡½¾ËÁÄçàL°-sNf9ó<'geJ5ñÑž‹Q Û¶_ÑYÕ¸y‰W”xE›—H]àˆ×I¬ÛÍ—Of6ùö$»~²x4žpYA„$À%ÀÃ'$¢K—-ö¹ä&ÜåûK z†vè3à·tPt‘Dt9á3&$䜠ÉÞ5W½šÞ¬r^düÐç/ÚÿeIm/úÛÛV¡Æ€m¦Õ·@h·¶ã[û¹çy7@¢µ^=oqI’`Œ¡?è±»ó± øå/,ÿdäq~Ur6ª¹—\- fW–²c-X¸ÐýH0z‘%$ÒB‘Öš_óáKö8åÿCÆWïqÍû€½nàeô2uèEç{YJõm%š­do™Þqœ•¡û¢m³Ü²CdYF]׸®K‡t»1Ž£ÐÚ²·w÷%%——£QÍlªÉ2CU´nm Hº=E¿ï0è;t{†’º–ŒÇÚ–•®]W¥u%R¿0㙟Ï3ë9×,8òà‡!ø]Ð:h:hbbþ)– ÁßqÂ% f<ÐôÒ{»†÷2U^ìÚ|ÜÜ÷ç|îõëV’µº}k'´9ÿÏ ^Ôa}eXW­ªªb>Ÿ¯Ò(¢(Â÷”Rh½t•:Ðë9ø¾doÏ£,¡®,F·A0ÛÞ”Zæy×HiÐ:g:SÌf@e±ñÚreŽåK*z\ò[þŽûä( e¹âŸÁ>‰B±ƒË¿ ##åo0\þ”ÜôÃè½À:½¨.øUy@/:Öæ1oûü6•çe`j톷1ûm+@›צb´µBˆUà­q»²@Ãkž¯ð}…‘-kŒ°XÑä­ DÃuV¡P(Óè1¨êŠ4Õ¤©!0¦‰[ûšo†ÖšRótÉø4‚€&é´ :Ç´³úüg\ð 3.ßß5à½À‹º+¼(5úe©Ð?Æ`~Õ5¶çju{Ïón¸C7™¿}½ +Š‚ÙlFUU«Ôé6‹´M™°Ö"X«E–JT,ÔœTeT¢Â ƒ² ×z6 2!!žUH!Hijù#<9b b®|³Àˆ„´YKÁ GœrDJÈ÷¼ÇŽÑ÷/«Á}YŸNxuÎЫèE’þeݧÛä·8ŽW.Ðõﰮ꬗Z¶µu]£”"Žcz½Þ*íBk6ƒ¡–5•¨¨©©¨HDÂDL˜1#)¥(1r™_$BÒÕ]bØO4+T)KÌÚŠqk‚ÝËh|…Áeå):|Â]¶è#V¹w–!{lñs>"áÌ“3¢¢xÿ"Æï¬µv³ofK¯Ó¤öUŸ½éa=~0 R2™L(ËråÙÙ4|[´Œ†!N‡^¯G7ܫƴÐd"c"'ÌÅœ„„…X0µSfvÖ<Ê3gFâ&nP‚І Ì€=½ÇQzÄêžãQª»¬u?tE8þß@‡Ã5ÿŒ§ü_yÈ€’–eÒ) DDÜçgäü[FôÈøŸ¹æ ï]ÛÅ÷/L1X§W©7¯êûóC®gýx·§õEQt£,rý|m`­ýnÀjåèõzt»]â8^e‘næ(µÇ1¶…ÅâZ—€€R””ª$uRjS7@Qs*·"Ûf›;âêôã>¶cq­+º©Õòx(çÀ—«W.c¦<ưÜÁ0lnLsÉ€‡Ã6[ñg1fÄß‘rLñ¾U¿`™ ´^DÒzM^Uèþ²÷þæÿA½L¥hÁÐf–E±bæÖ.‚×u ‚€ V!Z߃5K—&—ÈF(­èè¥.©l…¶šššÒ”¤¤Ìåœs÷œÇÁcE8ŽŽ™S2'cŒxbž°Uo1¨bD§è0ŠF”êGµÍ<v0ü4Kƒeù©E>Š.{tÙf› Ì™aÞ'“ø}ðLj¶’³¥Wõz™Íð:Fñ+ç lª ¶ÍæFºCËÔë)Ñ­ºÔ~žç­à¥´Îüp» –뫲Ñ&M´TT¢ °W»Mçµ[ø¿Œ !VLŸÈ&è”Ú”¼Î±ºñ¿[cñ­ßØ´i¤~–e, f³Óé”4M©ªf•o]Ÿqãû>aÞPiZ´Ufyž¯€ÔºT×[¹¬Û·zʰ¸¸ Å#ŽøØ|̉>‰Lš]ÀÁc@Ì}Žè3"$Aÿ óÔ¢±¤h²å‚ÙÞÔ¶¢X P€‹ÆCã~X^@·UpÝ–$DÃüÂ>[úkj22ÆbÌ…¼ žñˆë˜^ÕÃÓÚÑH»¡:´‰”Ë5;•)'ê„3çŒKy‰-,ƒd@/ï5¾yµlrëzUU1›Í˜L&L&“U‹”õvèmzƒR ß÷QJÝPgÖ#Æ-’$a4­ŽWÓ锪ªVž±g‰s·x–ÿºtù™ýçæœkqMB²¼Á(}ˆ¹`À%]f$˜×6†M³ÄP`0«`ýR@®@ð¬MÑ{Cï àyO,;ª{Ã54©E#©IIMJ¢›,»#X|ãƒYº횎ßG4ªN*R¦rÊ¥¸äÌžq]\“Ö)qãdq;1±ˆññ±µ%É’$a<3NWsÚüžM/°R“Ú¸@nWƒV­ ÃpõY ¬¶×d2¹á-ZO³¾y/!°!GõîÈ»|a¿X6 ZÞptpÙ£ÏÑåj™®°xíu €¦|‹À –›Ãëf¢þDô^ m ´)ñ×ˤ‘ ÁXC)JbÁ©8å[ù-—æS:E‡Ãü­z‹HDtÜ¿ƒ¯ÉÛª:-JJæbÎcõ˜ÏÔgœ›st¦ ç!ÛÓmÍ!‡á![Ñ‘á9XH“”ËËKÆã1óùœªªPJÑívéõzDQt£¦¸,Ë•J“$ p€UplÓ.h›ò¶ÇiWж ¯Öú9ݼŸ`ŒEj®ÙbÀ6¡Š‘ŽÂ¸ºÍÝ€d›!{ü†>!j¯«µ4š ‹¾Õ„6€FP¢¨–Õï½X1û¸^TnL“Åh¤¡´% ¹`"'\ŠKNÌ ËÇ$UBTDDUD\Ç íȉ Uˆ«\”T¿½M+ ®ÄOÕS¾ã;¾®¾&ÍS†‹!;‹²Žœ#vܺ~Ïó0Æd Óé”ëëkf³Æ<Ï[eunmmÇñª RJIžçA°ê?ºX,˜L&+&ßôý·A5¥ÔñLm3ÞÅbÁ|>'‚UÙå3oä¹a:­¹š×\¥Š¹é Ým¤¿‹ ‹_ ”m\RÓC3Ä—¢ Fu3Ð5¯cÛ%Z±¦uÇ=ûe5– CÅ{9æ}ÀŠ6[–Xk±Æ¢…¦–5#1â{õ=ä#N8!ɼ±Ç0r¤8RGìGû ¢¡âz.ŽrVîJhÖì„„§ò)_˯ù{÷ï9/Îa [³->Î>澸Ïî¶ãmâ¨Ñµ5$iÂÕÕ×××+Uf0Ðëõèt:Äq¼JuhK$Û|ÿv!Óé”ñxŒã8 ‡Ã[+ÆÚöìq¯¼Cí ¢µ&I’U¬À÷ýåß5ß1M5ß}—òÝã9O¯3¾-]æÁݦd¥› :9Ä98…ÄT>#ÛåØrqØ£øÕ¤ñsþš4ÐWÁ.7žSPhjš¦(ï½X¹@W´öÔXCbÎÄä#þÀ8©N˜çs¢EÄîl—ÊøH}Äž·Gßë7U±,ÉÉ3æ¡|Èçâs¾à ¾-¿E'š»Ó»Ü]ÜåxÀGÑGlw·W9úÆò<_IþÅb±Òõ·¶¶VjOkä¶ÛzA|+¡[ö$SUÕ c­ÁEQ=›,“e«•`0¬ÒF@ µe2©ùö»„ïåxò€Ã²&Ì)¥—Pz J™ÈJç®™žùνËÓÃŒìW>¤S¸ªÁ× êåä˜úÙ&t³¥4+EÖþn­ƒnùãa©[ŸôòÙ{¶¼€Í8ÀÒËc0h£9uNùê?ò…ú‚3}†Yv.v¸“Þáê||Ìv¼M7ì®tâ~r  RR¾ßó©ü”ÿ,ÿ3Çå1b&8˜ðÉì~!~ÁGýØéî…Ïšbµ^˜ñxÌlÖ7íîî2WîÍM=ü¶»6}Ú÷}F£Ñž¤7Û§ßì^×Ú-Ú€[ë!j½LÖ òÜ0•|ÿ}Êxfùå_ìÑÝ>d’Ýe’%ÌóŒiº`|5c’ÎÅ4IÝäªÚÊå¯ÌU´Mÿ ¢ê_çˆß¥ËÌ9ذ›€J@¦ðø÷ûTa—u˜vím —‘Ä Kýax-oMmŸþ\̹RW|%¿âoøžO éwfwøÄ|Âýþ}ãC¢8ÂõÝç‚DÖZ SP肇ö!Ëßò©ý”o«o©“š;ã;Ü[ÜãgêgÜï³ÓÝ!îÄ7š]%IÂõõ5Óék-QÑï÷éõz7RÖƒwë3†•>ß®›únëJÑ«A›JÝNŸl#Íu]ãy.UÕHÿ«ëšybpŸ{ŸlsïAlQ3ŸW,³EÆdž0™§L™\Äu”uía>gXå"Óµ( umÓ2×ó"×ó²Ð³ª4 £Mb*™X#S«»Ò>¹Ü²=çH‹*°Â`d ª§Œ¥4†‘ÔL”% :rÀ•Ï~pѶó¥YQ¦ðÖͼ/°­ä7Æ“3#¾Sßñ·þßòñÎËsܹËÇ—ó‹ôüÊù÷;÷Ùïï7nGçùèh›b<×s.ª ~oÏ¿ÓÿŽ/«/‘©ä`rÀÏÆ?ã×üšOv?á w€ç?+to;@Çc®®®(ËrÕG´m‡ÞV{m¦'¬÷þiS Ö%~ ’VÙÌ|]o¾¬Ð®6mÌ  ”U@HQXÎÎ ®Ç5~Çg°ß壟÷ùäWte©JM]›f>A¥©jM­µ¨Kã”™•Ù¢ög“²3ŸVf¾¨ÍbVÕ³IYOÆE=¾Î«ù¬ª³´Öenj]ÙZÛ#kþóÿ^Vßÿy§'ƒÒŸ™Ê_ ƒ/ÀÍAך O;×{!åÇè×`5 ××˶vºI2ú¸øÉï}€…Æ?¯Ñ¤"e!|«¾åï¿ç÷ê÷\è ‚yÀþxŸOfŸðKûKt°ßݧupÜæö™ý•ÙŒNø¬üŒÿdÿ_×_3-¦ÜÝåÎüŸèOø8ü˜ÝÎ.q'¾qaUU1N™L&¤iºjœÛétV ±Ö“öÚUc=É­eþ–Ùó<¿Q?¼9 {]uZw ¯ÇZ°´Ç¯ª­-Yf¸¸(˜Î5AÀþÝý½€î¶·’Ñi…ùl“0™gšù´`>-Å|V1Ÿ•̧¥˜N Æã‚ù¬$Kj‘§5e¡)Ë¡.õQ— ›r­ÒjBžÍ)Ü9ÕbN­2aêÒ±×26I¼¯ÍnYûuݛֵ.±Ö–P—•ÖˆÄ@W7fµhAb–K%+ãµ¼T" @II.ržª§ü'ç?ñ™óOÅST®8¸:à³_ðsñsîÅ÷ØînFá É»Igœñ¹þœ¿ÖÍ?è )úYŸ;³;<(ðqü1ûÝ}/¸aÁµ†oèV¸UaÖç´.Ûö³¶Ì±eèÖ…¹‚¶õzË𛙢›=R×Ý¥ë5Mª„&Í,£QI’z{¶c”ïP¶“¿L{¯o€`EÒ“ÄŸ vípÏPWFÔ•±ue¨*CUjªÂPä5YªÉ•H•Zd‹2%)2’<'-r²¼ + YdUPTf·Œ„Ÿí8‰ãÓ³dA^äu^W6·VddÈ ¡z6+¬¶9Öf4\¾ÜD¶†Çæµ½T¯ w €e@Jh431ã\óµúšÏÕç<±O¨²ŠýÙ>wgwy?àNÿÛm¢0B9Ï’Ñnôò\Jÿ‰ð­ý–Ïìg|n?ç¸:F’­l‹»Å]>²qÐë4ºü:ó·êOÀjûµöºX1¨Öú¹èl«µº{› ¬l‚õÕdn;dzÁ¶ËDM^’Ä0iжú»ÂS Ö T±Jy¶µ¿‡ðž§ð›¤XÛ‚DÀZŒÆV¥¡È5yZ“.*‘¦5YZ“§ÚfYM–Ô"[h²¤YV»y^«¼¨Ã4­óy¹·˜UÙb^iRyVei ]›\›a®ÍÝ¢®L^ä:-ò:©JêÚ, ç4IÛsø›7RWðÎW€¥Ô¥(™È £þ†//y*ŸR%ýi¿1Tó{ÜQo>Š£†ç&µªÏ™=ã3óŸÙÏ8·çTUÅ0²›ïr×ÞåÐ=¤ôW™šëmLZ7e–eh­WA§õîÎë X¯üÚti®Ï"kSZug½1ïú ÐÒ¦-ë&0FSUš4­Y¤°È-µP„}Ÿhè#\IÕJ~»ÆðvñŸ.í³UâÙçË.C®Ä“å+®Ë@[L»Õ–ºnF1U…¦,4E¡eYjQµÌ²Ú˳ºWdµÉRm²´Ò‹yefÓ²^Ì«:It=ŸUålZãë"_çEšÔ¥®M…µ§ ?ùĘ7`-¿;4©²h©™;s›x §Þ)_:_òˆGduF'í°½Ï½ù=î©{ìGûÄA˜j%ÿ‚™eªC&2Nì 0à óßÛï™Ú)~å³›ìòQþGî;ÑQ=gCTUµŠ¶®'¶­«›Å,ë ØÌõ_ŸE–$É*ubÓeû¢JµÍ¢™gÇonbUªYÍd&(Œ@„.áÀ'èyXGRÖæ'-Z ¤`¹­eHÙ•ÁÜP©@ù X𣵨f&™ÐµE×Kuª6²®´Ó¨VQ^dšdQ1›Ìg•I•YÌËz6«êñu^_^dÕåYª/ÎR=ÔqQØs]sö¦²Jß ÚÛm„¡vj; ¦œvN9ŽŽyªž’Õ^á±5Ýâ£ë¸¯ïsgûÃþ°II°Ì3½{½DÐb™š)Ÿ›ÏùÔ|Ê7æ.¸ ²[åVãò¬Æaÿ~·ïù+¦ZoW¾X,VQ×õš„Vç^¯çÝT‡6™·õÖ´•aÖZâ8^åö¯Kþ¹C7ÏÓžËqFKÆÓŠë±À(¿ô}œØE+‰Ñ]te0•Ap\‰ëHG"ÛyëL¾¦&Á³Õcõ\<¿B<ÛÚR5®@9é)ܦ™)Ö,½~¬6B×–ª2èÚ]Y×Ö­+ãdim§“Â~óåØüÇ¿>­¾ú|]œ2Ykõ›‰'¼a¨œJ$A"ÒN*Ïzgâ»ø;Îýs» T©ˆ1»‹]î”w8rކÃFoËë+€Fc¬adG|QÁæ .lÃü ºU—Ãê#ŽØ ¶V`Öuõ¶‚«íÛÙæ$m–;®Û{ƒ®º´Ç¬ª ß÷W.›ØÁf¿¤õã*%›‰“ZryY2š(dèo‡x]á+´€2ÓÌG‹Ia³y‰ÑVøƒ8ø¾Âõ$Ž#P®ÀQ¥ž=®oRŠâ&V«Æ:HÚí÷Q/]_.ó¥€²ÐLÇ¥ÐÚÖ_~~]*GÖBˆ’¦¤òOµªÅ"Zˆ«Á•ÆÎùÖ¹3ŽÆ"s²¦è¤ðΆìe{z‡ì„;ø®ÃO¾.ùWÒÍÂ.85§|[Ë#óˆ”a¡éÕ=¶Ä[j‹Øñ|©ä OM[ûY¿Û2~[è²ÞÉnsòd˨볈ÛÂ!AÐï÷_ ë X€1%›â4œ^T\Î,áQDo?ĉ]Œc™NKž|;åä» W'sÊ\QäDŽ"…)‚Ø!ŠÂȵAè„A´| ®»ÑitcUØ|\÷6­V±ñ·¬"KÕ,+-³EÍõ¸¨®.óÙd\ŒË¢^Xc ÞPaý;@é•ârxé${‰?îŽÃqwì/ü…¬©‘µ$Ê#¶ÓmöË}vý]zaW=?¬nµ˜F7ÎÈ8µ§<Ò8Ñ'LÍxÚ£[vÖC†î®ßÅ÷ü†o ®¶·UsÖÁQUÕ ëLÙ2úú¶9•¾ö¶ýD;Î*˜v[¤õUiPësŽ)e%¹º®™’A? ·¡EeAW†É¤àéà ßþáXœ\?%+ø® T }•¾ˆêÀëè( EÜóݸë9aì:A¤T*ÆŽc?PÖuŽ#q\i]G.[±K·Q§”JŠçÑgÃø^·9Ú÷¤À ͸\^fõh”Ïç³jR•$XñÆ:K¼d~¦Ž÷CçÈénÑÍ<*Ué Á­\:y‡Ý|—}³ÏÀ!Rɕ἞-jŒAÈæùÌÎøÆ|Ã7úff¶ ›xµÇV¾ÅžÞc+Ø¢uV]ÙZ†k™m‰×?k™¸5Šok縩­3l›6Ýö¢¨1æyÞÛýy{ü6õ@ …1y!˜Ì ©„`+ ³"|EQYŠT3çœy2~ÈYø¿‘N­t´Vó(‘O·¯ÑþÜËó@ eØ º~äö¼À鸞…ëùBúcÃØQ×%îz6îút>½OwàÑéyD]‡0všÙ­š$ž`lx¥VÍcZ1º.¸ºÌëÙ¤˜i=µÖI@– þPþ¦ôLJã}ÑGVؾF{#ÚÁÏ}úyŸ=½ÇžØ£ëvq=wU y›æW›&ÓvdG|WÇ#ýˆÔ¤+À¸µË °#vtDe žcºÍ>=­¾5Žó<¿±2là6ø¾O§ÓY¥Oû¾öXÀ檴UβŒ²,7°p™Í`<µ”B¢bp+ÀøXG‘W†Å¼æz¼àìú‚óâ!“½¯(·( *Ì|ë‘8Þ;“³ƒ™kú¸¡×u=ÕU®ìH‡‚_ÉŽëºÒñ"áFCáÆ[2èìȸ;ôü^/RN@Üñ‰"߆oƒÀµžçàz ×UÒq„p)W ·])”°R T»9)›º=µ¼½IVÛó³Œó³´H=µ6™6ÃŽÖü Úw€ÿ#Øi»õAý à—Xú«0 jEœÅ Š{ì±ínºáár·µI©lÅŒ§æ”'õÎõ9¹Y†É—èW}¶Ýmáà¹8Â&£­wsXOlkƒYm_ÿõ¿kA°i [kWÍp‡Ã![[[t»ÝU*Åf´·eüu×h{þ6–ç9¾ïaŒÏÉIÍéXãô¢£Áv€Œj)ÈÃd\pu=å2{ÊD=¢Ú:½ MU&ŒÄÕÅ×6}ø.ü‘Ñn^•Ò Gëqßã û ØŽ ʾš¤gž¹iò‰{Å®c¢À©B)kÏ8µ¯V¡ëÞ ¶ÝA(»}߉»®u\§ÓóD·ïu\ü°5Àaäw==Ó£/úÄ^Œïù«ŽË›ºv˸ÀB•ug=Çg“I×;<·5q¯o·Õb7T¸5†ßü®m¹õ$¥iJ]×DQD–úœÕ\¦š`»Çàã.^ÏÃ8c!Í5×—)W£13sFAïÂyInÆdœ’¦OÉyL͵µº 4Ù™[Ì=¶m—A±Mg~D.é,pµ% ,…¯™º×á‚Qæê´Û9¨»ýêü îy~Ôqܸ㺾§âŽ«‚ØQaì8a캻‡±º÷‹¡l+!,HÓÂó¤6gÇIuq’.ŠÌŒ…H§–'%œ¾1–üi`qÑ ÐìaØ[¶Õv[x•ÇV¶ÅN¹C'ì4ª¼½CtÛ( ¢bj¦\ëkzA¡›&XPFákŸŽìÐq:¸Ž‹TM¡½0·KÚÍÜ›ëêÍæ@ìuÍz›<×2ÿz®Ðs¼[h]õióÿ±8Ž6——†‰µlÿ:føq9TËàU–Õ\žÎ¸ºQ8#èM!È¡2g\ð”Æ\Saoë1þ v>­øo™ò‰vPõ6ª¶xµBZE­©*¹SuÏøj÷Q}ñàj> ò|îË騌OFR(I %ë‰ÐõUuÜ^oôù—»ag+TÝí`©W6‰{‹Ee®Î’|tž.ò´[mßøÈ½Ÿ!°üœ€JîC ­©Ú¨*bت·ˆ»ñsX—Žëy?¥-™˜ =!Õ)•©šNnFàh‡ÀÄNLäF8òÙÄöÛª°ÖÓ6Çž®W˜­«Jí¾ëMr×+¹â8^uzh¯/º–ÛsÆh„PPÕ>³¤ $ÁNDç ß¡Z—IZqùdÎÕùD gÛ–Ú«øZ¤Ÿ“¦ÉÒ0¨u@QùTVc}oà |¬ÓäþH YZsõ4áú5%ÛpñsËå–¦,,ß+—³0$í÷—ÂÀ“þª„ãM‹Àâbèa8Dst°H* æL93O9M¿gR="Ÿ\¢æà, kX ÷ükåž”#·QrY˜ÖPhHæšée.Ÿff¶¨J£M b$Ë:‚?1tü —_ҧ戚>­ôozÇà•M3«XÆ«V&/r !šQBhr“3×sæzN©Ëgi¿Z j…+\B?$pƒ¦‘ì2ò²Þ#h³ù¦tn%ümÌÚz‹Ú í ávÛ¬[o‰ø²&½mécÛu®(Êeâ^—<÷Ir¨a€ìzX_QÛFŠJÀúñ^ÌöGDU@­16A—¥WÃvíûÑŒ¬V kû‰µ×6*,B£emµ­lY {–‡ôòûxÅ}T}€´%Sq͉:á;õ”§þ ³pùáôà ¨†Cφ¡ƒëÂbÌ]QUGj2Ù®OβA)EQF¾½v}ñU¦¸š,0ÒL¿O8~œVó¤žA2«<,»äO ‡š.5Ûhv0ôitÿæ××àæ.~æã[Oz(©n•þkÇÄb©¨ÈLÆB/HuJ­ëuÓÍSžól0ÅzîÿmÓ7W€çS‘yîóõޟ륙ë‘Þõú…ÛÒ9V_o”k;Ï- „€^¯µCNN¦™BnÇø‡]–ªO›š` Ü‹øÕÿð€Ã¶K6KÉ)EšËlœw“ÝòãlTïçs[T©­êÂh]}T[ýß—Æ,2kX˜Š….ô¼.çUýÕ™gçûì^üŒî|¯v™‰)û8éœq½;¥ø¨Üð‘ý·ÿö®øÿb‡»w:¢Ûs%Öª¢ älÖŸ~šúÿÓÿô}ç‹ó²3îDAáÅîÉTI÷dYyVQ}9·Ùw‹|±0pu•6sšÞŒ÷ç] GÅ–>šP«œ©JZ'upU)„³’´ÏwŒhß]6Á­lEiK2“‘ë£Íª_(z¹ H…+oVS­7Èn0ÿú>·1ÿ¦mð¢b•ÛŠÜo›S°9ͦõüdYÆt:e>ŸS×õ²½Ê<ï1_ÔLs[þAŒ ã· þ @Å;¿ÚfðQß³’|VŠbVŠlZúé¤ðóiA>+E™”¢ÊjQç»¶.ïk]šBWfQçz^¥z^ÚiUšUOO{FžïÙbZUZ;µÆœHcÎ}e¦q¬‹í-øÈ‘â^î:ißÛ3QÜ%Ž}kŒQi%3M:ÖÚžvT§ì„~…rT¨f˜ªFµài §iA®/!»€§9œ½qÖüé`é`–=â-ÙòŸ¨NêX™J« -*·9ð¶á›+ª…¹©(tÑ¿f „izù;ÒÁ‘ËAËð㦠tnÁËÞî«o¨9·ùþ7_·Õc­ôÏó Ïóèvût:[”UÈ,0+-jèãï„ØÂ—U~¬¹Âs•uz>Qmè—mf¨ÆT]j[çš*­)“Z–Ií•iÕ/“:*“j«L&/¶dYßwk›úõ"£®K[-ê 2õAé[·ŒÅVii•ûÉÕešÿ/ÿóIõÕדz¸Ô¾¯J]Û4Y”Éõu–Ÿ¥½“Ó´¯‡Ý]ߡャ–…² &Ìò‚Ê\‚¸â-UÊ¿]À.ð .!=4},–m4Pclf+“[U•ªüJ•U)Ú‘¢âVκ €Ò”Tz €¶úiÙ¬IX±J1|ÙÜÍîlí{›Œ^æYZgüuÿ¦ÁݾnÛ°´µÈBƒ>Ãá6®SjÉ4‡…ô»>îÀÇ8j¥­glŠJ *–êø²kíòN‹.­­óš*©©ÒJVY-«¬v«¬^£UZS§ÚVYm«¼"í–Þ¼SmͶ«Ð,êa½¨3™VÅ¢ÒåW©©~ŸTþqVIksÕóbQÎÓI–Ö…î¢Ô!ûNŸØw=P²ÑòÒ’Â’ÕšqSü"ÞÊP· €à¿Gð—øìÓ£¦·„ų.ÁLmt•UyžæºÐ…—{¹›¥™ Â@A ×&£X!„h»=Xš¢Ú6 ¨MÝ4Ò}Ö˜© x-‡e´çk»'¯&¾,¶õß·MµÚ$µM†¿­1í«€ò²A›¥“‹Å‚««+&“ Æúýôz»T•Ë4©˜Ö*E7ò‘‹Q‚ºeþ5&_þ\f»”@®£p:.¾¶XÝXÔ¦¶ØÚXSZL©© MUh1Ij÷dVËb¡ýd¡»&­µÍjcÒÒ˜¤4U^™´ÐµÈʪ27•È£ tí8ÛD^ŸÈóð‹‚Ú@R¼°äUM­s 3 Þ°ÿÿ§@øŠŸã£éPÓAà±Þ£°µ5UYåY’e“lb¯ª+/Š£®rU`­u‚ Kú2¿ê™»R)ÚÖ|mïÀšekE³œ¾nŸÍXa-ýÀqœUïÍqD/bò×U—Ö}­º×VµMw1t»]vw÷ØßßCˆ—\\—$R¡»>¢ëAàP˦ð…Úb–ê +¥@H!V•_b™¨¶ÌØlÞà J6«…]®Ï~"ŒZ[[ÖS‘†43"OŒ,SãÖ¹Áä[jAVcç:)­N+MZÕ¤eÍ<¯™5e-p•ÏÑÀe»£<ÒRÔ‚YÓ¼"­æTó1öt«7íýùi`h4šx9Cª½·ÏekŒ©M¾H£“³“qè…¾Tò#+ìö’9œ0 ås]±H+›±EÖÅ1NÓEÚ<€6šÚÔTuÕxˆZfrÕÏ»eÌ6m!˲-NÖð¢Öä/3ŽoûÛõ÷Ö ÞÑh´ªDëõzܹs‡££CvvvàéñœÇçEàâîFˆžñj!°•A§5嬠ØJãøÊU(g™p¶Ü”+QJ6ï5Å.¶-iÜÌÔÔv鞬ÓJp]*F¥d¢!Q–<´TèØ‚±–Ú * µ…ÚHjãR‡ÊX*mÐV€® "·Ab©ašÁ8ËXT§§§˜ÿ5…ÏyÓÞŸŸ5Š K€Æg½G«¤6ZJ™gùôüâü‰g=åžRŽBˆ- IäÒH«~ÿVàààYÏx#VÓ­±+õ¨Ðe]Þ rÝb·Ó\â8^Õ´ƒ)€W®/bòÍGxVdÓ¼ÓétÕ}®×뱿¿Ïáá!»»»ÄqÄéYÊÓ³‚§£’ê°»A䢕À¨2Mv™Qœ.(OæØ¼n ‘®´V ¬£¬t+=Çw¤ã)¡\Ç•Bzk`PÍÐ=¤ÀA!$ +˜iÁXÃu-¸®©#–\¤V¿9Ëå3XŸ ÐÚfvã¹±PÔ,W€‚´º Z\`ço2÷ç§€A.#xØ9­ˆiTôº,ËÅøz|éNF¡t=× !$àH)}!„ð}_¬«0‰ƒÓLGĽ¹Ø&NPØ‚¬Îš!k^€v‹¢ˆíímêºæòòr€V-z•+ôUÒ¿eþ<ÏoŒVÊó|ÅüwîÜáðð€â(FJI’Ž/ Îæÿ—>ÑÒûS-½?yR1y<§øÃ5òÉ•4ÁØZ›VF—(­@ ߎïºNà8Žç'h d7tpC8ÈÀ±Æs¨\‡…ë0V3©H„"JÓðìÆï}ûÆ ž¯@Шnµ`QÀ"/(êÚŒÀþ¨‘öﬦƒ¸ØåŒ¨uïcëZÆ‚µÖEš¦ãñt[|÷hÆÃÓ”Ìw‘[1¢ß¿V€)5:©(ç%rQÒE‹ƒ]É¡àúºÔJå‰ë§9Å£§ùé£Ü/rgÔ©Õ8¡˜ä¦Ë4ÌzF%ýZ˜¸±cÏ7RVtä®ì¸¸RáIIè*bÏ¡xľKä:„®"t$¡+=ç<+ù’Bâ¹’ÈßMÝãòiÓèÿ‹²fš%,ò)µžˆ?a´ËYûwƒÛÖ@Ò¨ó’¦sL©ž- [–¥^6’’ÖÚ²®ë»u]Œ1.†¡õ…/¶å6;r‡=FvDa–5‚¦An}ÂÓâ)órÞ´/TòVé¿Na²¿¿¿šÄÒNnl»Æµó¼Úînë´õ"öõ®í¹¤”ôz=vwwÙÞÞf8Òét‚ †­$Æ*Sq9^ð_ŒøêiI±ÓÁÿxŠF÷×¥¡œV˜yAO×ôE‰kçh½0eµ(,ÙÄïêc×¹8ÏÂÿÍ,’cߘJ1«œU_qe cÇ’:…®Ýë–B*l£'*xà"þ[ñqˆ°ÒF(㨞êáªJÆ(BJ¸8ÒÁw „®Kàúìu]ì*ö{ùàªå%ÛDçyÉ83ÏGTfäo:ûó§€]5ê´TèÕ„›nÐF +$ ŒÅæu]Ûº®ÍÕÕ•ˆ¢È‘R ÀYF†»€/¤ŽëØ¡²§öÄP9·çÔ¦^á­°—ö’Ó┫ôŠE¶ ŽâUYâ‹à8ΪôzwæÉd²joXUÕsý@7Ë+[ H)Wƒ.Z©ppÀöö6NgÕ,·m_Ô%ÓlÁÉÕ„oM8Kêöpïv±¡KÕÎS( ù8GŽ3W9“ˆ*_ˆÔ[”e‘ŽK[œänþ8s/OsñP}¢È1Ì©3gBÎCE$@eoˆªLÀ–‚™:Ѥ³w@t›GbCØ ò@ø8Ò%t<Õ#p÷øx»O7ô#…ï=ã¾ÊÀ¢€YV‘3òzŒ• Å›*~7hçj,%–j9Mª¡u(n#q€Fõ)¤( çüüÜ“R:®ë:ŽãXàŽB)©œ°Ê®ê²çî±+w9gd6£2ˆfàÆÌθ(/8™žp^âz.žëaųt„Ûhé~ekk‹0 éõz«4…v4êú ëͶ¡nÛß¿Óé<·­÷]Ý6kH‹‚³Ñ„'gcÎ.LMµâîÅhßY—UÞ¸?½«ªJb&ó\@–WUñ4×ù7—åÅ£ËëËÓâ랢HpH1däTÔ´­Èo‘¸Wþª†ß/;§q|:€ Æ«à¾ÿÚ…ž„h’–w‘Ù_yiåPÅz‚c¥a–Á4«)êÖ¶êÏk€õ"zû+@€ K‰¦‚µA™võ¿Dááà#W•—પÅl6s”RÊó<µ´)¥p§‡Ä ¢@ åÐ~ì}Ìuu-&US³ºÇT\—×|7ÿŽ;ÑzÝQ­’ãnÀzŠD;²t=NÐvz.Š‚ªªVõÂíß¶Œ¿>Þ(ŽãÕcÛj}3ºõPÕ5Ì&šë‰fVKòÀ%ìúÐñ𖇦éªVæµ(ÏÈ‹©Õ\Hon²,)„(.êºúf‘-¾9žžœŸ<=™æßæp†"G.Y½æYý”OYÛïž™ Ø9`l¡wº °÷)t×y¦ÿ[x’ÆYA©çÎẀGæmE€[zûFpf0”¬«>ÏHáâ- eÚ\! ÔÖÚ¼ªªÙl6ÇÇÇb™£#—ù÷¾”Òâ æÁ/HMÊãì1#=bý\³jÆWÉWìÌw8Ì„<×»µØå¶òËVJ;ŽCE”e¹j–µÞN¥ýûvR|ÛZ}Ó^X7šW5Îâ¤v)çyÖ¡ŠºßEGµ’«îÍuVQNðÏGÂéÍ„‹¢,—ˆò;­Í“óÉwÿáñüé“§ºXPbÐ7ÄÐ’²WÀ_Yð+Ðîø7|\‚Õ.ôÂÆs´œÛ @UÆiÉ8K)í®æðWÕÛÈÿߤ·¯Yj ǰ@“Õ 7hC E€OLH„C@Íz÷¯ÊZ›EÁd2Y/DBˆ É“&ˆz‘Ú wÄÇîÇö÷€¬ÊÄLÏÈmŽÅ’T “‡ ý!w&wÜ€ýî>±#¬hr†–L|[q °ªú ‚à†Ž¿ÙžÌÖ=E›£6óƒZ2Ƨ–É%Læy¯K½Û£ Üg© 5‚ÚPN [_̹žT„Ó´,Ǘ磇Z'_ÔuõèôôltùèRg£ìÙïòVT‹v¥p¾i2ˆpQ* t|ú¡C'´ê[Î*ÃuR2I”z Ù”7ÜýáEôö†Í˜š ‚‚Öìm©ñ„tئψRÊU *cLZ–¥Ç&MÓ:MS#ªµÖÛõv·7ìÉ}g_ü.ü¡ ù"ù‚ÓꔦàÔœâO}:^‡ššßÊßr"´ Ì?½6ÏónŒCºÖÇ¡ÞÖ¿¿}~[Vè‹êZ“eã뜧OœN+’a—ê ‹ð\´iLC›k줠>[˜z””f±éâúádròÝùù÷ߌǗO²,%I¢çóù[g¦g´ üKàÏ\Øà«mvâ;9 ¯õþ4 †ë$g’ΩíðÖÒŸ7éí >9}&øŒËU€eTšÐ˜@±ÇcdL(o jA`˲4eYj¥”èõzžã8Ò£!…ŒÜŽëÜwî  j]£¬âºnZ¦$uÂSžâ‰Æv‡Y6Ã-\t¢É¶nšYmmmá{>a./à–¾D¯p¥¾hŸ o‘]®$Bëš,+™L2=ñðtÁI¢˜ßñ)·šÈ¯ÔûÓ¦5æt>žWv’ŒÓéäÉåå“/ÿpzúøñx|=.Š¢¼mðÆÛ¥x<ðAôñäa³Õñ𹺵¤Ì2MRäÔÕÔôm¦?oÒÛÀ²­ TüK&|Ä5–9–‚&)nÙ'„ l3c‡ Θ3Û8¢]Þ˜yžNOO})¥RJ5Þ!ËþÀ ºAGÜ÷î#bA_öù.ýŽcs̵¹f^Îùvö-•m’äîy÷è¦]¼Äƒ¤éPç»>wïÜe{k›~¿¿*¿^d?l¾·)íÛnomëô<Ï—Y¡ çç _|“óÍ•áDõY®­"O”R®BC6©1OæØÇÓŒivZMFß$Ù@|ÿ(˲YUÕ•1æ­zQn'ASá"}°]Ùcô#…£ÄJ+5ŒSgšJ§ÀÌtÞtzûôvPДqFTüS¦Fh¦Rb Má¤Ï€vØ£OÌ ‡’zCð¶ È˲œÇãÖ;ä!„1ÆJHÏõ¢N§ãÞ÷îÛŽÓa+Üb7ßåqú˜Ëü’¼Ì9›žaµåXÓË{„yˆWxxÚÃW>‹`AÖ‡MI¥hŠëé ¤jûÜÇgÆ Çd|‡eúÜ‘5P,sëíÅÅ…™Ífål6+¥”ÊQŽÕZo»®nmm‰íî6»÷vùó»ngéL\Ï®¹_p|vÌ£'˜åM~OFl…[†‡ÜS÷ر;D6"¶q“rmÕ²Áhm)ËfLè|Q3–\\¤<=žs~™0žåL’’E^“—5¦®0u…ÕÒ”µ4U^Å,YÌ®“dt•$£QRF~Ư?Î:~ÞïÁnÜd_Êå2SÔp™ÂYR0-¯É/ÏÐÿq Ÿ¥0ùɘç%$A„¸ªO7ئ ˆ}o¹‚éeñË¢€i&X9µ=yÆ[êþð"úiPÒ€Ú’ÒãCè#Ù¢)”—ËÍÃe@‡q˜0¦"瘔ÛSc ¬ÖÚäy^)¥ÄÖÖV亮ªêJøž¿Õï÷ýNØQâ(>f`Ȇ“þ„Sÿ”ïìwŒ§c¤’„QȰ?dk°Åp0lÒ’=×qQRaµ%Ïrµ%YTL&%W×%—ãŠó™æìºàäbÁå8cÚ2¿¶ÔÆ"QMÒ“ð¬2¢.m™:v>56:'e]û’N 9ж:‚í|õìÛf®RÁeš3+Ï)§˜“\þ”¼ó2rÀvpdŸØïÑ BBO­"Àµ´‚EaIÊš|’¢¯áá´ùà'½ÐŸÆÀ¦dÄÉ—ácù%°‡ÀE,Ó¦!Fq—Œ€>’3^lÝÏgYvu||üPJ)¤”"«µ%\6Çm^ŽçyDqÄöÎ6y‘¯Ö¢("<×[£x6&©ñÖä\_œç<~šóðiΓ©åÌzL•Cí5)1j«©¿=‰”b­ÊPfµLfE°˜fÎÂOâBö­)PÄÛ»tØíÈa€«Ë²J0Î`”æÌ‹ŠúcóWÝþŸ\ ‡}/ ò+p•EH¨ª¦íÉ¢Ô:C_̰ÿë>+Þväw“~ZT4Ñò€9¿à[jÜ¥7H ÙBÑ4bõl¡ø)]*ö©(©™SQݪã®V‡²,'£«‘£„Ržë9J*8žç©0 =!…h30Ã8$ˆúƒ~Ó¦P,£µË®ÔUYQVåjvXž§L&)gg)OO kûxdÄÓ…`$=’Ž ƒˆx+ îyt"—8tˆ…«dãÒ[Ь–ói%ç“Ò›OŠ(¹LÃôlåIEé¹óÑÀc;Äž@ɆùKmYTKý?KȪK´¹û“ª¯ !†¸Î‘ïûÏmÒ ©þJrÁã¨Cyoï£>‡†[!ý®K'Pt\Iì"Gâ‹æ‹)@Y+Œ¶”¥!Íj1›×œ]Þ£ó¼2­ìU…“£Fýi_­›¼ùY®¥9“|F©¯iJ’ÀÑk‘>ŽÚ!ð¶—37«ÃVýò‚´¼¤¬/1ïÀï95gÌ–¹ MCLŠËŠ‹%BpD„Å'Gà3ç)>×2ëþî&Ä"¬µ¦¶u¾°‹ Bœ éxŽ·¬ÉBˆRJæy.z½žðýg#XÛväišÚù|n&“‰Íf&M“, 3›UŸ õÅ£ÀyšuÕdÐæîѯwé>°·²ÛséùŠØ„"ÑlXæ „»ƒêÚ’šÑ¼Vû“Z}?«íw©å\9$=RŠ&{¸¶T‚I^s•ΙdãeílÂ@@“¾Á3[L6-ÍŸa–g ŠmÏ2}Z˜¦peÙ–O|àvv Ý]ºOØUÌÐÀóæYA^]R› ì?&ÌÏ0üð>sîsÉ>?§Ç¯ñ¹‹¢‹ @àH|¶¸Ç_ò„œ'4YWW@ŠX%΃D#ôX—‹§‹i=®íl6+g“Yæ:®“çyxzzêv:–&Ä28e‹¢0yžë<Ïë<Ï˪ªJcL9Xýô‰®cÿaÝëÍ•û_1øå6;;[=—n p\‰]ºë+E[‚,ÀÍ#ÜåkOA'Pìz’Ÿõ~]Xñ ö‹Bð-¹²PY°µ¤‚qVr•Œ™äWTv âG–nÿ ð±á#lx€‡5 B"0èežN‘"2,9˜ŒAö"¼½="g—~àÓ EÓûsyCÒªÉÿŸç9e}µ—üÄÞŸ–Þ J×hsçÌ)€„’»”ô˜á³‹C¹J‘â²CÁ4=…S XÝ4%8ÆJkëq]/&‹éâzQ)£äÞî^O9Š(ŠúADa:ŽãH€º®mY–¶,˺ªª2Ïól±X$E©3­ƒj6ãÓn÷LFêúÞŽ5¿<Àÿó‚]BOâ©vdS#- Í­øK¦÷—›+!pA ‰#!B¤P, .`j¡¨ Ls¸Î*æÅ´Éœt Ê›ÃH_E­ÄESÈrσ_ûp?FŠ>Žìá¨J„!R„ µÖÖ›aìœŲ́õ £ç`K¤ÚÁDnL'€hÓʺ™€=Ï+’"Aë1?A÷‡Ñ»À&eTK&§‘þ¾€R4l×¾.–*QµüÌPXÈ—É û.,j(-T”¥ÆŽ3Ë8«šÂ1•ƒjKM_“¶ Üst°Á»½‹´{¸rÐÝ¡ëo‰ÈëHOyÂs\<DZBc¬µµi|ºE“sÅ5iqA¡GXHq„«b¯©ým`µ²¶deM’§då mò•‚?!½ÐX* S9:\°ËŸ-†¸t–«A{Ý ð°„ÔTÔ”TäH2 †œšŠƒÉ²ÌžžžªªªòÅb1ét:=)eh­ulCÚZ[¹µ6Íf³³³³ÑèÊ3‹ÅÖ v¢{}‡Ým_>Ø’|ÔCG…¥iWBÃÌ>ϘÜ_¾W‰fáóÖVr¹µ¯sóleð 8páÂy ³R[=ÊjFYFifÎऀ‡ö‡åÎD î…ˆß ‘â—CéË7vöýA°í‚-göÝ®y¡ë8«Dà€”m¨k#ti(e•³,¥Óò*Ù×ãtÌ¢˜£dÈ‹‰}Kà6­ÏÅ*&H‹šE>o`@ñ¶»?¼ˆÞ´T`¸¤`‡KzÄlÓ!"Æ`ð0kµÃ†’š‚Š”Š )2R 455º¶u=™LDš¦ÕÅÅÅÜó¼ÈqOJ)m#þk­uiŒ)¬5yU™4ÏmRwc­‡ôïGÜ;ŠødèÛ½XÕ‘KöÿoïÌžÛ¸²3þ»½c!A‚¤mIÖH9™ñÄÉCžR“äOÏxÆyJURIÆ’,Y¢ÄU$vôÞwÉÃí& J¦è•ª¸¿ª. ‚Dç»g?ÇU›8¼I€PXöÑšá;°®¢zZxä@߱Ϲ¥Ôú<)Ì(‹)õ ÎðUÝ95þ>ŸtÌ]ðÄgÎ ¸ÜÚînlܺ· ?î†ýÍÐïö}·¹"Œ<ã.®+”Ò&+´˜.¥s<*¢×lj;zµè%û“Ôþ8á³Ùí±Ù5¾¸4þD”–i9Cš# n¨pïÃ"€ÆºS%Pâ°$À%Á§ ¢Cx1`KãÖI3§î;“µ°ç¤ä,(Öj4`4Z—eIY–eÇ !DàyžW_Ô5ªZ TЫàS ÷#ÜÛ={îïFÜxf3ÊvD ®…ŸÕ©!Ô¼i ¬„=o„]¼IŒB@éXPiì˜òLüPœ'ã|AÁò9Tpüž¶±ù£LçîÂϽèoü½Î½ÎíþÞÆ½íÞî½MÿöÝ go7b£ëÑë¸t‡(pLà[ÇÅ`4¦¬4óL‹Û3é¾þ´ï¾¾Ó G{a²áÉe®Én =µ»×»[ÈF*ÒjAUMÁ$ +07R¿ôaà24†ÉMF…K‚¹È¯¦w¯²êºYQ]„ê4U§Öa×ãJ)/4‰1F±jüÖ°-àCÜÏ»DÆ!w7"no"­ê¼VM€¢¾|¬ 7Ööÿúã`MøÃKˆd5&橦eè“Xš³8ažOQâ œ pÙ™;À]øÍ6˜¿%ÚøÜÝ»÷‡ÎýÝÛÿÛëíüv;عÕs··CgÐóèG.‘'=ï <ÏFªB|Gàap‡»‚‡[Å-ÅÃH<ì9_?Øô¿jŽüžXv»˜Ð_}ò¥„Yª™&¥œœA‘Ú7“Æø° ÍpMù“¨È¦— ù´cÌj<×[ŽdÇùãÜíÑ÷¶ÙŽìu}¶¢‹•>¶Ö¿Žø`¯ ë¸ÔaNV¦P°f b¥ÖIÕù‚XÁIãEEv¸DÎKæÅµ8…éöH¯ø\B`ü·ß÷÷ï8Ÿ;ÃîþÃûÝ?ìmm~±g¶înšÁ–O/rñêÈ”®£W%vs» 8Æ^®#„ëBä :.8›.ÕŽÏpà‹hŠpd0©ÇQé‘Õ¬¬*•ažHæYF¥æÎíî¯}~©úÿËøð ðóâ}¤rpL@èvÙ  ;ôŸ vê.M@65 šaÇYÔ_ßå”õ‰_¬=ç`_?“p˜ÎÆ…HŸOÑ/ç)™:„Ñ|µ€ÇúêÚ™]à>ïÂð6>„ßlÝŽþþv'úý®ñ?ê¢;™˜²öIjŸ#pì÷em’…Ž­É ”®½\[—/>èn乃œ ŽSH›ã¦RšEV²ÈR¤YÀ,†ÿÖ‡™søµà}`ìôõ®ß¥çw=om®eƒ5˜:Д½KjB¬E‚ÖIPÔI±‹H“+˜—FœÅ’ù(7åÑÂp–$æŠ#ìÅ÷¼ýpß…û}u‡ž{[ý[âÁöÀ¹7ôÄ'##‡®l›Á… ;V°ƒÚ!oîªþêB® rW?¹‚ížË*˜)X”54P*Í2/‰ó©–'pªl>ófÐàjˆÚßððÏõpUTã]sð×–?hjólü„u¡¬…ß­_¯´Íúf²T‘ŒsÊóØèQR2/æ”úÄ)pêOã€pÌ€À½Í°w‹ßîö̓]Oº¢±´«¹óë2.4€ûæ½ þR­RºVC8>éÂÝŽ—0+ìð7SHCœW$E†ÔKëßl SK€+±n߬¯Ìo ýú_~Ùš ±6ôEÈ j67Ö¦“©´¥„jV¢ŽƼZdœ§#âéòtûñõlfã‚îØ.»àv{qg«£?ÚUè“*+üµ` È+ÐëÀžîö~°F‚¼¾_4÷j’hc÷jóÈQ2 I¡ÉÊ ©2p—à&7ÿoÐàjØò-mRI*%‘ÚAiñ®³e]#Ô$(×·7Úå–vߟ4è\aF©1OÇŠ§ãgé7$Çß ÿ<‡G\³nÞEÐ#ô¶Ùî~ÌnȰè^H!¤´Ùg¯ÖBášýY D—õ½Æ ÖbŒ-YÊ•|šJÁ",RE%s;öÄ[‚—ZûæÐàJˆ:Ã` R™°,3’Ê¥P‘¶“?.ïºzWàÞÒض€ËD±eŸ©„³ØðbRñí8æ`q¢zŠL÷á ùuó†ž3 n2ètéG‚з›«ÔÊYo’xE-üXö‘°§ü…\?_¸«û¡cŽ5ãæLr{ðëBa¦ ̹šþpœÚéÉþ‡[\ ›e.T̼˜1ÎŒ³EéÓ ¬!Yø¯Ò WÝËŒRÁ85<97|ý:áùä˜QöœÒ¼@8¯1âût~¹`ºÑ'ô:Kè<×4Q¬õÈUã°W땪kQ ¨ð¢ñ Ôêþ:Ò N8Œ!®@æ•`Ã,Í©ÌF#øKñ2Ø?9Z\ NdA\½æ,ý˜ó ¶:z òV{°\gêæå¹YÊX/1®“^L%_–<›s^<%]>ÅœŸÀË$ßÇitÀزfÏuñ]Û•å³Ò8õÛ®C·‘+±Ò ¥€ªøFµ TÕ'¿/°Á1ËŽbx²Ü`Ò¦ ̳œÊœB~ ùû3Ø??Z\ ¡A(æäêˆ×Éÿs¶ƒçôv|6AxiÔwƒw‘à’9tÑ^R*˜fp´< žMr^ÌåOÈù_¿Àüy‚ùk“ï[2 Þúv]ø/i¦õÈÕº³^®å ‰üø²^ÿe —v\Ñ8Ç,3#Ф‚8‡y Ë,£ÒG ޹VëçGK€+‘û ºKÔî!K·Ë«dƒp,DCRÙeØqè‚Àµ>X ­¯m¾Úmîv‘t© ©ÔÌsÅëXr°¨x>M9<=aüòyüœçðê󸄓P/#V…"d7wÞ,%±ÐõÃKÙíÆ4*¹ ¤b•3ƶúfÒ:ÀI‰(SiOþѲbš$Ä“3äÉìÏlùÃÍ£%À•_ãþõ9,¤âÙ4!.~ÇãÑ'Üß ¹½á±Ûsèz§&AûÔ¦é†äJV°,`’jÎâ‚×IÎy3«FÄê€ìà9å¿}ƒÞ?‘Ø Rã-±m‹}A¾æ=5ϾÓY]od·©‹¨ê«é—¼ø9mÿ„R¶Í“¤€Ó™áh3IöÉŽ¾EýiÊ_zúÃw¡%À•(°OÁÇ1:9¦P†q$Y|¬9ÏcγMn-»ìv¡G7pðQÀ ŒmQÚPjȤ!­4ËB1Í ÎÒ„q6gžO)ã¿„GðøŽ~lL]Ie JYQTšR ¤$}W"Þ"AS«©êöÌ&|{ñü:=¥¶ü$ÖœL*Îf’ü9rùójyÓ¾ -®…FD9¨ÔýþeÁló%ÅtÃÙÀÛ ëwé¡çÑ,úª´B*E¥5eK¨t‰Ò9•Ž)ÌŒ’1Ò9ƒñ¾œÁ£Ä®úÑP R”ŽIËœ¸¨ÈJR‰wÖ3}(Öz8÷-”L–p:•¼ž-˜Ä§ò†C ãBK€k!Àž)ýQAnÆdȶ <§O'èâ;BXH­êK¢´Dë L"‡4FŒ—PÌ0b¯øFþ0[ÿ@ŠÒ –Åœi–²È{ K7úîÿþw öû"\ZC¡`’ÀáHq0Š9_—/€3ñAØþ Zü Œ*ÌŸfp–Â?à^tPD¤2D©÷jŒQõÎV BÚ© ¢´¿ç« ^•ö^®`ü6†$H=c‘Å3FqÀ°çú«Y=×Ìd¿źŒBÂ8†ƒsų“‚£É‹ìk ýW´8‘ÞtéÃe´øA( œTàT°“Øö<ŒñP¢ìeÖĦ±–©ç爺ñæ¥o€£Ÿé} A†r'dê€I¼ÅËqDàù8®ËP4Ûǽžñ^¿ü­Z§KõÍŠ£RB^æ©ætZq0^r4;erþ”êô&Ýg¯ª›ªûÿ.´øQ°c¯á?›Ù¤’õNµ7D¨[²n9gü¼™PWCXbÂ1:Æ, xtÜ!-}T: ­×]g5Àè¿I hê‘õUH»âh–hÎç’³yÁù|Á4{I\þÕùÌ_ŽíÐ[§²¡ÿ›+}~Zü(ä¬Þ×ÉÿÂH€}‰btçÌ÷Ée脟U›l÷ú‘Gä;øžÍ‹‹Lq­·´ Ò6[])(¥¦”š´¬˜§%“eÎù"cÏYdçä‹gèÑÛhÖ“ Ž>(³gâÇÿŠ."`øLÀ?ð›Dç>QôAç3¶»Ÿ2ìí0èôèF>‘ïx·îNh’wR J)($”•¦’¢Ê‰ó%³dDœM(ª •9£2ǨýcÌ—gðh }CCß®…Vü¿FŽ^Â’1t4Å `´—o͘åÑ·ˆü¡ïxŽBC›Ç(¥¦’ŠRUT² ’Y9c™QVçÀ‘`|𤄓-u¾Z ð«@ °£ôÿ¼û`ÏÙÆ›8bÇéá9§YakÐF¡M…ÒZÛ¡5ÆS tL%gh½“ÁË þ½€ÇuÍÒ‡{ò7h5À¯vŒª-½ƒr{ *!MtÛ@\O%Å®£ƒSZ'·—(ue„1Yý¼²Q­'|H™Þ÷¡Õ¿JDÀް#qmë$.ö@¬Ç ‹Ú2°ª’n®º¤®‹ÞP¤ØŸ¢Ð³E‹-Z´hÑ¢E‹-Z´hÑ¢E‹-Z´hÑ¢E‹-Z´hÑâ׆ÿÑøWã°ÿçÃIEND®B`‚pommed-1.39~dfsg/gpomme/themes/KStyle/0000775000175000017500000000000011571653265017330 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/KStyle/background.png0000664000175000017500000000276211571653265022164 0ustar julienjulien‰PNG  IHDR\r¨fsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<oIDATxœíÜAOY…áSÍ(ѸĕDã†ÄÿÿcLÜŒ®ì¥Á éÜYTÉÈŠºf8ϳéªáÛÜ·«ºoõ4ÆÐi³öÀzŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL Ø_úÄiš%9Jò$Éa’‡ËãÁíŒ\a—ä<É—åñS’íãóŸü±iŒqóƒ§é0É³Ì ÿñŸüCàNœ%Ù&ù0Æ8¿é“n€iš’É»1ÆîWÿ2Ó4=Mr’äÁ­ŒìÃ×$oÆvе˜¦)I^&yqë£ûršäíµëüª_,§ü¯2_ëÿoÛ$¯¯º$øácÀå•ßâ‡ûã(É«em_rÕ>€—±øá¾9ʼ¶/¹€å ?×üp?½XÖø…‹,×ý'{ ا“e­'¹|ð<>êƒûîA浞d À²Ãïx­‰€½:^ÖüÅÀ³Øá-2¯ù‹x׺%Éf¹«Ï=Ðåñ4M6ñê­Ž6™ïçú<Ùdþ Ïá&ó7ù}:€^‡›øüZøV`(&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ Û$Ù­=°ŠÝ&ÉùÚS«8ß$ù²öÀ*¾8€^ç›$ŸÖžXŧM’íÚS«ØnÆŸ“œ­= °WgcŒÏßö8 €.ÛäŸ@b?´Øe^ósÆçIÞ¯9°7ï—5i+ð»$_יؓ¯™×z’ï0ÆØ%y³ÆDÀÞ¼YÖz’Ý 4Æø˜ätï#ûpº¬ñ WÝ ø6>€ûf›ym_òCÆIò:"÷Å6Éëem_2]õÃ$™¦)I^&yq—“wê4ÉÛk×ùu¿¸8`šž&9IòàÖGîÊ×Ìoø}üÙA¿ @’LÓtäy’ã$·2pv™÷ô¼ûþÝþëÜ(OÓa’gIŽ’<þÓ [w–ùZÿ÷M>7ñ[¸ôÄiz”9O’&y¸<:C€»³Ëü_–ÇOI¶ËM}¿ío§Ûº×¬M¤JIEND®B`‚pommed-1.39~dfsg/gpomme/themes/KStyle/brightness.png0000664000175000017500000004111711571653265022212 0ustar julienjulien‰PNG  IHDRºÀ³·yVsBIT|dˆ pHYs¢¢ ‹ªØtEXtSoftwarewww.inkscape.org›î< IDATxœí½y%G}ïûÉ:§÷möUšI#Œ4è! „Ù‚ëwYüŒ-Â~ážµ!ã0æb _l?@‘D÷ áû¸÷…yÈøH,…6ÃÈBBÒH£ÑH3ÍÚÝÓËYòýQ•™¿ÌÊ:çt÷9Ý=¢ROeåVYYŸüÖ¯²–£´ÖÌÕFGG`'°Ø”ýõι¢[±æ6žöíŸO%ªUÐGGGû€ÿüGà6Ìgƒ+¶b ´G€¾ üëØØX½•BMAíþ/àc¤Ê @oo/### 000@©TšwËW¬½6Ÿ³ôrµJ¥Âää$“““œ8q‚J¥"“|tllì5«§!裣£ÿø"pÀš5k8÷Üs9ûì³Ù°aJ©…íϯƒ³çóþ-ö¾Õj58Àã?ί~õ+¦§§MÒÀèØØØ#Ee£ ŽŽ*à£À'dxx˜K.¹„óÎ;ÏÂÝ××Çðð0}}}”ËeÊåòŠª/#“Çu¹…[mg­V£^¯S­V™žžfjjŠjµ Àìì,÷Ýw?ûÙϘ8üáØØØ?Ƕ“=sU¾ü]t¯|å+)•J(¥X·nk×®¥««+Úð[zkªå¯µ¦^¯[ÐMüìì,ãããœ:u €©©)n»í6ž|òI |lllìSa1ÐÇ€?*•J\~ùåœwÞy@ê¶lܸ‘r¹mÜŠ-;]¥fmÖZS©T˜¥R©ØõãÇ333ƒÖš{={ö˜"ïû²¬Ã}ttôcÀõI’ð;¿ó;lß¾¥[·neÕªUmÞ½k·-gÈÛÕ¶Z­Æ©S§¨T*ÔëuÆÇÇ™˜˜àG?ú÷Üs@xÓØØØ÷L9 úèèè+€».¿ür.¸à’$ᬳ΢¯¯¯-\±ÎÙr€|1Û0==Íää$€‘øÎw¾Ãƒ>ð°sllì@"ÊÞð¾ݻw£”bÛ¶m+Ÿ¶T_Úü-æv{zz ¿¿Ÿ¡¡!”R\vÙe¬]»`ðqS&}ð²îîn.½ôR6mÚÄààà¢5~Åæg‹ Øbn+¶ÝR©Äðð0ôööR*•xõ«_m²\;::z.8EÿÀK_úR[`Íš5Ý‘[¸-6l®>Û*—Ë 088ˆRŠíÛ·söÙgt×$£££Û‹vïÞ ÀÆÛr3hÅ:g‹ÞéRoo/]]]$IB?\pIþHýí[·neppÞÞÞ—e™[§ ìDí»è `T½¯¯¥;vì0÷zν8^pÎ9çXŸgÅ–§u ˜åTç|\šR©Dww7J)ººº(—Ëlß¾Ý$¿6¶BzCH)ÅÐÐм¸bµvÙ®z:ö|­»»Û[®^½Ú$Y&}¦Ün2­Øò²…‚´ÔmXŒz »æq႟Q&odppr¹¼rº m© _`Ï¥¬RÊþÖo¶”é(XyŽeùÙéùR–M’„$IPJIž{lH)E’$ñZ°O~úËô$³ó.¿b+fìÍ¿ý¶oÛÊá£'Ùºima¾Ø (b¸m^¢Bw­]խد± ôw30ÐÏ‘ã^ü\Ýiž¢/È?Wi¿<ØÍƒÏ´vA«{‡ÑCI”‚D¡•ÕƒR$6,ý/P(Tâv&=™0¨D¥yLþ¬b[Øò*+¤‚í§i Ü6½zÒ8”(c`*s Ó…=Ltúh.²u­]z: Ô5Mݤ™2uíÊ›x-Ê™zêézZgVŽ4]»íÚYn+åÊ”ÛÉÚƒ†z='ۦܾkGòø’Zkgü—½¶Ìv Tî™Üò¶MÑ Oéâô7Í?<ÜËÿÛ™”Ë%´R$ÊÁkÿÒx±®LÞHþ$W>2 Öå Iå­‡emÝr&W.í‹,ÝvN¶ÇÁB$Àm‹ÖØèzQZ=K“õÕÝz=X×\­I‚üuQ§+¯QuÓnMZa¾ ZkN œÍƒ¿8@e¶ùYÿØdú¦Z©Üøåž"°µÖ9áN¬ä™ÙzZ¨ª¿¿›ìÞJIøSFmDsÍÿ^”Yh±n“µH³2åâ´—A»2¶ ¬É #áDU ˆƒC{À˜êõ@Y_¹P~«ÌZì‘} ;ÌÖÛÙwòùeÿÛ`„³Ü6³˜žž.v·™Rin×s½yÆ[¡’‹aÝ=åòrItVÐáAšƒ‹—U‹&¢Èž‡,.Ê+ Û‚Bµª_ s](¨¯~áÁl¡=äóÈÑíˆé&_=ŠÆõЧîHÄW¾;½möõwsî®ÖÍl‡Áß9E7>qI/•^pÁº»ÇUDå„)~°t$³w ¥µ)ÉÄw1¢ “Sç ­î—‹ªzÁRÐ-–"ìµÉ^‡JXÍ@/Z—µÙ™ WÞÙÀP/gí\Ï|m®ªnønÛÅh+®ËöëèíëFÊ´Ei4 tVTiÈÖu¶®²uDºét…¶€©’»«¿4WAY4èÐyV²a‚KÉâ¥Ù²ÎšcŠº>5ÊçCaÚ"¡Ti Ï ~8Wi8p ΀Rüj´¬*l7XÂíºñT_ÃÈH?ë7 qøÙqšÙ\.Feþç¶_Œ)úðHë7 Y>,rÚ -àKÛ˜®§À§ëJ;Á S£ãʇ>ÛµS ”üʴʆÓöꬳ3Ù(ÍÒlQTÁ2Л¦Šu﬑­GÕ¾AØSTA_Fš„ÛWÜ V[Ä#×+ë Ävíîi‘Ÿ ?°iË*Ž;E¥²°)éVBYNÑuJÑ“D±ýìuîøkœ’cDT—퀜¹ÐÙÐ ÛTekÎàÉÖªÛ‘âZ+‘/§Ü2ìM æÍŽU¡êZ¡TA¹ £˜¢V`/ àcÔTº+žtç‰iWk¾l¶`ßüâqe/•¶n[Ã.îÛX×5ÛôGø8À¢Üóß²u½=éT‘9­IeÖBæ£î zçˆS¤Pj3嵪.àwK˜Ežv±Uì@ÝsEUv&ЮfÄÜŠƒDŽ„Ô¸`˺„T{ax-À·ýˆÛ `mTÖ;›¸€(.ad¸á‘>Nž˜¢ÈZQìVò´]ÑC×¥··‹›G²™œ2+-Ä•&Íw*hýñôŸPÕµèH‚´´\s°sêo¦õñƒá£ZéÔkÉŠšñVxä –ªžSøèîàæ§2{ îÉ2~Y¡æŽMQ† >w²¶ÅÊÚ½+8¤i[ÎXÍøÉ©0Ùæ‰v]°cÓ‹ÐNEÏnš„¶ný@%ÀÌÖµX÷.,3à­ð\”fyµÈ+*£8úLC#`kY6{ĤšGâ³Ý+.nFÅ}À¥²Æ\—4ºàBÕ@‰wÇkTs»êÊH%öÜ#o§´¬ÊÒ\QWW¹ÄðH'Ž·OÕ¥ëb¬ãоz­yT2.ZÞ=l|aéÁèÉeÁ…eÌm) kïßì.K^Í•»&cRöHD1tHÀÓ]ЊbÐÃegòA7E¶eƒ XI¯=ã¸Á—%,‹WV«V‚ÞÊb#[}x¤/½Å¯uôÂÒÁ ¡w°º‘ï|kå È_XŠ02ª¸ û˜ÇÒlÓE͹Y3üæªL…ª]º6!´ˆ<‚v¿1Ø­ D^Í=Å ’µ¦­²˜Ü¶7¸Ò¼Ý”Ë Õjø©s¯·EÅðN/JE_ˆÅf]Ö¬p;f|² 6Ї°ŠvåT]º8YE0çÙyص=;4*‘Oª¹HÖf–E4'Ý\¬_µÜE·{hÛ¬¼ªûP§Û‰(½9˜…â{’ ˆÐ}Á¯Çktlh—沊ë“ÓPŠ‘UýyÎZQ–o|Û=t]’D14Ü'xò/,ɰr›"“Wu ¤HËêðÜ–X¥-„Z•‡Ýή¨µrðko|j´À¹iÁÁÐ~@ïͧ‡Ð`[µGØŠ+ # Ö¨B‘óƒÅYo«Oî¼WÎÇé‹‚úÞͬ¥F òÑñ½§§œ>~›nÞx°þnªxRyMÇE\o ¸2®[•‘V±‚Ô%rZmXì…£™òHàÝÒWs¯ M‹ªn…¶ö@Õ}Ø›æ¿Hž\ccƒE´Mî`8°d=ZCWOcÍ]¨¯Þv×ÅàÔÕ]ÎöÓÁ*ïv¦!¨ÈkU]øæn HÝÔ[€·ØG÷oí@㊙Afp(¹ QŸ„?Ýì QÐ¥¡ÂÉcÕ\Õ#P#×cpG õÈ4Ko]d"l~y\š,¹9²Þíê*åî”Îe*QÆ7¼aÔÎ'»ºKNòÒÍgýà:ªê€n6ïí)·ˆ—y£@³)Þm}¹”Í1E㩺iªƒ ±ñ–9ðFõ2àŠTÝSo‚õÈ7vk¼A`ûQoÛŽu1ˆD‡ƒ{:pûYŽ€^ØWÂÌ/cÔj5û£¡uìb´»«,öÕ‘ÒXÕMg6¾°T™ªjíܧÑ1°›¸%þždĺ_ÍeÙ…©…]´©Ywjƒ@Õý8 ¸ã£‘ªCž‡³·F–Ó®‘ÁÙÀÖ¨¹?˜}5·5jèê*!'µÖT«U´NýÂ,åŸ;¼íÈ#¡ëRî*e¼4Pu™–)·ç¶„y²bÁè¯ÐYüÖ`«·ƒÛ¨¾ÜŠp€LþìZÀ»¼[¢|3Û0œBUÏ©¸ãÀ²i6NÄ(p#PK…¶µ†åeO¸Ñ¤ÌH«V«ŒO{·ν3Ú®F(ìvä .~´œÛ&f¿„š‡ÅùGæyÌÚüP—Sô©©J&ŒBæÄES¹.IìÖ½•:óbƒyV<,ïÒší•„ÛSó NÞ’n–´˜^lõéE/Î€ŠØÕfªn†PG©êž¢zñE7Pt‘ŽÌ‹¿¨Žü p’žÆÍÎøSƒ²ûæ ù¢ùèÓSjÕª\òå,õ ´SæÌ¶·Ùøå*S_ÏÇù陚kÄ3-ᓉ¤u85÷¹×¶‰i9¸Y3p$:íBÀ›.åzÞM1ƒÁ.’Š^0 Ç.m¥œ‚^–;(˜Aá⧦f Õ¸ªî¾o/¦àQ111ÃȪ>*DaUbÜ’T7ªþaMòˆ3ƒô¿µs‹lùPÍ¥ÍÓb_SîW!áÇÈÂ%4‚>{cU+zòfê »½Š'ëpj2þ¯eìº8›œ˜fdÄü|c¨T_mœ<Ì:,W»RÒgwy,‹YÀ_ênÏx£êá!«æY^¬ËæÔ” /¤IÑ“±>ä.ÓÜUg j‚õð4HkìÖä…œŠËü§N5þ\][]—v€.îÉÓlØX§\NpG^×P¥Óty:oõ6„4î¹¼h†lQì©Åt ϶è| ‹LûÿÄU½!ì‡U= vÖ£9(Cȱy=pqÌ|Ù>?5UÉùç^ÿ´AÕ; èþ›Ì^§R×ìBÅ.„=æ†4qkÄXSÁ´¢|+ͨ¹l­Îòš‹lmú¢µ>‹eýædyÖˆžSxíê 4¥¡’K ³^ñËÛFº¥•ða{ÆÕ?6Ù æù¢=ÔeìØ‘IV¯ßÜk ìyÁSúpxêÉ’EXáãÀƒÞT—å—]'_-Ôaûdš¹$7ò̃—ø È©xÖþœOžËã`5¼ÆgWŠÝž©úç²#âŸCo¡¸ ÖjuN;•½m”e´£ÙB¥Ú&°{ð/s[Š©¹÷€s›r϶àç•ð»²Àöá•ÑZûèp=<{l©þV¥#à;Øóƒ¥±Û¢Å™ ž÷øÑb5w»>wà ½}wFóö¹Ãã õfß\tð™å£Y­Àî¡¡)„Üòß o ,ž¤ˆåm~;¦l~>. ¸>a·ê0èGÈÞ³OÀm\SÖ/pUL¹bÿ\(tK7?ëqSßää 34²vøç }!S‹ /FóîC½®9øôqÎØ¶†¤”dL¨¿÷¢B¦® `÷æÆí<{`Ôf”çá–qÁ…fÖ´úܳ-8ø±µ‰v43­ýlv—$Ì¢æf€‹¸ð¬˜.àÃw]|µAžWtG¸®×ëHžU ’`Àd® À·hÚþcÖµ¿.2ÄÔ»À½¸y¨ºÙÆü!×ÌÌTxöàɹuŽØ¹„ ?`ÔÞ‹ÑÆV™­q`ÿQwqÂ.¿ÖqY,¤ë~Þj.â Ðl7ŒÒ‡j{¶E“oLØÖøŠˆòšH à¶áLuóƒ ¸uaÜLˆj¸®ýúBBŽ<³³U=s‚z}n*°Pÿ|ÑnÙÔT…'÷áŒ3×dï 6òÙ[Ws]nÑ•µ>·CP¾+“æsîŒÉîVLqkÚßnþÐÄtJÕC ¥+"ãízDѵ¶ƒÄWógq³3Užyú8µZkŸ1›ï¬‹±E½ mfºÊ“OáÌmk|ŸÝ“è&ÐН!7uèÃí2zw?EÙÜËFYÁ(ø¸4Ó\U¬áž…0çê ÀNÃAœ„³v“'tSŠ`7ås ç=ŸgúÔ,ç¡ä~Ì_Õ;ø†ÑÜL¥Rcß¾#l=s }}]4œeA$åâò@#nø@\ÍMØž2Ÿìܸ„:Ÿp—µ|â²U“)H±äŠ\Üèp=€Ø @_»HMýó¬ìäø Ï:‘Û§9õÌ Ѫ¹ùfzÖv; دïn÷ãûïfsÊmÒõDî0èêΩºŒ/Tu·Þz«Ü2œWuÏUAS¯ÕyîðDÃ_•k‡µí†Q(óó±v*º|-O¡8zd‚ÉÉÖ®¤¿¿‡˜º[pÛñÞ£E^ë³.ÅjîàGÄ¥+®ê†Nzq0§Ø.JËd¢pgiæÙç®êöz½ÎÄø Gž見›¶Î7 ÁÅèR_„SÙÌÜLW* 2[åàÓ'èé)³jU?ýƒ=$‰òÕ:ÓÞ¸7þÒ¿Î:æÔœþ,Ÿ'춯ƒAè™Î‡bÐçÀv í’%ÐqÀ}Ø ÄЦLŠ×êuÆOLqìèdÇ»ëíS«áBE7‰óµ…\ŒJ ­šg ‡i•JçS:~Š‘á>‡zIJFj³ sJ,gY"$ð>XD8 \  Á-Ò&zîè ÓD ¯ê‘øê‹ox¨âµJ'NqòĵZ݊ŰexÃh½£j•\„M}ò®kÖ5Íñã§8yrŠÁ¡^††z)•KQßÚͨˆêƒÞ€!§å#»Y¦4ä~ë,øàÚØ ÒSuq’‰ßÅî“ôí½›F¦Þº?qbЉ‰i§’lÍ÷í;L{[o%IÒ¦GZWô¨Š[ Uî§¡$œ09>ÃäÄ ýÝ öÒÕ]ÀÇýq©òyècaçãËiÈ´j÷Ã\síEŸc];‹•y U]¬PK…70OOW?1•~VM¢üçu„$ØŽë´º·í†Q§Gf¸ñ˜?ºXÕË ˜žª03]¥»»Doo=½]éïœ5ÇOUCîR‘šûÊîô¾ì%âÓÄPÐÝá'³m¹íÅk?OLE| v4ÌÎV™žšåÔT…Êlú%d•È‹t„{o~YÿÅõW'¬í³. 2 eQÏ÷Ž«xÞm‰ÀÆU*uªÕ&&g(—Jt÷–éí)Sî*¥¿”gU=}þÙÿ@º®r7Ù¢Ý7‡ïC8žcÓ`pÇÖëºÎìL•éé ÓÓêUm>Q¤×ZÞ©̰žÛÍößÖY—vX3×%qC—Ń7î¶ä —®N–^¯×™™ª03U!I «»‹îî2ÝÝ¥tÖ&„^*{VqìÙ–´~ÙÁb_sˆå…ÛO}ý€øœªËú T½^«13ScfºÂÌlÕº*ZCúxQ6¹*éUÙFÄÏXZu'¢îæE”vÀ¾À‹ÐŽ(z£‹Q骴¢â…£€{³FÒ½I³ÛéÓ’ÕJS§ «œÐÕ*})Q¨$Ê€/âå©Zc:hÑrðë\\TÕøîºÖÔªufg«ÌÎVÓ)AíNíf„[,Äî\—E›­æ%ÜZ˜Ô.w¸­³.nççgEwFCÈ=ˆ Trô{1AŠct$Ö^Hjt]S«e`×êÔêšz]û3.Vïb’à“5ÅÀ;¨mQω©»¯æùÁ±Pq_ð³.x ¯Ü¾Ožƒºv£2±õBÀ Ô;Ì“­Y å¾+‘`D¬VKŸÐSªäKRˆzš´Á(µþ«k»îÍikyW³N]ÜŒ´U»þ³xY÷ƒTy-Ð` ~¼Øg?c ÖBÝCw„—g¾°/dÖ¥s7Œ¼?|åδƒ5ŸW·Ôƒ=x>ÎÖ“VaëIãm¤÷üv Q­çV¸oý¨jÿŸ¬ž0‡"I\|Œ³è;åJÔm€!ÜAštg0ÕyòûrZVH»hòÎöv<‹øåh yT¹‹\•"Î9·%<ÍQï@¹Ãx¯,ÄÐaZ z–cWæW™Ï+AÎòåÂOm!SP¥”oàôT¼÷ò¨vn4íi‘Ò·»Ì6ßY—èÅh[ÌÀçÁž¿ u°\¬¸)QØ£€7pY"pÇÒlY÷Uꂮɭ¤gà"ÄT0fe´äÏÖ ¡ÇÎi¹-K¸N¿>&)r7ƒÂÏZ†êI,:SÌö´{®êí÷Ñ[Uu%!k¬ây ý‹ÌœÛ6œe¡%U/[­¼E,¢53ÊA"8L“:£‚yí üÐçó×ãŸ2Ä.I½Ð'—ù«x¬\+âÚÖFíPó"Èó°7vUœ† IDATì€ó”èp½ðæp+[ÈéÂd¹sÇ5h•u£ öÀK6\e‘€xÕÖº&¡šÇAdàØ3ˆÙžpM›Añ¾F ·{ØZZ«ìµõ†Qû=„<su|v¿W'´¸ïƒ ¸EéB‰°û'xp[ì?%èsÐjž­KøÝ rÑ™)´§®Îg· ¶À®†¬?ˆËïD¶I-·çƒÆ4SøÐÊÛò|L·‘:©zj/^¸2E°»6ˆuʶuƒ{¶êƒíïļ„·(á@‘@CüâÐøÖâËOtxHegç–Ä€7AmŸmq´+ës{ê>/5o—†‹`oë £ØÓ^ó5Ö9ªº:§âR…së>ìàz‡°§m&>"]ɽ³A"Á¢™O´TM«æ¢ †;•ä³õþ¬Möja·7P€—þ<ú¸€{û§iàÊ`Ãæ…G7'ØÛ4µbzq¡ƒ·±ªûùrâxYƒ"<¦ðNÅÃõØ!ÐMU½a/åH‘šãD5ä"ýD‡Qs鲘t,dÞÙÀlG35IàÎØ™ ¢Çr¥µâºåk®ìm½aÔþY—FÇÕ™\à¦ä|ðp@tH¸°ÍÜ»·Þp±a 0í-l^«ÞæÂÏ®§ ¢ƒ×ÀC¨…ZçU:¼¶ûÐò<„mTÌ• wÒ nô|n°{µµû†ÑBma¨·…0ï¶é¯pòþ¼ÜSn¡ú.Ò?xûiC‘¸fä—ôî8fS+¹;Ÿ¦€Tó ½ï³ûþ|nØr:ëΈ«\Ïwo:?>W˜å©Åi‘J´í†Q»€w`Ï ò8ì¾y Ü­SøBU÷À÷ã¼ýŒ•zãÁm¢HpOÍ•ó¿Ý¨€>§îiÍNÍ žmq.’ÇEQ¡šçÓŠütÓS¾Æûñˆ”°ú¶Ý0j‡…®‹f¢<(ÍCP1ð£ª^¤âQØ#>zpf0õdQxpGÀöúH…ÇAEâsäV´øÇ :á½8ø•_;¼³îâS_Gjà£{w<w&çµì“7Žsg!ê¸{#¶´ÀY—œ¢/Ô !WòDY¥-ù³^ƒ£32àŸ ðÓ\¼ ›º0e%ÜB­¥«Wõ,ë`=¢˜¹ç[@L¦ZÀ»#j”>u=òuÞ µ#(Òt»Ýùº'ÍÝ”h¸ÁCÛf]:y1šƒ<‰ ‚VU=¦âbð´ xgáðúªže²ysà‚Ñ ]¡lRÍ!+ãAëÝè  ÊT^ú×9…74i-ª¸—WÖSq ¨GÚÕJØÙUsWõŽ)º´äªòd Îb‰¬ËÆEàÎÁlâ]ZPõjSo–',‹4%= Þ‡Ž<…ÚšìâÁ.O3Cuwµ àEœAÕJv^­‹oÉÉD=[&Y»ë¢!…Ê ‡¶Ö‘ÇtÛá¯CÜòFþxªÇT\Â*¸Ù*—nÚn ³¼ÛLN飀ÇèoÔOÙñ0~³SŽí4=Päða-•ÍÔX5vàKàc®Œ’Û×.>oiìGm¶g>fTÏú$É¢Lcس+Í™ äUtq rÃÜò˜‹’Wõv±] ;.¿¸gùµe|°}Ž›©zãŽÊÁN(w ª&.úr… zoùjžñYŽŠfjLAJ àÊìP v"aÜ) „[¤dŽ9C³6þDºSÅÖÁn¹Pè0?a9òñnŸh¸§êv»Gʇº5UoÒSEj¹ IïiÚ`öB¡ÃmÔ©òÁ!k¢âòLáòF‚„½—E¸hn]ì¼)1OÈC–Û6½(­æ´Ey‰–/PõPÅc°‹3Sm©Þ TÝßîe°ôA°®#‰† +Ê»Îôoõ“çK²¨ÈE¬§Ä5*Þí´!v!Qëœ R »¶Âö¤hK¾Ïæ£äQ×¥½>º®•p|bƒA ”è›ÒÐ/·ƒÆ… á¶ÇÜ©¸òÿqûžòÓÀ-TvAf>þ"süΧ|ÒÑ1'G Á âLã¬ªš‘¢²y?6ØøìJåë 6hŸ«ñ:+Tú Us„¼£7Œœ…FÂ4vaPî[*Åå‰ÂÁú\÷àn‹ÌÁ,@ËÝcÂhs6±ê.UZðò#ëÀçíCu÷ÔÜDi"%h€ˆKT:¥øç:WT·ÇÕivXÆÎòÎ]ŒŠÖ¢À/rQOTÕ¤ÒïöÎøiQ؃xÓyv7=¸‹â}ËûÈ™K Ïþ`oõ» Mÿ1\…Ps‘Ïރѵ­øžJs°å¿¹|Ê)¿…:ÌcA–€c•ug”-!ún~Jn¬}_Kçbo”]]xæ!oìÇ[CUéáºÍï…  òëºG‰°ÛiçY6è#‘%|¾BŸÚ€BŸ÷×Ýܸ8çY™ 57e-'a÷|vy ²½wYì£Ä üu3<¾œ+ä‹tè‰Û"TÓ*è| ÷[åã @·ªÖ)¢¶¦ÙhD¥suE|vÔg7(â/âÓýN˘~ä¶8ÈcÖÝŸÖñ¡*^ åÕ½5ÈcîHv tnìÀŒÄ¥;ätÊÅEô[ÉEQŸêL½|…vÀ‡¯»¥*œƒ!Î!*«žÜ®‹¼r`5w]ˆ§«0oî”ftÆ}ÞG÷êü!o»¢Ç§uBO âF7wU\¼Ü^>d>ò€{>|ü,à­Ë(ê,1@B5.„´+,¶éß}ñÍÍ»#b¹5Sv‘¸,.?rg+üYj–7ö5ö¹BÞöY—èiÂJ9V ãÏ옪“Aëûî9U·@7Põè‘ùí~ªtcØ«:ŒÇZ‹õø­~rKW«ï¾¸8=|ŠàŸ+ì*Ì‹Ÿ'óÉs7ƒüÒ…Q¶>¿Ÿæ yÛ=W¹¸¼;âo8Fªñ\ /vUüA •\ à2Ÿ„[‚-UÝ {ÞÄqÏï¥ 5‡üB‘OYxÀ‡PÝajø9¹fq¡;R<ì³7X LJ¼‘ “·…(¹±yÞ¬ò¼;âhÈ«ø|•¼‰ª{ªä.?w¶‰“‡±à¦…oçKU6aïæÙ€0 ˆoÃâxjïªfjNqºT_‘?}¶¾àâÒSø¸ cfqdwÍò¶¸.MGÂöEj—¾þ0O1ø1¨c°#Úf`ÎnǦta”<.6o¸û ûOd4[~‘+ç‚ÈŠ¥0Û¸X·TDÞš¯OþHyìÄ`Né³|Ù€Mײ:„ ãW ;p>ÏËuié¥TS¹!„áÒd‘r ¸è¹©{òb/܅賓`{Ǭ›C£(Ü|˜(\Úr‘Oc„ó”<~\cØA^xæn ·Dì©ukí¹Oœ~¬“+›·¶½aÔÌZ®y*È@Vù[ýÁqM`˜xeó`ÝYƪt¨ðJÞtòËj³´u!/_ÌIÑç2‚Œ.{.‡•L›É›Þ5pn~zLÕ#ƒüõ"ÀíàÈöʶ+]waß›òn€Éð˜sI”òTÀ”Ã婸\Êóù\EÓo~¼ k“N¥%üˆA-ÏÖ­S“Õ%ûµíoÙ¼*Ïè &§¾ÐfõˆQ1GÈ#ªn^óõPá%ì˜ü6ì|#Sâ½w'rñ[ývù .&dß7—V {ø¯§ÜÑ—)²PV›ÓmËST¶'fF™=ËÖm±cEÎÇ|ýó–}!‡sŒ5%SŠÐ/|öf ÂÍÕßÀìTÜSõUÞ…ƒýÇ¥‹Þ§fSŸ½Áó-Ñ¡]ºÕWOÉã*ž«éFøáìàŠ ]ã.¢£.L6´TètÝy`!ôÊÙsmPõBE_ÈiB•µß‡éNP ð8 ½:%Ø­BQõìøéé¾øp{û$a¶€™H–E„ˆ —¦~ç¾@ÐÒÉÈŽR§Y\Öf§eÒ4ó32ž;#\ó elÏ`Úï7 ½7£#Z¿@È*ú|*wÇßW™ÙWOQ}méBh BÓü TݶÍÕg`öWn°å”\)ÿØ4¦yìSV}8Ãß#2í±–áksž’g˜ØÁHb—òŒ¤”,CÎ…1?BìŽëÓôâ} ê²¯lpLF=ŒXðiÂdåÛ®[X l6ŸYåÎÁžƒªç`7 ÏQÕýE¡Þ•êÀR@.óÄ>[Q¬æEq‘°PfS¯œ|ZÎ…±UºÇx@hÛÜN©zK£ ƒ\yAë˜$•UO•áª3.SøBž‡=t[|Øíx `÷\•VU]ÃØ×´üŸj1ôÛMøÓ…äñ%A Ò±Ê E¤xyµÝwm«rß«Ñb~rÓRÕ3Òuè «¹qÀ0­»m®‹h[\Í•ItëÒ]Éá2ŠÁŒ¢pøÍGQNÕ³vxpÛ³€Ùgåvž\0í#)Õ _~ν;jž¯þù-5€¹ü J¸T\»Ñ,MkÑÂÝI=ívV Àmªk¸Êê±}7×eΣó…|Ç™›ê/ó¦—W9kGÝSH ÝšëC7ìÀ°K¡2=žé¦°N§L²ÓÉ×OnÿñÃ1ªC¸‹LçbEûé.¬½ìîéÚÁåÒÝöMšËäÊé\y[6¬Sko»:Ün–¦u¸Mí·)Ëwöæ¿¿yÓéŹÆ–õôõö°i¼¦¨Ò[±9ÚB•ÜXtzq>ªþÌ‘)ú{+LW`¦** ýW-×âªèŸ*—#WÞ Fö7&Ò~º #Úk²/£éaš.ˆ+Ñ2(奫àNDr¬­zŽešl§·»D¹¤˜ž™qùæyÃFóu]¶®ë[€o¯t]0§°îpýKôrª³±´ñÖ³²Rª$µZ­-;µ^¼¨žÅª³··€Z­f}:LNN.¸+áÈ‹êYÌ:{zzé‰R꥓““¤Ï[,Ÿƒ¸^|>uö÷÷X¦•Rà)€cÇŽ$É‚³^|)!×Z³nÝ:À1 ìK€ÛöîÝ °¢ê§Axòâ:Ëå2«V­¢R©ðä“Oš¤ï&J©¯+¥ô³Ï>ËÄÄ„7%³Ôt%¼ù\ë<ãŒ3PJ±oß>êõ:J©½×]wÝýÉûÞ÷¾ÀÝ<ð¥RiÉèJxò¹ÖÙÓÓÃgœ8–¯Cú3K(¥>­”â¾û¾â«/¯ð äÍëܹs'¥R‰Çœ§žz ¥Ô´Rê ~íµ×Þ ükµZåî»ïRUoד+á……W o^çYgźuë¨V«Üyç&ú³×^{í“ ”úRªþÈ#pÿý÷£”¢\.¯\œ®@ÞR=KYç–-[ضmZk¾ûÝïròäI”RO+¥þÚä± _sÍ5?>pçw²wï^”RtuuQ*•Ôø•ð ä¨S)ÅÎ;9÷Üs¸÷Þ{yì±Ç¦·_sÍ5öŽ‘ +¼é¦›n®K’„K/½”Ý»wP­V©V«h½ˆÏ¥ü‡W o\çÐÐ;wîdxx˜Z­ÆwÞÉ¿ÿû¿hàW_}õÿuÄÓý 0T¯×ÿè‡?ü!‡æ·~ë·¬²¯ßùð äÅu³mÛ6Ö®] ÀÄÄ·ß~;¨!‡ˆ¢»é¦›®þ ÐÕ××ÇK^ò^ð‚X7¦^¯S«Õ¨ÕjúùÀßh§Ú>Ýêot ç»­Vl–g¡Çò7Ê[*•èî»›ááaÖ®]Kww7SSSüô§?å { ñYàŠ«¯¾ú±í‚póÍ7¿¸ Ø 000ÀÙgŸÍŽ;ؼy³…~ÅVl1lff†ýû÷³oß>üq*•ŠIúફ®ºê©¢² A¸ùæ›àÀ'€sL|©Tbppþþ~V _±ŽX¥Rarr’S§N111ªþÀG®ºêª»šÕÓtc·ÜrKxð7;çÞì[±™ö*ø7¯¼òÊŸµZ°eÐC»å–[6[€MÙ_ï¼*êõôôüQÿK!g-ò)[ñ;3\ïdžgžy†z½N©TúU¹\þ/,_Ï®¼òÊó©dÞ?írå•W>Kz°,íÖ[oÝV*•^ °yófººº<àBøbËvåYnÛ¬T*ÌÎΠ”ºÿÊ+¯¼¥µ^=}-ižåô´‘‘‘ýæqÑbÍûHQdÙÎ<Íòv¢]òÈ’$y.WèyhÏ[зnÝú$PSJ1“½M¾XP¶’§Ýƒe.õÍÌ̘G;ô±cÇ^>::úÛ£££]¹=lÞ>úrµÑÑÑà-\pÁUguÖË»ººÔàà gŸ}öiáV,Æ6÷îÝËÉ“'©T*œ::ú&àJàM@Ld÷îÝÌÎÎräÈvîÜÉ¥—^º$í\Nv×]wñ裲cÇþðÿãÇóóŸÿœûî»|Ðóß3;BúòÂcccÿ¾ø-n– ¿ûÝï~3ðÀÅ2~Ë–-\xá…\xá…œsÎ9$I£>Ê×¾ö5’$áw÷wí⿎vêÔ)þéŸþ‰z½Î;Þñvîôo…T*zè!î»ï>î¿ÿ~ùr1¤sØ_®ÿ‡ø‡û±Ùm±Óô÷¼ç= x)à/2ñ6là5¯y /zÑ‹¬›"MkÍW¿úUöïßÏ®]»¸ä’K¯ÑËÌî¹ç~øaÎ<óLþàþ z±+mÿþýìÙ³‡;ññq™ôÏÀõ_þò—÷t²½í´eú{ßû^¼øðBÞyçñú׿ž¾ð…MØÄÄcccLLLðªW½ŠsÎ9§aþç£=öØcÜqÇ 2::Êàà`Ëe+• ?úÑøÎw¾ÃdÒ·€ëÿþïÿþžv··Ý¶¬Aÿã?þãÿ 8 \.ó²—½ŒË.»Œ­[·Î©®§žzŠüÇD)Å›ßüfû˜ç¯ƒ9r„o~ó›h­y×»Þe_ ž=üðÃ|÷»ßå¿ø…¼èýðî/}éKÏ´£½°e ú•W^yði »¿¿Ÿ×¿þõ¼êU¯š“…ö³ŸýŒÛo¿ÁÁAÞö¶·ÙO—=Ÿmff†o|ãLLLpùå—󢽨y¡ìðáÃ|ï{ßãŽ;î ^¯Cz—ü]·ÜrËwÛ²6Û²ýª«®ZüWRœÝ»wó®w½‹‘‘‘¶ÔÛm·qÿý÷³yófÞð†7Øç›Ÿ6;;Ëw¾óžyæ.¼ðBÞøÆ7¶}O=õ_ùÊWØ¿?@øÏÀ'n¾ùæZã’‹kË ô«¯¾úeÀÿ¶÷õõñ{¿÷{¼üå/oûvîºë.î¾ûnV­ZÅßøF†‡‡Û¾¥¶ññqn»í6Ž;Æ+^ñŠŽN­Öj5¾ýíoó­o}˨û¿ï¼é¦›–+³l@¿öÚkßOêªtþù¼óïdÕªUÛÞC=Ä·¿ýmJ¥oxÃزeKǶµØvðàAn¿ývªÕ*ozÓ›8ï¼óe»O=õ_ýêWÍë³À÷w÷ƒEÙx[ ¿ï}ï»ø‚RŠ+®¸bÑnìÿùÏ?ФHGmIAÿûß¿øÐûŠW¼‚+®¸¢cÛÒZç^ä6ñZköíÛǽ÷Þˉ'xÁ ^ÀÅ_l9a9Ûôô4{öìáÁ¤¯¯]»v±~ýúèÃ^}}}¬]»–‘‘‘¦÷jÕj•/~ñ‹æ+Í»o¼ñÆéŽn´ÍûÅ‹vX’$_zwíÚÅÛßþöŽl#ÜÄ™¥ oÛ¶­[·òË_þ’Ÿþô§<ú裼ä%/á‚ .X–ïÃÖj5xà~ò“ŸP¯×ÙµkgœqI’D2¤ÆŸœœ$I¶nÝÚÑ3W¹\æ=ïyŸûÜçxî¹çv’ÞÑþOÛ`[2EÿЇ>tðµuëÖñÁ~°#êY¤àfYž™™áç?ÿ9>ú(çœs»víbÓ¦Mmoã\íàÁƒ<üðÃ<öØcÔëu¶lÙÂŽ;(—SÍj´_aܪU«Ø¶m›ý l'ìðáÃÜpà ÌÎÎV€óo¸á†G:¶±¶dŠ®”º ൯}-ÝÝÝfZªmV¯× ÝŽÅi­éêê⢋.â /äÀìÝ»—[o½•ááaÎ;ïõÑ~”®®ö¿Üb.6ç yQúôô4ûöíã‰'žàرc¬Y³†7²iÓ&6nÜÈš5kÚâ÷j­9zô(‡âàÁƒ:tˆ£G244d·ÕÊû¯­¦ÚovÊ>Ìg?ûYH_p>ó3ŸùÌ¢ßLZEO’ä2@mÛ¶r¹\ø¢ÀBl®êÖ,½»»›sÏ=—;w2==ÍÑ£G9zô(>ø wÝuZk6lØÀúõëéë룷·—žžﯫ«‹J¥ÂÌÌŒ÷7==ÍÔÔ‡æÙgÓ÷͇‡‡æÌ3ÏäüóÏ·b°}‰å]½zuGú_Úºuëbrrr3ðÒ ˆEµ%])µ `Íš5mwY¤™©D¹Þ%ìîîfãÆlذHÏ“““=z”S§NÙ×Ôfgg©T*ö¯Z­R*•èêêòþÊå2år™Õ«W³}ûvúúúrÛ5ûÑÎÁ»aÃV¯^ÝÑc`líÚµœ:u `¿F ŸtLÍ™‹¬…º1­äíïï÷m—kщºúúúزe CCCWsc]]]Ƶ›ÿ£“ °¥ý8ÀÑ£GEM’$A)E­V³ÐCû!l–¾˜Û ã”R¬ZµŠ5kÖ000°(}oìØ±côã‹¶QaKú“‡2¿¶(Û-•J”J%;í›__ŽÎ7oOO 088ý]ªÅ°ÉÉIó+O6Ëß [ª‹Ñ_@úæÏ£>ºèoü˜Ÿ˜L’Äsk øíœ­YŒ‘$‰ý¼²¹èíëëËÍf-¦‚K»ï¾ûÌ «/E–JÑ¿Oú‹ÕgüøÇ?欳ÎZ4U´ÅÞù47] ¾|.¦V«ÙA0yKÕï¶»»›®®.zzz oø,¶rÇlvv–ûî»Ïß¹þúë.E;–ô믿¾þñü¿ÿiÿþýüð‡?䕯|åR4¥¡%I…(ôñ庼Qeòfª÷À3× àŸaLœÙ¶IkôÂR)u3«×ë|ó›ß´?é Œ-U[–òÎèg÷~üã322Â\°TÍ™“…Ÿx[Œga–ƒ:ÏÕ~ðƒðÄO˜~ºø_KÕ–%}zñŸøÄ;HÑ%IÞò–·,èÅÝ[>vÿý÷óÃþЬÎþå_þå’øç° žGÿä'?ù5à €îînÞö¶·±nݺ%mÓŠ-ÌöîÝËm·Ý&ÏBøøÇ?~ãR¶iIÓPJýŸÀFà5•J…¯ýë\|ñÅ-}¯eÅ–—U*þíßþÍü ¢9~Ÿù‹¿ø‹%…–¢üÕ_ýÕð}à"·aÃ^ýêWwô½ÑkŸ=ýôÓ±/zïùØÇ>¶ä- Ð>õ©Oõ7’^ éEÞE]Äù矿¢îËÔ*• ?ùÉOøå/)£g€?ùèG?úÅ%jVΖ èÆþú¯ÿúÀ—ûÀ÷úõëyñ‹_ÌÆ—®a+æ™Öš'Ÿ|’={ö011!“~ÿÏÿüϺDM‹Ú²àoþæoÎ%ý¾‹÷Y©5kÖpÞyç±cÇŽŽ¾³bÅ6;;Ëc=ÆC=Äääd˜üÿïùÈG>rr šÖЖ%èû·Û|¸&Lëííå7~ã7عsçiñóóÁÌ[N{÷î¥ZÍý.À ð¡?û³?»i šÖ’-[Ð}úÓŸ~ð—Àë´$Iؾ};;wî<-?Q±Ü­^¯søðayäž~úéX–*ðß¿úÓ?ýÓ%y´U[ö ûÌg>s)ðqÒŸnÉY__›7ofóæÍlذaY¾¹:Øìì,‡âé§ŸæÐ¡C±_À€ôᬯŸúð‡?¼wq[8?;m@7öÙÏ~öe¤ÀÿvQž$Iذa›6mbÓ¦Mö…ˆ‹›ùÁ®ƒrôèÑFÌNþíŸüÉŸì[¼.ÜN;ÐÝpà /&ýVÈ›iò3’ÃÃÃlܸTä¶t´IDAT‘Õ«W³jÕª_kðµÖLLLpâÄ ûvöŠ[#;|ø¿?ô¡h–y9Úi º±Ï}îs[Hã÷WM'Ü»ººñþž¿m$¡6'Ož´OS6±iÒüÿOà_>ðL4É¿¬í´]Ú7Þ¸ý%´½±®®.ûæýàà ½½½öO>§¾­R©055Åôô4ÓÓÓî“'OÎõÞàÛ¤póýïÿx“ü§=¯@—öùÏþLô/cЇV.—íç+ä0qæ½$I(•J ¾‹k^ú0/~T«U ±ù<†ü[àóè3Àí¤pÿóu×]·ìæÀÛaÏ[Ð¥}á _ØDªð/Ïþ^tÌW1/MHøÍ²T*Ù4 Èjó:_í9à^ñ÷oï{ßûNk·¤ûµ=´/~ñ‹e`7>üý\ÕÒXø9ê{®¹æšG—¶IKc¿– Ç즛nZK ü…ÀYÀŽìo°ÜèhxBüíö{®¾úê¦S*¿¶z»ùæ›` |9v>KßG“)ÎX•äø0›¿Ç¯ºêªç:´íçýÿ°ëÐg^:³[IEND®B`‚pommed-1.39~dfsg/gpomme/themes/KStyle/cdrom.png0000664000175000017500000004616411571653265021155 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsÄÄ•+tEXtSoftwarewww.inkscape.org›î< IDATxœíw˜%E¹ÿ¿ÕÝ'NN;;³9²»"°*¢E2ê5`zÌÙÞ‹ý^sBEDEE.rDDXÒ²lfãÌììN<¹»ÞßÕ¡º»úœ33gÂîÌû¢?ñÛüñ{ÿsÞÁiͤY.Gÿuõö½@oÑú ‚Ïìã8ˆˆþ¢Û ôÈÕ_½èèz!3\޾ü£Çшè JG)ø D\>¾ƒˆ~¢køµKú§/7gÑ\yÍnFDчziPÙª ¡Î@ks-Mq´6ÅÑÚœ@SC †®A×4Acpÿ7MŽ‘L £™"FÝï"†F èéE_–Å1œÿ Dtˆ~ð£o¼î¾iÍä£\ŽX®üÉž—è*":)ª´UÓE]i,]T‡e ë0¿= èípˆirèÅþžìëÆÞ#سwù¢Y-rØDt5ˆ®¿æ[o©iBçäÈà«×î_Gį$Ð9eM €îy ¬ZZ‡¥ ê° 3]gSžnËâØ¶ë0žÚ܇O÷¢¯_èr8ÿÑôß×~ûM‡§üŽR9b¸êºž6"þeÞNÄõJ6|2ÉðÜU X¿® ­‰²×6-B&GÍqX\üÎÅ7qÀ€ÎMbCÌâCÌ`ˆÇ€DŒ¡¡Nƒ®U¬¯Ô†á6oë÷)€cº ‚èˆèÛ?ýšdî,–#€«®ë}@?%â]Bïy¤‰³¤;‰õkp̲úÈ’>“çèäè²Ð?h!›'ˆ^{ .©¡±N˜DNìñ³ï¿í¶ñçôì• À×ш®'¢5^ `Ag/{^3v&C×Îpì;hb¿‰’%+<\…WA0¿Ucl\,œCw{€ èš„ †á‘<þ~ÿvÜyÏfd²År8ÿÿƒˆÞóó«ßñTÕ™<'3€oüâÐ;ôÅü&Ž@[‹ÓNnÂÊÅ)ß¹¦Eè9da¿‰‘,”»"Z4$ãšTAwG ;* ‹®†.`J._Â{wþíid³År€ˆ úˆ®úÅß9gU!3€o\øK ú”ÚÆçÐ5à´“pâºz0©èäœÐsØÂî î(?Æ A:ÉÐX'”x¬t¶XÜ9>'[1Ö €Ö ÙlwüíiÜq÷fäóÅJm„Ñ[®ÿÑ»žWBf‘̾õ«Á8]kä*¹mÍÎ9­-1÷<"ÂHްmO ùbXé9¯‚Ào]:Z¤vyJ^ ‚y-–ÌŸ¸—¹¡‹O„L¶€?ݵ ºë)˜%«\!o$ßüåßÃ'œ £TfßúõP ˆn!¢Ó¢²N\—ÂKOj€!õìMB&ËQ²€Ý½&J&Iʆ@„UÁ¼V šÜPA`!èhÒ±´Ët¢BïÁaüü†ðÔæý•Éÿ ¢·ýêš÷n«Y¢Ž"™v¾ýëáÝ ¢ãUYé$Ù§6`é¯/ŸˆÍòEr•r8C88h¹ ^”7…šë5$ÌoUAk£Žå b^ÕP#‰á‡wàW7=ˆ¡¡l ¢,ˆ>𫟼淋MÕ‘/Ó Àwn©'¢; ôŸ¹c¿¸¶& ý[êÓ^£Ò²£y‚e7ñHRæ½}Š% Aà(}E¤ß©óÆHVv)Â4×ëX¹HQÔ(›U dsEÜô» ¸ëžMà¤À û>~õ˜k Û2m|ç7£ ÝND/ÙûD˜ß¡ãÂÓ‘Lx]#…"¹}ø€\2‹°LNô÷˦N7Œ—‡ÀЀö&\º— @\ωÔP§aõâðX„RÆ™õŒq#Ük´ãÙƒøÁµCOÏ` П@ôú~úÁ¹©œ˜&¾{cÆ ¢ßBLV ÙûKº œ{Zb†(戄â—ìyT®)‚ìï·„iä˜>å p?äÿm_·£Y‡ÎìßxÎyõ)†5KüTÃc|ºÄ mÏ—ðÓ_ý÷=°5 €h3û›ë>4ëÛÓµ*ÄOœ§:pÌÒ8Î?ݯüÙÁâÞ‹f pÞ¹ÆÀ˜èÃwFZcž;‚¦Ùñ¼8áxš}Ý¢I€}/ñGcÞÿ á4q…³À'RªŽ(Äâ@¾×€d2†÷¾ýt¼ó-§!ìZà_¯}Ë·^^ù.G·L9ß»1û~—ªŽ­[Ç«O­sɸ]òyÊV ‚tRC*ÉBÈJ“~kL“ĵ¸÷fá4US¡ŽˆˆÈÈü÷>íÔcð…O½ ºZ¢®Þ àϯ}Ë7ß[9ÅG¯L)ßûßÜ)¾®:¶h¾{~ÚÜâœP(ˆcÁ·<@Kƒ.|n\WƒòȰÈ”Jä•òQÒDª* ‚Œ©àWDæ0- “µ‚# »[ð¥O_„ÓN]u5À÷/¹ô_s¢™2¾S¾ÀB-Ä–F g¿¸šSòsB±Wã}%.*CŒ3¤’ž)T mà…q 5Æ¡ÿ!©²à µO˜øÎæ!òΖxÜÀ»ßv:ÞpÉ ËÝòòKÞüõY Á”ðý߀ŸX<–L0œZqñš‰%ËS.¡lžRV AK½æWzZ”äv@LVŸB!à˜mýi9çÌõøÀ»Î€®G¾òË/~Ó×fSU|À9Á@]Î}i MõN»èß*— Ô0…"Æc õ)V„píà@P2)Üè-ÁTõ©1çf¤®!L È„yäÈ©/XO|ì<¤’‘#Õ—_ô¦«f“À~[\à‹ªc§Ÿ’DW»è© /‹d… (7‹€ðƒàünªwÌ ?š&&·ûK~5%»!¬„ ˜Nû¹¦ªkY.ýUf-øÛÇ®]ˆ+>y1Zšë¢.{ùEoüê¬`*j€ïåö²nk—ÉNmð•òJ¥CH¿cC}š…Ü-ù5&j-µ+Ï “-¾¹qÒ’+ˆÁ‘%‹Úñ¥Ï¼¶\Ñå¯yÃWf“ ÀÕ7—.†ÂôIÄ—Ÿ"ùö’b‰×V+šê4w–¦€ÀUú2”,©d­‚Z4„+ÉXï‘/ÂH€ö¶\ñÉ‹Ñ]‚¿òKãMß‘"“ÀÕ·˜¾¥:ö²H'=?@2;01‚ߺÎÐÒ$¥÷½*Aà|L“¼ÚIqOÀŸNwÜ"ð©•TSú«¤PGšÓøì^„ùóš¢NùÔ…¯ÿŸ·'GŠLf ðEÝÁÀ u¬ZìP’ݳ- ª!pâRCc½æN2q Kø(œc¦å ˆUS£µ¿V@L¤†)™@¡èýnm©Çg/¿ím Q§\}Áë¿ü’ñßqfˤðÃ[­…Þ OÆÓNò†|•°@XXÑË·D÷±N/ëá+ùÝA4æ*·e´*!P–Î5b¼¥¿,%Ë_t´7âŠO^Õ0Žøí¯ûïe»ë̔ɪ.‡bÀëäµ1¤âU,N~÷bûãW怂KŸ Êžûw}šÁ0‚J¯†À¦10Á´{R*BàV¤ TPÔª}Q2ýtÎkÆŸ|-Óªèn;ÿµÿYM©Rs~t+ïðŽ`x]xΠɯŸ;ÝØ2 ‘!…‹„Þu44¤5·Tr‰PBÀD/Šã~ìÆ"§’Fh¿ü³¥¿,»{-<¶µàþ^ÐÝŠ+>q ’I¥;÷±~}Þk¿tTm«5óBk”œ´Öp§3:“Sàº;¾ë¨Ì¼ëÔ¥bºSªG»DÈ#ÄNË"Ì…€• f£a’ös*ÕÕJ߀…¿mÈâ¡ME<¹Ãk,YÔ¼ïì¨ÓÎpån;㤦üèwÔ àÝÁð†4°v™Tú›j_ú±B ûmq¿S›}*4Ô×iž‚Ksá1?€X`‹UÁdÌ@'Ô¢Ñ?Äñ× Y÷÷?7°e·grÒJ¼þâG~Ùy—|ñ­cJü –Z× ž²Öð\œ9Á L<Æý³<¸uI#¦ör–A‚Àé r ð @Pãq‚ߥÁ•*€B10Âq÷Ã{àÑ ¿÷±ø]YáÆ AcZóJþ¬ –e_߆À—&¹éªu PµÝ¡ýοC£y(ãz¸º!Ú-y(ÑœH=c zß9X¸ ]u§:?;ç¢ÏñíZ>À«,®[¦C³µÏânQDÉ_%€­„Ìm¬cƒ ™`ˆR—' (}œHª‘üí ÎZ¶T©q‹ÃY[ù-ÿ!ùŸ\pçƒ9˜–H*Ç'?~ÒiåêÚ/‚hïÑRKÞº8Ž‘JÿR‰|ÊíöÿÀƒ€U ¡NíUÍæ¼Ål8—•] A-{jjq­Q[ùMÅZAú9î},ïïšß‚Ë>|AÔ¥?Îk®8nâ)œ>© ?¾ mΆ/ífH'EÎr"Ñ—PnWÁÇj~œß,¨ aÀÄZþ‰8óü„¢&ÍØsÎÇ´T÷ðCP3œq„mùj%›çøëÃ׈).ä^ß>¶m¯‰'¶y=C'¿gŸy²êòq??û5Ÿ­rŒ™'µªÞÅÀ×Ú¥ÞåM3Z¹e€ÚA®üÔ§5É Š0‡˜ gr~9ìËO¨›ÒÉY˜âSNòÂ_7d‘/Ii•Ò‚Ÿ*`ÿA¯Q|éOG×üVÕmŽpEå§™™RK|ÒÎór¹dŠ·ÕëS ª€KŠ$ã~˜Ap¾°ÆD;ƽfò|€±(lP¸s2uýB‘p÷#Yä þ =î7ÊC@þöhÅ’x–D<†~ð<0ÕIÀœ}ágËιœ©2a~|Ú„êÇ5K47³L‹Ü‘_`|ˆßä‹3!ÄêRÎ.,S È#ăo~€ ‚rPµ¥¸¯ôE ¢°¹çѲy®Vþ*!Èä<é³j.¾àEªÛê~vÖŸ.¿Õ ”ZÔ¯R]gi——³Å’¿ôÆ) @[9*Bàþq CL¢wÍMÞÉEí+dq©'HC‚±Ž¨ô»¬;E Š&áïåìîÌð‚c…à™=%ìéõL¡×_òR,]T&Õ3RjÀ™Á€Thmÿ;“܃þ>â˜÷íB(åí=ª„²ÂŠ8uI—(c˄ښ›x#88Ÿ ¢ØM‹pÿ9 gœ¾|qpBøûãylS(fèøè‡.ˆš\ÿéWŸÿ©Žj’WÕ„âú%›'<¾Ý {ÅËŽÇòeóUI{å™ç}â¬ÊO0ý2Qž è–|§F²„}-ŒæxHñƒXYùÃq¤uü5ðC@ „  ,³Çle×e¥— v>JÆÓvž«l-!Ç'ÂÆmEè—ÌøŸ«Ü< ÅõËÛŠÈHsïz{¨Ä‘¯yîåß,m’eÜüø6Ä º¾|ÒÚèåÚh–£Xâ88ȱÿ ‰Ñ,W*¸O¡ /¬¡±@†dœ ûß­ä’ßk#0&ìu­b+Ö8º¢NQ¦]%ìë7}é¯Rt_&ËzÚ8ö9Kñ¢ç¯U%} €7TùøÓ&©ŽZc¯UZa#“÷6ª(šÀ¡!Ž}ý&FlÜnM ">{? R@€Êø„ oQ |0¿ïçv»ðA0V‘Ÿ»rdÂæÝ%ìé+EöB¹ž²Ò³©k¨ Á¶½&xžuoË«¢ºE?þªsþsì2…2BæàõÿÂfôvhÿ›&px„ãÀ!‚ãê[ 'NYs2ãŸb™0D×(cpk\BþÙdNŽF˜.*©¾Â lÛkbw¢ä‡ÿ·xÄɃàŸOÊ£­xõ«NQ%øX¯®öé¦C&@¨««©Þ¼_.vvqJzâ¢{tpT€0œáþ±”‡Â.þxÕBà~kÞè0“•^'Ð4ûºÌ†€±’¸ÂŸ T ÀÎ&võ” ofà Ùwɾõx ðSCÐ7À±}Ÿ×-úšóO…¦Úê~†Ï¨i Ð&—þo/®Ð–¥Îo{c‡¡Qއ–ä2íS~òÛû2Ne!°ßrðe3qƒÁІ€ù! w¸,²H0ý»#»{MìØ_ò”=$°}þKc*à±-E×,íœ×Œ—¾ø¹ª§=í•çüÇó«È•i‘š6‚5@KÌZê°0”á°¬öÿ÷Äg—ùlfo¾@ ä—!àwO1 J뇼´ îï7±}_Ñ×öJ}ÏsU† lU†@Å*€â}ŒpìéóÚ—¼&r¹[ Œ »hE0¼AZS)“ç¶r—ƒ€üa\¸æH€0ÊaZc€€Æd%‘)¦j nF2%ô,`ûž žÞ:Œ§· á™Cزc›¶aÏ,FFKvo:RÖö·#÷Xض·è•ê”øRM ù¢!>wHÑQ=òÄ™eKçã¤õʉô¼òìGΰŸNo?m3ĈŸO’’3l±ä½`Nd+‡x‰Î7@à`^¸FÐÀɲ éC}JCÌð” `±ŸÈ)y…—Ž{ñE<9œÙßdÇcû…'b8ç€Ýë“Ë[è;dbp¤Î œ M4¼9ˆÛ}¼„ƒ‡ò ˆ%›bXØU¶–¼¼q’§’þA [öE©,ÅÒìôúÎs ŒØÏGöûŸ;ø 0ѾQc^ÒsÈB߀…y-B.yÍK±áÑ-Á;k>`ÆmÈ7^Hé"/(V4½’ß)q9'±A5÷· HQ8ÊE$ÚýC툶õÝR~¬mÀ_Ø¿ 0 †\žcçž"vì-`8cúìoŸ¯°{,N8ÕÇ|®!RÚ}߬rMà|˵ÀñÇ-Ǫ•¡µàßÏ8ë²Ð‚iÓ-ã Q˜’(•$d“H‚ Ô8–Û4$V-p@(™*Ûrf— slßSD&g)Pl£µÙ“Éšxzëaüóá·#µ°e·×Ï_5¨6N¸Ç*»S?ÛcbhÔ[ºâ¢ ”m&çªL§Ô• ¤ú!6Ž•»»KqóEÂá ƒ£äîˆ8ÄïʳË Ïî7±·×t+œêÜ ]ダ|ÞĆÇz°eûapwHÉqlÝSR.Ü¥„ øAµq„žÌ•!—W|á Ö!VöoVN§Ô ]#w Š&+?üJíš;äîSNjˆ€B‰cpÔÂà¹5¸ @[wì1Ñ?@öó‰7­)•‰9浫QâÜÏ9oÏÞaüëá}>6[w}J_n¿JfNÙ8ðâR­%+¶V ‚ûJîzBñ˜Õ%zæg]Ö;S/5 ˜ Z(9J®6…|¶¿3i†‡! œkÛà(ÇÐ(GÁi|—ƒÀ—õ첾ãâˆÛË¢Á}é!e²¯á*I”P8(“-áþ {ñäÖÑ1màW™ãÆ Æ©‚@X9Jðìoê俽üDÕÓǼ¾\öLµŒ·(€<È9¹Žb€pÐ"ÕBÑ Äf÷){8sK(\4Š&ƒ™áÈé@*©!³µ1·wˆ1 ؽAä½iFs„=½ÂÞw{‹ |ƒˆ˜[[ ¤Së 0XDHŲ9ƒÃŒŒ”DAØ7õç€i •иK—u óÁ¾';OÀ |ù¡¼˜—­‰v<_X0ž×;äf‡œgä|30&]‹àömÝ[Š…Â=ì9k— s^ zzSö&ßS'zê¥vmé=8¦´ûCµ€Tȶ?÷Î 7޽FR¸i OT¯F¨~v'`Ç^.^4ššv×aX‘,na÷®ÀD+·ŸÜN˜8NzÜ稂m{½vÀ‚îv³z‘JB )L—Œ· p(¢0E4lª ’ó4Å1»€Ä‹Ñ¼¸"Ž¿ Áì‹jZø:àb­ÌBQ¬ šˆ‰ó;$CÈæýã6ž!æ ¬Y–€®‰ä¡‘Û8é;XÀ®=Ã8Ð7 â&ÚZbhkI ½%…ÅÝM0 oà<×ÑÙÙŠLŽ¡·oÄUJgdšÍг¯] ;ìô‹69^¨$V«–ÛG¼*[_ùB”qÜ69ì´ œßÃŽƒƒ:šÅó¾àùk±yËnÿmˆžÆY—ÕßyûU£áDL­Œ€PˆBùI ¾ÿq·XñôÈw¬lX“yž²3FÂaMó_Çâ„|AŒV'b C€50â¼Y€0¬\œ@Ìæ¡¦Åph¸„¿ýë0ví†Y*ŠY°ÿßõi眱/8e8'ôfÏ’Å-` 8Ð3,ÌFÛõÀ¡÷à êÒhlªó)¸û,šíŒg÷ŽU„À'Þ³–‹CDngAµìë3]NPðC »];UC8d¹ï+€ugœuY÷¸2°†R³°•È–dœ…½~ª€@úTIVA“—}— V?(™b3ï†ó¹XìíåÍ’* ÐNü„¿ÈGDÂonü ¶mÝíBJX¸ ERP‚bÁÄ¡þ¡Ð@'L^¹"‚ÀµT³Ëœ)–¾ž­*!ØßïU'®_• Ón €wž‡,/7#Pµ„ A%ÛŸW3ˆp¿ðí]&™:Œ˜†BIìn "l߯޴‹{ç—.;iù—/á¥W}ö´Óø ÕÌ@Ÿj$XÇ5?¹½=]æw6"7”Ý‘½½‡#÷.“•Ô†{+X6‰à)»7ÙÆ»>ñÆ:Ų§_äÐÑÞŒ… ”kæ¾´’®M¶LdJdÈ ’k€DœE*ºo, øAe”fLðCS~$™ùj!‚d‚Á´Ä¦ùa×~Åf[dýèsyÎ5rз¿ýêÂw¾|îé[`{ð”|¾ˆßýînw<ÁÐ5,\ÔâSþ*Ƹ½c"&]p!ån€oLGˆÓÙŸÿîÆ5Uå±ÝÁ \>ïs¯öÀS´|¾Xv¿PÉo÷¹cãrœ±M¬ñÚ‹+7ÓXrÆY—MÛ>ãàçx0~hÈ3œC wY†•yŒ 7€«# • ¿ù$&Õ”,çZ„¥Ý ¸ÿ1ÆYì'úζjöÊ Ùù\AªDºTö·iZ^ ÏÔhAd¥¯‚Hå–â¡2¹‚W൶„'2Q¹ïêTÈDû`È5@S½W8ßäûí·Ñ¹¬|ÕÚý¡Z@ A5S,ÓöØEÎFF-7~2,š§,´^ÔT¾ÎÖ¥\zé/ꄪýÖÖFÛA(¦Ø„/¬lºÎ*nàÇ$”µCÄì²ê•»B<)N®è”$@‹zS=èŒ:0Ù2QBí€CCB¡1o¶µQs…Š^v,axıñL±Ô Àˆ…!€ƒ–ÛTŸÒpüêxðÑÅó¯ÿÏ+ÿyㇾ|¯r쟒ùÏ@±¬äKN=ΧЖe)•ͰÉÊmà'Ci")f—ɽJ‚@ú]pÖmÐÜ €Ò6𠙍íªL è:[Åïù­:ú‡ìßÚî¤ rþ ¹†ÿ˜{¼ãö°<‚D‹s¹tª3»L^§€;±&g*ÁÀ¹L¡È18bañüÒI éùÀúc’xøIÅ\ÂÅq“ŸþáÏÜùE«”ÿË÷®ø›åy«ð&ýg0úÊå °ha›pÀ³f‘#›ýýÎäáz@0t º&|”4Ù]XÎÿ+pavˆgböªðÍ“g—q.2u2f—JÞ b*•@"G¡P Æž6&T¼ó<°5¾·ÏË®v]iWš¡šˆ® B¯ 3ìcÑæ^X>ÖPG`¯GŒŒZ¨KyÚðâÓX½T9ÙÚ£o‚±'ß}ÙÍKãÛè UÄ¿èX0&V¢NÆ ù¢¯$—íjÃ5@¹ üÂí‚è9Äî¹Sø¡&ˆˆS(Èî< DšAG&¶„j€¶&M  ÍšH|Ê<5³ËÀ€ÆºpÚâ#ÂniÕÆ€3_Ü„Eó+®ùIIkK=^uÆÉö@—P¤Ã‡Gaè †.ù÷Û÷klLUµ_9‚¦ŽOé5ïž!`•!€‚éä%¡¥Y ÀÛí€Þx3‚Cg›ŽÐ^¾ð+°øA(ßðU4êÒ šæ7Ä&Ú` =‡Kè4ÝJ_×.8£‹»ÓÁl¨(š¦á²\Œææ:WÉL‹°÷À`+ ¡3Ä ]Ç››Ó¨f?uQÀ®Lí0î)–ŠZ X$÷¥77ׇòˆ"ý$&[&¥ öôj®6ïÜ@àü.¿á;öÙeQøÜ&lë…m7œ¿™`çÞ²y¯;×ðÆóââ³£µ©š^P ¹©_üÌñœç,‘§0{÷ Á4ëMC<´·Ö¹Ê©J~&CˆÃ|Ê^‚ í­ö¶vE#V/[‡6ô྇ö ï`¸\—Žãô—‡3_qÓâÚö=F3lÝá8ÙŠF¯¼ïEKS õ:,‹/ŠZVƒ¼<‹ÛƒÀ!VÃàâZÜN¿f¯C̢ܿª±Löµ<50p¢r¯ÅÎ~/Ñrá&î¯8Yù§F& À;σõãÛðO¦·í‘Úõ) - špu ´"vxPÆ ï•Dn|‹åWl7=R–½MœtŸ-”'¤ /×óãÔòwh‹ï˜÷;gèhÑ1¿MG:ÉÊö©–kIÇ™›Æg÷„ÛºD4xçíW T‘•“"“À»/Ð9€OÃ9oõFRW-Š¡±Ž)!?þcå!Å9ÿä5I4Õižâ’§ äV ÑHŸ±u£ŠïxŒ¡£YGW»Žú”¦„ÀfO±L%<h÷îáü#þTu9=92ižIï¹Ð¸À¿‚áOn3‘+ˆ,Ñ4†ç­mår/¾|ÀHñN^›DKƒú1}Ê+[¥îW¼&à8Âù!p,gu:“{ëçTÊ v/ä㑾¾,ð_G>?nˆîÓÒb¾D¹Ùe »»5ˆÊ®ª=Ù2Ù®yŸ”Là¡§¼U–Ì7$'¹ñCà?&Î=ymíMc{DÇœÕã»a+CÀIt}—hÌìí›à=_¨– =«¸Hm ð÷Ý;ÉwLÁ` 3Ä€Ú‚yëÄJ,AÜó#@É´°o¸­Ë4í‘qænMdRxÏkbwC´|²q»‰a¯ ôùÏñ¦Ž‚(Siýš$浄–ß©(AÓGUCŒn_„» ­l¾%-ûöÃT†À‹W-L YñƒHçÆ †¶& çh®× O»LK=@û÷„e…·–bL;ªk@Ô>•!þñ˜çPÖÖ¤cÕ¢˜t¼z|Jb;au]mzYû»/œ—DijÓ&“À{/Š?àƒá»XØÝãšž¼&]*°+A ÷®ÈJrÜÊvHcï’êìx]ÕËÕN ÷qPÀ r!dò䯇âùä< ~—…Ài¨bò `4hmа¸Ó@cZ³ÓDØøä¶p¾ßyçíWUÜXd2eª¦ç|@hKé{-¸ŠžNj8aeܧ”N×gY@zùÇ®H`ÉüÀÐF…jÀwh"­_Å5™.î˜>Nú9ÀŸ{éCdóÎüù™£ ð R¼öóÉ+<Ë ßZBèL´uDOlÜ¢È( -®<Õ2%¼ï¢ÄV×Ãq<µÝë=neíZHOCó‚†`íòV,¨b\/ÕLÿ}ÂíûpPX€±ð,6N@&Çʯ€ p­1A¿²V û]æ™’ìzö†TNpšþÏá‰ÉTNÐü<€Puwÿäí]D4á´“Й§àŽ8ˆÿý¬^ÇêE±Š&ŽR`TÙö8×t  º30…²‚iù•:dîÙi³9T„€E@€ª!€ûÀC«g‚ˆ,ÆØŸkÍ’)à}'÷øN0<_ Üý°7K¨¥AÇÉkE¯P5¬\Ǻ¥ª-[ìxJ˜69¥?Ü®Mš;õ0¼ßHÖë1‰løÛÝ6áZaŒØ pòû±'ž e ß0#ÀŽLõýÿb¯Ü-»KØò¬76pìò˜o½,.,_Çs—Ç0–y¦A d·ÖÂì’IèóMÞ—·mÊ Ei¿µñ@ ~×Àƒ `&© ð-6õÛ²õÙpæÝ>®L­±L)ï¿$5೪cw=˜E&g;Ñ2†—®O WZ¨!XÒÃúÕcS~•0¯§®:“i,×fR/÷Ð…ö¼ÛF²RjMT†€¤FüÃ6)ûÿ5ݸmâ9¶)–A˜ýÀìp÷=‡ò…ˆðز¶f2å¼ÿµiðV(¶ ݵßÄÆ­^{à˜Å1,–»5 èžÃóÖ&Ü’?¤¬cÐÞZ8¼•§1/Ûæò‡Û]…¤ 1(6œ!ß5€¥¼›nòâMÖKÙŒ$©°ïé9„ÍÏì ç'ç·ÜyûUµ®pÇ%Ó²L×^[·ÀGTÇþöpC#Þ¬¡—­O¢ÑÞkl~›Ž›(»¸R¨Ð^Ué_­T „ÛH ‘¨òÅ* @ØÔòþäË›r°€h¸åÝÿo—þ éÆ÷ªÊè)i[§îƒ¯«ÿ)€hZÀþ>"ÖÐpÃ}ÕóRèž§ãÔRcZŽÄš|`‚e6¹¥"‚J„€•ÝÀo(C¡kÀù ”‡€T÷'_ºœëhœg¨âžùcYî½/´—:8·6ÜyûUOŒ+£'A¦{¡ÆwA±&Lïa yÀ8iª×pÆÉ©² WIœ†±›MÕ Ù·‰.‰½¦¡ì~%“#k»øï®I _ ‚`mQ*yixüñ- m# ß®Ö^¦€¾¾¡À{TÇ6í(à‘§½bSïÐ>‰ôøD`Òj ytp ÔvPÆ’&Í^ wê„@ΘZÁƒȵ·„G«“Ž?ý%´:ˆhDÓô&£5—i€1¦3ÆšcÝ~Cӣý·¨âÝóp»xãqC¬13±{W¶ýC&M”Sñ^v+@Vx•PÔ€ß).¸_Ñ~Bî­%@”…Àk,+îLŸ!PÀP*zizêéíxzóÎP~pnýúÎÛ¯ ¯‹22%H ¿1¶b£è•º´|ã³ÿöÕ|ndcð<"àÿîò5Š1ÛdgZ&ìñ‰±×!%CÀ”!ÑÚþÁ½Ë†2Ü]jÝI”{­À· /¬2X‘¾îQË"˜¦wÏ›nþ‹2tÝyL·L …_Oá;¤ÿ á@ÿžâ×~ìã¦Y -/nýë »¾(cbGwgņ±Ìéù JÕ@0Gùȧ\A%4ô°í„À´€Ñ,÷·w~âXäôŽW„â9òÈ£›±cçÞP~qnýþÎÛ¯zrü9>9R3l¥ocŒ­†_áëPx•žÏ(MlÊàž‡ª‡@ >¥¢†˜Lq”‡ËЦ€ÀiT†€ÜZ &ÊB@Dáî}Ÿxr+îûgØ·ˆòšf|®†YYs) c,Æ[`-€Æ©I’=;Í^ûÍ7°Ï„gSxà‰Üÿèû›JtͯÑUMu QC(Šî(§àDyÝ^RÐU|i?•³Üਧ„¾oçú° ’»øÒSÙƒ^DÂô¹îúÈ™Wüù÷W†—ƒ›A¢ÀnÜv8@;ÆÙ¨¨lß|ÿÈõ?x÷û‹…ìÕñ{7 á®·7éÕŒ†îip¨ô¯Vj„7æ÷ÑñA@†mÉJèÎãþ¶ÁH–»“f|挢4w+B¹å´•‹—ÍpäòžWé 7ÞA…Ë1öÕñçÜÔHH=˜¾\ [u|ªåéÇï¼ñÚ¾·TÌïVèÉÜzW?L“»6j2Ä ‚ƨ|vÛÔ ÙIDATväŽƼ}rƒŽj.ð ˆÉÈ8&‘'``Ä ÕÎÿå ðÇ©‚|žc4ã]èá ›pÿáu­ˆ(Ϙö¦?ýßÿ„gÂÌ0ñ)8»¯Ð<=ÉQËãþîÐ-¿øÄ{ÌRa¿êø3;³øõí½Èåň1A¸LÄ ¯ä­¡U÷&U@á,gî)UybR; ø B@Œæ…÷)«›D$óÇ)A©Dqí;÷á'?œÔuùŸnûrx&ü Iù›¦/9ÑòÐ?nèûý_|i•kÉïë-à·ÀÀç’¨i@Ì(¨™U-Š8½O• p”ÜÙÙ]U 8]$p¨Ü- ÿüö¥§<–Iö”ÿ`ÿ ¾wõ(•BK=ˆßËûö„órŠDì$$ÌžU˜â†îXåþ»~ºÿ–ë?ùöb!»]uüðP ?¿m?ôå]³ƒ1AxC¤©ÂiÔú  0²â麿(ot˜Ùœ=iF‚ ¨èã…À²DÉïLçÌdóøÎÕ¿ÁÈhاˆFÓ.ýãïþ{R²s2Ä©ÚÔOgBª•‡îýuïO¾ùæwä2C©Žgs®¿m6<å_|ÂЕWõÉ‚1ø’F@3Âãáùz† qûúU@@ácþ8bŠ¥iF†Äf~1ÉåêŸÜŒžÞCá¼ëü¼ö¿û¯]5ʺ)Í.ýçOwBÆ"»¶>8úµÏœþÁ¡ÁåÒ7ßqÀmBu¨k•n·&óì¨ pA€hri]ÑJ 2–IÈŒx#½–eáÚŸýžQ-q€1öþÛoýÒÇ‘EÓ*:ÄnŽ]Ó±J±åÿ¸óš»;ù£®¾u½*ΡÁ"žÞ>ŒîÎ$ÒbÐ:ì4±~¢Jgg ä.rå»7ó}¹þ5€h»¸ó€ÝèÁ©(™@c&yj²Ðäþc 0MB6ãÁQ,–ðƒknÆOªÛµDüÊÛoùâ•Qy0“E‡0}Z§;!ã•þöó‡V¬9µ¯©µëT(ºm󎛇‹ièîL »ÞG¼äÚ s¯”)†G¹§ðUB`ZÂñ-êêá3X\ìà±qCP*òÒ–™Lß¾úFlÛ¶Gù¼Dt#cxï_wºòøL@@Ût'd"²áþÿÝÜ6oé+^À4-äªAìÜ›Á¾ž,v¦Lè®yø°Ö’/B ݨ@¡¨2ºüCÛ,p¬hMušOéXå N(äļ^ â[ß¿{ö©w1%¢ûcþáæÏ‡»ƒŽÑ!òºsº2QÙôèŸ÷ìÙ~ûò5/Z‹%ªâ ñØÓb9Êyǰj B¾(\d¥SÞ‚ù!Ð5&lz¥DCÀ¹MNÄXÕp“ÏÃ]Ó‡èé=„oÿFôT/ßID÷3ÆÎýýÍWDnþ{$+³cp„ôUM3Øû>qËÛæu¯~7tw{UØßöï¶–8Î|I7ίƒS¸µ‚7#|Âé娱¯äùÒ®—”Ãc84dÁâr˜üñ/]®IÇbÃÒùFhî®Ó’p–1Ì"Ä„xüß{ÿc¸ùw÷ T*Ùt/ßâüv—üßMŸQó{Ç# VOwbj)ç½á ǯþ…ÿ­ë±NÎK=nM3^ö‚ùHÅý{ àjÏDÖʶï“ÜÆ Áp–#_ðó‚@ —!èhÖÝÝ1å{Àž£I0Kp»¤ÀÈh¿¼ñ<µi‡2¯ìÿ¯ÑÛnûßϱf,Ì›\ºqö•“•kOm¼è-_½"]×òÒ(ˆɸ†çŸÐŽ“ŽmG,¦ûú;ÓØ¸@ζí)úLŸj!(”„ù¤E­Ê €À­t`iW ºæ]fŽå(>¼RÓæøåoîÄðhÆÍE^}ƒ@ÿï¶?}Ä tU°=@»§/9“#o~ß_¹lÕó>ªéF‡²T³kˆdBÃóŽëÀÉÏí ž¢SÇR+Œä[ž-ÊfxyœÿEA¾Ë.ÝÇA{“†¶&]X; ˳óR4“Åí~÷=°1”/Î7'N øÔ­¿ùä—ÇûfªøÆX'e#òH–Kž›¾èÒ¯¼»¥máëè*œÿS Ï;¾3šÎÄÆ@Í6ÛŒ‚CCbâKEÀBa†,ëŒ!8N$úöïùÇcøË=Ï•5£ýÝC ·ÞzÃ'¦}7—ÉÀ›`ÑÔ'gòåô³>°ây/yÃå‰Týú(œðTRÇ ëÚqÂÚ47&< Ö `:sKcY²¦Â/ <Åu¢0&|þ3y )ºV‚º$CcŠ¡!©ùÖR%8çxpÃÓøãbh8ã>w·Ñ;n¹áòÐò•G‹(ÆXDMpTôåÍï¿æìÅËÖXÓôÖ(ä°e‹±~]V/kóuŸú]$4M´4]À+žÚnOž•!lSª<…a`„—-íc:ИÖИÒPŸdîîìrMËÂÆM;ñ§»B_ß@ü@/OÀÇnþÕü°v9>3%7c-H”xÊü…kÓç¾îŠKÚ;—¿Y×õærÀVŽtÊÀñk:püºyhmJ©kç&ürú,äíeÎ‹ÖØ ‰Å‚!){]’¡.¡¡.¡!•°ûüí¸Á·ÙÓ;€mØŒ nÁh&§lûØ¢7þö—WNE=Ú¤"`;Ì̓è%šàêœ3Oæu­N÷¤½sù›5Mo)€¬,í-I¬XÒ‚•KZ±°»ºÓåâ8¤9âs:Þ•%n/)hAì ¬yhCÌ€kÒ„^›t|¡„Ç7îÀƒ6ãÙ½}Ñ]š~zˆèóºæ·×_vTtqV#UàFfÌ€ðmPŦ¼G–ÌëZ•:çuW\ÒѹüMš¦·V@>74,[ÜŒ•KZ±xaZšRp<{"k ûÇDM »÷ôaûÎlßu»÷ôÁ´,ešŒÑWAôõÿýÅÇ2˜e2&Ü“DÐáD׌0w¸–ÒÞ¹¯}þò c±äªj:;êÐÙ^ÎŽtu4 ½­†!×’Tú Qêç %Á¡Ã£èíÄög{„›–º'€ý /Üø³„Öd-2.|`L‡€  bYÄ£J^qÎGÖ­ZwÚ í¯bšVW-ªã`„t*Žºd éT ué8ÒéêRq$â1XœÃ´,X&‡iqX¦‹s äl¥A&W¨VÁ£ŽèWDôµß\÷!å̺Ù$Àw1ÆâµBª\÷H‘öyË’¯8÷£¯èì^}A"Q·~<ø;kúðèóǧàQÇï%¢ktÓ ×~àˆ÷á©•Ôß…Å$û:ˆZ¡GÇŸr~׺^ù–¶…§&’õ§0¦¥g(}úýäW×¼wVôêŒU& €ÐŽR Òu-ÆKÎx×ñÝ ×½¨®±í…F,¹zÈè>ÝEDÑ#×ÿøÝ3~mžé”) tcDbJf@ÊþŽOK‚j$ËV½ yõsN[ÝÒ¶he]}˪X"½Ê0âËX|è%Ð"ºD!¢û~õ; ’8'’LQbƒ!áüoo äI<žÖŽ?åü% ŽYžL5´ÅbÉf]5F¼YÓõM3š4¦5'¢yyä T$¢ˆöÑvmÑ6"ÚþÓï^zDOF™ 2㈻ë51þ |‚a3@Iññ…‘y…9™T9b‹Ø]³ b%o›-ðTÙ.}Gý/‡9ÊmÒј¹G™•ÌÉœT+GÕîœÌÉXe€9™Õ2ÀœÌj™`NfµÌ0'³Z易Y-ÿ:æyšÏº4JIEND®B`‚pommed-1.39~dfsg/gpomme/themes/KStyle/kbdlight.png0000664000175000017500000002507411571653265021636 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYs,K,K¥=–©tEXtSoftwarewww.inkscape.org›î< IDATxœíyx\g}ï?ïì‹fÓhVI¶\;ÞcÇYhÈBÂ’8uIœPðí¥%m.Ü& ´l} %!p[ZÊžB¹´)5†%ÐÐKœ…ØIï¶Ë’-Y²Ö‘¬u–sîgftf4’F²6缟ç™gfÞ³½sÎ÷û¾¿w™s„ªªH$FÅ´ÔH–i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘i‰¡‘šKÚwß}·ûÝï~w•B,u^$—&BUÕ¥ÎCYìÚµË'„¸>“ÉÜ(„¸XTH©ªÚ)„è:€!D‡¢(­ªªÖ›Íæ†={öô-eþ%Ë“KÆzî¹çÇððp8“ÉDL&SX¡ªê:4S¬V CO/P¯ªjpTQ”ç‰Ä«{÷îM/nî%ˉKÒ3±k×.§¢(—ëuÆÈ½<ºU‡EÙ/„x^UÕç¬Vë¾={ö$—"Ï’¥áui€éعsg\q•Édº ¸ê·©ªúÕjýgic`8èyó›ßlñûý7ïVUõ&¦VàÁ'žxâÑ¥Ëd10´ôÜ~ûí÷ !þ)÷]UUTUÝùóŸÿü§K™/ÉÂbYê ,„fEQòßUUEXÂ,IÃ`çÎñT*õ!ÄEµáÓf³ù‡K•¯¥à–[n€Ø l‚­ÙÏuÀ â9àÀ=õÔ¯›ö‘!C íÛ·‡-ËÍÀ튢ìl¹eªª¦…_òx<ŸÞ³gOfÉ2¹€ÜrËV`CVä[€­À R8¦((b !xÄ€§ùË_ÒçÈؾ}{Xq3{mÐ/Ïžƒ1à»&“é‘_þò—-‹›Ã…ã–[î !rß lBl¬Ú%EžM+J)aŽ.àG þýÉ'÷üfa~ÁÂòº4ÀÛÞö¶ˆÅb¹ à‹gö» üVUÕŸ¤ÓéG÷îÝÛ¹ÈY7n½õ+ˆõL”æ[…[€¨¶†^èB.žE"„ÀçóG‡#„Bœó…eÌ­·î¬*ºl$ß@/]šÇå‹…H$RP²‡B!ìvyiÁŽŽÑßßÏààv»x<ŽÍf›r€LF¡¹¹‰#GrîÜ9] ò9 |Wñw?þ½Ss?Kóϲ7ÀÕW_m ÷¨ªú)´In“¯ªj¿ªª„¯)Šòš¢(žþùæ%Ëô4lß~§mNÒVÙîF¶±Y6@ñz}Y‘‡ó%{ PY°])ñªªÂÐÐ0ýýýºW‚±±1Ýñ´c†Baª««‰Çc8Î)k UUéëëåèÑÃ46Ö“NëçækxÄ#?þñwÌòÔ-ËÚoyË[~ø'´¾èbá~ª(Ê“ÑhôÅåØe¹}ûA&Jó\ɾ°Ãô!‹¾Ñj±äbõH¾t…"8Ž!è¯( ƒƒôõM=‘HJ¥òû·ÚìT†ª †cT†ãª¢$z»8sê8í- dÒ)ñxŒÚÚ8Ž¢cNw||œ††“?~ŒÁÁ’oàY!Ä_üð‡ÿ¼d"\–Bˆ›nºé¯Ï¢Ëcöý)!Ä#Ï>ûìÓK—ÃB¶o¿Ó b]¶4×ÇêñéCm™^ ^¯—H$¢ _ÂTVVæ÷1àS©4‰D‚þþþ¼à˜á8ݪ²B¯ Ç© Å©ð@] ‘}2©çÎ4if8}’TrD£1êêV …¦¬EáܹvNœ8F[Û™‚߬ Žƒxø·={¾½èaê²4À›Þô¦ÝÀ'‹„ß­(ÊÛ÷íÛ÷òRæmûö»‚ºÒ<×·¾QáЯ7Ó€’ÕjÉ—êú0F‹ÕUK ~||\Wªk¯¡¡¡zý•„¢q‚¡8Áˆ&v—»JŠ•Âeº4TÈ(η¦éèËœk­GUUÜn7+W®¤ºº‹eê‰CC8yòMM Œ— óƒøøüÇ79åN€eg€ë®»n›âeÀ¢Ë[7ðÖ}ûöY¬|ÜvÛ]f`-:¡gGN«së‹\K›üÝãñeKõ\£õÀ˜L¦¼ §üððýý‰±ŒŒæ×1™LªÂ„"1‚ájª"1‚¡6»cNbŸÊª.møB‚SÇÐ|òU’c£X,fâñjV¯þ|ƒ[ÿrd2iZZš©¯?I__o©s÷ ˆ¿ü÷ÿú¢´–®½öÚ‡€Oä¾g'¥½÷Å_üÎBó¶ÛîªÔ‰|K6|Ù8`ºÒ¼Pôf³•p8”úDãp8)lˆ–¼¢¨ ^ ¿¿/¯÷÷÷“L&óDZX­T…cTEâ„Â1ª¢q*ƒLÙÒwZA—Z¦û<•Øs9Ôï'—–N§i;u”SÇ^&ÑÓÉdbÅŠ•ÔÕ­Âjµ2±ædÚÛÛ9xðU‰~&Ÿg~â“=öÕ¦)w0,;¼á oؼ«(üyû+¯¼òäÅîû¶ÛÞa.cb”4×SSƘ‚jÛãÑbõ‰x=L PYPªkù×> >“ÉH dÅžÈ ^Q2ùc:œNB‘8¡hœP$F(Ç_$w/ƒ¹–Þ¥„]ŽØKIŸÖÕÞÌñW~M¢§‹ÅB]]µµµ˜Íæ‚íô¨ªÊ™3­9r¡¡¡‚ó ¤„àÛ þö_ÿõ+ç'o}ñ,;\}õÕŸPUõ¡¢>ýG_{íµ÷Íf?·ÝöŽ€®4ÏM Ø8'Öšª4ŸP¿ÖšÂh]‚…"×Ö >•Je¦‰¼à²Ûg åõŽÆ ÇbYÑÇðxý3Š.äe`EUé8}‚¯>Ãð`6›U«V‹Å1™ô7!Ñ__­ÁÜÜ|ŠãÇæ»cu…ÒðYÿýïÿü6”—¶mÛv™ªªÇTUµêjUq×áÇR¼þm·½Ã$„¸ŒÂ90[ZmÉ¥ùT£¨'º„‰D¢„B‚ÁJ„È•¸3 ~dd´¨½Ÿ¡!ÝH©T«ˆÄbD¢ÙÒ=Ãét-O±—:^yÉ( gÒxèyÆG‡p:]¬ZµŠP(TpÞ‹I§Ó455R_‚T*•;i¹Å¿‚?ùÞ÷¾ºŸtj·»‚U«Ve»vK#$“)Nžû~¿êêñšÕÕqâÕ1ü~ß’^ÔKÚ\ó˜—ró—JŽÑräYºÏžÄl6³~ýeÄã±){ŠTUaÿþ45å†@?°ã›ß|ðEf`FÜ~ûÑþÚæjŠ€Éd" åÅž+ݵÆby Rý:££côööÑÛÛWr0IA(\EmMŒxuŒêšÕñ.·kÙl9ˆîb»”fLtµÒ|è×$G‡ˆDBlÚ´~Ú¶Á«¯âðáãèv~㟛vÚüŒ¸ãŽwÿ ð/¹ïúR=‰F¨ª •,Õ˼~––Vöï)?‡Ýjµ±bå*"aÕ51jjbÄb¬¶Â?nÏÇ\è‹z±ù[¶y)µïRËJ¯Ô2´ÙNn[Šþö#üvÿ 8¶lÙH0¨Ý¬O…ä>;v’—_~cÀ®¯ýoÆÌh€;ÿèÀW@à÷û¹óÎ]8vv»›ÍrQ‚/^gïÞgéêêæúw‰m#™²¯âQ‡ 7í|Y¬Ôñ¦¸¨“ŽWjÙLÇ[ ‘Ïé·_Äq‹Óì6ð»À_~7x›:tº}==ÎØÈ0×^{€ ÿ·M ­6hj:ÍsÏíG§ë4ˆ·~íkŸ}ŽÌxkD!LùØ#™L¢( CC£\¸0Bvª2v» »Ý†ÃaÃf³a2MüÀ™MQø/¢ºº•twwóÂóORYy€+®¼™@p CC6›Í-ª‚H¼^}F™¸Be¤,*ZOêÛ urò¤Ý”ÚvÚ fÇt›ÍuÙbbàuÏ­½ün°[K¯;:® lؼ™ƒ^æÂ…¡l-Pz¬`íÚÕ¸\þû¿Ÿ%“Qaþíþûÿ抯~õ3½Åû/Ãb$oe2 ‹™\w£ªj¢N&“Œ30 ¥Y­–¬)¬8v]ƒŠ_8ëV¬¨%¬äìÙ6Ξmç™§@8gë¶7ᬢ§×Fo8®‚`ØlLb¹\pXÑ.¶æºO§M'xT85£ª*Ã:ÏpæÌ9šêèéêÒö/ Ð:9r³J§j¯\YË 7\ËsÏíÏæŒà;ÀÎIùž)zÇ;þôíBð³ÜþôOß§3À„ ¦K›0„ ›Í:ÉŸµïú, ÒÖÖN{{{vàJP]SÇ–+®Çç_A:mÁd¯‚A­V0‰ù '–k|\VJ-+•‡)ò2×ó!„¾x\às‚× ¶)ŠÙtF¥71N{G/-Íghªo`|lbpÒëõø©¬ôøp¹”.ùKìÝ»††‚‰£÷}å+ýu}ÂŒxç;ïy3ðt®Ççž{Þ‹ÉdžQôªª¢(ÅiÚ™²Z­ØlVìvV«ý€Ùws ¯/Á¹sçèèèÈÿ¯´nÕel¾üx¼Õ(Š‹~ðûµÂp ÒE΋à ç„è+ÅÝጎ+tõÓÖvžæ¦Ó´67“›ce±˜ñû}>*+ýøý^¬V­ýW®à‹ÓÓé4?þñ/èïÈe¡ øüÇOçÃúrÚ#ú`µZË*ùM¦ÒÆÈd2ŒŒ¤Övm³MBÿ§ }­Z?¿ßïcÆuôööÑÑÑA{[+­-Ú½–Ö®ÛÄÆM×`Qú&œÍ`2/¯PãRY¦Ç$´ðÅ£{Y§Pªª §éìàLë9ëéíîÖŽ'Àáp‹…ó‚÷x*0™#øâåv»·¼å:ü¿rÙ ƒ¸x$ÿÛgªvíú_›#¹Rú=ïyO~.N¹!ªj3úÊ Ìf36›2MÜe`êvC&£ÐÛÛKgg'ÝÝÝ(Š‚‚M›¯`ý†+qU„**Àã›}â‚/÷vºãÎ*/¥ŽWjYQìÙÒÝíÐÞ]ö©K÷tF¥o`œs¹p¦¡‘±Q­€„ÇS‘»@ÀŸmÂ| ¾xyîó“O>MKK[6§¢Xõå/bfÙ EÉdûüg}9µÁä4…ññ$ccãh7pµ`µZ±Z-Ós—YAUUUUAÒé ===tuuqâøaŽ;„ÉdbËW³vÝFG+±Xn7¸ÜZ­ ûi –QR–Û;¤[oºÞ!!ô5Ýäm§J›ïž*“I _Üv­”¯p€Å\zcã Ý}Z8sªé4­Í§ó“Åb&ðQ[¥²Ò‡ÏçÃb1/¸à§Úïßx%­­¹é¢ íáˆA™½@z7©ªŠÅb*SÌ¥Ú3›EŸ–J¥I&SÙkÉ¢X8šÉLÙûë„I¥RôôôÐÝÝÍ¡×pèµW°X,\u͵¬[¿…á!v‡Àék‰’mJQZŸå,[æÜ3cÕJt·C»Ã6u鮪*†Ótvp¦µcR8ãt:ˆÅ"^*+}TTTL&Åçób±hí¼ò…«OŸ½à‹× ‡«X¹²†3gò7_Ÿû0«@¢(E5Àô/¿äŸÙ@™L†t:ÃÈÈf³)oˆÂ?[kX­Vm4F2™¤»»›žžn¼ô^zP8µo|‘H-&³ ‡C3‚yšRïbYè}*Ì&pÙÀ•-á]öéK÷tF¥`œs½3Ú_=5Ñy<êêj ¼>ìv;CCCô÷ÒÜ|–Db€ÑÑÜú‚·¾õúB}úì_ò”Z·¦&ª7ÀÚ܇²Á¹ªj¦h,`nb.w»é ”J¥H&“Y3Xó½h²±Ù¬TWÇ©®Ž366–­zøùO À•W]ÃæË¯Àé¬ÀbX­`¶j»š6|™œT:”º˜ð¥ÌPJŸfÏ–î¹—Ý:ué0–Tè颽­‹¦ÆfZš[òËòáLmœ@À‡ßïAQrSÎikë ‘¸@&3q;—»’Pd ™LŠþÞFq¹Â‹*øâuN‡¾†(ß=öUåÿøc Ýú/“Q0›Ë J‰yv!P¹ éÜ`œÅbÁb±`6› ªÄ\¸d·;¨®®¡ºº†‘‘zzz8rø _{…@e%×]#Õ5+±¤Ì˜-`¶¦Yˆ}‘1™´&§]+åv­ÄŸ UUIs¾{3­í4Ô7ÒÛ­ jጓx<’»ÇÅðð(‰Ä çÎuqâD. !„Vº[,v|þjÜaÜžNW!¬d2* Çÿ›ÍJ8¬ý[o¾_˜>ý¾‰‚úåçO—õ”ÈläÐN`éÑàéÄ[^;`¾Ò Éä8 0›ÍX,¥B$M®.—“ÚÚZª««éïï§««‹_ü\›7µåŠ­\qÅ6¼^/&!´õ‰ó]6óöØ­šà6íÝf™¾tOgTƒcttöqºù MõŒkǧ‚ººš¼à­V3‰Ä‰O300@*5qãm—ÛOuÍz¼¾_»Ý‡ª …‚WwçA’ã Ö¯_âÌl?ñ»f/x}úðð(G6êÓŸÈí¹LˆaAÐîh6¹(§0×’î iEQ²f93ºå0™LƒA‚Á £££tuuqìÈQŽ:Œ×ëåúo`Õªºlˆ¥ ³Ô½Øç[ì&“ÖXµço˜ 6ãI…žþ!ÚÛ»hjDq¯þœÎ¦ €bƦN/w4xf1ÏÕ@ÅyPH&•ìè³5Û°+<‘ ðù<ø|êêêèîîæüùnöüàÇøý>nÙþjk"¸í‚ »f„±¤ö®ÇjÑJt»lV°–ÑÝ:žTè뢭­‹¦¦Ó´4·N\8‹¿ßKm­¿ß‹×[ÁÈȃtw÷ÒØØ’íŠÔpº\¬¬[A8Öº¬Bó$ÁO\t¦ŽÍÚ`¢Sat¤Ÿ††šO5b2™Ø´i k×Ö齋'xýûñã§xòÉç²½Sù‹ùþ/~ñ/NèJ¹5ÀHî—§Rs3€ªrQâ]؆´ÖV0›ÍX­VÌæÒq§Ýn¢¦¦ššš8}}ý´µµó£=Oàõz¹å¶7³jE‡Mà²k%çXJ½Õ2s鮪*ãiº{hm=GÉFz{ûóyÐ6ù|^**\yÃòÒK¯122†“ÉÄאַ%TU‰?  âv{&…2%Ù"á›LÚØˆÅ .ØíÚý”Z[Úùͳ‡Ñh[¶¬Åãq—ãO½ÎÅô©<ûì+ìß°`9ðõGùÈcÅ?w!P&{«’Ò"Ÿ*]3Géôrļ8 i5o›ÍŠÙlšò¤‡BU„BAz{û9s¦Çø3‚UAþǾo…³<Ӝ݌¢2xaŒŽŽ^š›ÏÐXªd8ã÷{ñû=ØíÅwG˜ÄùóÝŒŽŽ³reœ+¯ÜHMM»ÝšoçAö·N¼ô&Èd`2é^B»Ós2™atdŒžÞ~{ü,§šN£(i„·ÛÉÆ—±re —˱$‚×/â©§^ ©é ºRà€J]‡Y Ng…1µ€aj‘ÏÎ 'æÉ*w;Íé´ ›Í6Í´\ápápîî>ZZÎð¯ý_þç»w²¢6„N$SZ8ÓÞÞEcC3-§Ïæ—Y­V|>O>œñx*²=Vå5«ª*iiiçìÙó´µÞFßd2áv;ñú/·Ür›7¯×Ì®´‡ÙdnáNùšÉ<¦Ü?'ï ­IDATüß=§»™Lš††Óôôô±e˶n[Ï©Sg9y¢‰¾Þ‰›»:ü~-”ñû=¸\®lWay¼Túøx’ †I¥RùùSÚKûœN'O‘J¥PÕÂxLmÄ7×)`6k=e‡¿¿"›Ï Ün×´yÈ}ž}Œ?;ÁçÒU®gïÞ O<2*Kˆ÷~á þ›â¿½¼ÿýŸ¼(Ø‘ÃagÛ¶Í\sÍVÂáà¼ÕÓm óÓž«L&ÓéÄf³–¸H«³³‹Ó§Ï’L¦òáŒ^ð6ÛÜ»§ÝäôRûJ§S¤R¬VKv‰~²Zùb-<ö ^¿¼©é,{÷¾Ìùów†HÁç~øÏÇ‹S¦>%„à«À½…K´Ü¬Xçšk¶°yó:,Ë4µÀÒÖóÕ¶Z-¸\.,–ÜS'‹TFGÇq:í˜LæYBŸ>{1.ä1æã_|Þ@ëýNàÃÀõ9ñëq8l\qÅ&®¾z ‘HÕœk‚…jHÏwèätÚq¹œùRpBŒ %ˆKEðó7õ`ttœßþöcxx¢kWÇàAàG?ü¡Y=BiN7ǽ÷Þ¿ÞâýÀÝ@ `‡ÙŒ×ÔD¹úê-\~ù:¬VKI¡^j éRß…¸Ý.Ž‹›ïRîv³ßÇ¥'ø\ÒÝÝÏË/ãСzÒé’“O^‚ÏO|þ󜽙£rÜwßgÀ»€÷7äj}µd·Ûزe=W_½…X,T¶È—*Lškm`·ÛðxÜ%³—žà/¾–™›àA+ímâàÁ::º)¥)àeàsŸÿüÎE2oϸÿþÏnÐÕ •E±±X˜+¯ÜÈæÍëp¹rOYœÿZ`ºmaáÒ&“Àëõdÿ¾©ýî¹ "·îÌF¸´_*=“ÉÐÔÔÆ¡C 44´æo‹YDÄßøüç?ðL©æÂ¼? ãø[ðÀû…àMÙìc2™X·nÛ¶mdÍšº)çÍÒ,׆tE… ·»Ô<˜©‘û<¿b,o»Å8FqºªÂ¹s]=ÚÄ‘#MŒŒäbûB­ =øâ[Bð½‡ú@wñ‹eA‘ôÁ~n­ânà•E‡´ÑÄ-[ÖqňFCóV,uCÚf³àõz§œV‘ûlÁ !H¥Ò47·ÑÐÐJ}ý™I}÷ºS‘þÄ7gzèþé¢<#ìCÚ-²µÁÝÀ;ÉÞj=Ÿ‰ìÇp8ȶm¹üòu¸Ý΋3,mCZû;¡'ÿ”½àçã/†àçòLÎÛðð( g¨¯o¡¹¹=;/_¯Ž‚/ÇÐîDþ½‡ºÞKûR,úS"?üᇜ îÞÜ ˜Aï~É$X³f%[·n`íÚºw¡¸tÒf³‰@À‹Y÷oûÅãLµÌü£x9@ww‚††êë[io?Ÿ=Ÿ“B›G?zè¡ûOµÒB±¤IýÈGŽïF«¶ 1ù$9v.¿|-›7_Fmm‹R L·-Ì®!m2™}®\ÁÏ£ þ©Ý»ï;:ÓËKÆz>ö±ÿs šþ¨*U+ƒ~6o^͆ «³ÞXÜZ`ªmM&­=0S(´Ð‚ok릥å--çhk+KðÇÉ xn÷îû&MÄ¿”¸$ ãcû;+ð{À{„`S´*+}\vÙ Ö¬YÁŠÑüS-/6¤™«y¼^wvÝäFm.mêg.ÖqÚÛ{8{¶“––ÚÚΗ+ø^ài4Áÿj÷îûÎΰþ%Å%m=ù—ïnAk8ß Å3Åb¡®.Κ5µ¬^]‹ßïQäóݶÙ,ø|ÙͯàE¥§§Ÿ¶¶nÚÚÎÓÖÖEOO¢œÓ¨õÀ¾ìë ~÷îû^")ÁëÆzþ꯾lnîÔ^båTë ¡Õ«WײfM­®vXø†tU•!¦à[9‚£½½‹¶6íuî\ÉrnR£h3+s‚ß¿{÷}“ž¤øzæui€b>þñ؆V3Ü âòéÖÍÕ«Wײzu5~¿ç¢Û SmëóU䟑VnŒ¯(:;û ŸH\(÷T´3Q²ïqp÷î{SånüzÄÐóñÿãj´šá.o‚iï¶™«V¬ˆ‹…ðx\óR øýÓ>ò3•Jsþ|/}tvöÐÑÑKww_¹±{8"/øÝ»ï=3ÛóõzÇpÐó‰O|% ìqpàÑ/Ÿ<˜)¨¨p‡‰Ç«ˆF«ˆFƒØlÖY…IBœN[þI7ccãtvö¼ÊŒÛɶÀ~&™—vï¾wxº­$7€žO~òŸÌÀU nnn È9Їù=>_EþåõVàõºÒé é´‚ªª8V*+}ØlVΟ×JõœØ†JªøÈú/äCöÇwï¾W^ÌY" 0ŸüäW-Bˆ«ÐÌp3š!*¦Ûf~(Ù›¢5X_öïÞ}ï¢L~½# P&ŸúÔ×,@Î7 =hmÙéܳ§ôxм¼&¯¯>øà½§çv ÉLH\ŸúÔ×lÀj`îµíT.Zà¯M SÙ'íd¿ŸFú«dEÿàƒ÷v.ê08ҋȧ?ýu+Ú_C+ú¼w`‰³dx¤$†f†'NI$¯o¤$†F@bh¤$†F@bh¤$†F@bh¤$†F@bh¤$†F@bh¤$†F@bh¤$†F@bhþ?­•¨`WvIEND®B`‚pommed-1.39~dfsg/gpomme/themes/KStyle/mute.png0000664000175000017500000003454711571653265021025 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsppuhu&tEXtSoftwarewww.inkscape.org›î< IDATxœí}itÇuî×=û‚Ù° v€$Hà.qeÒ%J2-GNYÔ³“X:¶ì8‰óœÅÉKäìωŸ“øENr¼Æv,YÇV¥"ÚO–Z¢dS´$ŠÀ±ïË`öåýt«»§»§g0Àô€óSgfjº««»ï­º÷Ö­{™T*…2ʸYÁ»e”QL” Œ›e(ã¦F™ʸ©a,vÖ2!FNÁ§CRg°  ð¹H) ­zço0e+Pþ „ÔX'(­‚ךּTÀ8€ëú–>¯ ~PJcºÖM…2h!ÄàV·Ø ib·±[B$ ¸ à4€_ø¥t¸¨½*”@B`3Ò„Îü6”¦¸xÀëXbgÊâ”e@©ð€_ðžå¶i4a±X`2™`2™`6›ùïÂ:†a‹ÅøFE¿¹ºH$²Ü.@ À9?ð,¥ô­B4Zʸi€²À—ÊL.ç3 —ËÇŸÏǯ×Ë§Ó †É©IU„ÃaÌÎÎbff&£ÌÎÎ"çÓì€cžð2¥4Z°—n „Ý9¢ß õ\ƒÁ¿ßÆÆF444 ¡¡>Ÿƒa¥º›3022‚ÁÁA ahh¡PNÒ΀ç‘f†ç(¥3+ÒQaÍ3!¤À'—J£–s|>O쨭­…ÑXz*ÀÔÔ†††x¦A"‘ÐrjÀ3¾N)}ue{Y\¬I „°îð›>@u¨6X·nÚÛÛ±yófTTTä}m–ea6›y™ßh4‚eYÅÂ0 ’É$_‰„èw2™äõ€h4š¯¨ˆÅb¸~ý:._¾Œîîn-§]ð OPJgó¾¸N±¦€âð(€_GÚ¯»ÝŽM›6aóæÍhkkƒÙlÎéZV«v»‹…'v³Ù¼â3E2™äeŽ)B¡‚Á ’ɤævR©†††xfÏvJÀ‘žÞ\Æ-è k‚![|ÀƒLJÇ9lß¾hjjËjó1°Ûí¢¢õÜÕB*•B$A0D0ÄââbN–£ééitwwãüùóκ|pÀ—ü;¥´¤ ¨¤€Òà/<¿¦uëÖa÷îÝèèèФ¸²,‹ŠŠ ¸\.8Žœg½ ‘H  baasssˆÅ´-ãôéÓ¸pá¢QUÃÐE€–*#”$B6"ýà „o·Û±sçNìÞ½•••YÛ4p¹\p¹\p:yð@|™™™A$•p8ÌO$°Z­°X,¢ÂÕ9NTWWóÅëõæÝ·P(„ùùyÌÍÍ!g=>‰àüùó8}ú4FGGÕ}ÀŸSJåÕ±"¢¤€²ÀŸø(ÛææfìÙ³Yåq£Ñ¯× —˻ݞ“Ý~ttW¯^ŵk×0>>މ‰ LNNæjz̃•••ø|>X,–¬×íëëÙ3gpöìYô÷÷çÓõ¢Ãívc×®]صk¶lÙ’U—I&“˜™™ÁôôtÖ™l~~¯¾ú*Μ9£ÄIÿàO(¥ú-Ð-Bš|Àýrÿ755á®»îÂúõëUÛ±Ùl¨®®†ËåR•c±ºººpöìYœ={33kk!Ôl6cË–-صkvîÜ ·Û­z|0Äää$fgÕMÿsss<#(Ì7|šRúã¼;¿‚Ð,-bý6€/ ½aD„ºº:>|mmmªíX­Vøýþ¬/úòåË8qâΞ=[(‡3݃alذï}ï{±oß>Õ1‰`ll,+#ÌÎÎòÏQÿàRJUµéÕ†®€²À¿ íœ&‚ÙlÆÝwß½{÷ªŽä‹…'|%ù>àäÉ“xå•W²Y7Ö<¬V+öïß;ï¼MMMŠÇ…ÃaŒŽŽb~~^µ½7nàØ±cJ k³þ€oéÅlª „|iE7CÉmooÇý÷ß—Ë¥x¾Ùl†ßï‡ÇãQ$üžž¼òÊ+8}úô²\ Ö*Ö¯_;î¸{÷îUÔB¡FGG±°° ØN"‘Àk¯½†'N(=çÿðk”Ò‰‚t|(:B<þiM\.î¿ÿ~´··+žÏ0 ü~?ª«« ÿâÅ‹xöÙgÑ××W˜N¯q8NÜwß}8tè¢x088¨ºP633ƒÿøÇ¸råŠÜ߃>L)}­ ÎEeBÈ-Hˆ"M–aÜvÛmª/H¿¨††ÅcºººpìØ1\½zµÝ¾iPQQ#GŽàŽ;î]cH&“üˆ]¸pÏ?ÿ¼œé8à)¥´ã9 h @ù ¤Í›"êu»Ýx衇TåQƒÁ€úúzx½^Ùÿ{zzpìØ1ôöö²Ë7-Ün7Ž9‚ƒÊ..†Ãa aqqQ±P(J)º»»åþ~À£”Ruc°ê @qø:Ò«¹"lܸúЇ`·+ï5÷z½¨««“}ãããxúé§qéÒ¥Bv¹Œ%x½^=z·Ür‹ìÿÓÓÓY÷œêëë3lÿ@”R¼ñÆ+Ñå24¢®®ùÈGdWäçææpãÆ Eÿ¢T*…Ÿýìgx饗ä”èÇ(¥_,|ÅXq „Ü à¿ YÕÝ»w/Ž9¢¸¨Å0 eÝîîn<ñĺsH»™qÏ=÷àýïÆûŒD"èïïWu¿îííÅÓO?-·_áüþJ.š­(BŽx €Hv¹ãŽ;p×]w)žg2™°nÝ:X­âÈ‚Éd/¾ø"^xáU³[ÅA[[y䑌Ëd2‰7n`nnNñÜ<õÔSrŒò€OPJWD¹[1 „| À× Ù°räÈÜvÛmŠçY,¬[·.CÞ_XXÀ÷¿ÿ}ôôô¬DwË(***ððÃcãÆ¢znòôô´â¹cccJ3û^4+øf‹aBÈ£¾-¬cY„lß¾]ñ<›Í†uëÖe˜8¯]»†'Ÿ|2«JúÃ0¸ï¾ûpøðá «ÞÈÈ&&”= fffðÄOÈ1ÊOüágŒ B8´¶¶fXN:JiNÊÐ:;;ñðÃg¬"«:!<ùä“rÇ|›RúÉBö±  @¹À ^³ÙŒ‡~ÍÍÍŠç¹\.477g(PÇÇ‹/¾X°þ•±úhiiÁÇ?þñŒÅM.h—Âá0ž|òI Jÿú Jé_ªcBÈ:§ عŲ,>úÑbÃå(„n·ÍÍÍ¢©2•JáG?úNžú(ª««Eõ“““ªqˆæææð­o}Kê~ðK”Òç—Û¯e3!Äà8€Û…õ÷Þ{/Þóž÷(žgµZ±aÑ̋ÅðÔSO•-=k‡ûØÇÐÐÐ ªÏ¦á;ßùŽÔDpçrC¼"¼Ù·!!þýû÷«?gç"‘À~ðôöö‚a˜rYƒ% â»ßýn†ÛJmm-<å” ~¿¿ú«¿*µ:üx)fÞXÖ @ù8‘,¶mÛ6<øàƒŠNmƒ6lÈX䢔âÌ™3y÷¥ŒÒÛíÆ§>õ)‘NJ¥pýúuÕÕý®®.<ýôÓÒEÐÉwµ8 é°B•Ëê”ùùy<ùä“"‘†a´´´dІxßûÞ'­¾ÀïæB»"šÌg „˜‘¶øðŽá6› Ÿþô§U÷íÖÕÕe(Ao¼ñž{®d‰•Q@´¶¶â£ý¨H´‰D"èééQuuùÁ~€Ë—/ «¢öSJs!òþâBˆ*ñ;NTU‰œAqéÒ%üä'?)úˆT.Å)ýýý ”ŠˆÝb±d(ÉR|ðƒ”ÒšÀ–6[儜ƒÙBîð{º}ûöaóæÍŠç 455aÞ&''ñì³Ïê.Ìx«‹Ë—/ãÔ©S¸ýöwí(>Ÿh-»ÝŽ£Gâ»ßý®y6øG¤ÃgjFNÔ·”ú{$”óûý¸÷Þ{UÏkjj-‡Çãqüçþ'‰DÑG¡r)~9qâDÆZ@cc£j°ß––ÜqÇÒêG—BijF®ÃïßC°Òk2™pôèQ ¤R)Ùâóù2D£Ÿþô§˜˜˜(úƒ/}”T*J©(2ŸÁ`PuŸÒnõ2; ÿ‰¢PÍ"!d$Ùß÷¾÷¡ªªJQa1›Í¨¯¯ÕõööâÌ™3eѧ æççñ /ààëjjj·»²,‹|_ýêW…¥j¤sGüžìIÒ6´´”=ý+ˆ>ÍÍÍØµk—âÈŸJ¥ÐÐÐ "ô……<÷ÜsEqÊEŸåÒ¥K¸pႈöjjjTó<¸ÝnÜ}÷ÝÒêÏ,™é³Bë ðkö +î½÷^USUEEEF‡çŸ‘H¤<ú—¡ˆãÇ£µµ•ÏÔɲ,êêêpãÆ ÅsvïÞ7ß|S8S˜ü_¤3„ª"+%.™–þ°nçΨ­­UýÅ)y¯\¹‚¾¾¾¢2å¢ïÇñÊ+¯ˆhÇãñ¨ÆŠbYGŽ‘Vß¿d±T…–àð†Y³ÙŒ;ï¼Suô¯®®†Ífã' ¼òÊ+å‘¿ MèîîÆ®]»øõ†aP__¯c@:ÂH{{»tì!ÛÕv‘©R$!¤Àç„u€ÝnWùY–ÍXÈxë­·077WôÑ¥\J§¼üòË¢AÖn·«:ÌÀ}÷Ý'ÝQØàÓjçd’ÿïœáõz±{÷nUÑG¶0à7Þ(ú-—Ò*¸xñ¢ˆëêêT‰ÕçóaÿþýÒêÇ–\wd¡(-%¦{DXwèÐ!°,«(þ°,›áësòäI$‰›^üaY6›-£ „B¡Œ¢5§ïZÆ©S§°iÓ&>ú·Éd‚ÇãQM_uðàAœ9sFšÑà#H‡WÉ€šðëxÍÃëõ¢­­-«ì/ýgggÑÝÝ †Ñž~t-Àív£¡¡¨¬¬„Íf…p×â€Çù¼¾CCCÆøøøM ãܹsØ»w/_WUU¥ZÅl6c÷îÝxõÕW…ÕŸ…ÈzƒB ®à—â>¬˜Ã®]»D¼òJ†]w-Ân·£¾¾õõõhhh€Ó™‘Ú,ç@^rÇÇb1ŒŽŽbddÃÃØššÊ»Ï¥‡ÃGyD$Û÷ôô¨†bxüñÇ¥ƒÅ{)¥?“«4ˆßb±`Ë–-ª/ÑëõŠˆ?‰¬éÑŸeY´µµ¡³³>ŸOôŸt”.ñi÷€††ÞȇÑÛÛ‹®®.MÉ®KÁ`W®\9[VWW«nœq8ضmÎ;'¬þ,Í ðYáíÛ·Ãd2©¾H©ËCWWך”ýM&6oÞŒŽŽÞÔ«üU+òÙ—a2™ÐÙÙ‰öövôõõ¡««+k6ÇRÄ… D àñx`4Uõ¤½{÷Jà— !-”RQÒç XŠís€ûÍ0 vîÜ©ú‚‡hÕ7™LââÅ‹kjô·ÛíèèèÀ† x/E5y|%‰_îøÖÖV´¶¶bdd]]]k*\üää$FFFx+Ã0¨®®V+TSSƒ––a’s€Ïøáqr3Ào lܸª/IºÑ¥¯¯‹‹‹k‚ŒF#vî܉õë×ó³Y6Etµ‰_¿ß¿ßééiœ>}Z5 m)áÂ… "3¨Ïç“ š%¾}û„ Ÿ „UUUسgŸ¿@‹F+A¯´xäv»qèÐ!tuu­‰\iˆF£|Ðd‹Å«ÕŠPH9^îúõëáõz…fS/€;‘NÓ s¸iwRïZ7Ô^€ÍfùiÄãq —ôèÏ0 :;;±qãF0 £iÄ7 `Y6cAGºP˜H$Tshɵ ¤Çwtt ¦¦o¿ývÉ+Ê7nÜEôxì"„4QJo€b°_Ø@ss³ìƒ6.e€™™™’’ÿ«ªª°iÓ¦ 7p8Y-@r÷ZhѨ¢¢óóóH$× <6nÜXRfÒÅÅEÄb1~1Òb±À`0¨&H7™LhnnÆõë×…Õwø7l…@ª¬¬„ÅbÉÊYR˜-p»Ýظqcñs"–Q_NùÕzÿjmKÛà˜@«‹t.Œâv»±nÝ:ôõõi>§Ø˜¹ÝÛív~ÁOJ£¥ °xWe±¨¬¬ÌJüf³Yäâ‰DJfÃ;˲¼ˆ'{l6Û²\Žsa%fʰœN'fffVÄýÂëõbvv¶d’JÀápðƒ¯Ò3Z+¡Æ>Ÿ/ëÃ,åÑŸ‹:&%¦ŠŠŠUõ·W{ÆrŒât:eÝ áNQ__ÅÅÅ’Øo }ÜJ}.î:Èeã,)ÌÍÍ•Äèo·Ûáóù2^4·š­PzöƒV«•_ýÌGßPsµöûýŠ&E=A:Sq"«ìv»t= ’ÒÀ1€(y¯×ëåTšV¤a*æççu?0 ƒ††† SÃ00E'þlb'Vú@Áè€ô*øüü¼\¶v]AÊ\†l¨ªª’šQw !­øà‡ƒW€Õd*iàÒH$¢{¨®®æEá}Ùl¶‚›:•,h¹/†a`2™4i®÷TUU•Õ½ ØH&“ˆÇãü¤ÑhÔtŸÕÕÕRØn„‚ü¯FüÜE…ˆÇ㺠<OñÕ„ЛÜl6guËW<2p¹\ª;®ô€X,&¢Ál¦P ÓkÀ#Qúv¯× û”c=ÏÜ‚‰”Ð9FÏÅC³ÈÅdÊÏAÉWIîØ\Úå`³ÙT÷Üê±XL|-Û1 ÓqÀF#Q´!«ÕªéJ@ïÛ‡,‘ËÉþZL•Rc–c‚B,–F˜L¦Ur”Ø9W5Èäóˆ"ØfÛûË¡”fÎuYiÔ\­í¹ªy˜Ê›ïæ{-Ç ­Mz„TÜÑ¢È$ÜpgÌZ@ا@êuP[ÜâÅ€ÜVgWrÄ×"qý^ k~¿z}Ÿ@z.bjÛ%ºmþ3€ðáp©Žô γRÜÆ¡ÙW Zž ׯJ2I4]1âçŽ5ºƒ¤ÌŸÍhÃÁl6 3Ñóžâñ8¿?Ó`0è–¸ÍJò2ç.¬¹è+=CäJ˜ùˆGjbc±!ñãñ¸¦{äö\pÈ{zäiÎÊf†*ä^¢ôþ¢ÑhƶF) Mü¹ÈûRÄb±‚nÐW;^¯bTæ×:#Jõ€¼g€h4*2CéÕj Uåî-«f(×Jü¹,f-g†ƒ_·;'WSíjBÊR@ œÔ·@”\X‹2drœÙlVÝ›YLdSr#‘¯ qÈ…ˆ–KÐÙ l;•J©>çB˜A…àvé R:ÕœˋF ø%2-â€Ü¥¤pr~¶‡‡a6›s&ä\‰? ¥Ùj5C1êU¿“2@6ˆ{OÒõ#Qè°h4ª*(]P¯f3­z ‘A ó¹™L³¯ñx\¤ÀåÛ~®}Ñã{2@*•R}ÏÂAJ:{ˆœ«µ*Áp°Z­º)ä\ÔŽ ‡Ã¢M>–»‹,­Ôv*•’‚¶R„Ï›L&UÓ”R{¾”…ÎÐa†a077':În·ëހܯB¡Œ¸?rÇÉa¥FþT*•ñ’Wz @ø]oïUêÿ¿°° ùþä CÒ"KÍÎÎf0€Þ¦Êl3€Ò}&‰eé4¹ú©=o©Ò[( Öc¹z‚Ôÿ~~^ñ™KïG¢Dsš„Ó ®ƒ»˜E ®?ùøÌpÆ€Õ²ðÈ=;Îï]zl.í.÷x=*ÁÜþ Â@í}ÉXŠf5ÏÒ†ãñ8øŒÞ ÃÀn·ën7‘p W¢à¬GÙFÀ\]²Y‚ä,WÅ ~ -oëm27d¬d sF¢”{ápXóœ››í ¶ÙlŠVŠbó_ɉQËYÉÍvíÕ |­«ÕzS€†™«“É$d¿'#ÂŒ€(µ¶T¹å.*×øìì¬(5’ÍfÓ]h ID°¬X-å²ú¡GÓ6g¢çî!—ýÑ2éU/ˆ)I@mZ™žžýçt:u—šG«C×Jg.笶’«=ÊÿÒPˆRcŒdàœ‘R:L™P¤å¤P(Ä+µjsÁp9#.X–ž\"¬V«®Sé±mîX=6¤&Ðñññå1÷ÀÝ\íÜÜœ¦­‘©T £££hllä딂7 \Øq¥T:¥L +ݶ×ëÕ•d4Eò"‘ÀÔÔÔÊ0@MM¦F‡‡‡ùxí@šCõ–˜ÍívglòÖ qærÎjŠGN§SvU¼˜Úÿ'''5ëw\P]†)¥“Bà!§+attT´!Þl6ë"È”n·›Oݤ—Q|%Û.D?*++u5ú™æÏ\Ä©äðnhļ ‹abbB4cØív]…Õ0¨¨¨›U±D§'%Wéx–eáóùt%ÿKÍŸ©TjÙò?ð.tˆ°iÓ§kÁÈȈ(Z¯ÓéTM_Y TUUajj*ëqzÅs=§mWUUÉEP(*¸Pœ\Ÿgggs2¶ÈX'ß–€R%„œp÷ïØØš››55>00€ÎÎNÞ•Øh4êÎäv»a6›UWªõDüÅêëëu5ú™âÏàà æûŽF£˜œœV%Ä)’ž…€FGGÑÔÔ¤ùhmmåëìv»æ„«†aÐÖÖ†óçÏgü§±Dýhhh€ËåÊzÜjÂl6󩪀4½ŒŒh¾w™cORJ§1üÀW¹SSSñÕpåÊ´´´ð¿M&“î”aǃºº:Qð×RÅs=GëqV«7nÔò+5Éæ´º?22"­:Æ}á©›R:Hy À­@ÚÇbbbµµµš.2??±±1‘2œ-•}1°~ýzLLLääóè‡øW²º“ý¹|ÊBߟÍ÷•L&år<Ë}‘ïǰÄ@Zðûýš;{õêU‘2, B¤ ˜ÍftttàôéÓšŽ/µQ<ßsêëë5v« é>í±±±œ<Ž'&&¤Û%»(¥W¸r ð—“µ3߇1ØIDAT½e£££XXXyˆêMÒq⥢ô22¯t?Ìf3¶mÛ¦;Å—eY‘ìýýý9Ý£Œøó¬ð‡ˆ(¥oB4iŸÿÉÉIѨ.¡ÏPOOvíÚõîŒFÍQ»V[·nÅ‚¢Û†žt%ÛfY{÷îÕlò^Mpú'w_3339¹Ù$“IUùÈœà?ü÷£¿¿_.Á©Ã\?Z[[áñ¼oËl6ëÊ"¤g¦Ûo¿?ÿùÏù‡ª'â\éö9â?pà€.E.3¼páëòåË9ÝçÐÐTðº°B޾àw°”7xff&C¬vR®CçÏŸÇÁƒEÇI§2=Àb±ààÁƒ8qâDÎ|¥8ê eYD]]]N}[-Hikhh(ç½&×®]“V}R*2K2rò#à~×ÕÕ¡££#£ƒjؽ{·h³ŒÞˆ_ˆp8ŒŸþô§šøJ]TÂÂÂΞ=‹sçÎi¶J¬¦ù·­­ {öìÑ­yS@ üyñâEM¢' 6ȼùæ›RSö/ÜN)U| ZÀà€Í\×ëåE­`uuuؽ{·¨Þ`0ÀåréR)VB4Åùóçqúôé¢3زe öìÙ#— ]×X\\ÌðÁÅ‹5/¤™ÑÑQ¼óÎ;¿Sn£”¾¡Ú†–Šò~ÿOX×ÙÙ)rwÐÚÑöööŒ©Ùd2Áív—iÙµ··×®]Cÿª…ƒ±X,hjjBkk+:;;u/ãË! ò! 9ÌÍÍáôéÓšD!­$ üâ¿ÎÊORJÉÚŽÖ)šò€#Üo›Í†;vd%Z¹ÿwîÜ™±c±XJ’ „˜››C__úúúÐßß_°ÀƒüZLmmmɈr…BƒE0Äo¼¡ÙgLH'ׯ_—š>l¢”f(íäÀíH‹B¼âÜØØ¨*o*3Ã0Ø»woFì!»Ý·Û-{N)bbbãããX\\D0D0ÌøžH$`·Ûa·Ûáp82>Ýn7t¤6_D"‘ Óf4Å›o¾‰`0¨© !]¼õÖ[R]ëO(¥­©­\”4BÈã>+¬ëèèÝCšm$7 ¸ýöÛ3Ä(»Ý¯×[Ò3Aò…B˜œœÌ°øä¢KIEŸ·ÞzKªGôè ”jÚ5“+8œÐÆÕ™Íflݺ5c„ÒBÀf³€Ã!ÊÔ ›Í†ªªª2¬!Œ‘Ÿ[gɶإD===V%ÜC)}Ik¿rb „ìð~ËãñˆÛ\×n·cÿþýŠœÕj…ßï/iY·Œ4fgg3b2¥R)¼óÎ;YÍJ´411Ë—/K«¿H)},—¾åÌ@ù+¬knnFMMM^£¶ÅbÁþýûùl3Âúºº:]/–•¡Ž©©)LOO‹ê‰.\¸€‰‰ Õs•h)ãìÙ³Òȯ8@)Õ–—»Fž ÀxÀ=ÂÎvttäm’3™LØ·o¼^¯¨Þl6£¾¾^×¾Ced‚‹Æ ÝcÇñöÛog S©–<üüùóÂê;)¥;`²!/BH-€óø ÃV«›7oÎÛba0°{÷î ë˲¨­­Õ]À¦2äF188˜½!âÌ™3ö)Ô¤ˆëׯˉM¥”>•O_óf „ÜàÇÂ:§Ó‰¶¶¶¼ewÎÕB¸›Œƒ×ë-ë:ÇÜ܆††2³B¡Μ9“ÕÔ©FüÃÃÃèïï—VkZðR¼Þr}U!_†`=ŽÃ¹nݺ¼­8 ཽ6lÈhÃjµ¢¹¹Yw±ëov$“I Ë žÅùóç³úO©ÑËää$®\¹"­î°‡Rª>¥¨]³ À"I‚뫪ªòrÊ>„ššìܹ3CþgYúBÅA8F__ŸlÀþþ~ôööfu T#þ¹¹9twwKÛ°ŸRš±÷1,›€bðS· ëkkksŠ,'÷l6n½õVY¿#—Ë…¦¦¦òlP$$“IŒŽŽÊªÇã¸té’\XBY(1@0Ä¥K—¤"UÀ”Ò3ùõ\pÝB¹ëB|NhÖ755i©ÕF–eÑÙÙ)Š>-ü¯¾¾~¿¿¼p¶Š˜ŸŸG__Ÿl˜Â@ €sçÎååÚ D$AWW—Ô?(à”ÒrïµÌµ é¯Nip €hßdsssV-Ä[__mÛ¶Éî$³Ùlhmm•_TFáÇ100 hÃÎi¯Ò{F£èîî–Ó>F)ý^]V¿~¡7lBvx€hU«¾¾^Ñ_=—‘Ûb±`ëÖ­Š{“kjjÊë+.Zø72öîi+OWW—¦,<ÔºzzzäÏÉ>n·» y¨<¶mÛ¦¨g°, ¿ßººº²Å( „#¾RþX,†«W¯âÆ9·¯ôÎggg•BŸÿ¥ôç|!­ýYéMÛ„-Hû 5ëN' ¶ªË0 jkk±iÓ¦ §:!¸Õäòž1‚Á FGG1>>.+ãi¸¿¿ŠÇ¨AéyOMMappPZð۔үʜR0¬8!¤À‹D›Íf3–=*Kl}}=6nܨj2›Íðûýðûý7í¬Àö£££ªR‰Ð××—áòÄÏ­K½EÄŸO÷Áº– .~Îää¤êh¤ ÿÆèëë[V~¹w‰D000 'fï æÒ·ÕŒ[CqxÀÝÒÿ\.jjjr‰´ˆ0œhÔÒÒ‚ÊÊʬǻÝnTVV¢²²R—YSòA"‘Àôô4&''1==u…BÂÐÐPAÒ[IßÓìì,†‡‡å”Ýq„RúÚ²/ªµo«·Ÿb@:ÙcDOÆl6£®®N“Å&ùÝáp ¥¥ ²×> ‡ÃÊÊJx<TTT”ÌÆôT*…ÅÅEÌÏÏcjj 333YM”©T “““Ì)g6ßç:¡°àç>¬%’C!±ê Àré¼¢a™³á«)²Üqù‚eYÔÕÕ¡¹¹Y5˜”ôÙØív¸\.¸\.TTTÀápèÂ5;c~~ üg2™Ô•Ž &+“NhÙ¾£H$¢fRý2€?Êu7W!P4BH€p›ô?»ÝŽªª*Y™¼Ö‡Ã¿ßÚÚÚœãq¡m6¬V+ÿiµZa±X ÊÑháp¡Páp˜ÿDò¹–÷ …0>>ŽññqÌÌ̬ˆ5Œk3™Lbjj SSSr}›ðqJ)-x4¢¨ ð¡ÿ’p+@ú!z½^a®äË2›Í¨©©ßïGeeå²ö"3 ‹Å‹ÅƒÁ–eù`ÀÂÂ0 ‰„¨$“Iþ{,C(Êi•Uîý.,,ðD/Ü‘µ’ÏsqqcccJzÄ9G…9{‹¢3BÈQÿ Ãd2™PUU•s@^-P"ƒÁ€ªª*ø|>¸Ýn¸\®’؜ϽÏÅÅEÌÍÍann²‹Z+Eü‰Dãããj¦ÕAÚÆ¯=ãõ A7 „:¤3Ó•û¿¢¢>Ÿ¯ ‹g¹ër¹àv»áñxàñx2â Ñh”'v®d3[®ñs §0c]ð[”Ò ~ñ<¡+à@ù€¯ÈÈ䯲,o•YÎK,F8Øl6>¼¡ÍfãK!u€H$‚P(„`0ˆP($ú®ä² „• þP(„©©)¥¾Äü=€¿¢”fn+"tÉ…î ~K9‹…0 p»Ýp:9¿Ð•”{…°Z­0™Lr?˲0`Y,ËfèB] #ç­héçr …033#»r ¿ð)Jé…‚^¸@Ð-pXŠD÷-HV9pŒàp84/Œ7c›áp8áÏøc_WËÐRl螀bð @Ö¯c»Ý®•ºÐ¸ÙÚŒD"Ù¾à±Õ^ÔÊ%Á!!½n ƒÁ‡Ã‡Ã!²Ú¬”ç§ž‰µPmr+Ë@@‹¾ñß”Ò{ó¾Ø*£4ÖößÅ+ÙH$˜ŸŸÇüü<¬V+œNçŠy{rÉÙÖj›±X @@ äxÎ*"JjBÈyÛ¸ßV«‘HDõ >áÄrmù+¹‡@#*•B0D Èê±cǼóÎ;Rçº[ ®dµPj3|À—¸±X uuuª#U"‘ÀÂÂ`±Xx—…|˜a%Fç•l[K›©TŠw­È¶ê̲,öîÝ BNŸ>sçÎ ÿî*%âJ“žB:ƒ= ¤‰;‰ÀãñÀívg½"‘ÿŸÉd♡XûŠÅP‰D‚÷) ‡ÃYûQUU…{†ÏçC$Á¾ðéaO.£ëEAÉ1¥tˆò2{ x3(§sòëââ¢âˆ‹Å‹Å0??ƒÁÀ;´™Íæ’Ý.©DÈ©TŠ_S‡Ãšüü¹@Å÷Ýwn½õVÑÂÞK/½$òœDzp*)”,áo!`ÎSR¸Åd2ñŽt\R:5 F"‘Àââ"ŸÙÑd2Ál6ó¥TöpH&“ˆF£¢¢u¶ñx<¸çž{pÏ=÷d„±áÚ>v옴ú”Òå÷|uQZou ”Ò !'¼‡«ã¬>Rp.ËÜþ`‹ÅÂû«¨7;p Á²¬ˆ)ŒF#ïÍYL¤R)~Å8‹ñÄ.WG555رc8€­[·ªºqœ:uJš›+à/òé±Q’ °„?À'C ‡ÃYC#F"ÔÔÔ`×®]|,û‘‘‘¬Û“ɤHà tqà˜‚ûdYvYñR©_8÷ˆx<žñ™†AKK ¶mÛ†íÛ·óÑ4²õurrßüæ7¥ÕÿZl·æ|QrfP!!ÿàƒÂº\¢à €u\Åää$jkk5½ÐÑÑQLNN¢¥¥õõõhllÃ0ˆÇ㘞žÆÄÄ=!ËÒVp](§¶l0hjjBss3ZZZÐÒÒÇÃ3Õj…ÏçË)bÞ7¿ùM)ñ§<\ªÄ”ø „[NÛÊû‹%猕v»mmm¨¬¬Ì¡†Áââ"Ÿù}ff†_WÈUÖ.4¸} ^¯•••<Ñ×ÕÕÁh4f܇Ñh„×ëÍy/Ë/¾ˆ¯}íkÒê/PJÿ´`7S”<!ä7|]XWQQ‘W»ÝŽúúzÔÕÕÁjµÊ2ð®H …D›Ñ97 n¯.Wrù†á•n“ɇï×ËŸÏŸÏÇ#Kè¾², ‡ÃŠŠ X,–œu’žž|þóŸ—ê?p¯ž==µ`M0Bžð°°Îçóåœ/€óÑ7 ðù|¨««Cee¥,‘P$<éÿœž³ÖpßS©L&, oa2™L0™L˺'æ,7zÅØØ>ÿùÏKÞ¸…R:žW£:B©ëBü&€[lá*¸ P¹F{à0;;‹……>Œ"®E ñIë¹M0¹u¶6åŠÑhä•ÛåFÄ~çwð¥/}IºàG:~OÉ?°†f „lFz’(¡˜ÍfCee¥¦Qý¥ŸœiÓn·£¢¢|Hn= _¢]ÎyBw«ÕZ°UìãÇãßø†œ™õw(¥_Yöt‚5Å@é@:${«°Þd2¡ºº:늮HíûÜ'÷s¿p8¼_Q>Äží?–eE{ŽóuèSC2™Ä÷¾÷=¹•Þ8€OSJ¿UÐ kŽ€âp À^a=˲¨®®V]'È…ä>9ÅÕb±ð¿F£ˆi8=ƒ#láu¸"·êÌ1ÖJ! âË_þ2ΜÉpè\ðP¡Óé k’€bGÚ9ë—¥ÿy½^ÅÍôËa!±K‰_í7§ô*}_ \»v ?þ¸\Ò‹A÷SJϯJGVÅl¹B ”<àqé333U •ï§´¥ßrXÉÑ] 333øçþg|îsŸ“#þ³ö­UâÖ–(K6êß%„\Ešx9‹a||6› § #­âWbµs ‰h4ŠcÇŽá™gžQò’}ikOn ÀJ kv‚RúÏÞtd2B¡FFF4…ׂ\ˆ_î·Ò÷Bâç?ÿ9>ó™Ïà©§ž’#þ0ÒáëXëĬa@„ €Ï!¯&ÀeY~У³P:€´N(ë e~i}!J¥ðÎ;ïàûßÿ>º»»•£~ŸRz½ -ÜT ÀÒˆtDêÈýÏ0 ï%ét:ùènj  Fèù(ÁÂc—ƒññq¼üòËxùå—166¦tX€ÏRJÿ{Y+AÜ” Àò^ÿ`»Ò1&“ >ŸUUU|T‰l +ñ«Y‚òa€p8ŒS§Nᥗ^ÂÅ‹ÕGZÜù'JiþIÀJ75|ʦßðWä3–ÂétÂï÷£ªª v»]– r!~-&P­ ]±X —/_Ɖ'ðÚk¯e `•ð¯þ˜Rª8-Ü ¸é€!ÄàxÀlÇ[­V¸Ýn‘g¦ÕjÍ™ø³éJ 022‚žžôôô ··ׯ_ײ;liÂÿÎÍ$ç«¡Ì2Xò)zÀ#jµœÃ0 ï“_SSƒªª*8NØívž1rÕ†á·zŽ¡··ÝÝÝèíí•:¨©!àGH'¥x¡ÔÝ— 2¨`)(ïý>àò\71 ¢ß (¡„|¢D€®j”PÂUJ¸ªaÌwf3„FÀØãþÚUuF` p§ø;&I’wÆ•@W²MBˆZ`~\™÷¹ °æèVa 8\˜ø{>îû%I’9º×U…2€Â\l6ˉ »-ÍŠGè΀?”$ér^[U(@!„XJTÐe_Eqª‹íÀ[L8XR§”(BÔwwª¦zM£ÑˆÅbÁd2a2™0›Í±Ïñu:Ž@ +~¿_ñ]®óù|Sm@8 üø•$Iïæâ¢ÅŒ«–Bˆ•À=åz@—Íù:ŽŠŠ ªªªp¹\TUUát:cÅáp ÓeuIMŒ344Äàà`B" Næ²ÀNàWÀ’$ùsÖà"ÁUC!„hï. ýÂLÏ5 ÔÕÕÑÔÔDcc#¸\. Ãt57kŒŽŽÒÕÕEGGtvvâõf¥íŒ¿#J†—%Iœ–†f=„À§'JS&ç¸\®˜°7551wî\ŒÆâ›\¹r…ÎÎÎ)ººº…B™œê^~(IÒÞéme~1+ „зŸþÐìªF#óçÏgÙ²e,]º”òòòIß[¯×c6›c:¿ÑhD¯×§,:Žp8+¡PHñ=Çæ~¿²ª@€óçÏsòäIN:…ÛíÎä´ãÀSÀó’$ MúæŠYE!DððˆÚâSÂf³±dÉ–.]Ê¢E‹0›ÍYÝËjµb³Ù°X,1a7›ÍÓ>R„ÃáØDY&…×ëÅãñ‡3¾N$¡³³3F†ÞÞÞt§x€Ÿޙ¿PP˜B\<ܘRg·ÛY½z5Ë—/§¹¹½>3O£ÑˆÍfS”LÏ)D"|>ÇÃØØXV–£N:Å‘#G¸|9íòÁAà›À?K’TÔTÔB,¾ <€†_ÓüùóY¿~=Ë—/Ïhâª×ë)//§¢¢»ÝžõèP(…Bx<FGG&Èl±øòåË8p€£Gâ÷k†ŽÿŠ•EI!Äb¢þß‘Bðm6k×®eýúõTWW§½¦Ñh¤¢¢‚ŠŠ Ǥ{x·ÛM___¬ âóùe||<ö9 aµZ±X,Š"×9æÌ™+N§sÒmóz½ŒŒŒ0<<ÌøøxÚã}>GŽáÀtwwkúðß%IÚ9©†åEE!Äào€‡I1±miiáúë¯gÅŠiõq£ÑˆÓ餢¢›Í–•ݾ»»›³gÏrîÜ9z{{éë룿¿?[ÓcÖ0 TWWÇÑÜÜÌ¢E‹hmmÅdJ©ý%Àï÷322ÂÐÐ'íñ±QAc"þ.ð7’$½œqCòŒ¢ € |ø)\æÍ›Ç-·ÜBkkkÚë9ª««©¨¨ÈHèÇÆÆ8{ö,gΜáìÙ³œ={6S ÊŒÁ`00oÞ<.\È¢E‹X´hµµµëõz`pp0íDztt”ßÿþ÷8p@ˤúðùb˜,<„ßê’ýÞÚÚÊÍ7ßÌüùšF .— —Ë…ÅbI{ß .pðàA:ÄÅ‹'Óô¼£²²’uëÖ±nÝ:V®\™v.‡d`` íH622ÂÞ½{9xð`*"„ïÿM’¤Âê-âP°B´?îLö{ss3·Ür ,мNYYsæÌ¡¢¢BSwœ8q‚C‡qèÐ!g×B¨ÙlfåÊ•¬[·Žµk×RYY©y¼Çã¡¿¿Ÿ¡!mÓÿððpŒ)FvàqI’~3éÆO# Ž‹XŸ¾NtÈõõõÜvÛm,Z´Hó:V«•ººº´/úäÉ“ìÞ½›C‡åÊá¬à¡ÓéX¸p!7Þx#7nÔ}>===i‰044{Ž)ðÏÀ_J’¤9›ži„«uNSÀl6së­·²aÃÍžÜb±Ä?•~ïv»Ù·o{öìIgݘõ°Z­lÞ¼™›nº‰æææ”ÇÓÝÝÍÈȈæõÚÛÛÙ¹sgª…µ!àÿž)³iÁ@ñ%¢Ý„Iî²e˸óÎ;©¨¨Hy¾Ùl¦®®Žªªª”‚ßÖÖÆž={8pàÀ”\ f+,XÀÖ­[Ù°aCÊù‚×륻»›ÑÑÑ”× …B¼ùæ›ìÞ½;Õsþ7àÏ$IêËI瀼@Qü”¨‡¦Üyç,[¶,åù:Žºº:æÌ™“Rð;Ư~õ+.\¸›FÏr8î¸ãn¾ùæ”ê‘Ûí¦££Cs¡lppßüæ7œ9s&ÙÏÀƒ’$½™“FOy%€âZ¢º¡b&«Ó騴i“æ €è‹jllLỷ'عs'gÏžÍe³¯”——³}ûv¶nÝšt!ÇÖ@´äèèÑ£üîw¿Kf:ÿ—$IßÉió@Þ „øs¢æM…ôVVVòÀhꣃ††œNgÒßÛÚÚØ¹s'§OŸÎe“¯ZTVV²}ûv>üá']\§³³“±±±”×ðz½H’Ä©S§’ýüð˜$IÚŒiÀŒ@a~Ht5WÅ‹sï½÷b³¥Þkît:©¯¯Oú"z{{ùÅ/~ÁñãÇsÙä&àt:¹ÿþû¹öÚk“þ>00vÏÁ¾}ûصkW2“éià~I’Žä¬Á`F „h&ºue|½^¯ç–[naË–-)õx½^OsssR³f0ä•W^á•W^)Mng+W®ä¡‡Jêc¸xñ¢¦{E{{;ÿôOÿ”Ì¢ä‘$饜6X3F€ ÏÍW…nS^^Î< éÂPVVFkkkRËD[[?ÿùÏ3ñg/!‡0™Llß¾[o½5ÁÃ6‰ÐÕÕEÊó=/½ôR² rø¬$IÏä¼ÑI0#B\¼ ÔÄ×/X°€ûݞò\—ËECCC‚íßív#Io¿ýöt4¹„ Q__ÏC=”tE~xx˜ööö”þE‘H„ßÿþ÷¼þúëÉ&Ñ_–$é¹o±ÓN!Ä­À¿¢ZÕݰaÛ·oO¹¨¥ÓéhjjJ:Ñ=uêÏ?ÿ|Á9¤]ÍØ¶mýèGÞ§ÏçãâÅ‹šî×§OŸæ¿øE²ý üçé\4›V!î^ºËÖ­[¹å–[Ržg2™˜?>V«2²`8æÕW_å•W^Ñ4»•,Z´ˆG}4aÁ2ÓÞÞÎððpÊs/]ºÄ /¼Œ(ÏŸ’$iZ&wÓF!Äg€'QmXÙ¾};›6mJyžÅbaþüù úþèè(?ûÙÏhkk›Žæ–#”——óÈ#°xñbE½¼y`` å¹===©Fö_]4Ëùf‹i!€â1àÙø:½^‚Õ«W§<¯¬¬Œùóç'˜8Ï;ÇŽ;Òú¡”PÐétÜqÇÜvÛm V½®®.úúR{@ òüóÏ'#Êo»s=äœBˆíD£Å¤Ød2ñàƒ&ô ñ°ÛíÌ›7/Á¢°ÿ~$IÊ*âA …+VðÈ#$¬"÷ööj:!ºÝnvìØ‘ì˜g%Iút.Û˜S!®v7á5›Í<òÈ#´´´¤<¯¢¢‚–––„ Ô®]»xõÕWsÖ¾f­­­|ò“ŸLXÜ”ƒv¥Âøø8;vì ££CýÓW%IúZ®Ú—3!æû‰Û¹¥×ëyøá‡Y¸0uÂÊÊJZZZCe$á׿þ5ûöíËIÛJÈ/êêêøô§?09âÒ¥K)Ïóx<<ûì³ÉÖ>%IÒsѶœ@Q ¼ ,‰¯¿÷Þ{Y³fMÊóìv;óçÏWôü¡Pˆù—á½÷Þ›r»J(TUUñØc1gÎE}¿f¢ááažyæµûu¸K’¤ßMµ]S&€¢ ØÜ_ûí·ó¡}(åyV«•… *tþ@ À /¼P²ôÌRØív>ñ‰OÐØØ¨¨O71îééáÇ?þ±ÚDênšjˆ÷\„7{•ðoÞ¼YSøe;¼ð‡B!^|ñENŸ>N§+•YX<?ùÉOÜVæÎKUUê” uuu|üãW[Ào&ÂaNS„ŸºØªU«¸ï¾ûR:µ .\˜°È%Iœt[J(TVVò™Ï|F1'ˆD"œ?^suÿĉüâ¿P/‚¾lŸìjñ¤G!Ä¢a/bhmmE‘Røu:óæÍKþ]»vqèС¼÷P¥23edd„;v(TNGkkk‚lÄcùòå|ä#QWßüU6²«ÉÉŒB3Q‹OÌ1¼¬¬ŒÇ\sßn}}}Â$èí·ßæå—‹&X 9ļyóxøá‡ªÏ磭­MÓÕåÅ_ääÉ“ñU~`³$IY«“þ'q „Ð~‡ÃAM”ãÇóÛßþ6ï=R©ä§\¼xI’Ân±X&ÉjÜsÏ=jY3/Nl¶Ê Y³BÜ|1¾nãÆ,]º4å9ƒææftºT£þþ~~õ«_\˜ñf'OždÿþýÜpÃv—Ë‹h 6›û￟Ÿüä'ñäYü=Ñð™#+é›H ýq åêêê¸ýöÛ5ÏknnV,‡ƒA~ùË_ …òÞ •JþËîݻ֚šš4ƒý¶¶¶²uëVuõc¡43F¶Ýïÿ!n¥×d2qÿý÷c0ˆD"I‹ËåJP^{í5úúúòþàK¥0J$A’$Ed>ƒÁ é>Q·ú$; ¿'„ЇŒU !ÄFTÙ?ò‘PSS“rÂb6›ihhPÔ>}šƒ–TŸá•W^áî»ïŽÕÙívjkkSnwÕëõÜwß}üà?ˆ·(Í!š;â‹IOR_#“ƒ&²§—8Õ§¥¥…uëÖ¥ìù#‘ Aåå—_Î{S*…YŽ?ÎÑ£G²W[[«™ç¡²²’[o½U]ý¹ 3}Zd:ü°1¾âöÛo×4U•——'DpøÝï~‡Ïç+õþ%¤Ä®]»˜7o^,S§^¯§¾¾žööö”ç¬_¿žwÞy'~¤0ß&š!Ti%q´ôÿÆ×­]»–¹sçjöþMMÊ”¼gΜáÂ… yïeJ¥°K0dÏž= Ù©ªªÒŒ¥×ëÙ¾}»ºúÎ ‹¥&2þˆfÍf37Ýt“fï?gÎÊÊÊbßC¡{öì)õü%d„S§N±nݺØz€N§£¡¡!UŒQ adÙ²e겿B¬ÖÚE¦)‘BˆVàKñu[¶lÁf³¥ìùõz}ÂBÆ»ï¾ËððpÞ{—R)žòÆo(:Y›Í¦é0pÇw¨w.×:']—ü×@Ì9Ãét²~ýzMÕG¶ÐívóöÛoçý–Jq•¾¾>Ž;¦ÆúúzMau¹\lÞ¼Y]ýå פH©M$¦{4¾îæ›oF¯×§Tôz}‚¯Ï¾}û…BW½ú£…(s»)Å66ýëvcñ:x&Š×áÀ[^N ƒ>ÎáÇٰaC¬®¦¦F3´ŠÙlfýúõìÝ»7¾ú ¤ @RoP!„8Ä–ân»í¶”Qe¬[·NáκgÏž»îl„}x˜¦S§hjk£éÔ)ÊÓäÓš,f3—-¢cÉÚ—,¡¿© fyçb·ÛyôÑGº}[[›f(v·ÛÍw¾óu$‘%Iú½úØT#€ Nø- +W®ÔìýN§Bø}>߬îýõKßy‡Õ»wS£±§5—0ùý´?NëDø÷q»›6qøæ›K3A,Vx<Μ9£p¶œ3gŽæÆ»ÝΪU«8|øp|õ€Œ ð…ø/«W¯Æd2i@íòpâĉY©û›=VîÝËêÝ»±å9P—ulŒu¯½Æê7ÞàÌõ×óÞm·1Æ•¸qôèQªªª0Éb‰Æ°aÃ5þTÑ*I’"és&bûl‘¿ët:Ö®]«)üv»]±ê‡9vìØ¬êý¬~í5–ïÛ‡©ÀÒ©Âa–¾õKßz‹K+VðÞ¶m\ÖÈ«Vlèïï§««+fÒétÌ™3G3®Pmm-­­­ñIÎ Àç€ÿ\²à/â¿,^¼˜òòrM¨7º\¸p±±±YAÓø8›^z‰eûö¡/‚èt-ÇÓrü8½­­ìyäT+òÅŠ£G*Ì .—+YÐ,6nÜO€O !¾,IRlèP`"IõÝñukÖ¬I‰Y)äôéÓ³Bõ™{ú4[üc*®\ÉwS²FíÅ‹Üûoðî=÷pøöÛ¡ÈßÇ¥K—ðûý± É‹«ÕŠWú¶`ÁœNg¼ÙÔ ÜD4M+8Ü@Ôˆ®¾544h ¬¬Lá§ ¹|ùrQ÷þú`ëþõ_Yýê«è2Ù3m6ÃÂ…0w.”—GKe%”•ÁØŒŒÀèh´\¾ çÎÁ ¤r2„Bløå/i9r„==ƨj¦ØÐÞÞ®ˆ2XUU¥™Š `É’%¼õÖ[ñU÷ AEï/gýÐ"€ËåR|ïì쌹D#œíílýÑpi ¯\w¬XË–Á‚Ñ:©È/×pú4œ< GŽDË4æ;˜{æ ÷~ík¼õÐC´Ýxã´ÝgºqéÒ%œN§æ<¢9 T¸›è\H$€"Yõ‚ Òª?jýÿÒ¥KEÛû/Ù»—M;v`H•å°¾n¾¶n…ø]n¡P´¤üx,^-wÝ}}ðúë°{7L“ºeòùØòÜs4=Êî?ÿsÂÛ „B¡Øš€ÝnÇd2i&ënll¤¬¬,^UjB¬“$éÄ@±”¸Øž&“‰¦¦&M˜ÍæëOgggQöþ‹÷ìaóOJRž;>þqX½úaV?ôl„_]WY BÀŸþ)ìß/¾ËýSAëÁƒÜúýïóÆ_þ%a&…ˆP(Dww·ÂK´ªªŠžžž¤ÇËñÂ… Õ~EwJ êýåpå© Óép:ŠÞ¾¯¯¿ß_t#ÀÂ?üÍ?ùI¢ð[,pçpÛm`4F…>žL½\wýõQ¢ýú×ðÊ+Ó2Wh:r„›¾÷=ö! ÚÛÛÞÆUUUIs ètº˜ì.Z´HM€{€¯’ ýþüùšÂ‰Dp8yïèêê*ºÞÞ¾}Üð£% c#|ö³àtB8<3Âÿýî»aÃøÞ÷@#ÝèdÑ|ø0[¿ÿ}ö~þóDŠˆjaw8 r/üíÌ C|ïuBˆfI’ÚõB°9þ---IÝØg5óîF›M™÷Ö[ÜðÔS‰–ž%Kà?þG°Û£‚ï÷G'®òg­ºl뵎­®†/~š›™4<Èßÿ>úp8ïï"Ó266¦X¶X,šQI"‘&“)Y„‰[àƒý×Ä}¦ºº‹Å¢)üÉ044”÷”i©ÿ}nøÁЫ…Íø÷ÿ>j7O'¤SþL®aµÂãâE9z5š`Ó~”÷÷‘MR9ÆoÐRËhª-ºÀø@Rd±¨®®N;¬˜Í星6Dߊeûq|œO?¸²;w.ÜsÏV˜š*3™úTuögðÝïÂ4xš.øýï騴‰Ëi¼} CCCŠ}'v»=Öù¦RÛÕÖJ´àr¹Òš?SõþÅ€5/¾ˆ]mn4›áÞ{?Ð÷aúz2Çð±Á³Ï~@Îbý³ÏòÛåË jl>/¨G»=4w²’1KM€ááá¢èýkNždQ²Ä{7ß Gþ„?“kÔÕÁ–- Šš ØXûóŸsðÓ9MÂ8-P§ËµÛíi;l›Í¦^¨B4ÊP$ïu:± ¦VÔa*FFF ~Ðûý¬òÉD‹Íø²ðËX»öí›óè‚W_¥}Ëú—/Ïùµs 5ä9@:ÔÔԨ㠭1 !æ±eM»Ý›kéTêÀ¥>Ÿ¯à °âŸÿ™ò®®ÄV®L¯÷ ) †¨û…jÃx. ®ûáÙõ­oôJq8& ƶ߯Œ0gÎ5VI¡ÿk ¿|ÓxƒÁ‚V,CC,Ù¹3ù‹k÷þ…"ürÝòåÓB€òË—™ÿÚkœÿèG§åú¹B PÈ Á` ˜fTT{-kŒ€"}»Óé´'œ…<4ïݛܟ¿¬L{•¦wr;™kh$"ÉZßxƒ wÞ9­÷˜*€"øZºbè¸ ,6ŠÍ¤V«5£áDM€Bßþز{wòä‰o!è÷ÙÔÛíQWëi€óìY*;:Mž<ŸP »¼¦…$ùǪŒ€"‚mº½¿2Ši¨8žÊ ’ÿh³Ežâ‘Ïö‡cÚÐüÚkœxì±i»þT¡Vw2™$I¸Q™0dJ€ø‹Å‡E,D4¿ñFêƒÁÌ<; m„˜æ 5M»wsꓟTîs( …œf2FõÜvò#@¼°Ë©Ž ºPˆÆTê€Û­$@¡ª<ê:° ¹€uhˆÚƒé‹ JUH‡Ãiת’Ál6Çg¢1Nzƒ±ý™ƒ¡` à:v ‹–û€ÇS\ ˆöþ3™¢á ãÆôæê? f$·‹E‘ŠiÒ#@ P¨Af³9­*p¤ ZÀðpt. …@ uFhÀ\Â^À››Ô:¿ßïÏZu‡(&5øý~…Êd2Åû[ l)òK)ÐÙ ‰ÉÖ Cø“Õ_º”ü¸£¬··`Gv5Ôs‚Tµ–ØuEráL&È8³Ù¬¹73_(K±]N¾¾¨ŸM|oW¨Âï÷ÏØ`À )ÀUaµœfBN—`½4£@l‰Ìï÷«“ $…ú†ò »ÐÂaèêÙŶÐ,>ñèè˜ÖŠÛeýýxUa/ j¤SäI²zýÀ(Òqûýþd  PßÐd2¤¾˜ ºíÐb‰® 'C!ÿÈHt´šA”õöâ+ÀèrñˆD"šóÏx ‘ZK1 I¦“ ŸÏ§8ÎjµÜ ÷ù0g]!îîhè5‘ ÁE"ˆÎUfe}} Ø{UÛóÕ²µy4'Ðét 'äp*4³LJA0==Ñð2 A ¡·7ªªÍ0ŒOÁ½WµÿÿèèhF6$'@‚ ”‰.544”@€BSB.a³}6“s¿?ª•—O,“$ÁL  ”' ›¿®®àÞ«Úÿdd$aQL†Z–UsV#@üp222Bx"𦠄NÇx]6$ËI E×dOQÕ5SÝ+£ºlŽõû£+¾34éMÿܹ÷^ËÊÊRŽZ+ÂI,ECê ƒAFGGc½u:6›ñññIþ[Ó_}}ö€¨Ðy^¯W3Ê–\ä`¸òw9XV¾#‡Å—±5k(|Q+LŒ®Y“÷÷§.² T.½½½š2_’@6qn•k‡‡‡3Ú‰DèîîV„s8 ‹ò‰`c#îk¯¥üàÁ|7¥¨ﺫ T £Ñ¨ÐÿC¡W®\™Ú ˆ¯•Õ LÊåË—ßív{Þ{ u¸ë®)>ú«îõë 44äýÝÅ—ø ‘H„þþ~B¡PFrêv»Õk—%IêbH6N…îînņx³ÙŒÑhTgéÎ+†·m#üÍo¢/0m!càî» ª÷‡Dó§¬þd‚$ZÉaø 4⤠èë룶¶6Vg³Ù4SÙÏ4"÷܂óå—óÝ”¢@¨¬Œ‘mÛÐé g¬Ó)ÍŸñú&H¦þÀ8ø DMK^¯7#¯Pˆ&ƈÖëp84ÓWæC÷ÜS"@†¾ýv°Û)¤þ_Å) üÐÐPVûO’X'߃‰œ’$ùÝñ¿öôôd<¸téRlOf$Áh4ž5hÓ&|óçOòñ_=ˆèt <ôPÞß—ºÈê\:::2–OŸÏG¿2ËNØ(Hþ«ø#º»»3¾ßïçÒ¥KŠ:Ù;´`ŠÁ@ç×¾V2‰¦ÁÀCá[µ*ÿï+®X,–X¾:Y »ºº2–OùØ8ì“$é c\þª¼IDAT(s„ýøüåÊ•+ ñµpæÌZãöÕšL¦‚› ûÖ¯gðãÇõÿ˜ï¦$õõô}ñ‹7ùU›ä;::²ÚÞ•9$6öŸJ’Ô¼+‡Ãôõõe̲‘‘…Ú$7<ß½‡ºô}ñ‹ p‹_! û«_‡#ïï(¾FE°P(” mh•P(”,jLÛQwï;ëä/===ÔÕÕeüÏž=«˜ «‚ÊËéùÛ¿¥©AÌ$Fîº ïM7ÔÄPX~ *“Ùx÷õõ©·Kž$éŒüEýÿ*â‡÷õõe¼ÐÑyƒì›-×ÚdX§Óá½ñFF„Èø!ÎvNúžx"ïïE] ƒB÷D"\¼x1ãÞ_ÖÿUPÌu$é= t& Òßߟ‘ðËŸÛÚÚ¿Fôz}Þ¦ºô}å+Œ¯Z5=UD[,ôüýß©®Îû;Qyþ)ËÒÀÀ@Ìù-SõGKÿ‡Dà_€/Ê_.^¼˜,ÁX :Ò[ôâŋ̛7ªªâm™Íæ´±Ûg••t?ÿ<õ?Œåý÷óÝš¼ l6ÓóôÓøn¸¡àT™ñìÉ“'ÕÖMtvvªUðà­øŠdÿ÷“@Ìt388¨PkRõüñåÈ‘#Šï:® GHe%Ý;và[¶,ã‡:[1›é}úiÆ?üἿ‡”ï'N†:;;c;¿2-çÎSÿÛOJ’¤0K&`b‚ X2M6ë†Ô®ÒW®\¡££ƒp8+2 ­àrÑûÿˆÉ’ÜJX#b6ÓûÔSønº)ïÏ?YÑé¢.²<NŸ>•ð÷÷÷«7gO«ŸEª‘ï»ñ_zzzb±WÒ ¿\Ž;¦°ÕÊÿT¾{•¤=Mu5½/¾H`š²±"&}O>‰ï–[òþÜ“H”­³gÏ*ä/“rþüyõ¿þ‚$Iýêʤ$ip\þ‡éìì̪‡Ó§O+Fxu¨Ð µµô½ôÞ;îÈ´‚MMô½ø"þÛoÏûóNÕóËr"—±±±¬-?cccÉ|þ>Ù3Ñšû(N¸|ùr¬GÏ´!mmm¸U‰d›l¾{šT#ÁÀ³Ï2øíoV%/vŒ=ø ½»vØ´)ïÏ9U …B „ÃaNœ8‘@ ­p!1ÖnI’Ž${.ZØA\Ŀߟ•ƒ\$×xàÀ‚Á bó‰jñ>ø }¯½†oÓ¦©I] T]Í•ÿ˜áoÊËóþlµ„?Þ¡2‰Úü31ÃÇ ÿøø8‰!$¿›ð`&’’$y€gâëΟ? .”iääÉOD"Qû¬¼‰¦PK¤¥…Á—^bäoþ†ˆ*¦|±`üŽ;èß½›Àöíyžšê'$èøÃÃà kJé„_Ö:T~BçQÙþã‘Îüû¿‰‹²ÖÇäFõöö*†2ŸÏ³l1ð>þ8W^{ ïÉÐ10߬[ÇгÏ2üÜs0gNþŸ£FbAâ5‡#GŽd¬ú@Tø‡††¸œ˜è+jÓgÿ<ú‹üùÞÇ'PDª›ÛíNØØrìØ±d+¸I!“àwÞaxXèðÀ ’$¥òL`ŽKå:§ÓÉŠ+2j`|CëëëY¿~½¢Þ`0PQQ¡øG n7ÖŸýŒ²§žÂÐёצD¬VÆ?ö1¼ñ„‹ÌŒ;66–°s°««‹cÇŽet~¼Ìtwwó¾rE?l’$émÍk¤#€â£Àÿ_·bÅ …»C¦ ]¶l‹/Vün2™¨¬¬,.„B˜~û[L»vaÚ»ÃÅ‹3rÛpy9Á}ˆÀ7â¿ï>"®*… Ç i(cxx˜d´‡$^VB¡üãÕn;$Iz4íu2!€âe`»ü½¬¬Œ5“2m¨Œµk×ÒÜܬ¨³X,ÅI‚8èÛÛ1îÙƒiï^Œ{÷¢ÏQ”¼ˆÅBpãF‚[·¸ñFBk×lëLàõz¢4x<Þ~ûíŒ}ÆâåäüùójÓç°d"è›öu² À2¢ªPl&ØÔÔ¤Š¥ÕHuý† ‘$ ºñ¹²²2é9ÅýÉ“ŽC×ׇþÊ•èßþ~týý±Ïø|Djj×Ô™3GùyÎB--„®¿>š¾i Éþ\ü~?ï¼ó'£kÄË•ÛíæÝwßE%ÇÿM’¤ÿ‘ѵ2%€â;Àâë–/_NEE…f#“Á`0pà 7$¨Q6› §ÓYÔ#A Éáõzcv}¡PˆdTY­ú¼ûî»êyÄ`¹$IíšÉ–à›m™Íf®¹æš„½Ã™°ÙlfË–-ØíŠL­”••QSSS"Á,‚ÛíNèù#‘ï½÷^B½©ä ­­îîîøª0°M’¤×3mWVB¬ÞbÉc«ªªÛl×f³±yóæXÜV«•ºLÏSBöâÊ•+ŠºH$Âû￟ÖÜ™J–úúú ¬ø†$I_ΦmY@ñ_€ÿ_×ÒÒBmmí¤zm‹ÅÂæÍ›cÙfâëëëë3Ê[\BaâÊ•+ ¨{‡B!Ž=J_𔝩di||œC‡©W|ß¶H’”UZÉ@¼l‹oìòåËzòLa2™Ø¸q#N§SQo6›ihhHHq_Ba#ÓÓÓ£^˜" òÞ{ï% U¨@*áD¢®TN–£ÀZI’vÀ¤Ã¤ „˜ ba ¬V+K—.Í8–ƒõë×'X‡ôz=sçÎM:Ù.¡ðà÷ûéèèHˆÞà÷û9xð`‚ý_ --âüùóÉÔ¦‡%Iza2m4„w¿‰¯s8,Z´hÒº»ìjÑ$vÓé,Í ÃÃÃtvv&,fy½^<˜ÖÔ©%ü—/_æbâbcF ^)ï7!¾EÜ&z€ÊÊJæÏŸ?i+ŽN§cÙ²e,\¸0áV«•––,³Ä.>[‡¹|ùrÂd¢“à#Gޤ¥%/ýýýœ9sF]} ¸^’$í!Eëž9 €žh$ E ššÍE²” Š{µµµ¬]»6Aÿ×ëõ455%ÌJÈÆÇǹpáBÒˆà/^ŒíçÕ‚–ðsêÔ)õ5z€Í’$%ì}ÌS&€ ¼Ü_?wîܬ"Ë%{eee\wÝuIýŽ***hnn.yB8¦»»;YðY‚Á ÇO–0)RÀãñpüøqµJå¶J’4å¼W9!€Âì1Fš››3ꩵz½^ÏŠ+˜7o^Òߨ««+-œÍ FFF¸páBÒ0…n·›Ã‡Oʵ!>Ÿ'N¨ýƒ‚ÀŸH’ôJö­Nrï\@Ñ ì¹I[ZZÒúød"¼ ¬Zµ “É”ð[YYóæÍS$î.!÷ƒ\ºt)¥ ÿòå˱}¼™ Õ{÷ûýœ:u*Ù¼á’$=—E“µïŸK!Ö{ŪVCC.—+y#²è¹- ×\s õ)òÿÖÖÖ–Ö ¦r´ðöövu°Y jå9qâDÒIp*h-tµµµ%ó }B’¤ÿ™E³Ó·!×BÜFtÿ€B kkkÑ£!;áG]]×\sMÒi:®D„AüŽŽŽ¤)‰Âá0—.]âìÙ³Yå‚HõÞÇÆÆ8sæL²øÿOJ’ôxMϬÓA!Ä6@žn.—+¦¯OUg7 ,_¾œÖÖÖ¤×ÒétÔÕÕ•ˆ0 D"Ñ$t)Í—ÃÃÃ?~$~yõXí- €G%Iúù¤n–M»f‚BˆZ¢#ÁZE&ôôÉn…ÔêÅY²dIZU—ËEuu5.—+©‰u6A:Õß߯ÙÛCTðÛÛÛ¹pá”ò;${G>ŸK—.%S³<À}’$ýnÒ7̦m3E!D%ðp«ú·ŠŠ jkk³R‰2QadÕ¨µµ•êêê´ÇWVVR]]MuuuƉ ¡PˆúûûHÛ‹{½^:;;éììÌ*u*¨ß“À*Éd·’$½9å›fÚ¶™$€Â| ø2 x2f³™úúúŒ,6“Ñßív;­­­466&½‡úYØívª««©ªª¢¼¼|ÒnÞ3H$!ydd„+W®088˜ÖD‰Dcêwtt¤Ý¢˜ âß“ì:‘b/À€3‰äKÌ8d!¶ À«è–e¾ÖDV>n²ÐëõÔ××ÓÒÒ’rq a³Ù¨¨¨ ¢¢‚òòrìv{A¸f322Âèèhì¯V0“såÞ>×=ãß‘ÏçÓ2©~ øëlwsåy#€¢ø' !–ŸÍf£¦¦&©NžKëÝn§®®Ž¹sçf—HíXVV†ÕjýµZ­±ì湂ßïg||¯×Ëøøxì³ÛíVè發O¯×Koo/½½½ N‹5L¾f8æÊ•+\¹r%YÛ†OJ’$å¼"¯€XèÅÿ*Ü D¢ÓéTæt¾,³ÙLmm-uuuTWWOi/²N§Ãb±`±Xbé> CBÑét±hÙr ‡Ã±Ï@¯×›Õ*k<ä÷;::úøYÓù<ÇÆÆèééI58 ÜŸ³7È;d!î~$˜ƒL&555YäÍ©À`0PSSƒË墲²’ŠŠŠ¢Øœ/¿Ï±±1†‡‡¦¯¯/é¢Öt (¢··WË´ú#¢6þÌ3^O †Bˆz¢™iîOö{yy9.—+§‹gÙ[QQAee%UUUTUU%Ä3Êü~LØå’Îl9]Â/.ňuø I’^ÍùÍ'‰‚"€ !ÄŸ?šÕ¿éõú˜Uf*/1`4±Û픕•a³Ù°Ùl”••ÅJ.ç>Ÿ¯×‹ÇãÁëõ*>§rYH…é~¯×Ë•+WRµ%üào%IJÜ6–G$ …îëÀçI’ÈÃ`0PYY‰ÃáÈú…N§Þ«ÕŠÉdJÐûõz=F£1–!E=ˆŸ ƒAÆÇÇ'=ȤS×ëepp0évÈ üøŒ$IGszã¡` c"Ý3¨VeÈD°Ûí/ŒåWã5ÇÇÇÓ þð_jehÉ7 žB#ð9àIýd"Øl6ͨԹÆÕvMŸÏ—Nðž¾<Ó‹Z“AQ@†â¢ë)a0°ÛíØív…ÕfºUUUTVV¦í½|>_ì7“É#C¾öä‹P¡P(æS4>>ž¶555lÛ¶Ûn» —Ë…Ïçãë_ÿºú°Shz^Pt$©Sñq{ FGGcfPy,ë¯ccc){´@ @ `ddƒÁsh3›ÍE»]2• Ë ¨eÏÄÏ_T|ÇwpÝu×)ö^ýuu”ç0ÑΩ¨Pt˜Àÿ"޲§dü“És¤óxàCrlõQCvY–÷[,–˜¿Š–@È£ƒL½^¯ …ÑhŒysæ‘H$¶bbž$®Ž&jkkY³f [¶lášk®ÑtãØ¿¿:7WøêdÚŸo%&ð – m||·Û64¢Ï磶¶–uëÖÅbÙwuu¥Ý&‡óñ.2)ä¿z½~Jñ"‘H¬ÈîÁ`0áïd ÓéhmmeÕªU¬^½:M#][ûûûyúé§ÕÕ?Í·[ódQtfÐx!þ¸'¾.›(ò^a½^Ooo/ôõõ1444-“SN§ …\äÝ[ÉJ.QYYIkk+Ë—/çšk®ÁápP^^NUUUF±@ À—¿üeuœþ+ÀI’:sÚØB1ŸóåŠþþ~æÎ›Ñ íî¿ŸÖÖVhjjB§Ó  ¯¯/=!ÍÒZÈ+§¶t0477ÓÒÒBkk+­­­TUUÅHgµZq¹\YEÌ{úé§ÕÂ)Vá‡"„×MÛëö-KÖ+m6‹-¢ºº:¡‡ÖétŒÑ××ÛF(¯+d«kçò>§ÓIuuuLèëëë1 ÿ‡ÑhÄétf½—áÕW_åÉ'ŸTW]’¤¯äìŸÉŠžBˆ?~_W^^>© 26›††êëë±Z­Iɨ4^¯W±]vÃ÷êÊ%Ûž_§ÓÅ&Ý&“ »ÝŽÓ錗˅Ë墪ª*© Ç·U¯×c·Û)//Çb±d='ikkã‰'žPÏ7^n/dOÏL0+ „xx$¾Îåre/@öÑ7 ¸\.êëë©®®N*d@JÁSÿ.Ûáekü9‰`2™°X,1 “ÉdÂd2Mé~²š3Õè===<ñÄê°çÀµ’$õNꢄbŸÄã³ÀµÀJ¹B•m´CCCŒŽŽÆÂ(ÊáZ2>u½¼ &¡NwÍdÅh4Æ&·SˆýþûïóÍo~S½à$¿§è…fÑ „XJt’"¡XYYÕÕÕõ‚rï¯þ+›6m6ååå”——ÇB¢Èë“Ú©œïÎaµZs¶Š½k×.žzê©dfÖÿ$IÒw§|ƒÁ¬"€b9ÑìóâëM&sæÌI»¢›Œjû¾üWþ,»_Øíö˜_Ñd„=Ýoz½^±çx²}Z‡Ã<÷ÜsÉVzƒÀã’$=“Óæ³ŽBˆ:`'°!¾^¯×3gÎÍu‚lì¯>Îþýûyýõ×9vì˜Ö¡#DÕïI’4ù$`EŒ«šKÙôYàoQå3VÃápPWWGMM 6›-) ²þLL ™.tNž<ÉîÝ»yóÍ7Ó°Š?þ«$I)‡…«W=d!ìÀǀǀ-鎷Z­TVV*<3­VkÖŸnŠ]]]´µµÑÖÖÆéÓ§9þ|&»Ã:ˆ þ¯&=_ %$Á„OÑcÀ£ÀÜLÎÑét1ŸüÚÚZjjjp8Øl¶1²ètºØVÏžžNŸ>Í©S§8}ú´ÚAM à×D“R¼Rìî˹F‰˜Ê{'ð)`;“\71 Š image/svg+xml pommed-1.39~dfsg/gpomme/themes/KStyle/volume.png0000664000175000017500000003531111571653265021350 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsppuhu&tEXtSoftwarewww.inkscape.org›î< IDATxœí½yœ\G•çûÍ}­%³6Õ®}µ6[Öb„åM6Âm»Ã öж CÓh¦æ½<ô@?fxÌ 44 Æ6lá6t·¹àì–mI Û²d-ÖRÚUUª}ÏʬÜßY7÷æ^•U™YÊ_}âS•‘w‰º÷ü"Nœ8qŽ&SB W+´ùn@ %ä%”pU£D€®j”PÂU }¾0—!„ÐvÀóÛ¦ªÓã€+ÉïqI’<³Þø«š’hêBÔ bÊü˜¿›sŽnz ÀÅÉßb>_–$ÉŸ£{]U( !¬ÀuÀf`°‚ˆ°[óجX„€àpø#ðGI’®äµUE€TBh€eD]øÕ§ºØ¼Å$!€C%uJ‰!D=p7pð! rº×Ôëõ˜L& ƒ£Ñý;¶N£Ñà÷û£Åçó)>Ëu^¯wºMðG€ß¿’$éÝ\\´˜qÕ@± ¸g²\h²9_£ÑP^^Nee%N§“ÊÊJG´Øív4š¬.™ 344W†‡‡ S¹l'° øð†$I¾œ5¸HpÕ@¡#Ò»ËB¿(Ósu:uuu455ÑØØHcc#N§N7SÍÍccctuuÑÑÑAgg'x)¬V+K—.eÙ²e,^¼£Ñ˜Õ½Ìf3V«“Év£Ñ8ã#E(ŠN”eRx<Ün7¡P(ãë„Ãa:;;£dèííMwŠø9‘Qáiü …9A!Ä5ÀÀ}€!Ùq6›5kÖ°bÅ š››Ñj3óÑëõX­VEÉôÜÙB8Æëõâv»q»ÝŒge9äôéÓ=z”+WÒ.¾ ü³$IE-@EM!Ärà«À¤ðkZ°`6l`ÅŠM\µZ-eee”——c³Ù² Á`·ÛÍØØ###øý™-_¹r…ƒrìØ1|¾”†¡ãÀ¤b%BQ@±„ȃÿw$|«ÕʺuëØ°aUUUi¯©×ë)//§¼¼»Ý>åÞårÑ××-CCCx½^E™˜˜ˆþ 1›Í˜L&E‘ëìv;555Ñâp8¦Ü6ÇÃèè(###LLL¤=ÞëõrôèQ®×ëq8”——cµZ³²ÛwwwsîÜ9Ο?Ooo/}}}ô÷÷gkzÌ:Žªªª(!š››Y¼x1­­­ Iµ¿8ø|>FGGÆív§=¾££#:*¤˜ˆ¿ ü$I/gÜ<£( „pß>E—„ùóçsË-·ÐÚÚšözv»ªª*ÊËË3úññqÎ;ÇÙ³g9wîçÎËÔ‚2kÐétÌŸ?ŸE‹±xñb/^LmmmFçz<J;‘ã÷¿ÿ=LeR} ø|1L– žBˆïu‰¾ommåæ›ofÁ‚”Ft:N§§Ó‰ÉdJ{ß‹/rèÐ!>Ì¥K—¦Òô¼£¢¢‚õë׳~ýzV­Z•v. …bpp0íH6::ʾ}û8tèP2"„€ïÿM’¤Âê-bP°B´?îLô}ss3·Ür .Ly‹ÅBMM ååå)ug¿ßÏÉ“'9|ø0‡fhhn-„FV­ZÅúõëY·n)w»Ýô÷÷3<œÚô?22%B’Ñ£x\’¤ßL¹ñ3ˆ‚#Àä"Öç¯Ù0¢@}}=·Ýv‹/Ny³ÙL]]]Ú}êÔ)öìÙÃáÇsåpVðÐh4,Z´ˆo¼‘M›6¥½^/===i‰0<<}ŽIðÏÀ_J’”r6=Û((!Ö?"✦€ÑhäÖ[oeãÆ){r“Éüdú½ËåbÿþýìÝ»7ucÎÃl6³eËnºé&š››“711Aww7£££)¯×ÞÞή]»’-¬ ÿ7ðL¡˜M †Bˆ/™èÆMr—/_ÎwÞIyyyÒóF#uuuTVV&ü¶¶6öîÝËÁƒ§åR0W±páB¶mÛÆÆ“Î<ÝÝÝŒ%½N0äÍ7ßdÏž=Éžó¿&IR_N> äBˆJà§D<4(//çÎ;ïdùòåIÏ×h4ÔÕÕQSS“Tð?ί~õ+.^¼˜›FÏqØívî¸ãn¾ùæ¤ê‘Ë墣£#åBÙÐпùÍo8{öl¢¯;€%Iz3'ž"òJ!ĵDtCÅLV£Ñ°yóæ”/"/ª±±1é1'Ožd×®]œ;w.—;jPVVÆŽ;ضm[Â5†P(]I%GÇŽãw¿û]"Ó±ø¿$IúNNžòF!ÄŸ1o*¤·¢¢‚x ¥>ªÓéhhhÀáp$ü¾­­]»vqæÌ™\6ùªEEE;vìàÃþpÂÅʼn‰ :;;Oz ǃ$Iœ>}:Ñ×/I’”z‚1˜u!lÀ‰¬æ*°dÉî½÷^¬Öä{Íõõõ _Doo/¿øÅ/8qâD.›\Â$÷ß?×^{mÂïÓî9Ø¿?»wïNd2=Ü/IÒÑœ58Ì*„ÍDö£®Š­×jµÜrË-lݺ5©¯ÕjinnNhÖ ¼òÊ+¼òÊ+¥Éí,`ÕªU<ôÐC }¬ü~?—.]Jé^ÑÞÞÎ?ýÓ?%²(y€G$Iz)§ NY#À¤çæ«€B·)++ãHéÂ`±XhmmMh™hkkãç?ÿy&þì%äƒ;vpë­·Æy؆ÃaºººèïïOz¾Ûíæ¥—^J4AŸ•$陜7:f…Bˆë—êØú… rÿý÷c³Ù’žët:ihhˆ³ý»\.$Iâí·ßž‰&—!êëëy衇®ÈŒŒÐÞÞžÔ¿(óûßÿž×_=Ñ$úË’$}#÷-VbÆ „¸øWT«º7ndÇŽIµ4 MMM 'º§OŸæùçŸ/8‡´«Û·oç£ýhÜûôz½\ºt)¥ûõ™3gøÅ/~‘h¿Âßÿy&Íf”Bˆû…î²mÛ6n¹å–¤ç ,X€Ù¬Œ, …xõÕWyå•WRšÝJÈ/^Ì£>·` …hoogdd$é¹—/_æ…^HD”çOI’4#“»#€â3À“¨6¬ìرƒÍ›7'=Ïd2±`Á‚8}llŒŸýìg´µµÍDsKÈÊÊÊxä‘GX²d‰¢^Þƒ<88˜ôÜžžžd#û¯‰,šå|³ÅŒ@ñðllV«EÁš5k’žg±XX°`Aœ‰óüùóìܹ3­J …FÃwÜÁm·ÝgÕëêꢯ/¹ÄÐÐÏ?ÿ|"¢ü¸;×#AÎ „ØA$ÚXTŠ >ø`\¯ ›ÍÆüùóã, @’¤¬"”PX¹r%<òHÜ*roooJ'D—ËÅÎ;ó¬$IŸÎesJ!ÄuÀb&¼F£‘Gy„–––¤ç•——ÓÒÒ7Ú½{7¯¾újÎÚWÂ죵µ•O~ò“q‹›rЮd˜˜˜`çÎttt¨¿úª$I_ËUûrF!Äà1;·´Z-?ü0‹%BXQQAKK‹b¨ ‡Ãüú׿fÿþý9i[ ùE]]Ÿþô§ã&ÇÃÃÃ\¾|9éyn·›gŸ}6Ñz§$Iúq.Ú–!ª€7¥±õ÷Þ{/k×®MzžÍfcÁ‚Šž? ò/ÿò/¼÷Þ{ÓnW …ƒÊÊJ{ì1jjjõýýý)㌌ðÌ3ϨݯÀ]’$ýnºíš6„`7pClýí·ß·>ô¡¤ç™Íf-Z¤Ðùý~?/¼ðBÉÒ3Ga³ÙøÄ'>Acc£¢>Ýĸ§§‡ÿøÇj© ¸iº!ÞsÞìYT¿eË–”Â/Ûùc…? òâ‹/ræÌ4M©ÌÁâv»ùÉO~ç¶2oÞ<*+“§d¨««ããÿ¸Ú:h~3sʘÖ „ø$ ÐÅV¯^Í}÷Ý—Ô©M§Ó±hÑ¢¸E.I’8tèДÛRBñ ¢¢‚Ï|æ3Š9A8æÂ… )W÷Ož<É/~ñ õ"è+ÀŽ©®OyB,%ö"ŠÖÖV„I…_£Ñ0þü8áß½{7‡Î{U*³SFGGÙ¹s§B¥Ñh4´¶¶ÆÉF,V¬XÁG>òuõÀ_e#» ™œÊ „0±øDÃ- ?þxÊ}»õõõq“ ·ß~›—_.š@b%äóçÏçá‡V¨6^¯—¶¶¶”®./¾ø"§NŠ­ò[$IÊZ…˜êð?‰~!DJá·ÛíTW+œA9qâ¿ýíoóÞ#•J~Ê¥K—$I!ì&“)n’¬Æ=÷Ü£–5#ðâäf«¬u0{!ÄÀcë6mÚIJeË’ž£ÓéhnnF£ù@5êïïçW¿úUÁ…/avqêÔ)8À 7|`Gq:ш։`µZ¹ÿþûùÉO~Kž¥Àß Ÿ™1²’¾ÉÄÐÏ“P®®®ŽÛo¿=åyÍÍÍŠåð@ À/ùK‚Á`Þ{¡RÉÙ³gOÜZ@SSSÊ`¿­­­lÛ¶M]ýØd(ÍŒ‘m÷ûˆYé5 Üÿýèt:ÂápÂât:ãT£×^{¾¾¾¼?øR)Œ‡‘$I™O§Ó¥tŸˆ[}‚„ßB¤ƒŒU !Ä&TÙ?ò‘P]]tÂb4ihhPÔ9s†C‡•TŸå•W^áî»ïŽÖÙl6jkk“nwÕjµÜwß}üà?ˆµ(ÕÉñÅ„'©¯‘ÉA“ÙÓ¿KŒêÓÒÒÂúõë“öüáp˜ÆÆF… ñòË/ç½Ç)•Â,'Nœàرc Ù«­­M™ç¡¢¢‚[o½U]ý¹I3}Zd:ü°)¶âöÛoOiª*++‹‹àð»ßý¯×[êýKHŠÝ»w3þüh¦N­VK}}=íííIÏÙ°aï¼óNìHa¾M$ChJ¤•ÄIÓÒÿ[·nÝ:æÍ›—²÷ojR¦ä={ö,/^Ì{/S*…]{÷îUÈNeeeÊXQZ­–;v¨«ïœ´X¦D&#À_QìÑh䦛nJÙû×ÔÔ`±X¢ŸƒÁ {÷î-õü%d„Ó§O³~ýúèz€F£¡¡¡!YŒQ adùòå겿B¬Iµ‹,¥D !Z/ÅÖmݺ«Õš´ç×jµq ï¾û.###yï]J¥xÊo¼¡èd­VkJ‡9€;î¸C½£pðxªsÒuÉ D36lH©ú¨Ãº\.Þ~ûí¼?ÐR)®Ò××ÇñãÇÂX__ŸRXN'[¶lQWyÒu'!’ª@“‰é­»ùæ›ÑjµIÕ­Vçë³ÿ~‚ÁàU¯þµA\c–1Æ­ãŒYÆpY]tì;v÷dñØ)ó”aò§Ïc6×qàÀ–.]þm0¨¬¬L™¾êÃþ0‡Š ÍX­©Âè7²øÊb–v,eiûRšú›Ð0·;›ÍÆ£>ªÐíÛÚÚR†bw¹\|ç;ßQG¹Q’¤ß«M6b„ßd2±jÕª”½¿ÃáP¿×ëÓ½¿_ëçeï°gÍ®T'ßÓšKø >N´žàDk$ü»mÂÆæ“›¹ùÈÍTާž +Ün7gÏžU8[ÖÔÔ¤Ü8c³ÙX½z5Gމ­þ1¾ûaÍš5 †”P»<œ[åφuëÖ¥~›Í¦Xõ …B?~|NõþƒöA^[óûWìÇk(¬tª!]ˆ·–½Å[ËÞbåå•lo;˯$Ï«Vlèïï§««+jÒh4ÔÔÔ¤Œ+T[[Kkkkl’sð9à¿Ä—hø‹ØK–,¡¬¬,%Ô].^¼Èøøøœ À„a‚—6¿Äþåû i ?:݉–œh9Ako+ì}„¦Á¦ô'Ž;¦0ƒ:ÎDA³Ø´iS,>%„ø²$IÑ¡CA€É$ÕwÇÖ­]»6m$fu¦3gÎÌ Õç̼3üxÛ(ÈwS²Æ¥ÚK|ãÞopÏ»÷pû‘ÛÑæ$Hþpùòe|>_4h²ÉdÂl6ãñ$·®-\¸‡Ãk6u7IÓ Ä7q'"«o ) `±X~@€+W®uïÐø×ëþ•W×¼JX“~Ï´#‹XÄ<æQ6ùSA,Œ3Î(£ŒMþ\á ç9O€™OåÔùåÆ_r´å(í}Œš±šô'0ÚÛÛQ+++S¦bXºt)o½õVlÕ=¤ €¢÷—³~¤"€ÓéT|îì쌺D#ÚíühÛèp&^u踎ëXÉJ–³œ…,DÇfºd¦I¹ÞŸ3œá§8:ùfæòœw–¯Ýû5zë!nl»qÆî3Ó¸|ù²‚‡#å<"9 T¸›È\ˆ'€"YõÂ… Óª?jýÿòåËEÛûï[º›wÔ%ÎrXO=7s3ÛØF9ìr Nþ¤üX,™ü¹‹»è£×y=ìa€™Q·¼/Ïm}ŽcÍÇøó=Ž!”|»a¡¢³³“`0]°Ùl †”ɺ±X,±ªR³b½$I‡!†BˆeÄÄö4 455¥$€ÑhŒ³þtvveï¿wÉ^~ºå§$’áyÌãã|œ5¬‰ ³åCÏFøÕuT ü)Êð"/2DòåþéàPë!¾ë÷ùË7þ}(ë˜yE0¤»»[á%ZYYIOOOÂãåŽxÑ¢Ej¿¢»%Põþr¸òdÐh48Eoß×ׇÏç+ºà‹þÀO¶ü$NøM˜¸“;¹ÛУLJ/#žJ½\w=׳†5üš_ó ¯ÌÈ\áhÓQ¾wÓ÷øË½ÅG‚ööv…·qeeeÂ\&*»‹/Vààk $€Bÿ_°`AJá‡ÃØíмwtuu]ï¿þ~~tÃâ„¿‘F>Ëgqà DhV„?öóÝÜÍF6ò=¾G?ÉÓNGšðýmßçóû>>\<$P »Ýn“ÓXá‡Hg®Óébx¯B4K’Ô®BX-±hiiIèî DÿV`hh(ïn´Ù”·æ¿ÅS7<géYÊRþ#ÿ6|“?~üÑ¿SÕe[ŸêØ*ªø"_¤Y™Z9g8Ô|ˆïßø}BÚPÞßE¦e||\±l2™RF% ‡Ã †D&nö\ó7UUU˜L¦”ŸˆÃÃÃy@™–÷ëßç7ü€°V)ükYË¿çߣE›VH§+ü™\ÃŒ™ÇyœÅ,ÎÔ«p°ù ?Úü£¼¿lÊð°ÒÙ0vƒ–ZF“mÑÖÂ*"‹EUUUÚaÅh4Fý´!âüV,Þ'ô<½é鸕ÝyÌãî‰Zu`zªÌTê“ÕýÆwù.ÃäÞÓô÷ ÏæŽÍ\{%µ·o¡`xxX±ïÄf³E;ßdj»ÚZI*8δæÏd½1àŵ/2`Sš¹—{£ú>Ìœ@OåX=z>ÆÇx–g£äÌ%žÝð,+~»k ùæóBz°Ù"!A³q×!› ³Ô)ŠÞÿTõ)^]ŸxïfnÆŽ=oŸÉ5ê¨c+[ÙË޸㦋Aë ?_÷s>}(§Igêt¹6›-m‡mµZÕëUBˆF™Šä½‡#zÁdÊ:LÅèèhÁ>­'7<gñ±be)K Zøe¬cûÙ?#æÑW¾ÊÖö­¬è_‘ókçjÈs€t¨®®VÇZ«Ḃ–5m6[tœJ§R.õz½O€^ùÏt•uÅÕ¯bUZ½¿PH¡CÇr–sœã Θ&4ðÃë~È·v« WŠC¡@ ºýV¯×gD€šš5ÖèI¢ÿ§~ù¦±­ ›†ÙµtWÂï–°$eï_(Â/×­`Å̸Rv…×¼ÆG/|tF®Ÿ+øý~… êt:Ô£¢ÚkX«éÛzB‰ PÈ#À¾æ} ýù-XR®òÂÌNn§rX?¤™À­opçÅ;gôÓ…ßïW_K·C â7%z@±™Ôl6g4œ¨ PèÛ÷´ìIX/O| A¿Ï¦Þ†q’o ŸÎ9ÎÑQÑAËXêðäù„ZØåŰTH¬R("ئÛû+£˜F€ å¸Xq1áwV¬øQ>Ì|x¶çرÏ^k~ÇN>6cן.ÔêN&ó€ 7*âF€L {±Ø°ˆ…ˆ7šßHú]€@Fž…6BÌô†š=M{øäéO*ö9ü~¿BN3ôz½zn;õ VØåTG…ˆ &ÈžÆ=I¿wáR PUu‹äaAraó0‡j±±ocúƒó€P(”v­*ŒFcl&ý”G€@ ÝŸ©Óé –ÇÇ6%wpã.* Dz/3™â `Sÿ¦ôæê?d$·&“I‘ŠiÊ#€ßïW¨AF£1­*¸bO´ÊŸF°’Ø H¡®$yhÀ\¢ÓV¸››Ô:¿ÏçËZu‡¦4ø|>…Ê`0Äú[ z­‰óKÅ¢“NZ‰K¶VŸ¨þ2——kôZz vdW@='HYk‰^P$Îd2ñŒ3)÷fæ =–ÄÛåbÑGuÔ)B‡ªðûðÍÚ0h$¨ bÞª°ZN3!€F£‰³^ê1 ºDæóùÔIB}Cy†]hÈ„!BtÑEÍdD˜B³øÄ¢ƒŽ ¡jý–~< ée¨ N’'Éêõ= HÇíóù-ÄA}CƒÁPúb&è§&,X~_Â?Ê(}ô%<~¦Ðké¥É[xÑåb ‡SÎ?c-Dj-EÊ™N&¼^¯â8³Ù\p#€WëeȘYt…0aºé¦žú¸(j…à"áÇO'©càÌú,}hF 뽪íùjYŒ…Ú<šh4FFFâr8<úì’RÐCQ‚: @/½„˜ýؤn½»àÞ«Úÿll,£N NÊD—Ž#@¡©@ΠcȈO›ùä܇~ú)£ }’èñ³)ü~ü 14#»À2A¯®àÞ«Úÿtt4nQL†Z–Us_V#@ìp2::J(ŠÞ¬U ê&êh·&O²œA‚Œ0õU_3Ù½2©ËæX>\¸foÒ›ó|ó î½Z,–¤#@ªá–¢áŒGõ…cccьޫÕÊÄÄÄÿ­™A½·>k@dNàÆzôh&!×#Bˆ^¼³@7ê}õ7¨ éÜ!bW€'1¢e ¾‰‰‰Œõ©‘‘ÅÞ`‹Å’è&yE½/ujÍtwŠiÑ*„4W^±õaŠiù†)hÂtâ_uh4ŒFcTFC¡ccc@ú=, B©éEjmõäV¾i¢‹+R#Y,–¸ýšùFƒ/76ì\O@Õdȧš“ ó|ó ®÷—Mô²<º\®Œ;ìéUOéE"%5R +ƒƒƒŠïìv;½½é]fõÞé3…Bx5 QÿW‡BTcR!Žh%IºŸôz½x<ž”Q¶ä"Õ?ËÁ²ò9,¶¬_KÈZAbíØÚ¼¿?u‘M réííM)£±%dÇàV¹vdd$£­‘áp˜îînEØ9»Ý¸(Ÿh 4r­ëZ•ÊwSŠ a¸k讂Rôz½Bÿƒ Loÿˆ­•Õ LÊ•+WŸm6[Þ{ u¹kð®i>ú«\hð7äýÝÅ–Ø áp˜þþ~‚Á`Frêr¹ÔkW$Iê¢H4N†îînņx£Ñˆ^¯WgéÎ+¶l盡o2¡-,m!ãîÁ» ª÷‡xó§¬þd‚ZÉø 4â” à÷ûéë룶¶6ZgµZS¦²ŸmØÃvn¹…—/ç»)EKÐÂöÑíh4…3Öh”æÏXý?$Ràœ¼€ "¦%Ç“‘W(DcÄFëµÛí)ÓWæ÷ ßS"@†¸}ävlØ(¤Ìªr(NYà‡‡‡³Ú’À:ùLþ‹’$ù€=±ßöôôd<¸|ùrtOf8F¯×œ5hóøfxLññ_=Є5<4ž Ÿ¢:IDATøPÞß—ºÈê\:::2–O¯×K¿"ËNØ JŽÿ*öˆîîîŒoàóù¸|ù²¢Nö-”¢ÓèøZç×J&Ñ4xhð!V{Wçý}Å“ÉÍW' tWWWÆò)ƒý’$ €2GدÈââ/¦ÂÙ³gimý`_­Á`(¸Éðï>>ôqþÑùùnJA¢Þ_Ïû¾Xp“_µI¾££#«ýç]]q‘£Ab£ÿ©$IÀ»òçP(D___Æ,U¨MrÃóÝ{¨Ëû¾Hƒ¿ð¶ø¾ÚýUìØóþŽb‹^¯Wä ƒqÚFª ¥Qj;êî}pü¡§§‡ºººŒà¹sç“aU¢‚@eümÏßòé¦ÂO1›¸kô.nòÜTP_@aùˆLfãqÜ××§Þ.yR’¤³òõ¿«ˆÞ××—ñBDæ ²o¶\Wh“aFÞ£"ã‡8×á8x¢ï‰¼¿uÑét Ý?séÒ¥Œ{YÿWA1×U@’¤÷àƒ 3@€þþþŒ„_þ»­­Mñ^¯G«ÕæýaªËWú¾Âê‰Õ3#QESÈÄß÷ü=U᪼¿u‘矲, Fß2URéÿ¯ü ðEùÃ¥K—%‹B£Qz‹^ºt‰ùóçSYùA¼-£Ñ˜6vûl£‚ žï~ž‡ëæ}ÓûùnN^` yºçinðÞPpªL‚ØöÔ©SjkNJtvvªUðà­ØŠDÿö“ðóûÐÐB­IÖóÇ–£G*>k4š‚*ÂììÞÉrïòŒê\1läéÞ§ùðćóþ’•XêììŒîüÊ´œ?^ýo?)I’Â,G€É ‚bÉ4Ѭ’»J ÐÑÑA(Š™…Vœ8ùÇÞd©oin%¬€a yª÷)nòÞ”÷矨h4“;ä&åÉï÷sæÌ™¬„¿¿¿_½9kxZý,’ |ßýÐÓÓ½’Nøårüøq…­Vþ§òÝ«$*Uá*^ì}‘Åþ™ÉÆ^H0„ <Ù÷$·xoÉûsOT ^¶Î;§¿LÊ… Ôÿú ’$õ«+@’¤ÝÀ ùs(¢³³3«¸ÝnΜ9£bÕ¡B+µÔòRßKÜá¹#wÒV`h 4ñbß‹Üî»=ïÏ;YÏ/ˉ\ÆÇdz¶üŒ'òýùûDÏ$ÕÔGq•+W¢=z¦ ikkÃåR&rm²ùîi’Ï>Ë·‡¾=¤L^ìxpüAv÷îf³sÞŸs² …BœŸ/+¹p8¯ñàÁƒÅ( ç+Ôò çA^ë{ÍÞÍÓ“º@U°Šü˜o|›2ÊòþlS ¬Ce8±ùgb†þ‰‰ :;ãBH~7îÁL")$IrÏÄÖ]¸p!\(Ó244Ä©Sž‡#öYyM¡––p / ½Äߌþ ưQýxŠwLÜÁžþ=ìðïÈûóLU€8dd$nM)ðËZ‡ÊOè*Û,ÒYÿ71‘ãü~Öú˜Ü¨ÞÞ^ÅPæõz£Ö¡B-:ŽÇ=óÚÀk<ày}83ÇÀ|c½=Ï?Ës#ÏQCMÞŸcªDƒ0ÄjGÍXõˆðsåJ\F ¯¨MŸ±ÐÈH!Äþ.z‚Fõ×^«È“ Ìf37Ýt“"C‡V«Ån·G{BG—¶‹g,Ïð¼ùyFµ…ÿˆ0|Ä÷÷<Îfñ¨n.—+ncËñãÇ­à&„L"€wÞy‡‘E Ã?7H’”TÈ3!€8,“ë+W®Ì¨± ­¯¯gÆ ŠzNGyy¹â)t¸pñ3óÏxÊòºŽ¼¶Å6ó±‰ñž¿`q¨¸Ì¸ãããq;»ºº8~üxFçÇÊLww7￯XÑ›%Iz;å5Ò@ñQàÿ‹­[¹r¥ÂÝ!Ó†._¾œ%K–(¾7 TTT 6ñ·†ß²Û°›}†}\Ò]š•û–…ÊøPàCÜè¿‘û|÷QNîªR¨p»Ýц2FFF8xð`F{Hbe% òÇ?þQíö°S’¤GÓ^'!^vÈŸ- k×®M+´‰¾_·nÍÍÍŠ:“ÉT”$ˆE»¶½ú½ì3ìcŸ~½ÚÜDÉ3…Ml lb[`7úod]p]Á&°Î'.JƒÛíæí·ßÎØg,VN.\¸ 6}ŽK'ƒ¾¥¾NXNDŠÎ›ššA±R5R]¿qãFE$ ˆl|®¨¨HxN1â”öÇuÇéÓô1  OÓG¿¶Ÿ~Môo/^ªÃÕT‡ª© ×(þ® ×Ðláúàõ˜"ñ Š öçâóùxçwp»Ý]#V®\.ï¾û.*9þo’$ýŒ®•)„ß¾[·bÅ ÊËËS62t:7ÜpCœeµZq8E=”'j×— 9xð`ÆA•ժϻᆱžG\VH’”Ñ®™l `ÑÙ–Ñhäšk®‰Û;œ‰F¶n݊ͦÈÔŠÅb¡ºººD‚9—Ë×ó‡ÃaÞ{クz5’ÉA[[ÝÝݱU!`»$I¯gÚ®¬ „ؼ D“ÇVVV*&¶Ù®ÕjeË–-Ѹ/2Ìf3uu…—ž§„ì1<<ÌÀÀ€¢.óþûï§5w&“¥¾¾>Åë$¾!IÒ—³i[ÖBüàÅÖµ´´P[[;¥^Ûd2±eË–h¶™ØúúúúŒò—P˜`pP™Ø; rìØ1úúR§|M&K>|X½âû°U’¤¬ÒêL•à`{lcW¬Xדg ƒÁÀ¦M›p8Šz£ÑHCCC\Šû ¡PˆžžõÂ@€÷Þ{/Q¨B’ 8Ùp¥r²ÖI’·&¦D!Ä<à( a6›Y¶lYƱ„ÔÐétlذ!Î:¤Õj™7o^ÂÉv …ŸÏGGGG\ôŸÏÇ¡C‡âìÿj¤Ò".\¸HmzX’¤¦ÒÖ)@q'ð›Ø:»ÝÎâÅ‹§¬»Ë®±©—d8ŽÒ¼ À122BgggÜb–ÇãáСCiM©„ÿÊ•+\º·Ø˜Ñ‚WÒûM‡Bˆo³‰ ¢¢‚ LÙŠ£ÑhX¾|9‹-Š»†Ùl¦¥¥“inØÅç B¡W®\‰›ìBd|ôèÑ´1¢RÉK?gÏžUWŸ®—$)õ’êž9 €–H$ E êêꔋdIójkkY·n]œþ¯ÕjijjŠ›/”LLLpñâÅ„Á/]ºÝÏ› ©„dd„Ó§O«¯Ñl‘$)nïc6˜6„fà5à†ØúyóæeY.ÑC°X,\wÝu ýŽÊËËinn.yB(¢»»;QðY'NœH–0!’ÀívsâÄ µJå¶I’4í¼W9!€ ì1Fš››3ê©SõZ­–•+W2þü„ß544PWWWZ8›EŒŽŽrñâÅ„a ].GŽ™’kC,¼^/'OžTû€?‘$é•ì[àÞ¹"€¢8(r“¶´´¤õñÉDxX½z5ƒ!î;‹ÅÂüùó‰»KÈ=—/_NjÿråJto&HöÞ}>§OŸN4oø„$IÏeÑäÔ÷Ï%„ë€}€bU«¡¡§Ó™¸YôÜ&“‰k®¹†úúÄùkkkKë39Zx{{»:Ø,±òœ‘¾ üUª­SÅŒ@±‰H˜E…îSQQACCCÎ&­•••¬^½:é/IÒœ’3Ì8„óWÅf`£ÑHccã´{eõƒmhh`É’%)-BF£‘ºº:êêê®ÚQAîí»»»SnH‘Ó]¼xqJ‚‰…_^=V{‹~àQI’~>¥›eÓ®Ù €¢–ÈH°NÑ€I=}ª[!Sõâ,]º4­‡ªÓ餪ª §Ó™ÐÄ:— êïïOÙÛCDðÛÛÛ¹xñâ´ò;$zG^¯—Ë—/'R³ÜÀ}’$ýnÊ7̦m³E!Dðp«ú»òòrjkk³R‰2QadÕ¨µµ•ªªª´ÇWTTPUUEUUUƉ Á`ÁÁAúûûLÛ‹{<:;;éììÌ*u2¨ß“À*Ád·’$½9í›fÚ¶Ù$€B| ø2 x2F£‘úúúŒ,6SÑßm6­­­466&¼‡úYØl6ªªª¨¬¬¤¬¬lÊnÞ³p8!ytt”†††Òš(ÃáHLýŽŽŽ´[³Aì{’]'’ìøð`&‘r‰Y'€ !Ä"xݲlÃO5‘•›*´Z-õõõ´´´$]œƒxBX­VÊËË)//§¬¬ ›ÍV®ÙŒŽŽ266ý-‡Ìä\¹·ÏuFÏØwäõzS™T¿üu¶»¹r¼@Ñ üËÏjµR]]P'Ï¥õÆf³QWWǼyó²ŽK$‡v´X,˜Íæèo³ÙÍnž+ø|>&&&ðxEiÛQ]]ÍöíÛ¹í¶Ûp:x½^¾þõ¯«Û9¦çEGI’:…o³§`ll,j•'À²þ:>>ž´Góûýøý~FGGÑétQ‡6£ÑX´Û%“ ²œ€ZøLüüå@ÅwÜq×]wbaïõ×_WGy霊 EG€Iü/b {JÆn`1 QG:·ÛÛíNiÁƒŒ3>>=ßh4FK±ì …ðù|Š’éhSYYÉöíÛÙ¾}{\ùÚ»víRW¿(IÒåé·|vQ\ou’$½*„Ø|H®“­>jÈ.Ëòþ`“ÉõWI%òè B«Õ*H¡×ë£ÞœùD8Ž®ûýþ¨°'ˆ«“µµµ¬]»–­[·rÍ5פtã8pà€:7WøêTÚŸo%&ñ š mbb—Ë•64¢×륶¶–õë×GcÙwuu¥Ý& …ó±.2)äßZ­vZñÂáp´Èî@ î÷T ÑhhmmeõêÕ¬Y³&M#][ûûûyúé§ÕÕ?Í·[óTQtfÐX!þ¸'¶.›(ò^a­VKoo/ôõõ1<<<#“SF£ …\äÝ[‰J.QQQAkk++V¬àšk®Án·SVVFeeeF1¿ßÏ—¿üeuœþ`­$I9mì,¡˜G€O‡€rE?óæÍËè…vwwÓßßOkk+ 455¡Ñh Ò×מfé?-dΕS[:èõzš››iii¡µµ•ÖÖV*++£¤3›Í8ά"æ=ýôÓjá«ðC‘Bˆk‰¤mvû&“)댕V«•Å‹SUU×Ck4ÆÇÇéëë‹n#”ײյs yŸ‚Ãá ªª**ôõõõèõú¸ÿC¯×ãp8²ÞËðꫯòä“Oª«¿.IÒWröÏäEO!ÄŸ?Œ­+++›R«ÕJCCõõõ˜Íæ„d€Tǣ،.»aÈ{uå’mϯÑh¢“nƒÁ€ÍfÃápD‹ÓéÄétRYY™PÐcÛªÕj±Ùl”••a2™²ž“´µµñÄO¨ç¯·²§g&˜B<<[çt:³Î ûèët:œN'õõõTUU%2 ©à©¿—íð²µFþ;c00™LQ “Á`À`0Lë~²š3Ýè===<ñÄê°çÀµ’$õN预bŸÄâ³ÀµÀ*¹B•m´ÃÃÃŒEÃ(ÊáZ2>u½¼ &¡NwÍDE¯×G'·ÓˆýþûïóÍo~S½à ¿§è…æÐ „XFd’"¡˜Åb¡ªª*£^PîýÕ¿eÓ¦Õj¥¬¬Œ²²²hHy=`ªB;óbÝ9ÌfsÎV±wïÞÍSO=•ÈÌúŸ$Iúî´oP ˜SB¬ ’}~l½Á` ¦¦&íŠn"¨íûòoùoÙýÂf³EýЦ"ìé¾ÓjµŠ=ÇSuèK…P(ÄsÏ=—h¥7<.IÒ39½až1ç „¨vcëµZ-555)× ²!@¢ßòÄÕd2E?ëõziäy†,ر÷‘K¢Ug™X3·ÛÍ·¾õ-ŠsèÈUbºBœ$€ÂJÄ9ëOÕß9ޤ›é§C€XaW ªÏò¤7Ùß³óçÏóï|'QÒ‹àNI’ŽÎJCfùl9C$É Ü|GýÝÐÐÝÝÝ)ƒEMõ·ú:É>'ÂLöîÉ044Ä?üÃ?ð¥/})‘ð6ÍUᇹeŠÃ¤ú¯„çˆ!ª0ûý~z{{±X,TVVæ´§ÍDø“'Õ9¹„Ïçc×®]¼ôÒKɼd_&bíÉ.X‘aÎŽ±$选L¦€Çã¡««+£â™ áOô9Ùß¹Äþð>÷¹Ïñ /$þ "áëïžëÂsxBð%"ñjâ|´ZmtA¬Gg®æêºX]?VçW×çáp˜÷ߟŸýìgœ>}:ÙaðŸ%Iº“›®*ÈB4‰HýP¢ï5MÔKÒn·G£»¥"@*AŸÊ$8öØé ··—7Þxƒ7Þxƒžžžd‡¾ IÒ¿MëfEˆ«’2„7ßÖ$;Æ`0àt:©®®ŽF•HG€l…?•%h*˜˜˜àÀ¼þúë?~<Õ¡£DÔïI’4õ$`EŒ«šMÙôYàoQå3VÃn·SWWGuu5V«5! ²þLL ™.tùý~N:Åž={xóÍ7Ó° ?þ«$II‡…«W=d!lÀǀǀ­éŽ7›ÍTTT(<3ÍfsÖŸnŒ]]]´µµÑÖÖÆ™3g¸páB&»Ã:ˆþ¯&=?JH€IŸ¢Ç€Gy™œ£Ñh¢>ùµµµTWWc·Û±Z­Qbd;Ðh4Ñ­ž===œ9s†Ó§OsæÌµƒZ*ø_IJñJ±»/ç%¤ÀdPÞ;O;˜âº‰N§Sä“s Øl6ŒF£"ç—ÁÂårMwÚIàYàyI’ú¦s¡¹Œ2ÄdöšÜljóÛ¢8x‰l}xI’¤ynOQ D€)B±䲆Ù]YoĔÒ$M?«õU†r„Iç»ë‰a‘ÂS² Q†Á˜r‚I/†ØûÅ€f “q”Ä0C(}‘$©ôrf%”pUãªp†+¡„d( „«%”pU£D€®jüÿõ]£—¾Þ•IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-bright/0000775000175000017500000000000011571653265021011 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/elegant-bright/background.png0000664000175000017500000000274511571653265023646 0ustar julienjulien‰PNG  IHDR\r¨fsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<bIDATxœíÜ1oY…ásA¢ Dƒ´ÿÿÇ Ñ  ¨H‰@ ²î3dɆ@ˆ{7çy™q¾æ¾žÏxÌ9scŒGIŽ’áá¿l›äC’÷sÎíï6þmÆO“¼NòàVÆvá[’·sÎO¿Úè—c¼Jòò–vçxÎùîª?þ4ë!ÿ_YÎõÿ·“$o~vJ°¹b‹î£,kú’KXû-~¸_ŽÖµ}Á…¬üœóÃýôr]ãçΰž÷¿ÞùHÀ.½^×z’‹G/â«>¸ïdYëIÖ¬wø=ß×DÀN=_×üùÀ³¸ÃZdYóçpÕº%Éf}ªÏƒ=ÐåñãÑ&>ý¡ÕÑ&Ëóü@Ÿ'›,?âô9Üdù% ÏCGÐëpßÿC«ƒ« (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€b›$Û}ìÅv“ätßS{qºIr¶ï)€½8s½N7I>ï{ `/>o’œì{ `/N6sίI¾ì{`§¾Ì9¿~¿ÀQt9Iþ¹ècÜ-¶YÖü€9çi’ûœØ™ëš¿p+ðû$ßö3°#ß²¬õ$?`ιMòv;óv]ëIþõ0МóS’ãìÂñºÆÏ]zpÎù.¾€ûæd]Û\õ8ð›ˆÜ'YÖô%cÎyå^cŒWI^ÞÑPÀÝ;þÙ'ÿw¿ @’Œ1ž&yäÁ-ÜoY.ø}úÕF¿ @’Œ1’¼Hò<ÉÁ­ŒÜ…m–{zÞÿxµÿ*× ÀùÆc&y–ä(Éã›Nܺ/YÎõ?~¿Éç:þ(vãQ–·í­·í­·µuªmíèm¯¶¿ Xª€°)ŠR‘S-m5µ¥6-–Aˆ† „ gÜëýýqÎ:서8{Ÿažg=œ}†ð®½ßïZ™ac“©« °±±‡Õd555yYYY_0€ªrs¤ B°úŒ™™ˆv >ü7–œA%žƒÞÏÌOÆù3õ1bDsBŒ²`צ …ŠˆÌŒöööŸQ‡kMÓàv» KÓ´>l$[&ÀÌÄ̃xÿý÷»ýnaa!***DÃ"›b À¤”DDRžSâwFÕ@¸-`†}™Œ-P5€”Btßñ¦„RJ[ Æ€ H)0s\Ðu]&ÞºÌÆ€ ô¶°Û‰Ç€ H) ×ñ´ì(ñØ0ÞÖDd ÁØ0]×€Þ4‚í6@‚±`ª8wà«+ìÈ–¯Ãá@AAr~™W\}õÕÌ̃é b®½öÚ§| !ŸŸ³€ðMŽÄ‰`æ MÓv¿úê«ýÍÎG<ô2Jê6@UUÕ%‘A®!*´ÅùUÒ4 ¹¹¹fÖ¬¸æškž7;–,‰¼öÚkŸþýï/™ùi"¢ììlø|>±UN§T7é)åî­[·ÞxÛm·ÕY‘Ÿž`f¯×‹Ã‡8wm°º>sæŒ ó’¶ؾ}û¥D´›™@VV–±P:'oB ++ËXò/»îºë6™b|',[ÿÉO~òo½õ–ð ""·Û}Þ.³®Þ‹$§ÌFkš¶{ëÖ­Ó’QRÊ´··ãÈ‘#±þ,˜8‹z϶mÛF !vÑ@Ñ‘~cüߌ3‡Üyà 7¼˜xË»ÆÒƒ²o¸á†ÿðoªÁO{€ˆììlUò\FDžªªªVæé<<-¥ü»”òpŒé€”ò;VÝ™ªªªËˆÈÃÌ™yyyp»Ý15vUr8Âe.3‡¤”K¬t~ IÎ öx<«¤”«UoI,7Ò˜ÚÛÛ£¡3ÿKJ9máÂ…G-ÎVZ±eË–ÑDô& €¢¢"¸Ýnc¯U— @‡ëÈ3 ÑâiÓ¦m±4S°¸PL:u-3ßýƒ®ëÑÏb© òòòPPP nø¥DäÙºuë`Ë2”flÞ¼y 3ïfæÌŒ¢¢"dggÇÜqº®+Ü‘ Î$‰àÓŸþô3îafÉÌ…Bb¡  ………ê&_ …<›6mbm®RŸÊÊÊŠHƒ·?3£¸¸999b{6jTØàü o¼ñÆmÖæê,I#˜>}ú³îFäp5.Ö’¦OŸ>(**R7{$OeeåP+ó”Êlܸq¬®ë»™¹ JKK‘››sx*¥ŒÎåRÞ>}úô_[˜¥sH*ÀÌ™3Ÿ“R~62*Ý“ó«×EEE())Q" =/¼ðÂ0‹³•rlذáòHØS ýû÷G^^^Ì]]×áõzÕ´ˆ-¸é¦›ª,ÍT$`Ö¬Y륔+™Y꺎–––è)ë±<€¾}û¢´´T‰`83{6lØ`×1RYY™-„Ø  4ùùù1@Dá Œ­­­ÊùýRÊÛfΜ¹ÝÊ<¤ÜrË-¿bæ̬뺎ӧOw˜]ØS\RR‚~ýú©E5åÌüM‹³”2øýþ¡Ì\Ê‘iì9991… D„`0ˆææf£óßzË-·¼bq–ÎKÒ fÏžý<€åJQÝÇŸÁ`0º¨:"‚ßZ››ÔaÙ²eû˜ùë™ÓÿÑGSøt••óû¤”óæÌ™³ÃêütGR æÌ™³QJ¹Œ™õP(„“'O" vû B¡8mD¸ÿ®»îª´:/©ÄòåËŸ`æopdËžDP__¯ 3Ï›7oÞëVç£'’^pë­·n’R.eæ®ë8qâB¡ÐyÿþýÆå”_Z±bÅO­ÎC*²|ùòïx°'øý~ã^fž3þüVÛ )!X°`Á‹Ì¼”™C¡PG=§&èìüRÊÿX¹råϬ¶=•Y¶lÙw™ù›ç×ëE]]]Ôù¥”sn»í¶7¬¶;V’b*D<¼øâ‹ lbf‡Æ CVVÖ9Îà‹+V¬xÊbsÓ† 6|“ˆ¾MžƒU^^ŸÏ‡?þXuS·˜}Çwì¶ÚÖxH9ÀæÍ›ocæMÌìÔ4 ƒÆÑ£GáóùTØó…•+W>mµéÆúõë¿%„xŒ(<W­Õ&¢6³/^ì±ÚÆxIIÀ¦M›n•Rnffg§ÉWŸ_±bÅÏ­¶/]Ù°aÃCDô¨¡'® ÀÍK—.}ËZËzGÊ´:³xñâm2sÏ®¡µ?Á,_¾ü1D ›V)å¬Tu~ …kņ >ÃÌÿÅÌëW®\¹Þj{2…uëÖB´¬X±"¥§§¼R…C‡e` €A‘p¨p̘†~Ú"S3 [ âàÁƒÃÌ0ÀñnðÛà€W¼ àézf˜•ظˆ8p`Â?Àøî¾«¦H)áv»£{$uÃq¿ðk»FŽé»6g:¶.ÈÉ%Ÿp?€ p8²'~ss3ü~4σv8p¹\p»Ýp»Ýp¹\ÈËËCß¾}£ëh ´Ø à‘K.¹äãÄå.ý±ÐKþõ¯€;< ºÞ@J‰¦¦&Ô××£±±1ºÓEo!"¢¸¸ÅÅÅÑÝ0"xüÀ—^zióýGŠ-€^ðá‡Îðœææf;v MMM =Þ(//eeeèß¿tV,€ßðô¨Q£çÿµMglÄÁ¾}û.ðs3Ô{ííí8|ø0šššLµ%++ C‡EII‡ÝâøÏË.»,©–&3¶bäŸÿüç „ãî" ¼+]mm-êëë-µ+77C‡EŸ>N–}ÀC£G¶n؈üãÿà'4fFmm-Nœ8dºw(//GVV–zk€åcÆŒi³Ð¬¤Ç@7ÔÔÔ8< à^ƒØ¿?ÚÚ’Ó§4MÃÈ‘#QPP ÞÚ `nEEÅa ÍJjlœ‡¿ÿýï%¶¸Çú¸à^DCDS/¿üò?ZlVÒa  ûÛßáøy?~'Ož´Ö¨^’››‹òòr5Ê|À¤qãÆÙgRv:t¢`æÇ™y3£¾¾§NŠigºdLj;öÈrÅþÌ\µwïÞ«ïq2a×þú׿.𴶶Ƴ—RÓ·o_ôï=Dg €…W^y¥ýàaáÉÆ_þò—I~ @ÇŽ3Ž´¦4MMMp»Ý(,,€ð-k­JìÀû￟àI)qäÈ‘s&«¥:ªw(;;[½uË„ ^µÒ¦dÀn`æ¯1ó fF]]]o¥bÍ[d éþüç?÷8;ÝÉø¨ººz€/á¸ßëõ¦MèÓ)%êëëQVVc|ÀZk­²–Œ¯˜ùQfÎQÓ˜­.©Íè2lóÈ{ï½—Ýó]J_2Zï½÷Þ„ä@KKKôTštÇ0su€/YhŠåd´˜ù{̬I)qæÌËKg³’ßïG{{»ªx÷Ýwã]¯œ6dlàOúÓdDF{Ïœ9=€#ShnnV3G |À7¬µÈ2V̼4ò/Z[[3Êù  ¡½½]u‹.E† cC fžËÌðù›+X–X‘ áaøÃ&XüH,!#k€={öŒ0|>_Æ•þŠ@ ` ýæxßb“L'#ÀÌó"ÿF½2•@ —Ë„ð°Åæ˜NF†@j¶§ZÜbu(beRçø2óï¼óÎp‹éd\ ðöÛo0—~™\úˆNˆ0À“šc:‰ Ç#òóóéàÁƒ”——G………¢¡¡\.ù|>át:©µµ•œN'ƒAáp8Èçó‘Ãá P($ùý~ äv»E  `0HBÿªU«NÄk3ÏŒØ=g,Ó …BjÑÌ§Ñ <ú裎ä:éóù8??Ÿ½^/»\.YVVÆ­­­ÜÔÔÄEEE²¦¦†~øa³0» zðàÁ›¥”?gæ")%I)‰™…á5I)»ºVgtE“ñú|¯{ñÙ7ï»ï¾ïÄ“á·Þzë1ßbæ¤]Ün6n·N§þvà 7\Ïo׬Y3ÀkBˆ2"‚"šŒ×çùŒ…LD,„†×]^^ŸsMDÒøv8’ˆÖ1â¼m›žj€{`Øö/Ù`æÙïˆÏoȸ¯î0œ®3°?ÿ€²^þ×IpÑf¦23„êø¦«««Ÿ8qb—»ô$^¯Çïð9Ÿ#ßW¯» «÷Œ²Î×]}vìØ1466‚záÁJ‘›ïÏÓƒŠ={êÔ©þ8~KêùŒ3&ú· ³ËëNÿï9ïëºÞãܬÎÏÏx››«vÍÓŠ‹‹5½á¾ò£GÆZ­uû™ºYò7.d76[]cpÄ>Š÷÷D„âââ g/FH}ݯ_¿ÎÛFvILH'ltAÑ ¤*%€]»v9D‹[gé$€Œ!£Æ˜¹g]¶ ÐÛmJ’Q53·¨×Ɔµ Œ»Þµt÷½t£§©i%€3fœaæ6UÚY= !™’¡§æ˜ÅÉT2*f> ``‡@ŠNÝ‘)}îo¼t+NÃMƒ"%Ü(»è,ªë0‚](„¬ë:òòòPQQqΠEWB:']×£¯UÜiìÇ5~Ö¹oW]_ȦUªŠ·G‚;y~í³fÍêÕa{RJTWWw³é<öÓÕõù;G—ï«;¿×ùµá né)j§Ó‰Â ´:ŠãB>"Ľm³-€s1`½)ý£!“×ë{P³«×Ý}ëß"Ú¼ |ôÑG¡òòò.ï)ú€¹DÄ‘H"Ü8V©ËkEW×DÄDtÎï‰HJ);|Æá±öèµáu«”ò¹8VTvtC·ŠŠŠ¶655=€ðø °£¨9>gçûŠù\03E¦R3 õ‘ñ·ÿVôï?ë|°O­›:uêyçTt+€#Fü ÀòxoJ2ÃÌÑC"t]ïêêŒÃ°&à/ñþváÂ…:ÂGƦ$™¸"ìNHúãŽÌ  Ûv/[i‹dœfÏž-™ù7Ì]–ÉɰYn3¿eõó1›Œ¬ÿ™ù×V麞ñaßïW5Àö¹sçêVÛc6ùä™ù mrý~¿Z •q„B!èzÔç·Yi‹Ud\óæÍó1óNf†ßï·< ±*©ÒŸ™Û™y§ÕÏÅ 2²fÞàÖ`0ˆ@ ·ÛmµI¦Â‘5Ñ‘ðçµ[o½ÕkµMV‘50óff>ÄÌhnn¶¼46;µ¶¶Gå¿oõó°ŠŒ>#lË–-ÑS!‹‹‹‘››k±Eæ ë:Ž;¦Jÿ—,X°Ðj›¬"cC `æM¾`âéÓ§‘›› ¢ônnnVÓIB´ØKÉØn¿ývfæ8²MbKK‹å¡I¢S(BKK‹ }ÖÞ~ûíZý¬$£ .ÜÅ̯13ššš¢“äÒ5544¨¹?mÌü¨Õ÷ßj2:R0óf†B!QWW‡Áƒ§e(ÔØØˆÖÖVuùä¢E‹Žw÷ýL ãkX´hÑ^f~ˆ™ÑÞÞŽ“'OZ^R_ìÔÖÖ†S§N©Ðç]fŽkG½t%£{:³qãÆ@ÿþýÑ·ozœç÷ûqèÐ!Õð= `Ò’%Kê,6+)°C Ì|7€K|âøñãp»ÝÈË˳ڬ B×u9rDMyð˜·téRÛù#Ø5@'žþùAÞ0@Ó4Œ92æåuɆ”}ô‘ŠûÀ¢;ï¼³Òb³’ []ð«_ýj2€ßÈÒ4 Æ CAAÕfÅE0ÄÁƒáõFg8<²lÙ²ŒïõéŒÝî‚eË–ý‰™3s{(ÂRªaÜÞÞŽ}ûöÃ~š™³ú¾&#v Ð ëׯ¿ @€A@xºDyyyRw‘Ö××ãðáÃjšCÀý+V¬xÚb³’[=ðÜsÏ @x©àdÈËËÃ%—\¢NVL˜µµµÆsšÜ±råÊ7,4+é±ëÖ­ËðKK@`àÀü°Š††ÔÖÖFýð!€9wÝuWFOsˆ[qðì³Ï>àDºN'Œþýû[577ãðáÃÆÑ]Ø`ég?ûÙÓ¦”‚؈“_þò——ø.€ÛÕ{YYY6lúõëgŠ mmm8|ø0oàëwß}÷vSŒHlô’gžyf2€ï˜ªÞs:(..Fqq1ŠŠŠŒ»“]0­­­¨¯¯GCCCçÓ-k<`ý=÷Ü#»þµÍù°p¬]»v€'t8^TÓ4ôíÛ%%%(**Š»Ñ¬¦-×××£¾¾~ÿ9çÖ5!\=µjÕ*ß¹Á&l\Ö®]+LCø¤õy†tþÁårE“Ûí†Ëå‚@~¿@ š »5ið:Â;8T­ZµêL³•ØHkÖ¬™ˆ°æ¸üÿ\=€ß Ü»óÞ{ïµKû‹ˆ-€³zõêÆ"¼y¬Jƒ ¯ÝêÞ˜Ö˜Ž8  ú¾ûî˸ «Ì€MF“sÖ¯_? †Ómlb%¥k€ÊÊJÍï÷?ÇÌw2ó{Á`ð3÷ÜsOcÏ¿´¹Ö¯_?ÀK>t:‹—,YRoµM½%ePYY© –Nžy? N·E8Ö¯_?™ˆvèýÞ+¥¼qÅŠ ›Ö+R2ª¬¬Ô‚ÁàóD´„ˆàv»ÕTà N§ógžy&=Ö2&ëÖ­›¤œßpÑN§s×úõë‹­¶¯7¤œ<C×õ„‹ˆùùù5jTt>Ž-‚İaÆO!¢Î?|øp”••©{~¥Ûí~£²²2åîyJ Àãñ8N:µQq‡rþ!C†€ˆPZZj‹ AlذáÌü["*TΟ——‡~ýú¡¤¤DMÏÌ¿}á…Ь¶7R¦ àñx ›˜y3#'' èp² œ}Ô=ÿ€×+++ûX›‹žIjTVVºøÍ'"dgg£¨(bvåüE`h¤Mp:»~¼¬[·.KÓ´×cu~•úôéƒüü|uÏ'»Ýî×wìØ‘ÔÛi$­*++]ÙÙÙ/1ó\ÕÕÙ§O¸@éÎùÉëõFÛBˆ}g)eÐ4­”ˆŠˆN§n·»GçW)???ºÍ<]­ëúëUUUùgé¼$e#¸²²Ò•››»…™g33œN'òòòbÞjkk£K¥”Ï,[¶ì^„7‡2uëÖƒÁ•Ìk‰ÎÌUŸûÜçþšPúáù矿ÀZ""—Ë…aÆEOÓŒ¥ðikk3ž¿öûP(tÓܹs[¬ÊÏùH:ìØ±ÃMD[™ùff†Ãá@NNNÔ±cqþcÇŽEÏ¿bæµK—.½9?¬Y³æ|!ΟýóÞ{ï“{beãÆ«¬V"2d4M‹«ƒê¹¼“}ÓÔ©S[{øoM%©B ;v¸5MÛFD7²²²bªz™RJÔÕÕCŸÕV;?Q©"*æììì)+++šœN'„B”[i3,Y²d-}Žˆ8 âã?6¬Ýcr»ÝÑ#h‰è:¿ßÿêÎ;“ꪤÙ×ãñd9ÎmÌ|ÞzÄétF_ADç¼ ÚíóùT‰óÿ-Zôï°Øù@Ó4€ÂÂBTTTtûݺº::t’b}ïâÅ‹×lÞ¼YÑ/B¡?~eeeBÄ$µ4rðÈõDôêÎ;ož9sf[ÿµ)$E àñx²¤”¿&¢›" Ön«Zç”ü јSñ‹;î¸#)œˆH¨-§‰|7)l€E‹ý}žˆ8 áäÉ“…B=æ?'‡ÃMÓT¾nÐ4mûöíÛs,΀$Àž={²TÑLãÞ:±Þ\)%šššTÉÿô‚ ’Æù@AjÄZJÙmŠ|Bˆ¤±.\ø _ "èºŽÆÆFã1«=RÚjSóòò’B– `Ïž=Ù@  À à¬CÇc23Μ9ƒP(¤nìS ,ˆ·±™pD˜˜ÀÌJI¹ýöÛ.„ø¢ÁéÓ§«×+IDAT»Ð})¨¦TE @˰LÕÕÕ9¡Ph;MWŽKµj {Z[[£Î/„øÙüùó¿hU~ºƒÂÄE¾ŸT!‘ùóç?ED_RϬµµµC¡tïüº®G"ðéP(Tåñx,;€ÁTWWçø|¾íDt#QøèÎ@ Ó TÎïõz¡ëºº‘ÿ3gΜ/Y‘—Xèe ”€yóæý Àý*?íííÑð-–Â+D .Ó5MûµU"0]{÷îÍ ¯Ñ4"B0„Ïç‹+ì ÆãLŸœ3gΚxH‡6@gæÎûS!Ä—U­æ÷ûã _}>_tŒ@1Óår½¼cÇ·Ùù0U{÷îÍõù|¯ÑT"‚ßï7XÅTª0)âü?¾å–[¾lfzC/tm€ÎÜ|óÍOÑWðóŠgŒÚÛÛ£Dô™¢¢¢mf‹À4ÔÔÔäùýþ>EDðz½ÆËcUjüpÖ¬Y_5Ëþ Auƒ±õn%s 3³fÍú1€ÿRùë®g¨«gÛÚÚjœ21«¸¸xkMMi‡/˜"€ššš¼ööö‘´··£¹¹9®e\øBDߟ9sæ×̰ýbO m€ÎÌš5ëGBˆŒ]ñlÍÍÍÑL"º¹­­m‹Y"H¸öíÛ—ï÷û_#¢)@x—ãÆÆÆ˜«J5#Ѱû‰3füw¢í¾˜ÄÓŽ|?¥3fÌø}]  «‰s¯©±±íííêÏöù|/UWW;mwB°oß¾|¯×û€ëˆ---hhhˆ+NTÈFnìwo¼ñƯ'ÒæÑ›nФotfúôéO!¾¡FóÕ4ˆžœ_¥úúz´µµ©üÏÑ4­2Ñ"H˜öïß_à÷ûwÑ'‰ÍÍÍ8uêTÌ7²³³£CèŸ6mÚƒ‰²7‘hš&ÔY±Öš¦¥T  ˜6mÚ÷ˆè›DMÓófƉ'ÐÚÚªžù<‡Ã±9‘"Hˆ"%ÿN"º†ˆÐÔÔ„'NÄ\@~~>‡ª›:uê·a«Qܽ@©ÒS§~GñAnnxh¬"8vìZZZTMp«ÓéÜäñx2q3!Ðuý.!ÄÕD„Ó§O£®®.æ¡°°0êüDôèõ×_ÿp"ì4 U¤s 3×_ý·‰èÕPÇú=zgΜQàmýúõûŸDØ™hšöB§ÈÞ=.—+¦^"Bß¾}át:Uøð”)SI„f¢¦Bquƒ¦\ 3S¦LyÀ£ª#CíÑSþ™Ã£ýJ‘4"6&D—]vÙn"Z!„Ð].FŽÙ£„(--…ËåRþÖu×]—§›«^ ö6@ª×Š)S¦!€ŠŠŠ¿[õÛ0!Dtãžj€È÷$Ù.ݱ`Ñ>PØ!P²a À¢ Ø!P²a ÀT  ºA»Ã®ÌÅ€ Øm€äÅ€ ô¦ À±ÄJ6Œ-PmãŒÏ¾Ø!)Ø0»(y±`ñ´ °Û&` ÀÔHp~~> }¿s8ÄÌÆíÀl˜€B€¢¢¢èAß1JœE6 [& iÚO™ùaNI0¼îpMDmRÊ5æ[šy$Ý9Á66fbù!y66Vb À&£±`“ÑØ°ÉhlØd4¶l2šÿ:{÷{óôIEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-bright/cdrom.png0000664000175000017500000001124511571653265022626 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î<"IDATxœíÝypTåšÇñï9ÒY€@˜`âVÎ…( ¢@©(ˆ¸‹(·nMÍRu¯Ž5wfªfjfny·ºwjê–W# "‹È¦EDŒ(²„Ø…-lI =ÝýÎ'‡j @–î>Ý}žOœ@w?Zï/ï{ÎyÎÛšR !ìJ·º!¬$¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&¶&°Ð±cÇRŽ;6Ðê:ìL`‘ŠŠŠqJ© ¥Ô™ŠŠŠ9V×cWš|CLè•——ßìR;~ÔÌ5jÔçÖUeO2„XyyùP HUJáñxb åååã,-Ά$!TVV–ª”*TJ UJár¹8pà¥T¢RjKYYY®ÕuÚ‰ DJKK•R›•R·)¥(//çüùó¸ÝnJJJðù|(¥*¥ KKK‡Y]¯]HB ´´4ØŒ8uê•••—ÿ¾¶¶—Ëef…¥¥¥i¡®ÓŽ$AvôèQ])õRê¥gÏžåøñãhšvÅŸššÊÊÊPJ¡”­”ÚrôèÑ$«ëv€ SJ½¥”𣔢¦¦†ŠŠŠk¿ùçܹsœ77÷µ—j{€+))yX8ÚÚÚp¹\´µµõè½t]'''‡ÄÄDóGoäåå½ R€€*))¹Ø ôõx<¸\.ZZZzõž‡ƒÑ£Gãt:ͽš——WÐËRE @€>|øo€/dŸÏÇÑ£Gijj È{÷éÓ‡œœâââ¼À¼Ûo¿}]@ÞÜæ$P\\|+°¤”¢¢¢·ÛÐψ%;;›>}ú´³î¸ãižë%¹ ÔKÅÅÅ™À6`À‰'>øÚÚÚ(//ÇëõÄŠ‹‹¥y®—dè…C‡ Àhk¾ ²²’ÚÚÚ ~¦ÓédäÈ‘èºPäßyç®›¼L\‡ ‡<è¶ pþüyª««CòÙ‰‰‰ >MÓNïºë®S!ùð(#K 8xð``-ƒ¿¦¦&dƒ ¡¡Á¿™n(°íàÁƒ©7x‰¸™ºéÀ:ð0 ®®Ž3gÎXRË€ÈÈÈ0¿¦Þ}÷Ý?‰b2t“Rê•Ró•R¸ÝnÎ;wÃÞž`þ©««£ººÚìºG)µaÿþýÒ<× €nØ¿ÿÐÔÔÄéÓ§±z­©©áâÅ‹æáT`åþýû¥y®‹b¬. Rüøãü;@kk+§OŸ0OD-UUU…®ë$''<ŽÑ<·ÐÚª"ƒœtÁ¾}ûž–Z{{;•••æõø°¡iééé$$$˜?úݘ1c^·²¦H K ›Ø·oß `) y<Μ9vƒ@)Źsçü{^Û·oŸà&d¸~øágwy>Ÿ3gÎô¸³3Tt]'33“ØØXóG¯Œ;ö]+k g€ëøþûïïvÌß®­­­V—Õ%‡ƒŒŒ bbb £yîž{î‘æ¹NH:±wïÞÍmJ)ª««{ÝÖj111 <‡ÃFóÜÌqãÆí°¸¬°#çWÙ»wï`ŒeOÀ… "nðx<ªªªÌÇ0〠{÷î½Çâ²ÂŽÌ~¾ûî»~Ëž»Á¸ËÛÐÐ`mQ½KZZšy¹¶È?~¼4Ïut(**Š>òÜnwPÚš­GJJÊÍs&Læ9d @QQQ ð!ƒ¿±±1j?7îêêêÌá@aQQ‘4Ï!3ß~û­†qÿ€––ÿÁUœN§y·:šçî½÷ÞèIzØ~PJýQ)õ‚RŠÖÖVêëë-kn öŸææf®hžÛ³g­›çl€={öü ðOíííÔ××[\Qð566ÒÜÜlNVìٳǶÍs¶m†ûæ›o~ü7— ÍÁÍmÁÖÐЀ¦iæ.O^±¶*kØò`÷îÝO«ÝçóqéÒ¥.o[M’’’Ì]&~;qâͲ+Ø.»wïž| ÄÚyðƒ1Û%%%™-¯Oœ8ñwVÖj¶ À×_=øHTJÑÐЖ¡¤i‰‰‰fËÀÂI“&-¶²¦P²MvíÚ•‹±…É@0Ní>øMš¦‘`nµâžÌÏÏ_oqY!a‹ìÚµkFs[3vw·æh§ë: æE€V`F~~þ—tQ€¯¾ú* ã7ÿh0ntÉàëÄÇÇ›!pSï»ï¾ï-.+¨¢:;wîL¾Æ‚±½  þÓu¾}ûš‡5À¤ûï¿ÿˆ…%UÔÞÛ¹sg°‘ŽÁßÞÞ.ƒ¿ |>Ÿÿƒ?©À¶;wµ°¤ ŠÊàË/¿tk0vHÀëõÒÞÞnmQÆápøß#pù“'O®¹ÁK"RTà‹/¾( c[ŸÏ'¿ù{Èápø_Ý L2eJd? q•¨ ÀŽ;Þ^c§¹ÔÙ;º®›—GÁ¸‡2kêÔ©‘ñptDÕ9ÀŽ;~… þ€òù|þwÊVìØ±#jšç¢¦îóÏ?_\¾ïóùlÑØ J)ÿÿŸOo¯Z[U`DÅhûöí³€¨ùÍÞœ6mÚVÑ[€íÛ·O¶}oòOEà½6mÚ´ß[]DoDt¶mÛ6ãFW2à²&‚èªîÙ…>ø`Ä6ÏEl s0ZqÉNÖü¡ãõzÍ­á½ÀÜéÓ§o°¸¤‰ÈÁhn2ø­pÕU¶V`ÆôéÓ#®y.âðÙgŸ¥`üæÏc @YúXC)å‡Ý Ly衇~°°¤n‹¨lݺ5ãfÌ0¿ßÓLÂ>ŸÏÇìj ÿᇎ˜æ¹ˆùÕ¹uëÖX`2øÃŠ®ëþ[±§…[·nͲ°¤n‰ˆ`Ë–-:°x ŒÁï÷?]„¯×ëßEú?cÆŒ –Ô%€Í›7ÿøƒß¯_]„‘öövÿì¦Îœ93¬›çÂ~ ´yóæÿ¤cð;üa¬OŸ>þ3ó8`ÃæÍ›ÃzªëàÓO?ýàÏ` ~§Ó)—;#@KK‹ÿ‰ñZ`Þ¬Y³Ârï™°=‹Ü´iÓsÀŸàš¶E˜‹G)e†`FóÜ"k«ê\X.6mÚ4 Xhº®“˜˜(ƒ?Â8Nÿ'Ê^Ý´iÓo¬¬çzÂn ôÉ'ŸLÄøŠ¢xMÓHNNö*ID¥n·Ûÿ‰¼×yä‘°jž «|üñÇwa|EQMÓèׯŸ\ëpJ)êëëÍ(`á£>ºÄâ². ›lܸq$FOº9øåZtðù|\¼xÑìòs{ì±°hž ‹s€7¦c,{Ò’““eðG]×éß¿¿Ù³åVmܸq²µU,Ÿ6lØÐcÙsƒßétZZ“ÇCmm­ù<˜<{öì}VÖdiÖ¯_“Àد>))ɲzDðµµµqáÂóY‚j`Òã?~Ôªz,[­_¿>cóªI 2øm 66Öÿ+[Ó€mëׯ·¬yÎ’`ݺu° xŒkÆ)))!¯CX§©©‰ÚÚZóð' ÿ‰'žyóœ%X»vퟀã®aZZZÈkÖs»Ý\¼xÑ<üx`Μ9!mž ùhíÚµÿJÇà‹‹#5U¾¯Ù®’’’èׯŸy8X¿víÚ^þ é ðÑGýø kÁôôtyœQP[[Ë¥K—ÌÀ§æÎ’æ¹Ýf]³fÍ<àÿÀh›MOO—ÀÀñz½444Ì%„Ís!ùõ»fÍšéÀû€îp8ÈÈÈÁ/®––æÿçÕ5kÖüO(>7èK ?üpÆƒì º®“••%wyE§”Rœ>}š––óG¿š7oÞ‚ù™A ÀêÕ«ó0¶0IÑ4¬¬,âããƒöy"òù|>N:e>Z©€—Ÿzê©¥Áú¼ -V¯^=ã.oЦidffÊà7¥ë:C† 1Ÿ%Ѐ‚Õ«W?¬Ï Ê °jÕª4àk  33“ää䀎ˆ^íííœ8qÂl£nfÌŸ?ÿË@NÀ°råÊdŒ kǤ§§Ë]^Ñ#­­­?~Ül£¾Lyúé§Ú<Ð%ÐÊ•+ÍofÆ™½ ~ÑSqqq :Ô¼W” l]¹reN ?#`3ÀŠ+71f¤¤¤™™÷öæv»9yò¤ÙAz˜øÌ3ÏœÄ{,|ðÁb`@ÿþý6lX@ÞW€ºº:Nž3;ºÒÞÝûÓ¹÷{~¿sÎ˜‚àW¬Ëm€ \ND‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F øšàå6À>|¸²´´t€Åy|ì$ÍŸ3gÎy¯ìÄ…P(t-&"äñºÀ½—ÛöñŽx€"@D¥àĉˆÇãÏŸ3gŽ9” Êc|#€H$2ƒ™øtÖ¬Yÿ]äË+f\¸pýýýOž={öà‡”bÏ-sqüøñ/ø¦Rê¸ÖºaΜ9­Å¼þå`\  ©©)4iÒ¤[“ü’äÏ«“oskkë=³gÏþŸbÙCDNM®”‚e _±+¥@Df&ï­û "Ú`žR J)´¶¶ž³,«‘ˆ”R –eí¯««(¦M^3.päÈ‘Éápø"ZbYÖâ‰'.$¢2Së€ëX)¥þ@Ñ µV&ÊGÅô---S™yðYY)¥jµÖßð f3'Ž?~€ˆ4ƒÁ=uuugŠe£Œy´´´ü* þ±yh´ÖÎ{ÌŒh4Šžžtww㪫®Â„ ÀÌ_.²™ÊõPçãŠ&­µÓCuèÐ!„B!TWW£ªª UUU°, ̰H)µÀã¶m'Ž=zÏܹs÷ËÎB3æÀÌ«“?aÛ6º»»ÑÓÓƒžžD£Qh­ajßp8Œêêj0óm§N*ûÜç>—9/©À§C)åöVE-€D"h4 ¸xñ"˜–e¡¢¢ÂDuu5B¡„”R_ ¸\Ñ»–|úé§8|øð÷ܵ­R ÑhÔÔ®¡žžž…þ¯H6Z# ŠÖ ¢%J)ôôô8ö1³#ÖÞÞ^GUUU˜7ožùÜï‹e£Œ‡n¶½D„òòrçá2/÷ïJ)ô÷÷öm´ÖKŠe ÖZ™þýTS_@À °m»( ¥¥¥„™z{{Ó–û÷ªª*ccï™3gÞ+†^1æ=€Öz/0Xs–——c``°“Âf¸ûúúŒXŠ&¥”r5,sŠÕèíí]¨” '‡Øèöæ÷ÊÊJ#æ}K—.µ‹a£WŒyƒÁ3°TYY9d)õASJ¡··eee ¢ÅŠgçÓ jYÖåèZb®‹ÅÒ†@n———›ß÷É>Ïó!Ðܹs/Q3¡¢¢â×õ÷÷ƒˆÀÌ5¼¡6ºC Láy¹Ò!ŠÒÐZ/afôõõ9µÿpåXVVæØhÛö˜À˜÷ÀÌ{™ùzss€ôµ?0XùjØ%†¶œ= 5Êæ̹DT  ˜y13£¿¿ÿ’-Õ ”——›ò£X,ÖXû¯@k½×<ùä466â“O>16M°9‰ì‹D"_Êçûs@[[Û-‘Häw̼ˆ¦Μ9ƒwÞy'Nœü²äÍ‹D"ưËÊÊËï_9D´×ÜÌlµYò|Sóyå#wä¥vïÞ]ªµžoB t!OjPòÜ^Û¶‹’÷þûï×j­Ÿdftuu¡³³Ó±Kkææf455áÓO?5嵙ߎD"›O:5)—käÔ ”œO»—™ËM¸sìØ1twŽƒ¸*¥.^¼ˆîînTVV‚™øÑGm¿á†N´ rÅ]3™6܈pò|sè©lÛ’©'ÈÕ<°m{€ðpIz©#À®ñ‰}wÝuWQàÀÓD4ÚÛÛ‡xncW4Å0}útÌœ9ápX1óC±X¬ ÀýÙ®‘“PJ•Q9¡«« @OOϰµ…R 'Ož4±eU"‘øÇÑD®(¥LeëÑ0]¥ÉZÍ$Æye×× ¢/×3•î¾&?S´ðçàÁƒwh­×03Î;çtÓw_Ïœ9ƒÃ‡;^™sZO)'ÔÕÕ!¢mÌŒªª*TVVf|ø-ËB<Ç… L¡}ûàÁƒwŽ®H²³téR'1@V˜Z™k^ýuÏãFy9`à€¡å4Ü}u=XÅ€¥”ú%©x<ŽsçÎe|ÖÌëÚk¯5e× ŸÊéB¹ZdÛö_Q7¡®®.«AJ)\¸pÁÉ»aægwïÞíyê…i¤ëÕHg«+äð, i#ØÃd8`±ÛžLeåê0 D"áy\SSÓÃDt+3ãìÙ³ƒg©p§L™âLÔÑZÿm]Ž“õsÀ7Þx†™h2§L™’Õ(n/ðÅŠŠŠGFR y²7™è6$¬®açªq=3[¹†@ÉóMçIàµ×^û"šDDNdò–¦¡LD‡–/_îi\SSÓfþ¡¯¯Ñh4kepÍ5×/õáÙ³g‘ëõòê={öì³Dôaúôéi3/S{{{Ý9ø¼Î½q{€áÚ©79y®g+Eضíx÷(u6Ç=ñ¦ÿßdÐf Í8A1â­õßQ 3£££#ëóeY¦M›æ ÒÑ÷–æ1K-/,]ºÔ¶mûQó`ÕÖÖf5β,tuu™œ@DOç_,¹³lÙ2'1ÎŒnfró®‚›ýÊ+¯x"Î+­ÔÄÿfp+Sdº“a¢§hhhXHDzzz†MÏp—”” ¦¦Æ”׿͛7ow>×Ì{ ì–[nÙMD/&NœˆÒÒÒ¬5¬mÛèíí5F®nllÌg•ä‘°—g,e ,k0¿ÅÙ*Ø«®¬³ˆ(ÊÌßÏû¢#±”™¿ÏÌQ"ÊØpÿÞ××gj•H$~¹cÇŽÀH® Zë½ÌŒD"1¤&KWÙ´ /ÂZk'(—6€ëÜ‚·^~ùåZ"ºŽˆ‡³zHWÎÔÇ_ýêW=K€Û³gÏCD´hpe }/žû¸²²%%%ƾ¿»ùæ›?Î÷º#À­·Þú =ID())Aeeå°µ™9à´ÜR[[ûðH® Ìì$Æå’å …Lˆæ‰FyѰmÛ‰ÿKJJ.©RËÉôâyÿïÚµkýØTZ‰D"kí0qâDcÛfþÙH®=âlP¥Ôω衺º:co‚»1eâI"zj÷îÝSFzýL„Ãá&"Š%ûÒ³v‡šÀí·ßþ¦Öú7ÆšFU&!¤ÔpîÚµ+¯ì½\ÑZï¥d m¶ÈU˜ž4„Gê´Öm<÷Üs¥Dt3;Ë›d b±˜)—^ïÒ–$ʶíg‰È2aÙp÷ÊýJ®ë"ê‹ÇãOŒÆ€QÏ#¢?#¢>"rz„²ys“™Y1ó/7lØPð¹Éf<ÀSfºÙ¦1åE;À=MIÛ= ‚ÁàBf‘ã±3…‡®ñ›}+W®ÔÙ¯o¼ñÆf¾Ã’‘­53þ’ûGwÞyçÉÑØ0êïÎ;ïºuëÖó¦ší~ܼ;Õ&%íæ•B\ÿJ²¬½¶mïSJ}‰™U<GGG:::|V1¸ö (˜^xá…ê’’’€P(d¦ÌyèÓ‰ÀÕ{¼´´´ É”Ÿ RVVöL4]`VN^ ªª ===æýÉÎ;ÿcÅŠ]…°‡ˆ|ãôéÓ8}útêƒfŽ8 ‘ˆ˜¹ñ»ßýnÞ9%W:k×®=àö-[¶LÒZß`±\ `!€r¥º»»ÑÝÝ=$,B=@0ü!MSJaÒ¤IŽÇI}è͵™—l7µ?€Ç—.]ZÐmZUêQ^}õÕ¯1ó«ÌŒŠŠ g %0¼ˆÅb8yr°K—™Ÿ}à-„-›6mú®RêŸ]Ýg´Ö–e5h­‰ÄþG}tÔ½ c• 6¯¾úê[,fæ%J©Å®I¾ýáúõëçâ:/¾øâ”Rï*¥‚&L@mmí%{ê±mÛŽ‡ðÚ׿þõ¯Â7žvîÜù*€¯@mmíÔ[ ½NŸ>mæh"š¿jÕªB,¿¡6nÜøRª_)Õ°nݺH¾s\³eË–¶mß ”Ú___¡ß¹}ûö·Ü 1{öì!±?^f 'à +V¬(øÎõ^ `6}ÈÌ%eeeÎä`x/ µÆÑ£GÍ ¤½«V­*ö~¾‚lÛ¶í¥Ô‹J)\sÍ5˜4iRÖÚ¿¯¯çÎ ö+¥žúæ7¿ù×^ØæÙòè+V¬h%¢gLŒÙ}$So8Æ´iÓœ”„mÛ¶}Ç+û„â°cÇŽJfþG“:?yòä¬}þÐÑÑaúüÛµÖ?öÊ>O÷`æ¿×Z·Ο?ïü“™„0uêTg€LkýÌ /¼Pí¥‚·D£Ñ¿&¢k˜3fÌÈ)m¾««Ë½¼æ+W®ôlCsO°råÊ~f~‚“iÉYÿù@ €ºº:ã¦õ÷÷oðÒFÁ;6nÜøÌüaòäɨªªÊZûÛ¶óçÏ›‡ÿ·+W®|ÙK=ß!æx™ˆv/`fh W–58ÙÁ¤¼øÞ¯~õ«i^Û)¥Ô#É9Î@[¶ ðÌ™3fB\)UžÀLe‹$Û¶cæ¸mÛ8uêTƇ¿³³û÷ïwªˆ¨“™G4ÛG¸¼ч&ª¥¥ï½÷^ƶ`4ub"ú§ûï¿ÿ¨×6E«W¯>ÊÌ?%"gáÜÔ<øX,†C‡áСCN"3ï$¢E<òHGö«W?üð¿ø 3¿K4¸®ìþýûeÎS“ðÚÚÚL¥w @NKŽϺASÙ¶m[…Öú#f¾¶´´óçÏwrrÚÛÛÅt“4x¬¾¾þ·E1Nð”;vºººfæ§Ô@8ƬY³0}útÀ©S§‰DŒG¸Íš5ÿ^ ÛŠ&زeËJÿÎ̘9s&ÊÊÊpìØ1ÄbÎ@lÀßøY}}½„=ãŒ7Nð#ëŒ>ª««QWW‡#GŽ˜å,ßzðÁï)–MElÞ¼ùMf¾'Íu·ƒÁ2X¸2Ù¼yó|­õ³J©ÛÝWJ%‚Áà-k×®=\,[.‡n ¢÷˜­“Þ·,ë{ëÖ­ÛSTC„ËÚ´iÓf~@mòo?­¯¯Ï{u·ÑPô²×­[÷€õšý[?ð7Å6¢è@®$ŠîáJB ø€àkD‚¯¾F ø€àkD‚¯¾F ø€àkD‚¯¾F øšœV‡nmm XàK¸Àí„|‰8 `?çš¼6{öì¬;ìdpìØ±›ü+€› `¤ ‹O<~Ýu×=—餌hnnþKO@"‘@4Eoo/ ™³.\9˜í–***PVVæ~뿬½þúëÓ®r=¬>ü8€Ÿƒ«6Ÿ ***$MB¸¢`fôööšpÇ0à¯ülíÚµiG².¸yóæ ϨGŽk‰ Â@€‡Ö­[w$ÓIY`ظqc%€[ ‹ã W&CÇ­¯¯?ˇr€ ŒGd¨Wð5"Á׈_óÿ“Œ ‚QL'yIEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-bright/mute.png0000664000175000017500000000526511571653265022501 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î< 2IDATxœíÝÙo\gÆñ¯„¥…²©jÿ„!*¢ûÛñ¾Å±PHˆK.¸!!ª(¥ ¥)¥ ÝYô*I;±oïÇÝìñ6>Ç?.îPöippð:3{Ñ̾hfŒŒŒÉd03Á À> ~xøÀØØÃÃÃñJ ¢ Hž¾ 0>>Îðð0€ž¹B P„kYþ¯LLLèæw” @ýýý×Ï_˜œœ¼âæôüß!j€ô÷÷_< | `jjJ7¿ãÔ{táÂ…³6ü_H§Óï»ùóÔîPìAnøŸn†á÷©vÑ××÷!à)àÓÓÓ¤R©-oþÍÔnPì`ÓðÖ†_7²¨¶ÑÛÛûAàIà[—/_ÞÓÍÚ\¢ØBnøÿ |`ff†T*ï¡$j€«ôôô|x¸à­·ÞÚóÍŸ§p‡`“žžž#ÀIà6Ø~I.5@Îùóçw¼ýöÛ\¼x± ›35€Ô¬ÿcÀ]ï¼ó###ñJJÂû8wîÜaàQà€wß}w}ø÷sû«Üàuä†ÿà(l ¿†×Þ6@ww÷!àa à½÷Þctt(þæßL!rƒ— þ‡€Ø~ ­¼k€®®®CÀƒ@-Àìì,cccÀÁÜü À%^5@WWW%ðP077ÇØØ˜†ÕcÞ4À›o¾Y üh„µáîæÏS¸Ã‹È ÿý@3@&“a||\C*Éo€7Þx£ø=Ð 0??ÙÍ¿™Âå†D7@nø´ÃÆðk8%/± ðúë¯W¿:˜˜˜¢½ùA;€KÙ¹áÿ Ð ï¡”«%²Ìì×Àw™œœ¢¿ù7ýþ ›#€×^{íWÀ}°6üSSS@醿Կ—ìO¢pöìÙ_ß…µáO§Ó±ÜÄjw$&gΜù9ð}€¥¥%.]ºÄs+îHÄ|æÌ™Ÿ?€á×Ê^8ß§OŸþ)ðC€ååe¦§§xŸ‡«ܱeNŸ>} k/#°ZÆ_7߃µá¿|ù²O ²eÌìÐRâ³-›Í®¹¼£ ºa»§@ë^¬®®[?­¸úçŠù5ûÚl6ËÌÌŒNв]¬OÓìì,‹‹‹¥;QÎ^‚Ï·Ëåæí.Ù®VKzŠ-l5@*9h»6@EEEYÝ®®PXݰݿÄÞ"¥°]\5@a´¸c»У'^ص´N à5€xm˸馛V_}õÕõ« §pC"¾T¤XÛ~7hn¨ÔP8íîØ©ôJâíÖ‡@;@¡ÔîPˆ×vk@ P 5€Ôâ55@´¸c×ÐðK’©"¢pƒvñš ºýݱSè]a’x;5Àï –½S¸C ^SDD-à5€xM ÝþîPˆ×vm½#¬pù–ò§¯©"¢=À jñš^Š€Þà5€xM 5€;vm=’dz?@Dtq¸Aﯩ" Àjñš "j7¨Äk»6@¹ý/ì.Ðà5€xM;@ÔîPˆ×´DD à5€xM;@´¸C ^Ó5€;Ôâ55@DÔnÐ{‚Åk»¾'ØÌðt'*Pee%••;å¸ô´¸cÛk€¥¥%Òét‰ŽS¸C‡qýõ×søðN‘­íÔ¥–”©Ä ¦¦æa3k6³0ÆÇÇKÚÚÜ‘È;vì ‰\Œ© ä}€cÇŽ=jfù&%›Íªd]¢P[[ûg Â0dtt”ååå¸%e"ñ¨­­}ÌÌÌ,‚€‘‘‘H›ô*+¼@]]Ý_€zrMpñâE5ø€ºººÇͬ.ß©TŠååeíó*õõõ'ZrMJ¥XZZŠûXïP__ÿ„™Õ˜ÙJM p‡—hhhx¨V‚ `hhHMà!oÐÐÐð73«Î7A>zÈ^ ±±ñ)  ÈAÀàà ‹‹‹qKJÄû466>k‚+B  ù€œ¦¦¦§ÙÔ,,,Ä},‰˜°ISSÓ3fv4ßýýýE5hp…p•æææg{å0 ¹pႚ Á€-477ÿÝÌî5³å èëëcaaA;@)Ûhiiy¸‡\ôõõ1??÷±ä€);hiiyÞÌî6³¥ èííe~~^ À.Z[[_î–Â0¤··—L&÷±ä€({ÐÚÚú¢™Ý•o‚žž2™Œ^J`ÚÚÚ^îÃ0¤§§‡¹¹¹¸%û¤ ­­íe3»Ó̃ àüùó[6vw(joo¸ƒ\œ;wNMà0 íííÿ0³ÛÍl!º»»™››S8H(ÒñãÇÿ Ü,„aHww7³³³qK ¤ìÃñãÇÿef·å› ««k=j7(ûÔÑÑñoàV`> CºººôiQ@GGÇ©\ÌA@6›U8B8 'Nœ8E® â>‹ìp€Nœ8ñ3»ÅÌ2j7(¬³³ó¿À-¨ œ D ³³óÀm(eOˆHggç)àÇqŸCvV¡ç©â35€xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄkÿ<… {Ü£IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-bright/noaudio.png0000664000175000017500000000526511571653265023165 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î< 2IDATxœíÝÙo\gÆñ¯„¥…²©jÿ„!*¢ûÛñ¾Å±PHˆK.¸!!ª(¥ ¥)¥ ÝYô*I;±oïÇÝìñ6>Ç?.îPöippð:3{Ñ̾hfŒŒŒÉd03Á À> ~xøÀØØÃÃÃñJ ¢ Hž¾ 0>>Îðð0€ž¹B P„kYþ¯LLLèæw” @ýýý×Ï_˜œœ¼âæôüß!j€ô÷÷_< | `jjJ7¿ãÔ{táÂ…³6ü_H§Óï»ùóÔîPìAnøŸn†á÷©vÑ××÷!à)àÓÓÓ¤R©-oþÍÔnPì`ÓðÖ†_7²¨¶ÑÛÛûAàIà[—/_ÞÓÍÚ\¢ØBnøÿ |`ff†T*ï¡$j€«ôôô|x¸à­·ÞÚóÍŸ§p‡`“žžž#ÀIà6Ø~I.5@Îùóçw¼ýöÛ\¼x± ›35€Ô¬ÿcÀ]ï¼ó###ñJJÂû8wîÜaàQà€wß}w}ø÷sû«Üàuä†ÿà(l ¿†×Þ6@ww÷!àa à½÷Þctt(þæßL!rƒ— þ‡€Ø~ ­¼k€®®®CÀƒ@-Àìì,cccÀÁÜü À%^5@WWW%ðP077ÇØØ˜†ÕcÞ4À›o¾Y üh„µáîæÏS¸Ã‹È ÿý@3@&“a||\C*Éo€7Þx£ø=Ð 0??ÙÍ¿™Âå†D7@nø´ÃÆðk8%/± ðúë¯W¿:˜˜˜¢½ùA;€KÙ¹áÿ Ð ï¡”«%²Ìì×Àw™œœ¢¿ù7ýþ ›#€×^{íWÀ}°6üSSS@醿Կ—ìO¢pöìÙ_ß…µáO§Ó±ÜÄjw$&gΜù9ð}€¥¥%.]ºÄs+îHÄ|æÌ™Ÿ?€á×Ê^8ß§OŸþ)ðC€ååe¦§§xŸ‡«ܱeNŸ>} k/#°ZÆ_7߃µá¿|ù²O ²eÌìÐRâ³-›Í®¹¼£ ºa»§@ë^¬®®[?­¸úçŠù5ûÚl6ËÌÌŒNв]¬OÓìì,‹‹‹¥;QÎ^‚Ï·Ëåæí.Ù®VKzŠ-l5@*9h»6@EEEYÝ®®PXݰݿÄÞ"¥°]\5@a´¸c»У'^ص´N à5€xm˸馛V_}õÕõ« §pC"¾T¤XÛ~7hn¨ÔP8íîØ©ôJâíÖ‡@;@¡ÔîPˆ×vk@ P 5€Ôâ55@´¸c×ÐðK’©"¢pƒvñš ºýݱSè]a’x;5Àï –½S¸C ^SDD-à5€xM ÝþîPˆ×vm½#¬pù–ò§¯©"¢=À jñš^Š€Þà5€xM 5€;vm=’dz?@Dtq¸Aﯩ" Àjñš "j7¨Äk»6@¹ý/ì.Ðà5€xM;@ÔîPˆ×´DD à5€xM;@´¸C ^Ó5€;Ôâ55@DÔnÐ{‚Åk»¾'ØÌðt'*Pee%••;å¸ô´¸cÛk€¥¥%Òét‰ŽS¸C‡qýõ×søðN‘­íÔ¥–”©Ä ¦¦æa3k6³0ÆÇÇKÚÚÜ‘È;vì ‰\Œ© ä}€cÇŽ=jfù&%›Íªd]¢P[[ûg Â0dtt”ååå¸%e"ñ¨­­}ÌÌÌ,‚€‘‘‘H›ô*+¼@]]Ý_€zrMpñâE5ø€ºººÇͬ.ß©TŠååeíó*õõõ'ZrMJ¥XZZŠûXïP__ÿ„™Õ˜ÙJM p‡—hhhx¨V‚ `hhHMà!oÐÐÐð73«Î7A>zÈ^ ±±ñ)  ÈAÀàà ‹‹‹qKJÄû466>k‚+B  ù€œ¦¦¦§ÙÔ,,,Ä},‰˜°ISSÓ3fv4ßýýýE5hp…p•æææg{å0 ¹pႚ Á€-477ÿÝÌî5³å èëëcaaA;@)Ûhiiy¸‡\ôõõ1??÷±ä€);hiiyÞÌî6³¥ èííe~~^ À.Z[[_î–Â0¤··—L&÷±ä€({ÐÚÚú¢™Ý•o‚žž2™Œ^J`ÚÚÚ^îÃ0¤§§‡¹¹¹¸%û¤ ­­íe3»Ó̃ àüùó[6vw(joo¸ƒ\œ;wNMà0 íííÿ0³ÛÍl!º»»™››S8H(ÒñãÇÿ Ü,„aHww7³³³qK ¤ìÃñãÇÿef·å› ««k=j7(ûÔÑÑñoàV`> CºººôiQ@GGÇ©\ÌA@6›U8B8 'Nœ8E® â>‹ìp€Nœ8ñ3»ÅÌ2j7(¬³³ó¿À-¨ œ D ³³óÀm(eOˆHggç)àÇqŸCvV¡ç©â35€xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄkÿ<… {Ü£IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/0000775000175000017500000000000011571653265021600 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/elegant-bright/src/background.svg0000664000175000017500000000403511571653265024442 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/brightness.svg0000664000175000017500000003264011571653265024476 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/cdrom.svg0000664000175000017500000001222411571653265023426 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/kbdlight.svg0000664000175000017500000002274311571653265024121 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/mute.svg0000664000175000017500000001605211571653265023277 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/src/volume.svg0000664000175000017500000002237711571653265023643 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-bright/volume.png0000664000175000017500000002027111571653265023030 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î< IDATxœí{|”Õÿßç<ÏÌäBB T% "e­ÐV‰Ý"»º?ÖÖÖÊEADBk[w·Ýßë·¿îþ~¯eûÛîvW{YܶVA‹Ñꪫu ÖàÊÅ —@B¸H€€\r™Lfžç9¿?2Ï0 ¹g&3™9ï×k^œ¹ðÌ9“ïç|¾ç<ÏsŽPJ¡Ñ¤+2ÑÐh‰€&­ÑФ5Zš´F @“ÖhhÒ-MZ£ Ik´4=R[[[rðàÁ[]x¢ ¹ˆêêꜚššG½J©?:tè[‰®S¼úRM4UUU ¥” !ÆK)‘R"„8¯”šRRRÒ˜èúÅívíÚõ¹Ý»woVJ­WJøôÓOq Ï0ŒJl ãƒv€4gÇŽy†a¬B|KJiJ) ÔÕÕqîÜ9JJJøÌg>ƒ”R7mMtc‰v€ôElݺõ Z)õ€iÛ6ÇŽ£ªªŠææf„>|˜`0ˆRJ«‘ØjÇíiÈ–-[®3Móß…3…H)innæäÉ“„B!ÇÁq”R8ŽÃ¸qã˜:u*RJ”RËŠ‹‹ŸNtb…@ñÞ{ïåK)ÿŸb…ÂRbYŸ~ú)~¿ÿ¢À.OŸ>¼¼<„J©)ÅÅÅçÝžX S ô@¼ûî»Ë”R5Žã<¬”2Çáܹs?~œ@ Ðñ!!Bt[Þ¿¿{¬±BˆH@â‚v€çí·ß¾!œî|ÞÖ ƒ´¶¶bYV§Þ¾§Þß-_uÕULœ8Àrçú’’’݉nßP1]M|xçw lÛþ¡”ò!¥”B`Û6~¿ŸP(„R !Dä_÷ý¼kùÀŒ;Çc !þ ˜èv¥+W®”o¼ñÆŠP(T”)¥¤RŠP(D ÀqœÓœÞR )%—^ziä{„_ªªª5¼­‹=:J!^{íµ›„K)g¸AkJ©^S›îÊÑÏGEqq1ÙÙÙî™áâûEEE&ºÍCE§@)@EEE¡Çãùg)åRšax<€H0÷'͉vÓ4™8q"î(J©· ÃxdÒ¤IûÛêØ 0‚©¨¨0€o†ñ¥Ôh7ð3331MsP¯”BJIAAcÇŽÅ4M7ðH)¿;yòä—ÝîX¢0Byá…JB\ëpff&ÙÙÙ‘”g ƒ\!YYYâóùÜ×Û…µ¶¶þãŒ3ü‰nw¬Ña¬]»öR¯×û/BˆÅá|ŸÏG~~~$ßï­çï)ðMÓ$///’ç‡Ù(¥|dÚ´iµ‰ls<ш‡*ý<Ç[¹r¥yÅW|Û0Œ•J©\!†aPXXéõûJy€nßËÊÊ";;Ã0PJþòšk®ùÏXÔ=™Ñˆ‡üø Ç[³fÍ—.¿üòÇ…W»\PPÀ%—\‚¢ß¹~×çÑã…ð{Çq~ä÷ûÿyÖ¬YXÔ=Ùш1ÌÞ®cˆxúé§'ضý¨”ò^7xsss¹üòËñz½‘éÊÎîø|>LÓŒžÝyMJùŸÿüç ýW9hăަ#ø§õXO>ùäMŽã¼ ŒRJ‘‘‘Á¤I“3fÌ gw¢{þ¨À? „xäæ›o~cÈ?ÀD F8p x ˜‹ã)¥£ÆOIII§@î-§ï®ìºEøØ(¥üÀ?µ´´üëœ9sÚcQ瑈@ 8pà@.Á# º¡à8Î/…ß$|£Jwóúý |¥mmm8ŽCÔ=¾¿VJ}÷Ö[o­zëG6úZ !R[[›«”ú­RêóJ)êêêhii‰ÌÅ–+VTœ8q‚óçÏèÚ€ÖÖVΟ?eY(¥ª?›={öݳgÏNûà-€!Q[[›¼ ÜpôèQ<˯ø{à$¹¿?"hkkãÔ©Søýç­”R­ŽãüMssó5·ÝvÛ[±¬àHG `ìß¿”Rj£Rêf¥T$øÝ`ª”••Bü @SSÇzA0äĉœ>}Û¶Ý:¼`ÆÔ;î¸ãGóæÍ ©B)ˆÀ Ø¿6°(¨¯¯uÏaùòåÿAx:õàÁƒØ¶ tã8466räÈÚÚÚ\áU)¥þäÎ;ï\0gΜcq©\  0@jjj²•Ro(¥nQJE‚¿ëÀ4F)¥¾ 8¡PˆÃ‡wêýÏž=KMMMd ¥T3ð×§Nºî®»îú¯XT •Ñ555YÀëÀ?~ùDk€û #øë¸S0V=¿K2:@EEE¡ã83 ø(ÍÍÍ!„ðºù;\Hg¢ïlënÛÔî½§ö¶´´à8†aà8N)ZÃO8øŸ?ʱcÇ’.HcÉÚµk§†Q*„(•R– !¦tíÙÝÞÞ4MLÓÄ0ŒN½¾»ÐcÀ÷Uv'2vg&ðãáú úCÊ àã?Àj` t¬•¯ž?šDˆkõêÕ󥔋Â_ÝS»m•R’™™‰ÏçÃëõFV„îÚËCï={×÷{+755¹{ 'Ý@8¥þràA¸ü©Øóÿò—¿¼Þ0Œ Ðye:ŸÏǨQ£ÈÊʺhç˜Þ¾?e—¾>ÛÔÔäÖi|]]]ÑW\‘4X¥¬>úè#üxÀï÷S__Ä·ç‡ÄŒ<Ï7 7n\d³‹®àŪgïï1Ü0€mÛ3¤@J^ þŸep!øS±çwY¶lYРÂ+I=Óìèߢߟò@>Û[9;;;²°/DÒ›Þºø‘’ ”zø@[[ @ü{þ¨ïOˆØ”Rï !înjjTªÒµÜ=}Ö4M¼^odŸ²¬¬¬ÈÆQ[.$Õ"])'€?üpð0tôr‚ÃÅp~W4J©-ÀÝÍÍͽd;£;säõzñù|ø|¾Èåî*ÔἿؼ'„ØT\\¼1~¿ÀÀI)ìØ±ãgÀ·¡#øOœ8‘¨ž8QéÖûîw·´´““3äžÝ-»Ó¥îþÃn»A‘Á÷i`‹RªRQéñx¶Ož<9i÷Hlß¾ýÇÀ#@€“';V IDoœ(Œ3fǹsçÚ_ss3999ÀÀgt¢§DN©L—t¥T¢R)U©”zoúôéÕqnfLI lß¾ýQà¯àBð§ò€·'æÍ›\½zõ`fSS&LèWð»×õX–Y|7:‰šV *¥¶K)+ÊP(´å‹_üâ©áoiìñضmÛ¿ßhoo§±±H\‰½Bñ¾RjfSSS××#õ ´µµÑÞÞN0ØqmZùû§J©-RÊJ!D¥ßïß–jÛ)u+€mÛ¶eÑ1¨'‰·ߎà?uêTZöüÑØ¶½Å0ŒïY–E @JIss3­­­øý~@$л øý@¥ã8ïy<žÊÛo¿½šŽHYº€RÊ<0Ìu4Á`0ü‰ìù£I¤¸ß¿{÷nlÛîèî…n@Ø¡”ª*ƒÁ`å¼yóFt:3zJ"=˲:M©u¥ëkƒùÌP‚6 rúôé´ïù]ÊÊÊŽ¯^½ú¢È]A:œþœQJmq¬­­­Û–,Y’›a÷FO‰¦¦¦&ÚÚÚ†¯Faú#$¸o'KÏIq9ô·„§”ª*…•‹/ÞGЧ3ƒ¡'pzx}Øè.€t/ß?–/_¾‘Ž-œ4}ЧD匚 Å:2èéb¸„;€F3ôä ``$Á@ÓOzrý×Ó¤}:€ í#íš´¦[˜9s¦SYYy®`àh¤ä-‘MéñjÐð8@ê1ÀÀÑc€‘Co ÿ‚š”§/0@Šv€‘ƒvMZÓ—Úƒv€‘vMZ£ è1ÀÈ¡OÐÁ¯Ie´Ä í#=Ф5Úâ@2õþ«W¯þ3!ÄM†a(À1MS !܇#„Pá×!„’Rªðk‘çá×.zî–ÃÈs¥Tä¹a‘2ù¬aJQU\\\“Èß§·…±ô]a#œòòò!Ä›pa;¤è•á¢VŒètÙ{ôªqÑúž:B÷3Ñ D»»… ÂÇl«©©¹|Ê”)§ãõôEoÐé¾`MÿIRF¯ïéîæ>Üu>»®4ŒïL¯×[$ŸÐ0â±m[¸Aþ¹Ï}ŽÌÌÌ‹v‹‰.÷ö^tÙ²¬‹Þ‹~\TŽvŸÏÇu×]çV3¡½«v€8‘,.0\tMƒz‘»1_2ÐÛ,v€Ž”R÷\}  $KïoÛ¶p{[ý7ìí)Œv€¾éÓôa'z‡uMr£ …IVH¦U;@œH†q@ô4¨¦{ôy€4¡©©‰ööönÏðvWŽ~Þ5¥s;D÷ä™{–7zWz÷ÿu=?`Û6gXÚÜô,PH–û¢S ÚÚÚNg|»+÷ö^?×ßc$ z „B¡ÀñD×£ÀáDV@;@Hxøá‡[V­ZUäñxÆ›¦) ÃRJ!¥–e )¥aÜ÷,Ë€BH!„PJ Çq„aR)y.¥”á×ÝCH@(¥„"ò—:Ȱ‰ðg$ LÓÜzÅWœHàOÔ÷ þšÁóï|§÷²ÉŒ¾ NèŽcd ïÓ¤5Úâ@²Œ4}£@“ÖhˆÚFÚ4iMŸl»°ô`ä @“Öè1@Ð0rРIkô NhhФ5z ô`ä @“Öè1@Ð0rРIk´Ä í#½*D ò‹_ü"ßëõ~YJÙèõzß_´hQS¢ë”¬ôyO°R Û¶‡¯F$ÙV€ÄLÓü!𠥡PÈyæ™gv !*¥”ï !*.\X—°Ê%}:@ àĉ„Þ·Ü+†aPXXˆiöÖ”´ã6ˆL_Kà!Ä5À7…lذ¡^QiF¥ã8•………ŸÌš5ËJd…Eo0œõ4–eÑØØÈ¸qã’J‰úýž|òÉqBˆ€Ë.» Ó4iii¡µµ5ÚÉ'ó•Ró ÃàÌ™3­¯¼òʦiV†âý9sæ¤EÚÔ[Äü-ðÓáªÈ ¹ø‘mÛòäÉ“I'‚D ”šé.gYXXˆ×ëeìØ±8ŽC{{;­­­´µµ…BH)³…³•R³Ã+½9o¾ùæ.)e¥û˜={vJ¦M=FËÝwß½c8+2HÞ|ñÅOOY–%Oœ8Á¥—^šð¥÷<˜ àñxðù|êâñxÈÍÍ%'''²ÕQ{{;Á`P(qˆð?××*¥VJñûßÿ¾^JY T†QiYVJ¤M#¾»œ;wîÚ_|QOÛ¶4"HBˆR€ÜÜÜN¯G Ò-K)ñù|x½ÞÈ:ž®ÜçQSàùBˆù>Ÿ¯õý÷ßÿ ,Š÷€ÿþ¾0âÒ¦/€¹sçþGEE…ÖX–%?΄ &‚D9ÀªU«|3¤”äääDê]¯îÊѯ¹;Iv·¿I1•RÙRÊÙÀìðºŸÎ‡~¸Ëu ŸÏWùÙÏ~6éÓ¦”À¼yóž ‹`­mÛ²¡¡!¡"HçÀ Dý üÞÊîTx(Šì7lš&^¯¯× tN›¤”[–EUUU}xP]©”ªœ:uêÇ@RÍ©'×ú™7oÞ³J©”RŽeYÔ×× …:í;HŒ H)#àQ£F 9ð»ûnšä÷û9sæ œ8q‚Ó§OÓÒÒX‡ÓîlÓϤ”ÛkkkÏÕÖÖ.‹U{cAJ `þüùë€ûÛ¶mêëë ƒ‰®Ö°àæÿ999½žLà÷ö~{{;MMM?~œÚÚZª««9|ø0´¶¶Fb”bñ€gRNóçÏ_¯”º_)e[–űcÇ†Õ ºn21ŒÌðù|‘ )ì±pŠP(Ĺsç8zô({öìaëÖ­XVÇ„‘”²zíŠ))€ <,&ìGMi'X»víh àôéÓlݺ•={öpìØ1Î; À¾‚=šX Æ0 <;¸®`ÓâJÊ `Á‚Ï+¥îsàÈ‘#ƒÁ”t€%K–œžB¡#ðü~?ÔÕÕQ]]Í8yò$MMM‘\Ýe°ÁÞŸcDÈ-iW¼IiÜsÏ=¿–mÛ9r„öööDW+.,_¾ü~Ã0ò¤” üoàuàŒû~(¢¹¹™O?ý”ãÇsâÄ Îž=‹ßïDz¬¸¥E¹¹¹îä@cIIIíÐ[;Rf´7î¹çž Ï?ÿ¼Ö[–eÖÕÕ1iÒ$|>_ܾ3Qg‚—,Yþ~ˆ 6LUJÝ”†“ݹþ`0ˆeY‘ý»LÓŒ  c5såIÕûCšàÞ{ï}!,‚çlÛ6>w$ jÁ‚{½Àj€—_~y¬Rª4Ý‘ò'ÂúÃ}÷Ý÷ªRjžR*hYµµµ´µµ¨3ÁÉÈÕW_}rÊ”)¯$kðƒ@„Å‹¿ Ì‚–e±ÿ~ü~¢«¥‰3ZQ,^¼ø5¥ÔÝ®ÔÔÔ Ê ùÏh:ÐèÂý÷ßÿ:ðu Ý¶mª««µ¤0ZÝpÿý÷ÿF)õu¥T»eYìÛ·¿ß¯Ç)ˆ@<ðÀowv‚}ûöu½»I“hôÂ<°Q)õ5¥TÀ²,öîÝKkkkB ¼¼ük«W¯~åé§Ÿ^èe»‡ˆ@,Y²äMàk@À¶möîÝKKKKBêR^^>xFñU¥Ôš5kÖT>óÌ3×'¤2)‚@?X²dÉo•R_u ªªŠ–––aŸRJý«"p¿ëf¥ÔögŸ}öçÏ=÷\~L¿,MÐè'K—.} ¸h³m›ªª*𛛇íûËËËoB,‚ŽEo‹‹‹ÝE¬¤â›J©šçŸþ!tZ4 ´ÀÒ¥KßVJÝ©”j³,‹={ötë±TTTÀã\~ùåŒ?žk¯½–‚‚„—!Voذრ6Ü“/N´ȃ>ø;à+„`÷îÝqw‚³gÏ~¸Véù•R˜¦É¤I“:]»$„¸Ñ0Œÿ~饗Ê_ýõKâZ±@ `<øàƒï(¥¾¬”ò[–Å®]»hnnŽ‹”——_ü ??Ÿ±cÇv:¶RЬ¬,Š‹‹7n†aH!Är˲ª_}õÕo®\¹Rÿ{@ÿ0ƒdÙ²eÿ|ðÛ¶Í®]»hjŠýâÈJ©ùRJ®¼òÊ‹‚?ºœ——Çe—]FNNŽ+Æ1ÀÏg̘±íõ×_¿9æ•K´†À²eË~¯”ºÃu‚;wFD xâ‰'nB,˜8q"YYY=¿[–R’ŸŸÏ%—\‚iš®¦K)+ß|óÍ5o½õÖØ!U*ÅÐ"=ôÐ&àÏVÛ¶Ù¹sg¬ÖBˆÇéõz)**ê3ø£Ë‡üü|²³³]!Ä úw¿ûÝwÂë´G <ôÐC›ÃNÐjYÁ`pÈðÄO|øÀøñãÝܾ_Á=ñz½dggGÖõBŒBü[AAÁ‡›7oþâ +˜"hĈåË—o&ì1:ddcƒ£G²wïÞNKô'øÝçÐánJ :v|wóæÍÏnÚ´éÒÕyÄ¡C–/_þ®RjŽRªe¨°bÅŠ_‹„Ç¡cÁÛ?þ˜†††N‹Sõ$„îÞ‹~ÝEJyŸÇã©Þ²eËw7mÚ”v÷ˆkƲ²²?sˆ”••=gÆURÊÇ„!Çq¨¯¯gïÞ½477È¢ËîÂVî’ˆ@®â±ÌÌÌ?øàƒ[‡Zï‘„¾)>N”—— ¸³¬¬ì{±8Þš5k¦†±J1Û]'//ÂÂÂÈÒ…J]ØÓ«»=¾º+K)ÉÊÊÂçóE–01 ãW†aüõµ×^[‹º'3Zq¤¼¼|TYYYL/]·nÝ|!ÄcRÊÏ„ƒ•üü|rssûð=•322ÈÍÍÅãñ¸BhBüÀ¶íŸÌ˜1#ÔwÍF&Z#gŸ}6Û4Í¿“R~×]Íëõ’——‡ÇãpðG)òòòÈËËÃ0 Wû„\}õÕo'¸ÙqA `³aÆ)RÊURÊÛÝå }>YYY þè²ÇãaܸqdggG¯ýðÝiÓ¦Id›c@ ðòË/ø±”òŠh!˜¦9àà.çææ2qâD¼^¯ë~Ã0þxlòäÉ)±Ëˆ@ŠPQQ‘éóù¾/¥üŸBŸ»Š³{åè`ÉBÆÏ„ "›hK)k…ß***z+Ñí*Z)ÆÆKTǾ¼w¸³Emzìóù())¡  ÀM‰lÛ¶¯šÑí‰:J#JKK7ž?þsRÊ¿Bø…î"ëéz"ÇCqq±{ÝÐæT ~жlÛ¶í2à'RÊ»ÝAr[[ øýþN.på•W2qâD„¶Rêúâââ]‰®¬ÐHs¶oßþ§†a¬’RNuoê?}ú4õõõ„B!²³³™>}º;ºª¨¨è‘D×9–hhرc‡Ç0Œ¿2 ãÿH)G !°m›ºº:&L˜@^^RÊSBˆ)“&M:—èúÆ-M„O>ùd¢išJ)ïéºõ©â¡¢¢¢§]ÇX£ ¹ˆ}ûöÍ’R>.„ø£°¶Ý¤\°èY ÍEL:uSCCÃuRÊG„kmÛ^H ?hФ9ÚLܶÐ*IDAT4i€&­ÑФ5Zš´F @“ÖhhÒ-MZ£ Ikþ?RœœÞŠ×IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-dark/0000775000175000017500000000000011571653265020453 5ustar julienjulienpommed-1.39~dfsg/gpomme/themes/elegant-dark/background.png0000664000175000017500000000274511571653265023310 0ustar julienjulien‰PNG  IHDR\r¨fsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<bIDATxœíÜ1oY…ásA¢ Dƒ´ÿÿÇ Ñ  ¨H‰@ ²î3dɆ@ˆ{7çy™q¾æ¾žÏxÌ9scŒGIŽ’áá¿l›äC’÷sÎíï6þmÆO“¼NòàVÆvá[’·sÎO¿Úè—c¼Jòò–vçxÎùîª?þ4ë!ÿ_YÎõÿ·“$o~vJ°¹b‹î£,kú’KXû-~¸_ŽÖµ}Á…¬üœóÃýôr]ãçΰž÷¿ÞùHÀ.½^×z’‹G/â«>¸ïdYëIÖ¬wø=ß×DÀN=_×üùÀ³¸ÃZdYóçpÕº%Éf}ªÏƒ=ÐåñãÑ&>ý¡ÕÑ&Ëóü@Ÿ'›,?âô9Üdù% ÏCGÐëpßÿC«ƒ« (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€bÅŠ (&PL ˜@1€b›$Û}ìÅv“ätßS{qºIr¶ï)€½8s½N7I>ï{ `/>o’œì{ `/N6sίI¾ì{`§¾Ì9¿~¿ÀQt9Iþ¹ècÜ-¶YÖü€9çi’ûœØ™ëš¿p+ðû$ßö3°#ß²¬õ$?`ιMòv;óv]ëIþõ0МóS’ãìÂñºÆÏ]zpÎù.¾€ûæd]Û\õ8ð›ˆÜ'YÖô%cÎyå^cŒWI^ÞÑPÀÝ;þÙ'ÿw¿ @’Œ1ž&yäÁ-ÜoY.ø}úÕF¿ @’Œ1’¼Hò<ÉÁ­ŒÜ…m–{zÞÿxµÿ*× ÀùÆc&y–ä(Éã›Nܺ/YÎõ?~¿Éç:þ(vãQ–ªªâ«¯¾J8<òÈ#…²,ïVUõ‡ÌŒ#GŽ ¦¦ûöíÓŠà@`ôiÓzÛ£»ÂÎÿ®Öù<"‘#GÐÐÐ 2ýsY–·?úè£YzÛdQÇÀwÈËËK(LŸ>}ßïß­ªêÙpìØ1Ô××õ~íß¿ÿ$dffê.]àv»Óìvûf¾²³ó‹tìØ1466ŠL_ÔÑѱ½¢¢"¡D (JÔ1€6^·n]ÂÄÓ§O¤(Ênf>‹™QSSƒÆÆFÑI=cû÷ï\UU—™™¹QOè&·ÛæóùÞpUwÎ/Rmm-ššš„.t8ïOŸ>=[/ÛŒ&–^ ðñŸ5ÀÔ©S‹@53ŸĘ́¯¯GssóI> ÄûöíCCC@UÕë333ßÖKºÀív§ùýþ-ˆÂùEjhh@KK‹PþÏü~ÿŽûî»/GûŒ¦¯Hþð‡? V¥š™ÀÌhllĉ'zƒ:‰àºŒŒŒ¿ëaŸ.ðù|÷1s)3£®®®Wç©©© ­­­¢&¸€™B}è÷Wÿ{î¹gˆªªÕÌ<Š™ÑÜÜ Ç•/¡AQ3—ºÝîÓ€™ˆ®¼´´4Øíö¨2MDhiiÇã"ø‰¢(;ï¾ûîzØi}è×UÀäÉ“‡Q5€‘ÌŒ'N ½½=j?p:9r$ˆ‹A¥³tÀSO=õ&3W23œN'FŒ“<vœà|"ÚyçwÔÃV#èc¨ßÖÃ$Iªfæb=T¯×“ó>²,‹U³ÿä“O¾¤‡­ºÁ .|À#Ì ‡Ã’’’˜DÐÞÞ¯×+b‚˲ÜoEL¸óÎ;‡ùýþjfÎÌèèè€ßïºÜŠ‹‹#ίªê½‹-Z¡—½ºvƒ.Z´èf~˜™‘’’‚¡C‡Âf³E}2¼^/|>Ÿ¨ Î#¢]·Ýv[®ž6ëA²àöÛo/&¢=Î`fø|>˜œÈ!$I8ÿ=‹/~YO›u[¼xñ³Ìü 3Ãn·cðàÁQ‹@’$ƒAƒA!‚sívû®É“'çém÷éDQIôhF#€p^ûU 0iÒ¤Y–÷0s 3#@Q”¨?%%………ÂùUw-Y²ä¯zÛmÈTˆ%K–<§ªêÌ ›Í†‚‚‚^E zD4½"¢9tŽßïß5qâÄ|#l?ôq*D¿©&NœxF ØÃÌÅá2Š*¯ZçÏÏÏ8?3O^²dÉ+FØnØd¸¥K—.eæû…rss!Ër¯Î¯u ruüQ0ì7"`fÒ,x›PM Ûo¿}x0ÜÃÌôãvÑ:¿ÝnÇ€@DµzÔ[ºté*£ì7t:ô /¼ð‚ªªS™²,cÀ€§ˆ +ç×~¾J€™GûýþÝ·Ýv[‘yè ±L…WÐþ €[o½uDxk¨(Ӟʯs²ÙlÈÎÎί0óÄeË–½nd ¿!fùòå˘ùÌÌ’$!333"‚hNžÍfƒÍf"øa0Ü]^^^ht>bA4€˜j€¸ŽÊËËG†¹†Šø®»½»rÌÈÝÂÌ €‰Ë—/ÿ›Ñù0m“¼ŠŠŠ?XÎ̤( :::BEyý~¤›”™¿`æ²·Þzë˜)™é…Ë.»l€›RSSQPª°´Í:íëææf466À‰>ú(.'ÞrË-£ì&¢ÁD„´´4íE©×Dêë_ðw¬X±bµy1u—ÈŠŠŠ UU_WÈ@ 2*Jx½^í€Ù—DT"¸ôÒKW3óobüZÃ'Ÿ|w]¾7ß|órþ""BFFìv{ÔÎv»]8P’¤ÛW¬X±Ö¬ü˜¾Mê]wÝu/3ÿYŠªªF-¢Ð€™fêÄWÌ\ºiÓ¦£¦fª]tÑåDô"€¨îfæ €åŸþy¬[«êÊ„ Î$¢ÝD4ˆˆ••‡Ãµó‹8!\vA¿]¹råz3ódº`òäÉw«ªº‚ÃIÄ""B[[[d&)3ÍÌ¥›7o>bv¾‰o¼ñ,»„ó0N§3&ç×”mÀ­¯¾úê[fçËð ¸+V®\ù²ªª÷„¦}pd`´ÈÈÈ@VV–8É£˜¹zܸqCLÎVÂ0~üø³UUÝÍ̃˜DZZZÔ劢ˆò 0sy<8?'€×^{í¯Ì|Wx $æx ++ 999â$P=vìØ¡ææªÿ3nܸ†¿òóó‘žžu¹03ü~Äù‰è׫V­Úhv¾q#xýõ×_09< ‚ŽŽŽ˜Fsrr››+NöI’ªÇŒ3Ìì|õW®»îºÑaç/€ÂÂB¸\®¨ËCUUmOŸˆnYµjÕ&³ó¥%.b€ÎÜzë­¼ÂÌÁårÅ4‰®±±Ç'~Ÿ¢(¥;wî<`v¾úcÇŽý3ï"¢ÔÖÖFœŸ™'¬_¿~›Ùùè¸ ‚»âÆo,ð7f¶I’„!C†ÀápôêüÌ|uuõ fÛß_)++{œˆ…æüŒ9RÜ®Iííí8zô¨è±ë$鯷ß~{‡Ù¶GC¿Œ?þ×þÎÌ6Y–1lØ08ΞœZuuõ¿›mw§´´t¦$IU]‰ÀãñàðáÃç'¢6oÞ¼Ól›£¥_ ~ñ‹_üŠ™W œqÆHKK;ÅùLݽ{÷2³íM®¾úê'Ì׊ ££Îß.IÒø-[¶ì6ÛÖXèw€ë¯¿þæ°ì²,£¸¸жùÿ¸gÏžåfÛ™h”••Í"¢yD¡éÌâ^m"j#¢ñ[·n­6ÛÆXé—€k¯½ö&kTUµw„™R]]ý'³íKTÊÊÊf‘[{µѸmÛ¶}`¶m}¡ß ÆŒ3AUÕuÌlO¤û£åüúSZZ:G’¤¹Dä0nÇŽšmS_é×€²²²±Ì–úˆÛí&·¨P,ÞWU ¨­­E]]]äζ¾"IrrrŸŸ¼¼<8'íÔ`)€…sæÌiù^”¤XèsæÌàihš9ÍÍÍ8xð uÝÞ(##ƒ BQQ‘vs¹ ,w»Ýþî¿mÑK10{öì‘þ`ŒxÏãñœ´Ÿ•Q¤¦¦¢¤¤$²ÐV˜}¦Ï›7/®n;Œg,DɬY³Æ Ôîί׋ýû÷£¶¶ÖT»\.Î8ã ä䜴•Z€ÙóçÏ· ·,DÁO<1 À²ªªØ¿?Ž;†x:wÙÙÙ9r$œN§xk#€ßUUUµ™hVÜc  fΜi°À=à÷ûñå—_¢µµÕ\úÁf³áÌ3ÏDVVdIѸqÁ‚Ö‚Ý`  üñ\o¸ÚÚÚðå—_žÒ}oŠ‹‹QXY0»ÀÍO>ùäG&š·Xè‚Ç{Ìàç@CCöíÛׯ6¯ÎËËCII ˆ¼®zê©§>7Ù¬¸Ã@'}ôQB¨ý<Ž9‚cÇânÁé¨p¹\5j”e>àg .´Î4ÄýMñFÃÌUÌ<™QSSƒãÇG½$H¼¥¶¶6|ûí·âFõBf~§²²2ÍìsOX5€†Gyä·þ­­­Ø»wo\õôô•ÜÜ\ Y+ø-¿~úé§ûÆN§L2IVf̘ñ3+ÀçóáÀPÇI¸ ݯihh@jj* ¿0À,s­Š¬ÀÃ?œàÿ¬( öîÝ ŸÏg¶Y§"BII ÒÓÓÅ[¿X¼xñ{fÚX1f~„™33> ¿ßozûýt'8tèv©òÅ=ôP¯s°¤oMŸ>}€P»¿½½];É,¡`fÔÖÖbРAp6€I^6×*sIÌ’Žfv3sš˜Ælö•Zïäñx"û.0óÜx Õì20“¤Àý÷ß63Offœ8q"ª…w!i ÌÌ÷›]f’Ô`様YVÍÍͦ;¦QÉçói·—­œ6mZ¬÷+' IL:õB„G{µp$ MMMbæh6€‡û¬&V»˜ùZ@ é„ÎCxõ¹«Ñ”––ÚZ[[ÓN§j·Û9%%…·¶¶ª©©©ìr¹xïÞ½<|øpuôèÑÏU"zmÖ¬YÝÆ6½ÕwA³ì_¼ÁÌãZ-–ïHº¯ž»ë ´\{LH’t%€‚^ì 'Ðef*Í\±bEÕ½÷ÞÛ啽 @pÒ6˜Qüa—¯Å£,Ëeù”÷c Ü<ˆúúz໓5ªªF¨³>cEÔ®Nž<Ù±råÊXn† T~çœsÎIÛ§j“øŸÎ¯»{TÁ`°÷?×ø›Ö—\.òóó@>vì˜ vˆvZGG<Ø]5muwÊgÑþ^çckjbnúkóT~´j š‹Û ûcý>!//ï{7wO×q………B=Ò£ˆ(^b•Ó†%€®Ñ”sú €þJT5@¢pçwÚäŠ×–¾£“’†¤`æ|hâKß¡@_Ú~IR5˜9Òï)j‹šUï’ªo¸·nÄñ~¯¿þú fn¢6{B<%MÍQ“‹ÉP’ª Ì|À« $ÐvMè×ûþÆJoH¨€¸ÂýÀêúÑ­ƪ40dffâÜs¿!ïi€£«÷Ä @ ËÏ;÷ïv÷üû,Q.ªxk$ødÂåÖþæ›oöi³=UUñÙgŸ2n£}ìü¼«×@¨f¶Ùl]6ÕÄç==wºõJoAp Øív 0 Ïƒâuçô}ýMfŽy"K§¢¹pÅ|õgæ#â<Š5•bí|\4ÇFsL?€n‡”{XÌÌiD”€‰ˆ¨áG‘Tñœˆ˜ˆTUUOú\ÏÌLDªæ9PÃ]M‘cÅkfVÅï†Q5¿ë±Ùl«úP`GÖÂhš@1  ¸¸xáC‡*1³„ðü ÜÈkñ3‹ù?’x&r¬ø\{¼ö·µŸw÷Yø7™ˆ^3gN·HºµAËËË/ð1Z?¿‹M¨“Ž––!€Ö®]›Të%]é3ógjøý~Øív³M2•@  xÛL[Ì é°nÝ:õ–[nÙ àn¿ßŒŒ ³M2Ñ!ÐfÛ˜lŽá$@UÕMîVUÁ`0©k¯×+j€-6lP̶Çh’R̼@€t¯×+î†J:€vÎýF3m1‹¤¼#dãÆ^fÞÎÌèèè0}‚YÉëõŠ.ÐvfÞnv¹˜ARÖÀÌÜàõz‘šš\«„33<hÿÿcÓ¦MfÛdÉ,€5ÜÎhnnŽzä0QhiiÑ6™i‹™$Ý8€–n¸!²+d~~>\.—Ƀ¢(8tè~×oÞ¼ù×fÛdI[3¯ð€ àr¹’bt¸©© Š¢¡)3M6ÇT’2lÙ²…™¹’™ÐÒÒbz`ªwù ¿/oÙ²å+³ËÁL’Zðî»ïîdæ03"“ä5ÕÕÕ‰¹?mÌì6ûü›MR7Ì\ àÚ`0(>|ÅÅÅ Ùª¯¯×®†÷ÜÖ­[›iO<ô5lݺõŸÌ<›™ÑÖÖ†cÇŽ™~¥>ÝÉãñ ¦¦F4}þƒ™cZQ/QIê^ ÎŒ;öM·@QQrss{ùFÿÀëõâ›o¾½>GülÛ¶mÇL6+.°š@˜y2€‘~zôèQ8Î~?Y. bß¾}¢×§À„íÛ·[Îƪ:1f̘ÁþÀ Y–qæ™gŠÝûªªâÛo¿í~ð›÷ßÉfÅ–ºàꫯ¾ÀNY–1bÄdgg›mVLøý~|ýõ×hkkoÍݹsgÒ÷útÆ@7”••M@h”8 Š‹‹1hÐ sŠ’ÖÖV|õÕW" "/0u×®]VawÂ@”––þÀ;@^^FŒ×˪×ÖÖbïÞ½"à x`÷îÝËM6+n±Ð W]uÕ „n¼222pöÙgÇÝ=ÌŒýû÷ãȑȺVMÊ«««w˜hVÜc ®¼òJ'€•~ „6ùR»þ¶EwXøž\zé¥×Xà¤íEeY>I ‡#¦ß ƒhiiAmm-êêêàõz;Ò„PM´ìã?>åC‹è°p¸ä’K$¥í´>ÀÐÎÇÇ)I’$ø|¾SRxêBgÚlCh‡w>ùä“:f+)° _|ñ‰á—~ô=®Àf„ºb·úé§ÖÕþ4b @g~þóŸ0¡ÍçD¬yîp ¡…iµé€þó³Ï>Kº«ŒÂ€ER¿cú1pÍ5×ü€ñ. Ýé×5@yy¹\__¿ ÀíÌü¿|>ߨO>ù¤Ñl»+®¸âBY–×ÑWÌ|ëîÝ»ëͶ©¯ô[”——ËMMM¯3óo5;Ïü—Ïç»Æ~„;e…o·ü'€²;v4ôúå8¤_6ÊËËå–––¿Ño‰N§SÜûz¾ÃáØqÉ%— 0ÛÆD䪫®ú™p~ÍvFçJ’´óšk®h¶}}¡ß  ´´ÔÖÚÚúw"ú !++ £GÆàÁƒ-èHiiéO‰(âü£FBQQ‘8ççÙl¶×]w]¿;çýJ¥¥¥¶ôôô7‰¨œˆ™™‰’’À Aƒ,èDiiéO¼ODÙÂù333QXXˆ‚‚qÎ,IÒûãÇÏ1ÛÞXè7(--µ¹\®Õn!"ddd`èÐЀ«ˆ,œ~ÊÊÊ.@Î/ÎyAAòòòÄ9ÿ €÷oºé¦~sÿh¿@EE…=33s-ýŠˆàr¹PTTàÔ=Š-œ>ÊÊÊ.`æn_$1ß)|Î/PUµßˆ îPQQa¯­­]KD7ÒÓÓQPPàTç·Dpú¸âŠ+~vþœžœ_¤"''GìáûSÛÊË˳ÌÎGoĵÊËËSêëë×Ñ/‰iii‘Ūº+­4AÚù‡#i×À•ÒÒR§,ËÛ¢u~‘²³³‘™™)Îù…Š¢l»ãŽ;2ÍÎOOÄ­ÊËËS¬'¢‰©©©ÈÉ ÅW½3CQ´··G–”$éKssÔ°ÙlùD”CDHIIÓéìõ|‹Í¶333#ËÌÑE~¿Û„ âvu±¸+//O‘$é-fḬ̈ÛíÚ+K¯ öïßÖÖVQ@ݹsç=lRfÏ?ÿül‡Ãq'EÕCÂÌ 3¿óùçŸÿ½m뎲²²É’$½LDäp80räHØl¶_›<¼^¯(O|>ßu›6mjíí&î0nÜ8GvvöfÇ̰ÙlHKKƒfà¥Wç?tèPdÿ+f~ùý÷ß¿×,瀋/¾øßü1Ư}ñé§Ÿž­‡=Ñríµ×Þ `…AIIÉ)"èÊùEjoo‡ßïeó±¢(×­]»ÖÓëH\5¦M›æ0`ÀF"GD°Ùl‘ê·§­-ŒÃ‡Gš>’$­0Ûù€ˆò%I‚ÍfCzz:ÒÒÒ")55õ¤”’’I’ IR‰™6ÀöíÛ_–$©‚ˆ8àÀ‘µ£)§Ó‰””!€Km6Û{'NL7;_Z⦘4i’SQ”Ì|3ƒˆ`·ÛO¹ÂwW@MM ÚÛÛEüyëÖ­÷™íüpùå—¯ðëâ¼óÎëñØC‡á믿€ö?ü0.œåú믯 ¢‰ˆRRR"«`D‹13ü~¿v㑈hÜk¯½ÖÖû?ëO\Ô“&Mr2ó&"ºN8¹,ËQ·7UUEmmm¤ÍID/Æ‹ó€DUU{LÌ,j€¸°¶nÝúSˆˆƒÁ Ž?Ž`0µl6dYes€-q±-§é(//O%¢wˆèZí”þhzÄóúúzø|>QC,ß²eKÜ8?E+q'xï½÷^”$é’$AQÔ××CQ”¨EЩ¿*Ä…LÀƒ>˜š••õ!¢¨Ûúâ8UUÑÔÔ„@ Nì²M›6ÅlêŽ,Ë}©ân‰“wÞyçO¦EAcccL"Њ¢{Øî÷IDAT@i0|§¼¼ÜÔÊM@EEEšÇãÙàqBµV4hmmE0W–6nÜ8Õ¬üô„$Iý¾lÚ´iÝ/òrâĉ˜D (Š6¸:++ëI“&™¶ƒ)¨¨¨H#¢-DTFDƒðù|19GGEÎòü† î7#/ÑK >>n6lxˆùikk‹ºæA±æÂuMJJÊ&³D`¸f̘‘.Ëò»DTJDðûýÚž›¾ô*<·nݺéFç#dYŽºˆÇ ¸+Ö¯_¿T’¤EÓÕëõÆ$¯×iºѵN§óíiӦŶzØiÀP̘1#Ýëõ¾KDW¼^¯vÀ*ª$zÂíÈg׬Yó ‘yè } ‚‰(îb€Î¬Y³æ9 ÄÒ„eíÈ):/ˆh¬¢(a˜2eŠËçómp%¡££'Nœˆ9€ ÞgV¯^ý°Qö$I’DH ù‹ë@°fÍšgÌ=x±Å­­­ðz½Bô×3ó·ÛmØæ †`Ê”).»Ý¾•ˆ.'"´µµ¡©©)¦ÕilÑo¼ñˆ¶Ÿb©úKHË›o¾¹˜ˆ*µ]±”mSSÚÛÛE¾Ç555½e”t@eee†Ãáø]FDhmmECCCLW|»Ý®ÀÂ×_ýQ½í>ˆ @BÁ]ñÆo<-IÒcB6[hÞÞÊWä¹¾¾mmm¢ŒÇ·´´¬¯¨¨°ëm·®¨¬¬ÌPUõDt)¡¥¥uuu19¿ÓéÔŽ">¹jÕªÇô´YúØ ÷1@gV­Zµˆ£ùb©Þœ_Ô|555ðx<¢¬op¹\ëônp»Ý™¶Ñ%’$¡©© 55519zzzÄùT½òÊ+3õ²WO­´'^}õÕ§ˆè "‚,ËHM sõæü"=z­­­"š••µFOè"€ÊÊÊ ¯×»ˆ~ND¨¯¯ÇÑ£G£v~ ¯ø`³Ùĉ˜·råÊYzØj‰4 +W®\ IÒlÑr¹\Ыó‹tøða´´´ˆšà¦œœœÕn·Û¦‡­ºÀf³ý]DDhhhÀáÇ#Æù³³³µ3AÝ+V¬˜£‡F‘ 1@g^zé¥ùæRxVovvvätïüÂO<ˆææfá7û|¾çõ°S¯&Ðÿ‘"œÙápœ”¹žœ?7772‡Àœ¿üå/su²Ñ0’%èÌK/½ä–$É-D0`ÀH’Õ…PUU­@DÃõ°Q,X°`7€‰D¤¤¤¤à¬³ÎêU’$¡   âü’$ÍúóŸÿ\øÂqfÖeÀS· xÁ‚'¢ßE#I’PTT‡Ã!2ù…¶éÚ ZUUõ&€;z,Ë:thÄù‰èñ^xáI=í2"’ÄHi4½_áó0€åË—?ADO…Vø2dH—"0ÒùÂ,X°šˆnïJ²,£¤¤$²º3€G—.]ú”Þ6M,“á€Ä‰:³téÒÇ,$ ­ñT\\|’Œv~À ©UUUkÂ" ¸\.Œ5 ©©©b?ÝGžþù„\¼*4"¶@–優Ï?ÿücDô4Qh•?ÑÎ7Ãù'ÃUUU­p’RSSE›ÿá%K–Ž'\HË3Ï<3ƒˆ–ˆæÎ˜pCLUUÕ:"º™ˆ>P±páÂ%FÛ`4±Ôá㪨;-Zô='º:v~ ŽÖJd¦L™òŸ~ÒÖÖ†–––ÍÊÊBzz:|±|ùrSW†3ŠÙ³g–eùØœ9s ßÛM—ù'#"`íT€^Ž€¤¹2Í›7ïÿšõß– @’¤È‚G½ @ÁÌœÐ1@¼` À"} è]áã$ªÌÄ€ô¥€%C°`D©¢étŠ[0KÐÇÀŠ À€X1@üb À¬ ~±`¢ÐÞÛ–ŒÅ€X1@üb ÀdY–˜YYY6lØ)=AÚ×.—˪ Ä€ˆˆFûµ ž6Y„°`D´”ˆæ° p‚æyç×mÌü’á†&!ÖlP‹¤ÆôMò,,ÌÄ€ERc À"©±`‘ÔX°Hj,X$5ÿj¾8™#çî¹IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-dark/cdrom.png0000664000175000017500000001124411571653265022267 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î<!IDATxœíÝitTÕšÆñÿ©J(2bH ! b DìÕê½W Q ˆLAE£¨(Š€\¨¢^çårÆFQô:²@Q¼ÎÒÝ6¨ J»"$$$(* UµûÃÉa•Lf¨ªSUûý­•§ U/a?ÙgxÏ>†R !tå°»!ì$Z“­I„Ö$Bk¡5 €Ðš@hM ´&Z“­I„Ö$Bk¡5 €Ðš@hM ´&Z“­I„Ö$Bk¡5 €Ðš@hM ´&Z“­I„Ö$Bk¡5 €ÐšÀF .l»páÂt»ëЙÀ& ,ø‹Rê7¥Ô® Œ´»]ò„˜ð›?~wàK ]ÃKõÀàY³f­³¯*=IÂlÞ¼y¯ÎJ)|>qqqKfÏžý?¶¨Ù £yóæµÖ6oÞÌwß}‡ÏçHÖÌ›7¯‡%jG&sçÎMVJ­VJuWJ±uëVvíÚEuu5ßÿ=~¿¥TºRjíܹs³í®W€0˜3gŽK)µ\)õ¥Û¶m£¤¤Ã00 ƒ½{÷²iÓ&+YJ©µsæÌiowÝ:„XQQ‘C)µT)Õ_)EYYÅÅÅG¿õµg϶nÝŠR ¥ÔYJ©5EEE)v×ë$¡÷0 ¢¢‚­[·žð/–••±mÛ6kó<`EQQ‘+äjLB³gÏ~P)U¨”bß¾}lÙ²à˜ßþ_Û·ogÇŽÖL§”Z6{öl§Íÿ”˜%‘Y³fÝ£”𡔢¦¦†Ÿ~ú ¥ÔI¿õU\\Lyy¹‚aJ©ìþ÷Ä*¹3gμX ‡ü‘Ç7é= àG´mÛÖzéÑ L r©Ú“ ÈfΜ9x0êêêØ¼ys“?€RŠ_~ù…šš륩3gμ7ˆ¥ dªûï¿ÿbàC µ×ëeÓ¦Mx<ž½§Óéäì³Ï&))Éz©páÂ…/µ°TÑ@$÷Ýwߟ©>ŸŸþ™ƒå½ãããÉÉÉ¡uëÖ>`ô<ð^PÞ\s€ øûßÿÞ ³¿çTë*oÀ®KP¸\.zöìI||<@ÿàƒJó\ IZhÆŒ0W€ââbªªªBòY tïÞ§Ó Ís=ô4ϵ€·ÀŒ3Ò0›Ûº”””„lðx<~ýõWü~?˜Ís«g̘Ñ=d¨™šéÞ{ïM>.صk»wïËg§¦¦rÆg`À wÑ¢E;Âòá1FÐ Ó§OVÁlq(++ k iiitéÒÅÚÜ ô~øá‡+ÃZD 4Ñ´iÓÀR` @UU;vØóË7==ÌÌLkó;à’Gyä€-ÅD)9hº§hü555ìܹӶBöîÝKyy¹µy>°|Ú´iÒ<×24ÁÔ©Sç³Ün7Û·o'~~;v$=ýÈâï>ú¨ÏÆ’¢FœÝD‹{î¹çmm-¥¥¥Ö¨­vïÞÓé¤M›6À öVdh„)S¦\¼õõõ”””X÷ñF Ã0ÈÌÌ$99Ùzé‘Ç{lº5E9øS¦L¼ ^¯—;vDÜà³y®¬¬,°÷hÚ”)S$Bf€“¸ûî»/>}>;w®Îî²NÊápйsg\®#ÇÂ7=þøã/ÛYS$“œÀ]wÝÕ øH³~»ÖÖÖÚ]V£8N²²²¬¾!0ú‰'žæ¹ãÇäÉ“OÃìï騔¢¼¼œC‡Ù]V“ÄÅÅ‘™™iõ ÕƒŸ|òÉOm.+âÈ1ÀQ&OžÜs·§#˜Wy£mðx½^~ÿýw«oÈ,Ÿª««­óåZIMM¥U«VÖæÃÏ=÷œv oiw 0qâÄK1;;~¿Ÿšš-?˜3AÀªuÓ'Nœ¨ÝÒ‹ZÍ·ÜrË_u@²µhm$vv†“a¤¦¦Z-žþùWì¬)œ´ ÀÍ7ßÜóÉŒéJ)Ün7^¯×î²"‚Ãá 99‡Ãfó\Á /¼ð¾Íe……(,,ÌÆlnËóœ¸ þ?r8$%%Y'ê€A/¾øâ¿l.+äbþ °°°=æâUY`..%ƒÿX~¿·Ûmv+ c¾y.¦g€›nº)øæã†¨««kÖRå:q:$$$X›•@ï—^zéÄÏuŠr1€ &¸€5@˜ºdð7ŽÓé ¼£lûòË/Çdó\L`üøñNàŸ˜+$àóùdð7‘Óé´î(ƒ†æ¹W^y%æšçbõàydð·ÈQ?·îÀêñãÇ'Ÿä[¢RÌÍ7Þxã"`:˜vrÀÛ2N§3ðÁ: ñâÅ‘½2@ÄTn¸á†©À#`.¢ûE®`q8Ö5hhž{õÕWcâ‡3Íp×_ý4 ~0ûëÐØJ©ÀŸç̇Ú[UpÄÄ 0nܸaÀ;€øø|>«mÂŒzýõ×—Û\R³DeÆŽ›‰ÙÜÖÌUÐä·x)¥ðz½Vê€AK—.ºæ¹¨ ÀرcÛbþæï 2øí¤” ¼XvÈ[ºtéÿÚXR“EU®¹æš$Ì‹1sðÇÅÅ̙ܨä÷û©¯¯·6+€>o¼ñFÔ4ÏEM®¾úêVÀÀeñññ½*ÂF>Ÿ/pÙøR ÷Í7ß´ïáiM3fŒx¸ ÌÁЭ("€×ë \>þg Ï²eËöÚXR£DËÎó34 þ¸¸8üè¨ÿ—Àš1cÆD|ó\ÄÏW]uÕ<`˜?ä€Dª«« ÜZ ~ë­·êOò-¶ŠèŒ=úNàI0Ïó'''˹þ(àñxCð.0úí·ßŽÈµg"öJAAÁµÀ`þ””üQ"111ðìÐHÌæ¹›í­êø"ò    X ‡CJNN`Ô{ï½Ís€áÇg`þÓÒÒÒצ1ÀçóQYYi… øþûïfoUp<|øðS0Nw:@›6mdðÇ §ÓIÛ¶m­ÆE°røðáçÚ\–½3À°aÃ0—-ì æzõ©©©¶Õ#B¯¾¾žŠŠ «ºè½|ùòÿ³«Ûpå•WÆË|€””ÒÒÒl©E„—Ç㡲²Ò A)»bÅ [šçl ÀСC ` p-˜çŒÛµkö:„}Ün7ÖæÏ@Ÿ•+W†½yήc€Çiü‰‰‰¤§§ÛT†°KRRRàÿ{`õСCÃÞ<öàŠ+®˜ Ìó æ;v”«¼«ªª:ò€Bà ÿƒ>[ó\X0dÈ[g\.™™™r;£ ¢¢‚êêjkóàªU«V…¥y.lÍpùùù£1ûú‰§S§NÒâ 8õÔS±XŒ"ŒÍsaùõ›ŸŸðàˆ‹‹#++KîåСC’’’¬ÍÂüüüÂñ¹!ßJJJ¬û‹0~Íš5¯†êóB€vÁìïÉ4 ƒììlRRRBòY"¶x½^~ûí7ë†0òÃ?\ŠÏ É1ÀÀ­'3fdffÊàG×®]­ãD'°làÀýBñYAŸ.¿üòTÌkÏèÔ©“\åÍR[[Kqq±ÕAZä}ôÑG‚ùA Àe—]æ>úddd‘‘´÷úq»Ý[+RW½×®]´æ¹ `À€NÌ‹ÃÚ·oOç΃òÞBo555[Ís%@îÇ\Œ÷æ1À‹4 þ´´4ü"hRSSéÚµ«µÙX;`À€ 4e¸ôÒK¦Yì™gž)ý="èöìÙCii©µùß@ÿO>ùä`KÞ³Åèß¿ÿt`˜mÍÝ»w—þ2eee”•Ùûù²nݺf7ϵ(—\rÉà%€„„rrr¤ÅA„ÜöíÛÙ½{·µùO`̧Ÿ~Ú¬æ¹fÖ¼¼¼á˜OdÇårѳgOYÂD„Åi§†×ëµn¨)ª€[šó^ÍÚWÉËËËÞœñññäääÈ&"¬ºuëx íÍyyyÍjžkò.P¿~ýÎüЕât:éÕ«ÉÉ¿ ¶ˆA~¿ŸÍ›7[mÔ÷|öÙg5å=š€‹/¾ø,Ìæ¶ö‡ƒ^½zѦM›¦|žAåõzùá‡p»Ý`6ÏÝøùçŸÿgc¿¿ÑèÛ·ofs[¶aäääH‹ƒˆõõõlܸÑj£ö#¾øâ‹•ùÞFôíÛ7³¹-ଳΒÁ/"F«V­8çœs¬ãP'ðVß¾}/nÌ÷þé ЧOŸdÌZþ æÁGvvvË*"<Ȇ ¬…xk€~_~ù寓}ÏIлwïVÀ*`@×®]éÖ­[ð*"Ȫ««Ù°aƒÕAºèýÕW_ýz¢¿Âäææ:€e˜çYÉÊÊ¢gÏžÁ¯Xˆ «¬¬dãÆhžûúë¯Û\pcýúõGçŽ× 7 óÀA:ÛD,QÀªÀÁòˆ$!ì";÷Bk¡5 €Ðš@hM ´&Z“­I„Ö$Bk¡5 €Ðš@hM ´&Z“­I„Ö$Bk¡5 €Ðš@hM ´&Z“­³0Öüùóoþ$…»!BH«fÍšUøâ1 cÍ;÷kà¢0&D8u.**Úim3ø|>'À(//gaB„Dbb":u²6ÿ0æ €ßo.èv»ÙµkWÈ‹"ÔÒÒÒÈÈÈ8îŸo@)…Óé meB„aGÆõÑ$"æ9ŽÆÀÚ²¾QˆX8®É b^³f¥”Ì"&†Ñô@Ä9ZkRdHÄÙZ“@h­Y3€ˆXѬƒ`Ã0$"&(¥š¾ ät:eHÄ¿ßßô] ‡Ã!3€ˆ Íš@zDlƒ`¡5¯×+W‚…¾¤ZhOv„¶¤ZhMz„Ö¤ZhMšá„Öšµ ´oß>6mÚÚÊ„ƒÃ‡7iØàñxðxX¿~}Eà‹Ç,Ž+„Nä(WhM ´&ZûÓÒ#š+¶cÉIEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-dark/kbdlight.png0000664000175000017500000001563611571653265022764 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î<IDATxœíyp\Õ•Æ¿ûzÑf-^GØq6[6°e S(”‹$¤âq*ˆTI(<3Æ›)‚AiK²ƒÃ’ql¨T–&ª0f`bHâ"&¶„dŠÄà±xŒ$/Zz}ïœùC}{žÚ­î–Ô¯mé_U—{S¿ã÷îwÏ9÷ž{Ÿbf‚[1ε‚p.®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸€àj¼çÚ7&y<žß¨ÁŸñx<ó|ðÁ.§ìÄä‹«‰¨šˆ0‚ÇlÓ4o<׆OtÄä"ò(¥ˆF£i¿Ùe—”RÒA9ŒkÐÔÔt!€jf>³víÚmù<6)-€?þÁ`0í÷çÎ PJ±ãÆÙhhhøŒRêkJ©fn]»víù<þ¹`B àÙgŸõuuu]…Á_ÃÌÕfÆ?æuëÖÝðÈ#ü>&DPJÁ0†ïØ•RÐß@Ã~јùyfþ´¶£¡¡áco†Ñ  Õ4Íöúúúp>mrš !€ 6Lµ,k‘nìJ©Ì\¤?gþÿŽ”™•Rê&y)mÃHOð½ï}oºßïO4þ¸½3”RK-ËZ?ÖÐÐð6€7™¹•™wÖ××wæËF'÷X·nÝSþøÿ†Î̉G?NŸ>ÞÞ^TVVbÊ”) ¢kóiãx€Ïç«&"(¥ÐÞÞ¿ßòòrTTT ´´†a@)åcæ…*¥VÅqÃÃ?¼3_væšq/fþ¶n\±X gΜI<úúú`Y€Á†å÷ûQQQWßÿýEO<ñD(O6ªÑ„@lw]CD5Ì Ó4Ñ××èîî†ÒÒR”••¡¼¼ååå(((ŸRêJ"€s½ÃÌ5§OŸÆ;ï¼lg7¶¾¾>ݸ|~¿€?äÃFÓ4Fd€av·À4ÍÃ0pæÌ™„}výõöö¢··GEYY®ºê*ýÑ[ù²Ñ Æý03·Š‹‹µ›†ag=7 Á`¦i"îêkòh£Òãûv{†{Øæòâî½÷ÞfžODèííÍxËË˵}çOù°Ñ)ƽ0M³E_ ’’„B¡!^À×ýýý˜4iäMD4Ä dû’?³å2y@qqñfö33`FòÀÁ祥¥ÚKµÕ××›ù°Ñ)ƽ¢Ñh«Ïç3£¬¬ ‘HÎ …4ýýý(..€j¥”ÊG#³,ËÐ6è^t8’B ¼À²¬`°q‡Ãa(¥猙‡œ?fFII‰ö¢-ù°ÏIÆ}ôØcuÑ}aR…v µûžüÝï~÷ò|Øh’Ét!išyɘ¹†ˆ000Ö>¥T"ÔŒ²‰Î,Ë’¤Š[õ#ÛX^ ó9PJ)˲ª‰Á`0mì¯Ã̸m ßtÚ>§™Љ°ÏçƒßïO똑HDf΋ˆhT X¹rå¥D4•ˆ‡Óöþ†a ¸¸Ì ˲ÞÝ´iS¯Óö9͸Ï€A ãÔ¢¢" $>K• „B!x< O‰0:ÕHÿgM„å#ªÑÇ‹D"C†@“c(,,Ôöûð˜ àG?úÑ"ê&"eìÅ"‘˜DtɪU«þÆiûÎg ãÿX,iÏ›Ïçƒ×ëÕÞs—Ӷ僜y€@ PèóùÖ0s3Ö®]û«\ýv6Q+€¯ ÅÎö±X,шÃáÿå¤m¦i*û(Pº§|—BX–u-0|ïonëýóžJ¯×û;íGzè¡rñ»9ñMMMK½^ï>f^àÓJ©ŸOäâ·³…™w<<OZ/ §ü㽬ãaÐhG,ËrT·ß~ût"šÃ̈ÅbíòûýÚ¶c›7o>ä¤mÉx<ž˜ àÏ755½±~ýúÏŽõwÇä/UJý €ÄÊ¥øðX €ÇÜ2Fû²F'Âà÷û‹Å2zŸÏä! ¢DG“)ˆ_×ÑÀ0Œ-JÓ4Þi¸9ŸÏwNâÿ†††ÅÌü-m§ßï€ë˜ùí¦¦¦§MÓ|¸¾¾þôh~{T`ãÆ¥•R{ܨ«.ßzë-|ðÁ:F¬ _Íïdz‡™#D4ìHÝ Ø<ÀÕuuuE™0z˜YéêTž¥{èï:ítœ½`0Ý9óx<úœåMuuu˲6ëaÚßÿþ÷Ø»w¯Îã<Vz½Þƒw~Š}F,€õë×+‹PJ­af_,ðk×.tuu¡££¡PH»ð¯X±Â7ÒcŒ†M›6Eˆ¨]‡AÉãØÉ7žƒˆ|eee œ´í<ž¨‰_§a_ý\÷þùÀܹsï&¢Ï23<"‘#Gð‡?ü‡Öít¥ÔOÖ¯_ßÖÔÔtÍH~?ëhýúõŸ'¢Íjtwüøq=zW\qÊËË`RjwSSÓOMÓ| ¾¾þd¦cdåššš.$¢=dÖÛÛ‹¶¶6ìÝ»Ñhô¬Þ£§§§NÒ½EýC=tÁXOF6Øó€T^`¸žÖé 1"2²M‚õ(PÜ.Çr"šOD~[¾1lïŸdWÞ à<Ï£DTnY:::Î:wJ)ôõõ¡­­ ï¾û.¢Ñ¨r¾Ããñ<Í1²ò¦i)¥Š™§Nž={ a€³âØ>úW^y%”Z–õ€[GuF@(j'HC†³ðŽÆé@Û•®@^<€þ;‹t½¿ýy¾ÂŸ5kÖ,2 ã;ÌŒ'Nœ5L«úõñãÇ 1oÞ<ݳÚO)+P__¿Ÿ™ÿˆPZZšX"—®‹D"øøãuOöÍÕ«W_7Ú“‘-Ï?ÿ|7HîÕ†ëuuÂID“o½õVÇ ãF’Ø=€“I°eY5ÙöþIÞÒqƒ™·‘ŠD"èììöZÚ__tÑEúzö2sc6ÇIüõÀœ9s²JæNœ8¡Ýˆhs p¼ô‚ˆZâ*m#3 Ã>ªX,æXdYÖy•ǽ]u²=Ãu@¢÷'"r¼îôéÓ+ˆè*"Â_ÿúW©g¨í3f ¬¬LŸ·ïg»X?kÔ××w2s=¡¤¤3fÌȨH8qâ„6ê3'Ož¼{4'd„´è‘ ½ˆ×é‹ë˜ì9ÀH<Ùb¡\rË-·\FDSì#fÃuI‚ÜûÜsÏ9Z·zõêiDÔDñòì¾¾¾ŒçÌëõⓟü¤öšïy½Þg{¼ ƒú|¾ÍDô.áŸø|>_Fãúûûí5ø§ko¢Ñh‹Í]gtïÚ 0³c;Eœo!˜9q Ó%ç–eåmø3n`æÉ–e¡««+c'kfΜi¯QZ9’$}Dˆÿð=úBVVV¦5L¿îééÑÆ•›¦ùèˆÏÊhnn>ÀÌÝÚ duÑãÛÌ|ñÒ¥K§=JW¦‘,Ã0%f€SÙ“ìÅm“†Ž àî»ï^`YÖD„¾¾¾ÄìtºGQQ¦M›¦“âÿܰaÃŽ‘sÄa6lØAD/¦L™’¶úÒÞƒô÷÷ë^íÛwÝu×HvI1:HUß’ìlõ-€Ce£õ¦i:&€Qôþ°,Ë1ƒˆ¶‘2M3±8?SçZYY©CØþX,¶z¤ÇU)„ÇãYÍÌýD”U.`tO¢l©««óŒæØÙÀÌ-ºÀK˦óœ€1šR'æ¾öµ¯Í°,k S2’ÜAèÊY":öâ‹/:VwìØ±;,ËZ {ÿlŠKKKQTT¤ÅÙðÄOéqG%€G}ô8­#"dÕ®Ô– |¾¬¬lÅhŽ ¦i&aíFÓ•E8:!fšæyãb±Xžÿ(**ÊØÐô(ž“ßwÞyç"Z¯½¶öÜé:UÇ£wùíƒOŽæØ£.‡…B?"¢ýD„òòòŒ±­a0M3O2sãŠ+¦öøéˆF£{ˆ(ÂÌ)gª“ºÎݲ,§ ãF%Ã@Ïæ+¥PPP¶÷WJ%ÖP;)Ó4‰hš^®šéÆàÞD†ahÛîyæ™gb£9ö¨ðÌ3ÏÄ,˺GŸL»H§ÜX,¦+'G"‘Œöøéضm[IJ¬v¢¡ë\‡óÚ‘o`` ç…q¦i™æ&ìžÒI G€ 3öþ±X –eéÚGpÛm·]ÍÌ+tï¤ó×…y¶köâ¦M›¶öøcZóÔSOmgæ_éšÍ°¨R*‘XY–uû­·Þ:¢ê½lÑuA¡P(£Mñ}‚t£Ëy4Ú$8×óµµµ…Dt5ÑÐ4†ël;h ¿“K[€Ä„Üf=O¢s¤áì²_¯xTJÝ7Ƽ"Ì0Œû‰(8\¯’êµí"+[@Î×&ÛG‚ì£AÃÍè0ˆ˜ÉL°“9€ÇãY@ñ8ûJÃy‚`0¨Z[ss³•K[à›ßüæw˜y‘Öy6¡ßïOŒù[–Õ´eË–#c±aÌ oË–-Gˆ¨Q‡BÙxÝèâzþþýûï«Éø|¾VÝ‚Á`ÚgƒûÝÄ/vu¢v9w¨lC »TŽ×ëøŸ³ÜDÌ6tóðË–-«0MóQÝn¼^oÚNS?·­KøKQQјËìsR›ÓÛÛûxIIÉrstyÁpU¢ú=Çc1××ÕÕýª¹¹9cýv¶¼üòËÝK–,9àÒLŸ>}Èçö6®s˜ãǃ™'×ÖÖ^à½\Ùbš¦¡öŽ;Ò~7i=@NC Šß¡¬¬ ^¯7q¼T• áp8“+¶@ôz½ë˜y†2 Ã>ü›°ÅþZ¿À?mÚ´)2V;rz477GÜkë¹2ö.†1$ùœJDM¹°ÅŽÎ2++¥;;QdYÖûúÜD£Ñ´Û¸;+¥>Ε J)ED‹ˆ“&MÊx}yˆ×ëÝ+;àë_ÿúg‰è‰(±ÕJ6¡³­ñÿ÷/~ñ‹WsaKΪ3ö³Ÿ½vÛm·½ÄÌgwõ©zûäTAAŽ5ïZ¶lÙO¶nݺ'W6ñàN·ƒAX–¥S'°÷|…Bz>àÙ\ÙñÇ?þq[UUÕ·˜yöþlÇ®]»Žçʆŋ_NDS”R(,,Lô¸©z`ȽönÛ¶-§p–emVJy”R())I4nmC*/ ;¥TÈçó­Ê•-9-O6Mó>¥ÔÌ\dšf")NÕøõëÒÒR-ƒ™7+¥ªsµ0%¶x<p|ÑþÔ©SÇ&\Ùf¿£Œíö¥Wçâøšøÿç?rù›#Å4͹ºÑ8p‰»½TTT`Ò¤ICªcÏœ9£Óðgéҥ߰X{]¯×;lØ£ªçâaä£Ï=÷ÜG¹²'§xá…>úÆ7¾ñfh÷æ÷ûÓ @Ÿˆžž0sÕM7Ý´ÀOsaÏÎ;^wÝu]Ì<½§§pæÌœ>}:ÑÃ¥Zý¤”z9Ç?Ÿðz½-¦i¶¸€ŠF£èêêBWWWâ:”––&ÄÐßß0 #gøò—¿\fÆõ$\ü> g5ød/÷ÊPJuå´˜R娳M°|ùòÂ÷˜ùSJ)L™2eØDØþúèÑ£‡Ã`殂‚‚¹[·nÕ>/É\{íµ/Xšª¡ÇŸG$î|hÆ›­­­#®)/TWWO±,k‘aÕ¬}Z ”*ÖŸ'0óß¶´´ä¤èK_úÒãJ©û•R˜={¶¾ÏXÚä7 Ú·mÿê/ùËWra‹&瀛o¾ù+Dô 3cÒ¤I(--Í(€p8Œ>úHŸ„ͯ½öÚ=¹°eÑ¢E¯”zÚöÿìD¼±+¥Þœ–eÝ×ÜÜìØ Í@sssˆ™ïÓeÉz‘s¦¡K.¹D«¿Òëõœ´QpŽêêêˈè>Н¬¨¨ÈXïcY:;;õõÿí«¯¾ºÕI¿CÌ«¯¾º•ˆ~ÃÌèììÌjµOyy¹ýfl+¯¹æšJ§ír3ßMD>"ÊjÕ a8zô¨^4µ,+'#éÈË-’˜ù^"Šš¦‰C‡¥====hiiAoo¯ÀI¥Ô¨Vûç"zO×@íß¿ííí‰q§ê{{{ÑÕÕ¥¯ûÛ·o?è´yÀöíÛ2óãD„îînœ:uê¬Þ?ãí·ßÆž={…XÌü’Rja[[[O>ìrK[[Û¿XÌÌïzzzÐÚÚŠýû÷Ÿµ%»R*qo ":êõz³ÚÚp¬86Ì7ÞX …þ—™gcáÂ…‰5|ð>üðÃÄnn¸w÷îݿ͋q‚£ÔÕÕy>¼@#€ÉPPP€¹sçbÖ¬YPJáСCøË_þ¢‡=oyã7šóa[Þ‹/¾™™›™sæÌAQQöï߯'; Ÿ™,Ëz²½½]ž Æüùó§y½Þ&w"}TTTà’K.ÁŸÿüg½‘Ùë»víº!_6åUP]]½™oH>®Rêydz&—%ÀÂùIUUÕ<›TÙßWJŘùó»wïÞ—/[ò.€E‹]ÎÌ oôgf^ÙÖÖ¶3¯†ç”x‰Êw˜ùQ3âo?¾{÷îïî6&;ò-X¸páw”R÷0óÏ/¼ð§Xp-ŒæÏŸ_îñxV)¥*LÓ|¨½½=˜ÏãŸÂùB^†Aá|E ¸€àjD‚«®F ¸€àjD‚«®F ¸€àjD‚«®F ¸š¬¶Flhhðø·Öžà*åÚ%#% `€v{üúá‡Îx‡ŒëÀgü€ÏåÀHAÈg¬ª¯¯ÿyº/¥À#<òÏÖð@4E__úûû7P„óüÓgiiiâ¾ÏqþÀòuëÖ¥ÜåzX¬]»v€'À4M|øá‡8qâDŽÍ„ÜSRR‚¹s碤¤D¿µÀÏjì)s€|p.€õ qðàAD£ÑÄ=¤á|&cïÞ½˜={6*++àz+ü8ù»)=À<Ð `áàÁƒ‡Ã›,Î0gÎí ‚>³qãÆûçgy€Õ«W_`tvv"Â0d´TŸ9rsæÌAü>hßð}ûçg À²¬yúyoo¯„=¸Ʋ,ô÷÷ëÄx~òçg €ˆæƒ‰¯¾áµ ŒgÂá0 `^òg©<ÀçôIï/L¢Ñ¨Þx¹råÊ•36oÞœ˜ K%€b`ðNê"a¢`Ûy|È$Aª$ü& J©D»N&•H< L”RCÚµñ„gT€™Å‚yýE¥”@˜0óÈC }CcAïè;U¦bX oZ-ãQyâ„ $Á‚«1MsDIpþ#€0 "-pÒþYªèm_ŽD" ‚H$¢C ^yå•^ûg©<@{ü_|>_òWa\ …´hOþ,•xK?ïîîÆ¬Y³œµN¤¯¯¡PH¿ÜüyÊ%‘K–,ù)€åpñÅ£¼\¶Æ–eaß¾}z“C>ó»ßý®Ïþ”‹â-ËZàŸìèèÀE]„©S§:n° äŠp8Œ÷ß_¯ggË_ýõ¾äï »-Êõ×__ à·ˆ‹dúôé˜5kJJJ ”rÎrAápÝÝÝ8|ø°}ìÿ‰;v|7Õ÷ÓnŒµxñâ¿p±~Oo@$ɱp>ÁÌèëëƒišö·ÃÖxrçÎ)gÂ2nXSSS`#€»å^¢‚pÐ àŽ–––ýé¾”QšªªªI>ÙW8?²9îîÝ»ÿšÍe-A˜ˆÈT¯àjD‚«®æÿ´´ CË7¤=IEND®B`‚pommed-1.39~dfsg/gpomme/themes/elegant-dark/mute.png0000664000175000017500000000542111571653265022135 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î< ŽIDATxœíÝëÜUÇñ÷.­¼ëBøŒ1Fc$F#PîBcˆÚ–ri)P Ýc41""P¡»ÛÝí^ºÚ}P)´¡…Ù2ÛÝínCí^f/¿_çëƒÙ]Jgwg:¿™9¿óy%ó }Ò“Ì÷s>çüfv[cfˆøª¶Ò ©$@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5 "uuuŸ«««»£Òëå)¨««û,Ð |¡Òk‘å)%¶cǎϘÙn3û¢~ïjõSJhÇŽŸv_ªôZduÖTzqñÈ#| h¾\éµÈê)%ððÃ’ùáÿ €™QSSSÙEɪèt޲Ãß | ¿¿ŸÉÉÉÊ.JVM8Û·oÿ„™5™Ù×ÌŒþþ~‰f¶ð’ê¦iûöív_ ‘HTvQR0ÝŠðÐC}ŒùáÿÀàà ‰DbáܯÝßj€e‡¿ø&ÀÐÐv~‡© °mÛ¶ózà[©Tê};ÿRj7(«ôàƒ~”ùáÿ6Àðð0}}}y‡_pƒŽ@«þÀÅǧ¯¯¯²‹’’P¬àøð"ð€‘‘‘¼;ÿRj7¨–±dø¿ 0::ª?fÔyÜÿýþ|àĉ«ÚùAw—¨Î";üÿ¾‹Ã/ñ£8ÃÖ­[?¼\ ðöÛosôèÑ‚¾Ü¦p‡°Ä}÷Ý·x¸ àäÉ“Žà²²Ãÿp9,¿Ä›زeËZàYàJ€wÞy‡d2Yôwúur‡÷ °eË–5À3ÀÕï¾û.ÉdRì ¯`óæÍk€§kÞ{ï=’É$À9ýD—ÀÞ6ÀæÍ›Ïž®ƒÅá×àúÅ˸÷Þ{Ïž®£¿¿8·)É Þ5@vøŸn€Åá×ÀúÉ«¸çž{jÇN:űcÇ€Òíü ;€K¼ ÀÝwß] ü ¸`||œ ´ÃŸ£¸Á‹#PvønÅá×Jìà®»îªþ Ü011Áàà ÍÎ:¹$Ö þ¿·LNN288¨á”±m€M›6Õ~óÃ?44D·óç¨ÜËÈÿŸ€ŸLMM144¤¡”ˆe˜ÙŸÁüð§R) úÿŒ5”íß’âÅ®î¼óÎ?w¤ÓiR©”†QòŠUlܸñ÷ÀÏa~ø‡‡‡òîü ;€Kb€ 6üø%Àôô4###@ù‡—Äâ´aÆßaqø3™L…W%.p¾Ö¯_ÿk`ÀÌÌ £££Uñ?´¨ÜpÖ¬_¿þ|æ#©â×ÅÀ/`qøµóK!Î3[ ÜZæµmvv–'NTÅκ¸$ßháÝ ‚€L&óÁŠúÏ«•~íüRŒ| °€±±1ÒétùV”µš€ÔÔÔÉdªfçÏQ¸#_¶Óšššª®³ Tîïªa}gRÜï1¨Þ=ñŠ Õ¹ÃV3Ü‘¯Þw‰«/Á C à†@$ÎVl€jy äÝÜqÖxôÑG?p Ökõ/qGÞ/Ãi+žÀË C¶!´«NpÃr? wPbo¥8OçÚÂéä5€xm¥t(”Àjñš "j7,}\ ܱÜHß’Ø[±@G b¨Ü ¯éíþîÐcPñš jwè…À º‹×ÔÐîï5€xM_…ˆ€~Q¯;Ôâ55@Dtpƒ@¼¦§@ÐסݡO‚# ¸C߯­ØÕöß¹B à]‚ÅkºG@ww¨Äkj€ˆ¨Ü ¯­Øz T8ÝÜ¡Â" ¸C„‰×ÔQ¸aÅÐ)q¦ˆ€îîÐ@¼¦/ÃE@ à}À ú$X¼¦O‚# #;Ôâ5=ˆÀ y@ö1h&“! Ã2-§pµµµÔÖ.Wd"ù­ØÓÓÓ —oEZ³f \pk×®­ôRèàŽåPÎu-FGG¹ð «& €;–;m~W®…éóÀ¯Â0¬©ªˆò`çÎÿ+çBŠÔ´nݺ“ÀcAÔ?~œ‹.º¨*B pƒó·ÇúúúÇÛL† A…W%®p>õõõ7³›Y&R©A,üfër¿rwµ@õ‹Ežn#Û©Tй¹¹ ¯Jª]lÐÐÐð3»5×CCCi5€;b€ÆÆÆ'[€Óa288¨&¼b€ÆÆÆ§Ìì3;ÌÍÍ•­@Ÿ¸"–صk×Ófö£\Ž;V¶èäŽØ ©©éàf²Ç¡þþ~fgg+½,©"±@SSÓ?Íì&3 ƒ ™L2;;«Àƒ477? Ü„a’L&™™™©ô²¤ x€æææ™Ù¹&xë­·"kÐ%ØÞ ¥¥å9à‡d›àèÑ£jÏy€–––çÍì†\ôõõ133£;€§¼ ÀîÝ»_0³ëÍ,‚€D"Áôô´Ž@ò2­­­ÿ®‚0 I$¤ÓéJ/KÊÌÛ´¶¶þ×Ì®Ë5Á›o¾Y’&ÐÈ^ ­­íEàÀ\†¼ñÆjx€¶¶¶—²M0GŽ!N«< dµ··¿Ä’&8räSSS•^–DLX¢½½}§™]›k‚Ç355¥§@1¦œ¡£££¸˜ ÃÇ399YéeID€³èèèh0³kÌl6^ýõ‚š@ww(yìÙ³§Ñ̮΅àСCLNN*1£,£³³sp0†!‡bbb¢ÒË’RVÐÙÙÙdfW™ÙLçüfv[cfˆøª¶Ò ©$@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5@¼¦ˆ×ñš ^SÄk €xM¯)â5 "uuuŸ«««»£Òëå)¨««û,Ð |¡Òk‘å)%¶cǎϘÙn3û¢~ïjõSJhÇŽŸv_ªôZduÖTzqñÈ#| h¾\éµÈê)%ððÃ’ùáÿ €™QSSSÙEɪèt޲Ãß | ¿¿ŸÉÉÉÊ.JVM8Û·oÿ„™5™Ù×ÌŒþþ~‰f¶ð’ê¦iûöív_ ‘HTvQR0ÝŠðÐC}ŒùáÿÀàà ‰DbáܯÝßj€e‡¿ø&ÀÐÐv~‡© °mÛ¶ózà[©Tê};ÿRj7(«ôàƒ~”ùáÿ6Àðð0}}}y‡_pƒŽ@«þÀÅǧ¯¯¯²‹’’P¬àøð"ð€‘‘‘¼;ÿRj7¨–±dø¿ 0::ª?fÔyÜÿýþ|àĉ«ÚùAw—¨Î";üÿ¾‹Ã/ñ£8ÃÖ­[?¼\ ðöÛosôèÑ‚¾Ü¦p‡°Ä}÷Ý·x¸ àäÉ“Žà²²Ãÿp9,¿Ä›زeËZàYàJ€wÞy‡d2Yôwúur‡÷ °eË–5À3ÀÕï¾û.ÉdRì ¯`óæÍk€§kÞ{ï=’É$À9ýD—ÀÞ6ÀæÍ›Ïž®ƒÅá×àúÅ˸÷Þ{Ïž®£¿¿8·)É Þ5@vøŸn€Åá×ÀúÉ«¸çž{jÇN:űcÇ€Òíü ;€K¼ ÀÝwß] ü ¸`||œ ´ÃŸ£¸Á‹#PvønÅá×Jìà®»îªþ Ü011Áàà ÍÎ:¹$Ö þ¿·LNN288¨á”±m€M›6Õ~óÃ?44D·óç¨ÜËÈÿŸ€ŸLMM144¤¡”ˆe˜ÙŸÁüð§R) úÿŒ5”íß’âÅ®î¼óÎ?w¤ÓiR©”†QòŠUlܸñ÷ÀÏa~ø‡‡‡òîü ;€Kb€ 6üø%Àôô4###@ù‡—Äâ´aÆßaqø3™L…W%.p¾Ö¯_ÿk`ÀÌÌ £££Uñ?´¨ÜpÖ¬_¿þ|æ#©â×ÅÀ/`qøµóK!Î3[ ÜZæµmvv–'NTÅκ¸$ßháÝ ‚€L&óÁŠúÏ«•~íüRŒ| °€±±1ÒétùV”µš€ÔÔÔÉdªfçÏQ¸#_¶Óšššª®³ Tîïªa}gRÜï1¨Þ=ñŠ Õ¹ÃV3Ü‘¯Þw‰«/Á C à†@$ÎVl€jy äÝÜqÖxôÑG?p Ökõ/qGÞ/Ãi+žÀË C¶!´«NpÃr? wPbo¥8OçÚÂéä5€xm¥t(”Àjñš "j7,}\ ܱÜHß’Ø[±@G b¨Ü ¯éíþîÐcPñš jwè…À º‹×ÔÐîï5€xM_…ˆ€~Q¯;Ôâ55@Dtpƒ@¼¦§@ÐסݡO‚# ¸C߯­ØÕöß¹B à]‚ÅkºG@ww¨Äkj€ˆ¨Ü ¯­Øz T8ÝÜ¡Â" ¸C„‰×ÔQ¸aÅÐ)q¦ˆ€îîÐ@¼¦/ÃE@ à}À ú$X¼¦O‚# #;Ôâ5=ˆÀ y@ö1h&“! Ã2-§pµµµÔÖ.Wd"ù­ØÓÓÓ —oEZ³f \pk×®­ôRèàŽåPÎu-FGG¹ð «& €;–;m~W®…éóÀ¯Â0¬©ªˆò`çÎÿ+çBŠÔ´nݺ“ÀcAÔ?~œ‹.º¨*B pƒó·ÇúúúÇÛL† A…W%®p>õõõ7³›Y&R©A,üfër¿rwµ@õ‹Ežn#Û©Tй¹¹ ¯Jª]lÐÐÐð3»5×CCCi5€;b€ÆÆÆ'[€Óa288¨&¼b€ÆÆÆ§Ìì3;ÌÍÍ•­@Ÿ¸"–صk×Ófö£\Ž;V¶èäŽØ ©©éàf²Ç¡þþ~fgg+½,©"±@SSÓ?Íì&3 ƒ ™L2;;«Àƒ477? Ü„a’L&™™™©ô²¤ x€æææ™Ù¹&xë­·"kÐ%ØÞ ¥¥å9à‡d›àèÑ£jÏy€–––çÍì†\ôõõ133£;€§¼ ÀîÝ»_0³ëÍ,‚€D"Áôô´Ž@ò2­­­ÿ®‚0 I$¤ÓéJ/KÊÌÛ´¶¶þ×Ì®Ë5Á›o¾Y’&ÐÈ^ ­­íEàÀ\†¼ñÆjx€¶¶¶—²M0GŽ!N«< dµ··¿Ä’&8räSSS•^–DLX¢½½}§™]›k‚Ç355¥§@1¦œ¡£££¸˜ ÃÇ399YéeID€³èèèh0³kÌl6^ýõ‚š@ww(yìÙ³§Ñ̮΅àСCLNN*1£,£³³sp0†!‡bbb¢ÒË’RVÐÙÙÙdfW™ÙL image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/src/brightness.svg0000664000175000017500000003263111571653265024140 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/src/cdrom.svg0000664000175000017500000001221511571653265023070 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/src/kbdlight.svg0000664000175000017500000002224311571653265023556 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/src/mute.svg0000664000175000017500000001604311571653265022741 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/src/volume.svg0000664000175000017500000002237211571653265023300 0ustar julienjulien image/svg+xml pommed-1.39~dfsg/gpomme/themes/elegant-dark/volume.png0000664000175000017500000002061011571653265022467 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYsRR$JtEXtSoftwarewww.inkscape.org›î< IDATxœí{xTåµÿ¿kí=—$“@¸Gˆ%€=Ø–!A-¨ ÀÑVi­=X~öæ )Ö‚$˜F¡çôë©hñôJ[/U{´§UQ¼€"h±´ (wÄ@ÄI23{Ï^¿?2{˜ÜIf2·÷ó<ûI²ggï÷YßµÖ{™÷%B‘®p¼  PÄ%EZ£ Hk”i€"­QP¤5JŠ´F @‘Ö((ºeåÊ•ç¯ZµjF¼ËKH+:²téÒl·Û]ÎÌ‹˜ÙAD·—••ý,ÞåŠJŠv”––~™`æ àp8À2MsPyy¹7®î'*¤×]w]!3?ÂÌ_°³lã?“ÇïÊÛG¹¹¹(((@vv¶}½ADË“Ýø%€”`îܹÃ].×0óB!ÛðCž:lü=zd6@Dp¹\ÈÏÏÇðáÃÁÌÑ«š¦-ºçž{>ˆKe£Œ@SRR¢µ¶¶Þ¢ëúý"2XD i233áp8ºõü= ™1lØ0äååAÓ4„¢ÉYrï½÷>çjG%€$eöìÙÅ¡ÞÏÚÞ933'œÓÝywBðx<9r$Ün7ˆüDô]×W•——·Ä¯Æ±A ɘ9sæ(]×ÿ“™ÿÍ>çr¹0lØ0èºÞÉë÷äííkt]Gnn.<O8Ýð€E+W®ÜŸÚÆ%€±jÕª¡¾RZZº&÷›9s¦àv"ª‘;Ý5j<OŸºÌŒ¬¬,dggCÓ4€ˆ|hYÖâxàÏÑ({"£V­Z5ÀkÞŽÆý.¹ä’KEäMÓ&‡Ò >£F€^yüȆ®Ãá@ff&t½Í DÄ'"?ÎÍÍýòòrÒ%€(³råÊ\¯øú)€3fœcšæš¦Ý`§%999;v,\.W8×ïm×&3ÃétÂáp„ÓyÀ=ôС~¿ I„@Y¹rå`´ÿçû{¯ÂÂÂÂн<"§Ó‰‚‚ 6¬ÝÐû†®¦i‘†€ˆ­Y³f]ËœŒ(D‰ûï¿€W|!÷‘¯‘h8q"ˆ¨OÝšDÝ"ÒàßÝn÷­^½Ú2'#JQà¾ûîËA›ñ_À0ê×=‰èÜ@7Mš¦õiþŽeYhmm…eY°'ÃxNÓ´%¿úÕ¯÷«)€šÝOBÆ¿À?À¡C‡àõö†@UUÕn@MM :‰ª;!m"ôz½hhh€a¶×ß#"s~÷»ß]§Œ¿ %€~PQQ‘-"/‹H¡ˆàСCØ»w¯mlíz\ú‚iš?p@x>~GCïxŽˆÐÒÒ‚ãÇ£¹¹Ù¾¤YD–™¦ù™Çü•~*ÅP)P©¨¨ð m h:>|{÷îê3¶mÛÖ8}úôe"²¶±±555=zt·©O ÀñãÇáóùÂéŽeYψÈ]Ï>ûluT —"(ôþð‡Yh3þb8räöîÝÛ.ýˆÖ4󪪪ßM›6í»¦íÛ·#GŽ„¦iòücÇŽ¡¾¾>R»ƒÁàùË_6D¥ )ŠJzIÈø×˜GºçDÚ¸€å÷ûqàÀ§ÓžO>ù»víB]]Ý5ÚàûyyyŸSÆß3*ô‚òòòL/¸ª««ÛyþH¢ùE£·ß~{Û´iÓ~à›GŽÁèÑ£!"Ø¿?šššÂƒ["ò„eYw¯[·®6jOq”Î’{ï½7mÆÿE ­gfß¾}Ý´¿içr¹–µ,kðöíÛaFØð‰h'3ß¾~ýúMQ}h R ³ düϘ }ôöíÛ7 eØ´iÓÇDt¯ˆ„ûõE¤Ñ²¬ÅC‡¢Œ¿o¨Ð+V¬pø3€Ë ¶¶¶[ÏI,¾kŸŸ¿æèѣטeYÖïMÓ\ZUUu<êJ#”Î@„ñ_ÇŽpÏÉ3Ï<$¢+¦OŸž»eË–ú¸$…P膲²2€?˜ Ç?+ÏĦ qo Œ?J¨6@„Œÿ9W§_‘z¨ÐÒÒR'€gÌ€?þû÷ïïÕä¶XFEtQˆ`ùòåÿ `œ8q¢×Æo£¨(DÈøÿà_€ÓƯHm”ÜsÏ=yZD®œ8q<ãÜûžæå«4¨ï|ç;Žx—áL¤} tÏ=÷èþàËP__ƒ*ãí#wß}÷]׋u]/fæâsÎ9ç ÷Ýwß™–ˆë ¥µ–-[¦xÀupòäIßÔÔ¹$K1”žñÿÀà´ñ'š‘F“™3gNBÈ»‡Ž ¶±G¦4D‡Ã]סëzؘ#½+·ÿ·;÷Ï[–…¦¦&äææÚ ácZñ^’òøþ÷¿O~ àÐÔÔ„#GŽˆçâ—MŸ>½DÓ´™¹˜ˆ†Fzw»Lº®#33n·.— º®wÚ#¬ã[=yäù®êÝÐЀÁƒ'dC8¥2þ_øàõzqäÈ‘”ôüEEES<ݱ;2##'¼tÇÍñzcà}9ߨÞS;oåÊ•ãÊÊÊfÞ”À]wÝEþÀ76ã?zô(€Øy~›xD"ª·Ÿ9|øpäåå!;;»Ý&y=5XcuÞ€´í]V a’sBÆ¿À· ¹¹GMIÏoSYYyÀGàv»1tèÐðºÿ6W”‹åy"Bvv6ÆŒƒ‰'F.Ì;½÷µ‹)DäßÚŒ¿ººmQ´X{þe°gEÒ³wxO÷¨‘Ê`0¸ù§?ýéžV1꤄/^ü€ï§?r>JºðÞ{ï¦OŸþ.€¢ÆÆFäç矕ᛦ ¿ßžê “w "@DÛ2xMÓ¶¬^½úã¬bÔIzÜyçÿ à.ðù|8vìXTvhé/qlwlPdo¨ÑU9Z[[ÑÒҟχ@ mn…–YìÒ|""[BÆ^™••õ×DNgúB—¸óÎ;3ÑÖ(¬>f¸8müéèù;°EDî2 ---Ð4 ðz½ðz½ðù|íŒÝþ=ä0ö¨$¢Í*Ÿxâ‰=’â=] @Dnà²ô¿ßãÇ'„çâ;Ô0Œ­N§°}ûv˜¦ÙγGÌð ˆÈ»DTID•º®W>óÌ3íÒ™'Ÿ|2.uHºKŸž=Ï»£aÅúï³Å6~åùÛØ¶m[mQQÑ!ã@d:S`‹eY•DTéóùþºqãÆ´Ø ûLtÂhhh@KËÀ—ùlBDíf,& ñþ>€ˆÜ&"eöŠH¥eY•o¼ñÆ©žÎô…îv§Ý {4]}v‘³xÚÚÖ­[_BÛNŠèn.òŠ´ Ç$¦‡Mdâ)Ξî"@»H¡HUzlJ}AE€ä Ç P¤2=F€DéJ&T yè2<úè£Áê8ûC‘îQ …‰€¢kÔTˆ êMTHa5$’CU F$B; QH¨©iBcc#|¾¶ílqvÜ ¯cwfÇÃÆ8³—¶à;tÕ%*"p8\ûîQ½@1 Q¦CëºNv9>øàƒv£¾gsÄâÚHñ$j$8$Š\.×»~¿¿@^¼ËÒ >Ó4?ŒgÔ\ fãÆÞ¹sçŽ;yòdž®ë¤ë:[–EÁ`˜™ˆˆíß03S¨Ý@ز, Í¥ mÿÀL–e‘¦ilÿº†E„D„¸ ²´u¶Phjqèᚦ½³bÅŠcñ{‡Î"$ÚöCÉB"DX·nÀ‡ñ.G¢¢ºAijÇ€Di(zFEEZ£"@ŒP 9P@‘ÖôT/PïQm€äA „Å%€äA­ ªHkTˆ*$=FõA*Rb€j$ª  HkÔd¸ "@ò F‚c„@r F‚i Ž*JTP¤5ª4FÄ3\|ñŹ–eÍ×4­.l­ªª:·Â$8=~'Ø^;Q±WPœÆ4Í1ówE.—Ëúâ¿øž¦i•̼ٲ¬Ê×_ýp¼Ë˜(ôZ[[QSS3p%ê%º®cäÈ‘ µÖL¼ÛDtEÄŸLDŸð·hš†9sæÔ0s%3WQessó?6nܘ¸^.†œIYŽ>cŽ;†¼¼¼„A<PXX8’™Ï'"Œ7º®£©© ^¯¦iÚëòŒ&¢"*af 4¨ùÚk¯}›ˆ*‰¨Òívo}üñÇÓ"m:S T à§U>2ÀMÓäÚÚÚ„A¼‘"û÷‘#GÂår…Wdóù|ðz½hnn†Ïçƒaö¥YfÑ,f†išÖ 7ܰSÓ´J•"RùÄO¤dÚÔ­žþùw² }äåùóçŸðkÃ0ø£>ÂèÑ£BñŠš¦œN'222Â+U‹œN'ŒœœœpÛÎçóÁï÷#  Ú·a"ú,€ÏÑ­š¦aáÂ…á´ @å˜1cþQ^^žôiSâìUÓG^xá…ßΟ?_üÆ4M®©©IÄ˲Š5MàAƒ:½Ö15cf¸Ýn8Îp”0 #¼X‡%G(PÂÌ8~üxóí·ßn§M›T­^½:éÒ&J–\¿'æÍ›·ÀZ¬ë:ÆŒ§Ó—²>|~¿~þâ‹/~w ž;wî\×É“'O1³³  ùùùgÜðîlÏÛ‹ßjšMÓº[óÓbævÃZD*xà„O›’>ؼøâ‹¿Ÿ7ožø­iš\]]Wă“'ON%"'€v »FùÙž·#ƒß@Ó4èº§Ó —Ëe  SÚ´|ùòMÓ*‰¨@å…^ø÷믿>Øéq$¥:Ð_|ñÅÇDä&± ÃÀÑ£GaF§ýoc}tµ¤ø@`YVhš†ìììN¯÷Wö¹@ ¯×‹O>ùÕÕÕ¨®®F]]ÃïwˆÑ"Rà!fÞ¶{÷î†ûî»ïæ~W4Ф”`ݺuX hš&Ž9‚@ ïb DT ÙÙÙ`æ¨üÙœhhh@MM >øàìܹÀ±cÇàõzÃÿKDfþ·~W4Фœ`ݺuOˆÈ †Ã‡# Xâ3@DED·ÛÙ£Óm9Ît¾?1 õõõ8tè¶oߎ͛7‡»\‰hO¯*cR¦ Б—^zéÉ+¯¼R@oY»vm§´éÆo¼ "B„Ó&{þPFFF8B´¶¶¢¹¹^¯·]{РA¶ü999 7Á2í¯¾úê³—_~y €§ ÃpìÝ»&L@fffÔž‘LèH(mÚ:~ ·Ürˈ`0…Ó¦ŒŒ deeaĈ`f455áÔ©S2dˆ}Ûwï¸ãŽ„ë‚KKÀk¯½ö§ž1M3&"H%}ôÑNiSvvöEÌ<m¢˜ŽPÚäv»‘™™‰¼¼¼Èô'áò ¯½öÚÿ]vÙe×ø£aŽ={ö`Ò¤IýA²¥@}¡«´é®»îº€™Û¥MX—‚ö@ÊL‡î—]vÙÕþÀ©ëz¿EðÞ{ï¡¥¥~þúë¯ØtèD£´´t¤ÓéœÎÌ'W¬Xñf¼ËÓJ!fÍšÕN\p²²²út¯;v„°aÆ´@2ò#Ágˆ þà_LÓÄûï¿æææxKc”"ذaÃó"rˆ ÃÀîÝ»ÑÜÜœ4³A½G  7n|Àµü¦ib÷îÝðz½ñ.–"F(tÁÆ_‘kEÄovíÚÕ«H¯ÉpŠÞ£Ð o¼ñÆ:ù²-‚;wÂëõ*¤JgàÍ7ß| À—øLÓÄÎ;ÑÔÔ×2M›6íKEEEÿW\\ü ŠèdWô %€xóÍ7_‘/‰ˆÏ0 ìØ±MMMqiO:5ˆ~à"Z{ñÅW^zé¥S¢ú4C à,Ø´iÓz×  vìØS§~ (MÓþ‹ˆ²#ÿt"Ú6kÖ¬5_|qî€(P8K6mÚôŠˆ\-"­†aàÿøG·‘ m€ÂÂÂDt#Œ;&L€®ë ¶õxnq»Ý{gÏžýM•õ%€^ðÖ[o½ àj­¦iâïÿû€D‚’’ À#‘‘óÎ;cÆŒÁÔ©S1|øp;íFD¿¼òÊ+߾ꪫ.Šy¡R%€^òÖ[o½&"ÿbG‚íÛ·ãÔ©S1m9rä»h[q 'N ¯ùãp80~üøðÜ¥Ðó/Ò4­êšk®ùÅÕW_=,*Ha”úÀæÍ›_0@‹išØ¾};Û ZL:u€û`èС9rd§e ³²²PPP€¼¼Ÿ¯ß÷¥6ÀN§ãÇïÖèm"Ï; 2ÇÑ7,ËÚsÓM7ÝjX§=JQ`Ë–-o†"A³½bB#@aaá|Ó ??º®wiø=E—Ë…ììl8»2Àꬬ¬¿-\¸ðâ~U<Pˆ[·n}¡H¥[†·¸9tèvìØÑ.²ôdø‘×€Ãá°Ç ìˆðfÞô­o}ë±Ûn»mT”Êœt(D‘­[·n‘«DÄÛß°uëÖçDäFf®%"?~ï¼óŽ=Þµ¥'Ãïîu{q«¾ ÷Üzë­K***Òî;âJQ¦ªªê-W! ‘àí·ß~’™'ø –eáðáÃØ±c{Ù׃ÁvK"Qýäã?þûwÞ9³¿åN&Ôw‚cDaa᥮®ªªº+÷»ä’K>ÍÌ3ó,{•¶Aƒ…ûþ»ÚëëLû€Ù3Ããñ„·: -võ3ÿÁLÜÒ£„@ ),,ôTUUEõëd³fÍ*aæŸ0ó{㺡C‡bРAacïÉ軺Æív#77‡Ã‚—™ïollüïŸÿüçFÏ%KN”’9sæd(cæ%Ììdf8Näææ†·<íKDÚÓrss#×ý@Ó´E«V­z5¾µŽ JI̼yó&x˜™gÛé‹Ûí†Çã€^¥B‘×8œsÎ9á½ÆB‘æYMÓ–”——‰o­£‹@ pÍ5×\KD2ó§"…`ô6²ÁƒãÜsÏ…Ûí¶—7oaæUC† ùI"®óÙ”R„’’’Œ`0¸œ™ïff—½¬ù™DГ8DÚvŠ=z4òóóÃi‘¦iûEä¶²²²Wâ]ïþ¢b|õ«_=_Dbæy‘›\X–…`0Øçˆàv»1qâD >ÜÞ' ("ËÊÊÄ»ÎýA¤O=õÔ§Ÿ~z>]MDí­޶Áå³AŽ<š››±mÛ6Ô××Û—ƒÁ`|WˆJ)Ê“O>ù¼Ãáø'ù!€V"‚Óé„ÇãÓéìÓ¼¢ÜÜ\ :Ô¾ö¿ËËËëâPµ¨¢¬]»Ö÷ØcUѧ™ùÏv» ''C† é1"tL?ýéOÛóˆj‚ÁàʯQôQm€4âÛßþöUÌüØm¯×‹O>ù$¼^wí€1cÆ`òäɶ¾VZZú‡x×'¨Füâ¿xÉét^HD¥DÔÂÌÜnw§4¨  ÀN—‚"rG¼ëMT ”æ,Y²är"z˜™'ÙiQ]]>Œ@ €ììlL›6Íxxùòå‹â]æh¢"@šóàƒ¾æõz?CDK‰ÈËÌ8çœs0uêTäååaÒ¤IöXÂdžaÜïòFaÊÊÊF[–õ3ÕD‹Ø û›eee¿Žw£€¢+V¬ø"3?ÂÌÿÀ;¥¥¥…RÎXT ¤èÄý÷ßÿ3Žˆø­ˆ| )hü€ŠŠ4GEEZ£ Hk”i€"­QP¤5JŠ´F @‘Ö((ÒšÿV"2ŸáCIEND®B`‚pommed-1.39~dfsg/icons/0000775000175000017500000000000011571653265014457 5ustar julienjulienpommed-1.39~dfsg/icons/gpomme.svg0000664000175000017500000003251411571653265016471 0ustar julienjulien image/svg+xml Jan Larres Macbook Macbook Pro Apple Keys gpomme configuration client pommed-1.39~dfsg/icons/gpomme_128x128.png0000664000175000017500000001166611571653265017500 0ustar julienjulien‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs$é$éP$çøtEXtSoftwarewww.inkscape.org›î<3IDATxœí}xU½Ç?3»3»ÙÍîf“&-iÒ6}£/!E/or+"Pð…+¶1¾ ûp_,/Ú U«€`Å‚¢—·G !r¹*…«^/P))xQ,´”¶Éæ=»Éfw³;™ûÇd'›d“Ì$»Ieæó<ótwçœßœô|Ï9¿ó›3gUU±±.âlÀfv±`qlX[ǀű`qlX[ǀű`qlX[ǀű`qlX[ǀű`qlX[ǀű`qlX[ǀű`qœ¹0RW_ü€ {6“¢í MñéÌ>XW_ëÎ> œTîéÄfJô~ <ÖØÐôw³L  ®¾ötà!`™Ù ÙÌŸilhê6šÁ†ZýMÀd ‚ àóù())&(B’%{È+ƒê ‰XœÎî.º:»ˆÇnjǀKšž2boRÔÕ×.Gkõ§¥+™S¿žy&'®XAQ €xN(/§¢¢’š55ì~|7‡¿…ªªp°øÀ„f'j­uõµ»÷¬Zµš+¯¸’AU¡/ÚGgg;Ý=Ýôtu“ˆ'rø—ÚA|~þ¢¥sÊŠðx ‡ÃÜ|Ë×3‡†KšÏθq€ºúÚO1Tùn·›}¬ž@ @ $™L …h µ‘ˆ Íþìc&U…H¸—¶–6Z[C8sJæPVVƆ2«òκúÚyãÕsÖ! ®¾v.pGúûù¬CrJk9J0PLg{‘ž°VQÀívS^>Ÿ@ €ß_„×ëElg0—(ŠB$&ÓÓÓMsó1TU%•JÒj£æ$'GAQVž¸‚Å‹«8xð@ø°1›Ý¬C@]}íÃ@ÀâÅU\zé&œN'G޾E_o/áî=myù|V­ªF’¤<üÙ6ãÑÓÓÍþý/ÑßÀápPR6‡¢¢ sJJim ±k×Ý$ú𼡱¡é?GÛ3ÔÕ×€ ²,sÑE!Ë2]$qzý‚ˆ ˆÔԜ̚5ï°+(* ²víY”•ÍEDU"=Âáâ±sËæqÞyçff¹,›l>Àù 'ÕT3·l±XŒH$L_¤AQ˜?¿‚òòù¨ªj³tˆ¢Huu n· QH ˆ'hëhEUUN=õ4ÜnWº^Ï©«¯±Í&€uéÕ««A€®îN””B*© "nw+V¬@›nÚÇl²,±råj½WŽÇâ$“Izû"¸Ýn–.Óƒ¶àÌÑ•Í ¬L¨¨¨DQâñJ*…(jŽ]ee%‡;Þs|PZZ†ÇS@<G íÃï°|ÙrþúÊ_ÓI+GçÍ&€y¢(âñxˆÅb€æ…¦={¿ß¦@›ãŸÏ¯;|Š¢‹Ç@…¢@ 3Ù˜é`6”õs8¤RÉ!£ƒ‚6búóÖúÃá0~~ …>Ï;çìü\èm†Ïç§³³%¥hu§¤ðx½™ÉÊFçË& {öŠ’몈¢€$I8òÕ4·´pÛ;I—á¼sÞ“—ë¼Ýðz½únŠ¢àt82“9Fç÷^@º»Tµ1E@AEļŽý£mÛ~†1DQÔ{èôºœÁÁAýóx^”„öïLÖŠ­£èÑWAXÃEQŸ{æóvïhÛö­e£hu˜ Ã^*‚~˜eÏsϳ}Ç­¤R)ÓyÐÑÙɵ7|•cÍ¡¼Øÿç`¸~Ì,Ê11ˆ@Ú0Þ*ÿ¼wŸ^ùÉd’›¶\‹Ó9þeËJçpÙ§>€èpNz­ŽÎN®»ák4·„¸î†¯òoÞLù ãÞüÊ9ñxœ[vÜj8½¯°-×\­ßzËRJÒPÚÉÐ}Ô¸DTó=À¯w?¡·ü´&AqqºÚ YÏ&³òÓߟ~æYÃùs¢(¼ðâK†Ó‹FÌËyñ¥—H&³ `tÚÉHÏÌTцLÅ«oÚr kjªu;i$“ÉiÅÁÛ;:FT>@]íz>²qýŒÇäÍb&¯ñ2¨ùDAÝÑ0ŠËåâë7]ÏÖíßbÿËZHò­#G‰ôöQ,2e+“–P+]Ë_ëj׳éâOLÙ^®Xµrï;ÿÜqÏ»dyÄ÷/~î TU@µÿãŸ7>Â[GŽMáÊ”œÀ)Mͪ^–e¶Ý¸…mߨA{{;¶o#Xc§­½ƒ×ßxƒxƒöö.¬dé’%,[º_aሴիVê6?tá¸ô“Ÿ•Ãèk–Ÿ0óÞ{¶á<ï}ÏY#Îí~âI´…½ÙíOD^§ic8Ø`—ËŶ·ÐßßO0q®­­ƒ;ïÚÅK/¿2ε.üÀûØtñÇq»‡ïh®©©f×÷nã„y3çôÏŒ¬cÂ1ô§ÚÒdYF–åùw?ñ$÷=øý1m£Ãá jÑÊJËxóð[´„B¨ªÊ¯ÿ û^ø _üüg¨^µRÏ?oîÜYŒ½öÔü‚ÌüöÍõé:RQ ‡ÏL÷Zÿ’›ÿðÇŸø-»~øø}>.ß| kßuƈFÑh”Gÿë×<òèc´„BÜðµ›¹óÖo²¸jQNÊ0}²ý_äRf†€t –À”Aš2§w„ZÛ¸ïÁŸPsÒjví¼³ßýnœNiD:ÇË'?öQnßñ Jç” ( wìÜE*¥ä¤¹82É¥-3ö2ëÈÌ<иD­‹Ñº™‰W©Lv¨ê wÞu7±X‚@ÀÏW¾tEÿ„y–.©âêÏ_‰ |ó07=:íräîÍìØJ×Ožâ¢~LWåÍ-­¼ò×Wø÷O_Šßï7”ï¤êÕ¼ïüóxâÉÿžõ–?ÝV›Û@®£ü„‚µÃDw£Ñ(Ý==c~iÏ ¤yýƒ€æðqÚ)ãÚËÆÚwÎo~û$]]Ýt÷t,Ž%tuuÓë“gÞܹ†Ÿ§ÇȲ¿ú·¿sç]»²¦¬(/§vÃEÓ²?ÃÓÀ<‚Aº˜=ÍŸžÞîýdÌïW^þi½åÀ‚ÊJ}Ì7J¦ówàÀAN=åú÷{ï{ˆ§ŸÝ3&Ï®ïÝFÅüùÆ/b‚Ñeo µÒjÍš¶zÕ*6®ŸXÙ| £è 5_=€®¬ñJ5ÑïÃçZ[Û8a^Ùy²ãõzðû ‰ôöÑÚÖf0ÿxãk.0c×H9FŸ7ߘ¹[cj¨‰@4U¨a†ó,¨,gÏspäèQÓ¶Âá‘Þ>*+ËMäŸT-\À§Ÿ’5eYYéÊa,½æüçñn æ] C ìi.Xw.¬ËÏ̳dñbŽ5‡ˆÅ™/LJzø%UU#ì^{õç¸öêÏMzý\2ÚnUÕ"ê?’õ1¼)•ÃܹjË`£ G.™x:2Ù±tÉ"@[³öäïÿ`*ïïžú=óæ–áõz¦]–Ü™äÒ–9{Ãwc" 9€i'p:Gq°˜³Öj©<øÓ‡9Ö2”ïÿó4Þûë/ºpÖ§ÇÛ40]?yî ­æòË.!,b``€oÝú]½ùæ„éŸÙó?üɼóäÎ?÷윔#7ÇhfÇÖT"&@‘ôæÓÅëõðÙË?Í7o½ƒ#G›¹æú­løð¿±ö]§S1¿QI$¼yø¿ÚýžÙ³_¡—Ï^±9ocºY²MÛrY6£¶TUÐÀ<-tG0»RÍó/ï\Ã7¶ÝÀÎ]?¢%ÔÆ#¿xŒG~ñ²$ iïèZÛ®qrÍj>{Åæ¡…$ljÆõraϸ­ôSÛéÏF1ÝLeAHšîm‡‹E 迸|ßýövúY#ÿûÌzû¢ $“Cs|Ò9%¬ÿÐõ•6™×ßÿÊÿqÒꕦW*åŠìãöÔ0¶G1jKÍó¢Ði, ­ò·Þ²ƒžp_»á:–.®ÒϹ\.6oº˜Í›.¦µ­7¢µ­“… æ³tqÕÐècyò÷äž{ïçŒÓNáËW]9k"8>®›ü âð`VáZå›cÍÍlÛþîøÎvæ”I[VZJYiéˆß²]o﾿pϽ÷£ª*{ž{žÛ¿÷¾ô…™A¶²årŠ™`V››bÀØÊ¸`Ý9Y+ß kNZMõêú÷=Ïíã»;wð¬ÅðÝÀü¬л­0zÜvÇ÷GTþú‹>È'>ºÑ”l‡,Klùò©^=¼&Àòe+ ÷ö0àÕW_ÍLþÚèüÙ|€ÇÓ^~y?Þ/…ÞBdiäöf………„#=´w¶¡ Ú1™&‘Hpèð¸ÝîáÊGó $I¢8XBb Áá7§Oklh³£e¶àY 8ð:©¡÷‚€ä”H¦†Šžp7ÑhÇšàr¹ðx)(ð 9¥)/µÉŽªªÄã1úcýôÇúuŸ+Ð[¤ïœ& è UD<”9U<‹Ùq߸øÀ‰ËOdËW®×ç”ÉTŠT*I2™dÿ+/æòo´™~ŸŸåËVj33IÖ×ttvpÝW®MoÓ›Nnlhúûèüã­ïº xർÆÓÏ>­»t’Ó‰KvÑÛÎùccžÞ¾^Àår땯( wßswæîì_ÏVù0ŽšRh/L<ðÀý´´ÓE Š".W‘ÝÕÏ"‡“¹eóP^6¨ªüî©ßràÀ?ÒÉ^ÆÝÎ|²·‡ß |´Jß´é2Öž¹AimkAUU•A¢±(ñX?)EÑTgßÂË ¢(âp:‘$ ¯Ç‹ÛU¸ íïç¾ûÂÞ½{ÓY’À© Mûdz9™dà)àÝéßÖÔ¬acm-’ä´[ÿq‚¢(ôGc|ÿ®D"‘ôÏ*pmcCÓíåPuõµ` °@Sâ²eËxÇÉ'S¹ ŸÏ?b*b“_TU%‹ÓÝÝÅ×_ç…öÑÖÖž™ä0picCÓ'³5©ÒÔÕ×¾xXí¼$ɸÝ.S mÌ£ *Äb±‰îÄ>|¡±¡)2^‚L `èåÃ[ÑÄ1/!´™UöÛš3“É”ÒÔÕ׊h/"¾XTE˜Û¡Ìfê(hqý£À«À/šMÅД`óöÁÊÔÛ` Àòذ8¶,Ž-‹c ÀâØ°8¶,Ž-‹c ÀâØ°8¶,Ž-‹c ÀâØ°8¶,Ž-‹c ÀâØ°8¶,Ž-‹c ÀâØ°8¶,Ž-‹c Àâü?C,¢ÞgÿÓ×IEND®B`‚pommed-1.39~dfsg/icons/gpomme_128x128.xpm0000664000175000017500000004346111571653265017516 0ustar julienjulien/* XPM */ static char *gpomme_128x128[] = { /* columns rows colors chars-per-pixel */ "128 128 81 1", " c #2E3436", ". c #303638", "X c #33393B", "o c #383D3E", "O c #383E40", "+ c #3D4244", "@ c #404647", "# c #424749", "$ c #454A4B", "% c #484D4E", "& c #494E50", "* c #4C5152", "= c #545653", "- c #565854", "; c #565A5A", ": c #595B57", "> c #5A5D5D", ", c #5A5E60", "< c #5C605D", "1 c #5C6161", "2 c #60625E", "3 c #626461", "4 c #666864", "5 c #666A6A", "6 c #686B66", "7 c #696D6D", "8 c #6F726D", "9 c #6E7271", "0 c #717574", "q c #767873", "w c #777B7B", "e c #7A7C7A", "r c #7F817E", "t c #7E8281", "y c #81837F", "u c #838684", "i c #848886", "p c #868988", "a c #898B86", "s c #8A8D89", "d c #8E9190", "f c #91938E", "g c #919492", "h c #979A97", "j c #989A98", "k c #9DA09D", "l c #A0A09B", "z c #A4A5A0", "x c #A7A8A4", "c c #AAAAA5", "v c #ACADA9", "b c #AEB0AD", "n c #B1B2AD", "m c #B4B5B1", "M c #B6B9B3", "N c #B9BCB5", "B c #BCBDB9", "V c #BEC0BC", "C c #C0C2BC", "Z c #C4C5C2", "A c #C6C8C3", "S c #C8CBC5", "D c #CCCDC9", "F c #CED0CB", "G c #D3D3CE", "H c #D5D6D0", "J c #D6D8D4", "K c #D9D9D4", "L c #DDDDD9", "P c #DEE0DC", "I c #E1E1DD", "U c #E5E5E2", "Y c #E6E8E5", "T c #E8E8E6", "R c #EBEBE9", "E c #EFF0EE", "W c #F0F1EF", "Q c #F5F6F4", "! c #F8F8F7", "~ c gray100", "^ c None", /* pixels */ "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^==============================================================================================^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^===============-============================-======================================================-===^^^^^^^^^^^^^", "^^^^^^^^^^^====-====--=====-====--=================-====--=====-===-===-===-===-======--===========-=====-=====-=====^^^^^^^^^^^", "^^^^^^^^^=====--2qusssssssssssssssssssssssssssssssssssaafssssssssssssssssssssssssssssssasssssssssssssssssssssy8:=-====^^^^^^^^^^", "^^^^^^^^=====6lSPKGDSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSACADDDZZDSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSDFGPHCf:=====^^^^^^^^", "^^^^^^^==== +KKKKKLKKKKJJJAMJZ===^^^^", "^^^^==3LCNGKHKKKKKKKKKKK: yKKKKKKKKKKKKKKKKKKG2 .yKKKKKKKKKKKKKKKKKKKKKKKKKKKCX. 8KKKKKKKKKKKKKKK: @KKKKKKKKKJJJJANGZ===^^^^", "^^^^==6IDBHKKKKKKKKKKKKKN+ yKKKKKKKKZ88qKKKKKKKKG2 2CKKKKKKKKKKKKKKKKKKKKKKKKKKKCo .8KKKKKKKKKKKKKKK2 .+KKKKKKKKKKJJJANJZ===^^^^", "^^^^==3LCNHKKKHKKKKKKKKKKNyKKKKKKKKKn XHKKKKKKKGGqCIKKKKKKHKKKKKKKKKKKGKKKKKKKKHyyyzKKKKKKKKKKKKKKKjyyfKKKKHKKKKKJJJAMJZ===^^^^", "^^^^==6LCCIKKKKKKKKKKKKKKKHKHKKKKKKKm XKHKKKKHKHKKKKKKKKKKKKKHKKKKKKKKKKKHKKKKKKKKKKKKKKKKKKKHKKKKKKHHKKKKKKKKKKKJKJSNHZ===^^^^", "^^^^==4LCNKLKGKKGKGKGKKGKHKHKKHKHKHHm XKKHKHHKKKKHKKKKKHKHKHHKKKKKKGKKKKGKKKKKHHKHKHKHHKKKHKKKHKHKHHKGKHKHKHHHKJKKKLDNHZ===^^^^", "^^^^==4LGNKKIGKGKKKGGKKGKKKKHKKHKHHKn XHHHKKHKHHKKHKHHHKHHKKHHHKGGKGKKGGKHKKKHKKHKKHKHKHKHKKGHKHHKKKKGKKKHHKKHHJJKPLDNHZ===^^^^", "^^^^==4PCBKILKKGKGKGKKGKGKGHHHHKHHHHm .KHHHHKKHHHHHHHKHHKHHKHHGGKKGKKGKGKKHGHHHHHHHHHKGKGKGHKHHHKHHHHKHHHHKHHHKHHJPLDNHZ===^^^^", "^^^^==4LSNLPPHHHHHHHHHHHHHKHHHHHKHHKGnnnHHKGKKGKHHKHHHHHHHHHKGHKKGKGGKGKHHHKHHHHHHHHHKHHKHHHHHHKHHHHHHHHKHKHHHHJHHKIPDBJV;==^^^^", "^^^^==4LSNJIPJHHHHHHHHHHHHHHGKHHHHHHHHHHHHHHGHGGHHHHHHHHHHHHHGKGKGGKKGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGHGHHHHHHHKIPZBHZ===^^^^", "^^^^==4LSNFIIKHHHHHHHHHHHHHHKGHHHHHHGHGHHGHHGKKGHHHHHHHHHHHHGKKGGGGGGGKGHHHHHHGHHHHHHGHHKGGKHHGGHHHHHHHHGKGHHHHHHHIIUBMHZ===^^^^", "^^^^==4PSMSUULHHHGHGHHHGGHHHGHGGGHGHHHHGHHHGGHGGHGHGHGHHHHHHHGGHGKGKKKGGGHHGHHHHGHHGHHHHGHGGHHHHHHGHHHHGGGHHHHGHHHIUPBBJZ;==^^^^", "^^^^==3PDNVUUUJGGHGHFHHHGHGGGGGGHGGGGGGGGHGGGHGHGGHHGJGGGGGGGGGGGGGGGGGGGGHHGHGGGGGGGGHGGGGGHHGGGGHGGHGHGGKGHGGHGKUUJBBJC===^^^^", "^^^^==4LFMBJUUPGGGGGHHDHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHUUUZBMLZ===^^^^", "^^^^==:LJBBVUYYPGGGGFHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHGFHUTTJBMVPV===^^^^", "^^^^==-LLCBIPYRYUHGFGGFFGGGGGGGGGGGGGGGGGGGGGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGFGJYTTUTDBDPm===^^^^", "^^^^===DPDLEEIRRRYIPJHGJHHHHHHHHHHHHHHHHHHHHHHHHGGKGJGHHHJGJHHHHKGGKHHHHHHHHGGHGGGKGHHCHHHGHGHHGGHHHHHHHHHHJPYRRRYYWRDLLk===^^^^", "^^^^===cPRWREEYIRRRRRRRRTRTRTRRRRRRRTRTRRTRTTRRTRRTRRRRRRYRTRRTRUTTTRRTRTRRTRRRRRRRTRRQERRRRRRRRRRRRRTTRRRRRRRRRPRRWRWULq===^^^^", "^^^^===eYQQEEERJJYRRRRYRRRRTRRRRTRRRRTRRRTTTRRTRTRRTTRRRRYTRTRTTRRTTTRTTRRRTRREIRTRRRRTTRRTRRRTTRRRRRRRRRRRRRRPSYEWRQQQH;==^^^^^", "^^^^===-U!!QEERZNNCSJJJLLJLJLJKKJKKKKLKKKLLKKLKLJLKKLJLJJLKLKLJPKLKKLKKKKLKKLKKKKLKKKKKKKLKKKKKKKKKKLKKKJLJGABBNJEWRQQQm===^^^^^", "^^^^^===wQ!QEERNNNNNNNNNMNNNNNNNBNNNNNNNNNNNBNNNVMNNNNNNNNNNNNNNCNNNNNNNCNNNNNNNCCNNNNNNCVMMNNNNNNNNNNNNNNNNNNNNSEEQQQU:===^^^^^", "^^^^^===;MQ!!QJNNNNNNNNNBNNNNNNNNNNNNNNNNNNNBMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNnVVMNNNNNNNNNNNNNNNNNNNNNEQQQQe===^^^^^^", "^^^^^^==*;LQQQYSNNNNNNNNMBNNNNNNNNNNNNNNNNNNNNNNVNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNnCMNNNNNVVnVNNNNNNNNNNNNNNNNNNMVFEQQQv====^^^^^^", "^^^^^^^=--;MQQPLLGSZCCCCCCVVCCCCCCCCCCCCCCCCCCCCCCCVCCCCCCCVCCVVCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCZDHLPYQEs====^^^^^^^", "^^^^^^^=====uJLPPPPPPPLPLPPPPPPPLPLPLPPPKPPKLPLPLPPPKPPPLPLPLPPPPLPPLPPPPPPPLPPPPKPPLPPPPPPPPPPPPPPPPKPPLPLKPPPPPPF2====^^^^^^^^", "^^^^^^^^=====-evSHPLLLPLPLPPKPPKPPPLPLPPPPPPPPPLPLPPPPPKPPPLPLPPKPLPPLPPPPKPPLPPPPPPPLPPPKPPPKPPPPPPPPPPPPPPPPHCj6--===^^^^^^^^^", "^^^^^^^^^^========-<3323<33233<32332<32323<33223<33233<32332<23233232222<223<2222322<222<3232222<22222<22322<-====--==^^^^^^^^^^", "^^^^^^^^^^^=======--==-=====-=====-===-=-=====-===-=-=====-===--====--==--=---==--=---==--==--====--:====--=========^^^^^^^^^^^^", "^^^^^^^^^^^^^===========================================================-===========================-=============^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" }; pommed-1.39~dfsg/icons/gpomme_16x16.png0000664000175000017500000000053311571653265017317 0ustar julienjulien‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYsXX‡êtIME× _ƽ&èIDAT8Ë¥“Ý Â0…O%©+Äè‚P(Šà‚¸€Ä¡R°¡;|gÈÞ⃤-BÓ !÷\8_N–·Þ¬¶BébÖZK&„Aþ–RJ2#ú½~-÷ýqˆÈé Z¦áÜYkŽ0G?=çþ/À¤F“y–‚ˆgieR Žç8Ÿ„ã9ˆžåŒèYj³›bŸ";ƈ¦KdǸ<鳯JÀ¾¯pJö EaÇK;kö­+Ô- ÐétÝ×Û¥–Ñçí7@k-•RΟɛ-&¾ó ê*…”ð‰%„IEND®B`‚pommed-1.39~dfsg/icons/gpomme_16x16.xpm0000664000175000017500000000127211571653265017340 0ustar julienjulien/* XPM */ static char *gpomme_16x16[] = { /* columns rows colors chars-per-pixel */ "16 16 18 1", " c black", ". c #2E3436", "X c #555753", "o c #70726D", "O c #888A85", "+ c #BABDB6", "@ c #C0C2BD", "# c #D5D5CF", "$ c #D8D8D2", "% c #DADAD6", "& c #DDDDD9", "* c #E0E0DC", "= c #E3E3E0", "- c #E6E6E3", "; c #E9E9E6", ": c #ECECE9", "> c #EEEEEC", ", c None", /* pixels */ ",,,,,,,,,,,,,,,,", "oOOOOOOOOOOOOOOo", "O@@@@@@@@@@@@@@O", "O@::::::::::::@O", "O@;;;;;;;;;;;;@O", "O@>----..-..->@O", "O@>=.==.===.=>@O", "O@>.*.*..**.*>@O", "O@>&.&&.&&&.&>@O", "O@>%%%%.%%%.%>@O", "O@>$$$$$$$$$$>@O", "O@>##########>@O", "O@>>>>>>>>>>>>@O", "O@++++++++++++@O", "oOOOOOOOOOOOOOOo", ",,,,,,,,,,,,,,,," }; pommed-1.39~dfsg/icons/gpomme_192x192.png0000664000175000017500000001633611571653265017501 0ustar julienjulien‰PNG  IHDRÀÀRÜlsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<[IDATxœíyxÅ÷?==÷Ⱥ,ë²,’ øX“†À†Ìa¢‘ÂB`7¼a—w$„ËH^Ž@Ö²»„+Þ(ŠÞ7 ›b ]®@Ž5`ùå’ÙºæÒt÷þ1šÑô\š™nIcw}ž§ü¨KÝUÕòïÛõëª_uIš¦!XÛt7@ ˜N„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–F@`i„–Æ>•´¶µ¸€: !:AvF€½퇦¢2Éìâ[ÛZÀÙÀç•@=Paj%+znàEàgí»Ì®Ä4´¶µœüpPnJ¡ž÷Ou´w†Ì(аZÛZæW’&`'p'°®£½Ó,€Ö¶ ¸¸pi„@P ®ìhïÜXh  µ­Å¬>—éœY³fÑÜÜÄÜy󨪜‰¯Ä‡ÇãÅn·c³‰÷`Aš†¢(C!ü~?ƒƒƒìÛ·—Í[¶°kç.FGG3]9´v´w¾\Hµy  µ­¥‘èKÉòäßÙí2K—-å”SN¡¶¦Ç‹$E½¢P(D à'‰Q"(‘ªªÒfÁ±„$a·Û‘e»lÇårãõx‘lQ»ehh>úwß}ƒ¦+Enîhï\›wõù µ­¥†è‹Hƒþ$.læÌ3Ï ¡¡·Û @8fph€‘‘a"‘ª¢ †P%¢ ª &B Ž2l6 Y–‘e‡Ë‰ÓéD’$¼^%¾J|3@MÕ82p˜?þñ¼÷Þû ¤+î–ŽöÎGò©?gŒ o¾|:1¿¬¬Œ«¯ºŠÚº:dY ‰ÐøCCƒ¨ªŠx„` H8Χm b“m¸Ý¼%^œÎ¨ fVVáõúÆÎ…¼üòoyë­·’/W€ó:Ú;_͵¾|ðÏÀWófÏnàî»îÁír ñüìßßË¡þƒ¨ªÊÈÐ0ÃCÃÂÕ„Ûã¡´¬»ÃŽÇãavÝJJfàõxq¹ÝüâÅŸñ“Ÿü$ù²CÀŠŽöιԑÓÛhk[Ë%$II W_}²,ãtºðz¼ iD"FGG9лŸÁAaü‚‚ ìïícxh%¢ áv¹ñz½DFGYyêJÎ<óŒäËfí¹Ö1a(Dk[‹ <˜˜g³Ù8gÕÙø|>A?àv»™1£ Wÿ!8„ª(ñ`]…v;¸Ý\.—²8áp˜`0ÈððÃÃÃiÏÄçõQQ^‰ÏW‚ßï'¡¨ 'Ÿ|2===ìÞ½'ñ’S[ÛZ¾ÐÑÞùÓ‰êŸÐjmk¹x:1oåi§²êœsñz½Ñ R5s²lçw¯­'‰¤”S]]Ãܹ󨪚%Œ^–ááaöîÝÍöí=imèøÓ´`!ûúöà°;°; ÁŽ=¼ðÂ:FFFOß ,îhïL-(¬ bÛ4Æò**Êùòõ_ffeýý‡8|¤MÕ8tàŠ¢¯¯¤dK–,¥²ræ„¢½ÂÖ­›Ùµ+Õ¯¨¬Àéva·;h˜=Y–Q…ßýî5^y%åÝ÷+íOe«k¢GñÅ$?À©+WRY^ €ß₩Ñðªu{b©ºº†•+OÆ/È §ÓÉ’%ËX¾üȲ¬³©#‡ ‰DFÙ Y–Y±b•••ÉEÝ4Q] @7Ó[UUʼn˗#Ùl Á¡þ褄Īªº†ÖÖÖòÉO®Àn—M$‘òNõõõ¬Xq6›Mg[ÃCÃhš†ß?BÀï ¼¬‚ÓN[I‹[ÛZæ'g&’Q­m-v`ubÞ 'œ@iiÃ#C„Ã!TU%èèXZZÆÒ¥Ë MC$‘ N••UwÜñ:ûÒT ?Œ?„%›ÄÒ¥Kq:ɦüÙ‚@tÂKÇ¿dÉâøÈNÿáèz…ÀXCb³Ùl,]º,>)&¥±q•••:ü4M#ÅGJg”2gNCòå àäăÒÒRjjj…‚ñà¤p0L4 :šjjê())"èBE:vRsó"íLÓ`4µÁá‘!l²Ìâ%KHâ´äŒD²  >ñ ¦¦ÛnŠD"hš¦Sfccã´w›"{©´´Œòòr­Åà÷ ©sç&ÛqIk[K‰aÔÖÖÅ—»øýcGt ŠN†•f)R (œªªY:{‹ŒF‡Ü5MÃ{.O»±.S™Ùf‚g'”•E_~55êwñ‘ŸÑa(-‡[ò§²²‚íÛÇíMÓ4bH0Àçóáv»±ÙlÉ!8µD'ÆRÈ&ÝàýŒÑ^$’0Ñ«<†ËåF+"û÷¨ÊøB’Àçóe¹BPÌ8î”𚘠*ˆÎ ¸Ýnücãc¤LÄÈ&]MNgtÕ£n¦W#I.Š©ø§[¿Á¶í;âÇ>ŸŸw¬›¾ át:°Ùl$F/hª¶ñsÌO@Ƶê9(¿SZ¼äØíSò™!…±Ûíº8¡˜ÌùØaÞ«i‰.…”¦KÊ·Ä©¥ØÛ'˜½ÍÅ~VÕÂþc =²%)šô³…iwû!IZ›+ƒHV£áöYIçuÁ˜ÓžÔ˜Ø¤E1Sìíd'Eµ`ÂÊ)!&M}+J„] –“ŽÂËÛÚÝM 0íE*$I¤Ú\á@â¬\4nŠ¢ðàCrËíwóŸo¾mN¡ùhc·~ó.îXs@pº›cYRlΠ ¿$Öu2=ysCQ¾ýðwã†ÿàC¢iÿ‡3NO‰õž¿Z¶”êêYñc·Û]Pû>Ú¸‰;¿5ü6vqÇš{¹ÿž»ðxÜy—5¼ñ_oñ— .çüsÏaQs“.ï‡Ï¯# EŸÏ:X‹ÿ¨ý\Q^Æ•W\n¨ Eõ ¡€Ñviš¦3~·þîËk¬Aè?9ïÁûÖàt8 ×1ÙlìÚį_ú­ár–/[š"€_ýæ%FFü®ÐÓ0{vÑ ÀTȨO&I‹O8>%?¹W˜*ÒŒEÍÍG…ñk¤ºÝÓíéÐ »@—\t!šÿòô3ºüÄžàÓ§j¨Ž\øhã&îº÷þ´ÆéÅrÃu׾שÜvÆ‚Ïôyù—a„¢ê0µˆ5°T÷%&‚]›L©'ûz{'0~㮕 0Ì|úƒé=€y\zñ…@jO°òS'sÜ¢…“V/@]m-ç¯:›Ÿ½ø«”6+Æïõzxþß²~1$…ØGyáé1Ã7ÐÇŸø¯ýþuSÚšˆÙó¦ zhž[péÅ«yúY êú|ã–›‘e[Nõì?p­ÝÛØõñnêjkX´°‰ºÚÚœ„{Ãu×ÄEs{̼¿éEÂçópþþ½Þô#a6[º¿ql,¿pR¢¦u4iò÷ 'â’‹¢=ÁÆ®M|ýk7c³Éëá¿ü›6wÓÝÓ“öÚ^¯—…Í XÔÜÄE^@ÕÌÌß,ºþÚkâu%þ|´‘©ÝÓq?Æë,¢aÐôýùÕK.ZÍç>{Áا/ÿý?ý™ÇÖ>Eÿá¬eùý~þ{Çü÷†ùÕKëùÊõËÙgýuÆóo¸îKc?¥ÖŸ•ɼ§Le›Qg¢Ý+¯hßr­Ëò¯?|Ž—×gþ$¼$IiGü~?<þo¾ý.7ÝøwT”—™Ö^Áäìi ÿ‚ɦ´[Ý»ow¬¹ýûõÛæÌi˜Í²¥KXÔÜDsSsêÙ×ÛGwOÝÝÛøpã&º·õÄÏçï³±k3w}ó6ÜÔÝÀ43™ÿW“åv¥¾k†úÃëR»£©Q€ªª<òøZñ˲Ì/o¡õó—¤|zNC=sê9ëÌè7¿ùí«<ýìsÑþƒCC<òØZÖ~÷!<žcmÓËÉtG¦¶Îô=@áœ0w&8þßÏÿƒM›ÇúÏmœÃc=@Û.Ëéóëœ{6O<ö0KÏ<÷öõñÃç_˜”ö ÌÁìy“C!ˆ¯ ˜Ì´cçǬkßû ¼¬ŒgùóæåUNõ¬jî»çNæ4ŒNï×/­çOù`Ú?evJÇÑXgŠÍé`’ãÁUUáÑï=¡Û7ö¦o ´´°Ï1:v¾öÿ{ln!ÊãkŸÄLÅýgbòêÌò`¬ÜÔphc“³ {öîc[Ïöøñ9g}†O¼ÂP™ÍMó¹¼å²øñÁCýlìê2T¦`r(j(ÚMi“š¶voÓµ¡µåSÊýü¥ë¾hÝÝÝ3é÷2U)S/0¹u¦«ÏxfG ›úUˆ\¹{ÏŽÌz΢Eé÷& _–”ø¨«­É­Ò p:4ΙÃö;RêIæÃ²÷>Ÿ‡ùóæ™Ò®É"pÕµŸÓ¹gŸu&×\õÅInQn¤µ¹l^Þ\_ØdXçÏ^äÕß½‘õœ§ŸúÕ³f¥äwwfó‚y×…Í rÀíwß›µœeKóÀ½w™Ù4ÓÑ4#éw[OaÄŸÛ‚—© ¨V„%/LŽuq‘Ã)i»RUUéÙ1¾qZsÓüœêË•æóˆ­›êï?L?Y¯IG67àh$×ÿWý5™Ý.c˜;Ü^”‹â3QÝèOô[¤æ‘î†L-_`œ¢[0•ñ@Q?}6;v~ À¶ž¦–Ÿ8ºäõzM{¿(FdÙÆ_-[šÓ¹sS·š6¤d·{Z—D¦ MÍ¥‹ûÔÉ+¨žU•õ¯Ç“¶¬æóãèÞÖcª«‘è÷7-˜¤¿Ÿ¶/\–’—Huõ¬¢rÒµÅår³æŽ¯*#ûùisMqL\3==À©§œÄ©§œTPMM xeìúà¡C RVf|WUUéIø”zó‚Ì»k^ÑúyÃõëHF†f²•k²ÇqÔÍ/lÒæk¯¿aJ¹o¿û‚ >ÿÂæù“~/S—2qôÕY„óSûyôÆÆFÊÊJˆÎ#¬kïdÅ'NdNÃì ®ÌÌ‘¾ÿ¯ÏÆN'Ç/:~Òïeº™ÌûËT¶Ñ:Ó/Ã-œ£.Ôépð•믋ŽŽòØÚï'ï •Oþài†††âÇW^ÑJeeÚÍÖÓLQ‡BHÒÔté§žòI>sæéñvlëÙÁãOü€`0˜W9Šá¹ý˜?¼ÿ§xYKN8ž‹VŸ;%÷1µ)G_E= ªiS·"ìË×\ņ6Ò8ºøõÿ|“M›·pÓ7°$Í×å’Ù¹k7?ñÛ&ÖÜn7ÝxS½²m²™,w$k™ò Ö™bôÅ4 :…Sø|>¾ú÷×sÿwŽ»?}ûp÷½röYg²|ÙRš›æSS]¿¦ÿðaº·m磮Müú¥õº½¦$IâÚ«¯¤¦:5üBP<¤¼,ÏÔPˆ(S÷èüĉKyèoñØÚ§øx÷ :œ¹þÕß³þÕßPR⥡~6½}}H€W5s&_ýÊu,_¶”©lÿô3™÷šÍ2‚¹OÙ£n(™ùóæòðƒ÷ÒþÓÿÏ/~ù›”—ááa?›¶¤Ý#€³?s×~éJ<Ï1åöäÂtܯé.A&a"Ìü¿jצ-lß¹‹Õç“ö÷‡«¾ØÊ)'’ýûOéîÙN(”9ŽÇáp0on#_¸ôbNZqbÖv¿ýî{@ô“ŒÇ“§€Ì3¾ÆêL÷%#˜ºGØdеi ÷}ûa‚ÁŠ¢ŽÐ¤ç¸…ÍÜwÏí¨ªÊÞ}½toÛNwÏvvïÞCmM5MMói^0ŸÆ9 ºÅ/™xûÝ÷xäñ'øÚ?ÞxŒŠàè"åK$ÓýmP½Ì=éÚ´…û¿óp|†ö™ç£»¼ö‚Ì"ˆ¶ËÆìúzf××ó×gœžöœ‰Úùö»ïñè÷žŒ»T<þ$ÿôG§¦e(MÙѰjcåšýlr(„ycÈÉÆã™ç×ñQW—©u%§}½}:ã‡èËõ£ß{rÌ%šìñó£cL>ÿų́ÓÜÉW“Å›ãumÚšÖø!úôÏeœßuµÕ|éʶ”üq¼?©õ 2SÔ3Á±.ÎHšÈø¯¹ê‹¦Ô3QºðüsÓ®ƒ‰à­wÞŸ’v˜‘21¹õ¦¯Øh¹f/Â2(€äAöî+{Ò4•gž_—Åø¯0T~¾é³¬«Sªª<ûÂ:ÂáД¶§ð”‰£¯Î" …0wöW’$¾qëͬ¹ÿ;ìÙ»/ž?nüùñÆ›o388äæ°Û9oÕÿÊ«ŒØ ÷³/ü8žWQ^ÆÝß¼§Ó™w›Æ0{ÐÑäaPÍð[~yY)kî¼5÷ÿ_öìÝÇ…ç¯âKW¶eìR³ñâü†»>Ž{½Î=笼˹ðüU@TåeeÜsÇmÔ×ÕÔ¦é };'{áþäÔYT±@“ Q^VÆš;oã÷o¼É%­6\ž\xþ*œ‹O8ŽÙõuÓÝœ¼¸hõyœ¾òSº<Ù>ñ<ˆ.o¹ŒÕç­Òå9]fô˜E=lÞ¥¼¬¬hŒ?ƪ³?3ÝM(ˆªª™TUeÞ j2¨«­¦®¶zâ󤨂áRá3u·ÅC±·OÔÍ÷Š(ZØ–`²)²`¸©Ý'L 0{M°éÑ Åîb{ûÙI †3HÑGƒ ‰¤ÆÿLëgQÒ-‰,ž'ìÕs9þÀø—í²bjŸ R0.PlÂqlEõ"¼ø„Ô-O‹©}‚ü‘$}ôŽª(†Ê3$E‰è:D%˜‡$ÙR\îÈt QHìƒ$IF¸‚É"ú€Õ @Q"éOÎC ëi·; µG Ȉ,;tö ÕË;:qêá‘!]hªÍfÃnOÝ×K 0‡Ã©³·á‘ñHßBÝï¼{Y¿$<&árï¬âryˆDÂ5F È„ÃáÒÙÀðð¸ìraÎLÞWÙ“¾¦004@Û?v8œØíNFG…æáñøRÜ`$~œ,Ž\Éùª˜¯%Ûõ—ô>HUe•ÎõñùJìGU½¡ µ§dß WwlO°Ë|¾ží@÷vGŸè’$é\UUÙ°Oç›É²LiiEʘ­@/·Û«³¯`(ÀÀàÝyî/$$“ñM9[p(ñ Ñßòy}„BãÃ=N§E`—Ç{»ÝAyùLªX“’’R<Ÿ.OÓ4l6 »l'2fW6› '*EQÒ  ?SÙÑ{?,ëóŽ7jfe ³q»<¨ªªSªÝî ²² ¯·Äð‚y‘¬“'1»Ñ/‚WT…ÒÒrš›ÅG$½oüý  ¦sz“3bdëö&<°?þ³ÓåÂépâöx˜77º[»M¶!Ûe4UÓ •J’ÌŒex½%ƒ#ƒ"‘Q‚Dl6.—·ÛƒÓéN{N(Âç‹>|KJf°`^3Û¶o¥¤d|“ÄÄ~Ø—.òÀîÝ{‡Ãñ/!ÔÕÕ3³r–îÍÜáp‰DPÙ¦-’eŸ¯Ÿ¯MSQuì%YËÒÁ±Ž$ÉȲ ›-ûåÑÑpÜøc”—WÐ4!Z‚ íúxWò¥ÃíÙÊÍ&€÷Ù¿¿††9Ȳšê:"‘Ñ”îÆn·c—íCÁŒc³’dÃn·MP½@Š¢b“Áãõ¦ý}Mu-#þ††Ñ47||Ê[ÙÊÏöð_ÀáÄŒ®®.l63+g"Ûl82ÍúJàv»é;Ы GrEQöõíACÅáHÿ5 Y–±ÙlÌ(™ÏëÃ?2ÂŽ;“Oûe¶z2  £½3ü:1oÆ(›Q²Û²‰@ƒûØÒÝŶí[9Ø€ÑQáû 2£iCÃìÞ»‹®MÒ·¿—¡áô»úØ$›N¥¥åôöõŇëÈ*€‰|_;8pàûz÷±`þ‚ñìvTMEI KŠïÁ54<½1váv{p88íNìGJx«ÀBhŠ¢0et4L0L±£#G3«Jÿy §Ó©‹ U…×_#¹†íÛ³5a"¼ìcÿþãñ¯ß¡ ‰p8œ …Qf~I?ô SÆi‚´   ªj|dQ’$œcAq‰lÚÜÅ–-›“/ÿç‰ÊÏ:UÛÑÞ¾•˜·eËVþò—?ëÂP%¢“a‰á‡è^‚‚Ð4謯M²árºtÃìù}ö¹ç’/Ý üÛDåç«ð°)1ãûO=ɾÞ})˜»§ÃI0ûr²@`œ#‡‘e§Ë•fEX„gžû!}})s]wŒ½ÇfeBt´w*Àí‰y£££<úÝGNte›,SQ^)ü{a</>_It-@ÒïTUåÕ×^áwÞI¾ìŽöΟæR~NÑjí?Ö&æíß¿Ÿ¿ómú÷§ôáPˆÊÊ™4ΙGee•.xN ˜Y¶SZZF}]õu³q8)…¢(¬õ·¬[·.ùòC@êö>r]RÖÚÖâ^>˜_VVÆm·~†Ù H’DDQRBU"‘€ŸH$BD‰Î]Ñ/8ú‘$ ylòT–eÜ.7.wêÓç-¡¬´ ˆF&ÿ¤ãǬå•äÓ༎öÎWs®?Ÿ5•­m-5Àû@Cb¾,Ë\véeœsÎ*”H„Á c·A¡È²Ì¬™ÕìØ¹gž}†©^·t´w>’O¹y  µ­¥‘èðèòäß•••²bÅ –/_άYÕ)oëA!ºº6ÒÕµ™>Øî¸¹£½smº_f#o´¶µø€uÀç2S]]Ã'N\ÎÜyó˜YY‰ÇëÅépš½¿àCQT‚ÁCCCôõö²áÃزyK¶(‚A µ£½óåBê+H­m-p7Ñ"W.×8N c #585A56", ", c #595D5C", "< c #5B5F60", "1 c #5F615D", "2 c #5E6363", "3 c #60625E", "4 c #636562", "5 c #666864", "6 c #666A6A", "7 c #686A66", "8 c #6A6D69", "9 c #6C706F", "0 c #6D7171", "q c #70726E", "w c #717574", "e c #757978", "r c #787B76", "t c #797D7C", "y c #7D807E", "u c #7E8180", "i c #80837E", "p c #828483", "a c #858882", "s c #858888", "d c #8A8C8B", "f c #8E908E", "g c #8E9190", "h c #939593", "j c #969896", "k c #999A96", "l c #9A9C9A", "z c #9EA09D", "x c #A0A09B", "c c #A4A5A1", "v c #A6A8A3", "b c #A7A9A8", "n c #A9A9A5", "m c #ACADA9", "M c #AEB0AB", "N c #B1B1AD", "B c #B4B5B1", "V c #B6B8B3", "C c #B9BCB5", "Z c #BCBDB9", "A c #BEC0BA", "S c #C1C3BD", "D c #C6C6C2", "F c #C6C8C3", "G c #C9C9C5", "H c #CCCDC9", "J c #CED0CB", "K c #D3D3CD", "L c #D5D5D0", "P c #D6D8D4", "I c #D9D9D4", "U c #DDDED9", "Y c #DFE0DD", "T c #E1E1DD", "R c #E5E5E2", "E c #E7E8E6", "W c #E8E8E6", "Q c #EBEBE9", "! c #EFF0EE", "~ c #F0F0EF", "^ c #F5F5F4", "/ c #F8F8F7", "( c gray100", ") c None", /* pixels */ "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", ")))))))))))))))))))))))))=====================================>===========================>=================================================>=>=======================))))))))))))))))))))))))))", "))))))))))))))))))))========================================================================================================================;==============================)))))))))))))))))))))", "))))))))))))))))))============================================================================================================================================================))))))))))))))))))", "))))))))))))))))===============================================================================>================================================================================))))))))))))))))", "))))))))))))))===============>==============================>>===========================>=====>===========================-================>>===================================)))))))))))))))", ")))))))))))))=========7fMAGLTTIIUUIUUUIYUUYIIYIIUUUYUUYIIYIIIIIIUIUUUYIIYUUYIUYUUUYIIYIIIUIIIIIIIUIUUUUUUUUUUUUUUUUUUUUUUUUUUUUIIYYYIYYIYYIIIIIIIYIYYIYIIIUUUUUUUIUPJSVzr1========))))))))))))))", "))))))))))))=======1iAJYYYLJSSSSASAAASAAAASAASASAAAAAAASAASSSSSSAAAAAASAAAAAAAAAAASAASASSSSSSSSSASASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAASSSSAAAAASAASSASAAAASSFJLIYYIGx5=======)))))))))))))", ")))))))))))=======rCPYUPSSCCNmvvvvxnxmnxvvvvvvvvvvvxvvvvvvvvvvvvvvvvmxmxmnxmxmxmnvvvvvvvvvvvnnvvvvvvvvnnvvvvvvvnvvvcnxnnnxnnxnnxnvvvvvvvvvvvnvvvvvvvvvvnvvvvvvnvnmMVSCSJITYJk3>>====))))))))))))", "))))))))))======4SIYYPFCCNvxxxxxzzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxzzxmBSSKIIIIf======)))))))))))", "))))))))))=====qQ^QRJACMxxxxxxxxzxxlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzxxxxmBASTQ~/M======))))))))))", ")))))))))=====3J^(/RGVxzxxxxxxxxxxxxxxxxxxxvxxxxxxxxxxxxxxxvxxxxxzxxxxxxxxxxxxxxxxxvxxxxxxxxxxxvxxxxxxxvxxxxxxxvlxxxxxxxxxxxxxxxxxxvxxxxxxxxxxxvxxxxxxxcxxxxxxxvxxxxxxxxzMSL~(/Th=====))))))))))", "))))))))=====>xPQ~(~JvxxxxxxxVSSGSGSGSSGSSSSSSSSSSSSSSSSSSSSSSSSSGSSHSSSHSHSSSGSSSSSSSSSSSSSSKSSSSSSSSSSSSSSSSSSSSSGSGSGGSSSGSHSSSSSSSSSSSSSSKSSSSSSSSSSSSSSSSSSSBMxxxxxxxCQ(~~TAq=====)))))))))", "))))))))=====fPIYKTQxxxxxxCI!Q!Q!Q!!~~~~!Q~~~!~!~!~Q!Q~~Q!~~~~~Q~QQ~~~~QQQ!Q~!~~!Q!!!!!QQ!Q!Q!Q!Q!~~!Q~~QQ~~Q!~!~~!Q!!!Q~~~!!Q!~!Q!!!!!!!QQ!Q!Q!Q!~~QQ^~QQ!^Q!~~QQQTSxxxxxxJQLITYA1=====))))))))", ")))))))====;5SYYHCAxxmxxNIQQQQQ!QQQQQQQQQ!Q!!!QQ!QW!W!~!QQQQ~!QQQQ~QQQQQ!WQ!!QQQQQQQ!!Q!Q!QQQ!QQQQ!QQQQQQQ!!QQQQQ!Q!QQQQQQQQQQQQ!QQQ!!QQQQQQQQ!QQQ!!Q!Q!QQ!QWQQWQQQQ^TSxxxxnBCAUYYz=====))))))))", ")))))))====;zYYKCCMxxxxAWQQQ!QQQQQQ~QQQQQQQQQQQQQ!!W!QQQQ!QQQ!QQQQQQQQ~QW!QQQQQQ!QQQ!QQQQQQQQQQQQQQ!!QQQ!QQQ!QQQQQQQQQQ!QQQ!QQ!QQQQ!QQQQQQ!QQQQQ!QQQQQQQQQ!Q!W!!QQ!Q!Q!KmxxxxNASYTS3====))))))))", ")))))))====7SYYACNxnnxSQQQQQQQQQQQQ!QQQQQQQQQQQQQQQQQQWQQQQQQQQQQQQQQ!QQQQQQQQQ!QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ!!WQQQQQQQQYxmxxmAAKYYz;====)))))))", "))))))=====hYYKAVxnxxBWQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQWQQQQQQQWQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQWQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQWQQQQQQJxxmxMAAYYG1====)))))))", "))))))=====ZYYACVxnxxTQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQWQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQCmmxxACJYPr====)))))))", "))))))====4LYPCCmmxmSWQWQQQQQWQQQQQQQQQQQQQQQQQQQQQQQQWQQQQQQQQWQQQQQQWQQQWQWQQQQQQQWQWQQQQWQWWQQQQQQWQQQQQQQQQWQQQQQQQQQWQQQQQQQQQQQWQQQQQWQWWQWQQQQWQQQQWQWQWQQWQQQQQQQQIxxnxNASYUz====)))))))", "))))))====rYYGCVxmmnTWWQQWQQWQQQWQQQWQQWQWQWQWQWWQWQQWQQQWQWQQWQWQWQQWQQQQWQQWQWWQQWWQWQQQWQQQWWQWWQQWQQWQQWWQQWWQQWWQQWWQQWWQWQWQQWWQWQWQWQQWQQQQWQWWQWWQWWQWWQQWQQWQWWQWQZMmnMCCYYS=====))))))", "))))))====fUYACNnnxMQWQQQQWQQWQQQWWQQWWQWQWQWQWQWQQQQQWQQQWQQWQQQWQWWQQWWWQQWQQQQWWQQWQWQWQWWQQQWQQQWQQWQQWQQQWQQWWQQQWQQQWQQWWQQWWQQWQWQWQWWQQWWWQQQQQQQQQQQQQQWQQWQQQQQQQSmxxmCVKUJ=====))))))", "))))))====xYYCCMmmmSWQWWWQWWWWWQWQQWWQWQQQWQQQWQWWWWWQWWWWQWWQWWQQQWWQWWWQQWQWWWQQWQWQQQWQWQQWWWQWWWQWWWWWQWWWQWQQQWWWQWWWQWQQQWWQWQWQQQWQWQWQWWWQQWWWWWQWWWWWWWWQWWQWQWWWWUMxMmCAHII>====))))))", "))))))====MYPCCMmxmGWWWQWWWQWQQTWWWWWWWWWWWWWWWWWQQWWWWTUUUUWWWQWWWWWQWQWWWWWWQWWWWWWWWWWWWWWWQQWWQWWWQWQWWWQWWWWWWWQWWWQWWWWWWWQWWWWWWWWWWWWQWQWWWWQWQWWWQWQWQWWWWQWWWWQWQTmmnmVASYY1====))))))", "))))))===;BUKZCNmmmHWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWQ* .OWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWmmbmMAAUU5====))))))", "))))))===;VUKCCmmmmLWWWWWWWWWWWWWWWWWWWQWWWWWWWQWWWWWWW- OWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWQWWWWWWWWWWWQWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNmmmAMAIU8====))))))", "))))))====VUKCCmmmmLWWWWWWWWWWWWWWWWWWRWWWWWWWWRWWWWWWW* OWWWWWWWWWWWWWWWWWWWWWWWWWWWRWWWWWWWWWWWWWWWWRWWRWWWWWWWWWWWWWWWWWWWWQRQRWRQWWWWWQRRQWWWWWWWWWWEWWWWWWWWWWWWWWWWWNmmmAAAIU8====))))))", "))))))====BIKCCNmmmKWWRWRWWWRWWRRWWWRWWWWWWRWWWWRWWWWWW- ORWWRWWWWWRWWWWWRWWWWRWWRWWWWWWWWWWRWWWRWRWWWWWWWWWWWWWRWWRWRWWWRWWWWRQRQWWRWRWWWRWWWWWWRRWWWRWWWWWWRWWWWWRWWWWRWNmNmAAAYU8====))))))", "))))))====BUHZCNmNNLWWWWWRWWWWRWWWWWWRWWRWWWWWRWWWWWWWR- OWWRWRWWWWWWRWWWWRWWWWWWWWWWWRWWWWWWWRWWWWWWWWWWWWWWWWRWWWWWWWWWWRWWWWRWRWWWRWWWWRWQRWWWWWWWWWRWWWWWWRWWWWWRWWWWWBmmNANAYI8====))))))", "))))))====VUKCCNBmmLRWRWWWRWWRWWRWRRWRRWWRWRWRWRWRWRWRW* OWWWWRWRWRRWWRWRWWRWRRWRWRWRRWRRWRRRWWWRWRWRRRWRWRRWWRWRWWRWRRWRRWRWREWEEEREEWRWRRWRWRWRRWRRRWRWRRERWWRRWRRWWRRWWBNNNNAAIY8====))))))", "))))))====VTKCZNNNNLRWRWRWWRRWRWWRWRWWRZRWRWRWRWRWRWRWW* OWRRWWRWRWRWRWRWSTWRWWRWRRWRWWRWRWRWRRWWRWRWRWRWRWRRRWRWRRWRWRWRWRWRWWRWRRRRERWRWWRWRRWRWRWWRRWRWERWRRWWRWRWRWRWRNNNNNAAYY8====))))))", "))))))====BYKBZNNNNLWRWRWRWRWRWWRWRWRR0.bRWRWRWWWRWRWRW- .ORRWWRWRWRWRWRWZo>IWRRWRWRWWWRWRWRWRWWRRWRWRWRWRWRWWWRWRWWRWRWRWRWRWRRWRWRWEEWRWRRWRWWRWRWRWWWRWWRWREWRRWRWRWRWRWBNNNAAAYI8====))))))", "))))))====BUHZZNNBBKRRRRRRRRRRRRRWRRR0 .bWRWRRRRRWRRRRu666wRRRRRWRWRRRRRCo >URRRRRRRRRWRRWRRRRRRWRRWRWRRWRRRWRWRWRRRRRRnrttttttettettttteDRRRRsuuuuuttuttdRRRRRRRRRRRRRRRRBNBNCCAYY3====))))))", "))))))====BTHZZBNBBLRRRRRRRRRWRWRRRR0 .bWRRRRRRRRRWWRRRWRRWRWRRRRWRRRZo 1TWRRWRWRWRRRRRRWRRRRRRRRRRRRRRRRRRRRRRWRRWi bRWRRO &REERRRRRRRRRRWRRBBNBVCAYY8====))))))", "))))))==;=BTKBZBBBBLRRRWRRRRRRRRRRWRh .bRRRWWRRRRRRRRWRRRRRRRRRRRRRZo iRRRRRRRRRRRRRWRRRRRWRRRRRRRWRRRRRRRRRRWRRRi nRWRRO &RRRRWRRRRRRRRRRWZBBBCCAYY8====))))))", "))))))==;;BIKZZBBBBLRRRRRRRRRRRRRRRRRh ..bWRRRRRRRRRRRRRTRRRRRRRRRRZX iRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRi nRRRRO &RRRRRRRRRRRRRRRRBBBBVCAYI8====))))))", "))))))====BTHZZBBBBLRRRRRRRRRRRRRRRTRRh .ZTRTRRRRRRRRRRRRRRRRRRRRGX uRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRu . bRRRRO &RRRRRRRRRRRRRRRRZBBBCCAII8====))))))", "))))))====BTKZZBBZBLRRRRRRRRRRRRRRRRRREh 6TRRRRRRRRRRRRRRRRRRRRRRRRi yRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRu XIIIIIIIIIIIITRRRRUIIYYY0 &RRRRRRRRRRRRRRRRZBBZCCAYY8====))))))", "))))))==;=BIHZZBZBZLRRRRTRTRRRRTRRRRRRRRh 6RRRRRRRRRRRHbgbHTRRRRRRRRRRu yRRRRRTRTRRRRRRRRRRRRRRRRRRRRRRRRRTRTRRRRRRRRRRu ORRRRRRRRTRRRRRRRRRRRRTRw &RRRRRRRRRRRRTRRRZBZBCCAIY8====))))))", "))))))==;>BTHZZZBZBLRRTRRRRRRTRRRTRRTRTRRh0TRRRRRTRId4+ O===))))))", "))))))====VUJCCKLLLLIIIIIIIIIIIIIIIIBX rIIIIIIIIIIUIUIIIIIIIIIIIIIIf .cIIIIIIIIIIIITIIIIIIITIIITIIIIIIIIIIIIIIIIIr OIIITIIIIIIIIIIIIIIUIIII8 %IIIIIIIIIIIIIIIIPKPLAAAYY7====))))))", "))))))====VUJCCKILIIIIIIIIIIIIIIIIII= rIIIIIIIIIIIIIIIIIIUIIIIIIIIIIk #KIIIIIIIIIIIIIIIIIIIIIIIIITIIIIIIIIIIIIIIIt OIIIIIIIIIIIIIIIIIIIIIIIq %IIIIIIIIIIIIPIIIPPLLAAAUY7====))))))", "))))))====VUJACJLLLIIIIIIIIIIIIIIIIIG% iIIIIIIIIIUIIIxggghIIIIIIIIIIIITi +SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIt OIIIIIIIIIIIIIIIIIIIIIII8 %IIIIIIIIIIIIUIIPPLLKAAAYY7====))))))", "))))))====BUJZZKIIILILIIILLIIIIIIIIIKD= rIIIILIIIIKIKIK% oIKIIIIIILIIILIf +ZIIKIIIIKIIIKIIIIIIKIIIIIIIIIIIIIIIIIIIIIIIIr .OIIILIILIIIIIIIIIIIILIII8 %IIILIIIIIIIIIILILIIIAAAIY8====))))))", "))))))====VYJBZLIIIIIIIIIIIIILLIIKIIIIGaLIILIIIIIIIIIII= oIIIIIIILIIIIIILkZIIIIIIIIIIKIIIIIIKIIIIIIKIIIKIIIIKIIIIIILILLDNNNBNIIIIIIIIILIILILLILIIILIDBNBBBIIIIIIIIIILIILIIIILIAAAYU8====))))))", "))))))====BYJZZKIIIIIIIIIILIIIIIIIIIIIKIIIIIIIIIIIIIIIK= oIIIIIIIIIIIIIILIIIIIIIIIIIIIIIIIIIKIIIIKIIIIIIIIIIIIIIIIIILIIIIILIIIILIIIIIIIIIIIIIIIIIIIIIILIIIIIIIIIIIILIIIIIIIIIISAAIY8====))))))", "))))))====BYJZZLIIIILILLLIILLLILIIKIIIIIKIIKIKILIKIIKIK= oIKKIILILLILLLIILLLILIKIIIKIIKIIKKIIIKIIIIKKIIKKIIKIKLILLILIILILIIIIIILILLILLLLILILLIILILILLLILLIILILLILLIILLLILITIIIAAAYU8====))))))", "))))))====VUKZVLYIIPLIIIILILIILIIIKLIIIIIIKIILLIIIIKILI= oIKIILIILILLILILIIILIIKIKIKIKIIIKIIIIIIIIIIIIIIIKIIKIILILILLIILLILIILLILIILILIILIILILLILILILLIILIILIILIILILLILILIIIIUSAAYY8====))))))", "))))))====VUHZZLIYYPILLIIILIILILLIIIKIKIIKIIIIIIKIIILII= oIIILILLIIIIIILILILILIIIIIIIIIKIIKIKIIKIKKIKIIKIIKIIILIILLIILLIILILLIILILIILIILILLILIILLLIIILIIILLIILLILILIIIILIIUUUUAAAIY8====))))))", "))))))===-VUKZZIYIYPLLLLLLLILILLKIKIIKIKIKILKIKLIIKIILK= oIKIKLLLLLLILLLLILILLIKIIKIKIKKIKIIKIIKIKKIIKIKKIKIIKLLIIILIILILILLLILILLLLLLLILILLLLLLLLLLLIILLLILLLLLLLLLILLLLLIUUUSAAYY3====))))))", "))))))===-VUHZBIYYYLLIILILLILLLIIKIIKIKIKIKIIKILKKIKLLK= oKILILIILLLLLLILILLLIKIKKIKIIIIKIKIIKIIKIIKIIKIIKIIKIILLLLLLLLLLILILLLILILLILLLLLLILILILLLILLLLLILLILLILIILLLLILLTUTUAAAYY8====))))))", "))))))====BYHZZLUTTILLLLLLLLILLLLLILLIIKLIIKKIILIKLLILLmxnxnLLIKKIKIILLLLLILLLLIIKIKKIIKKKIKKIKIKKKIKIKKLLLLIIIKKIIKKIKILLLLLLLILLLLILLLLILLLLLLILIKLILLILLLLLLLLILILLLLLLLLTTTISAAYY7====))))))", "))))))====BTHZZITTTILLLLLLLLLLLLLLLLLKKILKKIILKLIKLKLLLLLLLLLLLLKKILLLLLLLLLLLLLKKKIIKKKIIKIKKIKKIIKIKKILLLLKIKILLKIIKIKILLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLILLLLLLLLLLLLLLTTTTACAYY7====))))))", "))))))====BUKZZLTTTILLLLLLLLLLLLLLLLLKLKLLIKKLLLKIKILLLLLLLLLLLLIKIKLLLLLLLLLLLLKIIKKKIIKIIKIKIKIIKIIKIKLLLLKIKKLLLLKLKILLLLIKLLLLLLLLLLLLLLLLLLLKIILLLLLLLLLLLLLLLLLLLLLLLITTTTACAYY8>===))))))", "))))))===:BUHZBKTTTTLLLLLLLLLLLLLLLLKIKILLKKIKKLIKKLLLLLLLLKLLIKLLKLLLKILLLLLLKLIKKKKIKKKKKKIKKIKKKKKKIKLKLLIKKILLLLLLKILLLKKKIILKLLLLLLLLLLLLLKIIKKLLLLLKLLLLLLLLLLLLLLLLLIRTTTCCAUY3;===))))))", "))))))====BYHZBHTYRYKLLLLKLKLKLLLLKKLLKLKLLKLLKLKLLLKLKLKLLLLKKLLLKLKKKKIKKILLKLKKIIKKKIKKIKKKIKKIKIKKKILKLLKLKLKLLKLLKKKKKKKKKKLKLLLLLKLLLKLLKLLKKLKKLLLLKKKLLKLLKLLHLLLLHYRYRYCCAUY8====))))))", "))))))====BTHZZZRRRRILKLLLLLLLKLKLLLKKLLLKKLKLLLLLKLLLKLLLKLLLLLKLLLIKIKKLKKKLKLKIKKKIKKIKKKIKKKKKKKIKKKLLLKLLLLLKKLKLIKKKIKKIKILLLKKKLLLKLLKLLLLLLLLLLKLLLLLKLLLLKLLLLLLLLYYRRHCCAYU6====))))))", "))))))==-=BYIZZZYRRRTLLKKKLLLLLLLKKLLLLKLLLLLLLLLKLKKKKILKKLKKLLLLKLKKLKKKKLLKKLKKKKKIKKKKKIKKKKKIKKKKKKLKKLLKLKLLLLKKIKIKKIKIKKKKLKKLKLKLKKKLKLKKLKKLKKLKLKLKLLKLLKLLLLLHIRRRRDCCSUU8====))))))", "))))))==--BYLZZBHRRRRIKKLKKKKKKKLKKKKKKKKKKKKKKKLKKLKKKKKKLKKLKKKKKKIKKLKKLKKKLKKKIKKKKIKKKKKIKKKKIKKKKIKLKKLKKKKKKKKKKKKKKKKKKKLKKKLKKLKKLKKLKKKLKKLKKLKKKLKKKKKLKKLLHLLLYRRRYZCAFUU8====))))))", "))))))====VUUCCCAYRRERLKKKKKKKKKKLKKKKKKKLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJYERREGACCGUY3====))))))", "))))))====MUYACCAGEEEERKKKKKKKKKKKKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKKUEEEEUCCCCLUY1====))))))", "))))))====xYYHCCAJREEEEEPKKKKKKKKKKKKKKKLJLJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKYEEQEEYZCCCYYP1====))))))", "))))))====hYUPCCJ!QEEEQEEUKKKLJLKKKKKKKKJLKKKKJKKKKKKKKJKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKPRWQQEER!TZCAYYJ=====))))))", "))))))====yYUUAGQ!!EEQQWEQEYPJJJKKKKKKKKJKJJKJKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJKYRQQWWQQR!!!UCKYPF=====))))))", "))))))===;3PUUP!!Q!!QEQWQQEQQERRTRTTTRRTREERREYETTRRRTRRTRTRTTRTYRRTTRTRTTRRTTRRRRRYTRRTTRRTTRTRTTRTRTTRRRYRTRRTTRTRTRTRTTRTRTRYRRRYRRRYTRTTTTTTTRTRTRTRTTRRTTRRTEEQWWQQQQR!!!Q!YYYYv====)))))))", "))))))=====AYY^!!!!!!!T!QQQQQQQQQQQWQQWWEQQEQQQEQQQWQWQWQQQQWQQQQQQWQQQQQWQW!QQQWQQQWQWQWQWQQQQQQQWQQQQQWQQQQWWQQWQWQQWQQQWQQQQEQQWQWQQQ!WWQ!W!QQQQWQQQQQWQW!QWQ!WQQQEQQEW!QQ!!!^QYYy====)))))))", "))))))=====jY^^^!Q!Q!!!KYQQEQQEQQQQQQQQWQEQQQEQEQQQQQQWQQQQWQWQQQQWQQWQWQQWQWQQEQQQWQWQQQWQQQQWWQQQWWQQQQQWQWQQQWQQQQQQWQQQWWQQQQWQWQQQEQQQWWQWQWQWQQQWWQQWQWQQQQQEQQQEKT!!!!!!!^^EJ1*===)))))))", ")))))))====7!///~!!!!!WAAAKIQQQQQQQQQQQQQQQQQEQQEQQQQQQQQQEEQQQQWWWWWWWWWQWEWWWWQEQEWWWQWWQQWWWWWWWWQWWRQQEEEEQQWWWQQQWWQQQQWQQQQQWWQQWWQQQQEQQQWWWWQQWWQQQWQQWWWQWQIJAAK!Q!!Q!^/^^C=====)))))))", ")))))))=====P/^~/!!!Q!YAAAAASSJSKKKJKKKJKKKKPJPJKKKLKKKJKJLLLJJKKKKKPKJFPKKFKKKKKKKPKKKKKPKKKJKKKKKFKKKJKKKKPKPKJJKKKKKFPJKSKKKSKKKSKKKKKJPJKKJJKJKKKKKFKJKSKKKSJHAAMAAAA!!!!!//^^^t====))))))))", ")))))))=====y^/^/^!!!QJAAAAAAAAAZVZZCCCCCCCCCCCCCCCCCCCCZVCCCCZZCCCCAAAAAAMAAAANMAAAANAMMAAACCCCAAAAAACCAMAMABAACCCCAAAAAAMAAAAAAAAAAAANACCCAVAACCCCAAAAAAMAAAAAAAAAMAAAA!Q!!^/^//G=====))))))))", "))))))))=====F^////~!!AAMAANAAANVZZVCCCCCCCCACCCCCCCCCCCZZCCCCCVCCCCAAMAAAAAAAAMAABAANAAAAAACCCCAAMAAACCAAAAAAABCCCCAAMAAAAAAAANAAMAAAANCCCCVAVACCCCAAMAAAAAAAAANBAAAAMAAI!!^^///Q8=====))))))))", "))))))))=====;U~///^!WAAAAAMAVAACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCVAAAAMAAAAAAAMAAMAAAAAMACCAAAMNAACAMMAAAAACCCCAAAAAAAAANAAAAAMMAAAAAAAAABACCCCAAAMAMAAAANNAAAAMAAAAS~//^/^^f=====)))))))))", ")))))))))=====9Q//^/^WSAAMAAVANACCACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCVAAMAAAAAMAAMAAMAAAAMAMVACAAMAAAACCAAAAAMAMCACCMAMAAMAMAAANAMAAAANAMANAVANACACCNMAAAAAMNAAAMAAAAAAAAP^^^//~M=====))))))))))", "))))))))))=====qT//^^YUIKAMAAACCCVCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCACAACCAAAAMAAAAAAAAAAAAAAAAAVAAAAAVAAAAAMAAAAAAAAAAAAAAAAAAMAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKYY!^//^M======))))))))))", "))))))))))====;;3Y^^~YUUUUUSJGSADDDASDAFSFSSFSSSSSSFFSSFADFAFADDFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKSIYYYYW~^!z======)))))))))))", ")))))))))))=======mQQTYYUYUUUUUYYYYIYYYYYYYPYUUUYYUUYPYYYYIYYYIYYUUYPYYYPPYYYIYIYYYIIYYYYYIYYUUUPUUUUUUUYIYYYIYYIYYUYYYIYYUUUUIYUUUUUUUUYYYYYYYYIYYIYIYYUYUUYPYYYYYUUUUYUYT^Pq======))))))))))))", "))))))))))))======;3kSIYYUUUUUUYYIYYPYPYIYYYUYUUYYYUYYYPYPYYIYIYUUYUYYYYYYIYYIYYIIYYYYPYIYYYUYUUUUUUUUUUYIYYYYYYIYYIUIYYIYUUYUYYUUUUUUUUIYIYIYYYIYYIYYYIUUUYYYYYYUUUUUUUUPnp=======)))))))))))))", ")))))))))))))=========7zCJPYUUUYIYYYYYYYYYYYUYUUYYPYYYYYYYYYYYYYYUUUYYYYYYYYYYIYYYYYYYYYYYYYYPYYUPIPPJUUYYYTYYYYYYYYYYIYYYYYUYYYUIUPPJUUYYYYYTYYYYYYYYYIYYUUYYYYYYUUILDMy>========))))))))))))))", "))))))))))))))=============>46667555547571655555666277774545575565553755555577755555547571777773y1y>yy1y777333385755577755555555y>y>yy1y7735337757555777555537775251;-===========)))))))))))))))", "))))))))))))))))========================;===============================================;===========@===============================@===========================================))))))))))))))))", "))))))))))))))))))======================;===========================================================%===============================%=========================================))))))))))))))))))", "))))))))))))))))))))=======================================================================================================================================================)))))))))))))))))))))", ")))))))))))))))))))))))))=============================================================================================================================================))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" }; pommed-1.39~dfsg/icons/gpomme_22x22.png0000664000175000017500000000102311571653265017304 0ustar julienjulien‰PNG  IHDRÄ´l;bKGDÿÿÿ ½§“ pHYsXX‡êtIME×8 ŒVWd IDAT8Ëí•Ñ+CQÇ¿ç:WS»È2®ðâÍ˰ÚD+/ž¤HmeÄÿ ¤””ø”‡IvÕVÊ? „±™f/“)¥nïÒ¼€€êŒ ùûjŸž§¶g'ÇžõÃïø¡§øñoþ ï}+ò {ªöIEND®B`‚pommed-1.39~dfsg/icons/gpomme_22x22.xpm0000664000175000017500000000255111571653265017333 0ustar julienjulien/* XPM */ static char *gpomme_22x22[] = { /* columns rows colors chars-per-pixel */ "22 22 47 1", " c black", ". c #2E3436", "X c #303537", "o c #313738", "O c #353A3C", "+ c #363B3D", "@ c #525756", "# c #575C5B", "$ c #5B605F", "% c #70726D", "& c #888A85", "* c #90938D", "= c #91948E", "- c #92958F", "; c #B3B4B0", ": c #B4B6B1", "> c #BABDB6", ", c #C0C2BD", "< c #C1C3BE", "1 c #C2C3BE", "2 c #C8CAC7", "3 c #C9CBC7", "4 c #CACBC7", "5 c #CACAC8", "6 c #D3D7CF", "7 c #D5D5CF", "8 c #D8D8D2", "9 c #DADAD5", "0 c #DADAD6", "q c #DADAD7", "w c #DBDBD7", "e c #DBDBD8", "r c #DCDCD9", "t c #DDDDD9", "y c #DCDDDA", "u c #DDDDDA", "i c #DEDEDB", "p c #DFDFDC", "a c #E0E0DC", "s c #E3E3E0", "d c #E6E6E3", "f c #E9E9E6", "g c #E8EAE6", "h c #EAEBE8", "j c #ECECE9", "k c #EEEEEC", "l c None", /* pixels */ "llllllllllllllllllllll", "llllllllllllllllllllll", "llllllllllllllllllllll", "llllllllllllllllllllll", "llo&&&&&&&&&&&&&&&&.ll", "l#:<<<<<,<<<<<,,<<<;@l", "&&4>fjjjfjjjjjfjjj>5&l", "*&u>ffffffffffffff>q&l", "-&u>kdd.ddf..sX.sk>u&l", "-&u>kssassa.sss.sk>u&l", "-&u>k.a.a.a..aa.ik>w&l", "-&u>kuuuuuu.uuu.uk>w&l", "-&w>kww.w99.999.wk>w&l", "-&w>k888888888888k>w&l", "=&u>k777777777777k>p&l", "&&f>kkkkkkkkkkkkkk>g&l", "&&f>>>>>>>>>>>>>>>>g&l", " $366666666666666664# ", " +%%%%%%%%%%%%%%%%+ ", " ", "llllllllllllllllllllll", "llllllllllllllllllllll" }; pommed-1.39~dfsg/icons/gpomme_24x24.png0000664000175000017500000000102311571653265017310 0ustar julienjulien‰PNG  IHDRàw=øbKGDùC» pHYsWWiI¬ð³IDATHÇíTMKQ=3Í„S’dT›vm¬Bhã*‚$HÈ¢þCЦ‚¨¿´0"'PüRÑ·Õ¢eæ&—~é¢7ÓBgœaF©Ñ•t6÷ž÷†sî¹øGÛƒR“qïäNpa.ÜŒàéÙùöÓÝÍ–Î ¸J®,-r7,IeFœ¦(©P(¾ENÒ±¨àööw)>GŸùb.·©éŸÐïñ¸]#±¨ÅÀÒeé.—ʰ÷Ú‘/æ@1½"›­G› hš¦ªÀ² „€ÿì¼ÒË\>S÷,Û µ†Æ@†$IJ/ &â‚Æ€r–ˆ Ê·ußEMDQTúÙÀ"ùÖUõÌåZRÔ0õÄ£BtU}§N[ÓhÀhEàŠnEF¼-­ÅÅJláøPéÃIo ONw°†±ÿ†aµJ_¥O°rVå‚ç‡LX9®ÑŠ*¸OÝš7L›aWhmõ1“ÉŒòNÞÒŒà[:]N½¼>pxjn¼gÚ73å[oÆàò:upwu‘UðÕêlÑf>ª5Û"½vÆ©{ô˜†#œIEND®B`‚pommed-1.39~dfsg/icons/gpomme_24x24.xpm0000664000175000017500000000271511571653265017341 0ustar julienjulien/* XPM */ static char *gpomme_24x24[] = { /* columns rows colors chars-per-pixel */ "24 24 47 1", " c black", ". c #2E3436", "X c #303537", "o c #313738", "O c #353A3C", "+ c #363B3D", "@ c #525756", "# c #575C5B", "$ c #5B605F", "% c #70726D", "& c #888A85", "* c #90938D", "= c #91948E", "- c #92958F", "; c #B3B4B0", ": c #B4B6B1", "> c #BABDB6", ", c #C0C2BD", "< c #C1C3BE", "1 c #C2C3BE", "2 c #C8CAC7", "3 c #C9CBC7", "4 c #CACBC7", "5 c #CACAC8", "6 c #D3D7CF", "7 c #D5D5CF", "8 c #D8D8D2", "9 c #DADAD5", "0 c #DADAD6", "q c #DADAD7", "w c #DBDBD7", "e c #DBDBD8", "r c #DCDCD9", "t c #DDDDD9", "y c #DCDDDA", "u c #DDDDDA", "i c #DEDEDB", "p c #DFDFDC", "a c #E0E0DC", "s c #E3E3E0", "d c #E6E6E3", "f c #E9E9E6", "g c #E8EAE6", "h c #EAEBE8", "j c #ECECE9", "k c #EEEEEC", "l c None", /* pixels */ "llllllllllllllllllllllll", "llllllllllllllllllllllll", "llllllllllllllllllllllll", "llllllllllllllllllllllll", "llllllllllllllllllllllll", "lllo&&&&&&&&&&&&&&&&Xlll", "ll#:<<<<<<<,<<<<<<<<;@ll", "l&&4>jfjjfjjjjjfjjj>3&ll", "l=&t>ffffffffffffff>e&ll", "l-&i>kdd.ddd..d..dk>t&ll", "l-&i>kssssss.sss.sk>e&ll", "l-&t>k.a.a.a..aa.ak>e&ll", "l-&e>ktttttt.ttt.tk>0&ll", "l-&e>k00.000.000.0k>e&ll", "l-&0>k888888888888k>0&ll", "l=&t>k777777777777k>t&ll", "l&&f>kkkkkkkkkkkkkk>h&ll", "l&&f>>>>>>>>>>>>>>>>h&ll", "l $366666666666666663# l", "l +%%%%%%%%%%%%%%%%+ l", "l l", "llllllllllllllllllllllll", "llllllllllllllllllllllll", "llllllllllllllllllllllll" }; pommed-1.39~dfsg/icons/gpomme_32x32.png0000664000175000017500000000213211571653265017310 0ustar julienjulien‰PNG  IHDR szzôsBIT|dˆ pHYs : :ðd’JtEXtSoftwarewww.inkscape.org›î<×IDATX…í—[lUÇgfº³—–v»\¶`©ñÁ+áV£I0郷 ±b5D1%©¡$€¥ V%bŒ¾ù@ˆbÚTH!ˆ†¤ík/45‚©°‘­ÔVk¯»;»3>t;»Û.>Ôì—œdÎÿ|“óËw™|#,ËâAšò@o_X´ùBEE…èKaÁ`p¦½½}&UsmXS³g—ÓåjZí_¥e-yd„†aŽ ME"ï4ÝÜaTWWUnÙ^ÞüèÆGr§'§¢ˆ%ÒBÈÉË£££ã¯_oV¶œkéÖœn×G;Ê·åþ9<ÂÖ­Ûq:Kzùœ…Ãa®õõòÔξÁPè4ð¤ï[é ‡§Yàp8R¦­®îÞÚb–Óé¤Àïg&Çíñ@¢ VäähÒ”xÜnÛybrÒ~þòÌÙŒúbVNN.ñxœlGµEŲ,¤4‘ÒäÔéÏèêéAJ“÷FJ“;¡‡Ž4Fl¿ùëhãIÞª­£¶®žÛÁ µuõTÕìµÏ…EIÖ¸Ýnªª$ŠEp°®ÈñMË·Ü ’ïõ²ë¹g8v䚦Ù~ó-‰P_WËÚâ">=õ{^}3Í_Q3(ŠjÄâqYYtu÷R\TÈ‹/]IwO%%|ù^û\J3C,ª_ÚMqQaòÜJ÷)5`?©j2RJnC xâñ´]ºÂªU+Ù²©Œk}ýÿZå@¢˜å½# @QfS0çxáâeÜnõëx¨deKÑu®¶Fï —»!DšæóyS`Dæ.PR"°ß^{ÿÝù6Ê·mÆéÔy÷ÀÛóŠ*Ýìß·àüÃïÙ{!»àÓLÓL¼¸0¯GfÔcš¦ÙwÙ†a˜ Ñu‘ÈLš€žø<ÿWSU ‡CGQ #fÚCCw§Ö­Ý@|&ŽsàréX,í´,€h4ŠîÔ)ð1>66nÄb±/úûû>)+{Ì52:B8<½¤—Ãì<àv{ðæûèì윊±&HH^{ý•yyyo”––êÙÙÙ÷e"‹_¿~Øœœüøì™¯>O€ÙqlÍïÃRjúý"À­ÖÖV»ÈÄòŸÑ2Àÿàé(|ÆìÒIEND®B`‚pommed-1.39~dfsg/icons/gpomme_32x32.xpm0000664000175000017500000001165611571653265017343 0ustar julienjulien/* XPM */ static char *gpomme_32x32[] = { /* columns rows colors chars-per-pixel */ "32 32 172 2", " c #3E4345", ". c #3E4445", "X c gray25", "o c #404547", "O c #4D5253", "+ c #505556", "@ c #515656", "# c #515657", "$ c #575751", "% c #555555", "& c #575B57", "* c #535858", "= c #565A5B", "- c #5B5B57", "; c #585C58", ": c #5A5D5A", "> c #595E5E", ", c #5A5E5F", "< c #5C5C59", "1 c #5A5F60", "2 c #5B5F60", "3 c #5E605B", "4 c #5F615D", "5 c #60625E", "6 c #606060", "7 c #636460", "8 c #636560", "9 c #646561", "0 c #646562", "q c #646661", "w c #646869", "e c #656969", "r c #666A6A", "t c #696D6C", "y c #6C6E6A", "u c #6D706B", "i c #6D7171", "p c #6E7272", "a c #70726E", "s c #727470", "d c #747777", "f c #757874", "g c #777B7A", "h c #797B76", "j c #797B77", "k c #7A7D78", "l c #7B7E7E", "z c #7C7E7A", "x c #7D807F", "c c #7E817C", "v c #7F817D", "b c #7E8180", "n c #80827E", "m c #808383", "M c #838581", "N c #868988", "B c #8B8E8D", "V c #8E918E", "C c #979994", "Z c #969997", "A c #979997", "S c #9A9C98", "D c #A1A3A1", "F c #A5A7A5", "G c #A6A8A4", "H c #A7A9A7", "J c #A8A9A6", "K c #ACADAA", "L c #ACAEAB", "P c #AEB0AE", "I c #B0B0AB", "U c #B0B0AC", "Y c #B0B1AC", "T c #B1B1AC", "R c #B2B2AD", "E c #B2B2AE", "W c #B2B3B1", "Q c #B2B4B1", "! c #B6B7B6", "~ c #B7B9B5", "^ c #B8B9B6", "/ c #B9BAB6", "( c #BABBB6", ") c #BABBB7", "_ c #BBBCB7", "` c #BBBDB7", "' c #BBBEB7", "] c #BABCB9", "[ c #BCBDB9", "{ c #BCBEB8", "} c #BCBFB8", "| c #BDBEB9", " . c #BDBEBB", ".. c #BFC0BB", "X. c #BFC1BB", "o. c #BEC1BC", "O. c #C0C1BC", "+. c #C1C2BE", "@. c #C2C3BF", "#. c #C3C5C0", "$. c #C4C5C0", "%. c #C4C6C1", "&. c #C5C7C2", "*. c #C6C7C3", "=. c #C6C7C4", "-. c #C5C8C2", ";. c #C6C8C3", ":. c #C6C9C3", ">. c #C7C8C5", ",. c #C8C9C4", "<. c #C9C9C4", "1. c #C9C9C5", "2. c #C8C9C6", "3. c #C9CAC6", "4. c #CACBC6", "5. c #CACCC6", "6. c #CACCC8", "7. c #CBCCC8", "8. c #CBCCC9", "9. c #CBCDC8", "0. c #CCCDC8", "q. c #CCCDC9", "w. c #CDCEC8", "e. c #CDCFCB", "r. c #D0D0CC", "t. c #D1D2CE", "y. c #D2D3CF", "u. c #D4D4CE", "i. c #D4D4CF", "p. c #D3D3D1", "a. c #D3D4D0", "s. c #D4D5D2", "d. c #D6D6D0", "f. c #D7D7D1", "g. c #D6D6D3", "h. c #D7D7D2", "j. c #D7D7D3", "k. c #D7D7D4", "l. c #D8D8D3", "z. c #D8D8D4", "x. c #D8D8D5", "c. c #D9D9D4", "v. c #D9D9D5", "b. c #DADAD5", "n. c #DADAD7", "m. c #DBDBD7", "M. c #DCDCD7", "N. c #DBDCD8", "B. c #DCDCD8", "V. c #DCDDD9", "C. c #DCDDDA", "Z. c #DEDED9", "A. c #DFE0DD", "S. c #E0E0DC", "D. c #E0E0DD", "F. c #E1E1DD", "G. c #E0E0DE", "H. c #E2E2DE", "J. c #E2E2DF", "K. c #E3E5E2", "L. c #E4E4E0", "P. c #E4E4E1", "I. c #E4E5E3", "U. c #E6E6E2", "Y. c #E7E8E5", "T. c #E8E8E5", "R. c #E8E9E7", "E. c #EAEAE7", "W. c #E9EAE8", "Q. c #ECECE9", "!. c gray100", "~. c None", /* pixels */ "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.X 6 6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 X ~.~.~.~.", "~.~.< 0 k v v v n z n n n z v n v v v v v v v v v v n h 0 ; ~.~.", "~.- V ` I I E E T R R R E E E R R R R R R R R R E E T T X.z & ~.", "~.8 ;.E U.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.H.T *.5 ~.", "~.f { t.R.E.R.Q.E.! E.E.Q.R.R.Q.E.E.E.E.E.E.R.R.R.R.E.E.<.+.u ~.", "~.M ( B.R.R.B.R.T.+ T.R.B.Y.Y.Y.T.T.T.T.T.T.R.R.R.T.T.T.y._ h ~.", "~.M { m.U.U.r Q T.u.U.8.* H.U.U.T.T.H.T.r @ = >.= o U.U.n.{ h ~.", "~.M X.m.J.U.B.y.B y m p.y.J.U.J.H.H.H.H., >.U.J.U. H.U.h.X.h ~.", "~.M +.n.H.B.H.F H H.*.N H.B.H.L.H.H.H.H., P <.H.H. H.H.y.+.h ~.", "~.M #.n.y., W l n.H.Z.d 4.2 ] Z.A.F.F.H., r g A.A. Z.H.n.*.h ~.", "~.M ;.n.M.B.B.~ b 9.C C Z.Z.A.M.Z.Z.Z.Z., @.M.A.Z.o A.Z.f.;.h ~.", "~.n <.m.B.m.o.` ' b L <.I M.m.m.M.M.M.M.: +.m.m.m.. m.m.b.<.h ~.", "~.M 8.n.m.m.p @.n.D m.r.e i.m.m.b.b.b.b.y @.b.b.b.* b.m.n.<.h ~.", "~.M w.m.f.f.f.f.f.O n.f.f.f.f.f.l.l.l.l.l.l.l.l.f.f.f.f.f.0.h ~.", "~.M 9.n.f.f.i.d.y.w.f.y.f.y.f.d.d.d.d.d.d.d.d.d.i.f.f.y.m.<.j ~.", "~.z 9.Z.n.y.i.i.i.i.i.i.i.s.i.i.u.u.u.u.u.u.u.u.i.i.i.x.H.9.s ~.", "~.0 Q.L.N.Z.A.Z.J.M.H.H.Z.G.Z.Z.A.A.A.A.A.A.A.A.H.Z.Z.x.Y.U.8 ~.", "~.: ~ Y.:.' ' ' ' ' ` ` ' ' o.` ' ' ' ' ' ' ' ' ' ' ' *.Q.H : ~.", "~.~.5 a S G G G G G G G G G G G G G G G G G G G G G G C y 4 ~.~.", "~.~.~.X $ % % % % % % % % % % % % % % % % % % % % % % % % ~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~." }; pommed-1.39~dfsg/icons/gpomme_36x36.png0000664000175000017500000000247711571653265017334 0ustar julienjulien‰PNG  IHDR$$ᘘsBIT|dˆ pHYs a aüÌJ%tEXtSoftwarewww.inkscape.org›î<¼IDATX…í˜]lU†Ÿ™3»Ë¶Ývw˺m±lmAÔhJSñDÑ”Äb%J"‰1ñ•TIŒ1ÆHŒ¡b°„ )7†%„p¡BiQ B©–Jh·Ûv»{Ž´³]ØÒ6rÑ7™‹ó3gžy¿s¾sf4¥÷“ôÿàv¥q ±tß·WÔÖÖ:l6›WRËäƒõ¸®"‘HGssshd½6œ‡êêêÊíÙ6_AAAÛ/â‰ÁLò`1]ÿÞHܼÙ})î[¹oß¡hņ“\¶¼ß·nÝê¹Ö~…P(LFíR¶#‡éÓÊÕŽ†;ºoø+š››C€Cä4¼¸|yþ•¿.ãÌs1wÎcX,ÖŒÂD"a.\¸ÀŸÏk/,ZTpøpó6`» kÌóx&êJ*ÊÊÊÂ@J™ÑËjµQQQI<Çë-°†u ­2‹Õj'âäææ¤àƒ†´´¶ÝS(!6› ! ås•i€†0 ”’„B!|?bÃÚUèºÎ¬™•¸œy(%éøûN·´R»tñ¨!ñû{9vü„Y~~Á3ütì8‰„¤¦º —Ë €aCÏ¿%3i]7ém6ýýœ>ÓŠ”’™3*q»œH)Ùà ¥SKîúö×»ºøþà!”’(%‘R‹ÅØà ×»º’.©™'YÒ4ô! aÕoÞDo Àû ;ñNžLOŸ’’)¼õF½ÚÑ$•"7×Á²%I—-YÌ‘£?#•2ïºH¤ò÷öâ÷÷R\TÈGŽòRíRÊËà³/vˆ ôQòÀtý΄¯¤$ó멲²ìT”—¥´ †@K24„.PJr¦µ={›è ¸ÚÞNqQ¡i}¡·€öŽ~ùí{ö6EͶÔK …9ÕÒ¹óÌz¥”YÂ9…Râ–C5ÕUÔTW0¿fM¾¬]ù2=~?œ;Ïò¥‹©(/cá³O:©$n·‹M¯¬K飔BªT‡bñäý#æèºH¼ózÓKK‰D¢|úù—äç»yuÃ.^ºLéÔ’´¡–Ñ`G†L-Í¡$P0bÇÇŸðæë¯ñÄãòðŒJ¬V †a°ûÛï8~â$ׯH*¨4@*eR†€X²5 „†>4‡²ìØþÞ;fîÙõu# Ÿ›ÏŒŠ‡Ø¸n}}ýfßt*.ô²¥~ó}¶Ôof’ÇcÖëÂ’Òž²ìo9”Üåóræ›Ì™=—Ói–Žœ».{«ÕBQ¡÷Ž>E…^ JCØÒI™À0 ¢Ñé>ª«žLè^H×õáM"h0´¤’de9‡ƒÄã™=Y­6&س ††ˆ´  ¤”:ëpäM›8ÑõkW±Ûídg;2  éëP\4…h$ªd"qÒŠÞmll|jÛÛÛ\ÑX„îž›$d"£@B8.âñ8ßìî&ÂÁˆ#ìêõ«—¹y_ÍžõÈÏ$OÎÝr̽”Juvvœmk özWùš|'R€êêêìš–˜«tŠ”Ò3zŠÕ4©Hˆ+ÀŸÏgf"mügÃKã@cé¾ú+ÅÞ×â£IEND®B`‚pommed-1.39~dfsg/icons/gpomme_36x36.xpm0000664000175000017500000001411611571653265017345 0ustar julienjulien/* XPM */ static char *gpomme_36x36[] = { /* columns rows colors chars-per-pixel */ "36 36 211 2", " c #3C4143", ". c #414648", "X c #464B4C", "o c #474C4D", "O c gray30", "+ c #4E4E4E", "@ c #4E5353", "# c #4E5354", "$ c #4F5455", "% c #58584F", "& c #575751", "* c #565652", "= c #555555", "- c #545754", "; c #535953", ": c #515D51", "> c #525C52", ", c #555852", "< c #555955", "1 c #585C58", "2 c #5C5E58", "3 c #5D5F5B", "4 c #5E605C", "5 c #5E605D", "6 c #5E615D", "7 c #5F625D", "8 c #5F625E", "9 c #60615D", "0 c #60625E", "q c #60635E", "w c #626460", "e c #606464", "r c #626666", "t c #656763", "y c #656764", "u c #676865", "i c #676B6B", "p c #676C6C", "a c #6A6C67", "s c #686C6C", "d c #6B6F6F", "f c #6E706B", "g c #6D7172", "h c #6F7273", "j c #727570", "k c #727676", "l c #737777", "z c #777975", "x c #797B78", "c c #787C7B", "v c #7A7D7C", "b c #7A7E7D", "n c #7B7F7E", "m c #7D8180", "M c #818484", "N c #858883", "B c #878A8A", "V c #8A8C86", "C c #898B88", "Z c #8B8E8E", "A c #8D908F", "S c #8E9190", "D c #8F9291", "F c #949693", "G c #959796", "H c #969898", "J c #999A97", "K c #989B99", "L c #999B98", "P c #989A9A", "I c #9B9D9C", "U c #A0A2A0", "Y c #A3A5A3", "T c #A9ABA6", "R c #ABACA7", "E c #ACACA7", "W c #ABADAA", "Q c #AEB0AC", "! c #AEB0AD", "~ c #AEB0AF", "^ c #B1B1AD", "/ c #B0B2AE", "( c #B2B3AE", ") c #B3B4B0", "_ c #B3B5B3", "` c #B5B6B0", "' c #B5B7B1", "] c #B4B6B3", "[ c #B5B7B4", "{ c #B6B7B4", "} c #B7B9B3", "| c #B7B9B6", " . c #B8B8B4", ".. c #B8B9B6", "X. c #BBBEB7", "o. c #B8BAB8", "O. c #B9BAB8", "+. c #B9BBBA", "@. c #BABBB9", "#. c #BABBBA", "$. c #BBBCB8", "%. c #BBBDBB", "&. c #BCBCB8", "*. c #BCBCB9", "=. c #BFBFBB", "-. c #BDBEBC", ";. c #BEC0BA", ":. c #BEC1BB", ">. c #BFC0BC", ",. c #BFC0BE", "<. c #C2C2BF", "1. c #C2C3BF", "2. c #C3C5BF", "3. c #C2C3C0", "4. c #C3C4C0", "5. c #C5C5C1", "6. c #C4C6C0", "7. c #C4C6C1", "8. c #C5C7C1", "9. c #C6C6C2", "0. c #C6C7C3", "q. c #C7C7C4", "w. c #C5C8C2", "e. c #C6C8C2", "r. c #C6C8C3", "t. c #C6C9C3", "y. c #C7C8C4", "u. c #C7C9C4", "i. c #C7C8C6", "p. c #C8C9C4", "a. c #C8C9C5", "s. c #C9C9C6", "d. c #C8CAC5", "f. c #C8CBC5", "g. c #C8CBC6", "h. c #C9CAC6", "j. c #CACAC6", "k. c #C9CCC6", "l. c #CACCC6", "z. c #CACCC7", "x. c #CACBC9", "c. c #CACDC8", "v. c #CCCCC9", "b. c #CDCDC9", "n. c #CCCDCA", "m. c #CDCFCA", "M. c #CFCFCB", "N. c #CECFCC", "B. c #CFCFCC", "V. c #CED1CC", "C. c #CFD0CC", "Z. c #CFD0CD", "A. c #D0D0CD", "S. c #D1D1CD", "D. c #D0D1CE", "F. c #D1D1CE", "G. c #D1D2CE", "H. c #D3D3CE", "J. c #D3D4D1", "K. c #D3D5D1", "L. c #D4D4D0", "P. c #D4D4D1", "I. c #D5D5D0", "U. c #D6D6D1", "Y. c #D6D6D2", "T. c #D7D7D2", "R. c #D7D7D3", "E. c #D6D6D4", "W. c #D6D7D5", "Q. c #D7D7D4", "!. c #D6D8D4", "~. c #D8D8D3", "^. c #D8D8D4", "/. c #D8D9D5", "(. c #D9D9D4", "). c #D9D9D5", "_. c #D9D9D7", "`. c #DADAD6", "'. c #DADBD7", "]. c #DADAD9", "[. c #DADBD9", "{. c #DBDBD9", "}. c #DADCD9", "|. c #DBDCD9", " X c #DBDCDA", ".X c #DCDCD8", "XX c #DCDCD9", "oX c #DDDDD9", "OX c #DDDDDA", "+X c #DDDDDB", "@X c #DEDEDA", "#X c #DFDFDC", "$X c #E0E0DC", "%X c #E0E0DE", "&X c #E1E1DE", "*X c #E1E2E0", "=X c #E2E2E0", "-X c #E3E3E0", ";X c #E4E4E1", ":X c #E5E5E2", ">X c #E5E5E3", ",X c #E7E7E4", ".w.4 8X", "8Xy w.q.-X-X&X-XK.p M h S &X&X>X-X-X-X-X>X*X-.= &X&X-X&X- %.-X-X4.u.4 8X", "8Xu 0.0.$XH.%.OXZ +.$X$Xk U.N.<.#X$X$X&X$X$X-.X W +.$X$X- +.$X$Xu.0.9 8X", "8Xu f.j.#XU r M.d _.$X$XZ [ P w _.$X$X$X$X$X+. n F $X$X# +.$X$X0.u.4 8X", "8Xy f.H.OXOX@X@XW m _.8.r OX@X@XOXOX+X$XOX@X| # OXOXOX@X# | #X@XM.u.4 8X", "8Xy 0.H.'.OX'.8.M.Y i n 4.| '.'.'.'.OXOX'.OX{ @ `.OX'.OX# ` OXOXH.0.4 8X", "8Xy f.U.'.`.S.o { _.S.U.'.c v '.'.`.`.`.`.`.` @ `.'.`.`.# ) _._.U.f.4 8X", "8Xy g.E.~.~.~.0._.~.s W _.T.f.~.(.(.(.`.(.(.H.&.(.~.~._.-.H.~.~.W.0.8 8X", "8Xy g.].~.U.~.~.~.~.L <.T.T.T.T.~.~.~.~.~.(.~.~.~.~.~.U.U.~.~.U. Xu.4 8X", "8Xy f.+X~.U.H.H.H.~.H.H.H.U.U.H.H.U.H.H.H.H.H.U.H.H.U.H.U.U.H.~. Xf.4 8X", "8X9 m. X$XT.H.H.K.K.H.U.H.H.H.H.H.K.H.H.H.U.H.K.H.H.H.H.H.K._.$XW.0.w 8X", "8X4 X4XH.].;X&X&X&X&X&X&X&X;X;X&X&X;X&X&X&X&X&X&X:X$X;X;X&X_.K.4XH.4 8X", "8X& x 4Xg.:.X.X.X.X.X.X.X.;.&.X.X.X.;.;.X.X.;.X.&.X.X.;.X.;.;.V.3Xf : 8X", "8X8X1 a L W ) W ( ) W ( ~ ~ ( ! ) W W ( ( ~ W ( ( ( ( W ! ) W F y < 8X8X", "8X8X8X= & , = < - - - - - - - - < - - - - - - - - - - - ; - , = = 8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X" }; pommed-1.39~dfsg/icons/gpomme_48x48.png0000664000175000017500000000343511571653265017335 0ustar julienjulien‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<šIDAThí™{pTWÇ?çžs÷n6ÈæaóJ!A"ÅR-3ÔÚ׈h`*!ƒU¦8¥ô1El¬ˆ ЂKT$“ãv-«vŠX-DšI(Ž&1$Ùìëî½Ç?’lv³›[ËêL¾3¿?Îùsî׹w…Öšÿg™6àÝb’@¦1I Ó˜$iLÈ4Ôè‰ÚÚÚTl±ÐòÃÅ™0j4ÇmZÿQkù»ÆÆÆh¢N$^%êêj:\TT”UYQay³¼*æ87ÜàD˜JÑß°›››í¾¾Þ8¶]ÓÐpäOÃú8ºº‹¼>_ÓÆ ­p$Ä߯^ÅŽF‰Åb3À4M<–‡òiÓQÒ£·w{X;‘[~Þ C!´~ýzSšž†êeÕž¨¡ýr;ååe”””âõZ% ikk§£­i3¦‹{îþ˜çä©S‡…0D §§ç9S|³g‹–·Þ¢¢¢‚3nΠÙ#°¬,òó 8wîMÞ¾ÒÁ ÊãMMª¯¯Ï?tèP „{ûìY³õÀ@íº”——£µû?%3gÞŒsˆÅlJn* Ú:´†Ê¨û ÌP(Œ×›…­õ˜ÒÒz‘û–.wÍ[,Ë‹‘p˜Â¢B¡]Y eT ‰R ×u“ÜøÏÎ. üùH)âúÄu½}}˜JáóùÞ«hB)…ƒvÆç!J1ú-mûÎÝL’Ç›¿Š”’ò²RöîÚ_×ÛÛÇã_ÛÊÂßÎÚÏ­¹.cöìûxíõø¸´´„ï=ó-\÷Eì¨é1ùñ ϧH!•4 ‰ÖÉxlÓ—Ù¾s]ÝÝ ‡èìêdZy)¦irñÒ%Jn*¦~ÕÊ”½c!Ÿ?•õë>€eYhíòèW¾Äï_;ÍË¿üUÊYRN@@!®›ì¾ŸgžÞJ0bÇ®çh½x‰9•¼ð£Ÿp碰fuóo²wù Žýú8Zk~qôûä/=7aU¸ÜÖÆ–§¶±å©mœ>óF‚>d‚(¥eš$–2^]Bá0áHÇqpÃIÕGJ‰mÛ¸®K("0 ¦T²tÈÉÎaÁm ÀŸß3LpôJ)’ïf£’X`H?`Éý÷²äþ{ãê»ïº“£Ç^auíŠøƒ^>zŒÚ µæÓË«“ œ~ª—~È›7ÒÕÕ͛盩y`>_çÎÿã'NñðCkãÍnBóâ\×%//—9•x½®ëRXXÀùæ n<’²w,ü…uZ]b$Ê„}!J¦0_÷…5 ¶r­é¸ò6>¹•—½€?*ßüúã˜Ê¼®Ø¨^ºÛ¶Ó®¿mþ<6mx8½Æ# „@×MöSiÉû€‘º<ââ‘ÍŸ:%en<Ü2sú˜ë ýúÓ䀕Ò’h×E)“p82îÃËËJ9ðüîÿ¨ë¾[!#€Q^IÄ\eJŒ¨ãŒý*)ø²¼ï ò¼s(åÁuccz  ˲Ì9Ùyô÷_Ãu3ûB? ¥L|¾<ºÿÕ‰eY ] Ã\ãlkËEg劕dgç00Àï/ÆŽEÑtÔ÷†!;°ë2­|½ý½´µ·y]åž!g»º: )MLeŽ„ii½@–χJSºn$ì˜M0¤²âýx<"áZëî#?=r†466V­Z¹aïÞçöl~ds–’ e 3FR*|Y> a Ù½gWرcŸÖ'}ØZý™ºmÙ99›-^dN++3rssI¹þÝ`h4×z®ÑÞÑá¾úêo£Ñh䑆Ÿ½´oX/F7‹šÕ5 ”õ¦RÕè‚nq!®F£Ñ“Ú[’t“ÿRf“2I™Æ$Lc’@¦ñoÏ @ï—IEND®B`‚pommed-1.39~dfsg/icons/gpomme_48x48.xpm0000664000175000017500000000707111571653265017355 0ustar julienjulien/* XPM */ static char *gpomme_48x48[] = { /* columns rows colors chars-per-pixel */ "48 48 69 1", " c #2E3436", ". c #33393A", "X c #3E4345", "o c #454A4B", "O c #4A4F50", "+ c #4D5253", "@ c #545653", "# c #555853", "$ c #545859", "% c #585A55", "& c #5A5D59", "* c #5A5F60", "= c #5E605C", "- c #5B6060", "; c #61645F", ": c #616464", "> c #656969", ", c #686A66", "< c #6A6E6D", "1 c #6E706C", "2 c #6D7170", "3 c #707473", "4 c #757978", "5 c #797A77", "6 c #7A7D7C", "7 c #7E8181", "8 c #838581", "9 c #858887", "0 c #878A89", "q c #8C8F8D", "w c #8E918C", "e c #8F9291", "r c #90928E", "t c #939593", "y c #969896", "u c #979998", "i c #989A96", "p c #9A9C99", "a c #9EA19E", "s c #A3A39E", "d c #A5A6A3", "f c #AAAAA5", "g c #ACADA9", "h c #AEB0AC", "j c #B1B2AE", "k c #B5B6B3", "l c #B7B8B5", "z c #B8B9B6", "x c #BCBEB8", "c c #BEC0BB", "v c #C1C2BD", "b c #C4C5C1", "n c #C6C8C3", "m c #C8C9C5", "M c #CCCDC9", "N c #CFD0CC", "B c #D4D4CE", "V c #D5D5D1", "C c #D7D8D4", "Z c #D9D9D4", "A c #DDDDD9", "S c #DFE0DD", "D c #E1E1DE", "F c #E4E4E1", "G c #E9E9E6", "H c #EBEBE9", "J c #F3F3F2", "K c gray100", "L c None", /* pixels */ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLL@@@%%%%%%%%%##%%#######%#%%%%%%%#%%#%@@@LLLL", "LLL@&1rpiiiiiiiaiiiiiiasiiiiiiiiiiisiiiipr,&@LLL", "LL@&MngdsssssssssssssssssssssssssssssssssfMN%@LL", "L:%gmdbADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDAxfmi&LL", "L@;BgMGGHHHHHHHHHHHHHHHHJHHHHHHHHHHHJHHHHHvjN#$L", "L@8nfGGGHHGGHHHHGGHHGHGGGGGGGHHHHGGGGGGGGHDfM1#L", "L@uxjGGGGGGGGn GGHGGGGGGGGGGGGGGGGGGGGGGGGGgv8%L", "L@uxlFFGGNFFFn FGDZDGGFFGFGGFFGFFGFGGFGFFFFkn8@L", "L@uxzFGFF*2FFSnFFC@8FFFGFFFFFF6XXX*FoXoFGFFkv8@L", "L@tvvFFFFN*NFChDFk,SFFFFFFFFFF<@lzcFz7.FDFFlv8@L", "L@yxvDDDFFDC3+4O0FFSFSFDDFDFDD2*FSFDDp.DDDDxb8@L", "L@ixvDDDSDDu7DSA*xDDFDDSDDDDSF2*DDDDDp.DDDDxb8@L", "L@ivmDSa7gS$MADDg4Sy6lDDDDSSDD%6O5SZDZDZDAAAAAA<&ZDZZZi.DZZANb8@L", "L@inBAZAAM,vZmpBAj1ZZDDZZAAZZA<*SZZDZt.ZAZANb8@L", "L@ivBZZVA=;BZCnZZno8ZVZZZZZZZC<&ZZZZZi.ZZZZVb8@L", "L@inCZZZZvBZZz ZZZnMZVZZVAVAZZlhZZZZVndZZZZAn8@L", "L@inZCVVZZBZBz ZVZVVZZZBZVVVCCVZZVVVVZVVZVVAn8@L", "L@inAVVVZBBZBBMVVVVVVVVVVVVVVVVVVVVVVVVVVVCSn8@L", "L@ivDZVVBBBBVBBVBBBVVBBBBVVBBBBVVBVVBVBBBVZAn8@L", "L@qnCFVBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVFNM5#L", "L@,FHFGFSSDDDSDFDDDDDDDDDDDDDDDDDDDDDDDDFGGHS&#L", "L@%GJAcmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMncFJC%LL", "LL@6HDnxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcmFH,@LL", "LLL%:pxmmmmmnnmmmmmmmnmmmmnnmmnmmmnmmmnmnlu&%LLL", "LLLL@%&&&&&&&&&&&&%&&&&&&=&&&&&&&&&&&&&&&&%@LLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL" }; pommed-1.39~dfsg/icons/gpomme_64x64.png0000664000175000017500000000472511571653265017334 0ustar julienjulien‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsttÞfxtEXtSoftwarewww.inkscape.org›î< RIDATxœíš{pTÕÇ?çÜ{³²Ù I6 y“„G * â y¨0j’ Ì´¶ÖÁ*:VE[kÔú¨¶ø@Ñj#-8j™j) ŽuA`l *$¨ „NÿHvIÈ !¼– ùÎÜüñ»ßsîï÷½¿ó;¿s³B)ÅÙ oââí@¼Ñ#@¼ˆ7zˆ·ñFñv Þè ÞÄg½zg„yóæÉÍ›7ûO‡3'†a¨òòòºÎxÂí4XZZêC:s¤c\ ”J<%^žb)j•bRΊªïª¬ZµÊjÇ9R€ÒÒÒˤÎb!D¿!C†È¼¼\¤‰„é.'g)†‘@UU;vlw¾ür›Bnrlf”——ÑšÛF€ÒÒÒ …¦ÖŒ=†Œ†¡óõ×»ijlÄ2-ºIüH!Ð ¤$Ù99ÔÔÔ²úÃÕö–-[Yš3pÙ¢e{¢ÜX ˜4i’Çð- fd8“'OÖ{õJâý•ïaÛ6©©i)hZ÷¨™¦iR[[ê*B¡×_7•ôô4íÉmÛ [¯×E¹± (»qÚí ^˜=ûv¡ë:»++1tƒaÃFœœ¯XNUUûÙ¼y#š®Ó¿°Ê]»X¼x 8rtyyù¿¡Õ6èÀEYYYvZjû÷}‡rÆ Ççó¡”ê–WZZ:C‡ž‹ešìÝó-ƒ FÓ4[ {T4îØÐ…•——§765bÛÁ`¤¤æà»322ú˜Ø Ë´0Í99Ùjçί†GïÇ2@)Î ƒ„ÃaPà÷ûQÊ9æëïü“GªKcN×PJ‡é—™©K!‹¢qn„BÓ4lÛBJ®ë]zûÛ+v²fÝ'gdÆhš†”˶Ð5„Ñ{®e]J ®ëª¶¶Ž]••íìÑ&áH»išlÙúy\k)Ýw0×VXÓ4„®osÞãOñõ7ßðÔcsÉËÍÙK¦Naâø+ÛŒ±,‹Çž|† 7ñÒs¿%';ëÞW[”/{‹·ß}¯}æôR®%·ÞqwK“¦ðz½,|þwí¸RŠpµ6 Ðþm*¥¸åG?À2-zô LÓŒÙûdPT؆ûú_ß`í'ë¹áúkÉÎÊ<®·WßÐÀ¾}ûéPŸ»þd”Rdgõ#7'›Õ5ìÛ·ßu)Ob (*ä±¹‡Ñ4p8Âò·ßaËÖ/¨oh °>“®žHNv%S¿O0˜Îä«'mhV:m º°í-¥øÅœ»¸é–Û…B®ÏB¢IÍuzW„”Dk€p ºš_>ü(RJ.})>Ÿÿþo wÞs??»ã§Œ¹ìR&]5á„ £"Z[8¦yÜ-1µ‡{ÈŽ3 5žñ²2ûqß=w¡kÍ _3q<¯Ydz 2 ¨ˆ>ÁN>*¢.D‹mgtŽ”­«K y2˶©¯¯ÀÐ |¾$öWU±aã&^m!š1.À%dÅûðÁêÕL/™JÄ4 …Bx<z%våtÝÐç_n‹eƒÇ“À°óÎuåµö#Š£AW¤”±"°}{sx€áçŸËÜNEÅWƒé~÷ZQX@ÅÎ](¥X»n=OÏ€«'Œã¶Y7wõá°Zæ^úÖò˜-#˜Îk ŸoÏåd-íp–Ú›é%7pNß>(¥èÝ;…ÚÚ:,ËŠeLk¨®¦wï”–J_XÐÿ¸jÂÌé%€aÎÑQ<¡] µ•чäædÓ+1‘>üˆñc/o3¾®î kÖ­gö­· ”"';“œì¶ãQjNvCŠu8‡êÀÍK K5@jm—€4McÖOnâÙ ‰D"Œ½|4ž„¶í¨à¥WþÀà¸ð‚á'¡5nÛavÊî(4 ‡öõÁ]Ñv  Ó4±m›Q#Gpï]³yùÕ?óê_Ç0 lÛfò5™Y6 ¥ëëñŸÀ÷„¨ Њw$„!Á¥@v¹2M“'ŸyŽp8ÌÜïgøùçñûçóݾý4„BädeaÍÓ¾»b%KÊ—ñð÷Ñ??ïè‘vÇ’îœè°íö#ŽÒ »†žž¿€ÍŸý‡ï -FÓ´˜=#˜Nÿ¼\tý°­¨ ¥`î¯÷{öça¦%4åޚΠ÷ÃX¬îàs^ Â]Í+Æ\BaA>Ó¦\ÛfÏýÛßßfýÆM<ñȯb¶ü¼lzà^V¬\E0=Íuî }2Ò)} øýt°ž±p‡ššöîÙˆì­[¶*àÞò7–>ךçú™²²iã…&_v§Z>*jþœèŒB«¢­¤ŸZ¨›—.^úÙ‘ c #595C59", ", c #5E6263", "< c #60625E", "1 c #606565", "2 c #636768", "3 c #666A6A", "4 c #696D6C", "5 c #6C7071", "6 c #727573", "7 c #757875", "8 c #767979", "9 c #797D7B", "0 c #7D807D", "q c #7E8181", "w c #80837E", "e c #828483", "r c #858887", "t c #868988", "y c #8B8D8B", "u c #8D908F", "i c #8F9291", "p c #90938E", "a c #939592", "s c #9A9D9B", "d c #9EA09D", "f c #9FA2A1", "g c #A2A39E", "h c #A4A5A2", "j c #A6A8A6", "k c #A7A9A8", "l c #A8A9A4", "z c #AAACA8", "x c #AEB0AD", "c c #B0B1AD", "v c #B3B4B1", "b c #B7B9B5", "n c #B9BCB6", "m c #BDBDBA", "M c #BDC0B9", "N c #C1C3BE", "B c #C6C6C2", "V c #C6C9C4", "C c #C9CAC6", "Z c #CCCDC9", "A c #CED0CB", "S c #D3D3CE", "D c #D5D5D1", "F c #D7D8D4", "G c #D9D9D4", "H c #DDDDD9", "J c #DEE0DC", "K c #E0E0DD", "L c #E4E4E2", "P c #E7E8E6", "I c #E8E8E5", "U c #EBEBE9", "Y c #F4F5F4", "T c #FEFEFE", "R c None", /* pixels */ "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRe&&==&&*=&*&&=&*&&*&==&&&*&=&=&=&=&=&=&==&=&&*=RRRRRRRRR", "RRRRR=-:==:-==::=:=::=:=:==:====::===-=-=-=-=-=---==-----=#RRRRR", "RRRR=::ehczzzzzzzzzzzzzzzzzzzzczzzzzzzzzzzzzzzzzzzzzzzcd9=-=RRRR", "RRR=-pCZclgdggggggggggggggggggggggggggggggghgghhggggghlcSNw:-RRR", "RR%-4KUggvBBBBBCBCCCBBCBBCBCBBBCBBCCBBBBBBBBBBBCBBCBBNcglYS>-RRR", "RR--NBlcKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUFllAc-=RR", "RR=6DclHUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDhbG-=RR", "RR:aZcnUUIUUUUUIUUUUUUUUUUIUIUUIUUUULUUUUUUIUUIUUUIUIUUUUccS7=RR", "RR:lBzCIIIIIIIIIIIs5IIIIIIIIIIIIUIIIIILUUIIIIIIIIIIIIIIIIMcAp-RR", "RR:lNcAIIIIIIIIILI9XIIIIIIIIIIIIIIIIIIIIULLUIIPPIIIIIIIIINcCp-RR", "RR:lNcAILILPGCLPLI9oILILLmLILIILIIIKILIIIULLLPLLIILILILIINcCa-RR", "RR=zNvALLLLL,+BPLIZNPLLK3XCPLPLIKIIIKIILa$&%%%fL*&&=LIIILNcCa:RR", "RR:zNbSLLLLLm+%KLLLLPKLr.rPKLLLLKIKIIKLLe.;333xL53oOKIKKIBnBa:RR", "RR-zNbALKLILLmbLHi3>qBKHsLKPLLLLKIKIKIKLr.kLLLLLLL%OIKKIKBnCp-RR", "RR=zNmDLLLLKLKKS**us5okKKLKKLKKPIKKKLKLKeXkLLLJLJL&OLKIKLCmBa-RR", "RR-zNmDHKKKKKKK23HKKLk+CKKHKKLKKKKKKKKKLe.kLKLKLKL$+KKLKKCMVa:RR", "RR-zNNDKKHASFKZ.SKKKKK2yKHSSFKKKKKKKKKKKe.ekzxKKKK$+KKKKKZNVa:RR", "RR-zNBDHKn..1Kk%HKHKKKt3Kh..8KHKKKKKKKKHe....%LHHL&+KKKKKANCp-RR", "RR-zNBDHHZttdKmoHHKHHK88HBrrkHKHKKHKHHKHe.tvvbHHHH$+HHHHHABCa-RR", "RR:zNCDHHHHHHJG@sHHHHZ@hHHHHHHHHHHHHHHHHe.hHHHHHHH%OHHHHHSBCa:RR", "RR=zNZDHHHHHHHJhoaDHb=3HHHHHHHHHHHHHHHGHe.hHHHHHHH%OHHHHGSCBa:RR", "RR=zNADHGHHHHSSHz$.oX9DHZGGHGHHGHHGHHGHHe.hHHHHGHG%OHHHGHSCCp:RR", "RR:lNDDGGGGHD,>DHGBbFHHp#nHGHGHGGHHGGHGGw.hHGGGHGH$OGHGGGDZCp=RR", "RR-zNDGGGGGG1.rGGGHFGGGbOONGGGGGGGGGGGGHw.gGGGGGGG$OGGGGGFAVa:RR", "RR-zNDGGGGGGgrGGFFt=GGGGn6DGGGGGGGGGGGGGaRR", "RR-zNGGGGGGGDGGDFF6oGGDGGGFDGGDGGGGDGGDGDGDGGGGDGGDDGGDDGGDVp-RR", "RR-zNHGDDDDDGDDGDF6oDGDDDDGDSGDGDDGDDDDDDGDDDDDDDGDGGDDGDGDCa-RR", "RR-zNHGDDDDDGSDDDDZNGDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDHFVa-RR", "RR-zNGHDSDDSDSSGDDSDDDDDSDDSSDDDDDDSDDDSDDDSSDDDDSDSSDSDDLAVa-RR", "RR-zVZLGSSSSSSSSSSSDSSSSSSSDSSSSSSSSSSSDSDSSSDSDSSSSSDDDGLBZa-RR", "RR-sABLLFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSDSSSSSSAHLLmDe=RR", "RR-0JUUPULJJJJKKKKKKHKKKJJKJJJKKKKKKKKKKKKKKKKKKKJJKJLLUPUPH<-RR", "RR=>UYUJZGLLLLLLLLKKKLLLLLLLLLLLLKLKLKKKKKKKKKKKLLLLLLDVIUYL=-RR", "RR--vYYAnnnnnnnnnnnnnnnnnnnnnnnnnnnnMnnMMMnnNnnnnnbnnnnnHYYu-=RR", "RRR--ZYHCVMMMnMnNnNnNmmnMMMMMnMnMMMMMMMMMMMMMMMMMMMMnMVZJYc-=RRR", "RRR ==unZHJJHJHJKJHJHJJJHJHJKJHJJJJKJJJKJJJKJJJJJJJJKJGCc0=-RRRR", "RRRRR=:-=->>>>>:>>>>>:>>>>>:>>>>>>:>:>:>>>:>>>:>:>>>>>---:-RRRRR", "RRRRRRR>=======-===========-=========-==================&RRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" }; pommed-1.39~dfsg/icons/gpomme_72x72.png0000664000175000017500000000550311571653265017325 0ustar julienjulien‰PNG  IHDRHHUí³GsBIT|dˆ pHYsÃÃpMBtEXtSoftwarewww.inkscape.org›î< ÀIDATxœíšypUÇ¿ïõœ™™$$$$™I !„åNÀ(•Zu¼X $»XÅ®,»º”²^µ®ºžèR Þ®–»®K8,RWdAÅ#ŠàRäK9Ì$ ¹Hf’9{úí“if2ÝÓ9$1Tªºª§ßï]ßþ½÷~ïMÆT䡣݀Ÿ:ª@ ¨)  ¤€*ª@ ¨)  ¤€*ª@ ¨)  ¤€*ª@ h” Ö®]«íptrrB. A)c~ÆhÝÎ;¿e ç=D.½êÆ¥‹Á¸G0“1¦» -e!=Œ±ÏŠÛv½¾ë˜¤Ml6›Þd‰{„Üf0XqQxÉD$%%ÃïóA#Òø §Ñ€£ζµâÔÉ“¨¯oxž÷¸}gÍî§û{T”@U+–íØRÛU6Ì,™ Æ´4Ûár¹à÷ù!ÂHöçG‡ÓpÐét0[,°Z3áp8Q[[Ëjkk !äO5ÿÚù`¸}„@Ë—WV1‚š²ÒR¬Ys3ZZì8|økø¼^PJ‘½~l¶Þ^zzœ`Œ!·Ë.«<¾é1vúôiž°À϶o£.d/ T]]ï¼'Çݺ~=í8×¶3­p»ÝÈË›ŠììBF§W?2<Ï£±±v{â‘nM¶lÙ*ð~ÿW5Ûw-ÙŠ«’7àÖ|Õ•WRŸß‡Ž¶6x½ÌœY‚ììc좸8ŽCaarr&£·Ç‰³gÎÀl¶ ´´”2`Þõ×_o‰‚0 23³Ðíè‚ÏëCJJ*&L˜€]”×”)¹0Œðy¼p8º Ä`ДD D)Öh4B|B<Ün7¡HNNôÛ^¯@`Ô=Eé"„ )) ‚Ààñz‘šš)„D À”˜˜Èxž8ŽÂd2 ºÒϾø¶%ËP³ëQ` —Éd¥>Ÿƒ1ä,ãB¢DDÒ„‚B(å@cƒýc1hφwä¡”¥€±èFzë@Ž e’VþÐ7ÿ…Ëí–L "=ü>¯ýrÔ½¦ÿ0 õU ɽ¥TÖ Ž­Ã=÷=ˆiùSñ—?ß £Á ¦MŸ–Çzii"ò2ưù©g°gï>¬ÿÝZØ®ü¹l£”xÿƒ±ûÍ·%ÓîøÃzLÍËźõà÷ûÅç+–Ý€ŠÅ—Iæ¡T~‹)™b€´äOÅÜÙ³PßЈûx‚ ˆi‹3 2>r‚þ¥W°gï>ädO²Ãzë§öæ´¶µ£·×qñ}‹ƒËå†ÇãEGG'ìÍ-p:²D)éOÚƒÇQQ þp‡»7nÀ£OlÆ¥ ËD»ŽÎs8ZWS§O#=- …Ó `ÍH\^¾ß}÷ÞuÌ}“ÿP e­¸¼·¬»Y"ᕞl{ö¼÷Á‡Á…]¢NBì«L ,sÜbÁÀYº# ‡{ï¼=Ô$¼ùλxõµí „ÀjÍ@këàìéÁ’ë®ÆêU+‘;%?|¿h?<˜Ì½R)‚Ä ½Ç”ñ €£òÔŸwß߃—_ý'VW¯Ä’kmâ˜>ðÙØöÜ‹ðx<¸å·¿`GBßJ ¦Ø>!”.3Ÿ†F /±‚1†¥Ü€–ê®®nüíÕ×pSõJ,¹îê`[úò,,ƒÁ€ûz ‹Ë/Å´ü¼˜e ”°…R±}¡ôXbRʤqbD~…~òéçâýô‚|$'%¡áØq0AÀ5¶+$0«¤³2qè›#ÈŸš ׋¯ÓçÌ*ÑhŒÙÉh‚õÔ5öç^ŸLCù¢2I[ù—Ý×W™c.é9(,6/tÓæ§Äû»7nÀü¹ãÐdoFZÚ„¾°@ú Y3ÒÑd·ƒ1†î®îˆržÙò2­Ò­“!TM“ÝŽ&»=,¸tai¤­ÀÄLòCŒxéºdâ ó±Ax¡knú¥xÉÄL0Æ6!­míb.ÅÙÖV”C{³)¢œ„„ø!Gë KçceÕ âS³9zu ²«X¬8(Æ2íA×Ú®ˆ¬œ1äçåÂï÷cïþQqyyTYǿʼn“§ñ«U+ÀƒÑ`,g0„ÌM¦81Œ+Kü­àAƒŽƒÂÅX$%ÊÊ_à¥Wþ­Fáâu ؼõY”-˜‡¢ÂéÊ}"PX™"M•&éó}•B1PHœ±tÉ5p{<Øòôóx½f23­hkmCSs •ÍÇÚ5«TÎà‘Žm¢m¤îƒ #PŒíAŒ1¼øòß1oî,Ï(DõÊe(_TŠoŽÅ?Ø‘7e2 òÅ¥½¹åx½f7nY÷kôz…Nņ‰qÐÀ=(Ö‚IOÒá•>óÂËØ÷Ñ|âfL/!™ÖŒ¨)”ÿ­wÞÃçµ_¡»Û{þ¸ax‡ÿƒˆƒÂ³Ä\æe\Hv³ë¸ãÈÑzìûè&feâ®;n‹°s»=}›ÃžˆÞ1E¿H:æ%0Ù~„wÈýs/Ö?P QTX€[3Š §Ãb1GØ9Z‡M›·aÕòJ,¹Î&>ç8Ö¯Ãþ?EÅâòaMØÓ¦bÕòJLš4Q±œùóf##= ùy¹1†Ø ç ª‚ÀË6 lÁ<1æ( q9ŽCÅâò˜ùBîääN>ÿOK,JŠg ¤x†¬-!tf}ª ‚òf°?â²:fŽ\‡(¬ofü™ôŒÂ<õ×GaŠ‹BŹ’y}^p\Ðõ¿”‰,z)ã“ú~ýôÒh4`Lý(#J ­V žçètø|ž1á CRÎ(¡à¸h9ÿ„ÁãqC«Ñ‚RŠŽÎ6XÓ³`4šÑÛëÉv„˜Íñà8ííÐéõ‚[zƘ8lDØ·Ngçr»`6Y‘ž €!.Î ­V—«<ïC@æ`i¬Àqhµ:˜LpœeÍBGg;:::„¡>d/ Dà @{{;f—ˆÃÊáè†AoDbbòwåÂâ÷ûÁxF X,ñø`Ï¿ŒÑÃ!»óÄèA5ۛɼ¹ àyøy?\nNœú¦83ŒÆ8p1ö-c`Ÿzárõ"oJ>@«ÕA§#8~ì¸@é¬Ù±ã‡½(ÐŽ;NV­¨|î­·ßZWZZ†ô´tBàptçyt;ºÐíè….]8œN’“ƃRНDã±F ‚{Âm"¾0«ªª2NhHNoݸñNš2>Í-Mpö8àõzáóy!c{Eã8 ½Î½^¤qÉHMMCccžxrãy~ߎí»*Âí£¾Q¬\Y9›Þ#YWÙlÈ2ãSR ÕjG´#ǃ³gΠ®¾8ð !yŽ-ÝýÚn{¸ägÀÕÕÕñÞ€g+aX „–’’"è‡yŽó“€=½½8w®34™c¶·v>´ÿþ¨£{Ù鸞òÆÊ|ÊØ&Ù„ Ï—ù~u„ák^˾ìï5áÄHåâñˆ †*ª@ ¨)  ¤€*ª@ ¨)  ¤€*ª@ ¨)  ¤€*ÿûŽÊMuIEND®B`‚pommed-1.39~dfsg/icons/gpomme_72x72.xpm0000664000175000017500000001500411571653265017342 0ustar julienjulien/* XPM */ static char *gpomme_72x72[] = { /* columns rows colors chars-per-pixel */ "72 72 72 1", " c black", ". c #2E3436", "X c #303638", "o c #353A3C", "O c #3D4244", "+ c #404243", "@ c #424749", "# c #454A4B", "$ c #4B4B4B", "% c #4A4F50", "& c #4C5152", "* c #545653", "= c #525758", "- c #555853", "; c #595B57", ": c #5A5C5C", "> c #5C6061", ", c #62645F", "< c #636666", "1 c #666864", "2 c #666A6B", "3 c #696B67", "4 c #696C69", "5 c #6C706F", "6 c #6F7272", "7 c #727470", "8 c #747877", "9 c #757978", "0 c #797B7B", "q c #7E8281", "w c #828583", "e c #868989", "r c #8A8C8B", "t c #8D908E", "y c #8E9190", "u c #90918D", "i c #919493", "p c #9B9D9C", "a c #9FA09E", "s c #A2A29D", "d c #A3A5A2", "f c #A6A8A5", "g c #AAABA6", "h c #ACADA9", "j c #AEB0AD", "k c #B2B3AE", "l c #B4B5B1", "z c #B6B9B3", "x c #B9BBB5", "c c #BCBDB8", "v c #BDC0BA", "b c #C1C2BD", "n c #C4C5C1", "m c #C6C8C3", "M c #C9CAC6", "N c #CCCDC9", "B c #CED0CB", "V c #D3D3CE", "C c #D5D5D1", "Z c #D6D8D4", "A c #D9D9D4", "S c #DDDDD9", "D c #DFE0DE", "F c #E1E1DD", "G c #E5E5E2", "H c #E7E8E6", "J c #E8E8E6", "K c #EBEBE9", "L c #EFF0EE", "P c #F4F5F4", "I c gray100", "U c None", /* pixels */ "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUU<************&****&**************&********-&*********** UUUUUUUU", "UUUUUU*********************************-******--*******-*****-*---UUUUUU", "UUUU#*-:ugczlllllllllllllllllllllllllllllllkkkxkllllllllllllxxsw;-- UUUU", "UUUU*-sBNkgssssssssssssssssssssssssssssssssssssssssssssssssssgxVmr--UUUU", "UUU**rPAgsskzzxxxxlxxxlxxxxxxxxllxxlxxxxxxxxxxxczzzzlxxxxxlxkssgKK8-*UUU", "UU;-1VbhsMKKKKKKKKKKKKKKKKKKKKKKKKKKJLJKKKKKKKKKKKKKKKKKLKKKKJvskMM;*UUU", "UU-*kBkdVKKKKKKKKKKKKKKKKKKKKKKKKKKKLJKKKKKKKKKKKKKKKKKKKKKKKKKbskAi*$UU", "UU**MbdcKKKKKKKKKKKKKKKKKJKKKKKKKKKKLJKKKLKKKKJKKKKKKKKKKJKJKKKKhhml**UU", "UU-;AxgNJKJKJKKJKJJKJFJKKJJJKKJKJJJKKJJJJKFKJKJJKJKJKKKKKJKJJJJKbgbN**UU", "UU*3ZlhAHJJJHJJJJJJJj.iHKHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKJJNhzZ**UU", "UU*3CzhAHHHHHGHHJJJJj.yHHHHHHJJGJJFJJJJJHJGJJJHJGHHJHHJJJJJJFKFJNhxV**UU", "UU*3CzjAGHHHHHzSJJJJj.yHHHGGjJHGJJJJJJJFGJGHGJGHJGHHGHJJJJFJJKKJNjxC**UU", "UU-3CzlAGGGHHzX:AFJFZcBHGGG9.pGGFJFJFJFJHGGGGp&$&$%$bG&$$$sJFFJFNlxB**UU", "UU*3CxzAGGGGGF2.,FGGGGGGGGq.&ZGGFJGJFGGGGGGGGt.oOOOObG$@o.pFFFKFBzcC**UU", "UU-4CxxAGGGGGGF4gGGVfwpMGGb>ZGGGGGFFJFFGGGFGGt.0GGGHFJGG0.pFJFJFNzxC**UU", "UU*3CxxAFGFFFGGGFFioo*+.qSFFGGFFFGJFFJGFFGGFGt.0GFFGFFFF0.iFFFFFCxxV**UU", "UU*3CxcAGFFGFFFFFpouFGFf+8FGGFFGFFFFFFGFGFFGFt.0FGFFFFGF8.pFJFJFVcxC**UU", "UU*4VcbAFFFFFFFFVouFFFFFj.xFFFFFFFFFFFFFFFFFFu.0FFFFFFFF8.iFFFFFVvcV==UU", "UU*4VbbAFFFsdsBFdoAFFFDDD&eDDfssAFSFFFFFFFFFSu.&089sFFFF8.iFFFFFBbcV**UU", "UU*4CcnAFDD...hFr&FFFFDDD43Dm.XXbFSFFFFSFFFFSu.....9FFFF8.iFSFFFCnxC**UU", "UU*2CcnAFDDiiibFfoFADFSSD*wDZiuuAFSFASSFSSSSSu.4nnnBSSSS8.uFFSSSCmxB**UU", "UU*4CbMASSSSFFAAMXpSSSSDz.jDSSSSSSSSFFAFSSSSAu.0SSSSSSSS7.uSSSSSVMcC**UU", "UU*3CvNCASSSAAAFFeosADSkO5ADSSASSASSASSASSSSSr.0SSSSSSAS7.iSSSSAZNcC**UU", "UU*4VbVASSASAFAFSAq.#<&X4BDASSSSSSSSAFAFSSSSAu.7AASSSASS7XiSASSSCNxC**UU", "UU*3VvVAASAAFAA8hASbt6ekSDb3VSAAAASASAAAASAAArX7ASSAASAS6.uSASAACCcC*-UU", "UU*4CbCAAAASAA7.-AAASAAAAA7.:VASSAAAAAASAAASAu.7AAAAAAAA6XyAAASAZBcV==UU", "UU*3CbZAAAAAAh.&NAAABbNAAAC3XuAAAAAAAAAAAAAAAu.7AAAAAAAA6.uAAAAAZZvC**UU", "UU*4CnZAAAAAAAsNAAAAs.rAAAAViAAAAAAAAAAAAAAAAkugAAAAAAAAfelAAAAAZScV**UU", "UU*3CnSCVAAVAVAVAZVAs.eAAVAAAAVAVAAAAVAAVAAVAVVAAAAVAAAVAAAACACAZSvV**UU", "UU*4CnSAAAVAAAAAVACAd.eAACAACAACAVAAVAAVAVVAAVVAVVAAAAVAACACCCACAScC*-UU", "UU*4BnDZVAAVVVVVCCCCBbMVCCVVVCVCAVVAAVVAAVAVAVAVVAVVVAVAVCCCCCCCADcC*-UU", "UU-4CcGAVVVVVVVAVACCVAAVAVCCCCVCVAVVVVAVVAVVVAVAAVVAVVVVCVCCCCCCFSxC*-UU", "UU-2ZxDGAVVAVVVVVVCVVVVVVVVVCVVVVVVVVVVVVVVAVVVVVVVVVAVVAVCVVVVCFZcC*-UU", "UU*,AxNHSCVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVCCFJbbV--UU", "UU**CmHHHHZCCVVVVVVVVVVVVBVVVVVVBVVVVVVVVBVVVVVVVVVVVVVVVVVVCAGJFFBv--UU", "UU**cPPKSJKKKKHJKJJGJJKJJJJKKKJJKKKJJJJKJKHKJJKJKKJJKKKKJKKJKJGHLLLs-*UU", "UU**dPPKZvMCCCCZCCCBCZZZZZZVCCVBZZVZZZVVZCZZZZCCVCCACCCCVCCCVncGLPPq-UUU", "UUU**SPPbvxxxcxxvxvvxxxxvxvvlvvvxxxxvvvkxxvxxxxxcxcxcxxxcxxxcczCPPb-*UUU", "UUU**4FPDBbvccvvvvvvvvvvvvvvvvvvvvvvvvvvvcvcvvvvcbcccbvvvvvcbnNFPN;-UUUU", "UUUU***abDDSDDSSSSSSSSFDDDDSADDDDDDDDADDDSDDSSSSSSSSSSSSDDSSSSZbu-**UUUU", "UUUUU:**--556776777777745757774777557777577577777777777755777<**--oUUUUU", "UUUUUUU*-***********************--**********************;-*******UUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU", "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU" }; pommed-1.39~dfsg/icons/gpomme_96x96.png0000664000175000017500000000714011571653265017340 0ustar julienjulien‰PNG  IHDR``â˜w8sBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ÝIDATxœíœypÕÇ?Ý=§FÖèÄ’bɲ$ð%|b6và8Øñ-+¢6¡–]µìf‹Ý"»0;qŠ Á°^W‚ÁسãJ8ŒËa!‹ Á°v€%ø–%ˇd[’uŽfºgº÷‘F3#ikDc»?U¯Jšù½ß{ý¾ý®ßëiAÓ4 ôCÔ»W;†:c 3†:c 3†:c 3†:c 3†:c 3†:c 3†:c 3†:c 3†:c 3¦KÉTU]™ XR\—Ë.W»+ÙLB"‡òUÕ•³€ÛYÀ˜¤«w壇{Ó®÷©x™b PU]i6ÿ©©çUCð «Æýb,£!è½ë·ãJKK™8q"cÆŒ!//I2¡(2Wûc-¢$a6™ñz½466ÒpªÏ>ý”ÖÖ‹}&¯?pÕ¸/ –Pªª++€ý€µ°°Ùsf3}ê4<=ZZ.ÐÙÙ…ìó¡(Š!€(a6›±Ú¬dff’›{ ªªòþû{Ù·ï#<‡¦é®·7:ÿªª+%àC`VEE«ÿýQ:;;8tô Î55ÑÙÞIp¸3ˆF’$2³³3¦ˆò²ëèêêâÑ5ÐÙÙ °ÁUã~8:Ï`« Yf³™ùóçÓØt†ÜœDQdÖ¬)**"8)<™L”——#Š"íÝ´´6ã÷+,^¼¸¯}gTUWfÄ`@YY&“‰Ö‹-xº=ˆ¢@II Ng&š†‘b¤ÒÒrFJG4z<^ZZ›ÉËËÃn·Cp)?5–3Š‹ŠeUUAÓE‘±cÇ¡iš‘â$A(..AEÔ@ŸÏ‡ oà^¦Ç  ¿ ŸÏKÀ@Eìv;‹yØÝTUÈŠŒ¢È#2 |U’ÓéDE4UEUUE¡¸84oN oðèU ÝáÀ'ûPUAIOE*Öû»vïáÙÿx³ÙÌ[¿ÿ¯aûûª’––†(Jhš†ªjø|^²²²ú¾N·4'E±×Ùð+î#þ¾ÊH’¼ÑˆÂà‘œ˜ÑPA Áî•J®lD±otB‹y „ˆ7ù¨ªÊ×NÚÚÚ†´ oôX¾þøÞû:|T÷ u¸“q¿C“pˆ7<ÿ¯yó­=üÏÞ½ü쩵8Î6Ó¦Naõþ5¦¿wßÛËÓÏ<‡Ýncý1þºkã^D2<|˜ç7mŽi3uJ÷ß{­^ƒ¢øÑT U»ÝÊÓ?ýIL¢(ö »>qd!±!èšÜ\êêxøÇkùÙS¡°`4…£{ÿè/ØøÏ£ª*v›Q£Òã–›,‡õõ1mFÎ •{äèqE‰øÞáH‹[/AãÚ@R= ¶£U+—£iðâÖmÔÕ7°ûïòÝÊåq+Ї,ËlÙºUUÉÍÉaú'(ÈÏOùdîoJÅd&ŒØÃŠ‹ŠCv•+–¡©*¢(²{ϸØÖަÅ_Dôõ€xs@\QHhXµr q¾¹…U+–†ò¨ªÊO>ãØñZjOœ ##ƒkËJ™6õz 0›Í¬âqžþåFzðŸ)È’¥ï@ú}Μ>•U+¿IúÊþþ]U¡Ïö}ô1ÛÚ#¾Š~bGDQL|¡ÓgÎòÌÆM:r´×gPÌ=o¿ƒ$IÜUµ’ïV.G’$ Fó‹ ëBy¿.µœxG -Ž]ü!HHlŒÃGޱú±'Q……ßžÏ7çÝBYé8::»8|ä(¯ìpñÊýâO=þHB«†á~ý«³áùŒ¾ ˆi—„ÉUPVžyn@€'üÓ§õïÀss¬Ü2ûfnœuÏlÜÄûü™×ÞÜͲŋ’+䈾ŽKåT5¶qn¹èUPâéµ7vqúÌYªW­`ú´ëµ±˜MüðûÈËËååm5ttv$]Î¥¥pF&_°ÝD†= µðù|´wtD|–›“F>ÿâ ’$±bÙâ˜ÝÕn³²dá~óÒ6Ž«eæô`´¶»»›îày*<{ÍÍÉŽy1‰^•Ï¿88 nÎÌLæßö¸yž„cw€Kà/Ÿþëþ‹ˆÏv¼´‡ÃÀñÚ:JÆa6™âV¶¼¬¬7Ï fôU¯½¹›®!›¼¼\~óŸc_MBô×åÀ'Ÿqà“Ï"¾7v,w|s^|/ 0¬X¿ÉMŽªªâ÷û1™{ðÎl6 øýI•3\iiöˆÏ²³³†°NŽ-C‡î“&\Ǻµk">³Ùl¡8HYi GŽ Fã¬nޝ ¼t\¨œÛnGŤ‰!³Ùœ’}A¸•K¿ÃÊåKbÚD}“€M”lÄ€Ð$]`zz:“'MXÅ^»ñ×–óù_²çíwùö·nÒ¿ßïgÏÛÿ(Šäåæ—›3¨ïáécä–¡‰†"âDC£Ãщ§e‹‘É–W¶s²áÔ 6š¦òò¶œl8Ͳ%‹ÈÊr&]ÎðV@ #ol[QL,š°}ñD“ÑÆ÷Ý‹Ï'óÐêÇØùû7ii½ˆ¦ßàè±ZÖ<±ž×wíalñîZµ"é2.%E4áæ±·íb Àx,(šÓ¦ðäc«ynÓf¶n•­Û_ÅéÌÀãé Eo¿u.÷Üý7H’4B±ŸH¾¼p_ËkÉžˆ½÷§?ÓÒr‘Kƒ»ÚÉÇóìÓëøãÞ?Q[[ljº“”QVZÂô©SÂæŽŽ6¿ø ?¸ç{ddd ]Ȱl(I…ŸH «¤ì@`ïòܦͨªŠÍfåÎÞÉ×b±°àŽÛàŽyúüʲÌã?ÙÀɆӜ>s†µþÛˆˆyÉõ€èÞ‹DH"›ðÆÏÉÎbÚ”ëª@‹…¹³oàdÃiÖ®û9Q;íˉ¾PDŠ6bñÿpßþPã¯]ó0ù£óäioïäÜùóˆ¢@yYéË–,BÓ`Û«nΜmâD}S¯Ÿû ’$ò.Ž]‰øŒDå ‘®ú/?¼Ÿß¾´Å‹î´ñö}¼ŸÍ/¾ŒÙlfû–_ êgÙ’…¢È× ó™R1)åsvV·Î›@qј¤üÏœ9’’b,Kʆ PÑ45¶#“Ä}wïCUNâïH–~gA\›K¥¸¨¼ÿïªG4Õ•KΗR4¸qídùVœº"IARòTÄpÖËá$³Š¸Üé`+¤…† T snžÅ¤‰×…æ•+™¾!(ÞSY‘{WAf4ÍË4!ìv{ßsòWtE)øxºªâı)€€€Ïç Û ÄG’Lˆ¢@7ø£ÈXû¨!§j‹Å|¶Ý¯ Š"6›‘‰N^YIÀfKCE¼¾žP[EtÐü@ïãwÐt®‘qc˰ZÓeEñ éÌìöt$Ʉ߯ÐÜÒ €ÅbEî¼1bìà,ßÒÒBvVðÜáp Ë^l¶422²ðxºðxº¢ý\õˆ¢Dzº«Õ€_ `·Û‘åàÓºð|Ñfœ9{† &P_È× ‹Ð4îînlV£F9IKKGQdü~™@ µûƒË “ÉŒÙlÆl¶†‚–>ÙG¦3“tG:Mç‚ __j÷O#òGùû ÀÉúz¬+ù× Ë2Á#ÈÖÖfi£$ I²v úéñzD‘ôôà¯, ¥%å46¥©é\ŸÙ'áy ®®.4‘˜Ì¦ÐቧÇC铤¥9°Ûí¤ÙH’4¢õ•Fž==<=Ý\[ÞNn6[O·§oÙw-À~àEñÏqïtq÷÷þ“d ¿ÂŶVü?ítt¶ôå]–´µµâÌp†_Vd^øu(ð¸ÑU㎘<#–¡®· Ü øÞyçŽ×Àd2! ‰=çrµ#+ V‹ IÑ€×ßxææ '£í‡z]Íj`½Édâx€3n »»‹ŽÎv¼Þ|>>Ÿ7øcî«\I±ZlX­VlV«•ÜœkøÝïv²ë­]|@qŽ«ÆýQtþ¡0.`9ÀM_ÿ:·ÌKNv‚ÿtìjƯ(4;ÏÎnüÀ\5î_fï•e÷Ï£¬V+%ãÆQ2v,†½üZš›9Qw‚S§N‡Õ‡ï»jÜû‡Ê÷¥}UÕ•%ÀóÀ­€#%5¾ò¹lqÕ¸{b&ôÖD½Ik2Á·&NÅxme4W‘»jÜõ‰fJXƒ‘Áxs®ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€ÎèŒ!€Îü?T:WâDQŸIEND®B`‚pommed-1.39~dfsg/icons/gpomme_96x96.xpm0000664000175000017500000002521711571653265017365 0ustar julienjulien/* XPM */ static char *gpomme_96x96[] = { /* columns rows colors chars-per-pixel */ "96 96 79 1", " c #2E3436", ". c #303638", "X c #33393B", "o c #383E40", "O c #3D4344", "+ c #404646", "@ c #424749", "# c #43494A", "$ c #4A4F50", "% c #4E5253", "& c #545653", "* c #515658", "= c #565854", "- c #55595A", "; c #595B57", ": c #5A5E5C", "> c #5E605C", ", c #5C6061", "< c #616464", "1 c #666864", "2 c #666A6A", "3 c #696C6A", "4 c #6B6F70", "5 c #6E706C", "6 c #6E7271", "7 c #727472", "8 c #757876", "9 c #757979", "0 c #7A7D7B", "q c #7E807C", "w c #7F8282", "e c #81837F", "r c #828584", "t c #868989", "y c #898B87", "u c #8A8D8B", "i c #8E908E", "p c #8E9190", "a c #929493", "s c #969895", "d c #989A96", "f c #9B9D9C", "g c #9DA09C", "h c #A1A29C", "j c #A5A6A2", "k c #A6A8A5", "l c #A7A9A8", "z c #A9AAA5", "x c #ABADA9", "c c #AEB0AC", "v c #AFB1B0", "b c #B1B2AD", "n c #B3B4B1", "m c #B6B8B2", "M c #B9BCB6", "N c #BCBEB9", "B c #BEC0BB", "V c #C0C2BD", "C c #C4C5C1", "Z c #C5C8C2", "A c #C8C9C5", "S c #CCCCC9", "D c #CED0CB", "F c #D3D3CE", "G c #D6D6D0", "H c #D6D8D3", "J c #D9DAD5", "K c #DDDDDA", "L c #DEE0DD", "P c #E1E1DD", "I c #E5E5E2", "U c #E7E8E6", "Y c #E8E8E6", "T c #EBEBE9", "R c #EFF0EE", "E c #F0F0EF", "W c #F4F5F4", "Q c gray100", "! c None", /* pixels */ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!", "!!!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!", "!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!", "!!!!!!&&&&8hMFGFDDDDDDDSDDDDDDDDDDDSDDDDDDDSDDDDSDDDDDDDDDDDDDDSDDDDDDDFSDDDDDDDFHSbs1&&&&!!!!!!", "!!!!!&&&5kJFMchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhkhhhhhhhhhhhhhhhhhhhkzcVHFd>&&&!!!!!", "!!!!&&&eQTZxhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhghhhbFWU<&&!!!!!", "!!!!&&:ZPWchhbVGKKJJJJJJKJJJJJJJJJJJJJKJKJJKJJJKKJJJJJJJJJKJKJJJKJKJJKJJJJJKJJJJDVzhhZTLz&&&!!!!", "!!!&&&gKVxhkFTRTTTTTTTRTTTTRRTTTYTRTTRTTTTTTTRTTTTTRTTRTTTTTTTTTTTTTTTTTTTTRTTTRTTYVhhbSJ0&&!!!!", "!!!&&1JSbjhPTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTRTTTTTTTTTTTTTTZjjMJA&&&!!!", "!!!&&yKMxjVTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTETTTTTTTTTTTTTbhcVK:&&!!!", "!!!&&kHMzzPYTTTTTYTYTTYTTYTTTTYTTTYTYTTTTYTTTTTTTRTTTYYTYTTTTYTTYTPTTPTPTTTTTYTYTTYTYFxcMK0&&!!!", "!!!&&BDmzbTTTYYYYTYTTTYYYTYYPYTYPTTYTYTYTYYYYYRPTPTTTYTYTYYTYTYTTTRTTRTRPRPTYTYTYTYYYPzzMJf&&!!!", "!!!&&SAncNYYYYYYYYYYYYYYYYTf XYYTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYllMFx&&!!!", "!!!&&SCncNYYYYYYYIYYYYYYYYYf XYYPTYTYYPYYIYYYYYYYIYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYccMDc&&!!!", "!!!&&SAncVYYYIYIYYYYYIYIYYYf XYYTTPTYYTTYYYYYYYYYYYYYYYYIYYYYYYYYYYYYYYYYYIYYYYYYYYYYYbcMSc&&!!!", "!!!&&SAnvVIYIYYIYIIpHYYYIYIf .IYPTTPPcVPYIYYPYIYIYIIIYIYIYIIPYYPIYIIIIIYIIYIIYIYIIIYIYbbMSc&&!!!", "!!!%&SCmnCIIIIIIII0.%HYIIIYSllIIIIIIz.oVYIIPYPIIIIIIIYIIIIIIV%*%*%*%&eII,--**,IIYIIIIInnMSb&%!!!", "!!!&&SCmnCIIIIIIIIp %GIIIIIIIIYIIYj. #SIIIYIYIYYIYIIIIYIYIIn . 3IIo oIIIIIIYInnMDc&&!!!", "!!!%&SAnnCIIIIIIIIIp pPIIIIIIPIIIP# @SPYIIYIIIIPYPYPIIIIIIIn ,rrtrrjIItttO oPYIIIIIImmMSx&&!!!", "!!!&&SAnNCIIIPIIIIIIpwPYPPvu39fSIIPS-SIIPIPPIPIPIPIPIIPIIIPPn pIIPIIPIIIPP* oIPIIIIIImNMDc&&!!!", "!!!&&SCMNCIIIPIPPIIPIPPIA; .uPIPIIIIIIIIYPIYIIIIPIPPIPIPn iYPPIIPIPIPP&.oIIPPIPIPNNNFc&&!!!", "!!!&&ACMNAIPIPIPIPIPPPPNX.qmJFk$ ,PPPPPPPPPPPPPPPPPPIIPIIPIPv pPIIPIPIPPPP& oPPPIPIPINNnSc&%!!!", "!!!&=SCNNSPPPPIPPPPIPPK$XbPPPPPP6 aPPPLIPPPPPPPPPPPIPPPPPPPPv iPPPPPPPPPPP& oIPPPPIPPVNNSc&&!!!", "!!!%&SZNVSPPPPPPPPPPPPp.yPPPPPPPH#XGPPLPPIPPPPPPPPPPPPPPPPIPc iPPPPPPIPPPK& oPPPPPPPPVVNSc&%!!!", "!!!&&SZNVSPPPPJSASSKPP &GKPJKJPJPJPJKKKKKJKKKKKKKKb eKKJPKKJKKJJ& oKKKKKKKJSSMDc&&!!!", "!!!&&FZVDGJKJJKJJPJJJJJKb+..OX 8VPJKJKKKJJJPJKJJKJKJKJKJKJKz aKJKJJKKJJJJ& oJKJKJKJKDDVDx&&!!!", "!!!&&SZVFGJKKKKJJJKJzeJJKFd5&>ebKKKV1FJJJPJJKJKKKJJKJJKJKKJKz yJKJKKKJKJKJ& XKJJKJKJKFDMDc&&!!!", "!!!&&SZZFGJJJJJJJJJho+eJJJJPJJJJJJG= &SGJJJJKJJJKJJKKJJKJJJJb .yJKJJJJJJJJG& oJJJJJJKJFFNDc&&!!!", "!!!&&SVZGGJJJJKJJJh. +VJJJJPJJKJKJKe &FJJPJJJJJJJJJJJJJJJJJz .yJJJKJJJJJKJ& oJJJJJJJJFFVDc&&!!!", "!!!&&SZZHHJJJJJJJJ1.+VJJJJJVmmJJJJJPe bJJJJJJJJJJJJJJJJJJJJz .yJJJJJJJJJJJ& oJJJJJJJJGFBDc&&!!!", "!!!&&SZAJHJJHJJJJJF5VJJGJJJd XJJJJJJJezKJGJJGJJJGJGJJJGJJJJJM55zJJGJJJJGJJJr48JGJJJJGJGJBFx&&!!!", "!!!&&SZAJJJJJGGGJJJGJJJJGJJh oGJGGGJGJJJJJGJJGJGJJJJGGJJJJJJJGJJJJJGJGJGGGJGJJJJJJJJJJJJBSx&&!!!", "!!!&&SCAKJHHGJJGJGJJJJGJJGJe XJGJJGGGJGJJGJGGGJJGJJGJGJGGJGGJJJGJGJJGJJJJGJJGJGJGJGGJGKKVSc&&!!!", "!!!&&SCAKKHGGGJGGGGGGGGGJGPe XGGGGGJJGGGGGGJGJGGGGGJGGGGGGGJFFJGGGGGGGGGJGGGGGGGGGGJGGKKVDc&&!!!", "!!!&&SCSPKGGGGGGGGGGGGGGGGGFNNGGGGGGGGGGGGGGGGGGGJGGJGGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGGGPPVSc&&!!!", "!!!&&SCCPPGGGGGGGGGGGGGGGFFFGFGFGGGGGGGGGGGGGGGGGGGGGGGGGGGGFJGGGFGGFGGGGGGGGGGGGGGGGJPPMDc&&!!!", "!!!&&SCNPPGGGFGGGFFGGGGGFGFGGGGGGGGFGFGGGFGFGFGFGGGFGFGFGFFGFGGGGGFGGGGFGGGGGFGGGGGFGJPJMDx&&!!!", "!!!&&SSNKIKGFGFGGFGFGFFGFGFFGFFFFFFGFGFGFGFGFGGFFFGFFGFGFGGFGFGFFGFGFFGFFFGGGFFFGFFGGIUSMHc&&!!!", "!!!&&AFMZUUHFFFFFFFFGGDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFKULNNKz&&!!!", "!!!&&nKMDKUUKFGDFFDFDFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFDFFFFFFFFFFFFDFFGPUULZBKi&&!!!", "!!!&=dKFRRPYYUIKJJJKKJKKKJKJJJJJJJJHJJJJHLLHLHGLGLHJJJJJJLLHHJJJJJKKJJJJJJJJJJKKKIUYUIRRDL4&&!!!", "!!!&&qPWRRRLUTYYTYTTTYUTTYYTTTTYTTTYYTTTYTYYTYTTYYTTTTYTYYYUTTTTYTYYTTTTTTTUTYUTTTTPIRREWK=*&!!!", "!!!&&;RWWERFBZFJLLKKKKKKKKKKLKKKFJLHLLLLLLLLLLJLKLKLPKKKLLLLLLLLKKIKLKKKLLLLLKLKHDZMITTWWD&&&!!!", "!!!&&&dWWWRVMMMMMMMMMBMMNMNMNNMMBBBBmBmmMMMMMmBMMMMMMMMMMMMMmMmBMMMMNMMMMMMMMMMMMMMMHTWWW2&&!!!!", "!!!!&&=GWWRBMMBMMNNMMMMMMMMMMMMMmBBmBmBBMMMMMMMMMMMMMMMMMMMMMMBmMMMMMMMMMMMMMMMMMMMMSWWWj&&&!!!!", "!!!!!&&-VWTLGSVVNNBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBMBBBBBBBBBBBBBBBMCZDHLEEj&&&!!!!!", "!!!!!&&&&uAKLLJLJLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLKKKLLLLLLLLLLLKLLKLLLLLLKLLLKKKKKN5&&&!!!!!!", "!!!!!!!&&&&:0fxxxxxxzxzzxxxxzzxzxzzzzzxxzxzxxxzxxxxxxzxxxxxzxzzxxxxxxxzxzxxkxxxxxzs5-&&&&!!!!!!!", "!!!!!!!!&&&&&&&&&&&&&&&&*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!", "!!!!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" }; pommed-1.39~dfsg/pommed.10000664000175000017500000000264411571653265014715 0ustar julienjulien.\" Hey, EMACS: -*- nroff -*- .TH POMMED 1 "2007-01-09" .SH NAME pommed \- Apple laptops hotkeys event handler .SH SYNOPSIS .B pommed .RI [ options ] .SH DESCRIPTION This manual page documents briefly the .B pommed daemon. .PP .B pommed is a daemon handling the hotkeys found on the Apple laptops, like the MacBook Pro, MacBook and PowerBook laptops. These hotkeys control, through .BR pommed , the LCD backlight level, the audio volume, the keyboard backlight level (only on the MacBook Pro and the latest PowerBook) and the CD/DVD drive ejection. Additionally, .B pommed monitors the ambient light sensors found on the MacBook Pro and the latest PowerBook to automatically light up the keyboard backlight when the ambient light level gets too low. .PP .B pommed can optionally support the Apple Remote Control, too (this option is disabled by default and only available for the MacBook Pro and MacBook). .SH OPTIONS .B pommed accepts the following command-line options. .TP .B \-v Print version information. .TP .B \-f Run in the foreground, printing log messages to stdout. .TP .B \-d Run in the foreground, printing log messages to stdout and debug messages to stderr. .SH FILES .TP .B /etc/pommed.conf The configuration file for \fBpommed\fP. See the comments in the file for the structure of the file and the available options. .SH AUTHOR .B pommed was written by Julien BLACHE . pommed-1.39~dfsg/pommed.conf.mactel0000664000175000017500000000633011571653265016742 0ustar julienjulien# # Configuration file for pommed # # General configuration general { # fnmode: functions keys first (no need to use fn) or last # Value is either 1 or 2, effect is hardware-dependent fnmode = 1 } # sysfs backlight control # nVidia machines, will fall back to nv8600gmt if not supported by the kernel lcd_sysfs { # The sysfs backlight control is a generic interface provided # by the Linux kernel for backlight control on most graphic cards. # The brightness range can differ depending on the hardware. # initial backlight level [12] (0 - 15, -1 to disable) init = -1 # step value (1 - 2) step = 1 # backlight level when on battery [6] (1 - 15, 0 to disable) on_batt = 6 } # ATI X1600 backlight control (MacBook Pro v1 & v2) lcd_x1600 { # initial backlight level [200] (0 - 255, -1 to disable) init = -1 # step value (1 - 127) step = 10 # backlight level when on battery [80] (1 - 255, 0 to disable) on_batt = 80 } # Intel 945GM, 965GM backlight control (MacBook v1-v4, MacBook Air v1) lcd_gma950 { # initial backlight level [0x6f] (0x1f - 0x94 usually, -1 to disable) init = -1 # step value (0x01 - 0x20) step = 0x0f # backlight level when on battery [0x40] (0x1f - 0x94 usually, 0 to disable) on_batt = 0x40 } # nVidia GeForce 8600M GT/9400M/9600M GT backlight control # (MacBook Pro v3-v5, MacBook v5, MacBook v2) lcd_nv8600mgt { # initial backlight level [12] (0 - 15, -1 to disable) init = -1 # step value (1 - 2) step = 1 # backlight level when on battery [6] (1 - 15, 0 to disable) on_batt = 6 } # Audio support audio { # disable audio support entirely disabled = no # Use amixer or alsamixer/alsamixergui to determine the sound card # and the mixer elements to use here. # sound card to use card = "default" # initial volume [80] (0 - 100%, -1 to disable) init = -1 # step value (1 - 50%) step = 10 # beep on volume change beep = yes # mixer element for volume adjustment volume = "PCM" # mixer element for muting the speakers speakers = "Front" # mixer element for muting the headphones headphones = "Headphone" } # Keyboard backlight control kbd { # default value for automatic backlight (0 - 255) default = 100 # step value (1 - 127) step = 10 # ambient light thresholds for automatic backlight (0 - 255) on_threshold = 20 off_threshold = 40 # enable/disable automatic backlight auto = yes # idle timer - fades keyboard backlight automatically (timeout in seconds, -1 to disable) idle_timer = 60 # idle level - level to fade keyboard to after idle_timer seconds. Defaults to switching off. # idle_level = 20 } # CD/DVD drive ejection eject { # enable/disable eject key enabled = yes # CD/DVD device device = "/dev/dvd" } # Beeper beep { # enable/disable beeper # automatically disabled if audio support disabled above enabled = no # WAV file to use (from pommed: goutte.wav or click.wav in /usr/share/pommed) beepfile = "/usr/share/pommed/goutte.wav" } # Apple Remote - deprecated # Note: the appleir driver is required for this to work; this driver has been # obsoleted with Linux 2.6.22, so unless you are running a kernel < 2.6.22 or # use the appleir driver on a newer kernel, this won't work. # You should use LIRC instead. appleir { # enable/disable the appleir support enabled = no } pommed-1.39~dfsg/pommed.conf.pmac0000664000175000017500000000431011571653265016411 0ustar julienjulien# # Configuration file for pommed # # General configuration general { # fnmode: functions keys first (no need to use fn) or last # Value is either 1 or 2, effect is hardware-dependent fnmode = 1 } # sysfs backlight control lcd_sysfs { # The sysfs backlight control is a generic interface provided # by the Linux kernel for backlight control on most graphic cards. # The brightness range can differ depending on the hardware. # initial backlight level [100] (0 - 127, -1 to disable) init = -1 # step value (1 - 63) step = 8 # backlight level when on battery [40] (1 - 127, 0 to disable) on_batt = 40 # WARNING # On some machines, the backlight is handled by the kernel, so # the "step" and "on_batt" configuration values are useless, as # pommed doesn't get to set the backlight level when you press # on the keys. } # Audio support audio { # disable audio support entirely disabled = no # Use amixer or alsamixer/alsamixergui to determine the sound card # and the mixer elements to use here. # sound card to use card = "default" # initial volume [80] (0 - 100%, -1 to disable) init = -1 # step value (1 - 50%) step = 10 # beep on volume change beep = yes # mixer element for volume adjustment volume = "Master" # mixer element for muting the speakers speakers = "Master" # mixer element for muting the headphones headphones = "Headphone" } # Keyboard backlight control kbd { # default value for automatic backlight (0 - 255) default = 100 # step value (1 - 127) step = 16 # ambient light thresholds for automatic backlight (0 - 255) on_threshold = 20 off_threshold = 40 # enable/disable automatic backlight auto = yes # idle timer - fades keyboard backlight automatically (timeout in seconds, -1 to disable) idle_timer = 60 # idle level - level to fade keyboard to after idle_timer seconds. Defaults to switching off. # idle_level = 20 } # CD/DVD drive ejection eject { # enable/disable eject key enabled = yes # CD/DVD device device = "/dev/dvd" } # Beeper beep { # enable/disable beeper # automatically disabled if audio support disabled above enabled = no # WAV file to use (from pommed: goutte.wav or click.wav in /usr/share/pommed) beepfile = "/usr/share/pommed/goutte.wav" } pommed-1.39~dfsg/pommed.init0000775000175000017500000000320011571653265015510 0ustar julienjulien#! /bin/sh # ### BEGIN INIT INFO # Provides: pommed # Required-Start: $syslog $local_fs # Required-Stop: $syslog $local_fs # Should-Start: dbus # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Apple laptops hotkeys event handler # Description: pommed handles the hotkeys found on the Apple MacBook Pro # and MacBook laptops and adjusts the LCD backlight, sound # volume, keyboard backlight or ejects the CD-ROM drive # accordingly. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/pommed NAME=pommed DESC="Apple laptops hotkeys events handler" test -x $DAEMON || exit 0 set -e pommed_start() { $DAEMON } pommed_stop() { pid=$(cat /var/run/pommed.pid) kill $pid rm -f /var/run/pommed.pid } case "$1" in start) echo -n "Starting $DESC: " pommed_start echo "$NAME." ;; stop) echo -n "Stopping $DESC: " if [ -f /var/run/pommed.pid ]; then pommed_stop echo "$NAME." else echo "no PID file found; $NAME not running?" fi ;; force-reload) # check wether $DAEMON is running. If so, restart if [ -f /var/run/pommed.pid ]; then $0 restart else echo "Reloading $DESC: $NAME not running." exit 0 fi ;; restart) echo -n "Restarting $DESC: " if [ -f /var/run/pommed.pid ]; then pommed_stop else echo "no PID file found; $NAME not running?" exit 0 fi sleep 1 pommed_start echo "$NAME." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 pommed-1.39~dfsg/pommed/0000775000175000017500000000000011571653265014625 5ustar julienjulienpommed-1.39~dfsg/pommed/.gitignore0000664000175000017500000000001011571653265016604 0ustar julienjulienpommed pommed-1.39~dfsg/pommed/Makefile0000664000175000017500000000760611571653265016276 0ustar julienjulienARCH ?= $(shell uname -m) CC = gcc DBUS_CFLAGS = $(shell pkg-config dbus-1 --cflags) -DDBUS_API_SUBJECT_TO_CHANGE DBUS_LIBS = $(shell pkg-config dbus-1 --libs) ALSA_CFLAGS = $(shell pkg-config alsa --cflags) ALSA_LIBS = $(shell pkg-config alsa --libs) AUDIOFILE_CFLAGS = $(shell pkg-config audiofile --cflags) AUDIOFILE_LIBS = $(shell pkg-config audiofile --libs) CONFUSE_CFLAGS = $(shell pkg-config libconfuse --cflags) CONFUSE_LIBS = $(shell pkg-config libconfuse --libs) INOTIFY_CFLAGS = $(shell test -e /usr/include/sys/inotify.h || echo -DNO_SYS_INOTIFY_H) TIMERFD_CFLAGS = $(shell test -e /usr/include/sys/timerfd.h || echo -DNO_SYS_TIMERFD_H) CFLAGS = -g -O2 -Wall $(DBUS_CFLAGS) $(ALSA_CFLAGS) $(AUDIOFILE_CFLAGS) $(CONFUSE_CFLAGS) $(INOTIFY_CFLAGS) $(TIMERFD_CFLAGS) LDLIBS = -pthread -lrt $(DBUS_LIBS) $(ALSA_LIBS) $(AUDIOFILE_LIBS) $(CONFUSE_LIBS) LIB_OBJS = ifneq (, $(findstring ppc, $(ARCH))) OFLIB ?= SOURCES = pommed.c cd_eject.c evdev.c conffile.c audio.c \ evloop.c dbus.c power.c beep.c video.c \ sysfs_backlight.c pmac/pmu.c \ pmac/kbd_backlight.c pmac/ambient.c OF_SOURCES = pmac/ofapi/of_externals.c pmac/ofapi/of_internals.c \ pmac/ofapi/of_standard.c OF_OBJS = $(OF_SOURCES:%.c=%.o) ifneq ($(OFLIB),) CFLAGS += -Ipmac LIB_OBJS += pmac/ofapi/oflib.a else LDLIBS += -lofapi endif else LIBPCI_SHARED = $(shell pkg-config libpci && echo true || echo false) ifeq ($(LIBPCI_SHARED), true) LIBPCI_CFLAGS = $(shell pkg-config libpci --cflags) LIBPCI_LIBS = $(shell pkg-config libpci --libs) CFLAGS += $(LIBPCI_CFLAGS) LDLIBS += $(LIBPCI_LIBS) else LIB_OBJS += /usr/lib/libpci.a LDLIBS += -lz endif LDLIBS += $(LIB_OBJS) SOURCES = pommed.c cd_eject.c evdev.c conffile.c audio.c \ evloop.c dbus.c power.c beep.c video.c \ sysfs_backlight.c \ mactel/x1600_backlight.c mactel/gma950_backlight.c \ mactel/nv8600mgt_backlight.c \ mactel/kbd_backlight.c mactel/ambient.c mactel/acpi.c endif OBJS = $(SOURCES:%.c=%.o) pommed: $(OBJS) $(LIB_OBJS) pommed.o: pommed.c pommed.h evloop.h kbd_backlight.h lcd_backlight.h cd_eject.h evdev.h conffile.h audio.h dbus.h beep.h cd_eject.o: cd_eject.c cd_eject.h pommed.h conffile.h dbus.h evdev.o: evdev.c evdev.h evloop.h pommed.h kbd_backlight.h lcd_backlight.h cd_eject.h conffile.h audio.h video.h beep.h evloop.o: evloop.c evloop.h pommed.h conffile.o: conffile.c conffile.h pommed.h lcd_backlight.h kbd_backlight.h cd_eject.h audio.h beep.h audio.o: audio.c audio.h pommed.h conffile.h dbus.h dbus.o: dbus.c dbus.h evloop.h pommed.h lcd_backlight.h kbd_backlight.h ambient.h audio.h power.o: power.c power.h evloop.h pommed.h lcd_backlight.h beep.o: beep.c beep.h pommed.h evloop.h audio.h video.o: video.c video.h pommed.h dbus.h sysfs_backlight.o: sysfs_backlight.c pommed.h lcd_backlight.h conffile.h dbus.h # PowerMac-specific files pmac/kbd_backlight.o: pmac/kbd_backlight.c kbd_auto.c kbd_backlight.h evloop.h pommed.h ambient.h conffile.h dbus.h pmac/ambient.o: pmac/ambient.c ambient.h pommed.h dbus.h pmac/pmu.o: pmac/pmu.c power.h # OFlib pmac/ofapi/oflib.a: $(OF_OBJS) ar cru $@ $^ pmac/ofapi/of_externals.o: pmac/ofapi/of_externals.c pmac/ofapi/of_api.h pmac/ofapi/of_internals.o: pmac/ofapi/of_internals.c pmac/ofapi/of_api.h pmac/ofapi/of_standard.o: pmac/ofapi/of_standard.c pmac/ofapi/of_api.h # Mactel-specific files mactel/x1600_backlight.o: mactel/x1600_backlight.c pommed.h lcd_backlight.h conffile.h dbus.h mactel/gma950_backlight.o: mactel/gma950_backlight.c pommed.h lcd_backlight.h conffile.h dbus.h mactel/nv8600mgt_backlight.o: mactel/nv8600mgt_backlight.c pommed.h lcd_backlight.h conffile.h dbus.h mactel/kbd_backlight.o: mactel/kbd_backlight.c kbd_auto.c kbd_backlight.h evloop.h pommed.h ambient.h conffile.h dbus.h mactel/ambient.o: mactel/ambient.c ambient.h pommed.h dbus.h mactel/acpi.o: mactel/acpi.c power.h clean: rm -f pommed $(OBJS) $(OF_OBJS) pmac/ofapi/oflib.a rm -f *~ mactel/*~ pmac/*~ pmac/ofapi/*~ pommed-1.39~dfsg/pommed/ambient.h0000664000175000017500000000124511571653265016417 0ustar julienjulien/* * pommed - ambient.h */ #ifndef __AMBIENT_H__ #define __AMBIENT_H__ #define KBD_AMBIENT_MIN 0 #define KBD_AMBIENT_MAX 255 #ifdef __powerpc__ /* I2C ioctl */ # define I2C_SLAVE 0x0703 # define ADB_DEVICE "/dev/adb" # define ADB_BUFFER_SIZE 32 struct _lmu_info { unsigned int lmuaddr; /* i2c bus address */ char i2cdev[16]; /* i2c bus device */ }; extern struct _lmu_info lmu_info; #endif /* !__powerpc__ */ struct _ambient_info { int left; int right; int max; }; extern struct _ambient_info ambient_info; void ambient_get(int *r, int *l); void ambient_init(int *r, int *l); #endif /* !__AMBIENT_H__ */ pommed-1.39~dfsg/pommed/audio.c0000664000175000017500000001420211571653265016071 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006 Romain Beauxis * Copyright (C) 2006-2007 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #define NDEBUG #include #include "pommed.h" #include "conffile.h" #include "audio.h" #include "beep.h" #include "dbus.h" struct _audio_info audio_info; static snd_mixer_t *mixer_hdl; static snd_mixer_elem_t *vol_elem; static snd_mixer_elem_t *spkr_elem; static snd_mixer_elem_t *head_elem; static long vol_min; static long vol_max; static long vol_step; static int play; void audio_step(int dir) { long vol; long newvol; if (mixer_hdl == NULL) return; if (vol_elem == NULL) return; snd_mixer_handle_events(mixer_hdl); if (!snd_mixer_selem_is_active(vol_elem)) return; snd_mixer_selem_get_playback_volume(vol_elem, 0, &vol); logdebug("Mixer volume: %ld\n", vol); if (dir == STEP_UP) { newvol = vol + vol_step; if (newvol > vol_max) newvol = vol_max; logdebug("Audio stepping +%ld -> %ld\n", vol_step, newvol); } else if (dir == STEP_DOWN) { newvol = vol - vol_step; if (newvol < vol_min) newvol = vol_min; logdebug("Audio stepping -%ld -> %ld\n", vol_step, newvol); } else return; snd_mixer_selem_set_playback_volume(vol_elem, 0, newvol); if (snd_mixer_selem_is_playback_mono(vol_elem) == 0) snd_mixer_selem_set_playback_volume(vol_elem, 1, newvol); if (audio_cfg.beep) beep_audio(); mbpdbus_send_audio_volume(newvol, vol); audio_info.level = newvol; } static void audio_set_mute_elem(snd_mixer_elem_t *elem) { if (snd_mixer_selem_is_active(elem) && snd_mixer_selem_has_playback_switch(elem)) { snd_mixer_selem_set_playback_switch(elem, 0, play); if (snd_mixer_selem_is_playback_mono(elem) == 0) snd_mixer_selem_set_playback_switch(elem, 1, play); } } void audio_toggle_mute(void) { if (mixer_hdl == NULL) return; snd_mixer_handle_events(mixer_hdl); play = !play; if (spkr_elem != NULL) audio_set_mute_elem(spkr_elem); if (head_elem != NULL) audio_set_mute_elem(head_elem); mbpdbus_send_audio_mute(!play); audio_info.muted = !play; } int audio_init(void) { snd_mixer_elem_t *elem; snd_mixer_selem_id_t *sid; double dvol; long vol; int ret; vol_elem = NULL; spkr_elem = NULL; head_elem = NULL; if (audio_cfg.disabled) { audio_info.level = 0; audio_info.max = 0; audio_info.muted = 1; return 0; } play = 1; ret = snd_mixer_open(&mixer_hdl, 0); if (ret < 0) { logdebug("Failed to open mixer: %s\n", snd_strerror(ret)); mixer_hdl = NULL; return -1; } ret = snd_mixer_attach(mixer_hdl, audio_cfg.card); if (ret < 0) { logdebug("Failed to attach mixer: %s\n", snd_strerror(ret)); snd_mixer_close(mixer_hdl); return -1; } ret = snd_mixer_selem_register(mixer_hdl, NULL, NULL); if (ret < 0) { logdebug("Failed to register mixer: %s\n", snd_strerror(ret)); snd_mixer_detach(mixer_hdl, audio_cfg.card); snd_mixer_close(mixer_hdl); return -1; } ret = snd_mixer_load(mixer_hdl); if (ret < 0) { logdebug("Failed to load mixer: %s\n", snd_strerror(ret)); snd_mixer_detach(mixer_hdl, audio_cfg.card); snd_mixer_close(mixer_hdl); return -1; } /* Grab interesting elements */ snd_mixer_selem_id_alloca(&sid); for (elem = snd_mixer_first_elem(mixer_hdl); elem; elem = snd_mixer_elem_next(elem)) { snd_mixer_selem_get_id(elem, sid); if (strcmp(snd_mixer_selem_id_get_name(sid), audio_cfg.vol) == 0) vol_elem = elem; if (strcmp(snd_mixer_selem_id_get_name(sid), audio_cfg.spkr) == 0) spkr_elem = elem; if (strcmp(snd_mixer_selem_id_get_name(sid), audio_cfg.head) == 0) head_elem = elem; } logdebug("Audio init: volume %s, speakers %s, headphones %s\n", (vol_elem == NULL) ? "NOK" : "OK", (spkr_elem == NULL) ? "NOK" : "OK", (head_elem == NULL) ? "NOK" : "OK"); if ((vol_elem == NULL) || ((spkr_elem == NULL) && (head_elem == NULL))) { logdebug("Failed to open required mixer elements\n"); audio_cleanup(); return -1; } /* Get min & max volume */ snd_mixer_selem_get_playback_volume_range(vol_elem, &vol_min, &vol_max); dvol = (double)(vol_max - vol_min) / 100.0; vol_step = (long)(dvol * (double)audio_cfg.step); logdebug("Audio init: min %ld, max %ld, step %ld\n", vol_min, vol_max, vol_step); /* Set initial volume if enabled */ if (audio_cfg.init > -1) { dvol *= (double)audio_cfg.init; vol = (long)dvol; if (vol > vol_max) vol = vol_max; snd_mixer_selem_set_playback_volume(vol_elem, 0, vol); if (snd_mixer_selem_is_playback_mono(vol_elem) == 0) snd_mixer_selem_set_playback_volume(vol_elem, 1, vol); } snd_mixer_handle_events(mixer_hdl); snd_mixer_selem_get_playback_volume(vol_elem, 0, &vol); audio_info.level = vol; audio_info.max = vol_max; audio_info.muted = !play; return 0; } void audio_cleanup(void) { if (mixer_hdl != NULL) { snd_mixer_detach(mixer_hdl, audio_cfg.card); snd_mixer_close(mixer_hdl); mixer_hdl = NULL; } } void audio_fix_config(void) { if (audio_cfg.init < 0) audio_cfg.init = -1; if (audio_cfg.init > 100) audio_cfg.init = 100; if (audio_cfg.step < 1) audio_cfg.step = 1; if (audio_cfg.step > 50) audio_cfg.step = 50; } pommed-1.39~dfsg/pommed/audio.h0000664000175000017500000000052111571653265016075 0ustar julienjulien/* * pommed - audio.h */ #ifndef __AUDIO_H__ #define __AUDIO_H__ struct _audio_info { int level; int max; int muted; }; extern struct _audio_info audio_info; void audio_step(int dir); void audio_toggle_mute(void); int audio_init(void); void audio_cleanup(void); void audio_fix_config(void); #endif /* !__AUDIO_H__ */ pommed-1.39~dfsg/pommed/beep.c0000664000175000017500000003015011571653265015703 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * Copyright (C) 2006 Soeren SONNENBURG * * Portions of the code below dealing with the audio thread were shamelessly * stolen from pbbuttonsd. Thanks ! ;-) * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #define NDEBUG #include #include #include "pommed.h" #include "evloop.h" #include "conffile.h" #include "audio.h" #include "beep.h" /* Added to linux/input.h after Linux 2.6.18 */ #ifndef BUS_VIRTUAL # define BUS_VIRTUAL 0x06 #endif static int beep_fd; static int beep_thread_running = 0; /* Beep thread */ static void beep_thread_command(int command); static void beep_thread_cleanup(void); static int beep_thread_init(void); static void beep_beep(void) { if (!beep_cfg.enabled) return; if (audio_info.muted) return; beep_thread_command(AUDIO_CLICK); } void beep_audio(void) { if (audio_info.muted) return; beep_thread_command(AUDIO_CLICK); } static int beep_open_device(void) { char *uinput_dev[3] = { "/dev/input/uinput", "/dev/uinput", "/dev/misc/uinput" }; struct uinput_user_dev dv; int fd; int i; int ret; if (beep_cfg.enabled == 0) return -1; for (i = 0; i < (sizeof(uinput_dev) / sizeof(uinput_dev[0])); i++) { fd = open(uinput_dev[i], O_RDWR, 0); if (fd >= 0) break; } if (fd < 0) { logmsg(LOG_ERR, "beep: could not open uinput: %s", strerror(errno)); logmsg(LOG_ERR, "beep: Do you have the uinput module loaded?"); return -1; } memset(&dv, 0, sizeof(dv)); strcpy(dv.name, BEEP_DEVICE_NAME); dv.id.bustype = BUS_VIRTUAL; dv.id.vendor = 0; dv.id.product = 0; dv.id.version = 1; ret = write(fd, &dv, sizeof(dv)); if (ret != sizeof(dv)) { logmsg(LOG_ERR, "beep: could not set device name: %s", strerror(errno)); close(fd); return -1; } ret = ioctl(fd, UI_SET_EVBIT, EV_SND); if (ret != 0) { logmsg(LOG_ERR, "beep: could not request EV_SND: %s", strerror(errno)); close(fd); return -1; } ret = ioctl(fd, UI_SET_SNDBIT, SND_BELL); if (ret != 0) { logmsg(LOG_ERR, "beep: could not request SND_BELL: %s", strerror(errno)); close(fd); return -1; } ret = ioctl(fd, UI_SET_SNDBIT, SND_TONE); if (ret != 0) { logmsg(LOG_ERR, "beep: could not request SND_TONE: %s", strerror(errno)); close(fd); return -1; } ret = ioctl(fd, UI_DEV_CREATE, NULL); if (ret != 0) { logmsg(LOG_ERR, "beep: could not create uinput device: %s", strerror(errno)); close(fd); return -1; } beep_fd = fd; return 0; } static void beep_close_device(void) { if (!beep_cfg.enabled || (beep_fd == -1)) return; evloop_remove(beep_fd); ioctl(beep_fd, UI_DEV_DESTROY, NULL); close(beep_fd); beep_fd = -1; } void beep_process_events(int fd, uint32_t events) { int ret; struct input_event ev; if (events & (EPOLLERR | EPOLLHUP)) { logmsg(LOG_WARNING, "Beeper device lost; this should not happen"); ret = evloop_remove(fd); if (ret < 0) logmsg(LOG_ERR, "Could not remove beeper device from event loop"); beep_close_device(); return; } ret = read(fd, &ev, sizeof(struct input_event)); if (ret != sizeof(struct input_event)) return; if (ev.type == EV_SND) { if ((ev.code == SND_TONE) && (ev.value > 0)) { logdebug("\nBEEP: BEEP!\n"); beep_beep(); /* Catch that, Coyote */ } } } int beep_init(void) { int ret; beep_fd = -1; ret = beep_thread_init(); if (ret < 0) { logmsg(LOG_ERR, "beep: thread init failed, disabling"); beep_cfg.enabled = 0; return -1; } beep_thread_running = 1; ret = beep_open_device(); if (ret < 0) return -1; ret = evloop_add(beep_fd, EPOLLIN, beep_process_events); if (ret < 0) { logmsg(LOG_ERR, "Could not add device to event loop"); beep_cfg.enabled = 0; beep_close_device(); return -1; } return 0; } void beep_cleanup(void) { if (beep_thread_running) { beep_thread_command(AUDIO_COMMAND_QUIT); beep_thread_cleanup(); } beep_close_device(); } void beep_fix_config(void) { if (beep_cfg.enabled == 0) return; if (beep_cfg.beepfile == NULL) beep_cfg.beepfile = strdup(BEEP_DEFAULT_FILE); if (access(beep_cfg.beepfile, R_OK) != 0) { logmsg(LOG_WARNING, "beep: cannot access WAV file %s: %s", beep_cfg.beepfile, strerror(errno)); if (access(BEEP_DEFAULT_FILE, R_OK) == 0) { logmsg(LOG_WARNING, "beep: falling back to default file %s", BEEP_DEFAULT_FILE); free(beep_cfg.beepfile); beep_cfg.beepfile = strdup(BEEP_DEFAULT_FILE); } else { logmsg(LOG_ERR, "beep: cannot access default file %s: %s", BEEP_DEFAULT_FILE, strerror(errno)); logmsg(LOG_ERR, "beep: disabling beeper"); beep_cfg.enabled = 0; } } } /* * Beep thread */ struct dspdata _dsp; /* Called from the main thread */ static struct sample * beep_load_sample(char *filename) { AFfilehandle affd; /* filehandle for soundfile from libaudiofile */ AFframecount framecount; int dummy, channels, byteorder, framesize, precision; struct sample *sample; int ret; sample = (struct sample *) malloc(sizeof(struct sample)); if (sample == NULL) return NULL; affd = afOpenFile(filename, "r", 0); if (!affd) { free(sample); return NULL; } afGetSampleFormat(affd, AF_DEFAULT_TRACK, &dummy, &precision); channels = afGetChannels(affd, AF_DEFAULT_TRACK); byteorder = afGetVirtualByteOrder(affd, AF_DEFAULT_TRACK); framesize = (int) afGetFrameSize(affd, AF_DEFAULT_TRACK, 0); framecount = afGetFrameCount(affd, AF_DEFAULT_TRACK); sample->speed = (int) afGetRate(affd, AF_DEFAULT_TRACK); if (channels <= 2) sample->channels = channels; else goto error_out; switch (precision) { case 8: sample->format = SND_PCM_FORMAT_S8; break; case 16: if (byteorder == AF_BYTEORDER_LITTLEENDIAN) sample->format = SND_PCM_FORMAT_S16_LE; else sample->format = SND_PCM_FORMAT_S16_BE; break; default: goto error_out; break; } sample->framesize = framesize; sample->periods = sample->framesize; sample->buffersize = (sample->periods * 8192) >> 2; sample->framecount = framecount; sample->audiodatalen = framecount * framesize; sample->audiodata = (char *) malloc(sample->audiodatalen); if (sample->audiodata != NULL) { ret = afReadFrames(affd, AF_DEFAULT_TRACK, sample->audiodata, framecount); if (ret != framecount) { free(sample->audiodata); goto error_out; } } else goto error_out; afCloseFile(affd); return sample; error_out: /* something bad happened */ afCloseFile(affd); free(sample); return NULL; } /* Called from the audio thread */ static void beep_play_sample(struct dspdata *dsp, int cmd) { snd_pcm_t *pcm_handle; snd_pcm_hw_params_t *hwparams; char *pcm_name = "default"; struct sample *s = dsp->sample[cmd]; snd_pcm_hw_params_alloca(&hwparams); if (snd_pcm_open(&pcm_handle, pcm_name, SND_PCM_STREAM_PLAYBACK, 0) < 0) { logmsg(LOG_WARNING, "beep: error opening PCM device %s", pcm_name); return; } if (snd_pcm_hw_params_any(pcm_handle, hwparams) < 0) { logmsg(LOG_WARNING, "beep: cannot configure PCM device"); return; } if (snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED) < 0) { logmsg(LOG_WARNING, "beep: error setting access"); return; } if (snd_pcm_hw_params_set_format(pcm_handle, hwparams, s->format) < 0) { logmsg(LOG_WARNING, "beep: error setting format"); return; } if (snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &s->speed, 0) < 0) { logmsg(LOG_WARNING, "beep: error setting rate"); return; } /* Set number of channels */ if (snd_pcm_hw_params_set_channels_near(pcm_handle, hwparams, &s->channels) < 0) { logmsg(LOG_WARNING, "beep: error setting channels"); return; } /* Set number of periods. Periods used to be called fragments. */ if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &s->periods, 0) < 0) { logmsg(LOG_WARNING, "beep: error setting periods"); return; } /* Set buffer size (in frames). The resulting latency is given by */ /* latency = periodsize * periods / (rate * bytes_per_frame) */ if (snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &s->buffersize) < 0) { logmsg(LOG_WARNING, "beep: error setting buffersize"); return; } /* Apply HW parameter settings to */ /* PCM device and prepare device */ if (snd_pcm_hw_params(pcm_handle, hwparams) < 0) { logmsg(LOG_WARNING, "beep: error setting HW params"); return; } int pcmreturn; /* Write num_frames frames from buffer data to */ /* the PCM device pointed to by pcm_handle. */ /* Returns the number of frames actually written. */ while ((pcmreturn = snd_pcm_writei(pcm_handle, s->audiodata, s->framecount)) < 0) { snd_pcm_prepare(pcm_handle); } /* Stop PCM device and drop pending frames */ snd_pcm_drop(pcm_handle); /* Stop PCM device after pending frames have been played */ snd_pcm_close(pcm_handle); } /* Called from the audio thread * Audio thread main loop */ void * beep_thread (void *arg) { struct dspdata *dsp = (struct dspdata *) arg; for (;;) { pthread_mutex_lock(&dsp->mutex); pthread_cond_wait(&dsp->cond, &dsp->mutex); pthread_mutex_unlock(&dsp->mutex); switch (dsp->command) { case AUDIO_CLICK: dsp->command = AUDIO_COMMAND_NONE; beep_play_sample(dsp, AUDIO_CLICK); break; case AUDIO_COMMAND_QUIT: pthread_exit(NULL); break; case AUDIO_COMMAND_NONE: break; } } return NULL; } /* Called from the main thread * This function wakes the audio thread */ static void beep_thread_command(int command) { if (!beep_thread_running) return; pthread_mutex_lock(&(_dsp.mutex)); _dsp.command = command; pthread_cond_signal(&(_dsp.cond)); pthread_mutex_unlock(&(_dsp.mutex)); } /* Called from the main thread */ static void beep_thread_cleanup(void) { int i; for (i = 0; i < AUDIO_N; i++) { if (_dsp.sample[i] == NULL) continue; if (_dsp.sample[i]->audiodata != NULL) free(_dsp.sample[i]->audiodata); free(_dsp.sample[i]); } pthread_mutex_destroy(&(_dsp.mutex)); pthread_cond_destroy(&(_dsp.cond)); } /* Called from the main thread * This function sets up the sound playing thread. * It starts the thread or if an error occur cleans * up all the audio stuff */ static int beep_thread_init(void) { pthread_attr_t attr; int ret; _dsp.sample[AUDIO_CLICK] = beep_load_sample(beep_cfg.beepfile); if (_dsp.sample[AUDIO_CLICK] == NULL) return -1; _dsp.thread = 0; pthread_mutex_init(&(_dsp.mutex), NULL); pthread_cond_init (&(_dsp.cond), NULL); pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); ret = pthread_create(&(_dsp.thread), &attr, beep_thread, (void *) &_dsp); if (ret != 0) { beep_thread_cleanup(); ret = -1; } pthread_attr_destroy(&attr); return ret; } pommed-1.39~dfsg/pommed/beep.h0000664000175000017500000000150611571653265015713 0ustar julienjulien/* * pommed - beep.h */ #ifndef __BEEP_H__ #define __BEEP_H__ #define BEEP_DEFAULT_FILE "/usr/share/pommed/goutte.wav" #define BEEP_DEVICE_NAME "Pommed beeper device" void beep_audio(void); int beep_init(void); void beep_cleanup(void); void beep_fix_config(void); /* Beep thread data definitions */ struct sample { char *audiodata; int audiodatalen; int format; unsigned int channels; unsigned int speed; unsigned int framesize; int framecount; unsigned int periods; unsigned long buffersize; }; enum { AUDIO_COMMAND_NONE = -2, AUDIO_COMMAND_QUIT = -1, AUDIO_CLICK = 0, AUDIO_N /* keep this one last */ }; struct dspdata { int command; pthread_mutex_t mutex; pthread_cond_t cond; pthread_t thread; struct sample *sample[AUDIO_N]; /* sound to play */ }; #endif /* !__BEEP_H__ */ pommed-1.39~dfsg/pommed/cd_eject.c0000664000175000017500000000557511571653265016545 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2007 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "pommed.h" #include "conffile.h" #include "cd_eject.h" #include "dbus.h" void cd_eject(void) { char *eject_argv[3] = { "eject", eject_cfg.device, NULL }; char *eject_envp[1] = { NULL }; long max_fd; int fd; int ret; if (!eject_cfg.enabled) return; fd = open(eject_cfg.device, O_RDONLY | O_NONBLOCK); if (fd < 0) { logmsg(LOG_ERR, "Could not open CD/DVD device: %s", strerror(errno)); return; } /* Check drive status */ ret = ioctl(fd, CDROM_DRIVE_STATUS); close(fd); switch (ret) { case CDS_NO_INFO: /* fall through to CDS_DISC_OK */ logmsg(LOG_INFO, "Driver does not support CDROM_DRIVE_STATUS, trying to eject anyway"); case CDS_DISC_OK: break; case CDS_NO_DISC: logmsg(LOG_INFO, "No disc in CD/DVD drive"); return; case CDS_DRIVE_NOT_READY: logmsg(LOG_INFO, "Drive not ready, please retry later"); return; case CDS_TRAY_OPEN: logmsg(LOG_INFO, "Drive tray already open"); return; default: logmsg(LOG_INFO, "CDROM_DRIVE_STATUS returned %d (%s)", ret, strerror(errno)); return; } ret = fork(); if (ret == 0) /* exec eject */ { max_fd = sysconf(_SC_OPEN_MAX); if (max_fd > INT_MAX) max_fd = INT_MAX; for (fd = 3; fd < max_fd; fd++) close(fd); execve("/usr/bin/eject", eject_argv, eject_envp); logmsg(LOG_ERR, "Could not execute eject: %s", strerror(errno)); exit(1); } else if (ret == -1) { logmsg(LOG_ERR, "Could not fork: %s", strerror(errno)); return; } else { mbpdbus_send_cd_eject(); waitpid(ret, &ret, 0); if ((WIFEXITED(ret) == 0) || (WEXITSTATUS(ret) != 0)) { logmsg(LOG_INFO, "eject failed"); return; } } } void cd_eject_fix_config(void) { if (eject_cfg.device == NULL) { eject_cfg.enabled = 0; return; } } pommed-1.39~dfsg/pommed/cd_eject.h0000664000175000017500000000024511571653265016537 0ustar julienjulien/* * pommed - cd_eject.h */ #ifndef __CD_EJECT_H__ #define __CD_EJECT_H__ void cd_eject(void); void cd_eject_fix_config(void); #endif /* !__CD_EJECT_H__ */ pommed-1.39~dfsg/pommed/conffile.c0000664000175000017500000003026111571653265016560 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include "pommed.h" #include "conffile.h" #include "lcd_backlight.h" #include "kbd_backlight.h" #include "cd_eject.h" #include "beep.h" #include "audio.h" struct _general_cfg general_cfg; struct _lcd_sysfs_cfg lcd_sysfs_cfg; #ifndef __powerpc__ struct _lcd_x1600_cfg lcd_x1600_cfg; struct _lcd_gma950_cfg lcd_gma950_cfg; struct _lcd_nv8600mgt_cfg lcd_nv8600mgt_cfg; #endif struct _audio_cfg audio_cfg; struct _kbd_cfg kbd_cfg; struct _eject_cfg eject_cfg; struct _beep_cfg beep_cfg; #ifndef __powerpc__ struct _appleir_cfg appleir_cfg; #endif /* Config file structure */ static cfg_opt_t general_opts[] = { CFG_INT("fnmode", 1, CFGF_NONE), CFG_END() }; static cfg_opt_t lcd_sysfs_opts[] = { CFG_INT("init", -1, CFGF_NONE), CFG_INT("step", 8, CFGF_NONE), CFG_INT("on_batt", 0, CFGF_NONE), CFG_END() }; #ifndef __powerpc__ static cfg_opt_t lcd_x1600_opts[] = { CFG_INT("init", -1, CFGF_NONE), CFG_INT("step", 10, CFGF_NONE), CFG_INT("on_batt", 0, CFGF_NONE), CFG_END() }; static cfg_opt_t lcd_gma950_opts[] = { CFG_INT("init", -1, CFGF_NONE), CFG_INT("step", 0x0f, CFGF_NONE), CFG_INT("on_batt", 0, CFGF_NONE), CFG_END() }; static cfg_opt_t lcd_nv8600mgt_opts[] = { CFG_INT("init", -1, CFGF_NONE), CFG_INT("step", 1, CFGF_NONE), CFG_INT("on_batt", 0, CFGF_NONE), CFG_END() }; #endif /* !__powerpc__ */ static cfg_opt_t audio_opts[] = { CFG_BOOL("disabled", 0, CFGF_NONE), CFG_STR("card", "default", CFGF_NONE), CFG_INT("init", -1, CFGF_NONE), CFG_INT("step", 10, CFGF_NONE), CFG_BOOL("beep", 1, CFGF_NONE), CFG_STR("volume", "PCM", CFGF_NONE), CFG_STR("speakers", "Front", CFGF_NONE), CFG_STR("headphones", "Headphone", CFGF_NONE), CFG_END() }; static cfg_opt_t kbd_opts[] = { CFG_INT("default", 100, CFGF_NONE), CFG_INT("step", 10, CFGF_NONE), CFG_INT("on_threshold", 20, CFGF_NONE), CFG_INT("off_threshold", 40, CFGF_NONE), CFG_BOOL("auto", 1, CFGF_NONE), CFG_INT("idle_timer", 60, CFGF_NONE), CFG_INT("idle_level", KBD_BACKLIGHT_OFF, CFGF_NONE), CFG_END() }; static cfg_opt_t eject_opts[] = { CFG_BOOL("enabled", 1, CFGF_NONE), CFG_STR("device", "/dev/dvd", CFGF_NONE), CFG_END() }; static cfg_opt_t beep_opts[] = { CFG_BOOL("enabled", 0, CFGF_NONE), CFG_STR("beepfile", BEEP_DEFAULT_FILE, CFGF_NONE), CFG_END() }; #ifndef __powerpc__ static cfg_opt_t appleir_opts[] = { CFG_BOOL("enabled", 0, CFGF_NONE), CFG_END() }; #endif /* !__powerpc__ */ static cfg_opt_t opts[] = { CFG_SEC("general", general_opts, CFGF_NONE), CFG_SEC("lcd_sysfs", lcd_sysfs_opts, CFGF_NONE), #ifndef __powerpc__ CFG_SEC("lcd_x1600", lcd_x1600_opts, CFGF_NONE), CFG_SEC("lcd_gma950", lcd_gma950_opts, CFGF_NONE), CFG_SEC("lcd_nv8600mgt", lcd_nv8600mgt_opts, CFGF_NONE), #endif CFG_SEC("audio", audio_opts, CFGF_NONE), CFG_SEC("kbd", kbd_opts, CFGF_NONE), CFG_SEC("eject", eject_opts, CFGF_NONE), CFG_SEC("beep", beep_opts, CFGF_NONE), #ifndef __powerpc__ CFG_SEC("appleir", appleir_opts, CFGF_NONE), #endif CFG_END() }; static int config_validate_positive_integer(cfg_t *cfg, cfg_opt_t *opt) { int value = cfg_opt_getnint(opt, cfg_opt_size(opt) - 1); if (value < 0) { cfg_error(cfg, "Error: Value for '%s/%s' must be positive", cfg->name, opt->name); return -1; } return 0; } static int config_validate_string(cfg_t *cfg, cfg_opt_t *opt) { char *value = cfg_opt_getnstr(opt, cfg_opt_size(opt) - 1); if (strlen(value) == 0) { cfg_error(cfg, "Error: Value for '%s/%s' must be a non-zero string", cfg->name, opt->name); return -1; } return 0; } static void config_print(void) { printf("pommed configuration:\n"); printf(" + General settings:\n"); printf(" fnmode: %d\n", general_cfg.fnmode); printf(" + sysfs backlight control:\n"); printf(" initial level: %d\n", lcd_sysfs_cfg.init); printf(" step: %d\n", lcd_sysfs_cfg.step); printf(" on_batt: %d\n", lcd_sysfs_cfg.on_batt); #ifndef __powerpc__ printf(" + ATI X1600 backlight control:\n"); printf(" initial level: %d\n", lcd_x1600_cfg.init); printf(" step: %d\n", lcd_x1600_cfg.step); printf(" on_batt: %d\n", lcd_x1600_cfg.on_batt); printf(" + Intel GMA950 backlight control:\n"); printf(" initial level: 0x%x\n", lcd_gma950_cfg.init); printf(" step: 0x%x\n", lcd_gma950_cfg.step); printf(" on_batt: 0x%x\n", lcd_gma950_cfg.on_batt); printf(" + nVidia GeForce 8600M GT backlight control:\n"); printf(" initial level: %d\n", lcd_nv8600mgt_cfg.init); printf(" step: %d\n", lcd_nv8600mgt_cfg.step); printf(" on_batt: %d\n", lcd_nv8600mgt_cfg.on_batt); #endif /* !__powerpc__ */ printf(" + Audio volume control:\n"); if (audio_cfg.disabled) printf(" disabled: yes\n"); else { printf(" card: %s\n", audio_cfg.card); printf(" initial volume: %d%s\n", audio_cfg.init, (audio_cfg.init > -1) ? "%" : ""); printf(" step: %d%%\n", audio_cfg.step); printf(" beep: %s\n", (audio_cfg.beep) ? "yes" : "no"); printf(" volume element: %s\n", audio_cfg.vol); printf(" speaker element: %s\n", audio_cfg.spkr); printf(" headphones element: %s\n", audio_cfg.head); } printf(" + Keyboard backlight control:\n"); printf(" default level: %d\n", kbd_cfg.auto_lvl); printf(" step: %d\n", kbd_cfg.step); printf(" auto on threshold: %d\n", kbd_cfg.on_thresh); printf(" auto off threshold: %d\n", kbd_cfg.off_thresh); printf(" auto enable: %s\n", (kbd_cfg.auto_on) ? "yes" : "no"); printf(" idle timer: %d%s\n", kbd_cfg.idle, (kbd_cfg.idle > 0) ? "s" : ""); printf(" idle level: %d\n", kbd_cfg.idle_lvl); printf(" + CD eject:\n"); printf(" enabled: %s\n", (eject_cfg.enabled) ? "yes" : "no"); printf(" device: %s\n", eject_cfg.device); printf(" + Beep:\n"); printf(" enabled: %s\n", (beep_cfg.enabled) ? "yes" : "no"); printf(" beepfile: %s\n", beep_cfg.beepfile); #ifndef __powerpc__ printf(" + Apple Remote IR Receiver:\n"); printf(" enabled: %s\n", (appleir_cfg.enabled) ? "yes" : "no"); #endif /* !__powerpc__ */ } int config_load(void) { cfg_t *cfg; cfg_t *sec; int ret; cfg = cfg_init(opts, CFGF_NONE); if (cfg == NULL) { logmsg(LOG_ERR, "Failed to initialize configuration parser"); return -1; } /* Set up config values validation */ /* general */ cfg_set_validate_func(cfg, "general|fnmode", config_validate_positive_integer); /* lcd_sysfs */ cfg_set_validate_func(cfg, "lcd_sysfs|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "lcd_sysfs|on_batt", config_validate_positive_integer); #ifndef __powerpc__ /* lcd_x1600 */ cfg_set_validate_func(cfg, "lcd_x1600|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "lcd_x1600|on_batt", config_validate_positive_integer); /* lcd_gma950 */ cfg_set_validate_func(cfg, "lcd_gma950|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "lcd_gma950|on_batt", config_validate_positive_integer); /* lcd_nv8600mgt */ cfg_set_validate_func(cfg, "lcd_nv8600mgt|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "lcd_nv8600mgt|on_batt", config_validate_positive_integer); #endif /* !__powerpc__ */ /* audio */ cfg_set_validate_func(cfg, "audio|card", config_validate_string); cfg_set_validate_func(cfg, "audio|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "audio|volume", config_validate_string); cfg_set_validate_func(cfg, "audio|speakers", config_validate_string); cfg_set_validate_func(cfg, "audio|headphones", config_validate_string); /* kbd */ cfg_set_validate_func(cfg, "kbd|default", config_validate_positive_integer); cfg_set_validate_func(cfg, "kbd|step", config_validate_positive_integer); cfg_set_validate_func(cfg, "kbd|on_threshold", config_validate_positive_integer); cfg_set_validate_func(cfg, "kbd|off_threshold", config_validate_positive_integer); /* CD eject */ cfg_set_validate_func(cfg, "eject|device", config_validate_string); /* beep */ cfg_set_validate_func(cfg, "beep|beepfile", config_validate_string); /* * Do the actual parsing. * If the file does not exist or cannot be opened, * we'll be using the default values defined in the cfg_opt_t arrays. */ ret = cfg_parse(cfg, CONFFILE); if (ret != CFG_SUCCESS) { if (ret == CFG_FILE_ERROR) { logmsg(LOG_INFO, "Configuration file not found, using defaults"); } else { cfg_free(cfg); logmsg(LOG_ERR, "Failed to parse configuration file"); return -1; } } /* Fill up the structs */ sec = cfg_getsec(cfg, "general"); general_cfg.fnmode = cfg_getint(sec, "fnmode"); sec = cfg_getsec(cfg, "lcd_sysfs"); lcd_sysfs_cfg.init = cfg_getint(sec, "init"); lcd_sysfs_cfg.step = cfg_getint(sec, "step"); lcd_sysfs_cfg.on_batt = cfg_getint(sec, "on_batt"); /* No _fix_config() call here, it's done at probe time */ #ifndef __powerpc__ sec = cfg_getsec(cfg, "lcd_x1600"); lcd_x1600_cfg.init = cfg_getint(sec, "init"); lcd_x1600_cfg.step = cfg_getint(sec, "step"); lcd_x1600_cfg.on_batt = cfg_getint(sec, "on_batt"); x1600_backlight_fix_config(); sec = cfg_getsec(cfg, "lcd_gma950"); lcd_gma950_cfg.init = cfg_getint(sec, "init"); lcd_gma950_cfg.step = cfg_getint(sec, "step"); lcd_gma950_cfg.on_batt = cfg_getint(sec, "on_batt"); /* No _fix_config() call here, as we're hardware-dependent * for the max backlight value */ sec = cfg_getsec(cfg, "lcd_nv8600mgt"); lcd_nv8600mgt_cfg.init = cfg_getint(sec, "init"); lcd_nv8600mgt_cfg.step = cfg_getint(sec, "step"); lcd_nv8600mgt_cfg.on_batt = cfg_getint(sec, "on_batt"); nv8600mgt_backlight_fix_config(); #endif /* !__powerpc__ */ sec = cfg_getsec(cfg, "audio"); audio_cfg.disabled = cfg_getbool(sec, "disabled"); audio_cfg.card = strdup(cfg_getstr(sec, "card")); audio_cfg.init = cfg_getint(sec, "init"); audio_cfg.step = cfg_getint(sec, "step"); audio_cfg.beep = cfg_getbool(sec, "beep"); audio_cfg.vol = strdup(cfg_getstr(sec, "volume")); audio_cfg.spkr = strdup(cfg_getstr(sec, "speakers")); audio_cfg.head = strdup(cfg_getstr(sec, "headphones")); audio_fix_config(); sec = cfg_getsec(cfg, "kbd"); kbd_cfg.auto_lvl = cfg_getint(sec, "default"); kbd_cfg.step = cfg_getint(sec, "step"); kbd_cfg.on_thresh = cfg_getint(sec, "on_threshold"); kbd_cfg.off_thresh = cfg_getint(sec, "off_threshold"); kbd_cfg.auto_on = cfg_getbool(sec, "auto"); kbd_cfg.idle = cfg_getint(sec, "idle_timer"); kbd_cfg.idle_lvl = cfg_getint(sec, "idle_level"); kbd_backlight_fix_config(); sec = cfg_getsec(cfg, "eject"); eject_cfg.enabled = cfg_getbool(sec, "enabled"); eject_cfg.device = strdup(cfg_getstr(sec, "device")); cd_eject_fix_config(); sec = cfg_getsec(cfg, "beep"); if (audio_cfg.disabled) beep_cfg.enabled = 0; else beep_cfg.enabled = cfg_getbool(sec, "enabled"); beep_cfg.beepfile = strdup(cfg_getstr(sec, "beepfile")); beep_fix_config(); #ifndef __powerpc__ sec = cfg_getsec(cfg, "appleir"); appleir_cfg.enabled = cfg_getbool(sec, "enabled"); #endif cfg_free(cfg); if (console) config_print(); return 0; } void config_cleanup(void) { free(audio_cfg.card); free(audio_cfg.vol); free(audio_cfg.spkr); free(audio_cfg.head); free(eject_cfg.device); free(beep_cfg.beepfile); } pommed-1.39~dfsg/pommed/conffile.h0000664000175000017500000000264611571653265016573 0ustar julienjulien/* * pommed - conffile.h */ #ifndef __CONFFILE_H__ #define __CONFFILE_H__ struct _general_cfg { int fnmode; }; struct _lcd_sysfs_cfg { int init; int step; int on_batt; }; #ifndef __powerpc__ struct _lcd_x1600_cfg { int init; int step; int on_batt; }; struct _lcd_gma950_cfg { unsigned int init; unsigned int step; unsigned int on_batt; }; struct _lcd_nv8600mgt_cfg { int init; int step; int on_batt; }; #endif /* !__powerpc__ */ struct _audio_cfg { int disabled; char *card; int init; int step; int beep; char *vol; char *spkr; char *head; }; struct _kbd_cfg { int auto_lvl; int step; int on_thresh; int off_thresh; int auto_on; int idle; int idle_lvl; }; struct _eject_cfg { int enabled; char *device; }; struct _beep_cfg { int enabled; char *beepfile; }; #ifndef __powerpc__ struct _appleir_cfg { int enabled; }; #endif extern struct _general_cfg general_cfg; extern struct _lcd_sysfs_cfg lcd_sysfs_cfg; #ifndef __powerpc__ extern struct _lcd_x1600_cfg lcd_x1600_cfg; extern struct _lcd_gma950_cfg lcd_gma950_cfg; extern struct _lcd_nv8600mgt_cfg lcd_nv8600mgt_cfg; #endif extern struct _audio_cfg audio_cfg; extern struct _kbd_cfg kbd_cfg; extern struct _eject_cfg eject_cfg; extern struct _beep_cfg beep_cfg; #ifndef __powerpc__ extern struct _appleir_cfg appleir_cfg; #endif int config_load(void); void config_cleanup(void); #endif /* !__CONFFILE_H__ */ pommed-1.39~dfsg/pommed/data/0000775000175000017500000000000011571653265015536 5ustar julienjulienpommed-1.39~dfsg/pommed/data/click.wav0000664000175000017500000000445411571653265017351 0ustar julienjulienRIFF$ WAVEfmt +"Vdata ÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿüÿÿÿþÿþÿýÿÿÿùÿ ùÿõÿ òÿ ÷ÿòÿõÿòÿðÿßÿÛÿäÿÍÿ>Îÿ<´ÿV’ÿm §ócú{u íüFô“ü¾ kéúéô!ÿ) bQù*ö=; G%ø÷Ï <y÷Eùà E$÷ûúý^þ)÷ÕüêÌÍü›÷˜þxIûføH–½™úZùÀm;âùŠúò¸ƒùÛû"JQÿrù3ýä_þµùŠþcH ý5úÏÿ˜-9üÛúú‹¬û«ûóGìSû“üÃÖçÿ-û„ýk;íþFû…þÖ}þŒû}ÿ¬sýü^Óòü“ü-ÿþœü5ýؾ5vüìý^Pvÿ}ü¯þÃÉÌþ¨üoÿý3Bþòü—ßýPý©û•ýÅý(ÖcrýEþ“×ÿkýÌþï5Oÿzý\ÿÈåþ±ýßÿ1N™þÿýK$á`þMþ³i5þ­þà*þ ÿL§¤ÿ6þhÿ€aOÿHþÄÿ— ÿlþžÈßþ¤þj‹uÀþôþ©l ºþ3ÿâ9Ýÿºþlÿšÿ´þºÿ!àgÿÏþõÿ¥Bÿûþ/a(ÿ-ÿb0ÿUÿŽôúÿÿ„ÿ¥ÖÙÿÿ±ÿº¸«ÿ#ÿÞÿ͉†ÿ-ÿÒbdÿUÿ0Ï0sÿ÷ÿùÿùÿüÿýÿøÿþÿôÿûÿûÿ÷ÿ ùÿûÿ þÿúÿ üÿúÿýÿÿÿùÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿþÿþÿÿÿþÿüÿýÿÿÿüÿÿÿÿÿþÿþÿýÿþÿÿÿùÿúÿÿÿþÿüÿþÿþÿÿÿüÿúÿÿÿýÿÿÿÿÿüÿýÿýÿþÿÿÿÿÿÿÿþÿýÿýÿÿÿÿÿÿÿþÿÿÿýÿýÿÿÿÿÿþÿÿÿpommed-1.39~dfsg/pommed/data/goutte.wav0000664000175000017500000003005411571653265017566 0ustar julienjulienRIFF$0WAVEfmt D¬ˆXdata0ýÿúÿüÿÿÿþÿÿÿþÿüÿÿÿýÿýÿþÿùÿþÿ÷ÿþÿøÿþÿøÿüÿøÿúÿøÿùÿøÿôÿùÿôÿúÿõÿøÿùÿúÿýÿúÿüÿúÿýÿþÿýÿ   #)**+(+61#)#*1-)",)%  ûÿùÿàÿÛÿæÿÞÿÒÿÊÿ±ÿ¥ÿªÿ¢ÿ›ÿ’ÿ~ÿbÿmÿ†ÿ—ÿžÿŸÿ|ÿvÿnÿlÿzÿ~ÿÿ}ÿ|ÿiÿtÿgÿcÿ^ÿbÿlÿƒÿ€ÿÿyÿvÿtÿ‡ÿ¬ÿ—ÿ¨ÿ³ÿ²ÿÙÿûÿ"#3Q."! Ez‰¿àÝç òòÝ¿áã°³×5j5Qftp+íÒ‹túÿ÷ÿÏÿîÿ¾ÿ²ÿßÿ/Súÿ ÿµÿ¿ÿåÿ¢ÿýþþþYþ_þ.þ©ýLý{ýãý4þWþùý]ýLý ý¿ýÒýºýýký‡ýžýGý#ýpýïýwþÿÿ]þþ þ]þÐþÿõþÙþýþiÿñÿ¾ÿ¸¢n¸ ”ýÐë¨õÂ5µ®•׬‹»¶A±t‚ñ­:³Š|>™ÿoÿZÿIÿRÿëþKþaýzüÆû$ü+ý~ýAýý¿ý–ÿëçÚÿìþÿQÿ£ÿõÿºÿTÿUÿóþþsý=ü¬ú\ú”úÇúú¦úWûüŠýUýÈü&ý/þƒÿHmùögÿ©þ€þ ÿ Íä_:‰žfÿêýÄýEÿù=¦º¼º~…2éqWµÍH“i6?þ@µnþŸ¤ò“¸¿ª·u[ÿÿ¹þÿ‘ÿ ÿšþÿÿ…ÿŒ ¹útÿþ‘ý>þ¨þÿ®þôýlý–ü7ü±ü:ý¿ü^ûcù/øÞ÷ø>øù>úºúÒúºúúâùÁù¡ù*ùAùõø=ø‹øJù úÇú·úøúÇû`üöü ý ýäþ ÿ×þþæýÑý”ÿ6î½ÿtþNý¤ýgÿW . µñ96‚UyUÐ)ÎÌ Ë  T&» þ>¢qõML™RWŒ±g?ˆt†àkÜ}sU­´bþ¹ürüÊüîüýÙûû¡ûtüÌü8üÿú¤ùžøñø=úðù@ù'ùÂøýø@ù=øÛö²÷¾øGùù÷ŸôØóô¨ôGõ>õ õ´ô1õLöãö8øŸøúøóù…úøúü_üÔü›ýCýËûËûÁü/þ). u¬pî;òbÁ¹<QëûKŒºŠ 7 EÄŽS¦ÈýÒÏ`þ¼þ:ë÷32`ºÇ½ ‡á‰ó¹ëí0Ñc:uÙÖ®§hþgýŠû%úú³ù¶øšø}øæø ùŠ÷¢öôö÷Zö–öäõõvö÷/ö¯õ‹õbõöp÷÷µöuö]ö÷"øwùòù_úÆûþ®ÿ ˆÿÛýüýØÆ’g®Í–ÁÉ­CÊm©9 ”ÑSŸªµØE¹0?Ç‹ßÛ@}bøIçÿyþàýùýþÆý1þ;þÙÿûrTÿ§þæÿ¶—ÿÓý³ü^ú÷øÛùfù½ø©ø ÷ºõ÷™÷+÷H÷¸÷»øôùùáøîùmú¹ûvü®ûÈú‰ûü˜ýA¶)ÿÊþ„þ!ÿ“þíþZýüûeûýVþëÿ~œÔQâ .®X¯z;" + ãõ× i ï1IíË¢ób¦rŠÖm礶§ýÔû1ü;ýüþµÿeÿ¿þ ÿd3ÿ–ýÆû^û[ûûúúøLøL÷ö.öFöÚõ¬öûö}÷÷ÖöÌö$÷Eø÷gõƒõöÕõj÷Öøêø¬ùú´ø*÷ö¥õXög÷D÷¦ö+öÂô•ô$÷úŽû„ûçûÇû{üFþÕþþ3þ’ý‡üýÊþ7á ÁÉåÇÃÄ\ìECåm µ‡Hm^·Âœ€Y f ü8†5öCmJ‰] ° Òñeb.8ÿÆýÐýŠþcÿ¼ÿ ÿnýhûú ûúûÕûúù¹÷Éõ6õåõýõ¢ôÁóÒñèð=ò˜óó£ò›ñ¢ï©ðäñÇñò]óÁò~ô³ößõõàõmõnö…ùú øã÷²÷éøtüâþ³ý4û—ùËøHú%ý9ÿzÿFþ+þMþ’ÿZÂ#ÃùîÝ º éÁ·‚g£k£1ý6:× s Ö º ' ¹¹V V“Š¥:c€ÿêþ ÿ`ýü ûöø¦÷Rø8ø±÷‰÷øÀ÷døù øöºô]óŠòÄòaóOó¨ñRñµñÝñóò\ôôòó4ôüòÙñêó6ôgóõ˜ö™÷Îùíù÷Xöç÷ù•ûþÔüBûüÂüBÿÛ`×EéÉ4Oò‡\Ø6)ޝ r êÔ Ä ä Ñ ] ûØ œ ‡s k ø } o)ÿ»X8ü1ø—ú*p,ÁaËâþ´üêú üýYû…ùë÷ÌõÅõø}÷ìôaô.ôôºõö†óAó²õ]ö´öÑøHù‡øxùùAöZõöC÷ùü¤û<ùõ÷ø¤ú1þÌ­ÿÖžßbÍBg ë ¨G?…Êö|æ>W2`Œðô Î šÌ™uÏB<: $ä‚M^1CìYé¾þü¤ûóúrý~ÿjþÆý üÿùTûý{üEü>ûúùÄû¡ý§ûCúù_÷|øûrü±ü“ý‘ýzý þ ýûzúšú™ü…ýÔû=ú/ùnùwûùüåû¾üÂþ_þ}ÿø–þ»ýšÿÙþSþû¬þ„ìç³ý?þ9ÚÿÉþ…þwþ¯~ҳ͒]ÿ ÿœ$Hþ¸þÿàþäþ-þKý¯ýþŸüÍûMýþÖþ‹ÿ„ÿyÿÕÿ`ÿËþh°ÛÔÿûýŠþ¸ýü_üîümÿB’oŸ’3ÇwÂp°AnTûi7Z1^Ù¾ÉA°÷"Ò‡²ªú"plÖ}ý‰Œÿ FÒ§ðÿ{ÿÓþ“þÿÊþÖüçúËùˆú—û4üü¤üjý«þ¯ÿÇþôýØü€úõøãù]ùî÷âö öDöø…øV÷Ëö¹÷|÷œ÷í÷;øWùÄúãú úÕùúûrüþëþíþÅýÁýHþ³ÿ×h¿ÿÄÿ$D$˜Eh9Ëgû2 J ¢-úq«  : t " F — ¤ ã . © ¢ \ )&))=w:ÿÌþ¾ÿ·ÿ\þŠýÄügü0ý+ýÂû}ú^úfúüúuúgúšúcûüŒû³ùZ÷õôõóFô`óÈñ‚ñ"òGó7ôõ¼ô¡ôzõìõIöº÷ô÷÷Nö@ö÷SùüúuúhúËúôûGýgþRþ°ý¢ü'üøü!ÿoQ /L'hF[˜ù!³Ýà† O R > šã ¤ þ ¬ — O ß U l ! u 0  Ç Ó ÷ @ æo ¨¹÷,³Ñÿkþ¬þ±ÿÐÿtþØüúùˆú;ûú³ùÝøwøIùÙùW÷õô›óô-ô5óòñHñ:ðeï|ï¢ï§ïlïŽî8ïEðBñ`ò4ônõköÉöâõ@õÔõöÅöÐ÷œø°ùAúÐú|ûü¨û½ú]ûýÜÿ‰¦‰šzÄ ( £ ßœ»Ü ø ô ÿ/ï¹öïËo‹Ay© l P Z ë ¹  ë p  F  ­ Ÿ|%s‰Œ²ýsürû}ú+ù†ø=ø ø„öfôàòŒò¼ò‡òóØòòñBï4î îï<ï!ïîýìì3ë+ëlí]î!ï'ðhñXó õŸõýôõóôPõwöv÷@ù:ûøûoüý8ýýÁþGÿØä6ßIø‡ÜcY¸‚ ¶ ² d x ±V N] 5<=À‚o‡ Ï } ( Ô W  ì K @ u ; ¶Š›-ü‹Q©ý4üjûÀúëúÊùÇøø§÷L÷ã÷g÷_öoõôTó$ô—ô6õËõfõ|ôªóÈòíòÙôûõSö‡ö ö¢õ›õöõFö±ö4÷”÷Á÷t÷?öõNôfôŠõI÷¦ø úâú´ûzü‰ý1ý¿ýÛþêÿ°˜Pì3â]Ó¹ ’  6 Î œ რW ¬ z B Á ? '  ˛° 7 s (WÏÓ~ J °  Š0ßJsÈP’Ÿþ\ý‘ýnþTþYýû|øv÷°÷h÷XöÊô¬ò:ñQñ2ðàíãìXì“ì½íŠîhîïîðÕñCòßòÏññ½ðñ.óõÈõ ö‘÷²ø0ùÒø?øù³û³ýjþþ‚ýÛý^ÿ¡;¥~  P  æ“ÿ—Fâ mDAĦ0Xªí!ðÝ  à ø  ½ ¦  Ï º J¼bˆ+Ðhbþþ§ýýýükû¢û½úHùºøõ÷a÷÷×õÁóÓñŒðúï#ñÇñåð8ððð‚ð‡ðuïöîÝîíîNð×ð´ðáð\ñMòzó×óÌòtòøòwó5ôAôÀóUôËõ+÷õøYúûý³þÎÿ6ÊÉveäT  Î Š  : – •'O4U.×ËìbŠU>1Ì å » Š  + t Ì á | úõô#µ¥ ‘n(6ÿþ·üùú!ùc÷Àôäò'òÙñFñ¦ðOïÄí0íÏìeìAì)ìÅëºëâë{ìïìÌìjìÊìMî ðãðêï¼î ïñ!óÏô¹ô»óXó“ôêöÝùÓû×ûŸû,ýøq$?ð)ý h ¦ -›m L1£‹¾þý¾GP5æR=d8ÀOÙ  ¼ à , \ ö Ÿ Í ÞâæÞÈÓÚÀÿýUúùHø>÷föØõÖô„óPñî¤ìUììëë”êKêìéÊé(êÌêë_ê%éŠèéîéÞéDé‰è@è¡é2ìÇî­ðßñêñó%öÕøúBû©ûƒüXþÇÿ0À}íKPúÕ & . 7 ·±E¹W-îÅ- ¹¥.#†–Ò ÔÌø Öb¯ ` èk—> ƒà¾ò8ÿÍüAý¢þHþýkû&ùCù´úúÏõÏðìXëÿìdí`éæ/åæïçèþæ\ååáä‘ä{ã+ã¶âä~æ4é2éççÑètëÙïÄó‘ôâò‘òõQ÷=ú&üðûžûü#þg¦ Ù ˆ övœÅ`̉,9T¯Êø^-Rúnè‰ô:™'Mƒš>c .°_­§ÍÿXü©ù9ø]÷ö„ômò_ñQñnðaî£ëjèËå(åDåIäãFâ âOäJæåææ¶å£ædçéÓéÀê®êiêçêéëîHñóÄôO÷kù‰ûYý¡ÿ‚»æÝèúÎ … Ø - \ k:üÜ{øþÙ ’’œðÛEenƒACMØÀ*ä: 1 Ö ù:pIá6@þýhû”ù‹÷ïõîô[ôåó‡óÃñqð8îkìkì#ì\ë€éçæÿä]ä(äÉäOå+å å¬äœå¿æ}ç¡çšçóçÄè®éë¿ëãìî’ïßñô]öô÷cú:ýÿ>é½ÙUc   € Î l ï©T/aÏït  ò›¶?xq|ŸS!!#Ù/Ù~¯  o ¬ì\'O¸ÿ±ÿ²þ¿û%÷¢ó´ñÃðâïËî7í=ë›éèNçøåÐãŸáqàFàýà"ákàÆß´à¯á<âœâ:ã•ä(æ0æpåÁäDåÍæÁé¤ìîBðRñGóöÔøwú§ûýÿ{ñ»%àY ÎZÏŒ‘Nð,‘M¹”1<ñ "A"|! a 5 P j@[ñÅ*dwe  y|NÓ.KþülùîöŠôññðí´éµæDå¨ãmâøàyßÞÃÝÝ©ÜzÜÌÛAÛ­ÚÂÚmÛkÜLÜ7ÜÐÜ‹ÝãÞßàÏá>ãDäåÅæ éÆëÚíXïvñ;ôd÷oú ýÿ,Æ Ú ü³{ã ÝšþŠ  ç "$ç$6%L%ç%—&œ'þ'A(@(ž(O)¼)…)O(8&”#Í!y ƒ<ÓV¤jqB ç™ÿ]ýˆú¶öjò}îýê±çä'áÔÝ¢Û0ÚÙà×ÎÕÓÝѪÐâÏ¥ÎôÌ?ËËÌ´ÍkÏìÏýÐ:Ó‘ÖÂÙ"ÜÿÜ1ÝãÞlá^ä·çMêŽìqïšò2öàúÍÿ{• Å \HjÖ£!r#&Õ(,.8.Ø-".ˆ.2/¢.‚-L,Þ+Ñ+Î++—*é)Ò(K'æ%A$d!šâãŸ!= Ë G ÔªsÉþ¥û†ù;øN÷3õ9òuî›ê”çøäZátÝOÚØÜÖ+ÖÕÑÓ@ÓEÒtÑïÐãСÐ2ÐuÏÁÎÁÎÀÏ ÑƒÒ ÓŠÔÖØ~ÚƒÜÖÝ5ßá!åEéfíöï ò¢öÕûäÂZ Køžä–{ ¦$—(Œ+Â-è:F8¼5Û2õ.•*I&ý!+_dó ôOèüŽøàó“îèãÀÞÀÚ•ÕоʣÆÄÂÛ¿+½ê¹°¶Ò³z²e²O²›°Ä®Ú­®‡¯±y³¶’¹Ï¼ô¿öÂÆ;É‚Í[ÒØÕÝaã:èdíó=ú¤ éªï ]%¿)½-Þ1Ë5[:´>^BðE¼H…J>LŽM£N!PÊQüQ-QÒOõN[NNœLEJöF‡C£?7;¦6è1ë,¬' #¦1¨| ¤þø ò í_èQãûÝÍØ’ÓþÎtÊÆÀÁU¾sº„¶â²e°Q®`¬Ìªº©Þ¨#©¼©æª ¬–­Û®{°³ˆ¶"ºy½/ÁIÅŒÊÐpÕ¹Ú$áèï¸õÿû¦} )`O•%M+F0Ñ4å8"=ÛA¤FöJÎMFOHPR·TWlX¸XwXX}XŒXrWÃTžPLŒHF:CÙ>-93£-È(Õ#|’h5 Ûÿeù-òëmä6ß<ÚVÕ!ÐÓÊÆLÁÒ¼D¸D´–°Œ­¥ª ¨¯¥¤Ë¢£r¤¦o§~¨³©Î««®ë±ó´¸»&¿ļÉ-Ï6ÔCÙKß?æ‹í¬ô5û" kp‰§%‰+F1`6;Ê?ÐD9IM®O°QWTyWZ\\¦\í[K[cZ‚YâW¥UaSQOÓK„GB™<ã7€3^. (º ‘ ‰ÿþ}øÂñµëÏå-àeÚ¹ÔHÏ"Ê%Å›À]¼•¸Ë´*±±­âª«¨u§‚¦s¦¦¦µ¦ ¦v¥¬¥E§å©.­Þ°Ñ´p¹¾vÂÏÆ¼Ë.Ñ×[ÝRãÇèíÚòÖø"w­`ñ"E*Œ0é5§:F?D4IžLqOÚQ&T¢V@YìZÒ[m\á\h][]\,Y VSbPHM8IADÍ>W9ñ3E.û'§!ßÞ üCÿ‹ø—ñ#ê ãÝ'ØGÔŽÐoÌÇÁC¼æ·r´Š±–®„«r¨F¦Á¤÷£K££ù¢¹£A¥/§º©Ô¬:°§³à·a¼‹ÁÇúÌÓ¡Ù{à%ç§íZô}ûØå xª[$Õ*Æ0‡6<<ÍAøFzKvOFR UÐW[œ]_É^Å]ù\æ[˜Z!XoU¼RõOM€IVEG@½:Ò4ë.Ì( "»U! =)þþö¯ïé–âhÜ-Ö°ÐËåÅïÀx¼Z¸w´ê°®-¬ÄªR©Ó§¦]¦B§Å¨ˆªR¬ã­¯ ²kµ«¹ò½™ÁŽÅhÊoÐèÖ¨Ý<ä ëÝñ˜øQÿ¯rår!'ß,»2å7<µ?éB0FÍIkM*PËQ¶RÌS3UXVFVäTXSJRQ‹NãJÀFWBá=©8Ú2f,à%›(æú½^ú÷ó:îwèdâùÛØÕÎÏDÊÅÁ¨½,º=¶0²Š®ë«[ªÍ©Ö©"ªªªr«­c¯Q²î´£·»¿`ÃþÇyÌÚÑËׇޅåÖì¬óÉù„ÿ8 #>ï"7)V/®4™9>‹BGÙJ¢MP@RÏS¡T¶TT/SçQcPOZM$:—4]./'‡À=ã]:ùæð+éâ#Û>ÔØÍŠÈÇÿ¾&¹„³É®çª—§3¤Î JÌšv™Û™]›sŸ ¡l¤^©k®¡²ðµ€¹ƒ¾ÅóË¢ÒdÙ¹à¿è#òüØkøÌ  (Q07ñ<¬BŸHÆNQTÜCÍHàLQ Vf[ajg;notkyø|ì~r"}ùyv%qojbMYÛQÁK¢Eç<é/D ˆÄnøûñÛíjêˆæªâìßÀÞ'Ý ØÑÉÇd¾~µ­Y¥YŸ»š\—¤••Ñ–$—0•t‘½Ž¡‡KýŽÞ“$\¨Ê²S»ÜÃuÍ!ØãÐísõ<ù+ûDÿ0n +4~=±G¯PHW [”[QYÇUSS¸V]GdkGpOsÜtBut$pIhœ]ÎR¼IC =78¨1P+Õ$gD µÿîõÈì‡âֻǺ °jª§]¤¢Z    dŸ‡Ÿ›Õ™Ç˜˜À—$—²—ò™˜žz¤ ª%®b±šµ»ÀˆÊkÓÆÝé{ô¨ÿ \T(0ã7Ø?[GÄM>S\WÆZ}\È\ü[Ÿ[M[Š[C\\]ß]÷\ðZiX›VóT_SZQØNKxEÐ>Š8R3§.ð(v!\ñ´üòsæ=Û1Òä˪ƆÀบ±­k¬®ý®M®}¬–«Å«Ü¬¸­Ï­É­M®8°Ò²ÔµÇ¸z»à½ À¤ÂcÆmÌÔ0Ü„ã_êñúT» !… M&0,·0R4n7 ;? CsFkI9i4ƒ/\+w(z&5$J!:ŠÎÉÖþÐø,ôŒï¬éßã½ß”ÝÜ ÚüÖ•ÓÑTÏ‘ÎcÎŒÎðλЙÓr×ÀÛ•àmææíõ-úFü‰ü3ü¥üàý•ÿ‚ o FSÙÊ Ýb¢Z”ëP‰ŸÿŽ}p>GÚ Ááý•ú‘ø½ö»ôÒòÿðìîìéæ­ã'á®Þ³ÛÔÙMÙ~ÚÝ,àìâìä(æ°æç6çVç°ç×èxê¸ìvï²òÞöÆûáG '×öAC. \%+™0'5£8¢:U;à:’9]705ñ2"1z/R-ž*¯'%="Be·5 g—þÌùö òÒíFéLå©á¼ÝãØ"Ó[Í×ǣõÀã¾J½ß»æºþºr¼´¾cÁ\ÄÈI̮ИÔDØ…ÜŠáÅç‰î4õõúlÿ5h¥ ûÄ?Ò"–(.ù2l5ž6©7m9:;w —Àû öAðGê÷ãÞÿØYÕkÓ_Ó]ÔXÔÒ<ÎèÊ£ÉÊÉgÊÊ‚É}ÉÓÊØÍÇÒIÙ×ßåŒèÇêÚì†ï ó“÷¦ü˜Û_ î[ãfn!#Ì$&á'ü(m*ï+Ÿ,`,Ì+2++&+4+½*þ(A&ñ"©i„` ™9-rüï÷Fó|ï`ì é`å³á|ÞuÜ Ü'ÜúÛçÚsÙØMÙÅÚòÛ+ÜïÛÜTÝ÷Þ¸àwâêãÁå#è€ëRïkó ÷‘ú-þäÞ (Þ7tÏHF´!"‚ YÙu¿„$7xfô5Š•íø ² –:1ýóùÉö×ôÜó+ó¾ñKïxìê×èªècélê‘ë=íRï-ñ¸òôŒõB÷»ø%ùàøHùéú‘ýAD¾'÷Ã? ø H  ¥ ® e-©0ô¨w|Bÿ4ÿ$þ'ûçöoó”ñAñBñæð÷ïÑî1îäímíëì1ì¨ë”ë>ì…íŽï­òöùíú2üýþÁO¥ºo ¦ ´ v måî…hó³” !è Ë A ‹Ó*kí2è U ×—Ö‹ÿ[üßù!øöúò£îêæãÀà¤ÞkÜ·ÚkÙAØçÖAÕáÓLÓLÓ:ÓõÒÓÔQÖTÙ´ÜâßãŠæÓêïZôùhýQÍp Å]™‹€ž­D!ê"$Ë$F%%&U'z)Ý+.L//h-ê*}(7&¢#0 ¸)–¸g éþ0ý¾øçóÖî€éãäákÞ—Ü*ÛÛÙDØ<× ÖˆÖ&ÖÕqÔÜÓàÓ¸ÔžÖ™Ù9Ý£àxãžåñçÝêSîçñ|õÄøÌûáþ€¹µ †°¿i§ p"†#$$o#È" " !2!ø ¶  -Üdá £‹þiû™ùû÷ö€ó¼ð²îÆíží6ížëYé›çbçFè²é ë¾ìÌîñ¢ó.ö›ø±úiüŠýrþ#ÿ´ÿF«Þ„Ù‡ ~   T ° Ýù8+ô„$ ÿaþþ#ýºûù¼÷úõ÷óüð•í®êýé]ëî’ðàò«ôyö@øyùñùúú¹úÖûÚüLý‡ý¡þ$_ 1OdX ›  ³ Ü Æ |Äln£qý¹'ñW) ¨ ˆ … ̺ýy©þüú¨øL÷©õØó!òƒðÈîÝìDëêÁé êŒê—êêˆé‹é•êñëí£íÈî ñôó‚öPø‘ùVû¼ýFãûØóè  ¨  Ù  {=K­Ûë~ Ù  > ¯ ™   Ê àaüdÿ$ý\ú¿÷÷õõ*ôjòÖïníXì^ìàìÞì{ì,ì"ìDì·ìÕíðhó÷#ú;üàý‹¥È  Y Þ »%ô©É¨Q’Píú”Q@ õ º Z  ¯@ÐþÛý/üŽùuö™óìðuîkì)ë•ê“êÎêëlë»ë"ì²ìèí#ï=ð7ñŒòòôøgû4þ‘£¸V m D €a-¢Ñ*ýB\i–e$—T< ½”Ô6÷þàý‰üQûú­ø¡ö×óñèî­íÚìóëÇê4êê¨êfëì’ìhíÁî`ðÞñæòsóMôéõ$ø•ú÷üÇÿM5s : ö ô  ‡ ð á “ ( ' ¿ ~¶œsÇ¿ : pó3ùÙ”<™#áÿðþÀüÏù÷Kõþó¼ò£ñ ñ ñ_ñ²ñòñòXòtò®ò)ó·óƒô°õq÷kùûòûFü´ü€ý¥þÂÿoñ6vGþ} ŠK€°5®ËŒ\’ÀYãÎBR%äYÞÿ¶ÿ-æ?_<‰šúH gcÿ¾ýûü‚ý±þÕÿnÿdþ§ý„ýÓýÞý~ýýÿüxýèýÈýý:üÐûü¬üîüü¹ûºúâùMùø¶÷ôö%÷¤÷NùƒúEüdýµšƒÙ¸ .m’ÎÚÙ׳’z~“Ž^"âͯ€]j¨×øãªe§Y1 Ùÿ¥ÿˆÿnÿiÿ[ÿPÿKÿTÿdÿuÿÿ„ÿ†ÿœÿ¼ÿçÿ ÿÿéÿØÿÉÿÂÿ¾ÿÆÿßÿþÿþÿýÿßÿÓÿÉÿÏÿÔÿÓÿÐÿÈÿÐÿàÿÞÿÑÿ´ÿ›ÿ’ÿ‚ÿ…ÿ†ÿžÿ´ÿÅÿÙÿäÿòÿôÿòÿêÿóÿúÿøÿïÿÔÿÊÿàÿÛÿóÿãÿúÿëÿìÿéÿíÿüÿÿÿ %/GV[_`iqrmcdTKBCGA9'!òÿàÿÂÿ©ÿŸÿ•ÿ™ÿ—ÿšÿ˜ÿ¡ÿŸÿ¤ÿ—ÿŒÿ{ÿsÿrÿƒÿ‘ÿ£ÿ¦ÿ«ÿ±ÿ»ÿ½ÿÂÿºÿ¸ÿÀÿÍÿßÿóÿûÿ #1:FIU\_efngph~ƒ““ŽŠƒƒtfNH35%" þÿíÿãÿÛÿäÿòÿõÿîÿçÿéÿéÿáÿØÿÕÿÛÿãÿêÿïÿóÿ÷ÿñÿéÿãÿÛÿâÿÝÿÔÿÊÿÀÿÀÿÃÿÇÿÈÿÆÿ½ÿ¶ÿ²ÿ¶ÿ³ÿ·ÿ­ÿ½ÿ¾ÿÐÿÎÿÓÿØÿëÿúÿøÿÿÿúÿ &BUZQB=5>::(     "()# ôÿóÿîÿíÿåÿíÿñÿùÿøÿôÿöÿðÿùÿôÿ÷ÿòÿîÿéÿìÿåÿéÿØÿÜÿ×ÿâÿåÿåÿèÿèÿñÿîÿñÿéÿñÿñÿüÿýÿ   (!&!%&"þÿÿÿ õÿòÿñÿüÿ$#   ÿÿþÿùÿøÿåÿâÿÓÿÏÿÏÿÉÿÌÿËÿÖÿÕÿÙÿÑÿÅÿÄÿ»ÿÀÿ½ÿÃÿÉÿÈÿÊÿÆÿËÿÑÿáÿçÿõÿóÿûÿñÿýÿ  " -+/,176@5;3929298>B97*%#$"  øÿ÷ÿèÿíÿìÿóÿðÿíÿäÿßÿÝÿÕÿÕÿÒÿÒÿÔÿÔÿÎÿÎÿËÿÎÿÖÿÒÿÛÿÓÿØÿÚÿãÿéÿíÿïÿéÿëÿïÿëÿñÿïÿùÿûÿ!  ÿÿùÿüÿûÿüÿöÿÿÿ÷ÿýÿôÿóÿíÿòÿôÿñÿòÿðÿïÿùÿþÿ    ÿÿýÿÿÿüÿüÿûÿöÿõÿõÿõÿõÿûÿ÷ÿÿÿüÿþÿþÿ ýÿýÿþÿÿÿþÿûÿüÿúÿ÷ÿøÿõÿôÿøÿîÿûÿìÿùÿìÿõÿîÿôÿóÿøÿùÿþÿúÿüÿùÿöÿ÷ÿòÿñÿóÿòÿøÿúÿýÿþÿÿÿúÿùÿûÿøÿøÿüÿ ÿÿÿÿüÿúÿüÿ ÿÿüÿÿÿýÿþÿüÿýÿüÿþÿüÿüÿúÿøÿûÿøÿÿÿüÿýÿøÿÿÿúÿüÿÿÿýÿÿÿÿÿõÿùÿ÷ÿûÿÿÿúÿÿÿöÿüÿõÿùÿ÷ÿ÷ÿýÿøÿþÿûÿúÿüÿøÿýÿýÿÿÿÿÿpommed-1.39~dfsg/pommed/dbus.c0000664000175000017500000005435411571653265015741 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2007, 2009 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include "pommed.h" #include "evloop.h" #include "dbus.h" #include "lcd_backlight.h" #include "kbd_backlight.h" #include "ambient.h" #include "audio.h" #include "video.h" #include "cd_eject.h" static DBusError err; static DBusConnection *conn; static int dbus_timer; void mbpdbus_send_lcd_backlight(int cur, int prev, int who) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus lcdBacklight: %d %d\n", cur, prev); msg = dbus_message_new_signal("/org/pommed/notify/lcdBacklight", "org.pommed.signal.lcdBacklight", "lcdBacklight"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &prev, DBUS_TYPE_UINT32, &lcd_bck_info.max, DBUS_TYPE_UINT32, &who, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send lcdBacklight signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_kbd_backlight(int cur, int prev, int who) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus kbdBacklight: %d %d\n", cur, prev); msg = dbus_message_new_signal("/org/pommed/notify/kbdBacklight", "org.pommed.signal.kbdBacklight", "kbdBacklight"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &prev, DBUS_TYPE_UINT32, &kbd_bck_info.max, DBUS_TYPE_UINT32, &who, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send kbdBacklight signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_ambient_light(int l, int l_prev, int r, int r_prev) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus ambientLight: %d %d %d %d\n", l, l_prev, r, r_prev); msg = dbus_message_new_signal("/org/pommed/notify/ambientLight", "org.pommed.signal.ambientLight", "ambientLight"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &l, DBUS_TYPE_UINT32, &l_prev, DBUS_TYPE_UINT32, &r, DBUS_TYPE_UINT32, &r_prev, DBUS_TYPE_UINT32, &ambient_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send kbdBacklight signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_audio_volume(int cur, int prev) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus audioVolume: %d %d\n", cur, prev); msg = dbus_message_new_signal("/org/pommed/notify/audioVolume", "org.pommed.signal.audioVolume", "audioVolume"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &cur, DBUS_TYPE_UINT32, &prev, DBUS_TYPE_UINT32, &audio_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audioVolume signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_audio_mute(int mute) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus audioMute: %d\n", mute); msg = dbus_message_new_signal("/org/pommed/notify/audioMute", "org.pommed.signal.audioMute", "audioMute"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &mute, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audioMute signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_cd_eject(void) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus CD eject\n"); msg = dbus_message_new_signal("/org/pommed/notify/cdEject", "org.pommed.signal.cdEject", "cdEject"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send cdEject signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } void mbpdbus_send_video_switch(void) { DBusMessage *msg; int ret; if (conn == NULL) return; logdebug("DBus video switch\n"); msg = dbus_message_new_signal("/org/pommed/notify/videoSwitch", "org.pommed.signal.videoSwitch", "videoSwitch"); if (msg == NULL) { logdebug("Failed to create DBus message\n"); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send videoSwitch signal\n"); dbus_message_unref(msg); return; } dbus_connection_flush(conn); dbus_message_unref(msg); } static void process_lcd_getlevel_call(DBusMessage *req) { DBusMessage *msg; DBusMessageIter args; int ret; logdebug("Got lcdBacklight getLevel call\n"); if (dbus_message_iter_init(req, &args)) { logdebug("lcdBacklight getLevel call with arguments ?!\n"); return; } msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &lcd_bck_info.level, DBUS_TYPE_UINT32, &lcd_bck_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send lcdBacklight getLevel reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_kbd_getlevel_call(DBusMessage *req) { DBusMessage *msg; DBusMessageIter args; int ret; logdebug("Got kbdBacklight getLevel call\n"); if (dbus_message_iter_init(req, &args)) { logdebug("kbdBacklight getLevel call with arguments ?!\n"); return; } msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &kbd_bck_info.level, DBUS_TYPE_UINT32, &kbd_bck_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send kbdBacklight getLevel reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_ambient_getlevel_call(DBusMessage *req) { DBusMessage *msg; DBusMessageIter args; int ret; logdebug("Got ambient getLevel call\n"); if (dbus_message_iter_init(req, &args)) { logdebug("ambient getLevel call with arguments ?!\n"); return; } msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &ambient_info.left, DBUS_TYPE_UINT32, &ambient_info.right, DBUS_TYPE_UINT32, &ambient_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send ambient getLevel reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_audio_getvolume_call(DBusMessage *req) { DBusMessage *msg; DBusMessageIter args; int ret; logdebug("Got audio getVolume call\n"); if (dbus_message_iter_init(req, &args)) { logdebug("audio getVolume call with arguments ?!\n"); return; } msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, &audio_info.level, DBUS_TYPE_UINT32, &audio_info.max, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audio getVolume reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_audio_getmute_call(DBusMessage *req) { DBusMessage *msg; DBusMessageIter args; int ret; logdebug("Got audio getMute call\n"); if (dbus_message_iter_init(req, &args)) { logdebug("audio getMute call with arguments ?!\n"); return; } msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &audio_info.muted, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audio getMute reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_video_getvtstate_call(DBusMessage *req) { DBusMessage *msg; int vtnum; int vtstate; int ret; logdebug("Got video getVTState call\n"); ret = dbus_message_get_args(req, &err, DBUS_TYPE_UINT32, &vtnum, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("video getVTState call with no/inappropriate arguments ?!\n"); return; } /* Check VT state */ vtstate = video_vt_active(vtnum); msg = dbus_message_new_method_return(req); ret = dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &vtstate, DBUS_TYPE_INVALID); if (ret == FALSE) { logdebug("Failed to add arguments\n"); dbus_message_unref(msg); return; } ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send video getVTState reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_lcd_backlight_step_call(DBusMessage *req, int dir) { DBusMessage *msg; int ret; logdebug("Got lcdBacklight levelUp/levelDown call\n"); mops->lcd_backlight_step(dir); msg = dbus_message_new_method_return(req); ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send lcdBacklight levelUp/levelDown reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_kbd_backlight_inhibit_call(DBusMessage *req, int inhibit) { DBusMessage *msg; int ret; logdebug("Got kbdBacklight inhibit call\n"); if (inhibit) kbd_backlight_inhibit_set(KBD_INHIBIT_USER); else kbd_backlight_inhibit_clear(KBD_INHIBIT_USER); msg = dbus_message_new_method_return(req); ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send kbdBacklight inhibit reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_audio_volume_step_call(DBusMessage *req, int dir) { DBusMessage *msg; int ret; logdebug("Got audio volumeUp/volumeDown call\n"); audio_step(dir); msg = dbus_message_new_method_return(req); ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audio volumeUp/volumeDown reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_audio_toggle_mute_call(DBusMessage *req) { DBusMessage *msg; int ret; logdebug("Got audio toggleMute call\n"); audio_toggle_mute(); msg = dbus_message_new_method_return(req); ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send audio toggleMute reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void process_cd_eject_call(DBusMessage *req) { DBusMessage *msg; int ret; logdebug("Got cd eject call\n"); cd_eject(); msg = dbus_message_new_method_return(req); ret = dbus_connection_send(conn, msg, NULL); if (ret == FALSE) { logdebug("Could not send cd eject reply\n"); dbus_message_unref(msg); return; } dbus_message_unref(msg); } static void mbpdbus_reconnect(int id, uint64_t ticks) { int ret; ret = mbpdbus_init(); if (ret == 0) { evloop_remove_timer(id); dbus_timer = -1; } } static DBusHandlerResult mbpdbus_process_requests(DBusConnection *lconn, DBusMessage *msg, void *data) { // Get methods if (dbus_message_is_method_call(msg, "org.pommed.lcdBacklight", "getLevel")) process_lcd_getlevel_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.kbdBacklight", "getLevel")) process_kbd_getlevel_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.ambient", "getLevel")) process_ambient_getlevel_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.audio", "getVolume")) process_audio_getvolume_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.audio", "getMute")) process_audio_getmute_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.video", "getVTState")) process_video_getvtstate_call(msg); // Set methods else if (dbus_message_is_method_call(msg, "org.pommed.lcdBacklight", "levelUp")) process_lcd_backlight_step_call(msg, STEP_UP); else if (dbus_message_is_method_call(msg, "org.pommed.lcdBacklight", "levelDown")) process_lcd_backlight_step_call(msg, STEP_DOWN); else if (dbus_message_is_method_call(msg, "org.pommed.kbdBacklight", "inhibit")) process_kbd_backlight_inhibit_call(msg, 1); else if (dbus_message_is_method_call(msg, "org.pommed.kbdBacklight", "disinhibit")) process_kbd_backlight_inhibit_call(msg, 0); else if (dbus_message_is_method_call(msg, "org.pommed.audio", "volumeUp")) process_audio_volume_step_call(msg, STEP_UP); else if (dbus_message_is_method_call(msg, "org.pommed.audio", "volumeDown")) process_audio_volume_step_call(msg, STEP_DOWN); else if (dbus_message_is_method_call(msg, "org.pommed.audio", "toggleMute")) process_audio_toggle_mute_call(msg); else if (dbus_message_is_method_call(msg, "org.pommed.cd", "eject")) process_cd_eject_call(msg); else if (dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected")) { logmsg(LOG_INFO, "DBus disconnected"); mbpdbus_cleanup(); dbus_timer = evloop_add_timer(DBUS_TIMEOUT, mbpdbus_reconnect); if (dbus_timer < 0) logmsg(LOG_WARNING, "Could not set up timer for DBus reconnection"); } else return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; return DBUS_HANDLER_RESULT_HANDLED; } /* DBusWatch functions */ struct pommed_watch { DBusWatch *watch; int fd; uint32_t events; int enabled; struct pommed_watch *next; }; static struct pommed_watch *watches; static uint32_t dbus_to_epoll(int flags) { uint32_t events; events = 0; if (flags & DBUS_WATCH_READABLE) events |= EPOLLIN; if (flags & DBUS_WATCH_WRITABLE) events |= EPOLLOUT | EPOLLET; return events; } static int epoll_to_dbus(uint32_t events) { int flags; flags = 0; if (events & EPOLLIN) flags |= DBUS_WATCH_READABLE; if (events & EPOLLOUT) flags |= DBUS_WATCH_WRITABLE; if (events & EPOLLHUP) flags |= DBUS_WATCH_HANGUP; if (events & EPOLLERR) flags |= DBUS_WATCH_ERROR; return flags; } static void mbpdbus_process_watch(int fd, uint32_t events) { int flags; uint32_t wanted; DBusDispatchStatus ds; struct pommed_watch *w; logdebug("DBus process watch\n"); for (w = watches; w != NULL; w = w->next) { if (!w->enabled) continue; if (w->fd == fd) { wanted = events & w->events; if (wanted != 0) { flags = epoll_to_dbus(wanted); dbus_watch_handle(w->watch, flags); do { ds = dbus_connection_dispatch(conn); } while (ds == DBUS_DISPATCH_DATA_REMAINS); /* Get out of the loop, as DBus will remove the watches * and our linked list can become invalid under our feet */ if (events & (EPOLLERR | EPOLLHUP)) break; } } } } static dbus_bool_t mbpdbus_add_watch(DBusWatch *watch, void *data) { uint32_t events; int fd; int ret; struct pommed_watch *w; logdebug("DBus add watch\n"); fd = dbus_watch_get_unix_fd(watch); events = 0; for (w = watches; w != NULL; w = w->next) { if (w->enabled && (w->fd == fd)) events |= w->events; } if (events != 0) { ret = evloop_remove(fd); if (ret < 0) { logmsg(LOG_ERR, "Could not remove previous watch on same fd"); return FALSE; } } w = (struct pommed_watch *)malloc(sizeof(struct pommed_watch)); if (w == NULL) { logmsg(LOG_ERR, "Could not allocate memory for a new DBus watch"); return FALSE; } w->watch = watch; w->fd = fd; w->enabled = 1; w->events = dbus_to_epoll(dbus_watch_get_flags(watch)); w->events |= EPOLLERR | EPOLLHUP; events |= w->events; ret = evloop_add(fd, events, mbpdbus_process_watch); if (ret < 0) { free(w); return FALSE; } w->next = watches; watches = w; return TRUE; } static void mbpdbus_remove_watch(DBusWatch *watch, void *data) { uint32_t events; int fd; int ret; struct pommed_watch *w; struct pommed_watch *p; logdebug("DBus remove watch %p\n", watch); fd = dbus_watch_get_unix_fd(watch); events = 0; for (p = NULL, w = watches; w != NULL; p = w, w = w->next) { if (w->watch == watch) { if (p != NULL) p->next = w->next; else watches = w->next; free(w); continue; } if (w->enabled && (w->fd == fd)) events |= w->events; } ret = evloop_remove(fd); if (ret < 0) return; if (events == 0) return; ret = evloop_add(fd, events, mbpdbus_process_watch); if (ret < 0) logmsg(LOG_WARNING, "Could not re-add watch"); } static void mbpdbus_toggle_watch(DBusWatch *watch, void *data) { uint32_t events; int fd; int ret; struct pommed_watch *w; logdebug("DBus toggle watch\n"); fd = dbus_watch_get_unix_fd(watch); events = 0; for (w = watches; w != NULL; w = w->next) { if (w->watch == watch) { if (!dbus_watch_get_enabled(watch)) w->enabled = 0; else { w->enabled = 1; events |= w->events; } continue; } if (w->enabled && (w->fd == fd)) events |= events; } ret = evloop_remove(fd); if (ret < 0) return; if (events == 0) return; ret = evloop_add(fd, events, mbpdbus_process_watch); if (ret < 0) logmsg(LOG_WARNING, "Could not re-add watch"); } static void mbpdbus_data_free(void *data) { /* NOTHING */ } int mbpdbus_init(void) { int ret; watches = NULL; dbus_timer = -1; dbus_error_init(&err); conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); if (dbus_error_is_set(&err)) { logmsg(LOG_ERR, "DBus system bus connection failed: %s", err.message); dbus_error_free(&err); conn = NULL; goto init_reconnect; } dbus_connection_set_exit_on_disconnect(conn, FALSE); ret = dbus_bus_request_name(conn, "org.pommed", 0, &err); if (dbus_error_is_set(&err)) { logmsg(LOG_ERR, "Failed to request DBus name: %s", err.message); mbpdbus_cleanup(); goto init_reconnect; } if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { logmsg(LOG_ERR, "Not primary DBus name owner"); mbpdbus_cleanup(); goto init_reconnect; } ret = dbus_connection_set_watch_functions(conn, mbpdbus_add_watch, mbpdbus_remove_watch, mbpdbus_toggle_watch, NULL, mbpdbus_data_free); if (!ret) { mbpdbus_cleanup(); goto init_reconnect; } dbus_connection_add_filter(conn, mbpdbus_process_requests, NULL, NULL); return 0; init_reconnect: if (dbus_timer > 0) /* Trying to reconnect already, called from mbpdbus_reconnect() */ return -1; dbus_timer = evloop_add_timer(DBUS_TIMEOUT, mbpdbus_reconnect); if (dbus_timer < 0) { logmsg(LOG_ERR, "Could not set up timer for DBus reconnection"); return -1; } return 0; } void mbpdbus_cleanup(void) { if (dbus_timer > 0) evloop_remove_timer(dbus_timer); if (conn == NULL) return; dbus_error_free(&err); /* This is a shared connection owned by libdbus * Do not close it, only unref */ dbus_connection_unref(conn); conn = NULL; } pommed-1.39~dfsg/pommed/dbus.h0000664000175000017500000000104211571653265015730 0ustar julienjulien/* * pommed - dbus.h */ #ifndef __MBPDBUS_H__ #define __MBPDBUS_H__ #define DBUS_TIMEOUT 200 void mbpdbus_send_lcd_backlight(int cur, int prev, int who); void mbpdbus_send_kbd_backlight(int cur, int prev, int who); void mbpdbus_send_ambient_light(int l, int l_prev, int r, int r_prev); void mbpdbus_send_audio_volume(int cur, int prev); void mbpdbus_send_audio_mute(int mute); void mbpdbus_send_cd_eject(void); void mbpdbus_send_video_switch(void); int mbpdbus_init(void); void mbpdbus_cleanup(void); #endif /* !__MBPDBUS_H__ */ pommed-1.39~dfsg/pommed/evdev.c0000664000175000017500000005214111571653265016105 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2009 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #ifndef NO_SYS_INOTIFY_H # include #else # include # include "inotify-syscalls.h" #endif #include #include "pommed.h" #include "conffile.h" #include "evdev.h" #include "evloop.h" #include "kbd_backlight.h" #include "lcd_backlight.h" #include "cd_eject.h" #include "audio.h" #include "video.h" #include "beep.h" #define BITS_PER_LONG (sizeof(long) * 8) #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1) #define OFF(x) ((x)%BITS_PER_LONG) #define BIT(x) (1UL<> OFF(bit)) & 1) /* Added to linux/input.h after Linux 2.6.18 */ #ifndef BUS_VIRTUAL # define BUS_VIRTUAL 0x06 #endif static int evdev_try_add(int fd); static int internal_kbd_fd; void evdev_process_events(int fd, uint32_t events) { int ret; struct input_event ev; /* some of the event devices cease to exist when suspending */ if (events & (EPOLLERR | EPOLLHUP)) { logmsg(LOG_INFO, "Error condition signaled on event device"); ret = evloop_remove(fd); if (ret < 0) logmsg(LOG_ERR, "Could not remove device from event loop"); if (fd == internal_kbd_fd) internal_kbd_fd = -1; close(fd); return; } ret = read(fd, &ev, sizeof(struct input_event)); if (ret != sizeof(struct input_event)) return; if (ev.type == EV_KEY) { /* key released - we don't care */ if (ev.value == 0) return; /* Reset keyboard backlight idle timer */ if (fd == internal_kbd_fd) { kbd_bck_info.idle = 0; kbd_backlight_inhibit_clear(KBD_INHIBIT_IDLE); } switch (ev.code) { case KEY_BRIGHTNESSDOWN: logdebug("\nKEY: LCD backlight down\n"); mops->lcd_backlight_step(STEP_DOWN); break; case KEY_BRIGHTNESSUP: logdebug("\nKEY: LCD backlight up\n"); mops->lcd_backlight_step(STEP_UP); break; case KEY_MUTE: logdebug("\nKEY: audio mute\n"); audio_toggle_mute(); break; case KEY_VOLUMEDOWN: logdebug("\nKEY: audio down\n"); audio_step(STEP_DOWN); break; case KEY_VOLUMEUP: logdebug("\nKEY: audio up\n"); audio_step(STEP_UP); break; case KEY_SWITCHVIDEOMODE: logdebug("\nKEY: video toggle\n"); video_switch(); break; case KEY_KBDILLUMTOGGLE: logdebug("\nKEY: keyboard backlight off\n"); if (!has_kbd_backlight()) break; if (kbd_cfg.auto_on) kbd_backlight_inhibit_toggle(KBD_INHIBIT_USER); else kbd_backlight_toggle(); break; case KEY_KBDILLUMDOWN: logdebug("\nKEY: keyboard backlight down\n"); if (!has_kbd_backlight()) break; kbd_backlight_step(STEP_DOWN); if (kbd_bck_info.level == KBD_BACKLIGHT_OFF) kbd_backlight_inhibit_set(KBD_INHIBIT_USER); break; case KEY_KBDILLUMUP: logdebug("\nKEY: keyboard backlight up\n"); if (!has_kbd_backlight()) break; kbd_backlight_inhibit_clear(KBD_INHIBIT_USER); kbd_backlight_step(STEP_UP); break; case KEY_EJECTCD: logdebug("\nKEY: CD eject\n"); cd_eject(); break; case KEY_NEXTSONG: logdebug("\nKEY: IR fast forward\n"); break; case KEY_PREVIOUSSONG: logdebug("\nKEY: IR rewind\n"); break; case KEY_PLAYPAUSE: logdebug("\nKEY: IR play/pause\n"); break; case KEY_MENU: logdebug("\nKEY: IR menu\n"); break; default: #if 0 logdebug("\nKEY: %x\n", ev.code); #endif /* 0 */ break; } } else if (ev.type == EV_SW) { /* Lid switch */ if (ev.code == SW_LID) { if (ev.value) { logdebug("\nLID: closed\n"); kbd_backlight_inhibit_set(KBD_INHIBIT_LID); } else { logdebug("\nLID: open\n"); kbd_backlight_inhibit_clear(KBD_INHIBIT_LID); } } } } void evdev_inotify_process(int fd, uint32_t events) { int ret; int efd; int qsize; struct inotify_event *all_ie; struct inotify_event *ie; char evdev[32]; if (events & (EPOLLERR | EPOLLHUP)) { logmsg(LOG_WARNING, "inotify fd lost; this should not happen"); ret = evloop_remove(fd); if (ret < 0) logmsg(LOG_ERR, "Could not remove inotify from event loop"); close(fd); return; } /* Determine the size of the inotify queue */ ret = ioctl(fd, FIONREAD, &qsize); if (ret < 0) { logmsg(LOG_ERR, "Could not determine inotify queue size: %s", strerror(errno)); return; } all_ie = (struct inotify_event *) malloc(qsize); if (all_ie == NULL) { logmsg(LOG_ERR, "Could not allocate %d bytes for inotify events", qsize); return; } ret = read(fd, all_ie, qsize); if (ret < 0) { logmsg(LOG_WARNING, "inotify read failed: %s", strerror(errno)); free(all_ie); return; } /* ioctl(FIONREAD) returns the number of bytes, now we need the number of elements */ qsize /= sizeof(struct inotify_event); /* Loop through all the events we got */ for (ie = all_ie; (ie - all_ie) < qsize; ie += (1 + (ie->len / sizeof(struct inotify_event)))) { /* ie[0] contains the inotify event information * the memory space for ie[1+] contains the name of the file * see the inotify documentation */ if ((ie->len == 0) || (ie->name == NULL)) { logdebug("inotify event with no name\n"); continue; } logdebug("Found new event device %s/%s\n", EVDEV_DIR, ie->name); if (strncmp("event", ie->name, 5)) { logdebug("Discarding %s/%s\n", EVDEV_DIR, ie->name); continue; } ret = snprintf(evdev, sizeof(evdev), "%s/%s", EVDEV_DIR, ie->name); if ((ret <= 0) || (ret >= sizeof(evdev))) continue; efd = open(evdev, O_RDWR); if (efd < 0) { if (errno != ENOENT) logmsg(LOG_WARNING, "Could not open %s: %s", evdev, strerror(errno)); continue; } evdev_try_add(efd); } free(all_ie); } #ifdef __powerpc__ /* PowerBook G4 Titanium */ static int evdev_is_adb(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_ADB) return 0; if (id[ID_VENDOR] != 0x0001) return 0; if ((product == ADB_PRODUCT_ID_KEYBOARD_ANSI) || (product == ADB_PRODUCT_ID_KEYBOARD_ISO) || (product == ADB_PRODUCT_ID_KEYBOARD_JIS)) { logdebug(" -> ADB keyboard\n"); return 1; } if (product == ADB_PRODUCT_ID_PBBUTTONS) { logdebug(" -> ADB PowerBook buttons\n"); return 1; } return 0; } /* PowerBook G4 */ static int evdev_is_fountain(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_FOUNTAIN_ANSI) || (product == USB_PRODUCT_ID_FOUNTAIN_ISO) || (product == USB_PRODUCT_ID_FOUNTAIN_JIS)) { logdebug(" -> Fountain USB assembly\n"); return 1; } return 0; } static int evdev_is_geyser(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_GEYSER_ANSI) || (product == USB_PRODUCT_ID_GEYSER_ISO) || (product == USB_PRODUCT_ID_GEYSER_JIS)) { logdebug(" -> Geyser USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Any internal keyboard */ static int evdev_is_internal(unsigned short *id) { return (evdev_is_adb(id) || evdev_is_fountain(id) || evdev_is_geyser(id)); } /* PMU Lid switch */ static int evdev_is_lidswitch(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_HOST) return 0; if (id[ID_VENDOR] != 0x0001) return 0; if (id[ID_VERSION] != 0x0100) return 0; if (product == 0x0001) { logdebug(" -> PMU LID switch\n"); return 1; } return 0; } #else /* Core Duo MacBook & MacBook Pro */ static int evdev_is_geyser3(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_GEYSER3_ANSI) || (product == USB_PRODUCT_ID_GEYSER3_ISO) || (product == USB_PRODUCT_ID_GEYSER3_JIS)) { logdebug(" -> Geyser III USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Core2 Duo MacBook & MacBook Pro */ static int evdev_is_geyser4(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_GEYSER4_ANSI) || (product == USB_PRODUCT_ID_GEYSER4_ISO) || (product == USB_PRODUCT_ID_GEYSER4_JIS)) { logdebug(" -> Geyser IV USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Core2 Duo Santa Rosa MacBook (MacBook3,1) Core2 Duo MacBook (MacBook4,1, February 2008) */ static int evdev_is_geyser4hf(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_GEYSER4HF_ANSI) || (product == USB_PRODUCT_ID_GEYSER4HF_ISO) || (product == USB_PRODUCT_ID_GEYSER4HF_JIS)) { logdebug(" -> Geyser IV-HF USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* MacBook Air (MacBookAir1,1, January 2008) */ static int evdev_is_wellspring(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING_ISO) || (product == USB_PRODUCT_ID_WELLSPRING_JIS)) { logdebug(" -> WellSpring USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Core2 Duo MacBook Pro (MacBookPro4,1, February 2008) */ static int evdev_is_wellspring2(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING2_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING2_ISO) || (product == USB_PRODUCT_ID_WELLSPRING2_JIS)) { logdebug(" -> WellSpring II USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Core2 Duo MacBook Pro (MacBookPro5,1, October 2008) * Core2 Duo MacBook (MacBook5,1, October 2008) * MacBook Air (MacBookAir2,1, October 2008) */ static int evdev_is_wellspring3(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING3_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING3_ISO) || (product == USB_PRODUCT_ID_WELLSPRING3_JIS)) { logdebug(" -> WellSpring III USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* MacBookAir3,2 (October 2010) */ static int evdev_is_wellspring4(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING4_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING4_ISO) || (product == USB_PRODUCT_ID_WELLSPRING4_JIS)) { logdebug(" -> WellSpring IV USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* MacBookAir3,1 (October 2010) */ static int evdev_is_wellspring4a(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING4A_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING4A_ISO) || (product == USB_PRODUCT_ID_WELLSPRING4A_JIS)) { logdebug(" -> WellSpring IVa USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* MacBookPro8,1 (13" Early 2011) * MacBookPro8,2 (15" Early 2011) * MacBookPro8,3 (17" Early 2011) */ static int evdev_is_wellspring5(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_WELLSPRING5_ANSI) || (product == USB_PRODUCT_ID_WELLSPRING5_ISO) || (product == USB_PRODUCT_ID_WELLSPRING5_JIS)) { logdebug(" -> WellSpring V USB assembly\n"); kbd_set_fnmode(); return 1; } return 0; } /* Any internal keyboard */ static int evdev_is_internal(unsigned short *id) { return (evdev_is_geyser3(id) || evdev_is_geyser4(id) || evdev_is_geyser4hf(id) || evdev_is_wellspring(id) || evdev_is_wellspring2(id) || evdev_is_wellspring3(id) || evdev_is_wellspring4(id) || evdev_is_wellspring4a(id) || evdev_is_wellspring5(id)); } /* Apple Remote IR Receiver */ static int evdev_is_appleir(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_APPLEIR) || (product == USB_PRODUCT_ID_APPLEIR_2)) { logdebug(" -> Apple IR receiver\n"); return 1; } return 0; } /* ACPI Lid switch */ static int evdev_is_lidswitch(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_HOST) return 0; if (id[ID_VENDOR] != 0) return 0; if (product == 0x0005) { logdebug(" -> ACPI LID switch\n"); return 1; } return 0; } #endif /* !__powerpc__ */ /* Apple external USB keyboard, white */ static int evdev_is_extkbd_white(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if (product == USB_PRODUCT_ID_APPLE_EXTKBD_WHITE) { logdebug(" -> External Apple USB keyboard (white)\n"); kbd_set_fnmode(); return 1; } return 0; } /* Apple external USB mini keyboard, aluminium */ static int evdev_is_extkbd_mini_alu(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_ANSI) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_ISO) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_JIS)) { logdebug(" -> External Apple USB mini keyboard (aluminium)\n"); kbd_set_fnmode(); return 1; } return 0; } /* Apple external USB keyboard, aluminium */ static int evdev_is_extkbd_alu(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_USB) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_ANSI) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_ISO) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_JIS)) { logdebug(" -> External Apple USB keyboard (aluminium)\n"); kbd_set_fnmode(); return 1; } return 0; } /* Apple external wireless keyboard, aluminium */ static int evdev_is_extkbd_alu_wl(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_BLUETOOTH) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_ANSI) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_ISO) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_JIS)) { logdebug(" -> External Apple wireless keyboard (aluminium)\n"); kbd_set_fnmode(); return 1; } return 0; } /* Apple external wireless keyboard, aluminium, newer model */ static int evdev_is_extkbd_alu_wl_2(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_BLUETOOTH) return 0; if (id[ID_VENDOR] != USB_VENDOR_ID_APPLE) return 0; if ((product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_ANSI) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_ISO) || (product == USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_JIS)) { logdebug(" -> External Apple wireless keyboard 2 (aluminium)\n"); kbd_set_fnmode(); return 1; } return 0; } /* Any external Apple USB keyboard */ static int evdev_is_extkbd(unsigned short *id) { return (evdev_is_extkbd_white(id) || evdev_is_extkbd_mini_alu(id) || evdev_is_extkbd_alu(id) || evdev_is_extkbd_alu_wl(id) || evdev_is_extkbd_alu_wl_2(id)); } /* Mouseemu virtual keyboard */ static int evdev_is_mouseemu(unsigned short *id) { unsigned short product = id[ID_PRODUCT]; if (id[ID_BUS] != BUS_VIRTUAL) return 0; if (id[ID_VENDOR] != 0x001f) return 0; if (product == 0x001f) { logdebug(" -> Mouseemu virtual keyboard\n"); return 1; } return 0; } static int evdev_try_add(int fd) { unsigned short id[4]; unsigned long bit[EV_MAX][NBITS(KEY_MAX)]; char devname[256]; int ret; devname[0] = '\0'; ioctl(fd, EVIOCGNAME(sizeof(devname)), devname); logdebug("\nInvestigating evdev [%s]\n", devname); ioctl(fd, EVIOCGID, id); if ((!evdev_is_internal(id)) #ifndef __powerpc__ && !(appleir_cfg.enabled && evdev_is_appleir(id)) #endif && !(has_kbd_backlight() && evdev_is_lidswitch(id)) && !(evdev_is_mouseemu(id)) && !(evdev_is_extkbd(id))) { logdebug("Discarding evdev: bus 0x%04x, vid 0x%04x, pid 0x%04x\n", id[ID_BUS], id[ID_VENDOR], id[ID_PRODUCT]); close(fd); return -1; } memset(bit, 0, sizeof(bit)); ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]); if (!test_bit(EV_KEY, bit[0])) { logdebug("evdev: no EV_KEY event type (not a keyboard)\n"); if (!test_bit(EV_SW, bit[0])) { logdebug("Discarding evdev: no EV_SW event type (not a switch)\n"); close(fd); return -1; } } /* Wireless keyboards advertise EV_ABS events, single them out */ else if (test_bit(EV_ABS, bit[0]) && !(evdev_is_extkbd_alu_wl(id))) { logdebug("Discarding evdev with EV_ABS event type (mouse/trackpad)\n"); close(fd); return -1; } /* There are 2 keyboards, but one of them only has the eject key; the real keyboard has all the keys and the LEDs. Checking for the LEDs is a quick way of identifying the keyboard we want. */ if (test_bit(EV_LED, bit[0]) && evdev_is_internal(id)) { logdebug(" -> Internal keyboard\n"); internal_kbd_fd = fd; } ret = evloop_add(fd, EPOLLIN, evdev_process_events); if (ret < 0) { logmsg(LOG_ERR, "Could not add device to event loop"); if (fd == internal_kbd_fd) internal_kbd_fd = -1; close(fd); return -1; } return 0; } static int evdev_inotify_init(void) { int ret; int fd; fd = inotify_init(); if (fd < 0) { logmsg(LOG_ERR, "Failed to initialize inotify: %s", strerror(errno)); return -1; } ret = inotify_add_watch(fd, EVDEV_DIR, IN_CREATE | IN_ONLYDIR); if (ret < 0) { logmsg(LOG_ERR, "Failed to add inotify watch for %s: %s", EVDEV_DIR, strerror(errno)); close(fd); fd = -1; return -1; } ret = evloop_add(fd, EPOLLIN, evdev_inotify_process); if (ret < 0) { logmsg(LOG_ERR, "Failed to add inotify fd to event loop"); close(fd); return -1; } return 0; } int evdev_init(void) { int ret; int i; char evdev[32]; int ndevs; int fd; internal_kbd_fd = -1; ndevs = 0; for (i = 0; i < EVDEV_MAX; i++) { ret = snprintf(evdev, 32, "%s%d", EVDEV_BASE, i); if ((ret <= 0) || (ret > 31)) return -1; fd = open(evdev, O_RDWR); if (fd < 0) { if (errno != ENOENT) logmsg(LOG_WARNING, "Could not open %s: %s", evdev, strerror(errno)); continue; } if (evdev_try_add(fd) == 0) ndevs++; } logdebug("\nFound %d devices\n", ndevs); /* Initialize inotify */ evdev_inotify_init(); return ndevs; } void evdev_cleanup(void) { /* evloop_cleanup() takes care of closing the devices */ } pommed-1.39~dfsg/pommed/evdev.h0000664000175000017500000000746011571653265016116 0ustar julienjulien/* * pommed - evdev.h */ #ifndef __EVDEV_H__ #define __EVDEV_H__ /****** ADB Devices ******/ #define ADB_PRODUCT_ID_KEYBOARD_ANSI 0x22c3 #define ADB_PRODUCT_ID_KEYBOARD_ISO 0x22c4 #define ADB_PRODUCT_ID_KEYBOARD_JIS 0x22c5 /* Special PowerBook buttons */ #define ADB_PRODUCT_ID_PBBUTTONS 0x771f /****** USB Devices ******/ #define USB_VENDOR_ID_APPLE 0x05ac /* Fountain & Geyser devices : AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTrackpad.kext */ /* Apple Fountain keyboard + trackpad */ #define USB_PRODUCT_ID_FOUNTAIN_ANSI 0x020e #define USB_PRODUCT_ID_FOUNTAIN_ISO 0x020f #define USB_PRODUCT_ID_FOUNTAIN_JIS 0x0210 /* Apple Geyser keyboard + trackpad */ #define USB_PRODUCT_ID_GEYSER_ANSI 0x0214 #define USB_PRODUCT_ID_GEYSER_ISO 0x0215 #define USB_PRODUCT_ID_GEYSER_JIS 0x0216 /* Apple Geyser III keyboard + trackpad */ #define USB_PRODUCT_ID_GEYSER3_ANSI 0x0217 #define USB_PRODUCT_ID_GEYSER3_ISO 0x0218 #define USB_PRODUCT_ID_GEYSER3_JIS 0x0219 /* Apple Geyser IV keyboard + trackpad */ #define USB_PRODUCT_ID_GEYSER4_ANSI 0x021a #define USB_PRODUCT_ID_GEYSER4_ISO 0x021b #define USB_PRODUCT_ID_GEYSER4_JIS 0x021c /* Apple Geyser IV-HF keyboard + trackpad */ #define USB_PRODUCT_ID_GEYSER4HF_ANSI 0x0229 #define USB_PRODUCT_ID_GEYSER4HF_ISO 0x022a #define USB_PRODUCT_ID_GEYSER4HF_JIS 0x022b /* WellSpring devices : AppleUSBMultitouch.kext */ /* Apple WellSpring keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING_ANSI 0x0223 #define USB_PRODUCT_ID_WELLSPRING_ISO 0x0224 #define USB_PRODUCT_ID_WELLSPRING_JIS 0x0225 /* Apple WellSpring II keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING2_ANSI 0x0230 #define USB_PRODUCT_ID_WELLSPRING2_ISO 0x0231 #define USB_PRODUCT_ID_WELLSPRING2_JIS 0x0232 /* Apple WellSpring III keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING3_ANSI 0x0236 #define USB_PRODUCT_ID_WELLSPRING3_ISO 0x0237 #define USB_PRODUCT_ID_WELLSPRING3_JIS 0x0238 /* Apple WellSpring IV keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING4_ANSI 0x023f #define USB_PRODUCT_ID_WELLSPRING4_ISO 0x0240 #define USB_PRODUCT_ID_WELLSPRING4_JIS 0x0241 /* Apple WellSpring IVa keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING4A_ANSI 0x0242 #define USB_PRODUCT_ID_WELLSPRING4A_ISO 0x0243 #define USB_PRODUCT_ID_WELLSPRING4A_JIS 0x0244 /* Apple WellSpring V keyboard + trackpad */ #define USB_PRODUCT_ID_WELLSPRING5_ANSI 0x0245 #define USB_PRODUCT_ID_WELLSPRING5_ISO 0x0246 #define USB_PRODUCT_ID_WELLSPRING5_JIS 0x0247 /* Apple external USB keyboard, white */ #define USB_PRODUCT_ID_APPLE_EXTKBD_WHITE 0x020c /* Apple external USB mini keyboard, aluminium */ #define USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_ANSI 0x021d #define USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_ISO 0x021e #define USB_PRODUCT_ID_APPLE_EXTKBD_MINI_ALU_JIS 0x021f /* Apple external USB keyboard, aluminium */ #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_ANSI 0x0220 #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_ISO 0x0221 #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_JIS 0x0222 /* Apple external wireless keyboard, aluminium */ #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_ANSI 0x022c #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_ISO 0x022d #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_JIS 0x022e /* Apple external wireless keyboard, aluminium, newer model */ #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_ANSI 0x0239 #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_ISO 0x023a #define USB_PRODUCT_ID_APPLE_EXTKBD_ALU_WL_2_JIS 0x023b /* Apple Remote IR Receiver */ #define USB_PRODUCT_ID_APPLEIR 0x8240 #define USB_PRODUCT_ID_APPLEIR_2 0x8242 #define EVDEV_DIR "/dev/input" #define EVDEV_BASE "/dev/input/event" #define EVDEV_MAX 32 int evdev_init(void); void evdev_cleanup(void); #endif /* !__EVDEV_H__ */ pommed-1.39~dfsg/pommed/evloop.c0000664000175000017500000001612411571653265016301 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #ifndef NO_SYS_TIMERFD_H # include #else # include "timerfd-syscalls.h" #endif #include "pommed.h" #include "evloop.h" /* epoll fd */ static int epfd; /* event sources registered on the main loop */ static struct pommed_event *sources; /* timers */ static struct pommed_timer *timers; static int timer_job_id; static int running; int evloop_add(int fd, uint32_t events, pommed_event_cb cb) { int ret; struct epoll_event epoll_ev; struct pommed_event *pommed_ev; pommed_ev = (struct pommed_event *)malloc(sizeof(*pommed_ev)); if (pommed_ev == NULL) { logmsg(LOG_ERR, "Could not allocate memory for new source"); return -1; } pommed_ev->fd = fd; pommed_ev->cb = cb; pommed_ev->next = sources; epoll_ev.events = events; epoll_ev.data.ptr = pommed_ev; ret = epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &epoll_ev); if (ret < 0) { logmsg(LOG_ERR, "Could not add source to epoll: %s", strerror(errno)); free(pommed_ev); return -1; } sources = pommed_ev; return 0; } int evloop_remove(int fd) { int ret; struct pommed_event *p; struct pommed_event *e; ret = epoll_ctl(epfd, EPOLL_CTL_DEL, fd, NULL); if (ret < 0) { logmsg(LOG_ERR, "Could not remove source from epoll: %s", strerror(errno)); return -1; } for (p = NULL, e = sources; e != NULL; p = e, e = e->next) { if (e->fd != fd) continue; if (p != NULL) p->next = e->next; else sources = e->next; free(e); break; } return 0; } static void evloop_timer_callback(int fd, uint32_t events) { uint64_t ticks; struct pommed_timer *t; struct pommed_timer_job *j; /* Acknowledge timer */ read(fd, &ticks, sizeof(ticks)); j = NULL; for (t = timers; t != NULL; t = t->next) { if (t->fd == fd) { j = t->jobs; break; } } while (j != NULL) { j->cb(j->id, ticks); j = j->next; } } static int evloop_create_timer(int timeout) { int fd; int ret; struct itimerspec timing; fd = timerfd_create(CLOCK_MONOTONIC, 0); if (fd < 0) { logmsg(LOG_ERR, "Could not create timer: %s", strerror(errno)); return -1; } timing.it_interval.tv_sec = (timeout >= 1000) ? timeout / 1000 : 0; timing.it_interval.tv_nsec = (timeout - (timing.it_interval.tv_sec * 1000)) * 1000000; ret = clock_gettime(CLOCK_MONOTONIC, &timing.it_value); if (ret < 0) { logmsg(LOG_ERR, "Could not get current time: %s", strerror(errno)); close(fd); return -1; } timing.it_value.tv_sec += timing.it_interval.tv_sec; timing.it_value.tv_nsec += timing.it_interval.tv_nsec; if (timing.it_value.tv_nsec > 1000000000) { timing.it_value.tv_sec++; timing.it_value.tv_nsec -= 1000000000; } ret = timerfd_settime(fd, TFD_TIMER_ABSTIME, &timing, NULL); if (ret < 0) { logmsg(LOG_ERR, "Could not setup timer: %s", strerror(errno)); close(fd); return -1; } ret = evloop_add(fd, EPOLLIN, evloop_timer_callback); if (ret < 0) { close(fd); return -1; } return fd; } int evloop_add_timer(int timeout, pommed_timer_cb cb) { int fd; struct pommed_timer *t; struct pommed_timer_job *j; j = (struct pommed_timer_job *)malloc(sizeof(struct pommed_timer_job)); if (j == NULL) { logmsg(LOG_ERR, "Could not allocate memory for timer job"); return -1; } j->cb = cb; j->id = timer_job_id; timer_job_id++; for (t = timers; t != NULL; t = t->next) { if (t->timeout == timeout) break; } if (t == NULL) { t = (struct pommed_timer *)malloc(sizeof(struct pommed_timer)); if (t == NULL) { logmsg(LOG_ERR, "Could not allocate memory for timer"); return -1; } fd = evloop_create_timer(timeout); if (fd < 0) { free(t); return -1; } t->fd = fd; t->timeout = timeout; t->jobs = NULL; t->next = timers; timers = t; } j->next = t->jobs; t->jobs = j; return 0; } int evloop_remove_timer(int id) { int found; int ret; struct pommed_timer *t; struct pommed_timer *pt; struct pommed_timer_job *j; struct pommed_timer_job *pj; found = 0; for (pt = NULL, t = timers; t != NULL; pt = t, t = t->next) { for (pj = NULL, j = t->jobs; j != NULL; pj = j, j = j->next) { if (j->id == id) { if (pj != NULL) pj->next = j->next; else t->jobs = j->next; free(j); found = 1; break; } } if (found) break; } if (t == NULL) return 0; if (t->jobs == NULL) { ret = evloop_remove(t->fd); if (ret < 0) return ret; close(t->fd); if (pt != NULL) pt->next = t->next; else timers = t->next; free(t); } return 0; } int evloop_iteration(void) { int i; int nfds; struct epoll_event epoll_ev[MAX_EPOLL_EVENTS]; struct pommed_event *pommed_ev; if (!running) return -1; nfds = epoll_wait(epfd, epoll_ev, MAX_EPOLL_EVENTS, -1); if (nfds < 0) { if (errno == EINTR) return 0; /* pommed.c will continue */ else { logmsg(LOG_ERR, "epoll_wait() error: %s", strerror(errno)); return -1; /* pommed.c will exit */ } } for (i = 0; i < nfds; i++) { pommed_ev = epoll_ev[i].data.ptr; pommed_ev->cb(pommed_ev->fd, epoll_ev[i].events); } return nfds; } void evloop_stop(void) { running = 0; } int evloop_init(void) { sources = NULL; timers = NULL; timer_job_id = 0; running = 1; epfd = epoll_create(MAX_EPOLL_EVENTS); if (epfd < 0) { logmsg(LOG_ERR, "Could not create epoll fd: %s", strerror(errno)); return -1; } return 0; } void evloop_cleanup(void) { struct pommed_event *p; struct pommed_timer *t; struct pommed_timer_job *j; struct pommed_timer_job *jobs; close(epfd); while (sources != NULL) { p = sources; sources = sources->next; close(p->fd); free(p); } while (timers != NULL) { t = timers; timers = timers->next; jobs = t->jobs; while (jobs != NULL) { j = jobs; jobs = jobs->next; free(j); } free(t); } } pommed-1.39~dfsg/pommed/evloop.h0000664000175000017500000000150211571653265016300 0ustar julienjulien/* * pommed - evloop.h */ #ifndef __EVLOOP_H__ #define __EVLOOP_H__ #define MAX_EPOLL_EVENTS 8 typedef void(*pommed_event_cb)(int fd, uint32_t events); struct pommed_event { int fd; pommed_event_cb cb; struct pommed_event *next; }; typedef void(*pommed_timer_cb)(int id, uint64_t ticks); struct pommed_timer_job { int id; pommed_timer_cb cb; struct pommed_timer_job *next; }; struct pommed_timer { int fd; int timeout; struct pommed_timer_job *jobs; struct pommed_timer *next; }; int evloop_add(int fd, uint32_t events, pommed_event_cb cb); int evloop_remove(int fd); int evloop_add_timer(int timeout, pommed_timer_cb cb); int evloop_remove_timer(int id); int evloop_iteration(void); void evloop_stop(void); int evloop_init(void); void evloop_cleanup(void); #endif /* __EVLOOP_H__ */ pommed-1.39~dfsg/pommed/inotify-syscalls.h0000664000175000017500000000571511571653265020322 0ustar julienjulien/* * Inotify syscall numbers * Taken from the Linux kernel source tree * * Licensed under the terms of the GNU General Public License Version 2. * * Copyright (c) 2006 Tobias Klauser */ #ifndef _LINUX_INOTIFY_SYSCALLS_H #define _LINUX_INOTIFY_SYSCALLS_H #include #if defined(__i386__) # define __NR_inotify_init 291 # define __NR_inotify_add_watch 292 # define __NR_inotify_rm_watch 293 #elif defined(__x86_64__) # define __NR_inotify_init 253 # define __NR_inotify_add_watch 254 # define __NR_inotify_rm_watch 255 #elif defined(__powerpc__) || defined(__powerpc64__) # define __NR_inotify_init 275 # define __NR_inotify_add_watch 276 # define __NR_inotify_rm_watch 277 #elif defined (__ia64__) # define __NR_inotify_init 1277 # define __NR_inotify_add_watch 1278 # define __NR_inotify_rm_watch 1279 #elif defined (__s390__) # define __NR_inotify_init 284 # define __NR_inotify_add_watch 285 # define __NR_inotify_rm_watch 286 #elif defined (__alpha__) # define __NR_inotify_init 444 # define __NR_inotify_add_watch 445 # define __NR_inotify_rm_watch 446 #elif defined (__sparc__) || defined (__sparc64__) # define __NR_inotify_init 151 # define __NR_inotify_add_watch 152 # define __NR_inotify_rm_watch 156 #elif defined (__arm__) # define __NR_OABI_SYSCALL_BASE 0x900000 # if defined(__thumb__) || defined(__ARM_EABI__) # define __NR_SYSCALL_BASE 0 # else # define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE # endif # define __NR_inotify_init (__NR_SYSCALL_BASE + 316) # define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) #elif defined (__sh__) # define __NR_inotify_init 290 # define __NR_inotify_add_watch 291 # define __NR_inotify_rm_watch 292 #elif defined (__hppa__) # define __NR_inotify_init 269 # define __NR_inotify_add_watch 270 # define __NR_inotify_rm_watch 271 #elif defined (__mips__) # include # if _MIPS_SIM == _MIPS_SIM_ABI32 # define __NR_Linux 4000 # define __NR_inotify_init (__NR_Linux + 284) # define __NR_inotify_add_watch (__NR_Linux + 285) # define __NR_inotify_rm_watch (__NR_Linux + 286) # elif _MIPS_SIM == _MIPS_SIM_ABI64 # define __NR_Linux 5000 # define __NR_inotify_init (__NR_Linux + 243) # define __NR_inotify_add_watch (__NR_Linux + 244) # define __NR_inotify_rm_watch (__NR_Linux + 245) # elif _MIPS_SIM == _MIPS_SIM_NABI32 # define __NR_Linux 6000 # define __NR_inotify_init (__NR_Linux + 247) # define __NR_inotify_add_watch (__NR_Linux + 248) # define __NR_inotify_rm_watch (__NR_Linux + 249) # endif #else # error "inotify not supported on this architecture!" #endif static inline int inotify_init (void) { return syscall (__NR_inotify_init); } static inline int inotify_add_watch (int fd, const char *name, __u32 mask) { return syscall (__NR_inotify_add_watch, fd, name, mask); } static inline int inotify_rm_watch (int fd, __u32 wd) { return syscall (__NR_inotify_rm_watch, fd, wd); } #endif /* _LINUX_INOTIFY_SYSCALLS_H */ pommed-1.39~dfsg/pommed/kbd_auto.c0000664000175000017500000000751111571653265016565 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * 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. */ static int kbd_timer; /* simple backlight toggle */ void kbd_backlight_toggle(void) { int curval; curval = kbd_backlight_get(); if (curval != KBD_BACKLIGHT_OFF) { kbd_bck_info.toggle_lvl = curval; kbd_backlight_set(KBD_BACKLIGHT_OFF, KBD_USER); } else { if (kbd_bck_info.toggle_lvl < kbd_cfg.auto_lvl) kbd_bck_info.toggle_lvl = kbd_cfg.auto_lvl; kbd_backlight_set(kbd_bck_info.toggle_lvl, KBD_USER); } } /* Automatic backlight */ void kbd_backlight_inhibit_set(int mask) { int lvl; if (!kbd_bck_info.inhibit) kbd_bck_info.inhibit_lvl = kbd_bck_info.level; if (mask & KBD_INHIBIT_IDLE) lvl = (kbd_cfg.idle_lvl < kbd_bck_info.level) ? kbd_cfg.idle_lvl : kbd_bck_info.level; else lvl = KBD_BACKLIGHT_OFF; kbd_backlight_set(lvl, (mask & KBD_MASK_AUTO) ? (KBD_AUTO) : (KBD_USER)); kbd_bck_info.inhibit |= mask; logdebug("KBD: inhibit set 0x%02x -> 0x%02x\n", mask, kbd_bck_info.inhibit); } void kbd_backlight_inhibit_clear(int mask) { int flag; flag = kbd_bck_info.inhibit & mask; kbd_bck_info.inhibit &= ~mask; logdebug("KBD: inhibit clear 0x%02x -> 0x%02x\n", mask, kbd_bck_info.inhibit); if (kbd_bck_info.inhibit || !flag) return; kbd_backlight_set(kbd_bck_info.inhibit_lvl, (mask & KBD_MASK_AUTO) ? (KBD_AUTO) : (KBD_USER)); if (kbd_bck_info.auto_on) { kbd_bck_info.auto_on = 0; kbd_bck_info.inhibit_lvl = 0; } } void kbd_backlight_inhibit_toggle(int mask) { if (kbd_bck_info.inhibit & mask) kbd_backlight_inhibit_clear(mask); else kbd_backlight_inhibit_set(mask); } void kbd_backlight_ambient_check(void) { int amb_r, amb_l; ambient_get(&amb_r, &amb_l); if ((amb_r < 0) || (amb_l < 0)) return; mbpdbus_send_ambient_light(amb_l, kbd_bck_info.l_sens, amb_r, kbd_bck_info.r_sens); kbd_bck_info.r_sens = amb_r; kbd_bck_info.l_sens = amb_l; /* Inhibited */ if (kbd_bck_info.inhibit) return; if ((amb_r < kbd_cfg.on_thresh) && (amb_l < kbd_cfg.on_thresh)) { logdebug("Ambient light lower threshold reached\n"); /* backlight already on */ if (kbd_backlight_get() > KBD_BACKLIGHT_OFF) return; /* turn on backlight */ kbd_bck_info.auto_on = 1; kbd_backlight_set(kbd_cfg.auto_lvl, KBD_AUTO); } else if (kbd_bck_info.auto_on) { if ((amb_r > kbd_cfg.off_thresh) || (amb_l > kbd_cfg.off_thresh)) { logdebug("Ambient light upper threshold reached\n"); kbd_bck_info.auto_on = 0; kbd_backlight_set(KBD_BACKLIGHT_OFF, KBD_AUTO); } } } static void kbd_auto_process(int id, uint64_t ticks) { /* Increment keyboard backlight idle timer */ kbd_bck_info.idle += KBD_TIMEOUT; if ((kbd_cfg.idle > 0) && (kbd_bck_info.idle > 1000 * kbd_cfg.idle)) kbd_backlight_inhibit_set(KBD_INHIBIT_IDLE); kbd_backlight_ambient_check(); } static int kbd_auto_init(void) { kbd_timer = evloop_add_timer(KBD_TIMEOUT, kbd_auto_process); if (kbd_timer < 0) return -1; return 0; } static void kbd_auto_cleanup(void) { if (kbd_timer > 0) evloop_remove_timer(kbd_timer); } pommed-1.39~dfsg/pommed/kbd_backlight.h0000664000175000017500000000443011571653265017547 0ustar julienjulien/* * pommed - kbd_backlight.h */ #ifndef __KBD_BACKLIGHT_H__ #define __KBD_BACKLIGHT_H__ #define KBD_BACKLIGHT_OFF 0 #define KBD_BACKLIGHT_MAX 255 /* fading duration in milliseconds */ #define KBD_BACKLIGHT_FADE_LENGTH 350 #define KBD_BACKLIGHT_FADE_STEPS 20 #define KBD_INHIBIT_USER (1 << 0) #define KBD_INHIBIT_LID (1 << 1) #define KBD_INHIBIT_CFG (1 << 2) #define KBD_INHIBIT_IDLE (1 << 3) #define KBD_MASK_AUTO (KBD_INHIBIT_LID | KBD_INHIBIT_IDLE) #define KBD_USER 0 #define KBD_AUTO 1 #define KBD_TIMEOUT 200 struct _kbd_bck_info { int level; int max; int inhibit; int inhibit_lvl; int toggle_lvl; /* backlight level for simple toggle */ int auto_on; /* automatic */ int idle; /* idle timer */ int r_sens; /* right sensor */ int l_sens; /* left sensor */ }; extern struct _kbd_bck_info kbd_bck_info; #ifdef __powerpc__ static inline int has_kbd_backlight(void) { return ((mops->type == MACHINE_POWERBOOK_51) || (mops->type == MACHINE_POWERBOOK_52) || (mops->type == MACHINE_POWERBOOK_53) || (mops->type == MACHINE_POWERBOOK_54) || (mops->type == MACHINE_POWERBOOK_55) || (mops->type == MACHINE_POWERBOOK_56) || (mops->type == MACHINE_POWERBOOK_57) || (mops->type == MACHINE_POWERBOOK_58) || (mops->type == MACHINE_POWERBOOK_59)); } #else static inline int has_kbd_backlight(void) { return ((mops->type == MACHINE_MACBOOKPRO_1) || (mops->type == MACHINE_MACBOOKPRO_2) || (mops->type == MACHINE_MACBOOKPRO_3) || (mops->type == MACHINE_MACBOOKPRO_4) || (mops->type == MACHINE_MACBOOKPRO_5) || (mops->type == MACHINE_MACBOOKPRO_6) || (mops->type == MACHINE_MACBOOKPRO_7) || (mops->type == MACHINE_MACBOOKPRO_8) || (mops->type == MACHINE_MACBOOK_5) || (mops->type == MACHINE_MACBOOKAIR_1) || (mops->type == MACHINE_MACBOOKAIR_2)); } #endif /* __powerpc__ */ void kbd_backlight_step(int dir); void kbd_backlight_init(void); void kbd_backlight_cleanup(void); void kbd_backlight_fix_config(void); /* In kbd_auto.c */ void kbd_backlight_toggle(void); void kbd_backlight_inhibit_set(int mask); void kbd_backlight_inhibit_clear(int mask); void kbd_backlight_inhibit_toggle(int mask); void kbd_backlight_ambient_check(void); #endif /* !__KBD_BACKLIGHT_H__ */ pommed-1.39~dfsg/pommed/lcd_backlight.h0000664000175000017500000000303011571653265017544 0ustar julienjulien/* * pommed - lcd_backlight.h */ #ifndef __LCD_BACKLIGHT_H__ #define __LCD_BACKLIGHT_H__ struct _lcd_bck_info { int level; int ac_lvl; int max; }; extern struct _lcd_bck_info lcd_bck_info; #define LCD_USER 0 #define LCD_AUTO 1 #define LCD_ON_AC_LEVEL 0 #define LCD_ON_BATT_LEVEL 1 #ifndef __powerpc__ /* x1600_backlight.c */ #define X1600_BACKLIGHT_OFF 0 #define X1600_BACKLIGHT_MAX 255 void x1600_backlight_step(int dir); void x1600_backlight_toggle(int lvl); int x1600_backlight_probe(void); void x1600_backlight_fix_config(void); /* gma950_backlight.c */ #define GMA950_BACKLIGHT_MIN 0x1f /* Beware, GMA950_BACKLIGHT_MAX is dynamic, see source */ void gma950_backlight_step(int dir); void gma950_backlight_toggle(int lvl); int gma950_backlight_probe(void); /* nv8600mgt_backlight.c */ #define NV8600MGT_BACKLIGHT_OFF 0 #define NV8600MGT_BACKLIGHT_MAX 15 void nv8600mgt_backlight_step(int dir); void nv8600mgt_backlight_toggle(int lvl); int nv8600mgt_backlight_probe(void); void nv8600mgt_backlight_fix_config(void); #endif /* !__powerpc__ */ /* sysfs_backlight.c */ #define SYSFS_BACKLIGHT_OFF 0 void sysfs_backlight_step(int dir); void sysfs_backlight_toggle(int lvl); #ifdef __powerpc__ void sysfs_backlight_step_kernel(int dir); void sysfs_backlight_toggle_kernel(int lvl); int aty128_sysfs_backlight_probe(void); int r9x00_sysfs_backlight_probe(void); int nvidia_sysfs_backlight_probe(void); #else int mbp_sysfs_backlight_probe(void); #endif #endif /* !__LCD_BACKLIGHT_H__ */ pommed-1.39~dfsg/pommed/mactel/0000775000175000017500000000000011571653265016072 5ustar julienjulienpommed-1.39~dfsg/pommed/mactel/acpi.c0000664000175000017500000000337311571653265017160 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include "../pommed.h" #include "../power.h" #define PROC_ACPI_AC_STATE "/proc/acpi/ac_adapter/ADP1/state" #define PROC_ACPI_AC_ONLINE "on-line\n" #define PROC_ACPI_AC_OFFLINE "off-line\n" /* Internal API - procfs ACPI */ int procfs_check_ac_state(void) { FILE *fp; char buf[128]; int ret; fp = fopen(PROC_ACPI_AC_STATE, "r"); if (fp == NULL) return AC_STATE_ERROR; ret = fread(buf, 1, 127, fp); if (ferror(fp) != 0) { logdebug("acpi: Error reading proc AC state: %s\n", strerror(errno)); return AC_STATE_ERROR; } if (feof(fp) == 0) { logdebug("acpi: Error reading proc AC state: buffer too small\n"); return AC_STATE_ERROR; } fclose(fp); buf[ret] = '\0'; if (strstr(buf, PROC_ACPI_AC_ONLINE) != NULL) return AC_STATE_ONLINE; if (strstr(buf, PROC_ACPI_AC_OFFLINE) != NULL) return AC_STATE_OFFLINE; return AC_STATE_UNKNOWN; } pommed-1.39~dfsg/pommed/mactel/ambient.c0000664000175000017500000000646211571653265017665 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2007 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../ambient.h" #define HWMON_SYSFS_BASE "/sys/class/hwmon" static char *smcpath; struct _ambient_info ambient_info; void ambient_get(int *r, int *l) { int fd; int ret; char buf[16]; char *p; if (!smcpath) goto out_error; fd = open(smcpath, O_RDONLY); if (fd < 0) goto out_error; ret = read(fd, buf, 16); close(fd); if ((ret <= 0) || (ret > 15)) goto out_error; buf[strlen(buf)] = '\0'; p = strchr(buf, ','); *p++ = '\0'; *r = atoi(p); p = buf + 1; *l = atoi(p); logdebug("Ambient light: right %d, left %d\n", *r, *l); ambient_info.right = *r; ambient_info.left = *l; return; out_error: *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; } void ambient_init(int *r, int *l) { char devpath[PATH_MAX]; char devname[9]; char *p; DIR *pdev; struct dirent *pdevent; int fd; int ret; smcpath = NULL; /* Probe for the applesmc sysfs path */ pdev = opendir(HWMON_SYSFS_BASE); if (pdev != NULL) { while ((pdevent = readdir(pdev))) { if (pdevent->d_name[0] == '.') continue; ret = snprintf(devpath, sizeof(devpath), HWMON_SYSFS_BASE "/%s/device/name", pdevent->d_name); if ((ret < 0) || (ret >= sizeof(devpath))) { logmsg(LOG_WARNING, "Failed to build hwmon probe path"); continue; } fd = open(devpath, O_RDONLY); if (fd < 0) { logmsg(LOG_ERR, "Could not open %s: %s", devpath, strerror(errno)); continue; } memset(devname, 0, sizeof(devname)); ret = read(fd, devname, sizeof(devname) - 1); close(fd); if (ret != (sizeof(devname) - 1)) continue; if (strcmp(devname, "applesmc") == 0) { p = strrchr(devpath, '/'); *p = '\0'; logmsg(LOG_INFO, "Found applesmc at %s", devpath); smcpath = realpath(devpath, NULL); if (!smcpath) { logmsg(LOG_ERR, "Could not dereference applesmc device path: %s\n", strerror(errno)); break; } logmsg(LOG_INFO, "Dereferenced applesmc to %s", smcpath); smcpath = realloc(smcpath, strlen(smcpath) + 1 + 6); if (!smcpath) break; strcat(smcpath, "/light"); break; } } closedir(pdev); } ambient_get(r, l); ambient_info.max = KBD_AMBIENT_MAX; ambient_info.left = *l; ambient_info.right = *r; } pommed-1.39~dfsg/pommed/mactel/gma950_backlight.c0000664000175000017500000002251111571653265021251 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * MacBook Backlight Control (Intel GMA950 & GMA965) * * Copyright (C) 2006-2007 Ryan Lortie * Copyright (C) 2006-2007 Julien BLACHE * + Adapted for pommed * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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. * * * The GMA950 has a backlight control register at offset 0x00061254 in its * PCI memory space (512K region): * - bits 0-15 represent the backlight value * - bits 16 indicates legacy mode is in use when set * - bits 17-31 hold the max backlight value << 1 * * Bit 16 indicates whether the backlight control should be used in legacy * mode or not. This bit is 0 on MacBooks, indicating native mode should be * used. This is the only method supported here. * * * The GMA965 is slightly different; the backlight control register is at * offset 0x00061250 in its PCI memory space (first 512K in the 1M region): * - bits 0-15 represent the backlight value * - bits 16-31 hold the max backlight value * - bit 30 indicates legacy mode is in use when set * * * For BOTH cards, the register for the backlight value is at offset 0x00061254. * * * For both cards, in the code below, max value and current value are expressed * on 15 bits; the values are shifted as appropriate when appropriate. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../conffile.h" #include "../lcd_backlight.h" #include "../dbus.h" static unsigned int GMA950_BACKLIGHT_MAX; static int fd = -1; static char *memory = NULL; static char sysfs_resource[64]; static long length = 0; #define REGISTER_OFFSET 0x00061254 #define GMA950_LEGACY_MODE (1 << 16) #define GMA950_CONTROL_REGISTER 0x00061254 #define GMA965_LEGACY_MODE (1 << 30) #define GMA965_CONTROL_REGISTER 0x00061250 static inline unsigned int readl(const volatile void *addr) { return *(volatile unsigned int*) addr; } static inline void writel(unsigned int b, volatile void *addr) { *(volatile unsigned int*) addr = b; } #define INREG(addr) readl(memory+addr) #define OUTREG(addr,val) writel(val, memory+addr) static unsigned int gma950_backlight_get(void) { return (INREG(REGISTER_OFFSET) >> 1) & 0x7fff; } static unsigned int gma950_backlight_get_max(void) { return (INREG(REGISTER_OFFSET) >> 17); } static void gma950_backlight_set(unsigned int value) { OUTREG(REGISTER_OFFSET, (GMA950_BACKLIGHT_MAX << 17) | (value << 1)); } static int gma950_backlight_map(void) { if (length == 0) { logdebug("No probing done !\n"); return -1; } fd = open(sysfs_resource, O_RDWR); if (fd < 0) { logmsg(LOG_WARNING, "Cannot open %s: %s", sysfs_resource, strerror(errno)); return -1; } memory = mmap(NULL, length, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (memory == MAP_FAILED) { logmsg(LOG_ERR, "mmap failed: %s", strerror(errno)); close(fd); fd = -1; return -1; } return 0; } static void gma950_backlight_unmap(void) { munmap(memory, length); memory = NULL; close(fd); fd = -1; } void gma950_backlight_step(int dir) { int ret; unsigned int val; unsigned int newval = 0; ret = gma950_backlight_map(); if (ret < 0) return; val = gma950_backlight_get(); if (dir == STEP_UP) { newval = val + lcd_gma950_cfg.step; if (newval < GMA950_BACKLIGHT_MIN) newval = GMA950_BACKLIGHT_MIN; if (newval > GMA950_BACKLIGHT_MAX) newval = GMA950_BACKLIGHT_MAX; logdebug("LCD stepping +%d -> %d\n", lcd_gma950_cfg.step, newval); } else if (dir == STEP_DOWN) { /* val is unsigned */ if (val > lcd_gma950_cfg.step) newval = val - lcd_gma950_cfg.step; if (newval < GMA950_BACKLIGHT_MIN) newval = 0x00; logdebug("LCD stepping -%d -> %d\n", lcd_gma950_cfg.step, newval); } else return; gma950_backlight_set(newval); gma950_backlight_unmap(); mbpdbus_send_lcd_backlight(newval, val, LCD_USER); lcd_bck_info.level = newval; } void gma950_backlight_toggle(int lvl) { int val; int ret; if (lcd_gma950_cfg.on_batt == 0) return; ret = gma950_backlight_map(); if (ret < 0) return; val = gma950_backlight_get(); if (val != lcd_bck_info.level) { mbpdbus_send_lcd_backlight(val, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = val; } if (lcd_bck_info.level == 0) { gma950_backlight_unmap(); return; } switch (lvl) { case LCD_ON_AC_LEVEL: if (lcd_bck_info.level >= lcd_bck_info.ac_lvl) break; logdebug("LCD switching to AC level\n"); gma950_backlight_set(lcd_bck_info.ac_lvl); mbpdbus_send_lcd_backlight(lcd_bck_info.ac_lvl, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_bck_info.ac_lvl; break; case LCD_ON_BATT_LEVEL: if (lcd_bck_info.level <= lcd_gma950_cfg.on_batt) break; logdebug("LCD switching to battery level\n"); lcd_bck_info.ac_lvl = lcd_bck_info.level; gma950_backlight_set(lcd_gma950_cfg.on_batt); mbpdbus_send_lcd_backlight(lcd_gma950_cfg.on_batt, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_gma950_cfg.on_batt; break; } gma950_backlight_unmap(); } /* * We are hardware-dependent for GMA950_BACKLIGHT_MAX, * so here _fix_config() is static and called at probe time. */ static void gma950_backlight_fix_config(void) { if (lcd_gma950_cfg.init < 0) lcd_gma950_cfg.init = -1; if (lcd_gma950_cfg.init > GMA950_BACKLIGHT_MAX) lcd_gma950_cfg.init = GMA950_BACKLIGHT_MAX; if ((lcd_gma950_cfg.init < GMA950_BACKLIGHT_MIN) && (lcd_gma950_cfg.init > 0)) lcd_gma950_cfg.init = 0x00; if (lcd_gma950_cfg.step < 1) lcd_gma950_cfg.step = 1; if (lcd_gma950_cfg.step > 0x20) lcd_gma950_cfg.step = 0x20; if ((lcd_gma950_cfg.on_batt > GMA950_BACKLIGHT_MAX) || (lcd_gma950_cfg.on_batt < GMA950_BACKLIGHT_MIN)) lcd_gma950_cfg.on_batt = 0; } #define PCI_ID_VENDOR_INTEL 0x8086 #define PCI_ID_PRODUCT_GMA950 0x27A2 #define PCI_ID_PRODUCT_GMA965 0x2A02 /* Look for an Intel GMA950 or GMA965 */ int gma950_backlight_probe(void) { struct pci_access *pacc; struct pci_dev *dev; struct stat stbuf; int card; int ret; pacc = pci_alloc(); if (pacc == NULL) { logmsg(LOG_ERR, "Could not allocate PCI structs"); return -1; } pci_init(pacc); pci_scan_bus(pacc); card = 0; /* Iterate over all devices */ for(dev = pacc->devices; dev; dev = dev->next) { pci_fill_info(dev, PCI_FILL_IDENT); /* GMA950 or GMA965 */ if ((dev->vendor_id == PCI_ID_VENDOR_INTEL) && ((dev->device_id == PCI_ID_PRODUCT_GMA950) || (dev->device_id == PCI_ID_PRODUCT_GMA965))) { card = dev->device_id; ret = snprintf(sysfs_resource, sizeof(sysfs_resource), "/sys/bus/pci/devices/%04x:%02x:%02x.%1x/resource0", dev->domain, dev->bus, dev->dev, dev->func); break; } } pci_cleanup(pacc); if (!dev) { logdebug("Failed to detect Intel GMA950 or GMA965, aborting...\n"); return -1; } /* Check snprintf() return value */ if (ret >= sizeof(sysfs_resource)) { logmsg(LOG_ERR, "Could not build sysfs PCI resource path"); return -1; } ret = stat(sysfs_resource, &stbuf); if (ret < 0) { logmsg(LOG_ERR, "Could not determine PCI resource length: %s", strerror(errno)); return -1; } length = stbuf.st_size; logdebug("GMA950/GMA965 PCI resource: [%s], length %ldK\n", sysfs_resource, (length / 1024)); ret = gma950_backlight_map(); if (ret < 0) { logmsg(LOG_ERR, "Could not map GMA950/GMA965 memory"); return -1; } if (card == PCI_ID_PRODUCT_GMA950) { if (INREG(GMA950_CONTROL_REGISTER) & GMA950_LEGACY_MODE) { logdebug("GMA950 is in legacy backlight control mode, unsupported\n"); gma950_backlight_unmap(); return -1; } } else if (card == PCI_ID_PRODUCT_GMA965) { if (INREG(GMA965_CONTROL_REGISTER) & GMA965_LEGACY_MODE) { logdebug("GMA965 is in legacy backlight control mode, unsupported\n"); gma950_backlight_unmap(); return -1; } } /* Get the maximum backlight value */ GMA950_BACKLIGHT_MAX = gma950_backlight_get_max(); logdebug("Max LCD backlight value is 0x%x\n", GMA950_BACKLIGHT_MAX); /* Now, check the config and fix it if needed */ gma950_backlight_fix_config(); /* Set the initial backlight level */ if (lcd_gma950_cfg.init > -1) gma950_backlight_set(lcd_gma950_cfg.init); lcd_bck_info.max = GMA950_BACKLIGHT_MAX; lcd_bck_info.level = gma950_backlight_get(); lcd_bck_info.ac_lvl = lcd_bck_info.level; gma950_backlight_unmap(); return 0; } pommed-1.39~dfsg/pommed/mactel/kbd_backlight.c0000664000175000017500000001256211571653265021014 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../evloop.h" #include "../conffile.h" #include "../kbd_backlight.h" #include "../ambient.h" #include "../dbus.h" struct _kbd_bck_info kbd_bck_info; static int kbd_backlight_open(int flags) { char *kbdbck_node[] = { "/sys/class/leds/smc::kbd_backlight/brightness", /* 2.6.25 & up */ "/sys/class/leds/smc:kbd_backlight/brightness" }; int fd; int i; for (i = 0; i < sizeof(kbdbck_node) / sizeof(*kbdbck_node); i++) { logdebug("Trying %s\n", kbdbck_node[i]); fd = open(kbdbck_node[i], flags); if (fd >= 0) return fd; if (errno == ENOENT) continue; logmsg(LOG_WARNING, "Could not open %s: %s", kbdbck_node[i], strerror(errno)); return -1; } return -1; } static int kbd_backlight_get(void) { int fd; int ret; char buf[8]; fd = kbd_backlight_open(O_RDONLY); if (fd < 0) return -1; memset(buf, 0, 8); ret = read(fd, buf, 8); close(fd); if ((ret < 1) || (ret > 7)) return -1; ret = atoi(buf); logdebug("KBD backlight value is %d\n", ret); if ((ret < KBD_BACKLIGHT_OFF) || (ret > KBD_BACKLIGHT_MAX)) ret = -1; return ret; } static void kbd_backlight_set(int val, int who) { int curval; int i; float fadeval; float step; struct timespec fade_step; int fd; FILE *fp; if (kbd_bck_info.inhibit & ~KBD_INHIBIT_CFG) return; curval = kbd_backlight_get(); if (val == curval) return; if ((val < KBD_BACKLIGHT_OFF) || (val > KBD_BACKLIGHT_MAX)) return; if (who == KBD_AUTO) { fade_step.tv_sec = 0; fade_step.tv_nsec = (KBD_BACKLIGHT_FADE_LENGTH / KBD_BACKLIGHT_FADE_STEPS) * 1000000; fadeval = (float)curval; step = (float)(val - curval) / (float)KBD_BACKLIGHT_FADE_STEPS; for (i = 0; i < KBD_BACKLIGHT_FADE_STEPS; i++) { fadeval += step; fd = kbd_backlight_open(O_WRONLY); if (fd < 0) continue; fp = fdopen(fd, "a"); if (fp == NULL) { logmsg(LOG_WARNING, "Could not fdopen backlight fd: %s", strerror(errno)); close(fd); continue; } fprintf(fp, "%d", (int)fadeval); fclose(fp); logdebug("KBD backlight value faded to %d\n", (int)fadeval); nanosleep(&fade_step, NULL); } } fd = kbd_backlight_open(O_WRONLY); if (fd < 0) return; fp = fdopen(fd, "a"); if (fp == NULL) { logmsg(LOG_WARNING, "Could not fdopen backlight fd %d: %s", fd, strerror(errno)); close(fd); return; } fprintf(fp, "%d", val); fclose(fp); logdebug("KBD backlight value set to %d\n", val); mbpdbus_send_kbd_backlight(val, curval, who); kbd_bck_info.level = val; } void kbd_backlight_step(int dir) { int val; int newval; if (kbd_bck_info.inhibit & ~KBD_INHIBIT_CFG) return; val = kbd_backlight_get(); if (val < 0) return; if (dir == STEP_UP) { newval = val + kbd_cfg.step; if (newval > KBD_BACKLIGHT_MAX) newval = KBD_BACKLIGHT_MAX; logdebug("KBD stepping +%d -> %d\n", kbd_cfg.step, newval); } else if (dir == STEP_DOWN) { newval = val - kbd_cfg.step; if (newval < KBD_BACKLIGHT_OFF) newval = KBD_BACKLIGHT_OFF; logdebug("KBD stepping -%d -> %d\n", kbd_cfg.step, newval); } else return; kbd_backlight_set(newval, KBD_USER); } /* Include automatic backlight routines */ #include "../kbd_auto.c" void kbd_backlight_init(void) { if (kbd_cfg.auto_on) kbd_bck_info.inhibit = 0; else kbd_bck_info.inhibit = KBD_INHIBIT_CFG; kbd_bck_info.toggle_lvl = kbd_cfg.auto_lvl; kbd_bck_info.inhibit_lvl = 0; kbd_bck_info.auto_on = 0; if (!has_kbd_backlight()) { kbd_bck_info.r_sens = 0; kbd_bck_info.l_sens = 0; kbd_bck_info.level = 0; ambient_info.left = 0; ambient_info.right = 0; ambient_info.max = 0; return; } kbd_bck_info.level = kbd_backlight_get(); if (kbd_bck_info.level < 0) kbd_bck_info.level = 0; kbd_bck_info.max = KBD_BACKLIGHT_MAX; ambient_init(&kbd_bck_info.r_sens, &kbd_bck_info.l_sens); kbd_auto_init(); } void kbd_backlight_cleanup(void) { if (has_kbd_backlight()) kbd_auto_cleanup(); } void kbd_backlight_fix_config(void) { if (kbd_cfg.auto_lvl > KBD_BACKLIGHT_MAX) kbd_cfg.auto_lvl = KBD_BACKLIGHT_MAX; if (kbd_cfg.step < 1) kbd_cfg.step = 1; if (kbd_cfg.step > (KBD_BACKLIGHT_MAX / 2)) kbd_cfg.step = KBD_BACKLIGHT_MAX / 2; } pommed-1.39~dfsg/pommed/mactel/nv8600mgt_backlight.c0000664000175000017500000001310011571653265021712 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Apple Macbook Pro LCD backlight control, nVidia 8600M GT * * Copyright (C) 2006 Nicolas Boichat * Copyright (C) 2006 Felipe Alfaro Solana * Copyright (C) 2007-2008 Julien BLACHE * + Adapted for pommed * * 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. * * * This driver triggers SMIs which cause the firmware to change the * backlight brightness. This is icky in many ways, but it's impractical to * get at the firmware code in order to figure out what it's actually doing. */ #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../conffile.h" #include "../lcd_backlight.h" #include "../dbus.h" struct _lcd_bck_info lcd_bck_info; static int nv8600mgt_inited = 0; static unsigned int bl_port; static unsigned char nv8600mgt_backlight_get() { unsigned char value; if (nv8600mgt_inited == 0) return 0; outb(0x03, bl_port + 1); outb(0xbf, bl_port); value = inb(bl_port + 1) >> 4; return value; } static void nv8600mgt_backlight_set(unsigned char value) { if (nv8600mgt_inited == 0) return; outb(0x04 | (value << 4), bl_port + 1); outb(0xbf, bl_port); } void nv8600mgt_backlight_step(int dir) { int val; int newval; if (nv8600mgt_inited == 0) return; val = nv8600mgt_backlight_get(); if (dir == STEP_UP) { newval = val + lcd_nv8600mgt_cfg.step; if (newval > NV8600MGT_BACKLIGHT_MAX) newval = NV8600MGT_BACKLIGHT_MAX; logdebug("LCD stepping +%d -> %d\n", lcd_nv8600mgt_cfg.step, newval); } else if (dir == STEP_DOWN) { newval = val - lcd_nv8600mgt_cfg.step; if (newval < NV8600MGT_BACKLIGHT_OFF) newval = NV8600MGT_BACKLIGHT_OFF; logdebug("LCD stepping -%d -> %d\n", lcd_nv8600mgt_cfg.step, newval); } else return; nv8600mgt_backlight_set((unsigned char)newval); mbpdbus_send_lcd_backlight(newval, val, LCD_USER); lcd_bck_info.level = newval; } void nv8600mgt_backlight_toggle(int lvl) { int val; if (lcd_nv8600mgt_cfg.on_batt == 0) return; if (nv8600mgt_inited == 0) return; val = nv8600mgt_backlight_get(); if (val != lcd_bck_info.level) { mbpdbus_send_lcd_backlight(val, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = val; } if (lcd_bck_info.level == 0) return; switch (lvl) { case LCD_ON_AC_LEVEL: if (lcd_bck_info.level >= lcd_bck_info.ac_lvl) break; logdebug("LCD switching to AC level\n"); nv8600mgt_backlight_set(lcd_bck_info.ac_lvl); mbpdbus_send_lcd_backlight(lcd_bck_info.ac_lvl, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_bck_info.ac_lvl; break; case LCD_ON_BATT_LEVEL: if (lcd_bck_info.level <= lcd_nv8600mgt_cfg.on_batt) break; logdebug("LCD switching to battery level\n"); lcd_bck_info.ac_lvl = lcd_bck_info.level; nv8600mgt_backlight_set(lcd_nv8600mgt_cfg.on_batt); mbpdbus_send_lcd_backlight(lcd_nv8600mgt_cfg.on_batt, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_nv8600mgt_cfg.on_batt; break; } } int nv8600mgt_backlight_probe(void) { int ret; /* Determine backlight I/O port */ switch (mops->type) { case MACHINE_MACBOOKPRO_3: case MACHINE_MACBOOKPRO_4: bl_port = 0xb2; /* 0xb2 - 0xb3 */ break; case MACHINE_MACBOOKPRO_5: case MACHINE_MACBOOKPRO_6: case MACHINE_MACBOOK_5: case MACHINE_MACBOOK_6: case MACHINE_MACBOOKAIR_2: case MACHINE_MACBOOKAIR_3: bl_port = 0x52e; /* 0x52e - 0x52f */ break; default: logmsg(LOG_ERR, "nv8600mgt LCD backlight support not supported on this hardware"); return -1; } lcd_bck_info.max = NV8600MGT_BACKLIGHT_MAX; ret = iopl(3); if (ret < 0) { logmsg(LOG_ERR, "iopl() failed: %s", strerror(errno)); lcd_bck_info.level = 0; return -1; } nv8600mgt_inited = 1; /* * Set the initial backlight level * The value has been sanity checked already */ if (lcd_nv8600mgt_cfg.init > -1) { nv8600mgt_backlight_set((unsigned char)lcd_nv8600mgt_cfg.init); } lcd_bck_info.level = nv8600mgt_backlight_get(); lcd_bck_info.ac_lvl = lcd_bck_info.level; return 0; } void nv8600mgt_backlight_fix_config(void) { if (lcd_nv8600mgt_cfg.init < 0) lcd_nv8600mgt_cfg.init = -1; if (lcd_nv8600mgt_cfg.init > NV8600MGT_BACKLIGHT_MAX) lcd_nv8600mgt_cfg.init = NV8600MGT_BACKLIGHT_MAX; if (lcd_nv8600mgt_cfg.step < 1) lcd_nv8600mgt_cfg.step = 1; if (lcd_nv8600mgt_cfg.step > (NV8600MGT_BACKLIGHT_MAX / 4)) lcd_nv8600mgt_cfg.step = NV8600MGT_BACKLIGHT_MAX / 4; if ((lcd_nv8600mgt_cfg.on_batt > NV8600MGT_BACKLIGHT_MAX) || (lcd_nv8600mgt_cfg.on_batt < NV8600MGT_BACKLIGHT_OFF)) lcd_nv8600mgt_cfg.on_batt = 0; } pommed-1.39~dfsg/pommed/mactel/x1600_backlight.c0000664000175000017500000001572311571653265021034 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Apple Macbook Pro LCD backlight control * * Copyright (C) 2006 Nicolas Boichat * Copyright (C) 2006-2007 Julien BLACHE * + Adapted for pommed * * 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. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../conffile.h" #include "../lcd_backlight.h" #include "../dbus.h" struct _lcd_bck_info lcd_bck_info; static int fd = -1; static char *memory = NULL; static char sysfs_resource[64]; static long length = 0; static inline unsigned int readl(const volatile void *addr) { return *(volatile unsigned int*) addr; } static inline void writel(unsigned int b, volatile void *addr) { *(volatile unsigned int*) addr = b; } #define INREG(addr) readl(memory+addr) #define OUTREG(addr,val) writel(val, memory+addr) static unsigned char x1600_backlight_get() { return INREG(0x7af8) >> 8; } static void x1600_backlight_set(unsigned char value) { OUTREG(0x7af8, 0x00000001 | ((unsigned int)value << 8)); } static int x1600_backlight_map(void) { unsigned int state; if (length == 0) { logdebug("No probing done!\n"); return -1; } fd = open(sysfs_resource, O_RDWR); if (fd < 0) { logmsg(LOG_WARNING, "Cannot open %s: %s", sysfs_resource, strerror(errno)); close(fd); fd = -1; return -1; } memory = mmap(NULL, length, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (memory == MAP_FAILED) { logmsg(LOG_ERR, "mmap failed: %s", strerror(errno)); return -1; } /* Is it really necessary ? */ OUTREG(0x4dc, 0x00000005); state = INREG(0x7ae4); OUTREG(0x7ae4, state); return 0; } static void x1600_backlight_unmap(void) { munmap(memory, length); memory = NULL; close(fd); fd = -1; } void x1600_backlight_step(int dir) { int ret; int val; int newval; ret = x1600_backlight_map(); if (ret < 0) return; val = x1600_backlight_get(); if (dir == STEP_UP) { newval = val + lcd_x1600_cfg.step; if (newval > X1600_BACKLIGHT_MAX) newval = X1600_BACKLIGHT_MAX; logdebug("LCD stepping +%d -> %d\n", lcd_x1600_cfg.step, newval); } else if (dir == STEP_DOWN) { newval = val - lcd_x1600_cfg.step; if (newval < X1600_BACKLIGHT_OFF) newval = X1600_BACKLIGHT_OFF; logdebug("LCD stepping -%d -> %d\n", lcd_x1600_cfg.step, newval); } else return; x1600_backlight_set((unsigned char)newval); x1600_backlight_unmap(); mbpdbus_send_lcd_backlight(newval, val, LCD_USER); lcd_bck_info.level = newval; } void x1600_backlight_toggle(int lvl) { int val; int ret; if (lcd_x1600_cfg.on_batt == 0) return; ret = x1600_backlight_map(); if (ret < 0) return; val = x1600_backlight_get(); if (val != lcd_bck_info.level) { mbpdbus_send_lcd_backlight(val, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = val; } if (lcd_bck_info.level == 0) { x1600_backlight_unmap(); return; } switch (lvl) { case LCD_ON_AC_LEVEL: if (lcd_bck_info.level >= lcd_bck_info.ac_lvl) break; logdebug("LCD switching to AC level\n"); x1600_backlight_set(lcd_bck_info.ac_lvl); mbpdbus_send_lcd_backlight(lcd_bck_info.ac_lvl, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_bck_info.ac_lvl; break; case LCD_ON_BATT_LEVEL: if (lcd_bck_info.level <= lcd_x1600_cfg.on_batt) break; logdebug("LCD switching to battery level\n"); lcd_bck_info.ac_lvl = lcd_bck_info.level; x1600_backlight_set(lcd_x1600_cfg.on_batt); mbpdbus_send_lcd_backlight(lcd_x1600_cfg.on_batt, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_x1600_cfg.on_batt; break; } x1600_backlight_unmap(); } #define PCI_ID_VENDOR_ATI 0x1002 #define PCI_ID_PRODUCT_X1600 0x71c5 /* Look for an ATI Radeon Mobility X1600 */ int x1600_backlight_probe(void) { struct pci_access *pacc; struct pci_dev *dev; struct stat stbuf; int ret; pacc = pci_alloc(); if (pacc == NULL) { logmsg(LOG_ERR, "Could not allocate PCI structs"); return -1; } pci_init(pacc); pci_scan_bus(pacc); /* Iterate over all devices */ for(dev = pacc->devices; dev; dev = dev->next) { pci_fill_info(dev, PCI_FILL_IDENT); /* ATI X1600 */ if ((dev->vendor_id == PCI_ID_VENDOR_ATI) && (dev->device_id == PCI_ID_PRODUCT_X1600)) { ret = snprintf(sysfs_resource, sizeof(sysfs_resource), "/sys/bus/pci/devices/%04x:%02x:%02x.%1x/resource2", dev->domain, dev->bus, dev->dev, dev->func); break; } } pci_cleanup(pacc); if (!dev) { logdebug("Failed to detect ATI X1600, aborting...\n"); return -1; } /* Check snprintf() return value */ if (ret >= sizeof(sysfs_resource)) { logmsg(LOG_ERR, "Could not build sysfs PCI resource path"); return -1; } ret = stat(sysfs_resource, &stbuf); if (ret < 0) { logmsg(LOG_ERR, "Could not determine PCI resource length: %s", strerror(errno)); return -1; } length = stbuf.st_size; logdebug("ATI X1600 PCI resource: [%s], length %ldK\n", sysfs_resource, (length / 1024)); lcd_bck_info.max = X1600_BACKLIGHT_MAX; ret = x1600_backlight_map(); if (ret < 0) { lcd_bck_info.level = 0; return 0; } /* * Set the initial backlight level * The value has been sanity checked already */ if (lcd_x1600_cfg.init > -1) { x1600_backlight_set((unsigned char)lcd_x1600_cfg.init); } lcd_bck_info.level = x1600_backlight_get(); lcd_bck_info.ac_lvl = lcd_bck_info.level; x1600_backlight_unmap(); return 0; } void x1600_backlight_fix_config(void) { if (lcd_x1600_cfg.init < 0) lcd_x1600_cfg.init = -1; if (lcd_x1600_cfg.init > X1600_BACKLIGHT_MAX) lcd_x1600_cfg.init = X1600_BACKLIGHT_MAX; if (lcd_x1600_cfg.step < 1) lcd_x1600_cfg.step = 1; if (lcd_x1600_cfg.step > (X1600_BACKLIGHT_MAX / 2)) lcd_x1600_cfg.step = X1600_BACKLIGHT_MAX / 2; if ((lcd_x1600_cfg.on_batt > X1600_BACKLIGHT_MAX) || (lcd_x1600_cfg.on_batt < X1600_BACKLIGHT_OFF)) lcd_x1600_cfg.on_batt = 0; } pommed-1.39~dfsg/pommed/pmac/0000775000175000017500000000000011571653265015545 5ustar julienjulienpommed-1.39~dfsg/pommed/pmac/ambient.c0000664000175000017500000000767411571653265017346 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2007 Julien BLACHE * Copyright (C) 2006 Yves-Alexis Perez * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../ambient.h" #include "../dbus.h" struct _ambient_info ambient_info; #define LMU_AMBIENT_MAX_RAW 1600 #define PMU_AMBIENT_MAX_RAW 2048 static void lmu_ambient_get(int *r, int *l) { int fd; int ret; char buf[4]; fd = open(lmu_info.i2cdev, O_RDONLY); if (fd < 0) { *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; logmsg(LOG_ERR, "Could not open i2c device %s: %s", lmu_info.i2cdev, strerror(errno)); return; } ret = ioctl(fd, I2C_SLAVE, lmu_info.lmuaddr); if (ret < 0) { close(fd); *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; logmsg(LOG_ERR, "ioctl failed on %s: %s", lmu_info.i2cdev, strerror(errno)); return; } ret = read(fd, buf, 4); if (ret != 4) { close(fd); *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; return; } close(fd); /* found in pbbuttonsd.conf */ *r = (int) (((buf[0] << 8) | buf[1]) * KBD_AMBIENT_MAX) / LMU_AMBIENT_MAX_RAW; *l = (int) (((buf[2] << 8) | buf[3]) * KBD_AMBIENT_MAX) / LMU_AMBIENT_MAX_RAW; logdebug("Ambient light: right %d, left %d\n", *r, *l); ambient_info.right = *r; ambient_info.left = *l; } static void pmu_ambient_get(int *r, int *l) { int fd; int ret; char buf[ADB_BUFFER_SIZE]; fd = open(ADB_DEVICE, O_RDWR); if (fd < 0) { *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; logmsg(LOG_ERR, "Could not open ADB device %s: %s", ADB_DEVICE, strerror(errno)); return; } buf[0] = PMU_PACKET; buf[1] = 0x4f; /* PMU command */ buf[2] = 1; ret = write(fd, buf, 3); if (ret != 3) { *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; logmsg(LOG_ERR, "Could not send PMU command: %s", strerror(errno)); close(fd); return; } ret = read(fd, buf, ADB_BUFFER_SIZE); if (ret != 5) { *r = -1; *l = -1; ambient_info.right = 0; ambient_info.left = 0; logmsg(LOG_ERR, "Could not read PMU reply: %s", strerror(errno)); close(fd); return; } close(fd); /* Taken from pbbuttonsd */ *l = (int) (((buf[2] << 8) | buf[1]) * KBD_AMBIENT_MAX) / PMU_AMBIENT_MAX_RAW; *r = (int) (((buf[4] << 8) | buf[3]) * KBD_AMBIENT_MAX) / PMU_AMBIENT_MAX_RAW; logdebug("Ambient light: right %d, left %d\n", *r, *l); ambient_info.right = *r; ambient_info.left = *l; } void ambient_get(int *r, int *l) { if ((mops->type == MACHINE_POWERBOOK_58) || (mops->type == MACHINE_POWERBOOK_59)) { pmu_ambient_get(r, l); } else { lmu_ambient_get(r, l); } } void ambient_init(int *r, int *l) { ambient_get(r, l); ambient_info.max = KBD_AMBIENT_MAX; ambient_info.left = *l; ambient_info.right = *r; } pommed-1.39~dfsg/pommed/pmac/kbd_backlight.c0000664000175000017500000002425711571653265020473 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * Copyright (C) 2006 Yves-Alexis Perez * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../pommed.h" #include "../evloop.h" #include "../conffile.h" #include "../kbd_backlight.h" #include "../ambient.h" #include "../dbus.h" #define SYSFS_I2C_BASE "/sys/class/i2c-dev" #define I2C_ADAPTER_NAME "uni-n 0" struct _lmu_info lmu_info; struct _kbd_bck_info kbd_bck_info; static int kbd_backlight_get(void) { return kbd_bck_info.level; } /* Helper for LMU-controlled keyboards */ static void lmu_write_kbd_value(int fd, unsigned char val) { unsigned char buf[3]; buf[0] = 0x01; /* i2c register */ /* The format appears to be: (taken from pbbuttonsd) * byte 1 byte 2 * |<---->| |<---->| * xxxx7654 3210xxxx * |<----->| * ^-- brightness */ buf[1] = val >> 4; buf[2] = val << 4; if (write (fd, buf, 3) < 0) logmsg(LOG_ERR, "Could not set LMU kbd brightness: %s", strerror(errno)); } static void kbd_lmu_backlight_set(int val, int who) { int curval; int i; float fadeval; float step; struct timespec fade_step; int fd; int ret; if (kbd_bck_info.inhibit & ~KBD_INHIBIT_CFG) return; if (lmu_info.lmuaddr == 0) return; curval = kbd_backlight_get(); if (val == curval) return; if ((val < KBD_BACKLIGHT_OFF) || (val > KBD_BACKLIGHT_MAX)) return; fd = open(lmu_info.i2cdev, O_RDWR); if (fd < 0) { logmsg(LOG_ERR, "Could not open %s: %s", lmu_info.i2cdev, strerror(errno)); return; } ret = ioctl(fd, I2C_SLAVE, lmu_info.lmuaddr); if (ret < 0) { logmsg(LOG_ERR, "Could not ioctl the i2c bus: %s", strerror(errno)); close(fd); return; } if (who == KBD_AUTO) { fade_step.tv_sec = 0; fade_step.tv_nsec = (KBD_BACKLIGHT_FADE_LENGTH / KBD_BACKLIGHT_FADE_STEPS) * 1000000; fadeval = (float)curval; step = (float)(val - curval) / (float)KBD_BACKLIGHT_FADE_STEPS; for (i = 0; i < KBD_BACKLIGHT_FADE_STEPS; i++) { fadeval += step; lmu_write_kbd_value(fd, (unsigned char)fadeval); logdebug("KBD backlight value faded to %d\n", (int)fadeval); nanosleep(&fade_step, NULL); } } lmu_write_kbd_value(fd, val); close(fd); mbpdbus_send_kbd_backlight(val, kbd_bck_info.level, who); kbd_bck_info.level = val; } /* Helper for ADB keyboards */ static void adb_write_kbd_value(int fd, unsigned char val) { int ret; unsigned char buf[ADB_BUFFER_SIZE]; buf[0] = PMU_PACKET; buf[1] = 0x4f; /* PMU command */ buf[2] = 0; buf[3] = 0; buf[4] = val; ret = write(fd, buf, 5); if (ret != 5) { logmsg(LOG_ERR, "Could not set PMU kbd brightness: %s", strerror(errno)); } else { ret = read(fd, buf, ADB_BUFFER_SIZE); if (ret < 0) logmsg(LOG_ERR, "Could not read PMU reply: %s", strerror(errno)); } } static void kbd_pmu_backlight_set(int val, int who) { int curval; int i; float fadeval; float step; struct timespec fade_step; int fd; if (kbd_bck_info.inhibit & ~KBD_INHIBIT_CFG) return; curval = kbd_backlight_get(); if (val == curval) return; if ((val < KBD_BACKLIGHT_OFF) || (val > KBD_BACKLIGHT_MAX)) return; fd = open(ADB_DEVICE, O_RDWR); if (fd < 0) { logmsg(LOG_ERR, "Could not open %s: %s", ADB_DEVICE, strerror(errno)); return; } if (who == KBD_AUTO) { fade_step.tv_sec = 0; fade_step.tv_nsec = (KBD_BACKLIGHT_FADE_LENGTH / KBD_BACKLIGHT_FADE_STEPS) * 1000000; fadeval = (float)curval; step = (float)(val - curval) / (float)KBD_BACKLIGHT_FADE_STEPS; for (i = 0; i < KBD_BACKLIGHT_FADE_STEPS; i++) { fadeval += step; adb_write_kbd_value(fd, (unsigned char)fadeval); logdebug("KBD backlight value faded to %d\n", (int)fadeval); nanosleep(&fade_step, NULL); } } adb_write_kbd_value(fd, val); close(fd); mbpdbus_send_kbd_backlight(val, kbd_bck_info.level, who); kbd_bck_info.level = val; } static void kbd_backlight_set(int val, int who) { if ((mops->type == MACHINE_POWERBOOK_58) || (mops->type == MACHINE_POWERBOOK_59)) { kbd_pmu_backlight_set(val, who); } else { kbd_lmu_backlight_set(val, who); } } void kbd_backlight_step(int dir) { int val; int newval; if (kbd_bck_info.inhibit & ~KBD_INHIBIT_CFG) return; val = kbd_backlight_get(); if (val < 0) return; if (dir == STEP_UP) { newval = val + kbd_cfg.step; if (newval > KBD_BACKLIGHT_MAX) newval = KBD_BACKLIGHT_MAX; logdebug("KBD stepping +%d -> %d\n", kbd_cfg.step, newval); } else if (dir == STEP_DOWN) { newval = val - kbd_cfg.step; if (newval < KBD_BACKLIGHT_OFF) newval = KBD_BACKLIGHT_OFF; logdebug("KBD stepping -%d -> %d\n", kbd_cfg.step, newval); } else return; kbd_backlight_set(newval, KBD_USER); } /* Include automatic backlight routines */ #include "../kbd_auto.c" static int kbd_probe_lmu(void); void kbd_backlight_init(void) { int ret; if (kbd_cfg.auto_on) kbd_bck_info.inhibit = 0; else kbd_bck_info.inhibit = KBD_INHIBIT_CFG; kbd_bck_info.toggle_lvl = kbd_cfg.auto_lvl; kbd_bck_info.inhibit_lvl = 0; kbd_bck_info.auto_on = 0; if (!has_kbd_backlight() || (mops->type == MACHINE_POWERBOOK_58) || (mops->type == MACHINE_POWERBOOK_59)) { /* Nothing to probe for the PMU05 machines */ ret = 0; } else ret = kbd_probe_lmu(); if (!has_kbd_backlight() || (ret < 0)) { lmu_info.lmuaddr = 0; kbd_bck_info.r_sens = 0; kbd_bck_info.l_sens = 0; kbd_bck_info.level = 0; ambient_info.left = 0; ambient_info.right = 0; ambient_info.max = 0; return; } kbd_bck_info.level = kbd_backlight_get(); if (kbd_bck_info.level < 0) kbd_bck_info.level = 0; kbd_bck_info.max = KBD_BACKLIGHT_MAX; ambient_init(&kbd_bck_info.r_sens, &kbd_bck_info.l_sens); kbd_auto_init(); } void kbd_backlight_cleanup(void) { if (has_kbd_backlight()) kbd_auto_cleanup(); } void kbd_backlight_fix_config(void) { if (kbd_cfg.auto_lvl > KBD_BACKLIGHT_MAX) kbd_cfg.auto_lvl = KBD_BACKLIGHT_MAX; if (kbd_cfg.step < 1) kbd_cfg.step = 1; if (kbd_cfg.step > (KBD_BACKLIGHT_MAX / 2)) kbd_cfg.step = KBD_BACKLIGHT_MAX / 2; } static int kbd_get_i2cdev(void) { char buf[PATH_MAX]; int i2c_bus; int ret; FILE *fp; /* All the 256 minors (major 89) are reserved for i2c adapters */ for (i2c_bus = 0; i2c_bus < 256; i2c_bus++) { ret = snprintf(buf, PATH_MAX - 1, "%s/i2c-%d/name", SYSFS_I2C_BASE, i2c_bus); if ((ret < 0) || (ret >= (PATH_MAX - 1))) { logmsg(LOG_WARNING, "Error: i2c device probe: device path too long"); i2c_bus = 256; break; } fp = fopen(buf, "r"); if (fp == NULL) { if (errno != ENOENT) { logmsg(LOG_ERR, "Error: i2c device probe: cannot open %s: %s", buf, strerror(errno)); continue; } else { logmsg(LOG_ERR, "Error: i2c device probe: i2c device not found, is i2c-dev loaded?"); i2c_bus = 256; break; } } ret = fread(buf, 1, PATH_MAX - 1, fp); fclose(fp); if (ret < 1) continue; buf[ret - 1] = '\0'; logdebug("Found i2c adapter [%s]\n", buf); if (ret < strlen(I2C_ADAPTER_NAME)) continue; if (strncmp(buf, I2C_ADAPTER_NAME, strlen(I2C_ADAPTER_NAME)) == 0) { logmsg(LOG_INFO, "Found %s i2c adapter at i2c-%d", I2C_ADAPTER_NAME, i2c_bus); break; } } if (i2c_bus > 255) return -1; ret = snprintf(lmu_info.i2cdev, sizeof(lmu_info.i2cdev) - 1, "/dev/i2c-%d", i2c_bus); if ((ret < 0) || (ret >= (sizeof(lmu_info.i2cdev) - 1))) { logmsg(LOG_WARNING, "Error: i2c device path too long"); return -1; } return 0; } int kbd_get_lmuaddr(void) { struct device_node *node; int plen; unsigned long *reg = NULL; of_init(); node = of_find_node_by_type("lmu-controller", 0); if (node == NULL) { node = of_find_node_by_name("lmu-controller", 0); if (node == NULL) { logmsg(LOG_ERR, "Error: no lmu-controller found in device-tree"); return -1; } } reg = of_find_property(node, "reg", &plen); lmu_info.lmuaddr = (unsigned int) (*reg >> 1); free(reg); of_free_node(node); logdebug("Found LMU controller at address 0x%x\n", lmu_info.lmuaddr); return 0; } static int kbd_probe_lmu(void) { int fd; int ret; char buffer[4]; ret = kbd_get_lmuaddr(); if (ret < 0) return -1; ret = kbd_get_i2cdev(); if (ret < 0) return -1; fd = open(lmu_info.i2cdev, O_RDWR); if (fd < 0) { logmsg(LOG_WARNING, "Could not open device %s: %s", lmu_info.i2cdev, strerror(errno)); return -1; } ret = ioctl(fd, I2C_SLAVE, lmu_info.lmuaddr); if (ret < 0) { logmsg(LOG_ERR, "ioctl failed on %s: %s", lmu_info.i2cdev, strerror(errno)); close(fd); return -1; } ret = read(fd, buffer, 4); if (ret != 4) { logmsg(LOG_WARNING, "Probing failed on %s: %s", lmu_info.i2cdev, strerror(errno)); close(fd); return -1; } close(fd); logdebug("Probing successful on %s\n", lmu_info.i2cdev); return 0; } pommed-1.39~dfsg/pommed/pmac/ofapi/0000775000175000017500000000000011571653265016643 5ustar julienjulienpommed-1.39~dfsg/pommed/pmac/ofapi/of_api.h0000664000175000017500000000224711571653265020256 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #ifndef __OF_USERSPACE__ #define __OF_USERSPACE__ #define _GNU_SOURCE #include #include #include #include #include #include #include #include char *OF_ROOT; struct node_property_t { uint8_t *data; uint32_t len; }; struct device_node { char *name; char *path; char *full_path; char *type; struct node_property_t linux_phandle; struct device_node *next; void *data; uint32_t len; }; #include "of_standard.h" #include "of_internals.h" #include "of_externals.h" #endif pommed-1.39~dfsg/pommed/pmac/ofapi/of_externals.c0000664000175000017500000001101311571653265021474 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #include "of_api.h" void of_init(void) { OF_ROOT="/proc/device-tree"; } void of_init_root(char *path) { uint32_t len; if(!path) of_error("of_init_root() NULL path"); len = strlen(path); if(!len) of_error("of_init_root() Invalid path"); if(path[len-1] == '/') path[len-1] = '\0'; OF_ROOT=path; } int of_test_property(struct device_node *node, const char *name) { struct stat fstats; char buf[PATH_MAX]={0}; strcat(strcat(buf, node->full_path), name); if(stat(buf, &fstats) < 0) return 0; else return 1; } void *of_find_property(struct device_node *node, const char *name, int *plen) { char buf[PATH_MAX]={0}; uint8_t *property; uint32_t size; struct stat fstats; int fd; strcat(strcat(buf, node->full_path), name); if (stat(buf, &fstats) < 0) return NULL; size = fstats.st_size; property = malloc(size); if(!property) of_error("malloc()"); if ((fd = open(buf, O_RDONLY)) < 0) of_error("open()"); if ((*plen = read(fd, property, size)) != size) of_error("read()"); close(fd); return property; } int of_property_to_n_uint64(uint64_t *val, void *prop, uint32_t len, int n) { *val = 0; int i=0; uint8_t *data = prop; if((n*8 > len) || (n == 0)) return 0; for(i=0; i < (n*8)-1; i++); *val = ((uint64_t) data[i - 7] << 56) + ((uint64_t) data[i - 6] << 48) + ((uint64_t) data[i - 5] << 40) + ((uint64_t) data[i - 4] << 32) + ((uint64_t) data[i - 3] << 24) + ((uint64_t) data[i - 2] << 16) + ((uint64_t) data[i - 1] << 8) + (uint64_t) data[i]; return 1; } int of_property_to_n_uint32(uint32_t *val, void *prop, uint32_t len, int n) { *val = 0; int i=0; uint8_t *data = prop; if((n*4 > len) || (n == 0)) return 0; for(i=0; i < (n*4)-1; i++); *val = (data[i-3] << 24) + (data[i-2] << 16) + (data[i-1] << 8) + (data[i]); return 1; } int of_property_to_uint32(uint32_t *val, void *prop, uint32_t len) { *val=0; uint8_t *data = prop; if(len != 4) return 0; *val = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]; return 1; } struct device_node *of_get_parent(struct device_node *node) { struct device_node *tmp; char *p; char *ptr; if((!node->path) || (!node) || (strlen(node->path)==1)) return NULL; ptr=strdup(node->path); p=strrchr(ptr, '/'); *p=0; p=strrchr(ptr, '/'); *p=0; tmp=of_find_node_by_path(ptr); free(ptr); return tmp; } struct device_node *of_find_node_by_name(const char *name, int type) { if (!_n_sem) _of_find_node_by_parse(OF_ROOT, name, OF_SEARCH_NAME, type); return _of_return_nodes(_n_array, &_n_idx, &_n_sem, type); } struct device_node *of_find_type_devices(const char *device_type) { struct device_node *list = calloc(1, sizeof(struct device_node)); struct device_node *tmp = NULL; struct device_node *ptr = list; while ((tmp = of_find_node_by_type(device_type, 1)) != NULL) { ptr->next = tmp; ptr = ptr->next; ptr->next = NULL; } return list; } void of_find_type_devices_free(struct device_node *root) { struct device_node *cursor = root; struct device_node *fwd; while (cursor) { fwd = cursor->next; of_free_node(cursor); cursor = fwd; } } struct device_node *of_find_node_by_path(const char *path) { struct device_node *tmp = NULL; char buf[PATH_MAX]; struct stat fstats; _of_make_compat_path(path, buf); if (stat(buf, &fstats) < 0) return NULL; tmp = _of_populate_node(buf, NULL); return tmp; } struct device_node *of_find_node_by_phandle(uint32_t phandle) { uint32_t *ptr = malloc(4); if(!ptr) of_error("malloc()"); *ptr = phandle; _of_find_node_by_parse(OF_ROOT, (void *)ptr, OF_SEARCH_PHDL, 0); free(ptr); return _of_return_nodes(_p_array, &_p_idx, &_t_sem, 0); } struct device_node *of_find_node_by_type(const char *device_type, int type) { if (!_t_sem) _of_find_node_by_parse(OF_ROOT, device_type, OF_SEARCH_TYPE, type); return _of_return_nodes(_t_array, &_t_idx, &_t_sem, type); } pommed-1.39~dfsg/pommed/pmac/ofapi/of_externals.h0000664000175000017500000000343411571653265021511 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #ifndef __OF_DEVICE_BY__ #define __OF_DEVICE_BY__ #define OF_SEARCH_NAME 0x01 #define OF_SEARCH_TYPE 0x02 #define OF_SEARCH_PHDL 0x03 struct device_node *_n_array[256]; int _n_idx; int _n_sem; struct device_node *_t_array[256]; int _t_idx; int _t_sem; struct device_node *_p_array[2]; int _p_sem; int _p_idx; void of_init(void); void of_init_root(char *path); struct device_node *of_find_node_by_type(const char *device_type, int type); struct device_node *of_find_node_by_name(const char *name, int type); struct device_node *of_find_node_by_path(const char *path); struct device_node *of_find_node_by_phandle(uint32_t phandle); struct device_node *of_get_parent(struct device_node *node); void *of_find_property(struct device_node *node, const char *name, int *plen); int of_test_property(struct device_node *node, const char *name); int of_property_to_uint32(uint32_t *val, void *prop, uint32_t len); int of_property_to_n_uint32(uint32_t *val, void *prop, uint32_t len, int n); int of_property_to_n_uint64(uint64_t *val, void *prop, uint32_t len, int n); struct device_node *of_find_type_devices(const char *device_type); void of_find_type_devices_free(struct device_node *root); #endif pommed-1.39~dfsg/pommed/pmac/ofapi/of_internals.c0000664000175000017500000001652411571653265021502 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #include "of_api.h" #include struct device_node *_of_return_nodes(struct device_node **array, int *idx, int *sem, int type) { while (*idx >= 0) { if (*idx == 0 || type == 0) *sem = 0; return *idx > 0 ? array[(*idx)--] : NULL; } return NULL; } char *_of_read_name(const char *path, struct device_node *node) { int fd; char *tmp; char buf[PATH_MAX]; struct stat fstats; uint32_t size; snprintf(buf, sizeof(buf), "%s%s", path, "name"); if (stat(buf, &fstats) < 0) return NULL; size = fstats.st_size; if ((fd = open(buf, O_RDONLY)) < 0) return NULL; if (node) { node->name = calloc(1, size); if(!node->name) of_error("calloc()"); tmp = node->name; } else { tmp = calloc(1, size); if(!tmp) of_error("calloc()"); } if (read(fd, tmp, size) != size) of_error("read()"); close(fd); return tmp; } void _of_read_type(const char *path, struct device_node *node) { int fd; char buf[PATH_MAX]; struct stat fstats; uint32_t size; snprintf(buf, sizeof(buf),"%s%s", path, "device_type"); if (stat(buf, &fstats) < 0) return; size = fstats.st_size; if ((fd = open(buf, O_RDONLY)) < 0) return; node->type = calloc(1, size); if(!node->type) of_error("calloc()"); if (read(fd, node->type, size) != size) of_error("read()"); close(fd); } void _of_read_linux_phandle(const char *path, struct device_node *node) { int fd; char buf[PATH_MAX]; struct stat fstats; uint32_t size; snprintf(buf, sizeof(buf), "%s%s", path, "linux,phandle"); if (stat(buf, &fstats) < 0) return; size = fstats.st_size; if(!size) return; if ((fd = open(buf, O_RDONLY)) < 0) return; node->linux_phandle.len = size; node->linux_phandle.data = calloc(1, size); if (read(fd, node->linux_phandle.data, size) != size) of_error("read()"); close(fd); } void _of_get_path(char *path) { char *ptr; char *p; int i; i = strlen(OF_ROOT); ptr = strdup(path); p = &ptr[i]; sprintf(path, "%s", p); free(ptr); } struct device_node *_of_populate_node(const char *path, const char *name) { struct device_node *tmp = calloc(1, sizeof(struct device_node)); char *p = strdup(path); _of_remove_filename(p); tmp->full_path = strdup(p); if (name) tmp->name = strdup(name); else _of_read_name(path, tmp); _of_get_path(p); tmp->path = strdup(p); free(p); _of_read_linux_phandle(tmp->full_path, tmp); _of_read_type(tmp->full_path, tmp); return tmp; } struct device_node *_of_get_type(const char *path, const char *type) { int fd; char buf[PATH_MAX]; char *name; char *ptr; struct device_node *tmp = NULL; struct stat fstats; uint32_t size; if (stat(path, &fstats) < 0) { exit(EXIT_FAILURE); } size = fstats.st_size; if(!size) return NULL; if ((fd = open(path, O_RDONLY)) < 0) of_error("open()"); if (read(fd, buf, size) != size) of_error("read()"); if (memcmp(buf, type, size)) goto out; ptr = strdup(path); _of_remove_filename(ptr); name = _of_read_name(ptr, NULL); tmp = _of_populate_node(path, name); free(ptr); free(name); out: close(fd); return tmp; } void _of_remove_filename(char *path) { char *ptr; ptr = strrchr(path, '/'); *(ptr + 1) = '\0'; } uint32_t _of_phandle_to_int(struct node_property_t phandle) { uint32_t tmp = 0; if (phandle.len == 4) tmp = (phandle.data[0] << 24) + (phandle.data[1] << 16) + (phandle.data[2] << 8) + phandle.data[3]; return tmp; } void _of_make_compat_path(const char *path, char *buf) { size_t slen = strlen(path); int changed = 0; if (*path != '/') changed = 1; if(!strlen(path)) { snprintf(buf, PATH_MAX, "%s/", OF_ROOT); return; } if (path[slen - 1] != '/') { if (changed) snprintf(buf, PATH_MAX, "%s/%s/", OF_ROOT, path); else snprintf(buf, PATH_MAX, "%s%s/", OF_ROOT, path); } else snprintf(buf, PATH_MAX, "%s%s", OF_ROOT, path); } struct device_node *_of_get_phandle(const char *path, const uint32_t * phandle) { struct node_property_t props; struct device_node *tmp = NULL; uint32_t size, val = 0; struct stat fstats; int fd; char *ptr; char *name; if (stat(path, &fstats) < 0) return NULL; size = fstats.st_size; if(!size) return NULL; props.data = malloc(size); if(!props.data) of_error("calloc()"); props.len = size; if ((fd = open(path, O_RDONLY)) < 0) of_error("open()"); if (read(fd, props.data, size) != size) of_error("read()"); close(fd); val = _of_phandle_to_int(props); free(props.data); if (val == *phandle) { ptr = strdup(path); _of_remove_filename(ptr); name = _of_read_name(ptr, NULL); tmp = _of_populate_node(path, name); free(ptr); free(name); } return tmp; } struct device_node *_of_get_name(const char *path, const char *name) { int fd; uint32_t size; char buf[PATH_MAX]; struct device_node *tmp = NULL; struct stat fstats; if (stat(path, &fstats) < 0) return NULL; size = fstats.st_size; if(!size) return NULL; if ((fd = open(path, O_RDONLY)) < 0) of_error("open()"); if (read(fd, buf, size) != size) of_error("read()"); if (memcmp(buf, name, size)) goto out; tmp = _of_populate_node(path, name); out: close(fd); return tmp; } void _of_find_node_by_parse(char *path, const void *search, uint16_t type, int full) { DIR *dir; struct dirent *tmp = NULL; char *directories[8192] = { NULL }; char fullpath[PATH_MAX]; int x = 0; struct stat fstats; struct device_node *node = NULL; lstat(path, &fstats); if (S_ISLNK(fstats.st_mode)) return; if ((dir = opendir(path)) == NULL) return; while ((tmp = readdir(dir)) != NULL) { if ((strcmp(tmp->d_name, ".")) && (strcmp(tmp->d_name, ".."))) { if (!strcmp(path, "/")) strcat(strcpy(fullpath, "/"), tmp->d_name); else strcat(strcat(strcpy(fullpath, path), "/"), tmp->d_name); if (type == OF_SEARCH_NAME) { if (!strcmp(tmp->d_name, "name")) { if ((node = _of_get_name(fullpath, search)) != NULL) { _n_array[++_n_idx] = node; _n_sem = 1; if(full==0) goto out; } } } if (type == OF_SEARCH_TYPE) { if (!strcmp(tmp->d_name, "device_type")) { if ((node = _of_get_type(fullpath, search)) != NULL) { _t_array[++_t_idx] = node; _t_sem = 1; if(full==0) goto out; } } } if (type == OF_SEARCH_PHDL) { if (!strcmp(tmp->d_name, "linux,phandle")) { if ((node = _of_get_phandle(fullpath, search)) != NULL) { _p_array[++_p_idx] = node; _p_sem = 1; goto out; } } } lstat(fullpath, &fstats); if (S_ISDIR(fstats.st_mode)) directories[x++] = strdup(fullpath); } } x = 0; while (directories[x] != NULL) { _of_find_node_by_parse(directories[x], search, type, full); out: free(directories[x++]); } closedir(dir); } pommed-1.39~dfsg/pommed/pmac/ofapi/of_internals.h0000664000175000017500000000265411571653265021506 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #ifndef __OF_INTERNALS__ #define __OF_INTERNALS__ #include "of_api.h" void _of_find_node_by_parse(char *path, const void *search, uint16_t type, int full); struct device_node *_of_return_nodes(struct device_node **array, int *idx, int *sem, int type); struct device_node *_of_get_name(const char *path, const char *name); struct device_node *_of_get_type(const char *path, const char *type); struct device_node *_of_populate_node(const char *path, const char *name); struct device_node *_of_get_phandle(const char *path, const uint32_t * phandle); void _of_read_linux_phandle(const char *path, struct device_node *node); void _of_read_type(const char *path, struct device_node *node); void _of_remove_filename(char *path); void _of_get_path(char *path); void _of_make_compat_path(const char *path, char *buf); #endif pommed-1.39~dfsg/pommed/pmac/ofapi/of_standard.c0000664000175000017500000000205411571653265021274 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #include "of_api.h" void of_error(char *error) { fprintf(stderr, "Error: %s\n", error); exit(EXIT_FAILURE); } void of_free_node(struct device_node *node) { if (node->name) free(node->name); if (node->path) free(node->path); if (node->full_path) free(node->full_path); if (node->type) free(node->type); if (node->linux_phandle.data) free(node->linux_phandle.data); if (node->data) free(node->data); if (node) free(node); } pommed-1.39~dfsg/pommed/pmac/ofapi/of_standard.h0000664000175000017500000000135711571653265021306 0ustar julienjulien/*************************************************************************** * (C) Copyright 2006 Alastair Poole. netstar@gatheringofgray.com) * * * * 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. * ***************************************************************************/ #ifndef __OF_STANDARD__ #define __OF_STANDARD__ void of_error(char *error); void of_free_node(struct device_node *node); #endif pommed-1.39~dfsg/pommed/pmac/pmu.c0000664000175000017500000000370611571653265016520 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "../pommed.h" #include "../power.h" #define PROC_PMU_AC_STATE_FILE "/proc/pmu/info" #define PROC_PMU_AC_STATE "AC Power" #define PROC_PMU_AC_ONLINE '1' #define PROC_PMU_AC_OFFLINE '0' /* Internal API - procfs PMU */ int procfs_check_ac_state(void) { FILE *fp; char buf[128]; char *ac_state; int ret; fp = fopen(PROC_PMU_AC_STATE_FILE, "r"); if (fp == NULL) return AC_STATE_ERROR; ret = fread(buf, 1, 127, fp); if (ferror(fp) != 0) { logdebug("pmu: Error reading AC state: %s\n", strerror(errno)); return AC_STATE_ERROR; } if (feof(fp) == 0) { logdebug("pmu: Error reading AC state: buffer too small\n"); return AC_STATE_ERROR; } fclose(fp); buf[ret] = '\0'; ac_state = strstr(buf, PROC_PMU_AC_STATE); if (ac_state == NULL) return AC_STATE_ERROR; ac_state = strchr(ac_state, '\n'); if ((ac_state == NULL) || (ac_state == buf)) return AC_STATE_ERROR; if (ac_state[-1] == PROC_PMU_AC_ONLINE) return AC_STATE_ONLINE; if (ac_state[-1] == PROC_PMU_AC_OFFLINE) return AC_STATE_OFFLINE; return AC_STATE_UNKNOWN; } pommed-1.39~dfsg/pommed/pommed.c0000664000175000017500000006526111571653265016264 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef __powerpc__ # define check_machine() check_machine_dmi() #else # define check_machine() check_machine_pmu() #endif /* __powerpc__ */ #include #include "pommed.h" #include "kbd_backlight.h" #include "lcd_backlight.h" #include "cd_eject.h" #include "evdev.h" #include "evloop.h" #include "conffile.h" #include "audio.h" #include "dbus.h" #include "power.h" #include "beep.h" /* Machine-specific operations */ struct machine_ops *mops; /* --- WARNING --- * * Be extra-careful here, the list below must come in the same * order as the machine_type enum in pommed.h ! */ #ifdef __powerpc__ /* PowerBook machines */ struct machine_ops pb_mops[] = { /* PowerBook3,1 is a G3-based PowerBook */ { /* PowerBook3,2 */ .type = MACHINE_POWERBOOK_32, .lcd_backlight_probe = aty128_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step_kernel, .lcd_backlight_toggle = sysfs_backlight_toggle_kernel, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook3,3 */ .type = MACHINE_POWERBOOK_33, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook3,4 */ .type = MACHINE_POWERBOOK_34, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook3,5 */ .type = MACHINE_POWERBOOK_35, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, /* PowerBook4,* -> G3 iBooks */ { /* PowerBook5,1 */ .type = MACHINE_POWERBOOK_51, .lcd_backlight_probe = nvidia_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook5,2 */ .type = MACHINE_POWERBOOK_52, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook5,3 */ .type = MACHINE_POWERBOOK_53, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook5,4 */ .type = MACHINE_POWERBOOK_54, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook5,5 */ .type = MACHINE_POWERBOOK_55, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook5,6 */ .type = MACHINE_POWERBOOK_56, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_fountain, */ }, { /* PowerBook5,7 */ .type = MACHINE_POWERBOOK_57, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_fountain, */ }, { /* PowerBook5,8 */ .type = MACHINE_POWERBOOK_58, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_geyser, */ }, { /* PowerBook5,9 */ .type = MACHINE_POWERBOOK_59, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_geyser, */ }, /* G4 iBooks & 12" PowerBooks */ { /* PowerBook6,1 */ .type = MACHINE_POWERBOOK_61, .lcd_backlight_probe = nvidia_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook6,2 */ .type = MACHINE_POWERBOOK_62, .lcd_backlight_probe = nvidia_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook6,3 */ .type = MACHINE_POWERBOOK_63, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook6,4 */ .type = MACHINE_POWERBOOK_64, .lcd_backlight_probe = nvidia_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook6,5 */ .type = MACHINE_POWERBOOK_65, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, /* Looks like PowerBook6,6 never made it to the market ? */ { /* PowerBook6,7 */ .type = MACHINE_POWERBOOK_67, .lcd_backlight_probe = r9x00_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ }, { /* PowerBook6,8 */ .type = MACHINE_POWERBOOK_68, .lcd_backlight_probe = nvidia_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_adb, */ } }; #else struct machine_ops mb_mops[] = { /* MacBook Pro machines */ { /* MacBookPro1,1 / MacBookPro1,2 (Core Duo) */ .type = MACHINE_MACBOOKPRO_1, .lcd_backlight_probe = x1600_backlight_probe, .lcd_backlight_step = x1600_backlight_step, .lcd_backlight_toggle = x1600_backlight_toggle, /* .evdev_identify = evdev_is_geyser3, */ }, { /* MacBookPro2,1 / MacBookPro2,2 (Core2 Duo) */ .type = MACHINE_MACBOOKPRO_2, .lcd_backlight_probe = x1600_backlight_probe, .lcd_backlight_step = x1600_backlight_step, .lcd_backlight_toggle = x1600_backlight_toggle, /* .evdev_identify = evdev_is_geyser4, */ }, { /* MacBookPro3,1 (15" & 17", Core2 Duo, June 2007) */ .type = MACHINE_MACBOOKPRO_3, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_geyser4, */ }, { /* MacBookPro4,1 (15" & 17", Core2 Duo, February 2008) */ .type = MACHINE_MACBOOKPRO_4, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring2, */ }, { /* MacBookPro5,1 (15" & 17", Core2 Duo, October 2008) * MacBookPro5,2 (17" June 2009) * MacBookPro5,3 (15" June 2009) * MacBookPro5,4 (15" June 2009) * MacBookPro5,5 (13" June 2009) */ .type = MACHINE_MACBOOKPRO_5, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBookPro6,1 (17", Core i5/i7, April 2010) * MacBookPro6,2 (15", Core i5/i7, April 2010) */ .type = MACHINE_MACBOOKPRO_6, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBookPro7,1 (13", Core2 Duo, April 2010) */ .type = MACHINE_MACBOOKPRO_7, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBookPro8,1 (13", Early 2011) * MacBookPro8,2 (15", Early 2011) * MacBookPro8,3 (17", Early 2011) */ .type = MACHINE_MACBOOKPRO_8, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring5, */ }, /* MacBook machines */ { /* MacBook1,1 (Core Duo) */ .type = MACHINE_MACBOOK_1, .lcd_backlight_probe = gma950_backlight_probe, .lcd_backlight_step = gma950_backlight_step, .lcd_backlight_toggle = gma950_backlight_toggle, /* .evdev_identify = evdev_is_geyser3, */ }, { /* MacBook2,1 (Core2 Duo) */ .type = MACHINE_MACBOOK_2, .lcd_backlight_probe = gma950_backlight_probe, .lcd_backlight_step = gma950_backlight_step, .lcd_backlight_toggle = gma950_backlight_toggle, /* .evdev_identify = evdev_is_geyser4, */ }, { /* MacBook3,1 (Core2 Duo Santa Rosa, November 2007) */ .type = MACHINE_MACBOOK_3, .lcd_backlight_probe = gma950_backlight_probe, /* gma950 supports the gma965 */ .lcd_backlight_step = gma950_backlight_step, .lcd_backlight_toggle = gma950_backlight_toggle, /* .evdev_identify = evdev_is_geyser4hf, */ }, { /* MacBook4,1 (Core2 Duo, February 2008) */ .type = MACHINE_MACBOOK_4, .lcd_backlight_probe = gma950_backlight_probe, /* gma950 supports the gma965 */ .lcd_backlight_step = gma950_backlight_step, .lcd_backlight_toggle = gma950_backlight_toggle, /* .evdev_identify = evdev_is_geyser4hf, */ }, { /* MacBook5,1 (Core2 Duo, October 2008) */ .type = MACHINE_MACBOOK_5, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBook6,1 (Core2 Duo, October 2009) */ .type = MACHINE_MACBOOK_6, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBook7,1 (Core2 Duo, April 2010) */ .type = MACHINE_MACBOOK_7, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, /* MacBook Air machines */ { /* MacBookAir1,1 (January 2008) */ .type = MACHINE_MACBOOKAIR_1, .lcd_backlight_probe = gma950_backlight_probe, /* gma950 supports the gma965 */ .lcd_backlight_step = gma950_backlight_step, .lcd_backlight_toggle = gma950_backlight_toggle, /* .evdev_identify = evdev_is_wellspring, */ }, { /* MacBookAir2,1 (October 2008) */ .type = MACHINE_MACBOOKAIR_2, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring3, */ }, { /* MacBookAir3,1 & 3,2 (October 2010) */ .type = MACHINE_MACBOOKAIR_3, .lcd_backlight_probe = mbp_sysfs_backlight_probe, .lcd_backlight_step = sysfs_backlight_step, .lcd_backlight_toggle = sysfs_backlight_toggle, /* .evdev_identify = evdev_is_wellspring4a / evdev_is_wellspring4, */ } }; #endif /* __powerpc__ */ /* debug mode */ int debug = 0; int console = 0; void logmsg(int level, char *fmt, ...) { va_list ap; FILE *where = stdout; va_start(ap, fmt); if (console) { switch (level) { case LOG_INFO: fprintf(where, "I: "); break; case LOG_WARNING: fprintf(where, "W: "); break; case LOG_ERR: where = stderr; fprintf(where, "E: "); break; default: break; } vfprintf(where, fmt, ap); fprintf(where, "\n"); } else { vsyslog(level | LOG_DAEMON, fmt, ap); } va_end(ap); } void logdebug(char *fmt, ...) { va_list ap; va_start(ap, fmt); if (debug) vfprintf(stderr, fmt, ap); va_end(ap); } void kbd_set_fnmode(void) { char *fnmode_node[] = { "/sys/module/hid_apple/parameters/fnmode", /* 2.6.28 & up */ "/sys/module/hid/parameters/pb_fnmode", /* 2.6.20 & up */ "/sys/module/usbhid/parameters/pb_fnmode" }; FILE *fp; int i; if ((general_cfg.fnmode < 1) || (general_cfg.fnmode > 2)) general_cfg.fnmode = 1; for (i = 0; i < sizeof(fnmode_node) / sizeof(*fnmode_node); i++) { logdebug("Trying %s\n", fnmode_node[i]); fp = fopen(fnmode_node[i], "a"); if (fp != NULL) break; if (errno == ENOENT) continue; logmsg(LOG_INFO, "Could not open %s: %s", fnmode_node[i], strerror(errno)); return; } if (!fp) { logmsg(LOG_INFO, "Could not set fnmode: no sysfs node found!"); return; } fprintf(fp, "%d", general_cfg.fnmode); fclose(fp); } #ifdef __powerpc__ static machine_type check_machine_pmu(void) { int fd; int n; int ret = MACHINE_UNKNOWN; char buffer[128]; /* Check copyright node, look for "Apple Computer, Inc." */ fd = open("/proc/device-tree/copyright", O_RDONLY); if (fd < 0) { logmsg(LOG_ERR, "Could not open /proc/device-tree/copyright"); return ret; } n = read(fd, buffer, sizeof(buffer) - 1); if (n < 1) { logmsg(LOG_ERR, "Error reading /proc/device-tree/copyright"); close(fd); return ret; } close(fd); buffer[n] = '\0'; logdebug("device-tree copyright node: [%s]\n", buffer); if (strstr(buffer, "Apple Computer, Inc.") == NULL) return ret; ret = MACHINE_MAC_UNKNOWN; /* Grab machine identifier string */ fd = open("/proc/device-tree/model", O_RDONLY); if (fd < 0) { logmsg(LOG_ERR, "Could not open /proc/device-tree/model"); return ret; } n = read(fd, buffer, sizeof(buffer) - 1); if (n < 1) { logmsg(LOG_ERR, "Error reading /proc/device-tree/model"); close(fd); return ret; } close(fd); buffer[n] = '\0'; logdebug("device-tree model node: [%s]\n", buffer); /* PowerBook G4 Titanium 15" (December 2000) */ if (strncmp(buffer, "PowerBook3,2", 12) == 0) ret = MACHINE_POWERBOOK_32; /* PowerBook G4 Titanium 15" (October 2001) */ else if (strncmp(buffer, "PowerBook3,3", 12) == 0) ret = MACHINE_POWERBOOK_33; /* PowerBook G4 Titanium 15" (April 2002) */ else if (strncmp(buffer, "PowerBook3,4", 12) == 0) ret = MACHINE_POWERBOOK_34; /* PowerBook G4 Titanium 15" */ else if (strncmp(buffer, "PowerBook3,5", 12) == 0) ret = MACHINE_POWERBOOK_35; /* PowerBook G4 Aluminium 17" */ else if (strncmp(buffer, "PowerBook5,1", 12) == 0) ret = MACHINE_POWERBOOK_51; /* PowerBook G4 Aluminium 15" (September 2003) */ else if (strncmp(buffer, "PowerBook5,2", 12) == 0) ret = MACHINE_POWERBOOK_52; /* PowerBook G4 Aluminium 17" (September 2003) */ else if (strncmp(buffer, "PowerBook5,3", 12) == 0) ret = MACHINE_POWERBOOK_53; /* PowerBook G4 Aluminium 15" (April 2004) */ else if (strncmp(buffer, "PowerBook5,4", 12) == 0) ret = MACHINE_POWERBOOK_54; /* PowerBook G4 Aluminium 17" (April 2004) */ else if (strncmp(buffer, "PowerBook5,5", 12) == 0) ret = MACHINE_POWERBOOK_55; /* PowerBook G4 Aluminium 15" (February 2005) */ else if (strncmp(buffer, "PowerBook5,6", 12) == 0) ret = MACHINE_POWERBOOK_56; /* PowerBook G4 Aluminium 17" (February 2005) */ else if (strncmp(buffer, "PowerBook5,7", 12) == 0) ret = MACHINE_POWERBOOK_57; /* PowerBook G4 Aluminium 15" */ else if (strncmp(buffer, "PowerBook5,8", 12) == 0) ret = MACHINE_POWERBOOK_58; /* PowerBook G4 Aluminium 17" */ else if (strncmp(buffer, "PowerBook5,9", 12) == 0) ret = MACHINE_POWERBOOK_59; /* PowerBook G4 12" (January 2003) */ else if (strncmp(buffer, "PowerBook6,1", 12) == 0) ret = MACHINE_POWERBOOK_61; /* PowerBook G4 12" (September 2003) */ else if (strncmp(buffer, "PowerBook6,2", 12) == 0) ret = MACHINE_POWERBOOK_61; /* iBook G4 (October 2003) */ else if (strncmp(buffer, "PowerBook6,3", 12) == 0) ret = MACHINE_POWERBOOK_63; /* PowerBook G4 12" (April 2004) */ else if (strncmp(buffer, "PowerBook6,4", 12) == 0) ret = MACHINE_POWERBOOK_64; /* iBook G4 (October 2004) */ else if (strncmp(buffer, "PowerBook6,5", 12) == 0) ret = MACHINE_POWERBOOK_65; /* iBook G4 */ else if (strncmp(buffer, "PowerBook6,7", 12) == 0) ret = MACHINE_POWERBOOK_67; /* PowerBook G4 12" */ else if (strncmp(buffer, "PowerBook6,8", 12) == 0) ret = MACHINE_POWERBOOK_68; else logmsg(LOG_ERR, "Unknown Apple machine: %s", buffer); if (ret != MACHINE_MAC_UNKNOWN) logmsg(LOG_INFO, "PMU machine check: running on a %s", buffer); return ret; } #else static machine_type check_machine_dmi(void) { int ret; int fd; char buf[32]; int i; char *vendor_node[] = { "/sys/class/dmi/id/sys_vendor", "/sys/class/dmi/id/board_vendor", "/sys/class/dmi/id/chassis_vendor", "/sys/class/dmi/id/bios_vendor" }; /* Check vendor name */ for (i = 0; i < sizeof(vendor_node) / sizeof(vendor_node[0]); i++) { fd = open(vendor_node[i], O_RDONLY); if (fd > 0) break; logmsg(LOG_INFO, "Could not open %s: %s", vendor_node[i], strerror(errno)); } if (fd < 0) { logmsg(LOG_ERR, "Could not determine vendor name"); return MACHINE_ERROR; } memset(buf, 0, sizeof(buf)); ret = read(fd, buf, sizeof(buf) - 1); if (ret < 0) { logmsg(LOG_ERR, "Could not read from %s: %s", vendor_node[i], strerror(errno)); close(fd); return MACHINE_ERROR; } close(fd); if (buf[ret - 1] == '\n') buf[ret - 1] = '\0'; logdebug("DMI vendor name: [%s]\n", buf); if ((strcmp(buf, "Apple Computer, Inc.") != 0) && (strcmp(buf, "Apple Inc.") != 0)) return MACHINE_UNKNOWN; /* Check product name */ fd = open("/sys/class/dmi/id/product_name", O_RDONLY); if (fd < 0) { logmsg(LOG_INFO, "Could not open /sys/class/dmi/id/product_name: %s", strerror(errno)); return MACHINE_MAC_UNKNOWN; } memset(buf, 0, sizeof(buf)); ret = read(fd, buf, sizeof(buf) - 1); if (ret < 0) { logmsg(LOG_ERR, "Could not read from /sys/class/dmi/id/product_name: %s", strerror(errno)); close(fd); return MACHINE_MAC_UNKNOWN; } close(fd); if (buf[ret - 1] == '\n') buf[ret - 1] = '\0'; logdebug("DMI product name: [%s]\n", buf); ret = MACHINE_MAC_UNKNOWN; /* Core Duo MacBook Pro 15" (January 2006) & 17" (April 2006) */ if ((strcmp(buf, "MacBookPro1,1") == 0) || (strcmp(buf, "MacBookPro1,2") == 0)) ret = MACHINE_MACBOOKPRO_1; /* Core2 Duo MacBook Pro 17" & 15" (October 2006) */ else if ((strcmp(buf, "MacBookPro2,1") == 0) || (strcmp(buf, "MacBookPro2,2") == 0)) ret = MACHINE_MACBOOKPRO_2; /* Core2 Duo MacBook Pro 15" & 17" (June 2007) */ else if (strcmp(buf, "MacBookPro3,1") == 0) ret = MACHINE_MACBOOKPRO_3; /* Core2 Duo MacBook Pro 15" & 17" (February 2008) */ else if (strcmp(buf, "MacBookPro4,1") == 0) ret = MACHINE_MACBOOKPRO_4; /* Core2 Duo MacBook Pro 15" & 17" (October 2008) * MacBook Pro 17" (June 2009) * MacBook Pro 13" (June 2009) */ else if ((strcmp(buf, "MacBookPro5,1") == 0) || (strcmp(buf, "MacBookPro5,2") == 0) || (strcmp(buf, "MacBookPro5,3") == 0) || (strcmp(buf, "MacBookPro5,4") == 0) || (strcmp(buf, "MacBookPro5,5") == 0)) ret = MACHINE_MACBOOKPRO_5; /* Core i5/i7 MacBook Pro 15" & 17" (April 2010) */ else if ((strcmp(buf, "MacBookPro6,1") == 0) || (strcmp(buf, "MacBookPro6,2") == 0)) ret = MACHINE_MACBOOKPRO_6; /* Core2 Duo MacBook Pro 13" (April 2010) */ else if (strcmp(buf, "MacBookPro7,1") == 0) ret = MACHINE_MACBOOKPRO_7; /* MacBook Pro 13" (Early 2011) * MacBook Pro 15" (Early 2011) * MacBook Pro 17" (Early 2011) */ else if ((strcmp(buf, "MacBookPro8,1") == 0) || (strcmp(buf, "MacBookPro8,2") == 0) || (strcmp(buf, "MacBookPro8,3") == 0)) ret = MACHINE_MACBOOKPRO_8; /* Core Duo MacBook (May 2006) */ else if (strcmp(buf, "MacBook1,1") == 0) ret = MACHINE_MACBOOK_1; /* Core2 Duo MacBook (November 2006) */ else if (strcmp(buf, "MacBook2,1") == 0) ret = MACHINE_MACBOOK_2; /* Core2 Duo Santa Rosa MacBook (November 2007) */ else if (strcmp(buf, "MacBook3,1") == 0) ret = MACHINE_MACBOOK_3; /* Core2 Duo MacBook (February 2008) */ else if (strcmp(buf, "MacBook4,1") == 0) ret = MACHINE_MACBOOK_4; /* Core2 Duo MacBook (October 2008) (5,2 white MacBook) */ else if ((strcmp(buf, "MacBook5,1") == 0) || (strcmp(buf, "MacBook5,2") == 0)) ret = MACHINE_MACBOOK_5; /* Core2 Duo MacBook (October 2009) */ else if (strcmp(buf, "MacBook6,1") == 0) ret = MACHINE_MACBOOK_6; /* Core2 Duo MacBook (April 2010) */ else if (strcmp(buf, "MacBook7,1") == 0) ret = MACHINE_MACBOOK_7; /* MacBook Air (January 2008) */ else if (strcmp(buf, "MacBookAir1,1") == 0) ret = MACHINE_MACBOOKAIR_1; /* MacBook Air (October 2008) */ else if (strcmp(buf, "MacBookAir2,1") == 0) ret = MACHINE_MACBOOKAIR_2; /* MacBook Air 11" & 13" (October 2010) */ else if ((strcmp(buf, "MacBookAir3,1") == 0) || (strcmp(buf, "MacBookAir3,2") == 0)) ret = MACHINE_MACBOOKAIR_3; else logmsg(LOG_ERR, "Unknown Apple machine: %s", buf); if (ret != MACHINE_MAC_UNKNOWN) logmsg(LOG_INFO, "DMI machine check: running on a %s", buf); return ret; } #endif /* __powerpc__ */ static void usage(void) { printf("pommed v" M_VERSION " Apple laptops hotkeys handler\n"); printf("Copyright (C) 2006-2011 Julien BLACHE \n"); printf("Usage:\n"); printf("\tpommed\t-- start pommed as a daemon\n"); printf("\tpommed -v\t-- print version and exit\n"); printf("\tpommed -f\t-- run in the foreground with log messages\n"); printf("\tpommed -d\t-- run in the foreground with debug messages\n"); } void sig_int_term_handler(int signal) { evloop_stop(); } int main (int argc, char **argv) { int ret; int c; FILE *pidfile; struct utsname sysinfo; machine_type machine; while ((c = getopt(argc, argv, "fdv")) != -1) { switch (c) { case 'f': console = 1; break; case 'd': debug = 1; console = 1; break; case 'v': printf("pommed v" M_VERSION " Apple laptops hotkeys handler\n"); printf("Copyright (C) 2006-2011 Julien BLACHE \n"); exit(0); break; default: usage(); exit(1); break; } } if (geteuid() != 0) { logmsg(LOG_ERR, "pommed needs root privileges to operate"); exit(1); } if (!console) { openlog("pommed", LOG_PID, LOG_DAEMON); } logmsg(LOG_INFO, "pommed v" M_VERSION " Apple laptops hotkeys handler"); logmsg(LOG_INFO, "Copyright (C) 2006-2011 Julien BLACHE "); /* Load our configuration */ ret = config_load(); if (ret < 0) { exit(1); } /* Identify the machine we're running on */ machine = check_machine(); switch (machine) { case MACHINE_MAC_UNKNOWN: logmsg(LOG_ERR, "Unknown Apple machine"); exit(1); break; case MACHINE_UNKNOWN: logmsg(LOG_ERR, "Unknown non-Apple machine"); exit(1); break; case MACHINE_ERROR: exit(1); break; default: if (machine < MACHINE_LAST) { #ifdef __powerpc__ mops = &pb_mops[machine]; #else mops = &mb_mops[machine]; #endif /* __powerpc__ */ } break; } /* Runtime sanity check: catch errors in the mb_mops and pb_mops arrays */ if (mops->type != machine) { logmsg(LOG_ERR, "machine_ops mismatch: expected %d, found %d", machine, mops->type); exit(1); } if (debug) { ret = uname(&sysinfo); if (ret < 0) logmsg(LOG_ERR, "uname() failed: %s", strerror(errno)); else logdebug("System: %s %s %s\n", sysinfo.sysname, sysinfo.release, sysinfo.machine); } ret = evloop_init(); if (ret < 0) { logmsg(LOG_ERR, "Event loop initialization failed"); exit (1); } ret = mops->lcd_backlight_probe(); if (ret < 0) { logmsg(LOG_ERR, "LCD backlight probe failed, check debug output"); exit(1); } ret = evdev_init(); if (ret < 1) { logmsg(LOG_ERR, "No suitable event devices found"); exit(1); } kbd_backlight_init(); ret = audio_init(); if (ret < 0) { logmsg(LOG_WARNING, "Audio initialization failed, audio support disabled"); } ret = mbpdbus_init(); if (ret < 0) { logmsg(LOG_WARNING, "Could not connect to DBus system bus"); } power_init(); if (!console) { /* * Detach from the console */ if (daemon(0, 0) != 0) { logmsg(LOG_ERR, "daemon() failed: %s", strerror(errno)); evdev_cleanup(); exit(1); } } pidfile = fopen(PIDFILE, "w"); if (pidfile == NULL) { logmsg(LOG_WARNING, "Could not open pidfile %s: %s", PIDFILE, strerror(errno)); evdev_cleanup(); exit(1); } fprintf(pidfile, "%d\n", getpid()); fclose(pidfile); /* Spawn the beep thread */ beep_init(); signal(SIGINT, sig_int_term_handler); signal(SIGTERM, sig_int_term_handler); do { ret = evloop_iteration(); } while (ret >= 0); evdev_cleanup(); beep_cleanup(); mbpdbus_cleanup(); kbd_backlight_cleanup(); power_cleanup(); evloop_cleanup(); config_cleanup(); logmsg(LOG_INFO, "Exiting"); if (!console) closelog(); unlink(PIDFILE); return 0; } pommed-1.39~dfsg/pommed/pommed.h0000664000175000017500000000341111571653265016256 0ustar julienjulien/* * pommed - pommed.h */ #ifndef __POMMED_H__ #define __POMMED_H__ #define M_VERSION "1.39" extern int debug; extern int console; void logmsg(int level, char *fmt, ...); void logdebug(char *fmt, ...); void kbd_set_fnmode(void); typedef enum { MACHINE_ERROR = -3, MACHINE_UNKNOWN = -2, MACHINE_MAC_UNKNOWN = -1, #ifndef __powerpc__ MACHINE_MACBOOKPRO_1, MACHINE_MACBOOKPRO_2, MACHINE_MACBOOKPRO_3, MACHINE_MACBOOKPRO_4, MACHINE_MACBOOKPRO_5, MACHINE_MACBOOKPRO_6, MACHINE_MACBOOKPRO_7, MACHINE_MACBOOKPRO_8, MACHINE_MACBOOK_1, MACHINE_MACBOOK_2, MACHINE_MACBOOK_3, MACHINE_MACBOOK_4, MACHINE_MACBOOK_5, MACHINE_MACBOOK_6, MACHINE_MACBOOK_7, MACHINE_MACBOOKAIR_1, MACHINE_MACBOOKAIR_2, MACHINE_MACBOOKAIR_3, #else MACHINE_POWERBOOK_32, MACHINE_POWERBOOK_33, MACHINE_POWERBOOK_34, MACHINE_POWERBOOK_35, MACHINE_POWERBOOK_51, MACHINE_POWERBOOK_52, MACHINE_POWERBOOK_53, MACHINE_POWERBOOK_54, MACHINE_POWERBOOK_55, MACHINE_POWERBOOK_56, MACHINE_POWERBOOK_57, MACHINE_POWERBOOK_58, MACHINE_POWERBOOK_59, MACHINE_POWERBOOK_61, MACHINE_POWERBOOK_62, MACHINE_POWERBOOK_63, MACHINE_POWERBOOK_64, MACHINE_POWERBOOK_65, MACHINE_POWERBOOK_67, MACHINE_POWERBOOK_68, #endif /* !__powerpc__ */ MACHINE_LAST } machine_type; struct machine_ops { machine_type type; int (*lcd_backlight_probe) (void); void (*lcd_backlight_step) (int dir); void (*lcd_backlight_toggle) (int lvl); }; extern struct machine_ops *mops; #define PIDFILE "/var/run/pommed.pid" #define CONFFILE "/etc/pommed.conf" #define STEP_UP 1 #define STEP_DOWN -1 #endif /* !__POMMED_H__ */ pommed-1.39~dfsg/pommed/power.c0000664000175000017500000000516611571653265016135 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include "pommed.h" #include "evloop.h" #include "lcd_backlight.h" #include "power.h" /* Internal API - legacy procfs interface, ACPI or PMU */ int procfs_check_ac_state(void); static int prev_state; static int power_timer; /* sysfs power_supply class */ static int sysfs_check_ac_state(void) { FILE *fp; char ac_state; fp = fopen(SYSFS_POWER_AC_STATE, "r"); if (fp == NULL) return AC_STATE_ERROR; fread(&ac_state, 1, 1, fp); if (ferror(fp) != 0) { logdebug("power: Error reading sysfs AC state: %s\n", strerror(errno)); return AC_STATE_ERROR; } fclose(fp); if (ac_state == '1') return AC_STATE_ONLINE; if (ac_state == '0') return AC_STATE_OFFLINE; return AC_STATE_UNKNOWN; } static int check_ac_state(void) { int ret; ret = sysfs_check_ac_state(); if (ret == AC_STATE_ERROR) return procfs_check_ac_state(); return ret; } static void power_check_ac_state(int id, uint64_t ticks) { int ac_state; ac_state = check_ac_state(); if (ac_state == prev_state) return; else prev_state = ac_state; switch (ac_state) { case AC_STATE_ONLINE: logdebug("power: switched to AC\n"); mops->lcd_backlight_toggle(LCD_ON_AC_LEVEL); break; case AC_STATE_OFFLINE: logdebug("power: switched to battery\n"); mops->lcd_backlight_toggle(LCD_ON_BATT_LEVEL); break; case AC_STATE_ERROR: logmsg(LOG_ERR, "power: error reading AC state"); break; case AC_STATE_UNKNOWN: logmsg(LOG_INFO, "power: unknown AC state"); break; } } void power_init(void) { prev_state = check_ac_state(); power_timer = evloop_add_timer(POWER_TIMEOUT, power_check_ac_state); } void power_cleanup(void) { if (power_timer > 0) evloop_remove_timer(power_timer); } pommed-1.39~dfsg/pommed/power.h0000664000175000017500000000071711571653265016137 0ustar julienjulien/* * pommed - power.h */ #ifndef __POWER_H__ #define __POWER_H__ #define AC_STATE_ERROR -1 #define AC_STATE_UNKNOWN -2 #define AC_STATE_ONLINE 1 #define AC_STATE_OFFLINE 0 #define POWER_TIMEOUT 200 #ifdef __powerpc__ # define SYSFS_POWER_AC_STATE "/sys/class/power_supply/pmu-ac/online" #else # define SYSFS_POWER_AC_STATE "/sys/class/power_supply/ADP1/online" #endif void power_init(void); void power_cleanup(void); #endif /* !__POWER_H__ */ pommed-1.39~dfsg/pommed/sysfs_backlight.c0000664000175000017500000002353211571653265020155 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2006-2008,2010 Julien BLACHE * Copyright (C) 2006 Yves-Alexis Perez * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include "pommed.h" #include "conffile.h" #include "lcd_backlight.h" #include "dbus.h" enum { SYSFS_DRIVER_NONE, #ifdef __powerpc__ SYSFS_DRIVER_ATY128, SYSFS_DRIVER_RADEON, SYSFS_DRIVER_NVIDIA, SYSFS_DRIVER_RIVA, #else SYSFS_DRIVER_MBP, SYSFS_DRIVER_APPLE, SYSFS_DRIVER_NVIDIA, SYSFS_DRIVER_NOUVEAU, SYSFS_DRIVER_ACPI, #endif SYSFS_DRIVER_MAX }; /* sysfs backlight driver in use */ static int bck_driver = SYSFS_DRIVER_NONE; /* sysfs actual_brightness node path */ static char *actual_brightness[] = { "/dev/null", #ifdef __powerpc__ "/sys/class/backlight/aty128bl0/actual_brightness", "/sys/class/backlight/radeonbl0/actual_brightness", "/sys/class/backlight/nvidiabl0/actual_brightness", "/sys/class/backlight/rivabl0/actual_brightness", #else "/sys/class/backlight/mbp_backlight/actual_brightness", "/sys/class/backlight/apple_backlight/actual_brightness", "/sys/class/backlight/nvidia_backlight/actual_brightness", "/sys/class/backlight/nv_backlight/actual_brightness", "/sys/class/backlight/acpi_video0/actual_brightness", #endif }; /* sysfs brightness node path */ static char *brightness[] = { "/dev/null", #ifdef __powerpc__ "/sys/class/backlight/aty128bl0/brightness", "/sys/class/backlight/radeonbl0/brightness", "/sys/class/backlight/nvidiabl0/brightness", "/sys/class/backlight/rivabl0/brightness", #else "/sys/class/backlight/mbp_backlight/brightness", "/sys/class/backlight/apple_backlight/brightness", "/sys/class/backlight/nvidia_backlight/brightness", "/sys/class/backlight/nv_backlight/brightness", "/sys/class/backlight/acpi_video0/brightness", #endif }; /* sysfs max_brightness node path */ static char *max_brightness[] = { "/dev/null", #ifdef __powerpc__ "/sys/class/backlight/aty128bl0/max_brightness", "/sys/class/backlight/radeonbl0/max_brightness", "/sys/class/backlight/nvidiabl0/max_brightness", "/sys/class/backlight/rivabl0/max_brightness", #else "/sys/class/backlight/mbp_backlight/max_brightness", "/sys/class/backlight/apple_backlight/max_brightness", "/sys/class/backlight/nvidia_backlight/max_brightness", "/sys/class/backlight/nv_backlight/max_brightness", "/sys/class/backlight/acpi_video0/max_brightness", #endif }; struct _lcd_bck_info lcd_bck_info; static int sysfs_backlight_get(void) { int fd; int n; char buffer[8]; if (bck_driver == SYSFS_DRIVER_NONE) return 0; fd = open(actual_brightness[bck_driver], O_RDONLY); if (fd < 0) { logmsg(LOG_WARNING, "Could not open sysfs actual_brightness node: %s", strerror(errno)); return 0; } memset(buffer, 0, sizeof(buffer)); n = read(fd, buffer, sizeof(buffer) - 1); if (n < 1) { logmsg(LOG_WARNING, "Could not read sysfs actual_brightness node"); close(fd); return 0; } close(fd); return atoi(buffer); } static int sysfs_backlight_get_max(void) { int fd; int n; char buffer[8]; if (bck_driver == SYSFS_DRIVER_NONE) return 0; fd = open(max_brightness[bck_driver], O_RDONLY); if (fd < 0) { logmsg(LOG_WARNING, "Could not open sysfs max_brightness node: %s", strerror(errno)); return 0; } memset(buffer, 0, sizeof(buffer)); n = read(fd, buffer, sizeof(buffer) - 1); if (n < 1) { logmsg(LOG_WARNING, "Could not read sysfs max_brightness node"); close(fd); return 0; } close(fd); return atoi(buffer); } static void sysfs_backlight_set(int value) { FILE *fp; if (bck_driver == SYSFS_DRIVER_NONE) return; fp = fopen(brightness[bck_driver], "a"); if (fp == NULL) { logmsg(LOG_WARNING, "Could not open sysfs brightness node: %s", strerror(errno)); return; } fprintf(fp, "%d", value); fclose(fp); } void sysfs_backlight_step(int dir) { int val; int newval; if (bck_driver == SYSFS_DRIVER_NONE) return; val = sysfs_backlight_get(); if (dir == STEP_UP) { newval = val + lcd_sysfs_cfg.step; if (newval > lcd_bck_info.max) newval = lcd_bck_info.max; logdebug("LCD stepping +%d -> %d\n", lcd_sysfs_cfg.step, newval); } else if (dir == STEP_DOWN) { newval = val - lcd_sysfs_cfg.step; if (newval < SYSFS_BACKLIGHT_OFF) newval = SYSFS_BACKLIGHT_OFF; logdebug("LCD stepping -%d -> %d\n", lcd_sysfs_cfg.step, newval); } else return; sysfs_backlight_set(newval); mbpdbus_send_lcd_backlight(newval, val, LCD_USER); lcd_bck_info.level = newval; } void sysfs_backlight_toggle(int lvl) { int val; if (bck_driver == SYSFS_DRIVER_NONE) return; if (lcd_sysfs_cfg.on_batt == 0) return; val = sysfs_backlight_get(); if (val != lcd_bck_info.level) { mbpdbus_send_lcd_backlight(val, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = val; } if (lcd_bck_info.level == 0) return; switch (lvl) { case LCD_ON_AC_LEVEL: if (lcd_bck_info.level >= lcd_bck_info.ac_lvl) break; logdebug("LCD switching to AC level\n"); sysfs_backlight_set(lcd_bck_info.ac_lvl); mbpdbus_send_lcd_backlight(lcd_bck_info.ac_lvl, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_bck_info.ac_lvl; break; case LCD_ON_BATT_LEVEL: if (lcd_bck_info.level <= lcd_sysfs_cfg.on_batt) break; logdebug("LCD switching to battery level\n"); lcd_bck_info.ac_lvl = lcd_bck_info.level; sysfs_backlight_set(lcd_sysfs_cfg.on_batt); mbpdbus_send_lcd_backlight(lcd_sysfs_cfg.on_batt, lcd_bck_info.level, LCD_AUTO); lcd_bck_info.level = lcd_sysfs_cfg.on_batt; break; } } #ifdef __powerpc__ /* When brightness keys are handled by the kernel itself, * we're only updating our internal buffers */ void sysfs_backlight_step_kernel(int dir) { int val; val = sysfs_backlight_get(); logdebug("LCD stepping: %d -> %d\n", lcd_bck_info.level, val); mbpdbus_send_lcd_backlight(val, lcd_bck_info.level, LCD_USER); lcd_bck_info.level = val; } void sysfs_backlight_toggle_kernel(int lvl) { return; } #endif /* __powerpc__ */ /* We can't fix the config until we know the max backlight value, * so, here, fix_config() is static and called at probe time */ static void sysfs_backlight_fix_config(void) { if (lcd_sysfs_cfg.init < 0) lcd_sysfs_cfg.init = -1; if (lcd_sysfs_cfg.init > lcd_bck_info.max) lcd_sysfs_cfg.init = lcd_bck_info.max; if (lcd_sysfs_cfg.step < 1) lcd_sysfs_cfg.step = 1; if (lcd_sysfs_cfg.step > (lcd_bck_info.max / 2)) lcd_sysfs_cfg.step = lcd_bck_info.max / 2; if ((lcd_sysfs_cfg.on_batt > lcd_bck_info.max) || (lcd_sysfs_cfg.on_batt < SYSFS_BACKLIGHT_OFF)) lcd_sysfs_cfg.on_batt = 0; } /* Look for the backlight driver */ static int sysfs_backlight_probe(int driver) { if (access(brightness[driver], W_OK) != 0) { logdebug("Failed to access brightness node: %s\n", strerror(errno)); return -1; } if (access(actual_brightness[driver], R_OK) != 0) { logdebug("Failed to access actual_brightness node: %s\n", strerror(errno)); return -1; } if (access(max_brightness[driver], R_OK) != 0) { logdebug("Failed to access max_brightness node: %s\n", strerror(errno)); return -1; } bck_driver = driver; lcd_bck_info.max = sysfs_backlight_get_max(); /* Now we can fix the config */ sysfs_backlight_fix_config(); /* * Set the initial backlight level * The value has been sanity checked already */ if (lcd_sysfs_cfg.init > -1) { sysfs_backlight_set(lcd_sysfs_cfg.init); } lcd_bck_info.level = sysfs_backlight_get(); lcd_bck_info.ac_lvl = lcd_bck_info.level; return 0; } #ifdef __powerpc__ int aty128_sysfs_backlight_probe(void) { return sysfs_backlight_probe(SYSFS_DRIVER_ATY128); } int r9x00_sysfs_backlight_probe(void) { return sysfs_backlight_probe(SYSFS_DRIVER_RADEON); } int nvidia_sysfs_backlight_probe(void) { return sysfs_backlight_probe(SYSFS_DRIVER_NVIDIA); } #else int mbp_sysfs_backlight_probe(void) { int drv; int ret; for (drv = SYSFS_DRIVER_NONE + 1; drv < SYSFS_DRIVER_MAX; drv++) { ret = sysfs_backlight_probe(drv); if (ret == 0) return 0; } /* Probe failed, wire up native driver instead */ switch (mops->type) { case MACHINE_MACBOOKPRO_3: case MACHINE_MACBOOKPRO_4: case MACHINE_MACBOOKPRO_5: case MACHINE_MACBOOKPRO_6: case MACHINE_MACBOOK_5: case MACHINE_MACBOOK_6: case MACHINE_MACBOOKAIR_2: case MACHINE_MACBOOKAIR_3: logmsg(LOG_INFO, "sysfs backlight probe failed, falling back to nv8600mgt"); ret = nv8600mgt_backlight_probe(); if (ret == 0) { /* Wire up fallback native driver */ mops->lcd_backlight_step = nv8600mgt_backlight_step; mops->lcd_backlight_toggle = nv8600mgt_backlight_toggle; } return ret; default: logmsg(LOG_ERR, "sysfs backlight probe failed, no fallback for this machine"); return -1; } return -1; } #endif pommed-1.39~dfsg/pommed/timerfd-syscalls.h0000664000175000017500000000221711571653265020265 0ustar julienjulien/* * timerfd syscall numbers and definitions */ #ifndef _LINUX_TIMERFD_SYSCALLS_H_ #define _LINUX_TIMERFD_SYSCALLS_H_ #ifndef __NR_timerfd_create # if defined(__x86_64__) # define __NR_timerfd_create 283 # define __NR_timerfd_settime 286 # define __NR_timerfd_gettime 287 # elif defined(__i386__) # define __NR_timerfd_create 322 # define __NR_timerfd_settime 325 # define __NR_timerfd_gettime 326 # elif defined(__powerpc__) # define __NR_timerfd_create 306 # define __NR_timerfd_settime 311 # define __NR_timerfd_gettime 312 # else # error Unsupported architecture # endif #endif /* Defined in include/linux/timerfd.h */ #define TFD_TIMER_ABSTIME (1 << 0) static inline int timerfd_create(int clockid, int flags) { return syscall(__NR_timerfd_create, clockid, flags); } static inline int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *curr_value) { return syscall(__NR_timerfd_settime, fd, flags, new_value, curr_value); } static inline int timerfd_gettime(int fd, struct itimerspec *curr_value) { return syscall(__NR_timerfd_gettime, fd, curr_value); } #endif /* _LINUX_TIMERFD_SYSCALLS_H_ */ pommed-1.39~dfsg/pommed/video.c0000664000175000017500000000363311571653265016104 0ustar julienjulien/* * pommed - Apple laptops hotkeys handler daemon * * Copyright (C) 2007, 2009 Julien BLACHE * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "pommed.h" #include "dbus.h" #include "video.h" void video_switch(void) { mbpdbus_send_video_switch(); } int video_vt_active(int vt) { int fd; char buf[16]; struct vt_stat vtstat; int ret; ret = snprintf(buf, sizeof(buf), "/dev/tty%d", vt); if ((ret < 0) || (ret >= sizeof(buf))) return 1; /* Try to open the VT the client's X session is running on */ fd = open(buf, O_RDWR); if ((fd < 0) && (errno == EACCES)) fd = open(buf, O_RDONLY); if ((fd < 0) && (errno == EACCES)) fd = open(buf, O_WRONLY); /* Can't open the VT, this shouldn't happen; maybe X is remote? */ if (fd < 0) return 0; /* The VT isn't a tty, WTF?! */ if (!isatty(fd)) { close(fd); return 0; } /* Get VT state, includes currently-active VT number */ ret = ioctl(fd, VT_GETSTATE, &vtstat); close(fd); if (ret < 0) return 1; return (vt == vtstat.v_active); } pommed-1.39~dfsg/pommed/video.h0000664000175000017500000000023211571653265016101 0ustar julienjulien/* * pommed - video.h */ #ifndef __VIDEO_H__ #define __VIDEO_H__ void video_switch(void); int video_vt_active(int vt); #endif /* !__VIDEO_H__ */ pommed-1.39~dfsg/wmpomme/0000775000175000017500000000000011571653265015025 5ustar julienjulienpommed-1.39~dfsg/wmpomme/.gitignore0000664000175000017500000000001111571653265017005 0ustar julienjulienwmpomme pommed-1.39~dfsg/wmpomme/Makefile0000664000175000017500000000151711571653265016471 0ustar julienjulienCC = gcc DBUS_CFLAGS = $(shell pkg-config dbus-1 --cflags) -DDBUS_API_SUBJECT_TO_CHANGE DBUS_LIBS = $(shell pkg-config dbus-1 --libs) TIMERFD_CFLAGS = $(shell test -e /usr/include/sys/timerfd.h || echo -DNO_SYS_TIMERFD_H) CFLAGS = -g -O2 -Wall $(DBUS_CFLAGS) $(TIMERFD_CFLAGS) LDLIBS = -lrt -lXpm -lXext -lX11 $(DBUS_LIBS) SOURCES = wmgeneral.c wmpomme.c \ ../client-common/dbus-client.c \ ../client-common/video-client.c OBJS = $(SOURCES:%.c=%.o) wmpomme: $(OBJS) wmpomme.o: wmpomme.c wmgeneral.h wmpomme-master.xpm ../client-common/dbus-client.h wmgeneral.o: wmgeneral.c wmgeneral.h ../client-common/dbus-client.o: ../client-common/dbus-client.c ../client-common/dbus-client.h ../client-common/dbus-video.o: ../client-common/video-client.c ../client-common/video-client.h clean: rm -f wmpomme $(OBJS) rm -f *~ ../client-common/*~ pommed-1.39~dfsg/wmpomme/timerfd-syscalls.h0000664000175000017500000000221711571653265020465 0ustar julienjulien/* * timerfd syscall numbers and definitions */ #ifndef _LINUX_TIMERFD_SYSCALLS_H_ #define _LINUX_TIMERFD_SYSCALLS_H_ #ifndef __NR_timerfd_create # if defined(__x86_64__) # define __NR_timerfd_create 283 # define __NR_timerfd_settime 286 # define __NR_timerfd_gettime 287 # elif defined(__i386__) # define __NR_timerfd_create 322 # define __NR_timerfd_settime 325 # define __NR_timerfd_gettime 326 # elif defined(__powerpc__) # define __NR_timerfd_create 306 # define __NR_timerfd_settime 311 # define __NR_timerfd_gettime 312 # else # error Unsupported architecture # endif #endif /* Defined in include/linux/timerfd.h */ #define TFD_TIMER_ABSTIME (1 << 0) static inline int timerfd_create(int clockid, int flags) { return syscall(__NR_timerfd_create, clockid, flags); } static inline int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *curr_value) { return syscall(__NR_timerfd_settime, fd, flags, new_value, curr_value); } static inline int timerfd_gettime(int fd, struct itimerspec *curr_value) { return syscall(__NR_timerfd_gettime, fd, curr_value); } #endif /* _LINUX_TIMERFD_SYSCALLS_H_ */ pommed-1.39~dfsg/wmpomme/wmgeneral.c0000664000175000017500000003423611571653265017162 0ustar julienjulien/* * $Log: wmgeneral.c,v $ * Revision 1.1 1999/08/15 15:38:38 carsten * Added wmwave project to repository * * Revision 1.3 1999/07/19 21:31:46 dan * Added -c option * * Revision 1.2 1999/06/16 01:29:24 dan * Changed the logs to include changes made by me * Best viewed with vim5, using ts=4 wmgeneral was taken from wmppp. It has a lot of routines which most of the wm* programs use. ------------------------------------------------------------ Author: Martijn Pieterse (pieterse@xs4all.nl) --- CHANGES: --- 14/09/1998 (Dave Clark, clarkd@skyia.com) * Updated createXBMfromXPM routine * Now supports >256 colors 11/09/1998 (Martijn Pieterse, pieterse@xs4all.nl) * Removed a bug from parse_rcfile. You could not use "start" in a command if a label was also start. * Changed the needed geometry string. We don't use window size, and don't support negative positions. 03/09/1998 (Martijn Pieterse, pieterse@xs4all.nl) * Added parse_rcfile2 02/09/1998 (Martijn Pieterse, pieterse@xs4all.nl) * Added -geometry support (untested) 28/08/1998 (Martijn Pieterse, pieterse@xs4all.nl) * Added createXBMfromXPM routine * Saves a lot of work with changing xpm's. 02/05/1998 (Martijn Pieterse, pieterse@xs4all.nl) * changed the read_rc_file to parse_rcfile, as suggested by Marcelo E. Magallon * debugged the parse_rc file. 30/04/1998 (Martijn Pieterse, pieterse@xs4all.nl) * Ripped similar code from all the wm* programs, and put them in a single file. */ #include #include #include #include #include #include #include #include #include #include "wmgeneral.h" /*****************/ /* X11 Variables */ /*****************/ Display *display; Window Root; int screen; int x_fd; int d_depth; XSizeHints mysizehints; XWMHints mywmhints; Pixel back_pix, fore_pix; char *Geometry = ""; Window iconwin, win; GC NormalGC; XpmIcon wmgen; Pixmap pixmask; /*****************/ /* Mouse Regions */ /*****************/ typedef struct { int enable; int top; int bottom; int left; int right; } MOUSE_REGION; MOUSE_REGION mouse_region[MAX_MOUSE_REGION]; /***********************/ /* Function Prototypes */ /***********************/ static void GetXPM(XpmIcon *, char **); static Pixel GetColor(char *); void RedrawWindow(void); void AddMouseRegion(int, int, int, int, int); int CheckMouseRegion(int, int); /*******************************************************************************\ |* parse_rcfile \*******************************************************************************/ void parse_rcfile(const char *filename, rckeys *keys) { char *p,*q; char temp[128]; char *tokens = " :\t\n"; FILE *fp; int i,key; fp = fopen(filename, "r"); if (fp) { while (fgets(temp, 128, fp)) { key = 0; q = strdup(temp); q = strtok(q, tokens); while (key >= 0 && keys[key].label) { if ((!strcmp(q, keys[key].label))) { p = strstr(temp, keys[key].label); p += strlen(keys[key].label); p += strspn(p, tokens); if ((i = strcspn(p, "#\n"))) p[i] = 0; free(*keys[key].var); *keys[key].var = strdup(p); key = -1; } else key++; } free(q); } fclose(fp); } } /*******************************************************************************\ |* parse_rcfile2 \*******************************************************************************/ void parse_rcfile2(const char *filename, rckeys2 *keys) { char *p; char temp[128]; char *tokens = " :\t\n"; FILE *fp; int i,key; char *family = NULL; fp = fopen(filename, "r"); if (fp) { while (fgets(temp, 128, fp)) { key = 0; while (key >= 0 && keys[key].label) { if ((p = strstr(temp, keys[key].label))) { p += strlen(keys[key].label); p += strspn(p, tokens); if ((i = strcspn(p, "#\n"))) p[i] = 0; free(*keys[key].var); *keys[key].var = strdup(p); key = -1; } else key++; } } fclose(fp); } free(family); } /*******************************************************************************\ |* GetXPM \*******************************************************************************/ static void GetXPM(XpmIcon *wmgen, char *pixmap_bytes[]) { XWindowAttributes attributes; int err; /* For the colormap */ XGetWindowAttributes(display, Root, &attributes); wmgen->attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions); err = XpmCreatePixmapFromData(display, Root, pixmap_bytes, &(wmgen->pixmap), &(wmgen->mask), &(wmgen->attributes)); if (err != XpmSuccess) { fprintf(stderr, "Not enough free colorcells.\n"); exit(1); } } /*******************************************************************************\ |* GetColor \*******************************************************************************/ static Pixel GetColor(char *name) { XColor color; XWindowAttributes attributes; XGetWindowAttributes(display, Root, &attributes); color.pixel = 0; if (!XParseColor(display, attributes.colormap, name, &color)) { fprintf(stderr, "wm.app: can't parse %s.\n", name); } else if (!XAllocColor(display, attributes.colormap, &color)) { fprintf(stderr, "wm.app: can't allocate %s.\n", name); } return color.pixel; } /*******************************************************************************\ |* flush_expose \*******************************************************************************/ static int flush_expose(Window w) { XEvent dummy; int i=0; while (XCheckTypedWindowEvent(display, w, Expose, &dummy)) i++; return i; } /*******************************************************************************\ |* RedrawWindow \*******************************************************************************/ void RedrawWindow(void) { flush_expose(iconwin); XCopyArea(display, wmgen.pixmap, iconwin, NormalGC, 0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0); flush_expose(win); XCopyArea(display, wmgen.pixmap, win, NormalGC, 0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0); } /*******************************************************************************\ |* RedrawWindowXY \*******************************************************************************/ void RedrawWindowXY(int x, int y) { flush_expose(iconwin); XCopyArea(display, wmgen.pixmap, iconwin, NormalGC, x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0); flush_expose(win); XCopyArea(display, wmgen.pixmap, win, NormalGC, x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0); } /*******************************************************************************\ |* AddMouseRegion \*******************************************************************************/ void AddMouseRegion(int index, int left, int top, int right, int bottom) { if (index < MAX_MOUSE_REGION) { mouse_region[index].enable = 1; mouse_region[index].top = top; mouse_region[index].left = left; mouse_region[index].bottom = bottom; mouse_region[index].right = right; } } /*******************************************************************************\ |* CheckMouseRegion \*******************************************************************************/ int CheckMouseRegion(int x, int y) { int i; int found; found = 0; for (i=0; i= mouse_region[i].left && y <= mouse_region[i].bottom && y >= mouse_region[i].top) found = 1; } if (!found) return -1; return (i-1); } /*******************************************************************************\ |* createXBMfromXPM \*******************************************************************************/ void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) { int i,j,k; int width, height, numcol, depth; int zero=0; unsigned char bwrite; int bcount; int curpixel; sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth); for (k=0; k!=depth; k++) { zero <<=8; zero |= xpm[1][k]; } for (i=numcol+1; i < numcol+sy+1; i++) { bcount = 0; bwrite = 0; for (j=0; j>= 1; curpixel=0; for (k=0; k!=depth; k++) { curpixel <<=8; curpixel |= xpm[i][j+k]; } if ( curpixel != zero ) { bwrite += 128; } bcount++; if (bcount == 8) { *xbm = bwrite; xbm++; bcount = 0; bwrite = 0; } } } } /*******************************************************************************\ |* copyXPMArea *| \*******************************************************************************/ void copyXPMArea(int x, int y, int sx, int sy, int dx, int dy) { XCopyArea(display, wmgen.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy); } /*******************************************************************************\ |* copyXBMArea *| \*******************************************************************************/ void copyXBMArea(int x, int y, int sx, int sy, int dx, int dy) { XCopyArea(display, wmgen.mask, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy); } /*******************************************************************************\ |* setMaskXY *| \*******************************************************************************/ void setMaskXY(int x, int y) { XShapeCombineMask(display, win, ShapeBounding, x, y, pixmask, ShapeSet); XShapeCombineMask(display, iconwin, ShapeBounding, x, y, pixmask, ShapeSet); } /*******************************************************************************\ |* openXwindow *| \*******************************************************************************/ void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bits, int pixmask_width, int pixmask_height) { unsigned int borderwidth = 1; XClassHint classHint; char *display_name = NULL; char *wname = argv[0]; XTextProperty name; XGCValues gcv; unsigned long gcm; char *geometry = NULL; int dummy=0; int i, wx, wy; for (i=1; argv[i]; i++) { if (!strcmp(argv[i], "-display")) { display_name = argv[i+1]; i++; } if (!strcmp(argv[i], "-geometry")) { geometry = argv[i+1]; i++; } } if (!(display = XOpenDisplay(display_name))) { fprintf(stderr, "%s: can't open display %s\n", wname, XDisplayName(display_name)); exit(1); } screen = DefaultScreen(display); Root = RootWindow(display, screen); d_depth = DefaultDepth(display, screen); x_fd = XConnectionNumber(display); /* Convert XPM to XImage */ GetXPM(&wmgen, pixmap_bytes); /* Create a window to hold the stuff */ mysizehints.flags = USSize | USPosition; mysizehints.x = 0; mysizehints.y = 0; back_pix = GetColor("white"); fore_pix = GetColor("black"); XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints, &mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy); mysizehints.width = 64; mysizehints.height = 64; win = XCreateSimpleWindow(display, Root, mysizehints.x, mysizehints.y, mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix); iconwin = XCreateSimpleWindow(display, win, mysizehints.x, mysizehints.y, mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix); /* Activate hints */ XSetWMNormalHints(display, win, &mysizehints); classHint.res_name = wname; classHint.res_class = wname; XSetClassHint(display, win, &classHint); XSelectInput(display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask); XSelectInput(display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask); if (XStringListToTextProperty(&wname, 1, &name) == 0) { fprintf(stderr, "%s: can't allocate window name\n", wname); exit(1); } XSetWMName(display, win, &name); /* Create GC for drawing */ gcm = GCForeground | GCBackground | GCGraphicsExposures; gcv.foreground = fore_pix; gcv.background = back_pix; gcv.graphics_exposures = 0; NormalGC = XCreateGC(display, Root, gcm, &gcv); /* ONLYSHAPE ON */ pixmask = XCreateBitmapFromData(display, win, pixmask_bits, pixmask_width, pixmask_height); XShapeCombineMask(display, win, ShapeBounding, 0, 0, pixmask, ShapeSet); XShapeCombineMask(display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet); /* ONLYSHAPE OFF */ mywmhints.initial_state = WithdrawnState; mywmhints.icon_window = iconwin; mywmhints.icon_x = mysizehints.x; mywmhints.icon_y = mysizehints.y; mywmhints.window_group = win; mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint; XSetWMHints(display, win, &mywmhints); XSetCommand(display, win, argv, argc); XMapWindow(display, win); if (geometry) { if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) { fprintf(stderr, "Bad geometry string.\n"); exit(1); } XMoveWindow(display, win, wx, wy); } } pommed-1.39~dfsg/wmpomme/wmgeneral.h0000664000175000017500000000215511571653265017162 0ustar julienjulien#ifndef WMGENERAL_H_INCLUDED #define WMGENERAL_H_INCLUDED /***********/ /* Defines */ /***********/ #define MAX_MOUSE_REGION (16) /************/ /* Typedefs */ /************/ typedef struct _rckeys rckeys; struct _rckeys { const char *label; char **var; }; typedef struct _rckeys2 rckeys2; struct _rckeys2 { const char *family; const char *label; char **var; }; typedef struct { Pixmap pixmap; Pixmap mask; XpmAttributes attributes; } XpmIcon; /*******************/ /* Global variable */ /*******************/ extern Display *display; extern int x_fd; /***********************/ /* Function Prototypes */ /***********************/ void AddMouseRegion(int index, int left, int top, int right, int bottom); int CheckMouseRegion(int x, int y); void openXwindow(int argc, char *argv[], char **, char *, int, int); void RedrawWindow(void); void RedrawWindowXY(int x, int y); void createXBMfromXPM(char *, char **, int, int); void copyXPMArea(int, int, int, int, int, int); void copyXBMArea(int, int, int, int, int, int); void setMaskXY(int, int); void parse_rcfile(const char *, rckeys *); #endif pommed-1.39~dfsg/wmpomme/wmpomme-master.xpm0000664000175000017500000014203611571653265020533 0ustar julienjulien/* XPM */ static char * wmmbp_master_xpm[] = { "240 100 109 2", ". c #0000FF", " c None", "+ c #202020", "@ c #000000", "# c #C7C5C8", "$ c #004941", "% c #20B2AE", "& c #107D79", "* c #188A86", "= c #B60317", "- c #B91216", "; c #BE2813", "> c #C33D11", ", c #C8530F", "' c #CD680C", ") c #D27D0A", "! c #D79308", "~ c #DCA805", "{ c #E1BE03", "] c #E7DC00", "^ c #D2DD00", "/ c #BDDE00", "( c #A8E000", "_ c #93E100", ": c #7EE200", "< c #69E400", "[ c #7EE100", "} c #7DE200", "| c #7CE200", "1 c #7BE200", "2 c #7AE200", "3 c #79E200", "4 c #78E200", "5 c #77E200", "6 c #76E200", "7 c #75E200", "8 c #74E200", "9 c #73E200", "0 c #72E300", "a c #71E300", "b c #70E300", "c c #6FE300", "d c #6EE300", "e c #6DE300", "f c #6CE300", "g c #6BE300", "h c #6AE300", "i c #69E300", "j c #68E400", "k c #00EA00", "l c #B91516", "m c #BE2A13", "n c #C33F11", "o c #C8550E", "p c #CD6A0C", "q c #D2800A", "r c #D79507", "s c #DCAA05", "t c #E1C003", "u c #BA1715", "v c #BF2C13", "w c #C44211", "x c #C9570E", "y c #CE6C0C", "z c #D38209", "A c #D89707", "B c #DDAC05", "C c #E2C202", "D c #BA1915", "E c #BF2E13", "F c #C44410", "G c #C9590E", "H c #CE6E0C", "I c #D38409", "J c #D89907", "K c #DDAF04", "L c #E2C402", "M c #B60617", "N c #BB1B15", "O c #C03013", "P c #C54610", "Q c #CA5B0E", "R c #CF710B", "S c #D48609", "T c #D99B07", "U c #DEB104", "V c #E3C602", "W c #B60817", "X c #BB1D15", "Y c #C03312", "Z c #C54810", "` c #CA5D0E", " . c #CF730B", ".. c #D48809", "+. c #D99D06", "@. c #DEB304", "#. c #E3C802", "$. c #B71612", "%. c #7CE100", "&. c #007D71", "*. c #B60418", "=. c #E8DC00", "-. c #00EB00", ";. c #283C38", ">. c #F7F3FF", ",. c #C7C3C7", "'. c #494949", "). c #7A7A7A", "!. c #BCBCBC", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . . @ @ @ @ @ @ @ @ @ @ @ . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . @ @ @ @ @ @ @ @ @ @ # . . . + . + $ + + + + $ + $ + + + + $ + + + + + $ + + + + $ + $ + + + + $ + + + + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # . . # # # # # # # # # # # . . . + . + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # . . . + . + $ + + + + $ + $ + + + + $ + + + + + $ + + + + $ + $ + + + + $ + + + + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # . . . + . + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + + $ + + $ + + + + $ + $ + + + + $ + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + + + + + + $ $ $ $ + + + $ $ $ $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + % % % % + + + $ $ $ $ & + & % % % % * + & % % % % & + & $ $ $ $ & + & % % % % & + & % % % % * + & % % % % & + & % % % % * + & % % % % * + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + % + + + + $ + % + + + + $ + $ + + + + % + % + + + + % + % + + + + % + + % + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + % + + + + $ + % + + + + $ + $ + + + + % + % + + + + % + % + + + + % + + % + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + % + + + + $ + % + + + + $ + $ + + + + % + % + + + + % + % + + + + % + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + & $ $ $ $ & + + $ $ $ $ & + & % % % % & + & % % % % & + & % % % % & + & % % % % & + & % % % % & + + $ $ $ $ & + & % % % % & + & % % % % & + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + % + + + + $ + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + $ + + + + % + % + + + + % + $ + + + + % + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + % + + + + $ + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + $ + + + + % + % + + + + % + $ + + + + % + + % + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + % + + + + % + $ + + + + % + % + + + + $ + $ + + + + % + $ + + + + % + $ + + + + % + % + + + + % + $ + + + + % + % + + + + % + $ + + + + % + + % + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + % % % % + + + $ $ $ $ & + & % % % % & + & % % % % & + + $ $ $ $ & + & % % % % & + & % % % % & + + $ $ $ $ & + & % % % % & + & % % % % & + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . = - ; > , ' ) ! ~ { ] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . = l m n o p q r s t ] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . = u v w x y z A B C ] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . = D E F G H I J K L ] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . M N O P Q R S T U V ] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . W X Y Z ` ...+.@.#.] ] ] ] ] ] ^ / ( _ : < [ [ [ } | 1 1 2 3 3 4 5 5 6 7 8 8 9 0 0 a b c c d e e f g g h i j j j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . %.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + % % % + + + $ $ $ &.+ &.% % % &.+ &.% % % &.+ &.$ $ $ &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ + + + + + + + + + + + + + + + + + + . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + $ + + + % + $ + + + % + $ + + + % + % + + + % + % + + + $ + % + + + $ + $ + + + % + % + + + % + % + + + % + + + + + + + + + + + + % + + + + + + . @ @ *.*.@ @ @ @ =.=.@ @ @ @ -.-.@ @ @ @ ;.;.@ @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + $ + + + % + $ + + + % + $ + + + % + % + + + % + % + + + $ + % + + + $ + $ + + + % + % + + + % + % + + + % + + % + + + + % + + + + % + + + + + + . @ *.>.*.*.@ @ =.>.=.=.@ @ -.>.-.-.@ @ ;.;.;.;.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ &.$ $ $ &.+ + $ $ $ &.+ &.% % % &.+ + % % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ + $ $ $ &.+ $ % % % $ + &.% % % &.+ + &.+ + + + &.+ + + % + + + + + + + . @ *.*.*.*.@ @ =.=.=.=.@ @ -.-.-.-.@ @ ;.;.;.;.@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + $ + + + % + % + + + $ + $ + + + % + $ + + + % + $ + + + % + % + + + % + $ + + + % + % + + + % + $ + + + % + + + + + + + + + + + % + + + + + + + . @ @ *.*.@ @ @ @ =.=.@ @ @ @ -.-.@ @ @ @ ;.;.@ @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + $ + + + % + % + + + $ + $ + + + % + $ + + + % + $ + + + % + % + + + % + $ + + + % + % + + + % + $ + + + % + + % + + + + % + + % + + + + + + + + . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + % % % + + + $ $ $ % + &.% % % &.+ &.% % % &.+ + $ $ $ &.+ &.% % % &.+ &.% % % &.+ + $ $ $ &.+ &.% % % &.+ &.% % % &.+ + &.+ + + + &.+ + % + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ $ % % % $ + &.% % % + + &.% % % &.+ &.% % % + + &.% % % &.+ &.% % % &.+ &.% % % &.+ &.$ $ $ &.+ + $ $ $ &.+ + $ $ $ &.+ &.$ $ $ &.+ &.$ $ $ + + % $ $ $ % + &.% % % + + &.% % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ &.% % % &.+ &.$ $ $ &.+ &.$ $ $ &.+ &.$ $ $ &.+ &.$ $ $ &.+ &.$ $ $ &.+ &.% % % &.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + % + + + % + % + + + $ + % + + + % + % + + + $ + % + + + $ + % + + + $ + % + + + % + $ + + + % + $ + + + % + % + + + % + % + + + $ + % % + % % + % + + + % + % + + + % + % + + + % + % + + + % + % + + + % + % + + + $ + $ + % + $ + % + + + % + % + + + % + % + + + % + % + + + % + % + + + % + $ + + + % + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + % + + + % + % + + + $ + % + + + % + % + + + $ + % + + + $ + % + + + $ + % + + + % + $ + + + % + $ + + + % + % + + % $ + % + + + $ + % + % + % + % + + + % + % + + + % + % + + + % + % + + + % + % + + + % + % + + + $ + $ + % + $ + % + + + % + % + + + % + % + + + % + $ % + % $ + % + + + % + $ + + % $ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ &.% % % &.+ &.% % % + + &.$ $ $ + + &.$ $ $ &.+ &.% % % + + &.% % % + + &.$ % % &.+ &.% % % &.+ + $ $ $ &.+ + $ $ $ &.+ &.% % $ + + &.$ $ $ + + &.$ $ $ &.+ &.$ $ $ &.+ &.$ $ $ &.+ &.% % % &.+ &.% $ $ &.+ &.% % % + + &.% % % &.+ + $ &.$ + + &.$ $ $ &.+ &.$ $ $ &.+ &.$ $ $ &.+ + $ % $ + + &.% % % &.+ + $ % $ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + % + + + % + % + + + $ + % + + + % + % + + + $ + % + + + $ + % + + + % + % + + + % + $ + + + % + $ + + + % + % + + % $ + % + + + $ + % + + + % + % + + + % + % + + + % + % + + + $ + % + % + % + % + + + % + $ + + + % + $ + % + $ + % + + + % + % + + + % + % + % + % + $ % + % $ + $ + + + % + $ % + + $ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ % + + + % + % + + + % + % + + + $ + % + + + % + % + + + $ + % + + + $ + % + + + % + % + + + % + $ + + + % + $ + + + % + % + + + % + % + + + $ + % + + + % + % + + + % + % + + + % + % + + + $ + % + + % % + % + + + % + $ + + + % + $ + % + $ + % + + + % + % + + + % + % % + % % + % + + + % + $ + + + % + % + + + $ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ &.$ $ $ &.+ &.% % % + + &.% % % &.+ % % % % + + &.% % % &.+ % $ $ $ + + &.% % % &.+ &.$ $ $ &.+ + $ $ $ % + &.% % % &.+ &.$ $ $ &.+ &.% % % $ + &.$ $ $ &.+ % $ $ $ % + &.% % % &.+ &.$ $ $ + + &.% % % &.+ &.$ $ $ &.+ &.% % % &.+ + $ &.$ + + $ % % % % + + % % % + + % $ $ $ % + &.$ $ $ % &.&.% % % &.+ &.% % % &.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,.. . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + + + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + + + + + $ + + + $ + $ + + + $ + $ + + + $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + + $ + + $ + + + $ + $ + + + $ + $ + + + $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + + + + + $ + + + $ + $ + + + $ + $ + + + $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + $ + + + $ + + $ + + $ + + + $ + $ + + + $ + $ + + + $ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + $ + + + $ $ $ + + + $ $ $ + + + $ $ $ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "$ &.% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "'.).!.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; pommed-1.39~dfsg/wmpomme/wmpomme.10000664000175000017500000000103511571653265016567 0ustar julienjulien.TH WMPOMME 1 "2008-11-09" .SH NAME wmpomme \- WindowMaker dockapp for use with pommed .SH SYNOPSIS .B wmpomme .BI [\-r \ time ] .B [\-v] .SH DESCRIPTION .B wmpomme displays, as a WindowMaker dockapp, the state of the devices controlled by .B pommed .SH OPTIONS .TP .BI \-v Display the version .TP .BI \-display \ display This option specifies the X server to contact; see X(1). .SH AUTHOR .B wmpomme was written by Julien BLACHE , based on .B wmwave by Carsten Schuermann .SH SEE ALSO pommed(1) pommed-1.39~dfsg/wmpomme/wmpomme.c0000664000175000017500000004402311571653265016655 0ustar julienjulien/* * wmpomme -- WindowMaker dockapp for use with pommed * * Copyright (C) 2006-2009 Julien BLACHE * * Based on wmwave by Carsten Schuermann * wmwave derived from: * Dan Piponi dan@tanelorn.demon.co.uk * http://www.tanelorn.demon.co.uk * who derived it from code originally contained * in wmsysmon by Dave Clark (clarkd@skynet.ca) * * 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; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef NO_SYS_TIMERFD_H # include #else # include "timerfd-syscalls.h" #endif #include "wmgeneral.h" #include "wmpomme-master.xpm" #include "../client-common/dbus-client.h" #include "../client-common/video-client.h" struct { int lcd_lvl; int lcd_max; int kbd_lvl; int kbd_max; int snd_lvl; int snd_max; int snd_mute; int ambient_l; int ambient_r; int ambient_max; } mbp; #define DISPLAY_TYPE_DBUS_NOK (1 << 0) #define DISPLAY_TYPE_NO_DATA (1 << 1) #define DISPLAY_TYPE_MACBOOK (1 << 2) #define DISPLAY_TYPE_AMBIENT (1 << 3) #define DISPLAY_MASK_TYPE (0xffff) #define DISPLAY_TYPE(d) (d & DISPLAY_MASK_TYPE) #define DISPLAY_FLAG_UPDATE (1 << 16) #define DISPLAY_MASK_FLAGS (0xffff0000) #define DISPLAY_FLAGS(d) (d & DISPLAY_MASK_FLAGS) unsigned int mbpdisplay = DISPLAY_TYPE_DBUS_NOK; char wmmbp_mask_bits[64*64]; int wmmbp_mask_width = 64; int wmmbp_mask_height = 64; #define WMPOMME_VERSION "0.2" char *ProgName; DBusError dbus_err; DBusConnection *conn; void wmmbp_get_values(void); int wmmbp_dbus_init(void) { unsigned int signals; signals = MBP_DBUS_SIG_LCD | MBP_DBUS_SIG_KBD | MBP_DBUS_SIG_VOL | MBP_DBUS_SIG_MUTE | MBP_DBUS_SIG_LIGHT | MBP_DBUS_SIG_VIDEO; conn = mbp_dbus_init(&dbus_err, signals); if (conn == NULL) { mbpdisplay = DISPLAY_FLAG_UPDATE | DISPLAY_TYPE_DBUS_NOK; return -1; } else wmmbp_get_values(); return 0; } /* Forward */ void wmmbp_video_getvtstate_cb(DBusPendingCall *pending, void *status); void mbp_dbus_listen(void) { DBusMessage *msg; int scratch; if (conn == NULL) return; while (1) { dbus_connection_read_write(conn, 0); msg = dbus_connection_pop_message(conn); if (msg == NULL) return; if (dbus_message_is_signal(msg, "org.pommed.signal.ambientLight", "ambientLight")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.ambient_l, DBUS_TYPE_UINT32, &scratch, /* previous left */ DBUS_TYPE_UINT32, &mbp.ambient_r, DBUS_TYPE_UINT32, &scratch, /* previous right */ DBUS_TYPE_UINT32, &mbp.ambient_max, DBUS_TYPE_INVALID); if (mbpdisplay & DISPLAY_TYPE_AMBIENT) mbpdisplay |= DISPLAY_FLAG_UPDATE; } else if (dbus_message_is_signal(msg, "org.pommed.signal.lcdBacklight", "lcdBacklight")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.lcd_lvl, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &mbp.lcd_max, DBUS_TYPE_UINT32, &scratch, /* who */ DBUS_TYPE_INVALID); if (mbpdisplay & DISPLAY_TYPE_MACBOOK) mbpdisplay |= DISPLAY_FLAG_UPDATE; } else if (dbus_message_is_signal(msg, "org.pommed.signal.kbdBacklight", "kbdBacklight")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.kbd_lvl, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &mbp.kbd_max, DBUS_TYPE_UINT32, &scratch, /* who */ DBUS_TYPE_INVALID); if (mbpdisplay & (DISPLAY_TYPE_MACBOOK | DISPLAY_TYPE_AMBIENT)) mbpdisplay |= DISPLAY_FLAG_UPDATE; } else if (dbus_message_is_signal(msg, "org.pommed.signal.audioVolume", "audioVolume")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.snd_lvl, DBUS_TYPE_UINT32, &scratch, /* previous */ DBUS_TYPE_UINT32, &mbp.snd_max, DBUS_TYPE_INVALID); if (mbpdisplay & DISPLAY_TYPE_MACBOOK) mbpdisplay |= DISPLAY_FLAG_UPDATE; } else if (dbus_message_is_signal(msg, "org.pommed.signal.audioMute", "audioMute")) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, &mbp.snd_mute, DBUS_TYPE_INVALID); if (mbpdisplay & DISPLAY_TYPE_MACBOOK) mbpdisplay |= DISPLAY_FLAG_UPDATE; } else if (dbus_message_is_signal(msg, "org.pommed.signal.videoSwitch", "videoSwitch")) { int vtnum; int vtstate; int ret; vtnum = mbp_get_x_vtnum(display); ret = mbp_call_video_getvtstate(vtnum, wmmbp_video_getvtstate_cb, &vtstate); if ((ret < 0) || (vtstate < 0)) fprintf(stderr, "video getVTState call failed !\n"); else if (vtstate == 1) mbp_video_switch(); } else if (dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected")) { fprintf(stderr, "DBus disconnected\n"); mbpdisplay = DISPLAY_FLAG_UPDATE | DISPLAY_TYPE_DBUS_NOK; mbp_dbus_cleanup(); conn = NULL; dbus_message_unref(msg); break; } dbus_message_unref(msg); } } /* DBus method call callbacks */ void wmmbp_lcd_getlevel_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.lcd_lvl, DBUS_TYPE_UINT32, &mbp.lcd_max, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_kbd_getlevel_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.kbd_lvl, DBUS_TYPE_UINT32, &mbp.kbd_max, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_ambient_getlevel_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.ambient_l, DBUS_TYPE_UINT32, &mbp.ambient_r, DBUS_TYPE_UINT32, &mbp.ambient_max, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_audio_getvolume_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_UINT32, &mbp.snd_lvl, DBUS_TYPE_UINT32, &mbp.snd_max, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_audio_getmute_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, &mbp.snd_mute, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_video_getvtstate_cb(DBusPendingCall *pending, void *status) { DBusMessage *msg; msg = dbus_pending_call_steal_reply(pending); if (msg == NULL) { fprintf(stderr, "Could not steal reply\n"); dbus_pending_call_unref(pending); return; } dbus_pending_call_unref(pending); if (!mbp_dbus_check_error(msg)) { dbus_message_get_args(msg, &dbus_err, DBUS_TYPE_BOOLEAN, (int *)status, DBUS_TYPE_INVALID); } else *(int *)status = -1; dbus_message_unref(msg); } void wmmbp_get_values(void) { int ret; int cbret; ret = mbp_call_lcd_getlevel(wmmbp_lcd_getlevel_cb, &cbret); if ((ret < 0) || (cbret < 0)) { fprintf(stderr, "lcdBacklight getLevel call failed !\n"); goto mcall_error; } ret = mbp_call_kbd_getlevel(wmmbp_kbd_getlevel_cb, &cbret); if ((ret < 0) || (cbret < 0)) { fprintf(stderr, "kbdBacklight getLevel call failed !\n"); goto mcall_error; } ret = mbp_call_ambient_getlevel(wmmbp_ambient_getlevel_cb, &cbret); if ((ret < 0) || (cbret < 0)) { fprintf(stderr, "ambient getLevel call failed !\n"); goto mcall_error; } ret = mbp_call_audio_getvolume(wmmbp_audio_getvolume_cb, &cbret); if ((ret < 0) || (cbret < 0)) { fprintf(stderr, "audio getVolume call failed !\n"); goto mcall_error; } ret = mbp_call_audio_getmute(wmmbp_audio_getmute_cb, &cbret); if ((ret < 0) || (cbret < 0)) { fprintf(stderr, "audio getMute call failed !\n"); goto mcall_error; } if (DISPLAY_TYPE(mbpdisplay) <= DISPLAY_TYPE_NO_DATA) mbpdisplay = DISPLAY_TYPE_MACBOOK; mbpdisplay |= DISPLAY_FLAG_UPDATE; return; mcall_error: mbpdisplay = DISPLAY_FLAG_UPDATE | DISPLAY_TYPE_NO_DATA; } void usage(void); void printversion(void); void BlitString(char *name, int x, int y); void BlitNum(int num, int x, int y); void wmmbp_routine(int argc, char **argv); void DrawBar(float percent, int dx, int dy) { int tx; tx = (int)(54.0 * (percent * 0.01)); copyXPMArea(67, 36, tx, 4, dx, dy); copyXPMArea(67, 43, 54-tx, 4, dx+tx, dy); } void DrawGreenBar(float percent, int dx, int dy) { int tx; tx = (int)(54.0 * (percent * 0.01)); copyXPMArea(67, 58, tx, 4, dx, dy); copyXPMArea(67, 43, 54-tx, 4, dx+tx, dy); } void DrawRedDot(void) { copyXPMArea(80, 65, 6, 6, 52, 5); } void DrawYellowDot(void) { copyXPMArea(86, 65, 6, 6, 52, 5); } void DrawGreenDot(void) { copyXPMArea(92, 65, 6, 6, 52, 5); } void DrawEmptyDot(void) { copyXPMArea(98, 65, 6, 6, 52, 5); } void DisplayMBPStatus(void) { switch (DISPLAY_TYPE(mbpdisplay)) { case DISPLAY_TYPE_MACBOOK: BlitString("MacBook", 4, 4); DrawGreenDot(); BlitString("LCD level", 4, 18); DrawBar(((float)mbp.lcd_lvl / (float)mbp.lcd_max) * 100.0, 4, 27); BlitString("KBD level", 4, 32); DrawGreenBar(((float)mbp.kbd_lvl / (float)mbp.kbd_max) * 100.0, 4, 41); if (mbp.snd_mute) BlitString("Audio OFF", 4, 46); else BlitString("Audio ", 4, 46); DrawGreenBar(((float)mbp.snd_lvl / (float)mbp.snd_max) * 100.0, 4, 55); break; case DISPLAY_TYPE_AMBIENT: BlitString("Ambient", 4, 4); DrawYellowDot(); BlitString("Left ", 4, 18); DrawBar(((float)mbp.ambient_l / (float)mbp.ambient_max) * 100.0, 4, 27); BlitString("Right ", 4, 32); DrawBar(((float)mbp.ambient_r / (float)mbp.ambient_max) * 100.0, 4, 41); BlitString("KBD level", 4, 46); DrawGreenBar(((float)mbp.kbd_lvl / (float)mbp.kbd_max) * 100.0, 4, 55); break; case DISPLAY_TYPE_DBUS_NOK: BlitString(" Error ", 4, 4); DrawRedDot(); BlitString("DBus ", 4, 18); DrawBar(0.0, 4, 27); BlitString("Connect ", 4, 32); DrawGreenBar(0.0, 4, 41); BlitString("Failed ", 4, 46); DrawGreenBar(0.0, 4, 55); break; case DISPLAY_TYPE_NO_DATA: BlitString("No Data", 4, 4); DrawRedDot(); BlitString("Server ", 4, 18); DrawBar(0.0, 4, 27); BlitString("Not ", 4, 32); DrawGreenBar(0.0, 4, 41); BlitString("Running ?", 4, 46); DrawGreenBar(0.0, 4, 55); break; } mbpdisplay = DISPLAY_TYPE(mbpdisplay); } static int mbp_create_timer(int timeout) { int fd; int ret; struct itimerspec timing; fd = timerfd_create(CLOCK_MONOTONIC, 0); if (fd < 0) { fprintf(stderr, "Could not create timer: %s", strerror(errno)); return -1; } timing.it_interval.tv_sec = (timeout >= 1000) ? timeout / 1000 : 0; timing.it_interval.tv_nsec = (timeout - (timing.it_interval.tv_sec * 1000)) * 1000000; ret = clock_gettime(CLOCK_MONOTONIC, &timing.it_value); if (ret < 0) { fprintf(stderr, "Could not get current time: %s", strerror(errno)); close(fd); return -1; } timing.it_value.tv_sec += timing.it_interval.tv_sec; timing.it_value.tv_nsec += timing.it_interval.tv_nsec; if (timing.it_value.tv_nsec > 1000000000) { timing.it_value.tv_sec++; timing.it_value.tv_nsec -= 1000000000; } ret = timerfd_settime(fd, TFD_TIMER_ABSTIME, &timing, NULL); if (ret < 0) { fprintf(stderr, "Could not setup timer: %s", strerror(errno)); close(fd); return -1; } return fd; } int running; void sig_int_term_handler(int signo) { running = 0; } void sig_chld_handler(int signo) { int ret; do { ret = waitpid(-1, NULL, WNOHANG); } while (ret > 0); } int main(int argc, char **argv) { int i; signal(SIGINT, sig_int_term_handler); signal(SIGTERM, sig_int_term_handler); signal(SIGCHLD, sig_chld_handler); ProgName = argv[0]; if (strlen(ProgName) >= 5) ProgName += (strlen(ProgName) - 5); /* Parse Command Line */ for (i = 1; i < argc; i++) { char *arg = argv[i]; if (*arg == '-') { switch (arg[1]) { case 'd': if (strcmp(arg+1, "display")) { usage(); exit(1); } break; case 'g': if (strcmp(arg+1, "geometry")) { usage(); exit(1); } break; case 'v': printversion(); exit(0); break; default: usage(); exit(0); break; } } } wmmbp_dbus_init(); createXBMfromXPM(wmmbp_mask_bits, wmmbp_master_xpm, wmmbp_mask_width, wmmbp_mask_height); openXwindow(argc, argv, wmmbp_master_xpm, wmmbp_mask_bits, wmmbp_mask_width, wmmbp_mask_height); wmmbp_routine(argc, argv); mbp_dbus_cleanup(); return 0; } /* * Main loop */ void wmmbp_routine(int argc, char **argv) { int nfds; struct pollfd fds[2]; int t_fd; uint64_t ticks; int ret; XEvent Event; /* X */ fds[0].fd = x_fd; fds[0].events = POLLIN; nfds = 1; /* DBus */ if (conn != NULL) { if (dbus_connection_get_unix_fd(conn, &fds[1].fd)) nfds = 2; } fds[1].events = POLLIN; t_fd = -1; wmmbp_get_values(); RedrawWindow(); running = 1; while (running) { if ((conn == NULL) && (t_fd == -1)) { /* setup reconnect timer */ t_fd = mbp_create_timer(200); if (t_fd != -1) { fds[1].fd = t_fd; nfds = 2; } else nfds = 1; fds[1].revents = 0; } ret = poll(fds, nfds, -1); if (ret < 0) continue; /* DBus */ if ((nfds == 2) && (fds[1].revents != 0)) { /* reconnection */ if (conn == NULL) { /* handle timer & reconnect, fd */ read(fds[1].fd, &ticks, sizeof(ticks)); if (wmmbp_dbus_init() == 0) { close(t_fd); t_fd = -1; if (!dbus_connection_get_unix_fd(conn, &fds[1].fd)) { fds[1].fd = -1; nfds = 1; } } } else /* events */ { mbp_dbus_listen(); } } if ((mbpdisplay & DISPLAY_TYPE_NO_DATA) && (conn != NULL)) wmmbp_get_values(); /* X Events */ if (fds[0].revents != 0) { while (XPending(display)) { XNextEvent(display, &Event); switch (Event.type) { case Expose: mbpdisplay |= DISPLAY_FLAG_UPDATE; break; case DestroyNotify: XCloseDisplay(display); return; case ButtonPress: if (DISPLAY_TYPE(mbpdisplay) > DISPLAY_TYPE_NO_DATA) { switch (DISPLAY_TYPE(mbpdisplay)) { case DISPLAY_TYPE_MACBOOK: mbpdisplay = DISPLAY_FLAG_UPDATE | DISPLAY_TYPE_AMBIENT; break; case DISPLAY_TYPE_AMBIENT: mbpdisplay = DISPLAY_FLAG_UPDATE | DISPLAY_TYPE_MACBOOK; break; } } break; } } } /* Update display */ if (mbpdisplay & DISPLAY_FLAG_UPDATE) { DisplayMBPStatus(); RedrawWindow(); } } } /* * Blits a string at given co-ordinates */ void BlitString(char *name, int x, int y) { int i; int c; int k; k = x; for (i=0; name[i]; i++) { c = toupper(name[i]); /* A letter */ if (c >= 'A' && c <= 'Z') { c -= 'A'; copyXPMArea(c * 6, 74, 6, 8, k, y); k += 6; } /* A number or symbol */ else if (c>='0' && c<='9') { c -= '0'; copyXPMArea(c * 6, 64, 6, 8, k, y); k += 6; } else { copyXPMArea(5, 84, 6, 8, k, y); k += 6; } } } void BlitNum(int num, int x, int y) { char buf[1024]; sprintf(buf, "%03i", num); BlitString(buf, x, y); } void usage(void) { fprintf(stderr, "wmpomme v" WMPOMME_VERSION "\n"); fprintf(stderr, "Copyright (C) 2006-2008 Julien BLACHE \n"); fprintf(stderr, "Based on wmwave by Carsten Schuermann \n\n"); fprintf(stderr, "Usage:\n"); fprintf(stderr, "\t-display \n"); } void printversion(void) { fprintf(stderr, "wmpomme v%s\n", WMPOMME_VERSION); fprintf(stderr, "Copyright (C) 2006-2008 Julien BLACHE \n"); }