xmms2tray-0.5.1/0000755000175000017500000000000011356366411013041 5ustar thomasthomasxmms2tray-0.5.1/COPYING0000644000175000017500000004310511356366410014076 0ustar thomasthomas GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, 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 Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, 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 Library General Public License instead of this License. xmms2tray-0.5.1/xmms2tray0000755000175000017500000000153011356366411014734 0ustar thomasthomas#!/usr/bin/env python # XMMS2tray - GNU/Linux systray integration for xmms2 # Copyright (C) 2006 Thomas Jollans # # 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 St, Fifth Floor, Boston, MA 02110-1301 USA import xmms2tray xmms2tray.main() xmms2tray-0.5.1/setup.py0000644000175000017500000000273011356366411014555 0ustar thomasthomas#!/usr/bin/env python from distutils.core import setup setup(name='xmms2tray', version='0.5.1', description='tray icon for XMMS2', author='Thomas Jollans', author_email='thomas@jollans.com', url='https://code.jollybox.de/wiki/Software/Xmms2tray', requires=['xmmsclient', 'gtk (>=2.10.0)'], packages=['xmms2tray'], package_dir={'xmms2tray': 'src/xmms2tray'}, data_files=[('share/doc/xmms2tray', ['README', 'COPYING', 'ChangeLog']), ('share/xmms2tray/data', ['data/xmms2_simple.png', 'data/xmms2_glossy.png', 'data/xmms2_glossy_24.png', 'data/xmms2_simple_64.png', 'data/xmms2_64.png', 'data/xmms2_24.png']), ('share/xmms2tray/data/po/LC_MESSAGES/xmms2tray.mo', ['data/po/de/LC_MESSAGES/xmms2tray.mo'])], scripts=['xmms2tray'], classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: X11 Applications :: GTK', 'License :: DFSG approved', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Natural Language :: English', 'Operating System :: POSIX', 'Programming Language :: Python', 'Topic :: Multimedia :: Sound/Audio' ] ) xmms2tray-0.5.1/src/0000755000175000017500000000000011356365313013630 5ustar thomasthomasxmms2tray-0.5.1/src/xmms2tray/0000755000175000017500000000000011356366411015576 5ustar thomasthomasxmms2tray-0.5.1/src/xmms2tray/__init__.py0000644000175000017500000003411511356366411017713 0ustar thomasthomas# XMMS2tray - GNU/Linux systray integration for xmms2 # Copyright (C) 2006 Thomas Jollans # # 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 St, Fifth Floor, Boston, MA 02110-1301 USA # system libraries import sys import os import time import gettext from StringIO import StringIO import random import numbers # extra libraries import xmmsclient import xmmsclient.glib import gtk import gtk.gdk # xmms2tray configuration #import menu_conf # optional extra libraries HAVE_NOTIFY = True try: import pynotify except ImportError: HAVE_NOTIFY = False sys.stderr.write("pynotify not found. Notifications will not work.\n") HAVE_IMAGING = True try: from PIL import Image except ImportError: HAVE_IMAGING = False sys.stderr.write("Python Imaging Library PIL not found. Cover art disabled.\n") GETTEXT_DOMAIN = "xmms2tray" class XMMS2tray(object): _curinfo = {'id': 0} def get_curinfo(self): return self._curinfo def set_curinfo(self, info): self._curinfo = info curinfo = property(get_curinfo, set_curinfo) def menu_called(self, what, button, time): self.menu.popup(None, None, gtk.status_icon_position_menu, button, time, what) def menuclicked(self, widget, item): if 'action' in item: #print item['action'] if item['action'] == 'quit': self.quit() elif item['action'] == 'playpause': if 'check' in item and item['check']: if widget.get_active(): self.xmms.playback_start() else: self.xmms.playback_pause() else: self.xmms.playback_status(self.playpause) elif item['action'] == 'kill': self.xmms.quit() elif item['action'] == 'play': self.xmms.playback_start() elif item['action'] == 'pause': self.xmms.playback_pause() elif item['action'] == 'stop': self.xmms.playback_stop() elif item['action'] == 'next': self.xmms.playlist_set_next_rel(1) self.xmms.playback_tickle() elif item['action'] == 'prev': self.xmms.playlist_set_next_rel(-1) self.xmms.playback_tickle() #elif item['action'] == 'toggle_notifications': #self.config['notify'] = item.get('check', self.config['notify']) #self.save_conf() elif 'command' in item: ret = os.spawnv(os.P_NOWAIT, item['command'], [item['command']] + item.get('args', [])) print "PID: ", ret elif 'config' in item: if item.get('check'): self.config[item['config']] = bool(widget.get_active()) self.save_conf() def playpause(self, res): if res.value() == xmmsclient.PLAYBACK_STATUS_PLAY: self.xmms.playback_pause() else: self.xmms.playback_start() def set_tip(self): if not len(self.curinfo) > 1: tip = self.pbstatus else: if 'artist' in self.curinfo and 'title' in self.curinfo: nowpl = '%(artist)s - %(title)s' % self.curinfo elif 'title' in self.curinfo: #ex. curl nowpl = self.curinfo['title'] else: nowpl = self.curinfo['url'].split('/')[-1] tip = "%s: %s" % (self.pbstatus, nowpl) #self.tips.set_tip(self.eb, tip) self.icon.set_tooltip(tip) def newsong(self,res): v = res.value() if isinstance(v, numbers.Integral): # this is the ID. I want the whole info. self.xmms.medialib_get_info(res.value(),self.newsong) else: if isinstance(v, basestring): # coverart info = self.curinfo coverimg = StringIO(v) elif v is None: # what? return else: info = v coverimg = None self.curinfo = info img = os.getcwd() + '/data/xmms2_64.png' if HAVE_IMAGING and 'picture_front' in info: if info['picture_front'] == self.lastimg[0]: #same image, just use last. img = self.lastimg[1] else: if self.lastimg[1]: #there is an old image to delete. os.remove(self.lastimg[1]) self.lastimg = ('', '') if coverimg: orig_pic = Image.open(coverimg) if orig_pic.size[1] <= 64: sm_pic = orig_pic else: sm_pic = orig_pic.resize((64,64), Image.BICUBIC) fname = '/tmp/xmms2tray_cover%08X.png' \ % random.randint(0, 2**32-1) sm_pic.save(fname) self.lastimg = (info['picture_front'], fname) img = fname else: self.xmms.bindata_retrieve(info['picture_front'], self.newsong) return if not info: return #for "not playing" if 'artist' in info and 'title' in info: info['artist'] = info['artist'] nowpl = '%s - %s\n' % \ ( info['artist'].replace('&', '&').replace('<', '<'), info['title'].replace('&', '&').replace('<', '<')) elif 'title' in info: #ex. curl nowpl = info['title'].replace('&', '&').replace('<', '<') else: nowpl = info['url'].split('/')[-1].replace('+', ' ') self.set_tip() if self.config['notify'] and HAVE_NOTIFY: n = pynotify.Notification(_('Now Playing'), nowpl, img) if self.config['att_note']: n.set_property('status-icon', self.icon) n.show() def songchange(self, res): if self.curinfo['id'] == res.value(): self.xmms.medialib_get_info(res.value(),self.newsong) def quit(self, gtk_q=True): if self.lastimg[1]: os.remove(self.lastimg[1]) if gtk_q: gtk.main_quit() def pbstatus_cb(self, res): if res.value() is None: return status = res.value() if status == xmmsclient.PLAYBACK_STATUS_STOP: self.pbstatus = _("Stopped") elif status == xmmsclient.PLAYBACK_STATUS_PAUSE: self.pbstatus = _("Paused") else: self.pbstatus = _("Playing") self.set_tip() def __init__(self): icon = gtk.StatusIcon() icon.set_from_file('data/xmms2_24.png') icon.connect('popup-menu', self.menu_called) icon.set_visible(True) self.icon = icon self.pbstatus = _("Stopped") self.curinfo = {'id': 0} self.lastimg = ('', '') self.load_conf() if 'notify' not in self.config: self.config['notify'] = True if 'att_note' not in self.config: self.config['att_note'] = True self.xmms = xmmsclient.XMMS("XMMS2tray") try: self.connect() except IOError: mbox = gtk.MessageDialog( None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_YES_NO, _("I could not connect to the XMMS2 daemon. It may not be running. Attempt to start it ?")) mbox.set_title(_("Start daemon?")) resp = mbox.run() mbox.destroy() if resp == gtk.RESPONSE_YES: os.system('xmms2-launcher') self.connect() else: sys.exit(1) xmmsclient.glib.GLibConnector(self.xmms) menucfg = menu_conf.TOP menucfg.append(None) menucfg.extend(menu_conf.OPTIONS) menucfg.append(None) for cl in menu_conf.CLIENTS: if cl['command'][0] == '$': if os.access('/usr'+cl['command'][1:], os.R_OK | os.X_OK): cl['command'] = '/usr'+cl['command'][1:] if cl['iconfile'][0] == '$': cl['iconfile'] = '/usr'+cl['iconfile'][1:] menucfg.append(cl) elif os.access('/usr/local'+cl['command'][1:], os.R_OK|os.X_OK): cl['command'] = '/usr/local'+cl['command'][1:] if cl['iconfile'][0] == '$': cl['iconfile'] = '/usr/local'+cl['iconfile'][1:] menucfg.append(cl) elif os.access(cl['command'], os.R_OK | os.X_OK): menucfg.append(cl) menucfg.append(None) menucfg += menu_conf.BOTTOM self.menu = gtk.Menu() mi = None for item in menucfg: if item in ('separator','sep',None): mi = gtk.SeparatorMenuItem() self.menu.append(mi) mi.show() continue elif 'stockicon' in item: mi = gtk.ImageMenuItem(item['title']) img = gtk.Image() img.set_from_stock(getattr(gtk,'STOCK_' +item['stockicon'].upper()),gtk.ICON_SIZE_MENU) mi.set_image(img) elif 'iconfile' in item: mi = gtk.ImageMenuItem(item['title']) if os.path.isfile(item['iconfile']): img = gtk.Image() pb = gtk.gdk.pixbuf_new_from_file(item['iconfile']) # FIXME: hard-coded icon size ! img.set_from_pixbuf(pb.scale_simple(16,16, gtk.gdk.INTERP_BILINEAR)) mi.set_image(img) elif item.get('check'): mi = gtk.CheckMenuItem(item['title']) if item.get('action') == 'playpause': CheckWaiter(self.xmms, mi,item) elif 'config' in item: mi.set_active(bool(self.config.get(item['config']))) else: mi = gtk.MenuItem(item['title']) self.menu.append(mi) mi.connect('activate', self.menuclicked, item) mi.show() self.menu.show() if HAVE_NOTIFY: pynotify.init("XMMS2tray") self.xmms.playback_status(self.pbstatus_cb) self.xmms.broadcast_playback_status(self.pbstatus_cb) self.xmms.playback_current_id(self.newsong) self.xmms.broadcast_playback_current_id(self.newsong) self.xmms.broadcast_medialib_entry_changed(self.songchange) def connect(self): self.xmms.connect(os.getenv('XMMS_PATH'), self.quit) def load_conf(self): self.config = {} bool_vals = {'True': True, 'False': False, '': None} try: cfile = file(os.path.join(xmmsclient.userconfdir_get(), 'clients', 'xmms2tray.conf'), 'rU') except (IOError, OSError): sys.stderr.write('XMMS2tray configuration file cannot be read.\n') return try: for line in cfile: if '=' not in line: continue key, valstr = line.strip().split('=', 1) if valstr[0] == '"': self.config[key] = valstr[1:] elif valstr.isdigit(): self.config[key] = int(valstr) elif valstr[0].isdigit(): self.config[key] = float(valstr) elif valstr in bool_vals: self.config[key] = bool_vals[valstr] except ValueError: sys.stderr.write('XMMS2tray configuration file is invalid.\n') cfile.close() def save_conf(self): try: cfile = file(os.path.join(xmmsclient.userconfdir_get(), 'clients', 'xmms2tray.conf'), 'w') except (IOError, OSError): sys.stderr.write('Cannot open XMMS2tray config file for writing.\n') return for k,v in self.config.iteritems(): cfile.write('%s=' % k) if isinstance(v, basestring): cfile.write('"%s\n' % v) elif isinstance(v, bool): cfile.write('%s\n' % v) elif isinstance(v, (int, long)): cfile.write('%d\n' % v) elif isinstance(v, float): cfile.write('%f\n' % v) else: cfile.write('\n') cfile.close() class CheckWaiter: def __init__(self, xmms, mi, item): self.item = item self.mi = mi if item['action'] == 'playpause': xmms.broadcast_playback_status(self.cb) xmms.playback_status(self.cb) self.ok = False def cb(self, res): if self.item['action'] == 'playpause': self.mi.set_active(res.value() == xmmsclient.PLAYBACK_STATUS_PLAY) self.ok = True def main(): if not os.path.exists('data/xmms2_24.png'): # go somewhere else if os.path.exists('%s/share/xmms2tray/data/xmms2_24.png' % sys.prefix): os.chdir('%s/share/xmms2tray' % sys.prefix) else: raise RuntimeError('XMMS2tray has been installed in a non-standard way. Please run from the directory including data/') translations = gettext.translation(GETTEXT_DOMAIN, "data/po", fallback=True) translations.install() global menu_conf import menu_conf t = XMMS2tray() try: gtk.main() except KeyboardInterrupt: t.quit(False) xmms2tray-0.5.1/src/xmms2tray/menu_conf.py0000644000175000017500000000466011356366411020127 0ustar thomasthomas# fallback menu config file for XMMS2tray # # a normal menu item is a dictionary. known keys: # title The item's text (required!) # max one of: # check When set to a true value, the menu item contains a check box # stockicon GTK+ stock icon to use, e.g. 'media_pause' # iconfile filename of an icon to use # max one of: # command command to run when activated # args arguments to command, if any # action one of: # playpause Start or (when running) Pause playback. supports check # play Start playback # pause pause playback # stop stop playback # next jump to next track # prev jump to previous track # kill stop the xmms2 daemon # quit quit the tray icon # # a seperator is one of None, "sep", "separator" try: _ except: _ = lambda x: x TOP = [ { 'title': _('_Play'), 'check': True, 'action': 'playpause' }, { 'title': _('_Stop'), 'action': 'stop', 'stockicon': 'media_stop'}, { 'title': _('_Next'), 'action': 'next', 'stockicon': 'media_next'}, { 'title': _('Pre_vious'), 'action': 'prev', 'stockicon': 'media_previous'} ] BOTTOM = [ { 'title': _('Stop _Daemon'), 'stockicon': 'stop', 'action': 'kill'}, { 'title': _('_Quit'), 'stockicon': 'quit', 'action': 'quit' } ] # 'command' must be a full path; item is only shown if exists. # use $ as first char for 'either /usr or /use/local' CLIENTS = [ { 'title': _('Launch Insanity'), 'iconfile': '$/share/insanity/pixmaps/blue_ghost_128.xpm', 'command': '$/bin/insanity'}, { 'title': _('Launch gxmms2'), 'iconfile': '$/share/gxmms2/gxmms2_mini.xpm', 'command': '$/bin/gxmms2'}, { 'title': _('Launch Abraca'), 'iconfile': 'data/xmms2_24.png', 'command': '$/bin/abraca' }, { 'title': _('Launch X4X'), 'iconfile': '$/share/pixmaps/x4x.png', 'command': '$/bin/x4x'}, { 'title': _('Launch Esperanza'), 'iconfile': 'data/xmms2_24.png', 'command': '$/bin/esperanza' } ] OPTIONS = [ { 'title': _('S_how pop-ups'), 'check': True, 'config': 'notify' }, { 'title': _('_Attach pop-ups to icon'), 'check': True, 'config': 'att_note' } #{ 'title': _('Show cover art'), # 'check': True, # 'name': 'use_images', # 'action': 'toggle_images'}, ] xmms2tray-0.5.1/.hg_archival.txt0000644000175000017500000000023611356366410016127 0ustar thomasthomasrepo: 5275af20d54f3edc3b442459c5745bf2c47a8ced node: 1c8390a60a3ea7e53e110ca428d158c6ea016933 branch: default latesttag: xmms2tray-0.5.1 latesttagdistance: 1 xmms2tray-0.5.1/ChangeLog0000644000175000017500000000236211356366410014615 0ustar thomasthomasXMMS2tray 0.5.1 (Apr 5, 2010): * Popups work with the current XMMS2 release (0.7 DrNo) XMMS2tray 0.5 (May 15, 2008): * Popup behaviour configurable * Introduced gettext with a German translation XMMS2tray 0.4 (May 13, 2007): * don't show non-installed clients in the menu * new linked clients: Esperanza, Abraca, X4X * now uses distutils for install XMMS2tray 0.3 (May 4, 2007): * uses new official XMMS2 logo * support for cover art * now uses PyGTK 2.10 status icon functionality, removing the C replacement, but requiring newer software. XMMS2tray 0.2.1 (Oct 7, 2006): * now respects medialib_entry_changed (for streams) XMMS2tray 0.2 (Aug 14, 2006): * removed python-gnome2-extras dependency * added tool tips * notifications: formatting * PySyck supported as alternative to PyYaml * bugfix: keep calm when xmms2 quits * some more code cleanups * install script XMMS2tray 0.1.1 (Aug 10, 2006) * Option to start the daemon if the client cannot connect * bugfix: xmms2tray now respects $XMMS_PATH * bugfix: filename is displayed when tags are missing. * bugfix: eliminated Xlib errors after menu command execution * bugfix: menu icons are resized to sane sizes XMMS2tray 0.1 (Aug 9, 2006) * initial release xmms2tray-0.5.1/README0000644000175000017500000000140711356366410013722 0ustar thomasthomas============================= ==== XMMS2tray ============== ============================= XMMS2tray provides system tray integration for XMMS 2 on UNIX-like platforms like GNU/Linux. == DEPENDENCIES ============= * xmms 2 * python * PyGTK >= 2.10 == OPIONAL DEPENDENCIES ===== * notify-python and notification-daemon for notification bubbles * PIL (also: python-imaging) for cover art support == INSTALLATION ============= Install with python setup.py install and run with xmms2tray == AUTHORS ================== XMMS2tray was written by Thomas Jollans . Contributions were made by: - Sham Chukoury and - Timur Izhbulatov The artwork in data/ (official XMMS2 logo) was created by Arnauld DIDRY. xmms2tray-0.5.1/.hgtags0000644000175000017500000000016011356366410014313 0ustar thomasthomasaf94d4434fc4ee169336fdc21d1bdb7001ee01fb xmms2tray-0.5 012de46cbb65fc6ba8da9c6588f89e583b70e5d0 xmms2tray-0.5.1 xmms2tray-0.5.1/data/0000755000175000017500000000000011356366411013752 5ustar thomasthomasxmms2tray-0.5.1/data/po/0000755000175000017500000000000011356366411014370 5ustar thomasthomasxmms2tray-0.5.1/data/po/de.po0000644000175000017500000000431311356366410015320 0ustar thomasthomas# translation of de.po to German # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Thomas Jollans , 2007, 2008. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-05-06 16:01+0200\n" "PO-Revision-Date: 2008-05-06 16:54+0200\n" "Last-Translator: Thomas Jollans \n" "Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/xmms2tray/__init__.py:176 msgid "Now Playing" msgstr "Wiedergabe" #: src/xmms2tray/__init__.py:195 msgid "Stopped" msgstr "Angehalten" #: src/xmms2tray/__init__.py:197 msgid "Paused" msgstr "Pause" #: src/xmms2tray/__init__.py:199 msgid "Playing" msgstr "Wiedergabe" #: src/xmms2tray/__init__.py:222 msgid "" "I could not connect to the XMMS2 daemon. It may not be running. Attempt to " "start it ?" msgstr "" "Es konnte keine Verbindung mit dem XMMS2-Daemon hergestellt werden. Soll ich " "versuchen, ihn zu starten ?" #: src/xmms2tray/__init__.py:223 msgid "Start daemon?" msgstr "Daemon starten ?" #: src/xmms2tray/menu_conf.py:30 msgid "_Play" msgstr "Abspielen" #: src/xmms2tray/menu_conf.py:33 msgid "_Stop" msgstr "Anhalten" #: src/xmms2tray/menu_conf.py:36 msgid "_Next" msgstr "Weiter" #: src/xmms2tray/menu_conf.py:39 msgid "Pre_vious" msgstr "Zurück" #: src/xmms2tray/menu_conf.py:45 msgid "Stop _Daemon" msgstr "XMMS2-Daemon anhalten" #: src/xmms2tray/menu_conf.py:48 msgid "_Quit" msgstr "Schließen" #: src/xmms2tray/menu_conf.py:56 msgid "Launch Insanity" msgstr "Insanity starten" #: src/xmms2tray/menu_conf.py:60 msgid "Launch gxmms2" msgstr "gxmms2 starten" #: src/xmms2tray/menu_conf.py:64 msgid "Launch Abraca" msgstr "Abraca starten" #: src/xmms2tray/menu_conf.py:68 msgid "Launch X4X" msgstr "X4X starten" #: src/xmms2tray/menu_conf.py:72 msgid "Launch Esperanza" msgstr "Esperanza starten" #: src/xmms2tray/menu_conf.py:78 msgid "S_how pop-ups" msgstr "Popups anzeigen" #: src/xmms2tray/menu_conf.py:81 msgid "_Attach pop-ups to icon" msgstr "Popups anknüpfen" xmms2tray-0.5.1/data/po/de/0000755000175000017500000000000011356365313014760 5ustar thomasthomasxmms2tray-0.5.1/data/po/de/LC_MESSAGES/0000755000175000017500000000000011356366411016545 5ustar thomasthomasxmms2tray-0.5.1/data/po/de/LC_MESSAGES/xmms2tray.mo0000644000175000017500000000266411356366411021060 0ustar thomasthomas\U '5F V a o{    kha  " (3;K\ r}     I could not connect to the XMMS2 daemon. It may not be running. Attempt to start it ?Launch AbracaLaunch EsperanzaLaunch InsanityLaunch X4XLaunch gxmms2Now PlayingPausedPlayingPre_viousS_how pop-upsStart daemon?Stop _DaemonStopped_Attach pop-ups to icon_Next_Play_Quit_StopProject-Id-Version: de Report-Msgid-Bugs-To: POT-Creation-Date: 2008-05-06 16:01+0200 PO-Revision-Date: 2008-05-06 16:54+0200 Last-Translator: Thomas Jollans Language-Team: German MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 Plural-Forms: nplurals=2; plural=(n != 1); Es konnte keine Verbindung mit dem XMMS2-Daemon hergestellt werden. Soll ich versuchen, ihn zu starten ?Abraca startenEsperanza startenInsanity startenX4X startengxmms2 startenWiedergabePauseWiedergabeZurückPopups anzeigenDaemon starten ?XMMS2-Daemon anhaltenAngehaltenPopups anknüpfenWeiterAbspielenSchließenAnhaltenxmms2tray-0.5.1/data/po/xmms2tray.pot0000644000175000017500000000347511356366411017073 0ustar thomasthomas# 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: 2008-05-06 16:01+0200\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" #: src/xmms2tray/__init__.py:176 msgid "Now Playing" msgstr "" #: src/xmms2tray/__init__.py:195 msgid "Stopped" msgstr "" #: src/xmms2tray/__init__.py:197 msgid "Paused" msgstr "" #: src/xmms2tray/__init__.py:199 msgid "Playing" msgstr "" #: src/xmms2tray/__init__.py:222 msgid "" "I could not connect to the XMMS2 daemon. It may not be running. Attempt to " "start it ?" msgstr "" #: src/xmms2tray/__init__.py:223 msgid "Start daemon?" msgstr "" #: src/xmms2tray/menu_conf.py:30 msgid "_Play" msgstr "" #: src/xmms2tray/menu_conf.py:33 msgid "_Stop" msgstr "" #: src/xmms2tray/menu_conf.py:36 msgid "_Next" msgstr "" #: src/xmms2tray/menu_conf.py:39 msgid "Pre_vious" msgstr "" #: src/xmms2tray/menu_conf.py:45 msgid "Stop _Daemon" msgstr "" #: src/xmms2tray/menu_conf.py:48 msgid "_Quit" msgstr "" #: src/xmms2tray/menu_conf.py:56 msgid "Launch Insanity" msgstr "" #: src/xmms2tray/menu_conf.py:60 msgid "Launch gxmms2" msgstr "" #: src/xmms2tray/menu_conf.py:64 msgid "Launch Abraca" msgstr "" #: src/xmms2tray/menu_conf.py:68 msgid "Launch X4X" msgstr "" #: src/xmms2tray/menu_conf.py:72 msgid "Launch Esperanza" msgstr "" #: src/xmms2tray/menu_conf.py:78 msgid "S_how pop-ups" msgstr "" #: src/xmms2tray/menu_conf.py:81 msgid "_Attach pop-ups to icon" msgstr "" xmms2tray-0.5.1/data/xmms2_glossy.png0000644000175000017500000020021111356366411017122 0ustar thomasthomasPNG  IHDR6sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxyEսg6 ! CT<ϼAUTPC!pF r%‘nv3S?Ꞟٙ=LSU8pĉ'N΀'!1Vsv/JYqqI –f;, NzF\(Nz88R4ERLGJIO'=NRPIT(\tL4qq#H[N$M 71]'=A@tG1(.]9e;V TLHqqR4/mjq~ 줋II8JKy,mR`NjKH (,H(]XI 8 rz\۟]wR6qqR6IiqN<ꪫ:`ԨQGd>)} *"<˽ֶp֭,X`)FKn:2NK(O<Ç?Ȫc ŗk%-oooŋ?}qǽ# *PtB@,eG!?ƍy䑣GcJOl6O\(,@$pJI$8ZV+?=ީ\wtt,ܲe]f͚ӟt3āI$QT 3\t )vA 'HGg뮻ƞp ];iڵ1b D!b@[@ 8^1aZV* ?xoWN:]/]w[?^#K߲ٚwGY X,0i'ȩN8ٳg~ߩ\\.zɒ%=Ѕ[ Pq(EYAijo;#S;)Mr6lIfsVyXt8eI(hu`)cƌ1V_8錴-馛 i`AH?HJnLRs=u_`\::h@}]-P>ߴt38ǡC#nh H ଑~) D: ph_|KMM'* ׬Ww;マwV7c[S3c[S3y4ԣq@Ck`cq8a<>XL?uu\5a„;@4D8)0Y7aΉX^z5Ʌ/`3wGKkkE`߽&#ǧ:0 UU~EWW>ȑWAG$l`8q)x~N>}]'l#Ƃgǂͷ4:S&޿[c7mС@#,n v҇%i'a+O) }T:hѢ)x^i10{mM)cVz2<}:p>zҗOnvWz[ZZ:uym ΍;N9qRxD{7O8q匱nJ`GG=\q-"!dO[5Ϫ||k'g?}ܣ zumn  ҷI xy(0e˖iwNG?"inAOHUb7^{Wtq{O#D抗%uM7m ^X̃H:bqRfxhK)~@*p0_$hJMƀO\x"pDLK$5H/^(} Wt+~ `JhXNjm"ަ?8&aۮFLNˎ;?("AH/N#kv>tXi9jHhBKyS[&P!@K.9j d< DH/2.Ǽhk3s0̙ElCQ3h=YWc"Zq$H^ `تKq;s~\.ga%#)8\2"ʫXK"&6Ĥ3i=7v3#D(BAHHHd9ӕ8 _XQj C$n\IXyX#$zqG;o 2]VD`u҃Xtxy9ڛoŦًGZIxB8qnD7S@I !;9wٷG, 1RElDz8Pćz<N;'އ"$k [ o < ,d: a:s˵䏧,DdǎKM6uq"}P@zTҥKOJx:l̽a(&Y/%(,YfmF0:`q")@BCVtVUZpBt%Gl0=9-@H?)"X"=\@@RC'#mY%uG!J##q+5H$CG@ R -XRD*+ "a UOX#. +=Ҏ!.@H/8}- @ܷ 98)^@*(+a Si,M ۜEE*k&I$- s2f?9LFMâ(yr@ Rq8x}sYB$Irj)ЯǀDۥaDh8yütD aC& f Ǭ=ΔD.$4G 17"IAӧOu=RfGQCVpUg<7D\ 0G%!+0XdxJb~"nHB v#F|< & ~Xt Iq8xpxĦek15-śiiy+E8/-pp>jT"xY6xP7,nu8(GǠ+Jz<"/5,qhX̰1^iXQ!!( x,Z:"ò4lUJBH8 ACFESI!D.C͟[`@ٞZO76mٳg^h{ HH8GFpQ","Ѵ*)$5Ni2q!"""L{%/;ȷSN@ YG)wZ \;EC#~F Bw8 ÃYѸP4xJb]d^Ҵ$힨u 2@1DžH s)Q@RHx$uWQ!b< YiQڈ #!QA¸1F]fLS6ͽ}"I e B@ ߨ[ax$#NË&YSvZ"LC\VH!R%"{-Da,HqI˅(mJ;?Aa'‚$p<"VGj ]D:,$F*`G92 > gyƒi1qa-BZ6XkKS(xAAbJcɒ%'pBG)V)QʐШؑ#0r0Tg{>|SНzZۀagAPq·DŽ=%퇊HOwq"Đ> I.A%v(+ƃ Ǹ7rƎqF`]1l`{zd˶f|nVYkcيܢx7\pmv  (:^? (&4D,?X"8)Cʾ9G$,iG24<@L>@}A8p=B^yY~#,zq:,AF gksȪC?amÀy8:ns&A$aCY8x=FUe;/ߝuiʛ/. ;╿IwkBD C2jL6ٳg%")O_ÃrT< u/NJ7Y>K^_f6P"]:̻AKH!)x0f(-v!0R:tdpɵ &(l}y9͡rA$ O ҧRax/ZæY H ć!~Ӧ~ 'NS4'gX*\c="M6TtgQL 4`/M)xN*$-ofVHQ!pwm@mH6E 3&1#IȼG?6lޢtD3ǬRā_C+J'` 2<4Fxsxr=T򹣱§TKo/Mћ z2ۘ hd_xR[[_i6ޙ6b`tX^ktqևbn9*W1˃5s;pLUU1sMr8W5ЌbCoZ%[""/܈ۣ,0ƭ̢nXtk-^ ǢEN<蠃.Aò_)xN7?WLќypٿKx$A6Q"|HHJvg4<3p׾PLќ re7ࢫg}=nkP.D CWЬ8xD4w_{ >b椇} L?P:HAĜP+<o{8I>Mwއ_^r5ox4BWd !"@)$=x$J}(XX9 "jD@z@Jg/x!\ z810!x˪/dyD1vKD#k7JR̉DneR_Wyg&3EK-YnH'>*CC &ŹYcrd;s1 y8Jiނ/Ͼ'[^^ "A@ISbߴDz%D,&ݠ̻  \.ess\.\_S]1#G`0vH4uw Bl"UTDe#z,*Te2QTOErtFs6~L;qgqڬY6BBl"IVHLwaI<jTWWAY1ڗֈf}?#/[y+Ɖ'}ꩧA%bZ$ .B* SO}ãj!a)p0mI*)}< 'NYjkko2~Z!a1:d.NmMM{{ᨏ-:Cj|0|HE #n*s˖-4زe2F*Z(NI'7"ipH8M:@̻s:I#-;_>b嚵X6Ū밽uᑗ̒oic0v4&ǍcGc¸10v v6췲Ysp{ڊ p[0GTܜ|?yIzcAHfi -[݉',LJ6(nĆ@޸rq#}<|l8Lk"&{"&7v> wu<3oxMrCCkV@d۶m4{QʧqAeHYRwqͻz|3 0EkgΜO;WaaIuNCI9qj K,9s2U@* :ެ+t*Z G_nkև\ϯ~G/MO\fy'ES+#OqaĉXh/焞LUƎǍc5 Ç Am;7«/MP0% +!b):ioo_|~ ?jUVOHJ+;)n#gڝxтpo|2"\/8R2!ֆ܍ViF~͙xt(֛]#8XQ+ϴ҄\!+epӒX!Z磙#`"3 y(v>Æ] C6tg 344:AuuF.[*Zmmhjjƶf457MMMִMMMpj|^.::rBَٜO,DUC,}?Yooڴ;و${a;N$7qwQS;gGr7w߇ }궹3W2Yy~Nqu0jbyiɿ4ۮ¨]{fl2̸cnA!1t<yAjqEzq1BXT9u+kE_ ]I΍/:,EL*wc7-'nZ^~ w`FK3}Ӫ 3>1O?Ɲ &Kp{fq@Cl;#۶m{|РAE tk .777P=B?uZaf2RVh)x]蝌EJ4ebn12+h/W>ˊ@Jhz/cM*%C# p7RyU }N,'| &gs`IZ>}9xÕ6S*y:aox~`MxLVO9@Ȅ @N""T\7Wȹ|H̐YڠPSkA7Y6Lh2<9$rH"7к \Z]!z 8geSށ7x`t tKi޴y,X0j2B<>w`T6 "Cfx* i'03jUO c4qaB-qR;q1&>,|4l O:-eUxC~%LL_E 9 ø>&) " Գ a jK SK&Na̳PΡ?YK NJݘ`T'v9ͿG ]>HD9uZNs!/V1Oz=Uι:&Jdy8v6WI\.裏>j…HE@b_ѣG,_|~&)e_򢓦4C[10lTicTXPPJ30ȉ¼iiNq06ñx+0b/<̳8#'D'ŏC|p'CKC!Bz̸s 9K=}WۼR Аcf FDxS&i"k:ˀuSPT mюǨ5A\>-F\ Jc&y#<ϳslٲ_^3Q[<_E}k7|]R) U  9K1LFJ;4[͹$nO*o_q`7yhni <5k ܷ@ <LJ!L(a=vjaRs0' "0U_PVK~L93'6ࢎh ﭢ´Zx:=~jroDŽT.aBS9 Hi9~L WIp# -$OA Am<Wٟ5! 7l-;v>z ZD50-0|&carˢE~~fފĸe ԧ>uS! _XO}y4dA˩^ M:AIt6VZy)ennVnvtYxi끇Zͼ 27<4?P|8T 8sZޭ8\K: BVVf}cUʊ*">>2%y&3K:E #Hi{k8"sL惒*֬}'?͝S'eǎo} a N^Z:g8D~z%3Vr~x"jviG 10&7OEEUUN߀9x72[[e& *s qGlYiq=O!z"&/ZVc]Y7 ꉖIA˗JSC"CX^Ui>S0=*}RNUʢr SӕP,.fM(c "?dhO'útgB ` Dx*r7, #  -`PeWmT^O)Wu?uy"$-T{U'IѰD6Z\l'2cCs!}155< rf8aMW3^\rE;! 1RK)CX6LmM2aРA+|.mMY< 2X*|+Eb"~T<MKtpB SyTWQxA ]6g675w* 1/EuAP#%CKbxGĺ!+9 5c+ݑa'νH  ";rhG)a: #g"*}HlR Tyʑˊ ABGLCK~h8vNo,'PW >gE%2eʔ)_C24Tv\Xb*d?y^'kam{n sˀAP]G:PV@@CR7#YgQ@hCU>N` dtNX޹hV\zKZo|Xd2DehbC;wtKB%]/"UL*fHXHI."v,[1"@P Zf6U>Lՙ "mW\G;l6Kv_H~|mm-i0)$)ؚ~{WJd\vL;6Q4pT<1nuPx1+DSH!m Ź9KӕRIV秊›XުWr2lN#UzU$RHEp](N*|P}<V>wUpAa^7vpZpK +oQBBK޴e K 5..amUDʖ1;Q4&}H])r0kʪ﫠1!ag5>ZKL&3;<uj)vV#_willcԏ6|GP'#Ci_FB8∯  6 r[`+ s9狌s+W8۲U^7[}6Е&#;@I(\4hC6kޭц?LC%,S{PnM1g_}|nq'`ydcԮeԇ5\Dc֒D=(-r.΢C3Bɋ_LR KmR|HXQX6TŹD1#~h@ T1>&` hTu#ͪ-5}h0ΈgI?UWu5$=DwzH Or-w`-E²;qU[!KH 2&cǎrIKk+~:%\T~4$=R(0̸dHSgfG"N C(/ 88W a9MjQ'w=K yuuebrI}j^߃H3 H}gm^@|x~펜^f/^Vd]S<`Qt,ps3$]NI";dr_֥R֒W9O^J#Je!Bz 3 C`PVm-Ѵ;![&#P JCXTl'\;or0궹cæSG.fE$}?\lԪV!ٚI4@t^Aʍ8B[Ty;z'Ӟ&@nčvo|=.eÀd] 9w`| >P,u]!E)}2̏j,֕&7-A̼!d4Mf@.,YN+- j E&1N9&ctz2Aq=}.ڵkVW'Bl:enz -3V&M2,(0e . :ug;A:^rvdIn=NyL6H* vD4g|3u7 ҡd󎋤8<5+ŵxL))z^5a߼-jU^v3Zpxb֡V2W\;oY7b>D[BI{ȓD>`(SmYBP2/Д u֠E!ӡ[QAdn$rb="=R0 A8i[a+I([]h9ƥV<†5:ʃ1bо ?up6QNCUfѶLo_az+F;CpC!@B}yMyߟQ壊X5d_nlC^?Ⱦ)60+`$ˆ%!0̽ϒA_~jDqubɔ1kll06|hXB)QtkD.f`U#F=u-d݋'L)pbʓXriVDEڪA!L5Ơt!ɣgԏƧ!-dGm=55z斞?.NGO8#`SW*FF$J)HbpeV9be{_6R\܁(jhʫL阀`F]sEhJ*< T[Jc˴`U,Qp$o^F|wWA}Ϊ)I;Ăז~AU l*V|-FwC`H U0c&,$ں c]iKqixz;,sik^}% ?ؐt,MwN2`2}ރSe]GDE̥bVa'3c9d*N^}}V4 ؇>zijTg" T65P 2 PO1z:\jG0J$;Wq4lBqY QDtr-Qz.\o 4J6R~7C2A;^T7f&,IpHFWdD&ёŦM`Z*h=oڂm-hkoo\B؆gY1H%pRsC799yQW]>ɓ*A1U ȍ:fF몔ԃ"-RA{ 'EdPh[fY1k+<|Saat 6_ɛl~Ibrc!:M]F@nVyaOcKE,Ez@a!bH/fV mǥL;D?l kkk{ю,J^*Zc\ kk`"-\qB ;ڰ~f*X6miUB2BI&@mP0A/nYW݊sv#'c`q: ˬV-suuuJL;"lϿĞS}˜i5/G 7bAA 69uki6tt/+ ?Udb 0Pl d2DH&!aD4gSZ}Si.PE_<謷Tq2\%/;s0.3b4@^" @!eͻx"/' s苩i1ꋖ?BƓy2ė+Da=-lĤI4 <Ⱥ@te3AL+Hft)'@ONJ_r IDOXMMx[R? ?Hc~ĭ$x M |3pw{(pZZ[iV4We4ҏ40Q9K:z$ C NmRKX΃33'ee*ܑcAi[*iyxy*C+ DqƈH s.VLwtɌ熸Z!Y/32nIzƵ8x>,ϫUSZs;&4K͓PV'#ZL->`ALԃ$Bp'&2 i{G|¼Ԡex0"a; /#G`AQhK-TsKo~s;hAywSe)iw2\/bGh(Bokڎ>BV3Dk^~a^d d RA|Av6\x QaTUk4ɐrPy -FB>W^$U~՘xu |OynH]OJ,v8!qyi: 7AϏ~Ժ6hH~ ĢT]cH\ӬR4 Hښh("[P"op"d#5p,"a%Ot5Y|Ti3"@lS5==H#M[b՚uek3.8`TFZbU '%EKn* mi,UlF`|xgB|B扅@CXU9O!iaf/'+"Z4]Z ?|Tzف}r{{}}8K&q$b+y"We=Wjlي4HXAh3Ѹes9ݰ o!֬߈lVSz,UΌprˠhys""PC+LKŦ̧wў32/LQ!(,+KDX%FG$ ,HPZ݋f#llRdmmXzذyK) c§~ՠ=tq'Ia"#=O_x.y#o|d(N?d+ӗO#HvE_qn- k(T85AkH?wtd9$$ ڳI)~ ~ Rvi/OFEU: ZG̾rce2dz+YJYƛz@9".=AXHyZ[5W8i+)@vG!C.G,2t=YXڧm)$3VJ!hQH"Fw?xXsK#HDIe?6GgB,dݴFyRɐ|)Uvo)1KƢSuzD$પ-c݆gO)ՙa6NS1Mxkؼu[Bbj8Ȩ ؀( t (St[˘dbZ[֭49#ԅ2Zqk~CiىJ\ &d̖K2zG* ? YFeZK2>Yx:$]C@ IDATa_8G $*g Al*Fc(xπpU}b(MԢ _WD%xMe(& >7ܩeC inxQ/|yAEaeliZh $rmnZZu1G$r>cǎ#CTI0e@"'/WۓN22Pa(E3 x` 7oŲcPr%BwuACq1H9է$vٮMWzwwҠ~LvSvzSQchǠQh:V\q yz ЭPH* ",@WZCȕIa^4jZ&, -x?xa9,V U"/JDR@މk1G HҚj/Ҷ:#I8)7@FAoYm*) ƕeH1@ˊܯ4 (Ƞ "hԨ8 32 qi4q jG /$h̠fPEc|Ty M4=w8ޏ]÷V{Ͻn>{׸vjv=[R 4%/G0[T- ܈MM <˄*+ N:V<2OCUX'H;+2X!BU"YaU1c6 t1+Vb"hAYLJ %sHr|OC |vBm+1?YfYPD<0oK𕴗x4Ѥ;e_E̓iӖL^j @t m>m4=T!W^G{a\@vf-gw:FL Gzf@pҖDΘra,U>o]S艣ӏ?f̈U3` /X]?'rt 3CխqaB:a1RrMNОHX0A\ya8QjI[Iw5FS< I{aQ\=@{ )=^o$-)@iAqŠI0Z㋱5*O ֤n9'$0q3\l@+pr@V.aׅM폗Ժ)w^5%N~ ߯Aejb|CXqIGA tSAOttG6a͜9cρTŌ:m۷%)}vէ mݶ>۷7 7wY 搄Sy$YEA. sL1sfS//2Yv (Q'ɤaT0ry~{Ǘj'fxlb٪Xrs ~Bջ0wWD7Y/_p C G\*K!X xaZMfC\pɕ0&"Xoҩ_U/`T|!YH-/Rpk#l7͞ճ5k|x$[Ho*kj㋰v1-ݵ@Q ց wB 9S~x+4FeT:^r\DH0ts#6cg|e 0Lq! (s$4FNz4$N+@ʉw(O:AB^֙#yž U\ 4⤹hnB{ ,i\ZoVIos`ٽUV&0%s6D[E#xhش5ZF]/%awi瀈UpGuFA \p>g9L0|d!uwDz ңpOq0,^u7Uʰ}Q0WZ݃@ qԂ4𮔱& iFȃj'~(M'PdMu%Pmٶ}-k… `KA4y홪dwp}00.MϠ+.QFyQ6fNI^7tl/{ $k D>cHM{n| m,[Xrzֲ٪$- -q#y[#苓Ai!:a- K;xi+0^h ӕ|wqU&^F {Y%ܴ(FINսVYצ1e>.nOshC0<m4B+4}3[\L'zi9c4eb톍xt2 RMY,0 +r 7 s_P#8'XD=y2XaŔ|؝^2B[i(`)"u)MxIx  N|M`.0 >wvݾ}f5WRx^׈!`l>Mk~ ޏ4nSJ5+Wc:VCI,6I& edh3%DF@KH5Ɂȇ/]>M@$\xtrZi!N#A\ȂH[E`yFՏx/~b0s#C b 9|OStB]ͰCP$F>gĕl_4+w񆆆j,_ |;o֭[ef5fj a}b1244h<1~s0c>̪+H##B(mذ W /:%{M,MN'(ȋMedB>?_<Onj=UuZ4{[Xz Xd3HpCnm\JX#$|xM^B@>(HƗ)G9zZ;qdsg,?jIh%Wu> ֨#2cK> CܺuL;yowM;c'jG1. gnpBvR@!5*σ<-ew/L ;7aSrѾ N=(KذeZnC4aI%+~:V%}>vHF2/$-&'i5m5[ ^/TbEVAeZ(t˲Ģ˝ h2}׼r yw߽0+c@l3v^6mXӖZ Z-[>.҂)H nYwui|\`3ցZ2Ts]2,NGwԵ?lshOH|Q_ ˞Z\P=x biND[:P]v`9uy ("/AW9uJnM C>~V"kcMqXt tll2 u!U됬ßSnY[4NQ)kZjwDjr&N?4/.E7nǐp&,KW.C{77ƴt+_AauDV^+wv\]D7J@cz^d- u$C&iY!HF a04• A<q%[g`Xyk<$g', >Q_?e&(X)ǻ9 s܈AXlT\/F"_=O`"L|l2Oݗa!b2`f,kkE:WwIgq3]ڭ eo:5#꫗,Gh8ͱ5:i TZ_Wh+j ^Y/мEPb{:vǧ,#^RLGF(* m6@ĸxצ+<߀6*.߃H3:PA% ;32Fe&nrquѲeQu a@j%Ԇ Aq$>&Bf[D*Pi?BH~XX1oYU~ YFo܀VǼzC?i8$ڄU*U)MYZe\On~#ddL.*–7U/:I:JOWg~*8 |z](SQ=#՟/eه4]9J`\@L,KR4bɲXbU g=ݲ!L6Aedru<2ѨUǔ`.]S{.v 6 i.Tm=I|G?DsDPfmkn5ډHZZW͉]{3'Ѭ~#7n:u~;ފfBgX:yn70B :2sgM _֏<d} 5?Ňww@5xT5:- >i1 E;62Ek%xFl&!MFc9;'qJ8L0OcZlش ,ǯz-Zu6Mj2[bi32{.OmV^=逸ELVdH1tx5~Æ #x/gоQ ې5t@o 5o%#F%9Oڪxa#ha𝡃g#%' ȭ*կH߻VYbx`J<)޴ #c&2mi`dr ٹN87/6oيEV྇c%X~CmtwD\aíӧ3 u]ס=hdI[六,~::`qZH$ǤjԤe2ٱ9"]# t/'59=6יxFl{+r ]WVcX -ijk00Px~@Cx⩵xhSXa3i& LmoN@>tOAn af,]$x~|VYX'nwFn4`m.>1k6eU"^iQs fN{ bcp?ZMӊyY⅀ZQ bdh##GG02LO1@0 H46 g5.{ lWbd v9$?ƅPP :-b4$>|{rUp ѕ$aMx.lu[ޠ+>#`|ҳ[kcmuY%s-->') /=쳯MZ16vqMhʳ:c̻}>jgwxVn M X)P~vDVP<9 =} 7o@'fn] s BJT\D-9Y*p̀L޻7y}ZWMm)im }'&$m.C58CcG}_v]'+w_$dwdbw[fm yy>Jn HA$4,E8Mi$G6L,YSsÜ0t&YF~p9~}5yGG`tvճ:wKkƯ+@2Ԅj Q^vezߍן|.bj`S-@קՇw+wP/,Dr MȽEvB­!!WNwV%dB@Vs 6N]qn -7'R ˨ʞkxڶge٘zҚpDC- ;\Ж6dF:uuY:A|_[]u+.D/3YXuA/~_0@|>ߏX!肝ԪMu:fg9$l!FgWS鞹3 ڑ( % h 6ӂd)E4pr`ņu==z pkO~썤wBxS|}J24M03ߓ0tc@1Mx (L،5\]l׏u=Q#xEguֿ!?R pWRv R(=zO<ӷbQEmh x<\ɠM!o\R 5iI? >jD?/G8̫_۸襡'o;~8:Y}dLWcNG&{^l7G#9j5m2nCvj:DM81; CkK/tgJtF&f;GJVIVof;Cp^y.1i^خX ~x'/P# ^&yA6{R{(MM9Zfe mkm,bO-u~_w(Q%k/| rGý/O0LvWGGGvK޷_]ɮh!zSu[`GlxZBm-pX谿UIZQ ^x9~6o(q OtB` >J>c:>bΛ"V Q0SfWeCď ٠D:eUDgn fi#\]:JMvm?=T:p~OZNO<Ŀ^uUGF1De=N^骏.{Ŋ͔] p0:h6sn|du Ҥ,%|ݙP~*8BDu<,h|q yzFފ_ _%}x^#PmXheXSR5ѾfpϴAmԳȓÿ'> D2=(GXVfȗ,9ԫE *z{kC~Vs^Y𔥢(o_ bP",( A6LG>^^VYs~V8um F - 8Nw(R J--pnC/ІJVzF\٩¯" tV<砪&7y\I@3'^}5y" $t`lNKi RۺMHY:-~x^q8y Y/ 6s܉pE83E wi~}=dt' ra(S@#H0q)܆db1SF3f4L_"x+?m߾s=P/Gg )mԫeu5hip ׯ\;=+KyQBD  քox_:Z;SUم2mr||xL:.{P J|~9Ha\ʋO{D`}!\[>_XFWKRkM]nM3`c<(dGYۿO-h|דl98IR<3xR:ϗJq47{,/>yif=g-gN/]B'`T#iV mZ<:kA2t(!xQԍ8 [F-!Ʋ=Xwrc͚57/&j%O3 h@-Ļ9E||xkGs"sے4YI.'q߇A6Py*@ ސD(@5\,:3u_UDtX*KS7DŽjADw.}"؆2ފpE BṠ{yޜ(䚋X$.Hw'^,35kdBX;s!Vزp~՛dx~8GD™Xqɼ/'~rޱXa/}iVT251?@z6fsyEUY[]&W>7o+Ikз_{,E=pdjǭ}=Ftt!׉'M6MȁLDTgR )X NQB4l cn~mΝ$ *> -pp̷LnTobGqwoI{tZ+4x_ے\[辌Nȁ-|PǃiX9^BaIX#{%FKUZMH͞9yѷmD;@g4|1+\DzPᇷo~mO">AK礅 :AÅ7bu_EK:*(zFxP?ɏl(KXc 3b֦`%KtU-^^[x=f9#J(Lflh_QC2+ kc"'2&d0I1T\ś 8'~)l4$.GQ=QH\/˫iGy7@>bH:];o޼W^y{oU iiT:jv5wΥa{#uЉTOx ~sh瞜]4TՑxVK򾼻iL><)ت=͟(Ip\%%}VBW9`/}נuYHÄzuf _[Y_W[^ bCȜ2̭*]ݹi^!=X0pLgrZX.K):%>>VsuE~B|Kbi乵jJmETAЃ:ǹc7@8=~ε-ws,zqJHޓ˗// yWy|펛&µ>6ky_Y;بGN=a"]5HRcM'le&F`jWcEs9]yOTH (nа_xpcw_y>21/~!^rZ?MZ xP1׃wʽC56Q@! ڇ IDATR~@b*PWMFWOk\>uܘdǚ5kn=ꨣyW}4HB> 1|饗fqWDtLo2 mţ?P~.vΫݙ (̇S+= k0 QT=euzUѯ -ko݁^PB3FДޡr"ld3AJ/ fڌ@i1ě*rm{Hƴjc 6m)͛73CTF{hB41rB8~||RAD!ZYbS1gqV6 ļZ"nGZ8(8~`L B6;@$!f= $V [z/ۈҥo|cc}AnauFҊ Gyw)ͼ]>aM]5eji}Vu۳"9M6xlٲ />6ty.L@UFl6[wu?@nwu׹{짍1iZ-ミ7{,Jُj'ט'] ܂`푟K~.(Bk7SH>Ns6E}`00Pg< ?p_~~8l}qbfaZ-04([%lފ}KV%+yx$.K7!XK})@]vէn;0X T@1 fVW|rǩԯL8BTfK հ_UϹݪ8n5ŚS/e֐[ +{N*xl޼s^qM7^y h߉`D4d;x? zA\Wa0|@C ,ȧ1/@ӏiBVuEcx#tLߋrdł'+%+qߒXv e5?pU1{Ww~ :x00b`)<81޳AS ,aD<}1PR s S Yq-w/4ܟ>{N{oWx^z^7X:x1? w]>qO9oC W~  @ W~ #f}AIԍqYMGej*@SQ@A|Bț:0~ҿJ0X pq~' T%~S<|}u3B~2h"ED_GQ_@ * _tO"j "@1Z0Q x7[_%4H J1><@&JUJν:̃>ŝbhuLWN(x @#"s߉R`ADHß=TD;?V* Yi.y!^[ "|٪#G眎ÀFJǟ=cw͆8 044JG 1`bz-D|G@J@`x sN M%1M] +lVCHs=q~yRcΜ9曛!̱f\% dkJ&(\ܴ1i ?6; NؒBuyX&))谌Z88|Md\%hgoهκ{Xҥw w/@{/2;kBM pN>zУp/dŤy f:PsPUS_x6MkěO+ <۪1O['REpWW?ch` $; @uT-<Yyy';(݌@Hc^|_y>'pŜ7Ň H=@XA4~&a=JG9ŰYQfh-8tD2@څ?UʼvLTݝ<@qH;mDH D뮏M. "#fA'IAң}vBO>{M`m~tb$_ʋMZAt .BP@\4Lm'Q:<` s} wgZi@riO!xKXAM / /OnAdNDJRǫj}Q K|N6MM 1Nik( |]$4jW}DO>8Eq0z4)sֵ2 Aq ķASGIG|]}W1CGp$'v vڂD&ߩWyh΃!ÅI~!ͪ: /_QLI;/8:? P=vwa1A%>B[LOh<ǃ1(blh4 /r,괐!ӀS:[Ԁޜ@D$e*1Yk]W.V2ty%]^伇X%(HFL2ݭ\&N܇1lv)-s{mϞ951o޼^ rGw`' d1@D؞/HQ&gqȳ'DO tŅ|ʁhąŕtcWtЧ64}4;2&,Q{aa HH>[ /[@tH.b &:"g; x9`؉5O;e~;FEBcrggk"Q0x%c#}.N~Q@{!YN[FxfޣrL#9/RZncG*<]@< q͘>^vDۧ.銋wwA1~x )n,2Qm|VD"ؼys;%؅0N2;;*u߹8N4}~*{,] X#[,%H)xh V.Q PjCyBچY@ ៅ@<d}+hyb ^>5Ku̙s8#'?x("%ԀH+fO:ph4Ւʃdr5'B42azǏ eL7×9}1gp)^y囜XKXjzWxaC8ࡵv/x ٕ 7D*pN@v s( GJ ]K~ZcH.Jm9=)&dE <.֛dhkэH7.DΏfspDgۧҌ=IzE@aBwxaI#<5u ^ <wsUZk 4,F\xBMx/fď7>P|G;"}4'19arrMSÜ5 JgNxxz] 9G 54 RwvVD=g#iC @|XJ'#W1a1ʀDm=nNeIBZ@B&`jb7з=<(a=ԁ{rB+3I>LP雳T%# !ճ@j)%IY6ĭ#,M8f <*hED>xt@}:+"7 R)&=ig„ߛJH1sO\)2UWQ@:6 ;_woݛ0Q `P$P IDATN ܈ x<|:܃6=`d]R@ܗZ'tu}5B Z73UnaU 4ʗŚ sCOӊar}S@}#D.iM Dn; ney4&.)9QQ/nqC(#xluc  qHSdR'݄Y8=y0xφ_ Fy7ݴ!y:(4>xLd&ԙr}ٍ $@Ġ@ @wS3AQ}ܘ۽*x2N2#$htҨ@DN>y}ٵ^QZF"X#qa{:OKf c}< ș}uI}&œD]^XEwaypw`Ć pJA > tϽ )AbvH+\8kˁl,xäǜ.zM?AdZSb0ߪ5nΣvBn\Bpwߥ5q4va4xxvv]=Y(婧zmDvbb5bI5 8&mXE49/+6?wλp-VƔK{*GN }HȻvK8TNO' 0P~9vϘh-0ݾgt뭷}";'];ʅpd8.. |j@Ip?-n@V6p~5(PتR46SN; B7C; K ڤ/EupvQʻ44ܽ':H4(Uߔ~M7t'欝7fDsW:d';_%p6?x0nG7ato8t}'{ng5ubԵ+v Kt܎ LQ"pXD!0yIi! 7\gS}MdǦWz&~rl5SuVaYch4M| ၣh9M ,pj0$,0=/ݘbSk$;480 ,x1ID8@6a c Pu7";&z]x 4L0UyVu_3o1YTr̞5& <6n9^}Q8LѪ*1e7Uyl *aG2n0dG x ,TtOlXkko"͇Xk*MwqսU |4F*/1 /塨5&񙇉1W5HhTT$4׏7>>gGժZUj}Nw39ZUI }M_\NuuR*CBX%h/-x}*HAaab Sxg5/E,K_6^q`9P6ơb$Cx<7_7ㇰUC6o3qa+!Ӛ))Mন(&> ǩ.1PڸQL7W 2/xtQ5A#2"8PYXy|~򱐠-)ںH@dD;TcNQ"5'sd"KeYgoz;<,0q<˴?E/Z/06::1iON97m5*bw8I*4xΖdUʻ $թ]V`җ*$ "aOx h4H ¾gW1yзg|([>&2e؈QZ\#tP_e,Bd8|Ex+apU2 *zUxibbӽ'yb0ĒNiJa)XK EWCi2){oG`cÃ=xYCJQV`+ 2 eb(=l^j`AAs5b?u˃RJ- U_j#FBidu cYIXϲ$T`:Šޫݼh(?}%W/Bdn+q}N6B!c@)-z/^|C '&=gwmVs8qX40(42n.C?w%\uR)z35+֪Nq Nc7qQITHAVa1I`aCՅ 0 ċ0_)h+YԹ—"D.o n$O~>\< <~dU0'h24_}U]%ҽ0!k+P_5dz/'S (Nl@J-WX Vܰ1LjTIm: "~cuο +J3PuUթ~!U2=QϞYm\pmz\Tr5# 8Py!eư*jP K.z ߰OڿNQJ(u8_(ذa}iUTRVP03mޱ2&P@VqhB¬o|ev;Ld(nIE8lv(ݥS @bVtl؈"a 9\b ŅQmᑀH*8^h5 U҈1'. !P`HEv-`Jn`eWWa,lT5s.!2{G>'6ûb b"|~x目미##{[a;?dWU' .h ]塺~$Ai{a%QY\Sd9]#RL ɹ[k\>OyȜ~*Ѡ8RF4T2$TK䒪T!!žˆP! p 6KhK.~"Dfv܉q.G&CBՑZ˂5w;S6nQ JTڸ]wE@0o*g鑸E4|;H1(ĀX"S_%E9u겳ɎR@b7pr E⒭+E~x\Ys@ZZ#5,Nujùl;F5ф10FL0HXBCy[!^Q#H(CXBHkh?կE wwrb28V8'W_rb%ܻdX7鄲`W@Ԕ/WHĪjU"Gv[)ֆ Hڨ+} 6cjq4CqRg,鞊F>o$hc?oG*D"Cb.`%/gGTUzYZZ(|pb"5x[a$@8J?.pE/_jj\#{9?,ƞ] 3#Y( ud,LH`L緆I#%wפpC5r-9AqF8 ɬ@d]YsGFyǪ_p,#vQ G"z !0"UEy":<4-XeAw^!.}^tze V"JYz 9yn#>tҩk>v/Bo ٥H Hl,K,Yo{F*{ tBApF0m"L`2koUvAJ $L=IV "{@f^yx$FWŪ#pW5"ű!dR 0BoFeCA442Â"ۊaj1oD9Kݺ;| >:+_uz"5雷܊_t!vɂpT(}SqE/E/9w_=O:m͇v`$ },JmŮ(ŋX}҂Cָ[tEG |:PI V%H. `U%E6 HH5:PuiȂT! mM#CTT6AP28cBD0p+LpAP [(R}00xn>B IGME$XE&AIy#uJdIőU!T r[ƒ"8D 8FTUm$ [ޑ@TPa?w瀘},Hu$Fsּq]W,_l路{as s8Ga)O>t2 ϿfqIcc8 J4`]Wv] 7 +7XxIx0LnL@P0$x-. _I"@ H"Z"ɆM:@f>8p.]Wh+t%<kUG@h>qaGXɘFި >G4* po'B}0$5XG(rmN<og^qЁx}.MOO1x}#qӏ3:VK&"tk^Mp0 AP\!FUUk2B%ᡒ{tcId*#Ἡ DZj_%R ! !s۾o|@Z} x)[Տ ?@u"5#vMɑWpHF Lz> Jv2ԧ3Ci=;}6o1GǬs8z?>w_}<(RC%zdQ"NPvaԘOAc6@rw@"{L1(tΡTa@d?d !S!EmN}DAUV3Vc/( p)CU(^vdqH*/GiguTvQ'NX}3O?Y},i^;zG?qPg'/MU:ìPzlٽ0(@}!0ڂ$UeQFjF@Dv<俉* 92+BڂcU4 ́>>$<G!8TLjghȗ;U!GF:8pDDqǤ]WZ Ep;GfttH[L}{o.{3Նa y~aD :A#TldBV$m Q}Ra:V#!&`wC\Ɲ]Y Cuhd?_i/W~ %ڹPOߟcVϽ6ʲo~dUdʍ (A>A1"xY".@hqTA"N HQ$f!lHJ&&UHP[+@cBXJ/:VU";PuL A_!:*(V"v!Q4 !ij+h ieKSY"tIDAT%E Gpҵmw}g,9I6moWK^o&n@ \pPXw (.̕Q^z5tx_Z9k%u3mCuȼN7 T@x`Ri4p%<-@ؠ%%Yi>HlY^niySDOk>W+銪SG#-PGvKi! ~\Gg,uV0ȣO<qm;imw|#'>/>l|Eݡ`RލL)0 dyVq yCk m<"{#L|9PEZldmTnT 4} HDD-ˣ|^gP|&\VqK}Է*/K GS?dB?n  6Jr Zkyixu_ۻnSiꜗ]|ݩgk;2Fd9h;WOWcRa<A` &>h 9Yy6Ӭ7t5DjMkQU/Ԉ*6Aq%Z\nݮ]x>_O߾{-{]ںuێx[G/k An&Cstl#xd?^0@2O5ܺ3wxh^M9P#kdBݴavRQ-siDRC&uC8wkJ ,.~i_}E~<|)_mO9ke&% {9J/챂ooŠv٬Trnn>ZgεEfjD6q/'?ʎnʝjŹ})'2.U'[4cm%,j3C'Pw]?uW`R֘)% _n~Ȇ`HhEp/s`%qrX]x\![$~qXzQ} . AKˇ.DFuńB`2T("5Q '*% 4٤ ln6zre8/kg'r&z @V5"KazDF׿@1r40uuz(C8I@4D^<~OG[HhBVvVu_R?7ӎXlyi4xXΤnaʼċ*.KR&[?grݪ:B~$kJ cB^63:VhΟ{eK7}/=I<{ooK?/eI%0 ^>|\F (E VuP1KHTa"R&)P2{?^b{b`^1; q 3 )T{_iy k T(pm9y+/c'8elOeY?'?G׭ rk_+ QöFs琠AREB/QF`1ŲqEbHcq1ž^;!sw +$Bz9݋Z=eVbpɹYQ{8ז6ϚO;s:N<'=g\DDxࡇ~{cw0F<<4` aJXCD 8u0RvU]%H sЀk$qW9B_]Bcq9B)񐥀7 Rq}r 3{:L0)%,eQgd$DDŕ8'w/:;У8%KR)yo؃>DDx׏]w߾g_?w? @8@lK Tq#t#*Sq|T90tp _ikҬh ̶.A~[pH.Z@B¨7Z4 ~`bI%Uohbw{97";jp ؘ~Ήǯ<yÞ|'[ J m*ayH#+mFHF| `u@.|_=(H[h;lX^=ae>).d R8bc!( B("Sv8b `஋_D$ L0J_ik<4NHqH*&@|!#4<u&cO0GemhB "Sj]lg`I$7$q>ٷ>pxbNĮ"w/m?--FЃwEyώ.6v9rߋ9.*L(3n: bJQ%Aa.$ zbKBBcaH{oBzT ڈǂjla=Uig.w T$4V |N$mVj'ryP }£P!@$Dr50S"@Iq-@b:1.."pe`{9P/>o$hc? nkMqHJe9\_ojGWٶEz$+L{tARט!CT''6(,+6vQw2<rKw@PDA8(pUvX~$`ZEסpE8v7)sȺ ́U}3Jց0.B~/Pc I@{ &Kd%8SJ"n/pg?|n\A};e95\2uB:hOz0QVp?2kQ0Ƶ%GIG@c  rJ|H ޯB!ZExtXǨ sfAR]Dyx6Pہ:p6P@e̅`DfR@ H` R1.vqFpY!a1$`ԲU-N*]#d;$wg>)#iCQ`C|T\ʦ|M7JJ3lN/NF|$.4U@1:s`|(c ]T_6!y&A]J&8Wb p6` GxD~[ mҵR+`2qcb?OpN(`-PdzD5@Em :TLveq{~N^wJ%;?gT J;P X8 MptjaR۟/( Tb1"SCO{'\T\_TjF`@; @T W%0Qj)2%l KR}KR}U3j~nC /BLT$ )PHQ> yp#JuٽBՠr:ӲTnW74l`xt3M JyYXJ?vDLn z3Carl2N:;j$>nܯQ%@3LRyYP(a{$ڧ\bQ\a/kLN$z}, g2UM~p.]DqL`~6*G~qOmS`ID*? ]aja!Ba @ 4z7Ϻ6X@H|,S1x L ȫ /G /:@É`,v%o61&p$a;(cϑtem$SuPE@xO)c3S*Q^)syb50,$S.Zfa0Of"ajJ4L ,X*`U* qXz) ,,3&%6cRRmNjL_݈/fr^QLH':6 ]L ՛8tV筃,6 -TUȜJS0h Xu <]܃$:-UTR'-m@xDjE\>$xd5?T8dT`J9~ >OSɜ]St*‹+ P#T=5_lwti@i\YRDKVOJIh :/8x @#DAk PnKJňK%j mԫU˫+㪰2qZ\deTeLb%$q8C;o28gW\/:WS\_|})HCnYE!bX@appZH] a  =TR[?eSmDJ6]Scjv6U?\,%; (q{Dm&m0hDMZ5~s چ5$, p 8,j  RٲU\D Xi[ŵI˃Vihn\tߩ6uy5%yuQ KbYfL:+8T:|&|mu+eYEV۵66@4yXs )[:@j%NzP T*e|%L޵W0BS={ոL g~%M?"džZSe*h_Ik,迏#͂7My@* [ h2o*3QΤ Ns 9 ~L+a Q 8@&w]-suR)ꥵLw&5& ܷW\?I(f_S]30,sr4= 4@8u峑o Tfpi[歐Y7C) ܵm.MU[M>!TA4⼵3`kiLCɠe e6 0z|R8 U&m߲8LDľFY-mY7exF&}@f 3U=8p$@3LWl\~ .@{yCo #Co TZ]`.y1 oԳ¦`P !Wh `A16m똊{ͤ= 2Lԛ m?pҐAФ~ /Pl&P6W S͠uT3RpD\6.  6{884H\Y7d4-k;`h v~Rf^Du֦ߦ~rPpk0`6A0[!^8 (ԝoC46257hP*c\f7&@T 64dګ" `~@3 8P\WCl7@LV==G9hhg]̊q[F>ٸP1IENDB`xmms2tray-0.5.1/data/xmms2_glossy_24.png0000644000175000017500000000334111356366411017434 0ustar thomasthomasPNG  IHDRw=bKGD pHYs B(xSIDATHǕmlSƟs_{}mǎcs7hdi#h(-m`:UmAO t + J"(oZqbU_X$Dvb;CVjG|8:=#",)ֲVlcbuMTTTn_<ֆ"Gmmx<>D)R">}Taaa]MMMu]}=}7iö_)$SH%/yM]M2ܧXE^L^L|*RO?k]׳Ξ=iZw5bW, 9kH^M|f1)9 eձEuuuvg@KǼ U{L(d=|~Aقv'J買wc{Ixkx%ٙРZLNN+ɦ-jٹgo9E`28$+/lKWC ](MM0(%H$Aф?+W%Iwnﭯ_mtWazv`jTtvApgBH >y<aX, i|3%}2CV-l66$ILfn C4w88UUittN^V&B &dkr#CBMjl@VdȒx331egbxxl6ŋY"T%88$9weA 84&060FoTʷҥKWJJJlhh+n[HR dw6; ҂?)X:.~Wd͛ \ff&>-//,庿A1,cMޅo*-`i q`vpj8@YYٮGf*++|}]=d+@_x"񃀕QEܦį-'~k].kiee%gpd|9`?lh"x ~NjO6۳g|6ݷoKMM|}>XCt4Wznӹ9`N8K#-ۿة:,{7Ӗfܹ? b`V$ 5U_TmYޯ6oE@zӲ aVISx^:::@DA0 <ZBYњף].V7}}㖲{!3cx;$4$ljPQQN֞!Y%2Pa$-2IEK8í}1DC G(fQz/mڴifffp!q`ޖaCt:ar\ɥAJ`vy`r :V 8,s\SSӃ?Ag "zTXtSoftwarex+//.NN,H/J6XS\IENDB`xmms2tray-0.5.1/data/xmms2_simple.png0000644000175000017500000002545111356366411017106 0ustar thomasthomasPNG  IHDR>asBIT|d pHYs b bCCtEXtSoftwarewww.inkscape.org< IDATxy\EU'd#dȾD@X%ʌ:||U_EV% q7e\ 0j *(Ae }NG7K_>@>]_=[=U%ּ)fG D`Y a_U#@UPN>lGog9oR&wfcF~wRx3zp`.0xc$;Hw{>q{NY|)p>>vQ@"et 7wGm,^[G^_kZYzК]v̈́qcX&ߙʉːZe@ ?+O8 ح7n]~={˞|+?bCsiu,#G k+S/h࿁Q,rݏZYiKB@^a@#Gp3Ncw `i#7%4|4 ^73Y"0:gG Z:~.ҧ8k,tBaκ*-} P j˹4YGs5S hf4//ŗ_̖y^:Po!̏S&+gNMAb1+[@"7\s̏_]ŌOâw֖-GwF(b]psI3jAh] ^s ~kI7F3;kWSJf@c!<10B!b*z#;]bZAJZ~ f@_bD4pׄ3@*^U o%藒YеblM Mr+? hr?z% .2?Y=FL.F: wuph9ź&A_q_>yގ|$yc- D#G~dC.8"u )h} .2_閱BK{\ mz{Fۑ7Ph,Au@̿꼫`DZ-(dF 4 【{惎sc/~SYA=)iAм/8/G2]94= >aR19l;0VKZUV4'z]dFe^ @Hkya@$D*kyZ9CЩ %A-TAo`;[ a怴BXoA3x@?ǿ`v6eERb9 CWڋ%~A}=ߴ(6@@+#)wQF\ Ilpd8^ A!I:qwꑆluq*S22AJh54aS/=^K+j0}.cr}{ ٿ?5oV4iؑJF*(e0J#Iзa@oFHՓ/c;.Kqwng,,SH YT>U Y4.bw`F>֍ H R3>e6c|`nmGMfBQlELZO@НhHe/%ҧx?j0~rú;Dko̯ LwVI!8}uy nl-^Ҳgʏ|{zbM,w@xAK9 @)2Aøs8~>zuݿkZHәE]Y2XHq"f@xjz<< ?OڋE# P^g bir#_ZҸ{yHa~ʣ7O_P/q6 $$x&5Z\@(6^|t!%Bm]?ID}ߟônNCa42aWo^Ŋ$|!D"g'y0@b>_&h?#v2 1۲4EZ$$$ Gܾ̼۫h8wTO YwCB !'Db3r}rFdMsыb)/b[xcFVuRF,$ (8v'L1eX }Oe݆M|ֻ8I:_9ed+2y€!k^= Lgqnq;D{M[Kig_fz5/M\~?7e:Q||B`ִYoa ӟ>^!M kם0CxW@'(6aC(Klmo|nҔ>\엦 XuSpZxi%3>qns2~ 4HpY>xqŕ_CװNik{_a!^Zl^-ܲ(ӾkfT9[fFäf{ I1A$1T, ՑÇwgѝr/pNUi-9lܲXa^UO-6A|%$.TNڼOk5L;#1" wJH2  }!7߉ek?ȭ`2QՕis%7ni_Æ[uG Ǟ07_@Ji:*^|8ϤpNb&5SQc^^85`oro[aKz頻i>z%fKD6-Z0x5fêc)8ara48糝CSI!,"_yοʧU!ᱧ39}'0 .>ftQ?a{p<)Ey[hӶvκVY0Jϸpt 6NX"n=C\R΂Y^E_\VRFk(I$w#Oń ش?ۨ $\1~3sHlzf>;_`*haX(=*@CK؈RްDƲE7jBqtK` &XP~pB^[&^ N jӍN9=kŬ.2Eo{`9}M RGJGF iQ`$▧ -' l[<=4N9Zm.z-?ma9sSq[Ɵ2yDؔ< HH nvˍ~/-@$ :E:E:%ڋ);2>yaH삐$"!N@PEԂU`mP,(&Nu`[H!I}ֻ 1BBu7[kuMbyZwmMU9=Tcc44=rxϮ?VU+)9! r#< !qk q*)Rn$\w݇F< l{9eqE|=#^9.fttioO RUD䊛XJ5,G<;!P?҄f{!G0㪇1iIYg7Q6 &,Yo2 j)! jG*pe B8#f!{hTPm"ȼ^^67۸[s^&:K?A/2SL0*8g/M4Iϭ׼e>DEs h]pQ󅸿O!p%O__)Ks"6κRJX .D21AI1UQqWhE+ΝڒcHsA(4/־BV(jA4AbQJkZF,۔ N7"7&"UǺh 6e]~OwH7RLkc(u0$B[fXV1FƟ612 .Chy^VWNByX&jc?N*!Kt1W_! /"=kԊ#kuCmlP\3tm\-m12]'.,XF;ð 8aǮ}N@xUn5Uя`p߉6; ,*)(t4%tB̻7u {A:L+;HxAۊ%/a]J؆_`١5B_!wc+#j}Zhvju"&TrTE TFRy]ve9i#\ ?6R02*~?Λ|؃BPLH %YvGBD mxJMTys_f۸mhmcX];s9snqc ś6"b46l:7ˊC yU6d8LH2uHa}~ T)JŔLcT 3Ϋp, m(Υ:#wQ?ƏSKVKZNg`j4 o.ݪ‡E}g̥o5?;)lF8Da|,(eIiڝ粞\k3{D?;nE(:Q^TKerJԕԑ:t!/$W Y91k_y+5Nߟx"t҈]"fN8W.LǺkS~3W{4U#>/.;R kuU]vJ RRZpqOh-ӛqQa?xL -tUѨa9鰽̷~71SڥL^L(I*S)륏 D^"EimlD{Gmm(Eo'Ԛw%ַO;4~Re@Pu$T|/wnϿ;|crw0yJ"ͲPޘSǰ@FPJ%JTZ1y;ޝ$hoO~x8B,a˓K:p9ee?E5.7tfےs)[ڪ.t>}Q-$A HUF4RdY߳4j[C򜴍TZe)i^JeVJWFٝ^#վ 8TëG֑We2!wG<ܤ|7m_jkߟ~́;o,3bRR,H޾)if_im%f.l.1G$׺:9Eȩ(~q1(}!nY4PI̞/ 6* U0AHEIeŪNӒ+T룸`]ʿ{ j@A5-'ؑ;[Uo+_;TٯF[N݇ko)͘%12F!=.*݅֡zZ_VgrЌ-'[B# *ha\T_3"qUEtd"-=>J&y:}~TAQσ /b52P#P-bV#~!p{,NK֋>/1V^;,Jgq=\<62jڊqDm; U*20~h~2iNx13\eN C,U㵉8G_} pl7!.Zw8˿A-)7JUϚ..ߎ|YY_.+ n2c2Xȭ`NȪ;1Ј葊p|AP3ٳG)v-'*-j\,?0#׼ak{"fO/?BSI <'1#CW\u5/0<~Q>xie R`2H򼬲ntFV O_n\AqB~U-7r(.r$`s~ yo*|˾>e$̟cSЫS9j5b8 ol\e.?l7"@4:1sݱ/f^_ hj҅sE{5*}8r00Q#oᱧja6JP2w5a;wE1R=ҝ@̬H~`5#?c]?j/7g R\G O*jS6n˙x?/lyo 2uHίWҬudA$ Nsmmr._ӝ$Xu?RI)h{V&*ԀWoQ TQ߹@ >#:A:%sSZNI7JA<lVPm'74#Ì0r"wbZ5!vEW~1g*F˕+\qWUj9V)i֥nU?0[դgz`ҿ2Jv&_./\n:ۨ;ϫ˓8$&hcW$6G6?W-oa8`WdWx!;fRJ)Z'P  T?j*0–axYRnAp IDAT3mra  $ +ciAe9L߈RȺt7.#omǦk-p lK.?<sL2gӔI84~TVrEL=x%5G;K ]=[<Ѝ"&Ee;7DܽZ3u]%D!֑_W_.uANCs ܄Th r;scp4*Vy f n6Oa6_p3iEp%אfBzʮYey.ڎ,eƏa@4ǠɦJ$G;3Dz۸LILu, }5V}O<56WDJfOۛ=#myh6tr{ Fp;H" rvS?0g^|@R%V2,!)m]L2Ȧvå, LIH8={q{3jؐF-< 3fO۫mC_%Z}6ӵΦQLgFhmMxmr uf+02NљyTC<QGN#|3/΀@&~ -$2I"!\Db .D, f箰aL3OՕzw+wIY*3470`PJTJ2SN Ff@ifUifæXmC0 1%ǧfsoJ֊G}\2e>3gh|08 o:WXkKT8k)l;K9k?:FN*K ظJ픱[c2]E>tAQݮ S0zxP+Ualdj{WDiNq1t^{q3=. Zߤ\87Όebg3ql]H$7s:8#pj.qBggcddY0?_S 8yV(/.!^`!z8.'%*`;4r4~EJV+"bBB뼞g>+ B14n edKt86M{L~2]H޻$۽I.QYG)rsd|jԃHhXZwzD. B.4՘CYpg:x`7Toc![XGP֭n3jC@ kۧ6^sQ1=]PHskzN:dwFsyFKmFNu+#hN Z7׭I O|G :ϘA*C[7QO:XH8HwaVf'D`B!2\ RYJgk%Z^HKt+{णi+HHKERiVB)n{j/ƲYtjs8NgY;YYMHд=*|~@Wm)1uݘ5mjTiiIc8p.^)x>qsM~QD|ը']W_`":cquϼ3jYM;.e?#}L}Hf7#QODH>ttݕ}F{7aDz\柲FL^"ֹ_sCc;BO¡C8`ϺI}F# bωyqZ.n ˂zPAU5g%$sۧ4ah/g0S 5^;A4qp3; f̔nf|2nTF"`3`QÌ{͢;O9Oe)zŹXw>2w WM<߅wCGeR&e>>M[X~RTT,3m-'P'0_ W[ 6z6ʲA눾1b;YjL3H]ij͟r-95I-N pO''pȚvPD&%/gӵ#"",zs_&^\mjj j?_E2 J$&X l[]=2\cdJ|ŒQP"-""7Ok-YX"1JHSgodJk(G;19&'g bC;6Ǎ!35֊ˋr(T"R>|m7byc7`[/ν'" 0~pPd+'R{qxpT@ׇa|X,;rm{l/ڶ,cs=UJ50RiA);%3rz ۶˲BiR`<1.5(J) @5N0hemmERi \@uru$jPJ.|/L= :q]azz1 b PEsNO"D_ wg9̔Dekp:1`\'h.@*'+˷<ALDjد8WΒY, 5>ADwƎH[1{Y׻x'PE͞J(?>Fb=ttK`@7 qڽ.A濱`(=nqW_7En'<P&>Haa.?=qTKR- /ɤUr}D=%uɟ;=A.)c%IaM0Ok]Q#!)Á65>6:؉]=]{Ȍ6KCa2Rߺ#pRC]KzH_ס@?"zTXtSoftwarex+//.NN,H/J6XS\IENDB`xmms2tray-0.5.1/data/xmms2_64.png0000644000175000017500000001534111356366411016043 0ustar thomasthomasPNG  IHDR@@iqbKGD pHYs B(xSIDATx՛y|Uչk}$B” *Sk5T@m~ZV Ek_m bmAdxU @ 2icsrġ>}{gDFy7ټy3TǏ //b)--K.aԨQdgg ֭[r7X? ;Bl5{lxaWUUqWbрgM:uŋyjhh8bvmMMMMGw暩`0z̘1j֭`6/cn8|Bqǩ/~?|>}=`?7̙3O+yw|r6NvnYY I&N7n8kܸqcݻӯI2jJU$f||WYURR:EÇ'L0x_zu0rb m Jacds/m)h̙3+/Auu5%%%IO >&ߚ6].ӵTLRGWnWijn 2IDUWW%goii9tk$"3|3 1>XC2>ؽu@+ϒ m&^{3׿MgСCI &LI|KkDfW`**VSPZ!mD+ggF[*++$[nkT">fj׮]0a/3p@k$ʬo|Wm܊r;Rh+qI\vPV `' ǐ{L`'qӖAq捕'-ӦMʕ+W'N.] w|3 U9Vi'Df^X :vtd`s0ahsssv8_VV(+// daCCY(c6,^M٥G)uw9x|rYrLNNNUW]5=9.&a; ;t `2e0& #WQ{d>S&`X,p6V8 L  `.QV I?c|>|ƲRoAG~zرcv޽0m}vޭ3jԨaɥmSs3/FkC^4m<-!!" ړ\J[kEE(Ԩ{ك( :4|4p8 Jx!sIa_>>Z ԞlZ˖=3з7e%p0`Gߕby3K%57pV(/wS/++o{=Lݻ(]{zS"x@k$s$l 1G,m8iJ))X"XN  Y> 5IF[m>(N` Rp(vUM=3}R)1(˲tO ,cZ|\C$Lci?fh.%`i5 O)m6- gaƤO'S.,, Ӗ :K@9~\$ A<2^Tf>:6W&44Τ{),6, tڋp:t$yE @\ؿF7n$eeep8LiivMMM6mJnBdTN׎txsN d4DZXM-|P}G9|h G.YpH4F݉F:̎]U0x<5Nwk3֛u{m߾C.--uw:JX=cOBZ1F$JdMIN;'XMy9TV\VN#l{-~Ķj?[v]~~\ͱ$6 "86 _Rj .| 3D)p 7`Y_|ŵ7okRMx_ b\*w;jXֶ6gBk cҗ$ n/4a$wҙ%wv']O= @\)eϜ9u=z`֬Ym[oa$i(k˞WQWopp*@w:&)q@ྗs%0gD]MH$2ws3WqDoakkk#2ep l ysνWD zg.zݱOmU'&K,gH՜8dJ$RqmTJ#HPב5i}Gf o۾[R<gҤIjÆ rϟG{d[, e|`{ qQ9~ݻK%l{=l[б1W+b1z%0D.\}{H2dHbƍfzkᾝ3iO_},?J#K=.|'e;[띐Gى6$6q$0/Uڃ;wOi"K>}2N:zj)..Nq/Xżܓ츫vl9a=~?W )=gW Bݠٝc/7h vej/v3'o8m8 Lm޼yAb\0Bk~3Q/}镢3f*ŌJ)b.bz_"漡uhٱq}EJޘ}Ūm]bJLj3RLamvZg]-4, FB}q @ KK6V~GܮP-xn]xulB:өsteyҀ=z4oֹ3ϐWiG`0Y=rё|= wFVP~}Vsx'Dw*]p9Iv ?KT0BRL{)#{.att @}V/>-k* Z[[55tX2,D,P%Ǐc;̽y?^kuίx'Mh\ǃΝRpOm(@Tk; bw8iCv֭['cƌxn7t4XB|ڇ|yL@׮]Ց#G4,r>DGI'?"D烈D$|ieO걫;u D"eY755Gweon:RQG@ TE Q141P)Ip$h4͐Nccr I),/LACPAaPWv '.{ox>Oض2r]{YQnb!Q;1yb4ZiD)mX,P\\>c |I a)?PRvOӀd;Q@ z|AWNԷg˲L@q>W{~;T!RQO1O1B@Ӏ8Zb4H<v8v|;a…V7CeaS|5 JEז|h|s;dsA~A~~Hյ豺&!*ڴ:*:"᪽g8J?ı Gl3gt}3kC袋ԉ'5 iQ՝$mVK\SR/%\lw"`#WWeR ڸmoH89wo+lڴJUSSE~! a+|J`>@E{6 B!Ihn$AF).6 8H܁&Z˓%Kȴi tRԔGC@_kKBBvw:"yD)ׁ}ŽPF9}3jx$Qr#'-n DRPH*++ӕ~1K/ĪUXn@ .!wR(7OˋJm)mVm8^j9ۻ9ᵓ>eر2yd/SXXa[݉"zTXtSoftwarex+//.NN,H/J6XS\IENDB`xmms2tray-0.5.1/data/xmms2_simple_64.png0000644000175000017500000001015711356366411017414 0ustar thomasthomasPNG  IHDR@@iqbKGD pHYs b bCCIDATx{Uŝ?pp`Afx t(]qMB]kb,5ꮉc(h||$j-ZV*UPF^: p9ݽt9feԩ{#1|A-gUb`9|_[[^<< c~g}+ǀO(Yv=[غ0 RKӨ8 Rvuy@\5 WmcgXrvaO> eW8bX..v} Z$Q4~G~RpD_hCuUWN $t߾k7Wz7|O5O)̿7'‡~Jm1}FB~GN.6m\#@|!^/E˂Y*A@6ֽ Rd!LR\ڒc Ŧ#H E^A{y[5h^;%̟Yq_Cֽ vBH\AFq7} @$.]G!Z]/YvO5`E` 0ZruI8{ ^DH!-!M \04r 1vVڠc0ZFSP1zK@7n ),M 4y3whm5,wwsZcJaa@iM <~>2hoGRo(Pڒ할UES^HD")%CoIzJpY{qϯXއNmF+R68jeG#PBO8e d"dק;o`p['< 7/PbѨ$Fkvi`<GA C#o.ʼ^OT郏q|}V(U 5(e'K{ph/- A!xk[QZtyn)| ;45 p"Ȱ@ 꿞CxRv+6lg_~k7z>ߵ( ŦQ ԳTWd |0Ylj;6 oc A * -WAIH@x\2Nod^Z!A o. e[L#YH\ri22 -pHiuUϽzܛk7p˧llFP2?3~'4 c|p {cX,]ef=u "q}n]OjaPH:|)Cd A\0diܻo_Z͂C?cƠmK+g\0 GQ3(WW|n>ݹ?=ڶ@E67T'` ƺdƏyuv%'BPe%})Ow wnG\=mVV΂`x@PZC1 F[´nh8@'5y /ν?^Vy4!Lgy]ϛXD.f.dKHiC0Tk )RA,H\ë+ߢy9Hlm>lL2)ЂuVHdS~. Jʂ$Ad:3"ȀsB;'q /OPiN!xgimۖ-@(媴b3񅔒eo!  N|J)c(Eq1H1}w%_9" 1Sw ძ,X"$pߕBfAY<[r[҃NF,Ŋ/w*:-wqُX$IBhM#)Dv;K;п_JzfJª[_ SD 67/H,zi]]fb-Tfz[$Om D =\—W[:s$JaiRH8{I{\G>*NN ;wf|wΔdZ6eyڌW r+2 qJZ܉3a(II`HG#RԚ)bpno"1meZ]NjN9֙d*@)_,Yn'.?R:ՒĥϜ})wGi S"f&i{':}cKTbQ>et"U.Is3/SKNH~)D;;%~Xsf(#D8c^B$~a0uu_rZ+\G;v`ɪ]EgO!NJpIU;tۛ`M?@l<݊̿DYFJ0bkrHvFiڄ 5-Z襓eNxO4x+2u:ǍeAj21m+1v+Z$kºM-1R +G)9khQ]ٳĚj6oͨp~h܌҈z}\9{;w_/{ {W}- d؏BXEڴI{p։ci[f/y?D'hJ}"$B*Q*(#cGX] k`e;̻ؑJRF;chQcy <Rۿϼh\fJl&a}6ejcl]Nw;G~p9= oBuxJhZNϻvchw_bvAB -s8!ͤٱ>~aU'$h;wa$Pq # JPq *#p|}-OW=<2JP:'|_p$(J7O:1M+T_