python2-pythondialog-3.3.0/0000755000175000001440000000000012531573210015555 5ustar flousers00000000000000python2-pythondialog-3.3.0/ChangeLog0000644000175000001440000016171312531573207017346 0ustar flousers000000000000002015-05-28 Florent Rougon Release 3.3.0 (Python 2 backport) Merge branch 'master' into py2 * master: Release 3.3.0 Minor changes Use html_theme = 'classic' with Sphinx 1.3b3 or later Allow passing dialog arguments via a temporary file Fix message for InadequateBackendVersion in _dialog_version_check() Conflicts: README.rst dialog.py examples/demo.py examples/with-autowidgetsize/demo.py 2015-05-28 Florent Rougon Release 3.3.0 2015-05-28 Florent Rougon Minor changes * doc/Dialog_class_overview.rst: fix a typo * doc/conf.py: update copyright years for the pythondialog Manual * examples/demo.py: update version number + cosmetic change * examples/with-autowidgetsize/demo.py: ditto 2015-05-27 Florent Rougon Use html_theme = 'classic' with Sphinx 1.3b3 or later * doc/conf.py: change the HTML theme name to 'classic' if the Sphinx version is 1.3b3 or later (the old name 'default' is now deprecated). 2015-05-27 Florent Rougon Allow passing dialog arguments via a temporary file * dialog.py (Dialog.__init__): new 'pass_args_via_file' parameter. The default value (None) enables argument passing via --file only if the dialog version is recent enough to offer a reliable --file implementation (i.e., 1.2-20150513 or later). * dialog.py (Dialog.setup_debug): new 'expand_file_opt' parameter to allow producing debug log files with full dialog commands as before, instead of dialog calls containing only one --file option followed by a path to a temporary file. * dialog.py (Dialog._quote_arg_for_file_opt): new method (quotes arguments for safe inclusion via --file). * dialog.py (Dialog._call_program): honor Dialog.pass_args_via_file and return a 3-tuple instead of a 2-tuple (new element: path to the temporary file containing the dialog arguments, or None if Dialog.pass_args_via_file is false). * dialog.py (Dialog._handle_program_exit): new method, which wraps Dialog._wait_for_program_termination() and makes sure the temporary file, if any, is removed when it is not needed anymore. * dialog.py (Dialog._perform): adapt to the change in the return value of Dialog._call_program() and use Dialog._handle_program_exit() instead of Dialog._wait_for_program_termination(). * dialog.py (Dialog.gauge_start, Dialog.gauge_stop): similar changes. * doc/Dialog_class_overview.rst: add two notes to make it clear that the dialog arguments may be included indirectly via --file, depending on the pythondialog and dialog versions, as well as on the arguments passed to Dialog.__init__(). * README.rst: mention the 'expand_file_opt' parameter along with Dialog.setup_debug(). * examples/demo.py: new option (-E, --debug-expand-file-opt) to allow obtaining the same dialog commands as before in the file generated by --debug (i.e., with the --file options expanded instead of referring to the temporary files). 2015-05-25 Florent Rougon Fix message for InadequateBackendVersion in _dialog_version_check() * dialog.py (Dialog._dialog_version_check): the message passed when raising InadequateBackendVersion had a hardcoded "the programbox widget" substring where it should have been using the 'feature' parameter. 2015-04-10 Florent Rougon Release 3.2.2 (Python 2 backport) Merge branch 'master' into py2 * master: Release 3.2.2 Release 3.2.2rc1 Conflicts: README.rst dialog.py examples/demo.py examples/with-autowidgetsize/demo.py 2015-04-10 Florent Rougon Release 3.2.2 2015-04-04 Florent Rougon Release 3.2.2rc1 Release 3.2.2rc1 (Python 2 backport) 2015-04-04 Florent Rougon Merge branch 'master' into py2 * master: Minor improvements to README.rst and INSTALL (formatting + date) Conflicts: README.rst 2015-04-04 Florent Rougon Minor improvements to README.rst and INSTALL (formatting + date) 2015-04-04 Florent Rougon Merge branch 'master' into py2 * This operation concerns all commits in the 'master' branch since v3.0.0-2-g05e70dd (Sun Oct 27 11:35:46 2013 +0100). There are four duplicate commits that were either recreated by hand (1) or cherry-picked (3) into the 'py2' branch after the 3.0.1 release. This is ugly in the log, but the files are correct. Conflicts: .gitattributes INSTALL MANIFEST.in README.rst dialog.py examples/demo.py setup.py 2015-04-04 Florent Rougon Update the 'with-autowidgetsize' demo * examples/with-autowidgetsize/demo.py: apply yesterday's demo.py changes to this file too. 2015-04-03 Florent Rougon README.rst: fix command line for running the demo * README.rst: the given command only worked if the directory containing dialog.py was in sys.path. Prepend 'PYTHONPATH=. ' to the suggested command to fix this. 2015-04-03 Florent Rougon README.rst: improve formatting and references to external projects 2015-04-03 Florent Rougon demo: fix bug when buildlist is not available * demo.py: the demo used to crash on the report when the desert island question had not been asked because the backend was too old for buildlist. This is now fixed. 2015-04-03 Florent Rougon Fix backend version check for several widgets * dialog.py: - minimum version for buildlist is 1.2-20121230, not 1.2; - minimum version for programbox is 1.1-20110302, not 1.1; - minimum version for rangebox is 1.2-20121230, not 1.2; - minimum version for treeview is 1.2-20121230, not 1.2. * demo.py: analogous changes to display user-friendly messages when the backend is too old. 2015-04-03 Florent Rougon demo: provide fallback for Python versions that don't have 'callable' * examples/demo.py: provide a custom 'callable' function for old Python versions (such as 3.1) that don't have the 'callable' builtin. 2015-04-03 Florent Rougon demo: don't use contextlib anymore * examples/demo.py: contextlib is nice but not really useful here. Since its use in this file causes problems under Python 3.1 at least, don't use it anymore for now. 2015-04-03 Florent Rougon Workaround for old dialog versions that print the version on stdout * dialog.py: some dialog versions print the version on stdout when using --print-version (e.g., 1.1-20100428). In this case, the output read on stderr is empty. This commit works around this problem by rerunning the dialog program, capturing its stdout instead of stderr. The penalty is minimal since the backend version is cached. 2014-10-30 Florent Rougon Release 3.2.1 2014-10-30 Florent Rougon Fix awkward wording in the license text for the tutorial example.py * doc/intro/example.py: replace "Neither the name of the Florent Rougon (...)" with something more appropriate. 2014-10-30 Florent Rougon [Manual] Improve the tutorial * doc/intro/example.py: remove the useless "import dialog" statement at the beginning of the file * Expand on the example: - introduce the msgbox and infobox widgets as well; - present the 'title', 'backtitle', 'width' and 'height' common options; - show how to deal with the Dialog exit codes; - mention the autowidgetsize feature; - suggest good practices such as locale.setlocale(locale.LC_ALL, '') at the beginning of the program. 2014-10-18 Florent Rougon Add a label for the Glossary in the doc * doc/glossary.rst: add a label before the Glossary section (the sphinx-build program from Debian unstable complains about a missing label without this change). 2014-10-15 Florent Rougon Release 3.2.0 2014-10-15 Sphinx team Add the Makefile generated by sphinx-quickstart 2014-10-15 Florent Rougon Convert the documentation to Sphinx format * The new documentation is much nicer and more convenient to use. 2014-10-14 Florent Rougon Add a line for .rst files to .gitattributes 2014-09-29 Florent Rougon Fix calendar default values and docstring * dialog.py (Dialog.calendar): change the default values for day, month and year from 0 to -1. This is unfortunately BACKWARD-INCOMPATIBLE, but 0 doesn't work well for day and month in dialog, and it would be quite unintuitive to have them default to -1 with the year still defaulting to 0. * dialog.py (Dialog.calendar): improve the docstring clarity. * examples/demo.py (calendar_demo_with_help): use -1 for the initial values of day, month and year. This is only for clarity; the previous code would work just as well. 2014-08-20 Florent Rougon Release 3.1.0 2014-08-20 Florent Rougon Miscellaneous little changes to ancillary files * MANIFEST.in: remove "global-exclude *~" and "global-exclude .gitattributes" because they cause warnings upon installation with pip that may frighten users, and only provide a safety net against hypothetical bugs that don't exist in the current version. * TODO: update the file now that the 'autowidgetsize' option has been implemented. * setup.py: don't print the "No .git directory, using the 'ChangeLog' file as is" message anymore, as it pollutes the installation with pip, possibly causing users to fear that something went wrong. 2014-08-20 Florent Rougon Change 'autowidgetsize' into a Dialog constructor option * dialog.py: remove the 'features' mechanism and change 'autowidgetsize' into a Dialog constructor option (boolean, keyword-only argument). This is simpler, doesn't require any recent package and makes it possible to have several Dialog instances with different values for the 'autowidgetsize' setting in the same process... The 'features' mechanism is removed because it will have no use after this change. * examples/with-autowidgetsize/demo.py, examples/with-autowidgetsize/simple_example.py: adapt to this change. 2014-08-18 Florent Rougon New 'examples' directory; examples using 'autowidgetsize' * demo.py, simple_example.py: move to the new 'examples' directory. * New subdirectory of 'examples' named 'with-autowidgetsize', containing copies of demo.py and simple_example.py using the 'autowidgetsize' option (small modifications have been necessary in order to preserve correct display). 2014-08-19 Florent Rougon demo.py: programbox and progressboxoid changes * demo.py (MyApp.programbox_demo): remove the \n character at the end of 'text'. Otherwise, dialog will see *two* newline chars in a row at the end and will faithfully print a blank line. This, in turn, may cause unwanted scrolling if the window doesn't have enough space for that line. * demo.py: run programbox_demo from MyApp.demo() if the dialog version is >= 1.2-20140112, otherwise leave it in MyApp.additional_widgets(). Versions older than 1.2-20140112 have a bug that makes it unsuitable for the main demo. * demo.py (MyApp.progressboxoid): allow additional arguments to be passed as **kwargs. 2014-08-18 Florent Rougon New 'autowidgetsize' feature * dialog.py: add the 'autowidgetsize' feature. When enabled, pythondialog's widget-producing methods behave as if width=0, height=0, etc. had been passed, except where these parameters are explicitely specified with different values. This feature is currently marked as experimental, please give some feedback. Note: in order to differentiate between a default value obtained when 'autowidgetsize' is disabled and an explicitely-specified width, height, etc., the size parameters modified by this commit now default to None. In order to compensate for this information loss, the effective default values when 'autowidgetsize' is disabled are now mentioned in the docstrings of the corresponding widget-producing methods. * dialog.py (Dialog._default_size): new method returning the appropriate default values for the size parameters depending on whether 'autowidgetsize' is enabled or not. This allows tight factoring of the code that had to be added to almost every widget. 2014-08-18 Florent Rougon New 'features' concept * dialog.py: new concept called 'features' that is similar to Python's __future__ statement. The general idea is that users can globally modify pythondialog's behavior by calling: dialog.enable_feature(FEATURE) right after importing the 'dialog' module, in order to ensure consistent behavior. In this call, FEATURE must be a member of the 'dialog.Feature' enum. Using this mechanism therefore requires a Python installation containing the 'enum' module. Since it is part of the standard library in Python 3.4, this should not be a significant problem. Note: the Python 3.4 'enum' module has been backported to older Python versions under the name 'enum34'. * dialog.py: this commit adds the following module-level variables: _HAS_ENUM, _features as well as the Feature class (which is an enum). * dialog.py (enable_feature, disable_feature, feature_enabled_p): new functions. 2014-07-23 Florent Rougon Remove _create_temporary_directory() in favor of tempfile.NamedTemporaryFile() * dialog.py (Dialog.scrollbox): use tempfile.NamedTemporaryFile() instead of our custom _create_temporary_directory() function. * There was no security problem in _create_temporary_directory() as far as I know, however it is usually better to use well-tested library functions when possible instead of custom ones. When _create_temporary_directory() was written, what was available from the tempfile module was not satisfactory, but this is not the case anymore. * dialog.py: BACKWARD INCOMPATIBILITY: the UnableToCreateTemporaryDirectory exception is not defined anymore. Dialog.scrollbox() now creates a temporary file without any temporary directory, therefore there is no place anymore for this exception to be used. The equivalent condition in tempfile.NamedTemporaryFile() generates an OSError exception (more precisely, a FileExistsError in Python 3.3 or later, which is a subclass of OSError). As usual, this exception is wrapped by pythondialog and seen as a PythonDialogOSError by user code. * As a conclusion, wherever user code was expecting UnableToCreateTemporaryDirectory in previous versions, it should now expect a PythonDialogOSError, consistently with the tempfile module and OSError wrapping by pythondialog. 2014-07-18 Florent Rougon Improve installation instructions * INSTALL: better explain the pip-based installation method. In particular, indicate in which situations it is safe or unsafe to use. * README.rst: minor improvement. 2014-05-20 Florent Rougon Declare .gitattributes and .gitignore with 'export-ignore' * .gitattributes: declare these two files in .gitattributes with the 'export-ignore' attribute, for the benefit of 'git archive'. (cherry picked from commit 3e03308a7f849da4821159ccac0f57af26ead721) 2014-05-20 Florent Rougon Declare .gitattributes and .gitignore with 'export-ignore' * .gitattributes: declare these two files in .gitattributes with the 'export-ignore' attribute, for the benefit of 'git archive'. 2014-05-20 Florent Rougon Update the pip documentation URL * README.rst: update the pip documentation URL which changed according to . (cherry picked from commit d21b0af8030d47d6e3337399fe1e9a9860c90a3d) 2014-05-20 Florent Rougon Update the pip documentation URL * README.rst: update the pip documentation URL which changed according to . 2014-03-13 Florent Rougon Exclude *~ and .gitattributes files from source distributions * MANIFEST.in: safety measure for future updates that might inadvertently introduce undesired files in the source dist. (cherry picked from commit 63aa418a859c617d9c957974dddd5eeea96cf2b8) 2014-01-19 Florent Rougon Exclude *~ and .gitattributes files from source distributions * MANIFEST.in: safety measure for future updates that might inadvertently introduce undesired files in the source dist. 2014-01-13 Florent Rougon Introduce end-of-line normalization for text files in the repository Introduce end-of-line normalization for text files in the repository 2013-11-01 Florent Rougon Release 3.0.1 Release 3.0.1 (Python 2 backport) Backport to Python 2: update INSTALL, README.rst and README.distributors 2013-10-31 Florent Rougon Backport to Python 2: don't use {...!r} to surround strings with single quotes * In Python 2, the repr() representation of Unicode strings has a leading 'u' character and backslash escapes for non-ASCII characters, which is too ugly for simple presentation purposes. Replace things like "{0!r}" with "'{0}'" in the relevant format strings. 2013-10-30 Florent Rougon Backport to Python 2: str() -> unicode() * dialog.py: replace uses of the 'str' built-in function with 'unicode'. 2013-10-30 Florent Rougon Backport to Python 2: main part * This commit has been prepared with: 3to2 --no-diffs -x str -x bytes -x print -x printfunction -w \ demo.py dialog.py simple_example.py setup.py followed by manual editing of these files. The 'str', 'bytes', 'print' and 'printfunction' fixers have been disabled because their work is better accomplished with __future__ statements in Python 2.6 and later. * This commit leaves out a couple of more or less systematic changes (such as the replacement of str() with unicode()) that are better done in separate commits. Ditto for the changes to README.* and INSTALL. 2013-10-27 Florent Rougon Make sure ChangeLog.init and ChangeLog are read/written using UTF-8 * setup.py: make sure ChangeLog.init and ChangeLog are read/written using UTF-8 (regardless of locale settings), consistently with the Git repository and release tarballs. 2013-10-18 Florent Rougon Minor improvements * dialog.py (Dialog.backend_version): when raising UnableToRetrieveBackendVersion, print the exit code (which is now a string) with repr()-style representation. * demo.py: - use the print() function instead of sys.stderr.write(); - minor improvement of the buildlist demo. * setup.py: - add "ncurses" and "terminal" as keywords; - use a 'with' statement to open and close 'README.rst'. * README.rst: mainly, write appropriate text concerning the Python 2 backport. 2013-10-12 Florent Rougon Release 3.0.0 Minor improvements Add buildlist support 2013-10-12 Florent Rougon Better support for parsing dialog output * This commit allows parsing a dialog output style used by the buildlist widget, that was not supported before. * dialog.py (Dialog._parse_quoted_string): new optional 'start' argument. * dialog.py (Dialog._split_shellstyle_arglist): new function to parse a list of strings quoted in POSIX shell style, in order to process buildlist output. * dialog.py (Dialog._parse_help): new optional 'multival_on_single_line' argument to allow parsing of the buildlist help output. 2013-10-12 Florent Rougon Improve Extra button support * With this commit, Extra button support should be as good as in the dialog backend. If not, it's a bug. * dialog.py: fix support for the Extra button in calendar, rangebox, timebox and treeview, where None was returned instead of the value one could reasonably expect. * dialog.py: document usage of the Extra button in the Dialog class docstring. * demo.py: add examples of Extra button usage in textbox_demo() and rangebox_demo(). 2013-10-12 Florent Rougon Full help support for all widgets * dialog.py: add support for --help-status and --help-tags. * dialog.py: review all widgets, making sure that all help-related options can effectively be used (in particular 'item_help' and 'help_status') and that the relevant output is returned to the caller in a suitable form. * dialog.py: compatibility should not be affected for 'menu' nor for basic usage when only the "help" exit code is checked, without parsing the output. With this commit, widget-producing methods do check if the exit code is "help" and, in that case, parse the output in order to return a useful and easy to use Python object to the caller. This means that "HELP " prefixes are removed, shell-style quoting and backslash-escaping is undone, and that the output of --help-status is returned as a hopefully useful data structure. * demo.py: add help support to many widgets, showing how to use the new facilities. 2013-10-06 Florent Rougon Nicer exit codes for widget-producing methods * The purpose of this commit is: - to bring consistency among the exit codes (before: integers mixed with "help" for 'menu' and "accepted"/"renamed" for 'inputmenu'; after: all strings); - to merge DIALOG_HELP and DIALOG_ITEM_HELP into a single high-level code (Dialog.HELP, which is the string "help"); - to make user code shorter and nicer (d.OK or "ok" vs. d.DIALOG_OK for instance, where 'd' is a Dialog instance); - to provide the exit codes as class attributes instead of instance attributes, since they shouldn't depend on any particular instance; - to prevent future backward-compatibility problems by raising an exception when receiving an unknown exit code from the backend instead of passing it through. Backward-compatibility is only affected for code that relies on d.DIALOG_OK and friends being integers, or having a particular value. Most of the code using these attributes simply compare them with the return value (or the first element of the return value) of widget-producing methods; this kind of use will work as before, with only a DeprecationWarning to suggest using the new attributes (see README.rst for instructions on how to enable DeprecationWarning's). * dialog.py: make widget-producing methods return a high-level "Dialog exit code" such as "ok", "cancel", "esc", "extra" and "help" instead of the integer exit status of the dialog backend. The Dialog exit codes are available as Dialog.OK, Dialog.CANCEL, etc. (class attributes). The low-level exit codes (integers) are now stored as private class attributes: Dialog._DIALOG_OK, Dialog._DIALOG_CANCEL, etc. In order to preserve backward-compatibility in most cases, the Dialog class has properties named DIALOG_OK, DIALOG_CANCEL, etc. that emit a DeprecationWarning and return the corresponding high-level code (i.e, Dialog.OK, Dialog.CANCEL, etc.). DIALOG_HELP and DIALOG_ITEM_HELP are both mapped to Dialog.HELP. * demo.py: use the new attributes of the Dialog class (OK, CANCEL, etc.) instead of the deprecated attributes (DIALOG_OK, DIALOG_CANCEL, etc.) of Dialog instances. Also change various strings and comments to use the new terminology (Dialog exit code AKA high-level exit code vs. dialog exit status AKA low-level exit code). * simple_example.py: ditto. 2013-10-04 Florent Rougon More metadata for Dialog widget-producing methods * This commit prepares for a transition to user-visible Dialog exit codes (note the capital D) that are strings, such as "ok" or "cancel". * dialog.py (retval_is_code): new decorator that sets the attribute of the same name on its argument. This attribute allows to reliably detect if a widget-producing method returns a dialog exit status or a sequence whose first element is a dialog exit status. * dialog.py: apply the decorator to the relevant widget-producing methods. * demo.py (MyDialog.widget_loop): use the new attribute instead of testing whether the return value of a widget-producing method supports indexing. 2013-10-01 Florent Rougon Release 2.14.1 2013-10-01 Florent Rougon Fixes for the programbox demo * demo.py (programbox_demo): the programbox demo (only run in --test-suite mode) uses subprocess.DEVNULL, which was added in Python 3.3. Provide an alternate method when this feature is not available. * demo.py (programbox_demo): close the pipe used to communicate with dialog when it is not needed anymore (otherwise, running the demo with warnings enabled [python3 -Wd demo.py 2>/path/to/file] shows a ResourceWarning). 2013-10-01 Florent Rougon Better reporting of dialog errors * dialog.py: when dialog exits with status DIALOG_ERROR, write its output as part of the DialogError exception that is raised. This should make it much easier to understand the cause of errors. This requires reading the dialog output before wait()ing for it to exit, which is a good thing in any case, as big amounts of output could cause a kind of deadlock, since dialog would be blocked with its output pipe full while we would be wait()ing for it to exit. 2013-09-30 Florent Rougon Easier management of the ChangeLog file * Rename ChangeLog to ChangeLog.init and modify setup.py to automatically generate, when invoked, an up-to-date ChangeLog file with the oldest entries from ChangeLog.init and the newest ones from the Git log. * README.distributors: new file explaining this mechanism and how to prepare a package (or new release) from the Git repository. 2013-09-26 Florent Rougon Decorate Dialog.form with the 'widget' decorator * dialog.py: in commit cfcf412d86c5d8daebcf004d4e9fe02ecbb881b3, it was forgotten to use the 'widget' decorator on Dialog.form. This commit fixes this bug. 2013-09-20 Florent Rougon Clarify the rules concerning the 'widget' decorator * dialog.py: be more precise about the interface that must be offered by methods decorated with the 'widget' decorator (and therefore having the 'is_widget' attribute). Also, don't use the "widget-producing" expression to qualify methods that are not eligible for this decorator (such as Dialog.gauge_update()). * demo.py: similar precisions. 2013-09-17 Florent Rougon Prepare for the 2.14.0 release * dialog.py: minor docstring fix * dialog.py: bump the version number 2013-09-17 Florent Rougon Add a sample program really intended for newcomers * simple_example.py: new sample program, short, with absolutely no magic, intended for first-timers. * dialog.py: adapt the comments to point to this new file. 2013-09-17 Florent Rougon Improve structure and ESC handling in the demo * demo.py: new MyApp class that implements the core of the demo. This class relies on a new MyDialog class that automatically wraps every widget-producing method of dialog.Dialog in order to display the "confirm quit" dialog if the user presses the Escape key or the Cancel button. This class also provides a few dialog-related methods used in the demo. * demo.py: This new structure should completely fix handling of the Escape key, which was not satisfactory in previous versions since it required a while loop for every widget call that made the code redundant and harder to read. The new wrapping mechanism is completely transparent for most of the code in MyApp, which thus becomes shorter, more reliable and easier to read. The "magic" is contained within the MyDialog class. * A sample program for newcomers to pythondialog with absolutely no magic will be added in the next commit (simple_example.py). 2013-09-15 Florent Rougon Add an 'is_widget' attribute to Dialog widget-producing methods * dialog.py (widget): new decorator to mark the Dialog methods that provide a widget. As explained in the docstring, this allows code to perform automatic operations on these specific methods. For instance, one can define a class that behaves similarly to Dialog, except that after every widget-producing call, it spawns a "confirm quit" dialog if the widget returned DIALOG_ESC, and loops in case the user doesn't actually want to quit. 2013-09-14 Florent Rougon Check for too old versions of the backend * dialog.py: new exception InadequateBackendVersion * dialog.py: use it to abort when the user tries to use a programbox, rangebox or treeview widget with a dialog version that does not implement the widget in question. * demo.py: for the latest widgets added to dialog, check the version of the backend if it's dialog and display an explanation instead of the widget demo when it is too old. 2013-09-14 Florent Rougon Backend version caching and comparing * dialog.py (Dialog.backend_version): slight modification to the API: when the dialog-like backend does not return DIALOG_OK, raise UnableToRetrieveBackendVersion (new exception) instead of returning None. This way, the method either returns a string or raises an exception. * dialog.py: new DialogBackendVersion class (and BackendVersion abstract base class) for parsing the version string of the dialog backend, storing it in a structured format, and providing easy and reliable comparisons between versions using the standard comparison operators (<, <=, ==, !=, >=, >). * dialog.py (Dialog.__init__): retrieve the backend version and store the corresponding (Dialog)BackendVersion instance into a public 'cached_backend_version' attribute. This should avoid having to run ' --print-version' every time someone needs the version. * demo.py: use Dialog.cached_backend_version. 2013-09-11 Florent Rougon Minor fixes * dialog.py: prefix OSErrorHandling with an underscore. * dialog.py: rename *_rec private attributes to the corresponding *_cre (Compiled Regular Expression). * dialog.py: add treeview to the list of widgets in the Dialog class docstring (forgotten when the widget support was added). 2013-09-11 Florent Rougon Misc demo improvements * demo.py: move a bunch of widget demos from additional_widgets() to the main demo() function to give them more visibility. The remaining widgets in additional_widgets() either have little warts (like programbox which is waiting for a fix in the dialog backend), are cumbersome to use in the demo (this is the case of progressbox_demo_with_filepath), or are almost identical to widgets already presented in the main part of the demo. * demo.py: use the current local time to initialize the timebox widget. * demo.py: minor improvements. 2013-09-11 Florent Rougon Add support for 'treeview' 2013-09-10 Florent Rougon Add support for 'rangebox' Add support for 'programbox' 2013-09-07 Florent Rougon Factor out OSError and IOError handling * dialog.py: use a context manager to factor out OSError and IOError handling throughout the module. 2013-09-06 Florent Rougon Add support for new dialog common options * dialog.py: add support for --default-button and --no-tags. 2013-09-06 Florent Rougon Add version_info to dialog.py * dialog.py: new 'version_info' module-level attribute, similar to what the 'sys' module provides. This avoids the need to parse __version__ when one wants to extract for instance the major and/or minor version number of pythondialog. 2013-09-06 Florent Rougon Minor improvements 2013-08-22 Florent Rougon Remove the installation prefix from setup.cfg and release 2.13.1 * From now on, pythondialog releases will follow a major.minor.micro versioning scheme. * setup.cfg: remove the /usr/local installation prefix that breaks installations with pip in a virtualenv, at least. * INSTALL: update the installation and uninstallation instructions to document and favor the method based on pip. 2013-08-20 Florent Rougon Demo improvement with Dialog.maxsize() * demo.py: pass the available (terminal-dependent) width and height to demo() and additional_widgets(); use this information to display a tailbox widget that almost fills the screen (whatever the terminal size). 2013-08-19 Florent Rougon Release 2.13 * setup.cfg: don't build zip files anymore, as I don't think anyone using pythondialog could be unable to uncompress a tar.gz or tar.bz2 file. * demo.py: "Mayonnaise" is spelt with two n's, dammit! 2013-08-19 Florent Rougon New method Dialog.set_background_title(), better Dialog doc * dialog.py (Dialog.set_background_title): new method. Now that we deal with dash escaping, such a method does become useful since it avoids users having to use the low-level Dialog.add_persistent_args() and bother with dash escaping. * dialog.py (Dialog.setBackgroundTitle): this old method from pythondialog 1.0 is still deprecated because its case style is inconsistent with the rest of pythondialog; it simply calls Dialog.set_background_title() after printing a DeprecationWarning. * dialog.py (Dialog): add set_background_title, maxsize and backend_version to the docstring and reorganize a bit the list of public methods. * demo.py: use the new method. 2013-08-19 Florent Rougon Add demo code for the timebox widget 2013-08-16 Florent Rougon Prepare for the 2.12 release * dialog.py: add a copyright notice for Peter Åstrand because of commit v2.09-2-ga3429a4. * setup.py: put python3 in the shebang line; change 'url' and 'download_url' to point to SourceForge. * Minor documentation updates and editorial changes for the release. 2013-08-16 Florent Rougon Provide an implementation of textwrap.indent() in demo.py This is for Python versions < 3.3, where this function is not in the standard library. 2013-08-16 Florent Rougon Make debugging easier * dialog.py: there is no need to copy/paste Python code from the DEBUGGING file into dialog.py anymore in order to see the command lines corresponding to the dialog calls. Just call d.setup_debug(True, file=) to turn debugging on and d.setup_debug(False) to turn it off, where d is obviously a Dialog instance. * demo.py: new options --debug and --debug-file to activate debugging and specify where the debug log is written to. * DEBUGGING: not useful anymore. * MANIFEST.in: don't ship DEBUGGING anymore. * README.rst: mention this in a new "Troubleshooting" section. 2013-08-15 Florent Rougon New dialog.__version__ attribute * dialog.py: new dialog.__version__ attribute * demo.py: use it to print the pythondialog version in the first screen * setup.py: use dialog.__version__ 2013-08-15 Florent Rougon Add support for --print-version and --print-maxsize * dialog.py (Dialog.backend_version, Dialog.maxsize): new methods that respectively extract the relevant info from dialog --print-version and --print-maxsize. * demo.py: use them to display the backend version and terminal size in the first screen (+ Python version as a bonus); also warn if the terminal is too small, which might be the cause of Ubuntu#694824. 2013-08-15 Florent Rougon New arg 'use_persistent_args' for _call_program() and _perform() * dialog.py (Dialog._call_program, Dialog._perform): new argument 'use_persistent_args' that allows to skip the insertion of dialog_persistent_arglist. This is necessary to use for instance --print-version without emptying dialog_persistent_arglist first. * dialog.py (Dialog._call_program, Dialog._perform): to enhance readability and maintainability, make all keyword arguments of these methods keyword-only. 2013-08-13 Florent Rougon Add support for common options from dialog 1.1-20120215 * dialog.py: add support for dialog common options --ascii-lines, --colors, --column-separator, --date-format, --exit-label, --extra-button, --extra-label, --hfile, --hline, --keep-tite, --keep-window, --no-collapse, --no-lines, --no-mouse, --no-nl-expand, --no-ok, --scrollbar, --time-format, --trace and --visit-items (closes: Ubuntu#739873). 2013-08-12 Florent Rougon Improve exception handling * dialog.py: don't assume that exceptions are strings; thus, use str() to obtain the message when translating from a "foreign" exception to a subclass of dialog.error. * dialog.py: use str(e) instead of e.strerror when e is an OSError instance, because e.strerror does not contain the file name (even when there is one available in e.filename), contrary to str(e). * dialog.py: prepare the transition from PythonDialogIOError to PythonDialogOSError. PythonDialogIOError is now a subclass of PythonDialogOSError so that users can safely replace "except PythonDialogIOError" clauses with "except PythonDialogOSError" even if running under Python < 3.3. pythondialog will raise PythonDialogOSError instead of PythonDialogIOError when Python stops distinguishing between IOError and OSError, i.e. when running under Python 3.3 or later. * dialog.py: use "raise ... from ..." (available in Python >= 3.0) where appropriate. 2013-08-11 Florent Rougon Conform to the gauge protocol described in dialog(1) * dialog.py (Dialog.gauge_update): actually conform to the gauge protocol described in dialog(1); this fixes a slight synchronization bug when 'update_text' is True (closes: SF#3; thanks to MapK for spotting this and providing a patch). * dialog.py (Dialog.gauge_update): raise BadPythonDialogUsage if the 'percent' argument is not an integer, since this is the only type accepted by the gauge protocol as described in dialog(1). 2013-08-10 Florent Rougon Escape non-option arguments to dialog that start with -- * dialog.py (_dash_escape): new function that inserts a '--' element before every element in a list that starts with '--' (returns a new list). * dialog.py (_dash_escape_nf): same as _dash_escape, but ignores the first element. * dialog.py (Dialog.dash_escape, Dialog.dash_escape_nf): new class methods for public use, for those using Dialog.add_persistent_args(). * dialog.py (Dialog._call_program): new keyword argument 'dash_escape' to control the dash-escaping of the argument list; by default, the appropriate part is filtered through _dash_escape_nf(). * dialog.py (Dialog._perform): new keyword argument 'dash_escape' that is passed as is to Dialog._call_program() (closes: SF#5; thanks to Denilson Figueiredo de Sá for the report). * dialog.py: use _dash_escape_nf() where appropriate in _common_args_syntax for options that are passed as keyword arguments (e.g., title="..."). * dialog.py (Dialog.setBackgroundTitle): use self.dash_escape_nf() in this long-deprecated method. 2013-07-28 Florent Rougon Standard-behaving __str__ and __repr__ for our exceptions * dialog.py:error.__str__(): return the exception message instead of something enclosed in angle brackets. * Compatibility is not affected unless one had the ill-advised idea to parse the return value of __str__. The complete_message() method of exceptions behaves exactly as before. * demo.py: use the new, more standard method, to retrieve the error message. 2013-07-28 Florent Rougon Use os.path.abspath(__file__) to refer to the demo source file * This avoids problems when running the demo from a directory that is not the one containing demo.py (closes: SF#4). 2013-07-27 Florent Rougon * README: rename to README.rst, convert to reStructuredText and update for Python 3 * INSTALL: update for Python 3 * MANIFEST.in: include README.rst * setup.py: update for Python 3 and the README -> README.rst change, email address update 2013-06-19 Florent Rougon Replace the question for the calendar demo with a non-perishable one * demo.py: the question about an estimate of Debian *** release is bound to become out-of-date. Replace it with a question that will not need a change every couple of years. 2013-06-19 Florent Rougon Minor improvements * demo.py: use locale.setlocale(locale.LC_ALL, '') to properly initialize the locales * dialog.py: code readability improvement 2013-06-19 Florent Rougon Minor bug fixes * dialog.py(_to_onoff): regexp match against "on$"/"off$" instead of "on"/"off". * dialog.py: more rigorous handling of "title" and "help_button" keyword arguments. For instance, passing 'title=None' to a function that gets this argument through its **kwargs results in a kwargs dictionary that does contain a "title" key (with None as the corresponding value); therefore '"title" not in kwargs' is not a great test to determine if the title should be set to a default value. 2013-06-19 Florent Rougon * Favor usage of True/False over 1/0 and on/off in dialog.py and demo.py, docstrings included. 2013-06-19 Florent Rougon Improve error handling * dialog.py(_to_onoff): actually raise an exception when the given parameter is a string that doesn't represent a boolean according to the regexps. * demo.py: when handling exceptions at top level, start by printing a traceback, which is always very practical to find the origin of problems. 2013-06-18 Florent Rougon * Replace assert statements with PythonDialogBug exceptions. This is less practical for coding in dialog.py but makes it easier for dialog.py users to catch all (most) exceptions that come from pythondialog. 2013-06-18 Florent Rougon Cosmetic changes * Change deprecated %u into %d. * Remove trailing whitespace. * Coding-style update for the generic exception. 2013-06-18 Florent Rougon Improve error reporting between fork() and execve() * Print a traceback if an error happens between fork() and execve() when calling dialog. 2013-06-18 Florent Rougon * Basic porting to Python 3. 2010-03-17 Florent Rougon * dialog.py: Move the definition of _simple_option() before its uses, which according to http://sourceforge.net/tracker/index.php?func=detail&aid=1679190&group_id=58155&atid=486715 "makes pydev happy when browsing the code". * dialog.py: Remove the "True = 0 == 0" and "False = 0 == 1" compatibility measures that were still in place for Python versions < 2.3. Such old versions are not supported anymore; besides, True and False are becoming reserved words in Python 3. 2010-03-16 Florent Rougon * Release 2.11. * README: I thought I was adding a valuable precision in version 2.09 when I changed "LGPL" to "LGPL version 2.1" in the README file (after looking at COPYING), but actually, the terms at the beginning of dialog.py are "either version 2.1 of the License, or (at your option) any later version". Sorry about that, fixed. * demo.py: use "if else " expressions more often, since they are allowed in Python >= 2.5... 2010-03-16 Florent Rougon * Release 2.10. * dialog.py: add Peter Åstrand's modifications to deal with Xdialog's incompatibilities with respect to dialog: - new "use_stdout" keyword argument for Dialog.__init__() - factoring of final newline removals with the addition of Dialog._strip_xdialog_newline(). * dialog.py: add support for dialog options --no-label, --yes-label and --insecure (the last one not being so dangerous as the name seems to imply: "Makes the password widget friendlier but less secure, by echoing asterisks for each character"; BTW, kdm has a very nice way of handling this issue IMO: an option that echoes each character with x asterisks, where x = 3 IIRC). 2010-03-14 Florent Rougon * Release 2.09. * dialog.py: new supported widgets: editbox, inputmenu, mixedform, mixedgauge, pause, passwordform, progressbox. * demo.py: general improvements, such as: - hopefully more helpful dialog when the user fails to select a file in fselect; - since actually selecting a file with this widget is already boring after the second time, the widget can be exited by pressing Esc or the Cancel button (in which case the parts of the demo that need the file path will be skipped). - replace a few calls to Dialog.scrollbox() by calls to Dialog.msgbox(), since the latter provides nice automatic line wrapping. * demo.py: support GNU-style option passing with getopt.py; you can use --help to get a list of available options * demo.py: no need to change a global variable anymore to switch the demo to "fast mode", just use --fast * demo.py: add --test-suite mode, mainly for developers: it tests *all* widgets, not only those included in the "default mode", and automatically enables "fast mode". * dialog.py(__call_program): make the function more generic. stdin redirection doesn't involve automatic pipe(2) creation in __call_program() anymore; instead, __call_program expects a file descriptor when it is asked to redirect dialog's stdin (parameter 'redir_child_stdin_from_fd'). The caller may still decide to create a pipe and pass its file descriptor for reading as the 'redir_child_stdin_from_fd' parameter, but the new possibility of redirecting dialog's stdin from an arbitrary file descriptor allows for instance to redirect it from an existing file, network socket... This is used to implement --progressbox cleanly. This change has the additional benefit of simplifying the API, since __call_program()'s return value is always a 2-element tuple now. * dialog.py(__call_program): new close_fds option causing the child process to close the specified file descriptors before the execve(2) system call. This is useful for instance to have the child close an end of a pipe he isn't going to use. Without that, deadlocks could happen because of the child never seeing EOF from the pipe. * dialog.py: use warnings.warn(..., DeprecationWarning) for obsolete functions. * dialog.py: remove convoluted syntax *(,) that was used at several places. I don't see any use for this syntax anymore, and changing it to simply didn't make the universe collapse (so far). * dialog.py: prefix attributes for internal use (such as Dialog._call_program) with a single underscore instead of a double one: we don't need the name mangling here. These underscores in dialog.py are just an indication that the attribute is "internal" and thus subject to API changes, etc. Thanks to Peter Åstrand for pointing this out. * setup.py: - improve the long description, use ReStructuredText - add Trove classifiers - add download_url * Review and update README, TODO... 2010-02-19 Florent Rougon * dialog.py: add support for --dselect * dialog.py: add support for DIALOG_ITEM_HELP * demo.py: small fixes 2009-10-31 Florent Rougon * Released 2.08, skipping version 2.07 to avoid creating confusion with the 2.7 version released by Peter Åstrand in 2004. 2009-02-04 Florent Rougon * Add support for --form. * dialog.py(__call_program): compute the argument list before forking, otherwise things get difficult to understand if this computation raises an exception. 2004-03-29 Florent Rougon * Released 2.06. 2004-03-19 Florent Rougon * dialog.py: fixed a bug with the default_item "common argument" (corresponding to dialog's --default-item option) thanks to Peter Mathiasson. 2004-03-16 Florent Rougon * demo.py: make sure the directory passed to --fselect ends with os.sep so that its contents can be seen right away in the file selection box displayed by dialog. 2004-03-15 Florent Rougon * dialog.py: fix a bug (the standard output of the process running dialog used to be connected to a pipe) that rendered pythondialog unusable with recent versions of dialog (thanks, Peter Åstrand!). * dialog.py: the generic exception is now 'error' ('dialog.error', if you understand this better). The old name is still there for backward-compatibility. * Several new exceptions have appeared: PythonDialogSystemError, PythonDialogIOError, PythonDialogOSError, PythonDialogErrorBeforeExecInChildProcess, PythonDialogReModuleError, UnableToCreateTemporaryDirectory, PythonDialogBug, ProbablyPythonBug. * dialog.py: the ExecutableNotFound exception was not mentioned in the docstring module. Fixed. * dialog.py: the complete_message() of 'error' instances does not write a dot at the end of the message anymore. * dialog.py: rename the ExceptionPrettyIdentifier attribute of 'error' subclasses to ExceptionShortDescription. * dialog.py: the constructor of 'error' instances can now be called with no argument if no useful message can be added to the ExceptionShortDescription. * dialog.py: added the new DIALOG_EXTRA and DIALOG_HELP return codes that appeared somewhere between versions 0.9a-20020309a and 0.9b-20040301 of dialog. * dialog.py: Remove the possibility to choose (from Dialog's constructor) the values of the DIALOG_{OK,CANCEL,ERROR,...} environment variables passed to dialog because this is absolutely useless as far as I can see and clutters the API. * dialog.py: Dialog's constructor has a new 'compat' parameter that can be used to enable a compatibility mode with dialog-like programs whose interface is only slightly different from that of dialog. The demo runs fine with Xdialog 2.0.6 in the "Xdialog" compatibility mode. However, I don't want the special cases to expand too much, so it would be really better for you to report bugs if your dialog-like program is not dialog-compatible! * dialog.py: don't try any PATH components (nor any components from ":/bin:/usr/bin" if PATH is undefined) if the 'dialog' parameter of Dialog's constructor contains a '/'. * dialog.py: somewhere between versions 0.9a-20020309a and 0.9b-20040301, dialog started not to quote tags in the output of --checklist if they didn't contain any space. Adapt the dialog invocation (now using --separate-output) and the output parsing accordingly (still works with 0.9a-20020309a). * dialog.py: the data fed to dialog in Dialog.gauge_update() happened to work with dialog 0.9a-20020309a but did not conform to the manual page and presumably broke Xdialog. This is fixed, thanks to Peter Åstrand. * dialog.py: modifications in Dialog.scrollbox(): - don't use the old insecure tempfile.mktemp() anymore (tempfile.mkstemp() didn't exist before Python 2.3) - don't display a title for the box if no title was in kwargs - the return value is now that of the dialog-like program - UnableToCreateTemporaryDirectory is now raised if for some strange reason, we cannot create a temporary directory * dialog.py: review every function to catch possible exceptions such as IOError and OSError, in order to turn them into subclasses of 'error' (such as PythonDialogIOError and PythonDialogOSError). Rare beasts such as MemoryError are still not caught. Such an enterprise would be unreasonable, if not simply impossible. * dialog.py: updated the various docstrings to show which exceptions every function can raise. To make this manageable, many functions refer to the docstrings of internal, heavily-used functions such as Dialog.__perform whose docstrings are, unfortunately but rightfully, not included in the HTML documentation generated by pydoc. Some sort of automated documentation generation system would be needed to solve this problem in a satisfactory way. * demo.py: minor update with respect to Debian sarge's release date forecasts... 2003-09-16 Florent Rougon * Released 2.05. * Changed the "private" class names to start with two underscores instead of one. 2003-09-01 Florent Rougon * Released 2.04. * dialog.py: Replaced the apply() calls with calls using the "extended call syntax" since apply() is deprecated since the release of Python 2.3. 2002-09-05 Florent Rougon * Released 2.03. * dialog.py: Reorganized the documentation between the module's docstring and that of the Dialog class. * README: Added the "history" section and other improvements. 2002-09-04 Florent Rougon * dialog.py: Prefixed global variables with an underscore and made some cosmetic fixes. * dialog.py: Removed the set_background_title alias to setBackgroundTitle since nobody uses it yet and setBackgroundTitle is obsolete. Even though I prefer set_background_title to setBackgroundTitle for consistency with other methods, there is no point in adding an obsolete method. 2002-09-03 Florent Rougon * Packaged pythondialog with Distutils. * Improved the README. 2002-09-02 Florent Rougon * dialog.py: Improved the common_args_syntax initialization so that simple dialog Common Options can be passed as foo=1 keyword arguments with 1 having a real boolean meaning (was not the case before). * Handled the licensing stuff : GNU LGPL license for dialog.py and public domain for demo.py. Added the COPYING file. * dialog.py: Wrote a proper module docstring. * demo.py: Added the last widgets to the demo. 2002-08-30 Florent Rougon * dialog.py: Added the calendar, fselect, passwordbox, tailbox and timebox widgets. 2002-08-29 Florent Rougon * dialog.py (_wait_for_program_termination): Raises a DialogError exception when dialog returns self.DIALOG_ERROR. Exceptions are so handy. * demo.py: Cleaned up the demo code making it easier (I hope) to focus on a given widget, added error handling. * dialog.py: Took the demo to put it in a new, separate file: demo.py. 2002-08-21 Florent Rougon * dialog.py: Documented the widgets properly. * dialog.py: Generalized the widgets that didn't offer all the capabilities available from dialog. * dialog.py: Went through the various widgets so that the associated methods return the dialog exit status (with additional information, if relevant). * dialog.py: Finally cleaned up the method used to collect the arguments given to dialog. They are now stored as elements of a list and properly quoted to protect them from shell expansion just before the call to popen3. Now, you should be safe with any character in the strings passed to dialog (labels, texts, etc.). 2002-08-09 Florent Rougon * dialog.py: All boxes should now support the common arguments scheme (well, I still have to look at the gauge closer). * dialog.py: Added support for "common arguments"; now, you can use any combination of the _common options_ for the dialog program when creating a box. Example: d.checklist(, title="...", backtitle="...", ) One thing is still broken: we must shell-escape the strings so that apostrophes (') used to delimit shell arguments don't clash with apostrophes used these arguments themselves. * dialog.py: Added support for "persistent arguments" arguments (--backtitle is a good candidate for this). * dialog.py: Removed a leftover debugging print in _perform. * dialog.py: Simplified the DIALOG* arguments handling. 2002-08-08 Florent Rougon * dialog.py: Added a short docstring for the module. * dialog.py: Rewrote checklist to get all the features from the corresponding option in dialog. * dialog.py: Rewrote _perform; now, we can use the DIALOG* environment variables set in the constructor, which allows us distinguish between ESC pressed and a dialog error, among others; also, we use no temporary file anymore to store dialog's stderr. * dialog.py: Added some exceptions. * dialog.py: Rewrote __init__; now, we can set choose in the constructor the DIALOG* environment variables to pass the dialog program as well as this program (could be whiptail for instance) from the constructor (and the environment variables can be different for two Dialog instances used in the same python process...). * dialog.py: Renamed __foo methods to _foo. 2002-08-07 Florent Rougon * dialog.py: Cosmetic fixes. * dialog.py: Added a proper GPL header (dialog.py only had a short mention about its license being the GNU GPL). * Split dialog.py, creating a Changelog file in the format described in the GNU Coding Standards, as well as README, AUTHORS, COPYING and TODO. 2000-07-30 Sultanbek Tezadov (http://sultan.da.ru/) * dialog.py: Added the gauge widget. * dialog.py: Added a 'title' option to some widgets. * dialog.py: Added a 'checked' option to the checklist dialog; clicking "Cancel" is now recognizable. * dialog.py: Added a 'selected' option to the radiolist dialog; clicking "Cancel" is now recognizable. * dialog.py: Some other cosmetic changes and improvements. 2000-??-?? Robb Shecter * Initial release. # Local Variables: # coding: utf-8 # End: python2-pythondialog-3.3.0/doc/0000755000175000001440000000000012531573210016322 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/glossary.rst0000644000175000001440000001125412507731135020727 0ustar flousers00000000000000.. _glossary: Glossary ======== .. currentmodule:: dialog .. glossary:: dash escaping In a :program:`dialog` argument list, :dfn:`dash escaping` consists in prepending an element composed of two ASCII hyphens, i.e., the string ``'--'``, before every element that starts with two ASCII hyphens (``--``). Every :program:`dialog` option starts with ``--`` (e.g., :option:`--yesno`), but there are valid cases where one needs to pass arguments to :program:`dialog` that start with ``--`` without having :program:`dialog` interpret them as options. For instance, one may want to print a text or label that starts with ``--``. In such a case, in order to avoid confusing the argument with a :program:`dialog` option, one must prepend an argument consisting solely of two ASCII hyphens (``--``). This is what is called *dash escaping* here. For instance, in order to display a message box containing the text ``--Not an option`` using POSIX shell syntax (the double quotes ``"`` are stripped by the shell, :program:`dialog` does not see them): .. code-block:: sh dialog --msgbox -- "--Not an option" 0 0 # correct dialog --msgbox "--Not an option" 0 0 # incorrect .. note:: In pythondialog, most :class:`Dialog` public methods (:meth:`~Dialog.msgbox`, :meth:`~Dialog.yesno`, :meth:`~Dialog.menu`, etc.) know that the arguments they receive are not to be used as :program:`dialog` options, and therefore automatically perform dash escaping whenever needed to avoid having :program:`dialog` treat them as options. At the time of this writing, the only public method that requires you to be careful about leading double-dashes is the low-level :meth:`Dialog.add_persistent_args`, because it directly passes all its arguments to :program:`dialog` and cannot reliably guess which of these the user wants to be treated as :program:`dialog` options and which they want to be treated as *arguments* to a :program:`dialog` option. See these :ref:`examples of dash escaping in pythondialog ` using :meth:`Dialog.dash_escape` and :meth:`Dialog.dash_escape_nf`. Dialog exit code high-level exit code A :dfn:`Dialog exit code`, or :dfn:`high-level exit code`, is a string indicating how/why a widget-producing method ended. Most widgets return one of the :term:`standard Dialog exit codes ` (e.g., ``"ok"``, available as :attr:`Dialog.OK`). However, some widgets may return additional, non-standard exit codes; for instance, the :meth:`~Dialog.inputmenu` widget may return ``"accepted"`` or ``"renamed"`` in addition to the standard Dialog exit codes. When returning from a widget call, the Dialog exit code is normally derived from the :term:`dialog exit status`, also known as :term:`low-level exit code`. See :ref:`Dialog-exit-code` for more details. standard Dialog exit code A :dfn:`standard Dialog exit code` is a particular :term:`Dialog exit code`. Namely, it is one of the following strings: ``"ok"``, ``"cancel"``, ``"esc"``, ``"help"`` and ``"extra"``, respectively available as :attr:`Dialog.OK`, :attr:`Dialog.CANCEL`, :attr:`Dialog.ESC`, :attr:`Dialog.HELP` and :attr:`Dialog.EXTRA`, *i.e.,* attributes of the :class:`Dialog` class. dialog exit status low-level exit code The :dfn:`dialog exit status`, or :dfn:`low-level exit code`, is an integer returned by the :program:`dialog` backend upon exit, whose different possible values are referred to as ``DIALOG_OK``, ``DIALOG_CANCEL``, ``DIALOG_ESC``, ``DIALOG_ERROR``, ``DIALOG_EXTRA``, ``DIALOG_HELP`` and ``DIALOG_ITEM_HELP`` in the :manpage:`dialog(1)` manual page. See :ref:`dialog-exit-status` for more details. dialog common options Options that may be passed to many widgets using keyword arguments, for instance *defaultno*, *yes_label*, *extra_button* or *visit_items*. These options roughly correspond to those listed in :manpage:`dialog(1)` under the *Common Options* section. See :ref:`passing-dialog-common-options` for more details. item-help string When using ``item_help=True`` in a widget-producing method call, every item must have an associated string, called its :dfn:`item-help string`, that is normally displayed by :program:`dialog` at the bottom of the screen whenever the item is highlighted. See :ref:`providing-inline-per-item-help` for more details. python2-pythondialog-3.3.0/doc/intro/0000755000175000001440000000000012531573210017455 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/intro/intro.rst0000644000175000001440000002054012507731135021350 0ustar flousers00000000000000.. currentmodule:: dialog A gentle introduction ===================== A minimal program using pythondialog starts with the creation of a :class:`Dialog` instance:: from dialog import Dialog d = Dialog(dialog="dialog") The *dialog* parameter indicates the executable to use to invoke the backend (which must be compatible with dialog_). For instance, one might use something like ``dialog="/home/dave/src/dialog-1.2-20140219/dialog"``. The default value is ``"dialog"``, and since it does not contain any slash (``/``), it is looked up in the :envvar:`PATH` environment variable. See :meth:`Dialog.__init__` for a description of all parameters that can be passed to the :class:`Dialog` constructor. .. _dialog: http://invisible-island.net/dialog/dialog.html Offering a choice between several options using :meth:`!menu` ------------------------------------------------------------- Once you have a :class:`Dialog` instance, you can call any widget-producing method, as documented in :ref:`widgets`. For instance, if you want to display a menu offering three choices:: code, tag = d.menu("Some text that will be displayed above the menu entries", choices=[("Tag 1", "Item text 1"), ("Tag 2", "Item text 2"), ("Tag 3", "Item text 3")]) When the method returns: - *code* will be equal to ``d.OK`` if there was no error and the user chose an entry (instead of pressing :kbd:`Esc`). See :ref:`Dialog-exit-code` for more details on how to interpret the value of *code*. - *tag* will contain the name of the tag corresponding to the selected entry: ``"Tag 1"``, ``"Tag 2"`` or ``"Tag 3"`` (assuming that ``code == d.OK``). While we kept this :meth:`~Dialog.menu` example as simple as possible, it would be very easy to add a title line at the top of the widget window. For this, all you need to do is to add a :samp:`title={...}` keyword argument to the :meth:`~!Dialog.menu` method call. It is also possible to display a background title using :samp:`backtitle={...}`, and in case you want the same background title for all widgets, :meth:`Dialog.set_background_title` is your friend. .. figure:: ../screenshots/intro/example-menu.png :align: center A simple example using :meth:`Dialog.menu` Displaying a message with :meth:`~!Dialog.msgbox` ------------------------------------------------- We can expand on the previous example by displaying an :meth:`~Dialog.msgbox` indicating what the user has done to exit from the :meth:`~Dialog.menu`. First, we can define a mapping from the :term:`Dialog exit codes ` for the standard buttons to the corresponding button labels:: button_names = {d.OK: "OK", d.CANCEL: "Cancel", d.HELP: "Help", d.EXTRA: "Extra"} Of course, in the previous :meth:`~Dialog.menu` widget call, the only codes that can be returned are ``d.OK`` and ``d.CANCEL``, respectively corresponding to the :guilabel:`OK` and :guilabel:`Cancel` buttons. Thus, we could do with only two key-value pairs in ``button_names`` for this particular example, however it seems cleaner and not outrageously expensive to declare the codes for the four standard buttons like this. In addition to these :term:`Dialog exit codes `, the :meth:`~Dialog.menu` widget call can return ``d.ESC``, indicating that the user pressed the :kbd:`Esc` key. Therefore, we are going to check for this one too. Here it goes:: if code == d.ESC: d.msgbox("You got out of the menu by pressing the Escape key.") else: text = "You got out of the menu by choosing the {} button".format( button_names[code]) if code != d.CANCEL: text += ", and the highlighted entry at that time had tag {!r}".format( tag) d.msgbox(text + ".", width=40, height=10) (users of Python < 3.1 should replace ``{}`` with ``{0}`` and ``{!r}`` with ``{0!r}``) The above code for dealing with the :kbd:`Esc` key is pretty straightforward. It relies on the default values to determine the width and height of the :meth:`~Dialog.msgbox`, which are acceptable in this case. On the other hand, the default width for :meth:`~!Dialog.msgbox` seemed too small for the message displayed in the *else* clause, causing very irregular line lengths. In order to compensate for this problem, we have explicitely specified the width and height of the :meth:`~!Dialog.msgbox` using keyword arguments (``width=40, height=10``). .. figure:: ../screenshots/intro/example-msgbox.png :align: center A message displayed with :meth:`Dialog.msgbox` Displaying a transient message with :meth:`~!Dialog.infobox` ------------------------------------------------------------ We can finish this little example with a widget call that displays a message and immediately returns to the caller without waiting for the user to react. Typically, the :meth:`~Dialog.infobox` is used to display some information while a time-consuming operation is being performed. In this case, since we don't have anything particularly useful to do but still want the user to be able to read the message, we are going to wait using :func:`time.sleep`:: d.infobox("Bye bye...", width=0, height=0, title="This is the end") time.sleep(2) We also addressed the problem of determining the widget size in a different way as exposed earlier. By using ``width=0, height=0``, we ask :program:`dialog` to automatically determine suitable width and height parameters for the dialog box. If you like this method and would like to have it used by default for all widgets without having to specify ``width=0, height=0`` every time, you can enable the :ref:`autowidgetsize feature `. For the sake of the example, we've also specified a window title for the :meth:`~Dialog.infobox` using a :samp:`title={...}` keyword argument. This can be done with most widgets, and is entirely optional. .. figure:: ../screenshots/intro/example-infobox.png :align: center A transient message displayed with :meth:`Dialog.infobox` Of course, the :func:`time.sleep` call requires an:: import time statement that you, careful reader, had already added. In order to exit cleanly from our program, I also suggest to end with:: sys.exit(0) which requires an:: import sys at the top of your script. And finally, since you don't want to take bad habits, I would also suggest starting your program with:: locale.setlocale(locale.LC_ALL, '') which in turn requires an:: import locale at the top. Putting it all together ----------------------- If we put all the pieces from this chapter together and reorder a tiny bit to improve readability, we obtain the code for our example program:: import sys import locale import time from dialog import Dialog # This is almost always a good thing to do at the beginning of your programs. locale.setlocale(locale.LC_ALL, '') d = Dialog(dialog="dialog") button_names = {d.OK: "OK", d.CANCEL: "Cancel", d.HELP: "Help", d.EXTRA: "Extra"} code, tag = d.menu("Some text that will be displayed above the menu entries", choices=[("Tag 1", "Item text 1"), ("Tag 2", "Item text 2"), ("Tag 3", "Item text 3")]) if code == d.ESC: d.msgbox("You got out of the menu by pressing the Escape key.") else: text = "You got out of the menu by choosing the {} button".format( button_names[code]) if code != d.CANCEL: text += ", and the highlighted entry at that time had tag {!r}".format( tag) d.msgbox(text + ".", width=40, height=10) d.infobox("Bye bye...", width=0, height=0, title="This is the end") time.sleep(2) sys.exit(0) Other examples -------------- For an example that is slightly different from the one exposed in this chapter, you can look at the :file:`simple_example.py` file that comes with pythondialog, in the :file:`examples` directory. It is a very simple and straightforward example using a few basic widgets. The `pythondialog website `_ also has a very simple example that can be used to get started. Once you are comfortable with the basics, you can study the :file:`demo.py` file that illustrates most features of pythondialog (also from the :file:`examples` directory), or more directly :file:`dialog.py`. python2-pythondialog-3.3.0/doc/intro/example.py0000755000175000001440000000512612507731135021476 0ustar flousers00000000000000#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2014 Florent Rougon # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Florent Rougon nor the names of other # contributors to this file may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL FLORENT ROUGON BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import sys import locale import time from dialog import Dialog # This is almost always a good thing to do at the beginning of your programs. locale.setlocale(locale.LC_ALL, '') d = Dialog(dialog="dialog") button_names = {d.OK: "OK", d.CANCEL: "Cancel", d.HELP: "Help", d.EXTRA: "Extra"} code, tag = d.menu("Some text that will be displayed above the menu entries", choices=[("Tag 1", "Item text 1"), ("Tag 2", "Item text 2"), ("Tag 3", "Item text 3")]) if code == d.ESC: d.msgbox("You got out of the menu by pressing the Escape key.") else: text = "You got out of the menu by choosing the {} button".format( button_names[code]) if code != d.CANCEL: text += ", and the highlighted entry at that time had tag {!r}".format( tag) d.msgbox(text + ".", width=40, height=10) d.infobox("Bye bye...", width=0, height=0, title="This is the end") time.sleep(2) sys.exit(0) python2-pythondialog-3.3.0/doc/_static/0000755000175000001440000000000012531573210017750 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/_static/README.txt0000644000175000001440000000013712507731135021454 0ustar flousers00000000000000This file ensures the containing directory will be part of Git checkouts and release tarballs. python2-pythondialog-3.3.0/doc/Dialog_class_overview.rst0000644000175000001440000005321712531555250023402 0ustar flousers00000000000000.. currentmodule:: dialog :class:`Dialog` class overview ============================== Initializing a :class:`Dialog` instance --------------------------------------- Since all widgets in pythondialog are implemented as methods of the :class:`Dialog` class, a pythondialog-based application usually starts by creating a :class:`!Dialog` instance. .. autoclass:: Dialog :members: __init__ .. _autowidgetsize: .. rubric:: About the *autowidgetsize* option The *autowidgetsize* option should be convenient in situations where figuring out suitable widget size parameters is a burden, for instance when developing little scripts that don't need too much visual polishing, when a widget is used to display data, the size of which is not easily predictable, or simply when one doesn't want to hardcode the widget size. This option is implemented in the following way: for a given size parameter (for instance, *width*) of a given widget, the default value in the widget-producing method is now ``None`` if it previously had a non-zero default. At runtime, if the value seen by the widget-producing method is not ``None``, it is used as is; on the contrary, if that value is ``None``, it is automatically replaced with: - ``0`` if the :class:`Dialog` instance has been initialized with *autowidgetsize* set to ``True``; - the old default otherwise, in order to preserve backward-comptability. .. note:: - the *autowidgetsize* option is currently marked as experimental, please give some feedback; - you may encounter questionable results if you only set one of the *width* and *height* parameters to ``0`` for a given widget (seen in :program:`dialog` 1.2-20140219). .. warning:: You should not explicitly pass ``None`` for a size parameter such as *width* or *height*. If you want a fixed size, specify it directly (as an int); otherwise, either use the *autowidgetsize* option or set the parameter to ``0`` (e.g., ``width=0``). .. _passing-dialog-common-options: Passing :program:`dialog` "common options" ------------------------------------------ Every widget method has a \*\*kwargs argument allowing you to pass :term:`common options ` (see the :manpage:`dialog(1)` manual page) to :program:`dialog` for this widget call. For instance, if *d* is a :class:`Dialog` instance, you can write:: d.checklist(args, ..., title="A Great Title", no_shadow=True) The *no_shadow* option is worth looking at: #. It is an option that takes no argument as far as :program:`dialog` is concerned (unlike the :option:`--title` option, for instance). When you list it as a keyword argument, the option is really passed to :program:`dialog` only if the value you gave it evaluates to ``True`` in a boolean context. For instance, ``no_shadow=True`` will cause :option:`--no-shadow` to be passed to :program:`dialog` whereas ``no_shadow=False`` will cause this option not to be passed to :program:`dialog` at all. #. It is an option that has a hyphen (``-``) in its name, which you must change into an underscore (``_``) to pass it as a Python keyword argument. Therefore, :option:`--no-shadow` is passed by giving a ``no_shadow=True`` keyword argument to :class:`Dialog` methods (the leading two dashes are also consistently removed). .. note:: When :meth:`Dialog.__init__` is called with :samp:`{pass_args_via_file}=True` (or without any explicit setting for this option, and the pythondialog as well as :program:`dialog` versions are recent enough so that the option is enabled by default), then the options are not directly passed to :program:`dialog`. Instead, all options are written to a temporary file which :program:`dialog` is pointed to via :option:`--file`. This ensures better confidentiality with respect to other users of the same computer. .. versionadded:: 2.14 Support for the *default_button* and *no_tags* common options. .. versionadded:: 3.0 Proper support for the *extra_button*, *item_help* and *help_status* common options. Return value of widget-producing methods ---------------------------------------- Most :class:`Dialog` methods that create a widget (actually: all methods that supervise the exit of a widget) return a value which fits into one of these categories: #. The return value is a :term:`Dialog exit code` (see below). #. The return value is a sequence whose first element is a Dialog exit code (the rest of the sequence being related to what the user entered in the widget). For instance, :meth:`Dialog.yesno` returns a single Dialog exit code that will typically be :attr:`Dialog.OK` or :attr:`Dialog.CANCEL`, depending on the button chosen by the user. However, :meth:`Dialog.checklist` returns a tuple of the form :samp:`({code}, [{tag}, ...])` whose first element is a Dialog exit code and second element lists all tags for the entries selected by the user. .. _Dialog-exit-code: "Dialog exit code" (high-level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A :dfn:`Dialog exit code`, or :dfn:`high-level exit code`, is a string indicating how/why a widget-producing method ended. Most widgets return one of the :term:`standard Dialog exit codes `: ``"ok"``, ``"cancel"``, ``"esc"``, ``"help"`` and ``"extra"``, respectively available as :attr:`Dialog.OK`, :attr:`Dialog.CANCEL`, :attr:`Dialog.ESC`, :attr:`Dialog.HELP` and :attr:`Dialog.EXTRA`, *i.e.,* attributes of the :class:`Dialog` class. However, some widgets may return additional, non-standard exit codes; for instance, the :meth:`~Dialog.inputmenu` widget may return ``"accepted"`` or ``"renamed"`` in addition to the standard Dialog exit codes. When getting a Dialog exit code from a widget-producing method, user code should compare it with :attr:`Dialog.OK` and friends (or equivalently, with ``"ok"`` and friends) using the ``==`` operator. This allows to easily replace :attr:`Dialog.OK` and friends with objects that compare the same with ``"ok"`` and ``u"ok"`` in Python 2, for instance. The following attributes of the :class:`Dialog` class hold the :term:`standard Dialog exit codes `: .. autoattribute:: Dialog.OK .. autoattribute:: Dialog.CANCEL .. autoattribute:: Dialog.ESC .. autoattribute:: Dialog.EXTRA .. autoattribute:: Dialog.HELP The following attributes are obsolete and should not be used in pythondialog 3.0 and later: .. autoattribute:: Dialog.DIALOG_OK .. autoattribute:: Dialog.DIALOG_CANCEL .. autoattribute:: Dialog.DIALOG_ESC .. autoattribute:: Dialog.DIALOG_EXTRA .. autoattribute:: Dialog.DIALOG_HELP .. autoattribute:: Dialog.DIALOG_ITEM_HELP .. _dialog-exit-status: "dialog exit status" (low-level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When returning from a widget call, the :term:`Dialog exit code` is normally derived by pythondialog from an integer called :dfn:`dialog exit status`, or :dfn:`low-level exit code`. This integer is returned by the :program:`dialog` backend upon exit. The different possible values for the dialog exit status are referred to as ``DIALOG_OK``, ``DIALOG_CANCEL``, ``DIALOG_ESC``, ``DIALOG_ERROR``, ``DIALOG_EXTRA``, ``DIALOG_HELP`` and ``DIALOG_ITEM_HELP`` in the :manpage:`dialog(1)` manual page. .. note:: - ``DIALOG_HELP`` and ``DIALOG_ITEM_HELP`` both map to :attr:`Dialog.HELP` in pythondialog, because they both correspond to the same user action and the difference brings no information that the caller does not already have; - ``DIALOG_ERROR`` has no counterpart as a :class:`Dialog` attribute, because it is automatically translated into a :exc:`DialogError` exception when received. In pythondialog 2.x, the low-level exit codes were available as the ``DIALOG_OK``, ``DIALOG_CANCEL``, etc. attributes of :class:`Dialog` instances. For compatibility, the :class:`Dialog` class has attributes of the same names that are mapped to :attr:`Dialog.OK`, :attr:`Dialog.CANCEL`, etc., but their use is deprecated as of pythondialog 3.0. Adding an Extra button ---------------------- With most widgets, it is possible to add a supplementary button called :dfn:`Extra button`. To do that, you simply have to use ``extra_button=True`` (keyword argument) in the widget call. By default, the button text is "Extra", but you can specify another string with the *extra_label* keyword argument. When the widget exits, you know if the :guilabel:`Extra` button was pressed if the :term:`Dialog exit code` is :attr:`Dialog.EXTRA` (``"extra"``). Normally, the rest of the return value is the same as if the widget had been closed with :guilabel:`OK`. Therefore, if the widget normally returns a list of three integers, for instance, you can expect to get the same information if :guilabel:`Extra` is pressed instead of :guilabel:`OK`. .. note:: This feature can be particularly useful in combination with the *yes_label*, *no_label*, *help_button* and *help_label* :term:`common options ` to provide a completely different set of buttons than the default for a given widget. Providing on-line help facilities --------------------------------- With most :program:`dialog` widgets, it is possible to provide online help to the final user. At the time of this writing (October 2014), there are three main options governing these help facilities in the :program:`dialog` backend: :option:`--help-button`, :option:`--item-help` and :option:`--help-status`. Since :program:`dialog` 1.2-20130902, there is also :option:`--help-tags` that modifies the way :option:`--item-help` works. As explained previously (:ref:`passing-dialog-common-options`), in order to use these options in pythondialog, you can pass the *help_button*, *item_help*, *help_status* and *help_tags* keyword arguments to :class:`Dialog` widget-producing methods. Adding a :guilabel:`Help` button ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In order to provide a :guilabel:`Help` button in addition to the normal buttons of a widget, you can pass ``help_button=True`` (keyword argument) to the corresponding :class:`Dialog` method. For instance, if *d* is a :class:`Dialog` instance, you can write:: code = d.yesno("", height=10, width=40, help_button=True) or:: code, answer = d.inputbox("", init="", help_button=True) When the method returns, the :term:`Dialog exit code` is :attr:`Dialog.HELP` (i.e., the string ``"help"``) if the user pressed the :guilabel:`Help` button. Apart from that, it works exactly as if ``help_button=True`` had not been used. In the last example, if the user presses the :guilabel:`Help` button, *answer* will contain the user input, just as if :guilabel:`OK` had been pressed. Similarly, if you write:: code, t = d.checklist( "", height=0, width=0, list_height=0, choices=[ ("Tag 1", "Item 1", False), ("Tag 2", "Item 2", True), ("Tag 3", "Item 3", True) ], help_button=True) and find that ``code == Dialog.HELP``, then *t* contains the tag string for the highlighted item when the :guilabel:`Help` button was pressed. Finally, note that it is possible to choose the text written on the :guilabel:`Help` button by supplying a string as the *help_label* keyword argument. .. _providing-inline-per-item-help: Providing inline per-item help ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In addition to, or instead of the :guilabel:`Help` button, you can provide :dfn:`item-specific help` that is normally displayed at the bottom of the widget. This can be done by passing the ``item_help=True`` keyword argument to the widget-producing method and by including the item-specific help strings in the appropriate argument. For widgets where item-specific help makes sense (i.e., there are several elements that can be highlighted), there is usually a parameter, often called *elements*, *choices*, *nodes*..., that must be provided as an iterable describing the various lines/items/nodes/... that can be highlighted in the widget. When ``item_help=True`` is passed, every element of this iterable must be completed with a string which is the :dfn:`item-help string` of the element (using :manpage:`dialog(1)` terminology). For instance, the following call with no inline per-item help support:: code, t = d.checklist( "", height=0, width=0, list_height=0, choices=[ ("Tag 1", "Item 1", False), ("Tag 2", "Item 2", True), ("Tag 3", "Item 3", True) ], help_button=True) can be altered this way to provide inline item-specific help:: code, t = d.checklist( "", height=0, width=0, list_height=0, choices=[ ("Tag 1", "Item 1", False, "Help 1"), ("Tag 2", "Item 2", True, "Help 2"), ("Tag 3", "Item 3", True, "Help 3") ], help_button=True, item_help=True, help_tags=True) With this modification, the item-help string for the highlighted item is displayed in the bottom line of the screen and updated as the user highlights other items. If you don't want a :guilabel:`Help` button, just use ``item_help=True`` without ``help_button=True`` (*help_tags* doesn't matter in this case). Then, you have the inline help at the bottom of the screen, and the following discussion about the return value can be ignored. If the user chooses the :guilabel:`Help` button, *code* will be equal to :attr:`Dialog.HELP` (``"help"``) and *t* will contain the tag string corresponding to the highlighted item when the :guilabel:`Help` button was pressed (``"Tag 1/2/3"`` in the example). This is because of the *help_tags* option; without it (or with ``help_tags=False``), *t* would have contained the :term:`item-help string` of the highlighted choice (``"Help 1/2/3"`` in the example). If you remember what was said earlier, if ``item_help=True`` had not been used in the previous example, *t* would still contain the tag of the highlighted choice if the user closed the widget with the :guilabel:`Help` button. This is the same as when using ``item_help=True`` in combination with ``help_tags=True``; however, you would get the :term:`item-help string` instead if *help_tags* were ``False`` (which is the default, as in the :program:`dialog` backend, and in order to preserve compatibility with the :meth:`Dialog.menu` implementation that is several years old). Therefore, I recommend for consistency to use ``help_tags=True`` whenever possible when specifying ``item_help=True``. This makes ``"--help-tags"`` a good candidate for use with :meth:`Dialog.add_persistent_args` to avoid repeating it over and over. However, there are two cases where ``help_tags=True`` cannot be used: - when the version of the :program:`dialog` backend is lower than 1.2-20130902 (the :option:`--help-tags` option was added in this version); - when using empty or otherwise identical tags for presentation purposes (unless you don't need to tell which element was highlighted when the :guilabel:`Help` button was pressed, in which case it doesn't matter to be unable to discriminate between the tags). Getting the widget status before the :guilabel:`Help` button was pressed ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Typically, when the user chooses :guilabel:`Help` in a widget, the application will display a dialog box such as :meth:`~Dialog.textbox`, :meth:`~Dialog.msgbox` or :meth:`~Dialog.scrollbox` and redisplay the original widget afterwards. For simple widgets such as :meth:`~Dialog.inputbox`, when the :term:`Dialog exit code` is equal to :attr:`Dialog.HELP`, the return value contains enough information to redisplay the widget in the same state it had when :guilabel:`Help` was chosen. However, for more complex widgets such as :meth:`~Dialog.radiolist` (resp. :meth:`~Dialog.checklist`, or :meth:`~Dialog.form` and its derivatives), knowing the highlighted item is not enough to restore the widget state after processing the help request: one needs to know the checked item (resp. list of checked items, or form contents). This is where the *help_status* keyword argument becomes useful. Example:: code, t = d.checklist( "", height=0, width=0, list_height=0, choices=[ ("Tag 1", "Item 1", False), ("Tag 2", "Item 2", True), ("Tag 3", "Item 3", True) ], help_button=True, help_status=True) When :guilabel:`Help` is chosen, ``code == Dialog.HELP`` and *t* is a tuple of the form :samp:`({tag}, {selected_tags}, {choices})` where: - *tag* gives the tag string of the highlighted item (which would be the value of *t* if *help_status* were set to ``False``); - *selected_tags* is the... list of selected tags (note that highlighting and selecting an item are different things!); - *choices* is a list built from the original *choices* argument of the :meth:`~Dialog.checklist` call and from the list of selected tags, that can be used as is to create a widget with the same items and selection state as the original widget had when :guilabel:`Help` was chosen. Normally, pythondialog should always provide something similar to the last item in the previous example in order to make it as easy as possible to redisplay the widget in the appropriate state. To know precisely what is returned with ``help_status=True``, the best way is probably to experiment and/or read the code (by the way, there are many examples of widgets with various combinations of the *help_button*, *item_help* and *help_status* keyword arguments in the demo). .. note:: The various options related to help support are not mutually exclusive; they may be used together to provide good help support. It is also worth noting that the documentation of the various widget-producing methods is written, in most cases, under the assumption that the widget was closed "normally" (typically, with the :guilabel:`OK` or :guilabel:`Extra` button). For instance, a widget documentation may state that the method returns a tuple of the form :samp:`({code}, {tag})` where *tag* is ..., but actually, if using ``item_help=True`` with ``help_tags=False``, the *tag* may very well be an :term:`item-help string`, and if using ``help_status=True``, it is likely to be a structured object such as a tuple or list. Of course, handling all these possible variations for all widgets would be a tedious task and would probably significantly degrade the readability of said documentation. .. versionadded:: 3.0 Proper support for the *item_help* and *help_status* common options. Screen-related methods ---------------------- Getting the terminal size: .. automethod:: Dialog.maxsize .. automethod:: Dialog.set_background_title Obsolete methods ^^^^^^^^^^^^^^^^ .. automethod:: Dialog.setBackgroundTitle .. automethod:: Dialog.clear Checking the versions of pythondialog and its backend ----------------------------------------------------- Version of pythondialog ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: VersionInfo :members: :special-members: .. autodata:: version_info :annotation: .. autodata:: __version__ :annotation: Version of the backend ^^^^^^^^^^^^^^^^^^^^^^ The :class:`Dialog` constructor retrieves the version string of the :program:`dialog` backend and stores it as an instance of a :class:`BackendVersion` subclass into the :attr:`Dialog.cached_backend_version` attribute. This allows doing things such as (*d* being a :class:`Dialog` instance):: if d.compat == "dialog" and \ d.cached_backend_version >= DialogBackendVersion("1.2-20130902"): ... in a reliable way, allowing to fix the parsing and comparison algorithms right in the appropriate :class:`BackendVersion` subclass, should the :program:`dialog`-like backend versioning scheme change in unforeseen ways. As :program:`Xdialog` seems to be dead and not to support :option:`--print-version`, the :attr:`Dialog.cached_backend_version` attribute is set to ``None`` in :program:`Xdialog`-compatibility mode (2013-09-12). Should this ever change, one should define an :class:`XDialogBackendVersion` class to handle the particularities of the :program:`Xdialog` versioning scheme. .. attribute:: Dialog.cached_backend_version Instance of a :class:`BackendVersion` subclass; it is initialized by the :class:`Dialog` constructor and used to store the backend version, avoiding the need to repeatedly call ``dialog --print-version`` or a similar command, depending on the backend. When using the :program:`dialog` backend, :attr:`Dialog.cached_backend_version` is a :class:`DialogBackendVersion` instance. .. automethod:: Dialog.backend_version Enabling debug facilities ------------------------- .. automethod:: Dialog.setup_debug Miscellaneous methods --------------------- .. automethod:: Dialog.add_persistent_args .. note:: When :meth:`Dialog.__init__` is called with :samp:`{pass_args_via_file}=True` (or without any explicit setting for this option, and the pythondialog as well as :program:`dialog` versions are recent enough so that the option is enabled by default), then the arguments are not directly passed to :program:`dialog`. Instead, all arguments are written to a temporary file which :program:`dialog` is pointed to via :option:`--file`. This ensures better confidentiality with respect to other users of the same computer. .. automethod:: Dialog.dash_escape .. automethod:: Dialog.dash_escape_nf .. _examples-of-dash-escaping: A contrived example using these methods could be the following, which sets a weird background title starting with two dashes (``--My little program``) for the life duration of a :class:`Dialog` instance *d*:: d.add_persistent_args(d.dash_escape_nf( ["--backtitle", "--My little program"])) or, equivalently:: d.add_persistent_args(["--backtitle"] + d.dash_escape(["--My little program"])) python2-pythondialog-3.3.0/doc/_templates/0000755000175000001440000000000012531573210020457 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/_templates/README.txt0000644000175000001440000000013712507731135022163 0ustar flousers00000000000000This file ensures the containing directory will be part of Git checkouts and release tarballs. python2-pythondialog-3.3.0/doc/index.rst0000644000175000001440000000337312507731135020176 0ustar flousers00000000000000.. meta:: :description: pythondialog's documentation :keywords: pythondialog, Python, dialog, ncurses, Xdialog, terminal-based interface, text-mode interface, manual ################### pythondialog Manual ################### .. module:: dialog :synopsis: A Python interface to the UNIX dialog utility and mostly-compatible programs :platform: Unix .. codeauthor:: Florent Rougon .. codeauthor:: Robb Shecter .. codeauthor:: Peter Åstrand .. codeauthor:: Sultanbek Tezadov .. sectionauthor:: Florent Rougon This manual documents pythondialog_, a Python wrapper for the dialog_ utility originally written by Savio Lam, and later rewritten by Thomas E. Dickey. Its purpose is to provide an easy to use, pythonic and comprehensive Python interface to :program:`dialog`. This allows one to make simple text-mode user interfaces on Unix-like systems. .. _pythondialog: http://pythondialog.sourceforge.net/ .. _dialog: http://invisible-island.net/dialog/dialog.html pythondialog's functionality is contained within the :mod:`dialog` Python module. This module doesn't contain much Unix-specific code, if any; however, its backend of reference, which is the :program:`dialog` program, only works on Unix-like platforms so far as I can tell. Given a suitable backend, the :mod:`dialog` module could work on other platforms. ************* Main Contents ************* .. toctree:: :maxdepth: 2 intro/intro Dialog_class_overview widgets DialogBackendVersion exceptions internals .. reference .. Either this, or use the “orphan” metadata since I don't want the glossary .. to appear in the table of contents. .. toctree:: :hidden: glossary ********** Appendices ********** * :ref:`glossary` * :ref:`genindex` * :ref:`search` python2-pythondialog-3.3.0/doc/conf.py0000644000175000001440000002103712531555250017630 0ustar flousers00000000000000#! /usr/bin/env python3 # -*- coding: utf-8 -*- # # pythondialog documentation build configuration file, created by # sphinx-quickstart on Fri Sep 19 13:32:09 2014. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.viewcode', ] intersphinx_mapping = {'python': ('http://docs.python.org/3', None)} # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'pythondialog' # This applies to the documentation, according to the Sphinx output. copyright = '2002-2015, Florent Rougon, Thomas Dickey' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # import dialog # The short X.Y version. version = ".".join( ( str(elt) for elt in dialog.version_info[:2] ) ) # The full version, including alpha/beta/rc tags. release = dialog.__version__ del dialog # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all # documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. #keep_warnings = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. import sphinx if sphinx.version_info >= (1, 3, 0, 'beta', 3): html_theme = 'classic' else: html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. #html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. html_domain_indices = False # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = 'http://pythondialog.sourceforge.net/doc' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'pythondialogdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). 'pointsize': '11pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ ('index', 'pythondialog.tex', 'pythondialog Manual', 'Florent Rougon, Thomas Dickey', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'pythondialog', 'pythondialog Manual', ['Florent Rougon, Thomas Dickey'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'pythondialog', 'pythondialog Manual', 'Florent Rougon, Thomas Dickey', 'pythondialog', 'Python module for making simple terminal-based user interfaces.', 'Libraries'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False python2-pythondialog-3.3.0/doc/screenshots/0000755000175000001440000000000012531573210020662 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/screenshots/inputmenu.png0000644000175000001440000012342112507731135023424 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxw|gw=@B J&EHD "UpWr賂RP!PC:B fDŽeI$Bᣓٳg93;Ϟ3TljBpR"P%$XCzq߄M%"i 9ߖyJ N#YiX'K=J]ݞwήOZ;\(=-CTxJFfO7JŤ4'jt39a!9f񷈈x?.ػI-EMϞ誕 @( aCͭB^w5S|%Wxɓvw1cqλOܡUԲCWvyI;>՞#?+[qv[n;OmI94WVPήp%G姒ny/0zk]ҭ QYeAWM%?; 2C ,Doc~+3LAZu9YNl4r"oC[ضELыw$ڛX>*y:\ywFf)z&[%9SWB媒$RFe.fy(Un* wBMgzNRz^K~Yn$;MR+EC:iٯPK Gnq<"nI2*OBF|aASyTK3jy3;Oi2:MVz¶ (EHU̼h$fU'ۮ)]g9E&(cU7?O%7so]E;F''ٕfCWXE>ՉIl r"VyGz2JCt/d|~[=8(OXDrVn(!y#V ͚EPoJ1YUD]}ۡm(/U[2W,$DaE=Ws2'+kJ #, Qإ"""$Ye]ViXEDZh[ռlS,FW;w{ʑ( o+(] 7^KBfs5Xey> [YE,>CF,DʋH/~a0?Y"M򘓈 2'57XHKیvӶZndo&AjG;,])wMJ J /thBWfa/<{~s3e9bw4dw_Wʞ$.gz)Aujn=QL!`9o<~׈م.D]Ѱ=v̈́P#fV毺܅rœ}c}' vK>rݚi @;hY2EDF"DgVR0\P5meDQu3*2<3L<=㚦5]C-ttgG'dtT%gw 8T ͸5:ZY$*_(^ 埧U""?e7VHyU{֝*i{sA*GaqkVUvfxF/Љ[ n*RRG)E^HTYkTZeQH fuzd Q,R$D^ɐ(V1\<.eHaF(/[%*XANq:9hU2,#2e@=޸(dQw̗ cfi*K r*Y"2:SmeHD^ʐi g,iHUenNome*!!AD P#GȔ}LrIJdι˶]䇛ȶK  lJHJ_Zܼ5q̰,颕]%T}ɴto!n0g gTI M(#&;2]J471[C%>v iʾIk۟yNNH2dopgt(ӜJӌ"'_Ai$_饭QJ4*IHY~3ʂ,a{eʅ1 T"9HBrC $!9!@HBrGTS%9,x (9HBrC $!9!@HBrC8R+6VGp_C=P $$8""V3%%Kbc"RaĈyjի}lNe>V2۷{L#O=~X߷oVk{/^ffַibu,Zv_y]XTkgzrh8(u:Z5C˖ +#9hT͙}xy<޺QZ7%$8^}ٳ.ι<|RӦ))ezvϘ8nJS4TѷONu λw{ d*d4c\/XnE3,\h?,_{'\OpmX7`@ *,.+Xk2(4϶-u=#?y%!ITsfUDW##=zU}`oʕ>MJmSm-1h4%%ESRL&.NgZ5'NJ]m˅\\FgR槟TFo+VZnTSGDxY>3tsBwۺuPsE:|=e_aذ23gVgf'Ҟ|2-9Y4Y< LΝӞ|2hT/]{{,+չsZi"4uj=Ѷ5lXJe*VȠAO>b2_viϞgc4i/Yɖr[jD;&E!LmBef#9t,srf۶O\+ ݻ=ڵ˨\. aYLʕ+%A^^'LSܠ>*]Dt:` KSDJULɡ^^fqs(QJ&''%1Qc4FVk=p]Ii>l[MuĸȱcE>:sVگ_YDwOW[f@4h7[e^)&2kV%ZJOBEreIժF5f|)tAAoosjE$wBRLl7DQT{M5Y~ 7ndWUm!qdRR2Eƺʙ9|ҥb?.QZrע rywww $> 9,{nݸsКW*dQJ JGVZZYY#G\,i0,VѸlϱE|}͹ ;|Ym\pf'iijer]vyԩӒ%KHܲZUY kXJ.ciTEEnz{9EI6FrVr&?]]ҴR2<=-ׯTdzb8gqGbk Vmm(P^էO"rQW[QR6 j``CjXygc KQիD<%U{c+Xl9ٞ("Gd4j^NVQ?lKSmHJN֬Y㓕JM,_kKx ;Po&<d6KDW.;wΥ,6kS&,Y[cgάKvl_}22lThDgMqe+}*խOT@\V +ڵk}l=O;gN%޽蜓uN;=gZ7ϴYNn"өOTbj68ww9)I#"G~e_'&318زe޽"rv֬JZ˒u98EIƍ8se*jlV99YM&UEܾ}pםN tuj[zߺu`CzٳζCvUtNj*l?5[}~o!{ɚs+l6;X޽S6DcO -WW˳&ZlVX<ѵkj:[5t[aFNeC(||#FX9^顡YeqWlYݻ=ޮ]e>W99Y_x!G3spA1U..??s>ؒ["װ~uZmYح[j|S GC7~钳NruVf|ь *:UBB*|(J؜W  9pWqqNӧg?g}4D4#!*\V C V L*b*P`$r/%'҉J$CCxxxHHHV:nڴo߾>`HHHHHHڵ3PFFFuVaF VP틶F7~ꩧ>ÇWȄO:u׮]TTٴiٓ\Zjժɒ?ӐI&ў˨Ұ/]d;l!9"""jժrر˗^zŊ-"8eHnJåV"ҷoV81JrئM]vG.H'*.+4K``?O2ED"""/_NpPzzqww'(mDO?U׮]#,4hP&MDd޼y_4iRǎxu놅}7e?6,44UV[FFѣիפI>###ܴiZj5iW_ݲeKbcǎ ;vh9sfǎԩӤIwyƍyQddk֬YZj5hРsƍ/h"B?ӦM`+L57o?sݷlŹ@_xݻw[)s S*P ׯw=>>j۶m… [GRv !J*O(=pƍpxf͚u4o<ە V;n>fa6lؠa͚5;vx E DP>X|߰O?M4d2)5qqq9{ٳgWXq)[ )){W^ӧOXt[ɴ ܠ95h@СCÇ߹sӧO>|ǏE:88ȑ#Ud8~x>}DdƍJ/>|9rȠADSNrذaCLL/rwǏYƾ؍7 }ٳglҾdXX؊6l("_aGS||~شiGEEEEE͝;~Gs=tPLL̉'F`իWfR^9r7kŹ@ T#G]9u8qm"i5jhٲe5R&qv t,_ԩS111ӦMj۶msbjH݂'++k֭bȎ;n>x{TTԅ jpϟaJ5q'N8qbk!M4 [P֭0adҥ͛O>}ĉ#G|g%V7Le˖)Gљ3g:;;۷?O 9DNիWm3'Md4 0}te0qV۶myiM6=,,KYfST]v[oVDZj[2eJDd̙k1};jq5kLDmf_СCFQN4WճgOC޽{}~Rѣʕ+m?@wܹ=z\2s/Zd6kŹQ jժ^{Y͘1m۶"4`sܹ/.-&a z((T[0"##322|}}.  z!e׭[g_؁b=L:F*… )m(y$6GZZ2q}HJ֭[^=ٱc|*)m /T*%+"rZV-%i׮?~r1dJJJ*ֈM<+U*FM.T2?i^ƹQ(tժUqw?/"~W:p((T(vQU*r{zo~+55~9z~ڵ" /8\>0g=]폊J+rcM*o؂>(7WJt૭9nKVu:-tem"' ~W\y? o'NP>E^ӦMme?wk(\渎q~~~III2dH۶mCCC}лߑ("7n駟nzٴ4a$lx*8w5ʢq9TV'%%%l| !?'xbҥAX4zhѢgyFqƴ4???1}` ?"5kW}ԁDJ*|PgAڊPаam8000000>>ɓO=Tm}Arlcvy{{+OVUu-O:OH D?;E$99Y?oe\>H^^^3g9rdLL̇~("-Zٳ?X9(_~eeMԩ|'$$:ubUq.jE ];yl3SRRl+na8GC*=<VQСVMKK۽{wƋ/hѢm۶)[W)}g 3zGqn 9"cM*o؂Rmܳw:ێem!rU&5jZ %vRعs={_~Ν111۶m۶mƍ">>rc< Co3)))GСC4}qTX\Qs-[4)w:t8>>]=EېP Ma\S<^z$ Yyoo=z8qյwޅB~`,ZM4Q_~~~ttݟ%"w:`sLShڊI|||DD(<%t t"9FcffիW7|sĉ"ҩS{ξɓZ ~^m߾}̘1:tpLKTzϞ=2JAJJʄ kF-[Ly*?X_yVun57xGݭVѣɴ~W^yȐFƹ,V;vrd W7k)C*!SSSǍ4'N(S `X,7,PIڵkMz( da(w*Cw˫ tX4Ed?-N>=jԨӶm[N)-&샥ZO>A?~\/V᯶3n8l6oӦMAק tb@'1wSNqӬYٳg5jϞ=zrqqqssKMM;w;v3~嗥KzyyF:tcV;o ///Fcs̘1g'0`ٳgtҥZjM_ݻw5juǏuGyWeeeըQwޙ0aޘj]r6~ 7 s)ŧ@qv@=i4mHի׷o~m͚5k֬qrr2Lk>|4)Cc+x\~"r!g:t|Ǐ_tzP6mj׮\[780_vڵiӦ &|^^^׮] 0`ŋԊ|||ƎW_-X`J{իק~ZMԱhg,:TϞ=oܸ'_2jU.V8VLzÇd2)GVZ;%sCF~Gwk׮;v7oޖ-[.^W^mի0?{[?SRR|}}6m:xϴ-=zh۷?W^ȨRJ-^y{N Zz3v}ʕ/J^˿̚5:.888,,l̘1wyW~,`?[{)Υdsƹ*W۶m3 ׯСCswL:Zj۵kzqƭ\ P /rBy}*jnܸ7(gu￯RJa>uX|__tٳgFc޽'L?]ZѣϟԒiE#`V5x;Λ7/22ʕ+:F=ؠA9VL-[RSS֭۷o7|SIt(TXR|ގ! C ? 4e;֭ÇG5~rG_:i$6=P2өS%Kx)$$>6tG"JH Pj޽*7,FEUVlz/H(Ažx e4>رcmd#F׬Y3=.Ç߻wk,\1<<|...5ktw֬Y%D @nP\~իnnn:tXrehhh[ &t%((ҥKjz7o\sp̟? O+V(믿lk(U9HBrC8 <<<$$R[mԫdߐ?6,44UV[FFѣիפI)Vh6l9rrf0;vرիW/[, pͫW."gΜ2l=z4--Zju.:p۷k4ٜlٲÇoذA:\g{+VxwfsΝ;7zhWWׂmڵo2~<>~iҤI&IٳgϞ=bŊSN9\Ѹ~z=<Z`0[.22SNl(sOEDRTSNF>}R oo͛7o޼yĈ}]XUA\ƟσLAԩS b|oݦMHOO7nL2y[.U{ wAauСÇܹӧO^|yhh}g͚bŊ+V9. [qSÆ E+(}9lذ!&&_~9?;׬YS:M6?~TTTTTܹs[lX4M=Ν{С'N(YFY`իs_n݄ L&S.]6o|'N9r>wEdN6mVݶm}GA`1{숈F_ĜzÇ?>{l[EAFEDD(/xȑ# nÆ %[h4|d w9rõj2LQQQǏӧlܸ)a5i$8`ӧ׬YSDZm۶m͛j7mtLFF;vV}||ƍ׬Y3ٶm[y޽>oSO)cʕwi}Ν;G+WVxzz<_goFqҤI"O.XࡇR|xrrrԯ_ҪUF\lT7$6JΝٳ~;wFGGl۶m۶m7nKT1E[9huEw(_ {+(z?SۿKDdܹrs jSرh$$$䞩d6$''>γbŷQ^^^ 믷nտ믿G,9x(p!=#9Zh!"z^V:ߓr_ժUsp8ʈ׮]+X4>cΥKRRRD$ϻ T~XDr4bźQr >}2믿/777VfZ=<<.@4zկ_?OOOѨmN @~`o޽{Ǐ]\\r(Vuǎʅ^^^+;f#P=űjXV ZTܹرcg̘/,]Cѣu.:ӞݑVh]vݱcǼylrt??zm۶W^GGGgg;w7ӧON,Y㥐bD"_$$X{lQ.C8p !(Z$Pfݻw9|.p!ȁC=@0|@r 9!@HEXVVUUE$Um !ʿ]~.O|>y5pUhahmVC%VV-l*$(綸l?(K%"}]pޡL476/434S&v첊҃Yk!6"w|Y"44qtc"OCcCe"Qx<!@9?)N',~}u}y;=O.MX>L^[j;tbErWxbIIIB,KZZ-,"jR&F 5úV4VV=t=|c:6kGОwgt416ӻ엩 {cs|])3)La S.wIFr>}ՉMww2C1Lv3Ngx=]Cn?KDڵkG;r%h49"…a)i*,']Y(0)La SdB"9-۷_dIE@V–N./3GrC }DrbzD$F)ӝJtN).V::nшUVsh:T&ZZ8[ 8JC6+m˴} PJbu++"q "$N#(UH[*+VsMV\PT!9D?c;CӇjD#"Ve&1D5,}[ !S=SAD$A/E̕+/i.s536#(mH<^eKe{XȥY2sx['N$(x!/ׯ7~""zkE[US>@s`%"9j 5ɢܭ<H$!9!@HBrC $!9!@HBr'BT4YYYW^=bg!%--LJ0)L XjY=00P2pC(:uZd q@YDrTP~Nff0)La Wd2(lXze!PAoߞ5(BQQQ\2i$C $!9!@HBrC $!9!5yrt4i{$$ȗoM<_rnŊ<ޒ޹C___ԼtTlO̙sW 4eʔ/]Զm6mڔoC{nӦ͊sAh;C ^ʴ>&Axx]Dc*oFddd˖-.\qvv.ټy%ڳ **CJQ{{rEvrrR]6F)+0CKt1sjի}lNe޴4>N`c׮iY%S N}kLNiiLT]ʕM9']TNM|SYyy$"lE?~δiӦMfs_~ewΝ;w֭*v={|me޽{7o\R>੧7n6lذzDcZ˖-k۶wsYE=WfDQfjJmEyzFj%q`dD^isĺuoᆱ *"%K7UdѣiiiժU^@:ureÆ #G"f0;vرիW/[, ԩS b|oݦMHOO7nL2y[.*t:FS$_4Zn=f̘iӦ=z;ѣG[,7|S @L'O^o'"@1)4ԾL`N ˗̀ϭ<:qdRi4VY1U^@UFc 4ZkzygYe4V?*^|-3Te6pM",,,,,Lׯ߮]?nܸ;?tÍFcǎ[fMѸw?~w]`}kך]?>***""nݺFZrƍ R[#Mg#<=-]j4RA2SS X ;wzlfϪU>Wf|?j٫WJ@Im3;EΞ=o>9rd֭d};v찟L\oyujRJ1cƬ[.::;w裏zȑ#E{.hO:UD&M1qD/j֬IG!ŭ_??55kzܦMBV>}N-G76L*޼br^~=B,&Mt11.4ؿT?W\5;WFOLde9=׬YsĈmڴݻ^=G4Dk׮?LuQٯڲD__fĽ/"VUy,{tQl D?M&SVyݺu[n֢h ŤI+WL2v ! E۴~:kb6K}zxd-3^УGjժFkVzҤ*9 ےUJUF׾ըQ.PXM[ڵkfYS"فhDFF^zUDlOӨ@C""R6bRWWJ%))y IJmCr2{=T\YD㋶ǯHEDT*۳cш;vj}Dw߽x"M  NgQ(ƃEDrە"r",VTvɨZ-~~=s&{>`GTGYػ神-Z^U:W"VKa4fȑ#;utҰzh4:\ Cܛ53SyPgػWitU{ϝs)[jBEΝN33۶y.\ޭAP~[SȱcVL>>>"\f͚_|g>sHc233y{nڴID՞KC4f̘k.ӧTS|źvcǎ#G6h9==ϯM6ƍ݋ 4;vV5klٲŝj;vl\\\hhIr,a5JHH1b%mD$ aK؜8 ]xQQQ}ԩӒ%K1tW_enԬi(UesP[i-MBU9}gB>˗L;9Ym7%eY{:oZ<=J;K:"^V 2eñcxPC%)nHjm#Vf=2e…/>>0)La WV5555GḸ82CڳgOv$@hs<_0)La S dʳe!Ph"&&8H$!9!@HBrC $!9!@HBrC $!9!@HBrCDĉMVVիWsϷX,)))~~~YbIKK0)La SZyvww  "9*>}CN,YBPFqqq)"y;)La S`0L9 [,^/@ErTP۷wMPTTLc@! $!9!@HBrC $!9!@H"DpM\%=]-"M^|1! jկ^Wѣ֤$uJP'pjUJQ6 H_֌!C 9WW"#zV(޼K4T"ߵk<$##cȐ!vիW^ݻw`\FQ6 H_oe''W_u[lMJ2V'|رc7x#22e˖ .T8;;u|뭷"##^}޽{'%%ĬZJC{!%?6oo\ʞ[CE|c_oor͛U*ܹsٞTC=p>̭.;x-ի}V9qb%{:׫]f9VVCS9rSZ&3Sl5ծmh.reSEhI׬,U`St7TV^}Gɬ cѢEǏ3mڴiӦ8p_~]sݺukllJ]vϞ=_{5www[Cw͛7WT>xꩧ>Í7 6쭷rJ/3<Խs)ݻoZ-[ֶm[޽瞳Z-z!j4oSfܹŋ֍jJ.Hۭ ^꫉uJS5}WYdUDbcK5om#((v3ѣGҪUVzu[:uxˆ FE`0;vرcW^lY@@}S r~M67nܘ2eJ[n]:۷Ȁn֭[3fڴiG޼y2?55u7T2CǪ $sLhmfY1k1Zq}p`N ˗| 0*'\L&Fc5UٟkVEDxJuv50gjfѨZwkz~Py٬:p0e_~v߿qTСCÇ7;vl͚5F޽{Ǐw}w僃׮]k6vzu5jʕ7nt 91"ҬY?s֬YǎZuիא!C\sرcwرgϞ{~Pf~M6*,h5$7+"k "#GG׮Wyewuֹs;M=cemqO1T;?djRWPٳ}RjTn80^,ggm _ID5.8תeKZ J7a*dҤIFqZm۶m͛ץKM6>~VR^)&JڶͰy:{}Ddȑ9^[ر~~PP2<[rFzzO?}NꫯZÇ?-\:uL4)""bĉ"_ԬY Cܛb^7O!"*_\׺˽&NT,8بc6dRs;JOegnn6iqEDR_U:خTFOLde9[,P/_r믿^|ĉ}||J[4Dk׮?MAdrQ@q{{ӧ_m48xsqDC1iҤ?ʕ+SL]Br{Sg7\jn^f++i W7ZŚ4J¶dUu{.R5j%*ClϹ]WRفhDFF^zUDlOӨ@CܛSw|-c"^xG+\YSΞҥ2Ur?(boO5lw3g0((o zHE|m^zhBDz}TT}gʕ՞/lUr f̘:̅Æ suuMHH2dș3g:,\;W{."Ʈ]f̘!"SNU_T9sDDD8\  _4U|m:\]rG<վ}5HN$'gZx#GNr^sgOR'͚UI34TFD~X?2e9sٷofȠA$sgNIIҥKj|}}E{Fi֬ٳGgϞ^zZn^*UZo>|xddd\]] RGy_whRHLL9rb8p`XX]n?lذٳg;vJXj(9D~viۀ1Uͽ? ۳.rh.h4gPeN 6jVb;套\`Pi͚<<,NN@S^); KիW;00ʕ+>|plllb]vݱcȑ#4h윞צMqwhKE[n6m0`@HHlvwwo޼~bŊ"CFj;6...44tҤI90~F%$$1’|V@DT "0NllGK^.>}tiɒ%D2[7j4⪲(z {_NCBB-T&!*qپ3!vڿR{KIѬ[nZ-fAE V[/+@Frر<(⡇X$5MU3v@CraB}šSNK,!(H JѸww0)L\`0L-^"9*&E(**ksP1 @rC $!9!@HBr'BJ%bPHH$!9}o/](O>󐐐^zNCBBZjU]|KƎ2vXViӦ}>!!!!!!kצ=,ͻi$;Cs*UJ9Gez.QQKKI5ʖ/Z.֮]ۼyE2<<ҥKm۶mӦM xY\RRM6 *,qJf("s#S9~ |2SWJ|TJ…ï]{PkWXsAGG{h LIyc~ν?4".}:Gږ=wCRdee/lSioOF:thHHȏ?8lذVZoGW^&M=,^XDxGyBB*?+?y tv6FDzSʟ[۰vkV3fۭ oFi!C?/R:w|*(g-hрF!C"""DD uEFFv)͛7^ǟ9sN 7uѴjժ)o8d:p۷k4ٜlٲÇoذAڊaÆmذk֬ٱc?^9lذaȑJw`8vرcV^lٲs>Ѻu1cL6mћ7o>=b曶;;}tQTމ7o޼y#>#<&wZS"U|{JԩS b|oݦMHOO7nL2y[.#`Xbm!QU/w;qw׵ly@ytت2CLݺe08;;9Ά ȁ:V Q{xkt7ڵlpsڵY,=珲e"ye1̞=;""BL2j{1bĪU,?k,e"<<߾b”~ڵƍKMd 6xyy/۷OKKMv5k<;ϟaJ5a„FGG替ka ·>|h߿رck֬i4;~Ǐ ,(:cǎݱcǞ={{~A6mԾ˱SDD~rr~k֬#G9r2]vm0qBjP{JAFppڵkfs׮]ϟ?QnQF\rƍE_>11ɩ_~X CdikJEdʔq:i+̲aL_b_ef};{FO;pFTT}kd3,yy;~5ʫ5j\nf2l:~ws2jWo+_|9$/m۶1s^{mJWI˖-ҿӧOرZ7n\fDd۶[3fڹ>\kI&}j-uI&L>f͚"j۶m;o~zTܹs\S dK-LϑAE&Svrşb}]?0&ϱg*%(L$%nV`gtZ6tpp{FM8qBD\\\֭XƍO:UW0XJEzzm?#">`5*O/"*Ͻ+W[F׮]_}՟y"s۷{ CI&9^jڴ&Elۓ9\\\T&ax O6 ܹs-$(a2&E2")6m4j*U_W~̦M}]]vW&lYK!V뭾竗 V"99YD|}}st={E{MJJ???Z}Ϸ:+][VU2O:p5&M^r% `ʔ)%^=HJrd42ʁbkD?M&Ske4/_."sr'(*hʮޖFE5 <Ӓk)m9FcV&l'pըQ. @iFddիWE$!!a˖-O?4[Զ"vƍX;NgQ0wzC^q6^VZ<.KNQ&rZzllʨɹ Z,/)7[BʅEҫSՈ;vj}Dw߽xb܏ͱ)JIAya˖-CCCA4C@hH6nݙtNDS 7˨f5l|{}YJ ٵI<"ÇէlEG)+آE *uvfyȑ:uZtiXXXZZ[oe4K&tW.ҡCzűQۅ !p6Ҁ&[je݆aW :p5.\Ⱦ]P1wSO7.1lm_{Ϟ+`hܸtR{-1}||DD԰5iD}_~]O( Uo_V]x=@5f̘k.ӧTS}Q{E'Oj0`E.jL`?pb^zƌwr2BI'9h4?.]zYػw &"^g k׮;v7oޖ-[.^W^mիgS :vظI&Xwqȑ#F,[,3E#t^֭ϟ__ߦM<$W|{J SoڲeˊsL(P::ʙ؜O yzuTTT>}:u|U qc[/1tvw|6lnѣסCgCF)RsRl*#~Wd VC]l}YllyL.5"Jhܾ}jՊh(+ӦM8}EVV؇kEE=a{…gfZ|;v찍☔4bĈ5k>sw_xڮf$'Spp}ާlr&<<|...5ktw֬YNNE@9i ʆ+濰ץbf6_}5mۨ:u'i4$膿s gW93a„ȓ'O^tbԪUsofժU (7H;sAR믿:q!QbaR(a H 9 $!9!@HBrC $q"@ŤΟ?o?b%--LJ0)L Xj('@YFrTP{i׮qp4{"K0)La S؞`0Lyvuul"9*-Zc@! $!9!@HBrC "Nw# z$C $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@H]0|! 7ș3.8 mx{{LmXw׮ev&'kp;xЭGӕCo,[wmL#G\8w9$ءCŇw\}MXbL^[j8*|æj,;uʥO={V[kn(; 4u=)IөLNk.9תePz#Z#J!nٳgOvř80LvF#]/ZU}Jcz77"rSOe$f`j."8mժF|YgǡCnZyM7n8.jzHK(.$h4R$URMs:UTsC}*V1_kc$uR@Y裙Jrhŋ~~n\$"Qh4+&%iRfr*:Q{zp XBDE111!|+aKV'.Cq4Pyay_&!\\ȳ|9Lh>[>tJp1aʜ4%~]m;t6F CgS&s:yN\ToFҌ;}V{%9缯c[fl@ٶs۶_m2vOŢ:yIk>}mz:=]VZ5CfZطoٳ.Wj:Rnݬ֭3|}w,[ow3g\T*yAO2T)P|HQyX=~kMn*UR'(doJT҇QeiS]Ӧvsj٪UWiРD .+rg7(c$~qH}%%y.ff !S>{XȥY2sx['N$(ȃ^\赢-*)H90@xP y 5BdQVw]RJ$C $!9!@HBrC $q"eNpp0A@A]r .9sXP~s, a !P!!P!_9=zt̘1D CB}Yijj*a H$!9!@HBrC "NFJ@l Ps 9{@!-ZHyh׮]kԨAp؂C1ۗ(kRG܇ qnƾ̎;;LkFZ7ntO<JHKƠA xII',7JN%Ξ'ömW%+K]s˖n=ܡ=yPN<`%>>Y3>ݭb1$@钹`AŢiׯ_߰_6o߷o-3lڴ)ꪪZUUǝyǥK#Ḡ")SFm%ݥK~ )4||gmْ6yI֭ƃEZRŰok׮9^Z[nMNNJչsܧw|I>}^|ƍWѢ7\^x[%"{Ex6m2o 6/Mm>|~`fm*noÆmط̘1s&M]iӨ?C,~_=zlVۻӨ(%FG}DMtD1h21ɘI✜8zIɜ'̘D1KP2CF3FhT@t7cۋ233Mv=PorZz+++o0?????ĉ}:^^Эjn۶mƌ&MڴiSYYYttի[jߺZ/ϸ'O(#Fh͑_z[,͛7O6-!!a ''4)PDrr oߛ5mvoRMY]Nw0"G=oiշJSFcժ?-YUe8uj޽Ӷoc{￵ڟlsxx~VV￯07xpfnnS)ӛnYzyFj#Cyp!ƹG7>}:%%%--M͞={uenQm׮xw.d-dŋ/>ww}^zW^IJJJNN'Ƙ1eL|}o~).HIq|u= bF͚ M\~ dvf=?g?;,Z+% Sg/ʋz7Edܸ;3g+*nv}u~O'Lri 5̘ }JJ"f{#F>9ٸp[7 {m}wvlh?x1iL$Cݘu*̓IhϞ="bXw^qcbbbbb,KZZ鼠Laa d23&22RUVVfgg9sF-YZZY݀BpD<33sСwrn4qn[厠75lذÇ+-ҹ"p8Ο??x` !|ڲeӧEDM4i…;%<5kLگi4px**^ѣGZyFGGYfժUOMMݿm۶mf3ۧOoom>zys )ŋ3g4&,Zd\x{F} ܝzSkʕW^vtz<f7&&Fܹs"b۝N2{رc, 8_~ϟWt:+Do߾YYYyyy"hс6rMi#PF6cǎ|r5#vsh7PD 0svkoi4z\XXӻqw^:uԩSwޝzu֩Qڝk}vՈ-T8v*/oZ-66l9jԿ?]^P۩Sꪻf<0mj8;ƍ pVRn>f3y?4mVOO?*??نd^~a&6fdd(7׫>{ښnEEEʂ UիʂV=xw1;CpMo_Vh'L~u744T >! ̿III3fƧz@Hݮ5Pǣ̚]o^OOOw:"rرq]Θ1n*;sƵm[UZZh䓦^\D{s.]*zArU͗6=>>lnh4- ;fEEgϞ*VBCÇ.ToTܶ_DnܸHg@Lʚ m{Z5Y=ުn~W7Zᚢ :'~#إOUViGC^S6iY~}llby7F5;wo]\\%wqP<qqqj7n(Zfz衑#G[뭷qD!Ct[XkW9s u{2ztߍի?ḫ׻^xWMǎ}e$HM*_w 1ðm_QQ?&CuvzCW3L+'k>} u떔t'xbҥmp?xюWokJAOK: ܭ[>|+WLLL\`QZNW˕%e122RD|z~yeҾ;vݻWw!88x޼yͼ툏 [̴xkW$s1gNGJ/[ Vjz^{6pn"$%_HsZHty>>JTc᭘՝.\{nsm GPD,KM S@G!P-""_o7n8a„y=7̭lbbDѣ^~Fm`|8lXLwVk;Κ5+%%b3w=qĚ5k:UY[n }Ju^3;V=^TTvdd=gFQF"m*JKss^ ]Ѥm^ƜWO=usCKT{˗[u2lFaNLGFN[Qj4#]-Kݮlu%n5@[F|4 iה;޲CrfHMI -#?x-[9r޽+Wz뭸o 0+"۷#ܺUDFۭT5h SNUz$$$_>;;;44駟>tPjj̙3[sDa8&M*ul_iՙ*ꕓ޼ɆܔʂNÇnj@W-{ĉKlkƦTwXY.wBg՗k<6آƎ-}Gee¢#hL&^jUiEEj xhڵ(WNNk9/]ˊ ] >\ԪǏƶk'''O2\/]r\Y?T&&4mulKt:W_7\DNi""C9thZeEm|SXڕ_Y޳'t8 yҦn-W{9w?MqW8gO՞=UaaG16\8/6H\>>ސ^%"˗a6zhR֧O=ܘ,7oԩD$ g6*q|bb?Ѷc#7-ϭ ef+MǡC%5_|ҥ~ADW^kn?Ǐw\<wGV.… 5w*ȑ#?3ngDGGwzCZBGЛr{Mҙ [)(v}?4'&juAjNHޱoƼ]w}ʲ>Zv[ڬsܳuVMHH5jTHH^!!!'O+[e0{jz}PPgΜ]RM8q d2򗿌կ~Uw={>}z^n7Zm'֥KYfEDDF6}fȹ4"6%/ cJ2& a'udqqq(9vٳǏR륰;mMqGh9 CTh'xtHChNn!p!@!p!@!p!@DvGugh6aȒn<000)La S)++UP1cư4ᰃmdI0)La S鬷lpa?@8B8 CB8 C"gYaa>-`v/o!@!p!@!p!@!p!@!p!@!p!@!p!@ѳ :vo!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!pþNC?UY,IENDB`python2-pythondialog-3.3.0/doc/screenshots/dselect.png0000644000175000001440000010267512507731135023033 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy|SU'[}coZVADa "u'"2PPAЁ,S(;B%m&?nICB._fқ'1ߞsU%'' ժ܅m!@#eɱ+pKoN#""fR?R؂$+|ܾ=Qo yP[yp|[+t] 1כ%»*CLZ 7#_""*_C=nd[W n_J pxprF~@-~"(!jf̧ޅܧYSqقv ][-@1N?Q¸c:Y+$e (nǥn jY#I7칓V6\+:_i^tŬ˯A*yQ/>r_.9H吿|-ch)!"|#$'P`a0}(}$)HReST׵Qj)({J>@Io}[~5;KyL+ SG~p{vwtg&l0O'>*ɶT%]2 ^,y0Srm""Me=6;EyVQ"6[NCȷײ_/ >t0ιU,g5מ.H%>ײY_\ 9.Y]XDΔг)/ydkOQFͲ,id^fy'uʭR5saoV|V;J7C牌)tI6_Ssmh$^kgMl""ު>6;EysT8,`=yP+"-+${D/SZ>5!jzd'&:mA-"ҡuȡz)˗fYQ.Z מr[qCMWgkqt^;\M6Y|WQJWZc?Mʔ"7HC rUS?Y5Z\*]̵}H^J[Cwlr9$D-| \įEMWQw^EW]9L[a*<^KkKDuU(WTWVmOK5"]`Uuu! ׋?*8 +sutLZ[-_WcMǐ\KyM/c#-7bsVisrb!]\ySDFKMUs^Xa^롕ˁbɵLkuXiٵ0}Fn%Gwf}-oMb`L+j?FDFHl~3s ?R5̅>rV֔K#_ zV'F$OU8`̭ݨcMr OSDF8oT,tHorU+ݴM+#N3ʒkqT%I&{Ut]:ZC$&-qU(|Vt:O~\Je盭3XxaJ:]붖ʝjXEf*H?{+t"J,wJJJ6tl)C~2KM2l,d^ &ilާy2$[~1%˜>Ȱl%̒dl0˓YTee#S6[$&6`ΙrZ;XL6bIM˫9}n4KLYod[yɥj͗v$Wl'r<_ȇ.RJ'lȔ%&9m䋤|Y'OdɧUndVű4rؿߝ""6wۋzϵ)e]] l9,0vj2vS'=%L]xȴɵNncx'=d`ȿsvep=Jf{l/$YG%ߚ$vUJ8l^̓rK߶L{u#nkJ}6ȉ|(KѠ"J'4RKJ4*I|,͹ ,H[&>ɨve0xQaԔ!*9Yk6xx؂ P- ׉HzW_JAU@U4cF,yÇh%R]^VgI A˃ۯz^=Vs6**oEyzڪUԫgn.'$L&;[cryܺu=;-Veg{\}Oze*w5h`QHN%nlM~m+`CU&7/WDMQ8_dܸ+P;fJMl}n%jն5-8ᙝe G?g fM=v옭Ç=Wh335J@KÆʮQԭ٬ڹϤ$m^c 17j5{XϽ{.\Rk4RIsjִ>3S~}ɓ\UHw̰bK}ႇѨ򲅆ڷ))qU(oKΟؼժj0/<<_;mjѾ?ܞ2rNzg=F5$2lXVkst7=V |]vmǷ޺gu( QϚUj)nuk'CNTvJr+hT׉Ţ sKt.~&M Sv/_uܒNJ8u=~~6vUfjŊ#G<[%1Q۵gƌĢW-XP=)`/\X0W6fʪU[RzzliHsL .5"svѣK[X=t.ߑ8ڵJ13Ss΍4\:6J5=~SD4TlrpK0$C(jJֲZ%5UO?ۿs@@SS5_]-/OV{r[2)Xfj@×o sv9mCCjuF^^&i$]~**꺤/_轼kx׺un7:+]zիF:*ʷFL?{)]^RH5kZuSBjhȤѸylo0UGsO߮]P.9pKjv_ePD wB|Y{wV)_Z"fͮ]>ݺe)m5Ҵiw=iΟhРtqqz{ώڲ;v8~9vu7\rǁݗڲGxmS,UY>JϜ7HKDG5,ÆԬiIN~mH]>.5:s.uE~}Ӑ!>>M~pX f~I fPLMwϪS,":jJ ٣G$%i?sNu( l"ת\6mC ^Fck) á-|$8<$$ܱvB;wYL)y{+?Z'uk޽JD9zy\M.^O]zlVY8|{IMdg}| |} o.ٷpLf-x6m9왡VK{͍Qmw}t|j,ϛW]Dl6ٿtq)Kow>] J }3rڨqM5n^;nc/PvrQ{{[甶hc?(/NCHZJuT*-˽J/\(hdժuj\bb@ٳ}xoLWϤ̍pk5m׸q^XX^s\ _cA ȷ+iё9KA8x[//w 5m\j\uJ]zkղ8Բqfx,Žҹw ݔF_o_U{vÜRTsۻf͚w<á(^|KG;T*ժ׫g_rOmrkb^>dRYVKR .1 +36V<Ţ:v1OQѢE{*eZTp:>},3`k``ӷ6.5"s.=I(ߔutHt( T Lyȁ:X5ÁC{˖-s`0xQ1a9p (9TWXVJmk u31<鵋>?+[<|U\^Hn4ύݸP:Wn7TRnqoóg=4ܺU켽Xss/CF)cd|}WTnyw矅Sy&58w9Q#GPeLpp~6Ky䑂u5.]٧hW4u2vk4틋ȹsc].5"+}c.i֑#:ҹq 9Yp ãpIRerԮm 1 TiժwT̗WV|m2LE jg K;ٰt$qi7\նm!}x2[2;[g5U+}lEV?lT _KH\}KϾ|]@vjM.])9΍ճg^c ;/eܮWrƴRU5$ĜxݬYj԰(C=zd*"۷ٳ[DuUl~~ּ<}'No n6G:Ul$֭?bW$)IkH]F!.톫5ʻ\TA*h6edՋw钥,ykzzZss!2Wҹv^V7ZK>1ZmWi$$~)}˗u_~Yݾ'jrmWKƁm OMՈȑ#gUgMqln]s{Vm[@9#zj|c#u^DrsU;v\nyXϒbQ]qun<8l2E˛ٿKӾ2n\J]'L[4X?6z[׮Y,rsgs!<]Nўh8Y}R6+Km4u:[j&Mtwo7a>c2SVKT*TQZe=!^2p(GCPi45vj׎+X@E!*k׬]T! 9`R@8(*22`0tЁRP: ?KmFXN: 4e˖w؋xbN:v[qONNNNN>r…  ծ]vy;w[op;\TTT ӏ=jժk׮^:%%eɒ%%=O>}tnt/9N5k>_|̙3E$**jժU#2|VZ… СMWU6m`Ply[jֹsz+77ױq||ӻuָq&MO?)gϾ[ݻwoڴiÆ t2uX{%KwUS:{l2eJnm6bĈ֭[7hРUV?-[]-Kضmȑ#۴iӠA{キG'O`(_L+];xÇ/_\V-m֭[WDN>]W^=iҤ|dzgϞ={vܸqʖ 63FIS^^^&ѣG]vʕ+U_=}tŢgΜ9sիOl6GDD̞=[٢:upž={'Nh֬rl>}<裋/VT#FDC~m``̙3Ϝ9'o]R58`6u:u:ϯ_~e)9x{{+7233˥3f؃BRi49s޽{Ed̘1NjҤIӦMEd۶mt针L:՞ WfffĈs=aDСCIIIn@Z ///X,Cufg۷Oy7x U߿_Dj׮m=+ʋUqԺuk{5k]j5Zl:x^xSNaaaE33we~7Wlʂ2W\%--MQtѾѹ@Z ??O>d̘1qqqok׮_~O?ZD8]'>>^QvL}z Uqy.q=zؽ{wq7~7"#ѣG-[Q$%%)ץ(e{{|-/:"rU[mN5~~~n3x`ټyƍ9wu։}W.#7֮];Uփ6mڈ˗w_cZDn7o }ZDyorğq{G<Z&'Nxr["III 7h4/rA8ĝO< *6T@YqWKLL,j՚p7VK;쳈o iLc !2"pPN[H@ .hz㖜.ƥlYu٥1iL;1C8]K.˖-@QV !p!@!p!@!p!@!p!@!p!@!p!@!p!@Dpd6^h^&X֭[*- w Nz}||>>"U#!p!@!p!@!)22`0tЁRR xbN:vH5P @ ]M[FFFܹSDCӧO>U[.\#4jԨe˖Gpo0}Y:t08(iA%K(sJgϞ)SPyT.7l ":d2۷oᇋm߶mۺuHRRӧKVZ3 9|~3jX,p\l6?{M^^^ZY,_qO8Q^ "#C:Vu5i4ѣGŋkͩSƎk7O7n˛JFs_uڴi˗kժtRJxĉ/^Tn+HLJJ4hɓ;vOOOٳghhh``wرpL|W-Zbř3gfO<1mڴJDnj2vieljժvڹsڵ+!!… "ҪU+ B8oLь5jԨQ\""qcTT{{ҤI?wsa6wСmp+֤IIIGn;L+tR^_~}oZ͛kbwL6m۶m'NxjmРA=թSvD8/w 9CB8PF&L0 &L5!p p!P^x0mڴqƵlٲQF=z7olvl{ nݺٳ CV]gϞ}뭷w޴iӆ veԩmFڵkǏ߳g￿Aڵ5jԖ-[nl6'ݺukԨQV&Mtb[O>[n7nҤI^>Ӝ[HK Jpʕ}&%%l'N{~NS 2d޼yNڿ۶mnV^-"ju믧OnXDKן9s̙3W>yO?4qD嶷K֯_~#F{E=pСF[rC6l` 63&77Wd2=zѣk׮]rej8Zn F?ȪUN<7{lN_ۄ="𘘘ϫꈈ֭6mbٳMN:{{/88رF _`bcch/^vZg,}ϊ 6-_ܹsǎ4i?~tlvѣGx-Z(ۃGn:`5j([|}}GsωȚ5kԳ";;{Μ9ݺuS'OnӦDGG;6>}l3gNEDui…:_=q -A8*ChhɄO?ݻ׾ظq}cnnO?$"C qa۶m.]ST*g^E(OvgE v塇sٷ9sFyJ0vԤIM9Zn 9*C˖-?~cǎF//'xbɒ%?qƍAAA{va"Rvf͚f^_oݺ̙3 dffgiԨe2++˾e߾}"Rx㍢=$$$pTb NOOOKKs3,Y$::ҥKkזksJ|I]\""!!!ف?S+$$QF"|IezV]HFшfoIJJRܹ~F#G -A8n1$"-[{=z1c$%%)9)ub=ztZZZ۶m5o~ך5k^}U}PջA89@eHNN.1%%ED+ҬZJD֭[;&:2o3>>Ͼo߾/Ȃ QF%JIIIN @e8tӖ/H\P5N@/_\UԩtW gkNDrsscbb8$!P7-+W;5|'٥Kę3g:.p<_DRSS08e˖쒰0%vΚ5v.\`PV!d„ ʹv%22>#G3 ?ϯhN;HTTÏ?lOKK[|y~-xooo6nܸDe֯_?l0oo3ftGDD۷O9h4ǏڵPiX 111 5JԩӸqm߱cdž ={VDz꩒ׯիWy͛7o޼Keffl6{3??~{ʔ)[n_h4ի7iҤiӦݳڴi3c޽z+##>>YP9*C5~zִiөS._ãGDj׮ݥKq*h4֫Wg]fcC.YSNF1$$_޸qHLYzvU޽o>f̘{#+++((cǎ'Oߊ@%`$AJZJ۶mzJq5j4s̛vأG=z8m yܹs-}Ĉ#F(!5k|7|M C*ڵkסCT*UY.or.][o#}l6 QQQ"L&Ӻumֽ{wJCƍ-ʕ+O<'xxxݻ_WY7oիW^=f̘rGEEi4qqq'NXfϚ5kx+*!p?s"h|I&ȷ~Ul6/X@DF9tPN'"۷y!Pf͚Ng FDDhܾ}{Ȑ!Co߾iӦp(t}T*-5k֬Y8qJjll&M8ղeKJp .icZZZUelI1!P*E3XQ6B6E8 )g1((FիMɼp(t$"͛7oTx={CDrrrJjp=H^^ɓ':to%\E8 %%%)ה[rtɾ~"r𖔔qړ:uH|||Ie˖5j+V8n߳gO\\o%\E83ydٳEd6]vɓ'+㊱#G:uF7Ehڗ_~YD.\d޽{_}UDAK XxҥKEͨQvڵiӦ)Sz>33388x?&\B8 ϳfڲeKFFF&MM9_|f͚_'O\l$;x5M&Ν;? 7Zj-:}r~cFFuZE-ZrʳgjO:uɒ%pJYذZ5]_ TxӖIHH(犉0`@ݗ-[Fܒ^P )*YrM8 CB8 CB8 C}ϖ 22`0tЁZඦ@yN:uؑj2 ]vvsN!r2ӧO>}nws`b|+W"8p %%ED ⸽}M6-c^^^"bXRSS)5,! "4itW˖-y˖-l6SNl6jpHZZT*ع'|ov֭YfC Y|j"Xp=zؽ{wq7~7E)P9$((HDҊNLNN.󋈈u֘͛7nHP{D$//ɓNw:tܟ`0̙3E7_Vb@ Ҳe5jȊ+ٳ'..bL&j ";C@Z/," .\dꫯ+W@9Hꪭ[W㸥zuM!C<~|ձj #U+MV_D={>۞QשTyy6o|"" LPcGmǎѣ}f;o˥v[7.U>ݰ2w DEڳq=kpϰa\*<\[4thv^^%pB8DDbÇ5iLݶV)W_y;&CUl^^*QnDg{9:;23mNYkT j__noV67RvCM0 j\Y2>LWrLiix)+WluxoYD[ڷ/:u_L&[vL+DDz,Hz+Vڵ><{4{/l.bu2 ᤦڞy&';vW^P~ܣGfjiժ/f{ѼrAp\޶mFhh3dl"" 7yxȌi_RuӺ] ;OO6m~j1=׭<`'[ Jk$Ⴁѣ͚$3sw=sذ{wF_J ;! "b k(|?_89)7צ47/}m}啂RС(""vYG#":h/\W(ˑ#Ŝ8i]toљ>$zȢܭd[۱Mi߯qC-׮XN5,9!x`RSmj7ضoU&v蠩wE#O]:jT_'"n\ظV!']^Rvx'@UibQjjalslxK(}]h]/\(6("" V2>(5?׿뉔 eժ*qWv|TC+_7֭ިQС}gRT- G&.l7ɓ*UjIxR F%%Lݺj5]+_p"A8=k]4hPʖ8] fj֭v_tiذMJKԸBQzwsPWºuU攊ΧZ,V}{Y.@^=QG,)\?P.]Xj(~òej4=TjV߿n4jފ& rՊ0_,cҥ 8^kW]I4H)S<ͳ8j-4mo-guL20+|V\JDR?-{jٶh%&T1ei\( g񆧈4k9~?-y[8JI;gm@-"Ν 8w`=ѱA8 yz|PmLIMltj9|x*<`nZ-J2UxSz時GT]7عK+7mNr1CJ wxjӤI9>jO>)]WOm?AC%b}KeUۢfMuP*'v3ϙJJV_uÇx@Sb?oݺ2~ۻ'>Wy#F;u֩Us{X֯7o`vqV,6,;2l{Z*KO?ͻr6|GV`G3]B,"ժV*[|`NHH$$$s 0{ˊL4x/pE_! RxOQɒm‚4!p!@RW!@!s#;;iӦ[Zlap\'22ŋ:uرc%?F?iBB~n}@u"##w)"===W^ܞ?3~n}@8@8YdeNٳ LRQ۶m1bD֭4hЪU~˖-E aڴiƍkٲeFz1o<\>}zn7nܤI^z}999m^{5sK/d0^y7zsU #Gdff֭[ޠQFN裏̙#"*?%%eӦM6mzWNZ)\ҷoߤ$vĉ{/::otn ƌ+"^^^&ѣG]vʕ+U4{'n۶----00б͛7+mw Fիk>3:vÇ."yrEdժU'O={N/=:77w;v8uԩSVZv^{޲cǎ5k4E_nn?Fc}g"ҡC?088XDgΜٵkWO}ܹs;u$"Z6""b̘1"`'N>l6GDD̙3~":upBN믿8qBih'"?S'ʖp ;pMfffLLJUV)%ePM?^.=fPHbbbI xYtӌoVD>hD$>>~sܲrJo߾}gS򨒲VXXX6mDd֬Y^ … E#cbbbccG)u32!p_D6nw~7gӧM7nܸb5a,>\,qȑzhN:zt!3ftGDD۷OIF?~|׮]ҠA֭[[qY,MtR3,1={*'wر6=z0aܹs/_b ??L*"/Rxxxncbb k6pթSd@@ >ŋ/]Tٍ6mڴ?رcwݿ^啑쉈8]QO8pѣRR4n\}@!pZj]'YfBB¡C:__bE^{dɒӧm5~zִiөS._\9OXƍ7o."W\rJFFS޽{o߾}̘1{GVVVPPPǎ'Ooy{{yR e鹔 I,XZ;_+/$$D*111 ޽e*e gΜɛ@E%_! CSTd0r!@!KYmѢEU#!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p-%%kŊ81vmrhT:qYD*"ReҤb5Uի{zZ6"kڀҴLJҮX֩Sv߾jf!!@as!Fzj|l~ҩ' -ZM<#fS-XP-'G-"|]*7jװi~ӧvoWf:|xJ:M}w3nppkxzZkvNk'Nd(":d;աCvǎ[bc=K6%E+"aa L"ҽ{Vt*iiOv=Bbb|֭w`>qɤUOy#UEfر!֭s8PDڶ5nꗙ;f^>zs+z/A8*^١C{x{[_zʕAyjaݻ}Ξ0]f~)GCBBB(HHHpbILr;4bv5-c^IMj,))ڟ~ /MZ6t8".b4ϝ;縅(8}jj'q5.N/z4h`/eKNٲQD22Կ`G8))7_&-MRnoX,rR7:VWT٪.bX)ᇀXO9sj*UFRmДilVm+"aayVR?Wnnm,R4%3#6VY,HߣG&`О=; 啫-Zzxz[˖W^R1rp+=pg)ey5,ÇEp+0r !p!@!p!@!p!@!p!@DJHH>@YqWKLL,j՚@cӘ41oUCeD8] 㝶rA8]Dz-999"]Ә41iL[@!.ҥKe˖Q(V+CB8 CB8 Ch)@0 oOT)!@&L`0&Lp_u͚53 aÆ ӧG3 }ϖ 22`0tСG(_ڴiww_uĈw ߫h:^S~}ޔϑΝ; KWnGJl/BDF_H޽?sOOO{===W^ܞ?3xS>GFF*cǎU+ ??ڵk(?7 %_?~\DX4p QZ>}ɟHPJL+J矋Ȱa+"޼)HHpg#۹s=<<^|ŒژO>[n5jժդI^Zlm۶1u 4hժ?e6/`ꫯ^~尰:|ƍkڴiViQNOޭ[ƍ7iҤW^~iNNNY^̆B9?瞳oq\={oʶmF٦M {=zٳeEV,Yf)#vSLYk)}ϔνY,gϞaaa/| ۡCuiFڵkǏ߳g￿Aڵ5jT)a ??…}য়~8qrҥKׯ_~#{(7l`?~G9qѭ[j4o%ٰaC\\ϝ;wرI&GfQQQgyСCǎ;|E?W8 9|C4h`Xbbb?>`ٸqF;x;v:uԩSV ;~k 3fko}_ j5JW^5k1ȑ#:xϟ߾}tonzѢE111111 ,pzȺuMfXziӦSN>| .?ȪUN<7{lN8PHddcbbΟ?V#""-zYw qW^~~~۴iӴiSJջwo>}l3gvNԩ… u:ݯzĉ+lQ}>pltӧO T6Oy`I|_Yv?}l6O>]D}ŋhB{yybIMMuuf̘^7^Ri4m.]$"SNum^zP3~iIKKSbc=痑8zO?Ȑ!CT\ʞ)ۥ;p@JJJҾ}{s, eG]pXnmp87o^~~~nݔye%)z,XoۭZrjܺuk{ܔqTn؇>'"*7TDBB( ,wnTܲeˠ 6xoԩSUbO$ۿԮ]Yfq liKhhh@@\'Gnܸ1333((HX. :K3stʣz}&MnZ7\z>z瞺u*ǏJ(8v예xxx;paA:III7ț]Ekrn(GeX+ co8\ʚ2ey΍j~>1cŽ"Ӯ]~=2Ƚe6$$bOU NOOWL3,Y$::ҥKʅ˕O>dW 㹔=S:KXt,g=!!!5RJ|IQ~(7xͭrpn/C:_}U^^^6mջA8_`YGw^~;<qo rʼy 9-[{=,%{VwYeXFֶm_͛7ߵf͚W_}wܩV oEW^)+4}KeIII._`%Tå}󋈈u֘͛O6sTȊVCY[eժU"n[{|+w҉rQ޾}.^(" ,p*TIWD5/PeR)?7((7dff6nܸ!)7oNw8p@a_%ڵ\e][yxxHNNNV}6 sQ:%(Ki6r=)ۥ{D$//Er˵ԩtWI]UG ^Çn|mp0L .ѣG5)X[tjw}%]”o*fr\… Nk+:RAǗЍj~-҃8-F.](g͜9؅ӹmn9>>~sܲrJ/z5pXOOOe($&&Vҹ]-[*#Z+Vpܾg+߸_DRSSF 8e˖J(hժr{-Y*k!޽7PVVHOO6mrӸqyƌ:nSc}]vu[@N:zj~W\\>-55VVG~]:wÇۗLKK[|y~~ M0A9wbDFF*X9rb49R }Ar7n,;){jڗ_~YD.\dWo޽jwlƍSBbY~aü+@ь=ZD/^_+:uرcKZL>7\( ""^z:ѣDŽ Ν|+Veff*u~饗 ifcǎݽ{wzWFFOڎK)T 0a|xK* wu.f۾}2O?~xׯիWy͛7o޼Keffl62H111 5JԩSIicǎ 6<{,v5\pN;v,111;;vڵ6lXΝFѭ[ n۶-!!h4֫WsÇ/TFy֬Y&iӦ >}|kҥˍ;UڵkΝk׮ .Hq 3sV]hѢEV\yYVۿS.Yh㢳1M&ǎ :`0̛7СCF1$$W^Ǐ߶m[e~h4jѢE+V8sl~'MW_0fEnnS*\jX->*|Jt{Y 0{˖-+A^=:~7x㎬}~~ÇϜ9ӥgӧϡCƎ;eʔtq}w/ӫ`(}c>-G+KoRxOQɒm9lٲѣ#GU|wu!Ju']Uf:֟P0I&5nܸZj@*Kz-yGׯ!JߡCeԿIIIGo RӧO>@*ѣseosRGddҥKz}Fc||j 7o'shL++Wv?QJw6mZϞ=kժuŤ ⋛6m*A'hѢ7^z5tw_|_PH֘V !p!@!p!@!DDK p7 qW1ΝsB8CEvC9m2wFMqWh׮]\\uJj!p!@!p!@!p!@!p!@!p!@!p!@DUMHHE/!!"n!CT=͛7wbZ) C@D$33"nF8DD6oȑ#Ǐ2K⦕fddP=X@8B8 CB8 Ch)` >H#!p9E-Yht>+wգ8pbnG}盐vo:6}̳oW6cZRi4Sr)gٲKq 6^݀inWܣ .hɇ{ fR&"'O62+?u[@9c{ w Tڴ{QQ*??0r6ݻO\Zx $$=pɓ'/_l4ju@@`h޼SJؤ\NX~{WӹWCPm];ͨQ!C 6ITIv4yWd?۹S˖-[zuFFFS80nxtU릝9rd߾}[L&SJJJJJʉ'zZQ?SFFcRR5j86X,[l9{}jMNNNNN>~#;ܺuӧ[._|cǎ'((ȍQQQ΀y晖-[rie E9kE?$M, Ǐ66M+e/j;?^XrINNΊ+#,Z(##yGYE/)}j:88~aaa!!!jZD,KttV0 222?RX?éYttc2TT8usN{2tիWQ~ڸqlvVSL,YҧO޽{/Y$33n/zH;jtޅ&9ٶji2> VN_RSm_m6tְJDBB ]Sζ޲Ke/A5kD{5szߛ󟼭[-6fÇ-[f%0`bJ2MFcһ|ڵkE$++˵kvzjm۶m۶m֬Y+"m.]t)^衇6lhFٳg9boz1vXXX׮]yNcǎjՊ=s=\llʕ+ÇO2w߿>۶m[*-TEc_yE︶h'e poAqS-6Eh~8KYݻ-w[&MSs?Q2dǐ!O[>0sK>|XD4#<ѫW'ٮ ݘr+Wdgg[,8R4z{{mVV7h 66VD,=d>^DΝ;F8T4o|ӦMۼysdd͛WXbŊ͛?O>d@@TeCU;xUU˖Μy; xYj*";z≟׬ Xd fՀgxQV+aa3EuҥK"ҬYz'y8zҥ贴(Nזq\1^|YcOv6))IVn~Zc/ij׿MNN###;c֬Yt #GW0Yskavv:kuڒU̎x z{Ed֬ww~DvmZZ-5j۵B%R׿~ռ헩egߴ紴9k(Y,Lju(뚊MrrrfEGfj\.VZ~SSS2P_EeKW_y_w*W]TORIڪkm F_z̙cq/˨I~+|._{2>Ν;gee_zzիWMzʍsnÇɰf͚>|K/4|*X[IyϚ5+55Cs*CUQ^Yޫ5Jsժz8P7p.=ݶzi2oYX=߷NDT*iJS7xym>ȿ5vE";\tpvve\N>ۖ/7?y/("<<<<<˗/ܱcǎ;N>x|P*,Z5Mݺ/IW\ѣ/K1xS^^^ʔTВxz\% ""ԇS᫶nϞ=V| 6nܘ >FTQGOc0=LvTT#QQ~.|WEͅ#lCzo?CIOIڵ^{JgVxm,?]N+ o~o={d !*-/O_#d6n>kVnbb4ɳ=*lW^ѿ#h~s䂧rŶq㍦h~/ۯY͚W*zǎ__m߽?m}Ǐ׵l)Zm3e/ZT#:Z)" 6x_I&24$$aÆʘa^^͛U*FQ+/Xzf͚8qBDGVm2QSYzWիW/_XӦMPQݻwg{I bkkך a|co3J'y_~W~O[8)"F};w'*nUL[GٳgϞI 5Jrs3?ȴm[ʶm%=iӦgΜ?Ed2=zT^^ .}wof9NdulٹsSN]LEi߾ƍjh޼rߍwV o5}4sKVYNIDATl?d'k<%Vgڰ0Jԭ5p`kju޽|իkZV[zΝ;?W:w޽zjРZjs?RkҤVUTzz-Zի}Wu>cճ/isӲnGdQ.6 TxӖ)p[3(-80`@ݗ-[t`Md6a CB8 \@*C@8 CB8 CB8 "ZJ&$$Ƅ*T!nΝ+eK՚@cӘ41i\6-##éKkQ`x>@!]ʖ999oOcӘ41i0Lƞ=QZ)p p!@!p!@!DDK p ^w0\!p p!@!p!@!p!@!p!@!p!@!p!@!p-%(.a@8B8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 C{vh 1̠oR1*a$H8 q@!C$H8:of-s@ϐIENDB`python2-pythondialog-3.3.0/doc/screenshots/infobox.png0000644000175000001440000004431612507731135023051 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~H%IDATx{We/o2041@(IeI+"*Z[t['KQX&趠P nDG;31΀ͅˠW7̚g}ھYJmذ!xR%#Rj1aC:CY,#opHڔ+;"bAYU=CVvHtxyW߷t8+E-<t׀oLȦQ ˜-!ìPח myDDT@͙w޲vu?3[(-Ps^e@a=|I[ֱu<"(>׌Yt͎x?.of6q>}tV<Qk_/xl_ȉ'ZD& ʉΝy22d)qU׼hWQ^1yd?`J$cH>IřF1I\-}***ǴFTLG<qonYM*Ü(>YсVY;+oVYU䟒^qALvTN+#7@6tdqg8>++5Vu2&757˶t\Q;Ɣxl_֪Iw`h=F Vr$íX;֖qY-vȊ㵊KgyT8(|Tp$֝rS)T1*UjwiSqJ߃+>Ìq8wk5.߱[jX_Ѡ_cb\܊-fS9^ #}f[vFMqxwo{j8"<_7GMd{lϱ(]Xn6ۖ+co͊34[jh.ofUNʎoU|1$o[ܧ~8{랤wѶ8ckLGDtɪ#^Y{3OE.GYsG#YqCş#my٭NVJ#l(hͨU6"cϠK=t+tlhJfY1Y{>Z <59*Se&{²8gkY'3fV%;5Jե?1ۛ>xxilM7gNo+*sLVH9ww2GڡJ)]ޕsbK:PrG5jϙՀ^gg偻60?9{vs\V3Uٞ޳$,/XV~s ۤb`Fu'yXk!& vGNhEV*]~~FGJ^V[XW*u 4~_h\a8hS[׷oN{VgɊh5w^N?-*Yy{TDov_*iMblWk|xϓmSѷbRuFy{Vmmz?N/I?ХV R)SI뼒60?wK4cK:.m|eOWF5Og/vy9}eoFQ:J#M8OƀײؖY+Cm[+Ż8;ұhw\#l84l!ϼTj;zmGJtX;F+Et"=lߕ##6cW|a[lg6pڰaCDqD-f-;YLh1&)gm>ӆ ?#59+FWł44H!!!!!!!!!!!!j6Р67PP8#p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@DD#%fbEf4(FhҾ}{E>z-E_!zn=ꨣhC`?΁:k=GyD}N8?rssl)//߹s`Xre- .KT8,XhB#g۾}{.]*o9SgΜ2Pp4h/ү~ nܸM6{ꪫ5 3@x$w֬Y+W?Nr-/ApUW-OV*h=SrssO:xcǎt;P"87nܲl5h˖-s΍!Cf7i_zDׯl3fL~~1cJKK~uԩ[ncǎܬkN0_~ '0pg;vs_[VΝOn߾}ԨQ]t֭/5o޼aÆu޽cǎݺu+y`K.B2;̯o<8UW]?~u֍5SOԩӀᅥ+..6mѣ;SN9cǎz7Y V>W_}u=:vx'0`ܸqg>8l Pj43@Cx.O>UJK~СCΝ{]vM2`̙999[Μ9sȑ;wf͚ꫯiӦLrGԹwqGIIIyy\wugyyZh~[ogϞgqFOӉ'FD*jٲ{O?\s칶Xҵk.+u:s1t`^$^XTTԼyt:bŊsy衇Zy?]wuܦM3f̘1cưa~V} 9m۶MRڊ+͛`:w0Uj4!ɇ;W-63g\r壏>ze˖;6"/_>}͖,Y2bĈ;w<_jժUΝ;/_;N}z޾}_~cǎeee .={/䒈5kVٳd}`ٲe/W^/n{֤t|B׮]#bOT2|y^[rwޙ3gΜPJ,ڹdɒ+W&5;;6mZׯ"bذaJAAҥK/_>iҤN;>8ռ h(3#Uf̤|۷O8_~YYYZ7n\="bΜ9M0tȐ!'NLfNNN߾}xzjŊusss=zҥK*J9W\i<"sm6"Zn}뭷s9q=yu8뮻52dȑ##ZK/ O|"ҢEaÆ]ve?,YRZZ3a„֭['.J8hhCPjp@CT\\|hҤIRTƍ#bUرc2:묈XzufoK/ED$*;ϟ?=o׮]ᨣci}ǭ[.\0".T*Uy_~yDau;СC~*oW6mJ*P[-]ѳgϨ6ݬY(++۸q`!QdHg۶m--T*u 7T[oߺiڴi!vJ~,,,Lѭ[*{޽{Mk`MJМzUtСUV7o^|y^Wҭ_7ͳ>olݺ5NΈغuk޶ifƍꪫ۹s}6sWjp0 @C ,DĮ]*Vt:4ؼy*U}d$%t:|Wq:ʪʏeeeɏ6mJ>T7ReP{֤t M2͛7g[+-ŋ/oo߾SNIP߰ak9#{gȑ+Ww\z袋dADWI8L@ڰaCpaÆ$TU5w~ȝsV=l SlĈ6mٳO~O<1kz `3f2gp_V瀆(3g֬Y|ܹs̖,**2seᨾNfKx o|N-ZoF_9F^ 2~g.\8x_Zy~KJJҬd}]ᵪp4D={lԨQDT[%++wus^"bΝz0ʉ',]WK,I>|3iXe.TXXtҥKU曛7oO'}KkU䩿m~򓟬U Wϟ8qbr+KD%mڴ=Y)G}Qe˖g}vDL2r())yG#3Ψ۴Ν;'/iƒ5kϼO?="~*z衈ڵkhj*"֭[WW\qŅ^xkk׮}*o2eJrTs`D$)nڵʇ*]˖-#bƍU0,Y3T}]#KSH=`ii+d(_W՗),,Lf F H,YREEE{y5sP[!@]wuTjڵÆ +,,,--]r77x#J%oi[n%''!C-Zds=sΩuM$/*X` 7ܐ=y'5jTC>SN9%"f͚UXXx/1c$敕M:5yEW_] (ѷo&MG?W8yN?t:=jԨ$͘1/lbʔ)3N7nx7'o>W3X^^lo~xm۶KeٸqVi e˖-ƍKp_VhhWGiW^ϝ;b*WdcҤI^{ .&M4kl˖-ǥb 3f]w裏>cyyyw! >|РA 2iҤ͛7wy:tH tJoРA .җԢE$/w_UVcƌ>I/u(]^^7|7>쳽{nݺuqq]=رcǎ?zϟ8,:zK%cǎV_޶K.^zO>9}ӧ7jԨSԈ#nTnWu  7nݺWq֭[F}aϟ?<3ϬYf۶mmڴҥK߾}/⽎_g1yEm޼uݻw6l؀knڴiwu׋/[o%Ugc02dGO|m6gΜ.]|K_>|xNNξ~eԨQGqɓ_-[ԹtCϿ{ ۷o?pѣGϛ74hPNNܹs-[nݺ۷}ѽz?6K?SO-]tݺut#ٳW^yYgW:}<ƌ?f zZ)@L:7۷g GpP#SN}"7yyy;w>裕䐜AjK88 . .@A8\xhxz?C<'|r:iӦ=;S:vثWo~<̾0o޼G;v< 0nܸٳgWn.B2;̯o>}Tn!˙d)--{שSnݺ;v޽>שSSO=uĈk֬я~5I5*76lX;vح[+z_[VΝOn߾}ԨQ]t֭/{^v wǟp ~cǎ:ׁ; +Tn?>??p+[n;wg?{M7ܹ^TgZ)viӧO_dɠAfɒ%ѫWT*ӟܦM3f̘1cưa~V?ADRmۦR^{mŊ[`AYv2O7+[nС1iЩS*{ٳgҠ_N:wݻwڵkʔ)3g4۽{3gFDNNNIIϟ߿H?8qbҸe˖O?O_s54;JJJ;3͛עEz={<32gΜ9r$l4k֬W_}WM6eʔ#8v!?^HO<1vݻw'??1jԨM63XKʌ N޽"ŋ3-#";;{РA%KV\YXXbŊ>i*o6l+RPPt˗O4NrOTڵkD k{!չEEEww>y .\|43XKʄCI8 fҥq饗 '>liѢŰa.첈Xw,YRZZ3a„֭['.袟`o>q~eeejjܸq=z9sd޽;8t#F$5ݺu/~̪ZU#ҧOom۶Ѻu[osΉ{J%#=zҥK*:#bʕ&L(--2dĉ;۷uQLŻロoKQ}NHq Zm8X ݸ[5(T*;;:\TCIR?dɒOSOmܸ/73NO>$$֯_g}7nZyq֭ꩧifƍꪫ۹s}Sm2[-[7NQ)kէ5Faaa2P٭[*_eRzaaaњ4iRî]-ZTnwz64 kr!է;w'˞:\T& i/^xȐ!EEEwի׬YsVy0"/^|emڴ)"ڷoߩS|Æ ZYYYs=#G\rw݈h޼y^.袯|+YYuJEU:E16mT[=W1U5FđGYe'-U3|c$9t:Yrp&R}ݗrpPp4DפI?~ß{CVyబlĈ6mٳO~O<1?\sM `3f… _+0@i&"6mT}{oT#\MedJ2GF9׍re˖]t)--}W̙sFD͛bŊm۶od8ym۶-5\#??ĉg""IU(x0tIk׮'xb2VyH[իWعsgr9C؍r% 1! T2k}QQр"b[n;"۸q<>駟NG8͘1/ͭ)S$L:ݸq7ߜs^s)DĬY r)G>o~&{ժU^{mNNN=w^j$/*X` 7ܐ,y'υ5ݸ[rrr2dѢEɝ}qqܹsG}9dVCxn43x.Q T26XZZzi%c͚5;3{`8˻og}wޭ[...޵kױ;vWs:?~24///;;;ѣ3KW1dȐI&m޼СC҅^xf\wuӏQcQQїLqƝyuW_ /|A܍=zL4k]`_ܤIf͚mٲ%e9g F98cǎGyؿ{.777y /cС{oAAAqqq8zyUArrrΝlٲum߾裏ի_~v_i׮ݴi_|ZfMT{Zy%%%o1ٿ'Oc_Ə_:":@ZC_gL|„  … /s=GU~~5 Ά !᫴tܹѧOI88<3K>nܸk)**:_ԓgSN}ᇛ4irq]u{^Ps'Ǐ7oފ+|;0'?IO88<|7CCCB8 Ca̘1cƌQ 'CL:5??O>bO=ԥ^O:?????STwu;qp0YZ:uoٷo3++qE8֦N /D:w|G=w}qhڴ+Ñp\p=/_<".R×gvJK8y]}=zر'<`q͞={_KKK~uԩ[ncǎ]~9N~oyɺ)sb_+< ۹~_!S3oIYv wǟp ~cǎz^E}Y&S9iصkWD\ve-{]g0hرݻwԩS~]/{s?_c9C>L+?ADRmۦR^{mŊ[`AtzСs޽{]LRPP0s̜-ӟN81s˖-{ァ~駟k%mN;ӧ/YdРA%K"W^TVկ~{]j={V9'x"" U>PڵD]Fdu>)K,1bΝ;ϯZjժU?xΝ/_^ϗ:{IGY5ȑ#3ǞDn)}f͚UVV6eʔ^{mʕsOƍ_z饟'u1cnݺ믿>??֮]۽{}1! Ԓ%KJKKsrr&L˻袋~Wo>q~eeejjܸq=z9sTnz>}nmFD֭os9'"瞤YA lҥ}-"MHH >I0aBii!C&NxqEDNNN߾}xzjŊ ϵR3xw|/~IL}衇mV=ggg?oݺ3y䑈xǧOޢE_G;X*8WVVqJǎ⌳:+"V^ٲuօ Fe]Ve._EEEqI'n۶mʕI]vMfFڵk}Fu޽ooyyy[l5kVfΝ;?EW:Iy7^z饈>w 't%"ϟߠ\+u;GuTDL5q1a„ٳgtMqm%3hN=6mڤ?CVTDDTf),,Lӭ[*30"2/3ڸq_d'\j֬YfmݺM6~,Z("R 7jz뭈HVvvZ%uQGuTDdQ?+(..:tm۾/_zp4PyyysOVV\~_~կ>Y}͒숨*7mڔ|8#4lɌU&E ;իWY&aF2tΜ9ov%S/~ZII {Zqqqs &sD1:_&Lh߾}rz!А 0`wy痾N8as̹민:ߦJ5iƏ=\ĩz''(+GhuvǮ7ڮ[ݼy֭[6l !Р 2~g.\8x_Z9ZɬmSu-6{NRv;wG=hР;+///((F?O>ݻw~'ֹ.x%6>qm`ޫdcuo=f̘t:v|' cN8'Ng>I0O<1uI*<[hٲe.]JKK_y9s{ѿyXb۶m۷'?YK6m0_WH^Vic$,׫WعsgGOm`W^2[TTL:y#G|={l[nRj_%%%ѨQ6///y?\]&k~$Y# uɓ'G&Zl9hР?6m4Y>}N\dɎ;2y,Xp 7$kul޼y~F85Odgg}ѷoƍ'|SH0Lpճkl2nܸzW_}u&M9S"b֬Yk[n%''!C-Zs=s9ܓC`Ƹq㒷V޽';#+ͭ۞_xᅻ+"$4mNRw_,Q^^l\cFJ4Ltzɝq^^^vvvfaѣGՂ3殻zG{챼[&O ><HKKKO;-[FDf#F~ 2dҤI7o>:t}Ǝ[={#G,//:t3>o}[&M3fO?]}  h 3we˖[nG}t^.d8ɓ'/Zhͭ[޽aês<":vxG_rssO:r\p/ˣ>:g#;СÓO>;uQǍ?avM6zzd9ګ?<3J.\x%{p%FHmذA>7$+)IENDB`python2-pythondialog-3.3.0/doc/screenshots/textbox.png0000644000175000001440000023100712507731135023075 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy\MnnHdH&! YX4h F 3df|21ˆdodm,%JdI˭nwpܹrw7>̽9<B!B!B!0.B!B=TRl9D!B!T!zk<`IV@!B!V`m;`R%@!B [S;P8[]Ƴ_M X 2YMu!B1 X|RiRL-B!2sa٫s9V,ErGtf`| B!4޶;Tp !B!9\!B!ΕN|ʁ 8nPa$(.t:9gFkmwS8@:ݔ{=2hƂc6l`Tm(Ouã^k{d?&$hWwaZf­}g|ʁ8kȴv qr{ȲMV}G5 a5U(/ڂuj*6z2_m.R[ṃUu`W?8 rZ0eE>S*_7z FI7o B!0D APϪ_R#{^/S}J$s:{&eB?@Wu ׽hBe?UɡT A PPǑ ~Z P_ =Q tb` `SEAI{VVQ7 $E3_7!B2DFOW@髝 TcCB!B C9<*~,XRL+-,Xc>ȔRU z ON+jP$VґvdM)Gj5%T&&V3iV謴K`~hu^eWvgkT*,IP:!B+ Q9|ߎ0J$K/`~S\'%FRM 5dT) _UٞV{T<{Rp,YT9*6jMZE]W;si0v<0EP7B!zWy 5-?_)\GC+* _r^ ӤOve@/ZPmf*U6+F:&M B!~3DvJ@x77ZSTK_9]J@3;ԙD]yڛ*( ( _ Q/ d3{j%Ӆfl2݁^ 928$^U10npC> n xh;j^?Ul>`/&G:aiĆ`rY[i/k%ItcG|^ J/,iNOWRg1R@!B0D**P3 3JS?"PI ҧO 0 WB + Q+al33a  *PD < V5̮7)  Ju֗lt}b(V "aR$Q' #{rV T7d]#+ac B!ZII 4je[\'ܴ}yF5y%,(U@2|n>o@ B!Pst}b6$Yx_gLռ85 !y!B5`LSltceD Ky / ZZK`M;=bVB!Pga+:  !oY We#!Biҿ&#k< 27S 14`РT28,]"D!BuBB!B2!.-EE؇!B!YO`B!Bo !B﹒Df+qq&{ +!zPT-ijg?Arhrk2,iJ}(whs zEki33,`a #ϟ3Ϟy#%K͞E $bEJ:x{ 'N,}㙊 e/ڷe]*??Qir *ށQzrh{d2`rd=kUp?t-wm>3ٕ Z~;/^0b+wvx{ jL-m_UEOI&۵i\VL-eK*!/۷ݻr?A;(o% ƨCXn L +WB/p*?31gT7M>XLPȰeCb<ՍQн/7BCi^|$w21m ?kVoV|kfg[PjЊ__FJYbL|cY ;k43#%'[ЙLZfeDB~ [jݮng K$:o/)ϝVVr\4}`(5tP-ӔHh:*6tP^'d}AmN"W\QCRz`a}Y0]L{aLi@S=F}ggOO玒O'I'VV:J$ 5ò2FRC&)S^89IKJ{87WXکF&  CAYcӦ&-(`S; 3׬yߣo*?Z^U>{LM}ٗ[8fLgdXiu^`\bPi`@^ rJzJuOK6?}]r˘99|Rת&+?I-ϺeYJh4ʕMɃWhF˗7Ji 1: MNHeIɢb1SԿ%yn+*bQ/--#GwTd**+nYRwF|@"oOoܰ$so_cc#'>>/L^PncgMJ$:.#Òl)0Z~ jl)5e PLkռd"jÇ-[zusb#uNN˗ꖑ:݊\M s= F JAcʡ˻)?&r9bxp]\f!Xm}us R9FrOPdb1-?~L+7̴&QN5j$5|PT +CkҬ@(+wVd*F.ХU+4m^0l0z.-eTUѭ_Ǝ| s<PH'3F>p`KkgNTp2ƍLVC"I$4Ks K~cɢiJWmڈZ~Yڵo˽ԑ{?#5j$4H@!. QyyFCn5/S]M+wj^DΌu+04{^Wnj)spС99ʳ ]=b/!rPn-|CP jFWcA*t(r5,Ms4ԕ="âjosqjrX9s<j}#}žA Z/P9gc~KdyC|=R*UZX2Hvv2fHgc/\]*?M&ݼi[m^ϺHuGuR幑gr<هSɤ:%(YZʕx{ X9?#iu:榹ɕmcGJ$4cTSegGGנVQsAanwJ>}j޿})o)zdz44ܕTf7*t(97f?ak+~*Un0w{DfzNLܪ9jyOPD'cF\YiԌj.B6kB3} 9ن6o.}SS4뙑 uZݎ&dVj,,,Dȱ[!5 ~|c?Ǔ^("W466/ee ?wdK]qcW_nZ[[˃**^`<|ζuBNzzt;Asg\dbf$=x'[0 R_d ìsFN. |q;PcvTSF=+D2Q- 9U:oQ'N,Z, T92I34r-//OeKZZڨQ?rhH<x5?WϞA E_D..QpܥzVy1U'/(PB!]yTÃlѼ^]_(?ŋZnW C> GGpҤ)K7&gdeYx6TNPa(`06tr Z5543XlIYhT"1/X:mQ>e*uK.[TQ:d-Ľ{SUUt㑸yRόUvs((`=%9oJA݀CCbWK>_g]7oo }dTS<`o8-=NF޽۷7 _ Ȉ#/ΦрY7#IJ qT/ 4 (Oh`@bիVb*/;5gxʅ 6X˼#1 7 ~2 U l, km:diI+UUҬ6mjF*+c_׺ak*t&6 N[s:dWUEӧ*r9ܿQ]MW^Erڒ1rʳꖑ:ݎuyyӧߝ;r nn/?cq1EQ8b֡Cio/$v3׬qЩW'x#++nY' #]\$=zT[nژRprFQL`ϼp;F>Iztwױ;w8d~* pNPaX[]\$MHIK`LClhf#eQpwu\CTWcch4`2]E}MTXgD E׮]74m*^tPG۫|.X:"ۻԩ+%ܻY)hLB}.ǏY'N^PiT֯6Y,IHU9~ݱkjCeYU[$iHZEnǦJA݀-, (8j3|f~.3+kcvX3~|&9|QbPPY8lXݥq>]PV1rd ]Iu! 7nXRVVr YCsFn;AmNPLjÇ/35ۧmE`ܸRaK E}4W,GQe^ӳ m,F,,GQ d4Gt f=]$@T]M -%Erǂ(`R-W,a5萑:0A])?#G|>:aff:l.BwXxh\IPyI4:BBJVBUҳgE}Sec#zVu5M&qTLPڳgիV**2Ñ;8Ț7kWӶ:uk>YYI ,Q#i6"*ίnLϚ(,d߿&A-Be;ANҶh.nt l, l"4WZ=zĪQX^Hvvٳ8aK:5o.J/mpom&Ng:̜Yna!NWl)2gరKl_$mNN=u^)ggiDDӶwrD"W*OB S~UF*w;6}xW BZII 4jEA_Tzm]>QtҐ')H:}xDډ>O|cNgÍ1F ӧu^. }z]QQCBŬ#_bx_f?S5Ǯ]x<^``ђOֱc ;w?HSz{{{xxwɒ%555:ϟߥKww_~E,SRτ4TlH$ 6{{{ϟ?3QTTlٲ֭[ifРA7n9&MT럛9s&u6ӦMxO޽{ov؁5jC0F$''+zUUٳg>xqqСC|Bsʕ+Cc„ [nϿ~z׮]U">>D &n$www}^nɢ/^8s̙3gfϞxb&7;w'!BoٵT*Ǐ|5q/\`0>3=~nݺym۶ѣ_|M.]vܙ}z~E0:uJ*8pݻyyy6l`W^֭[̙i&&&>x ''gpǏ555ƍKII?x𠇇۷k]C`I"$&&]SSckk'Ã&]9\U׬Yӷo_`0G&QgϞJ}Njݺut:n>>>sF>}t炂W6mڐa0hJJʋ/ӳO) &?~<" r+**N:Em9qL0A`h -- &Meʔ)OnBпB!dC\f+X|5.KՅli-n* ŸqٓP(4EZN:THz+VԃڤIA0_v h4_=F JC0vڢE TzIj_%#թn߾Mm$Q垥N}$6rssIVٹK.>$wvHWn߾eϞ=ÇѻW"B5fZ9ɩ! ߸qC$ٳ&2-_I ͆r7l`gg7mv„ d\e]HGJÆtucYY>ٕ$_]57V)˵!ͰBP`|ߞaxOReeepDTq!ByR󔖔@UUJ)*++>|-[P.C{# ճ _.\6n88{`3PbdIII7E>O5{zzd2ҳ411Q"4o޼[ndZYe xxHt9|L&ҥKvLTxs/E=zrqqTZ\S!BȨ̫rxB.pׂ6r t4YmD0JZMM .H#!MJKO=Y=zT^^m۶UQppYTAMܮ];h򣌌 W<||2B !Baco޼)wf ==],***|#唉h'u!322|>f@ T٧N0S]Rf:?PkYA"U\2?lkkRmPP|wt~Arr{Uyq@Zw;uۚϟ?W d-[aB!dzX9LIIZL_9sL4P!9poڴѣߓL_QQ`얛;}t2azz~{` 3e$e2Ç׮] &k<+V`Xׯ_ v‹/~SYP[nnn]tRӀMd#%Ri\\YKLBFU. R;wSNO"2'Pjj_MzqGFFя655{-JLL,((7oތ8p ic;wR"B5<8RVW K&mݺfΜY"===>|Ǐ3LTڪUիWP(.]D΋2 /V 0vgee7Z*ʕw/eH3aU}||m6w#Fp8KKˊ j92###;; :MPPPZZژ1clll$ g??*Z{nժ2;l۶|d@СCukΛ7orD̙3InbbbbbbThsÓ B?JҴ4kkkRGttt47"!!Çvvv6EYϞ=srrLeb򬡵Nlc0G.]>|aaaee߈#o1bO*BpM4!񜔔$===njS}xȐ![liڴwvv>v\BmB|Wzڹskt1?䌌gϞ=`4kwҤIA!BI5ҢHuiP}mРA_|_a0lڴiWhh 2$++kܹ-z'c!B=6jԨ۷OG<hVƛCspl ӧc1̦wʕ,=-B!ibӵ?~֭5ja0ӧO,Y "B!dlX9ݐ!C a0Xxxxzzgr~qB!L"dF䓺vxW:8}tppp۶my<kժ B!2^9 xׯ_'_G񲳳M\9)[f˗5aaa"UH$={=cǎ-[l߾ȑ#%[RB!.^B"\v BaFF]1".ѴiS8R3ݻ&Gm޼BϿ.&Lp *]***8pL#B!!n9 ݻwg2pUDҫW/:+U+nذ4C IJJG[o`k w/_Fegg9)RB! f]9$m2z"_SRR@&=}422rĈYYY?~sVMM XYYh0`/,--g̘1j(x B! 5!U$_Lח.]zf͚ 6~7?}>sҏ4Ah4HMM5v`WN6 ^vl˖-J`iip ޽֭fkkŋ3gΜ9sfً/VS"L6ܹsbbqBBBrrrk C׮]7o|>޽{o B޾b߾}Go߷+!B캕FEE-]ϟOΟ?.]ZC'L8K.cǎ>}3"$ɲe?ܵkՇ1,,,!!AyM6ի>**_~<5D"پ};L>}ɤG7o6Tȫ֭[@,XIII>2l˖-0yp2M͛M%AСɓ'Ge˖;o~2dHBBB׮]M 3RB!w̡+W g/^?~~ԩSbTL 99t]xz/ƍSY_nҤI*{N2|>ْ 0a=z4HHҧOx%33ҵkAB&}?UTTBߘ hdUUUەB!dOr<--fX|5.۩S'aƍftرcfeׯ_Mm۶=sssIkʏtBq86mڨ2Q7*CI&@z999fϮsbܹ=zϝ;駟ɓ'O6յhݻwtҦM\)!BHOfrSQQpƍ"gϞ CKيpttkAE֨Q#bpqqyeeersAlooIO=H)%qppPZc=IFH$|H$;v?ЦMKK֭[\rҤIRtҥϕB!d^-bB!ܺuPUUkpp… Mf͚nnnc7f;1##L4qDM<9&&8--gJA!B*̫r!QUUEDee%鑨x[Rojn8LC{D.HCR(++S(*%%%&Kq*r\_*k]4HԊ<OGãGޟ+!Bɼ*LֱcGXfE"Qv8NvvA6,dgϞҮ];P(233=<<A>PvD"ݻwUeee씃rv7o4e<I'^ԩSi*cE>LTΝ;S쯦ԪU>?0_`ٻwo0B!&̱R+C>|ϗ/_~ٳgZZZX,@P(HgHJ``y֯_~.+H{̙3w1cƕ+WΜ9hѢoGGQF9rD% _~%5C|1c,X*ӧO|ӧ###WZr={w^T388Ǐ?~8ɔJZ _zu]m۶!C;w ¼~߾}{ӦM6mbXONg˖-X!B!͙]ˡT*MKK&KUUUeff:::?v֭[h4PآEO>ѣ*{~W4hCUU}```LLZL&sΝ˗/o߾=Ng2#F8ydfdff^~޽{ /+ycǎ˗kN"H$#G&$$"y͚5,yڴi cF㬬,Mf2ƍST$TB?EqС3gWkB!j@Fտ}H}yѢD9!DrE +["B! +[pKyeJKKgϞ[lb B!d zpZl) r֭[q>B!L|ΝGr77>Yf9!BV駟~!BE8!B!VB!Ba!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`XjO0*zx<___ V2o<7o}:88m۶<j o, Ex5d!byBBBO8ѵkW9rdzzӧ;v숉 ?9s&`05k;f//9f=z׻wo B};ӧOrqql63?o`0zÇ1N4g֕CDr5kkk. 322ڷo)D&ܺu+::z̘1Wp8gl]|VrM6лHfB|N_>h\3R}# xy۶m+Vx3̺r) L&\zU"ՋNް(Ν;V^^}cǎǿx"&&#2dv A!e `}65C̢Ȕ̺EޑՋ|MIIw z qrrlΝ;x FB!dJ555`eeQ4!U$_9T*ݱc=<<:w\UUe#'''u{ԩϟ3ƦM"##>>nnn;v \`spʢEԏʹSz{{{xxwɒ%Bرc_|;w֭[3fUፃڍ`gm L=`www//z&0xrvhH`Su%KӳUV/ͭugͳ&ŗQC~քn%'hQ+td׮]</00P!rH$I&Q[jF*JQZ=}z*0}PQ{V%nנ"V?S4O>?#}1h4HMMdڴieXb8!!!998gRRXZZcǎ8pQF;YF,/ݻwrrϣvJ5\nh4[[/^9s̙3g^xqX\\ommP(ܹrʤ={X,τ nݚu2EP!!!؃wذa7o|왳 B1y/2 L&8H%7믿~Ȏ4ݻwINNV72n͛7vpww'ϟ/߿?""t :qė_~I~deeeaaӓ'O޽75Fgc\ƳV'(f͚HǏt|*uR4m04Onm)ڽ{eˤR))g8NAAAAAA||ݻwu΢_:Dn:ZϦ)H`@Â֭[S!rBh׮٢t~zc)j\/rE߻u(4g'KKK}?~L(EEE߶m۹s Ə?wΝGZ[[=zT}猌𚚚qƥtP!7`rk{hE`hZS)Jx̙ܛ7o\Q0kU|u:i[hu)H`@ÂѨ9sPT9,YBm?,5,Tk[Ӱ(0}PۂQ{%dް]0**hҥ0|dK%`'O&%N=6o\˖-H$!!!֭kٲ%X,??hu;wVVV\.nh}Q{nڴ |}}W^MQQQ 6ׯ'oLfHH޶o߮ܽaĉp1mB^\xb UUU֭ vvv ,$222$ Zl=rNAÃ&C9BB޾}{PPP&MI&A5ax6U|%'`@m~-z;u8cyy9׉'$%%=}:Jz5=Z96 <<\cDͺfkkkyC LTr 6̙3'//okknݺ >|yt.Ǎ7&MDݝ<ܽ{ 2j<0:AA={[+E[::M[{H3)խ]YK!?'h$Ƌg#ŗK p4jhG<7,U9Tr-2mUU .4AxZhQO  //;fggq|>t>jt+)t LMM=ydJJJfff^^^RRRRRҩS~w&"Jʺv]vԏ=:{l3LG]R<[쁹NŗN0Ah`>'>hnŗӗ07zESZRRUUU+WVV*L=?4|7ePcWPFttW?2M9|L&ҥ%[W={YO]A ./\p!--mܸqpYʵk=z۷oWcox6k FEMIzr/ZSE^_ENv FmA/X=]5A<\.̍vx ssHoyU߿_TTTXXr9ZPPf\naa! :C {<+R@t jjjUj׮y򣌌 򁚘N7ѣrPlaaA!?2+`N7xu֑癗~T!(͚5SQS6&g^?z ƛ7o6,C{Ϟ=k{hU|uZϦ/ 56? MѠ sm}x΅9QB柑:s͛{$9bq޽p^^^]ϐA?Covr\޽{U^N::U"|J3?[8kw}kaa1r߮]HI1}tskyґ[e6w}q*322Ο?_/6FghuX=333^6,C{ (6"iU|uZږP0j 2X.##Cal$ 0髡W0\dQQQ]CsHo9VSRRo߾+y@fɜ5kDGGĐիgϮu+VXׯ\vdPx/_~:OG~NMMIH<""ߒ^yc;o<2@*ő[ON&QAy rߟ @D"~ٳg?%K@ǎkyC R/JKK[2jΝ;S |ѳgO+++BApRɓSL 1A0Ϻ5 2pصkݻIْ?w\=E9 x|r8w\hh۷Ç|d͋/Y@ FmAX`?77 kx6]kP+u.8P(\jU]/b-#]8[)R+r3f̸rʙ3g-Zr8@8jԨ#Gm۶s禦1XZZVTTP/qu8o޼߿RΜ9IGPPPZZژ1clll$ )ܽ{nժ鑢R z|*[FfnyCP\t\M\.`P_|5Ym۶8Օ:tܹsuo-Zt…ݻ BHԢEGFF/$>?fj P34k4}˗/>}:22rժU\.ٳg!!!{93܆e`huOß?|gϞ={Ғb BA:FK3F~֪(Ъ|6Q`xzz>|Ǐg2RUVWV9VxtaӗsNQ,sangg7o޼~i׮]{%Q7bĈ<3[gvCTfmmMJêLGGG e2;wܹs߿d2Gx☘Z裏.]}JOOO??#FիΝ;]V^^nooߥK@OI&?$===nj3sz e˖MW:akkҳg1cpFPPźxbNNΓ'O6mڭ[)SPꜝ;~+W<~j[Hs'Ox[n ... /-M R,+Ϥ2QAc_H cǎ;wܿAAD"9rddd;@̬[r=E[aaaɏ? -Z۷ohh>ռ!ꌔ*4?A3) ƚ5k\]]>3''/XFgjЅO_uƋ: F΅yDDDFvy=2^l3[G#=w5OQ5d-&,x7mڴ+444**J_2dHVVܹs-Zш_qС3g.[  5f~|z5S3ڟbCdbW\ʢhBH$/^,B!§/dr{)ved4f….]f*--={6oٲ@\Bz§/dqBdϞ=~- B笠{r8-[ ¢"\noouֺfG!|Bf[_O<ׯߑ#G<<<0Nz?EFF8ѣG|>O?=s挞 RO_4!B!dD8! B!B+!B!rB!B+!B!+!B!+!!!<ȑ#y<^vv6B!BYW%ɵk׬@(fddٵoS!B! Ȭ+B{L&^*HzEcoXB!2$e]|zE@޽1B!BȰ@吪 ~~~l!B!dXLs ?|Aӧ矓~?0~!B!dfW9,--:! !B! 캕FEE-]ϟOΟ?.]Z &B!B9TaxhB!B8̴r(lv׮]@,_vv !B! L+999>>>nܸ!z`00B!BkBX Bnݺ UUUJ/\!B! ż*/UUUZHTVVVVV@ii)B!ByU߿2cǎb877fDvq8lVB!B`co޼)wf ==],k!B!d$X9LII}.]>}`j!B!oZ+!B!dlfW9Jiii]tLGGvaj!B!ׄ4d2޽K}~!B!B9v+E!B!dbX9D!B!CB!BX9D!B!X9D!B!X9D!B!X9D!B!X9D!B!X9D!B!X9|x<___m޼y<o޼yvAvZ/`AȔx5dBĘf'NtF~;s؂ݻw'%%=yD$5mڴGcǎׯ {葟_޽quY[[I3fرc&Lprr2H +++O8q٬,>bZh駟7^x5۷ٳ===Y` ޸qׯ_qÇ 444**}z]QQGaiiikkQ1 񜝝 ԭ[x"&&fԩ?!4a-*oW??? B6]k7gii1999,,K.nnnSN=M"##?ZLNi{d#1ب=iM2T[am) EEE˖- hݺu6m qFW5SFg^^B-Ꚋl׮]</00PemxF!'k9?}>sdc hɣX~5 ̺uFھx̙3gΜ={ŋ/..:t(ϷV(wYreRRҞ={ &lݺ5??dB nBBB:?|LF޿dK׮]IKϿw^=g'f͚,K,?~ҥK|A]P(&O|E!D"сtvvnʍ{)YO?={*)䘅 m7n|=Dyyynn.Ge>}>|)GZLNP+;rC;w)g1mgK9sꢥX,>v؁G8O`ium04gBz2_Jc4:̀׽{wM?woM81+++''͛yfrS޽vZejRP C:Rk|7|ӥK;wm߾Glݺ5>>>>>~Μ9Ν;i4ڒ%KȜ'O>tP]۷8 JN`ܸqJ 2yr۴icV֢E G1۷o{xx@MMMzzP(֭[밳V0ԊcCT*H$|>;vlYYY&Mf͚en%t(5,E322kjjƍA۷o9ʪs7ꞢC04gBz2aTTTQQQQQ`+ ,]mL͍6m__իW;::}TTY`Æ IW&Bjh۷oW\:qD8vH$R]lj=xzzzϞ=>kRZE6mHx%,N:trJ׮]:.gC{n0B̴r(l6']rIo .77.]PǨH2ҒLܳԩSᣏ>+Tl6m۶*?R郤L7i*++MC,InuXӦM|GLk׮ӭ|&/E]4믿{'5ςQY6m/^ү^V݂aB3]"''ח7D"Q߾}uh"Ph2|hܸʏ-*?!ѱ: 1qĘ$j ҧt7` zz:51nLUr#2Ӭ***&Nݻo޼Y啹@fˆRJ ZU0(*y gӜVwd3In}hf͚}Ç͍ڶm)Ʀv~mV>kR*BQxc2. Cd_~Ǐ?p%D] !;̼*b^}oݺEVb kpp Mhт|x+]PT^^^^;v&3|2j>u-"O *Un&7y.a0g=>N:ݻW=5[p(..$!>ZU0b#7بUXX… R15d-Zo2*aujvlR^^?|WΝ3xwb!лʼR󔖔@UUJ+++jQFdpq~TE5-}IULKC8|L&ҥKvLPVV"/rUr3xP(N2m۶?MedJPǒBmjZU0([n-z ~Z1ޑ$ RszgM8'se7\4mŊ @yQGo꿮=x)BHOU9~QQQaa!p8kAAr AAAڵ#}233U~D22G0` !"kLC ޽#}CW^t:1D~kȑɜDaaaW\iݺ_gggǴѲeKj;v*frZȹhlԃŗjl6(MأNYݺu2]`T1bشi:ұY}lbD!'s͛{!==],[Ĕ)S8H$T3j%ݻWeOxҩS'-[[[FR{rss-,,,5M=33S}vx QAFӇ R?b0k׮ݻwǝspt ԩSMWmے>*]~\n=jH"̘1ο+|_*=cMPSSF"-??ڴi\.Werw6fr Cj"B(vdc0HMM޽E |͛7cbbH| ;?q8Pjժ&ҭ|Ċ+X,CBB]F.Bŋ_|E~T֧5QENȝtӦMTL#KGTTT,Xtͭ=x)BH8!R+r3f̨矓300p޼yׯݿ?l̙OEPPPZZژ1clll$ y>׻wVZǵcv_~%5I=1cP;,XZ+r/_>}tddU\gϜCBB[ Z ٶm[yy]]]ClJƎm۶uJVF Ǝ3ggj]֭[W;;۷O2֭[ `2lݺU;k 39A={ٳgaÆѣGvdBPyY,kHOlĨ_8sέ⫷n޼y?Ӯ]Kʍ#F|ٶmܹsSSSGp,--+**t+Յ'''}zرM6hNNNNL/:977慄|ۊ> :::,,Ņf[ZZO0!!!AM/""bդ/.....V̵-5G]tiΜ9;vdٕ{^`?hԂQEཌྷ7uk֬puu%/PM`kk B!i*Hu4 O}iǴiPj2 2$++kܹ-2s8t̙3Zjԩ:͛Gf B~ml6;%% uCV 񤥥5S3ڟb Ǖ+Wh4H$/^[x1ؼyVd6lhK.> 'O5CaSBay%K`dF8[pKJKKgϞ[lzzz~'EEE79RPP0zh///̢ y2,BBBOIDAT8ѵkW9rdzzӧ;va vޝHԴi=z;_~' (..ѣG~~~{6֭[gmm$g̘cǎ͛7O0 jѢE@@~J57nx5jԷoٳg{zzxg|1cXZZ:99L0o߾L?u333KKKlv˖-{9`>}p8}`Pb<ܮ],Yɞ__|1Bz2ʡD"v횵Œ ;;;=ߢ$ ѣG=:|7 U%x\GӦMb._ FzZvmyy9s5jdrfZzիgk׮UUUʹ:77777w߾}[l0`)))SN&lg >|ѣG?No$~I-999999wްaѣ6ƾ`߱D'mۦyw5B9,33S(vޝdիW%I^y|ߗ/_.Hz0k,w)i }hI&0'N`0㋋ Ϊ*sEEEWVVΘ1;WTT̜9cǎgϞ} |||jjj>/^fgc;z(^~}׮]uϾ}bbbzO<`0N>sرy753LkҤIVхB3CnW^kJJ 4hPtt4U>}:. lvx<䰰.]y{{O:G6mNj|IDD{``֭[;4ʕ+y<^@@@!$r푑<o̙6uTooo}.YWy'd pww /,,D"ٰaC@@?CLL Io>9r5j$ǏWR7oTޞ&7ipqlb5"y^^Bw= _~rrr^kp8uZeE)**ZlY@@@֭۴i3hР7µ%K٪U+ŋyj ͋/c6Q%h׮]</00P`hBرc_|;w֭[3fԚ0k:յe˖'N0Yaxu2eΉRtǎܹYIY<23gxG]?|Aӧ矓'Ǐ@XXFTmNa`֭[4ŋgΜ9sٳ/^qqСC|Bsʕ+C0a֭[_Nf١( 2%$$ϗd߿aaaAtڕ{sv2l֬Ybb/]+ b/^d02L$8p +++11:Aggg>-@ܸG*Ezzq^^PM!,,,,((0Hhkոq{)S{>}TvӧçOp ,--:t'O ??Νۿv&I&&8gRǎ;pݻw/[L*9NAAAAAA||ݻwu` ŗ1(m<8q/$,,,>}zɓ'O\RU9obmٲeСmlccC&5Pq=:$D"6mڹs6!!!99u#G?핏PUUuY)Bٵ yy1JӊWL^u]ϝ;GJ'feeܼy3446oLT*O8xݻw֮]blBA>|HCBBj otsδ۷Cy[ϙ3ܹsgbb"F[d "ɓևWbcctҢW=2՝M7mW&RQQQd 6[ׯ'_LfHHm߾]sĉرcC!͆<փÃ&^9wd2N<9<<޼yz>JUUպut݂ H&))$##ڶm[Wɭr #`w)p4iP(F5r#FHRv6ԩS>yd.\Pkp͚5dU 1zhRtٳRϝߨqdSzhѢcǎ[^V˖-H$!!!֭kٲ%X,??hu;wP;K$e˖~HMaaaQ]7ZHŗ  ޾}{PPiccFZж|$m۶˗A, 3) g͚%JN2"HoӧO޽{gÆ uŰ&UAA)C{iӆ\aNNN&/^{иqcN`2AuFѠ@Y̯OroڴiŊg׮] YT&|ND S@{~ն#FSRRgd")ELg+iiil6bڵk\.M= brss*?ҥ LC\]]o߾Ml---GGZ9u@ ppp裏 n۶ʏ:wLGR TݚYAn*#.tNnuXӦM޽͛Uά22******Jy (5og8t萏L&+,,_?>~P*נ;kaҤIܲeˣG>쳿K%5HBg,DJN...M8maݸqcҤI$%%%w%UhU>kuNKKKPH&k1hC=hbbm Ɩ-[5kO}zP}7n<~8U9$}J fxлͼ*d*mRvߺu@SSS`IhѢ`>v{رcvv69a!)mwy ^&wbÎO;uw^ԤƱSTWjll6i׮ݖ-[矯ܹs-ӿ nnn_}UV쌌 Y-Č7IaVŗbW`R4<=zG[XXI^c:tH>PeYvx$_ ':rd2gD"QXXؕ+WZn}ѱ#)))*?"3(lْzoMcĈi&*v ޺uKi E`05n3_MM H;سgϔ׻6:̬VfOz3޹Q穒t:'7)lll6l@/]uV&y…nnn6l׀VRV9A4ޤ* o nqқ7o ݻmzzX,ݻ=LpD"QddgϞQ㯸\.Yp޽*{ٳ:u2?[8yڒw}kaaa!$333[+vvvh*^xAVP3X<}/eʔ[n 0dz;ٺuJTV'''|Ǐ'WJV򤵲7oO?k׮{1bCI̯rXM6}G[|O?dD0>}Z"Jl٢r^zZJD1cƕ+WΜ9hѢoGGQF9rDeg:9rdFFFvv6`!Bp̮P*Y[[}233 8hܹwhhj޼ypppllJύj rpp !/5i?5jQ(/%ck5dhڴy2łX,Dycǎ˗kN"H$#G&$$؀pvv>vȑ#?~eI2&OLW< PV6=??ӧO;iӦ4)88ԩS|)w677nttt?ǎkiiP(ڴipY/_^ti`` fX7ӧϊ+Ξ=K&IG}tҥ9stؑfWVV:88{5v֭[h4PآEO>껫m0KZCBB CY&""ՕNM@z#""bVU\\\\\\WѤI 0C @?8 W\aN0A ܸq%CF˗/[[[H$̴t˨ì,Hԯ_?SSS"tX,8p %Ν;GDd={ bЭʢA7 @L-A={?iII q8"p@'.8,++?嗰P[FXիK" gї_~YCϟ'FFgddyzzQmm˗|~^Pf:g͛7+++cnnNDW^0`EqMH3dȐZ"DDtu///"& .??sWpfa!ٳgϞQYYJ@+8,,,$={暙ƍx@qkתgffFD/^4h"C=1ٳD4x`gzz:;(-=1PCftD"Ȱ ꬬ,{{=zĸ&!"SS[nw @R00!8Bp!C M aaa011Q xyy!_FR-iܬZ ͮY]]-_cƌiŽf@\FÇ{zzф .^xĉ={e˖ŋ,X{{{4,.+˨{!O2P,_|͍D"Qff[oe...:uBzIqC2ϝ;GDUaaaw^9**jʕ-֡2FfeeD"SSS"tX,8pON:ߗ_riwwݻw/2cƌQ0h錤QPY%]?Ϟ=Kޔx<O~ %"mۢ+Ψ'QxDmd͛78;;*%?D͚5O>NNN={]hQJJ6I9s@ xAhhoddX,n' 88222O2xe˖xB!AAANNNӧO?uT>|[HHHQQQSV H`#Fɩo߾gVNFpp@ ضmۜ9s\\\_]]uVm[dfQ>(>>^a$-YDfED+Vy7u6rk)M'|}}'Baxx?P[[k),,\lСC]]]v:dȐKj Dm۶#F{Μ9MTPIKhgÇD=GZRRBDAAA.\`H3gpܺd[o ۷o7ٟ믿&"coopnݺ~=~xرBZ*Z*55uǎ iw:gaaaaaahh9~ƍ,m۶}ɓ'O<9wܥKonΜ9Djkk:>lذft2>pBÇ;vرUV)lm…  ֦MիW{zzKH[dUUԱcGׯWUU9::$1$#99y޼yꀥemm7nܸЮ];÷U;DTPPnݺݻw[ZZo߾b DrΝ;wٻw[4KX,9s&Z#G҆XbVU+x-E0;eeeӔ?뉨i$''ڵݻ7o 'C)w޽{Λ7m]_տ|Q"ڳgϭ[7lRSSW& ،hĤ3)Sdgg߼yڵk3f -[8P&66699,[,77777رck:&EGGgffz.Ak׮egg;99I$'5d#)nՓn}Vȑ#W^D4yr`͒ŋɓ'={`Ϟ=...999.B-EEǏH$ l˛7o633tw}g>rHDDD"1bɓ' rss]j*{{{rZ[[D6333b1[b-[ǍO?$ٛ6mbߚ.x?j(ؕ߁dwfX¼֭[,mmmW^͛ecց!!!쎟-[Rin6~~~۷gKڴi4uT"R>=9rg7-pFMDB([+V 7v҅xv3X,^b{qqq탂9fh֬YZl6XuR x*0<<)򝜜y;CDwx2DRVV4;::/ҥKjʕlVXæ SgzeMFDB-bW2&d Si;:tE?6@wqdܹsUW[=ݺucu)==-E:tP@D"H4(--=tRVki̧OG}$ʭ[~CnWB[ lfffH_[[{e>Ϟ[3$SB6&Oy֭[l11?~1c'OB Q"UiiWֱ#zb, |(::_Ja+Uܭ{O(J$abKaXEF\arOwZT*Ur3S~ qMHSXXX\\\TTٟw133EEElo@ ظq#Q0;;[˭)oD=z,233to6(/v6+6Dۗ^x&5[ {WEm 7B![osɘukljGi{MnTx5cc^v_~ŋ 2C=il|vT$"j۶f/ ;w*رz%Uݝ}޵kYYYZxm۶DTVVp"33ԩSlqvw:ٚ p֮]`iRPLM(6LP^ekkk XS\\pȐ!:u"իW+xܣ'{n/^T~1ZFK b1LW`ٳg"̦o؋eO@-_M>|p06RK"$&&͚5M: .,^=[QQ*[冄Q\\{AA[46`+++T"DrرiӦYYYm$zMDǏݪ+Wx+W\|"̙3 ,xw? WWTVV.ZbnnniѢE磌ۿ hƌ UooosssHf_HD<﫯"3fv7nf5553gdz^tiܹZ-+?txׂ-"8\p!C z &Mh"R4==r ,M1??I&iF,hoooOň7,,lӦMvڽ{7ϗ'YΝ;wĉ5kGu1 `ΝO/_dɒӧOV$t9<<<""U+naQQQ#FpttdƎ;|6اO_pa斖[aZNbKquu߿C:djj*HvnݺOP"R`! 8@!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!CxE$&& ///d(;qℿ@ ڵ+1aaa ,,8f@+1cƠ@f@ 8weee ^zlGʎ;wvss5j˳_~z{H'N pBMM#Z74K.]! " UWWɓ'O\~=&&fҤI֭3775s#11;4%绸t D4z-[XXXYa$[tXXXݻ}Zr%ZtTQQqƍ={$%%ݻӧȜd̘1x CDxd0\.ܼCÆ ۺuի(%%eϞ=VŋDdeeWC̘1ݝbbb-..^bϛo٭[#Gϟ?_'88X l۶mΜ9...^^^ﯮ uuuuwwߺu҂<<<ݧO~)dsE͛78;;6GiiifӧSϞ=}}}-Z"N||l&{lÆ 0,YDy 88222O2xe˖3r"DIII ,1bD޽;{l l|LP/U4sL@P777ggg__HXOTgvbbbRTTl:/nZX 2555D4uTْ'Q=-׍UV ZW}}ƭdѬ$ɶmFһw9sܻwS+PjFm@{xTm߲]ѣ;ʖ'''ϛ7YZZ޸qƍIII ڵkkkυ 4(--M6W8pl~ƍDpڶmӓ'OG}YPPpOOOJˆhܺUzjVbx̙2GIKK:thzWnUa ƌΡ{|>iӦ g9YYYϞ=K333CBB^x1ygٳ%''F]$H222RRRrrr&NHDǏN&L}k׮͘1lN$''ڵݻ7o 'CɯVZZvZ" ~zvvvVVVNNNTTT9r޿]'OWC P_xxxfdddddDGGoEGGgff].M2"##WkX8z(ٳ֭[6lxM+k6dlٲcǎY[[۷밸m)j7oڰcٲe%uCSpqq0`%&&*<##޽{&&&ڴn+UTTTJJ o>>&&&666-ӧʯ)y<ފ+lmmB>?n8ŋ QF8 ׾}{M6AAASN%NtNM6y{{i@@;nfYcF```HHeTjVUP17W7LBDIIIYvpȐ!@4XԬbqtt4͚5+00߲eŭ0m@s6UUUÝ;w.]DDפuJDeϣvAOvc?ADSNp8[6megg Bɉmȼ;Dt]D$Hc+W459˕}nWvnς^Y >C"*//g5M|Vkg|lV[P17W7J/^8|0}GZf*_*33ӧ;ҿUh# h c&;ˮ^|-_x%%%8bK>.͂#C;oQ#.?{L~]YYɓgΜ؉\\\HD۷o?};w<,+8::TTT4Yy&u]a޽{ߺuːŭbK1znnXZZN0!>>>11;[x*;;;vUT~5\V%u릜?MWQUG2XCfm۶-.JR6_D"l*?% }x6([|O5vBy$>yyDdmmݷoq}ᇲ$i=dۄWN:3;ɭ[dYWzg GΔVTTȒV>생rhyH-ꆊ׺1eʔԇwgJ}-'LRY-*_j0Ԣ`m@V\\>-Ν;7`J|}}/\pرgfee秦?~?N"W#HBBB====zȾ:xܹs1Fźt>ȫ E!7zy 6 P(dC89Tۍ7]'Pyb_%["[G3|>? ~8}tFFɓxH\|D-Fݏ5 Zk,B6ڵk|@QQf[|>lΝ 7zLhD0Ţ k|xݻ7?~MXYYIPvJ*H;6m4+C fVDސ6k,6i^w冄Q\\uk9rF\3緂fejj:g"g׹.]4wܗ#y{{D5k4vm_ 32’ &_^a>}DEE͟?… Ǐ777xr__߰M6ڵk|>_6zpp0-TΞ\.W6ނ d+1b#$3vk>|%K>}_~"sPd,\  I&VXhl222&MԦMX̮,x{{kf:w܉'"""֬Y=zԱcǀ;wj\5.E׍Auڵ.iu5fϞ}'O.YdUUU'Nl/_ fx<ޙ3gn޼N:wڴinW;vLJJڴiKJJ7w.00P DFFfggD"#G.X --_ GjkkgUAO=ztڵ&M Ɲ;rm{;w &DDDl۶̚KעƘ1cnکS!C4qneillllllBBBaa.]Z]U444]vo~1UVVahhNː"%wP̙33f^o߾+VZJ3fLvv,YllZ':_~QJ Uc'O1"X|"Bnϟp8x! @@>tٜeees ]tQ ÇlÇw649$&&ܹܼK."622ל xG뭭/_}}˵ocƌQ 1d˅!"; b˭u+ŸCp\"211i۶-J Ӌ/ Y,Z7RZlbx>>>ᥥʫyyynvuZZڬYԳgO__EhZcHH$JJJZ`#zԷoٳg:uJ˽9s@ xAhhoddX,n' 88222O2xe˖~Y>7<<<ݧOXbbbRTTlz m۶͙3kա[n&%ɶmFһw9s4=^xŊ>>>ofnF?>\4X(3Tl*VxYkbNmذA-YŭA2T :u+*Z7]jQ>3555D4uTxUoVtu^74XY1 pggg~V'[)^{$ *N`5hjZ=oYݳu5[WZ%|||9^^^ƪ9JgΜruuu555 "===x Vo߾f篿8=ùuV^^^ZZڅ I1$ .d,,,>|xرcǎZJByرcBT*[jUjj; E޽{؟g97h۶ӧOO?nܸ~`dGGGoߞ-iӦMPPԩSH']ɦM4 l{ŋ ؿQؓ~~~]cn:{{{"]zKD7om+p[lJM'du#GM>}\]]9ѣ(??_D4k֬@v߿-[\Ŋb8 `ƍ]t!"N8YU/uaڠ΋uT~UnIA}6*6+u=HׯtAO?~X|)}Gﯼway|1[nlt ҬV` u[/Ӳ7KOu\곑PnhK_uCCKmHeֵ V$=4X-U Y^+7>_YY) ɋ/><0Bd̡s6&OJ+,qttiUK...M e=NXo޼IDfffݻwWXw޷nj"M'C077}P\nݺ)^|8ŋ7URR"_uӬV` u^/ӦBOu\곑PnhK_uCW^ [СCBa^^ިQn蜺IOb$ VfH-uVoii9a„Ŀlǫ3&`ZIp<җ]t*>yyDdmmݷoq}Jd\zuԩD(YVVҩT*e5H$if Ek6~}6_zjV*uC@]zHP(l[T(F`iVMڲZgSLOMM}aNgJ}gi%^pرcgϞOMMMMM=~]G2$IHHHyyw}ףGW;wN&5+L4 g^Z^Ν8g  \ܭ6b$]nî8˪HZU"֭YRe5Xm*[Ϟ=oܸ&7 l3)m0l3|~@@?p錌ɓ' F˗/߿w+U{B@ll!~jjjv6eSE;}%/^:Vk[Uвn \U_WDnhr_p- ٥"O|̈צB1f֖:+0@`/,,=(/Hf͚&9… /f+**"""س졡5\nHHm߾r0aYs!xvظtܹs\ʕ<ʕ+/_fQHt̙ MVݛ?ΦnӒŭdE_u[Y3:Au28v/Z=8PWW 6ь3?x{{D5k4PĊB1f=+0@g# 8ƌ ZWkB Cx!P8i$J/{łT*MOOgms\\L ,͒B/_dɒӧOV$t9<<<""BȘ4iR6mb1뿼}}}6mڴk׮ݻw|{5*Yf;wĉk֬=رc@@Ν;5nSٳϟ?%K,_ܼ~ĉPXO>QQQϿp---+++e4 E-U#F8::'cǎ?![dEO_u[Y3:AujjA5jTvvɓ% A///6p-[MXXط~sNVǏ믵ܲ{$*NYe 4b4hP׮] > h!^PZ9x3gܼy՝:u۷i ("##E"ȑ#,Xn߾ѣG׮]Z[[:iҤ`-]|g|rEEGPP‹Yn۶-66vw&LضmisWYj55MHH(,,455?~ҥK\111N***z왝 E-U;&%%mڴ%%%EEE[]ܪ$C@-FRϚ+PSPke ڠ=SNUVVvO?eoݡڵ}ǏR-GR"Lx[V@]*V~ycƌٺukN BBp@vԸQ\͹j̜9~1cի0y ^b ^)?F3&;;{K,AndddL8qСW@oW<«F,9sϟp8xa˂Z?<==]6WYYܹsBa.]{=Ç-[FDÇҥ 2y«&11qΝ]tD{ *?"BBB.^ѣzkk˗#OZ"@kwz'''__O?TZzl2I˂ i@CV 0ƚ5k @'o议1cƠhP(-7 +Wfl֭4d8q߿{]v};]_%gh5U4h .+˨{!O^|.//߸q?S+;Fm*'988a.Y$>>^~g̘ѣG]Rsg0cϝ;GDh Hn|N:i) {QQQ>6l7o^vZA}~Ҭz2^bǨM矉h[lhA5:?????ݫV:uġd]˭-(qJ c!jƌ?A{ UFV8vttLOO'"TZRRߖ}nnnnnn@z34 @k //7xFŋDdeeRljjjjjtpP34x~v}Æ #,Yb͛}||KKK\xŊ>>>ofnF?>\dϜ9S DDD}899wѢE)))IfZiGe͊!Sʖh3;Fe ի]z:Y ͲN!(##c...^lխϚUQ;F7X;zMSbhҎ;~zUUggg_I3gpܺd'frryXfiiY[[{ƍ7n$%%%$$h9,((r劧^,&&&ȍ~ƍDpڶmӓ'O|xرcǎZJS=7̙,C6L&~?s… JKKkӦMiiի===A-k$|"0`?tPff_c[$}r8 پ}+$ ss;wܹsg޽nҸuE4_5u֭[yyyiii.\ЦTLZiS}7e>T*ѣ[Mclk***^C^ 4{ cgGժTQ;F}4X YZdќCetwG/ɓaW]vݽ{͛Ds!233CBB^x1ygٳ%''g#s֭ 6xT>...511Q311 0@nlʔ)7o޼vڌ3h˖-,lQQQ)))\.o;x𠵵̷H;k:\_tttfff~~~nn.\n\\\RReVn&''s8e˖;vz߾}7k׮egg;99I$'5K'nD.nݺ)ۯ_?+k TUȑ#dĈ'O,((ͽvڪU5nR=ͥk׮%ׯggggeeDEE_˲S1vjYUt޼ySe˖ɖoYc9Y uN, ،hV}V1:}$Cl1Pdauuƍ}||LLLlll-ZԧO"JMM_mŊb8 `ƍ]t!"N8eJ6mMD-p)S())=!î2D  7~'"ZnmmmmW^͛5۲X,&YfcFl٢}AGGGoߞ-iӦMPPwD8Gܨc~```HHe53rH+++>CՕ==1uӬBQ wQ(`'7eeeTYE,X{クz- :rƭ[233b1[b-[Ǎ*R+:1Νy&d [ ŋ QF'8$Z4X jKH-h%k2ݽ{WΝ;.]""kxݺusuu%"6!F\|DT^^ioϯ ŋÇG}dܨ S?;GDӦM#lP333>}#g ʰTynAjFVV̾O;HD;vd:t ';$?~X4PTg6HDlFDoճgda~۫W/!?~CʯҥKkY+KKK"H$eeeBfTQS(O"H$X\TTcǎO>D*r8voi݇6y2+W455Ui\.WUTHfVׁaWY(?uͮN={LDp/^jLyFoGGGك㖖&LOLL?~Ύ wn\}9qnn.O2+?.ɫf} D]ٳg333Y 8q~[|9ugϞ,Pʕ+DԩS'庤M+777;;ɓ'Ϝ9ť3?#z SEA̟n,r_}#C<gdz1Iլֽ܊r:0V*?.n?.HR6$A"Hd4x޾\~)SSSS>|^yznң|wBD*[U>jf^:uTO8888;;ɓ'nb#5VnvvvO-dlŸ}T+z- {[Ⴗ={իB077K.w-**ܹsUbtۺo޼y޼y_|Y[[wܸq~at0UT16_8p{m+>ΓM}V`*zh$ VZr+R 0ZIpΝ;7Gswssٳ7PuPȞVL"{zz~w=z}us@R}ɿ6Ȏ cI]DDDppC{…cǎ={6+++???55555.Zi~Y ctttTqZڌfY c-^+s vW](2'O(/l!76vϞ=D:NSdQ~lIc5d]^^7?|(::Z!|_ܐ&-v/Ey| r8ܚ3gtϯK.G}}}vv65tPRqq14|>? ~8}tFFɓll*[5Zm-gu`Ku-1P9:-ۗ^x ;w}(G-,,[q^cѣXȓ/"L-o6(dS_u6mffFDMUhb]f֡47X($7Laa6l6(낂Vh۶X,~zjj*{a={\zQcoƍYk5YX5V~Ѹcԓzh3Bfa\WQ;F`lZN-Ɯ8dk...Yv%dlu"j۶Sjm۶e׿kaa1agڹsݤ;vQ^4<ƮH޽[~ŋ_àmQYYͮSN5Cv@*..nMpwwgw%fVV!}V+ m)cBB BaY{_B/VUUƒ)2dzjM|,8"&z*iָ6[GQi6#lyUc46φu-Z.{MDǏe+Wx+W\|aHt̙  og@XX{["$&&W̚5< ` 327.\Xx1*]QQjYSS9sQLLL||0pnmڴi׮]w٥٥_̞='O\dͫ'Nx.\F#_BId+,Z ˗/_dӧgkk+jjj:wXzlll¾۸;w?~vƬYΝ;wĉ5kGu1 `ΝC4U(?tСCLMM%I׮]CBB֭[M> -|QQQG?~|{b쪶A؝mC33nܸү---y<^UUT*eZiJa0>re,XrHfZi֬RDQZY-d\}TQ;F*lZN2cǎIII6m:|IIIQQ5=:===&&ԩSEEEϞ=suu?~Y۷oѵkצֺN4)88JcƌٺukN g}6p˗/WTTzxx4U Ǐ_ti||OcO%?K``@ D#G\`AZZZI m׮]ll۷PJsn۶-66vw&LضmjiVPhQFh"0R|kՓ*++Y^+--6lla+++6DS3jg&(('&&&--D$uy+Μ9sTWWwԩo߾ӦMֵSbh8vԸҩS'׍.11ܹsD⡫|&T/Au  }a5 H B!2cƌß-:Q 3r^Y,8ׯ@ 8zh>}Z S*X7֭ȑ#ϟإKÇ.͛78;;6 '''wwӧ:uJ| H$۶m1bK޽̙Ę///qM DIII ,1bD޽;{lX,SWW3|pggg77fgiVclI||,/6l%KhRqjyժUǧMzyy-^7(""B QFF]\\lٲ/^h*JiPջ/)(3g 9;;FFFb퓡Kd^Em̙PWWWww[jf -[6tPWW׮]2dҥUQuӬVquBaxx?P[[}NK}4 ɸ+߿C233['33pؒyCemm7nܸЮ]Q111˗/x[n;v·R400̙3\.&!!!;;;99ɯ3)m1FIDAToܸ8N۶m>}zɓ'OΝ;wҥZPX,9sfJJ x#G :===x " onbˇ^p!leeeaacǎ;v,((hժUڔ*͙3'99YJOO6ljWǎe_^UUȲqvv8եJG}YPPpOOOÆruC޽{؟AʯJw>ug/):,Acǎ R4//oժU;vhm6龚NUt…  ֦MիW{zz8P6}+VH$Vwܹs޽{oݺqV7*Yglر<&u֥޽Ryf=8Zi#9\zU&[9$$ŋ'O>{lAAAAA={\\\rrrTdfattrdHDv{͛7É(''СC򫥤֔)So޼yڵ3fі-[^|V+jJIIr|M~~~^^<{ݻwy2󋎎eZ.qUg&66699,[,77777رc3X9r޿Ջ&OW̯Y>K-fQbbv222ݻgbb`Vn _|񅇇GlllFFFFFFttt5K_֭|V=4Ϫw_St[ ѱgϞ[noذ㥦6qdj6VQk׮egg;99I$'5#GDDDH$#F4;J +8dG&JbcVX!6nإK"x111<ĉyyyF^QQQ_}YLLȑ#\zƍ>>>&&&666-ӧʯO?׺uQv.m޼Y|V+D4k֬@v[l>cڷoϖi&((hԩDX q=000$$]2www߲esѠ)SQRRRMMrv;kȐ!Pn(x?j($߁4{Aʯb_>ku*Rq5>e6mMD$5::KMafn9rg7-pFMDeX,^b{qqqo[nootmiVwhLD\.gAΎ;={q^i @W+8|={&4^z}Ǐzxxѝ;w.]DDuuJD\?ʕ+jNNN#;ݻweK222hԩςѴiӈ(;;[(jj%C-O>%>H~yYiC!dp?*z>QVV̾O;J/^`#x*U7\Ts\T~[YˬS*;1E%8::*Sdj:7ԭ;vd:t '6?~Y=|.]^{M*nU,n=4ӡCDĞD}N טC,Ϟ=ٽ{w":qDYYo|r둀={g/_LDg[+))qںu+09|Ɔ1KWrss\wwwe]nnng6ܼ[n _) @iiO>}Ν*KUUUY|&7ogy{~Ar„ 񉉉ǏWUUٱKVPU~[YS*;1E%ȺA%666999 HdR%7Ԫ Uw"ԩ>j_EMŭCfzvСCB0//oԨQnPOuOtsؿg^z5 @(vݻEEE;wVx"]JlzD"%>$$DaÇر9bii)PG2&;ij%C-,ͶʗB{hիSNe3;$?y֭[lӬb>vvvStZ)Sǧ>|=f|ZuC{zJW4n}6Y"UvPcnKiZ0Xln[Eei`Ը?gQEMŭCnP(l6MuOtCA눈?#00';wD'bvgyzz3-E"{zz~w=z}us=ƍlPa)Ւ/W|Vfph8ΫhKJlthkW]11r8ܚ3gtϯK.G}}}vv6]aB/5&225qې~G77+W塡t붶{rdKd먕cggGD;m|Qtt0i| x6RkbBD[~_ĦKٳg߿CZuCWFuvLid]fa$ݗZ%^\\l UT6k&O4gta۶m]]]bSSSHaÆ={_g+ۗ^x̌T|Z+=ѦM͛7GFFj=z u<ͲgyFy 5$+Ecٛ-nv횖+lΝ 5٫W/˄w_~E&gڶmKDeee b333O:Mq]%+lTOff|RBaӯ!4RTOs۶m;ZXXL0L>}رcǎ~~ u۠h\'g=en=)..?$$$׬6UTEC a9V^|T~ԜZ*ŭq )))ifPaBm=;1޽{\!Č]VrJwʕ˗/.[$9sfny{{D5k4(VآEz%Ν 6 /^FWTTDDDCCC5g=1553gdzt 1`+++TʺiDrرiӦYYYiYܪ3 !۷CZAA"͂]YYh"v677w֬Ylfݛ?ru鯥f6M>f>oK6'W~<5:g͎)_I$DfNYݗa*xMHC]g,-- Į)>}DEE͟?… Ǐ777]lpHMXXط~sN4eoxex~iѷoꫯ[ 6iӦ]v޽&fW5g={O8p`ll˗+**lmm=<<^SA> &$$?~ҥ++?T[[+?@@-F`Jq\.w۶mwsX,0aBDDĶmۈHׯwttܿG:t0jԨE):v옔iӦϗқgN-fycƌٺukNص&'t5WuC4jQ=u UhvLч=ztڵ&M Ɲ1t_* 񉉉IKK+))D;wfΜo͘1cFC bcZĝ;wwE$FFF FHHŋ=zT__omm|fr1Z4t_9л#FtBO>9y$Ǐ⢓Xb_Mf 6gΜu֡εp̘1LrcT\-uN>}ƶ\WW3|pggg77fgܙ8q"ڵ t$gΜBD<ȑ#iiiCmp}OO7xB۷Ç.\>[YYYXX<|رcǎ Zj67nHDm۶O>=yɓ'ΝtR5̙,C6bDTTTtgggT_csrZ[[~Ν 7l W\!">߻w׬?'WD4{{nɒ%=z.&N… '^(Ns9&_|9>}_~={tuu={%KHMXXuÃmJחk.77~W^۷o'`???g͚5r~o߾C_HD&"SWh&!0c1LMMcccccc MMMǏtx啕Ƭ lH0r 5v޾}DTYYg}6p˗/WTTzxx*rm{;w &DDDl۶)hڴi[6];).),qppf|۷/88xŊٳ',,{Ϟ=+"##cĉC_zg'R2J_Mb̙3Dm]]͛9Η_~Cpr|鲩bΝ+ t{);wnnn=9kr$&&ܹܼK."622fz{f') ×#"""---//NNN~){z O> 9!C= ^䩖[T-^9V;wd(:о^˭O?P`Z&zaЌHdRP`vyaكz"%T$ZE=ruCp{OL|̥>T'ۜ]=m]ũ/u3hUˤ$U Mw+.+;^([݋4$/Fwmow߉9LL۱Ȑ8gδ9zΕVrjwZdEͮկqqͮ9DOD4ᐽ}]~?ť._ZZև~w}FDgZxc*oKS^őRR"yW]]fRf&5 lzMZ^}PiRyG?B fss-[SS"rqur%CrnN|:!WIdȯl7ͮy4з/x:L8^^)S(Ѐ%Dtٽ{f6췶u wu,,}{|}j<5yznWIW9胕U}ppiBݟl 5  VcVCCȔ~(4/iWN ec]k+yur;t̟+k'yaW-R_ &jwugz[nnl?Ryy-V _rg⃩d蕵u}~699ՎW&i+Ⱥ"HrV 7rt?y.XgfZxRO'w )-5ݵˮDڽ{_%EG=׷]qP%-u.-5m_^~IID'm`2-;z-K|P޳ .WJDee-[^{2deY޻g66mr.[I %3f/թ{ϡo!'~Zm˹))+]2’ׯ/XS)&s第X)[R-Z``S٦.u] R~yCk6=LoRsg3 G!2$;w̉DDTYiomo6C^S~E6euOn71122"l#n?{<=Wͮ}kI@m܇M/^ 6sl4/n%p)++V^4qDrtn*O 9iq.]yzdR38p&7Ba'7v`۵,^,l]֖Y<ɷŜӧK ruæ/jȖttK,M|~/7Q DvO' L rMsȔL?}1ʪ/v"moK 8lz瓝kћ7QVT}ȟ}>`y_xAak>yu }?Q[/̤R77?QJ[ xAqd2C36[[m6Q*!{@X^JpKOXS:uhW :P_\$..lJjwW^RCP@`-Kvᔵ|..˂;!8BpƠMrjhȐsR=/SȂQonj9>|]Pge?ozMZb93hnȾz'_}-|Ȩ]jAp-g}]]mED׭[![z*[ "5[p52 @]x!osoެf Gw* kք^LOϝߧO'ij6n )(p('&w޹JDuu\ٚ}2\l|yo>krQ99u`9'f6ߔ=66^M~ܙ3qq)$͛xyKLLVS~弼7Gׯٻw;>fÇM ݫk~R  FEYZd1=8گ}|_={fml(fj!@m66)Sf6ݽ[+*ׯ)so?W3}ѣ' ߹sfݻqښddvFݿ]_)n$CP;nn]Rbu,2|DU3dHUnZnqqޕ -\(R^3,lX̓)rBCJ9FiUX5BC=6Ye=l4 !d<7ۦO7H$MLߟzyH4Ԁٲ?wҥ>F{.HBC c>۵ZJDGf))|?@ !䫯,zKDt8(cNJCbIRݺ6| _7!"$DJ"Z_&mӦܼf/w~ؽ{'&.]Fq^9DTWqw͟oѮtǎ6/!;w.-_.}1?KKbɯSG<QJ<H8rgeKe!OEVzהd$3#ƽns MfN/\(;OnsvgQd1Ht7'zіVI>VYh Cz-jG8tã,@p4x!sE6dB5fToF (6z$1p̘/g4? .&3'mG=39>yup]J4bN(ɄfEq2NO'ڂdB#:wc~.l΢oLy)ͩΌ#zA}G "~ckJftK Auzuф*LŜY>ːajeDS1<2bN#5:3֘XG٢nz>gO'OzBDT!GcfqȘE G%l;JWZU ȶe}:WB_V7Ƙ(1Y!_m ԬjɆ,JpΖII)BDb)k8so2$"e@{U)펼VwDPH5 h|[}jdtR!ɔPzDDT%Z KjkJZ@!9*IMcgiX1F)GݽZ mkbsx2{HFLf\3on m$e)\!i)jL ODi~ܧJFb-TF!m+Lk!eLJJ)o%Vz,ٌ:e64!N?FɡZR]n_U+tm,zx&,'tL}Y]&'r4i>[H[E5V+UVrg9,$Zҫ!Z;kfJ)[_NIoHu!kzTLB٣q=ʶ SN pOtGJvx_RH^FvDzG dh@ŭĪ&3K}6ٜNjGmҘ" C-eJw5QpޯМE> 9ӫ QF$7ˍf?~"n?СN#"T@O ѐ?VHi=ibVOӓ挄>k"}# YT#VAL̈́ i: <i8^ O@C7z!NTWDD2 <Az;$:w"2%8 w^!Fq-34YZJ 7؈%D"]74D"aɧÑ@o@[n鑞l@ɜ9EEz}0ciy۷9z%/4qb+S,&]lXR½__(d3$ÆJÀŊŬs猯\1onR}K/lfLa ۷ >cR11U> E*GoCVaaa( V__Y^:6w_ӽ74SW޹s@XܹskƎ@4ڟu_%*Z_*%$zcY]Y5t,tN4t+xFкgs=腤Rxd\QGll /6Sb1+!LpǗbwFWWXOO;躄3̐" GTJ}ų򭭬K?ţRO*?%%Ӹp ]7Z iooW {4޾Eq##|!:tJ*ZZJkaofkoh&=Di|~Lqv$g]|P)W*)WTĭpd%VsDAuw~6ơkaSyU:wq y+sTS|$1@ӫgg?E4gN-땛;r\&ؿf)3xxNN͊?rn՟jkٷn=mRR•/YV=k[n5rAnC^O:sfM\ef|Dz55KK jk&  ([sf~3w1Rp Z[-:~T /Ry;th˒%`m>={ t^^B//!UVoIоf$GôiMMzqqf7npuu#u}wpРGͣ<|\sq1[om-nزNcǀJuNht;ί֘l*m}a݂:jtJqxR!Racc۫\QsΩg&Lh`.18eoY+;Vts\rpĈ& SWYR))%s#Q԰k41Y5r g9;xWWO71z{QQrrH$kia1{t8ED3f17.ZZJfͪ۽?dto[N4t]33X,r[zϬuq`dG$IBC~vmmŖy4hrK_]G*ӯf\w;Oܽdz0B?>CNllV:VC]E5Gg1l:z/')=y|M73)>-wȐC~j<|xCs[VCu|tԴUu4̆[I$T-Ǔ*abgbjZWV,V:6wufFn47o!JNDVVdGPYOb:AONVs݉G{:PoЌZ䰩 #TUWUd!==J"bV##Ju;Ywnx"++>wW^yE)S|ws+*3P+CszTӓefn4Hʚ""ۿ_֕+裏5X,\XԬA5B~V={%= 4H\U/i@D΢\ޟ4456Q|hF_T222R#Jix!V3CbQ>|̥;XXjD+TȰQԴFܿu*ίUKD+;oӕ:@ؕKcƈ>/76@_zK?.Ȃ\] "ҷZq/BGJtF=1щO3jUC]nn{<)A/'hǎ-E$?O]:?hdZ{IίۨnYwAy'I6C3Q7gOǚ\e~zɏ?؈-,ZY,ԗ?.{1c166gH__Ɯx<3I ݿu@CCiSx-KB֑ ?#޻ٳ|̙VV12԰)?`FPwЌ,=c%_ͭ]ߟuZZXUt#fu?ZZ(tjEC`Wvަ+uVk !ӦotilԻuՀ_ߞ9N,f,ʈ襗/_?z|ٳ8bDSaaGuHXoܾFFR_:9]kbsy%e2&7mZPȾt,S$z1cD{ƅ{C4ZԤA,z:56iß~zttX[˖ x+&On8wHq,͜Y+n^D,Y[a!_D__痷tڊvZ;ؕybڂ:mAr /4/^\nrHkƏop-N}=J[ SQPPuVɥK< q_Ç7߼ɭPO$cPwtl4oլ00>((0pР.bo˚nG5΢l2eh(j Sws?;^yDzѝ;FVk+;f%KV8Mek+n BwPkwZ¤C21  12 UKD+;o:Lؕ Vuu5YZxS^-Ɔ@`F+mC"s+2€4@H!9BrGY*:[w•C@rH  6447@OÀ4ϩy46334hЄ ̙l|||YYĉ7ׯ_@``M],͖7)nBCrZ]]]]]}ʕ9slٲvT;88X[[?w=υy0!!ڰa"}]ZZ]]]իW=v7x4>~ʕ]\Zee'|2vѣGQnn7|#/tRXbŊCϯ^?U\`RRRxx8y{{_9r$=x 11qϞ=b>>>̙s9Ꙗd'|baaQ[[߿ΝzT+tjEjDP(LOO_'hF!(a&ܹ?~ʔ) ӧKRψX_0s8GLLɓ'^x%XADzll,b[XXi\;vф l,lӦM۷o(9| Ehbp|>ϯ;xVɟߣ_t|=Ȉ ZY bl"*--p(ɉ3333޽KDk֬gr׬B0''͛ Q~~~ee+uH"`>WA<;d_C.^|Պ K.V2+ ƣhر2Twբn4kjj.\>g_|UtfGG>!(1߇ɫ8L (H$O߿:jKmm-3ڣ|NG;_A >}O>Ν~abbbaaT>nrfںKc:GunȐ!0r]YA //g啔dddddd8pz|GPvUfYן5`"dKU[J%y ꫯsrr(555%%;3@/o7 HAYRR=Z+W;NDMMMx0OJDS|r=="lĈiG!9eE9880͛bqoVL&MĤ6mjJLMM'sѡCoh*GyPYZZZ"4hw }X,nllsNjj?ϵkє)Sz뭞 8ΥK.^f"̙3˗/ӎ:|믿4g̙[nU`ʕeee4sRYY9gy'jPWWרe˖eggϘ1xzAUUUEFFx<# e2ʏe>}eeVX_>|ȑ#|>_(2uXxV+tjEC&eee1Fl6[~tpr+Vbcc:423fX~fmT 9b?~9sTv)iiiQvW`ڴiYYY111O}Ç͝<<((3&&&33B$ 2W_ T|++/~}6zG}/۷ŋuuufffcǎ Nx ]ףpΜ9sڵ;w444X[[/XW_Ŏ _XPKK}ݸqyN}}mTb:"9 YfM2SzI cGJUfTǾw}%f&=Cl u}@Zffs ͥEcc.s.ϡ9WUʧ-ZcFðcccK.yh)BrDDwxlT*377BRP(455} 3!C$>M>Lc欯[?eW{fRN>SSqK?Dpt.e2CA=0C[tC "˛5kD7Pz%"$ ߺξw7o1~ɈNG}P,">}:6Tz4S/Br$,HfwB[[) 9$@H!9駟 w}g:裐C@r!D"ٻwØ1c,Yr֭Ngff;;}t'-Zjgg7j(//4#""<==_766*Yx@ ػw%K&L?444:99ڵK++>+66V xyyaxNtSa ŋQNN{ꫯ]I͛7׮];e''aÆM4i͚5LEhX,^p!q8)S,g۶mDbSN:u*88x͚5Jٳ~z*...**V*|ĉ㵴\zիqqqn"Jϕ+WN8133ĤjӦMnnn/26.ȩi$$$Z͛7o 544ٿDDD"!"rKKKKKK+p/***--f.)))**:v옱cNKKc2wy'??ڵk/_ $;w8qBpUU͛(((ʕ+yyyQQQƍSZrnnҥKϞ={ׯ=z?T*occs|;;;DVPP0k,"JIIEjui#SYY';v߾}999999J-^RRRxxD">u /_qF l)"$eb8::-Z4|CDƍ۹s;v &lٲ9133۴iɓh튅sssb1É033cf|???f9"""bq@@mۆJD#&&6.ȩ14nd6lؠ@X,f333޽KDk֬QjHXE:::*tKaaL&#"cǎa%/\]xX,Պ rw\Dss36.ȩ14kd;ɥK^v@rZV[[KDfffs0Iչmŋ|>!!!%%%| ͝;WOpzL&;w\GUDL( Pch0;\rFnBr}WvvvrrٳgJJJ222222RRR8t6dȐNC0W8_@;=@=eDT[[@Zi|P*se|~@@W_}ODc 0*++uqŏ9/J;3ٙ9}ϟo?P;?~<:tH~KDGF|Zh~͛U_TdnmllϬijmtjҤIDiӦ=v<CPT*Mo2_d N:zuq\Phaa1k֬Q׊+Ç9r Bŋ}}} d,|>fO/_\ kTTԲe˲g̘ry<^}}̺g`tٳᇟ~駟~חH$Æ [t-[<'jtϯ*22255555q8P(ɘn]+}틌9r3;i>:r䈏yCC#""Jnݺu̙3}}}T>pڴiYYY!!!F200x𡹹ĉ~W###q֭j…IIIx~TPPӧbD"ѐ!C}cǎaK@A,-Y}(zrCZ3k֬)S|w<!j5hz*@g+۴!9Br!C $@H!9ЮO?T sN<9{^xA aÆaEeee'ND4=ɓ'`~H">>ܹsD|ٳMsNCCClJ@ h $MMMMDdddP-HAW#""<==_766*D˗/3f|p鎖h"WWW;;QFyyy)ٸq@ T/B L0A*mNYLիWwέ111SNwvv^t۷1d3@"ݻa̘1K,uʒ .w uvvڽ{X,V*b @b K>GK37o\v)S 6iҤ5k3͛'is:qĉ1kiizիW,--%?rJfݻAAA7nTZ={֯_OD,‚befffggˋۻw~K ( @OO\rE(___"tq"z5^Ǯ9//,XT QVTTڿzzziiP(daBŒ555 .ppp(Ux3g#F_:vXppp󼼼Ϟ=WRRr4ggQF]z5!!!$$2##קT:4hKtB l۶C/??}ٳg2U֪Utׯ/oaa̙3;YASSS"sNGԪÊ:gggڑ#G?Ŗ믊s☆eܸqCrss3+++U{b ѤI7m2f/I !G* 8ΥK.^DgΜY|ɓ"Ǐ722dD"INN^`Q%'$$;pԬ[yzԩSUևÐ&71c(%%3jՙf/]bccD˖-Έ8kOl,YBD111dN]]p!88%X%["3h]h˕fO]/_|ر*3qaÆ1ݱz+UWWmkk4}e˖iVE;wɓ~)ϿwU@@C:z~|ovԩիW[ B Yf*뛓3gX̜) U,4{~᧟~駟%ɰaÖ.]e˖K~~~UUU<BL}g NL6-+++$$dԨQ>4778qbXXدxm011D666K,IIIak)ݺu̙3gL744X[[ũ|oAD֓&MVVV3g8p`EEE~~~~~x jՙfݻ722rĈbX,Ϝ93))ĄT^ >A__߾}#Gן1cFrrr'~0`?8|p% ;v 37eiNyHisyə5k֔)Sg2oF~~eV^K/^8""{;jb[p_~%00pӦMjr(tBש~gXyv3gф 7@rϸw]N eeeɇ| :t믿mgҥKϟ?=TjllnݺUCqܡCDrTjff{nyrϬ߹sM<tppxZ5 *++{O:Z3+!!EgCÕC@rH!9AWoF/2yyy.Zl@ d=f'NLWTTܺu 1x*dhh(DTTԆ ^>`mm0tCx㍮AC@r:S^^9|pGGG0a6 Hb @b X}vOOO{{{UVUUUu8`kk;tǏ+h"WWW;;QFyyya};w[lIKK;r,*u>p/77wҥMMMgϞ~׏=PPṔwޝҕ'N())9|qڵUVQAAO?#::ZȣjDtʕqaxN\|9??N"䤥̚5RRR%lotttnnnIIIaaaQQƍlvlllbbҒ%S_^XXx7ZXX(u󕒒"H⊋KJJon``p…?\hI ݁/""B,l۶mСDp<<c u:###>kŚ6mKΞ=;::wyѱc+#""_9r$3"((())Ip4_[n}Wf)oÇECI3tCв .Q+{NNNDcaL UOJJx"A,|>!!!%%%| ͝;WO}uƁPKϛ7lll화X$]dJu|)(YYYɬѐJ ݁tbȐ!0f裏ܬNNN>{l^^^IIIFFFFFFJJʁp9ŶN~J",]?1ḇcǂ;:EORk*ױ3h 8@˘N*~_ \[[qꫯsrr(55A٠ŋeeeDRJ5)//GzAG3ͻ$eDԔ H=ebb}v==ݻw?]`۶m yuOܩhaa1h TŌ|=ϻ"6_W\QJ*++V)Հf3tCPX,~#͛7n߾D;sT^^Cッh˖-/_V ʷ>zkyk램_~DTSSS]]8?77O4]i&qkJwi|=1riiisC[[!G*gÆ ҥK/^d"D3g,_|*-<<<\H$O;:|aaaaGK'$$ȻxԬ[_<t=㍌d2Yhh;wH"$''/XȨ}yIDiiiÇ)֬J4˜+?_|AD*+g\suuZlYvv3\.ǫV9,+>C1Og1ceV\܊CmTVVΙ3G^ ,,lĉZcǎiӦݸq#22>cd,l˗;@|uV^K/D!CZ*<<["##SSSSSSy< 2XoI'Lj*!ĴiӲbbbN>};99yxx̘1ǡq38{}}b"9---C ;СCڴiӈח9sڵkwihhvww_`Ь{ ݻwD"˗gffv OOϘ̊ H4dȐW_}500P/ yͧOwtt={?OrR>@w[,-1~S^Oy. 3k֬)S|w<!j5hz*@g+􀠗9Br!C $@H!9Br|wE(m]YY@ yyy>xǗyxxL8Cxǟ;wsJ! 9)//>|_بXf`޽K,qpp0a?k."(11qcƌswwN>IMn޼v)S899 6lҤIk֬),,l_233sѢEvvvF KKKf($޽{ƌdɒ[nax6SJU:̜ 0}J իWFPPرc\\\{=e… <<Ν;^^^w@{A'N8DD<իW^MLLT,u֖T\rĉ&&&UUU6mrss{嗙Ǐ_r%3mdddhhx䠠7#""$ S.[ZZZZZP\\XrϞ=ׯ'"eaab2335X,^p!spZZZ233LC['n[VY瘘uq8]vM>iee%ʕ+Bvw+-?϶mۘjN:uTpp5kO^YYill,Ɋ6nܘr8|}•CоܥK655={ׯ_?zCAA~Tvvv$'''--`֬YD"/f}}}sssKJJ Z6䤤pD}ԩׯ^|yƍ%6oLDAAAW\+((7n\wf;vرcU4uj ]770att<3$"6G&"/V\NZZ;׮]|r`` ܹĉ?&G|'##CB1@/""B,l۶mСDp<<k„ [laRn33M6MwjJ6Uuuu*HA' ɯZD$H.]Z[[矏1B^رcNNN>{l^^^IIIFFFFFFJJʁf=hz&tñ}ust1'TVV*/QttVYꫯsrr(55UqAQmmmj-}:EjuN:6l?~x":toF4 믊sMͧJCPT*Moqφ 8ΥK.^D3g,_|*-hFFF2,44 H$ ,022j_DFFQZZZ```AA3~~~{mԬ[21П }}%KQLLC .0G*kS+ujN:+ =zX,V%1f"JII+?{.<<<##BCCUkŊ̭$>>yXEkz Hlٲ3fp\W__/?ـ|>ݺuWNOO饗D"Qss!CVZ-~~~UUU<BLfllXR&eee1]|>͖n_||r |۩SV^n:.+ -,,f͚?bo)RS+tݯ3ٱcǴinܸg)en>}eeVX_>|ȑ#|>_ŋ\__ߜ9s昘b&(xptbڴiYYY!!!F200x𡹹ĉ~W'b011D666K,IIIa3tÇX,H4dȐw}رc|}}n:sL ־qqq*u틌9r38<fhm:ёɫ:~ ++ę3g8"??????}ё#G|||̼<C ?Ϛ5d2''5k>|X- )/W*=UY+rrrf͚5eʔ>Dm /6mB4@+A@ =6me+@H!9£,k߾}ErH!C $w  &|AWoV ]駟 w}g>i|uaRx6'2nBL@2<-><~xjjj~~~ee%2doccӾ~ҥK.o}``MI 9;88X[[|0!!ڰa ϘsçͭAX,.,,,,,v5uT4-Br}odЉ9sL͎MLL><][n#.HO:u˗/oܸBdUU͛(((ʕ+yyyQQQƍN4lcǎ;vf&3gDfD`ŊIKKc2wy'??ڵk/_ $;w8qGDt⒒/ddds---Dꊖ@EDD m۶ :8GLL 9ydQQby###>kŚ6m={vtt9&&&AAA#"GB][V###""_9r$3"((())IpnnX,p8fffL>cC!hѢEg.7nΝ]wi``ӝ|ք l$?fff6mFGGkܹ8P__o``cxn!9-+--pDDYYY󭬬*~o[Gri+N:mjd233޽KDk֬i+H"h1< ~[qqPt'tyǎ6lrPCDS  y(һlmm===̝;jkk`-[ʕ+|t]A.^HD,?njEE_9CCCf*L477լڿzzziiP(JB!vgۺ72.]""kk^xvvv677_pCGYA1p\GGtӬλvb_M:ZALFD...J/;V^IkTԴ@g*>{]UU… -[ -!9-cNd2f7D"zzzJ2w*yjkkޞ...i[V#\J|CBBJJJ>"266vww;wJbjff_3 BYx|8666>>>rss={Nw6s544W^=zCkYvŲ2"Vs<][n#Ԥ"JMMU͉} Q]]Щ[篿yÆ  Nz#FJ%yN֝3^H$-XҥK/_>6g 9-sww'&:z9,,, 0 ][n# =O"@m6f|/Qss*uLN۷eee޽>.#F0W^e&#vveeeuuuDԕ[۽9((~>|x\\޹#HA=b6*qpp`~36oެr۷oEE槮\+a~Fpnnӧ<b[n#3i$MGa(ZZZ'?1̥#G(?|:,7~`"ڲe˗U155%;wt>?~x":toF4 믊sM~똙-:s挽ѣG#Jt asҥ/2"̙3˗/nݺիWKfff"yȐ!V Q[A#WUU8P(dƊ%e2YVVQlOe|o:uj֭rBb֬Y?cwB:s8;vL6ƍ}R:ooo[[[gbNZbŗ_~y#G|/^s}}}srr̙cbb"ãL{]yyS޽{?ʕ+sSSSLo߾7DcuHA'Ms۷o?|cƌ_a+**RҢ8hs{q3w}}K?@ ؽ{w~~H$Y|yff&6=sEGmLPPgLLLfffEEH$2dȫXח9sڵkwihhvww_`ڝP۷o߾}qqq7oן1cƚ5k MkkkLLԩS흝.]z·Rxb<(t_|XիW@/^,ݻd & NNN...vjh gS;(/_=f;;;ww>ӝ͛k׮2eӰa&Mf͚%333-Zjgg7j(//nB"ݻa̘1K,.62ZlmmzHAAAcǎsqqyTn  ;w:;;{yy޽[,.:k#u%з[)ĉ'BBB㵴\zիqqqJe2Ϝ9f[[[O8p4ƍlmm]dɉ'ᴴOYYYZGoJw\rE(2UbXn"Jϕ+WN8133ĤjӦMnnn/NA4Ǐ\622244{nrrrrrrPPƍd ------MHH(..V,gϞŲ`XEEEB,/\֘V4)))33sʔ)]7n:k׮ӧk"?ٶmS~=xԩSN ^fMϽ+++e2YQQƍ322E:w}GboCоܥK655={ׯ_?zCAA~-'N())9|qڵUVQAAO?ԝ޽;!!!!!!$$;qZvmaaaaaarr[Rg6G&"/\|9??N"䤥̚5RRRt] uu]l__ܒB&`ٱJKNJJ H$ާN~zaa˗7nhaaXjDtʕqu'QQQiiil6wIIIQQѱcnj;u| DGG+f,HiiiL;_vˁDsNܢ=Z\\\RR_p8 5tA:w}GzoAr!m6tP"p8111ɓEEEJoihhضmiXX+edd@[[[/]А\\\v):z.|rŚ6m-'ںgϞ;`fIPPмyH)DƎ9oaaX877W,s8333f&۱cơDhѢ3ƍs;u400f>k„ [la2%33M6M}O>Ν۾ "fffs:꜔D"3O7cVT]@iaS}zuuuꎺuVkGQCr:1dȐN~N)/;(H.]Z[[矏1B^رc<啝|ټt*.BA>GY[[=9q =eLgJs۽9*vb0wW_Qjj∩jsjN:6l|Xq~^^^g6hԔܹQ L5 )u#NOn_~ҤILGM6to[GOPhii!"}}}͢\w:r+>CiVgі-[::?:teo%ѣG+FCD✸8f|B艿YI8@#Jttܳasҥ/2I"̙3˗/>yEk5;Vڑ43~5**jٲe3fr<^~&X>=tsČ3֯_//rJjQrΜ9aaa-Ztܹ'O|>޽{VVV QQQuuu޶LOlٲ ]/ق]u֭^:==^233DC YjUxxD_eIDATxUUUEFFx<# e2bILtOl6[~Eh'h>N:zuq\Phaa1k֬;~9Ύ;Mvƍ>LkŊ_~Ç9Yxoə3gX,f2^2ItwP:w}G,!ĴiӲBBBFe``Css'*O~+44t˖-h ߿~}}bsm---(6f9bX,gΜdbbBDZUbb̙3XQQ]o؂]͟?&&&"fɒ%)))LMN>8|p% ;vL֭[gΜtP1l"}GG177ohh033:x`DD0`?lÀ4:t:T$KR33ݻw?qtgffIR;;;//C Ar#MC/=!9€4зXѣo֗_~644899)qvv>qD Cb'Nd+**nݺ(@ 騨 6h0(A+ kC@rV S^^^^^b h"##333ccc/]TSScllleerbx}YYϟ:u5kj+ŋ=So'|,YD'OLKKvݻwB;kuT7odffVTTb[[I&-X`ĈJ%mr 赐N8q"$$x<^KKիW^giiXxϞ=ׯ'"eaab233/\&͟?̙3l69...??ĉGjKFf֭---R?\rĉ333MLL6m/3%?rJfݻAAA7nl_GDDH$&\.4!!XM.]ٳׯ_~ѣG >CUUU7o&+WDEE7NO8QRRr?ڵkV"~IjKFvvv$'''--`֬YD"/f}}}sssKJJ 6nfccc.HO:u˗/oܸBMCоXm۶Cp8'O,**'""̌vءr ۶m355 suu% .u###>t uuuurrbXӦM#yٳgGGG0cbb4o<":vbbqDD뱱#Gd[XX%%%)֠Q4BrZVZZz" QzёyqVV|&#"DRSSŏ=t3f_Y#D|>ݺuWNOO饗D"Qss!CVZ-~~~UUU<BLfllXO7kHA'Ms۷o?|cƌ'}}}9Ι3g]vΝkkkww =V Eq3F|}}}GVaxh<ݻE"333;zKPPgLLLfffEEH$2dȫX7S,KKs^\Pct᜜YfM2CQaD[}S9:[ئMup!C $@H!9Br!CO?n__+V+V`*eee'ND4(4}C-ϝ;GD8И]V H!NyyyDD}||F2a!}Wnp@xb"y\\\^}յk6551D"Qbb˽njcgg>}j߼ysڵSLqrr6lؤI֬YSXX [gsj 233-Zjgg7j(//%%޽{ƌdɒ[nuj5 +s4k̉H,o߾eժUUUUةs:qĉ&x---W^zjbbb\\%SJ~Sʕ+WB˱SVZy͛7oW\ɼddddhhx䠠7_#""$ Sm.[ZZZZZP\\ [g[j ٳ~z"bX,(333;;[X,^p!4r8)St4]Yc.ϟ6  !9]tX,_bСCbW^]PP2%}|||||9s;w?,,+RYY';688x~7l6 @D>s mܸq;w~jua۶mzzzaaaD @rZVZZz" QzɉY6lof*FD7nPy]"ZfM7_[+yP)xD$Hjjj:_rnnV?n8fݡVèkvvv'OV+ @Rв/ۿZQQ!:#ߟ^ZZ* R%PXҥKDdmm /nRgm kjj.\2UcFrJ/9;;+7־=tT 9-$"L XH$1:ϛ7lllA_Qg߿ >W۷|'Ddll7w\=yV̬}haaj0ZL7 L @r:1dȐNDtZ77?|Ĉ;̓V:@VS啝|ټtS0"yxVC2SPeeeVrŲ2"V<*]^^WV.͚>W_QjjjJJ9ֶSguFzbSEBrZNDMMM999zzDbРAJ/-"޽{*wgI@m6fl|_|^XL6^͛7;6Гzbmppp`͛7n߾Ԕܹz׏jjjN>}}I&Y[[ѦMڟ&g @Ne"jii!"A˒GQ,y #stnnncc|feeuۘ@OBrJm:J6lp.]pEgH$:s'OHk̘1Dkw]1~x###LH$ /p"##(---00_[[{a?? !Zo8kjj֭[<=bԩK,!2Y R6s&˜j.Zv)m'a@>WWרe˖eggϘ1xz9.DEEy{{2>}e{U3-I/ԄBUҋ("UPX-oYduU"BiH[:Q@d&cBzCos3s9w}wڴi;w|衇L&bWޔ)Sf̘.yYm۶m6FRέ*)p\{Uh4S&MԪU+-=[n6mڻᆱFcHHȠA֮][.jؤIYfÆ 6ljv=""bر|ts@yew{?~啑ܡCS'5k_~5jԈ?~ 3B1bҥ;v3Laaa͛5jԨ;v9QF*d2իWoذa֭+)۷G}4p@e"ZjwʕygJj/5kVjV߿O?Tv VԆ>8qb:ut:]͚5?mܸQ9=vJ1rAh(N\\2|.у ޽{TT5 )RH[/ev@V"2x`!CJl64!J\\̙3u֨QƍO>,믇><-3&<<|ܸqٳgԨQZjРA˖-_z;vpoo7Ò%K{^tR 797ӦM˵vy4<@>l t֭aÆ-[2e͛7yeMy*, >ܽ&i 0z*{ƌcƌ^ze˖;w~ҥKovݛ4iѥKӧJQ&6m4~x`Z'O}z9Z͚5W8qh4֩Snݺ 6u6m(/\Pz.kĈwh4b\6mtӨQ#wkpլY`eM7`!W^=eáyҥK.M8|ׯj̙v]^ŋ/^ٳ<pϢѣcǎ5C ٷoϟ?wEFF>}_wСC5l6ۦMrm6>{ە /?~ԩSȑ#E>˻ЫWշhBD ڃ˽?\ioiӦs-_<66ԩSSLӧOoذ"PƏ~+ivo= a,ɻ;11jժŋ<Þe6n8c ޳gϭ[?>&&~ 2!J̙3m6СC͛W~}t;v\hN۲e˙3g_~"o߾?"Ү]>@4gΜ]Ȃ z333͛׭[7Z8u֭[Ȯ]x)GƒGyd͚5ON:k֬IHHQO<1uԵkٚ5k_~r䙥رcgΜ\cZ=G,LNN.0QFumѢE{쉏7Lܹȑ#y^JJJP=_N\\9N\rу ޽{TT5 )RH[/ev@GHSDBBT<[p2ԤIC_[E*J/3޽u6ݖC!oUbPTH/66*ɓ6[iWYYA0dCi܅G* ԩ{''l7n:|1z//(%RIDzJv_||o_-U~t{'xRV>}@%8##р?44o~&kRoBB[偾7] LI #|RS҂'gσU_رmഴ>ԧiSMz;́I)~ׯZ A7 6hʃJQ6T_fm5+W.]j-US5ժi7<׆ @9}͉:hǎ?dƩSboGt9)KղeKͫSK};:oݴɿS_nS'}2ŻgO#\qIs$ohx@?y ϶* jh/<5j;KNh2E8D;pFv]fab_ǧX%#Fx|ao94iTݦVJH->dh4Οw֨RUzF-ӍF>"#?1}3..,C|g2t:bq)3˫n3j>Zoo*d àAQ9P|δ4׃jDo_;*l69}4\5j;uzyK4#HJr)("mj3UJ>׍^rZ6<(}=,̟3iRV=fiGݺeOvqs8'p"ҳgW+?^_zxƸJ-}i^}5ʕW^p{EETYD1ϙcf43K̟~jw7t>|vHIqZڵ6Uz`{rVy,S}USA %q399[դINe=33uQwԫAwovo={_ h۶bWz~3gf8"#k)]c,9㐢@5H OdptʧZJ#wP{?|SR@91KIV Eo۶e7wt^z)?Wj6D$!疇6{̙&MΝs[}cpxf5gb+%%{ϝsLxܗm:[s,SϾ-9?諒'M28Dqٽ*UN`~@}JJk֜O+l~b;p~}iN{J-ml۷OpT P%GZ]KQfS7}Urj^ǎ9=JSx{KfΙ⾎drDDI&]>+KDK…=tNxf+,Gڲ%j{\S9=]OeY|@""+\ty|-;>}tkE[տ8xôq#('jeu3??V+Otᄊ" ,(ގNq5kٲsJk AӦ)Np;+9ק\e "q+4wl5l| rj,(a/ѻatkWc``Z你L?LQRSSu[t^7nxTnZÆi#Fd~UlVo7ۺg*U)glUbbvhܸ>z(Dܽ۞rr%uӕ{rbbSS:WʭW/hC;Mʿ+iyUSuꔳ۝vUl.9->LfehUugFFj""Us,ݞ߅7^sB E@@ytC!9d>ZjWx^<8$_W[_}e-̮`U^9ܹ}? JEӳnlOxys5~hV~Jgs #Gz>K_r1^)(ݶ.**;h4vg`UK=zဗ^=DrrN#յvgyNpС^zHjѣCu]t`׮Gڿ9>oH})NX-Xau_gP݉T_ \lYQmPivۑ#֭5"Ҿ7\ o͛kMsѣKN4oi&Zi#G['lٳdr]W; r+9TAt ᎎ;wڿުJVu:}f2Ʉ笃em{g'j V4 ڴivܙeǍrw͛.E۶˗cb6Ȝ9Q-_cozHӦӧRS]AA*wbs2G)!*)#Fd=ֆ 6edQ)a}{mX:D(7ey{^x!BAհzm>ؼ`AvWOK%s#U}f7j,S$3:eٽ?hs[P=G'?{B馍^BBT;f˒"f3fjV+T|l)VN>;*ɓmӣ7n,9}1qb>+::zРAݻwsbSxW fXީq>{=VzPalm)y?BUЗ2;d&)%_##[/Ƈ־nfQU m(9D W} v$&:}}U9|c @UG*pJZJXrhPQvﶿcGmÆFJIq;XƶdhPEQ.\pNom(! h`R@8(gNq>YƵ'K5ؼVn5F$h*b@\}119"R­_|ck?eF W!&yXK^׮N5S$[#G f^]֦顇T܅&Z5Fם9}>1Qj]AAKYkۊ]XA[.!P~I/"z.moQe?ipmGm깪8rİ~}`! ;ti5&Eŋc /ӹ+t"Ѹ:v|t5-.N=XDmb_|x"{!,]N55Je΀"Z軐J[ ]s۷+&? U-áڽ索BţC]&r:eӦ'Q(#Ī.],6 co}5ZюQpAY,S @mW *86DDX6\/>BXmĈGZ&**e/9|"rh Α#k׶mk߾}={9 僶;y$M5kU*U?sr޽-ZZ(#CD$ .:qs椨S\^wڮ5͵tu:ú糞yڵ!SY.pZFY@OPVKT*IN֊HdAtk)Z„⣭CԨa6-A9AuoIIZIH0mPF8(>8cɝ;ֶ:ѕ>DNYޡRUp >cg/91iBB"r^Vj.?偂T8J {nF=@9WYhckSommΰNDĥ~iڴeZ ڟ~ ~Qɺ`ڹhT_!}Սh''M׻X::ܑժRճ0mPF@yH$\\W_oak,$c.ӽ #7|ܫQYqss~v߼t+<ֵk&c,֡0l7}.(L[! F%x/93ׅ:CK}<!<%߁I _( CmܹsC u|IU-kZjk}<2:d\!!xܼ]WrYYjgiVRS5۷v$m]YC.^Z$fSH^H.ϰi뀲N@qT|ӧtkh 6r.e՞U.}C{C򣸈o(."bܹzoQ/EǍ>hz衬n2D/*wD[tkɒP%je6dX´u@Y 1'`CBlggȷF4,s7.9uDYhkm⃰jHM\UjŽsP-_QK0WJo q3:^Z*vurׯksQvh뀒R8f;/ʟ&wMM̿]Xl*"zZfKb\+PCCo("5k6(?;;^rBSVmn7\6jN?hPB'".y͟_=W5gεb΋(9zsE%E=b}Ľ񪛫9.M.k?~1ъYӳ<;wK^=glFd6,Yu{LqkW 2AA=*UmPrC|]˒FF.P{8C+k kO]v%( }L}j;jܕ&xSYOɓCBBl]>h7&hPU%JJJPNȮtL(43]OuV{; %sW5WUmgB Խ{\7&SMRK9S{#E$Igylsګ"lֳ|[P@E873/V­9Źo8NPI@Uh@wxMŬ]IfVK{ODj8j04ʃ"!P"푑RٔˇTNuPpZ)p p!@!p!@!p!@R@%v)!DD,˵kw:iiiو40)La S.^!P9vؠA k pF{ܝ0)La S%, T !rt%**zAV !p!@!p!@RE!p p0yɓ'#ǻe˖7m4<<<<<<""}Sfffn:@5(UVnbܛe˖QFKD^~e^ooݻg}VooիW+_|ٳܓR۪UdءCJ=(Ν饗<} <SzR*Q|}f[v(#C>+ܮf[`An6lزe)Sܼy3ߒ{5jTV4hвe˗^ziǎʌ3&<䓬2Bo5%0Q'0qK7S{3mڴ|ҥKovݛ4iѥKӧ6(E\sbOEdС5jȷ1bݻ5X,+W<~Mt:g?p޼y"Rnݺu^{m6GYV/СÞ={n޼9gΜ6mڴo]xӦMǏW j=yɓ'ׯ_r`FW8pr5k,88XY芪HQ'z5k7{ XNu뺷Ӱaü;W_͜9n+/^xիϞ=;Q'OܹsF|26m_|y.]F_~>}zÆ O?ە, /[!!!?>uֹ~ G޽ccco޸q &]vpxѱcl!CL<~6_~6mӧ_%KǏ?~xe9""jۏ>h+Q't^zKY~g?dȐS'7n1ckE$99yH9(-VPz| ܮLffyuVNںukٵkWMk> 9stUD,XkzWJ֭4iRz-"Νs9sf:tyi$t:]ǎ-Zlr̙`Ulk2sI`6m̙"/YDI"2jԨ7N(EC˗Gqw.AJqԩƺh>|J,/=׬YSYPΜtx ϋ/dƍ4i""{-bFsIsu>}z jժf(EV"GnZhQ@׏U^]D222kbbb\.l2WVZx^APAСC"R|ͼo6*|KRwtaUVӦMy5!&11qժURýh4Q"55UY ^^V{.SDO屔Q1e2JrQ\z. 8,,@9 hKҺu;VL"R^BKU<ʹŨgT6\s"0|󍈌7T6,н]HSX}rPū"m<..@9 kبQ#ehВk֬2ȱcrtQe=FemVDf2KE'///5/|kLY/exۄ(Cj]h;}_ ?#"lٲ\g*a-Z(|J;wf[ʕ+IYڵkH\\a1jlن؊Qϊ@vZҥKZDdΜ9N3׭K4P*(+W&&&֪Us SP9xo6c e:ĉ'{˳gt:tCe2v=iҤ]Fetn;v&7G6Ns-r.hQY͛ tf۷9˗׏w%@)b@Ed̘1:ܣGɓ'ϟ?+V7J7ј1c[-n/0a Czzs꼲;@ɓ'K,Ylr`6aK݆_ٳN:Jm<&L,֯_7oΚ5k۶m۶m3 :h4\.___ޘpBٸq˗^7ڷoxCjjԨQ=z({wEرʕ+M4رc}||&Nx .(46gKj֬~8p >>ʕ+"2jԨnݺ-ZhϞ=&^z;w9r$oLRJJJPuQNS ::zРAݻwʷ@^N<9iҤ|: T럔B /ۊOUO| ,'l%V6II.CƎ;ND8ĝӧO> N+P1)@@8B8 CB8 CB8*@¨^@8D빆p#qN:ZGw=!DD4ܳi۶sh!p!@!p!@!p!@!p!@!p!@!p!@DTAF%C=U?5kkZF8 FJ@=a۶m֜8qbҤI Ctn H !p!@!p!@DTrnA\JC!p k@ -]d}k޽իG@B!{ci/>>b v-pz޽u|.W^V;7mz}sϭ>QH}f M&4hp} vQ3 G!{ܹiӼ֪_ݿn|_uǻϞ^۔ߟb`paƜ9.ͽqUӚ55QרQEf͚ED,Krr2O4TQC^L&O8oKw4h[oS7mz|wRF_g|'Lеlhϛ!+*JZ^Wnڴ(N+PwB˞t>0g ެٹRDF?Y ie^-(k8"+d*}n ukw߭}ߟZT,zT<__Ր!ѣ?RzЅeǹ/&ټ٦oxH޽k7 n0 IO0 *--g.˗ Z֚S7\Sd}dRyy&}QEGپ}Y  /0\x1~RygƍO[uW5j׾}'NL QZ$VXѯ_{l͚5{Q))˗E롇 MZR~Ȱ0Z-"v}׮].W>W\IOOjs~p:GUl׮]PRkw'CNWZ5___ό͛7lbմixKӧwK.5s\u=Z:`;kTu2];GٜU]* 'tM{yǎ.Yi=ޮv0CjPky}5k Zv8۴oQQQ֭SMPPРA !$C4hPmV^]Lz ׯZj店lӦM6m222֭[g6Eڵke_~yeYw)""BјLK.8q]2%%ԩSrddd׮]Hϟ?}v1NjٲeQklÇYr5k~iӦo߿aڴiË * @9?^?nsl(M(?;N׸xRQ|.]~*;x~}ʔ=uÇ{ U^?usBy%-[~Fc :W^y/sSy+2w|bb7233vKNN}||ڴiV4h#"nCٳgtҰaCe`0w})}9eAѸ4j̙3qqq"h̙֬3g̘m۶UVm۶mŊ+Vhٰ֬aÞ~@^fPɬYP8}-*6*ux9j)";8uim&j ݰa^?j%2R=gpXuvuiڴ>O(`"v^~}׮]+ 5ԍX/0!!AYu'C7X,;wzs_X) ZO<O$%%YfժUNzwΝNrC8PNpXa[baffzךkMFF>;e/}_{u_hC||.*χVV-խ2ѣ1o8fνFNӭXᛐ׾d^s?۷oϮ^rԫ,8bc~͝ kԨѿ#G3fȑ\%l6]^xΝҮ]yG!rҫWkFe`4֨(gw`r'u"RI˖Lլ`P5D0v␐5˖ ,T*I;lא!^/.\h9r!(G}۷˗/_jժ}۷o}2dHUI[qС;^tx r=,D T=K``СC B9jϿw}ae,gyfذa5CIY/}{_oJzma1˽K^en;j2VZ3t?|kRWDv9o]w;SFU*QE$>>;>5###ɢV5o3G/l\\܂ :w27kޥoQZO>lٲOf2}2cHc*8qY-Z4AD2gzܸzNٺu6N:oƔ)So}~}2Κe4I:.^4oܘxq]T"qU^[liܸFpBVZ,m۶T*FtWzNXZM9sFD6lؠj}||V3j*UvMy˃kZn]NQݻw6lXϞ= PT0]֯_o WW9<_[OR.X`-sIgEdo{ld?a;NAUhzٳg?A;z?ٓgޤI/"bZOE@8B8 CB8 CB8*r򮌏f.[ȒNh4R0)La S)rs~;uD(6]ǧ% _0)La SwGaj--q9*@1Z)p p!@!p!@!DDKTZ2v =!p!@!p!@!p!@!p!@!p!@!p!@!p!@DT=)*C@8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 Ch%% gs`}6IENDB`python2-pythondialog-3.3.0/doc/screenshots/menu.png0000644000175000001440000030126212507731135022345 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxi@0 !A@K+7"BX(xPVPЪ ( Ujkx!R@-E@ Ar y1_~^q3lٝݙY˗/du޽iMUUdȈVh|)D!C:t @9sA!C:Brً)d%?êsxrr#YcC -ӧOWjs:t @9sA!C:B)lϯ<9C9ޫacc#M4I.jZlZl?LNNfX+gϞ4hVVVPbҥ,o}qP ƞnG*|%37ndXś[毿Zx1B0`W<!m۶3f3Nwqqlƌ=&o"-R7mZ[[1LkkkQ#)XrrBW^T!>=\211Qt1cݏnʚ?>BHKKڵkDKK5B(&&?A T=ZTKK+%%]~>7ߤn)-----=p@nlk?~E=C&f֐ɗ.]B޽{B'NܵkV9l_|p5bK]]]~~~~~~rrӧ{LJ"-R7mŴ8pرcC }ҷH>&%S+*****;=wܞtt]sssRRҒ%K +WY(֭KOO͛5ky{{{EE;֭&}ғŤIp2OO̘1jjj~7ӧO755}uQQё#G***[l~F$ kjjrssW^]]]|9ۍY^^O<ټysMMͪUlmmmmm!,^X9ÑP99~aѢEQF5*$$w;l6=,fNOJ۹\ځƍ7jkk{yyyyyQ!4m4o555E|~LL]XXXuu55b_]… ,kذaBP.ѣGX,GGGj:J@ggg)ԝ-,H~W?\rr(.A!4w\bK DDDX,Zf aϋ/fX[d vvv>qDcccHHݻ)!!!C E+!x<^XXo&:ž;[i !!bT4rss.\`ii9l0wwlEDvrRSSCCC===Gaii9rEuV7l7(7J )n7^vNѣ***D:R{Yf666VVVcǎ]z5UC쳝;w;wbX7(_#InPκ4T(*,X0ִ\xVaqqq```ss3++++++?fʔ|vv6nfϞpJKKoܸڵkWFF0x`:ڴi͞.dddTTT9raaa2>LQ3>%)=+++555УGWuxeII B fJ@О={RRRRRRW3fwPE 5k-Gy<ުU_XXXXXD>޸qXZZ 첲ӧ#233!&pXJrO N@ HJJ}vEEELLիWgUk Ta$M6!n޼pJJJbccENv|>ɓ'عs'.) BN{{{WTTph:J ")-7xNQ\Oҗ s<|!ԫW/jNHIKKYYY\.ƍFFF*|aZZZmmmnPFݠuo=i*PV$s#666;;NON=u]RΡ؛R{,DFF|__m۶YXX  k||<8{lyyb/2lق9 6p111JC>}˙G^rejj*nظm677755^z|ɡ@ܔp8~^hhhF_~D:8)$PqTrѣO81a|py{{{yy0̏?!`ccC&Nr ѷo_r$֭[?#N ?xJ5SHE3Hbx&9e2"YZZ:99EDDXXXDDDlܸQ4O\\7LOO/ /(U-sCŵD %؅K."ԑ###B|IBB>Q@@@ZZ 6_h#G) HR'M &Wqqq NNNvzGJ޽{U-ہܺu+//oРA FCCCaa!BhܹbC%͛pGEgHTT޽{_|]p!'RlBׇ~XTTt} :tׯ+**po޼911qƌk׮EUUUxB]] c]c>ĝ7n ,XJI`֯_OOh4B}611FR8Bzzz7n(ڲJH N$@__ߟ~)//o„ H# |@ (D Jonnm;xAivMI!)k7^EJs §O^paBF[:Rrss={ZzG՚/QǏ?|ZZ~MnPFݐ18i*P(4FqqWBf dcc#6wOIvϜ9#:!T]]/h4/'OU(.4Jށ#o.N_bŋ+W<{7o>rȑ#G$N[ч!'hŸ8{lMM>4776hB?yԩSBǏIgCi8*REH^%XtP?%\i0L$qżrJ|rxk<ء4j]``؄ ?Ci`2111VB9rʔ)3g$*qVSS۷g}fcc3iҤk׮=zI***;w..JSSSkkkWy۷Uf -Pi)k7^JP|0f̘6~H)9/E߿+W${&JFݐ%>i*P(4_HޑlnPV+577,--;++[nrPŋ~~~&bDO8aII ~/+S*Jᱭ,ŋ---BHMMM*%'POrBEjh_|9===??"''''''33r!C888fddΡ@  uttL>uTPPrn*ܐ)bYOSfff]VGܹs7mt)k$YN" E\+|=~d+ b[V-DwM!QFh4.r~y{{[XX_G!=z_."!TnZv|| ij:HuIvϸ+2AgoRh۳gO!h0L__~… E&Νp[A5B׮]ßD/SΕTn(9EqF>ѫl ʈ쑂 -i֬Y'N"H:YqM.>/Jv/_|٭>%ޝÑ#G"T`ihh |q[<&%bpܒ8ԆJ ϿyfNN~[^^kSS>B4>mmڂ1b7mmOw=4BۆMR,YƏ8y*$͛b^)q%w,-rjbmۆs _3#Mi3FFFmT^^޻=0̍wuNQ\" ẹ쑂o>˫Z{=eʔƔY⮑w(b[qMСCB--- z6QN+ʺwfgӦM.1Y\ 50=z4BСCb6;[b'O,.^:nܸWJtuuljjڸqc/>0^=v\WW(!+\7o\?rppvXǏGTK`sEg888rQR233Ԫ軥 !wY[[Yfݻ|>Ç111ϟ?W~q_ĉ+B_GGڞb!$]p! rZ'h$%%wjjj֮].zxxa@/?9$V=zP(  ==}޼y i=(PB}{~ R+Ai)J֣`0Beeex{mm#GLfȑÇ圢k$e.䪫/Y!իAAA5{bcc.]zSjjjjkk:ݫWe˖m޼9!!СCx,ԩS׭[G-e˶o~ȑcǎ1Lb5ŋ{{{wyPcd0+(SSShn "ܳg坓J 󝜜m!mmmWƆᩆbe._w</ olll]]'O^tUݢVNGG'%%e޼y7o\n9p@1 &p83fnB9,,mll|||N8qӧO ++-[tyiZ$%:GC(7ɤuyhh(7|?@ܪg2k׮]r Fe``bnn{DҠvC Z߾}H9([nG Bhʔ)QQQΝ;w6hhh b/aV?w}'9EqH;RtM"IoѢEYYY+W\vfCCӻzj'Nˋ?Ç_~mhhhcc:u={ws~; iwcƌٿk ^-ⳅ/q! K._yyy\.Z(kРA'N={6)jOe>}K:::. CtKJJE.z$&&&۷o/((xÇQGo:VE- YLLLSRRRSSKKKkkk:uT___YFM_iӦ8믿s*(y֭fff'Nx :RI Nf0/^,--}iccc~F9o޼>HJMMMWWl̘1s[Ϗbٳ455zyyʫݐxŵ*ҊJ@j%(9E zt:R77'O455G|+gO~/UIG.)T$)߿IIISWW:uի+T$G|{&q/J|&~w_KQQQST~@e+RaaǏaC(_0[N! #8PT$Aikk+((V\=ST~*zœnNpNP$;xr:sA!C:{bX%%%+*âׯ_~! 6ʚ?~׻:w;wnڴ`...)))[Grׯ_ 4hʔ)c0!!Ts駟e?Pjhh5kVQQ'ɬrʕ+W !xOhPCCcĈ#G5jԚ5kx<^Ə_VVWs̹~ԩSuttľrtt<|F:?{W_}tС֭[֭۶md ޾}ָnݺNc/Ν;ׯ_G͜9S[:_o222BxE8Ή'222$;uT* ؄7:0`Q{Yf666VVVcǎ]z5%,^b۷oɒ%l6ĉ!!!666vvvwVNTBC ێhwXܸq#Ś3gPOeڊG!Nkhh8)Bښw޽{nJJ۷ECnݺ˗/wqqӫްa1cQ٢W ohJ:1k׮e0wIHH ja2 F8q"BB 5tS޽{ذaC ټyIubbcc444㽼DjkkcnBvvvvz#`zZ޽{1 MKK+))~~~իuttey{MW٧O-&&&?{zr miiA566(-Dܹs bߖuk͛'fddžߊ 4 rqq6mZssݻnJw4h4S/?OS쯾offfUUU8p@^^Ν;L#޽?b?~dRd&1BlV'?~!_Kutt4iB… ?3556D??St^Z/ܴi =w\@?yF YGHKKFK3 "'zT033mRIϟBB0ٳg}zEaa2ĉ3f@}wF!~&! /~SUU] xc[[߿6$$Dlhh?*իWp0 9|A^^"!TTTbXzk喔455ɸ+?<}T+b4Cse:~ᇞ^LLZ^^ޞ={D :!"9ƍp0 9<|P(]FEԛ7o:xʕg"<==)رcڰas-A͟?ɓ'O}[[[E3N Y'iAAA-[G _RRR^^|(g644k[Z[[dД)Stuu;gII͛/^Cwƍ_~e̙mmmCB BeggG鬿YYYW,>|xӦM/^ؾ}{\\B?Stu(<<||>?((xLJB TVV.]xڡ Qb?tG**sΉn9zѣG瘘?\۳gBS㘘Ï(2eJuuuTTԹsΝ;`0LD(~!`0"b3g,++۹sΝ; _+'$1;wN8Ν;QQQ7o.\xҥgFDDlܸd>СC{Cl'' 6lժUnnn,KKKKMMM__aŊϟ9r8h4ZSS9sN:%ι\.+X>}ӣnjӫWv}}ѣGGEEeddJ:I@:t(33o틊5* Cn$99СCMMMUUU{Ō4f"""rss=znii_h[dC|W_}s@t @=sl2lٲwGX,URRJٳg}|| ʪ'.99b9;;w=,6nb̙Y=juXߠ𺅳g\| ݽ{{ǎ03gpLKKKOOψ얖S[nt"ڵkǏ?h KK1c,]4'''֭cXr ,ݻ!4q]viii2L6ݯ_ngнX[[[ZZ޿ŋ3gΔ koo}t-{F&''㞡woذ[=zѣ'NáTs8w\`` nnFTVVE6iҤI&u=n 4M[9twwYn]zz:N7oެY+**Ο?#S@8x`TTBeҥvvvt:̙3 %2 !N#fd}'{uuuYYСCEwǏqD?h"bQFRWWՠ3UUUׯGyyyǫ߄ 2L%9777kkk;;j0MMM#F9rEΟ?/CbiܙYXX9sBY,[xvvvv:bOwwweBs%t q"""X,ŋBϷc}њ5kpwxkkk[[v$ΖoY,ܹs;v,og UT7pB4JKKxiӦI~HR Dݻwo͚5Ǐ;vի\%(M4)EXr%& ~X,6&W ۷ӓf1bɒ%<"2d J!sBŋtz[[[KKKRR}y̙˗:::ZZZϞ=KOOOOOǯ]`޽{5k֬={TVV^~Q,b)))!___ѫ_~e۶m!իիW+8 @̥)(( 644[$rSRR?ݻw޽ CXږ,Ycz鼼?Gx;wtiӦ=z477@s!a)LMݻwݺuh4۷sss/_Lm*{ȫ2q_999K, )uqqݞ1ڭnݺuVjjjRRR޽)ęB>K)WWW׷o_il8)pxMMͻw޽{7%%۔KPh͛7Y[[SfiiiqƙH^,Xov#---77wr)<9Ȩ8rKKKBeeeO Fӽ⊋+**\nyyytt4NOHHHMMgI;Q"lѣBb_>x@MMחؘOgp87nGڵ w 888?fbѣGES3[j ✜y4m͚5\.妧߳gNNpppuqq166 źgRl%@޴iB( ͛,66r٩"*G^|Ytő<$1800yƌǏgeee~-8g <O"شi4OV&0---""B xzzfeeUVVr7nDGGQ.AEÇG͘1#E~JIAMM ~7j(i“t:~(//?uꔮSd/j͝1m۶+<<wOMܙ :y$mmmwFgvvvv NO2!$y7o~#h+HVqq1g0ģT&9e\zґ"*rwwWSSkjjr #add$ݶmB`3gϖS3|^>}ϟ=zʕ+SSS>|YxR e|IBB!Cv##؍ZnPg9"yZZZʷqqq i׮] eNZp@=shiiOl?!t}э-Gu8O=ڹs555<<JP|c+?+-..ƭX:99I*dCJ_~-.\{nCC )ڞݻw E[[{ڴiɟ}ޘ`hh8qD"$O(g\.Wv%Kl,tD"444 $Ո#$ GGGss+߭ƲL*bkkkhhXSS3cƌ lA9VQӳ(''gŊx =6vBF};y _ q>ɢ+VXx_{ʕgϞݿG9r1 ~:B_~_%R/գ9p@YP 9슝5Ν[[[255^|ymP=Ҵ:7g={vbbbNNγg+?\tD"NF8Ekd$KEBrYA>۱cӧ!S駟R{D*:c2111VB9rʔ)3gΤ*)rǖ-[PR}}7o+r!~# jjjg)CCùs#Ǐ߽{GG /^ LMM[|)AjHU~@DM 2!CiZGGǟyWN +CC#G$$$$''wIÆ u^ꂒ'Q&8Â/^۷cJUYg%%%999999))rÇׯ߳grss'O\PP{"7]\g峥w}geez֭b??bi{9=zP( ge@>o<Ebxx|~PP|VIED5/_E"""~3]p2˅TN"8`*++.]*}{{{HH@ QQ$TEJJJ&qԬ]/=HJ6n܈5jiY~=~kp7ŋƍW|^ssW||<}Mcc##""BÆ @/++kkk9DJ |1bB(33S^O2-,,N3gusssii-[0V~uu%K qի;u~?02>{a2k׮]r Fe``bnn?`ܹsĉw܉ڼy,{sqq#پø/[lG9v$^ױxb|`ccsĉӧO>}Z]]] XYYnٲEiB*ΊpK.={6""bƍL&&&&[%ex*o*/礼6mZqq[P Y $TE yyy)ɤsPb1}8R'dggƔbK.|ԩS555f>D|Fuڵk%O6SL:wܹs紵 FCCP(Ͼuuufffxɓ.]J9&-jnn_rsssss.Z ++kʕk׮lhh022>}ɓ'_({!痘ꪧdjjdɒLڴiiiizzz!g%%%y^*/SN%&Mu6ڞ@H[n6m~)vccc~:|=)D;uB'N 6lׯ ]\\_ &d``pҥ~TCC`?\~s+$0  hMMMs9u,1&&&ӦM366~ p8tߟf09rDlp_]]}QQQC QSSSWW:ujzzzgQBP4<woGHV&Mp.]rJ  ?/^̞*$g'),,>}>,RϒxoOC6 e!!pggaٳ5k <<<ډ@VXG,EPSS,,, #= Hт4T``+W?ޮj @.:iaaTUUn``g_ #g|z0xr^xSmmqƝ=,H  6s:sA!C:t @9sA!C:t @9sA!C:t @9sA!C:t klldI&A(ƍY,֜9s䲷d^lZlTeqYA M>{@r=z4f9;;{РAP`NOIЅn9tqqtM4 Cqeee!nGΡ{xtRVXALXhQnn9-,,D[NMMP`(knnF@Vnw;l6 tMSSS?!uuub >{n0++K  :tСBٳ]paóeFUUUddۀcǎ7oވ)((077߿~~؟ XOZ[[ٳwxbPaalG}f|C*ԲNb:_ų)4qNLL$f? +W Ԕ9bKKˑ#G.ZHl }yzz#F,YD^s?E %J0|>?&&.,,reBHh:R G~bΝ-^b}7Ԋ8---ϟ/YQ%$$X,www48XKK BhܹĖ2җ }-Yf;;;8q1$$nJ8RkrWܤ*"Hߘ+"%}r8zh(D=U".{73EP&Vׯ_ wu!h4F}vyyynn˗eCFFFpp0n[[[oݺu֭Ԥ޽{`cƌ _CBB ?/&OtuuBayyytttNN`0:RJJJXXX[[{ݻB2N`|a0iiiǏtttxwykxPwE:Ғp222]uAH!ӦM;zhnnnmm-aΝa(/m6|Xz*++++++((hղ䛂u@(<o, |k nݺ˗/wqqӫްa#PhrWܤNAozN566CիW+sgll Ce&{|5ۺݮt@O[ZZ.\D:ׯ_޴iB( ͛,66I8677Ϙ1#??l6o l2ggO~w+VTUUwxB?~+1[j DI*ΤNAfGJNNjjjv.}R3|pЌ3RD:W\\\QQr?NOHHHMMgR%M駊SN:uJcpϞ=8҄Ȩ8rKKKBeeeOYG*w{t _nWI_ٸ0{lSZZz Ю]$Q,YD]5k[=*B7np80;;lLE[6+nY 7 =H =zp81%%%*PsH1W)!Uܤΰk(srrb2!===''';AtME;B>_H>/.. #22Gd2LsNY}}}mfaab0 ٳ-Ν; >:~ӧvٳ۷"}}}q+W=ĉ&LCO?..!pB???\ǜvNm۶+<<! uPn:>edo8!gg-[! 6l0n8PLL SB^^^:::L&wlllh4ĉBJH &WqM6TcΫod)~Hsӧ>{#}q=êHŝ:u ߕ`٧N"@*9딺tF$ojkk#AMM#pݫW"$ 8!'t֭^f BhӦMdff&6c̙ZZ~=7Lh8ƙT)(B~)ɬ-3g f͚Eyϊsg/2(!Uů^"'''R,--"?Dݿ_բA&xh~~>$XCC&6Tz xsCq8jE b&&&?.h7 -nY sUoܸZ`FÝ.*0J_dϰꆚڄwHb{{?qرs{3v[[[CCÚ3f,XՕfzk]ۑ^'O5q olhh0447ԩQ\BpݻwDohhhPBr!MḾJ&J>l%k&5+9GMۣÇ4wkk1q\j(xNffh!~̃rWܼCO>m?S 4 8:峭anݺgx<^{&UCEHN~\U;ُR?$ģI9f <ƫ_*..vIr=HrA6rKJJJJJd,J&Wŭ|sRUT|][[[PP`0FKJ[[ӧӕM6|jIgX7_ȋuRCCC(=κ^I#՟l6!iӦÇbm/]dddm6uV~ßE$%%!lIe|MpUU[Ojii>Z{c;*BFaqqVHT ⛦ǎ s,Lo:Ed]B.~dLnTHɞa >??Y i\E>gEqKJJ%FԬ]?~3ׯ^v .^:n8#ҥK۷oGmݺ,~7wbٲex@ HNN/Yp!ngRYG-]]]5556nYI]ԓ&Mo8x2IG !!!|/͛_FܙT /Y!իAAA=&wPnn޾=$$D  //FRWW'H0res%[U\q+A]]ݫ mtN! w|>a, 1ݤ˝ #&{V7/GiQ'[ɣ`"TkA/^!Ė!7eee=߿?BH(L&N~hh(6K.|ԩS555 DիW~~~^^^Ǝdɒe˖eeeo.,,/|>n\]]e>dZ>kٲe7oNHH8t2uuIvqq[}eD-ξuuufff8Γ'O^t)d2׮]r .5<,,,""udKpѢEYYY+W\vfCCO<)K-_@Mx_| <<(&wPΏn´iӊoݺ:lHݗ-[}#G;vd/^?"8qӧOVWWVVV[l+wB`E i\tvE޷o_<,lcs YDO5,9֘:w ,w7dVE/R~{nz*z}ЃVsgñch4Ph"7xbiiӧO7ryUad1qļ?|׆666SNŷBe˞={f###rʼ7n%%%.gܷo߿kӦM999666_|ŋe"M1RYG9CBBz;w(4iݻY ZMLLRSSo^PPkX,֞={8NSSWhhhnnnfϤJP]]}OJJwԩSW^(c֕nimm]NJ e)H|&-n̘1vZ]]}@@i [n533;qύ'L 6椐Jq\|_;!G4 *nA1W9'䰳!ƜԹT`a$Uܤΰ| ;{ݻ7UUsMMM̯~,X2&Mp.]rJ G7{TTF~~B2&pǏ?|W,Ka?Kn˗B蓼C-v@5???  :@%<{l͚5!ٗ@[[@ C5\v]]ݵkBBNkK4O;ŋOjkk7ɓrY@xr߿2@9xr:sAReX,ֲe˺Q>.]b}7X9s(YkҤI13I999b9;;aSsCY%=<[={gРA8VVVn)@u*_Jtɓ'+. !w^ĉwڥT~ /9lҤIn Beee!w3t @܌сtA;|>?&&.,,ÐUUUnnn 8p׎;޼yaxbPaalG}fzR3Bㅅ[[[oY,[믿۩e@ طo'1bĒ%KJN6[fmllƎzj.KRSSCCC===Gaii9rE??Qh Ubb"1FXr%,}nPu6>!!bn\`ŊxiHH={|~ ?~uHY/ob͝;ß[x1oD7:;;և.`!ummmֶ>qVru .tpp6l{xxxvv6ԍ5b_]p6lP($[)4;(Ļ}-Yf;;;8q1$$nD`^kiiA͝;4rudnR -ܯ (*PAo$VB TwXP(x"NokkkiiIJJp8 C4dFFFpp0n[[[oݺu֭Ԥ޽{w)))aaammmݻw^HH1kjj&OS]]]Pee-[;̚5kϞ=ׯ_wttK2뫦F,X["ښ;~ÓM"##yݻw捻ܾ}ZA9sfֳg[4LLL7olhh033߿?ښr}>7ECExb<OWWW(GGGbG/m6FUVVVVVVPPիei7GZ'}qO6ѣ?x9Ft#<Ν;jrږ,YA42Oe4Vdsc޽֭õȈFݾ}<77Rtboo#FIѨU~FŝSD;uǏ/_%77WOOzÆ cƌA *0`qd-"jVJb|+ܯ T4Ċ.@>9Ȩ8rKKKBeeeO V\\m6 puug0gϞ-//pW\=z'&L6x{{Zp> 899ڵ###B|IBB!Cv##4ݷo_EOO/ DA%n3voRWWŗqqqKw܉rvv޲e a``aÆq!bbb(␪u7N2e BHۃx{{hTkkkx??@$n׮]!U"3H!-ɜ2e C"$/eèstӆKGGd76664mĉ " RZЦ@qWڍ@KbTv---q{DB'ܽ{ի!ɛAuׯWW4NS޳hx|I4~d23g f͚EmzpEM`nngBW&F=C%5]{ ,cnt#fffblfΜťjhh(,,D͝;W,[͛p8<Z>+ZG||g)UP-))y@4’VNF^:tׯ͛!^xnooOK0BꜢPݴa411EL/^ B*誀uk zU@W\ڥTwΡt|D~õkKɓ'%.ScccccccW^^>a6mZbbbrrg}7fff644{Ua455(؜@ ~:B_~ {YWWW8p… wmhh_)m}%7[[[-fffz+++óS\.~egg'_@0B>+Z'}q;::?|0==Xnmm566ad]ii)BHCCC1bJ8HUNCCÚ3f,XՕfwv}&%/..Ywٚ{ڵÆ ×*4 #))Fb?ч * [ܪP(B $VK5nPr4%:x  x555u? =w8Ȉ֊n={vbbbNNγg?0d&455{A͝;G8_|ymJgYr{H#sib=Z)YA:gرD)OeC/M 744\㝬f2111VB9rʔ)3gΤ(B)??חq\ ?|\l!/MH sBuӆ-?Ţ k^Ph7zU4Īv0JܼZ\mmm v-@ã̕3zD F :::σ&:uTPPPyJ.A D-+: ō;/^۷o]]n7dS D_|9===??"''''''33Ԟ"IK-""b؄CYH0v/=a$E[E TɥwUvV~^j~[G<ONYt.Fbh~qЉ'E|OJ6/_18|UU|ڵk=Bʼn n(rCBHr..(Y!#O|EݫEPC ikkKOOGedd9R9 $뾘Lov…3f Ν;':%QFh4.r~y{{[XX<9TOꜢ8ݴa@WNK" %\Ƚ֕_Kx>ޝC|I܌gQ=߼yS$,پhiiW^C"ZZZ$+Yz9khh x)Jndd}%dՍ9~:D  .[RRRRR"F+`O$+GBd㛋(ĪLQ+n&%f()A̍7TڶmlUWJ666|>͛999=qnnnyyׯMMMLꜢFrR r* E9N9Eʹ*oѭ+4J. qڭcfqeӦM+>|H ڞy<~Y0!)) !W_?r\---dž{0ǎ~%%pرxĆ $ͨ$欪FG__!TSS#vuCT^BO>K}d1ɓ'O|xK#([3ZGqWe)y~%%%r\m\YB!$#)n=zEߏwLr*[3s [H9:in i(@AF\+R ս;3ׯ^v hMMM/^ 7n[p|vĉ_!ﯣ#%N4dʒK,A'&&իAAA'`DEE!#G7IruuljjڸqcѣuttBaHH>[yuc*R7#F@effzʹ!h㮯7\… }Ylc  m}/PWW℄(9oϤjⶴooo 666||JB ʥKq͌w[Q[555k׮K{xxP35Bǎk~FD)UZk}&{NQ 4,#߫P9SݽKsIK5@V_!66vҥ/_:uv}}=tɓ2&pʔ)QQQΝ;w6hhh x^z-[l NJ݋d]vʕ.\5jASSSKKyXXXDDj olll]]Nɓ.]JaosT4B!^)`ݒω'N>}iuuu@`eee˖ۻ/Hquupww_lۏ9r1&Ixb|]ZI:=mڴ[n._TAMMx_| <СCSr?P(4L&N##BCC5)|~ ₟uPϤ) jd()$Z`őU)Ju)RRUڍn]$V¥ ?9DM81///88xذa_644tqq eyEvFFFח_~- bŊcǎo74i$P~d߿?**jȐ!jjjSNMOOdpyh&ss9s:u(lٲ/ŋ/E%&&555.Y$33gRٺN6ɓ'Ȳl  .OZxnbff,X/;Էo߿k隚BfG3D}wǎ244lll400pwwOLL|'[3ZGNJ,لÒK[[[/~ N߷o_TT|>ϟ6mZZZBHcJ޺ui1IIIKz1\ZɞSP>MHsR 8* KѵNʣ9Ez *P\}+ĊTd8޽I˫I&q8K\r(/9],Xoذʢ' ?/^@uFzӧ?b_X,,{/_ Qxr}p8-^dz<.ڀ/"!742U;ٳ5k <<<\(Z[[[AA6[X"//XA&((YXX|'?9hd(* tGW\yy{{ڵk!Orw$I:iaaTUUn``gYzhd('/>}=nܸ'Ol@wibb#giiW_eeeA@\T,H  6s:sAP={gРA,bYYYԔnܸb͙3)F4iy}-]b}6=TII  TJ*99ѣG...=Ξ=b0jjjP/UnTVVuÆ !:Nɓ'B(::_^~}̙sq8`0ܾ+6 .TTTTWWtSS1c :T4dVVչsܹsӦMKJJF>T.kAM2e޼y ]%`9t>Zzjݻ!4q]viiiAauCKKhcccׯ_BYSSӃ{nEEE޽{ݤ5k,^XXꚛ+!444̚5H#ɬrʕ+W @гt}PVVawoyyyInǿrt)˗/KJJlRVVvaÆ.)0/~Ͱabbb\QQ|򢢢:??H ){XQQaFSS/bܸq .]kkk-ZmiiI>|qKKKYYKKKG[[1cǏW\̙sS(!tؖ JWWСC?[֭[m6%'xpknnFMikkwrDMLLJbb"d}_SS~b%ѐ![ixaaannn[kkXE7K)-- !4a333b)SBOVN`jRRROY3gksvvFݸq㭿b``0dЋ/СC5J9 $WQ"yTh@冕Sn޼`ffֿ"n:ֆy޽{'9gΜY|9JGGGKKٳgђ; ~~~/^mmm---III'##Ct0Bh޽FF322ho.//ͽ|hi,(( &F!mm[nݺu+555))wrl`,XA FkkkZZZnn3(ԍ_~h^ Zzj, $IDATxRhiih4%w[[ے%K Z\O>˥odHEfO>w+++lْ}1mmm"B\Ik׮e0w455񬧔۷oSKEnU[?~x...zzz6lptt$J;wGž=gϞOiiiYb?@s~r[imm655.gggK<[΃ M xOܓC// >!4cƌ]L/xV߿aaaaaa\\N{{{WTTph:*ό#Gܿ4,, !TVV&v =pMSRRRVV+,88H>YrQŁ3fϯ<~8.++bM駊SN:uJu#;;_Z͞=ᔖ޸q!k.r[W~YXj޼ysЈ#SȠhk֬"r)A)QNNN],-@E 33S $%%ݾ}"&&FCCի?h05~w33紴@陕UYYroܸ-9AKnT\]355qñeeex$^ff&qܹ?lPss+WB _UVV*:05۽{BCCMLLmkk+PK|>?_~emmm߾},Yn_z.8X^^>rXYY988E jժUzzzYYY[nEٳɓk׮Uf{G9rѣO81a<ɓ<8oo}-zzzsEuuillܶmZ^qÔ#3HdN2eΝ$*22n۶!`0\]] ٳg1 A*xf… pi׮]J8睝lق/ 6l0n8PLL?0T~Xd+]|yO>UWW_b C ķv` ѠNZpag"n݊_(B?s|Y~&WLlllTTF|||kDIT|~dd$BO>IHH ~Az+R[Aa2񾃃 F8q"BeB9w'ٷo_P8}iӦM:U Q\` ***vmmmM544:r-,,,--߿?k֬g1 ^Ã8ޕgϞ</))KСCӧN{aÆY[[2d͓&MJKKsttTZ-H~z!4X𞍥%>n#OAMMsݫW"ž8p /G-7L*ů^B͚5K4_ԅBܹs}޼y!%2Y^%H+ڔ)SСC}|| O+x?d} E䳂Z$L6___PSShER\+jΝׯLHH[RqŗwW>}P KEnExn?qgL#M}V F--ׯ_s8Pii˗/{ ,Pb >n: \-[B˗/4r= ه\J`~BCCJJJ߿zj`Ɇ E U566yc{Gʂfu Duu.\p݆v⫆;w_D&"lmm kjjf̘`WWW6@pi\v !DѾ{oaE7ݻwgnzqkOzH>/9 b"?|yM>+t,=&矛׿8z˗:`7oL0aҥ+EX622xD&(%ikk7555cdmH!4{>/9 bxgF /aÆ 6nR]]EogϞQFڵ;\4>㏧Lr7la`>q_|A $8::③.\UZZZf̘# -_&M.b?3^;uTPPg#ww˗/痔TTTdffСCgN@@+222A]Lه\RN{{ϟ$ŏ?F͞=[,_bb/ ;4!MOs؅k׮=z!'zG.\PXX8c йs$Fny<^ؕT4;9jkk%O/_TZE8$_El!¨YE*h4tݻwEnL6ႝ9Q%㹵\"uvb#V%4;vڮ_!!!YUUUV\}@i곊x)Qє]b ѵS\`R ~Mt6b5kX,_555͛7 :z($@ osrr"NJ5F$DX,Ļ(qJw;B `dd}$rX,ֶmztxb7#GD577 R:t(BErz!|P7גɷ*~QgJVhS{vfO:!sNf%.Ž{ϒbVZ'pM>'O&ӋQSS۳g彑3^Z睽Z`g?;JSUtܫW/%Јd +. 0 )) [DS""Bc>}*sQL .TsثW jB555bϯϟ?/|~[[[ +l|=iӦÇJ8[-z10W\pq &9zhСCBh2FCܬ8+"_LWl?Ţe$?!E'P"cЧ~E׿y~9$ ,* wFGGWUUH[[[.\xEkkǏw1y t E9o޼ikkɕ+WΞ=]E/ڕ\J \gffJsSF# CBBN ϛ7K$%%Cjjj֮]cȲ }}}]/.^:n8ɅAh'&&իWu2^p=^.""A+$$DUSSiƍ]+.JH=`0|pF;wΤ___Y.pBi&\_x}vBiСCb"Nq-6a3c ]]]@Õv`ܹsĉw܉ڼyNSL:wܹs紵 FCCmO9ݒ@i3Rq^͛wM!MM={T\`B=\MQ!CCÛ7oMLLLLL Fі.]*eٳxr㘘}3gܹsΝ lcc{nL TɡIjjiӌgb3 ϪtwH >#9={/ׯF366%{ }ֳfJKK[bEfaÆZ͍biii;88Xxj>}GGG3W^Gp»M hxfE$nwUUz?s^ӧ?wEI.H+?Wy/^D9;;Cng!Ŋ+kjjx<'|AU|!MMM v={Z5=jootww%_}A⫯ꫯ гC9C:t 5i$I7ndXs̑ޒY,3d,xʯ|/;U\… %%%t:t̘1C 3gΜ;wx<annW_|Pttt@@W;wܴiS⒒ByϝINN^|qAA&B(++k]չsL=z455~ZGGgРASL7oPrQ&''?zE.;jmm%d2=<< ~w8p ''ӧ---srr/Ǎ׭놂t"OuTb?{W_}tС֭[֭۶m[˖-7BaMMMnnիϝ;Gug<rqqYtN>^M;88888,\PU'eeebݻc2 ihhHLLD-"5jԨQ!!!uuuK,Hc``G xBt̙3E{3!ܸqý奤L>]sҥKׯ_ꫯ !ЀF%!$9OJlii Ԕ9bKKˑ#G.Zb!Ix˯*:}ʕrDP,}B˖-cX˖-111nnnvvvaaaɓ'Njcc3x`?? , ,]rUUUnnn 8p׎;޼y#K`0Z[[rssǏaxR%ǻsN1ٻw/Bьh4۷sss/_JqZE:$j۷NNNO...,Lqq1BhȑIYOӳϝ;wDk=SRR?ݻw޽---%T~)+ J?9|>?_~emmm߾}.:ڊupov޽PiG9`+++.ZmR{&ܺu… t:7V^RWW/ľZj^VV֭[kkkB{9y򤶶ڵk)N+..rt:=!!!55Ç#f̘"BlI!Y'O8pgϞ-q&dddTTT9raaaӧO=/2:Eqqq```ss3++++++?fʾ[j7G5^ܤlٳgs87n#vڅQS+A |%5zeĘR%0666;;NON=ud`%g\Fuu5^M: ͛,66Ii8+ARYVT`U(6m1_g l+:t ?cKK B>K>xUV߿0..N:)KYH5_999QzzzNNN*ؼ5r{w7;\*"AAPb=gZOlmڪHVEW-(UTDTXQ, !y]0dc'nBkgΜ)Sinm޽&&&dffn߾M&Jiii^^, V])=SHfԨQ͝2d;v3f;u֡C 69ԩSTR&L~*00pڴiUCT/WWW//u͛7l`|ye}||VXA^׸ڵKyCCCR͛]\\y{{GDDx8.یeӧƍvڵdՍ[j 3C9l6["\~ژVZZ jCP*ٳ#y///2dZ/9TBCC5l|ѣɏ&S\tLW6lڴ).ӽ{^lى'CFQZZ\.moTH+((7oL&1cZ{}Ç߱cǴ{P[}i!<<~}[݂[՛1 BeBƍ>#N+T߾uo/>uTjjǏ/_naaQQQpBɓ'dd[YYYdgRD"<.///**%kJoƴ|H4W8,ׯ_?x1E,'''ʄCu/V=qFm۶C5yMDX,&{75I:q&m۶U:/^~///堆YL֚LasUIg@ƓV 255}ydd䧟~ڷo~mݺUfǎ-,,ʨ7lйsgjz.kgϟ/w7LYz@U.u/3sؾ}Bw֭~a߾}UΚ5˗Ç_hʷvڰattqqY`A߾}ǍWQQ}Q=+۱cGuuyV䵡Cs 'UUUfrvvٳgϞ={._/=Z),,ܳgυ =z$RmXtipp0ϟ'%%__uѣGOt><,++ddd)ԳK.K`uM`X_~b""&PHMZDʨ;*Pҕ@h0QAbСoNHHꫯ8qR&^655m۶W]v}9]M4i֬Y5S2)a< Phxr|Ws믿_ 68ppH/)))%%]vWTTt28ԩ4`nݺ+W4i_UyK:w6&J 'aX-Z|4~m(J9*wP~ו&M"CJM6k֬d .n߾=m42͍2ȋJc͚5;vȑ#o޼y4C噹$ qFҕ˗~Nqڪ% v9y޺u… 333kٳѣ'O</ә\͓U&-MF8>~ȑ#۷o9s^^^IIIoDdǏ[j>0bcc8[hK &VPcVof+ ꫯbcce2zӨ?w^Ν߯@+))YxS󫫫Iݻ{{{kdjΦNU@@@dddAAArrrd' cǏ_` }СCݓcccI\[ZjUǵY;Z"4iI#$:w蘗8jԨWJRK:@#h__k׮$%%fff&$$$$$>}z޽*e1ڂitFUg~[^x{RRRP79is^x{pE/t+B՛12,''G+D2}[nk5.Mn'E~+V4HE]A۳X,&#?S S,o-5@ Pٙ|x)M55~h H˜:@lccC> Էy>3LH$&MESnj Pa<3n}ڐw 3sϏPzbBaeeK\\\.^(K|s(H>X ^T4gϞ|EmqǷ" ;= I"\i8jPVd ܽ{W;w'slRҳgO xYq+!!W撎Vh߾="OٕQsw噬tZǢی AdN=@͋hǎR}|5LH l޼P92dP(LMMMMM5pSrV*x+AC:uW`mm!J޽@: <8111##I=U^R+PuƗҤeѪǰqXXXXc%.#""Ey ٳg_tȑ#u,MѣG5k䐉@˗Zʮ_CnT̟?_FP(,--kTZ薌KT3ChT??$/zWTTD.%oeccC:tHy{~~>YZWy|9DO www%ikQniO>Դ2$$Di~~>5+sIGl޽{U"L^wYL>@rS۝ 9H7op8sS=@͋h׮]IR_NMhUTUU)3f5jԨQ }zĉ!5q .YL񒕕5{WF&kL gϮqQիWx[n߼yRK$K.-^xZ_\\\111'ONJJ*++ƍ}||ryL'A?]v/$37fAAAmjj*H֭[W6s9H)ɪz9k}Q.;o<$pƍCrTdoMxQQʕ+I>EeJJJ^Ԅ`10U&!+**fΜ9lذPrP7߄@;uD'9΀HbbbBO&۷CCC`Æ o}Qot~k-\[}QrQt?Y0Nő*Y,֢E9{,+ʣ٩пuVe~7GGGzǎ0w\ E#]jSJlٲe/Ã,ݮ>re˖]pW^UVK.% :ٙ/5j*#Ԙ/\.8V8kbذafڵk׎;~W R2J` &=zɓ'Or2u' r*޽{XXآE]6fSSSssRj4Q3ο՜9s***~Dg7- __%KlٲԜs%e Ymll,YaÆݻw߿y̘1eL _zjYĂ*s̹zٳg-[rJSSSXloo?~cǎ}5f[D"B}% ˗I>pŋU.S 5o\׸Dm֬phjt 4a 9fY,ֽ{r*\]]eB.FRˋ 377۷ŋAqHӪER)T# V}eѪjq8xĔBӢE>}L6`+v믿NJJzϫ݇ 6}t'Q8uԓ'Olll\ؚ iӦ111Sʬ۷o?jԨ2v;$Ӱa/^\G7o~ĉ-[\z5777;;Z#6mii{M6Mevqիw{n۠A7tvv>zh~~Ãk1ϟ.++3fN-Z4|{^tٳgR룏>Rh*_|{キk׮7ozzzָ'4ik׮<޸&_|9Y/yrvڵkWTTTVV3fk,r0555##CyKUUĉ>xK.ݿٳg厎={>}z31j)Buyh"yJ:Tz9hkk{ʕBPPشknĈSNUº6mڴPy_xBOjdu4E+ut/'ݤ A99c<ƹ6lؽ{/^\R:|g}|5L _uժU&&&III0B\rr D^(S_h@^hsԯJ߻wl٘!dHˀlW`"PacKiӦI&!d^jnni9B 6 mȑ#Gt@!p;2Dz"B!!B3iҤ!BG8D!B!CB!B8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!8D!B!qX^^.#G%0,Y",YÇA>}0)0e$ӧOI55$Yn@ 1ku2<߮];o߾snn'OZ;|ӧOz'$k LF寿;w.\xM6_Dݻ͛'Mi#jlqxC33h9,,luV`>|ʕ+ d0|> P:@]îd#QcS}rʙ3g0ȑ#U7iLgdB9,..NNNofc!B!qxYLֱcǎ;zzz*8jdd$5 {i&o-[VJҭ[umҥ*a$ɉ'/^S999>>>mڴi۶a~/_ָ@@$''Ϙ1[n_bEEEYF ԸA}f>}9 yDZ+HzO:IAHg:""bȐ!nnn]v?~vv!'i0K޽{]\\O-RC611100յ[n3f̨U޽[ N2m$9Әd%L&߆ޥKy=ûA*FZI:-sg7Vv+%M!CߺuF͛S=޽+[lIpssS+Bp%S]]]YY`g}F>[XXYFhɓ'SRRj ={dXLܹoeoob|x֭=z2ߟ1M=HD5)uZ$&N=kX8@&͛ <ɓ/_?z_~Ehs8ѣGlS~*J7o<;""eddCׯ_ݻѣGNz;vz9uT8qDeeGb Vha.h홡\:WWWo߾ϟOlwm۶mt{4K"j*aÆrhNXRqF{{{]v`֭F>>>* tVjq6ʼ>h]N:Tg m6_Sc@NòٍUn}gC2OE:>}$+)͔~Ǐ745|;ZXXeff-6lܹ3999\.S8L&+**oIG/^Pb1yĠ ѣG7nGm۶˗/CWr*F.||>TVTTqSL1R9撎+H sjjH$ӧ&gE_V^mjj{nDb̚6m4#%yF^&FRs즛t)))$Tw^^^u]}AUu nrcs(oP-:dȐC;whIa<\W:[XXgϞ .|xرdӧb݈#ig C|}011Q_K.}a45!ϟ_\\ܣG}WǏ_`a&)G&}CBBΝ{ŀZڵk111III O޻w./իW 5kVRRB2ѪU:FQY׮];ut=2ـH$"0pR0t\ABF[}8p`݇/zA-tajeBH*sdTD]M VRݎl4pͧO@xx~fzb K.9::\xQ.C# .$''O4 Ν;(:xxxTWW@llT*mٲeϞ="7d#Gѣ՞*S1t홡;;;(..V< ]v]zu˖-r䄥=R_@ڢyEzY eBx*ny֢S?7?> sI\]٭r52Kӧs =ͽs@m ^PS퐎-ZPzT*{nBB>xČ2'''*ZǙ"6oܡC .seN!d3&L`ffF!ɓA\gM ~Z:v k ںW-j֭l6;v0 ۾}{:<8WFMNaii *u.ڝFR3z֗W]^3,X12tu̝*ר])# (h޼92g))9994h={Y[[@QQӵWo4uD"2QX,޵k;8ȻbiǴ@B!%UN&z^~}ښ, 7B33{C$撎+Hz?S4׭[72nSSSk2cƌQF5JI޽{/X6nֵ^NX>OVڿ#}Ed@TJJuG$Z[*~TL{_&72g|fvJ:tHyש 0 zK::^"0!ɳ~8@LK*MMM%ɺujM.0-]t!GAҽ P(AAAbd111ӧO0X4uhC|z{{< 9**-K4+**Zr%yr<((H&yxxo<֭[7o$D"tŋm=O&9r$7 B\ڳvIg8`{!;>\hѻH/wY*.X@9dk׮}d"2`&((H90~R* gϞmjjZG4r j~Ю0ʼݚrHru 1Ԥbd(;u&)(( 69Ӗ-[*eccdɒ 6޽{1cXLXXXIIСCɞGh"-W\lٲ .V"TVVjjҥ!!!~,$J ss}^xQ^gBqes8jBŋklqƥܻwjwhѢk׮3ܼ꭮t&}mݺ50qDݏ>#c .HGQ'yg<3t]AKٳg_r%...$$dݺu|>???y- b$՗xO-1w\ 1a„Gpcǎc JHHСC7oSH'={[n8x"PÆU iB!BA8! B!Bz!B!qB!B!B!8-9f[n@ m >|X Զ^9&]ʔ-YD ,YD^5r9S53kZ#]O>۷~#jUࣁ9q8*Usss>>nnnݺu[tiaazxLo :ݽK.KYf gϞuwǎRTKLL tuu֭ی3S?ӦMΝ+>S}Q.ujt &֬Y#|||j>}rIO{n@E{%:\pA tIPnLѐ\\fϞݽ{wWWN:%4}=Z^^ѭ[۷LohQgݚ:~&.zxr#VZTT4jԨgϞYZZÇ7n!sss吱 .$5yUUս{ݻwĉ&M`͛7ܽ{W,;;;lْڏV`ZPtj 233hg}F>[XXYFO E@@K8NuuueeeTTTZZZll,ǣIYfUUU:u*11qРAzQFD"KKKBf͚})Gn7oemmŋgϞ={v˗/3nܸ&&&*DyysH=z A$?uݤӺ aʔ);vx[zRH|6" !^^^'OLII-LJJ ٓb-n1 & s3so:{{{k׮t H PHtsFKݞ={BCCe2ٹG=zw\U6~Ǫ*\~g}MLL*,,\vm={=Yt(qfM1Zh=EoL/2,**[n511qRϟ_QQ1iҤ>|ȑ#ʳu6,Ν;ITZ "믿ܵkWrrrrrrxxvpSRR233B!p8w>qfff8p_t)10Iu3uԴ߹sg̙m۶X*d߾}RF>>==}$tOgo* řk7RtE8kw~A0}[up>Cro߾2*LhhT*߼y x7n$ڵk[nvpF 7dvo&syԩpĉJQctUJ4M㉆*F)))RㅆR/|ѣI40Mj$Zg 4@jh0WRihh(wСnoox)t[6‚L=<}Õ[H~ϟ?Kkn5Dp=wã:&&bccRi˖-{i3@A"9r=Z]]RZ&yB>\5W^,K(VVV^tŋr<-- 1@Ab~?Ӆ 'MΝS+kHZT2t$ԑhXI]0M83qU$Sh]43hrm޽{W%D"iP̯ YiiXhnooߢE t ݱcGTxMsݩӧ%%% ۓǖ12jej1 yHzS t(H&L033# &"fC#Q%PtT*{nBBYkheeeNNNEv H*`~ahL7o&ԤFҮ{K*311:fԑ)yk\y\5^JeZ- g_i:]P(EL o2]nbCHDDEEAwwwr_kmllٳg䭁OH(**RyΑBZ׮]CC)o~ںɹxzv[[[k瓕߯ro>ܹgr9INN EcZIgdmmMoB!YDXǤ#cBRRRk^H DdfE___Xk.SZUs $& AMj$g .5\NNNm7Xak׮Ui2HVPd$g4O:YnZN1cƨQFYO4h2)G0o p[:$>zM`̙TիWx[n߼y-Drҥŋ8PeU7K.piMCjXhW޽-,, EPPhdӧ+\y """22#7nX`d]&>|,}3{l2u׮]/ɀ撒 >((HO\]]===ryPPL&IgDF9GuL:Biiipp0y  u8 yp &&&䝧^Ҫ h ~"SV\I2dsP֙BK T"[VsZ gΜN8pt]\dO1w\MݸqRRRݻ?zNx=S$}GT`jmZIgԷo֭[>'N=<<<&Lpѓ'Opg/mAKrP֙Bi֢k%Klذa'裹s*//۵k͛7KJJlmm===UVVF R16h!555##CyKUU_ʓ=M:#Gn߾ё<=~GggG;88 ><88XյiӦ6<ŋdv]U&hAb~x.]g{9}2hH)V`- 9H jҤɮ]2槴Ԑ.00'"""11177W"jժ3gԺFbiq2[Ct8MiqBIVC^40[/r֤ 99f:0Xn52~Ǐ4h@ `g_hsC]z5--b1!B!ފt !2*8D[b 2B!z#V;!GϿ~z~~\.\r% B!Np8w;K6B75 Ϟ=3778pc1MB!2|s1(*bZtt4&Bo5B "B!!B!B!l"B!l"B!8<|@ ӧOߖ kȑVfݺu?SwX/4qqq&Lh׮֭[7z%K%K2o̷oe5R}rVzOz{{Wq8j?OX i9{n  dR gg˗/BMHHذaCQQ_ݵk׮]bH:rQ  @Xлr\.sqq صkŒwA!m&&&Ξ={:u WI &o7mڤ<{ٲe*ӧr^L4 Jn֭[K'999>>>mڴi۶a~/_X&oCuwwҥ˼ytEڭ[3f?߻w˟K5νzWp@ ԩBuk֬>>>5~KҼO>r\tm2ݻw ___? s3ftݽ+V 7ڝ)Dee%L6ڢ25D"9qŋڥKWWמ={Ι3G?s@@uS1w\@駟RD5O /N+Z4743 _Rt ]&Jꋡ敹ݻspm]ajh~Z)}1]oh~FrLNF;Ƭ+V 4ãu X|P(.S2o Hv+ݹs~ ,ޞb=x ###11ڵkT͛S}޽+[lIpssSs=HH?ԗ|R(.]p8ՕQQQiii<O9dll… ɹann^UUu޽{8q"**I&Jf"WUUuԩAr\Z?yfR6_xqٳg.X`M+Wx۷5JL$^^^'OLII->)))гgOE@Lcǎ޺uG*GAlsttҥK?צM,]zUPoΎlQɑ?>#-,,bbbbbb׬YC7nmmmwR^^~9F/EaiEzCLѢ<Ӣy*uV]&4]JܹSRR4O O+Bû/F a{'C7{ d$ALMM=zѣh)FR7[_޽rذaѯGq&MVB+(۱cj…(bcc3338/]O<,%%e&MJJJzÇ9k8,,,>>|wǏ<~.E7Iu3uԴ߹sg̙m۶X=Jn&k0S4s^Smȓfww޽{ÇUJNN~ 7p:Ds׮]*.\Hr7b js8??𔔔LPf{'NP! JՏo޼LJfwJR͛7xqqqZJ0{쀀rm6)}ٸq#mmmm׮];p@غu~(,,lժU&&&Æ %S43 GҮ:u*8qt~g~ NׯѣÇ'=d;f M0!<<ϯYfdU`` >|pF *7???'Z';L Zg lLLhHꋡv!]rЭ[7N+Zw_ ~FdRihh(wСnoox):co!clL&+**"\]]IEׯ<~ѣ7n#mzxx6n/^)SCzyy!`ڴi**Oiii"H_V^mjj{!C)ǹcǎeee$ :wLz@NNNAA>>_ZZzijcEE~KgXz5,0]jK:̨t"FY@>ܧTǤ{'A*nA+S4/Y0A ѭZiW3J&d2To߾O>DPX,"iss;ļ<X|z7mT뺎A B4*8k׮vvvEEE&M5k;AV zrrMrb|{ͥO70Kmjjڶm[RI(PHf2PJB.}voȐ!u$S43mJJJJIIi׮9sfʕVN.ssqEFF>|xرdӧb݈# ^)(,,ܳgυ =z$xb=zhժUvvvLL 53͙3g%UjЪ 螰t 3El C~ꋹv9s_GYjyeVJ/ ?w2nGGGRJLalho!cl[.\033믿KK˞={=zZ1P%'F}#Ob ҪFD`kk~PI( P{EͧN277H$dtxT4ZqJJJ}H$ ...?nժ)SNLHH#!~rHä33۷MF͍_tƎ?|CJ]]@VznhXa/ЪZ)Ӽ27 -Z{3fԩaNXZw_$ ?w2$5 LclЅV{ڵ̄ӧOݻE[Vt H8p`݇/zA*APԁ ;wŋtpHtڵSN#E"mh Tw2l=z۷oO}u ǜ4^ZPPЬYt*]TZdsCDvkQ}1}z9Y}O/Ђno!}  .$''O4 Ν;)#(D"&h&3ϟ?7R/,6k׮WnٲeqqqPP.558Ջb K.9::\xQ.no#GѣG===/NZ3y>Em s7o|){m!:tQ]]Re˖={4|}- -2ElLnZsW+ecjwZir\Abw2$Arrrʔw{vS]4͛OSÑ)abbJ+~Ԋ 2X;vkmr}%yB"Lk{֭[l˗wءhC*޽{7!! yd^wQe taoou '/ IoRj܅~O+ZU- 2E k$9H sMbjLaVjhwZ)Fd|)2-D#aCTZ*PB zCNM|뗻;֯__cfggS ]v%O:t{k|U۷:wlj"z`ظq;w 8nWD+w)%*|P(433SI7ΤJJrDFT HkDB\uO:xiE*V]hR=a!ia.iU_]jIe.J?~Me~Cz-Ԡ{Zi~hAbw2 ׮]u]2U6[QQQdO {QQʕ+FݥK8}[mjj*H֭[W[թ]`[z5ǻu떿͛7i)H.]x*_4r͛nܸA.I ]_%%%!!!{PP~388sRtZg*:: 0(N>@&9r$1d`r ٳgg׻wo BD.2,&&f\. d5A2piEzCLѰ<3wI2wVJ\._xj4<5V+H aNZ gΜN8p,c]+sUnþh qBBqels8ŋk[?,,dСΤCQ-ZDHWoxݷ[$}GT` %Klذa'{3f ց{aaa-vژ1cLMMKKKXʣi3gիWϞ=lٲ+Wb{{;vL/$}}},Ye˖:tSs@ϝ;<#/1YjՆ  8Rˋ<_477۷ŋAOþ}nݚtؘ8qq0aѣGO|qC&?͛bY[[xٳgϞ]`I//'Oնٳ'*!Bۭ9rȃ2337mo^۟Ds׮]^^^TWTTL4)))Ç> wYf^PCOdQQQ$njbbrƍ0ш'-éSݿΝ;3gm۶ƒ`zͿܾ} B!P}acl \.…^[ׯѣÇ'?;FM J7ovqq222{f"7oa666ݻw`R444ݻwwЁl }lܸ4mmm׮];p@غu+ Fiiir]R!B!/q㣼eP\\|ƍj\ʲX,="Hڶm/_":Yqvuu%MJ~` 6mԄH$ԞX,NNNiӦ$ --M$@ǎ-,,233I 6to%)((rX BzxvUeMIIIzz:5P[m;y&X/R\tg&⬾f͚+8u8::k׎PΝUZe"(##cFC(cu ՗B-..̙3+W=N;u2T!B!#gC1oƒ3 yP(\R[DETu3qVT<=@[$Q\4P~_|JJJ}H$ ...?nժ8D!B6P iժUM ]hwgT(P ;wŋp!B!w7xlmm!Z)Ȳ zTL<''FC9gkH-\4$ ӫW/% +++/]rE\!BC8$7ʞ>}ZRRo#W={@EEzDLa_zq]"#m߾011/_}$y琉ZC*޽{7!!aРA0xČ2''-Z`B!m\xQyKTTX[[kgݝ4֯__bڽ{8::ڵkfPh4Hݖd9]Aj999|~޽`*m}@ΝR*++A!BFŨ9\d ]&>LV={v;\z5ǻu떿͛7I3@"\ti>Z gΜN8p`ц%88,DQ]]}M6̙3-,,tD"Yn]md1]_gJJJBBBȨ  htt40` #G@}Jrט렋B!vwB??>J*~oootZwhѢk׮3ܼzo_3=pժUΝ;w9 `ÇM4R&ӧҥKu͒%K6lذ{уcƌ'__%Klٲbvܹ~~~;$R5ۗ!B>27͚5믿ƏojjP(<<~!aoo_M8\Pm:t萙^qF2|T%_|qСaÆٕFFFtuu%K\ [XXtkB!TȤMx퓓Y+Oe)f:s̙3׮]9B!גǏ?hР]+@Ͼ< 01!B! !B!qB!B!B!8 +#B!2|sB!B!B!qB!BqB!BqXA>(m//tܛ%A$q!BF >}T(7I'0*!BF s `0>+&2B!B6]J٥0bA/[ZB!PㄍzUr?~99Vn[ǯy5 _+MڭR'j I10c` 18ľq:~999#Ue2L)ʵک}Cn F B!j` l1֏nTy˗/B?7QJZ*rp"c:c` 10c` h9Ti}4՟ B!~T %L^AHh7p S7&8B!B .eQ?pӧ:x&ɇU=M&!B5687T nΩ}RB!jTqXoLL0U@.'zѧ\!p;Q2!BF~d||(0R2Eu LjB!!lcs7&dU%28 ,`+9B!PㄍC1|&yD󿍋 fMLL G:uT\\| fϞ=!!!fff>dXx!j`qj>|0|,::| [zK#FضmٻJ=ͣYs7oCmݺ5 B5H8D if~d xݺ:n~}WK,!̙o>坼XcNzz:L0`#h8tss3!PCx<MͶiLMMMMMg.Ko@,,,0zD|999u!Cwww<B5H8DHX̎y$1B^I}[UZσYJ>>l{(V~ÄzJY,K,ea!wrMUR)˻wD"ne%\ni)wrU%p{~9~v6O.gn]WZAI$;w23M b1KVֺuU~͚HRr9q&)ɒ|3>odde˔lڴiӦM?;JLLܽ{[,--7o޽{w???___ pBNNjݺѣgϞK;jɒ%GQ2m4.3H$&Mcԩ:ڥ3 ٳg_xxxrrmRRRZh1hР+VzI|o{Ӽy[nQơqd{쉊z葅'~;v?>} |MX4/ϚYf͚;viŋٴiӏ?|6TG!!BQ] o*:5M""?Ygf8a#$s2281;91lbޱcqx fO P^&&Z=WRQnܰ1E۶`m]ݮ]EzܿoVU21y ܹV[ Ӗ!4oޜv]XܲeK*z;w~bY,փ222]866v…䭚yUUս{ݻwĉ&Mh6mPѾzBh߾ݫiy*??3,///&&&&&&00p͚5ECt:颣.]Z]]ME㰼ŋ)/ ࿍C,Jg͚OԩS -J " ҥK2***---66V%i%V5/HSLٱcÇoݺգGC&cqeBCC(4XUϟ>^oZO T.gpssyT#`GG۪lHVu:ppUx2&,mlY>b%iJ{̺w}D,={Y|J099ɓ'l6G!dx8D?d2oqooZ^G6IUãrР-KHxӜ|5jNKgY;)ɒy/_=Vwq2R~,Ś-[J^xxTRoۛ@q1W*СJNV}LI1ii4""Jy<^hh(=z*CCCR?y{{GDD :4...##]vFu&L8YYYfffݻʍChtׯ_4h޽{XSF<;yggK.q8qĽ{RChڴ)5U8Kp={v@@ m۶q~m`cc|۷o'$$(gӼ<Ӎ34u'N|7ha   O%Bl VVCK9hT֩S(3s[լY+-,m+gzjQͿ"iR6Llaf޴W?ήD1jT)5zPE:U,ccO9~-s*gn7/33MITOirh4@&ѣG7nm۶d˗/ֶ*y? :&ի!uP)Qvx5kJMMJi9%%ŋ0e^^^$d\]]Iːү_?xIyygZ>O6VTT꿈B`!B$ƹX[WSe2;7WrVHlu{xTiS^>ۼͷ]JΝnVRN-fݹc֧ӧT ]v+**4iҬYky&X/R\ƦpϞ=.\xX,V~& ]]_kK?!LKKkٲe6mHCQeRZq `jjڶm[⣲ꮩui^|ܸq(>}Z,ٍ1QU2!dz5>>O?]p!99yҤIp9S˟H$26yӧO <<\^2 #I:{)iv^7TҊ3YXs'&V+HSNrѣG===U!!a!z_j2)o&t{%Ӧ2X<uFuO> ݻ5E`g?&&o$%][Q$t 7oСVѳgOHNNCx4h4{{-Z|ǹsޚZ'~hܼի<K.о}{ss۷o?{RXiŹcǎPYY>TOiA<ӊvi„ fffdCD!1ŋ===wؽ{E]vm̘1楥Ԝ5accdɒ 6޽{$cƌoN7>re˖]pW^UVK. ˯h%Q?2PJV̙sճg.[lʕb~ǎ%δA}t)4X:ktE58g.k׮UVuЁfs1c899mͣA<ӊiȑ8`W P"4D6'G\'X999y 12=ssuÁBZ9rdZZڢE-[zIF 0v@/4!B6ϟs/_~{w Bzwմ4"11s,9ٲ<l6_)ү+V!C5BBC8DGQL]C6Iz;B͟?rrʕ&!d [)BfQ6iRe!=*((x왹;>Bw"c5bPtt4&B!lH 0DO/ٍ[7B"B!7=ܼ^4!BS8DH'QQ{Lkzߘ !Bn'U(wl ;!wΝ9$ '6oB{5{-K[C UB5B5XWahYGmB؈ 4oG] +bL4mZЌ|&'ʖ4ڲ͚0)Bk8D!MCC_5 8ex2,(Pr9@iNJ=K#jqNzD@xի4;[n0ժ#Fbc!P#C=9c4 '澮 j$E/OryLdffo:bQC!T_4Ag\9BMݳgJt̼vbb&V|p Iw";uiiS&oY[H;O><|805u@^^;ԡ%-/|ٮC*SL֌CUv_Q91d_ٛ|yy jG5߲;:ϷHl\xǎYTUٽxa+3>_ocǎYFܜlv2 [Ԯ},551yl~K2+IzRPQ+776֪ȶ)9~'>ljg#ڕئYEvϖjOH9;kmx'NXTU۞:e5~!B9DC^篨`-ZxJڳJWtL/;yӦOk x []Yǎ=߃ 716>8G|Y^nA³?߼yn fhmLLXV:~=nl,_70wo_n߾MG*Zh8;\vpx{}ސ!i.M.\wQҴ)CΔ)&'OJ vk8^tu,xM*j)fԠׅե KάY&cǖrs山R2beU^[H~[L ;+~#R)/=VCa~LL+~-u HB2n_>m~Z'_#ff*^@HeT-[,&XxP>uʪ[RXyG-33c v8{V*)7ߘS-[ܩp];v\_;W_( zuExPXUذ~RX+VY!=cDpp`51ssoYn]BGDTơk8W.-د m5k̕[ 0qIAbԷW?f@6l SN0'$5B!=nk@?`BbeU7D&4iСΜ񥾽rkР?mϔ)4i|NJje/噜c„}vvYݺ];ɓ#|}O M`V{|>ujx~~3W=Lt|Jy~_733ֺuVVE%}|<5ؑ3oޫv[TTSI%S@?]W)45_~.vv.5M5+ Th ڡCU={ΜYP޻X (YB*}bYb Aߴy~FߋڴpL1i҄\]K´JNMPfgWܭ[رe'.} 4?_NR7y]*-ܲ%;8J۶-sM{uN\N(:{!C$o5O BHP .^7rΞ9wnM>'OZ_~3zG e{%<|f˕_ q?a^SSz&uϗJd2̔?^EcQL[J3eY٫fUf>Ə}}.Ζ/^R.X1kVG6l6)?-A5Zf7k*(PPO>yR2z4Ƒ11R zzyq%ݺq._LU} ƳgxPSzꔔj2e 5G//]&+V0B!G8D[ΥZB#,2KO92^=W~u3*6}N} CO:q≝;gbRRSeoss4'̠PJ{߶iV]R]<߼)#=&5ʊL8*=}"凥]4#ydf37f /:eL?}rt ?'.JyA ?KW'&)&;wVR}J 11Z`l* j!9tS!sP **L ʋC~vecllmmF> peOITIDZB!8Du"UW\lC>8;*oo2G=p^))S~toi)_`#GƉVf+O=S0A5UT:MJٲbgW^lj_HZ,qs+ (*sło53@+Tƃ}]J%YiBP~)͆٣Zܰ-[UZ_Z?5sH V2{[V`B6b5ΰs6mQ'LS=Y.9|[PSC>ܹz;u*L 5Q&TSD `SKJddT,U}Tz>]p;do\} 8viӆTy5~x]cR^Ԕc^۷Wyګtc &s*]c|ܦPK`B^bP|9Nw\ڴs.WrΝLé8 I{muDDDʖ{Pkq8pU~os޺e=cכ+<܂b>{V]4֯79?M@+WlzN*kZvlڔʕf;sj*r.,jaZ Z%·UQcGɜ޾$@ _ .5>|j9T%u B iΖ-˩kjE3.\MmowЄkא}}d\ Sgc̈'>޷orUoҤut+wvZ2wIMrv]f@nDDxL糨7uTVW_-]j2,-U_]4:t,[fc"%:+K.C=^.^aLދǏ宮l?ǯ&e0LZ֜,uϷ**Stoo_UUb$;R&'ޭZ2-lM_~iqӭ,cG%Y߂QڥFa9г' \¥ZF!xC豵-LgeUNeۭPRb=wfjU 6[nbR%[}=3_ZpKnwvauGΜo٤G~7Mss[BOcEq{2T(`PCafz=)&lB _P׼LߦMomՊ=p LJ51RIbrj6LL@,V|]EMZtR3gg_IV+ T!!Wbݛattҥ/ PN%`B{{lޜc`B6bѣ}}O;SVfYRb~mCd>8˗7oz.XAgSw徾Ȫ|"ƕs?%OҒEYEe*/hE㫯$㏪  +RRsV;)SϜɫwQ9YYD+_!Kn߮H/_*nެ^ॿ L!2L^>zt٩SRH!BA"6Ve'WVhOK}}11>-! PNSg'''{Ǐ?hРu﹅ QUBC7@Qm镕uݨ~P3(*RhQl[c ;iA?W9DswZ8|*-Ctg/^lWa!NHPΙʪg2Ly2~9sLX={r62SEOBHW8D^j[VC7L ?{p CycMBHoqP&22B5?PhB!C~X 1P,?HB!!jp=nB!DVB!B!B!qB!BqPjWNlL kȑz td@duo<`SRcbAB[8! j*N:$MMLL8..&{bүT=,+Zbj:u*..^| j gϞ33X,wpK>>yD_ܹogΜv:O>ohzO>JBoC`)ҒO?Q"_v={ln5C]_^>{O>[Zʱq߼y# uִZ`ffM>^Z_B:|+W!9lK11XLn>e U+\^Yy!LCơ[#I)7gΜD//}-&&!B5!jbHs損,v^^,%%J i4I5r B8D }J|8oY,- LӂXymbn]կ_yf2*Cvo 'lX  *9|>|M 01Q^LyW V&~ٲ/L$I6} .WA} |MK߿'4iңGS|033ˋ \fkYHUUU:u*11qРA' ~ؼy3X,kk/^={ٳ ,Хe[]]=o޼X*5N''GPR0%%e&MJJJzÇ97UV^^^Z۾}:88HRZPWTTX[[+7N<~K.'OsSRR233BaFFƚ5k8ݻO88,,,>>|wǏ<~"54s8 OO䵉3YJ'N!4mڔt*J7o<;""edd4g̙Ǐ={vr8ҷM֖lS~t:o޼LJfwM0!<<ϯNVVVӦMVTy\T?}F6YE\B\cTPnie)r횙|͏+R.k("n 803>s\Ll°z>zΙ3^{yDkM0,_}Uց֨/O>~;~Dj**lZ&L>}L&#=z|W,eQ.ZH"]622̣fY,/\W*#F@8fŢEqqTj+(mPy}]-.;2(Э!'G|-vvٹ̙ht?BW_-0*6֩W b22J'|B77D=ұ(v Kj?K/\@D*0\8,3UO:ED3f(::u $G7BܨcǎݿߩhsBmU̠dzgώ?|}};t,((zR[ƕquu- tcQՙOq{wOoAiTDr5+z=7M 9JrժU3fHOO),,lĈ/RP#;}Y̗.SS!!Dt3ڴ1EE[2K(XQ~~9U:.ffJ Ҟ=u5N!w!7ʋ Νz|߶m*.ӡ \8?<==FUl#og2}+VܹjҘϺ96o޼nݺ{/44ǧ?у :~xBB±cΝ;~z"@m&xȢDeypȝ;j$ CEEu b?(?Lժ_LVrEEje~tRXvrǔƔ҃wm.rS>peza]~եK@՚@D7mڴ /H4Wy܈~AAAmQOI_!~#\ϒfp(_DN$}K,iӦMaaa\\\eST=tЉ'bbb()))116#oȐV2<[%w%O`:ކq#*((p|a>DR:%%݆>>f__s#|xmf=i0\S*)6>t]([o[~]ki?jC V7_ѣ_M1#CdϼyPVxcMOժ@@qLv@Df焄pRRΒ%Kb3gbccO>]RÇϚ5+""h4~IR^'Tv}X:?lT?2={lqqq%00оo\zP(XrbIHH8qB(SX$Dv 6pMw)251?s͝;4..ξ0Z~wiii=P8}t"Znݏ?ek׮͜9~5FAMBې'Rxwwn6z->խ[l߾ΪR,XQՇpØ/]R/X?xN\z5BW:z 1ÇAAJ#/,ffJ_\.Z(hkN)ٞ)ejeR+!hyh{A!>q.CBB[Bq耀nݺK۷o7oѺu:uԳgϞ={.XԨ0˲bۻbŊ'zN:k\WKhn纥T*f?tP^ L:iΜ9O:gZs 9r^=zt-kR1h dۼysppp׮]w?ѴiӢ 3vҮ]T*.kEFFlsv5,,lűT5R'?/66E 2o߾Æ 6l_|0'R/R&edd,ZȾŎ=:k֬nݺu}ڵD4k,~ B3=]]=C9t /#X,hRҿ%KZ&% ۴)-,ɓ {NkY3U4nC߿xXU`QUk2~v&U(l7ȗH`^ ӦwhHXֹq|O F961>VhСG1cFn$Vuss۷;W駟rQʪTiiiNNEGG旿ᰖ\&LaÆ~9;;z___=11AZH$-ZԥK@ |}}k_k{o˖-nnnŮ ڰa… ⸱ޯ޽{ae~ѢEAAAfl65j޽DT'N~oo]v5+;;ϟ.nNtiܹDqF~oTTg}6jԨ@"*..񉊊ںukhÍYYekDz'N=z7mڄPrۼy8`͚5-H$ǎ+?@c?O6Gj`rs)(=m 7s„ 8l6>|郓V7.Np2;w CD P'V?3gDk@cDGGӇSR}ڵ{gp437*տ[zE(l!>>~ƍR]vz>++f~7_5'?@cp YOOkD6,`jܹGr۷m6Ax ho""Zє)SLvxL`B@8C C CG9rܺ%A4~7lذj>7>>ϯNօo:׭3g5}j:(B3gHLob>wΦR1];I%3R)ڧو?IDNIo߾ݯ_}Vŋ)S_ѩQ=*Bavv͛7yk>>u-\:7tCh4H(TL(eQ۶fMO7<߲uhذaj<' !4OF۰;Mdz{rcJ*JWF#k:T`,v7oJnm6}{cTj dҼ]"4@@-!B3e6s <=M(((=uKvonm\$۸ѝ rD&ySS#Nc0099SW^ߩZvl/],3ʳ,]PrgF2g̘a0H.LK.]ti׮][ny{{w7]xQѴnݺM6tС6/^LD ø3 s+W9r el߾}V1333333..lչ^nϞ=CDP(d2YNNNBBBBBɓ v"r*777##b5j>jtkJR >ݻNNNDtڵO?499y˖-rj DB!YڥK]!CWHVF,f-eV&9Y9q} ؾݕO^\ *Z ʘsc"pf%YH{Fmp&T(55uf9&&n׮l>y9sw}wݺu\Hn^?bbbyK۶m۶m[YKɓ}]WWW"h4_~={|뭷w}5k85smBaTTȑ#{IDZv۶m .\n]xxȑ#\o ~ ը5jtuX֝;wNZbł ylx?M{ˆ+ V~ɓ'~zmQk4Lj̘1}aggɓ'_~Ν qg 0B?lٲ~i8MUEVP۰7_j[\\'oTڞyF#[7SL Q_x*Ç 2tf;ݻ]vt9st,ݻ%Ai`zcJt1:9pwSNь3<ԩS@":zhԄegXT*Uђ%KdaF(: V1 SP"b"N>.KDza~6s͗Pi 1}DzjdHz߯l@#p#8A.W,[: srDrDtb9QJǝfdH+{}tJ˗K }|̾fʄ`8qDȍHr.]skԨutMqZ*PNy-ڮ,5j~hkŋeznsss^&wybu:>߶=] g.+W99"ٱgbFɩ`D7m6, : %μ,BDK.5+HѷnݪŅ޽[W5݉d2QEIk8Vm-ZJ*((ߟzj.yfeey>QkԨC_}{nJDNNNkȦ B I "#ukZX-.i/ܹD$ wƗС$+WPX;z0(%3#CdϼyPUw/ u׻wo?Tʨmژ}|J/ }ǔݯdK,gΜ=}4ѡ>,;FQթc';\jݱcIjtw4L 0K P7{~Z{j-iMӅ B&=|ƍ0+%JوeKwU) ̱cN CZw /޳Dž 4𽠏򉧧gjj*Μ9RT.j~9 gΈo ҺukWWW">|̙3*˲G.JP(Yz0-VputJrs9tP^\]]zhl۶ٳΝ['o/_|ݺu7nxb?OGzpcnn /xw[֨Qٱ}899Y,.jg< \]=ðoQKZ-?eYsgСc▯yʔʬ,Dvh>\]>9{wôiII[$ۮy0unnzM\p3rnC//Kx.,L7~*~*ƔVСC=vڃ޺uKպ/::.oo]v}gvv[G!**J,>|w-.. 8qgk8V:o &}7ϟf:rH6K\\?GDjھs\bd2OZ,5j6C_}[tjuNƌopC6d |SUחg'N=z6mЁ~S\n7^cVj$_,C@thԐ=!8J d'N8L̝;b!" (Fc$JM]ËT{x`/p!@&ֈmXc!@Т`B@8C C C V k$7nH33%wm6""ooٹ=%+K|XPڷ7=Tq۶Z.(L˖V̆Ҽ!4:gwr~T֭nM?/xQ>fLaxα¹-[ܲD$`ac д]m:l6ڱ]z\2$"9|y>~Parw{€cՅtZns=al6JJrvrF(ۦO_nDs2 - +ht)۷NKUQfKJ zJKDO>Y.xQ=lfbFQ@DDjSRm6*, ѩ}99bt׮~.%f3s玸-D!ySb21))\\]8:zKz// m/ӾFCC)5_۷4/Ot%٬YyR) 4aMi'_;Sܿ1_ԴBa6-V7#ba.\?)3GDcfC___<h~kTdbmv6G#"(e93O={\Ξ,쩏.-oy4¡^q兇s lvrKwp}[o1B禷fiǏ߿ά,?xI$9b+Hڕ9PNr zyYE7]&ΝQQjkM{;qjP(* ' ) KhBoo w !9;(o_ ^|[7PJ%꫖:W9wN~d<)Ф5pP!OIGssEejTxʔouR("ٳEa09Y] `j!&,tolf IDtyFKh(#C< 4:œP2ŨB1B!uV+#G4㊋K^P?F+0%,bx5X\devV=<,￟m?Yў=.{Oh ԨpۛT*o)rlfr&"~l*4u9hZbaF*W#tpC Z-ܴ->UZΓЄ {yY~93SR\,MڶmM,lȐ2 ulx95*m6ɓ)~~cUQ؞eҤ! !!!!!!!!!!!!!!!|}}Ѡ8n5G!iaӍu"(($j.jh4M9!@IJJ*ŋfj5G83凕&QsLHppppppppD$B@7j[ 3ɵsV'8=p@C6lޣ;tжmۢq౅CxL%%Y^[$Z*9Rh.S/gYwl?K;ОЌY_W/X?pΝ=d̙ @3Cx}~2cNmnߖ\xӗ,d$n{Y[ABsUfYsW'۷ow:{VD?h$"x}hB8&dhύAA_Vѣ~Jn{g>h>+EHҷ̙=raݦMMEFFro޿?5aX)4*] -f裒_y2w?_׳==((}7%W;6[!ҥޛ`73y1ŋ-f͒38a:n˖-#F2 ?|2-[trr~jfف3gO}S hz'xy1Dԭ˗+v0YcTBC-g /9RH˒_dd֬1._niUڝ;wnܸ… D$ Yf>>))i˖-[l 7n? 4Ch =<"(9ټiMS sԨ};wF5p,ڿ߼ɉ=ZXpU?CD;w~y*V)agtNNNJJJaaae^2>޻wprr!>rСCkH$zg}ق;v_|yK.)@p E-;M2tr*ʾ;ٹ{t:1v옠Ph{ Z"]f<=aaX[]TFGG1«e*⇾raa}U(eT0h\*-]ST xn^S"zhN6f=ffjcĈFݻ*k^& @9s08Xןv3F,6h5|}KTRNLpˠ+~ J2eC7XL#Flqwez'> P˗0@ծX'|o2mr7.\WttIM6iҤFl5 ƎtRJէO+W=@"#ݺ N/`R3F$ÔZa6۷MO?ü<~{РA-ZY\^LJܐT~hhed2[_Om{ߠ'On۶m\>/¸q:v @ùt:?±cK&tqa^{MuO]K۰o_o+SJEE->d6_4@-\(t9|XW9byV|Sd׮]?ɓk֬yz}|| /зo7LRJD("2W~(0Q(;;懿jEM&Sju&(wZYZjՀFi&Vۿ̙3 .D2fH5;-]jז̞-w4HܪUɟ6ΛOJ,^l쳒KFOOfЪFU|Ք۷w+Z| dY_h4?U4%%%##j0v?ʇ4eWnNKKK>Dtʕ N:t333===z#GǏ9,M#s 裢SH k,.OTLD6}֓d\.jqyAhќkgsE|]m~;M <Zn{͞=;99yӦM;];?,ZdHHKγfI$^nػjrd2Y˖-(??ͮ܌5!!![&"@0pq 21Cx,ڵ˼kO0qW$/[?⤯r֯w*MOz5*la6͛6BpȐ!C RS`ߦ#G9R_~"2L.]m֭[V+R,d/9`zڵ^,SjF#xFPPq'wh0,ҥ R~S%Ō!޿2Vs"eٲkmo!4i̖(&M0 # ۴yAa@0t'|e˖"H$lr#wĉѣG8pӦMe󫷷_,@h$hfgkRg7xHT[~gvv6Zܸq%m6FqqqAaFaFa~ QQqfYVV)CMA݄pw;bIDAT*$qV= %u:]ˣ0 0 0 75CaFanM&bL&ƭazzz#olp@@@@@@@@@D"'4<! !!!!!!!!!!!!!!!!!!!!!!!!!1hz?;I=K'IENDB`python2-pythondialog-3.3.0/doc/screenshots/mixedgauge.png0000644000175000001440000016135012507731135023522 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATx}\s)GCj!(-w["ۦ͆ͨ c6QQ2Z 3F[I[$7Qq nTs}\?.P($h PfښЄoG%4,PE9R¿р,""n(Q-PȖɈ\VaHD.Q-Sbea!sBk=s5 "+U\mǔ&MUiT95OJd^ϙSlo/EІEFO^9o4X |hV984eOb%WCAVJ""+u7D}@[oQmJPŻ 7!*]Xs͐.=y=CL+>yɐ(SAIPP911.K eBSڻ֘5~϶et?0h>Q>5 F 3$+*UQ%tڬ-S|RI4C/lZbDdHxiu?ֳJ-Y4KbH,6 n+w9}+zOy_ OɌEW]E72uJU.t3$*W5(zzGeIDEBו1XMBKh pEfIB+ evDԯ_̙Vr9-1O?7յk@yr]j}FjM>>#F<qpd_~ytw8T^50\My׮UTxڗ_5(%#GlDCY/I$6mVVomͼz3++ .^4ÇǏ bXX;vXѺVT*e-YҖy]{O YdfˢCh<:s-ˬUsJ#֭ b!:ZS2g=7)[JDtWI?ȏCD4C&,xe@4u./d+YlٔÍ756,ɡ' Դe#2%'my "~#96n/={aƢݐ_A:Nɀ0}6!5 1NU#aB4lɢl0ӕ篢{Z揍hӘ\WJhP׮=Μi?{4tŷ5"&"3gL 03STT>md07W";Ndݾͽ}f$}]lkRos==kpӦO>VD^j=kr℩fJU=ν{獧M+YRJ֩:Fѩu-s:g[Y׮]fԣG l2hbXGFd΢*biߘEc8p >-y*贜N)C/O$Ő4.? =RzKsk=9PFf-(΄db~KyeD"RM0,39ԩ6 -&q)i_2zHDhU!]}-M}F,a$4q 蓧_9 SAh@[=M ƚjrdo@ifԺږ'qr\A*ZfD\?ytfsr1W"zMDD4M֩6U*J{noTu] ) R ? 'q)фXD h;T5œS""QqD7,նQ!b$"FqȵKJ/R{2a=fXPJ$"NB94~o:U]I'!!~[J\!"y.8RQTEV,"T*"ccЮ];4 @DwޭKV*W2񀍍V)KJ e2Lz y|ѝ;Es1٪q=+ϟ7]lĄׯ??|}EWiƱWݵ=ZNDo]qY-U*pᔕd,4{ 8uu*Nxt:W]v6_{9ztY6r"[cCD*?(h*M.4φ#UROC\"yLi}d+H"aDKͷ|QG&r&T`Q16>_vs18yՃT jTu(s-4{|Sjn`ZTxnݺUcq6mP?GC?E~R#hQY9 bMɳ1*:"kbj͋(,gbPrV-Zg[##Gڶx*`ٲ7YCm4Võ9:Y)HAWȕUUXaj[~=zh6ȔED?S]t0 )yDDVMP羽zkN{SA7[ּiP?@\(WA."|z:~gCǍ{U+ÇDD66O?} )?Z|YU㻏sY9'O.Uw땕YUORbTGzn2j|ZW*sGOJbj$?rܹcǢf^F#<یy ~lEKIVZnHDaHɃL8){l*0'tMB<""7C:kJ**R)Y!Y&]ΡCSfy>gu1lmDti(%b |09|Rvd}32cLM Kݤܪ}/|@PlUd$ɘqH[eiiwuycU^bCCՅ RQN DTYi~}R*PPԫ:Fѩ OrCumUU'МLZ}>ډx+Z)d{b`6 f݈WΧ(R#/ulfV<ŀKXE_Q0k1fh~y:]yO翕ϞQtXFT$#ze4ޯ̌s@F>W9LE?hcQ6@J[A*(SAs4xTF>鈌K:ey(QJU$!ybVZNB4|N)]WXE RSNbZ3hnb-׆#|KN6W?f&M*9SثWQlN֯xڴ}bu9I媌..֭k>ϛݽDfڴ]zT ڵq8*Gվl̘)SJkrv)26VQ9kV&b}1tƣS=7^ h„.]ZRLL..SK5% ZǾntbu\OˌJUIJEAMBxtGTX=:]vuj9~`^Ϟ] mP;vloG4,PE sX{&&J6%89y^Vk'k9hfدc'4KXad97פg|OrJ2aFoRc0@WVfxfԪB*eUU=Q̼ణx~̓ev% S,J vv2_߲Y Z&#QڪWOE挜VWld@V,2dQt@F h:vz{߾-)1 JUɺuݻRsіP f%Jkym &{޿ځa Ij-r%3@C@p!8Bp*~۷'_uƍcލsN2Lqqq0abٹsg{{gh@FJRxgf !41ݺu366f^߸qcd>>> В,QkЬܭD4-;vd^TÇWVVљ3gu֦M:fVPЬJu V ML֭>,-} ի Вs{ QMB$ikS,Q Z2@z:T=LCf !41UUU ssst33zfh@# 666666]33@K7n_=ܜ :T3[f @sҥ!C|"СCDD.lv}2d9&F"(JĪ3g33@Kk׮m߾=//J*m۶Z,@TPPbkk Z&C@p@qҥK.5Ff!@ci߾=*A/ҩEj,SBFa!8h!BP(ٳ'jPCjjj  | 9vU:h0! @c YzumrFFF[G޽=<<|M"p 9TADs;wNKK{I!MBvvvUUyxxBP_ǎC%4EBpѨO?y h4~߾})qqq>>>YYY@3tI$ .dddddd|W8Pg>zhtDx4T*J5Sr9)toHWXSTYYC& >/6o|ܢK.رcȐ!///;w^r޽{yyy7n6lX-\\\|1cԹZ10@ڵk׵kݻovݻw>sttP(ܾ};?)))''0##cxHzȘ1c;X,j۶_\\܂ ϙ3STB\\\\]]j3+̙3d2YHHÇQ.\<ަRʬF1bĈoh2Չ'ڵkWQQAD;w;tP@PYYΦki„ ~!N:uԩICz\.?tPPPk:v`B͒%K(..s......:u>}zzz+%J:t(ܹ9>>9Ιgر:t5kD"۷E4>kjӦڵk믩S֦x<|I)//cF%ip8RtťLH$JNN }W\)HMVlABBӧOk扈 ?>bH~gN"O>Ι͛Bطo_tt4jJGYS~~;wܹsСC#GdWJUczff&uY3Q,ñi/_|D":u*V}fffֿ"ڱcV m6"rsskӦM2ݿ)IIID===Չ:Z.\LH5B GGG333gwpLMM5sfggXYY㏱gΜ{yO< ܹsD8K.,olꔮ]>x@j.\j9@uVZUUj >>>9%%e޼y?CNNjժСCcǎsss/_NDӦM{6(@?jժ'N\dI=3P(6l؞={)rssW\9n8YFuj(3;5+R+2T}]1}h Q "I uu~`0z~m#==i xΝ;vwbbkJpeB$XHpTd͚5...DdgghP\.w^М 8hq8pQ &aPTD@ݠC -P( ={Dm@ jHMMEK. kB[~cǎi^EAAA8M&h,!!!WMu5lժ՘1c֦M\~'Onٲ3"9TAD A__)SR*޼y3==D"A73UUUDadd h@\rDO.ۥK.]L6mƌǎC-P8zˍSp8nݺumfz͝Z|̋t'''T@3|Z?|||f:s絉211),,ܻwSnݺejj:pEYZZn߾}7oXOP$$$ڵC 2e I@pXRT*LDP(ʚaΛ7o޽̡1]vʕCx3g.Z@fffHD˖-Q;wܹs_j @aB=͛O>[TTtҥ;v 2Es+Wܻw////55uƍÆ ߿?f̘911Q32dׯ_'=z4{o!WW"ܿ_3eӦMBpӦMZ9CBB^2;NNV^߽{ܹs]vgf;;ȴ;w:u*""ظ>3 =}taaannm:v:l-zȘ1c;X,j۶_\\܂ ϙ3gŊDRB!zyyfVҙ3gFEEdÇ7<|ɩzÇcӧOdDTYY)H'Nhoo_#Gܺu+3Jee%޽{@ (..[fsN>T*x^^^'Oo:A! ruuСCǎ,XP(BBBTYd uťSNӧOOOO¢Ri```G<C ]rEPҥKcJh6}Q///;;;:;;/X/VFFFw𰳳{뭷6lPs6lB?oEEŸq]m@WSRRԷoNDZÑJ/.--eE"QrrrhhwrJD2mڴG6K$+..޶mfgg]V 8884ƹ\U_~:u˗tP5^̑')))<<֭[D$Ξ= {=WW:dp8g&-[$$$d2"JOO9sfx[C=RjLg:w(XZZ괗/B"L:1ҥ_"Zv-C?믿H$666AAA?#nӳm۶DbŊꍤgvtt۷/iuQnnkט!s^h׮]9srr Px@؄8::DRjlڷoA$77W+gvvKӖ!ػw/XXXxƍJ"qqqa&WPDaaa[lqvv^f UTTddd$'''&&*w_YYyniCsswܹs3fxe LIIɎ;vAD;v8qܹsy睺 [&†lkkKD,k/ʣ,TDTZZZx?!x[zid,--ϟ?qU[ƍۺu+'NsԨQ rwwwvvAAA!=\Ǐ'%%͞={nnnw&Ç֘֬Y .Ϸi_c|>Ϟ={vE"N(QJJ sI m6`0tfw"Q a[W׳e:@p/JBݻw4hPmpΝpfv>ww0C”JܹsYro?cƌ&PS*Lp9ֽڴiSNշ7]tyj9##ꔙiy<^@x[mLwww:thUx<"b87ѢEzQbx;w<53ccw}Ʒ&LjsM"rwwW?MGDmڴqΌ~_lYFk9//$,YRcs)sVVN2E3O~ PEZZX,fX111ڵ#"6g.)S$''O0A=***U5* .pX>_2s8!Cܻw/88X.[?Oe6)N9sf׮]MLLvrh"̼x:S|ƍL ֵkם;wJgVs%aÆ%&&[Le@@/R̋-d{>x`>}|>111̽6]3M6QhhhPPw֭5^m@W@_DK]ŋ<,M,ӓYJ$) u$nݺ{dӪU>c]lgg7b"z7N>]=CII0cGwUݛ7oh۷;vرcr9;qƷ~ˬ%99fժUÇ>|xeeT*533cX>sfffpp-[ pQD"]z9&&f#FXvURP(ܿ x[zHBB„ Ξ=[^^nll\XXi&j̛7~`>nժUQQѡCƎY=._M9l^W^˖-;qDaaD"dgΜYpA? R{bcc^VV]ŽJnkljȑ#{ްaŋ@$55uu,>˗/T*LvCh2NX֬_Bj >+z2h$Z-@ -**֭[=?hP55t'''$$4`1Ν;7vXooxՕI(TX)))D Y7 CpBq܁VɃ:qss@=4'Z8p1|pT@3 i!`X)6}=UC -P( ={Dm@ jHMMm~8i$PU&&&QˠP(!q|M\ή""###T@3er8GGGGGɓ'/_|ͨ"% G\N$nUUÿ \ONNNf!@cdee tkuƍ/޾}<ﭷOu_feeFg>zhtDRO?*4T*J5Sr9)fsfJ~3g233'M^9M&#|>_ l޼ӹEEE.]ڱcǐ!C^'^^^;wrʽ{RSS7n8lذZ188cƌi)--r iC׆1++KsMHS7vvviiiw)((8uTDDql6;44Ӆ۶mر#&91c|wkX\UUնm[????? h3gΊ+HR B"rqqquuͬ3gΌd!!!n133suu%k׮@}0?_ֶa9r֭[W*++\nݻw.Aqq:'ٹs'sN*x<//0!*@}@CvСcǎ ,P(!!!ZO*,Y:wҩSӧr_aaaQQQR400A"C6plmm}Ç6miЩa$ѣG=zÆ X wwx##ݻw{xx[Z3gΰa |}}+**ƍ =zdZsؔ9;;O>] 8p@ÑJ/dLH$JNNNNN~$I``c_.]={VǏڵ+228" /]4x`?ujOdd$IJJ;w."Ξ=￿{X 3{l"ڲegΜytg9#*L"ܹfX,&"cii^"""pԩ VbRtjc߾}zodnn.zzz2)z&]viLOO }Cbcchfff`f쒒++166̙3yyy͛ODǏo_^jmmbڶmۻw 6lѯyqmhBΝ/h%2;k}HCD*jm߾DԵkW"H$Z9]\\p@o!8#{ez oܸQYYID666...lsXHegg5kQEEEFFFrrrbbRq|>ΡaQTwMII9qıcǺtlٲӧ@˙ɴ^B8p,577'w^y.zid,--ϟ?qU[ƍۺu+'NsԨQ rwwwvv׷f^pa~~eLLL#{.l;;;\5 [ֶ6DdiiYueE[P(d*M ܹ~e"rww13<,,LTzzzgkX̋ \7!HHc\huDdddԿWniy<^ k-!DDdeeecc>t9NxD^E6nHD-ѣGlcc󫧛ѭ[>| ukX7Ligg0//uɒ%5NŬ,ݛ2ef~9;;>Cp/b1Ŋi׮l??={6eʔ &VYYYEEE999Qm֨ꫯ.\rccck^߾xڵkGhkkۣGSNDT~kX7/[֘gѢE2wӧ3d<8&&&==1GDr|ӦMD}ݺu+N(9LH/D"ҥK׮]sRcccwh,ӓYYK$) ֭_GLo999Z?C---ҙ9ߵЉ w}[TTtҥ;v 2Es+Wܻw////55uƍÆ ߿?f̘z>ؿS uvE"P'6vèSf;;ȴ;w:u*""ظzN6zm۶u1c|wkX\UUնm[????? h3gΊ+HR B"rqqquuͬ3gΌd!!!Oy<_]QQl2G=zSa)ȑ#n̼RYYrw޽{w@ 99Ν;S*x<//'O>C! ruuСCǎ,XP(BBBTYd uťSNӧOOOO¢Ri```=#C"O:unݺ{<@QYY:F2޽?//ﭷڰaf9s 6LP̟?׷bܸq8<|I)//۾};ip8RtťLH$JNN }W\)HMvzyܹׯ_I:8p`n݈V'6^èSH~-"dgϞ d+̞=lْ Ɉ(==}̙8JUczff&uY3Q,ñi/_|D":ucYf_sEIRD=6f9Cpp;X,J\"gvtt۷/iQnnk׈ӓIի5ڵK3gzzzNNN:302sFF{dU6+ HDDVVV666CԸGD/qF"ZhQ=VѣG[WӮ]; X[['Qgc&G]dITbVݘ2ef~9;;>Cp/b1Ŋa+6gϞL}0CF|cbbәrM(444(( &uVPs@_DK]ŋ<ZY,'H$R(ꥺ֭[d~iժU1Fmuʜe˖=zT"bsss 0`Ĉk׮]jT*555 ?~>>%-)))U[jUTTtСcFFFr˗/'iӦhQ5Gݻ .^{%%%W߿X,V˗U*L&;xСC qB@)Y-**,JaF.U@Wߥ" آnݺ,SϯBb;99͟??!!ܹscǎNLL|R LhBaX)@emmBDɚ5kYPC8ԉ9Ap8pÇLHJ>0V&A! 8@Z{{{P( {@ ԐjD'O6YtP(ܷoc4+0((,4իW&gdduaFDD,YƷRSSG+@oIҌ "om:::x{{k׎޻w/==}Ϟ=NҫcW(ꐸ}ofceҤIgϞmwvvvUUyxx 8hBa [t)Uۿ]ty{UUÿˤIHD28ONNN@45'..'++K h3w^Zr@rJ"JMM]~}VV\.wvv6m@!8h,RT*j0B(++kf, jnŊD?JIܺuǏQKz>/6o|ܢK.رcȐ!///;w^r޽{yyy7n6lX-\\\|1cƠ΂|D"?:2TsNeeV׮]]v޽mۅBahhm }yiߵkP(n׮]LLLNNݻwSSSΝpvvviiiw)((8uTDDf -̘>Ls2͖l6;44Ӆ۶mر#@h9#cƌbm۶~~~~~~qqq ,?gVJ DUYIgΜ%BBB>\|R)Hp*Z":uԽ{j…k*jĈ#FofMӂ x<Сw}ce˖??ߺu'NVTT˽'M5C'#Gܺu+3Jee%޽{@ (..f0޽YAA?ׯ_ܹۖ(Jy}/6hnݪM"??#fCiig},w'hbH$_(333''GR9rbΜ9gϞ%"\ĄXaaa3$22$%%3)Ξ= {=WW2Ù={6mٲ%!!A&Qzz̙3q@@pGT*U陙DԹsgDXLDRDDD|dԩǎg޽nݺaÆm۶w+VFFF[nE!@K`ffƼ(//Mю;m۶[6m4CU߿Ofe֭vQPPoi$&&e>}p}%"~<"ͽvyzz6{emmMDv̙GGG333gwpLMM5sfggXYY㏱gΜ{Qx6o<ѠǏ73*4yo&55ȑ#FFFӚ.U]taZoSv(zf?՗_J)((x葅E׮] RTW}6ꖻvTBnnnCvqq@xxxݻ ,,,q3 V$mٲy͚5DTQQX}@ee%giyh;Ç}||pZ=Hļhժ+3;hγbeen EjD URRRbaaP -X,f8hnܜJKKt@o>lv\\#""^~kܸq[n~oĉ={5jԠAݝ}}}'O\c/bIIg̘1iҤ 6dff5o񆡡!+T̴4LNN-oիWc cf^dImC`YYkEEiYYYBGSLӯ_C}&Y,VLL Kfٳz)S$''O0A}***Y=6kT|W.\r|>evwwЦM=z,\| ,@Kp֭/80hРVZu^.0`3=-,,y;ui&f6=i$feŭ[2ZRSS% _lًB\hL&ݻÄ|>111̍9-YYYD4r.]߲\.ߴi1d߾}n݊+&"hҥk׮xbii1ǻ}vtttttV~ɬ% zuU#:Lo999Z?C;tW|ᇍ4 衘h"/////Jhf0! S !@c?EB[ +!C @!8Bp!C @!8Bp!C @!8Bp!UHڷoJP+,,D%tj[f5 j=!8h!BP(ٳ'jPCjj*tu1ͫ(((uaBz䌌\n]>X%>=zXXX?~<..N*bOR4##GNHH`^+һw殮ٳ';;gߕ]UUEDFFFf!ԗɮ])ڵk׮=== Ju ٙQff{۷ooux.^ȼм6tP&2ܹss||<?9rd9yo񆣣ctt4[Z)㍌vaggggg[omذgzd)))>dRoNDZÑJ/.--eE"Qrrr4\R"L6ѣu.p홝~ `XFFF=zXlّ#GLMMqZ12/ڵkN ?>bS~gN"O>vLLL7RѣիWgfffH~-"dgϞ d+N 4uJ1ҹsgDXLDRDDD|dԩǎO[jED\./<}t>};t'd277/&YhǎZmۈͭM6Z۹y&:9s|Muc߾}zannk׈':}0{\~}0c(4i􈇇޽{7nTVV V$mٲy͚5DTQQ+++|>3M6d0 ޽[O>xxx8аsD"zEa)VVV/zKMPӛ_ [[["bX|ey.zid,--ϟ?qU[ƍۺuډ'z9jԨA;;;{{{{{{N<^ĒϘ1cҤI6l,**sKJJo߾}yѶm[\hpvvv̋w゙=޾}W^yh!`# Ȑ޴ǏfϞ=`77ݻw}}}k?k֬ [ZZT9kzLpNtޝyͼPOU}Bu:NZ#8y^E(V >hРlΝ;/_&"ww0)JOOϹsֹ>'"GGG@3 ".\P72W^eFLTo)W\þ222ȈBp/fy:z~Sv.;KKK۸q#-ZGu.#GhҤI&&&'O&"Dry\hX!!![nU'D4"6m֘`"p밻KLL,++zrڵ>|x||իɓ{,51`3sXXXDGG{{{QsҢEd2Y޽<اO&IOOXzhp @_DK]ŋ<ZY,'H$R(֭[W}&d2Yhhojժ?ž{̙3⼼ӫ\.3߹s-[3 kӚyĉk׮?~@@)SD"zM͛7Թ[l0`ѣG%X,677WOjʕC=PPP0wܞ={_W)))Rtݺuk۶mVΟ?m۶꿢^$77w_}մiN8O?զMX|ڵ~aRB(+++,,LOO߳gϋnEEE3fӧEii_zȑ#{9s!C|MSSӒg|8*R0^f?s |=!8h!BP(ٳ'jPCjjפIBaVVV=GK. ;vL* ' Ä4%$$dյnݺx#FHJJzyA]zJD;eʔ^zYZZJқ7o?~H$8;/;;<<}:77ҥK;v2dȋkΝW\w^^^^jjƍ V=߿̘1 x ӦM#ܹs8魷p8DJ$f;/j4gIyɄ4v ڵɹ{njjܹs93.222--Ν;N066f>}077w۶m;vĥzȘ1c;X,j۶_\\܂ ϙ3gŊDRB!zyyfZ3gFEEdÇ7Qx & &PÇuK3A֭[8qֶ\]]/_=i$:e9r֭[iZ*++\nݻw.Aqqfܹ'Jy<ɓ'qkC=":ڡC;:88,X@Ph=hccd"ܹKNO}EEEI Z.ٳ\rEPҥK6˛ѣG=zÆ 3%ܹse2ܹs=>>hvvvvvvyyyoV̙3l0B1|{{{__ߊqj !ٿ```JJnzyyy\\ۉH+8p8RtťLH$JNN }W\)HMvц=??^>hƊmFDk׮h̙sY"IIILr922$%%ߺud2ٳgd2{p8g&-[$$$d2"JOO9s&.xJUczff&uY3XZZ괗/B"L:رc {:u4hڵ 'j&(((66:G}dbb?l櫠~La[ZZӧKDջ.sss]FDLJ^ZK^3#"޽{^iF/jHk/gBp/cooODAAAW^|]Ǐ'%%͞={nnnϦÇ֘֬Y .Ϸ1RRRh拹ʊs}Ddkk5ܣF_YZZV?YD !`A wzܹ~e"rww13N<,,LTzzz8]{tؑb݆P7J kH͗V19##ʽ3-6ǫxamhXH$""+++;C_GD|/qF"ZhQ=_UQQ /bllք YGe{w4S&OLDeee׌M漼xԩ3gvĤk׮+W&̋/|# |ѦMclI"""h֭n-Z$z}>}0CF|cbbәxD$7mDDAAAL0ٷo߭[R Htҵk\xؘݾ};::ͤbyzz2#9E"BPϕnݺ{dӪU>:kݺ5aL) 3v{QQQ߽yfHH+7cަOki&%%EWZСCOII)//p8Lve-[ 0ѣD,W'Ҝ4&&f#FXvURP(ܿq넞C=0a„gϖnڴLJt%%%e޼y?PrV:4vZ177wD4mڴaSyyyGah*--իײeN8QXX(Hd2Yqq3g.\8hРl}S0 7PCY^\2CҥV:RpfZ{pww722ڽ{^^[oaͭkZ kM*//svv>}@ 8p-#J/^%/_/B";v>etҐ!C.\8o޼>L"xSNѣGV^=d^uFDwwI&1Lѝ;w>l`xDD}3ơ>sttO~'&y(!!oefΜ/,Fdd$IJJ;w."Ξ=￿{׮]cҩL9#/ID;wLDpڋ`"éS32d|6MD<l͛Ldv"z7q6f9Cpp;X,J{џ,\P1T*B "33ю;m۶[6mwww[[["b T;|NN+Kb8::ۗz(77 ===Չ:u =&$$L}kLMM5sfggXYY㏱gΜ{~'Ǐ3KkӰavrbcc BBBO-׵RDR֯__۫][}M@K@xxxݻ[XXxƍJ"qqqaD"QXXؖ-[׬YCDɉJ]WVV|fWw۶mc&,͛7_ugZ2S43VoZY^^`:$Y,_GsRZ}M@K@o>lv\\#""4O7n֭ׄ8qDϞ=G5h wwwgggoooooo__ɓ'x{d3f̘4i҆ 233\fww:Ν;ھ}{```֭ ]В:_Ÿ}v^jAZ:|M@KgE>}F.1k㤤ٳg0mD4|p__Ϛ5+;;{…111Yyq REe)< KK]qb3IDAT)3lVkl5-C}eqƯJD~%Knzg&K.4E|>)&p8YR(f_{"::ۛ4U(TLֹs-[?ZhL&ݻD|>111L,Щ4@_DK]ŋ<ZY,'H$R(֭[U5d~iժUq={[R2o̘1gZhќ9s4S훛˼Ϛ8qbڵ2eH$R/ y攔[ly{e˖D7x޽{IIIӦM.[l0`ѣG%X,677W?ߨqZM@K@$$$̝;gϞƅ?_U=sJJT*+4-BTHEEEEݺuCGLL|x&z:5~;99͟??!![ܹscǎNLLM1H jhBŲfO燇BtrLDG <5kָ.!@ rH^<2XYY[֭[-sr777\ C@=dĉӦMH$nvvvӧOW/ڢ >W@3վ //.]ܼyĉ}]Q^m˖-[lA=@3`~NhC@p!C @!8Bp!C @!8Bp!C @!8BpDF4ۣ Q "ZSU&mp!hrs!C^( ž={6@ 5N@WǎӼP'M&h,!!!WMu5#xcǎuvvr?}ƍoܸ@IҌ "o^9qb_޽g?~ZRzzVYY)X,zuޙ3߯WVU:QvvvUUyxxBP/fffd:$JL&~WT GnRbeUom'N,m^FD ?L1S*[駟2/ӝhp |wI"JaFEES*~'ڵ8p`ZZ۶m R)ya`@P(dpr>uk99SD̻#G2A!@cJRT3E.B(+k&*Zn֭[o$^vmԩ٬YV\^Wy׷JdT3g DTP))1d]]ll))橩&Ddm-/66V;DQij4ؾݪ3tc/߮8~KAG|@ ؼyӧsss.]cǎ!COvyʕ{奦nܸqذacpppqqnjSА4KKKN+UUgfd"C":wD7ܼ++3d"C" ] Dt:-D:uu zȘ1cCLbqUUU۶m,XΜ9+V "J% ˫6Μ93**J&>|~7gsͦ}+UUg<˟QJ69:JEE/r"R*#CT/439#rСCAAA:tر  EHH@ lccd"ܹKNO}EEEIEDR,K-Gqf_ajڵye~ Zo!WfƝc>_9{v_y{џǔn-9Rgx<4zd)))>dRC#J/^\ZdvH\R"L6ѣu.ݻwZouܙyamm3 >}O餧k^H5~# K^.[ܹa ֙36gUfϟQ&: +#8-ӧOW[ XLDKDDĒ%K$ԩS Tܹs2L:?Wn>`^bQ߾b;w9^*"ٳg[rW l++Qe,*+8%\kMCbcchfff`{T3gvvvIIՏ?{̙j'Ǐ32$"PwީSٳG$sr\"x<%sg9cӵR$'HkPGZ)QA0Y"u u{م |f!ػw%޸qlll\\\>"(,,l˖-k֬!d|>O}}/ &Q.Ϝ9s˖-DcYx{2DT4jB!{rR,6;f`}&CUՓN֯_EϞ2믿xmc#DakkzqRR̠… 'M4|p__ߟ~zYfegg/\p111cǎ}`ԗd۷ogfQ%ׯkT4:<"Q.*z$a\ XAJ95B8%MoP(Ԋ hРA;w/_LD5aC,// S*smÙ2e  ։׊Ţ>})sSXXl1~qAʙ\IȐ:uщ.ϟ7>}ڔ|h HDDVVV666CY#"Lݥmܸ-ZԣG=@QBB,f;K^8;<5Y̐xC6}P=MZ+wR= >uiðR}&cbbܽ{f֭033?eʔ1c޽ԩS'"++O?ɉ;=~W>>>=z􈍍;'Mґ6Pe (PZ"OJEA" _u"2DR+ P,Qi4qkmvz{srsMͻsBBoJ7⒓4i3FD۷b;B}QY*?:ȑ ^^0T5$$SDΝshCHOO8q"%%E999]t~ WTׯܼܻ{ɽm[{#({RS۶i5FVXqgys:.!!a˖-n ޸qcnn:tШQ#77W:th;w,+9sW^y7{챨͛7ΉZjᑚz5k֬_7@=[vOEsNgiᑧVKfC|cLɓ*EꅇVu޴ɝJtC (/?nvJRUߖ}r74|MMQ>>>7nI& (wyM6"ҸqcZQ}[,L; :oohGXX29 V jpBB-JouFjC@8#6mԹsgZÓ޽6Aimݺ*M iO[%)o̝;ippppppn݂7o."˖->}< W^RRҮ]ϟ5T܃H|||-8U~]|Sb&;Azzha+Q#Sٳ/:]xbi_)'&&>Fh裑#Gv%''QF{5kfĉ~}}}ڴi#;%yqƽ;fyرJ''?Y#tqn^lV8 @MG8^>a„?000P&++ׯ_rRw`pqq{ުPl8;;ӧOnǾ Ǚ3N_|ᕗ6mG1kwqj]fkyS^g:98X۴1{x0E pTOF{yy:t(22ԩSoҥ*U:wC͟?W^qㆲIcӠAeTcH9}٬vrFJ)rӒ{wZx }*")) eg+;Tǎ\37X@ ƭ@uѽ{MHDD}2TXFFƗ_~O+((諯Y:v،3㽼/^\8sVg*$)Οw\dRH9G'3O$=DRN%O?鳳z#<@%5UmP_D\Rࡾ}IN<)"]t)LRRdffN0bgLMMUBo>} <ԯ_?xbuc.\p\GI;y$Y]+>N"r]:u0 SDΝs-P"==]DիgK.wuWZ899mq[ٷo߂ D_ԩS՜ DdJVԯ_ذa"+p@1.]r\'7W%"-Z䆄d&&j]r7Mjm Yl;ooT?cC5ž}u:ŋLrF3hРsfee(#_ꫯvqu~畵KzoکS>($$ĶDizG+ӫ:99({233FG7/xO:պu>-==}ѢE\a%ȅ /P@ie4/c>IqһXM&Վn"`]P"==_zĉNtҥ~.P^ROLs*"s=z߾d?~[jO:l5_tiXXQF5J~ꩧ֮]lFDDZSNfYh4>ʐWL?})=]re/^Oϼ Z@ưRYbȑ#333u:]BB… CCCm|۸qɓXqsszw}7lذ7xx̙W^yED{[aS jժWZ,ׯ];矹yO?}]GGS'OdR5=@y衇LTTTTTT7nҴIJJZrʕ+K񅏠裏>>/{Ν8q"5|xX>""|x&C@A8*Vj{j888>*\NNt:PLHTG&i hٲePPԩSo޼YXϞ=L0cǎҥK۷o:mڴm۶x5>s۫+}]*͘1<," g0`@VZngggWP,I״i&MٳפIƍo߾\q3g^zuɝ:ujٲehhŋM&SaÆ SL8p`ǎ7oOΫ3g7ND8cw֬YJֈܹs̓{"0"2j(۞2OHS?V9:z]v꼼<ѸzǏoٲ@Wd׮]4i""Ν+~_QT*̙3/Oj4hv+ԯѸqcJ-[l2i$%w}ԩS7n,pŋ5kؾ͛s{N;vYaaaaaa߿w#FL6B9&&f„ &iĈ͚53L1cƩS{+VMoڴiݛ6mZ!'X:GFF޽{?G}|:wl;Tv. v޽{毿^عsEUw_=ׯ/"k׮={+w~}y_|s'NСҰ&*Okm۶)~SSSyO>d…]twҤI&MR[h;k,[+@i1v͛7`iӦuEDvYcĘL&V;{l[^2d|PeVMQv={d9ry5k&"Zw˖-j[n-eƌ~cVȩj>ܼyʕ+Edڵ7ntss[hQ*mϟ߻woh4#GT2ҥK>|ҥJ277QFouo~mtj)={"_D,XP}U PZCi޼ЦO>"r2EDfsJJ?xjդ%o:tHDl=36[ ݻwW u;w̞={۶msQW[70`|PDRSSPT"޵kW)~ eJRf<QF>*"ǏOLLj N;ylc|N:yyy1ݻw@@4WjRÇEDRM>\bwQ:4OG-"<ë'SN4n#--ԩS+ݼyO>ٱc322,[? T>}jHPPP:wl+[C}ďC)PEI5JJjUfk,`VO<{~ʕ+>>>z(- LKKKMM9zQ=~~~-[TLJJ:slS[իW!۞^>VPG"44t7o޳gϱcvܹs~O?jRRiڴi1b29::ի"}{キ^(b6'Lڵkwym۶2ׯ8qb1sQFAs!z~ȑގ;80b:XPF%&&ӿT;|ڵHڷo_y&%%ޙ,">|eYt}2?![ /hc+SďC7o^vD㵦Ԋ,"999!ߞ`ꜗ7iҤ䐐UVedd<Ӆv.˗DM65ooF(\STlkmVB?vXbbb #S}(@po"R`>] QG_@@29s||||=2y{7oJ;wn =oVM;MBB/bg"޽{wefپ}{){!"_|EQ}tСg+p W1bĺulCRRR^~ee;STcǎ"?>}Bꫯj#G9ʗuk׮)Sh4V[Y,U;|;w9{=Jn۶jڹl"##f5kǎѣNZ'OVl޼y>M)eO>]{&--m̙j'Ov+ igUn?JLLmMfj޽[GjmF)Sǯհ9r%Kظqc֬?3e;`.],Y3߿СNNN...x`뜜>>33+00wC gϞ|MVVɓ-ZT)={s i״i&MٳCM4iܸ <0{jժuaaa~vvv?x;v?~Knuyyy˖-;[l٩S &9{`ذaÔ)Sرc͛?䓅*"X?44(mk +*ܹssss-+::͛z׮]ov[]6iDDϝ;wc~SLyw'OOOO>>&߶mhM6EGGI^^lb+qݻwxuw}*:ڵk7o޼ysDDkVF.U5Ju=@;qǛ7on68m۶SN 6LD~‹/^nݺu&MTa###{y޶^HHHܹ3 L0!''gĈ{9{ٳg׮]pԩ{ξ%KmۦV|͸׻_p5/_eJ5k֬ӧO>}zͮ_uj:<<|ҥ111qqqO}j+6lPF.U5Jutaaa:N+X]t TT VV7o^r]vƍnnn-jgϞm2F9o޼f͚Vݻe˴Z֭[ccc&iҥ"2vѣG+޽… !//O;z &8;;HPP… VkÇ_tixxx=nnnF"gI%o pT (?*coܸQ#͝;WDfϞm۶YfȜ9scsCH֭[ݻ=111"Cٗ޽RޱcEGߵk…EDRy"]vbT(UksT:#KDT6Fcy>hР{O?=z<Ç/P"RO^W\[DN>TuJv̙3{~7qttlӦM;v,PXqO>dǎϟȰX,222FZ ~fǟ={O?t_pWjݻV1 Fjjxzz.'%%EDl'eS.G5j~~~-[TrRRҙ3gFZ "o+WHRR"5mڴ8Tf RSSv;m'NX¦(Unٮ]iZ+"=\|||2/%,))VG*>|"tRd(t>͛7SR@A8jI&%''Z*,,,##駟6LłE$''{nMDFc;?^'N(GۻQF*rWWW)jž .j p`߻wyT*ܹs4hp7|ӾX@@@.]DdΜ9r">>֍֩S'omժUe%S={g)ТCYɓ'+7I͛7?:/"ӦMSƝ>}zرʤeFZ ȳ>{>ILLߎmI&Y,ѣGَЯ_[HtdNCo>00\nd'뮻f̘ضm`0 6pǎfXfΜymdee9R^EdǎݺuS*OΘ1e96nإKf͚y)))J,s5JuF;ʊ𹹹{(ӫ(ڵkg.p3ft1))iĉ 4hݓ&Mj߾cffW^M/i4˗+ڵspph4Cݼy_:?W^i۶d2L׿6m&"G`0?~P6wɓ'7nX6hߴi2<<(Uk*L:*!vJbr|x6m[h_kdee=(f+pKk֬|r޽{EkP[nVHjrʥKh@Қ5k+"z}@@@Æ s&ը<~ 4h…\յu%K\2#gs=%VQyN:%"Ç']CrrrDDxCr 6L2e;vl޼yppO>}…mL  0e˖AAASNyff?8p`@@@ǎǏ_;>sʘw}~3fֹgϞG0ǎۥK͛o>44tڴi۶m+iVj(BRF5jmODGGGDDtܹyAAA=X1՘9sqD=XPPP@@@߾}g͚Q{.\5kVHHH```-K/>}fϞ=`VZn:,,ή Թ[n}1c[T2ZP1\}ݳ>lt:ggk׮m޼yZXѣGڵKVիW?~|˖-ZVd2=J>j6m )O4h`_hܸq&MlZlY:H׮]%&&;w|EDRy{{T3gFGG߿~ovĉ1cƈ… lrWILL|;w|8p`ҥdӦM3g4:{ӧO8ky{{ۗ0aBNNΈ#sٳgϮ]6 ԩS=\\KXnݺV=j+YJ~WFk3!Pt+{"""F%"E~ʚ7oހ<<*;ʫFʠEϞ=~m%yzz ѣ7|sw+ÿ[[d={u]+Vh׮;""bӦMG={d9ry5k&"Zw˖-j[ns Ǐ[,[cl%m @uF8*׭uUDռys{M>}Dŋ=111"Cٗ޽{```՟fI\Z..."b6SRRwQkedd8p@DFU>>?~<11VOW5MRvttkD䥗^*|ճm?СC"R/u%{*Kr=ηvŇS [:tP*HBB74MΝ/m @u=@y'|cǎgddddd._>g)33ӶGɩu wԩ\U$u.N:yyy1ݻw@@@ܑU(QN>̀T![P9}oy͑#GDaÆmڴ)J5}^r調Kr=J۳gOLL[nMII_~eci핿DT7pTG5*55UDZlՑte O۠tOcӳpJ)p+W(IKK/X`ҤIqqq/2tpW2\Nyuk?^=2Uƍʩm5IժL[$PeIRչ{{9zȑ#O>ݬY/7mڴ*o8@%2&LHMMڵ;Ӷm[Cׯ8qbL[_߿{9vX\\Ν;w?|U֋XըFws5mڴhQ=s(͜9sܸqѣ C>|"tRoLY 55pHJJMmG{ر#F~ըkTlS^ζV %,XjrݺuSTO6vjذaxxxf~rq=jpT"ooFxs3vm"b4 a|Ѭ_"R}ϛ7OOF]Ҷm[S鼲g[z6hi)sZ^~HNN2;NuVh2~ם;w*1qѱ~~~rttdR"]DRRR thl߾>GV,ꫯCCCE$444##cRAcJxPazFQ(!PzVɓe67o裏tYь?^D-[+:4q ǎE~۞ʰz#F[62%%_Vx;kt5*(-eO>]{&--m̙ʭq'O.Z+""۶m3f̩S_~!C Zȑ##G<|T î]Lҿ[r$J^gcuju~Dwގk׮ Sڻwo'''oդ5l,ˎ?0$qLHT"^/Ϙ1cǎݺu4 FiӦSN9sfyO۷/**jƌ/SFFaþ ȑ#,Y6pƍ+ | 6l0}]r%>>^Z;k'77~zCeqsExxVݵkovլ ?}-yUjT޵QZ?߾|Çyzzv9""BXN XlYtt+W CӦM;f̘% {e˖m߾=>>>33+00wCPJ^͛׫W͛wqmw/t:F>MM~~&Z T[Cز}7ۏ~s7} Iѧּynvdg]V`rSeewv  R'C{Ѯ=kٍl:-_S+*?3uUP//O~AlTҿf@%ȏ?wjjUE+kд_E2k5χNr>xPvpto-W,'sNwWg̸}GAY̏>XE`p8q9. MFZ9E>}7WfwpSccD$!A[ְxGAbm8{"fZFm~ʣ<ڭ[vyQ·dRΉj3li͠V[\T8!P=d6mg+P)dnٵMD.]r4TDEΝsT۵˱%CYfc. K/]rܷ5""A[8 }ڹS'ȑ-9Ypa}ۤ ڕ+v5WTowVÇֻ~]c'+!1Qrm9zl@e`C}V~L__-ʴo e6.\pwG[sE''#O1%E'>FV?CȭFLݖd0*G&j:Ok ܺX?n ]\,|~˦M׮_Ci#G\JRQݥqcCQ)UaP9j?ۘR}J%z%9Ym_Y\WWuS``~\\\~ewf~We;(pVqYjd}dY\U`1$$Q#$$hws֜&MLG'c*.]r\/]rl<:|^howSSDoE1mׯo~d__sRϼ Ws |Y{|~5m޻uԹj]3AANDfÞ=j_^T@e Ք_ʕ+9qpvr҉u@-a9S4_-ul8tHlJFiMso 0ت1 ذa0 t"t:___S@V!еL%ٺQL*UΞupS^JW1U'N8깹*EsL+Rb}#T7*89Y||6-qcS1i+<=á-3(W:[ҽaaO;)2Uo"R9<ŖVd"!P5h`>}ZDjW5M_ݸuXp}%*6},fqCD^='bĕstzҊ[a,JU J;f1SSV_J(>,.FinWWKxxzxxzr%Ǔ']~jUn{* saÆ2@@gr,#"(&9Y}ႣmEI`5ʬXe3ЖZv\qw/nB 6ogm ^4h.^s1'\Yy]FJe]j1Rp~F>?_g% \]-mi,? lْ^FuߑhgyG t Է%g \׺(LSq6k ~ȍ=Iz4~:J{a'O:bZ6}lq/ܰ t0 +j?Z'cOZe6m)pW E%G۞eLݻgK[ׯ_/ȍs}-99δoϲM$Ӫv^̟ -۝ٱo=Ly*$&j leHJUTz:!88V ճgv׿:w3Ldu-ڳu.4u۶3G ANlKϟw<13ӡYwV &Î ޛn+RɃ߂R}/s/\nYr-trC<8=0иgk|cvڤIn^Y406/b%C)=zd:tIS99Y41msA""vv;rEEk=;88nT۴1wsxGU,92S'˗ qcSYNl>֭eن:0 $fQ =I5XQTƁT~R(@_簘jW&snJJ Jsڵ-)Ic w?mg@ +&-MiM斗OֲX .ظi`&wE @mӢEnHHKlE\\~~ ݺj @P'vB8j^zotP@8B8j.] >R|y|]p*tb39;[FWG:ZbySOu PѣSڵ˱qqlildSoI5?`IDT{nnЄ?j\m_,dC[CC3m˸qIJ2گ_fxx ;9$N9͛[`Je7.Id]+W{䑔frEkWÏ?HpA3>U]weٻwO?_ #&qvMSww EWyO?ИGQJD,"9^h4vp̣uP葥lbb\ET|FǸLeNd6kh?SD,IMUӼ:aMϻ cbt7ѣ.aa"r))k4 NW=rDdžKHH^oy零jSZGs{ѨPu8uݱí~}s.}hJCt:] Kfgg<)La Supnnl.*ChJV !p!@!p!@R<) ZߥҎM@8B8 CB8 CB8 CB8 CB8 CB8 CB8*))V:C? lNIENDB`python2-pythondialog-3.3.0/doc/screenshots/msgbox.png0000644000175000001440000017057312507731135022711 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATx}\t?T6hElH!2 /fL"a7&_N167UfJ3%$!wJrsD9k{}{|u>]>s}ѣGm uAZAI=@ҞCxn ȔCDDB Hx.8|b-ȕKDtFL+\aۓĊ$VǼ}&K k٪hZmKgDe[:Ғ8,n@ɺȚC}HP=o˵}ţ$ $-(1TbItOo,bc@b%"e?s5LbEÜXR%SEQoOuVZЄVm]F`@I= )1ZPϧ|1MGgNY~{YQ%eͨ6Ǝ*D$0t==sh)3ԏI't=YcKJ&# U}jBS%3%3m6RK*dQ?5^,V`@}}0C:" $ḵ<2P䯐D6yEÈC)zcb!%r:WÍ2i2֑͘_6gS7\åF*?|jP::5&+bigP3&ќ|elšA4ȐiL%]g)mcH߳1v-֨l(1t PfRcs1ڌCea4W#ccz:.b:+MA_$MDc!%֊Q?„TB=gD͚>(wOn,(Uа 6nd{TʄCjȢ˨1L .^/'R^F M4"ZYCJ[=ljQ6IȢ!㧤)ǒJ*%rW%_E^4o UJoN=u+#D G{Ks#2WNe4ꯆk/WҐ[zc+i`H 4-/ m47IDT&(y(&5篿,SzPwsNm(DD YqȼߣhTSn_wc#󔮰 e5 g)=[ T%E_D4ϘV&3tVѢRj#ö7PhR)%y-'w\GGc"7EFBH( T-""3_./ m9_w:+DeES""{FCmcJ5UOҁwe&DUDD41>%:,ӪISQ ܛjhe^S{)]V^G!fמynUJ>2eHkQ)6: sg72ҒU-!ֲd}Ւ3eEiS}`D?=XB"-DD&,tܝ맼dΞ-9M'ŝM'[I?S*KԸkTϡwҏg!C"q$ 6w 8<"]f!ju$jɣ$˵+4*K nfih/%,m뎴LɦqW'IgQ'm6]WoKyWDwf)ݮW|@zjHV.)4NT 1KH;@,] Z=qJ[+6y嶺6g$,S&en145␷Li_Z$zs~"K I_POtSq2I:RC8̟~W5ZTJ8;p鵦CZ]+z5#>l (]QuU iaߞ}kR(qi ."s?K2$ZnB5^VcK4Uf M*i0& qH1k6xոRTwjjfjgmLtU6Z mt3y)/Nb\}@vDDxt=l\,dbeӯ:lZ_CRN;*%fZ5_>Mz_!=$1Qd\Qf7t?F56,hGIh3Kb=rV{ʭkbgx_P)5RDp!iO%eTJ]K3Ƨj ݓwOjECwe'1'(gZ_.4Ԑ< ӐF Q|-Re {u"# }UD`K_Gg!v"Gr=84Ϙ5|V=КCQ'5^՜W#?2L9dojdJhqx<7K\B"Q;xY2|8j*CDH+cDӪhl%PB"Jѻ^i2>yU1UJLBI"\Ay Z;.SH|=}BU!yUPI^R)5ԓk9TG%TKSOAOhLJ/IWKayU:@O$TOT"YK+黚W6ZΣGCzsR>~B۔w^aJ&DD%zܭG!oVPM@葄s<Z85: [Fjzk"zK@KsBLkjÐ ȚC\4PV=QL-!?Z9uXZ$4C@C 48BC 48BC "C!BhUCPP(p94C 48BC 48BC 48BC 48BC 48BC 48BC 48BC 48BC 48BC 48BIbU#Lm zC@C 48BC 48BC "C$A+bccDܽ{@Myf:v4[<5Mn6lO?4333- 555H`8hdddL0) V+4C 48BC 48BC "C$(ٞ#q[&!uUUU=zVeV~anhApp038@Ԁiڨ= ?ޭ[7ٯBa߾}hÆ 'OVu\.wРAݻwoݺ!&..Ν;i@֛~ȑ#Bu>p/^p… .^dƌKOO'0 cRXXwߝ8qC;w#-hC2x9""bʕ =۔SNsoh S;88tܹ͞S$O[l1b&;wall,kjEzzӟ}\]]gϞd4[DM6yzz;;;/ZX1X,޶mȑ#3g _ ̈́9v@ իD"Ov߸qcٲeÆ stt|׆ t\; @ l۶mΜ9 rtttvv޲eΝ;Kwׯ]ϣɛ6gADJQ3g {999{yymݺU$Ɇ M{CC~RCiU.{P,HR>**jĈNNNo|_e(M{{{"t&G'm*ɓ&L*ADtA"zYːررc͛WSSCDuuuW\rJBBBlllofÆ Dpڵks.]T?q.\>ܿ?11111?,,L'ĉ\.6666;;;))InC$͜93%%x<^]]4FvL$"WWW޾}{hhX,f;766.,,,,,vٽnݺ?s… JKK(..ׯuZ;u$v劊 [[W_}Uݞ< 勨Çnj# %I^^^XXXjj;nZPPp…~&k``P5uT׏P(~v/]sIJJN<9|p/ۍ:U[[矛?C7|S7|u2&R233kjj&O^PPPPPw^O>D?HIIawSLξzKf̘AD7ofzr}||"##333sss-,ˍIHHPIRRR~~ݻo޼yEQNNSވ.W_߿|jǶ{/JC:<"G\PP{ҥ0kkkMҥKvvvb8###%%%''g„ Dt!]gooF{&ɓ'`K< Žwk׮_㥦:88 0geddܺuWF*غu+;yiEp-[ILL477_tQi[[o7n,XSNZ١@D555gϞ&".4:OOO7Y5y D6lڵ+x<(wἼ<='"wwkײexxСChӦMI'FFFlԩSɻ 6xzzo~,SSSaD"Qdd$͚5Ϗu#m޼YغQvv6eפ,iHfH$ %z+&&_gۭp)̌·}:::r8QFQ~~>s3)I7zxx/kDFF.2e %$$u2D !5X]}i<׳־_`` 9;;o޼YvdFFF|[l~~-[|/D"0aǍ' HCxs3ݻ+Ǫ@K9++}f_Ao]v--\=D矋D/RO#kbbRYYMDW^}葩)JMœö~R\\,7Dp>3=ܽ{W_ebF5Q\\}cǎVTTvUTT(WWVV +x$7O%===33GDtᒒ?c8W^B}"ܹ3v?4' bByn2ETI$ֶ}eee999كǏ߹sg\\ܿ/СCVVVXש^>Ǫ@KիDdddXG;ؙ3g>yߞ?>?|ooo͢3f̈{w;uT^^NC㰭k׮D/L,W"(LEFwΟ?"~YYYQii٣G4s9Nnnnmm':wӵkǏ744Y+ҞCf7yQQsn\4Y<`ݻW__"wV]UKԐ*Y,5W]]=mڴ .xk+uTU"7UR4ZZ);w'&"[F?]Uv%LmmӧuXܖ}Udv/9MqW^-۷bEEEʴ糗ڵK;wO[ccƌ3fKk׎JJJgff=zT=;99={n?{kFBˋ***cJuC a7.ኝ4ngoߞݻ;@Ғ[bccy'7m!&&&Ǐ[j.uW]}i~vvvfw-2++KW͚5ĉ{UrH$Q_}VTTغS2?=|*sر4A)+Wx.\=>2%o)uvxaAPJ߾}#""ϟ̙qK;\}k֬ٵkp2n8T qݻwٳKa`}$ [&I}6>|%K;vյ]tYhQHH&;={ӧ,Y|rcc㊊ kk &믚D"777{`jj:h K#8iv;xŊG9r䈩)ǫH$r쩗ݺ+*(++9r-K1c.T)-*|||222&Mdaa!XSi Ak7n {OϩT*Xp!IHSBI/^vy֬YN:|pHHȪU|:uk.KQQQQrr2=x`ȑ._v̝;ȑ#[~}޴iӻK:־}iӦ]|yĈillui -<9e5ɓիQeeՠA/^|=u Zv-#Ç6.&e{ڹsghhv˞je2Ν;=<<,,,mll̙s!׈344^b믿n```hh8nܸDe<;;;Kg3336Ho3ft֍TWWw?ܿ٭N:%$$?cǎwV\GwR4ZNҽ˿ %ҥKw5iDԹsg%QTdeejV%;%Cv/\.w۶m+VٳH$DǏ?x𠅅ɼq{scǎ'Nx𠡡|HV'..n׮]]v.**jhhܺu!nN@+{:_upp@:!!!#Gԩӝ;wBG}x^ph#Z>裏>B:(94C 48EV~!xs4 C\\ܝ;w<<< h@ہ!?ŝ:u{Ph|Ν;#@=hF=zh söM,o۶mȑ}3gέ[ _TT٭[ݻ{{{wO<  m6gww}UUU9:::;;oٲEqiii...vvvӧO?zb`@,6mioohѢ&㜖6k֬}k)))av)hs_^ cɒ%{ D1}tggg/[NHHX`ȑ#cgg:{lT# YI3g!!! rrrںuH$j'JJHDQQQ#Fwrr }v31i=;StJ.H4sLLxuuuLKK6lXᓒ͛nMMM\rʕ:^n]]]]CCßpAYXXo|͆ ks]tbL$߉'\n}}}mmmlllvvvRRǓ ?|lڵkyyyiiigΜԩtj˗+**lmm_}Ui{{fR2>>~ѢE7nܸqFPP o .d_ܿ?11111?,,Lh׏ ׯ_o>uΪz1cBD" KMMݱcG3{n>U:9s$%%I N<9|gF^[٭ƙS9l"""RRR\W_}~ss+ 666.]ζ)))999&L CIC)Sdgg_zҥK3f ͛7w9IIIwyիW-ZDD999 V\\zj"|rvvvVVVNNNDDlHooF{&ɓ'`EM _|񅋋KtttFFFFFFdd\Odddfff~~~nn.k qܘMuVռynݥ~w"ڻwkׯ_RSS+{f:tIIIgٲeK1bvzmH$$Yf77͛77>44T$nذk׮D<<tP"ڴibd6li``о}ŋۗRSSeeffD"jii6cDz?gϞ0`}~m6_vN8122_f[,,,NJDM6uAw鬞7zxx/kFFF>mp3YgP??@yfDVL54ۨǏ| Q.paasH{{,ɓ'ewԉ}ر?=Ç?+**222hԩGvӦM#lP(GԛoID7oޔhjjJDbDrJCp8\.W_׏9T+tjQii)+iJ>dsD:X, ,--ׯ_ݳgOW;wޒxZ4zF}œ6ʊJKK>=z$ & Zǐ<i|__oرc'O&#Gg߹s"##e zHg(1"b`ՋJ(->eڳ@=hQo*ΰΖJD555l-ٳ'ʒ*33}x׵ SBTLkkW^yE+%|t =3)&;wʈHqҥ-mܳgg*az&4pm1|>Dk.>;vQ޽VIQ^PWWGDr NJoߞݻtn׮eff=zj7:Mg5?~\vKll,K.WPݻwˆʒ{#޲[Ղa#XZaehh8g"ڹs'kG;wnܹM_r%ǻpႯwuu',X0tPoR1Μ9gBBBB􂂂>Xy鈾˗ 1_Ӈ:tЀ$IPPkiӦ5CFC鬞`6U,űΚ5-کrD}v\`셟n444kk@ M5{ӧO'''/Yd&L_7""bgΜ7niyyt֖ڋxyyoܸq{|||>@DrI6s\隖 ,@oDDDYYȑ#mmmD1c̟?_8˗/YرcҥˢEBBBCepB6Í I&I,^XZݥ|||222&Mdaa!ؓMڨ*YN:uᐐUVtw׮]jf%@ 罡attttttll7 Ǎtҝ;w6~ԨQ'O:z۷+++=<<ƍIȧ~:pϗYZZ{yyir>>><ĉW^w^UUUΝ]]]M6xSN 7n<}ݻwo߾MM=Oy~~~`֭666 ,HKKkWDCqd]]슲r˫(/WNMMstt4iR@@w ݶm[tt={ E"CBBmFDf%హ1:p|R8EEr[lllHu̙33f/,h 222&L0lذ~I+@?eJ[葄0D'N "wwwAh@[矟裏#Rsh@hq!@hq!@hq!@hq!@hq!@hq!@hq!@hq!ȩѣXApp/-ՎF\\@ pwwo9Ij*@!-LQ'|V+6 ö(==ݝ۷; jk\F]vb`ŭ[ԩSB: p`'%K8::6lɒ%GDD\R[Ǯ BNә;88tܹ%㬟3-FjcUUU~~~~~={¦NBqF9r(22r_ܺu}H(ЊѣG=΀nlmmO}-[VSSF;wNaC֯_/;eeɒ%MPEҩZ룢FaooxJnu:홫}z(I,o۶mȑ}3gέ[X8TɨWo(yªQT" -ZbooթӧOwW_MOOWW_U# /~f;vL K"zZHXTT٭[ݻ{{{wOT-<&͜9S ܻw/((k֭"7 +mCCC?ݻwϜ9ƍ?#?177 7lذ8Nv?~(((99Ғm/// jhhՈہ233}||&33\]]9J٭9IIIcLMM\rʕ:htRYYz_4>3fP(477H$yyyaaa;v~@s9lF=dȐz:BxxH$rww0a\Ȕvɟ2eJvvիW/]4c "ڼy3!!!bxȑ.] r}||"##333sssYrcbbw{7o^zuѢEDs#\\\zj"|rvvvVVVNNNDD&(K(~...o99$ooFɓe?s9&]tttRRYlYnnnnnnbb/h:nƱkLQ^DDDJJ ꫯonn&+g5*%T(H*9tX,vZ~~MΝ;_`ww{}ҍyQQӺ׿jl= b!UnH ر,U>@YgϞ0`}~m6_>m!9kjJzvz)7o,"tRIDfc6oެy:Q(IR^ARպuLD\.we;vTVVwrebbO?DD{=pŖ-[9a&++K)FhhH$ݰa{ xnN:uUVb8T-?mܸà }}}H . öq̙D֡:uo!"##}+L6Bbv}"Zt\L襗^b_~D!;;;v#o͛7Վ3v%KJJ{rV\ihh(\.E堮%鲲~d˧veff>~>nnnͤԨdRS cǎre}}}->ޙbccn:" MIIYl^Z@fffl˚5kz-]yÇ...LQ4 ϝ;GD=ݻwgeIjbX$ݾ}{ǎ}D"p8YJ¯TJKKY<9ZhѾ}---?3!=Fzرz"ܹs= _\\}cǎVTT>NP 8[=}:*'''++ɓ'Ϝ9i?UPɩ&--uM|^IǞ)u>}6TET?3Eyl'ccݻ+f&*IJF8+_+H*ݻ\FtرcǎB0//VL5jG???"z&Nvwǎ{ץd=W-}4>$"e_xqԩ,666lɣG]Ɩ{8ui2:oڴi޼y_|;700Pe5䠮+د@G"takW'77ĉ;wڵI=B{BJ¯>aT I#5_hr l={dcWYEåj{!)ƍƄMKxAfX[[+r_sy X5P9(eddDDJX*a-rˢV~UvҥR2c:z(tV{V236,$$UAAAْ/fOsssg͚ella4x<ފ+(%%eƌ999l{iiݻǎ+ 9`333DĮb811qڴifffLXb鐘˗G4<<}СCP}QLLMIAA{[kOgΙ3vJsΝaծd9S/u)H/f6[~=͘1CHU:SN:ޟn:vcmmmr8~A-6j4>>2%޽{IKcJh\]p_]]}ĉ  :VijwiOk֬?E"ݻw7n^~&88MqqqMZYxyyoܸq{ե|||d;::N8q߾}8pX,~׮]aLƎ[\\bŊ#G9rԔUTTH$6˗/_dɱcoiiY]]][[ۥKE-$ɓ'}r (nKiJo>88x͚5111vb!ƍ'}oځUQVV6rH[[[1c̟?UYf:u!!!V<ԩ]y…l5 &MXxtvU͞=K,Y|qEE ~Wv%̙RuAz'Olnn. E;S?~|,5HƨQN<u۷oWVVZYY9::zxx7N?J_G񢣣8gϞ슊 ޽{O'OJ+));wP(ڵ[o$~}œC&..n׮]]v.**jhhܺu/o$$@GPN&$$Ν; vvv^^^$$@UaA NaA` C@8BiժU?DRYw ++ *?=Lpp@ FR>йsgw*2 +֭[nݺyfzzW_}eee%SRR /^k׮_DG!QŖCD'Nb˰=ztjjj\\@hBdhhhhhvpbbb^r;v>|-[É(%%e޽zgx 4ۮꄄ 9O>vvvg>zb`}̙! ݻ7]xQ$#F;99޾}EEEݺu޽w}݌3(**J۴4;;;ggӧ`̟8v@ իD"Q#5?v~S#g;_~=[A.f͚շo_;;^zyyy-^8%%幟Mg5(YDU=STM:])jg)DsNl +>>Off&r8U[sQQQ˗/x[l3flݺ… +lꈯߏ~/%5ùvZ^^^ZZڙ3gXU|U*P)tz(_D9SSNY/_}WpjDCP>ՋT*HJ nݺ?s… JKK(..ׯPDsnݤI}iDҳgO+++EVIwI-D~A ׯ7g5n{tݪoxsvq\ܼ0.ݻw߼yի-"HIIr_}U~~~^^߯ù}6o^NJJp8˖-MLL477_Vfff```MMɓ 'hz>NBKIIa)Sdgg_zҥK3f ͛7 ߟOzXHU[CX022Re|:;88 0gdddܺuWxD쬬77pz*gTDU:STJ:])JQ%"o:o'O/CNPhgzPJIdlll.]mgg'322RRRrrr&L@DCU)͓*k-[LnIwI-֭[̛7=qۣV~_Ńa5qH_~mg $6Y WUUmذ}/۷/JÈDH"5kιm޼YwrԩW~׳F~~~lgg͛7arBCCE" vJD<#**>|8//Ohcc>ܻwO'"wwkZ[[exxСChӦM,~dgg :(wQ&5b ##(oooMyʔ)DeIn!CLHBCC---F>?vXWY%*%JUJI3E"䙢t5%SC_T*H样g]1}uttp8F"|=J] )H:J:B+ݪo8ldbaggj:7|n޼)ݒc"dC9::j+bX,D۷oر㣏>H$=SB!M6M.b ϝ;GD)wŸ]:1Od䬬d,y!g~-֤jtvɦ3Kr[/^+ sssvz۷owҥ Jf*SuWD8STJ:=)׺E;*hȡ:;w(22R'jco*ֳ=j(-l,6F(;]r}prrb_?%" ӿ[[[{ĉΝ;t lTŞCV\ꫯҙ-Kw^"ڷo_}}\~c222&OLDGtU$s9St.[Q ][c%B*oth m `mm+} o*} C:f|%-DTSS&׻woiZϞ=B'K֊_}h׮H$|rjj*7|𴴴Jń)6@bӦM'OܺuSҙ"էO":t[>QtV2CͯhZAe.uPttP+S*ݪow9Q|>K,9vX---kkkthѢMv>{ӧO'''/Yd&L_[Κ5ԩS YjAN|}}w%7o߾?s̸q㌍MMM˥S4 [om?~uvqݻwٳK`hRoP$ :~8=!Gu+VYFt4hkv "kNKI$'OD|>J[`[Y&&&f׮]l*˸q/T)T=STJ:])JRL(++9r-K1c̟?_L4Pk7$rPAŹ%$&J .d3 qP(4i4ŋ IWU)UhW+h8l֭[mll,Xi24qㆡq.]s{\.w۶m{),,DǏ ٶmɼ^jԨQ'O:z۷+++=<<ƍa+Ovlll 0iҤ]>ӁFGG?ߟ eggK/>\qǏ733c ݻ?ٵkå%T/Ge˖Ν;>RE>>><ĉW^w^UUUΝ]]]M6xu!::jQUNg?S:uꔐqӧO߽{{t}JFC5֣jAR#][BA]ҩt 8Nv UU^ԾQU>UhW+h8luX )*G /"5ZѣGgggϟ?ɒ%H hFFFƄ  O?}%tg#[G$9D'N "wwwFkql Zo@ˁ!_>'OJ)));wP(ڵ$@h߿1bD׮] ~Z29K\\ܮ]vZ]]]TT`iiuV={ ˗/G@ hP^ Ν;;;//?Xo<|޽{殮˖-spp@@ hɰ M˅i@ 0X!qhqjO{OkUUF]Ν;,;ԁZJ |(,Q6-k 'Nѣ_{5!h-r b޽{-mnܹ!= LADlll , 4Ae|>sM~kbb>GDD\];uNg 2q\WX9?5j&&&(94AeGOS CD'NDsZ"233CRq_ ̈́9v@ իD"a[eWQ~"]B$mڴyѢEM$--yG sNi"NׯM%K-STHH@  ӧ;;;;88 ?m׮]7=`uuuBB‚ F٧O;;;WWٳg7yfX,޶mȑ#3gNyqƲeˆ k 2dҥ@dy5kV߾}zx└&#\TT٭[ݻ{{{wOS?agʆ2۶m3g}l٢^Lz4T*:̙3AHHȽ{n*yR ˪N*ݢ4aaaӳoY744jT_^@mV8p 33ia233Օ-{WH(^~D";q˭NJJx! 6i׮ǏΝtRiN:I\|֖ cooLQ2Ί-ZT__yƍ7n536)**j<o˖-cƌCo .dLLL߿vvD3g{PWWWwaÆi%۷o Ddjjjll\XXXXX5MPy?×_~ʆ5ùvZ^^^ZZڙ3g'%%͛7o]rʕ+ :tP#)ʟeCh[?\pA,,,7p@Uk$]g.RC>|8fPhnn.HRSSw!WtG+lnݤ riDҳgO+++E[n-((pB~J:ʆW+zۢScKi.^( lݺ5>>>>>~޼y`w}ͫW.Zrrr8 ,%%]L}K.͘16oޜ$ ߨwD4yxI2E8 _|񅋋KtttFFFFFFdd[3kFFFeHD\.'222333???77ݴqܘ;"""%%~Wyyy777߿>x`HHX,9rdrrrAAAnnK¬5<@%^/_љ555'ONOO/(((((ػwCNN'|^;SAYղj4lll.]mgg'322RRRrrr&L@DRFi(*Q=ę ػwkׯ_RSS寰͓;k .[LV/ 8222nݺe``뫇 4a[*l! ^*jÆ ۷_xq߾}(55U6ODk׮ew𖖖C%M6LQ;gϞ0`}~m6_}ZgKDDĊ+w'Ny SQ7dH$$Yf+77͛7kgHJDoVLL믿ζ[[[|8//:eChx{{ÇQ߾}9ΨQ(??HJETq޸qZdd>_SL!6ZUu2D 蹈z͡qfff{5kݛ!c*7|n޼)RQQADSNdMFDBEeq^r?Fs8._rqLL̈#wr%ņ<59J|1}!5sZZhҥ饗4<@%X,.))i>daasH{,AN<٢NXYF4:u>tQNÇ-Fu4/z\JKKY///ĮaeO }QVs&s%===33GDtᒒ?c8W^ݪ)NGa4-lgggqnn.k!Ie5bmSIqqۏ;VXXXQQ!ۭZQQvvq;99 TÅ s,~Jrrr*))unm3E8o8x𠩩iuu5[%Eo /N:=~ѵkr/jg❨ܜ@5|M͛_رc}%%}DցlRuuu:augʆѐ< OiIP!MeeeSLٹsgjj;wLcJ}]٥nVDZqF.&󄄄?~pLiVVVwOn@,믿ٳϝ;Wi̙3YYY?]ti28k1HJ"Lqrrիו+W8B]Z-y_KQp8'NܹO׮]?АM/Jϡ2!(NMEd~w999\W_--- ۭܹCD 'jQ[󽴴TX=zaȢ" KQ\i$">;v,##cDt E,BPJ=]U*F  ef![,޽{h߾}...ruF mTvE"˗SSStÇUVVؼ+###"R*֮={ԬwNe'qs0>3E8شiɓ'nLܬ,"Z֊PQx "U^Z`Kk>x@}9ɬY"u e"&6laQMM [^BG{.* EC?g33E?xfCܝ;wʈiX׵4'N411a/kgwڵk\;wMNo߾=ݻwOv3`sڵk/]`ӧO3f̘1c4\օڵkGD%%%r333=ɞXϞ={d={V]2dy\vdffʞ B>_WWGDK988ի۷5oiL]U*~gfN|C?.%66OjkiڵkCDsssMLLƏa:T}a(s!C{R1իVzۢT ul13g|gl}YYYHHnCDzf7.2E8mŽ{DsI$ v/(Mfffɞ ̙CDQQQ;wdܹs!b "JII1cFNN^ZZ{cǪ}/fNsssgֽ͚^.ZRR|rz W\]pVĉ ,:tKԠ3EGqVl.pv+)JETqfsGbq\\{ίa^1zh>a:T}i.@T$N SSAr퐅 Q8!J(N4I`Ŋ}o>88x͚5111vb3ƍ'}wځ+88xƍw޳gϗW =FUQVV6rH[[[1c̟?_^QF]~}Ŋk֬ Hx<nj˗/_dɱcoiiY]]][[ۥKEhٳg>}:99yɒ%˗/7660a¯aǎ[\\bŊ#G9rԔUTTH$6Jttt8q}8pCCCXk]V1/N<Ɇ|.+\`K13gΌ7Դ\ Z?Stgʆ[L]4T*OFFƤI,,,D"k{xx<%ݺԽΠA^{56ӼT}aeggK/>\qǏ733csodɮ+ СCtt|EIZ駟80::eee...lxg:uꔐqӧO߽{{t)Yݻw k׮Ç˾rss흯V5[nή^`AZZattttttll7 Ǎtҝ;wj%===޽[]]ݥKϘ1C\n}a˖-!@m۶9s888۷*((y˖-ruwwg3+gDM6yzz;;;/ZX.puuuBB‚ F٧O;;;WWٳg=zTY2iiif۷]^/^粑bgg<}fN*Q&5T-u-l(ʜVj*QQ;7nXlٰa_{!C,]477WRSbTUH,o۶mȑ}3gNcOgU@*7##CtӦM[ 9??iEջ簍ԩt˗+**lmme$))i޼y~Դʕ+W\IHHmfA||E?oܸqƍ @u544 .4hPZZEqqqxxx~([~X 0iaEոv簍oԻwo"UJ{iU|o$)[[[KD׿VeBݻwZkQU/@uhRBCCE" vJD<#**>|8//={v{٘_U>|8ё5#IUUUmذ}/۷/8qbdd/̶XXX߯BffH$xl#;vhvZvlii>tP"ڴiځuʗX6tMJzC%ϬdTH$ %z+&&_gۭLDH"5kQtssۼy Ub+ƇΙ3G,O>]nm'DԣGRhE8g+,,޽#$vvvFM7$7oEɟ׏D$KJJW***222hԩrifdgg B5:5/ul2JdTFZZhҥYK/Wը ^:+?&>@6ۭ,Ҟ[lX__( W)=+rrP"svy"p8}wޕW3gH}`#vԦٓJ۷o?vXaaaEEECC/NNNVVV%%%'O9sӮ:+HY+ivwR`]JՕ ]SҤPI󕌪ѸpuܹGZ,j:% [}XqKҞ[lŸjժSNuT[/|Ԣl칠D"aS T]]v6yұ(?ٚjS]ŋNZZZJD666ѣG׮]0:7m4o޼/]]]ǎ73GX?{THXXש|keCה947T|%j4Xv uKgerb[BHhY1&%%EDDp-[+:CjD""뺗ZAեKfsOƴhB b800_~_uϞ=_߿ܹzzΜ9zСQϽ/RjHsV]ohC44RY BDC7ڛ~xj g%P.sƆ ܹCD-j|ܒ|__oرc'O&#Gȭ|#ҡDoHnQ)p IV]6Po H5*޻?zHhRHUWWGO[,]4uzxf(@!<{+԰^^|k.N;vQ޽ r~ʆJE"ч4\IZHj4 ҹsg" ]3iyn z#ٳoR)*EU?/bbbm6> ?2Y/ ߮v- @}!C5|ʕ<… ϟgwB'NX`СC[M3 0L"X,NLL6mY3?066^jӮ,SRR|r,#S63g|gl´ OP)pCCñF-L 7T[b̘1#''m/--ݽ{رcS[B:Ι3vJsΝa4Ts /^ށf͚g ¯D=RFkQe.@uX7""lȑl̘1cϟ/ ӷo߈9sfܸqƦ'Yd…l5U &MXx1{>|%K;vյ]tYhQHH~ؾ}5kڵ%ݸqK=D"9y$\[cu]67nܸ{={|2>>>;T)Jt)Z/H-D 7TرcWXqȑ#Gx DbnnBy٧ONNN^dˍ+**'L믿j @*"Pe;pUV!SZe{7nkQe.@uhu)!!aƍO{۷7w5ɓQQQG}veeǸq-YYYyyy[dc/\R@ غukvvvuu ҚaPPP_///x'N\z޽{UUU;wvuu6mZ3 l|>|YY>U <ݥ~ʆv R 5v.] GG?HnZhu04t1cXYY!)Z54@#|>Ȑ!HJC@C 48l4zHׯ_/[dz3|@' )PUm4h|[nݹsCzO3{m۶m޼>رVzeeovȑlPtG<^zz:4|"NHHͭ433ѣرcM~w'N(..СΝ航Z24(x9""bʕ+qqqN"g6|9s֮]voF+_~UUUDܟ~i˖-#Fh深eEEE|pEi*//?{ٳgcccccc^>}'O<5l0TbaX)Lr>|VUUǟ={6%%%<<Ҳr7o|?~rݻ#SZ ?k׮X\r/ \^^ɓ^z9r֭[ǎ۷oMMc'Xh‹_2dH$ڳgVvnݺSN} ѣnj39Nmmmtt~D9-\RR1bDdjj:{ &H*))166ٳ'u=::¢"22 -POOnݺucdUWW'$$,X`ȑ}suu={ѣG紴YfήW^^^^/NII sNlL)[lFjɒ%O?߽{V74nooOD.]jW'O0a3%$$D QFFӝlٲtwqqsvv>}\_ cǎ ^zI$rPmBpѢE...~m]]l0@Y9qwwohhP㯳4|嶳_mml:>~ѢE7nܸqFPP 7lذsv?~' رW^ذх?*??˖-4_5t۷fl}||~Wi.KLwwkײexxСChӦM,nffVV4~rpݺu&".Î;*++aLBD e݆C 7x#11qܸq[lի믿f͚ѣGsH_6NlwTqq7|;*Z`UTTȆtrrH$'OޱcGAAZĺt.3g>yߞ?ܷ?3gYω88843277W6,'mIG>|?`d{%m:{-ر#kiW?9СCVVVJ=)))nrr)S;VPPpӧϘ1O+c/\@D;wѣG!n=Ny566' KMfd{Yo)Xu2H$f&챉UŋNfg۳G]vuHM6͛7/??/ "sssWWױcǾ $k'8SLuV7o,׌).. 322ZbNHR gi[zzŋ}}}Bannn׮]o޼y.]M8Cͦn bLsT/lLᆱvH$/jkk'O&QnbΝ;1̌qp-,qԋ dyfH[פ}\m@=X\Oo@+((K.EO' Ł;rٳg<a=Μ9~I&u޽*55O?1c{ݰ⭧&>+W{׮]4,00ƛdפaBBB0P9H)ԫW& ,)?qN,???"z!I}\ޝEU0*OT\WrKXb7^w햩We7rI,Լ."(n 086;,3~ޯ3Ϝy{s<_<4Z8X)S]ZO1C}ڤ#(11QCC/((YYPI Po7Gq[-yʗ/TСC6~??b/rLy֭G>.hR 5zKl"9(7+7+k׮4wwwIJJ{n2QQQ{ʒ<&ʗ//ݯ޽{JɊœ5bĈW^}ӦME  ?7..NywRhe׮]kh}"R~}Z .11Q)SNiiiV|cJw͗wƍE-{``_qvvVf) (/T3^ywޗ_~YD~嗼S4ݾ}[YW^ŮI۶mrΜ9;>~i6R >Lbb;z? Bt:ܹs 5kZ>qDppǕ;NNǷkxբE WWW0n8%y޾}!CuqFe-{Ӥ3f(:w\`}^|Eٹs.*3=j4%|ͽ{VX/tppLfI)#eH=;(#lSRRM<7nܸQaaam۶U )-ɓ͛7/\PD@V0T_ѣG}WZ5eu͛7Oo^x+Du/===322BBByÇk4z5QʴFÆ ;w=99y&iEۢKDjjɓhČ1Bfrss#dѸV )_ >իW]VywƥDq˗/;vѣG{⒚j0N hf̘1eʔf͚yxxt*UL4I$/pA_g7|򔔔.]*uٳg$zAAA%Ȋ߽{ܺuK. xzz>}N:M0aׯ߰aFIKKSȑ#6#oP7o\ vqqiݺ2'IrX#hnݺEGG-;;[3D˖-'MT`֭[WVMk?\VZj}&gӊ+ rΝ;;88(IӲeJ8W^wyٳgZf0L&Ap[t)UVPP͛nݺuVVVmԨQRaV""ƍPªU.]//y޼y{MMMYfPP7/TYB=׭[m۶sΥשSgϞ6.gk׮%K߿ݻmڴ;vlZJ^ۯ\ :J*mڴ6lX n޼֭[ݺuJJJz4hРAB9O gZVyۋ;88}zjժUZmN:5&&&iӦiڑ#GHddСC6lߦMӧgdd#ÇjӦMqƸq4hPzN:-[L-fB .-SL)II&5jԨz۷O ,?sרQf͚]vJR.\p=z$t_̙3E)......,,… }KXXؤIrrr|˗ǍgkQ4D={LLLtss3 ϟ={}[c+Vh|tiiiʷ(W^Е#("III={q㆛\xq6lpqq[rǎcƌQnG\\\Μ9s̙-[lܸB 7zkǎ"Vnz;VgG__lŋO8ѤIHpp]qO?M8Qy|۷o߾=$$dָZ)));?|ҟRݻ{ݻw=zԩ6k8:\̋g3\֢@!,cǎ_rٳ&MsmݺդeƌS>ܹ3o< 9}tttSΝ;|͛y۶mӦMҥݻ/^Ϟ=˫oILL|5jjժ+Vh(~gٴiӅ bcc.\V_t5OJEP[le*vܙqF%K,qtt>ŢFѿC]xŋ6m?w\,=(f6UVرCRM>=&&&&&fnnn}):8-ZPGFF^z.88x \bETTTlllLLrnooz-[Xjy5)_|1~`n3`xxgϞ߇ &"K.UaasYzݰ4bnͯsY'!,pEoή|'Onܸ۷jz̙FFӫW?$hz~̙"euU{yyl۶o9vX-6oܭ[7eN``?P_Xͱx qppVnVXQxzGhmڴ{{~)7~mzz̙3z}ppEDDV\RVڵn999=GɼaÆK.5 sk:k7xCDlْJZ۶mZm=((hŊ?\r!!!T?c>{rm-:Yٲe+3gNvDdɒ%6na9h{޵PUVUn ^z%rJ+NJJ*ZܼySDNRL}YQ(T*2O<4`INNZTx{{<#tt:eHS" f͚jca5SN%&&Ȑ!ClҤRRTgGPD^~eFsNƌ~ID^bW m<."b΀G׮]o׿ JY"##EdРA&aQmtt҆m6o-uÜsx"lk 3@4h陔ԿÇv3g=8qBD*UTvm߿OXs-˗OII9w\Y[zGPQ~}y{{{{{'&&?[n"rqQTN=$$$ת_,rttߊ^|"[5Z5n󏠈w͚5}Q6ܹ3--ӳ{%Ý;w눈ۤJ7K^ҵehQ:vi*5jd,mxhIfŸg]l OCX %2h,Y2f̘{ODܚ6mګWob"c),qJIIINN.kzGh$&&u eFt:k7~3.Uhu8?7xc͚5y$2_~%ɓ Rǧzʈ߻w^pAV\UVCWɻVAc0n?zm6ђ\7<q1/zֻ $x:ut۷:tԩS۷oΝ;曒AYoF&fZN d*Uq[4)v+k6hР^zgΜQ&)ILLT'+ɐQF%''7i?Sq%Zw(gΞw{\Pv!F駟FDDDFF_DٓY_qݻ'"_#7zzz=| d)>+WXunaA#e֖M6͛srr5j7ǯ_."+V0OlE-^dJ ~1^UcGr2G.ZH/4::6{V uVX_}ueT2/zӧO=11Q7R7mTD2226^xAD233?^۲&ʊ`._ls Jؔ*WlV (*K`uQzkO:eVTT8Wuҋ#e!$x ;++KDLf?ޞ۶m<4gΜ-6~/>>_ͻeƍ"^QZj7nxʎ"111<<<4ܔ E_I͛W`}]faÆLׯϻԩS%\HR#@QQQ<ɒwZȿgg}E$))ɤ'**j޽?tnF,vZoFzdlpݰbHŮsY'!7*x%%%͘1C_sζٳZ~E$<<|ذaΝS'''_W^6˄ ?CCCF䔿/(";w|,ݞ;F'OV:yrrr6o޼pB6l̬Yj'?t?]v&YQDd_r#uűcǖ|(3NՓꫯ L<8`8xrhtǏ7ή^ W^wyٳgZf0Az6"00022W_-W^W=(-88x)))]tUeٳرc#֭[tttܲhlRYHݨq˗/;vѣG{⒚j;I1Fq]vM6mܹ֭[+V ^v1QV͛7oݺu֭ժU5jm|A0nݺZj^{߮hf̘1eʔf͚yxxt*UL4iڴiBZKԩӄ /^~ 6h4#GTz5?cN,nsse!$(}eee-jzgϞq+UԴi!CiӦ$(ƞCBBڷor$$$t*Ui&JV͛o߾Zj#G,bŊ[lYx#G]&cA{֬Y3((oIݻEyEsʜ@lg4]Ozxx,[ {|XDL-_~t}ҥOY\4gg簰0g͚UZ$ѣ=΢x9 2'cyCg=3 quu%A3e˖?}}}=ZX쯿zƍqqqSN-b+VWTժUի׈#L &lڴ^㏗-[_~]tyԩ=5kL .\p?*ȻeРA׎/_.v̏F1l&Nk׮g޼y3--B M4y7:vXG8z'N$%%UXqƁ:u*v5,R+W}:--Wz5j0ȑ#N:cgaiO?M8Qy|۷o߾=$$d&>@DT*Jp8Pt\4K',ZH{v޽{ѣGJl&sѼy[FEEFEEHӦMa1✙il.\pssRJ3mٲeʋPcP˗ϙ3gjرcG5j^߿ zcǦLrܹ~{&ٱcFY~}۶mҾ꫅ ;wn֭Stڵk׮W_}}ZhϋHzzMfΜz͛XΝ;~CD"""~嗒Tâ8+)o{yyy%''_ҥK7nl=ͬFf͔䰈]+FE$>>5*IpcG''5kՠA .rqQTN]%$$7 >>ѡ(Źܹ_GDDťJKK3:OOϤ>< ߿z`0HÆ M2&W111eJwСڵkȮ]~3fȟ֫WO gZj*KԑђE#m2./`0(Hәl?E':tEâ8[ɓ Rǧzw޽pBvvvfɒ%cƌ}DͭiӦz0`-F(U3֚lAǦEh޼CN<wʕk׮UR2g#CXE*UHegg5*99I&q:uo㏣GΟwѣ۷o?tЩSbcc۷o߾;w~76E|R(C<.;mڴ#G믃6y8Lєw5٢ MLL4z6Y lǏ_~]DVX73?6 h?ӈȞ={vi'hs[-2e͚5ST111TR``߯-sX `DrG{D$333con^M6 ek5\;;)EѰ(Qk\['*V]hQݺuK^3թSG7S:2.DŽF3cƌ)SDDD4kCeffVReҤIӦM3)o0<8h4I;Ǐo\:u4a„ŋ_~Æ Ƹȑ# T'LG^zڵJݻqAK [T oP7o\uqqiݺ*2gԩSϟϻ%+++駱ʂêUVZq˗/;88{ԩk֬)pݻw?xʕ+{ڵtOOZjݻ*TXq˖-/>rHBBµk$Jt@΢hXg >>vvv6^{{֭[+^jCCC_`ԬY"2nܸw}7[ ,Xp]VA>o޼Ӻu배0[Vqqq}ܹSB6mڌ=VZK\rԩ *[~U^r VI&֭3hoooj9[dI:ubcc'NxɿoʻsGG_|iӦ͚5>}zbb2:tPNxĉ޽{*jAmo,X ,,w}繎9HQ>3-իW饗ZnZ[1yψڵk׭[_~VJЌVZc<@"RgP>},Yecrt{ɒ%eh+WLJJrrrZjԬYsժUm۶MKK[bŔ)S… jZy]i놥̬CҥK'NE҃b)[o۶mDDĆ Ǝu 4u۷ VѲeի^*UUF޷o"dggW]tz뭢͋9sfkԨQfͮ]~g&L`&33SD db2!N۲et/VZiӦo޽{W@ L^ZvԩxZfzʘRe ޕZ~իW駟  [sbnZ}~c[l[fsVc۶m"ҭ[7% Qx{{KDnjcP֮HE(a׮]+"5jh֬mW^yED֯_/sIKK;p[YD{K.-XiѢEaezEDVgeem۶=۳cǎ1c(=...YYYgΜ9s̖-[6nܘ5j;r`S맟~8q͛۷o߾}{HHٳm`*Vhӧ|}}* {ő-[vѣ $**jԨQz&Lǎ2eʹs~իW 3f̘1jժeeeM>cǎV>00O>-ZPIOOߴi̙3W^ݼy>}Xtڵk׮W_}}5?t-Z 5I###^jggl|M޼ySD;v8zhRdոt1,"ׯ_ťF[/^,arh놕l߾޽{m68(nuUTPݻw>Lr`X)%&&ϯjժ76lؕ+W^]v|Vq7|X* FEEHڵ +V#F W^۷o޽u a%ʠΝ;*D^z"wV@Ha#x111'*W )1_TTԽ{D_ϻyGo"b4YRūJ*peOxΝ;~;wz]н&55uΝƍ?Sf`\Ro۶ԩSW\9tԩS]]]322ƌSjuvvNOOg޽{Ey+ed /_>tǛ/_^DnܸaO:thϞ={?Ͷ*KCgT``_qvv۷o kb~{~A;k.ҥ !"//y'R}֭[EW^6"=Ɔ׺u 9(h#aV׽{UV0!JѣG5k6eʔ;v%&&k֬ҥҕT,*0ޞzowފ+~W<(Xvmeh2h~ +W\foG.Yj'? Ft?~|v ˄֢E WWW0n8%޾}!C `i׮N|m۔1E7n󕇚n߾}Rb-[;!!!:::::ѹ111JTppp?U3R&TR۶mmYz{۷jvvv7~w[̰xvkUTIRy{{ܹ$Ī׍ېʍ9abVv!"C y9,ОCmذaΝ;tPa }GGCѣGttرc!$6m4a„e' z`ԩK.eQf+QQ}?1JEݺu !<aaa%D 9ժenre}޽ө{.9h!9#>^ݒJLtHLt8v̭[ҍo%&:l{{C@=SƇXѐ3[ctv+VTP2CQ_L)խ9qbFAbEDWc|Km~U*V?rʻկ!"Ǐٻvreݚ}:֥KKQv9;Vd?d"Ҳ}vo)Sn98#УG;߽ "n=*wADV++x\V %2MylhHghțyxK?gLv;;^35`f !{%mfYYrf֭='N|`g͚۽G߰!@rx|Mևfř_~Y_ye{-R^SIHC@)z{k^/S>\ Pwqޱ~? }NoJe jWVn]#9*$!ͩSp}BBos#ճfLl}۰sgvuwOǁMjYnۧ7rrwWZe!6_5!Un[;oPGaJeQk_\WԴMT*@re!b˫Fr:qݤCʕ\k39 J6pͺu]\T&e6mA>ەmۺ,\ưXOv?ˋD@BrK/9|[BB/pmanva̶mjLvnxhyz\TRLH(éS_֖Ak,U>LL|Xz/vMHXޭcG[H$tC]]U"BCI\9yԨd VFzPꐗqL^$4g8zGf@M3} "$-δ1Er0(n+ߺU??81i6GΖ;ޯX1e;w곳EDq/CeNٰA4anR\4X C݋Ze~ҿ^U^޷]cmÂuꤶmYN;C@1NR%om96Re޼2gN_6s.f(#6 SlP\ٵK߿}6uU(sH%-[{JK?u6ơCy.qz3|̀sj)|Z.Y~QzJn6e=)~A$;o^m룏\vTNooU^;}9ɱ:k?Uk'WBe!<:wvܹ\eƌ?f@aC! $!9+ HHYRg@r 9!@HBrC $!9!@D'Ƅ"HW\1dnnnZZZ)La S0)6 &o޼)H$EtK@>%\]],S0)La S(]`agggH@1[)@rC $!9!@HBrBPfi.V۷=C!@HBrC $!9!@HBrC $!9!@HBrC $!9!@H"@I9HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrCDAw<9_Y\(lIENDB`python2-pythondialog-3.3.0/doc/screenshots/checklist.png0000644000175000001440000011437712507731135023363 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy|Tϝ}&{ְ5 AJEB[Uk٪ j"¢"" !!2wr3$!$x=<Ν;7gνsQpn3PsP~*Do94]PgЬ@[^ 3l8@:s"j\dzc7#@TRu)'&X "uDBM4S5s>4şmr1|0 )TkUd]gN؂˟xe*FhYljhY0Hodr?IkbZS%/1)Q& U^pvH"gƹen;uv!hYW7͒f[Y%M\? /ue fYIܠ/>h:p|M/j5hE~%g}|Y@it8yWpRS-푡cr$ɍg|%jk$+"0VJbey6Q7CD&eIĈ'NHrr=^9B)nz1xDXibUZVzoPlUnaFY!91⎓1IX-]l>J b'y7Zލۭb 레_/l24NODd,"O$HzK^߶!d >^,E7WEzA#n_H\. xwZQDdg[ytE~nb\@8y\R*boJ+/)oV|qP$ ErE| WTV"rY*xpJKdti%5erAT>Qy瑤bZ"eZy= < V!1_JT jn)K" OqUJ{/7 T=GKb=Ms֍6Mg{*%HEұX-qCYEtIt$ɲ2F[Jwn4h +U+f;jC?t>A7 {ϧ CiD8)2F7$N*N>֋_UHV@US24Y7YZUrWjEZ;dQ/BD{ mpX'Wɗ>)P@^ZʎdSF٥ʱRX̀8U98Mk-"ʍUS}<H)κ;CgK)[J"塚yx@^pˈҖ8dS"Ū_vy|F'Vi0,J^Siah%V:6&Po94\nE}3/zc!W'6r R{/cWf7^-ʟU!|r$5tQDdO@"ʒW$?x$_`uIfFM#dWVj!*2]j[j+<8i*wvuGk;|Ru+Cn6lz>O]Pyƣ,axZ5߹Ѭgݫy&"bE^t7A|nZ:>iah%zBUED$; ] gk !C{ _V.>&:{+bm>FeEdID'baS'5Zk1%W6E&eYD$/:e\+"Jh/T$Ҙ9O{5ߞ)WݡBݲɏ`mZqaUtz:\l"/Pp[[i5 {Q@4[>M"V0ckǶ|{NC.`BW}Ta㹚x HZui"jre3O٠1{^T= yL 'RZ5߹_lm.>z$gs#ugn8h8Mn3CQ_'K锫VjT 7%"20)hiTy)]%X`hQDlk2]~Q Ou^7Une>ޚֺRW.Fx{O5>U}Jp_m%ssp /k;t곪2X5 I巀M݀┪6RT5lʢj+S@{D*2R}PZ;[}-`@ DiUgZys{Gm4Xrg6M"Bz}SLej=VZ\ *oASBL6ޞSfMZ5$dsѶFp|ns2cMG[eVp 7v%D򟣰κa].9iIQ lx= W:]y᥷ ,R90z9E84+7 zj]nT-R"+>QȓSG*[5J~M/iȯ55MqM??_U6EY rH"Iy-7kU[~Z,|wnYj|qF>[෻ufyw6O}'j+?\b4yJkINJO"RւWK~ok}RJRwUCď)W%B '3,5&`gl*r0 ~FZy%ʼ/eUD$(ĩ1U/ߩUADdYȡqV+ gϐ1Lø&$bUq҄o+2("rIH,y`#d" "$!.58D'-sֹE~cߜ|Q^)OU2(Y1~d= |Fx{Ou}_| |n~[w!@ ұ5ߧ0RLU+VrY b)Ui|ns3}PB j߲>ʸRY2UUYᕋKeg'ȭrM,J*^,7|*} U"l\2lWf2T{@@*T//2yU˫sMWraeXʸR+)o)neMqn=23/" "y.gZүreĨgF\u>SH{.DD UT$T M~*-> Bgq o_&yr\*Ϯ8!"= r_彗xHn Hz.S;G]aHn@"ny}#g-kD*2''/׹^-ti<Z>.[򠓊9{0ȕ'S~h۷6p<\d+bT0 ;W^w3+/w5P4lǀ4pNc@@@8B8 CB8 CB8P5hӔ†C@- 6C@8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8*@ݎqR -&9N%Ur C@xN0Zy萵*ʻ>ѵM':D$-9mZ!S!h!v~;N[VG 9ۻ{٬REg~6Svc'sYhv|.fsB8 TUNi7iwo75sسǦ'È@bOQDDVTZj׿ڗV}mѣG}~j Np^{-OѶz$T|{o^l,hNEO"F<?$?k1@+HO/IN8aܸ1QhQ* s/E)9Gc47ߌ?q$"[@+۳gO6 7efZ9s}͛SΝ=#FT  疔6<ɒ%16Dhߟ۱Axٳ;i˗\RvU%…}E}ca;'3uY"!K $'{ƍ+#wȏ?֖zxE/8HJzkɤoudg+* uVIhۡ͝Xg=p\s@z92'1ou$ ={TuNa.[f5/TZj3jTyU$"_HOҏ?޶.L[U&bn[n6큈@R7%=|hT;E#"ܓ8еfM&!d2_^k ￯ Z[֭}2%#Öa<9ujQ}]Dd^ǣX,eӖz2lb4F~㏣]`ǹ,:ni_<:7bD*{YJKWÆU4w1¶n]e0TC緪ʇ1pe1u4,[7UMJx#zm׮OJGFDzLIHӠ=7Ȱ.իjni4:yw9{tk/zŋcՓPq}{_vcwژ /d6bg^iN@@.;r,"6:qb PZ2Ikz<+*2]-oւD_~魷#u?~\mC[3v Q՛8aqJ/5,X\m_\^K<O%iG7uiӦ`Oڴ4 7iM۷,SU)(0n1vlwٲu/5BC\27.Ф㏖mtN^Ч[oR,Ϸ·,K'|EQZwa{ꯑg]VVvYaÆ1Se9wߍzX,zԊpKJJPGYM-.ћv&M*NLHBoʔ^h'"*[g0Ȱa_})"֊ Sگ[|[BoRE1pusشffZOSR<3gMO{{ vۺա]jLWܲše={lpuh(s"#W\Qb0gۼ!"N!wqjKUaO?^Hh+ֱcb2QQ~ig2с׫xJCo;lYׄUǿBcyA _ژSeyXn̜Y _1m@Sk\<>lϱwu 634Ԉp+v?T}J0_GG;whH5jTY1`~F,Z6;fse[RRUV}pxcj}#{dy5auѺfg[zC>^={Cj mz>p e0/~QPm$:t#11AA8D MHo0Gg*Wyt=YDdvW}J#"}V٬O~"lq:OY Vz$vG w=QUCP\+$}Þ۰H0<뚰Ə/ȰjSk~KswL=V$'{M/QFպK.ywCSJJAf1B Zzz9^գA%AY4NzZ"zsR[ZfOі۾ޖC')/>1O>> ?Y~=LS4/Ӊ6[2\Pȁ7tv/ :6 -FJ[4}\z_Ÿ2] rK.)ӧ(LRTme]{mVD^$>od c˥lבԖ1Nlmz2t8ᝢmr(XHN:Ys.8AN-<عiaөljޑ#lk) II_O1[,j^.⋨&wX,ZץKz adRopȊ-[YY߯X8.TWح.ͷfb0ȌGnj:s&&F6bN-\>KzrNѳOyyyɮꪦ:>sǎT5 h5 HNNS6oFrrrϞ=UUmR-\駟o8@7tFJݺu;Jz?nmСݻwOMMk,XbgϞ}O?T6ڳ=zPeJpB-*\xٳgǎϔg4ͶxbmOފիWSE*h5Z m99rdrrСC5Zt^>;vؔw'N\d}wW 4{Æ _VrXZ'<|xrr\{YfMrr[?@)x%ӧGG~G222jݸo;֭1cy׽{_3g&''Ϛ5رc{SRRƍ /xlܠzn_}.,%%ewygvvv#|na_{7ܹsnݖ-[V#G>^Q~֭۴iS/sCkΜ9S|7g֭KB6bĈKn߾===Tog"2l0CjՕ{Voc|>V/^߇/gю`tttAAʕ+W\yw?#5D^^W_򗿬]ުYozg;cŊt_z饍<h>n^x~غukTZejM:`04k1[COj^}G}l6?W_}uS+Vo~r_mdzgϞ={,YKHH{? ѨQ?h9Dѣvuaٹs8цM?r6U-X"33w=t޽{߉Ⱦ}.]hLOO饗oߞ]v_}ɒ%Ǐ_\i"r7.q6O81g1cݻwܹcǎ}1bD_իWƹsfff߿>裏B7>|TƿSٶm^*7i+df|W\qʕ+]v/ _CիiӦܹs޽vD?њ^-Zgff0k׮}qUkXBQ?|IDDAy}PgϞ#G V{jYYYaԩ])/%×^zZ2ܾ}wrn 6?âEzo߾_{>z護 \mbtY*{jg?Ci׮]ttt ˟y晱c x`Ȑ!"vͮ^z)==}ښ3fr-"Rgsؾ}5͏=Xll2**k]m0\z/򗿜>}j4bĈh;wq.vtK^/_ׯ>>>~ƌ˗/ 6+0_O3FD}Z_.4uT*^h6TRN&"iiijQAsNz9(1m4Yd]5=:996}-˫:~j>c^wԩ<6l袋^}U߿T{ʚ2eJVVVjjM&5@ 5vk.9s(Z8Pݻw׮tZC}馛B1bD>}Bpeffjk͛7p@9r$//d2wyaƺurrrDGf۵kl>7o[nZoVٹsgnnnWuܹ}kZKHQQі-[qԧvء_{;\s#}PiĉQQQ%%%~ri7ׅY~'V믿~eU{Nך{ksaa~i/;k* 8|9֔_j-;wҥK^RRRxJkE'Nk֬KKKC[JKK[=<8..o9sE]Գg:jhSmҸ &L1ښ^kؿj EQ~|ѣkݽ{ Ĝg.!ZrXXXO?M4IDhѢG*h4H^p۶m[D$)))%%E2kg}7Mff?,"Æ k~󟇎l^Sccck^׼oĈ6lضmԩSsss322uvС]ּAzfU֪نV͓۸ASuZ⪝sC빞hxM6khk}JЁ|mvǪvhmj#tֺ~ʕ"2c !:!ZΓZ8ܱc֢H>;,**:tT>nh7nܦM> 6ر#33sڵk׮O|Mj9tLYf~_}s!%&?\0`={![rss_j]^[h-qqq믿p|pСZlk׮uSϗfm@C&->|X hZDܹsZA}饗BST~¢Nk͚57oEdժU55_{xj^je(JFF;v옞ޭ[*hG*COg}̕kmUkMN?7jA!NJh,ZHD>yUlh1f՚ܘI;[s=7x'xK.EEE{o#j)-pԩS'^TTqF\\\,"5okMsC7NJ\wu6MP5'Whh1"""gu6ѴX,"Rs:FFF>a/BÆ ˥ |~y5-p֤(x~~YV1L޸qܹsxk_Vkvؾ}_~Y ^;TTx<6̧5x`{ oQICiF7NDƍWZZkI=ZOl.h-va8ᎊ&{5["2p#9r䫯 ]{if5h&w ]cǎZ'|hx "?)##f]{,=C[nnnͭ5i9r9fȑw} gϞW?s̩$ή[UUڷoG=iʴpz ͐!Cˋȑ#{v>[opBO?m{Oc]ZXX裏jRvOd2q"ꫯΟ?_-[hy5iF/^l4G-"]tbњPS*"fիWvm\sM ~96m/R\\{キWn| .&/}Ҙh;E_7~{bs0ԦgꪫY mZx@=]tju:O=T#'ɬ<0p@{w1O[N:1cT:RSZZ:dȐ!CT^*LڭՖQQQ>C=f͚Ç:Nݵkwf: N+ܹvW_}=WUUׯ_ 2z}:[`e_7n\rC=裏Z)S|6^#L~j \߯*)Fp <@| \s͉'UVZnRUU~w->{ܸqo ,ҧ۵j7o| 7DFFz^.5sso>Yf=SQQQǏСԩS~j|nS4P^xa=>?jݦAӧu],]tҥ&;_$sLLoyov>O4IIN${„ x͛2d{gӦM&MZvD#p Vg=!ZB[Ed/Ν;NgRRu:,Yƍ=-cVf믿޻wc;v8lذ[o/n2Wdz^{{&iҤI8~xbbW^Ԍq&$$ko,))iw޳f͚={o}饗?N0a_~]VVקO.hҤIhvwSBvGTJT粙3g~gvۓO>ٴ{߿{sh^uU;w{z!mMnSLKyjO%''7ۏ-h۵V jz_f lܸqΝ4AC8X~>daawߝۭ[/?"re7g"9s… ~mڭ[7yȑ@  /=;;o?"""}QNC8͚5+СÇsssw_jʕ w1>f̘?1cbpa@49A€4 !p p!@!p!@!pU$%%ꩣGR?8цcǎ\곓@ PZZllll\9p6dǎSL@8rH5$FShsFj ]SQQ!">/gc6fc6fc6fc6ccC9G~w%1Z)p p!@!p!@!DD8%'B1qqen#Tur !8ddDj\[n4r'3''gVQrW'Ȫ9)Ǥ^@[(׺n۵o^і?͛RCg^rOD6o5rW[r5ZdrkKvwɾZ'}Ȑܮ]cӖO'm/^i]]L"ҔZxA/:E H$,(QE%1 eQiȈҷER5M\\ѯ~5;v&w۹}۷߾CUU5~߾=mcЗ Rļ{^7-r}sI_wk+:+ܧo_ҥ {tI_'m -:e2ur/Ї~&:tР9ɓK+Fvk\3`@Fv_FӞ=cbJ\n7w=mZ0١-dIzHjj޳_u{5‚t+~󛗽&3a|?sOE$&[wr2FH\ qOPuȭ#FlMN>Qa0B[vkᰡףGV'io?{#Mf1{#q_h%Che(fo^~jcτj.?q=ǭZ5f1wk7GWj==o\pIMv0Z)b֗Ց EnwWٳ9vl'MZ=kר}Ο8i8|89#IB\\gmZADIʾ7m6y1c>2cc(^I혖~J ]t+\7k0T Zw-t졕#jM7Dҹ&)I^^s.SRMߟ |(5TDL&Ϯ] }إm(pF_p`߾x5neRR`0v׽[f0n][i@A8,Wkrd8Y{Hn[-H{6+`4nj٠->AA c|sΜsލ,]Y- `rsꪕ3׬uHll]|>x,Е%%Qi@A!$yL"7nqrtto~~|G?x|/?җvi̘ cǮ;v⭶-77/ғaAA%tsTu.5|ٝ.Pw1ͻO>Qʝw>]m%h]ChM 廿VKG,% nm&N\ٶmiywS_{=wM7grrCC]?{Do,-ܾ}vvm+\aHZPpc|\^~p{pE}lل+/첏}>m JHlyd+%P(u|, g]Q> ]sm~H4]5m-N/P8UK#w5qYA@RgﮈRBlo>?eJYg!ʪU&く> PF84ݻvЦَqRfc@@88,Y䮻wՍĉmۦ?;wөcw>ѵ:fEK.MAl6ٶm)f9<޻ZQ!"?>Ue1;ejܰaCYp,x&9s1c8p \Z8t}QXya(m9""@8=jݺءGcThaCh5ɓEĵdFk6ODFRh5M))eˢfEUu-]j͔ǣ̞I[䒲*і.;X,O }׫|Mݶ\m$oJ{pѨj-XmZ,Y$F?DEeӰk-3Ӛg*-5VT,56ףgԨ}vvmGk=tQZN$%nd &+˲jUTv9PzppВКl&͛-[ѣ}^|5\]QQjx{^.B5Qr)99-_wo^i]$S`={lo?ȰeeYF. ЭZSh`ɓ/ғarwذ!C;{ 5>}))OU#$$Wj2NҜ={vHWY8V=u\*Vr/Փ4^@ZOSj㏣Ǧ^LL6P__Vfذ!"4W:n\暞~:Q[y]T{]. q[,U)0+DȘe޽=O%u#Gk`rsM+p@!@+M\6o^ܹ'X^n6EFƏ/m̞SS]*[~\\lz@@B[ 3*xfW*{vzE"r%{;@ .2e敿ؚbҮ]=ZlSOuݫgOwǎFAOy¨QeɽJ;t%&Vr`UQ! !2cn4~L{7~ǗfdXKK"){H~\67+ oPW11~NZ Z_׬\|q-:ykDa/.0/3gcEɰKOzzIN^Uu =/קp.jW\al:>KMcVe6UU? /Y_60>>جW\\~6[@("QCЬں6`^RU9v| qrKe1לp"tjSJ.hch6 =NsrLUZmb Ll[srL~^UTT{ڊ[870՝;ӀKOt4T_1ԺǿMC8\ziX՜Hllmz2t8ŵn?zt\Td|+zWUEqv֭udR> Ez={lWXh,/ _p+vqҤD$$L ljxpZruh~q!ڣlsjY(.t'ǎ]znٖЧW/wϞզwE[{ݻ{bbZW}p!@[8N,\`/KKMnkzwm^oKO//aEKK~E9`8Էg!&c7mj]Htܱ֬îe6M^7gMjEFDDڵ=`n}^HO/IO/)(0feYmSUQUaddâ"JhaQQ0VAm].mTP`J3C8oJ599fdCNv 4ȡC}R/*82ĩ-[U RZjؼj+lqx<'?觱۫VҜ?KD$?CRh뒒#FT|CD3B;Y ݊`rsMkD~aLR7>ޯ(k:r$86}5G ._Xhݻmsv :3}z6El貯lq:M;rd8GuDϝ=wn^ҳg4ھ}{ߨQ -RZ3-7 {Dfoҥ3<>Ù"rB^o&]mFYeɓ'On._g79C€4&?X,j| em;9b]=w} eЭYeɒ%!ƍ$8qbnϟOU Yl6_x^xaZZZ[fdd$''o޼ f5I \6o^ʞ~Z{*kW%h1t+pJHHXxqpΜ9˜1c8Є{v.]?q}G~#8g}׳f*++={UV|1B{N|FS'o4gϞn}U/U+Јڂ׫S5CR}L?zqz2ʪY. q,Ϸ"cV{w犌 h?o6޹3F+kFjn 1їoz뭸lQ e^~yiQn_^nWfs>siu-+3la4VmyiӦ}n( }}8Uƍcǖ{-9O>dAAҥK͛+"?Scpyl'N(;7pCѤ p7lX"zҘ>ٺc4e0T5 ffZ+* rr~my{ (&'&D$!7eJRU%袢_^j0H|୉NQ(sCШRMdd`R#ٺաOL1z;p.9瞋5ؿ%Kpy'͛W"rpxcNFH]l_q>@ݻ{bbmBuTՇ3:گrlPkW֭4;Sq:Ď&;;?FY(.' ;p!8ǟ)EQZՋa Wٟ~8mZa||gq)[v.]v+*K hÇWnl,*26_Q,{wﶩ|y##yy""|0:Ѝ: qqU78`=K,!I."ұ7)Y׮BN>:d[tL2y-]V1[ ji3Uo},_DhppUQagՈ 欶&-ͩkti6xL~c"d-PzZ"zGȨ"? m [ok]m5͛>cJ8й0_fСFsIԥcG_NNs`C+m=L4/Ӊ6[2-o\PoѬe>zԼlYPq/_{mQ>5Y1IIxHnI1%3);bDŷ:D1 /3ըۭ _>ChصVq 22ꚣoĈr=t0 5aBIiQ~PUQ2hsĒ(eZ&pnI]|>%;ے}K@zzqk-zۃzJK:Af_>rV֪1bذٳ;B}wOS vn8|t*6ڹw]-_^ZssMee`6 ޽ݣGGEC76ԛn*9bGV+Vk .ߥ75շ[ZE:Mȑ5]6ztY-;Z~v 6JzB<ٳsjR}0ʜTӾ}{ߨQIϞ= ԅp, 7H.]y#'g] 냝9 qLB8pz|4wڵm۶3eۼ9Q~ɬMCo0p2yɓ'7n/_~@aIF7~|IBL)?h-C8;j1cʆ 6i2fL٘1eh(U V @mM^ŢYp@-y'tTG8pVYd]wݥ?۷իۉ's8wӧSg;-}]=xcYADҜӦrm8 / /LKK{ˌ͛7׽٠Al&)ss}?P@nsB%h18 %$$,^ w8gma̘1هp/iӦ 'PUuǎ{%{o8Э9'''g֬Y&Mڹs2##~wQh9pΙ={7=,-5o ϖ^|U \]QQU{ cwkN%+˒eٸ1bƌ|M~.u+WFnr)99-_w窱gfdز,G7 :߯R૲-]':w h]t+pg͚UVV&"n{٫Vjdh`n;˗Ge˪RVM_|ǛdaC8;w *ZOV䍉 _Xh|[i[w5FکWZgOL*Ǫ2,^'CiX:}:b9MChNa56*QJZ-9{}'׮];mڴ?O_+f͚3f9r֬YC iœ;׮ }Z7V\NYD6n;Qq_rIYN^9rĬMD23B 6DU9~ܴiS 7iivq*ƍ#Ǝ-k|].]ӧoYYoUWV{wV`VsM+pح;=H}#: Y )ƕ]~yIaەD-bZ-9O>dAAҥK͛+"?Sca۾&M*NLHBoʔbm֭S<%3sf~Ϟn#pzvϜo6ca ZPDFƏ/u8ݶnuh-r&zEz0;xyyG5}|Z \=9_uFG>rڎ4+!sN||R%!!% DGW=ZDlZd C}BCQMǗfdXKK"){H~\!ʮ]z222TTdTՓrNQQ5/**p6EDKK YY={wTUTU>۬o2SUi ;mQDU]agpFں]=ڂiGC,z2y-]V1QP`*(%\L.U58PKK=5'ǔ_}-UUpm]ZS9mm|Ӈh+E q+lqT*SP@@z+С!pJK 7;}w96@@XQaB*"S^ndʨ&8S@RhbcGiS噞~:f \a u5k"?0&)W5T5H&%yG[;f~vfp0Z:f7ߌ:hTwS4-mO<`P~dRkisyٲ>_lڢ| :C8LPRZjԦSժA8Ed ĉ%ܿϧdg[OZpӋC\{m׫l*/mVÇWe׆{q "cl/zx-HժSէp NFv+nCU@G83 SܴqTl6sgȑ端.}57TVfp: f=ztyTIpLM7Ye#+\Rb5śU1cF[ڵƽD߈ÆU̞ݩnĪUQA{U%MAU@G8V`KOxHOOT~S͞W͘1ecƔg}F*{t!e6dѣo|tҥ-322.?pȑul6h &"۶ms\MXTק:,(,T,cn#]f5JZ9m_yaÆm95ե2PCgŋ7̙-3MO-.'ۻ7b}~ʶܰre8SWf@ 8v}ڴiI#6xcǎ{-P?'b4:n~M]@KE{XZjܿS OY0vǎt*YY,ƍ3fwk27@@-ݺա)+S22lSi!Ya+.6j_i1knT{n]~Rrr99-[EA(sJy?n ]S^n5mnE8V` Yf={UZ짛RSh9s&4|٬*D&~zuTx{s VsNa|ٲdXHIh,tCժ&%ycbBo$J>I;!XgE,=;˗GWq}{_v@cwYjjN]iiΞ=Z˛׫,^-Q(=&'{ 2ٹU *ZsO]vڴiӟW^ye͚53f9rY e0k/*^{駞#mW_mB!Ʈ]e^~yiQn_^nn<7TX2ꫯ<O%i ڵU/s>siӦ4 iin( TU 7F[2aܸqJE$7>_\~EI7۾[ }ފ7nTD#_QԿn !}>%/w. q,Ϸ~tV{wOAED23Ӧ?̰aCDh@$py' .]:o޼X駟z<{eޫX+ F*{Yi:=FE.`xI(aTy Eqq~EjTRR<3gv8Gwo̙suC K&zEz":xmՄf*stѺfg[zC>^={;vlpEIHHh:\%|Y$"YX=./Sס/4:]ibc)Lh6k`ۭeuG `hlJiAill0hԓ֬kz啄:nܠ""ǗfdXW|޽{m"Ҿ/=_ P7!sZNΝ۽{Pc>hѣ{xo77ݏa/V6m׭ԓa.NVv{c[+~PߟfMv}PV3f̙}Z\@8pN>}z*-=U8P3BD"z5_4U< 剈k{f-sS "TEET]~i7hh27h""%%Ƭ,˞=ݻm**E8VA86hEU{U5́Fj49o%&a*srL`7ݻ-Y=]xHA!JE!""2eZT6vٽ&"N!3Ӫ'C,zLO׻ WUX[ :(C8"J1'\-Z@+P+*_|QSE vS߾g~kNի;)"S^ndʨqȐ` 䭷ǥ԰ygzcVγiiNϥKccM~T z ` 0ziAEDV޲Qm\!Z - TاNeUT_]DC зOIqi3b4~]D>4e=p WL&QNQe1C}/N_E:#FT|CD3B;Y ݊>,U:#/,4ݶs;Gp>@!6?zt6b^meS7`70՝;um27蠈Hni͚?IJErsM))!AŻgGk>i=B\ziٞ=6= ųkWu__ZzK{{ .(ڵ rιs]ÜҥKg}O<5a*my޼,*=grٓOުo;v~Am3}uv.((@puyMOh2 SSwaS,g+.T97K\D,^q=4hkٲw9㵅ÇXc g(8Sol#Rm+VD6cO=tzyjjoޥ(|}nz%hO~Z#O/ڵkU6쒒k@ m۶j]64*n=vEDDh>SF]=C *++?UW]5a„痖r@@5j׿gf*立yydz~}7; ZqqVUEU9zG嗣[҆/9|7[N$&*"2`t̛/׬6m:vzw>#-N2o mӒw>۷o5&Ǐ/YDDʎ?ޱcj C:thYYG}rDرcڲj5jT=F=d~GNIIіv{{-F=H^9tPPc͚5kժU .\jՂ ,Xz7_111fڢ'$("wLj  C@D.x~G-\OVXፈPL1|&ixI;ᰑƎ#"}~v'1Kajsrr֮][TTt Vj C݄?-DDDPksssf͚?d+>`…{={9st h1Cm }:0""c.|Z4jS@TDN.WQQ-x{Cy@ p \s>vXaaVƀ4ڢ[׾_yő]gZ[IIB5bUU%'Gܦp_=]_j~W,\c^ 7ߌГ^ۼy.Ⲳo\p~ŋ끪c׮ڂСy׮]z2LLL4imvvmmFr>iӦ1bΜ93<9-Cmek-XU|ubub;xhJe'xEDUeȑ̌ ө|\#"=w=4zٞK̦%IK# W,mX$PR:) JXAL0H* t)Ύisxq5o?ϟ|գǯ1we9r16vK$b ]Ə~ҵK5kwY[[[WWqƍ7Ξ=zÆ K$N^ׯ!g}޽{#FGYfI>z:N-iӦ˗Z*O=ƍ7a„A$9:͛[O?ZV<~6=~v/\Xxaȓo͜v+q޿̜EnsQW>+[&M:ҧρS*hfڴiҥKcǎՍ7[o]hFDAuuD6lh;Z>2H$<vؚÇ>|ɒ%_~9s!%$N9{/5rA̛ה[,gƌ GK4?̱uZ{i?왨:#pCCYxBi?{Ӌ7 rN*{+L}˖-ϦO޻w^zoMO77|ӴsDhe0Ng7hnn_tÆ ۶m<Դe˖+Vdߛt:z;Gݲe~ӌ}Έغu)WZ`;zՍ3*\d+.۷͞}gUW=p]w]#b޼ɓDD[[B /Viss"k#s.:uх>X7HXh~}}ꩧf̘~O>$Κuhܦ?]|2鍊"lݾV 1pZzsssmv^+---8p`assuDnnnvemKJJ[FDccUdQQQ*0l%%%틈}v=b7ܷo߈ɩ0aBee T!p9ii+[򷲲\8iRoi];H7ފ?}<ؘwq@CB! uU49gpysq8 !!q@CB8 !t ߔv|={\CΧ~':T\\lذaÆ 6NO?ɈC3>|#qTTTtG=yÆ 6lذw8Jr O}# 8 !!q@CBDD% /@'!q@CB8 !!q@CB8 !!q@CB8 !!q@C""pw pq8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 "_Ӯ-wݼIENDB`python2-pythondialog-3.3.0/doc/screenshots/pause.png0000644000175000001440000012344112507731135022517 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy\T0 Ƙ$Y.&_WnP^7׫V]KM͛]lѸf\ 떢).!n(m\Y'iXy=3|Ι>s>GuMToN_*b͛F!@Lw8JDQSCZEDsQ^%Fo1zjJWW]~[sPEMl PUGT2 OkTIKo)QI35`==hf۪\؝6U>__\l!i^%;f9Iws|zEDVzϓ5/f%T,k^%?i%/jdC ZK嚗l!|}kq4.y`狚bf٧-J*r\%oIT T l!O+sZy>Casx`4W%a Ț<%ŭM%;SikbJj4,r!~RQS%L-\,Ʒ> dV B+xʊr@B*D[%휥r^w{QFݫD7iA.rPfoV:Mj$(r"y^iJ݇yYW9Y ?ˏrl3-Tg,=ig+."SPfoŴW\dGS#O:IYa5Rbq[%S݋_MrhU " 1y#tWMX{f([n}[{fi Rol$jX?$ L-Ji7Ey$"rm}[wJ;dk_3;A~("rstΔw/ѽnP&r^NfFwIn*34JRQt#5o˓r5"${?]jܖsĵ*Ox-Ay5KB3>$kS48' tqOwˡg21y.-3^ -{IZ7_#2zߑ2%("T־<,#9P_Dҍ׻?4=y/^M#>iL&ݮl1{[%r\~E;.[R ~%9n]-%_l k6/wB2[DdAevdWbS4^46.[~)BOrjbS\~^ 8[]JhqDUBbu/~F-;/]9Q 1H{ ؆* :*{Q(2(Y[=Ue htGNDvWV]PpWIC? %{& (bdȷ0JQKm5F}+eZ(2/_dp# 7AQ6;Jef ͔mr(Flr*-?HQP+Y- ͔x4/*CΓF9Y QweY U!sfʊ$΃irWW. lTi " _9| GBDB9R k ,WhOwBCALHH$C $!9!@HBrCD0z5Tiwv9=Tr9HBrC $!9!@HBrC8JҥlBs' w$C $!9!@HBrCDęT!~~~|2A@)Hj.%> 9z;<.ܹ_M|@rT K srr $@j$11_~D f+HBrC $!9!@H"L5"w$CƏƏO(w_.@llNk۶mVVVzYZQ7Ц殄rAyA<](/LHSM9rW^"z:t޽{H\\\v!66ŋ!!!1kjS._믿EmjA})8C@llO?$"V [nWx3fThT.ZԂUQ`${ JgϞ <>ѨHXC!VPPdɒ.]4lذyFpBOf vԩaÆAAA'NqFW;!!a-ZoҤIhhIo^R`!Cر5O2EӍ1BD о}SZx̙:SNy)SG::hÆ tSLrJTTT6lh"`^Ҧ:X42 I)`2y2v$+[4Սk/vЬY#GQ۶m7>7l0nܸ]6k߿UVz)oecﶒѰc-C] {MlڭDҥKӧOԩӓO>٨Qnݺ}w5/ot#Ftov١\e⋑#GmvڵYYYQQQAAA}}>;= *#Gܼyh47ٳ^(WFAvޭV rsscbb7oެh*ڟ{'"*GR>}ԩS (kJ5k޺uk֭[n=z;S_8qbAAsΝ;w.**ͦ¯ڢEΜ9s-[ZSy%""ɩ\~W^zh4:uj̙vZ|ms:uL;v,33^z?W6lXdk Zf0l0%P:M:w\lZll^_J~;ag77WGFFΜ9,g}4ػg}4laq(ڴuvjcƌQ?~6l]Ro߾|MBB۷אm6kv>h!W1wܼ&Lh׮]BBB5nܸ1k֬-[>svo5m8:<4s,]t*jԩ))))))񞞞J͛7Z'N8qh!Wwd۷}Vݻ'|bQXYҶm9s׬Y:v(" .,8pM6k׮޽2&,,lݺu^ooȆ rssQסCNWM`qvvPN%G:9Vv$;ZК5 h>|Aʭ[OGGG=ʒ5jDFF*r b}4ۻ[I\Mj!""b 4FdF?:uJ)VW1M\%aaaw_A["ҭ[7V$-Z TT=zԲlvQJw^/"6_޲e~_4yESmwwwOKK+dfffbb 8PRlrrrb͘1#U*Z/j322/|"kUd׫WaW_}UDn߾}ABGٚd_ Z椤[nݐ֭[dQU=KDhS4ۻ[y\Mܦٳ}F)cZݻw'L;R[}CԩSGuׯewM8>#?P!ĉ"SOY|ԬYӧO[E9P.ݹsbݼysooﴴaÆE$ (88TF`-޷o+VƾK-[dffz{{+W+L-ԫWVZ'O4=p:[ӑkA+,"5*:nܸ_ܹٳ effڷNa`wʳj6VJ[o]˗MUlٲ~.\7L5;h+"]]]`a>nGE+ÑHqvooS~яc6VM.\p̘1oxzzjժwޯܾ}[GXiII:VVXk׮W*/Vg6B Utazz)bPgk:}-h&??װaC͛OϷo6EþgDmڭ;lFQX|饗>7CeL/h>Î5;b,R!i,i:tط&vEH)k·JY߿?>>~޽GIMMݵk׮]lW_˭eZ9n޼y&M?L!*xLi,D+QFݾ}e˖~aƍM_~ѕTp(Cկ_ ǂ۷>hzzrDԎ5?(6 , W GQbZM/3e4R[Dn߾]CV裏vܙ."۶m3@4GE7X̊P/k֬kU7o]xh<:;MIFޡC.^("*rFeۻa+ۚJ뭿ONj͛ ?ުU2١G$pV;:T~$ՔiXEѧL_y-:ѣX#G9rľ<ϟOHrriyƍ[G$*Fܔ*2-A3ŋ"R4[l1ׂt򨏏c=fQs`H)o)w[1k..jS ]iR2e+)7 ѤMODqra=>o2$Ք(|ɩwޭ0m«V2/y.֐!CzիWrybo<12T*/[re˗HӦMAj֬&"?RRR܊ e}eqҥ|ILLRεj+WKUׂ͛7W^|狷E$--:tRR2bIҥK% ۻq5o.\Uش[(o={vMy… &&&(yB#}k.}оC5@غGCR&? ,Pc>Z5j,[/TKΜ93v "&111kyMKҦMmݥKL뭷yӧL$QQQ\yi=e={jR |ot?^yX%???66VysÕ)Rf͚Ȗ-[IA-Xlʕ+޳/ۻ;6uQ6Цp7ش[hbcǎݿ>}\]]322LK훔tq)a*\}\kط6`^_vE˽K,]tƍWNNN̬QFӦMoV⋥K^ٳo߾SL/D)))[DD:2 h4w>qĕ+W۪֭Uo߾h7|[tCӽ###CCCH>[nH}nٻv ӟ4bĈRn(Y_:ulذa| wA-tҥKĜ;wٹO>Ί+.:3//|@Y^ -Z׭[q%$$^ڵk/]_~Q^xaw4w [wX 6m-h_mDZi=zٳgɒ%;vp;wCBBSl/U5% *aY\݇\kطֳ`^_vE˽ 2Pvm&t.]|VO}'DEE?1b˸޽{>\^ 399yر'O?=lذ~Сfͪ*uFe޻Cn}唘د_Ν;t:>}5tQxea0kڶm[) ۷/99YRUWV:bn聪g|'iiiG 42`߾}v?r0zԩSEK. 4Ψ{7_@3Vllʕ+]]]4h}ҥB//EeyZ*QF8pڵkӦMΨ{7_@CXkʔ)]vSŋz_[q~+W;vnݺ nP1bB(C! $Ptj_l4bcOAŇZ2QϞ= Clر:7 @yVMllŋCBBڵkG4* 塏Z6m˗WlBrVPn駟D+TXcO*I4h8hOy([\\ŋg̘6!9HϞ={z{ ug$[۶m/iƒ+V(Ð͛g'O.[ ÇoѢ&MBCC'M}T8;;{Æ ƍڵkf[jر_|E׮]5k6rbAy7t:]Ɉ#t:71~xN7~xpN:5l0((hĉ7n(iKϝ;7uΝ;>:txwRRRt;uO6jԨ[nݻw펆ݬdʔ):nĈ"8dȐO:5''ǎjw-[BCC+rOfgΜ:uTUJ۶m k;[5ξhXߟlnGWq{ h+wXѰpBBBdddppPPА!CJGQkԂr//bȑm۶]vmVVVTTT```PPg}Vl}zĉ6lةS>(//[x80Zkٲ?."z_~)X:uL;v,33^z/*6lh+{'"*GR>}ԩS ﷻ~ =<<ܮ^9sLaذaJ:h6mڔйsgoIHH}GYYY۶mSW h4hݻjuAAAnnnLLLrr͛5E/r"zٳgŝ>}ڼ͛nj|??~6l]Ѱu7qĂΝ;w\TTը${k-Z̙3nٲERprz}^gG47C=ŚL4M;F;hX__oؚ5k޺uk֭[n=z;SƣMljܹs M0]v 5jԸqƬYZlsϙOKKիו+W<==E̙3sپ}ի+*;ڢEƌSJnݺӴiS 3\T3qٳE$22رcG9yŋ[n] 갰褤ԔSN͜9SV/[lÆ /^}vZ355ԩSׯ\~j۵kk06olߜ5k UCyUV?ĉ'N'OnܸѢMLߵk׭[9s&%%ѣ3g1/4jԨ{9s̙3k֬ 8yG^gA׿K.MLLLLLN6U2)o`@@@6mD$66W''Φa}56gۡpnebAэbkюC#8:V޾}0 99ĉG:t|E쫆jѣGo~~Ȗ-[,oٲ%???&&ө .tqq9x~X-Tu$(IIIAL>t#NO>)˚裏*KjԨ5?!3 "2|A)0[n駟]Zݻ>S_&YYYԩSZ&MԢE ٵky10}te˖=rM6>}`?~ DDф,YDN#v;p@6m֮]۽{we[XXغuLz+s 0`lذ!77ۆ:tt5M}^g+$<8Ql6َC#8:VVF۶m;g:׬Y:v(" . SIztC*e[hRz!"Eeܹ۷Z/+iܹS-Tu$((]J*v2|URRҭ[D^3/ٺukPFݻW-EffRa|s<"ry W^wy_yGL?={"RBFmܳg}Ѱu.3f8;;[4Zj8N/jڌ 999~mіM}æ^g[<<8Ql6َCnhXS833311QDhHrr^/j<^S򃯯?d}}}-WFRdgg"[xyiiiÆ (V7n/wyL8233M?+3R6jԨh>~ֲe_p!>>43[=`VVä<%p"ra[SO=Uz:$"*ꭷ*˗M#6eP{S}]bEllK/,ܲeKffrA6 zMl]Vv F?Zg[aMᔔ("AAA(9UYz ?,FOHӦM-1|}}}}}zSw^-Tu$(Zv…cƌIMM}EӳUV{~W3C?8"װaC͛OVP(e&%=~K/}7n4%ʘ_|0):DY5o\o(kFQrXvGz׹,!@pEd+VصkիWW+cJ_~e~olbܕg5:q-w k +An4fǦj<^0'(?XhzS*{9r$55u׮]vڲeW_}e]QFݾ}e˖~aƍM_~e6R}]~GMOOWSjؤ~|=L,fsl;;6yM49~2I^WcJ+[$VF9!צh8XW1GQv6@3pVGܹ3111<<\DmVt1+:tŋ"m~~ ۷oyf Edoժհ2 ҥKV\5#CT sѷJBf͚5"vڂ`~hMΎ~ug 6q!E4[уi *Gr' X징ʏ6uN͟?_Q099پ?< cY|T!gyFDrss>SJhR忦쫆yޮ]V))kNN29AF١l.;w)տ777兇Jꫯe6 zMѰuCw P vr]\\D۪Dqʭ#GX|`p!رchzrtA P6j+WR`0|8""СCʉBvvݻǍױcGӔnEuv̽1i$ >\(O*sSՖem {ѰiCwJr0˗݇ܐWWK6 ѐ{obؿ[o=>e 䨨J*;i$nAAڵk͛'"C5$J i &(rȽ'7z'SI&}CDDŋӻvZ^=ن^z;Th4ٳG9LkZZm?n8t۶jӦMڵ{'XJ6 zMѰu7ʡ{>֪Uk|eV\l`>}{=jR!"Ǐ_`UV^jM1b2kݻ'''{zz+9^۶m'NX [H#G:u|I^^,^>]N 6,X`߾}/_pyRXXFٽ{'\UnVZ <}eAt:ݢEu6nܸb:ҥK.]s9gg>};+V(O(WE"##;udɒ˗/gggׯ_}C(٣G={,Ydǎ.\s玷w```HHH>}̯r};wnz֮]{5__ݻO4z)vٳg}Vn:}m {Ѱu7{>FEEծ]{ҥ[FFFYjR!"os=tC{yyGFFZRkn;vhԨQ׿*ϝV*32vm.T:.YoGy}ٳgrrرc'OL4eد_Ν;t:[;*͛FCZۗR*GrUիWN*"]tQ&(/>>vo[BB!C痖~zZ]a_~e%FڹsgPPի͗PV_K,IKKsuu]tizDQFK.СCfffttɓ[߭[Tݻ+ ֭Oӧ ;FdNNN5k֤SbBkӦM"ҽ{w%3T[D6nhZo߾?{Xɾ}zرôp"K/R8pec0.\ةS M8ƍe7l0nܸ]6k߿UVyx+Vݣ7oΌݹIBB[hߤII&m߾,~m5l0N7eʔ+WDEE5o޼aÆ-2 ʔ)St:݈#D$11qȐ!AAA۷:ujNNyK.M>SNO>dFu+Ck Ϝ9Suԩ Q~m۶v4gRvQ:R剆ΑAAAC )vm q ѰXl2NZW_իWA~mYtܹS5ih4V'0a5""?G?7|믿^znݺ"sύ7n޼yQQQ[nRJfddDEE}a"qj8pec4 {nZ]PPyf[~ =<<ܮ^9sLS:uꘞ:vXfffzqS Ÿ{'"*GR>}ԩS {o}_ޫW/^i4O:5s]v-_Ɋ&NXPPܹsΝ2 ޼y1ct=//Ǐ߰aCLLLڵh k-:sÇ[liѵ}EmH*׿ϟԹf͚nںu֭[G;:;:[Qa,Y2m4FgFf[nqƤꓔ$"ZRTU LsXM/"sly'Μ9c*?~m^r74-~ҥ`ʍ-Z߿SO=أG>n W67oNMM]jO81qD9yZQaaaIII)))JzV-[aSnݺӴiS 3+V[n]~ ܸqc"yر#G+>>믿5klܸF}˗/V3tƜGΚ5_~Pʚ?~Njժ5iҤ-ZȮ]̋?:::,,GUԨQ#22r"~rСCׯ_?| $%% F3}tӍbVۻwO>,6p!!!"1f.ipڴivݻ+#֭[g3}t1 F YdFN:U]h"aÆ\ݞ:tEב bm۶3g2)׬Y:v(" .;tU# xw}eɒ%ݺu+KrkɥUVXgVSG\ܹ,"'Ny󦻻QVV͝;WDO}vugVrLܹ#"СCBBr>h43Gl e@4IfhJOKK+5;zիg<ի*"o>x`I5c gggz*S ={VE%4רQ#占{쩀FyZmFFƖ-[L srr^{JEבD8pŖ#paelN5ܘ8p۷EϯaÆʜ(7o<}t~~~V.\p̘1oZjջwW_},8z}9OzzGmAo`4)4<[ bŊ]v&R˥L:a$hΝ"m6G*޼y[niB(Hz}ݶ-2Ț5kDdڵl];a$E_gZR}:Pn ?n޼3۷oGEE%i}YJ{u놅5h,,,T!a5UV-<{I4h`qE`̘1nܹիu떙bG}Ty;ٳg-֬Vi͎+\)O44TDBCC333.]*%)*_@ 9 흓""gΜ6l؝;wZȑ# O ,s*_>>>}JϷon^xȑnnn7o6l2H5;;{_}) *V6m<<վΘ1C>|8""СCIdvvݻǍױcbOlj +)EٳV]Ծ`jbo2Izz)S̢^}q MP^1i$SRRʲnҤIM65 GMS:tkIcJ(UVtt;֥Kggg{uѢE>޺uk̘1 2pFxoݺtOFбcG77b 'On֬͛7Gm>AϞ=ᇈNWPPѲe{/..r bŊ5jdgg9r˖-kRN 6ɗ.]aaas۷n,eb ޣ>wh4;Vrqq)j{gϞ1c4iΝ;ڵ4iҏ?XldzQlm={Hݺuבx4|Mjooשּׁ,//+V=V@GJIIQ2ꈈrښsFEEիWOIe iӦbtF)$V\iU7_yŅWMK<@էR][UCQ\d9NO*E@2lذ~Сž~!ӳgcN<wuqqٻwowBG "ܹ_mNs؟E+7CZۗR* FyQ43C:(C2^:uTҥ29$xQPPo>www#l„4P5׮]+,,6mx裡Vk b:9*W\qwwرu tŝC=8Zh:Cq@r 9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrC $Ǝx B@:30xNtGy(7p:n•DVVzY.a/M q&{矗СCg͚Ej(G%ccc/^Ү];:C4wVCVs_ vQ!@rYllO?$"Unnnqqqϋ/1cFyFCn'$$nzBruuuuu8;+Y&S@5Ą4(6l7n\׮]5kߪU_}ǎ%G⋑#GmvڵYYYQQQAAA}Y+sҥӧw'lԨQn>wK5zĉ6lةS>(//hL2EӍ1BD о}SQ؎j$$$ >EM4 4i^ؚFQ]v h֬ȑ#G}l`!CۂO … ;u԰aà'޸qڮX42k޼yStL|i>pvVU%!9D+i2`_~X^N___*ٳg<("cƌQF"gϞT nvvm3f(3MVQئj(#|j (IIIn^{ͼd֭UM("hHrr^-|W|'3fpuu]lY.]J*fZgyΝ;+A|AӦM!"rҥׯ;;;۽iUְ;;/j322̇(ٚ"*IcgnUE{P9Cܸq/ܹsٳg333/effZ6=A iŕT+:tHDT*[oU˗/kw56mjO:ս{wa`͛7NKK 6lXHHH@@@Imj-5jT/>}#6m`JJ2APPEaIJJr]ähPWE}g6m.]|5h}S{&%%=S"?}ӦM{̚4ibQUVg;h_wŊ/p˖-JgX`ٺ[U^ yo?? *͛7O>oQ?rh4*3+;;,P]m/&+ݷMj .3fLjjo-"Zݻj>/Mmj^^^Eb#_ش#X|dZRmʝ̴Y6mLTӆoMkݺ޽{爈^ҠA_p~eఊlk-wv+Xb׮]W^[S/TTIl+4+vb5-[7nlhGĴ,'/`jN ^؎j߿?>>~޽GIMMݵk׮]lW_Y36.FC{ժU˖-}7[l+W(L2bĈqРAC_gG͛7iqqqcƌJkZ ;// 5SVdحjCgQ:tE6OBյxX +U4쫆V裏vܙ."۶m+vXk (J o߾]͛bf)B<S?n޼3۷oGEEЦ=**%%%77wu kР?XXX,rTqii֬Y#"k׮-((8bgeFщUSYYIlnU{P!ʙ2"nժ(;±c,Yzk+I4^ N7~ZDE; (<}lƍ+W֕+L+0e]:eY5.\gϞEٽ6BWf@pر]v)O< Ns玟_ѝU:߷+޷v]\\DTzwssS^xj㬼QjΝ+2)))G9rH9K:ɦݪ7DrrVfMIKKcǎ F@@2Aٳ C.\(㷈^W^_n#"!!!*V؈H^^X̉j}ayիW9p@o71 Ǿٌ*Mj7\j"Ҵi VZ"r6mڌ=ZD̙sQVbk蔡b|^WfV \tTJX6wtV#r%kR> [f͚[۷qVGOJJ2^ ҫW^z_|i]r?"Y[UPH[(3`Zbw^6m<<\K:ɦݪ7 Ä4ׇ~矛/9xrxCΚ5ˎjiӦMWvvvnnn'N8eʔ -Z,^xرӧ{FFIk/Eݓ===C۶mVhZ Ѹg+\ժjTrƍxaMmj_}߾}[nG˻رB0 [Vnk L+[i Tþ#ZƏ,[lʕʚcz݅mҮ]'xB?+oڵ7nܸqs~~O<1jԨ9sT Ѩ[Eј^[v|i]r?"ٴ[9|H9D4hЊ+BBBjԨ7r-[(*R=3f̘&Mܹsۻ]v&Mx{WݍFcF^J 6wܾ}*oRǏ)' (K.}w~i'''gg>}={o^[nYYY^^^+V>}zWN:6l۷˗/]TQF+Ww,\IJ^xPCyRbT:[܎VVþ#TTԜ9s߮_~jbSaSD֭ܭ*`ܹQQQS2aÆmڴIvJ\㋈(ǹҴ~DurPT3HksIҹtr rȫTx(399yر'O~Puﺸݻf`د_Ν;t:[Dy(9 ۗRzC+) 4HWN:UDt@۷ݽ|PU0! 3jԨ\vsڴi2jڡSs\~ʕ+;v\n]@@1p#* H$!9!PTllNk۶-u: E5vXNo @t?τ@ul@{Őv LKtСfͪjܹsoݶm[rr^h4ԩ_??bٳݻoܸQvۏ=:00!`Iԭ[T866~L-[2`0|ן}Y.],ݻwȐ!wggWmڴiɒ%;wSİRRϞ=wK({ڷo/"[6-UL58}Yfyyyݹs_?yጌ#Fܽ{I&۶m_w٢EnݢYV!quuuuuU~vvvV[f ܹs?)PSNO>dFu+ʢ`ɒ%]tiذaGu…R&HHH  2dHIضm[R&1Mb0.\ةS M8ƍe5VXa2o޼y/thhXx N7pbֈ#t:7*['7lذSN}Q^^^%m@k C^}Utjذ=z|MD{Jfݻlܸ0|-Z7i$44tҤI۷o/ܹsSNܹs``O<ѡCwy'%%^gk]v h֬ȑ#T99 &(?{xx]z5>>>>>>22r̙n\\ĉ ;wܹsQQQnnnʒ͛73F9Uuww;~7lSvm\PP0r͛7F۸q={^xb_?T5k޺uk֭[n=z;cQe˖?_~徕1 ڽ{Z.((͍INN޼yFVS鉬cǎeff֫WOB9;2}~7 o2[YYY۶mSʘ/wDlqv>֫W+Wxzzș3g̙}իW۽V#Ε\<#yޘR?Eo_^jCԟrRRTӧO:u*!!amu_~򮮮gϞ={l\\ӧ˲[Y(aذaJj7mڔP҃6E"V_j:,,,:::)))555%%ԩS3gT˖-۰aCI~K&&&&&&FGGnT ))iԨQ999{=s̙3g֬Ypɲ̘t͛7TS*3{zz?)ZxĀO8qѡCȧ~dk-Z7fk*yUV?ĉ'N'OZ\֭[=M683%a++a}k׮`(Z9995k4O*[nٲ%???&&ө .tqq9x~hZ_8W*Vv;y򤈴h´t%+ @Drrr8-"O>љ3g7nܘ={DFF;v,99ȑ#'O\xymڴiʔ)]vݺu3gRRR=:sL2VV6ŋo߮V:ujׯ/c4"9裏*KjԨ +Qq6mڬ]{ʈu֙ O>`0DDD̟?A"hBBB,Yh~SNQႂ>LD 4j(IPPЧ~j4ODm۶sQN5f͚ձcGYpa5N:999ժUkҤIۮ]쮳ThjuI%aaaw*[Ν;WEVܹcVL48+;}W...ѯ_裏~۷O>eld04M7Zm޽5gS3 ӧO[lO?,񉌌Tʖ#Y(!::ZD>h xҺuO?*RT.oٲ].֌3,QTjZDΞ={A)zQFKcG9Ed..D8pŖ*=,WNMLa] Tgǩ$Ѱ)Fk>bffRg탾K"""D$;;Tئ h>43k<gM68N޽Xaxvqưa޽۽{cǖTL:466_SNFFFnͽÇ P%[{ÇEnݺE[Y(ʳ5*EG.8p۷EϯaÆʠǛ7o>}Z!XRFeb)JXdyǻ<v@[,)ߢToc>^Ԧ:;N%^7nhJ1/~GgOyzvٴo>짟~jxxx(?(̚5k֬YKDDdZv…cƌIMM}Ujժwޯa^tsneM(k*;X HQFݾ}e˖~aƍM_~ѥXL]XrzNIwG}4==]ydb*x?M6]reѦ7={u 4k׮YChh{ȑ]vڵk˖-_}ExAUC]xQD`)g!z{۷oDT?0PV%/Hp8$v~:00 >>^D6ol0VZULq/vHeҍmJ*-;;{~ꩧV[2IiEh+VGܹ3111<<\Dm۶e{RҥKp2^yfYUa5|ݻ6lf͚Dž"ߛrubJꉈ|:()Y0=gݪyJ`W^meFuV$T6m<<v??|~~2e￯j]VN+WZ644t ,XjիZ #F 3/r.XCGg;w͞={ǎ5߿_WlѰ20?,\p7om߾رc}4ݻO8qʕujj۷/{ԩӒ%K._]~:bv+ggK.]4&&ܹs}ywVXQh@UR]+K,_D]DEE?1bө3׹s篿#N?{rG:y(/^ i׮J7j^|_?!*؟~ID8Fnnnqqqϋ/1c>>>>>22r̙?{ODT*J:}So*VNYǎ̬W?n*аaC5o޼y̘1JwǏoذ!&&vFAvޭV rsscbb7oެhkhѢ3g>|e˖Ky>-""+/׿ϟDf͚nںu֭[G;WM8@sΝ;fڬlA[dG^z]rSDΜ93gΜ۷^ݽ, 9UjuXXK/ԦMG}TDܹf͚ӧ/[u/7fϞ-"o񆗗dffܹ7_mnL;O駟'MTR5Fe0ǏߠApɓ'Jffy͛{{{6,$$$ zJ[o˦+i45qww۷+bccM lْݣGSɔ("AAA+ 6-cpy6[ЎF#١iӦN޽ GrQ2ܱ?o߾-"~~~ 6T9yӧ kڅ 3&55OOVZW_5&6ѨYl%EU*7Ӕn XbŮ]^Zn]7_6F<#k0-)b} (6u$;ۓ}||z-H=C_~~Qn߾ݲe?qƦ֯_?z袉Vhh{ȑ]vڵk˖-_}UY"֯_s Ӽy&M?~<..n̘1z^y|Li9o*k1gԂV6WggqxDGG˽0j}Ν;Ed۶mD~\(ҬYFD֮][PPll.E߬hZb*#"M9w$QH6uVI +gG$HqW>>>=GVۡϟOHrrr}IDJ9_oժ(Sw܃ؒZЦF#ݷo;v^W2OS:jwGrqqwZS:T$5kHZZ͛7͗'%%رhyPz򤸩nj+WT-g.O\p"k֬&"?RRRkQFնiFDV\i,_\D6mj>`RRyj[ЦF#Y7c}v%111"RƎ䴗.]&?J|Q*0Hqmڴ0QQQn~~~||=<< 3LKK6m.]W5k&"[lIII)&3fh48t萒negg޽{ܸq;v_ C={jE(Kؿ[o=>eŨ([7222&MD/%%eᮮ]6bkGoL4IYPPvyСC})$$5;;/)΅;Zi&Osg}+;;;77~'N2eEyѸg]ժjDƍ3BDDŋӻvZ^=I^z;TE/;vazH/̰Ivx e+Rl/X`ժUWj71BhؿknܸqƍO<ĨQ̙SaeS Z(v${ឞJ׶mۉ'Wgsj?~|lٲ+W*ӧ{W:T$ʠAt:ݢEu6nܸ4ݻO8qʕujj۷/OԩSgÆ ,طo˗/\ ŽG{YdɎ;.\poo>}~zgխ[C%y7{K:t(==+88822u특s֫Woڵ׮]޽I֭[Wek Z(6u$[|wgޱcGFFFF׿Uy\)**vK._GC322XgJBDcDD]s7עdٯVzoCHUM/N(_ +Tkyy*pPrYs\Z-ɓ[5U#F(5n )Brr'OƍsK)tU2CIL$(V b md)?䨒܉' C@5ڣGBs?qr\+WjmPGEO>yhQkZTy+^}u-Ϟ͘6FמzꚿK;6o."xs:=}d7?uǩO͂&ܽϘ~۔?` )ߙ5h0\}bڵ?[EN:"{-(Cΐ!.晡]SR ><_ooW~޼yRXW_ek9v&(HV9wJoZnݔ.^yf(DyF?EQ̙91]Uү7nWS"rEaO? .]ʜ1CD\uuKjZN*(,x<=U_wmYIs -^gȖ-WWyM7yQUn͚Y#"ڗ^:=fg.߹|aT~9996mYfW_U..Oq{ܹouvvQc=֤I///¦`{3 knӦ_5pӧ]TV-N׸qc+%SRRz}NNFjРA&8?@P@Q[=zTAVϤt=n z!Ug綞y0JA:QUDP &w\d@l_?|#뮻K/8qbii qEҹ禦M+]QX;zFރf ?Y&1rdqHzO_l_֮1HĹ={;/Z2~/z֮][YYcեR{||2"/0GtYzkL&}۷[n^mmm˖-u֧zjĉzj?߸qcl6[[[[[[[op ^ذaC暚5k֌;N:)z7̙3iҤk8N88uKtSw'R/Èش){v}뭶>cڛ9މϚ5'/*LK.n(~Wz-%=z$ .?~ȑ#xYv5cG{ED׾vL&{1`A7LFDkk+r, uuufo>VXѾ D.O_G={iK8tҥPv֭d2 /VXga:K.ŋ/Zh͚5f͚;wnN0hW-\زdɱ)]v?iZ//^|]iicD̝eƴLڕ[%^B@'x Əׯ/\"k!?/vݙZ[pvIII8<}M#r Ql%~sVz9~?pǎِ ٳNɓB>`.'hԉD3q8m_t}_sw4E v] eX^:Ƽy^__w:z A)6m:#ZP{0a_~?!?_k=Νcǎ?xV2ztYgM+:gDIIL\4yr'{,SYyQ߬4|K""sI*/Ou(cGD̙s#Lٵ#ՖHİa銊)SoR' 27F[Ёƍ7nܸ{o-z饗^z3f7nʔ)CM$oJ:͛3vn۶p|EuZc:w?%pji]uvWuuP?ϯ꣏>OѣǕW^YQQqiyVmЯ^jݺ%KN|n?Q/߻vuŅ|ݘOOޖ?gCٝ6nyW\>>A+ ;_}lll\hѕW^{yo&iܸȬXYOS8e4H|Ԉ> .Z__ɢLfuuuv?X\jv˖-/aÆ'?ygϞ !qtˌ>;w//뗼NG٫Z 8}z_u#?A?Om[gv?Ӎ7~?ho4`@ v>PpmFt:}饗>#/ڧO͛7w}^xaaL鷿()57͜4ٚܞ*a.+\׿g#]bņ 655]vɒ%"-=w֮]㏷4֭;6cƌ7oƍ{}oʕ-8qV 3ロ1?h7KƎ_ [Z;.L̙fE:kVdΜ;_oN5gμ9/;4dI.oo_|Ԁ'y9szju-}vm䓻x׊N"b7ogGgӦ=ۃ 뮦Gͼ^6|x[[qy=3j (//idr̘1C-++Ktl_|U3fѧzjiii2Lݻw?3'N~d*袋.w5N'38c_O>.;S [rZ8N$jkk#"ej+[4sK߾}w't~:pʤIFQYYϷwԞv?!!q@CBst h 8 !!q@CB8 "Ҧso߾6m:̑lvΝݺu3` 6` 6gp.gpuuu ˃Æ 3?'JKKsdCC7` 6` 6cp&imm=N:IJCB8 !!q@C""m [u>jY9@ q@CB8 !!q@CB8 !!q@CB8 !!q@DMh!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CBH͙ ?XVY,x-IENDB`python2-pythondialog-3.3.0/doc/screenshots/calendar.png0000644000175000001440000013031212507731135023146 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxw\SoHFJTq"'ԁ{V{=uYŪV--VqA  *%@qjLRf{=sO|9KII!޴ `vmbKPmDzhM"')FXi([N P%V5_Cj'"Gh?mM܄p.&75jmUsT{]Gu9QH@%rrE?$H[p>* "ţ|&Uv R!J[Y@V|C-tƐҌ)ØA1ӢeH 5)ׄR)؈_uXT]zSҌi}J7ƴ߀yeo KEL+ҢٽhHH.QBY3s x%ш߼Ӄrͣ+C^Y@F-1 74ƔGNBr\r"iQW5#*ÄgHIH]SN4<ݏ^25xԚO4Yf%Yo~[RއFh'_:[/TMCπ(l£.":E&=w/rR1/ԥ~OcjZ!)W\TĴTG9rR|-ԧ:E_y4Li|`߇:<3BV)/W^DԜOي6r׷t9)4J~/I*\&~7 .+)%S^FEռ^~/=,Uk6k9F t?fb9S|?4עs I>=5[)"?IX޾𹨈Ph}Ht(VM|}NF>|{c3HDsz-c RJty}{JPQih-0$gI:5}O? 3tM.j{J*㴩$8,ޓa:m!O_y_˓hސ<I&dAC3ilSo?gkQ2 5: >dhNvtR5] >Mp7ޓC5|OIhׅ~w&gRg1ȉl7>1Y轜Φ/j3?!mϥot RSzN1+wZByDt:!"2}:N˝'M7xD*-#z^@sij++?U6-`?>d#(|i_Cmv|U}>J_*͓г"R"~{$TMM,M8z$&k󤫳6+MI͑ӛ"49EPd#}([^QJfff͕FUDrx:LBQg˽χPH4J~=<"I"%(DYDDC"WxD)iyO7󨻀h6*84YN #M)m)+P<2T)_~HiƼUAy_-.n^RF^ѕcKt?T6шOE^yٛ,z!^Yy}bjb7a·&<ꯔ3u3oiaV!)'ņDJIb[Dt" h uxMW(Vj1[IQGTLC74DE$h>Lv|B~3}ߧwQWޯ(vB"KȉiW+JW#*]jU%L>$|Z.)F)C?OrgjC[Z4Uՠ:"Duhg@!y bp),[b?,2<~ʡźDDɘ1)U,^1iȋXK-)C2݂O׌>̦GtBF?$`?r4Z?&),DDWys}]5>^^դ$?Jta[Jutӈ$rz#'#ò= _y}@CTM9gD3U <҆u( #.Ё(Dۿ_.-,4-,ZDDb9m)1Wgry ^)aʦ1YdGL2J2_*Uk<̧vt($%zOs.K-M'%E}t PORI?poh^JJ ծ]ʱV|_{;ѣպDDirjܚ+nb Ϋ֭QH|Ď!|FjEs(}4EJ*f䬴hއG"3$@>vZa]9< &P/MSɐG2G=-&Oz%j*6ϥlymͧ䰉 $-5˘{|Fh6ѓ|1翗Gr,vؙ3g[֯_/%^zɓ'LMM?. @<9DsA%4hРAT*=ztTT̙3233>]nܾ}֬YCD]t3gϏ9{Cб3$|aɡ m۶EEEiiiݻgϞPOOVn:"߿?OO2}3|#;vD:Ne2… -WvttnڴiljLJ~geeպuӧS͛m۶8qիWH$rtt,O?Vd)(((CZ fϞ="O>e؄=ҥKN:)_i*o۷aÆgϞ-CkH$={mۖ-_\$M6BBB&Nhgggeeս{+V(jҲM63fxeWcڷoD"޸q"3TDzzzʭ?o޼~n¢]vSN-?.[v.ۋDSڵk"e˖1R5N2¢e˖}Yhѕ+W `@/+++==855޽KLL455MJJBɡ\.wuuqϗJBPf``ٳW(==܇>|׷v*!%'&O̾ sݼyW^EnJD<FAAAAAAfoøqvs=ܛd???"3fTիx|baÆ5RT(rqZbbg3 UV B/// q5XLDG.Ꮤv-\0??ŋ/^;w.O>=00PϜ9s֭޽{{;wzY^| c}}}]]ݷo{xxvVR;PΜ9:l]v16ݯvZkժ>}ɓ7o޹s!iҤ F^zEDDODlxk0000::ñ=Zp!=~XeA3f=:888&&&&&VVV?!ʥk׮+W7FGG?yO.\ʕ+###=ztI&/¾dUǎرc*BBBⴴƌSaJ>hժ=O N)ܹs'ٳKOo2Cooe+;S틩__۝lٲm޽;$$$$$ۻC w x+V 0008qDyFZZ{o߾}I|'''oo訨'Oxxx={vV^;kg )7l.99yÆ DȈǏڵ CͣݰaC0%F"䐈ԩSF ںuV͚5-ZdooOD*ׯ^Z&3f֭D$ v# /^Jx咓dD4eWWW6СCOmc"ԩ?PV-"266^~=IY?~<KRr6lأGH0*[r^y׮]k֬߿;˅֭<[eݡ;vɩnݺŅ3MetJjcZddreW˕e2P(\z1+422TcWݺu U<&BM6y[5kV+Jxxxjj*7NC666O>U.!!!D⢲u###ل2D_\2##… Ce9998*5VwdADYYY%^%㚒Ӽ<5tkRСCpppXXؘ1cccc_|ٸqcKtFFFgώ^lkncǎ- 4ŴiӔgW#Jf8h$Er8dm0""(O7.quӦM-[>|’RZQʟi4Çٳرc|󍃃KˆIIIRTGGjii[ @VƍL˛1cFzz͛mmmN>=k,w lg5iӦM?]]]U8,CΝ;ׯ_~ ۇQDP,HX+%XÒ`sP"JOO/-*%%EDC%:eÖ9~8|X<"".2榣#J/_^xHݻw999>ODiii*cW^U[Uûج#G$&&Ӈ#wMJsJtEv6"%"V*CMŒCLƾ2{F2֭ 3fݻw2DrƍySeǿ OND>>>`/fBal;w,^N˗Ν[lA)(slEa)S(+?6|YhQVd2٬Y /TB|󍥥L&7nܯkLKOOwޕWR3f ={ݻ111s)_|%OƎѣ~1##ر\.;w.KE. 6kϏуvͦ(FSڦ=zb87--mժUlNj}j4{P<ɡ]̙sΝ!Cedd(RSN}vPPҥKWZ#kժ\x`>}ϟm۶Ç=zHviؠ_9uҥI&lQS0lll~3gΜ9sF 5idƌ?C1cv~5lؐ=_̙3l\`{><=8rHEEuҥP(ܱc={f͚M6"~~~nnn7([l;w.\^ɓ';w}6liBBBddddd$[̶l""" k+ִiSeep[^~ѱnݺBĤ[n6mt钵u;%:>￯YV&daÆ;wА3gΥK&Mdee/ 5j4|Ç+Otuu=p@׮] %/\|,,,{Vc}}}hٚi˖-Æ !,o[nT_6VI`XVSxy 3gҥK~s=qĴiԙ/$$ٹW^R9UYaC "'۷###y<^%moPzh…D|0!!-??~رU!۲eK݉1%fTٱcu~U_gϞDvɓ D"ԩSkVuVGGG--5k.Zޞ_^Lqqqqqq0 9l}Q.3f I$[nXBD...*{EQdddbb~źuT6K,,,X~iiicǎ}u6mLLLp7C֪U+|Ԕ}T汱?իW{{{ڳgO\\P(\v- TC%"E 62d>W"hDcǎdEyzzmۈhM4ACCUVgϞD$Ϝ9cnnnggWd7omnĉW^-\MlL&ttt[pwq":pO?$Rt"#+c̙5[n}}zΝ[GW^hmmݴi*$y׺uk vM:w |rH4m4" 8qUWXUH&> m۶N:&$$̙3Ț?֭[ըQ#555(((((h֬Y~mrƍ|>???_*FFF BV^z]ta< 6lԨ"e2@1tttV^W_>|x666/^طo\@~``ٳYÇ֮][Qٳ ,`o߾ pww(&*?? xŋs-CjDyf)SJT\reǏ|'MDDK``` >|pllG.\HD?V^~jՊF 4hP=׭[GDׯd:urvvV>cƌѣG?~\;99y{{GGGGEE=yÃٳGy e˖mv!!!!!!:t=|nn筭7o^ڎ;SN?CZx={$"OO?uVGGG--5k.Zޞ_^Θ+P]V \ré|>ȑիWd1clݺܜBa׮]}||Bŋ߶mÇ=jddXڴiNNNcƌٵkװaC_|1g?T!{{]v͙3Ν;C PQhժUK.vZ퍍%T*mܸ… /_C(7|sdeeW׫Wذa hyruٳ[libbҥKEʣڵD"133>} 6]X333*6 qvvիסCTNDJhy"'!9Br!C $@H!9Br!C $@H!9" 3334ht~@$H@cYojjt~@rPMРuVdy^:4JIAAANNZ!hhggg V+$!C $@H!9Br!C $@Ha"hh ArҴiSH$6mڤrj˖-TƍP 5kV׮]Y_|*d1e˖͛76lL&_4j(v={ڱcF{D&"9sfɒ%%OFg/,aMXYf {ڵk?֭kڴi888<.d߾}GPI@JD6l8d4|ޞ>}z̙իW;99ikkS300;o<"ӛ:ulbG("ʀЪU+KK˳gr"gΜ177S)H͛ׯ_֭[[XXknԩW^ŗ/_.MFD!!!'N޽+rrrTxbŊziҤI=ۨ"/.<==---.\ %' KX͛T*eonsvvԩZ8!mȐ! !!!DPٳggΜѣ]]ݷoX_7rȠ䜜/^ٳ'##C޽{{gϞ肂ϟ۷`rM^x!J}}}ǎ[AJm۶DTΎ㩜JK,100Xre D"Ek 9),esJY >>g剩*-[ֶmݻwx{{wAιs/_ׯ_{xxԪU5>ѣ ǏϜ9 nٲeAAA[lIOO';w:uJOOoժUd/^7o^zO|SݺuY ihhhǎO<9`FөSj׮*dիW={(~{Zϝ;WYYY[nuttҪYE븡PZh0d//-[ZZZ6o|ӦM :wJh///KKK6?edd}'&&߿G !|СC7nܘh Oc7:֭['T͛77ooSN ZXXS[nD !##C"T*%4r|ɒ%2lڵXc͛wܹoV__?''g?J}iӦ~]499y޽׮]{X,.((Pş)+++KKb~{~͚5+a/3333q7]r嫯uuu~xǎ;v 2*s _T)755و:@!vjhh(H̦O~L_zuҤI<O"4nx„ OFCժSN@@GΝk֬YPPPF;Y&00ԴlmٲeE"V5,YrvڡؓBkc3 /Q)a[E\G!!!νz:t:?s*kVTt"'!9Br!C $@H!9Br!C $@H!9" '33… h@G%YPP k֬ʨr<##C۷oQB 9v!֭'$𑾾~ kfgg>*rT+.:?*C(::V+$!C $@H!9Br!C $@HJ|Q iZ弚'n^Lh(#CRo?BADY jjFr"A7CJJdt:_g~]!ל5HnDDیA#@UArPR vgher5JQ6/7PUH./Av<\2$hjHZ}7߮\Ϛt%k%Q͂9CN QViӸ)P%@ΟjZSs+5k]n;! +0 :vbWu@@rUjMDT@?^L[ڷ؁̡ƒϵg%'9C^\kr./WQR@ Y[[vRֲi%kRRcA~4@ucffVm_{BB;x$x"T4JeR`2\2HYǵ jWx`[&&i%5&YLPy@u4;sUUd%k߯ITdűqq1WF+šv2O5ٲ7bcc,755^m!@5?BR̐xycA~5pmm1ɡ 7ʿ nݺYޫWC}B 9oSIxid^OJ+w0*%999h@H[ [Vz__Hhggg T $M/2yb"FTM'S$*xt:yhpP?le$g{{~00v.\ DzH{+-jDKu(1(A H0J2 M U!@*5\2;UW>w jM U!Tk.'?x$eNN띖@?IDe˖~|˗/9={VXQ/7obnٲezz~;k֬Oٻwuuucbbx<ڹbbb0iҤWύcǎzk׮]tkP>2l̙%=z޽{===GϜ9>}7BXYYݽ{ag4i…U5sرc!9>k׮ nnnƍkܸqAAAttիW=ٰccc#""X?naa˩P]\\T(Ϙ1ڵkvvv*-ˑKZZZ+_\[[4hРA@ArO,8pV\9uTEy۷o?ws3Czzz+C6l8dOOON* Br '"--5jpyY_LZYY+F {L&#aÆ>cjj\<#SdeLhiiiggprFުU+KK˳gr"gΜ177W*n޼޶m[ ;;'^zpJJL||ի6mڿ=Y,S9رH$rppPT(9,yyyy{~Zn=}z#vT˗DiӦQHHĉ쬬wbŊEN:TȂ4ܐH$ׯ_֭-,,ڵk7u(BesJ'.]m&cu֭_!]]]oܸRoddd``8Oi 2d۶m!!!:u MHH3gN5ǭ[ǫQFjjjPPPPPЬY[u\IgϞR==܇>|׷vڥ KӍSSSY*ݻDSSܤ$wrX0d2ɓ\BDB077ܹs7oի[On2?? xŋsULupphԨ%&&>{J>7Ξ=`vۀwwwEz)0|X,nذ!4f9gkk˦mذAyFGG>|866ѣG .$Ǐ9sW:t(Ӈ9Dŕ+WXf8~GݿҤID/3>cƌѣG?~Wk6iDKK^zEDDODDlaصkו+W|ƍ77͛7/\mǎDԩS~VZDdll~={Q(V^̕a2l̘1[n577'"PصkWPx'O 63KYr8j(RJYQ<#W0d27M2Օu_~6m~}~hhhǎO<9`VԩSe+ύÇ{{{;99) ]\\ !|֬Y3w\̜9K.ݺu*-,,XЭ[7"5Eq!C CBBEe777"LLLTg7jڴ ݺu WV~D4ydǒCJKFxxxjj*7NfXM5Ӡ]غu=ذw>7> {&T-dɒiӦ?͛o߾ݴiÇ>\·| 8=,CݴioFDE&QQQlcjڶm~F\޽KD<oŅ&$$(onիWadddF---YTiˆ""MlӦӧO܆ܹ?SqBOUU=Wύ{^vb@qJ,k'*$011qqqabcc?ի?(.ga [4""y3 "JOOguQ9(IKKSg {rc$I9LKK{5˽?* vS +6W͸s Kl.?7\\\}733d夤<}4//%>O|M&M͛pV10kZ`k׺w^nͧڹqdeeHl K#""؈Pe7E 7cƌt͛7*~ӳf\ɉ_ 0F{ׯ TYccOE(Q᎒3X/,{K}"FFF* "JOO/pίwekz{{+ga>g|>}c߉"b){7_-{le5NV۹]vDݩ@ 4KOO}P(lݺ5kO==7oŴRѢE "J/d(7i\{ִVZ 4P\RI t !hK.ylYfB ggg+ /\hddԱcG":x8UV*pAʊmذA5/_5cnj޼ 6mܾ}[&5lPG|hӦ i<8rHEEuҥR?7VZtk׮oX"Hƍ/\%E3f̮]޿߯_ g9s|.YAr:[ry͚55k6pdzmٲaÆ'O|-Z/7|ӹsݻw߽{m۶uwwӧgc.U;8֭[>>>W^}effM׮] RL1᧒R!v޽{n__/^!C|rGҸ\eSSS*v)H?o޼7o[իm۶۷o'$$|ڰ#xl|ڼj,>^u[6333*^#a@y8;;СC C$UگM%P))r3@H!9Br!C $@HhP'T~TZ^=z̜9I&hlݻw޽{aaaqqqD4iҤףeː1cDDDP(|ÇO8ӻwo4|K4hL+YreDDP(ܴiӧO?~ʕ;Jү:%%MmmvM6 #&III'O$)Sf͚ٳsb_d  >O> xڵh95 '1c(9JyPd!ɻwAFTNYYYQLLLFF J 95x@.b#D34@@rjҠAvKS111 -- P%tЁ=sQrB5DH@MjժٳgϮ]e2󵵵HK JU@}֬YӾ}uYXX :Ǜ7of"9144={/|~Vf̘ѰaCLFDfffh%*J((^ptuu---DUJ%jzU!T1K.+Z`Z)ϛ7oV\9l0kkkׯ_yyy*}Dgc֬Y/_V.9rȑ#Gر#J5H@}֭|򠠠ϟifȑFT-$>3gΜ9s&>oG#4!9BrJ8̬yWy@#!9‚4P~aaaݻw^XXX\\M4iƍɵk޽Ylll233Ϟ={DPظqcGGǯTKŨӗ_ {t,hPn]GIIcr׌~5jԨ`"pww`;vذaCtٶ'NxAZZZ:u. 9jPPĉse[[[5L&;r䈿TTTff~fƵFP@r_rppĉH }ܹs>>>zsppRS&EEEEEE:t˫o߾y^ڵy%5K9:f9ީ|}}Yf.++k7oTy͛77o6lfƍs-*Xg9s͛7ĉ fff}iݫWǏyj„ 2d>޼y3 /^W_H$~w>\v֭[5s$P^O>U̒Zvm15}||tttvݰaC"jڴݻ{!.]ʵWe˖#G ?-5kּy#FHݻwӧwyST`hKz&&<"2Sھ4//qq5jhʻҥKAAA<{~͛72dE6gݻGDcǎ`؁DԷoy==SFFFc2%{Ӧ Ç vۗq;ݺuٹSNxsUСC:x Y[[oߞQUٳRT.n>**urŽ}VS^N:upA5kR8j?9s2Ά*J,Yb``rJ$77Ad7nј1c4$77aC"j۶-O@DFFF'N4iҝ;wryNNׯ_,5 @}[.7#lѢE@@!CZliiiټyM6 4ܹsZArj¶ "]]H"zQJJ;igEEED`sssMi33c ||\._dL&[vW~y;w."""66688oə={63335r=n޼M6 HT؋/6'SdddH$<"JD)P !9*`dd4i$}}}WWW @HDɓ'O0`9s{[gi䔹wo.[bdݻ 8#Gܹӿ޽{kJg9rŋԩ# g͚srrpAA4i҄ttt\\\fΜIDǏ=Ǜ ӇA^reĈAAAǏvZLL̟9qׯ;ٳArj؋=ڴ~7*JyBFFڷo/p|IlݳnǏ׶ևrr5k4;88 4]ѣUkD$%Ɏ?ND*p-e˖IQFmذiӦzzz...yyy+WT̤$& ?X;:5a„jYKǣΝzƍ߿1cM-[ݻw VZmĢL_1… 9_&ǫruu%Ϡ! [-UP(-Dv޽f͚9rH?%@q\}:^L&:uիWի믿 c[s3QQ5j޿_c=}8H9աڵMnܸcǎ7665kÞ>}nJJɓtnD}رckԨdǎ#s|&MEw:aÆD"JJJڶm7uҥExaV׬Y._\rȑ#GcOO#F5kz{{=xo߾msNN׌ "w9dbb Y͓Vׯ_{zzzzzܜ٠A;v̘1͛={ei߾ʕ+9/^dkYq|N)m۶c>~xǎ;v 26' CP]^xƍ)))ݻw3g Bx{K_,Wж^=^ݺZo塡y9#CU-[.[,888&&&%%%77ʪnnnƜ|РA/^ܵk͛7mll xXVVV:t~SN@@CΝ;5j~x7RRRvmNUg̈Hq*0TxtQ !!!νzb3(^kIEX))r3@H!9Br,8Tǣ0rH!C ,Hv޽{ѤI֯__!J#JիףG3g6i҄LDϟ?oܸ\vݻϚ5}b<{˗###Baƍ+333n|k׮EDDDGG'''|33Ν;hтY٨Qݝ1رcÆ E^K.~~~\ !ח_~YI@,3&""BW>| ޽{s'NMD۷~~~ΝիFL&:t萗W߾}9GXXrϟ?+M;חe\ J۵k7m4oooSS +W 6mzϯ\ұcGT_p322Mݲe˗/]v>''믿NMMEߨ0ΝzʕgffN:56617iܹs!!!7nnѢE~~w}wmn u5mڔuD}qs-@y=}T(kV`*tI"2e +l֬ٞ={:w,%Kp}||tttvݰaC"jڴݻ{!.]Q0l2rHI5kּy#FHݻwU<YҲ[n]t8vXΝ974//qq|~58) #P^oK^ʅј1cˍGIDlsрXfȘ<Μ9Q!a;V93d:udiiIDf;fllܼys"JJJr̷nsvvԩBrI޽c5R9eeeED111QQQDԭ[7S$..۷N:DT8o,X"RzE"J,Yb``rJ$77 H>\r(ѳg8"䄆J$"fbbbps+InnǏޞqdK.5*==nݺӧOl۷ożyի)ɓ'ڵnҤ… q!'5hЀ|R"JKKT̊u֕Æ 2dH^^b unۗ=aennnaaaoo?iҤq]xkDEGG{yyYZZs=P'&&?00o,$ԡCѣG f\ "]]H"zQJJ7clDEED`sssM [.si:\dLvZMy~;w\DDDlllpp~3{lg!9Zjgٳk׮dL|mmm"ѤI]]]5h2JNN~xADCCCNrrrh7nTl?~|\\\Ӫ\4hty[[ׯ__kA&''{xxhkkYF;àAڵkx7!9(ߦMw.7n_:ucǎ28pݺuA *@ʚ0aÇ[juA]MNDyyymƍ߿1cM-F۶m;QhBUE((^ptuu٦v)%gϞuEI'ŲP~޽{͚5;r䈑& 7xNaD}۷>bŊ+VkD;ӈe0rPl޽{|NVfM[[["*u֭[Ddnn^~} !Jo߾mmm[V- }!qqq@1-*CXXD".? FJҥKD˨?#!!A15))̙3D4x` ;eʔ7nXZZ?~u z>>>DdnnεWWP*{6!Sutt (44ŋDԯ_?}@yb}4%JSSSY![ճ ͛7+W6lׯO JsDD޵kWsss]]w;w7665k^KII!ڵ1KTJNBBBVa]|Sg===GQ\իΝ;.ӧoHJtnnn[eDGGGhb(aݺu+:&&&qℏO޽piV'N&"@[??sՋ1WTW[(L+n׮ݴiӼϔΝzʕgffN:5661̙3o޼)Lrٻwܹs|>k1'888ѐ!CΛ7ofŋ>}fõkro\2""B(nڴӧϟ?rJǎR_KȘ6mZvvv˖-/_w5{{:551 ˅YP*9zb__l2rH'Of͚7o>bT{n%ҥKAAA<{~͛72dY ԨQpgݻGDcǎ` $}Λ7M:522ɓ[nTIII'O$)S(={:w,%K!R|||tttvݰaC"jڴݻ{!.]ʵKՑ83w>J#P^%lرߖN:YZZ9hС̐\u9sNN5o\=)Jr9b '1c(9pVΝ#̐155Yf666b]! 55U A-ZlaPPЖ-[Ӊ(##cΝN[jV$4و"={So+E<,} H$DdmmN࣠b vUl߾}&LZl Ddddtĉ˗ANN߿cǎq:DD}[.7#lѢE@@?O?HRP8hРEgRiР;xJx*--So$vPn]\٢E@*/:(5@uCJQQQ?-XܜkeffL&[vm=n޼M6 HXUŋ9LFFD"#"TJDYYYUbCAG*+!" bWnfffdd$=z(%%EOO1sYbC2ɓ'O0`9s8aAAutt\\\fΜIDǏ=ۙ ӇA^reĈAAAǏvZLL̟9qׯ;ٳ\ VZl={vڕ,oWWW>MDZZU&MZ^=|Tj̚zBrU###cqqq۷_pʧH&!8K&?~TZ˖-JFڰaCӦM=<<\\\V\5kִo>//oݺuvvvC}͛كz[)3{\v7nTJ?GAcCYYY&LxaV<5jblzeaUpBrr2q{Nixxׯh*\]]()))$$kamڴ{"q_|ũS:v1233Ji TM((s̚:Â4n޽{͚5;rtaH>aD")v|^`BE… D[o URgϞuEb!SŲ((̚!T*uww}bh֭v{)ER~}w-R4-߼yrJQA[ñ%jz9Y&[X-Psssg((C̚N2ƍǏ HDǎSYח۵k:$ FnӦ ;`G*;q;ӈN%0!ko/M t"R[?ďRŬ/0O,'R455e2ԩS^Z^_U (0ZZZƜO~ɓ'VVV#c֨Qk132رcD4x`2R4iһwW:tf͚SL155MJJ:t萷7uҥE\k7oެ\rذa&&&_>yQ іm5yd4ww۷,X 33h jcg@RRRvmP%*%lu ?W k0IDAT˟:9b"֭[1111yz133f`Muuusss9rD$b&O6N>ݡC*l%999yر?f dWK;wb~UΝ ӧoh vssH$D$ƒ:::>>>{f̥U>BBB{Ŷ*ńQ)⊓JPRRiiРA/^3fH$wppXv22`_Ԭ*3,:uxxxtܹf͚5jر5kՖJݺu/_ީSu BSSv:pz2òڵŋGU~}gjj:| .'3.!@e>#~9 CC@rH!9Br!C "),,޽{ #I&_p۷o_v-""":::99盙uݽEj 833ٳ/_LLL 7vttꫯ> 5jTpp0yxxs0;vlذtϏ,O8:uXYY](r*栠'˗/re2ّ#G2335k6x`7774rbJJѣ̙34i½OqRRRvmbKTJ D*%J˰|>ŊӦMSO dee.744۷Ǭw…XabHrXvʚ~x۶m=ڴiӹsg5eff6rȞ={kSNr劅FǬ,55uݺuM6Vs(C_|sӧ]k׮-?Rbii٭[.]ddd;vL=֖-[F)|l֬YG!Jwޭ*41fe}]ZZ׸q13ϯQFvR|ҥ =`VX~͛21 "ٳg#cro߾c%zzzSNcllܼys"JJJROcǎUtҒ߿|-???ggN:c9hС̐1Ddmmݾ}{ƜCD=)Jr9b '1cƨ|n98!T9X"HԩCDihRtɒ%+WvH$Y&ݸq %Lnn.{SmÆm۶DRx{1GGGd2VxҥÇ7kf^^^lY! 55U A-Ƽl2CCà-[QFFΝ;O:j*ŬHV iE"B( EEE)gdd4nܸŋgiOٷo_FF >,--նjsFFbD%11ǎ Zl_##'N,_ rrr߿g;vȈԷoߺuroh" 駟tttRP(4hТE԰FicnР;xJx111 --SoL#Prv*~,X`nn1%KdkVy%~;w\DDDlllpp~3{*fT̙DG7o|ittMBaddd3q?xmYsJ9##C""???++jSOܡC;zr}B5DTU!m||ׯoooo33<իWUOrrɓ 0gΜ #Gܹsb9rŋԩ# g͚srrsAAutt\\\fΜIDǏ=76455ӧgƕ+WF4~k׮'N~رcϞ=˵kժٳg׮]2vuuD/`El4hty[[ׯ__^addd?>..}K+[hDk֬.U;+888 ׮]Z̊Gm``|ٙd2,Ɏ?ND*;4p*fLl2T:jԨ 64mTOO%//oʕ\k5kִo>//oݺuvvvC}͛كy{( 9*NDlژdeeM0ÇZ:x𠞞gƍ߿?cƌ̏x;Ӈ*߽{XɃ#1תU )Z۷\n .$''S)Ϙ_~MDǏW9JDIII!!!\kgCCC??M6u]$5n/8uTǎ:Ffffy{(Â4Px4޽{͚5;rHiḻD}۷>bŊ+V'͸l&Sv%#-{(Nl{:s\\;D*6l9, ]\\\\\ /\@D9W٤R۷}}}@wWˆH$\n]UN)rsnݺEU7lX˜+*yF唢Dmsbߟ5{@5$99Y".>>>DdnnsssLr KKǏK51f??B G||z KsvvvFCCC/^HDSO/-yD4p@":vʓDݮ];Ŭp!\n``0x`<6mڰx'N;;;ζ2K.ч iP^b=EC&JTVbhhVsŋجY3CCwޅ/l?WV2lԩW^Wޯ*2ZZZXcR1Çw\WWݻwΝ;󍍍g͚v>}RRR&O[YYI$Ǐ۷Ǝ[F n Lv1"s\59!!aڴiGf=zlܸWxcAwgyĉʗ:ר:l޼9009===<44ɰݻw8q;,,l&LU̙+--M6ڵSO=U+@1s+gzA! !@!p!@!p-C.%%%9rȑ#IIIΝI&-\*=:11QD,X0ydt~ؿh'Oܹs駟~w͚5ӧ+ҡC nN hСC͛db ,HJJr|iX6ooO:B}bbs=WZZ*"Z6++k֭w^jU~f}R@E8p|ݻɩ^o߾}JJ;ܦMxwޭZ 4L'NXt{ョ]; NZZZڥKe˖LJJz饗Z}R@cF8pN:_Ž{b˗;O+li۶mDDD޽ ✃֪U zի[l)"۷_zu߾}VX1s̺jИ !Uoݺ5&&W^uԩ\tyݻE'P"00pذa"s:dz뭷<==Ν[wzUTTtIq^fʕ+"Q^rܹ:g!pO>̙33f̸j'Vb|ףG|r@@/(8} O?Hvo֩>Tp˗m۶.kرof``cr̀ou9!!QV3@0suv[oeXvSn%"^\\o<<TlܸQQQ΄edd\p^bEPPڵk ~z//I& &wg#p ͛7JRhbȐ!_|EXX؅ .\`PFQD.\xbS}!Yx+WMRg0&O," VU4*X]z\ٳ"';i۶ݷ~;88GjP(Ӳ-eKHpW;wNi8&  4o޼Nzxٺuk&I<\`r佖XkԡhժU"|СCfff*t"rҥ;wȰa`Cw(&"&ɱl6ש>|G3gLHHHKK9zux>}s?ߴiS8ydIMM}狋\;s;).`zWeƍ7nT˖-5jT˗׭[nݺ U*ǎgŊ'N)!vj]̦`ڶmtjnN h@8B8 CB8 C#6 ܾE|u]HUԩypw`_uȄ ~6<녒D$U "!TU:o/T#ǜR2%"K^\d@m!@U\].hct-FmQ6BDJU+=W2J*zJ{do4l_]11]Te 5Z@cc{:1t+wU犈1c=B7ۄ eբEBuaGұzh|-^|Fwswj*Q2RZA8*{ҭaqH.vFn/[R],]jXPڳ 8p=9333Q8ljΏLF0;{l+m6[QQO=*֭[Wodyͷrߣ*o7A[vfxa1eoIbRl +gee (!bz0""aѪ:{k5! C+KKK^_G Pkl[rչ27X@]pj'b)JlZ7,vww!Cץ07Ԭz`\/Y8oys+l!cVV 1Uu\wܱ|9͹{ٽv))Zr4F Øfc.i.Qe?GιaF4LWSDw䖤48AW4,P\R_2UͅK lJgk?c:^&&y0}\nf,E$SdmhE;l4g !F>o}9\DYmRaY l~#F*=>e8sm+{lW(op{nݖmηNS5xxT#}uaDbP[PU&L;v4U_޴Mj-!a[<ִw/c֭/_>|#h9h̙/7W>\t,Wi/Y2cӦ 땬\Ypbql)OO/KO/۾=0)IXOd2dD* @y97dW5csR+]h<qstC4kjq׮zEEE)5.+(t/\}.~h4xcyՂ=<~Wz{劷 sl+W6n4h4޽{[lQYc/+S,^,\d:s̅ ._\VVf2Zm&MZhѥK___bb0pbi֬N.++S>>>aaaT&''FNҥKNW0aGa0$Fpa]3e~X7oo8럨k֘ìCU*}i;ͦ7nErr{׌J%ݻkw7qq+MY#99966v֭S"A;yl?ydTTT˖-+U^^k׮B˜/rĈeVo9scf;qɓӧO;LǏ4iӦ}͛7/&&gڵ+*qY)G5m~E EY۽~.]f ]~z=q^ٜ91K=wݻpp9S5y[bױc3fT QZZiӦaÆEFF^0,,lܫv ϝ=~LZVEj8pnd JlIII8 U*c =t#t:OOO⯾bTcfΜ[nРA֭+**C0f4)SG &/Ͼe96|BEn+(}%+ަJDnf7uQثv8v TH.K Ko7\iڿjoW=z4666>>^7111cƌqShZ1A礗c)..n޼yl6[nݺuV\\o4Eŋ5YYYJ[GDDiFє9sرcʂǏ+G}T455u߾}"RTTtzNGlǏONN޼yۏ=:sƍ֭9{__;RVfߵkNHެIu4ir5VS-g"4?|o/]9z[ZFyzz;mXӧm+W,1֯_Qh4O?tTTTצTfnMyv|NNΥKJJJVnwϯ Cnjw֭Ed2YVGMxlj&"}_qqVIH$$X<=U11q\JhzB{챬,رѣGx$iVVց._|eV???nzqJӑ cmNNPw.sx4jO<O<}Ǐϝ;wѢEt hc7mN2,)׵VR\|zn C,Z]󐉒Zݻ](|>|aozc*%%=˗[tdbf^h7_YTDn;/WZZ4,=,fkݑf͚ 6d2]x@^@4#G ޵ YY۶59RK+df^]ܥiSKTҼZ )>e˰^Xad0ݦM>kx:cx%KӧOSxxѣnThZRgGu$ÇO4iԩ&M`;GFsѢEzC^TTq.)Sǻ5keHȑ+W[cc~kJ։J%=ǫ*,LrTqa"?M6m_̛x1%%xJ%qƌqs^ +MIIRo 2dȐ!Ν۰aC\\\bbbbbٳ 2f̘pnLs7^t0`RTa<<jmO[lٹsSO=5nܸv 3/>[o6}|T}ΟC{݇{ϰMh?SMǹr^S͛.wu?s^z+>\IW^~^'CYfO+W߿YYY\\SO=ջw>ܵEJE}18`v/8.UT^׮G̻ʕ7{D[ܮ'of322-[֧O'|2668""bGywI 4&lh,jʢEƋN_{^}+~H;_}K_}uK4^HOVگKӧaa}]kv0qJLsT^Ɩmn;Da2~z8}r hLNNw|v={w۶ms^T'OpI%K9s& W^9x`\\܈#* h0@f=wʆ ѽ~ W:kȬYe2g9'Ν[ve4͛jtiҤd޼%/ѽ&f=vl7x: i2kVѼy/&3fv<-͸{wEM6^{i߾F9}t\VԦMed2ݻWRi4e;v26dr> &iCCUJȑM7lP_+VZV^t訨֭[ Zj}}};w>>SL1Sb^XXX8++K4Cun1=:`0TSL1S\Sfjް]CNHIIaPX@8B8 CB8 C"e{$8ۏ@b@8B8 CB8 CB8 CB8 CB8 CB8 CB8!|5C@8 CB8 CB8 CB8 CB8 CB8 CB8 "Zyyv-f-Y("8IENDB`python2-pythondialog-3.3.0/doc/screenshots/gauge.png0000644000175000001440000004115112507731135022467 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~AIDATxyT_U4l*PqAE5jqB4Qg阹$38&,*F#3Q.. *B7wWwAz?')O}ryOb[P}hL8r@򞙘DDDc&^K=!k7!uxOlTM[ݶ^ܱm8pME?/&[x}o+="_.xTkL8LeqNZcX:"bX")0s{{;|(djMV9'tr~IUQ;4cA י\qcE/_LU츁17T[Cih(/aG+{\KX9$RUvh<78*Iq&FDIo*bhO SoæO]n4(V ֪X34+:c[Zi9$ʢ<?/vhP剾l_҉9{za9(>oX;Rkf_htLFx_Q{Ş]qHaQk+켌E1(Y +&5WdQ2(rQ3(-6^TueDSg qW?M x2v蜄qsEu`$8-o`a|$>V/,8j̳cY:.m׾ۋ8L>'"~Y#:sΏdq c sKG[<+'fz،ƞ_+3e|DN)?Z&)opWk*᮪D\Z t&Mr*57}mo,הgث٘UUpV?m~\Uux=;~9.~pl2˝>4urfQ ^ DD|9𚸭(֐DQT yO|Ì^Ʈ?|2Ϛ4mAձxsyFwNƿv[{FUM6wJz>Q8\{zO&y-ƯA5(=^ezIQU'QGu.`j6*z/Ǯk:8;On߸5Fjc8#>^+uqH]4g""vOw@HE?7v?]yqCgW9wN볷qYS"u~DTtǧ΢)wl;#'Ca+_M^9ci:2oOMKrI\Q?--a)^MG:⪖њӫ;8SƮo{:%͙x32Q9xQ:2"Ql/uXfE:oC #beEmFDERW|Ni<QWfiDCDDԹ=ՙ3jj8z.sǔ^lfN*߇>TwkόHe{5 ;oM8j][3qݺyަfLd2{̰)ClǾۋ=12w XU^,lˆO-]甾`3-8K^OG:`d_^yhx=7GA9(J7e}^ƈDσhn8y%0m7(ۋ\7Nhܲ4*]5R[l;>U6..*ymqD] du o>cfݒY0ї ]};?n׬N*2g]fK"`UVr'Nv~O4ămQzߨyE1 s |l#"O*zqɘ3it-IdOoĶqkkjunĂ@O+1O7߾ۈ:rLd̪z{ֻ~#Z.EIYR(ΥM27ӫ+bD" #4&{ AXqDg KtwGe̹%1([I?Y~{5u[fOxjpSuCr-_./6]|ym|{~^%8( %T7nY:~_/T/ L Mte/[xZ;eQo LkL)筴93*+bcLG:σhĩrZ;x=/ZKĂ ;q^ƽ<0^og:~4ԫ{=fgK""+*)of2upv6cW6w] Bc'+ƿ:6w=%GƑqda0%MMDT}5׻ ]$##2= xDDoZ NėK⫥16y5|a8ewHe6g5tZ([S7EwyP uN%J6im@86nKEm&j3qw*[|N#YK|!s"nTD*Lܑ㔆8uqO[gbm&Hu0=צx=2ј'KqZû|R1.ՙ RfZD6aL]KgbF]5^MGct{%>Y?k $V^ÇX䂘?M4":;̽m;$o)mmՙ#nb2.4qv2ܖ[d.30s]L<<؆norrq|8%bjA*#m?i޺guIe*wh̼'}[$?{σlWR|eF{ZmZn? [80&$cX" QgSq]Ky6 ]x/`$CB8 !!q@CBLYت%{Ї#Pr 8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!BS-_d1cL Gpx^]JEDg k7!-q7fϮZ("v٥K_zDŽg!5뻟~kܳ8zJ%{z9Y\1}ֽܸn0%>!{ѼΩlB73 C讦kv׿o|㍢s+9c}ICC++*`:~|kcc2"+W 7Mo[!'fϮ/n].Yg>Xd֬^ ~7XmE/X`$u䟖O3&1n\qG]jU׿7n駻ߨ?KWVV_z7mּRbo`m>xeĘQm{6dT*x䑊/]%YVH0 2[`s_̙w1KZZG>򑺉[_\%1jTÆg#{)5ثI-ngTw{K.xՎ;y˖75%2cǶN8y:&?v>>>>dyDg./yAo|}U.^\Ԕ(/Ovk 3cU>>qZc%tb̘3wmynjJΟ_hQodwC>k9mK;RւOa)tiҥŏ>Zqywء-zz[o?А\gګr~MW_=|Yk}׬)Gֆ]hh<}Ҥ^*_,mmMwL&/>3&+t:S]DZ .XPMVxېEJ!S .,HW/;J/.9)S*rf57'V,Z'9gM^Ha7Tgg(fѣV{6>H _oz\d8jTۄ &>?]ӹs5%%ѣSCt[75wU+1cRS6رd KV.,*VmoO{:2gNU]C6z8 ҹm~on\?Sk? fzoUc'@_ӧ>U3e7TĚ5>Zq1KY_|[fG]w1u55W]52*VE_vk k{䑊3f= Jgg߿su$AAA&w`evkFj['E?hEs/5-ӧS*"//}>kkK̘Qw1uT򦛆f57'~;~;:5ޒoK#3tiu;RD,^\3?ܲ'?vL}}z@Czm&a{bŊ89sR9OztXHz<{<0s5S4=Dy6_x4)6 Ɋ Jw\ݖ1%1lX{7ϛWMMyٌ:ᄵÇEġ6bi.t&SAhQIcc<N{gr'vpiÇx_rDDd2Se vku9|xq%QP>餵W\Q};p=3x7(Z Jӑ;EOboMߑ""{gI'wߦ! xO#/,l!]ii,YR^zEW_=3OYZ߲ea bΜz睎پfׁ]vi͞VlYwkĉ-gnI;uF:>+*+K7~53#bڴ8loO̟_z:׋sC][?;>~͹<}Y;ʬ{?o iϕaN3} ,YGe~JC_mƏo?~Mccr҇ȆA:Ro3]dZZC^ݴ&~t> J_֖x_,#fάs-]?srA2th{~# >rdKG3ϔ|pcҊIyfdanL?ff宗eǴ75ulU\3|:R*ϛ#ED#6f'8z|~g6?l%!1n6~XonNBiooW@N:H&31xp}},4Yo]x>ջ޲UmyL˚61J`ʔ+0ZtiL89=4(W;:sfN;JJ2--.qݟml\yyzmٙ8l]!8昺ܑ"[[紷7hP#"FhVmʗTTgά9v͚K_xK3d;+8,-𝟲QS30lݷ[$2uAҝ߷ Y'Mkj:۝'oAظIۜ r헹}㍮$8:w`v-zhs^<{ ]eY7Eu{f޼y'xaV:-*YڱI W ^ٔ7 YSfM=bÆәg9eTV,ZM7KhhHfe͟_6 _\ܵ$i ۈqo]:湩)%Źj,.ɼWe? ^Qo3wh2UU]%E{?kj ohܜfZ=Tfyw&v ضC`ɛnF=P[oRܘwLu/. ]%1x51P{eS` tpð|KΛWӟ_;_v;&yS_g{ULiڴ7`:j%ה;D|C^]?uQ#Y$]G.,Y=- {`Μ;kG0ŋ;ڣ1h W8?}ٲ왴 yʯjd7cѢ;p$ mqZ)ЃU oUUOttUU{uuAD<|UUu֚tDXQzG'kvء**ңGV(ˋb#۲If̨_{eSѩi<"|藿QTL$rG6rt|!G kO$bժq Z}M-ͮZQn@yԎ;\ٱdp@[mЇKv~04ܜ!4/$3aBK覦~4*t: 2exWwknNvvVKK"g4|#rɥK;tP>jpO~rm*;Jx"\IJe˖u)̜oy~WD~z/9"{̰5Z{՜; M֐ woS+xꩲd}ikuT /vt:myց:O䑊3!8Ě܍D54$XNr![l3ȗXzuD xO=[ѣG9+fڟWʻﮌ9n&\Yuk:ȝ`J{1e)ὴzu&,H[^];$Eq0meZp܎(߿i(CV8Mvmd ښhnKƩSsΛWښx㍢쪕d~x -Ikt;Iժ w\mI-@>.-^1NGYYfMTP߳@ 2#GqDԩ-MoGke8#yqǶ+[;q[aט\6jC!! 76ѣGr!{{arv=sϭZh]v9#?ѣG珼9眍=ܓ?䓷v[MM{}WVVmGihhXhѢEnogy9ٚp _R ,X`ٿ/>M]v%+̙sW|'N48d0vعsFD&Yb#8bܸquuu<{#OK/"gzN8<"{+b;vm7.o݄l&␭f_,ǍwYgM4餓NJ]wݏ~#~O}*㋈I&'|rKKˬY+#Sqg;"^{gq3<3{˗3Ɯla+uAM<9"~nu%3 .ys9ĉ?K/9C=tyM2e9s}ۯڣ>z„ e˖}3fg>j3/_~ey䑻nvqg?kllqKz}s{3f駟_Y| "b 7xcDx`5jTnȑ## đC^cǎ?ڵk74[nWޞŋ/^|fQD"1x5k}w}***jmm[Ν{QGvfq_򗳹XVV / oÇW_=ԖH$ H$^~ >C=XoݫY---l_~b3Fꫯߍݴr-w0"ok/҈x̙3dȐܖg^gZlYD 2]j7)S̚5k޼y=mڴ܀{7[gqs=/Ο?sύ̙5kwܑH$.z*_+**?n|#u3y/| ͧz?++s̙8qK/wy' y?s>K/_*50x kmm^^o|_5k~S=yp/=;#\|^ZTTL?묳{^"C~;yxG#_DYg/|!~vf\veTN}Ck=;s…&M3x {SUm>U?}_~oF6^{'"_rmv}^xaܹ8,++NEuuuw=d2f7 E_>Exxo_-z5xskhhg> /L<o|י]NfsJ#SNYh'_:{Dwҥr˳o}[?>jlrgeܘ&555Udr֬Yӟ.jժNO~rϛ7SO{o[?o>MMMg}SO=5iҤ%N6mĉw'|s~_}7 u]{׷욨8d{d=~g>ȭh^{EDKKn=7bԩܜ]ƌ(=@---wޣ>뮻|Æ {/Ytܹsc #bN0aΜ9w؈ٳgg2MFCCCta"RI=׿]rfڵ\r<^xandAAA]wo~l+_Wr/詧:Ӟ|l655=]tG_h7|󩧞z-dW|W#裏^ Iwɮ=JRvꫯ.,,\-w㏯ؔo4f̘#Gz+W>_*:a5cƌn^Ux̜93>Gy;KVVV[;iv7geWW{N()))++]ߘLfܹ-+++ rquEu[W7˗}[o{z=yw۱sJחL&/>}?7x_g}X׾C9d֬YO>ڵk:eʔ;o\s5fͺ馛^{T*O~K.k"?|dܹ^{}ݷlٲwC=_|̙EEE>/o644SN=?n/۫[ 'N8mڴMSN9'?}7dȐs9fqq`@$V^Ç'SAϖ/oѣc[o.?\pe]fgʼyN<ӧg4ߘ1c6۷]u ի3C؈T*Fl6ؾCoosͭR]]/}iժUƍ;c7B?7xcIIɸq㚚/_N_rC톏K.y衇.\믧Ϙ1wi'vOB?7?q8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@C"=zI6nŊ&68`dɒ///5j|m6ӧϞ=@>qv3t!ۭEu{f޼y'xYq8 !!q@CB8 " M۟&]y #GCB`ےo-\X%V66& 3C-`N;?tM7Um/xՎ;~zuaSSbĈҴ}E-Y誫F?ښXpժkO+ZUxMU˗EDAAC>ڤ3lx=ULtq/Ջg")_ϖaD'|p_2$!ۘA5o;%֖ݹs+&On>sϖ/^3į=1cǦ k',+(+K{vJ}w zcs~)mɨQm[3~vի #⭷rUZqipaI #֬)[Ǐox`P:55lV 8_9Cgͫ>(-LҔ}رa5׺L̛W}m͚neLLt k8`Ks >c3ndE%ǹhH/ZT;׋Ǐo=}m**r)?qKn=&uVuA?XR4%%]KFcUZ]]vݕeeT*q"b?K\}}JLiZ) 9 Jjk fϮ>3thuR}{./ř̾6}X#lKN:iI'nУ?}#=wiC!8 Vv+WGCB8 !!q@CBmѣrŊfzEZd&LuuuC 1` 6`L+Wqȶj#;0"oMolo[[[[z\ZZ!ۡE 8 !!q@CB8 !!q@CB8 !!q@C"7G^+VCҒ%K6qd:2dll=8vrʀ86rx3?- Mظ 6` 6`mmm=.-- jCҢELlV 8@8 !!q@CB3l0 [ GCB8 !!q@CB8 !!q@CB8 !!q@CBS[ GCB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 " zu\o9r@)k4SIENDB`python2-pythondialog-3.3.0/doc/screenshots/tailbox.png0000644000175000001440000050230012507731135023037 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxyXSG'(Ȧ)*."J+Tl(.V+m-VťUY|A@*@$c `b{0 99Cjjj@ o@ @ ݨ,@ Bn14TRMMiQU%&[ð2ms3y$"V 7 1yr7#54d`KY[?ohhp;XGYLh/ᢦoydUc߅YWG!&JXbYGI+aøF(- @/_3}Ȑ!2]\Md⃁Pp: f&WG89L$pr=1bg;w2kVǘ1bm2aH*}>C ĐF Otu)H4 2@ rɜ9sL?!ca!@T5l2ztKȑleep{IFf\.,^&:xĐFx)Ai B~2d@Joooww{M=7 }֬nRkwww?] SM--d_ǖW]]pa_e߾%ߺjU RSmh9_~DC_V? @ P^^.bŊ" 2A 杨71B%mmw>*JNbG1?̮.6=_J80E!} "؟xV>ދ<(2ӧ*X977l5H4a {{ ]⣣??ѷo))ø\RWfؿ]^͛0JSjD XY&RL&^$'`ї/T:ɓ!ĐAZZ7ojX6r\p9A@  RxLӏ ;d^Qo'kʭ[؏XXzʯZ7: })_?7bL **23ղ ں~ΛOUQV9oILhj[eem@&|g5(:yyCuugS(o8[EWIgj$餠<>>/Ǐ3Yf˳fΞ={֬YNUQ(ѣŷ+,O|M2EEEPPP-Z}L&555Gigg>uTԪe8;wQVVF2G62Whf%%%###[[[GG9sYE 1iҤ}mݺgΟ?RQQDTVV?uuu,K__ƌ|򉽽\PP_PPP]]  1]  _e6#GՇ'w,ϓCkk뎎G6Mt(|vvu:;;o޼OLL?83h R[[{k׮EFF.X@6bH4=ZPP_)111 [dllÇhri+ ./booŋX\.ӧ}{EW 1`Y"Ffoٲ%))?󡡡V-)ޣ033{_53[Do!!!l6K~zAAɼtR޸x{&V*v+ mU+ttteddhjjoܸ˗uvvN4)==:33ʪ{o߾%,FPN8ʌ [[[y榦&و!011YvmXXXbbbnnnVVVxx=tPNNX[[ q…Ҩ>wL \vjĐ+222*++ ~˗7l؀Vܹs\]]}ݺuHf9IIId2'55N&$$رcG_$[ZZ I9R555%fd.\pA6=k֬˗/M6ɧJJJӧO x*qb`e}7m2S:pvvhzzzY4'OtwwWT_?~ĉVbXQQQƾlnnVVV5j`ܸqQQQc2{%&9744\~=sL&gi!8}@9sf͚`aÆ!vj̗\A&uuuuuu,X`kk'&%Μ9RWWG23L&o6n܈ ;G_ Bh"@AAAn;P8}z52^:r)22RA++++++___ O2?Uv^:PUUI|6AL>`dsp,,,,,,MRSS۱c;ңdr:ٳG脄/ <}F;wnƌs8܌+VRRRė`|ӦM DŽ[tΝ ~myygnܸ1t7nnVX(b?&MBիWgggWTTTTTř_60k,]]]6 {nwwaETXHbbbPPYhQZZZEEN/..>z6,KJJJ233d͛ť)ReeP%%Ǐ2 &@ǏTJ ЫÐ!C0׫Wu}DK477 d6vPȌ 9׉43Jvtthjjɓ'þA8. ֮])[ZZ9sFx%.\֦ﰊ9t1XՕ`<qꭩSfi!FFFVVV/_OSSS\Bnkk{ `0bbbG$bаi&n:Zrexx Хęl rl]_]]}ٲep^''!C񜕕9DZx1\|lmm_ \\\>7[f|}}׮] _f̘0nSX\_1:,l6ԩSFFF 2{H 7Td2?'Bf8pGEGGC_y ,dccc15Ef2̸aSpɹsYjծ]/^tk0OJJ޽{m?}JJJzi9~ 7n8ss󒒒`"##߾}1L8}q`T*\{ڷop>|8̲)۷o)^MY ,3.E >oHܑ[z2B6:i W#pQRDKe49{.ߤ:::^z5==.ȶ$ܡN2Ewvv:;;o߾սcccWZ&)ޙ+W544h4Zpp0@__lY6|Y.U22_Lɓr1$ Ƴgd09${}6J{˗/O8q˗/J)SS{ݶѣG;N )Te&u VĤמq& CAA=Ba2999#-Bp6>̙3~=CBBBBBS'9a0/_~7ob辸tRpW2Kpo ȦR)3.E6---OOOXt/_ ݼy;w7KN677_kk븸ׯ_>625̸q;`ig /xEi7{+?!!8 R[?dɿp82TCCv6$$ojjj111nݪ"ɓ'O5j,jQ1b!ٳ'99jڴi\.Wq! /p[ZZ &`_ݸqc֭b… =zM߿ .``# nHDaEC7f̘!yHNNNCCÈ#Z[[߿)%.MDDŲ={{yA"4_x_+/_~I```IIIaa!tJ"/hAGGx Nh44l1c/_,2Bu!]]]^^^ǏrJwbk<'ueDpLP<==cbbrss>|oY[[C'bĐ^i Cs8B"Ȼ6ld2Dj(Y2Bu}"ܧZAΞ=`P6br X)))~Rf7-J bHg㓓3vؘ544H7;;[-H*W,X@l +aPPP044ٳNJ|X!SxzG[[[ؗd144p? zo y=?d.\`2cǎ!T(22_LӧO& .o y2 {"k; t:Fh4GҒCPLkAUUNQQQ# Fd.*NҞ꿀,^kii 777 Vb!_aii c]|?F7++4..nK7?p{;q(sBB< l6BL b2S>& [VMeq%sϸpµkTTT"""! Q 477 pVX)!*E7uTNmߺ!!jCFN!>0/hffgeǏﳭYGnn.N}J͛D!!!,'Ј,r.Mv(3.E0 СC%>! K6[nɒ%K,?Dq<8q"8uԜ6=jԨwF(Y,VPPr}}= *3.d0,kϸ꿀,&̙=V)mmmw 6t:?d2aSQQ}v1p7޻wOOO_UTT|oΝ_^KK.!WTT_]]]]Wuuu6lHLLO< ]\\~ .1;x葍޽{+++ FqqK-Zw0hٳg8q"++>?Yjjjnݺp8'Nn6,p51%% [[!Cx8p8III^^^lLLL D[1mnn޿?\w@2^tFFF^t %?~,N f7DWX\n+κ͛7ϟ8rBx uuueee ϣMpW^ !.++---/_0YJ`0HRD"l v \.?#[v?"##tzgggGGN?tPPP k0'Zl6<>3E42FFF0QRRҚ5kۻKKK;:'3dbjX,y`)DCtַ}u꿀444@/ŕBoss+W^~͛7oTTTp8&&&.~|}}>|t1uuz===߫W}n1iii=}QCC#<<ӧPfٳgq•3INN}…#.1W---3H۷ U_ nDD8.l6F( v̙ǎ~ܹs'#77'O s++sm߾ѣGʪmmm]ͭo .[骪0nGLfrϞ= {**.M^"` V^=tPgvvvvA)((H kll }P(؍M=}ND42ytwwT*JJ*֭[S\r944[^Nt1DDߊ# qO޽ ;s޼y$㥤lܸ& ζPXXA_3fܹsŗY$&&VWWkhh`H ^MR"` o߾}{7nʕ7oVRRAijj>|<鍍<OCCc/ϰkf NsuRæRpOD72۷;;;_p!++fϘ1kCE罏DGYt@=a>\v!$$$lٲE___ {{/^|RF jJJJ~FFDo>^5366vٳfV+: bcc=zvCt )S o6odȑ#ݧNZlgΝ999HFrUܬddddkk8gΜ>bWtttpp(}Wrb7HMMh``Tתї'w,ϓCkk뎎G6Mt(|vvu:;;o޼OLL?83h R[[{k׮EFF.X@6bH4=ZPP_)111RnQWW733<=|&xv nRX\`+)/^x5r>}w߽ ;xaaa__22KȰ-[$%%񧔖?>44tժU¿%ї Xx3g|I4w+ 8C::: 222BBB4557nK:;;'M^]]ieeݽyoW| FP('NxyeeeFF-ڼysSSlĐ^i]6,,,111777+++<<‚:t(''GW˄p{iTccc?.1䊌ʂ}uGaܹS^^n:$sᤤ$2㓚JKKKv1L`ї@/ q---d+WD3C1aKKKnn.4^OOO>ɓ+O8qժU,+**WQQQF7.**j޼yL&3<<|޽=熆ׯ|}}===1gΜd2#""#m1ZOH1553gάYbcc1 250)q:Ya2\7|qF,& U9P( E@ ~C A@Lw8Ŵix<^jjc;v044ܱc@zttt糹\nddԩSkjj?fP\\̟pvvs!e7o$,9q\~/!MM͉'dӒsss K?K.a@&]]] -2e7nx=&J2664i… wޝaDDĦM_`nnnii đ9((M[lܹp4'""bѢEfffSLٴiSuu&ݐq/y)W80vq999>}zc|[؀lB@a ?ɼyGӉ,c>|-^MRYDE0]vM6MelpaE8]`!, 鉥mJL6rݺu}v@Ƣl6;44r׮]iu""+3^b"ӝChqGGk׊'ݴiSrr2BܼybÇx sxxΜ9W\~ o\9ï***ڄWY,2?>tPq \?LgD"ɒ:g/^°`08?}d56ܺukΝ!CTTT޼ysQq_K$I[[D"=ٳgT*ѣG{lcǎ511ڵk-,,8t\9{l|||||m)&O Xzu<AGdKxxxaaayy9NѣGdrtttBBllla|||>}ZTTDΝ;7c 9NnnnFFFYYي+)))`0iӦEEE憇c-seddoٳg7n:t7df7+_1I&EEEXbaawwի+*****/5k.͆kܽ{{ذa"*,$111((,Z(--N=zT[[Ie%%%%d2yV22_LAJJ ÉyyyyyhhǏ{ׄ E*їm6Lpp0r322>+***---..9sF5%99/_,--ݵkLaJ.%̸@C&T*CSS0yd7rڵkdKK3g$… ڔV1#Fx+Vr8lQ#G ?Mƚ-JNYy{{|O?MMMs ͛7uqrr.M6q8u)N\2<<[?VSSZB6MP8뫫/[ . 4duuu8277'H//s^^ם˟fpڵkxbƌ1ECި8f=<|8 bkkwބa4F_;vboo 3SN988(((hhh޽ݿ_V'%D/h1ؑFrpp^$ zl/ F1 )/kkk.(N;w=;MKKK0'> g̘իW3^'?oK ¥N19 LLLh/_޷oߐ!Cm&\.ߟ`XYY:tHf:m= G )#j(؏##GD0d~ʟ>c Y +J] VX`%L&PYYcq`%>xKL&80T*=۷Om>Wfٔsuu۷ ȬR"f tuuΛc]]]}֠9x`@@rSSӥKl2k֬9s愆i110LS@[ +Ο066L x?@; Ȍ4aooݻw&իp@%%%{L"pCLׯ_}SWW]j^[[xgW\wwwРh]OOB %**JRb~Xt1&L+͛~ŋ>0֭[g͚vITͱc>|oOY?>33db_a#iL:UKKyׯ={YF a?VL *++7Nef7).!O<_}_X[[3&)) rΝ]]]q.82˦Ϟ=r'8"JXf\拘)1/_~7ob辸tR+pIs|2K@o ȦR)3.E6---OOOXt/_ ݼy;w7k0@ 7#Oؒ:ɬxAC&ЫƆ?JII>>&&֭[UUUd2yFE- FL1W1d={$''s8wz^M6-113.TUUY_~%<"38KK?a7nlݺUL}YpGi4Zyy߿r\ LqdA@ (;(b9^B3fyp0bĈVxFRYDDDX,++ٳg$P)",Abll_bA$2BƢ 4!o`};p"| V"01q?~+Wl};c)$!3B􌉉}ofmm }TTTCz1p pqB"Ȼ6ld2D &Ab;6&&b LӍ\r(aċ (%JcG1(((yStCӍCCC%`,M!<-*Nold~g `7!)/c~N<p K܏_[ggb2K .0̱cxk *Eq/bӧBǦVC&aOumxG_Nh4&c? &h_Xag, iw@ B .d19^ ZZZaT"\XX50 KKKxt4M===YYYqqq{B.])?焄xol pd~}%L&322:;;˃k-y\pڵk***ؐ/<,RUXX(~rea(UE/Sv"&4//?d KD Q;DGGÑ/hffgeǏﳭwp֑KHB|y)kHH 4b2K{zz`` HRD"f  #&&0tP :Ggg'FG; ֭[dɒ%KdC]] L4K}, v@rB vd194gΜ>wW`]hSv Wt/bLDGG?v<۷o3޸q{~WEEŷF뵴}||rEEE?p\WWaÆD:^__ɓ ?ۛ-XiSGݻ799`_tiѢEp%? #F={'jjj?Ú5k\֭[ WJAAĉ dʔ)Pwۑ2d V$%%yyy}:0111XUypޡL,z)**Fy%؍=~X&An?^1! Vuuu7o̟?O>ȑ# %??ɓ'pՕhoo/<2666mZooo@@177_y)eee0 adR90 }}/eū)Reeݻwé,˽~?nooo''H:A:4i|yW_}cϴî#X4H= MCCг}\\\YYYmm- nnnrׯ߼y͛ŏÇSSS;^__v{UZZ-&--Ob?jhh{yy=} PVV>{8]rp87/\P]q!hiitҥKI$믿BCC_\WW7""BT6 # |;scǎa?ܹzɃ 5wqܹE5 Xd 6PWW߿޽{333mll455X,֘1cvG x<uuu2M'x̢`ƍ999iii{ݿ2^bşIOVƏW ⣏>Hqss;y1:w=zꪬֆmi !v*e< @x}AY'3STTRTTtuuݷoK`L&6ݽ[x"##ݻWSSޮenn>{lWW>Ça6 +]]]cƌ;w2Kj )R\22_L۷?~޽qƭ\rJJJ2>MM͇޾}t:ihh?~ş}vGїp!_Μ93**ɓ'ӦMC(.oH4쐠.v睼k׮A?-[?T_xwJ1qrr*)) z$eovA%%l @ .rssWX1?C+CCC)Q8+T!١@ $HSS=zS>azQ.f@ RݻWRR,o "#n@Wõkע!!|={H{a0FFFWBl6ґ(..'0ݻv;vYnDFr999Ƿ!(++uuuzWSS^@ ! R RϞ=566^p͛@ @ȇ09ܰaÆ P]"@ aP @ M@ &@ @C@ @49D dIll* رcy&$$pݗ.]v.]B),1MP_p톆_|32re7"#vwtt?+ YG+9s&1~x-[n1 2f 6K <}tVVVccܹsnjnn.0b.^PQQb͛eY!̤h卍d2`̙>>>} KHHvӧOnffCPΞ={֬YEGPlllGn?5e@AAͷ~~~3L9rԩSQܹSWW7''GYY@RRR^Jњlmm̙gQ <E*00PN솼!J7g_?y? 555jCwwwUUU]]]++O?tܹW76xuuu޹s|@CHttt%b7p),Ə|??ۿx= mjjjjjziddw}^+`ㅅ|}},k0,#flْğRZZZZZzUV F_c7ޯ7o Loܸ1 P]]]7nϿ[0(.***z;wȑ#;ʺ m ]000 loo߸q˗/nkk4iRzzzuuuffUww͛߾}KX \974B8q畕,kMMMCzabbvڰܬp .{СlBR}}}oݺɓg:;;d7??.1䊌ʂ}uGaܹS^^n:$sᤤ$2㓚JKKKv1hїgٿ˸r[2QaV˗/ ؘX s 8'Ϗ8q"?~?FHB-rvvhzzzY4'OtwwWT_?~ĉVbXQQQƾlnnVVV5j`ܸqQQQc2{%&9744\~=sL&!L% 1ZOH1553gάYbcc1 ݻwH$Rxx3Lן8q+R~xWe 2`[[۠O>50)q:Ya2p7lܸK hmmw(9 ~0l0 ˗&$$XZZmJ===''ӧϟ?۷.]+)#ӝô4caaaaa1m4*؎; w!l.hjj:uT˯Yh355'&&\l2͛7 !zyyy\.&tCwxR->Ԅ c /^,_J\n6w\ҥK31EIuWWWBBB``ELbll<}7޻wO"IR}}}'Mpݻwgdd?ghhi&333;;ׯwtt[ZZB/qd 244n֭433;wnpp0<傷'""bѢEfffSLٴiDNn7$5~\KHo_zucǎ7Л/044Ħe OUUUppMLL͛o>:NLf|%%>whj*"/¦`ڵkڴi?sOOl*f܄ +")xV!Jg̙sʕ7oǕs}}=JMxYb!#CG ¥N1d>{ fgeeDPSS3HƋ/zaX[[Ja0Î=}d56ܺukΝ!CTTT޼ysQq_K$I[[D"=ٳgT*ѣG>O(_~RxWSW)ˌ|0K,uQQQwedd\zUUUHl:bK/ڤZ)?Snn]^^ׯo.***$If"a$0*hhhXd :t({ѣG߿EQ9_dsb2337dL"aąC^vMoSVV1ctyyy]]]c¯***9\9c:/2%Jf ݻw?䓖#Flڴ {k++w\r/ 3EbXxPgo۶mlaիW!tL&th"drtttBBllla|||>}ZTTDΝ;7c 9NnnnFFFYYي+)))`0iӦEEE憇c-seddoٳg7n:t$k7+;?.1I&EEEXbaawwի+*****ÑϚ5KWWf5D~޽=l0Dp-ZVQQAӋ=2˒L2yfoqiT+Etq/ %%<<44TII k„ pq;2)o&J `ۛA"5ٙ2e*EtH`Tpm@\\Bܿ_S@WMTjGG5`ɰo¦vZO̙3R:pB[[*5bb 777WWW-j 8}G ?G@&cCzAӍ_|駟/!~~5ooGx␐+V0L 6M6q8u)N\2<<[TSSZs l6B9pl2`/Ӑ!CxܜD"-^P^^.yyyׯ_wvvC...g-fk׮ 3f̀Gdf7)(vF]]x6q)###B={vdd$BIMM2ܟC;Lqqq!| >p࣏>?}||=e %KG)2de'O‹dUvx [ÇRRRlmmݛ lCkk^'Lp힞۷o;3 G[NQQp Fb~iEEE.\J,&0\_!H ^h4򲶶sNA***py ۆyƌoz*&X܋PPPp>pA4)FxkP|;+lٳ\.:c)2eeɓ' 2gϞI<0d2yϞ=~~~oߦRyyyo޼y'._|e~S) o&JX|'~7@CkpܸqY9n!xGAFZVVo=޵[N䰠`((("P(L&3''g޼yk?ZZZC(fgUWW؜9sF` <$$$$$?@,ޜG0fpqqW?Ļ6ϢEBBB>rI$ґ#Gdree%uFb> gXr2F/^@HIIyoׯ__ ZVUU XXXX,b|||rrrƎӟly_FFF.9`0ł 9PCz1؝Ř7#JBxٳgN766 C􎶶/4M:u QE7 j솤VKJ 9p? :. /:p+!&p;v, ),ȠRD"f >}*0d0p)01d2D{$їl4F؏Wې^B"5hff4/Y0Tmmmkk+;H,gڭ>|0brĵ 6믰 𢎥%xet&~L__߬,SSӸ=!.] ߔ}CC`nbsBB<}l6oW d~}%L&322jXXa111P4pµkTTT"""!#jnnXB+,,?@90h(UE/Sv"&4//  o_ Q;DGGh4/hffǏﳭ#77N>̓S֐a3*dR9f?HRD"f  FFF S*AA81їlXnݒ%K,Y"_"Z-ۆ*Ax#hMM%l ^z:8l0,"+j7yzbr9s]?mpN}}} 5?d2}yTTTl߾]Lj6q{믊okiiuww׷r?uʹnÆ t:ɓ'AAA08@_oU Jb}SGGG(3@YYٳ8tʙ$''''' dpPq+K.]tI D"m߾]ப#G/T*^EE.b|7HMMe0BiXX3g9{.k#H</%%eƍ0ɓF~z}}ݻd29"""**իl6-(((""‘*gNMM jjj՝;wſV[GVYYҢ5uTwwwqZ4JcT*L&9ӳO;wJ2!Cyyy~{ƍr͛7GFSSÇo~NollxǏ_xg}]3Kl%mt:yxxH$.R&zB58'>}ZC #Q#޿]x@; @GG'**ŋ0Zo8_3.v睼k׮A?-[?T_xwJ1qrr*)) z$eovA%%l X~;w ?`rssWX1?C+CCC)Q8+T!!]B  ,=ԩS{}0({A2Хsڵhf@-pϞ=vvv0Tss={ 6 }$uP\\ Ϸ >`w5vX$2 .rsrrTUU!Cp+511QVV622zUoo˗!@ Ar+ wDR={V[[kllp͛7#@ araÆ 6D @ >HP!T@ @C@ @!@ @ @ @ MYkhhhggB>9v옡 |,\CzKݥKP{@ KLS>ܾ}_|!; h7RSSW\9~xLLLP!KYG+9s&1~x-[n1 2f 6K <}tVVVccܹsnjnn.0b.^PQQb͛e FidffhF2l``0sL >%$$\vӧÇ733sttP(rbcckkkgϞ=k,d( ` W'`L(((Vܾ}~&ɚ#Gsww:u*jղQ;w(++##HJJիWi4Zss9s,G_W_ʉH@}HMMb``E"zrx<9~dt:Naaaggg[͛#93LPPPP(/_vZdd d#JѣRYYYYY .1:::֯_OR:*榫+Fnff'ccc>|@ ^]t:::WkǏ_xk655555=}422{/Cve5ea[lIJJO)-----=|hhUKJ/^7n믿/^|Bv+ C::: 222BBB4557nK:;;'M^]]ieeݽyoW| FP('NxyeeeFF-ڼysSSlĐ^i]6,,,111777+++<<‚:t(''G-[PTEEE__[n=y$--ٳd2Y?~ll,2=*.q!WdddTVV˗/ǿl; {Νruuu!Ç'%%dT:^ZZcǎ2}yzzkii)*mRVVXr%J>LhN<"?~ĉWZb>}ܬ5j(q㢢͛d2KL snhh~:9::z̙L&3""bϞ=CqiSS9s̚5-66sܽ{IDAT7--D";;;D}}'"G_Waq5~\K ʺ , ȈOPgΜxyy#& }77nmlllllZ[[띣/ "p*(( 6 )BnC AE!qdsp,,,,,,MRSS۱c;ңdr:ٳG脄/ <}F;wnƌs8܌+VRRRė`|ӦM DŽ[tΝ ~myygnܸ1t7nnVw6~\b?&MBիWgggWTTTTTř_60k,]]]6 {nwwaETXHbbbPPYhQZZZEEN/..>z6,KJJJ233d͛ť)ReeP%%Ǐ2 &@ǏؑIi%'^a,S0pW \}zm۶a Xʕ+WFFF~gEEE3g[*ч=MTjGG5`ɰo۵kٿ3g[… mmmJJJC׈#x<ފ+\]]9)%"r9r$PSS#6knn+ :ndddllleeO?455 uuk׮y{{?zuwwXdJa444lڴ[Hq`ʕ...t l rl]_]]}ٲep^''!C񜕕9DZx1\|lmm_ H\\\O+l6;<<vZ̘1a 4~\b?uuuXlǩS eّ %55ndr0Ņ6l6>(::}||=e %K)2de'OΝ;ȪUvx [ÇxRRRlmmݛ lCK~[zX٘wv4dJ4`kພfHH= 44T Cч=Mat,E"Aq4`NyY[[KvAtw}عs'T$札KKK0'> g̘ի`q/CAA7%xfه7oJ'NP(EEE r աCdS֓p NTqXSGNQ_ G#G4 D laa! 駟Ϙ1Cv¾0/XlA᝽qJ|C%3L88}q`T7onÇ>Y6\]]}>«)2ee]]]BWWW5(q<tҥ-[̚5kΜ9}Z iH%l 0@W KC=DJdˆMo `tч=9{.ߤ:::^z5==ȶ$|cϔ)S{Icc;;;ocޱVkkkY[[ʕ+4-88L&+))((@P$%Ec„ ^xo޼.^yutt"##eeeOOׯ_qqqWͱc>|oނ ,ϟ?YYYd2[C:uVssիׯ_?{l33o~2  <yWC/z̘1555IIIX;wsY~~>@__Y6|Y.}U22_Lɓru Ƴg$L2g??۷oSԼ7o޼|ĉ/_|2K~[5a  iCҐe+Ҡ6m aϠCFÂޞB0̜y.iii $ugUWW؜9sF` @HHHHH X9wL eV---SSSh?cC]]=44t۶m_5ӧ/[l͚5ꆥ?KBXflvA_@GanxŐs0g,6\x00`s˗/?}͛7yt_\t8Wau,m ±-8\"Jy̸1SW f(<==aѽ|2...,,vwHJ/oo%:Raef 4!ziȬ`i`!"5-g0"!jO!CRRRD1OR:FN:::>󒒒ɓ'0솆,  H(zT1qrVSSuVUUL|~O***p!8p88n ڰatrr%dyImm- <& [5Dll@8.\v횊JDD46d`WKq(YV ᐉRY:u*l'aB?nxbHi7'::־X?~϶ZSS#<8\:4Λ7NYCBBXOYJpi+EDq/b`۽1`2tP :Ggg'FG; ֭[dɒ%K$Xo%96JC=PWWK?[^#KYL3gN+ hSv Wt/LDGG?㊊۷foܸ޽{zzz#p|ZZZ>>>p bOr۰aCbb"NIPP NL.1;x葍޽{+++ FqqK-Zw0nڴIEEipŋ.\Yoxى'4e;H2~$%%yyy  &&y477߿#CRYSTT022ҥK_|֭[x  beYWWy`?ǎ9BP=<<|0555((رczzz;agW^-Z$ӧO544ý>}e(++={V.\9s8dL.\(|Đ^i\tҥK$i9_~R***===pao!,Fjj*͆J9scǰw܉9ދ`c޽[8nǹsZ[[-Z4j(dl{fffhjjvuuX1cڵ TRR~oaAB/- N VaE.ҐR+U.\cǎ~W^UWWǮsqqO'wޅ۟y7oDx)))7n'O5juuuwg"QQQW^dnnnAAA@T={vjjjhhhVVVSSܹso.GsOO|>%$$O999_B7]ٳEEE]]]NNNT*UWsqqP(YYYuuuӧO3(dUtQQQQQQ111UUUzI@aÆںv/~Add{jjj۵gϞڧwuu=|0;F@a}||`~k̘1s_fX]]] 1x5EJKf\拀)־}ݻ6nܸ+Wn޼YIIIէ۷o?xN766x< /^>[#66t:N<<<$}Xo%VWiI/r̙QQQOaQ.f@ RݻWRR,o "#n@ϵkע!!|={T{a0FFFWBl6t2erBqq1<޵kرcuttr 22QUU@ ĤGYYȨիW/_F @ EPPJ}Ymmmoo… 7oތ@ BD> 6l؀@ @ @ @ hr@ @ 49D @ "@ !!Kbcc PQ'ǎ3446!! ~HtRtjQaA_d7:Zimm̙3猌mѴߺu+==`P(1c888lذ^)LeeӧuttΝuVsss=guń 7o޼-[R )FNNNff&F+//oll$3g񱰰Wx<^BBµkמ>}<|p333GGG "/66vٳfBvJBF-]aq5~kʔ)***o͸q:;;{ɓ?#L& 0 D2x#:::88X|@sO!aOJJիWi4Zss9s߯cX3fO|_?񼽽CBB"#>Hd=9sgy6؏l6N?#,,Qu񍢢7o###ϟ/$d2=<&^]t:::WkǏ_x͛7n/aŠ.@ŋh$#Uѳ-[$%%񧔖?>44tժUol,X_O n dJI'yC::: 222BBB4557nK:;;'M^]]ieeݽyoW| FP('NxyeeeFF-ڼysSSlĐ^i]6,,,111777+++<<‚:t(''G-[PTEEE__[n=y$--ٳd2Y?~ll,2=*.q!?|Ζ!ŕEEf4сeg,--qAzÇdOjj*N/--MHHرcG .|*22YYY9**jԨQqEEE͛7dݻpu'&stt̙3LfDD4Đji>}Z tΜ9fjkk\}wMKK#H0Q__ĉHnUX\/_`ii Sඡkhh(j]MM!; Ed\1TPP6l89GRGd2ofƍXM@@@kk+^:r)22RA=++++++___uuub9+++c^***6q8 iӦxTvahhc>@pHGGGSSөSԈw͚5P\\̟pvv&l2͛7 !zyyy\.;ߕBzbH4DSSsĉ//_ %Ennaxyy 7;}%?@_ՕhѢ)SO>}ƍݓkRT___+++ccI&-\pFDDlڴ斖aaabdhh&sss׭[giiiff6w`x:o8NDDĢE̦LiӦj Mt!2_ɓMMMoݺ<͛FFF\QL6rݺu}6$Oa١vjll~;ӸOaӔEY+"mAYTZPw\Z+VȢbQ " ?HX ԅe ȒH7`i +*ϯ{yyy555555UUU~-rܹZZZl6[Xܽ{O>XA7RRR9}fffMM (++;z6z{@ HorH:;;,,,rӚ\C533;w%.]ޮN8tijjx+W8;;s8KAKDPxeee+WdXlgݺuR wjժp'''dtȑ^^^ЫDfS( T*upz* sssd@uu2͞=ƍ?X6f:wN5կaEiĐ5LLL&Mt۷o? ۡՏ?55`OSUUݽ{7ܿ_:Af7~T!##,7pbu G^n ==}{MJJSUrr6vi}}}B7o^dd$BȀ#2 P(QQQsbŘ4iׯy<޻w˗/ggg'$$ ~ݣF#7oΜ9*~;v,??ԨQ.\,Y^x1''b5:}tuuիW{{{ϛ7x |ݐ?m+'(**N0Ať7uXQ?f Tz+V8y N ܹT3c $np40,Ə4dp \sƠEA:=d29 `ƍoߦhEEE޽{ɓ'ccccccwG-zθ+w g= qƽz*55LsΝ^---qna-.. y'ZR@J'O0L999~wg b 1d ՅM(qmioo_|iiiy9V?@/`'@e-|G9rw˟;w.$i̘1NNN-Z|9 c?r3gΰb*PQPjݽkdd'cϞ=GƱARCBBnZ]]*9s׬Y#ݐ'`Y"]jjjÏ \8vƏV Y''O^x"-<(<$%"?Ґb;gQOIaWWWwww3/^LJoڴΝ;k*P3ު@J[<CxaŊgϞMNNF&Чtٲe@ ]]!SA 49}}}aȐtQTtpa:;;曊 SS+W .!F(6 H-4ڜGw֭:2ljj7vXXԢtl14BEE+ --@+D /":bnϞ=\pZ[[-,,~I&!_ݼys˖-bŋ?|0555//NWWW߿.]B5|"#pq6~b ;wɑrY]xOAD i挷2){144ܾ}{EEEII <`9n8s@9ƍd%466jjjc-  9oC;:ODuuu@kkpb~kqZvmqqĉ^,Su O`șB_p())as@%~1Іp8_O J,(NX~=rpp1Byq}}= <<ߘۉJuss;sLNNNaaիYYYOHAfQ@,5!+1!k~-'?8QfaтސS2;99yFЕQ9K[R)pd2Ew} A8U]])Szzz]%rsOOWAArPUU =//O+xV__m?FXh6TbW,C|]455Q[[+1`0!!!_vkhhzzzO` HG!n0 IuX/)1dI&G*))qC:yHddEZ{CrO1>@O&a'w5trrܿ_t9K[ W uwwpV"7 7) P7T^|A ҘBO uuux?&&&0!+))AaL<NFooOnnQ||˖-oʶvK\眔tK/UC%6Ib"##a&xN#YHtRbbRDD20R۷oJFoiiXk,))?\;rYp`M̢a;ZTTm_ Qɐz'TٳW\X}|2i4dADvFXAkoB)F\uNf&>>nbDYvbOOO``^\CCrm8R˯^^SBZ[[~pp+r8 !TwwbjI{{ݻR!~~~/VSSm61F 6ܻwO[[zww\VRO=r~SRR FCCǏa7'''[[~/ZF%RZZZݻ7--d]ewJJJpŷ˗.]Yx ɓ8-O6 VfϞIpRSS׮]+8x7Ҳ~Xg *E'//adddLL =ze1âjh(z?#Ç;7-00ZpYlذ 33s޽WTTdX+W?14ZÊъ1Yx;~k׮QT$ƍ6p2((+"3ފ']pH$REE5008;vww4FI*~# DZ)aaa۶m{𡳳r{{;}o7tqq)))o˗/ojj:x`VVVVV2"Ӣ'{@p޽{T5Dx6lO:5v7n444hii9::޽_EF&#""]V[[f]\\#""!\7o^FFFHHHnnnssւ m&e笩Y[[ڪ>}tWWWqZ hѢHVRRD&njceeޯ322h4TQQ111qqqYvr~}Ǝ Voo/~C;hkk'%%o޼y!COO󥥥]]]۷odt''' [YYN3g]VɌ壢坝'<;,ѳgϞ9sDEE=~MMMmƌ^^^wa+k2쌰9qux jjjo~hjjx'N\d_ܣ϶m/][63k,WWW[R,Y{zC]]d޼yvCggÇF;ЁC zFo޼7n܂ <==1ˌAqG|`<~Wᅿbbƍ$%%m޼YGGGx2O81)eb% •+W.\?JOO'XYY͋@477CǛO?{}0( #,GG<@""lٲdgDH6/|' # b% O1***wuu~OMM-66V#,!J"00F=}`ś6mO@t?09\~뉺$ ,K@@@c8sH@@@@@@@@@@@@ &䐀C@L 􈛣ecǎ}7~ŋ?w_lz vJҎVZ__?g9;;{ĉ2[4n*--e2 eܸqׯ@ S[[{ܦQF-X`˖-&&& #z===/_NJJֶ޼y44 rrrtzuuuSSL՝3gה)S/</)))11evvv^^^ Ef͛7w\BOTQ(KKK~*âj״iӔO<on߾qFL&3uDNٹsVAA"!dp%IOOvNoiiQPPן={-蠠 Qdo.#zUiL0~ԩ_~*W^*:@~~+eee---ssj◳(K]fmmUqq A jҞ޹s,O-,,:;;?l6`0Ghh@uA#//ݻȅ #9X,777:P(-ѣG_~cR"Cή}ɕ+WVXHHHPw:;wTueÇd// QYYcǎA2ݫ \533x7KC__ŋpIRVVV[[k``y&GGGO< ޶÷~d!#HurZXX;Nohh٢9uT~~~@@ܹsuuu'NE"zzzGFF(**FEEM4 0a„#GXpbscc7>>>'FGGSԎ)ki={ĉ+V077322rrrO6ݻw333I$RxxÇ-,,ttt&O5j(|@âjԗLA&-Z Ύ'Z~;wvZ*J,˰X,8=:uT*jiigϞ<BȐBS999 ú4SRRn:;; W2,/////@&ô5k!#HurpL2eʔ3fx d;v۱c~gsH;;;##ӧzJk֬t222?OII8::;y1!zEEE\.ƟO \K_\cc#˗/VX(_,,,k 7ŷA@G_~?ݻ?}WWWRRMf``0s 6ܻwO"I||| Nxݻwgggٸq^DDՍ7:;;MLL̠ߗ82Au֙/X ((rA[taooolluTooo___sιsh#G655[XX gő9!!a׮]pBWRRB[tl6Poh41;쐍aѲl2:^VVРd''𒒒jӣGh~4550^^^奥t:*,,l֬YuuuJKK 8NaaavvvUUʕ+d23fDEE# -l2|ĉO޼ysĈ%alĐ}N ?"KJJW^WSSSSSoll\UU")Νfݻw?E III p8555 ѣУ Ҥ"''L&oڴI[T=J]fT rEgҤIpqq2/YCi{Š%Rt߿/**L6MKUOAQY*Fk HorH:;;,,,plB5???Oܹs8_t]AA[qx+Wtqqqvvp8Ȣӗy̘1p fd2҂700077|W_}JMLL|!.++ ^r%Œ`hllp8֭7RZ*<< Y19rtgSRRf)ʁu}*|r`/ J DZd Z|fϞ} GGGbXSd૏d֬Y+JG%ܽ[lӧ e޼y %##nd@[ml}1,M`^tp@=Ej2̨Oѣaٳgݻ7))IX%#`( ɤIn߾{#=WREuֽ}V^^^ 8jqUqMa [[[C"A]t& 8eaa!`0?#`ΝCh%%]YY L6T9Ϛ5 m׮]{1rrrЯ*10Ɛb 6#>|5F{Yuuɓ')Jii)t\.Ϗd:tHj}j 7ʼn*kሸ8) '##GDuꫯϚ5Kzs3;,ZTTTdAѣG᝽ &J|:(JfX>}qph4ڻwnۣGF>Y:۷o+ڞ"J\fT *O1117o;wCBBxX_ҀXĉMMMPt˗/kSLYjUAAEbbb7TeY1CJg޽ 'cggwڵ,t!J%ӦM8!&MMM߿wtt=Jzzz^~/nooC次zhWWWUUU:D&z{{iB J,&Mz5{]qq?|섄=jԨHxPGQQ͛7gΜ RUUj;?jԨ .`ނ,/^S[[b[C>}zKKի͛gll<ȑ 4KOzۊ)XEE &+JǬPJoǏN8=B,,,ƍիT$ʝ;wz{{Ĺ3gheN9?B(qz*epQ/ ' 2q۷ohw޽xɓ'Kv@U+V8y qJ/ &۷R6@/bGecV7~ɓ'L&SNN BaX_ڡ.lBI˗Ν<6tyב'lQ|G9rȑ#WΝ2#G[ JC4f''E-_` zj[r3glvqqdrhh(((n 522gϞؠR!!![na͜9sk֬nAO~I0,.u555QPzC;xG+8# y4ǃsFXbٳgyt_\l8W]qu0Ȍ7L&ހ2"JRfT *Ob@]]݋/CCC7mtpd K''O^\t\.իWgΜINN^fM\\M@5ЋQY*H)Mn__ .J }@|MEE+WHAGKGw֭:2ljj7vXXԢ1b_i W@@@ZZÁW.jL3?8]{Y`4%kmm駟}7onٲEx߿?==ҥK&$,d!D:l2ׯƍĞC 555߿)*&""|޼y1T2KP}!r`Ϟ=۷o())ANI^ Rܹ3''gC)((@I&۳gOvv6u @`EĞwI1ڒt~7#}oXCZ[[ckO8ի^ r OI"!g WXX 1 @ v@iׯgXD5,?kjRPT773g^Y_ 27dzf IuXƏA Y~@KL&Sɓ'p\x{dZZOgΜ)lP(%*qb`NUOB"3*eD} _TD}pp>PbD:rLx HlqU/>Ҙ>v= P8e]])SzzzH瞞// r {K^^W>K%3xh"lT4&ԄGjkkC6"`0 BBB$')e@>}tQґyȢDo`~5 zCRVKJ 455E:,>>Cccc8+;~xmիW£5u2 hЈSjmm |82Tν b:)xW2R_^P:kH޿0"@Z_aݺuK.]tѿP*$Ut*W^IuuuhCl~rssaٝ=UGecV&iLaϟ?޽nX3 LDGG_x6m۶f7lp=mm]^^?ջrMMwGGJ~@۷oׯ_`0?~:99}}}90P'D%RZZZݻ7--d]e0JJJp˗.]Yo'ON<9HbMOOhGb***<*&vZ$ K]bbWE/:yyy###cbbѣ-[hUG+6Do߾ڴiSPP`…_~%#GP(b77ǏC۷ϣ f̘pLLL lOOϪ*566V`! 8s\\RV=JQfT JG} IwwCdd$x}gg'8tP`` |ԩ01Zk؁4P!3557)JG'O믿l7o~Wx;SP5~96ň_ iB`N<= Mcc'O~&&&VqFrrrrr<144t㓟x1*Рv~_444 'PWW///GTUU _vmyyxyqPp2YxqHH8J J5&&&&&F9Dڶm]Ucƌh4Roo/\J0faRx+?s9vΝ;GVL+`qǎ /]t)2R߻woNNZWWWOOϸqvEx|*J&g̘-[\e6l(((ܻwY,ʕ+O?Vo갢7~b}SN (sss󰰰m۶=|YQQQYYپWCP˗/ojj:x`VVVVV2 $cYp6n8**_DNND"UTT߿_[XP%x<tzP(ȍR( THR]]knݺΝ;!!!ŋwލm,s<85( -0ûw ao:uرP}x{{C&#""<8i$6f]\\RRR`xi͛7/##/!HZZZVJOOs ԤP(ZZZ}YXXXLL)d\_XhQddW_} _> 777===.baaqᄄ}2:pA7~'ikk'%%hiiy󦴴T GLL̼yFե뛞.өS\\\:::NNNqqq^F$:Ɍ壢<8yd999yyyggTl|1#z/d2Y]]}ԩ^^^o>w\kɒ%<غuԩS:::Ν{vpggg#qm:׽{<==ǏO"ƍ7;aY⤤|RUU@b*̨55~aPP(ѣGϟ?ȑ#YYYg nnnG4P!٢[p!?{, E=ڂ BBB._,jh-s+FqjP[a :#!@͈bbƍ$%%m޼YGGbcc'N tJ`XPQQ}v1z`*ƅ <'囁 >8e•+W.\?JOOBy/llxʊh^:~駧OhᅦA8>UOw^EEBfYc)z:1zxx3e>&VVV0RKKK@@>B@@@ l6^+Te2xH#{׮]ǏG2 Hɠ\.@YYy"2| n]]]_SSS533#ꘀ@:nbHў>}Z__g``xM6N ҄̇5pׯ'ꒀBX9!19$ &Hׯ7,ǎo6))IŋLl2!amۦNzCJ̙?gggO8Qf֭[YYYL&B7vHajkkϞ=4jԨ lٲD|aDϹIII555===֛7o6448FAAANNNnjj"ɺs2eJ%%%%&&=ˋBl~z}}yΝK)*: bii OwXT6mɓ'7۷7n?d551cXYYN>h8;w*((PTT$d d ׮]--- g϶?~E1$l}eDo* &O:/@+TEwuuennW_-X@r:tRk׬*..^|9 !!?hTz2!>VSMړ;wɡEgg''f0 ? Hn:z߽{pBq$=gFrrr >66611122rѢE8z'O+6...((1.:;;i4۷o߾h...ZZZRnTT*XGGG &hF âjh?` rHWWw  YpY"Jfo޼955IeeeeeŋCBB HNN޼ysPt]]]/_|͛7'Nz T5ʄXM5i7VXCkKOHH(**VSSذaË/oܸSNzeNNywwMob~ ɓϞ=Ξ={vOOϦM#~ahhRXX>e.{С7oh>>>nzqffd~ׯLJ@aQ5~TbٵOp'LpY͎鹻?l7oa Zp} 6L~~~qqB;h{ NJffUd2w5c ###[[3gJ*++l6E["\Dk؁4LMMnݺ</99Y__ݨQnUuu59DĞvFkEAT&{c!3>q;;tqriii ۛ1 ѣ?oxA#`ϟ՗/_{T9#k!G؍555ph2={6bq\C1,ӧh7l6;77Yaȑx9A/ X)L&sSڈzyy9;v,m"uΝ;g%%wޥzyy=zTw> H$ٳgO>h>H|ԩ޾kΝsΥh#Gljj @΂#sBB®] PWWWWWﯤl7HIIhbF70w!?*10âeٲet:A[[yuV:[QQQQQ\zFٙ,K;,ŋ8p$8hBB³gS(~RؒFSeF0K}EMM͏?}5+p.hkka}J_-,,***zͶmp*:1D"dE)n9(: *1aOOONN y#K YQ!L:~(--Euww^://&>>ظsjiilhsO>DdBRRR9}fffMM (++;z(( 4!ɛ6mUORD  9N\\ܳgϪCBB=zO?I&MǏq 0g)hQ["E"idPTc7*W(b 2!Mi4Zgg q\);wK.+((o#]<oʕ...YpT93~ČLZZZ@`0枞/^ꫯ222߼yR>xeee+WdXlgݺuFÃUV;99!+#GZsJJJl6B9pOR/_pppPQQRО377711!HK,TWW/sQQٳoܸ=7O kl6|7̚5 aaEiĐ}7޾}<B̛7/22Bddd ULȡ>qrr| >p>CO444= K.ȁHR¬ N:' _|Ů]/_tk0Ozzٳݛ$C0dҤIo}㑞+kkk{u޾}+///UF@5Ћ>vqUqMa [[[C"A]t& 8eaa!`0?#`ΝCh%%]YY܌8m8$r5kۮ]Ɵ b 1_3Tb`.!'lFAf>|ښFUޓ'OR(RJ!\477?t@n*P Uq5qSO8s_ G#G4 !lII W_?5k4;dG%f0wXȂNmmG;{&L!tPb}0hw'ܶG|F+t˗oW*=Ej2̨6U%^%cbb6o8znT9f("w)9{._]v-++ .]`ȶ |iɴi{ISSqORׯ_/%%9khh^z5::ZGGUUUNd~oڡP(G/D.ƤI^~޽{W\\?_|9;;;!!qtww5*22QTTtww͙3gヂTUUůcǎ5… 07ˋ/ֲX,qFOҲzjooyrd. ~޶blll,)?~x&VQQq„ /.5Ê1/T cN qƽz*55 rΝ^---q*.. yZSϟr9J"J\fT *055MKKKKKd>}Tτ!7n}6F+**z݋/N<˯*qdTbŊ'O^p T0a¾},--e"ݨ,s̊Q>ƏR>yd"P(,CW;ՅM(^T_|ܹsY؆.0:-ڜvqUƏRݾ>2$==]P;;;曊 SS+W#C<+$ qyȑ qqqnݪ#ɦ~~~cǎE-#@xyyq8y«4C]]ߵgxEjp8??V ~ ' y-[//~ajjj^^N/]jH"R(e!oG+kA q'󐂂FMMͶ|J1Jf1777oyA "T_P+/{144ܾ}{EEEII tJ"bgΝ999 NAAL4)44ߞ={Iկk." K-Ig \975I:U811qZvmqqĉ^e0,'D`$"rP(qqq.\OJJJP_i 9bGXQ~z JTCz@xx8,ʼnJuss;sLNNNaaիYYY ( zCx>>FFF{B.[ )F8?礤$x$wk[l70Ю*1<MMM%,+22jB4tRbbRDD20R~c4#7 w 搉,zM>0EEEnHAoa6~ 7'::N|||pVv~WGk8(,,d0РߧNYOaroUORD¦ Lfvv681B{ ֭[tҥKŏ4P!Wqz KtQWW&1t'77&݉SPݨ,s̊҄x!!,bcc"ݻw8=!~~~/TSSm61ݻl ݻoΝ{{{www{yy%䚚oo***o߮_>%%`444<~800'trr'raNJ l1>ܻwoZZZmm-,++a}}}RWW˗/]Xf -O<ЎٳUTTxxr)ennnm۶:;;+***++#w*xq*vMMMRVVx<@dl2K.{yƍ\EEST2R_Tcii)pjeek.)TDؿ&K xL8xIl6vqqIII!॰0o޼/RGGD"iiiZ*==]DYSS300JSSBhii}gaaa111§q}A o⢥͛R1119rdWWozz>NNNNrqqWvvv899{'3:xɓ坝SSSŌCduuSzyyݾ}ܹs%K8e•+W.\?JOOBy/llxʊh^:~駧OhᅦA8>UOw^EEBfYc)z:1zxx3e>&VVV0RKKK@@>B@@@ l6^+Te2xH#{׮]ǏG2 Hɠ\.@YYy"2| n]]]_SSS533#ꘀ@:nbHў>}Z__g``xM6N ҄̇5pׯ'ꒀBX9!19$ &Hׯ7,ǎo6))IŋLl2!amۦN kjժ'B %7D|࿉ϙ3~Ξ8qMGGǭ[JKKL&B7n%֞={677iԨQ ,زeˆsOO˗jjjzzz7o<֓8FAAANNNnjj"ɺs2eJ%%%%&&=ˋBl~z}}yΝK)*: bii OwXT6mɓ'7۷7n?d551cXYYN>h8;w*((PTT$d d ׮]--- g϶?~E1$l}eDoCFF,m]]]999ld22ܼy˗>֝ GFΝ;eyrhaaىf ?BCC[yyw%$$DFF.\PIDϙbtBMLL\ht4=J BKNooo|ёN744hkkfќ:uU^ĉ'O_DEE>|*22EQQ1**jر &DEEY[[X{bCoܸqwwGd3gŊ[ \KٳOϟ?wׯ#n3wfffHpGGGPGGgD'zmEQ/L&+**jiiiii-Zhف_~%pܹskRTBfYbs}?Æ 疖mmmkHBrrr|GY VEEE ;R9p8SL2eʌ3x<^FFp;vرCyttt糹\ndd^z%5kV+++###@YY# A/_HNN,9q\jjj~/4EMMmF/_XJBYvpO0$ t_+))iӦM3009s ݻ'פh>>>SN]xݻlܸQOO/""ƍ&&&fffKdaaǔ,XlEp8ӦMAD:@e<==߾~Ǐ0aٳg7;·~L x:,?uuuAAA .411144޷o&/..VPPwmORP,¬ L]f̘adddkk{̙^TVee% Vh} _h4׌3 ֭[KHOOy"pUbdfڵ sĀ=E^T\V7!TF𸋝]qqqzz8yr\__ߴ4BMNN~aϟ?7`?@_z˗޽S*熆vccc@MMM{{*`OO4Ϟ=1b8b`.!S6 ,o0r~d<&9ȩ mmmվb;6ܺukΝ𳊊һwRSSSSS=*;psD"ihhHgϞ=}F=|P Sz{{믝;wΝ;F9)88G愄]v uuuJJJhf{{{CKꍔ&`Tzs3;,Z-[F:Ҷn W{{{+*****F\zFٙl;,ŋ8p$8hBB³gS(~Rx^W)ˌJ}aP---K.}-1;;ڵkg֦)~ӧOO-[۷?㑑M4I]]>;E-h %\.'..4--M@ JFĆ'zO})2 Gsӓï<'ۨ4#.1"11텮CcC *UMM C3DB@>=8*1+ ~8f2w/[[[555}}}p577{.@mbbdɒP1M2%MCExP'$$$$$lݺulz>d''𒒒jӣG褤$/ xyyYf -+++--500p8UUU+W/3g̘UXXXXX²d'>}z#FܼySjzsC:u*PZZ<,))^zu^^^MMMMMM||qUUesbp wvww'"vXHJJJ`` ñ̬a0eeeGO)Ҥ"''L&oڴI[T=J]fT *HOOp8qqqϞ= QPPxO?$4it<~N֗ mp9uVdPs իW1'F *%HKK}Eee]UUUX)T=E^vTUHorH:;;,,,plgB5???xPܹsDtR{{*ХV\pEM/A1cW^ LZZZ@`0枞/^ꫯ222߼yR>xeee+WdXlgݺuFÃUV;99!#GZsJJJl6B9pOR/_pppPQQRО377711!HK,TWW/sQQٳoܸMO l6;<<GYf#LR:(r۷o`nnnOP(yEFFR( 9'NNN7l}Ytt4thhhxyyA{ 2Kأ.]j`` fOZ "3*Y:ujE h_|Y ӭѣG]]]e366H)1Ozۊ)3&L~q lVƏY}aǏ}pz5XXX7իWH;wjiisVqq1@GGg[,r><˵]U2R_T@n0.| C&6nxmVTTݻ/^t/_˗/---ϝ;'00 @ppppp0(hs>x`uuG9\*//94rH4 HcƌqrrZh FpppXXW+W9sf(---,,L&"RV]]]###8knn~766"1W H@Bѣȑ#nݺUWWG&MMMƎ Zv/@xyyq8y(,6d]ġڳg<"58_kkO?4i$䫛7onٲEx߿?==ҥK&$,0R6~b8_B7nH8)((hlllkkgu)*&""|޼y1T2KP}Cٳp%%%H)X_Èd3N6{tqm7};pa"| )*8tuu]xĉW^]<&){\\\aaa~~ ,,,v6bS2z ~=&19|9TU K%3xh"lT4&ԄGjkkC6"`0 BBB$`,)<9!ˊGP==ӧO]7 B:2Yt ̯AoH 7~I!#0qHn@D~t\ :?`?.]bƏC SP)ȌJ}aS&2Ʉ*ed2Y֗t`0t:NG=i$t:]૒ ;)34Oɠ)keIiLWqؐ1z.&)_affO|?522rٲeM666Ɔ9'%%xfvPM!hjjw,aXW4 _.-.. ΦK"""ؐrc _ەgYS0LUfыn鰝 -**uC zC/(dH!>pAÁW^ [pQXX`0%!O5 ;@&3N _Q0+EDQ/ld«2b :~&>>6B$ZK:[nҥK.?J={6ʕ+3v yׯ??ĬdUO<XGte.NHcrU]y ޾{n`0|||` D~d ::ŋl۶M\l6{Æ 7νջCMMwGGJ~@۷oׯ_`0?~:99}}}90@%RZZZݻ7--d]e0JJJp˗.]Yo'OpN<дi`hk***<*SvZ$ hWbw(cWE/:yyy###cbb ѣ-[hUG+6Do߾ڴiSPP`…_~%#GP(b77Ǐ+77w666(3fs8;/B9x ;;ӳ >ommX 3Nd2uttmORD¬ v \.ƍ Szl ==="## ;;; ơCSNZ_xÇ}ϯKYy)**vuu;vlu dUO<X2V'qpH@mll㫪ɪUnܸ,//p =]gdd;vJ644hkk]rׯ333 ˑ?UUU׮][^^ngge(**?^.T9s84L/^,楜4Z[[cbbbbbHm۶ 3f̘~ϏF())!KK~l6F( vΜ9ǎCܹs' &$ؽ{pv776{{cBK"s*{XZZuuu7n׮]J {~T*LF۷oG5WE/:  233ݻ~EEEr?O:2g}&ԩS<,,l۶m>tvvVTTTVVnooGV|U...%%%@;Th;˛< @x<8d8\.7W)dF0GGR@kj׮]R>999TQQ~o `AL֗x ܈+/ޱcǯ{5*\oqF''')k0UU;va14 LOtuugϞ:-Y{UGGɼy󜝝UDC@g0tX///[[[XAo޼7n܂ <==ŗY⤤|RUU@b*̨UqǏ߻w}„ VڴigϞ9sDEE=~MMMmƌ^^^W;JQFEEE=U "8)T=@a\Zd!A]:ubbƍ$%%m޼YGG5bcc'N tJ`XPQQ}~o&d _%#޸p|30𢰰pʕ .?GP^Ƌl6;77`eeE4/ >ӧO4&ܻwBII?!1 Z}=<e.{С7oh>>>nzqffd~ׯLJ@aQ5~TbٵO^o2s??TiCX2=R9lmm-,,>|ёN744hkkfќ:uU^ĉ'O_DEE>|*22EQQ1**jر &DEEY[[X{bCoܸqwwGd3gŊ[ \KٳOϟ?wׯ#n3wfffHpGGGPGGgD'zmEQ/L&+**jiiiii-Zhف_~%pܹskRTBfYbs}?Æ 疖mmmkHBrrr| ASHu033L2eʔ)3fxvءcrvvvFFFӧO{׬YoZAeeeSRRp.Z|9 99\TTrnnn9P55ɓ'_|b df() fڵ͆?@Ǹcbb4Q_~ꮮ۷O6`̙6lwD^FL:uŻwOqF==___ccc++7ntvvA/qd Ӄn֭333366^`APP<傶'""xڴi/_D5~TK433DFF ڎ?~„ gϞ~26͛7c-\z߾} R&??XAAZ=JA% rEf\\\ +E/T7~#,HROOۃӛ:u*C2¢RJעCfl6;$$l׮]MMM6R9w+..NOO'O.뛖P(<| =W[[4ϟ/xW^}w0\AsCCJ1]xgϞ1B10Ɛb z)? BD9rdA2? V T6^^^bƎ_H@nݺsNYEEEIIݻw^^^GwD"444H$ҳgϞ>}J>|(ԩS}}}Ν;ΝKFlaalj#sBB®] PWWWWWﯤl74HIIhbF70w!?*10âeٲet:L`#--m֭vQVVHJJ5jLrUڪƟsgggVVE/^¢RJC EFRcccɦ_~*99MCVJi4ZggTKKfrӚԒfffΝ$¥KV.MMMrJggg,j 8}nj?zJ o1+ o```nnŋ*## ͛7*Cg+WdXlgݺu VZ䄬9 :k3)))a Ⱥ>J]|9\֕***T*s&&&$iɒ%je.**={7熓ӟaf|||<<h83hhhxyyA{ 2Kأ.]j`` fOZ "3*S3zh'==}{MJJ!a}hG+Pf FƆ)+Ӷrrrwˣ?NHorplmm)gOcΓN3L)/ .(;w8:+))utt*++։QxyC%X,h884ݻw} ѣG#,r~%<$,ڞ"J\fT *O1117o;wCBBxX_Jtpn̪`pLсƞ]]]e366h M1OG|%***N0Ať7uXQ?f TzCo?~ wbaa1nܸW^"APܹ۫%T!oC+t\.:SV)ˌJ}aP8\T䀀7޾}F{ŋ'OW8Y_ xucVg}yyy%%%PeddܹsgSNE؊N'aqEJ'O0L999S666 bX[[c. P ooo_|iiiy9,lOآՏ=:rȑ#Gq9Ђ*1+ H$Ҙ1c-Z|r& ի~nʕgΜa.JKK #ɡԺ{kk+@WWNƚ={c`JlݺᅦU6s˗YF!O?%,D6 Ԅ  q:2⌀#<F뗮.?WXqdd-[&8G_xd2Mem)ҩ!eFЪT.aѽx">>>44~ӦMwA'Kv@;ZNՍ*5kV^^ޓ'OܘL&<ŋW^7n@#,* C Ozǁ&ЫO]!風U|MEE+W]F$  H(zT1qr9rdBBB\\ܭ[dرcaQbĈ)~1***^^^iiiE C?8c{Y`4%kmm駟&M|u-[_/^Լ<:^]]}裏_t D]e6~b8_X7nA8)((hlllkkN)*&""|޼y1T2KP}!r`Ϟ=۷o())ANIqcu `Bؕ7nc`X2E?Vtqm7};pGL$Vġkڵ'Nzj°?t4ID0LP /\`aa} hCs8Ď444(8mc,aelxq}}= <<Juss;sLNNNaaիYYYOHAfQ@,5!+1!TTT1pudx?yd. oLKKcٟ~̙3ő J"\D%3X,x )RQdFPAprr!5|F~ҒD"1\'''}}}}}0@;YӢ1Ҙ>= P8e]])SzzzH瞞// r uG^^Wh>$3xh"lT4&ԄGjkkC6"`0 BBB$')tep}HN> 11ґyȢDo`~5 zCRVKJ 455E:,}ѡ+/Ct^p!!jPWW>>nbb@ d 舱t1{{{}||rss\l|Sp1!~III<@7޲oa]5Tb`yH1KX,Vdd$l9 ׯ p(((ipҥD%%<6d`W---+%%%(GY!qY>}:l'aBoݐâm!J#RoOtt4AYm^ᬣ`@N|Rkkk8e v`đroCYz ޕ"̨C L||1diNIҘB3~wW`YJݻw{!C&/^mf۶mbb6lw.//^^^p ۻJr?@۷ׯOIIa0 ? lmm_[i )Ç---ݛV[[d2bbb᮲@F___%%fooozuK.֬Yķ@˓'Of'ODn6,ӦM}gٳgx<8Njjڵkv0zꄄeMUfыN^^6Ș8ommX 3Nd2uttmORDBQ_C`0޿`0:077:u*L`a*5@&iy)((ǃS*JiHIill!:lcc_UUU__MLLVZuƍdyyychh'???###00رcT*A[[ʕ+^~ hhhN^^^vr;;;(3@QQ8tʙᤥ dx␐qFkkkLLLLLsm6ƌoh4%%^jii?`###fΙ3رcȟ;wDYd2]]]wfoo?vXxҥK9Jݿ޽{srr,--Ժzzzƍk.h%`=x.ST2L'o>-IC̢`Æ {ݿ"Xr TVƏV >xr)ennnm۶:;;+***++#w*xq*vMMMRVVq y<@dl2K.{yƍ\EEST2R_tאɑH x?&K x}8~^XhQdd$F+))ihhhjj"cƌ{<*DQ*)(%6%R.Eew=mM\*݈6%J.ɄH>\\f|f\<1s:z:s{qppo Œѱ]~;uvvvż? pr1bB999?H 22xtttD3Cb%LmllLLL`Xzooo!||@ ā@_LuPPPO(!`v5a„#G",C '//tUUU]]] ׮]@ ĿV*>>>ʮ.MMEm޼9- @ | Í7nܸ%@ @F @ @ @ @ hr@ @ 49D @ @CBDFF;vL]]ۘu>-Z%e.<<jZʗ۷oWWWAgd VVVΞ=~NMM4iҀ-;wX,6n8ss7K )++;{lzzzmmȑ#͛uV=˗/ĔmٲeLKK+))Rjjjgvvvx/^׏5J[[ٙF X4553gSh4૯n`q)?5m4999υo%wﺹT*UAAa̘1&&&vvvӧOGZ-sNeeLYYY$gw#ILLqF^^^}}ܹs-G_aaaO?yyy !Mpi ƢR[ғ{ȓCCCÖOd2LիW,,,?zhÆ >}HKK>***...$$dH"zl6>// %%E*++]pBɈA^i=zRVVVVV .1ZZZ\\\ `*++KXt(9rdTTT \ 5__~~?ׯ?c vvvսx"$$ɓe/zx`e Fp8-[?y˗//^zjEk \MnF2ꖴ[)4OMEMM3***;;;55OAAyӦMo޼OӧSTTTm޼Ǐ}h4ډ'RSS7o\WW'1+;::eeevvv:t(33S -[ ;w={|y+++**yo>|%aR~\b (RSSʞ?~ʕ+V>M{޽:a$T*9))d|2&&fǎ{}988/pW___็ǿ Dw˫QQQEs);;;i+I&M2eƾ ;v,`ĉfffl6;((hϞ==>ܺu 6{l6Mٳghii͝;wΜ9MMM  %(( >TUU2e jk76X\ʏ| (T… }||RSSo޼f`$q9t:y fṾ}mڴ {nddddd(}h4spTJJjᨁ *$sruuuuuug̘񒒒رC]]}ǎº=baa5}toߊ\~ݺuC+y\\ ΅ ˗/C;;;9(((P)S>|+V`3"++Kg֯_/6 z: Txyy-^xڴi3gܴiӃ5 ԩS-Z{T4nnn&&&njiiׇ~_㣮&6lؠ=o<___xo\nppŋM^QQ!~n7@I__"mUUՁ'L0qDKK˳gBov~A]]~ x˖-,?徾 ,?~޽{L&1%ǏsrrdddݡRH\2hk׮3fhii9sC2K.?q5xa t@n ޽K4uuSx<(=,.È4H-:l6p͵wU[[KXو>>>>>ѣ 7(B)..~x@SNutttuuݹs9s ưajkk M-qdڵkP===qqqCh7 ǃq O%a7X,[,//@`#!!a۶mp2dȐ˜#Gdׯ_g0 9q ŋrPYYYx4**?2Kh*x[ y"̸SP__tjX'OLMMqƐ!C!q"/2F_oLA̚5+66677ں43gR(o{aqF\!xT*="""???!!XTB2:$79looOKK7OkFFFssag@P|||6oM[ttt X#C==!CL0~UZZJ`r+g Ak~xSN544=KPRR;Q?iiiظ`p=,Jsy)[KKKKKKk׮ݽ{wOT+(͛ 5k$"R[[ 8;;pfҺ=*vΝ%Ky&+++55uĉ۷o믿!aY,?N_|9\t: ttt(ʒ%K%%%˜mll|-+++amm_Xap8AAAWWWGGGv8k,xIbvXEq1ި8p۟>}ZCC@LMMCBBh4ZRRPPԞkkk·p8배083())9;;C{2Kآ.])fKX"3.E:uj޼yEV^k.˗ɮQF<{쉉!18D S0k,@~~~WWWOi`dlR~aI@ѵ>}\JJjĈwˣ>$$79K83B 癗b vALɓ';wJ 䚛/_ÜL6\9Ϛ5 m7n{ѓRRRVЭ.1FbFN>|̌`8qFc@Ne``p!n=C-\r"&`~p qd>r䈀bP(Qgsssa\-YfInn}*?.1CE^^~tʞ>} ضm@'JBGJfppܻb0+ۣF>Y2\QQ) KHRz"f b `sAOOOYYٺ-[̙3gܹZ 2F_6+//܌ƞ8qBOOTUU}AZZzƌ_=,y+:MM?rώJ߿77nHII>}%@FFFƞiӦ ZO>YYYm߾dt:)22r***MMM%@9+))]~=,,LUUnĈyyyT*UFFCJ_bN,'Ox߿sԨ(.92$$uppxݙ3gn޼;bرc?9r oAVˋ/l%CqFOX__vZSSSmmzJoŗY[[XYYى' +6_e7AٳgO?$z !ƍ{m||<޽{OPUU82Kϟ?inni)ee===`p]ի~& Jvss{.~7oN8qڵk׮JF_^=,aS;pѣ\hݻԩS=ۏ=,y+:œ擊&ϟ?gXRRRϟOlvfflB› ##s la Eo,))y#G9sb pA^i@Pƌcmmp˗3L??@1֮]+s+W>ѣGyyy%%%>|abbKpM00IđYa%l7vxTUUQƍA8ѣq|J Kf noo700055,/HRD.>ʋ?8~x//\,T8dT7=,V1!Mvtt!T=쀲_*:sw/};pGL$ġu999&M~z°;t4IDL"""?~|CCC$''GmF/14ƑǏ)8qF6mii26I<{oVćN۟9s&---++kڵ'U$ (`vCw+1pubx?eNx{dBBꫯfΜ)lP)%.IfÛ`{NWK@"3.Et;a kkk8|q/"Q(&ޞjmmwuu= T%&&V/w/eN-ۅ-Ι&LdĈv}c} $#sE׋ jF5Xa/10槞`䡭-++K|~t\t{=?d&K. & T(22_L/&, NfJž; L&3/////$?jQz+z>s& >\GGxÇ΅ 2W^577IK1@N2/8z5(** с Ww_nn.vbWatk׮??&xGGkzz͛7{\l|S>|M s{|=}Q[[m_fCBBW@DFF pȈipҥh99`26d`W+ܹ(Yn!IY>}:0nHn`*b$} PCmmm8+_շo p֑d2N|R3338ev`?FLfʹG/p+EDq/bb?}СCA'>}07oބJG; 6lXtҥK%ފϜ Q^ׯ_gX0ѢEl6 jՓO)yY$IL;wn+0,]ISSݻjtuuR/B(--ݾ}8ΦM}uV1R~bCA ?}T]]yf___ ֬Yßȑ#4-''ٳgp'5==k(MM3ftuuyzzr\/F;x 55ɩ>ohhvBI*爈x[ "̸aS{n8uoprrG;mmmNNN!!!L&ӧO---L&СC>>>SxG_by=l96FT*|C$ty7o,**~:::VuVlllll4?~WWǏ'%%;vNԨ_r_UUUrr2f _x9bĈ׿x =8]rr ,Z_z%y.Bl߾]ப1c crrrpah߾}HJJp80Bi@@g>vΝ;1GV{X,;;;,ݻ666.^xرnߥKbs:={)((7n׮]p@G?t:Jb //nIRe6mLNN޳geeelʕ+/?nj+?^1_[[SN s۷?yFVVvȐ!MMM]677bi o]|ymmSRRRRR @x<8dw:;;ϟ?psssWK!RpɌ|0VVV06˅Q]vI(Jaa!@MMMXPKx9>̓Bx6mO:5v[n(++[YY޽[KMRCCCoܸQVVplmm}||!R155MJJOOOSVV7oſV[G㓜\VVР8}t;;;qZ p[SSS[[KRnjcbbm7$%%2 %//ckk~z/w{yر ;9wtt6JLLݻo8::?>??UMMˋ`j4-==˗---3g\~AYɓWIKKFDDKKKݻWxE*7X?xRÇWSS366,Yo677+**蘚tkmll> ζh氂޽{:nܸy999/sWQQ1b^RH\22_Lݻw455M8qժU7o@)((<~ݻL&1bҤIK,kfȆdɛ}D [Ê3y@SSsԨQ7,\lAHf1p ݩ 0`<q<==ܠ@ILL̖-[TUUU_*{:XZZzyyu{42xv… y葄 +W.Xի_pV(='==`bb @#uuuЗ櫯:}^?3 ! Aʃ   ˗09111a뽽Y,}i2BAA+++455-Zyf䴀@ @ "%L7nܸqFT@ A)T@ @C@ @!@ @ @ @ MInbbb`r1uuocbbXhї˖-pADaǎ;vjժI&A?~d~b^^~uu#G~SWW?s̠P$~j?CLпdƅVVVΞ=~NMM4iҀ-;wX,6n8ss7K )++;{lzzzmmȑ#͛uV=˗/Ĕmٲ_Z\/HFidff啔RT55ٳg;;;v_x<^LLLtt/GmaaLEFFVVVΙ3g[/h4૯g͚5==zY}~yNNNNN+**NNN~~~=i,y$%%AmhjjjRRR222_솆ӧO:t˖-=ٴiSpps[eeeTר IOݻy O [ZZ?9d2W^ Hѣ 6| -- #9l{{{%%%E*++]pBɈA^i=zRVVVVV&Ņ``O j:gǏPnȑQQQDDDaOe˖z_~~?ׯ" (?K,9w\o۶m9rdOitɓ'O|Lϗ ^#G&NKYFFf̙nnnAAAh1)**Zj ^JPzOwQԨ> JAE; YYYÇ[YYԨ ̢9uꔝѤILzÇc_ʆ;0qP3336gbbnݺpuuźI&͞=f{{{-qY'ZZZsΝ3gNSSSdd$ ~rr2B UUULbcc? p(?oMW1GS~c@ 4 922mݺ3zh337nl߾U7Ht099Θ1%%% 'l}XXXA :;;CBB,,,O[O[f111?XYYDYYyXbsvvvgg'ޞ?;;;@|| 4EAAaʔ)u˗/VX,Y~'xx8:`֘//ŋO6MSSs̙6mzA&puu500Ԝ:uEvޝʟM]]=88][[֭[---:::b㣮26lؠ=o<___8[t.xbmmiӦÃydГbdddDEE\xy EZGq8sss---}}]v !PT ^`Gioo888`O=$`0g̘a1k.]4vX ;wtի[[[Q^vʕk׮&L8qٳg )uZ ڵk׌3Ϝ9!~K.X@GGgfff{e2HՓR~\t OvxNC#ѝC8,,,rrrɳ=!!@:::bcc322<_ Fz5s $;w+**޿OwW555+Lmmm@iiiSSmoo3^@qqСCpi)FOW^p8t 4U 6}t_?ahh+brKEE; 6=vXrΝ;wrrr߿wvv>z8& DP~ڋIDAT_z`0i g?\.XYaXk0HΒ%K ƨ ġC+ҟ?>*****j۶mdkiizzzkF!΄JZ[[斔0W^=zJ~ZŋyyyEEEfNVPPrRSSzybb2XyƌYYYYYYAAA0x.00055J?~իWo:t۷VgΜ)//ǞT} k׮y˗v 8k* ":۶m }}}'ׯ_O m}]~~˗/ Νf5-.\cngE{?$1n88Q\k>z͛EEEW/H"VoK!\"r#""KJJedd>}믿pŋ'''2̂G*)).R/ZGxۧ]"Z$RYnWiH`y`(((98~p_;wNx/\tIFF+s=z4[r @;+1co߾ד-yd2544455 ޼y&%%GxNGGG;99=y㵵\fb|ݝnذaՒiSV =z4|2l0gggxT#ph4ځC:|?C8։IKKӧͥF{nCvo-'OqU EW&Mu5uT(c~8pO>h!!!4-)) HF:T:uj޼y*zj8o|2vp893rE7gѻ KcA2&577Q( Q柸%//bNy0̓'Ov 7; ''ܜxe]]Эay֬YPGoܸ '1A%^1FbA&>|̌`5'Nh~ b :$6 _Ĺq5O ##GB: C ~5kv'Ͻ~DP,",:NSSc0o@lm\RȀfPvîE,~ G s}nc?)++{)@xnĉP=222>Xu9ڊ3ޖ`0޿ػw5jTOubr{Q~ (A>M*@Bg߿o7nHII }%@FFFiӦፋZO>YYYpN;99EFF^ZEE3g%%%;;ׯٍ1"//חJttttIBCCK ‰EcUUU<999._c92$$-uppxݙ3gn޼;bرc?9r $ŋiiieeel65fg;}tEEk׺jkkS VL{:x&VVVV%lb7DQQן}zȑ#G:>w\6lbWP(1cX[[/\pL&/00P@k ʕ+Ϝ9prrr\HR0^5+wuuuL<1tmJJJ~gXe3g\|u넛~_2Ջ u1.1Uѣ222 ϟub"-3\R ~)z 2F!Ƶa HxN$}I:Tt[PJJJ, u-AᒤOgۻKE YnWi 6HBҮ.###P&&&29$a|zzzW\f?|\`>$X\yذaQQQw)//RzzzcǎEr yyygggoo. ;l ]a:Cyy9f? zxx444믓'Oƾ}֭[l/-zI||GJJJ>|K.:$Gfv7VE?%U2AZ7F?V]?`z'}G Ǎ!0}&%u)8|9T$t;X ==DvA8qhmm]~}NNΤI_NӅ+ișF988DDDdee=~… ANN.1+^^.[UUt{MDLظq#Ͷ1[?ٳJ@PPY:noo̙kRRR̢ ᎡVQx̙3}a-W]]Tb<@@Z7FW .0M1g={vGꫯ<=={8X,Q=" v|bm)1_ZG(o9>2Wi|mHfrk8+HLL_`w)Z < \ROvgg &DDD_A(.$u/ɓ'C' CÆ 8|Oẓ &1K9s& H T/, Ny ޖpԈx߽ZG(o9>2g\1۠HT}J6A K*77{ "><z5yyyXgtttkiiݼywOe˖7NVsY|9a19&&Frtt6zڅ%1;w _M0Tqdd@pԈ 쒉qҥh99nF)+U\EOl^J{{;'(vi R^ T/d୯=?͛7*++ߔΪUnݺ+--rǏIII>>>ǎ555***W\!WUU YxpEE/^`1"((h/^2deeϟ?/N"\9s܄L-Z$} 4S(۷ 93f̘?Ã`̟?_NNGX$# j={cǰ?w܉9Ab͏}```ccŋǎ ݗ.].tٓfdd>nܸ]vS</##t:Jb!^^^Xdg*EشiSfffrr={/++fV\_Txy֭)))O_~u3BZ' IEرvڍ7t:vuF?,Y8qB9Y&000..Ʀ ܹXjUO{۷o䉍!C=( yDBvu[YY\.NMLLv%X|ymmSRRRRR xuꔧرci4K\\\>X8_qTgidUU ^~7nXZZ***(((,Z(<<:q;'N+Wt8HP߿mƭpVs,Ym۶S477+**Ι3g7'OVRȮn%%wYfȐ!<oĉ7n&21JcLN]@ߐ3::͍@ۈٲed~=RF '';vlÆ $y;LMMo޼ _QOVVʕ+,XpUIQ8+EC 011A@ :gW_>}ywws}w=9Ȁ@FR;##P__uV_:F ÁV15I0:::}UU@B~믲իWO>h0_[;::dee544Z[[]@ Dfsss RTTT[[;m41mGA'ȭT,||| ƫW*++455-ZyfK@ :S=Iw!UQ.B| Í7nܸ%@ KrK8s@ @ 1AC@ @!@ @ @ @ MIn;vL]]ۘu>-Z%e.<<ʓjժI&AyƏOY/| RuĿm?̒yA`䋬nIG+={6:iҤ[4wIIIgX4mܸq7n@ SVVvڑ#GΛ7o֭::: #z/_)--mooWQQ133۲eK/C+2 4233JJJjkkTٳuuu/</&&&::ŋFֶpvvhTVVΙ3K8_@h4###W_}/*Ϛ5k=z8z8󜜜ϟWTTziӦ(|IJJOԤdddeER1Mx,;wTVV̔, :ĀATݨH IOݻy O [ZZ?9d2W^ Hѣ 6| -- #9l{{<FvZtttHH… %#yqϟWJYYYYYYDD@=f0V*:*-{12]t#G/'"" {>/[ {/_~y+?,YܹspJYaxȑ</ :Xf,H &D)$uhT00[ϒv+CX=HKKgTTTvvvjjBssM޼yßӧOSNMIIHKK300hkkۼyǏ +}h'No޼N2bWǏwtt JOO leeWSS20ԩSvvvWD&M2eիCCC>}R__/++:vXĉCCClvPPО={!z>|u9,,ll6;88ۛl1H-g <Қ;w9s"##1e)JPP|:eddKE9tP}}}@@~m\\\9Akܹst$3@ >;9LNNr3fxIIIvءcaaa Қ>}۷o?n:!DKK PPP<..`eeBee˗bcc !zٝ{{{)S>|+V`#"++Kg֯_/6 z:.Txyy-^xڴi3gܴiӃ5 ԩS-Z{T4nnn&&&njiiׇ\㣮26lؠ=o<___8[t.xbmmiӦw'ȈZre/@>R-CS"6+bTUU8p|„ 'N<{,G?~###qF?:'lt[l!Yoθ:z,1777ߵkWmm-rFN\\\}||===OhѢs8lldd~^ҤO:h)dt[t%fr__ ?l޽L&6z8& DP_z`0}Ç199999y֭{%f P $79looOKK|_5##yذa MHHP(>>>rrryyy7o&-:::a!pVPP7dȐ &JKK Lq匙3E/f^~/9bWp\W__wԩѣGc JJJ⥁ϟ?_XX񴴴lll\\\Pp=5kVX!.l------g;;Ǐ]v=R+V066=z4͛ 5k$"R[[ Ó8;;pxfҺ=*vΝ%Ky&+++55uĉ۷o믿aY,?}ZCC@LMMCBBh4ZRRؔ.])J >_ԗXEf,FKKӧͥF{nCbl]ᅴOPPPΥKYf󻺺zJ#Ôb5>+:,, JJJ@ 5119y򤒒@AAo2Cހj0"!\377Q( ō7RRRl_| /qڴi>bR[['++۷N;99EFF^ZEE3g%%%;;ׯٍ1"//חJtttHIu@BCCK ‰EcUUU<999._9#GQ޽;s͛7}}}G!~;v#Gpႄ^x1--f󯉊4}tEEk׺jkkd:O#@ ~p$& b3FL>_(* ~'O,--<#-I}\vc3B駟_19|gg9tQpܸqo߾"ܻwCYYY. 4>e&bgy:1>~?v#F466V$ѣGpĘT__޽N:[&["Ь$''eL&: |ҙL 2T M?b@ϧhl6;33̌@pOQQQxӿ{MMM}]EEѹsz,:<@,Zޜpd5k֣G?noob7o޾};nܸ^|mVDnۉOwɐ`DBCS%Kzbb(CIKK_XXwU%AÇXAK 96,***""Ν;T*UOOcرEibA^i􄼼wBB˅X/"„Yy  ?8o# ƍet%>VOaffFOJY( ;zeF$>ט'¦;::rppU 닄ՠCBg |(p!\>4,| r 8_>''gҤIׯ_\t甌=&i4CDDDVVǏ/\`hhE8rUUUh=$7ndٖ"#Ϟ=2t{{3gΤeee]Bdn:~TXE3gߕP___uuulP+}F֭X,yl6^YQaL2EGG^Qp꫙3gJY.K@fdm>p&p gȈB0tUUUkkk Gi/`]/`J"'i06؁$&_ĪiJ8eyy]]]@{{%hoowvv̜0aBDDDO. #F#_ b77W0D… %y ѣ᮲2ۛdjjjZ]e 9) O()) K O> cNϢn~5* 4K8jkk1ҥKl6{„ 0eMBM @ ""zG/aÅp>>ϛIXÇp8/^<|ޚpBիf555 q%;[~{G`䕳TILOp}zIw,Kx O__RvOi571Kth4 TTT744\vM`yO?c466s(g4Ai>|c@rf7o,**~S:::VuVlllll4?~fWWǏ'%%;vNԨ_r_UUUrr2f _x9bĈ׿x =8!pr2YhQ$y.Bl߾]Z1c crrrplddo>b$%%q84 @ٳg;v sΝX,;;;,ݻ}666.^xر~ҥN߿Ϟ=iiiFFF ƍ۵k8222NNRjWO@ 2^tM6eff&''ٳgl6[IIiʕ8KEqWnݚׯ_w/a5#FرĉaaaW\accKA``۟>>eee ӧOǯ Q . a0555T*u̘1&&&|MRRR`` `X:::ׯ٭رcvr&m$=33ݻwo߾B9::?>??UMMˋ`j4-==˗---3g\~AYɓWIKKFDDKKKݻWxRGT}\kVOOϑ#G~xuɒ%!!!pHv"&ѓ'3ub2zw/>ѱjɬ9jԨZ[.\㎒H $/8;;>ݻwƍ7o@q١Ϟ=kllTPP1c3d\ p4X@Z: [_n,xzzFGGA?-[»TϟǏtJA KKB//nF2eܻw @#YYY+W\`իWRWW'GPz 18Nzz:GW_}u/~gA}xzzz{{SNo}W?~lggdȐ!~y/gQ[t)ƍfff_,_/TzB|C5IOݻy O [ZZ?9d2W^ Hѣ 6@#-- #9l{{<FvZtttHH… pϟFYYYYYYDD/6#4 C7nNkkkbq?~ @C]t#G"CE#""̰'ZZZ\\\ `*++'^l_~3`ggg]]]]]݋/BBBN P۷oǥgW B|C5I++!X5iiiQSS􌊊NMMSPPhnn޴iӛ7o755}iԩ)))iiimmm7o#a1po߾<vĉⲲTcc͛7c񎎎qqqYYYAAA̔Li.Ƃ z`cc#///ao>|%Ǐ92q^2߲e vuusγgϒϟ?oeeER̜9-((H`8IMM-++{+WVX\7{{JJJtzHÇTsRR|eLL̎;zY} Qe\}}}4444޼y!eeeĊ۷o9aNNNXXؔ)SW^żmo9vc ѝÆ,ؘjjjTTTfќ:uNZhҤISLYzu{{{hhÇBBBeeeCCCǎ 8qbhh ڳg11DÇn:88`2͞=f ٳghii͝;wΜ9MMMؖ=!Ç999u֡wp~:T__v %(( >TUU2epbєX pT… }||RSSo޼f`$q9t:y fLc߾}6mžyzz666 >G_4M/7IIIuۓXbLL>| mll @A̙3,Xp1HyP3&''s\]]]]]3fx$d;vPWW߱c󰰰ngwvvXXXhiiM>۷&_nbbb(((s!2t򎍍%,9gggwvvsPPP~\dJr bdeeՆ?AO-ñ4Q~֘//ŋO6MSSs̙6mzA,puu500Ԝ:uEvޝʟM]]=88][[֭[---:::K}||աCfVVֆ ͛ O-: ^xi<2SE322V\K˗/VX {G`2Hqrrco8`nn>a„'ZZZ={zczPlBS^^`ǛݻdY<~8''GFFZ-J% mrE˗`kk+-\X~.kA4ܹ</66VCC+cэ9VR*?ޑ9yQ5 0tHt;wܹ~{}|||||ѣGy?n7Q(%%% R\\+ħNs9s0aÆbek.(/////[tn1 1SvooC۷8Nzz:ZnxYlY^^^AAroBB¶m!C::: cbb"""F ^~`444(((ҒF"6X/8pBIdeeAӨb",r?j *Etq/\/H8466=ZEk @4lll~,wm߾rrr e-0#J Bo F$sޞ_Cfq MHHP(0`L||СCx"=9X[[[vvvkk+`„ R?+g/Paiϋs\b߿f͚ѣGK4p-?~,]]!:9|TTTTTԶmz2k׮C J -))a2^:z(J !0̀/򊊊g͚%^MM ??_SSfee\(,1cFhhhVVVVVVPP& ޢ LMMRǏ/))y۷{XT̙3^^^8aWZ5i$%K| `ԩC~~>077ãmڵ=*-----y󦶶vQQ?3g2Á#~߿6|p! r/^\ZZd2 =ğRt%IaaaZZJݼyZ "̸$ɓ|_~4( O Vp/Eӧli`j)ȜT(b Bo F$79d0--- 0Nk0sHtRSS 8*6zhrJ[[[.-j( nj?b&c>400prrzͷ~ĿvK^i[^ Kה;ݰaC`ժUAAA 6:k3p84غ>N_|9\R^^N񜁁BYd D|oݺeee=7/k'((/g͚0 hIII@@Vɻw`DGG;99=y㵵\f/j8ӧ54444$$F%%%ZJɡ>&p8믱%%%ggg`O@fI[ҥKrm)^de y&WtFO%&&ٳ'&&F燌@ittt&O|ݎwN0kUtO<ٰaCuu4p]I5_&0@9\P( ^X,@a.(f <O&\+0~Eb :$6Փ 4Úr"&`[^p gnk|ŠP(Q:$772k,2F/*񼽽9Ç{a S1⒒'Nh|ɇ!`E&eeeO>M8VbFF:(>z?T2͆{`w^a5j̒)犊wv+ޖ"J]f\ ) uuu[l3gܹs[} dŊǏ6[|9\]jUffattt7\ʏkdN0ȗ!3]]]qFJJ \ ˗/222—L6Mఇֺ|ʪt:zjϜ_jgg7bĈ<___**##M;4-44T&O\UU޿˩QQQՋ4 cɱc?~HRjkk9rdHH駟]V/pܸqo߾ǂܻwCYYY`cUU>>+d󝝝9J"J]f\拀) Jz{{ݽ{`dgg͛7'NvڵkM%IXbʼn'.\ir(~M8q޽D#ʏkdN0!Y,h4fgffv(** y<*@SSw}WQQaddt9ƃ-lCw??????'bQ|O9rȑ#ϝ;We &~iP(1cX[[/\pL&/00%͛I'!!!00J`kV 555---8+..1AmVRR?*9s׭['ܰ'^L+((HUڣGr75QTT444'? ׯə4i׻l9LD@4!"""++.\044Orrr`6\.6#4p!p֬Yx7ndٖD5_={VYY  8gΜIKKZv- %%dnguuu$yp뫮ǏS^_v \]bXL2EGG^p꫙3g#'#̤f͙\'HRD|5wF__ݖ?/ozA̢P(GReeepl%T!1;􁫥R~\#sR VGׯ_ƙX޽S:M ,//x hoo> pI=1۝333'Lѓو#`kNh544\r؏95 .ǁ[˂17JŸmCooo&W ;d 𕔔}Y9O!oddz_MLѣGÊeee_>m}1zzz C[[[VV()~n燘q%6=aRX"JEf\ JJžA; L&3/////T?jE6<H`Usi%KKq3k!ăILƮqؐzIbGM,KxB__FGvI̢ӡuT4**JlwѪ*8 s`<+P[[~nu۷½5udee1L8ߧ NYqd&;::Bzxx2tRȮeepdW| vܼy*!K2lذaҥK.?E۷DQQ{6?0NKq Fj!ăILaϝ;ݕcipÚdBOn~T ,,ŋPJKKo.{7ٴiӃTTTOii pqqQTTlkksvvKȥ...t:{W7nc2555Ϟ=Uͻ>yhϞ= eee, <<|p;W |+w1˗/@8ϟN8HbMLLiGX^^yzzBrׯ_Olox+1R__~%2^tP CBBaӭ[TTD\\\`E^|ҥKuaZ l6Wpގ=\kg%l{?}T]]yf___ ֬Yßȑ#4-''ٳg-5==k(MM3ftuuyzzr\/FRSS󆆆k׮ Fr`X_ʊZ)"ʌ|zAɘ>ikksrr a2>}jiia2L:&;t* \WcN#^zĉݻw;uDo)Ȝa$BN< = ͇?o޼YTTTYY tttVZu֭Xiii.;~xx ??NJJ9vNQQQr agd@MMŋ(**xsĈAAAׯⅅ ++{yqB ʙ&$$$$$dh"q걡!<<<<<\9Bپ}%Q.1 IIIE}J8P /{gǎܹs'M0Ų޽[8n}```ccŋǎ /]t)6߳gOZZBkkk{{qvEx OөT*5c bْ*EشiSfffrr={/++fV\_Ib̘1񇇇?\GG۷O ֭[SRR\~𳿿_-ԩS 00pO<2dHSS}׭񷵵ͅ{ڡ`/_^[[{!CPx[A|\ERȫ\22_dWHIIQ(  }Ii4v#J[th[[[Z۶m+((woѢEw&R*?9QeA, aTCfff %&&nڴ >>>eee ӧOӝr…!!! #77J3۩A@ ~ mgggcǎSؕ?0WTTTbbb~w޽}ϟQ]]jjj^^^ CWh/_niiQUU9s J̸NZZ:444444""\ZZf޽“: |7III bڮ_KJ>\MMήr[dIFFFHHȃ޾}ܬcjjjccӭ񷱱9|0z:F:;;ê]kkq͛$N\\\EEň# $zoK!RpɌ|zA >QPPxݻw322Lfmm-1bĤI,YwaGȆdǤE/ \o-X`ʔ)EEEgϞ%{rEqF~~>6lڵkWZ%0Rp)?ޑyFqjP!ă t .À_=􌎎vss!&111[lQUU~̟?Ǐ2bPciiYXXH52"ڍ .>> իW]]]-ڼy3rZ@ @ $ jƍ7n܈@ F @ @ @ @ hr@ @ 49D @ @CBDFF`,ǎSWW6&&FE}Il2 G,~wd7/IG+={6:iҤ[4wIIIgX4mܸq7n@ SVVvڑ#GΛ7o֭::: #z/_)--mooWQQ133۲e 333---//J͞=YWWWb!6l=ɓ'L4553gSh4૯ꗖϚ5k=z8zpŋQFikk[XX8;;h4ϟ?yyEEϯ6m7ߒݻwg*0f;;ӧ#Lٹsrff,3һ$&&޸q#//^FFFCCbܹE0___Qd駟U'Nۛ:u~۷c;;;'C QVV600o͛'~9B^^ҥK7n033*''gKIzrx=yrhhh҂pL&ɼzj@@@GmذiiGEEŅ,X@IDϙfh4ZeekעCBB.\HXG>4"""|}}Q٥W^:tq$Tt:][[[UUUc9rdTT*g=`0' VYY?ep/?̟?ן;;;^xbggw2vx<^@@u̲bd8Ζ-[|˗/^_z"i҈޾} Pto?.%<>jKIZYa B䯭HKKgTTTvvvjjBssM޼yßӧOSNMIIHKK300hkkۼyǏ +}h'No޼Ǐwtt JOO ~xȑ'-[ ;w={|y+++**XFFf̙nnnAAAƁLjjjYYϯ\b @TT/`ݻWRRBt@2v>ORL˗/cbbvBF/. <ԥ)(((++$Vtܾ} srr¦Lz*m;xy70H644deeleeWSS20ԩSvvvWD&M2eիCCC>}R__/++:vXĉCCClvPPО={!z>|u9,,ll6;88X`LtΞ=+DKKkܹsijjĶI- Ő>|p_[DsСoONNP(AAAVVV𡪪)SlllcjCReee.\hll㓚z5k #s֯_Oӑ6 g۴iӳQ9h~pIJJ۞tƊ+cbbmhccO UTT,--gΜ`?%AZ΃5 Ht099Θ1%%% '۱c;u{>3$$BKKko߾ug---@AA8 Awll,a1D9;;`ooϟ؇$S+W&LOt#++Kg֯_/6 zo Txyy-^xڴi3gܴiӃ` ԩS-Z{T4nnn&&&njiiׇ~_㣮26lؠ=o<___xo\nppŋMA*r^b\|b lf;CAÅ[UUuss &L8ٳЛ~PWW e r__ ?l޽L&999222m)$U .E4_Mڵk׌3Ϝ9!z%  V8t( ===--;wx<NjXt#GU%%% "}7ޑ9yQ5 0tHt;wܹ~{}|||||ѣGy?n7Q(%%% R\\+ħNs9s0aÆbek.(/////[tn1 1SvooC۷8Nzz:ZnxYlY^^^AAroBB¶m!C::: cbb"""F ^~`444(((ҒF"6X/8pBIdeeAӨb",r?j *Etq/~ҥհ.JKKO™PTkk렠ܒ&իGR԰/X[[ 8;;x"???//(00p֬Y 555\nVVVjjjQQʕ+b~3ffeeeeea-T*z񒒒W^ݾ}{С% IEϜ9S^^ՋKII ܿժU&MYdI@@g (N ?csss=<<֮]ѣқ7ojkk_60geeeG*ܿmC,$..LJ.^899d=zTII?2K´4*yfoqR+Etq/ 11FDD<}_@}M<7~>IѰ-kK});;0mڴXzZ ȜT(b Bo F$79d0--- 0qNk0sHtRSS 8*6zhrJ[[[.-j( nj?b&c>400prrzͷ~ĿvK^i[^ Kה;ݰaC`ժUAAA 6:k3p84غ>N_|9\R^^N񜁁BYd D|oݺeee=7/k'((/g͚0 hIII@@Vɻw`DGG;99=y㵵\f/j8ӧ54444$$F%%%ZJɡ>&p8믱%%%ggg`O@fI[ҥKrm)^deSN Tիw|[F#Ck@4:::'O{nGGݻw'L*'OlذZZZpRыwj`'Ma sssCPA]X,)/CC~]P&yIΝ;C0h99f˺:ɤ[o>Y`v L@5=!%%e,{ ߄Kh:;;=<} ٛ8q"Č !tP|d6 /x=`޽º=j(3^%SwV*-Ebһ̸1S,:{v[===eee÷l2gΜsw۷18- Ȋ+jkk?^[[m@/bE|rvjժLCCn=n>;:zn\#s†QDl' 9>ߤZXXܸq#%%.]˗KKM&pCLjkk]\\>}deeՋ{:Nwrr\zJSSS gJJJvvvׯ_ SUU1bD^^/J* 'Ox߿_{w|bJPxRUъ"Z[//\ҷm '*())/rrrۧytȻBzMϭ[nݺξ}[-[j<CG}%K\pFվcA'MOOٳg]˪ugϞ~ݻ#""f͚RFnV5sN I炖cF ]b!&&F;.--={vff/3̚+z^e˖aaa!!!'O|gNhTRQ]|||R)mtq &&&??4'O֬YChT*,**ӣGWΝ[le̘17oތ~zzzzVV֕+W\s1V 1!$ZX;&;v{{{eoN7rss%;w\O}Bm$%%~]vW\!)U0sСCC y'_Pbb]Hiaaf͚.]x{{gff1k5Hi'6\2!!QK# ?XfM||:j@ᵋ9G07XZΟaFV/zPa;)ZgllL)**R>Y~&͛ҽ{SNպ.]6c9LRWs INNq'}}_`6R)S.6XC>b icbAU ۷?N /?4ghh{3gB0)7gQ$SBݻGbrSҥK]WV̤c%HzxϞ=v?0`&a!Q>U9%Ιl'*hᦨfVŗzEA z^]qtty/ؐ7n8??O?+hu<o֭|>?;;vwsy\%fg&})ݬjį9m4?~L3gLLLS|‘^zB*++(lRJ77]5ΤUV4Nyjlr؀WKԌ=ZTb6 fq[G(ZXX7 c (֭[+ebQ33.&+ [rCa}vɊ lԱޠk~0_6***U폢Z^uGիWw/O0sرcbk׮tIasn*afU|Wܽ{W1)hYެe|>>$/ 霎V V$ꬬƽ{j3hSy\fmUT)ݬjjV!> Fv+O ʿҘ&H_ѯ_?:ɓ'叧k&xUUիW---CCC 9i$M'ξ~>tJn]۶J$"??B\,[&?ꅹ8qL&kѢ&7BcΞ=СZ5DW__UXX;--M53!DIY۷/M' ޺uK~ 5JaaaJ߶mrss߰ 3g !j F"?6#GB<<|8m)&^9窪* ===|>IDAT:)\̪R(DyE 8@.eee,44&Bf!/?ĉ'N_b:gpݺ*1-ի֝9ճU\킑;*'7!h:th+#F`իWӷqBÃ=== !G9z(M@=Zbû%… /_ljj?杻WTTWȏ=rww捡[7g+xbBիWo^n][qȑԚ o޼ioovlHe˖iK*Zx~AA;Ǐ?v!d֬Yz-X,f+ZId0Ck v[VVŋ%KBF5c Ӷn*RRR\\\n߾M{r˯^=bvEkjjRW ]]]߿OGzϟqSӦM_#"""""tttRi.]<==6<<ϼ ߿z4̪G!d…III.]Zv bq֭Noi-ҡC{zzz&&&1B__ׯ_pe䏜:uԩS[+'|py׮] VXqM'''===9--Nbm|!!!OtqӧO+&Lpڵ˗/?{͛7C qrrwrrڲe }$5M 6rHz;w##7n?ڵkB0??_&jժ{&L/Gԫ}qM(ӤU V6Fճgٳ!5""w-[9siZYr g7ۚyAU܄bf:][O'9//g.ZPxxҥK۷oO}_1;vk24i޵:0[MQ8xMtuu_坁C͜S5vr333VN#H$:vРAH^Ѐ ?|o7|CPech._/4BmA1Ν;-̛q4h RaaH$277W DB6fDFFﱊUVuڕYanP!êܨNJJ200h3P3oއa]t377///ͭ122:y{0@\sVu%&&>x555cƌYd -hjM8\` p/-̛f@84qMgΜ133fϞ]o3}&MvHȰ|A5BG۫>?wh͛7{\\ܝ;wD"@ ܹȑ#,X@7TgϞWifذa˖-0$))))))999WWW??(lE0ӳ|~ǎ?c77^zOd2Yxxٳg޽[XXضm[++cǺ FΜ9!C <T:@`ooO$ʛ1c !۶msss$=-7飯Oη\;Eg>oddԡCAM>o߾H8+W411IJJCߡ *&&酅;vСCkk_GU%l_w#)7XFn!^^^>>>|׮]?-|={*!7nܘ>}[[?|ذadz*'NH9}2ydBHXXؿR Vմ8p8+--e~H$BP(8q" `ر _~}yeXXXdddPPШQ4 ɤIT?`2Gضm[jjM e*RwwDȋ/^xlbbDehhheeվ}{UJ7nB8dkӦMXXXC%Qy!!!eXVUA#F<~ꂂwM>'U3lS'!M D"YtiTT{ݻwѣ} 5b#""BqxܹzQW^^sܹٳgرY3{gXAVUJDv+,,֭[~~~FFFo޼YpӧOO.))YhQYYY޽rrrlmm+**,Yk]],Z(00 w`ueѥKsDFF&''_z500W^՛7oNJJR8ҥ:::۷/]|'O?ʕ+gΜy $2[v֭JϪJ|||vvvjj/2eBHXXػ/ߓa/\ehh8|۲eKTTwss /yQkΜ9}ۯ_?㞞M:6͟>}ζP/;w SRR9ҳgOBȉ'ѶM7zFHӣjaQQQrr2ǏOOOꕩi㌚]vM>]GGQ{gUVV>|x˖-̯ >ܩS'BHn><|pXvZCCfU]0X]`ٳGሥСC\RRrf!ŋ.]xǏ۷o߳gO'''d~$*oͅy'MϪ 311111=z׭[:c $0۷2o})S׏݆NNNjDBJÀFWM4h$sx%TګW^z_&*_} Ǐ9RꠠcZZZٳg&5k|ː4h%!$##Cxdd$!d-DAěS +sʌׯ_?~8!dʔ)LM$''m޼yFַfΡ~Ш.//7n\>},,, p˗/7LLL𰵵ݻ1cV^/΢E:xb++A믥^^^4 ujذat ۨ#HC7ʪO>/PWe\v-,,lԩ}6=7)suuu nܸqȑ]v֭Þ={hvW_}eff6gΜZOҥKȰo Ynܸ[k-ۜMaf/_"WݓH$ggg+U}59jĆ.!2,""ܜi+6`ԵiӆVeee?S&~5s FU *&G=~zcǎMII;w&׬^xqtt4!D TUUEDD\vm}m>~XX\\L+CU8yСNy%WFee%mB>|آE M]0"|Abb͛7N޵kWUUUMM_r'&&l2??Ύ.$aaaV?>yɓ'^^^lN"-7"##5*ʧ|-Z_+pգvekҤI {/_NTUUefffffiӆ|ԩĢ"###+qэ7JR===:4,,Çgf-޽{iRI)̪b9-rUDBvک}5ņO?R>cǎwܱJߟ:u*!$&&F0DoNNNNNN d68wؑsεhѢe 62voozp޽{wayzzVTT̜9=zQhh+H$ZSwŊ>@ʢb"##׭['JǍwҥG Œm۶nZLìM |>ɒ%ʿeS8)U rW䪮Gwߩ9}5jMO[nBcUNaY9-UlMFFFvvvld_׀vzQ!dƍO>YҺuk777:^0k'NT^mNM'̬/_"Wum۶bbbvpqQj$Ԉ Bu=Ο?_UUu]29͛ⅎ⨍ꉟm͜ӂ=N^.4rHك lD"B,/;;OP( !+W)bFEy޾w^AAU h֬(Od{eQL\$ɖ-[ì;w ;w4՞"vZSu S&;%J U9GrInݪ0x<Φ%s~裏(7JMOUvey? !={ݺu7ڵkA:@K%bZ?b_|Iov۶mlìx9|bSvS3mQ]ʦM .]:xClx jʔ);vϯg:Q7ydW^ӦMKJJ;{l#n9Vz?-9x"!D~9cǞ>}:..P#*oZҧOwww/++?~|= ]]]Ϝ9g*\\`#77W&|2%%˜a5556mщ:zzzs۽{whhoV4۷߸qM6* GMHH[St%ظp̙C g}5HcXG0VVV 5ΉS7o߾ RnD !Ny󦃃[Hk3=U &1oo߾M^V_ήsϞ=bApBUU&SBڷo֭؆Y;#GQݔ̪R(e,Z󉉉nzӧOwyɓ'OվV2eΝ;\ҷʻj8UAII_|cooo>üئCB[A `ueСѣ'O, 83g*S޽["hpQtt|~@@@{SSS̙STTDر%m<|.CCC˗gee}7 0`ɳfRnAGfz ѿnddT$i߶mMTσ\F,N_Kd2R\?;;vwsy\%fb&})?96kNǏ<=)->$/ 霎V V$ꬬƽ{j3hSy fmUT)?9wwUOnB8ǭ†((4f !D$)W׏xI隯 ^UUqUKKGBN4~S_O;f D2uB2GϯY"hʑMq%BBB!t;vٳ?YCteW o4_YX9SB^20u}oݺ%X%Ѱ\%Lo۶moX8M%;rHzz:!Ã9heeE[e}]iٳgOkHNN BÇ&kr:?G0sUUU4AzzzSufS)*U jz2ƆP@־c'N8q V*VϞ=N'ƴJLg˻z*=AuzNaY.oB}r!Cڻ2b.)))Yz5 t$<>I9rѣGizъ+4-H.\xeSSӟYGG%'WTTWȏ=rww捡a;_N,3v\`$L͛k׮Dƍ .^X__ݝ@*//?~c!fbַ`+55nnsκG37&&6o\&yyyтI*FEE͛7O)y!!!tSWfHaa h4mdiU:?\lmemzVP*zeoYYً/,YK5jԌ3Oۺu@ HIIqqq}6X^^~Uoo#F(,,,_SS%J5ϼ'z}zɓ /3G"ڷo_ls 7E0*X}A_oUQQ$ JKKB͛׭[Gݻ7=ma4Ti{¬T{ĉ'v_I$~9gzNa+oB}r4_NMM%5sĈ97emm=mڴ_5"""""BGGG*vӓn3(ƍ֭۾}WLMM]\\~^tիq)`ll|]VZΛ7ݻcǎa&߿_%-['ԩSN%w`ueQTTpXBa:ݻ311qĈUUUloo~z+H tWyۙW\ EH$>}:sիmwqq9p@qqq:uD78q"Ӻ044ܰaڵk퍌+++;wj*\TL&v}ohh!WﲜY#,\0))ҥKk׮ݰaX,nݺԩS7M:$ zѨ|' GwڥP8p`Ŋ7otrr300())aj-$ƺzfɓ'oڴ)......'֕U/ zE-*MafVŗ_P;[5k֌effnذA4Z/-dtУ@ `vBlҰQG (GGGNw.\՘1cV^^NaY̹(5T!; ŋuNo|]:uDwwZy|C6mԣGD"H###[lIԝޣ!CΘ1}<dڴi111Z^\`2=ztPPmǎuuu ,--?H駟ƺUWW7on˖-aaa믿OKOOBꆜZO255 wvv611˻sΝ;wֽ;wnpp!CZlY^^ޱcŋh]۷wtt u3"qfVQsM6ٳYf:::NNNQQQIаINs󍍍{v})/@0aµkז/_޻wo]]7oi$o ^Ny_+̾+n+dPnZ?c9>>{6j޼yݹsG$ Ν;9rtHe{zj~~~6m l2kkk CCquu|\#)))!!!===+++??w?vssիWD&={ݻm۶;v@ h̙3ϟ?2dQN5?A3f\~m6777M3rO>*|˵/Z~FFF:t4hTrJ$===bbbN>^XXknn>pc:֨u___U_{{{7rUlt֭#w?ٳgrƍӧ100011χ y<"==}ĉӧO>\W)))'O& +kUMۍ .n̍C;;RGD" B'ƎpϟO/_EFF5JL4I +sm۶ߔ쐐___r(--uwwOLLdxŋ&&&ZNTVVV۷WĹq!C6mڄ5TB[uaY~1bǏ.((((({nPPӿwRW=6u2, TZYM1 RH$KFEEw޽{=g)+j_P#6"""ΝOu999999Ν={;5HwdUx_jNH[Piiiǎnݺgdd͛ >}T䒒E;...'''!!ֶbɒ%&!0`Eop VW.]t;wn@@@dddrrիW{U]]y椤$.]߾}ҥK?~<~O\r̙M(޺ukn8zѨggg/SL!=… YYYG-[DEE|77XPx޽/׾̙s׸S8٤cӧ̑l N޹sh0%%ȑ#={$8qmt㹩o4= %''<~W^6Ψٵkutu޽gϞ}YeeÇl*((POOÝ:u"tÇŁk׮U;$>dQeՕ ƞ={XZZ:t%%%gΜaFB.^x%8~xz}={trrB.J6o\XXzzѨ|===ѣG8pݺu񡡡3f@Ⱦ}!344D3XL[ׯ_p!s˫X_%ƥM͚5ާؘ2exxx~mF)D4:88 0`ԨQwpp0}DIkZMFB=.]JzիWe2Ylli_~ٗ_~pȑ#Ϯ ;ve߾}===={tYfɷ AYZZB222GFFBƏOB I>5`2Ȉ{ǏBLԤJrrY͛lOk}`:P~ pooqb .|r|D[[[ ޽{3f,ZСC/4hЯZZZemmݯ_?:K0[̌LNN?~~ Kg:BT*=tиq㬬xb:1 u%QƵk¦NZ'lscR:WWWZ RmnnƍGٵknݺ988ٳfg|Wfffs̩4/]T +ɓ'Fҥÿ[P^ƍ)))в)VaVR(DV߿ȑ#w]UUu=DBqvvV-}|\WFlXZZ2""""͙bF]6mhoUVVs9m͜Q;Ȫ F}j!tرcSRRbbbΝ5/^MUUU׮]=z4Gߢm۶?o7JСCN:tSrrr^|QYYI[hB+sBWH$W^%4xTlٲE2?~,?OaggGD055e߽{W,wI~A&~}ʕs_|m6M?Lx<^֭y<ÇۨH$GˍD J)ǧEׯ gaٚ4iRzzzFF˗ӷUUU!!!mڴ9;;:u*11HʥqqqDfbe=ztƍRDOON4 {*Yw^kls w7E0*( 'N z/=zǟ>}|GBvک}5ņO?!֖9!n*//'tڕѣG\0w`ueĆT*H$"ŋ3f(**j׮ŋcŋӦM޽ 4\TW^J6o\YYI߿?,,,,,l\!6663gQX΄;::eee l۶9r$<<\/Opss{;w߿>H;fddܹsB*&''߿ԩ,>|899999900 ۨ;p@||<߱cGVVփΝ;עE%h$ؽ{'OiznzM?ܹs9YQQ1sׯ?zѣGVVVߗl`&&&T]x>PauIq]tѣGB0##c۶m[?S0kSfffBB_doYNoafU|QHҐfeepzA}WcFlqCoSA֭[>}4cSX=Y9-UlMFFFvvvld\uu56w\OOOr~QcJJJtuuřbڵdSNuvvvrrJKͺ5 Z Phnnnaaakk?<66Vr^^!ٳ7oޔd~~~SN /Jϯu8.L6-00ёycڲeK777:XKvNZZD"7ndN_׀vzQ!dƍO>YҺuk777:^0k'NT^mNM'̬/]v |g}j*Bǵj۶-3pk׆+ W#FlB{qwڕɹ u7oޜ?/tttGm$X=UvsZ0ljSkFI_x<:{PWtHDQegg ) =!dʕ4S̨h}}7o+((`:ڰaf͚4KW.udH$[l>|xbb"}˻sN@pΝ\S$n޼Ykya*dUqzRiaa*3]^H[n4 ֭[Scٴ4d/}F]I񡩴6ӳΰl5oޜ~`'!Dg[n&^v9H(^~]~dXL__bb˗/ !~rn۶-m999ϟ5TlsnJafU|W(}@{zܦM .]:xClx jʔ);vϯg:Q7ydW^ӦMKJJ;{l#n9Vz՟ݬjj*z?w4簦ŋ"uرO.Ը{!ʛGaƏ_tCCCWW3g|g%%%侲 @ 8|0W(=z͕d/_LII{0fwMM !M6AAAtrޜ9sv۪U+c{7nhӦ H~~ѣGb1֔&]I}566.,,9s!C2A_ ~m5 UCsb۷o$QBȩSn޼9L*bUnhIx[۷o_ܹgϢEP.\PUUebbT)))ۿu3aN<߿zȑtp&9Ek70*+ lllFD11֭[/_|Ν;OU|v]0OR055U$5kL4b@ ecccE5/ɱ߷oBa^l!~~~~~~G!ܭ֠`buqѓ'O ~~~P̙3ԩSw-HRRR4_(::|>? C̽s)**"tҒ6 >|HP˳z 0yYf)g7|H|__722R~ *L4o۶MWWwӦMAs# F`ze2])Vt3cʔ){쉈`!tI43_F&uu)ڹ)o 3K_nZ$ j9sh=}4444 K,p8}56*.O޳gϺvU#Ξ=kkk[]]ٳݻwGDD̚5+$$-Vz՟ݬj-5inMMBLL*w]-\ZZ:{L_~Ey92fׯ5WW^)ڏ͛DGGKR:y~+5dt<&ӣG?c͚5ZRn)SxbNẾQ/L gѽUTrok*??_ሱ1!Hdi (//7o^JJJO:UftYNRی)B3 ՕIl7RGvҥF9j6,X TYհaݾ}焐@*Ns...wNHHHNN9s&!$..NZ*rCyVPPUNO>%޽[~$kffԀL?]Dwں:**-H>h6枾LVaX,;gֳ JY_.Azwёj_ZcC޸q>Ӻax[l5r*zvsZ0k8|1͜111N=˓SR^ɓ' GzETIz*++ܒvR8VZru_y\ori0X]g13]vtrWvvɴ#JlB a< Sߺuk屬\,`ff?%w`E;a~kSnHh!=7ZtO CEEErrסQt"o]׫Hzf;vL,wڕ.)yNMQ%̬/w*4&E""+ԛ'ӃĶB0=====qʱJDиw^-bm*ˬ#J9ճU͜Q;*'7!hҎ]ccctaCWtTZZ3Մ"+GWGGzϟqSӦM_#"""""tttRi.]<==6<<ظwnnnϟ߷o" &\vm{}捱W^!NNN̈ĺ涩a._ڵkWW^^޹sٳg+$S# .222''UV`S8)̪R(hݺg̘a`` ɺusZSi322qnjC @жmۡCnݺ5..WP(-ͧI4lԍ5ٳۢ߿ȑ:::FFFÆ ?~‹V9ճmͼ FM*UNnBxt1jo=yyy={vѢEt×.]ھ}{ojĈ?ޱcܹsq?At ˍnڴIWWZ9YINN:uQN8+333(m4QD"o  2{}7t'˙ ̍M*dؖtܹs2Aͼ y>>>NNN k+D"sss+H$tކLȠ4=VQQjժ]2#̍P*dXIIIM}FjM0K.UUUzzz幹555FFF'Oׯ1vf9 +Ⱥu}I&`dXr ښ\!rJ?ݻwoQ͛=..Ν;"H tyȑ ,@*޳gիW۴i3lذe˖Y[[kԔԜB_]s|>߱cǏ?ͭW^92,<<ٳw-,,l۶رcAM~gΜy!CrQE@ '| D͘1널m۶iٖ}קPy[?~ѢE3722СàAO޷o_jd+W$%%!P sB]]]ss;vСFE#Gۻb[neee///k׮~>Ϟ=cu7nL>]>l0Y'N$>}zJII|Z|2,,,222((hԨQdҤIQ0mۖ*!!!L=119ŋ/^$&&:;;h9QZYYo^ƍ4:ڴiPIT^HHmօUzfUnB;aĈ?~wݻAAAӧOI_ dBGSie507H!#H.]%޽{;zg}8}rC؈Ph;w?Fԕ;wn;vh #VwU}i;;D#Qn5B;v uV||ћ7o.\SKJJ-ZTVVֻw︸[[ۊ%KߚDWWw- =]0t2w܀WիzIII0K&&&xxxo߾tǏ󵟨>+W9s}*D@$￷nڭ[z.*=^n4*٩˔)S!aaajOpBVVFn˖-QQQ|>-66V(޻w/<==իW3jv5}tEݻwٳg}VYYy-[0 *,,;|pN!ݺu;|bq``ڵkÇcTwسgKKˡC<̙3L} ŋ/]ǏOo߾gϞNNNVIT͛ >ZO`U/7>gbbbbb2z[.>>>44tƌH`ٷo!d޼ysc&iKc .d{yy+־¸tYf|SLׯ=B Ո:HFSSS50h<7iMHhҥKRW^z߿L&U>/433/9rAAAcǎ۷g4M>k,!5h KKKBHFFHBi[211#""47էq eFFFׯa0?N2e Sn(fu7or?-s@~A*4ýǍקO ,\ 5=<|Abb͛7N޵kWUUUMM_r'&&l2??Ύ.$aaaV?>yɓ'^^^lN"-7"##5*ʧ|-Z_+pգvekҤI {/_NTUUefffffiӆ|ԩĢ"###+qэ7JR===:4,,Çgf-޽{iRI)̪b9-rUDBvک}5ņO?6lmm/^8mڴݻ[[[O0! @Ezd͕:QJ–/_^eaccC9sfL|c```ZZZVVP(|m|#Gt77w޹s'==裏رcFFƝ;w,,,Rirrr||NJ<"o߿Ç;vdee=xܹs-ZYMݻw?yۻ.FwÝ;wiii3gμ~G=zjeeu9s&&&T]x>PauIq]tѣGB0##c۶m[?S0kSfffBB_doYNoafU|ѣmo|w*f|j_AyFEoSA֭[>}4cSX%~V5sN F *FSabbbii!Ɔ>4Q]]M͝;ӓܯ_}qԃر]]]nqfXvd2ԩSR)Rd H  O>ccc6`B Ϟ=zMLVQQ7uTXܰxbT:ZW´i7-[tss4i礥I$@qF潾ɓ {͛77449[[[kkk7aBHVVauӑ%I`` !cܹtG}D05U(`iiYDQazspƍ477'!C XUKu hG+H6nHO'![vss6=qD9ݔz̪b+rU׶m[:{-&&fk׮ W}AFB X[[UUUϟڵ+s*ꊋo޼9/^(,HzЫ9-)5A#Gyx<=(߫VzzH$"(򲳳|wAeB'\`z޽{W6lXjYf<Ͳ2LHA_ I$-[ ><11ÇYYY;wwi%:===E"͛B AMVwJ*r>E?̏&.@0oݺU!ax<5VMKKK*,GqQnԕDqJoh3=H VB{uFokטtJŴ~P%&&|*m2نY;񜓓sZC6hfVۢ"M6yyy/]tCE`Ԕ)Swؑ_ulne^MdggwZGܼs'~V5s F߉;ZsXSSsEBr2cǎ=}t\\}ueݻGU޴O> =4^VV6~z9s>355-))y'U0ÇUl=rsse2˗/SRR?~<>>>,,ֽza0jjj!mڴ u̙{P__VZi۷oqF6mcfGIGiSvS3K">hѢ'&&޺u˗O>ݹsɓ'O<)_TrTj x%K.\|#j_˓ٳeՈgVWW?{lf kwՃ^Ϫfi/I\Rv(AK,ĨrBg̴_ fׯ5WW^)ynnn>>>Ryj$`o f'O֬Y3l0m&KTYTTdggG̯Ν;l2 ˘1cn޼u+W\r%&&رc^cBI]RkݱcGqq*^)77~PXs'vHRRׯ۵kW\\|٘R5 3:TYYikk;dȐwո)*/E&,,,֬YӥKoo̴4fͼ}5-Ć+W&$$V#tuu=zk֬B'rcLks ׉_,-i0{=MT~~cccBHQQ4Q^^>o޼ݻ:uv鲜)fI0+sTTI0tR 5I ,jذn߾sBH``|IMy9CCCݻw'$$$''Ϝ9`}-YL<+((*'ѧOBv-?533cjZHύVff&C.D"jzimm]]]EH$~4  sOz&0sJ,ӝ3NUNMQ%̬/V__ptty/ؐ7n8??O?+hu<o֭|>?;;vwsy\%fb&})?96kNǏ<=)-6Y_9x ӳ3MQ1̬/V_P;[56D,¶ϟ8qĉ5_UlPQG|v:166Ub:<[իW ;s Ϫfv|kB퓛m4i:ޕ#F0wQHIIիiP(#|OOOBȑ#G=JУGVXnDp˗/:::/>!ظ͍B~葻7o kZubd0]j&f›7oۯ]6:::;;[$edd7v*,Hxb}}wwwǎ#̚5Y߂TΝ;ICtܘz$ؼysLE &T5o<䅄M]#6lHUaV=ttth" ?sٲeiIYrC=oͰjeee/^[d/!dԨQ3f̐?m֭ %%tX`yyիWG܎߿MMT*< P||񢢢'O*S#sHHH$j߾})̪bS|UEECPPP(,+++-- 7o^n!ֶwd&UlPQgccC5ݻW R'Nعs_%H~'9s俎9Ug[3W` M Ҽ~:55R׼#F޿tܔi~׈TڥKOOO͠<7nƮ[n톆^255uqq_엛{%BȫWƍ|ݻw[j8o޼w;~ @\lY\\SN:u~g(88888X8[b&Q$:tػwgbb#h-~j#66V"Jf>۷3?\G`H4}tիW+rquԉnP;qDuahhaÆk&$$WVVvyժU6Lv5"А3oCe9 QGYpaRRҥK֮]a===XܺuSouVIYrQO8;;ڵK0=p+n޼䤧g``PRRtZ;;;IuPͰ'OߴiS\\\\\] O&)+^\uu !-z[TV9*̬/տvj֬ܰao-,,hDj_Z G@숫`aYYYQQQF322.\/1cƬ^Z6񳪙sQ0jrUBwryŋ  >x]vyyyuԉCmڴGD"8;;GFFlْ;G=C 1cFy<ɴibbb<=ztPPmǎuuu ,--?HFO?466̬yvvv[l ollܻwo77۷OyBȄ ]|޽{yxW?j'''fDb]sȰnnn/_vuuڵ++//ܹٳӪU+fz)VafU|Z(ƍׯ3f -dA۶muָ8^kB@\\\4&zlҰQ7j(gn#G 6 /VXVmͼ FM*UNnBxt1jo=yyy={vѢEt×.]ھ}{ojĈ?ޱcܹsq?At ˍnڴIWWZ9YINN:uQN8+333(m4QD"o  2{}7t'˙ ̍M*dؖtܹs2Aͼ y>>>NNN k+D"sss+H$tކLȠ4=VQQjժ]2#̍P*dXIIIM}FjM0K.UUUzzz幹555FFF'Oׯ1vf9 +Ⱥu++vČkjyOڳ'jAjѢoL…z}#jrbݻoiGڵBA.m֬m_ɟAWSa>|i*TÕ+995V:UUR"C0@V\7>0+>4!h{mdг'RSC.]FDH$w1u{P*%ђٳKMM-Hbei 4ܽ[}9X!!U<^O/U>O/9:2?<{vhSRYxԩtlqM^))`߾C|itlizz 0U?;7hQȣQ ' NnUcZ W^&C/766%wW|ig϶|СG4SgkSn/]ŷ8c#ÆK..!51b~6&|ZvxUAMeg|m 厎 >T5'LLPu<=$ t{z⦅=Dyt۶vL:5r?Fs~aPZڼe˿WtCΝzW4 +ER) LܼxrN'۳LJǓB=s7ʲwFGcGeoBC2PܚᆱOy͚-*ݕ+޽O995H!>RD˖Ev#Gfxo@ČU0sh@8!IDATV 𯕛[HzC@@8!4qC hA@ѩ;vT>xo>}555bUV8'dq2N8'dd_|Iޑ:t:{D͛xfYYdq2N8'dq䪪*TZDifeex`R@8!4qC hA@8B?33Dk2@#C@8!4qC hA@8!4qC hA@8!4qC hA@8!Bt#1A!4qC hA@8!4qC hA@8!4qC hA@8!4qC +(!.sUYIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/0000755000175000001440000000000012531573210024712 5ustar flousers00000000000000python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/fselect.png0000644000175000001440000006422612522231731027056 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME]gIDATxy\TaeDq` {*Rntծf7-Ӳ_h,MKs\nᖠWq_@QQea8 'fsgws<!>3uk.'|81> b])lXWR+_CX׊W^wH+t=;14_JDtAh24s $g(H&PDM1Ҡ[g>h h"u˶nlb]ir&+TPcX j13Oj/$֕_T|Đ *DIrB宔BXtp5(QAj(NT j1}(*MD:Q \鞒6:oI+4v5Jh]u&+e29ə ёȨDI;$8c>ɨbDFNDJYj%DDMD?驄DiX ?C+|OJBrdޓVL@+J@e, "l)d^N}$e(HD+D]4>E513C4JBk~"7%$gG@r[ks|tH ;OJKQ@jȦ}'خnVLD[LMTN=0 `1A=55u+e{Pb<³FRi(DDD$!HFD4jRJD4WJ2tԳ>({Tcѐ.J L)PojrJ%RD/QBgWS-}%"Ҝ2"BbyCGDtH&bDD눈^mٺ]:2%<"!1Tr"r*bəAR:*' $)TDi#}&#"2f mPKkDBkST mt]/ޏF!KjHR!KDd[ >3T}r8eBSWCo & "e[K'd7 /S;]"$D=D!+5FV/ʴ+HzZĉ!cu)9sfo(%"2mW=3CDou9&""WmGvŠc|))䢮<9alaKDTtxV +/`+TtHDT\llIΔX =т2"V*9"-Y՞m_DDU!Ts}!#"R1@)Fg!u:z#V%X((QA Z :"tDžFHl%"Z%JB9JZ ̾qRʉhBCEDD?`q:c$ CLVӔRf"9CM40rsr)I'CB"")C]EUDR4 %Ii_ SS d"zoj v)3 C ]0bm[L^^TlPh1%jU wрz6аH>xl_H(d _yEge7rl}5kܯ]s2D\ZZ~\33z=#,ȶ2ڕ:sY'4,)LćBQ6JHpܳǥn4O0uv6 ssE5>q1!@hjNۧOX͛Ç23ťmݺ|BDD,KӧEEUzxкΗ/Ku:ЭCKKoK|}uÇp $c JkWM׮TWT畷(+֭sOMxΞ=.{O m۔\cu?n峲˗{~aJ[^jzdf5EF?smc†2iB jq׮9de5{hv4+_V6jܕVoJ4nv![,CDLM89kKAACy !*:_^J$,vteeLVJ5IAZ1VyrF YY?WIMu8r~5wtl^_\N蚊VeEÆz__Tj""wwiӊ)F__Rώ;8:iSqc}1.w &-aemke640M&o 4xШG$V($j|UkX]۰+F#F۸-+Ѱa |MgΞ O#OvSY̓ƉI?w=pbWDD MΜV+~ LYe q6ZigWh&DԱcWaGGSaV וF# lQi@,f?+Z&+K,5m[ omWJx62Ν5"X-.,4W}m; /]bV$*#"˟tu5Wh+l}IpD8˝{UO1zS`\TU<2mnRuG,f%V0n]Vb}Rs1&_vCE J:$%9&%9*40XY-5qu+J `A[5ѨՊ܅,[o쎼V)G''SQPcXVk (7W%V(LYYƍuD vհa^xĝU,K,` LfUb/С^(3hFR4n\^a05qǬ,q|bĈ++VP zE4HB!LDluEu^lkzwWJxmY"G~a;:#}m˾ʻ('G__.9r=1?` s]uXC>ȆZr%xڴi&E`S<>;*^,f'OVh2aCRC|ㆤTb|W_-"BZ^fDt1 iP/zIG"JNkTz{yiؕ5Pt?3g kK%OtP0i/چBaMWHzsg\$HXhbEmj]WH>JRT]tY`Z4`PT{2qqq'NYyxVǫyf9n8,C ӧOZZ9w^?S(<$..n!!!uB>+ϖ?|auf˖-:>@$hѢkFD [fͥBСCG{+OThh?ۛd2FۥV7oޭ[_{{mI=wVT7n܈lѢEPPy~5o_o,*//_hQpppf÷mFDח.]ʽ?ym۶vuͶTzpϞ=-Zh߾}tttQQz- y3`4BaFL&S.]ʔ)QQQ .LOODt#Fkƌׯ_􌌌8qbRRҌ3SSS:4l0\DDoFϞ=|;>>~ƌFիgϞҷo_հRy+5LKK:u?h4ggg4ĜD"і6_ZsGmzH$~yСG&"nʒ%Kڶm0LDDZo?'O_f ӣGn p"ٲ'֮]CD.]Zn]j5TJ ϝ;GD~!T 'u޽ׯ_oXCKm1 CD,8jV'''׏Ν;_vMщ'R""Qsvj~AR +h4_:~xii)Adɒ{^ZGmD"''[΍3+..6 K,/),˲,ݤIOOO1(^\\T*oJeYY`L\*Uڬ0 o]fMTT@ xcbbb1A /T7q'ZsGm]|UVB+ͩP(D"ѬYc9QFDT*srrX}CPX}DVdJLlX\\u֏?8888** Т:v􄄄~ٽXܡCԖ~ꅄhԹP(4Muk.11رcڵ{B5U*Uvv6E%ۗ״i &psssL&ݾ}*jÇŽ{&ϟ?~Æ DԹs簰3gfdd0xxxxxxxxxxxy{{[ţm($v*((6---%"\^uN)/"4JQܶyxr|؉e+VQYYhtrr:'PͣmxVBCCS@||||||||@mĨTO>rb@@o?VZɓU2n8"RT˗/7/j*JU^^ν=p@=5kֽ{={gkժA;v̲&?sϞ=[l١C'^t ;@m9rDP9r?q'׏?3giӆ6lh}'0`Μ92eq3}T?È#Ӿ}{"ڲe{=s̻w߿m۶^!Z;;SbŊs ":}4u)44Ԗ ZgŊW^gΜYr9 >}t1..;v7x|fرeeek/t@=zT(N0A"9rm(11_D$^yĪ999l͛ƍ[ ɰ^H>V9־}Ç~Z>hl7h4999UאƽM&vS؏e٣Gvԉ:w|1XuX}/&y6Q[^hݻtQFq?Se###y^H>~.\ܹ3uԩ̙3\gTT6.ۺu렠umذ!<<jժ={>|xРAwƎ{!>|aFӶm[Phyap5i$>___nB "Fc<^;w\￷\T*߿e:`|=ʲK/ĝu01RrdJvo)wqtt6j(88xV:x޽{D.80##}CPH>^jj͛SSS ߊO:5rȝgϞUDm䄈nݺU骓յk?KhL&ӑ#GtRuK,KD lРP(!{g~EIBB^ /**d2=z"##:ڵk޼y{7j'fddL6m޽ӧOOOO9ɓ\o[o5a„_7n8|p;n2v:zRy<==>>>111+PK/ZjkҤ7| t*$$}+Vݻi~>L4idܹw/&//ݙgf>ˡwVVc-ҠA4#O:歨uPTvm\  ?~x~~ǹ-lFSL۷޽{-Z=s.--mԩ/M-Z$4 򤤤MFGGsgΜY&vرdɒ#G~WmٲE"nm 7t@zFh6mڔgju6mo_y~X=z!Cs}h|f]\\so E?@9ۖ-:zh"2S=w}ܰs0>>>D$׶Xn]>}}" С;cDDF 4ioH>VbcccccHTnذ!<<\P(oJ%… c:ubŊ3gX!"eSz=o޼ TmW_4h4_6lX#^òŋ ƽ:˯\< >A믿ً--{CD"#9|00m۶BÏL> E"yJ޽Sie //JS5kDEE _=&&+hze>T %''/[lժUhTP!ZiԨQpp0o޽5^urQe_z%#G̚5ꜗ/_nժoooSl3 8p`qq֭[?ਨ(,,!BˇM:uĈe>ֽ͛7>V.(((<<|ҥ$U:ujȑ;{7Ϟ=kyl椧'$$~+S(ǏWTٕGԸ-aڶm{qmAAA̚5?F+|Խy}U[)&O}:,,wڵ ~~~ٳR57n܌3.]ڱcUVIRsΝ;_RV*7>|@ i߾+䣤dĉ3?ѣJ2((<^<|0|l߾_~4hm#eyciӦ?FӬYڲfΜ9f̘`+:thFFcccǍg4>RSSY:uyaÆ-[ 1&//ݙgf_{{{gee=))) 4@3|]aY6$$dҤIcǎE46oEկ ZMD:u 5ZgŊW^gΜYr9hѢYf5.]ԩW:t.˖r5(YhX ˺+4Qn_ur\SnXOeEEʍ,(wp]Xu$SZ׃ ! Dzt]NZy_~e@@DW^ILL:[ͻu믿>RLѥ.͙#keBLOD_Yʈ̼y2" ED_{M\ZJǎF|ܼ%Q)Sjv`qnW-[&++cٰ0њ5rkHD3fHϗ*32LMqv****((1OiܸFɩ:ZZh|مܹR.]^xE|_?q`֭+?x#ؿߩysARoʹѷn]زeaxxqED4`O?~bbsQ˖rݺQbT}5|e͜YڿK/jUxSTTDDeqrr"3zFXK c>LBhѢ~DD/(<HD&h.\p t]j2U,d>\"rqs ),d ""-,dFotS??!w6Ŏ^n$X!Iwz=*a"bYxN 3@ z[NwrH#n0WD./^8 Ҿ}N=zT>O(|PVW~Ma>ɓ&Ov0]r N~= i4󔒒J E"ƥمn:SPrea$""_MlNeǗ*jub, =QnnE.Vz ^+iҤp3gM>X qqqqqq}yʝ;w===|VZ Z ]H>RՕ4"`>HT2D|f,%/yy +eYs;2//ի'*Y"bsRP;sirnp0:_/ ?HD<#;%"HLT$$(j8z'{8#?nnM81##cڴi{>}zzzom.~}/_7mt„ ,pKϝ30̅ ŋlϞѣ%&}A͝5i0Ib4$9%׿kkgiJ4LPjY9~ P.]E\Ku5$ Ǐ}}zZ˹lK/ZŋSN={7|ӹsgsۧLO? 4h׮]+\/G">W,흕X4hЀSm] σU<@nV<k[X™jذAg:ybuvzG];w^Iw WRT*ոq^x+X5:oCTe]!53_xBggӪ=$;~oٲ%))),, CN)1ѐ#D" E.uRܽkڽ[x#ȵj^^^D$ lۃ۶m;oE111kݺG}0³KxTy[oI,K=<%%73MNYY.:{ʍE\g'CKd;j4+WGOJ+JNuzYstYL.tķvHMu)/wMKsy=Dַe]~>{aܸR" y{ la&ee~s2/2f̃nJc>싡V>MjprshPH>ح[6o<1c߿ryRRRRRRӦM3g4/:a„>Zn]vv6 O?GGQ1c$NGAA‰{`#ӻ*!~5qi);f`5J=hlii)k0R|"}M\bc_}}/ ft~rӧ;\)oJPVƶl)XBn˶lm[-5+yǎ"S=\e />ȾZa#=kܿ۷MD׳hPH>Xqqի{&$$0>>>>>>"ٙ{T*K3fԨQ,ˎ5jȑbƍ&<ƍ NJu t3=kT* j($}օ-[w\DD3mY= [J*eS*~{)3sJYt)zᅢ- ~ĖtJ">JzʔR";W*1Ve;MDRËC5D+D[YqE1G^DۧOI>%ӧ0D=nQ|}}=<0:_oӵ$ eݸ#lѪUww(,Mܱ?PHz=-XPFD_}%WVɉh"mYke[f^^LӦ 'Q(ڶjRC" ={&"7_ȈHb v/V*o#ɄBRٹs88dDV ̙36m:f̘ݻW6.5pѣG/\VBQ\̾rMs^$ltxꔡuk#si&'Ճm=@φC o[ax|M? W|1w~ ST*jܸq)O $Pmٲ%))),, xz`g^^^D$F|@/Z(88Yf۶m,ݾ}{ppp۶m͛g4V<ҥK&L ޽͛s5k֬y+-ED˖- 9r3Ek޼/7Xm۶vղַeEuK޽[0WP/!Z8q?vGFF:t\t֭͛7ϟ?̘1qqq禧6jh6m~wR/_rʯ|޼Ԏ;,Y2rȯ*99999ټɓ'GѨQI&?ٺuk51cF.]֭[׽{ٳgݻmYaemٲE"n[v>~͚5òwx}=tPBB7uРA ֭ۙ3gvݳgOn@ OrwǎK[O>>u%Km666aZFFFZڵkbbb(<<ҥK֭۷mYae)''-[h|&M-8qB*)"Gzxxp4iý.//_lYXX_fo.+,{PnZ'''׏a*Qչsk׮t5ܹs]v5 =wmYaR˗/r_- ~ๅ3`OOOQ'''kPV<|u…v۵k'H/^Z2ك ^ODEEEz^T\\\aɒ%_|7eYe4ibŖ+T*eeeAT-+,99yٲeVFRaYv5mڴ(mYYwJuvvj<{BDfӧ"5NBaBZ-D"mWCNQQԩSGuQ< j1DT,jZ777Fe8'0m۶=~8 55{-;t萚abؼkAAAuk.11رcڵ-͛7[NqYf999}h68ܹsXX̙3322O Ⳇ4$lhԨQ>~ƌFիgϞbyrrrf͎;vҥ &4nܘzϞ=w1tPn;vT-N2%**j…5jd2tRz;vXd;ӡCիW;w򡲷nڼy/^|Ν;O.'%%oѳgh"@;yd||5k#z=O]vmPPPLL _tiݺuC,/X@Pt=22rݺuÇ'aÆEGG߻wkݻ 0=aСG&"nH$yu׭[קO:t`YZ\\zj}:t(!!_~ pODkCv8qB*)"QOsu<=44ܹs͛77Kh׮]ZZl=z(ݻwӧoݺe> bf9Xxbhh(r___u&MrrrOxWPPYJ|r\d0j5o߾vپ}-ZTZ+**ըpZjB^} $`?Ròl"BZ-E EBМ 6W^ݳgOD$ mX,Faa!/$$D߿<|n]vǎk׮71?~xV)E@@ٳjkS=aڶmkX 55 F^sp ܹsXX̙3322OsFFF.\0""͖j斕qFn߾MD@q͘1cҥ;v\jT*۷gϞJ<:j ʚ5k,Ynݺ\__ɓ's#""+VOދ/6_BDAAA/E"ѴiFaΈ 2:^^dffСC322֯_;n8Xi؇3g3fLIIItt GD33̯gm]PoTu6?k֬7oZLu-Y̙3uF,ˆL4iرPcARٵ-yy,}Ι3NV(֮]k2njy--|߾V\YjԨfiKmWH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>WH>W":%?z)?_j|咗^*5p|Y2nnƞ=۵+JK2a?xL{Wdly@|Yurӽ{Vd-t̪U99"(}[ܮ]Z-ܰJ77#LXqc9Kj~arO//àA#%))2" *Ɛ̓uH>ꌷ7<ʺ{WtㆄaTR"Ȑde}}ul< **qCjٳ!C +]Z.=:MDBG^ ^u +N]6uGt҅XZZ۶͵X8qb^7nHVضM9{= Y ,#ftJQ \ʦLeڰ-aܸ|,yx&;'5ooR<< H>P(;̌F&;[$Z('ftNN\Qy9srD柃uw7Μ#Dws~h0cN{86τ9Y 5ԃ6O;∈̄BV.7 Z*~ݡD:8DԬ.'Gt޸!Q Tݻ'vXZZ*8~m jM P%ÓμRѣNֹsYRǎ]]jN9#zAQn×7nOHptsS$'}|t'<Μ,lYl6V>uw^ :f(~"aCر*^grShhIDDQŻw/+?z0`@ u.̓L^^?ww|U6.???000%%AJeߚ屄33$+$+$+$+$+$+$+$+$+$+<;ޖox/!SAAAppmii)sE(B""JKK3|؉e+VQYYhtrr:'P"*Z 5?Ol+$+$+$+$+$+\j JU]Qff&l'7?~Ssiȑ#g̘F>..ĉO:[l0`@6m rI;VR5ARݻ5T*J5nܸ糉o\v۷ogz7p'Z˗/FFF9**j\-0~~~ l٢>糉|<)k׮m׮]Nٶ:pBAڵ߯jBClˋd2`N' .ODAAm&L`Rdɓz-={hѢ}EEEݻwT7nDFFh"((҉۲B"ھ}{ppp۶m͛g4.]0aBPPo7olj$&&ׯy/7|cK4?Ov?Jo۶-44׷k׮Q^^hѢf͚o۶m͚5ks \d 7]V9T*5 qKrϟ_c Tkk֬y.eXiU޾}[u_b}/[ae,[,00?&&=hlweug>7ߖҦN:~O?4??r)SDEE-\0==] Xߖ޺ukϿx;weE5Z`?OOϞ={Zɓ'GѫW3f\~=&&322z /rƌڵo.\`.1cƨQzuٳgۗ+8qbRRҌ3SSS:4lذ#ܬYcǎqƍ>\TsǎCf۱cJ:Y7ٳgtt4Y_TC땿|߯zǛI.**ݻ7hР6j())d2uҥR媬|;v,YwСիϝ;ku+ /H>^l s?cC=* x䶬x}=tPBB}РAc^nΜ9{JXdI۶mcccP~e_^5k /hڵAAA111D~ҥuqɓk֬o=zAP]b  E###׭[7|p"6lXtt{G޽{Ȑ! D"ggg-1Ry"|\.رy)"ر#dlP$<Ė\ϵnݺ>}pDAAA:t`}WV^7Rv]RR2j(3׿?^ZZy^}U۷e}&Mp˗-[׬Y^ONNׯw&Ν;_vMYdJMM5(jժܹs]v5 r)":qT*C$7o|ޢ]viii&zT*wMDOu,uJ9r92;wѣ;s% ݧm媪\,^x144)liweuzG݋tqqqo6---**m۶c q[Wd~- E .\fĉwӧj_{j %K4o,fgg[aII^W*)nnn,R*eee₂OOOsc{-?`PD$]s۷h–]V] Td2ك/@`Sbqppp^bcc6m矛mM6C+lUU|ȲjS ]/_[9F/++|;poݺ?A(ھ-[VXծ]MfR Y B!f͚էO5RCB!KJJS,_+ .3jLEOT,ȃhX ca֮]{={L>{Jm0L@@cSzsN-1^s9;;bˢB[VSJp棎^:""|0swwwe٫WV]VP?^RY9c[veYVkhkX,СCjjjˇb+5dM6/^ޖ^v\ڮ]Dcǎk׎{jo.(`%7n^?~UV,* jzUhlV*oe/`gt "OO)5ư6{2Wi۶ǹ4Q=Kz'u5&&f۶m=zrrr̝6m:}tXXܹcٿnǶX!0ݺu۴iS=h޼yܨ͞={bwDtoذz Ǎ7o޼^{-00?=z9s;>>>99saaa3gOOO?yիo$ɤIMvʕ_~ŲS"##.\Qo߾}={T*9#Y:t4h`صkWjjW_}URVb[VV۷o-{SN[l[n ƍ7cƌKvqժURԖ&jeWG]ZfM@@#o١C3g~' ,5jTDDy(h6mh4f͚}זW.ر-Vx{[nr5==ƥBBB6o_L۶mҥ\.߱cZ+$+$+$+$+$+$+x{{#5BQ+]tag򥥥! 5Ba'Bw! ɇbqDD0xxxxxxxxxxxxxx%B8Xq)Eaa!QH>*dee!`Eǎ:&G^lْ{h|||||p-OϕY  )~vҷm[:"ciyƏ4t/99od ;91 Dni+?tH7Ӧ94c۶m(ђSkX}{!}AlPI6&Md[__}ezk_y]A~( tWŅ 8PsiSs)Ľ>sLnnVH$>>>!!!Rݛ/fff5l0,,+"'Ofdd Rкukŋ.\(..J͛7aٿÇǎۦMz-#oJ7DqƲ˗/xyy<۬p2yfʕC,Fh4۷oذaaaaM4!"sv9fffFFH$jذ!%$$XpYH$ܹsYn`سgOjjVW\Μ9X\\T*z '%%%""bȐ!`7Vk**Y#fǏDb8++?x"|B_~QQMKJuׯ?)E*vgxуfU?v$7N2|>G3fo=l0.׵kΝ;L&rsJ HPV&_DԺukT*Qnn^'7'˲AAAAAA ,ؾ}ƍ˵kFXtճ,*J6t(Z{wƍ!5oޜܜj㙎<3H>~F#D(RSVDĝpqaql}G WWFd$g`D"d!Pf˫˲ʪ6PHDrYTn2ܹc9]Aʊ4T*H$z6i" .Z49_zuwNu8P2d$+8]j9ȕ+&"uk+-2CDFb;&'M/=Ѯv׿eKرo%iX`4Ҟ=o)/ZG>$$ԩS۷o߰a×_~6jԨ=zp80P\ե̣{͛7gYvÆ lJJJ9aя\KbL&ӑ#G~-ZL2eСro#oc1FCD3Xyv# B>l:T[Z_zsT?59c$> ?LFD/ozh͛MlBD},NKsm֬px[d2٨Q'D2~N:%%%t [b"*jJ,߻wmy{{իWsrrp!/_jO>mwd%|N>2fa6o|Сz:Y싡˗ ʈHTZֳyOp@f.,:T2m7XlNŃOyęFm K?cCr9s˷mӕ?qKHHHHHHvvw}VHگ$4T=uԩ- /ǎsww7_R#?? .ܹS"t ;v?@n۶ ˕JZ_\]]߿AAAz-JL7}14 6pw|||7zlm٢M]̝+mLxϵ?O._nsg_3~L֭~x6.lEÆ ̙Sa\JlFSn[D$Hz}ĉׯgffvСƋ39bx'O}^wuu^|ELvB@#6wEDD;v,//veyCsѵk .pey嗭oEiL^^{=VɥUGAT[ wplp屄13$+x<|06nQ{h8yxr|U6ZjJKKH.E(BPvC+W|2"E(BR$ G@ 8^!^!^!^!^!^=ڪT2sC ^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^!^ǔ|||||||||||||||||||||||||||||||||||DXx3|M?IENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/menu.png0000644000175000001440000016363112522230770026377 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME 3A5IDATx} T0S51R 1 %BS }Ԇv3EIͪ( Vmi}z"!%$J~3̙qLwys9RCC@ rH@ d BvūWmHM@6@#@ d | )@ B@ :@ d | )@ Bu:R@ _q/"@ 1uTR͑<@ BAssMzzz#| ;xlrD N@@ !SP@ LA@ 2u>@@ !SЫ@ 1P,좑@ 2E:~'tzGG<N>>> 8 p###:Ixƍ  Waa$} ,@z?;hiiYZZFGGs\1vuuW~Bx񢣣)SLMM׭[WQQ!{t<~]8q̙3mۆTJE MMz~vuuNpǎ2ke˖ΊA7rܹΠ~Iccc6TRRB*cݻd2G){޾}榠cǎѣG߸q~=H=zߊD"*++Bo۶חf_999w<\/))ͭ_|رcǎUVVH$[1ׯ_?jjHW Ǹq iqBXS pСl555smmP1A0wꬬ,1;7n?uŋwڅ\zu[[?[d2Vs9rݻ=z/c"VjjP| ʒO#??u&&&Ǐ<4kkklX8%%63334i}ZZv^`TpÆ )_޼yCӟ?O0p-:ݘ[[[Z[[k׮eXZZZ666bpǎt:orX̤Ϟ=fX{xN߹svDDDppΝ;2\| y`L88ӦM6mZXXNKb+W~w$eoomllK`"`ذa1ljkkqGvobb=ի &QPPWH;eէ6ZZZ0>}4** ;;Xb555K׿U]]]VV&MLL駟 .]233m!M "C C1L~򔔔/_cǎkN6m׮]$t;GqqҥKi4ɓ'ׯ_СTI25kVBBM``s<~"~mmmŔpݺu?ի===yR&{xx8J L6?zggի;::Fٳ'99+((_~)F```QQQHHB)*****~~~...W^ݷoHm3fڵ111;wLHHŋ>0LQQQO22R__ɓ$)66ӓpFNbX{{Iqㆦ&D3fePP8tPVVƻ\ 㱚g\"F``%fYYY?>y$_x_`p1T*J;v,Dl S_VjiiY|9 ~PQQ~b/EEEDXθ8uuu''ꄄlim`ii) $$DNNk8L_CCCE L8q0cۻwo߾ PaaaVRvvvW611e| nd2yԨQ\O---ؚȉ' <Rːky搐qtbmmmYYY...#G,--ŧԛTUU]\\nܸۡ8nR Dgg瀀ь3tWRR|?--K.$|xyy]|A-))quuo UUU3*--Z[[cN+ fffٙ}]qqezzzc<_#F̛7%Et bh4}}}l/66VGG6^v-,,lmgg;iҤ|UMRRR–*++H$EE~=_1455ձYf=Jt. =̚5 ;?nܸS頢"''ZQQG HwCCC_젹+22LRT*K]TAAaӦMeeeؓ0.?B闄jjjܻwN?D͛7<+**^zşHmm333/_ a2Æ ;p`+D"a8L'rrr lٳ ѣ,h4HwHKK ĂV^-I^^^rrr_}UDDnFmff5k544 999#F?[[[-[Fe|IC?u*0''gܸq>>>ۼysZZիW׭[_?bĈ9s8qbƍ˗/oڴ 9o)՗2b^~-A߿'H$@ѡHwptt$O[eܜ{n333̋`x* i DB QTTtssVC7_ 2#Rš/i( ɉ}ia:JKK v&\M "p"eee G ɃC 'xۅBr8) w~̘1}F3d?oݺ%dÅ@SSw  -,,eD}i3j(qtxggE,Xꚕ/ J:u*>x`ee%㵷}疖ـrrrnnn?3#555x'W/$ʛ7oc+@ ך5kt:b^x^8Ϟ=7Nfӧ|Yk_` v(ziCYYY"- ^š/qEY;p~̙\. l-s"?qVUU \#])**/.|#00pɒ% D(+++++&̜9ܹsϟQSS_Ng۝JJJX|2--F!//ĉFFFaWVV;vd̘1SHhnnnggf_x`0鰡8 {!H_W0`]rfc/VVV:_ @DWٺu/W_9rrr"Rb 6l6mLKKÇ ,--#""lmmϜ9S__/0ۧtM099ݻvvv***ׯ_%Ld2uuuI$l޾}ֆihh:"Fr)S+))={o%k׮񏢛h4"訦FR mQZ4_"EYǗY,֎;/^yٳgy'X- '880<M"%%6l6l@۽{BCC߿jժ}>| .8p@`˗/1?_{{{d6gΜ[b73a\ȄojiimذsrrTTTf̘[J&9qīW]Lrqq;pm۬,YBRi _|wގ&"r. &H~~~˖-ԔfݻwϞ=˗/wppX$اtMPOO/'''((eҤIǎa0w͖-[_wWiӦ߿ECCcǎء$yfnnn1DjfzjժU?~ݳg٧Ea͗HEhq.\g|D&&&]]]ٳg'%% >ڈ~~~zr力7o C5Ek^oJ]]O]]P2Uw޻wxYvڎp$tyCCvx_@@Ut{HCdeJA!?d@ .$,4@ b:@ d;o߾ vtt8q7[O> :r@~Bg@HLL={U||<~##^z̙3{߀O84{l_|鑌pBHH_mmm]XX{n˗ H-Z,[ YkOSʿ=ׯN:i$۷oԺu~իW'&&zzz޸q3fڵkcbbZ[[wܙ 9Sooo \zuGGGrr25nzzzddebbbJJJ@ d˗s.&L d0o߾VXq>姸8///>>бvժU---111˗/gXϞ=?~<18a.+//({/^TVVN&$$̝;aXd1ĝtW]FVVV'N1b޼y-ߎJJJ$IQQQ7hrrrm۶y3fܹs'88xѮ ,((HKK÷CxOUUU]]]d|i.{ʕ_XϠ7,LQMMMX:$ [] ''?._\\\l͛,X*FFF|RTѣG#E PSv>n޼?қn7eJ+%jjjNyU[[a19R^^~ ̨Q(JSS~"b);'\.~\WWw=&)2) c<sa2cǏTa1TԩSl+++$I__8 III|@ O|x<^__r^ pvv>>~x5???X_~y󴵵O>-''~zyٱ/^0⸸8q|eZZFKhjjݽ{7##cÆ Ϗߕ+WlvffTTO8eaaa:::Ț1$b磻{ݺuO츦[ &k֬YYYYd2yƌAAAb-[---C /_żf+**^p!>>~x^o}QQQ...qqq~~~/^HLL>>uuubN|Bx  FDD836 Ο9a„_?SPP@kjj DV017++^[[ÇԤTdeeU\\)**6[绺N<" @dի &%)FGGǾ}&MdooD}&҂ӧOc?!##CSSy`())Db2 ciB@ '|ԤڵkժUIIIpFٳ'99+((_~c=zW\9rȏ?ȿFggի;::!PTGGtLzz:Ng͚`cc(ZEEEX8y\zu߾}###-[SRRRRRh޷(fllə6myxa7n={vrr}ZZZQZkkbwttܿ ,..^t)F;y: ^. 㧟~nݺqՉzkCX hjjbl6[KKKA^rѣG,2X55~!O游8UUU7nܾ}{\` k߿舝ۻwXׯx8K<<<|}}߼y}G633sѢEؾwNbX{{RT*uر$iĉA `0"JHH;w~ `Xo2yĉ}nm(c㹹˖- R)1QZZ  $:Wٳgwww?{.;'O$HMMM j*OOO*jggzjbc/6 Kw2+tuunZPPSM-_)=vO8QKK rKJJ\]]~yUUUgg'֭[J77o?yDRC"D666r81Λ7ʕ+v>!z׬YC|H 5kVwwٳgڬ ԔL_( rA/bXXX9>$NE.g555yyyfxUH$==r|kkkUU' III%ϕ5򁽑lkk &_$~~~W\aٙ}p \rʔ)JJJgϞoDannnggf_x`0y,nvvJ zƍ7n2eʣG~-HU;;;bIyb9@| ]80vX++9shkkoL*++8b` XhÇܼyKl6{޽_~%1 y}˖-֭366622[lٲ[wߙuqqyA+z믠˗߼yرco. ZƘ={7o>gaaٳ 6l޼9??_a>aӦMMMM߼y۷w؁ #>>~ W>{ȼDfkjjZF/͓H$oognܸ1==o U~z???333./>PBH.S^AA]]ן "##߿/ЂYXX_~d1>Z@Șw޻w{ ) hhATTUUĸNm/f͚Դpk-B ѝlkk۷N>zԩTW ib| @@.@ ˠ[p@ u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ Lz#""Nݻh;;;:N}||dcRRRaalb,[_̋tիWZ;vipE&<<ȈNuJt>/GGG 2e ܢ m웯om~www,]v/;7oTVVy?\Ν+**YIIIE i<pE޽{111ٽooAZZZ?SSSnQ6J`櫯:ym[n=y򤧧'RK!K5ѣuuuǏ*zܸq.dv7n@z*P(+V@52|ɺ:GiP`0׮];l0,{{{mmmccc___1*]]]'OlbbrqdWW׼y֮]_ޞ.\cahhɟ`ff&N왧6‡"K-WSSŋ3t:]>jiiF>}ck׮eXZZZ666)))yx,6:d2 4Z|R`%711&RxKz')0֢ &x t:(@ZZ%^Lӆ V\)رN7\.?}abƃtΝ;#""uttvIDJs=¾, --:tzjj*[ԀC+ *553u}y󦁁رcʍ7Ξ=;99y߾} ---"S+..^t)F;y:L>rH^^^ff& ;;;777&&B`KJJnݺuرs r}C O\T*1==?NE奨XTTTTTl,áh{INN _DƂh^rѣG1 VTT$ѣǏ_rȑ#?cNN<5]vZ*)) OR.8hQ48773m4VQT^^YlllŹs 711Q|1zk0f̘kĴܹ3!!eD\/ CSSv)//6lXyy9ZZZ"]OJ( ڈ4[n[n/… 1moڴc5RvxۢEgΜ,"''pqq'H}}'OH$XlMGGg;vl٢GP({QVVLHHXd !2/͛/h"%,/4qDL5jv` `VVVtttǂh#119 `dd4c ̎L8q!\99{***O>pqqq...7n ZK\\UenneD*ԩS,+""`oo_QQ 䈙(JRcǎU/1UZZZbbb/_b={FxfDJbs=¾, MMƎrggobYI~DQֆaĊ4Ç߾}knn9s߿vwwoݺUԸ\nII+~W677~[nԩ'Nܸq#ɓ'KLfeeeOO?/Rذݻwkjj%pmgg;iҤzšp8fΏ7nԩ["v&RBhiic (kQw~Wd``Ң///ϼVVVzyyoٲ[+22rx{{x<|VNNnmmmnnnXwuu555_-3/P( .t ##X[[[d,byǯ[.##_~;wm|RTcJn9 5P99qEZ JnQdPnn)StttD̯y*&򉖘H(60H$݁$y81E'RƏ?|;wtww[XX1X^^NLÀ6BHq~x#c7oFnnnnnnͩw633򂤦L&ΝFaWDDšC=X^^~tVD8uԓ'O6o, uM6ᗵ 2LP>~?䈬enQ...;wgKԤ@&_Z&f )!̉+j`V D344t| ;S2XFHi|477߹sgٲebŊ< *++YN|ܤP(g{֭[utt.\`hhϞ==+((:u*AH3c```0jay)++ cxvqwj Hzzz؊6@kk]L[xkOܢ͛WSSsʕJ1;L&3??y-&y'Oo6"$ź>޽֖p=?iu>~7*b3FFFjjj^NNNPPPKKˤI;&[)))ܰaðaQ{~&M)88xݶY,֌36oL&7mڴtRy ‹,۽{BCC߿jժ}AA 2/6իUV}wϞ=l۶JQQqɒ%T*Zd,6<<|ѣ.\PWW?pԔfݻwϞ=˗/wpps=1$˗lzD% 3nnn#q#"]FA  6n:t~zI>TτPQbW]v '  $$$DFF޿Ĉ.E񩫫״ r"Br޽{ghhx=uѥ44?wwwh"<?t,r"su>>=۷oG@ H$Ç!.@ Af.rCQ;@ .@ BH!]To񽈤e%IzRRRaaW id__]]]地RB՗LLAÍt҃ ֲ xUJ&5@#2ܹsEEEvvvAS{D K AT-{bbbQ 0trvJ 21TK^^ƍY'YA_1U P]]MPVX<}WE#.]233@5??u&&&0233tg<==Y,> 6mڴi°bTee%N~!&`0/c߾}fff&MOKKQEEڵkY,MJJʀh7---hӧO]v/a`#ݰaʕ+  ر` |"--ZKKҒ_X&&&4/LQ ]t:P[[KI ц #""Beoomll&&&''ª|p@?>cݺuEEE ܸqáh{;vlYYYPP$EEŢ"ŋ}}}K"pJJJ&Mt-՘0a’%Kyyy˗/3gGEѣGW\)//_f ^.b@4/LQ4877۱3m44Ϗ >===22믿655+-- aHXYYq5kք{.77eԨQ1LLLNJa@̗! cƌYvmLLΝ;o7~xb-[``Wߺu 0|p,%i6MeRUy"\䡎t;qqq...7nܸ}6V呑'O$HMMMvwwcuvvũ;99UWW'$$`EH$䉉###m bc[[[q,X/D~ffW}B"dQz %I(2BٳGYY3!!|:ubEDD+**vSNNn޽ӧOE !Uc7e˖'$'N(T 0wobLMMEJN BBBr JOOeee9AdU sbL qvYjUKKKLLY,VppgƏOeRT*uر1<@ahDa[6)U"u;oQ__r%%%WUUuvvǝ7oO455ձYf=`kkKR333wޭpq{](,,1bd]GGGttIrrr0EI/1% 'OƟLfee%6tYZZʿ5eQTTĎ$yܹxׯܯOy<^yy5v^UUUWWWJ GWW{֭bb::: lvAA}%*tbL@YYD")**k 6 ne&%|#3\.9oy<^]]\lQXT*xw(… /]066ֆG.˟ C7\F555ǯ[.##_~;wnE ֗~ 0Jmkkß7E!N2ḘÇ&ټ4Alllee-[Db2===3f(((p8X^}1_&݁D"aOX"''i@&ҶP pAҲyRc>o(++䀀sh? aD"]]SN=y$++K`kaR(?7aARy<^/_޴it[[[kE "wH Fcyyẏ IAAAa^\\\RSSwܙ#氇0FEPlW%ͭ955ufffDIIIGG`Ν!!!:::ZZZX,NU 1_-H] E2X;}U Iɲ1<||P(SSS3P(Ī)**200`0MMMnnn"%$Hzzz֪*qİhooǞn1ƌxviDJ:plVđ]EE͛7xO<}^SNZC&_v-&)/E*j޼y555W\A"W9e⧹f:.qAAgΜrw,H]__&fCo1 "@[68hO4Z~١쫲ϛE||.YB899N>-IaÆ_~ӦMiiiyzz:889lhh#annnggf_x`03g}'| .arrݻwTTT_Ku`X;vXx1VgϞϔ*//0QqܡO1D-I4ߧE}y`[6v(v1|/ZXX<{lÆ 7o ?燿J-_hzxx_̌a#>>~ W>{=nnnޡ?qvcǎ3g%C 6j*׋˗/bfjjf_r\pX,͛7mڴtR~>sڅH/E*͛7lbnnw}gnn.ݷlْn:ccc###} _AAA˗/ycyĤ [0;{쮮.lUg}A|>DlkOlPU)&%Ic>t!544TTQx "!!!22z@DHO]].?a%dzX~ի6>Բ!w޻w{@t1;a óoߎ[ƐH"=H RTTtԩT 1]2@ ̦]䆢v@ ]P@ Lz#))p05<¾b4wӧ'%%9r5ӧ~qKKӧ'&&ݻpHn޼ '''1 &`NNNӧO?wx_`uo}'O}V>(((l&kiiyWbI@]ZZZOFEEat:ٳg,իkײX,---<ʎ;\]]MLLw ʲ666N7\.%??u&&&Ǐ/0 A:d2 0--ZKKҒ_QmJE%%)SOmaÆ+W?  FDD4|ٳHbApCCC[m@EEFa`#G322TUU`?D |8ZqqҥK̙ӈ555OOO Hϟ?|?<~Çϟ//_>gΜׯ=Z!wu2^ aU)و^___EGFF~צqqqŎ bcc㽼꫈ ɺ+22444  $HR\.Iuss3T* o!^p*a^kS$W_}bŊ}0 r^k6D+**677[[[?~p 2b3 H^/_<}tjj*J2bx7nܸuVlx v8:::;;x(˽r劗I1PUUeXfVVVϟ? ~;[˗/oڴ &fRݻw􉲲2Lghp A$ ǏIcb(++755?yH)/!%[hX[6qDWW׫WbcۨQ( kxH$UUUI?bĈ9s8qbƍ"ER\4 "P_n4!$lzUSS|jbA¨f-uuu+Wtvv|ֈD",nyfcc"৻ ꪩIMMmkk/>E8<hii)))ovk֬uuu+))ÙI$^yy9vekkkUU:d2[n1Lk̘1%ze6X,{{(5}***o޼mɓ'xk_PPlll~Y/FMM RQQ^ JN:f~b mmm|PR?IOO600p1ݻYLVUUņy0?~LRG%_H}CWW7;;QMMJ X$*996w٩\~˗d >}pa! ;;;롭Oz{{o߾)//D/q9ssΟ?-#$fÆ ׮]srroiifkk{̙z|-TTO8?<'faÆ_~ӦMiii[Nďߕ+Wl6|~.../i[?賾Zٳ~~~K.MMMmmm]f$APVV_(:|p_3k׮agƎ-055]`nWW˗9NLL Ǐ]'fyb|nll<}뱠Khjjݽ{7##cÆ @ w>lWVZG__={?pm۬,YBRE梧2iҤcǎ:EJJ7l0l0===qƺ%Q[[1|ӡÇ=zuu77{~ժU#$ѣNNNMMMl޽{ٳ|r|/O<ݍ/p^ &H~~~˖-ĉ] \\\/<Ȅojii‚՗-bo455Ϝ9k׮uM<9)) P) ba%x"૯} Nȿ"$77{aĘ5kVVVV}}=L1cFPP f.\?~|@@H {^]]]6D !x< ׯ^i@|Ƽ{޽{ض|[Sϫ#ŋiiifRTTLOOojjZp!R @ @B)**:uTOOAjj*{@ F6@ D@ ,A@ 2Es_c0-*..ƃoɒ%L&SOOWVVjjjzAc b u ?8{lmmm++IRRRaa׻baۋGGGKhY1sɓ'!10c[Iɓ''Lf oHȲe Nܙ]z$%%>wQgrEGG)S[F'r(z$~www,ʮ]Q rѣG ŋ^^^999ؖG;vl@@L>s指ǵk) 9r@_|EXX}©_/]z^f:$s:;;$5kkkW\\칤߻NƐH$]]]1wGHsm۶חf_999wח* 9H/Xb]|qM0 rrr>}s͛/^prr/(((@>$,ΩSL̙3vO6:TKAA$0 5551z.{q޸ N:xba}Wz ⟃| >|ȑ(+h/_gCCC>-ٴ8iiik׮34##CUUؾؽ!TTT]biiiؤ`[ZZɧOFEEa  cWWx}}n<411tԩ}7|xbXe6lXr%3??u&&&ǏGڌ MMM|wY~5^Ҭ)1N}O\TTdeem*R*СCL&`Z|X}VV/ amh`+&Ibb?!*ធ)0?)ٳg,K6 b؈jZ[[?|?yϽ^~tRLrry_.pׯNѡ{n} 0Ξ=;f̘)gFF+q^fMNNάYJJJ bccEh={;,((HMMQQQxbGGGl@A\zԕG^r|͚5X}͐kZYYOn255)CqqҥK̙ӈ555 bKQ:_|9s_8zh|L6b 6疖#Gvttܿ޽hCϟ?|?<~ÇqۆhF^UYYq5kք{.77eԨQL bڀOS A O?͘1b \\VVfll Joxs#ayyyVWW:Pn7l8 .lڴ M)~Öp*(($&&s#G3s &2o+Vy&~H, .%%%/_8p`Æ \.W^^5so,X'beeuLGGGF&Gɯd3rrr{UTTTWW>}۷1NHH1cݻX+&H}}'OH$XmCCJSNXyHHH;´c`1{?666wrbb$&&:;;cgoL8qb#䥥?I <4 [j'J[z bڲ\\\FYZZ& J())M2ݽm6&Nݽ=IRz! GOO;2Ā iUUՌ$[[ۯk׮9s&** |dTTqֳhѢ7/^ŋÇ?qX?~h#==]Um۶m޼… [n rvttDGGN4)''^BN>=###---,,? "PTTĎGZ>|8\.cgͫbC(--2F amh4mmm쑴xĉZZZp8#q7VkC[n-(()M0N$LxI ih'Nptt_,X `XUUUl6>zH؀b8rǏ; YyIᆍBF;G<|ƍ[n3|ӧSSSwhN}KKˈ#VrX,#f'Ozzzr\{ ,,Ņf??'/_ a2Æ ;pw$ѣ1Κ5KYY9c 999ݷobcxo߾ yA xuuucǎŶ-쯢 T*  " 5죨=b|yرbjC^^^rrr_}UDDB D„ 6F1緶.[,""͍dTTTΘ1@]]SGIIItt'e> 7l焌>N" nݺ[r3rN!::: g=;::ĉUPP#a27olllUSS?ި0|M_.& UUUihhKEEk {gTVV&U@y {pE)++755?Zbb`)))w_R) Ǐx11mܚSSSwmff%I @@ؤ EEE777lNiiiAAΝ;CBBttt$fÇ7n\t)~bKr/a#>'8?^GUU+Vhkkl  >Əann(w"< .. ==][[SUU}1~T*xx?k0<{ 0n8q===;wA***o޼Br8) X a555yyyf1ozd?oݺ%-Vq3f $`֬YgϞmkkJV)$IOOZUU%64f:^WW'f{7|X;v`[ZZ={iRO>vϱ˨T%1>=E6Jac+C)v>۷o_pANNnԩڎҶ6l=3ŋ Κ5+++L&Ϙ1#(({N||nnnl Ǐ Χ98m6+++EE%KPjd_zjժ?ٳGd&4,8yݞ={bcc-Z4o޼ 255e{ݳg{)))ܰaðaT$)))gϞ}+T>upG^pA]]щ__nnn }UGXgώ^hb@*ãϯc[Be];x@OO/'''((eҤIǎ_4Yd;=Xl޼gll1m@diӦ߿ECCcǎLLLBgNJJ|@)mܸ#::ZBSib؈ $PE$WTWW*^SS#""{y $I>킴@|Z޽{ghhx޽/;CӉ$,dSAR{O"HH|!mH$Ç6A4\/@ D@ ,A@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !SP@ LA@ 2u>@@ !S{?iggGt $%% ܱc+1Lћ.:~ա^% %1>uNHӏ9n޼|MΝ+**}=$H,((X+?WH$PT/D b咥zD; Y744}G?~n޼i``0vXcc_K(**/^ IIIٵkWyy#Gͱ:p84mϞ=cǎ-++ RSSstt` ,++366䅙ƍ׬YݻܖQFAhƹؙiӦijj.]:gOFDDyzzZ]]-''GRݱ t4g֬YC=z{ʕ5k`X @0EFF~צqqq΃ǰtvv^#--MQQ"!l/_>gΜׯ=EJM{{;k_!L w=%fĩŸ?L&>?$L$4>m^YԐp"Y"-Z077?sLwwgD"&N ɣFŽinnSUUuqqq۷1Z` k߿(2>aX,#G:88@BBB0Ӱ\\\{,Vnne˰H}}'OH$Xwww0 쌇7o @ffEH$"'N(lLNNn޽ӧO4W/1!.rΝb`jj: .a2===3f(((p8A200߲e .!MMM}}@nn)Sttt]]]ۛGCP.\x%@FFWPPɉ,1᱈@>|rT*4zAhJ522ڿ1f~mPԶ6-$а---~S -j]OĬ/?~(`[ڐ؄ټ0DD.y&6:7H|M(mmmSZZZPPsΐ---tya SSSwmff&ԝ;wk dr@@ܹs/h?8uԓ'O6o,!&X_FEP3߿C˰G1gΜ'NlܸQ(FYY_MMM d2őDUb@-j]o0/Q(?gckC XPw"i ;w,[,oVX~=3 My1koo---%%%$066.((x̙3\nbb"f^Xvk֬˜7o^MM͕+W*++Br8) B ljjrssAc'^b‹Kz[ HF#p̓?aCRSNe'0a2[n1LXEE͛7O<HᤤV  bsX5G6 6W^^lmmmO X'qA:orfo̜9Ν;ϟ{7 Atuu ޾}+m߼y6#ÌZZZfggcn𼒓lrʕ°/_O˫2qD[^vڵkZj:s玍So߾}V"&<$H)rdggGEE7n1b/_LKK$^Ɔ-???9sOwoܸTRRf,իWiiio߾"!???00% D a+z I\|zz[BCC%F݁lEމ9|oT*_FFFjjj>ܼCCCϟ l6[SSsժU666111"?pرc̙ @8A.lٳp @믿/_~cǎUqqqy- gϞmذa-Q-[cwߙcK 1!DO1}˖-֭366622XK*aL&GEE6Çܼy*}SSS6w/|@ b@V6$q* ̸\.{h@Lxb6O̢IRCC@EE^'UBDHHH~vDxׯ_z5~ǧ#|ZN;CC{a.\{',1*&&BŋYf)**755-\xGdd$2m A@'<<<;;zHĠP(EEEN100HMM_N">|ћ6ȉ`6]@N E @ "Ƿ~K? 6$Q]ztuuކ{?EӢz%Ip 檄h~g0kla5٘ґ$K!ĄD"ꊳg?nQCDs!Z- ?yy7n"# Um]ylDžjyG>M6mڴ0<绺N<ɖlӧQQQ]A1233tg<==Y,ѼkײX,---<?711CL&ؿ* Xp; Ҭ,--q &INjkk[ !퓦&--/g*++t:lקĆ V\ $11QO?}ZXEZҥKfffkO$I%_YYYƾ>|Sx+[/Dic߾}fff&MOKKziO>xNܹS[[;"""88XGGgΝRj߼$ii^'oB / `{HN$c;QVVp"##ձ٩KΙ3ӧjjjEEEŋ;::7H$A~aBCCD8F۳gرcʂG^r|͚5}?L&>?8*))4iҭ[Nτ ,Y>//s̹~z``ѣ]\\h4qnn-7''gڴiVTTd W*蘞IOO w(++366nQ]v9reaNzrƍk֬ {]nnnKK˨QD Oz!,L xz!ڀ@X֭+**g0ƍ(41cƬ]6&&sΝ۷o?~J!6 yUII!θ8uuu''ꄄ9?y$Drpphjj08fIDAT$H'NQFa H׸{{{ H,X_~ff&ۻwo߾EFFFoBP٣lcc限 -SX,VDD޾"!!WkSrss-[L8qbtQoo<<<|}}߼y/h",+==֖2rRlaE[9..NUUƍx- pK6pBjY B拋㱝Jlmm&yZ%&&f,+88ٳgǏR)"FA4O؉4)'8$w"Y"iMMMuuux֬Yϟ?r%%%}`nn^UUI,1 NGGGttIrrr PTTĎ԰Ǎ7uT1>~ݺuܹsgA99. #/cqWWWSS\fTj[[͝2e\B,\ҥK cccmmmdTTTΘ1tvvJyyy!yћF555#&`uuuI=&<Q=Ҥ F l{(ɝHHwڅ{=䀀s_Lш墬,NyM6yyya?B|̮X^^^`++++󫷩IAAsqqIMMݹsgNN8Toxxx:uɓ'YYY7oGxHq4SZZZPPsΐ---~H^bܜ{n333Ή!z& ´1R<]nסCaKW(%q6)\.@^6j`CIDD#555^0EEESLP( ԔL_( ZZZiV Hkoo{---%%%"cH$==rgkkkUU9>{ WTAAԩSE6 L&3??y-&7o^MM͕+W*++ql`655#ʛ7ox8 466.((x̙3\nbb"!F~%(z &5ktm^ŀ }訦FR` ` HVVVb`1_ vvv644 *Ǐ"z{{o߾)//ɓZ 8q"6۷mmmXqjkk7344"eDDDZZ3gřdX;vXx1ٳg!EiloK޽kggr/_O6ӆ02D H*ic̙Ν;l/ Fuuuqqq\\zinQ€O8/mD"xeZZFiR$aMNt> mlll6D3[XX|ѣ.\PWW?phG[-[_wWK^E))޻w={/_ <.kkkٳ"46b7A%_zzz999AAA---&M:vJxfZ W0m`ݻw/44Vڷo$LHHxֆ DZ/1͋t(a@$Q͋˗sss1e4)Ċ IPO&|'%S^Ӥl"ϟs"!!!22#F@u$Չ?ݻw>RQSSSUUzS">-۷oG@  CU)h@ ᴋP@  | )󑔔TXXgPWWW}{ ,[_rm[ntxNxxN'U47IphOml/>p۵kֲM8q̙۶mÿ?8~<10AY'|D"tuuv>w\QQ]!AC6s޽O%Fy1#wQVV>s Wpzz5kx<:I> myy7nv'RPP$TWWS(+V BFG@ s9rݻ=z?T}Hw#++^[[ÇlӧQQQ1Z Z`&&&[绺N<!Ab2 C€kfmmeii2b;BaŃϼLLL駟ܛ&---oOUVVt CX7lذrJgff&N왧6i$;v| ԋ_QQvZeccN0_)((555"+E [@ 0;VdR4O.]233H&s&&nI( -6a;4H3334i}ZZzHq䣲rƍk֬ {]nnnKK˨Q/vttch4G6_}葮+W׬YcnnAqqҥK̙ӈ555OOOx>d2?k#//s̹~z``ѣ2Fggի;::EIYY@eeeƐTczz;v&==N[XXH^.???//jlKq^~-ñ C3vز 555GGGfllmə6mPa bl v(D捻ڵȑ#80M`Iw P@Zlvo̅5D'nݺ"pnܸ)i靏R@HH)\$ L&5/ĉe6(''w^EEEuuӧ߾}sH}}'OH$X A###SNX}EEEBBݽ~/7Š,,/hkkrqq9rdii)6 ͛7X[h"l/lIpww0 ST*:vX\8 ,X`vleeuL!vqq1 G 3l@ !E6 '游8UUU7n€6ziii驨8qiC$sa z! c +4\o4zC)vtuunZPP0\V__r%%%xknn^UU p8x|ܸql Kkkkk׮o'+ȐX,VUUUGGGaa!.((r=wE-Jܽ{ \y HwttDGGN4)''׆s}};w[l%V¢=''?zTH%99ݻvvv***ׯ_%@WW7;;QMMJbSo߾mkk444`͜9ܹsϟQSS3.YB899N>  vvv644  ׆۝JJJN<ٯ]rfbvرxbٳg~?| 2"""--̙3/YYY%''ccV_#!!!'NX4> bl١" /bf# }jB6@xg'LB@Zlbi^xvvvl6ŋ 8..N@ޠB#zzzWPPo޼y1?lUlllbbb[l177}wܼCCCϟ 1EJJʳg6lذy|~z???333.ۯԆÇ}||n޼yWGc䨨8LLLg?YEԔfݻ/r"ߩ;jΜ9x7o,"V)" O,rEl$OmsX&s=IуH1HML"m O0>>~ W>{6?7"tӫWx~@y}}/9'ݻw?'CӉ$,555UUU111N @NAζ޾};/9M @.'@ !P@ Lp###qv|c@ !ނ{Ą3̑#GckܹsAAAȈ1zj bŊxa )((۱@ ].\cahhIӟ={驭b^绺N>D__?88طo٤INttiӦM`b Y[[kiiYZZ`'MLL駟@ GIIɤInݺUQQv &,Y???//j999@qqҥK̙ӈ555OOO@``Wߺu 0|p,H,by=z{ʕ5k֘}u3 s 1蓲( `^^̙sѣGy@ dt; eϞ=666 wwwoooDFFokkO|#Ftvvũ;99UWW'$$`b :ubEDD+**\\\X,Vzz:-++eȑ1H.'OVVVƎLfee[vqܒWWWܼ"vV__1?52LXx MMMuuux֬Yϟ? `ii)֥UUUQXXf \G%@ ɑȇqWWWSS.تI殮ȃbgx<ǫ~ŎcPTxw >X RԶ.&SQQQXX8cƌuuN@ ,n磱X^^TVV&s?O k@Pz' ?~=DRUUKPYY?&2SZZZPPsΐ--- @ FgϞ~P(((:u@@ bjjp6m$~.8x`NNE& 'UTT4e 1c8I&uĎ ޿?sL.ᅴp8O@ @aÆ_~ӦM?EF \d Bqrr>}z277c/^`0qqqWTeeeZZŔp̙Ν;{NNNyyy%%%'OĮgX;vXx1ٳv$???888,, u>!%`X3fؼy3L޴iҥKEFHII9x  5b###޾}a 444a$oٲeb&v޽߯Zj߾}Ç=z… pqq711겶̞=;)) -@ !544TTH®x ?VWWI<ŋH@ ~޽{ghhx޽/;CӉ$,Ю@ d | )R\@ | )@ B@ :@ d | )@ B@ :@ d @ uuuo&chll433{_P BA( AJX#2z㵶=ztn%%W P BA(pBF.@ ɠ@ d | )@ B@ :@ d | )@ B@ :C::…wutz[Jʀ%ev]ruut:]KK2::N_zUr&%% ܱc4 722x,,[ڏ0E (nݺEkkk?G ~rC'OzTTzˁJ1zQttt{{~+ND,!,,,d׽{bbbÙLȑ#ZdYK\@ SX_Y["􉊊`ܹYYYbv>oܸ)BXSW<hTT422 ځ_->^evkהccUi *Uv;J?46,l\P-4tcXꑑݵQsl 6:ydǏkkk#0Ǜwwwц #""B),OFEEaǻvҥKf{)9sPQ|uXEas)mŒuھ_EWb(ĺܲ+E]\j.sǎM#t.LOdUU{PSC//gh *JI~֟?>pvv޸q)S/_{njsnnnSwk׮]~СC~֭[˖-3f̚5k-ussgϞΝ;;vXp l٢Hፈ]`ɤÌ2eC 9|%Kt:̘1NKK[d ˕JWSvܹrqƭ^󹹹M΋/NKK;wc@ LOO v|dggϚ5w)))HE 2((ˍV^|900xR>#RԼ vi>XL??pA%}Hss-22O-e2Ij??Ell͹s[߽ZzI FSRnd3P=@u5cvWrt:`ɮ]܂JKK+UQkΝ刈Djyٲe]tٸq#AaaadݺuGѡCFi4ڗ_~\\\w~kqJJ>Hԭ[/"AtЁʊZ6T__2ĉ@ lmm>[`)ǏjMAA,XF!CL6ΠAݻ9}. dzIG)C*DES ll Ҩ 28Xj-VFO?=i$.\WwgϞ_h꼼CoQz*--UT&FC I0$$ZooowwwK"n5Z>y&zNW\\ܻwoGGGG///VRjժ{{{w1++ ׯ@  .ܹs':: 1$$^V"TT;wn999jڵk"H/|W<Ѷ bgg֯FcXXt ,, (t: AITXY?J֏{u:HMq(k//QR¾}d]ru=w|>֬YSLh4˖-oH$Ix\.WLѨgwj@ 0 oiiipԀE8::6Zӵkumڴ)66F9299d,Fuhx LLLܿ Y,ҥKb1d1b߾}'O h6zü\.h4 K؊_]zܹsoVNNJDF43_|יTB/mfv5<RV t:t 5Bu(F*L*򈎖u:XY @$:e. IU\c>>>$I09s 6ٹe)[YY1LD_S[[+ _Y-gݍw^hQ=bcc[|^L&Apy|>q07&&fEEE9s^/Dr_RѺҲs999_|ł :w.jkӦMg6l1cO 4EI& Aԏ2Z&IRPBRi]v񉏏H$dYOo0å ɩٳZ߂'hJ^k|MIIa;vx槺eЛ [>^7t:8`i|G>U\IIsrR߹8pqQx:oEptr&VuR]]hܹaj4F||d2 /_|?UUUr\QS}lvĉg͚bŊݻoذ^Hoo#G;88)|˴.\п;;ǏhyM8q~~~III 훖֯_??>UTCGNLL 3qB\\ qRDy{ЧOm۶5yM>СCg6|9{+mmBo2 >^C}Ht7 ngGڧOFU[XR)}tՍ'>t%ni);<~^Ac==L??5Us3 gg9sPM;voMb|}}M?N-ˍg}ԍ7N8Q՚>c&Lhhh[xeZvʾYYYsΕJ;v\v)-8kJrذat?o߾<7o4<6,,,11qԨQ&rXXʕ+W^k.Ky湔AAAooٲE$5y1+V 2￟>}:QE;&I+/ܐRQQ\b??|8h+SVu $k_NXci4ڗ_~\\\w~&555""bΜ9`8ڈ{QF9)+c*F=jbs I3 Ȱ~ce@e%\]P *ꪺuaO6G@!r Wp 0PJUHAA!!!T@:h|>A<O*꼼Cyz*--UTj?쳜Lfb1JUݱcǬPw}ޔ {F}.ՕQytbq^^^F~Aff&\pΝ;{P[-oj4VK ׫Tkk!h'MnNCmQ2*"tj{QF ^^J++mU}6$v[[[jħ\ rFCHՀAi4Fh4˖-oH$Iյk׮֭۴iSll,F9rdrr24^/Xߟb-]T,|PL;?x`Sꐚ77h4Z j([[[Sjd1b߾}'O k" >^CAժa0\EO&Nsr,**>:JG_V Je%<%r.t6(DS,$ 64m~7%GDrfS|>3gN{߽{EzO/5[B)<qqqپ}{!lhhЯ1\6^1117o.**:x̙36 ]^C<$:B$rZ¥RZv6'nbd4kk[o}jk`o!S3 u A@n2{ը$"?uΝlzjٳOnjh֭[qq5oI& Bj$I* WTgFcZM,akiA[XXH(JKKM]K$HeG–אMcVEEl6; ǎbETxA O^~>Ymi77:__ի;'';tqQx:oE}e8:jBuy9y{+:thHHȌ3f̘yڵcǎQ?~|BBաqfL&5˗/_ --… ;~xYYxg"o߾iiit1&ȑ#x []pĉϏKJJ7oRGNLL 3A-zooV 2-4pSXXȑggBA(4''MhhpsS0 ٻ456}G]5ήTT<b/??z:Q4b jԩU;BЋKIIYlŋ9BF-[((&GWW.%Q-[bDBwqQc^ܝ;wJKK׬YBmj7YB:6+#G$$$`m Ԧa^ .W\Zz=`& 7 aEAl B! 6\kc[ N'ҽ{>IJ$f(92doO Oqz2.oTd;ΜKHf.|l,K_x& ;O6qql3{wjÜy! ]ڤ@XRW~ـrHdnn9s8NN?rsaԐzu$2lh!*>40AGS||<{vT*!;nUd- nn V v̜y!)|IA{p]H,[>xьQXuuӧ}{jyK$1Q1Q 0{lذުvM éF)_sKܹӳv^`p&dFbbX0bW߿ol<_LB}?Z:] ֶC[cnj9#/^cԀh"}+n|>R%ܿ (~tvr9~qII\++"0oTJ7nBB-Z=aJ7nhWzd>Z @EH55m*֭S2 .C t%>$nUÊaΟ/9;v43ZŜy!A|IT[o h80N@98S'X,ՠA' 64X{: \NYddI?Ń6-uڴԻwu/jP3ӵGtldgVT8u\vOr9'=}؋טOK X@ 08/cp[[TUԍYH++јe @;1Q_+|}3McOƾ{W7hPZjlʽ{&/+\J8rIJ_?S Νaa>}r9L?9BۥMP8_ 6 sMjj!6wqu@PkJ^Fjۈݮ'MZs񢟫k٢EI`$/B*4i t:ZZh4СAUoKЫ j }H b &N4`B,~^N%yub6 ԃdDDkIE8/%ap)T40iϗX[K#-Mϣ!u+3/?6,jąF>ہ*…kc#2jg{/X*{t4^P%:lJ^Fsvv21 } 0u I[`ѫrܺ5:u ۷Ǵb 2icCLo i/kb}tT\ʊ#/^ÖbԌծ4a%!! ;;LLH@4(.t ҂@=D$$aVeC٫KNh}{ !࣭?.AW?[-g ߻_z-^`h*+:4~9ĉ?eJFF*+a}䕟/qO?>5F9\55V׭JJz M}= x ʬ>,^eTab9YÓH6`\NÖb99XϖcƘ2ZnnORw~YR+7Z|);5ԥ^2+~saV| .@#1SWںʪߥK?:/M[P5sfyI0++<'_P׮hK"J g-\s<~mػwJj{xr w 1Q1u@kmMXYWh.U4\zrtYi#n͜)[TaB$EVb2Geeirr vr"ߗR bL$4>,\x֥T޽*i !O!qd8-KE͓.۵kZ^Z9+=B!MLV)>fDش.!yf.UY3!eBWk wزe˹sZ%SYL8}BСC[%ӦljJ.]VZhu<==+1c̚5<sj vI:7o'%YΞӫu92 tҥ}[l ~~'J5wܦv_fMRRŋh$V<߻w{!dmS$bDpX={BBZz3vtt.|rQE :tӦMAAA]t?V5FWSy5U}޽=KJJBaNNaAU`kIKPbɓu&x5N 48s2;꼼RVM ^vٔamNI ckiNUYj0fL|~*ƽ{LgguM IA@YLx{%3f̘4iW_}%=*J|g͚uƍdѣG.>>~ԩNJJ:}4ϺR\\xb[[˗/ϝ;!<=66611͛4'nnnTKaa!*,, wwwyܹsʕf\2l0}׮]>tPaaIzEUF4rT hjtPRz`rvVO\}8?;s̐jj 7o`ذndPSCnIt*=Z OIxxitiW9:d׮|nAYM5xz*--u :t ʊZ+(( Pw!C7-[K.7n$",,L"[C [[[}{L*h*AeJᣣǏ>>>ƋVSST* #"" ZmUUa$Ԉ9s@@@[oe,F/y,''G&׫꼼CCz*--}IS)UVۻcǎYYY>lqj&w51AիcǎrʃZt:]qqqޏޝ'Ǖ{u 2ׯ@  .ܹsG zqڢy&Okk!h'MnNR`enTDB 5ƍ=  ^^J++mU}6$v}][nӦM4mȑL&^,[o$I$JWWV/Fbb,Xb.]* &6k '''6j`sy:. %j@ Чckkk,x:@V-|S׫H^Fd1b߾}'O lBE`f!DZVkQ$66~t?Nkvvegg B&i$/A-.|SH^ƫ7&&fEEE9s&@a˛5㯿LrK&Y[kzKuP[K{{ A@m- t&cȧPGb:DdϗJFN4I(Ru0nݺ{>diFHT(oR4//E˔?/77'O@@@J 0ATdfdb]/#y5[]v񉏏H$V-oww͛cǬ8CO^~>Ymi77:__ի;'';tqQx:oE}e45B꼽/_~ s9Xa8ȑ#.\п;;ǏӇ?>>g2 ˗/_|~'سgϟ~iΝ;wvpp0}xi#A7--_~0|9>-ܳߟzHي8q#""Ll1T^Tѣu !^|Y~[ՂLF m0(ooQ\f0޽Ԧ#jJ%!҇ƍoto yz*OA>?xҥ|?zٳ&LfjΝ;vؓ'O]VDpp;nݺ5mڴ3g={6""0'&&6lÆ /RKwG3Ljϋj砂C#yL2e=zPI2WF?.|p^P_hhX,ϧXC+V8TW3NQ^A)))˖-x"@mNܲBa2orh|u5 O"l Ezݹst͚5y 0@7oBull Vz%%%9r$$$$!!kV27.W\^eׯJ@!2+ >B!dVpy9!bjyuL*UTAX{![?oa&6F$t4R`A%,Ѹ\3" *Nq^d!   }*ŋʘo|@}b0 r96޶XYl/U/:G8G`]!ڨO?}訡hd={ >> gJE%o'UX-|@3^㽓(<6ޞOoGO3BmN2{Rk5=JEuJ|ޜ!o2?M٧y0ϰg!ڮ[m,qܸ]]Q(-5U~0Vrz3p`IիyXMvi n2nHV'M:%iYF/Ķ:t !ڤjobO\թ\H$EڷW'$^3f̭_oi7<=sBQQQѥGYv:=۷Yb5uar9 2J:,/ggݹrx1Mx:[s2SѻwoδW5Ɠ`Kںi@F==Y,Q d?yBC kWv'`)(hZ?"}H$> lai&N-9㏯lVkrr `wߧ6>xX(sAF 'VR#9GGL11ӧ-#1V^zd2ٓ\bDM/_#G~W֙dUӪӵ3=M M":"z|||e?!of>>_(0ݻd2ZNsy#vSuj3p|Q[E/UÜ×Xᦧyy zzEm!8`wF{,A@xx~ŋ\OOo>s֖A\ވ`kgw金S$pk, ~+ʟB?R>?C!D2{{ NXdNɓ JKS6x{+O ^\jk%叫VMc_EL9D N=&Bb_~~~v!–Ԇjpn`#.VC2yh1@!0J>ʊr93U\cDB!Dbb_gBv BȬ0@!YaB!!BfB! B!2+ >B!dV15BR 񹃏ob9BMֽ{w3爯WG!hN f1@!hԂX,6O8!BfB! B!2+ >B!dV| BȬQ[6M$mD5f;r9^\Л[>B!dV|7ZZK:ۻ.5UII$i`hFrIΝk-"={ԩ*4T~ pƍ۴i^23~(&,-ѣYv۸qVǏ&%Jk$qq^^kXLfp8'''FSUU!D]HQQ̫WYh>&EGx7t-}$U7ᄈAfc2Ç;x9`j|bx֌˕7+[\__w^յkڻwu}:w%Ibܸ9QQ 8)AU[K{يlȠ[ KKjŋUUU bu!88Ç˃˫Om\~wj4@еkΝ;S \R__p:uԣG؟٬_> __ڵr5kxj])*tqiMm4/Rfؑjzz޿E2h#G?//Lg_^^~]%%%gΜ1ҥK F]tZhGSSOԬ]Tmbx[nC޽;IW]M{QαVVVPWWs;w$$ԩS~ Ϟ={}j% Ŋh׮B}6h4|W(v{X,m]v=vX~~mf͚emm=nܸ1ceE1 >PJKhh SRs|AH9E޿pIrr办='wE\xQN0aԩScbb`*JVU*vx{@Νj5Fߩ=I >("H$-^x߾}۶m[r͛ z`"B GkZL jFc<ǫ;=mZ_,{B !,Z-h,JҺ:L(ꪫ>$ɬ>i?Xt:*"yzN+++3\VM<\^WW'J9+^c|aN3ؑQX[U[[@b \N@Ώddd MsBCϞ:է}{8V4T2;[d ^۷~Xreǎۯ_?*t` >|Jpjoo`0Jk ) .3.\>>L&300?8}AѤR)tO H$1lذq B|́-MR᧟T}oyTsV oo:^^{=ڵC`e{W4<)!!aae oxm3f9QQb pƍnݺ8>|j666Ԧ[[[JRlmmLذ0GGGNwJ$ #!ήɯn<=> !3YmBe~~~\XԆj!BfB! B>چVQQ!o:/oz!BfB! B!2+ >B!dV| BȬ0@!Y={>)8 B! //g&&܄pnMnzy^ ׯz\j---qnM 7&Զ6 x^( BNB!dV| BȬ0@!YaB!!BfB!̪GmBnRE!Ӱ!BfB! B!2+ >B!dV| BȬ0@!YaB!!BfB! B!2+ >B!dV| BȬ0@!YaB!!BfETWWc- Bl!Bf82;uDIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/msgbox.png0000644000175000001440000010654612522224775026744 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME%IIDATxy\?g ADJ-(He Oj`UQK`Aj;jRҢ֪]VYܪpAkBi)DW;ɜ933 cIK6^BRRA'4<ɇ Ci1ui1M)]l!MI.ѽ F6T <m[ Cmjj阒W՛RD EZeK5_ϨL)6"K.;ڔ洣:R)kDD3HmJy7RԑԦvbHjSJ% rѕ3b*&y?Q^'2NƥbcJkj@LBBdPTC@_нNTmJ$tiymc54fhRHZGzoLvkG6NUD" Mi1=ЁaLeJ53lZsjLj*UDDD+\M !Qr5ϔT4G*JSU)pq{`H.},^T hET&e"! /MMi*RiʉΩ!lDDMǁk#1di@"mS%i j Z؎>ҙFTF44FHb4'BIUJD4\H TMGDD㍈(Z*%RS2( s IYID. "2"ZiLD$rWND=k To-s WHD4]Aby)%yRhE{lK.%DD'$B, 5*-a؏DDĖQC@MεkAwJ!IZ/ƿSCΊ,*=%"LJDOYg3$S'y7p ] 0_]5x*_L_l|h5ҜȘw~oKO"Ozͥ<3>sj艚ӎ(ud詚.WKDR߯G 1&_Eejr7~Z3=5QKjлF/O/PLuehe&+b/I> DB:}\ RCkt\ߖّ΋_((FDr  ޿WJ"otVLSsߚy1m4&"2t^Lvt!@lG eŔ&b2䭡BMthVQ|*v7 D%aĵ2b/I>YNTTEtFE茒ji.P' lyTPK"rڠŝs鴒 1_l$zÐ=C4X@V$Weh>hOJUdG!LS5\RAJMD+OT>QN5ԉ RC*[ y15Ty>ڞ_: )U8i)Կ ~;.Z*A??j۲W7a+6te@S)b Z^p +$WH>@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz  4? AF>@|^!Bz Ыw>4YXX ޽{B@.Zիˌ]",:@?(--]`Amm-b$Za'ZYZZѣ{sΖiee5x;k,Lfee5d8WWWGGnM?#m6ꚐPg槟~Ԓ@UUU[n)))知Rʕ+mllmmmW\s{) v 7ofWZs{5Y } (:044t̘1˗/wrrfr++?{g~~T*MOOoI nΝ;?Թӱu>ndooåvuӧM!K.wmH>tQYYw{\paҤI汱sٴiÇ[ӧO4(>>~Ȑ!aaa_nP^^yDDDRR҄ -[wqK^zڵj۶m?u;СC[l:u/\\]]srrqqqiIfϞ3f$$$pt֬Y111+WnD=z bCBBtn/099yժUӧOOLLEfeeUTT;wnǎqqq$"D뛚ʽ-55U*\Ch333߱u8RSS{x,-1ZP(EEE=x߿YG\.wxpE۷o߾}{ю ]v輡{d("͍5jsgC˗/;vחc``fHdaaѯ_ϳ&$$9244ӿ&7$OǏ5C3!u ԅ N>7rH":t(7ӧ+ɓ'd7o:TaKKK";vd[^Qii={v:jԨgrsg bxȐ!'N$=xW^!cǎ;a"ҭС KKwl#FWLd2Y߾}<߿߯_?"266NHH0`@Ѝ7vazX ȇ.&LLT*YYYGfDVPPP]]󆲳̽nIͫnegggmm}ԩrKw.i333vQmmm^^ޠAݺuիWdUUU!!!Jի2L@eddomebbbbbBDbaHP(^""++]r 6JK*߳gOnMggZ":tD"9v]xpܸq:װhbgkc7j+W<==]vӲvzȑġCڷ~'l޼Y"ZF>tѽ{wwwwvf'JKKU*Uttƍ9jZV߿{mT"H***T*\G]bц <'niRIDeeeJR;7[:εOOOd:̌&PKa vT* ^DĦM,CCv6MLLT*\.ܹP(3f_|1k֬#G\&ъɎbsSE:uҲB!;;r߿_\2>`wx|X~mĈ[R\.^rcc|=zt&L`_VTThSPXVVќnmvvvzzʕ+WXakkkee%HJnH$>TBW[TXsАd?~޽{Ǐ/\ԡQtlulvQ(j.*))J}az}9m|S9Y]ZP(۷o^^% j559--{y9ggg7'OԦjSRPhs0W\a_h9*յ%rwwL$"nl@^YYY[{nJJ9{&?a<<<JD&9iZY)ɖ/_8}?S@yyyܾ}ƍ.\سg6ҭxٝZ{rrƍΝkdd.]YRR2}u/ٲe?3 6~777-kaÆŋ{xxD'J$7n4ܹ3o޼~Jb{7e2Y #++s n#$$heeeAAA:WL&߿…  &M'22rر-nl-:s ;EEEt_ƍ}vBBBlll```MM6};ϟ zꕐͭ|͕V\ 9<~ta^=/*/* n x}-/޺u#*>>>::Z2Ps̙1c'O899]tj:5 -t #/4ZJ(,,,((7n2۷o 4H$1cƠ$/0a~ZO2 cgg= ٳh#شiG}TgQZZѣ{sNv?,JW\iccnkkrJnOOO++'''s/_>z踸8WWWGGnǽmll\\\>}JD B*Jׯo޼~ל;&Jo޼`cc#%f͒dVVVC _;wEjLhh1c/_nooTN/j֭[\Aknle`!hCmٲeԩ۷opBff&… &M2773gΦM>-5555kVLLLyyʕ+߿ODO4hP||!C4?ů^zڵj۶m?7|3))iݺuCD"Qffffff=鐐:{1o޼QF8qbݺus#""&Llٲ333~ʪ8w܎;<~T#555::ދj1{.͖0rH }߿?(::166a\k׮v ELLɓe2Yxx͛7_}ս{d("͍1a``fHdaaѯ_Ϗ=hŊDĽaY5]iܸqӦM#"{{{v?;qcǎ(,--jm ˆXLTj2RJqFvZVܨ;0(J$ J%ؘ[d``T*޽{ڵ+..n„ NTTP(rGuVgNddѣGWXlddaÆ'OZ{?sVTr\j(:McKZ8H>G, ²2n7-Ahh#4W177/../S.s/r1 ϯëW0`Ogo_t p%TTT|ӧbccFRRŋtr̙wj@Dvvv'O533H$]v)aCQxxx{)+ѣG?~|"boJm͙3g׮]/ׯ_*< ޼ys~vޭs kPf?~;w͛WUUos7{rrƍΝkddu-[l߾>ذaNZlBޱcn($$heeeAAAnذa"hĉƍMhѢ3gΰoى"L&߿…  &MԒ7 555 @?Dԥ yQџ#`>ev픔ADT\>f!P(ܻwommm޽>[h#H>Jk177OIIA` _Bz +$WH>@|^!Bz +$WH>@|^!Bz ٱcUQQ7֛7oFp%JRi``QgGw%mT*T*=qD{ܒmkҥI T^Vbr/~ۻwUVq/?^z=' B<3g455ݾ};7gbxΜ9<լEMJLLLOOKbN,롆VKZVz;b'|?qԙ3gꗭeA\Ҷ>Eo 6CWz#Af8qŶmۈhʴiӸ)))VVVNNN;wԩS\UUպu `mm흒͝5kL&2dHmŹ:::hǏ{{{ظ=}jѱcǤR͛7llld27X4ZB`~_yfvZs ԏoʭ[:99GEEտHs>϶x(?n^[n}7x㍵koKR[f[Tl5!!O?ɉ'P-齭~8=gϞ;w`dDTXXdiʖWCShh1c/_nooOF>M(;B]tɓ'6̙3aaa:u5jTK67{`{{gώ?#"":wl2333___vW}WW\9s[zϟ?s̵k>y믿V(;vg޼y&LqㆁAEA"(33}]__ߠ ".,,LNN^jՕ+WmV?Uo߾{9rh277̬4hPZ1ڲeKppΝ;嗷~]ij-.GNNNMM͛򢣣-,,{Mۖ@ ضmÏ;wɯɓܑ WWלvqq T{oku .L4iذaׯ_233 hx"zW;OSJ5ʲ>wk'NgٳC;w2eرc{dQQQD흛ߒ .>}:..=2 Ssyxx\|رcܙ`͚5"¢_~ϟo2&+Vgܸq}E1 XZZ@ ر#;tϞ=]v5jٳgG*?bĈKL&۷oZ%,--<FJD}߿gƷEy򨮮޳goܸ&<۲]d>E5yA&QEEGաClDcjymcccvS_PFGG[ZZ)[RˆX***)P"<|PV?=` &4@~~~~~~~^zyy>ϛfUرP(\D*>o;X+jPXVVќ[m,- oa[TTMFLLLlmmW\b [[[+++O%BCCG9ܼuVnVBo߾yyyn)uŭ[4[^^޼yzf( F>ZSPPдiӖ,Y2|ӧOgeeƲ2tO>Ç\8wss }7.\ga<<<JD-tE//.]9sݻƪs4X|8۷Owԭ/^tߓ'O_]__Ve˖۷g6lMзoߐ5kDDDL3~;w̛7(϶ 2OuӐ!CBBB7o{ʅk֬Yt5YZZ^zС:φ\]]U*{+oVコqƹs988_kOiJݪ{}疖QQQ'Od/\P ,X`ҤIzǏQ.˶EEfaa  Z>gΜ3f /< u޺>yҥKt< zXMhEoNII4hH$JMMcƌAX^@SBH>ZP(ܻwommm޽>B|4%. 4.茽삯^!Blh4UVOĶ8pŋVjРA?MOΝJ$o&111## \|yG[ ׯӧT*>8^m?T*Tz -K{D/$;X'aLMM9s6Ǝk׮w}755u̘1ZH ڋkfffzyy-:11ʗĥKbbbBCCOX_ҍ7B)S^={V ;GΚ5K&YYY 2$99[Ď[Ź:::pK7mloossXXX_ "ںu}TTTδѣGuΝͭCϞ==<<+nNJJj&$$YO?urrj2P(//gƍ4_rJR)gǽmll\\\>}ڊ]E5(SyZQleB_~}4:T/0`@6(m l Ox?,JW\iccnkkrz nm/TSTEës;ݹsG:]?x`#"":wl2333___vիW+W̜9͍=#:th˖-;w_~n݁fO5RSS}ٳ';; .L4iذaׯ_233 hV5ϟ?_SSchhxɓ'6̙3aaa:u5jkNNNsrr\\\3fTUUD"H$ƍcMMMJD?3g]ɓ'_Bرcku(l3@l촇˗;k֬D;<{&$$924458 6777::7F||#.]JD2o߾\Qю ]v57ԩRdҽ{d("͍5jL&KMM%Ǐ5C% @5fΜ9>Ϲ&~?>((lpرc2 CDDb "5^vޝ[Eyyy\߭[7mi*..wڵkg UCV_r}uΎV*YYYGf?zͭY`Wg|,'{ 6ܹӧO>رcMP(3f_|1k֬#Gذoݻ]&L```;DEE –tګ1lU%X4@9lcVVVjsTꀧo4 %0lT*C[VyOz5ecb3χmt-!hG.X{sEEEbPXVVydjBFǎBOq+Ahh#4277oV^ګW/_,knK.mvvvzzʕ+WXakkkee'8ŵo~ذaw?65~{Ǐ%Ç^z-|xc7x*|krJ6:pT6h谭V[u>֔|Fg.4ZRxBZ 888\r}Y^^^PPF`ё6Gqqq^^;- 훗_5+ӿqiiis9;;...%%%T*?k˛@"+$$dƍW޽r_g3gJkKNNrŚsx*egSVi:xZBrb[xT6@d49:lë[u;iӔ"@9@G0 ᑔ4tP" f#G:99_W#00088x۽{=aaa'N Ç'}5ׯ8ǏKe?p {-wSVϙ3gƌ/sG|2wOoχO4?V.-ݾ};%%eРA"(55U.3楍FaaaAAALL̸qylp>|>! {ݻÇ[OZJh///сuϳ$&&fdd<;wN*_~yV^|O~bώ"Vg#J۴t1 cggW~Em$11?z [Y ҥK111'Oܺu+x.ٳufv֍?Eg67n)S JG󸺺&$$ԙ駟:99ѝ;whl qqq555ҔOOO++'''3 [ׯo޼n'wm;&Jo޼`cc#ꇥ}SKi;k,Lfee5djjӦM}Zn݀SRRrܹSN^?~%((ӧܢѣGuΝMMV/ P?V1lY*\&***<}:88xÆ ;sLXXXNF%233w "lƶyM0!22ƍ93f̨JIID:"//<""s999˖-333ԡCls_~fsg ;{㛬Fcϟ?s̵k>y믿V(;v$ .L4iذaׯ_233 )V.,,LNN^jՕ+WmECmǐ@SSYf\rɒ%{WQe il+++ܹslkM8Q>s ?qĉן;wڵk_D"MMM7n;'55U*CmB<2,55***?>jԨ:dggzzb``fHdaaѯ_?a{dQQQD흛?j(a؇0Of[ˍmKqM65̙3Çy9?/_>vXFJD}.\8}t\\xCr-_dggъ+fcccvOl={tuԨQgϞ墡öc_ ELLɓe2Yxx͛7_}UmzTvYy% bxȐ!-I>x6D"tܙ6Ə+;6vXatagx! mLVPPPUUT*^ڊL^ݹ33ٚfdϤml뭷j䰰ovڵOMUU֭[쬭O:E@q5v֭W^l+##};%Fcjjj>tkOJ2++kTWW$VVVVSLwPmİMLLLLLH,3 #؇nչ%ٳ'd;;;kLl:tD"9v]xia4vqvv߿zzz^^^uu3I>lHRNj~D"y<{Gm}wӧG}yہn"##fϞ}ȑnĈe62RYy-sb3333Uj4w޻vϟ0aETh?L6MV߿%b?Y-O ,avPmZ\`cҒmiFDR& nj_ё#G\\\lllZ^f<&&&+W\bsXyR_筻lаڷo?lذݻwϟ?%| L0}YQQMBaYY7GsD"yZTNLԐ嶴ëW0` b@  1bۢ-X\\ےllKsNj g?'Əw_ .f;6^fh6*UuMMM;,j.gg紴4s眝5 !r!Hzq|E?sppɓ')GVWVVrs+&bʕ+m6^YYy)n' 5t¿kb̙3R);<  훗_ Bm٬Vm[<1Թ-Q rK (-͛7gHKSY}>,,L.i_tl|4L&܃>y$wѣGw)**"Ǐ߹sΏx8~:tŋ_\AAA.]Zdٳg-[5sL7ٝ>>[lIKK 7lP=zL>}Ȑ!111-&$@y朜={p3޽KDucÆ ;w6l ~Ǐ3gμy T*t\\ɓg̘qoo&ѷoߐ5kJ%]!olٲɓ';v3|͹s.\0--6ʺm'ؒ.V O-Lp¸ L4I&6:=hرZ6 O<~ta^=/*O4 n8C(44֭[|˗/oɓ'NNN.]bLDRT^=~&p !Z? >‚q!󀶆; /Ot>o1 cgg羲^gϞm'<V '- o}21/yd[555hGh9\viB}_~}U7=gϞ;w\رcR͛6662ĉ?T*]rMTTTxxʕ+Uܹ >eG\]]ù'͝5kL&2dHrrr DtqoooO0)))VVVSyE<![=m/0`@y4E,jݺu NIIo/7 O5x"ڴiG}Tgygv6 &K<:4e~ѣGu~#^rH>G$efffff#(( a^paҤI汱sٴiÇ0o޼QF8qbݺucLMMg͚S^^rx)V晙 Vի׮]ꫯm۶~QgyyyIII&LXlw}גF~~|ͤu703>}:88xРAC ΞZR=z477jͷ[ }LLLH,3 #s{ɚ̸IVUUmݺԩSmI;;> ==fggk>>ӓ=]/ҹE^1ԙU׮]P~ȣN/0##}mڋ7jpw׭[^z5_>>[lپ}g}faaa|Eˋ}\.ֲz7ݥKsswrsjjj"##.]ڬ;vL*޼y3 F&q)))VVVvյ~ mlݺ7x7֮]~P.[YY}{Ri#Iuh>3VsfvڽΝӦzUUU֭0`{&%%[`-_|˹sN:~gTrJp[[ە+Wj R#,H>ZӅ &Mdnn;gΜM6>|]gnn4a„e˖}wIII֭366f$233333{NhnQ,j>K{r޽{ܜ$H[oPڼyFuĉuֱӧ ?dȐ06)quuɩzNN O4s̙͛7e!H|}}SSSJRwwwҦMԩS%%%ONOO6m֭[=z?tjeeu-Zd gϞ3f$$$={XZt֬Y111+Wvk׮}W۶mۿ?L8#\0\.ߵkW@@swDzxx\|رcDMD+V000 " ðς;vlo 7ڤ7vaҍ7qƱ윽{d("͍5jL&cǏ5C>>>]PL j֭^^^vvv֧Nz!6;;> ==555޷~'l޼Y"s6o@cꏗdggk>0ӓxdUUU!!!Jի2%ѣ;=hР[nUUUСC%ɱcLjŋƍkSN-^x…}|W_iA$D"-Ѿ}{( @ {H,3 #aݻs633k~=$TREGG[aڴij={#G#Fp{k׮ &8::.ZHTj]@ +W̟?>n,{}* BP(4o׭[2"H$*ٹ6777##yyyls44թS'"z  1c|Dt&K[vQBBB<<<.\ID"ڵk^^^B}58XZa0-pjpma?.X~瘛ѣG,X=B=~~~~~~^zzIIIΝN:r`n;wTm|||iL{Tb\.^rccc@`bbbkkr+VZYYqECs[%%% tڕ}9~{Ǐ_paETBzÇWTTYrnݺeeeuDCZ]CoӣtӒ~=|ԴXsP(۷o^^% juee%"(e3gJR@n>ϭׯ_ղeeeSLٸq޽{ꫯ9rM9;;k {9gggv%==dJtuu2),,w;F;{{0\dQk׮׮]\vM"ciii}UUՏ?dݝD EFD]ty;VۍE>///999//?F>t4p:ť4,,lĉBo>a<<<JDᚏLJJx񢗗W.]Μ9s];ɓfffjjj~mnb`7o o9;wvww vviAPPдiӖ,Y2|ӧOgeeqwd˗D4xp_!n21223g΂ SRR>#ͥ>>>ZM4)&&G x#GΝ.>}͛7iҤÇϜ9ܼBBBn߾mooƍ .?(6xਨC~'>իWKګȧ]VdAH>twҥȒӧ[ݓ7n8w\###nzÆ /D'NH$7n`988:ujٲe zǎVHHHQQʂ"""Eiii96;;"443g˖-۷o,,,6l}URyzzћoM44dȐa͛{թLddرc|HHH$^}P.ѣ'|jժٳg311Z2⢣=zdee(ַoߐ5kDDDL<ǧwyb?~LD]0/۞y‚TUUڵ ]_|||tt˗3IO^`^~1\Wm@|^!Bz +$WH>@|^!Bz +$WH>@|^!BzyΝ+mH`` -_|>>D4lذ:^ի/J7./b555;wph?~%((ӧlgu 0;%%[t1Tz̀LևcƌY|Stt4;_P~͛UV5Ymݺ7x7֮][[[OKK=ztϞ=]]]wܩM58WW:Mn>** ֦zEՄsN:Uj47r?ޓ/J͝5kL&2dHrrTCED)))VVV֬n1ԡo4Y!Oh_mE tVVXXjժ+Wl۶͍\177̬4hPUϟ?s̵k>y믿V(;vZg ;{5W7oބ "##oܸa``_C"ʲ>w9kM8Q$effѻDDڌQz4(''fyyy8.\4iҰaÂ_eff._zr̙3LMM~gϞ#GjCG_c!755uܸqRSSRiyyy;wYlo;w+_ uɓ'6̙3aaa:u5j1ԡoƍl0\.ߵk{Je5kֈD" ~qM?bĈKL&۷ozHkEcAAAHOO///rCߒG+311 Je{׮]&Lptt\hQ *..633s[n:Jm@ݢADԩ=y򤴴TREGG[aڴijMhllqb`VӧJ7X ݢADBp̘1_|9rƦ"##fϞ}ȑnĈZz"9_fee={O>|ݪs|jD"-ta+6Wg-|Kj\vy.>|x 0akI$jаY5,..֜644ln[GC\RR0 '@  1bu[ǎBamIRK:R-ac ݻ_=~… )ѣ ,ZA 4HjŚ,ˍ=+bX~QWg--Պ5F>#bx̙RTyrwwb燅M8Q(>rrrrrr.7&00088x۽{7{CK <8***%%eС|Ç{2+ 22LJK)x0 ᑔ4tP" o}x4mڴ%K >YYYmt6C-CAMnuk$zhѢ3gΰ~!;QTTDDNZlBޱcG,GYYY͝;%5$"Lֿ   L4IsݐӧEDD9D4dȐa͛{ݓ7n8w\###.7fܸqoNHH i}Y&""b>>>ͺӶY`DFF;V6lذxbH4qDDrƍtR|&/111##Cj_O>RcKgWGOVrp#ay||%&&5sj\t)&&f:txVou<ՠVWW/[Y БٳgjܸqC(N2幭nxA죰<"h;lwܑM69;;Ak"JKK=ztϞ=]]]w_|ѣ\]]G* v+ׯ_߼y3;jժ&|rTSTo.OWWcrssg͚%ɬ 666...AAAO>m@"OOO++ٖn,5!!;?S'''m8e333Gi:tЖ-[N} .dffr.\0i$ss9slڴҫW^vڶmg‰D=z!!!MV#,,,33sŊ/Rdffr}:88xРAC ]]]srr9''E:w\HHȹsp ]2Ҳ#GQ>}4J0\.ߵkW@@`͚5"¢_~ϟ=z40샬Aǎ<ԊD"tܙ+Axjȳ_p&+---<<|ڵ8ॅ-Ztv?d'hwܙ7o^UUoݤID7n;w!!!EEEӧO/++ ெn!~ذaŋ=<@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz =9x988ۏ;… Z=??G ö]\\222{{}ׯӧT*=ztKb%JRi```oHLL䩶R5kaHOO)o8qC@@˗)ѣGιƍ\e۶mҿR(-emW^oj .]ݻwii)Nz<|իW/_a``0a„k׮izddd{vݽUvҥK111'OܺukK:x`ffWcoHLLLOOoVbFaaԩS---mllf̘q& ܾ}@  ]bEII㹵x ,**:qℍe2_yX ۷o.l,P]nd{I!ЏHn_&=ztҥڬ߾}{Zad[5557n SLiyQݺu#"cccJ&{qNN￿}k׮Ν;ܯ_&GbkÇׯ-[_ӥKޫSQZkySy}.5k`g]v:tx6o\ta[o~G9M69;;Gu=gϞ;w/_\*T*5w%77w֬Y2jȐ!ɚki^;wԩSP(_yfvzժU-l~p֬YFFFcƌY|SttZǎJ7o d'NйΟ??x`cccvћoyܹ& >kK.wm@&buuuwOY.((hw>|\.s@'@ojBmJJJDoEDiii={455՜yС-[L:u.\]paҤI汱sٴiÇEaaa+V 좼}-vtteG.ڵ+ $D"ܹ30us/_>v옯n;vlR?رcO>P! ?qDǍ7m4"L۫\,73gܽ{X,V*Ѕ66nءCɓ'^{-,,ѣG)S{6iSs|_~y葛 8DgϞbvvvϯ\#U%LLLD"QsoO6o,HZRرcϟ~ڵ۽{w[7Ac1cFQQь3ڴ@]455}޺4s## ٿh}}}G~ݻ;|0?.KBѾ}&G-Js\YYR<_sIiiJ޸q#;GVwޝg+G]bц ~P՚{K@bCCN:iʪ[z-+++nN:r:Ȣsjjj5VgX Z%%%uF@.Jk׮oKNNwG4Ga46ѫW7nhaʕ+r{Bo߾yyyP(لZN "++[ڥKp_njjٯI,7W?sppɓ' BiiO?{q2e?,7ܼy޽{tzzz^t6#--~G& ,++2e 7"ѭ@RM߿ҥK:WV/]$ׯ|I߾}T*ѣGbbb4ߐvZ%5o=|pv:Z-mcJR3 9r5G#&N( 윜}laCQxx JII:t'|C||̙M߼y300oetܙG@Zf>T*7G0ﭷ޲)..޷o9s4جo<} lWP[ IDATl9*kjj~:? |;s>W^ u1u5|%K߹sg޼yUUUoI'''oܸqܹFFF6lXxH$8qD"[f͚ɓ'kwҥȒӧ[[RTT4}nufffC&…`&Mjѣ'|jժٳg311ں+**4)?/f*taa@ 4h>|(lٲ:_uiVxSy}.HKKnM/Dԥ yQџ[XXpR]]saonjҊ{AUUUvB(ƞ/ O PD$[os=UDTZjHD&&Jϻ/ |$7}e%cjZӣGun-}@uYnnaÞՔ㏻^$B-\vɥKD$UԿ퍌 "z5%?v۶u/aSx|Ax>qߪ0vDR^=0 /Hjؙ"_t6Ivjt=ODII %|n_SXX(uSi/+3HHRYi0zSg)*~LV1o#}:u |B9_~hV^ܭ,ILR\l_g7[7UHCPMD'Nt|D0~9;Θdvӧo6CgH> ޺e0gVSrݻ¾}}}KU* у;~ ;VOeSB/g**Gԓ&# +$W#njicFɋ*и/|^!%%U;:>m߾iBB;o՝LMo;՝-یnpSN`jf,71a-66Ҳ̙!#h|}Ō^]AD܎Օu3sfҸq_>|uʔݵ:=LLy^"X,XՎk[ V{r }eLDWܾ]˽mKjfԏn:_xZDž u%`cSL ?խ_%" "?4C򸸩_ݒ:?y6ܺUTTEoavx xiqnn.YRk%G(u+XMD&&vXϒɲw-ɓ^VܺU嗎xX#@xi xL`tU:8<ݰjtryvzӦ޽VkMkxI x1 #0-p!0DTV#))Q韷e̞51="Z2ULM12bFMr@9t˫j??'LnꞃJEyy5DtzmE4dHZKv:udXSeUe^H>^Hj8Uڵti_8avŐ-vfٲ "rp0/[<8Z61f0?Ӳe۵cJk1cNV>?VTTbEeɤItUyu*c":rDj"Z}_!j5AmC"sj|ٲ;wjP!x)t`T\pvvFFԫA|_ zȑDjUn:|ͭ4)Qݲ&L12nQPГah;lE ,/=|^!Bz{>^@|^!Bz ; n޽{@AAT/իWo+//'"HEXEXE"I5AH>78E

@|^!Bz +$WH>@|^! !h |^!Bz +$WH>@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz +$WH>@|^!Bz 蕀j#WzcIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/checklist.png0000644000175000001440000005535612522231103027377 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME #Ľ$ZTIDATxy| }d7HTRDAiQ~iіj~﷿޷R:j[U⎈UGA fl6z>~\f^0&"A3 L&0\F|(Q_t`LCj\RćR8 f!W:Zh#>*ʱ?^N|hІkQֵ~81_M9"0HP)$gd)KV&(-CsDD:]:F$p^R3ԝuX, p`7c·( R"I(Ʉ8 +Ѕc2}4ٜm^f,rS p`k/.Bu@h_:h}W$YKQ\?,)([OP:/] h+.lBC+fP&#"@] !JO(- d6y;aNJ YKʚ >^UQ|hrrR>T!"J^+*}"ڦ#T>R1JC6B]Z2%.nC!4Q^(G3Ep}sпCt++ p`>lWc;l9Dt(#.Vy%y leUj.#%Cݥvu>O/!O$bqJ_N^1G}KG{[jTnR"wJwװQ+ %YE)}_YdhFS2TĦzIDDo9iKjOILSKn"K׆:`+0 x׭ "r"2"m: ; rua! 7‡p倏耗(Y 2DDg8"*ĘyM.%~|;ƐO\DDtGDԎQ2zHN*.[5|X>qQ9OD&:US:#"HMKt 9**S)ODTW`dIǐ5m#+_߹wi/G0u_m$grqD9]2"+~^iMDNs%ak~h>9WfVܮ*|0s]y@\S!|]z0C>4O8 brkq$DD< > <0T4/K;KEuVz;v Gը|m, tMW9`˪e*˩⽟6?Lo/^Z+DX\_kJm^Z!>խ\*=K)2J5U+AnWc>ABMfkQjï奓[ CDT|i|as],anO$!S= v]o$!4JAhRxbĘIb&3OaL W9∌VQ>*I " a>*⨄dbh Q9O*|WMgZըR g( u+됏<^"zYythv-X9ayi914E5?MA*Ss DYC9V5uղ•6"7_9p`h(WO_jl.!KWjq􃇈gmB|"5h5'9x">j#?|TgӉFLS{-{^DDKt@zhˍ\bYF 4""224M 'l|EG/4~cn:ő!d6@X*6g`ZU:ګ4ujYc>:#"2S~aj9D3ZBQWUQ GF>hR=cC8`e?rѓvH)ۗ1 ;#"%ik n]tŲt<-vUܵQ^q4{}I! οOaJҭA I)IJDDJ$ؚ9\$h F%ƌ->:,iK7-pVLOtGiZ$4.]DBQ!|>@T **'&VMOe DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * D JApC0U- *| cΜ"HHŹ *4:))a׬ -(y8Yy]runԣuwber9o6={+n0Ӧ SM6JJDb߆c㺓JaìٔJnn?de),GT ƢRqQQޱcK?8"/O^VƆ(#Cglf _R-)񯿪׮5DDx0䣏FVߏ<^:qb-8ƺO!-XU^.5K[v?@^ƾfsW -FYusѾ}4j4\.d2VV/T7W%}'u?Y(7Wc@fKJ}{ȑlؠ<غwS'gxwnm*`WayRSu$J%o4zFDDxmW|+>UpwJ7-,R"JKlؠ/.d$ݴIkW ݉/.f@&P׮-06e2^OR[g2DB"ڹSwz\4աQQXRQxes(F;wjn7ع6NTde)r>6MD Yd|fj>J=U.%ʧiSSu2|99rqsd[d2~4{\Z>0R!mtD$4ZMogܿBwT9;$v\Z-W#19~HͲm&Rao1 ͘Ql4zl6ɻF8,*EEy.u8֧OE@๪++TB*,,nTQndp۶ysZvXfLՑ#aìGHhkԹbY8X P]x:vt*< ])[ \>jy_#(+cH Bq*7o^-QꦨH&nj)q4wnt}ɓM HORSu&znNk+'VSO=qX)`ə3rc`VnQ9ٿ_CDNFcbj.()a{&/P8A g=hd~\0ԬYKFG&ja&IMn\uD0Գ].A>:gv^~eDdwJ=kqoe(dF,]Zj*SFD,K))M7YtJh`k0C7J%$T$xӧ[de)ΌxQ:wnfӾr+)oݪ[/!, g;}m >Wxjn[gs3g^\ Z>F;d%tq̘Q?$%F{=&<;r%99[۵sQbSwXn_`HKLG*۵siӧXﻯ4:t2N$*ʛ\.\j@&N,ioݻCZʫJHpn6 Ve=)b2d2Qx8^?P_j.f7yf&tڴ8+Hxs#1Ni:JJJ333###!xb2.d矇lL& (9}Z0d4zƏ7BD. ]'\vic!!!B rn0 :kݺpرcrرcDTXX+Lpٯjܹǎ[pa>} _xf͚ :TVgdd<0tЩSQ0 'O1cƔ)S^}Ւ-[le 38q"!!~8vؔ)Sk_>l.]>G1zW)֭EGGgddpׯ_+Wxg;t萝}cg};m[{={E>`Q:\~;OO?=r]wU R&_`:tnj# Y~h۷oXgWv}Q˵vZZMD0awϞ:uꭷj֬ٸq*xf̘裏@CAZnm6].ױccǎ|bˇjO#""۷ QF5J޸qСCiٲ%IҐs09BD/D"!'H$ ꘘ[oտ+W뮻f͚ED]vի0}ׯ_OD￿5͑#GRRRnٲUߟl2|?Oz R&WgرSNp7 yuCz=/^owԩg}0LJJJii%K6l +.יQTTt~ѣ.\|؈jŋg<8!!!..nQu)UVH"j֬0l͛ wr7stsĉݻ^});?D*VɫVT9r$))'{A6m'.]999ngee]v:t+qEEE)|}*,k4 ˯fY_ye˖=6lغukXΝ,Yrw ,%0Wyy|GK.?~|߾}zJOOv5ܬY3*nVk7 úrYZ8*aYYY:)5nrud2ѣ׭[GD6l֭[۶mk$//k׮еZ^wމdҤI< }.\g ôj*55Unj4e2Yzj?GWFgZy[X~t2Zm9/K۷C`x"*RJoh1/ l6,FVHHL&şJ:79c._<++gY`6زe˔Jwܱt3f'Jg͚5|SFGG?mS P+hZnsή]Q׮]wQ}<;NVv*t:VtSL1O`ʺ0;vn֭[zzb<ݻ{Q2t:7o ?ZQ]tٻw{ҥgΜ ϲljaN:15:@Ν;tϗ{,0<<… 9+++j d0gΜ)D?iӦ/{=#_bEVRCs'sCh coٳV|Ap̜9G)//:u/cǎ7o~l6[\\ŋBXU;6//'t\#F|d=^Еr?|_>'"Zl;SbŊӧ׿ZQ)))|G}f͚~mݻwի3<#Jz &8*vUg̘1Ν[rg}6yd翈`mRRR^y￿سgϙ3g.X`?pJJJ'{733W^X,@T * O8.&&?Gca6{OZ}QQMj@T *nѨj8D+Xy1DMBQCy> g /HFYIi!+Zۼyo͛\4! 8/v9ҥsk}?봠=(CE`jms5w[r nzMo; 'R)͟_hσ>'>tyZj- f<'L MmӨhBտ?/,v7p_L /!n~? LfO 7o[Oww:ϟOؼyl|)aѣx>lԨG;QEE <>xpmۨ-qhD>L76ѝ!ܥXJʮj0d,"*/{Cl߾^{݄>ҹs2,[~\!Cvn|ժQ84b>²>"R*]aa#uT,}?o?/<Y%[7~ӱm&$ |@#`) F*YO SeBQÍ\ǎÇo>}+ϝk1lغ?feJK%""LAH@:H\ Q.DŽ1e".O?MUߧLYtpbV)8 I$UbZ,>IDhDԝ,өt`M""BD<ϬZ@yO_t*͚W>`+3g[1ˆU|"Е+3m*64o~癬vAH @FШqӿӧDd0"RRf쳙w=*3ϝkѪU~F'OϏ?~M߇Z{-.4"Kzzoa޷ߞ6wޙ~$$X,e2sZ.(!D/nRW4JKF}y@ϝ{gOD,)in<4=ؼ;t*/~l޼ }͛SRohwr.b۶[]c2(7k4Tx 꿞L&MjՋ@,OHp|dK+JHpn6 6tcǖxN&7W/#"8E ovV>ѣ-.ؑ#-/p]aƍSWe`ԹscU&;Kn3 s?偽z+?_uQ!!S/mٱ@|h"===..n…ANtҸ;vZ>I={iӈ(,,,YƏBDMBddddddf1 UpDB&a֬YFh4{Aβxba~:Y-2Ƣ-/v[\II=fnmݪG94zZh^{'MtU)NgX8smbɓaSr1:"JN.s4 e˖Ot:RYg3R"%wh4y'NH;uB!|\+݉{>ӤifVtq^&Um.5Uw萺LTFgHKDPpa3^z)ýg_ddhјͬKJ%%PpC@V|yyDFFΝ͛CXH4&#%DMMթT\|jesrf3U(XW"֭ Cz}+q4'"36^ʃ'lB;-[Joao1 ͘Ql4zl6ɻF8,*EEy̍QֳfV"!" N^lJ^}5N5Plۦ##-II ͆ uل !qf+]?Q*\.e-[*DD(Ox6mҟ;'בּciQnd|>6"۶ys*qBhHNjòh6:Zndg+*Ov3D4xp lEF&#Cc0L1EFz",Pᄘ"Fs:n@CbRyUT]9ZMlXlEzP0#"MǑ h; 3=2pHW Cl6IjNh8sFnKz_^;,#"u嗿QQx5DtdJ>&ƃ-לB~{֭ ²/LUtGΝ?J R㏛EDxz߄ fM?s:%D4xM N۷Ose(oBS(!YRž?/+,dZ_?С[!.HssBT"JJ,ޭ)-eýx@>L!W7frxb31`ڹy wX 9ҥKv؁hXh&aӦM# g?~|JJ 4 `0 T@eZ>ಬ,ʕߝ M¬YFh|;p+.^X駟7%GSd4: P4zxCRSS,,,4iRFFFRRRJfeq&qf1`_14 e˖o]aYv+V8nժU'NT :e˖JVȓ]DںU>`bHLgҤѣ-8`Ah  /9s?B2Æ96mR=sw;lwvRɷo9ҢVs^}>}Ԭ@6rExbiFf ʏ1],<'G1d5'GQX(s?Yx\Qխ k",JTݡC2R#-ZݷO1Y9|x.o7k֬^X_1d;=+)q+RROTde)r>6MD Dbʈlf d u 4͆ bLƛLMvi+kV.Y;w< "n{FiSSu2|99rw;wjNo6^KY:h,Y/'''^Zhы/Xe2:[7D^޶G ›YL&oG?8R(Ν#GўcǔDԮK|>f6  ۷Ǜ|^x)UGU %$\.U6i9QֳfV<0۷f(6=6w#OPɢ~]4]s̩ &4bÆbj>|X{p8Þ:rD5lQu ".x.{6oq:B‡Pliȼ`i9Yǎx'\.e-[*z<QA@ ,h) S*8Z2ԩJ^]!!bɓ\Lw "]BD '%h|N2X'"҉?.Ȳ 2cLf "C\zu!EE2?fLi׮scwwڥ]ԱSHjI|>bY8X"RX@&O6Y,lv"=]SX(KMM`D+QCSkNh`.U:gЗ%(Zy<":p@t2J%FQ3gvDe2"XX"2=2pHW SlT]+՜.Yr 5o5=2KHxRJu&ƍ9"HOO[pa/]4..nǎtnO#y'dx<)@hfϞ=m4" rǧQ489}Z0d4zƏ7cO@SMBdddmg pWLz\vQKx#LwT-$̚5h4{ʱrŋY~ K)2+uh-]Zd4.T9sb΍B- 3'Sh>իWFFc=gaa?I222Pu5N7Uk BѲeʷ,;y+Vpjժ'J$:e˖JUWϤI%G[P kРAIII/™3g,>2cmȑ$[Ff~l*7%ӧD4bD[ y<:3F&y'EEy{eYmۺ{%"IۑǏ+9VIWڵcŊpa pK"[yhcmӥ.>3gNN0T3FܸDTT$%2ߧzmt22>}r9OD, !@M:vt;Y(?_r1,oRх版 WժaSqDD^/pHDRq=zUT~HE lhhB>h (U+y߾go v i4pHH9R~:.pAddh ߔ)H@K';7DV)hʰSvyza!! nG"Rx&򅮔6#%#%"qɓM HORSu&U*n޼Yâ"<ƌ)q4wn0J鬈5USV՜߯!N'T115\"9sFnKz_^;,#"%"#dtlT]ɠ aF=r9_FDaba dDtXWhXRR67n=xPh>" [֯7Kyo_[0&ƣVsvd:CL8:ױqQQgcp~IuV |!)Ʋ{ VyGu%%BF jFXu:߾},DEy ENTĉ%?7UNbPcGx<̙3r9Ҳ~QgM^&7WNDͺV8d2Qx8䫢 111{OzIIIbbbfffm5kV^^ޚ5kj;ĉzEPD5u*_O&OMGzzz\\J/~ lҥqqq;v@4,\v&aӦM# g?~|JJ U~ 4 e0  -M**/ Z>I5kh4ޕcxŋ <CϷkwg?.̉;7v3[n|~:1zBW^=Hjjj^^?&MHJJ k9Sѿ4O=ŕjUq:9]׺ IMե|>zeh* E˖-+aYvǏ8nժUV[NJeEؖ/W=n\GFX11In>4hPRR /p̙ > (G,7}*7W.FYusE \c>MZlf5KeuU KUJ٣1YkFfֽ{:9ýwk۷w=PDB;2]TۻF\ f6iIJ ۷h20au:_mP۶=.{dvJ{YmrTG#zJK |@UM0 uںյm+5ձqa"3PlOtgʝΊ7DTT$%"0ԷOpfY^8gW'?_r1,oR8W'"*(i` ^Qnd|>6"۶ysʄ JN8+RV܇v8ieFա,69*#TצMsd;,>-X(##Fvod`YÁƍr瞻@N!!WC ]BD>^/n7dYh8t.Fs:Gm p\vTN9^/SbD4xp lEF&#Cc0L1EF@@_&V+キ#*/VE$i;H*'yEUF9#oز6#%#J ]UQLHcƔv8;7>e {᪛,8ybaBYjn3, 1SCț-$KgA䚗Wŷ*=("0dBȱczxCZbIRSu>eI/ @T * DBQ!|>@T * DBQ!|>@T *J*hbbbP pAh\0ɓ |4:?nzL&KIIA=MN@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|k$&&pԮ];CII jQAS DBQ!|p-FU.C0fѶ 7%|>/ݝ:)愄+]vN|χI^" -=w.^x}X..v6mm|" :uK-[= &\v=M2Ů2ɫLg϶lYm[o>JҩS駥'6iOsJeTT-..Z>থ1uw<%;~lڵ"h9rߎo 74I>c\˗간Ç}D몎7P} ߹sO-\Og&N?ymGr׿Xxdee}}{6[+RRcVPTTtb)[lٷo_RID?cAAA= L&STTQDp89k0:wܾ}{aԱcǎ=jZJe6mz-ӷy;v<;v Z@<:vd/V-RkǚL\ݖTJ ,k'Q"'4elRu.)?T?D}-MS|>O?4v8pUVD9rD֥U/((8wT*"'OU~J$??~z>;;tJ$?Cu{ZVx=x[lr^_.,!{)!R"矻u f3ODZ-#zݏQ'?iѢoS<|4Ŵi;6ntdիV*)){6nx뭷 8I~չǏBDeee_ٳgy_jӦ͠A;w R\~]wEFF:\"zD4jԨӹf͚sΕU;w޺ukff_|'>C4/KMy9bkJwzSKKJ_ k۶,6fT~Ǯ]yiӦ;Vh޼yNNΑ#Gn7qD\.Jdd$t:"r:+:DԾ}{aRС{<DOyax!޽{ϟnݺ/>X|yJKEPgpr`` e+ԙQy9q$4~1BC/w } 3}ʗ_~C Ph(c00r9CD>ߍC.T*VVVf۫IXg2]97o.,,b_ޣ,QnB ɕ9ϯ<!f)J\@@_ϟfP{充ܪU?wgg1t !"}:NqOD_atU''ݵ+߮G'[|?vz^{)}=xu~ $DYbȑ+2LBHNNnӦ )NPQyyU+I&]uF!!qsիWm'3fZ A) vceTfe_ߩ͛Kuc{uȶnKnn~"zwGNԿR`xg=<5xT*?f\>eʔn-##FΞuU[DvWtd.\"ʺx"\.iDDT*u\'NTq:$"*))/СC}}Gꫯo>qD$yp/xǘ1Rh4uܹѣ7ll4Dydo1ᇿ_hhhBB0G  sn;,,k׮2?oJJJ9;|QQC ׿p0&ÛCZw\i+))ILL"Tf=L<DBQn5x߈BGe - * DBQ!|kExǷyC&NfۉHVcFaFahC'|riZ((֣  z |!%% @S DBQ!|pm1Uu/ UM Z>@T * DBQ!|>@T * DBQ!|>@TRTV*&- * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|>@T * DBQ!|L<DM4;<IENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/calendar.png0000644000175000001440000006725312522231267027211 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME nnIDATxwXWg (XUA)1"`D(Q4VE&Z^#XQcP#$Q_ ~c$J˶ ꊰ;"+s3gprss -\ggaA,gX U{S@FGCxM84ӈrԘoJ~|_F[oԓGP jX`g+֦ۈriɒ,ݮgF`ݺFFʅ &p5heU=QVϔ('x8D@Iee%'+Kh{lhK[18D@Zn-^DԔKCGrYJJm@t_IjrѴ2:'dob3"Jj]LKfJ(ANJ)ygr鑒Vкf5+;R͸]D]tCA+}*gm~ iȒK*:!eZC!6h+iQE BkZV sCjɣgJ: 9T i )FF*KC:)A%$׺g%%ܸwUVr7zxQZg)(+}Dp8!8?gltuٳH Pі-aWYY-+ g*,.8++Y:E}5.m߿MaZ .l߾ƫEݻ'&iSaa!?wA:lXKDt<33wwiP-o2!XEEDDtPFe*R;-y /%?i(+Uu13s\EVOcHNZjz ȈCn| RQR/" 輜8D 'e qȆKE ڈ~GwdʡiұT4ِ T|Պ!Ԛt|'eu-\ry&O15ғDD=J_+ȿ+ȀB"ieVJ '5uR*JQJa讀s)@@D4~Ecd'{sꌌ"􇒈ȎK4)^-k"gHD46I W,qh:U5݆G@.G, -'J4PkrKKy/=)Ǎ˵rSRN*ݟZXȉ(7|y۷J:8Or8#JK+W6s(;[ЬyK.9#"*,ݿoHDkWmşj4m*0!@Pp x7UbWPttî]KLM?('gk7S"۷ۻ#9}ڴSR+!o|TTПJj%G=RҮJf@4nG*IAtYNDd!"j#shh Or"bUD?I|hqQAC8|qȜC^Ye UԐC**%%ڊj%ZVރG$7B'Y TT""2^ ƫdei? ӳFFDʘ-*_;g\QU*rNy9g^22R)S?L(3ֶ5RQi)D$*8*L>;S1iJ hY -ż42R2ɐHEDl~YW PuXJD:5de ,qdcf$(x|1_2RͧrUBt-|srTԡ z2׸XJ!"z{fF.iŚP"`!zue Ӳ̝ Ęp^7T+я2.5jT [ ̗9MदkTDW8Sڠ!"jPaj}("J%YXqdlsqꕽ .XZ"ۃzyϬ5(GED$hDGeT\.м" (OkϔDD nU[֕w1*KTh7lD2,8iZвk^Pu _^1]`FnW0_!!ڕ+`տH"_B7߼1LLDTQw-ꯆiY -uؖr HR6П 60SLQ*pЁ7p! 95咊2*Zq*&< 94ѐh!5Pk)$%/WR:1g5SIe*2ЧU25zYrFɮjCЅ-Dt0#C@Dee˗E!238CͪRz2@U^νtQxS/YZ9*,1g1ԃN:e5j]͚D"Lƹtɘ._UTpT2}K.ʛ|8Ќ2zlvdOUX#"//mDJg۷mhLO!-Q߿_4>/d9I~&#":XI/6SJԐC|FVJ%8@Ihy뗚TF22PcMm :ɛO8'o>IT,҈A$'p^_ӾJHIU9^kW-+^A 5PRןتY U}VFoTYFDB244ys ϝ3 (~qamm+ NzAZ_XY**8f]B{{T)-ύm:ըvy{~I\&XX-ҥͥ>Ֆɘo1%ln5 ;.u)sjR0S iҕ$)+T[kkk*\\\4nx-T^݄CGM%Zp)YgDֈ8x_ۥIEtMApc *'s(MIQT+N_Qkԡay-yC|@͵i~2~jݺ5͝;O>oeņ 6}w+۷opB\.ǎf+ϟŏ?~ k۶_\շN*.[죏>jժU.]NC5'H|ܹsǏ,X`ٯ-@Ԝ-s%%% %%$ {.X %%e͚5;vd/]4t=zL>˖-kܸAܹxєcǪ^z]]]ׯ_֭?)>}{o͚5aÆ{RY@@ÇCBB9^^^5P HtE"O뚧Q^C++/*N:XkcXYY9zhTzHe =zTTTR-:lmmRiJJJPPPJJBQ|oڴҲwާONHH`WXѦM͛7s8~I|pED"kkkOOORZDDD͜9ڵknl2"}m^+ 8pܸqO>e$3`S _0|>A= cmllVX{  ĉ={v׎y eYYJ""Hp*$$dȑDٶm[Ϟ=nnn cnnz f}||_N>^(;f*nnn&_w7n`zq7hLrS#6LLLw:t(mh/j%FSU;2=ٷo޼yѣ>}P(=ҒnѢųgψH&]|bˉcǎ֭400`ީ-޸qcf)-JejjСCM6W޸qcĈꗾ,٭[733_v-==] R k1|-15kVRRҁ> :t'Fiٕ T^aR 8yiiiXJ 6/ N^ۥ˥R f̘ѨQ]޹sg֬YWQP|l߾+=reeeo&+W3 -ENy/WAfMj֬իWD##K.x̙={ԜoeeU055%%<]]sԴ@@(V'Q8p֭[ݻ믿N6:V>g˖-FFF=zظqcXX7hԔCDnnnKDJӠA@Taa:Ņ9 #GL2e)5.-7nHJJ;|D7W/\\\7tANv0cllޖvZ=sLv툨]v^{@ HMMmo5pߎeee511Q;YsCYfׯ:ZXX<}VTݫVס>Ϙ1cʕgۯ__~E:p8mڴQ_UZ- NOOW)..fBEE'˵)5>^}III}L&;w{WtرbM*J$x<ͱVZԒD"),,d>|]]]T_ԬY~/ɓ'OGU3fÇϟ?_PPqܸq_ӧ̙scVA]zK.qT흙yUVUs|166… GNNkߟL"}{cL ڋK@п{DFFr\淾]Yȏ3&66vժUΝ 322ζ7,,lڵ=3pDFF>}ӧ3fP*)9^UKޱ9+_=z… /fϿI^Yf) $PKL?|0չØ޽{>|8iҤiӦ%&&JN8q:tdW^:11q̘1gΜY|y `80`@cƌ-ڵL&Ӽk͘1vԨQ]tYnk_tؑ?;vرZ͛6m&M/Zhƌ{e2-f /"""&Lо}vUgپ}ȑ#wvaE"˗/777ѣz~wJmrww徾DԹsg\lX;;;_s>|3g~ǷһpMp_GA,gtX[[xӶmVXqjRT^^^'N=z4幸$''3ןQ8ǏJK.쿋TZn0uօ `ӣG8ЩS'HtႂO>ag|ҥKccc}}}kDMŋ[nU*m۶Ҽv"vyiׄ`Ϙ.p BB2{7v6***~'??֭[wi݈?Nq]v5Eٳbqw xgnٳDxܹ3g x ?|/ּ|}}%޽{5>4hsĹsg˖-mڴ7o 4`2"*)))++E"|@mݼySPZ*55uŊcƌ!ӧ>G۬Y6lXFԓ'O}4daaa%VeeMm۶1֭[ܖ-[FD~~~o޶m[#$$dȑD䤞r-Z$===$fͺzjtttFwN@mZ[[3ӝ:uJKKJDt l޸qʲzz-ZD"fqU {޽㏚ C|@mi`@GDŚEfffr\s٦MXP(re2fݻwxG!*((POr8KKK"255,*(( |x7mήJ=A~ŋ[n-511Qϻ־^z;wY H> &Nxĉƍc7.99믿>}9s._Zrww_~z۷Ǐ&HtR[LLX,~A܎;P'菟ٳ򒒒V^?}Ç~5kVÆ {͔޹sѣ)))cǎرc>}D"ŋO? 7nLOO߻w RRR֬Y,]`֬Y3f0`}VX!K. :GӧOe7n,]+ׯ1b݀WXѦM͛7s8~I>\~=&&Jt899! rƍꗾ7nPlѢH$b7nٳ4$H,--5Ts)&3}?\E!._̤̜;D$Jݻ;::l2..ŝҫW/=Я={j,..633S433+//|>Bd4dbbxn5iD_~+VXr%3GRT-Z9rd˗/˫RgӦMX/kk={TijjZPP~YPP  !|>̙UK+++":rȔ)S,//0qokbb]]]iii)bX)ST)RT˗/mABoŸqF_3'e._yj.иqc3338x+f͚5d@ y͛7wp|||"##uFDS*00իW'&&3̙3˗/W_Z3f̰5jT.]֭[`]^^^{}IM-_ǧGvvv+_8ݯ-,pZf?㭭Д⒜t,kV>Uz>eH>UH>UH>UH>UH>UH>UH>UH>UH>UH>Ux-蝵5PUi>ؕfW]H> @5_^p~JІ )S(J@|3yyx9v%a)        -**J,'9!!!bx޽;ĉC quuuvv4h5KZlw9y؄h.f񿕖" p oǽ{rss-,,SRR\蘆kךϜ9ܹs'Olٲ%v??KJJKJJR? RSS.\9x9s:u>~ÇbYGdeeiӆyfkkKD%%%D$HT*kʲoٲBB P ۷_hKÆ 󃃃iׯǍ&MQLL̀8YG\xDP(LMMO81v؍7d /U7o>k,'' 61̙3Lz> ]sD"IOOWLKKH$ozLPx9 uJ077g^^|Y m۶urr5kVAAA~dĈvvv+WR㓘ȤRܹs>>>P&]]]gz=Pp8nݺѼyJe 4(<<_[4uԇ3ɓsssQF޽{C*++;v,JKDϞ=dǎ# ӵk^zرN8qg|@ݲ|G$ 2?|xxƍ3gTbnbkks L0UV۷ognoJD b„ Et>ߩS_ٳg|>?3g.u| 4hР*3=zL4mtΝZ?s挩i=ɺիZJ_333_Ȋ+Uz3uօy.$Xtill_h|;cÆ @=KmUH>UH>UH>UH>UH>UH>UH>UZ=`W ]({{D"Nve}ݕo`۫^^^P(LLLP֋̰+߫] 2$6gp BBBBBBBBMMko|[0]!_3 mTqѥ U4x$tCp#0sSEj.b]5z RH>S"'LD+zQmAADOx)$;$ uqZܧMW7U4]_^ȼnn0ӎrOOWRHΑ͇^ ,--k|\#e#"*`Yf)M6l`<*|Bi}}DD(Y y7@5<>U4 {= (@ՠq5Z:"/""x$pӣG^֞d68BBZn1a„۷o룕(X'焄{꼭I&_f̘1:oM6?C?S֭ߨaÆM>65w>}p_l+--:rX|1۷_pP`sꫯƍ7cƌ+..ڵkmڴSs͵OIIrO0?.]:c ggg"j֬ےH$O<2ɓ'v͟?FI&Y8::pn߾_~^^^szs[nO,X=ztyyҥK||~z)__Ǐ777777"v}Gz"[[Rt)w:{q8\fff5BfJ7IBCC5lަMy)4x ":~x``fс|}}%湘*ZӪU+ww׿6DMDQQQ-~NNN}vC:tP%P7fbbbbÇ dggƜdyMOh9o߾=~x777DҥKQZZʴUV19''={$&&=ܹsݣGYf׮]qqqY/)))///))I/">}zNm֥KYfi~oլtСC6oR?н{wGGǖ-[; 6lٲe{RSDre޸4000>>gϞ3/r9ϯM[oX.XbʕJR[h񪥚5kfhhxUBeddt%'Thff&47ܼ`bbx]vZ6mTaxx#Gϟj``|̙U#+++-q8-Zǻ s{ @B>/JJJ35Ycy8>>ݺu#yx9clll@@@ƍԣ^]znʔ)}ݴiΝXcƌ-ڵL&Ӽ2VW^8f̘3g,_\}i.//{>|pҤIӦMKLL zmL?|0|hp'N}Nрz|ݻws޽kff& JJJFaggrJDvERѳgd2ٱcLj((( :tݺu:tvZttI1;ۚ:uÇnjsIf8DdayC^䅵uVV+ rm|>_&mڴiYYY͚5O'M$MZQᑝ9Y6//Z&Mt2/V(kVYnu |i@ 2eʔ)S%]zz c>UH>UH>UP5Xs1Xꖜy؄hT5kxzzlٲgϞ[}i.]ba߿okk۩S'5qHjop5_i޾o߾>>[l_Clli[233;GV)ڳgʕ+?sww-[c5ܹ2h @p999uÍͮ,++߿R/6lxB=qFJ~9gΜΝ;멭ϟ?ԩ.\oB61&$P0w1"aÆIR͢[k֬YDԹs:ܹoj܎92{lm3g=zB/GJfRVvڕ{٦MEAAA{멭XWWW`NHH8v옞6y6 Ա#cRTyxx0/GRR dhhhll\TT& Exxٳy< [TYI*RV?޷o_&`Stt011ync@ߐ|AP( ͛i$L,Yҳgq= 9|ٳgWZ}b իW{{{O2wÇRjڴi/͛wq= yСCiذa_s Zt]tJFFƎ;_rJKKq13Wt蠗<O(k.66VPL&;z x޽{Ϙ1|||Sy֠&&&W\9s̩S Yhm655U?~288NvDD\mmm5/U*~̙|s9zE: ="OsS+}K._rR m6::Zrnڰa>;1Yvښt^~|GD>|ήm۶k[ZZ޽{W=ݻfffBPs -**66={&Ɏ;FDAAA'999&&ٹp͛7g#88Q.9r$55uݺuhTs(kTTY#ܺU$ODT[Fo߾>lqqqK.ߑSRRrɓ':tulmm;tpڵI&-6y6!EPL0ANOO 4|ݻ ϟohh߿BB\}DDD```=odde9R)]/?}Z_=;wo'L`aa1k,~q?~_~3D"lҬY3g/``'77,,0PSkk묬,V A <yyy4i bqjyNeH>UH>Up P`}V!ĉC quuuvv4h5KZlwܹZ3o޼*}5tۖ궭}i.]bֶܿSNkk͚5޴o_֦M{{}>xP eڵ|>̙/,,8pÇPm۶ٍ=Z]T3ǎRf[Ztޖ꼭;w̝;w…\.w7m[jz!5id###=UVVֿk׮}}Kaa!>%[6mԼysf:00s߾}s!;v_^(z{{{zzFDD,Zm17- aÆIR"6R󶴄Wm܎92{l}8ṣGkˢ-Pػwo]ZڵkWnnٳg6mJDGEHDVVV˄ooo!;w>|~+6R󶴄Wmi244466.**_[ "<<|:y|kKPTVV{?~o߾LP ++M6˴4[[["*))!"DTb:^}PTO EYY'=jjj***t\46۪#ՓlOO-[DDDy+Wd牯͛75k֖-[VZ%GJeQQ֭[B={&NaÆ;v:ɓ;wܺu|Hdbb"XX6۪#-KK肂L:zhYjUX݀~~~>>>7n\dbzڄBի\wJJJDDĘ1c:$P}gx]sD"NKKH$^f[u$zpڶm[A*JmֳgO}oB5J/ekk9HT֏c>n)))1bʕ+$&&T*=wVͶHxuNb\~KKK}4Զmh ͚5ر>ddWWW=>rB`^^~]"|@2uԇ3ɓsss\Qv=yCFEE;6mTX"zL&;vq86R󶴄Wmyxx;::#G[N1455ehhXZk׮z߱c˝8q=z}>쳁&''-]Pprss]y5ͧY[[gee7#;;[s ?3g|:wܷ~{= #GN:Yi^^s&M bqjP*B|N I>0XXXXX'N 2yРAׯ_W̛7/ &$$miES[Dѹsg;;;-[oT*՚5k<==[lٳgD/"JJJ hٲ߹sޡcCK[7Ym۷o߾NNN t>"~@uڵk|̙3ϟ_XX8p2EǎI[Z*ܸqf χ?]v7zjkϞ=+WOnjeeWzzzhhͶmFt~lhiKKۺs王ܹs.\r}Ǽ  G[]vuppؼy3d:oq[Z… \" RgppEіΏ -mi)y[R[hhٳS-uuS,,,222g{J5+_[&&&/m[J2--Ãy)<<|hW_M6?zy6lاO}ѳgOWW۷?yέD&&&"=6xi:un_ N (%%%,,/sPkI&=zt~ŋ{ƌD㓖#,,͛C%"''aÆ>|XDb___W ##wҖWU # ((hҥvG0Рӧ59sL~~^Ϲt{{{r}4gbbyʕ3gΜ:uQOK"_I$ZqlZjTBӶmT|D@=ꖒ#F٭\Çڶm&|޽kffbeeeoo믿i$&&2YT*=wϻrlhiK竡J\.r劥%>%i[N1cƜMv_aaamڴ۷V-lW-}""":wlgge/JfOOϖ-[311m۷o߾NNN tfiRRR@@@˖-Ν;p-եKm{mnnwߪ. ԝ###yϏ\OOϙ3G{Qͼ3g,XҥKL>f͚ײjq~ٳM6w[ݻ׽{}>cZ9rӧO`Po>}յkW͛7L&СC~S*Ξ=.\uP(J===-ZT|@݄|@]'" ++-"R(gϮM'D5b|:~x߾}uyTDGG[ZZz{{-N-R &EEE˄oooA?;w><>%@uWAAAVVV6mިHWmEFFD^z]YYY-[OHH_[ݳ0aD"qqqYdRRT}IҶFɜ(,,OJJ9r>R( B=e*ɓ'˖-{AiiimKJJH"ixGrPw\g餭+W2]ޮ͛Ϛ5)''gÆ #F8s̋O*}[Jh֭;w޳gOrr˛6m:f˗/gddPVݗ/_>i$L,YҳgO}%5kv}u[j9@ѸB0""CDP(LMMO81v؍7d >H>:yΝ;njffV"]jժQokR???7.YDm1Bի\wJJJDDN-;õE{[qqq_}մi>ëWΛ7aÆ}G[!!!={tuuݾ}'Oj\5KK肂L:H"D$c $P}/>SKرcGTTV.QiiQ-Ov---RSS]<O(som׮]llBvdG>>iiiO>^VXX͛7JDNNNÆ ;|p-LoG@@@PPҥKwD"QqqݻwիØsCCCO^"`;88:uJOۥIPHR=VsĀR}N}Μ9s./mK.۫888dffcLLL"##\r̙SN:::p8m۶Ug$==]]&HtEdĈvvv+W~nj۶mttoݺa}lL&S`NNN8pbGoꮎׯK$t{v>|ήm۶_|>Ғ`ܽ{̬6#^]VVVD_uܹٮJfZ._rҒyU^^\j{ܹ~S$PL:Çcƌ9y$3ܜ{Hm2}(CCC9ݮ].??ǎ\.wĉzjktR=ED%%%'OI&i^ö@T󑑑Ѽysf:77ss̩6T:{ld J%aÆI }>n}>.RgDdaaaee tn }ó]*((|pJ*+++**ڵkӧOkTWꮕ+W>\=';;ӓBaDDD- з uɓ'wܹj*333LKK۷wmԩo߮e+:^ E)))aaa_~=H tСG7oQ!sCCCOp8mۦQWꖒ#F٭\JQeezZ._rҲ6mB 8eԩ>3fɓ'9^^^D(ˏ9nݺڴBJKDϞ=dǎ# w-$Pܸq|̙9^^^=~.kooQeDțRB0atzz:?')-W^}U… uۖ |~ff&v>`     677mmmm5߿tZ|B*H> oSƕG6T~U| $äMM]5:lEU[*-~W ^1xߩHU-r/,zW~(v@tO/>>ॐ|s3e^,:ox<+=ߨB -K!xNɟ? ThA$C^`]Y^)8ϓl.[}NDf1/k沍v=`9л,͗/}[YYD"W[Nr"o\en+%2n33 ҄̕RHΑםMF{^P mذ E^r 5g/?d<糋f-Rꌤ.l2"333|@_wV82"z߲V +Bia>>mlR: y_NDU.]J7l`ym~)&ӧ8~}ڵk=;vo)gH0ᅲn*A ~]AD}'tv-Y"9:ukP!{DFN46.۲%qڬs^eK?23n P(bccؽ{˗/hтd7n\]_Gf͚4|.33rZQQrsrr޽]~=11L&ݺu+>>^:$''0ѣr\x eQOsG K-)) sνh?xǂ)SDtbʝ;+G~LL8tÆr3vڶS˕5o^0b}fggQSY:ٳk׮>}xzz2E\KU}}W|!C 47CT|={vԨQ>8p LTGӦM7nTVV*J"R(RT}zI&DdjjJDy 9880FFFNNND#ɸ\1TT~I-\СCw^z֭[5N ", a+bbvvQVܼAEEEZGClS( 8ff3333QIJ$Ѩ?CC'L[&E+j|0\jԈcf10BQB-\R**...++JGDU2Y8_TfddhΗdܐ򢢢R###}DC;^^^L.0hcH>m?\_ʰ0~  0RU}{ejj s''.唚pr=x,/W?2{_6~ΝtI<{ֻߺ5whP͹ lzi|okRիW:cǎիWw}ݺucRƍe2.]jJRر:QIIK9 2I mIT9sfϞ=vvv'O D5h@Tii){^E0ނOR*.^\F5^VhÇ߿`ر}ŋ(8X. *.&ʿ OV-kkk"w޳gψH*2N---|T*sa1׮]S7|Q^^k׮yyy5ݻӡvݹsG.?x𠼼̴hW&3S9~yxxyH)5ƂO>)EG˞yɏ%Kf սN/)C 8.Qz@Txyyyyyeggܹ1- 3 n-sGz㖖RY^֭[EEE͚5srr۷r\rmڴy"33_~QF? :?<^F l v >Cg|[&Ѿ}Uxp`.oxPak˝=O_Rݝ;}uejPTT=z Hf;_p8o/Y|neNZ4b^p!{ҥǏdF9::2EB0%%嚛ϟeQT~~~~~~EFj]֭[̽R:w!Poprss‚އ⽦DVkkG2j us}2Q"sqqINNf."!\a  c>1b?H>m:Uo:]UH>UH>UH>UH>UH>UH>Uu^!$PUlo+++#"H"=, $6lxrBabb")233ç"x tNUH>UH>UH>UH>UH>Uba3GMXXXXXXXXXXXXXXXXXGxSV!V!V!V!V!V!V!V!V!V!V!V!V!V!V!V!V `z>U,NlAIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/passwordbox.png0000644000175000001440000003073212522231361027776 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME.j1@IDATxy|Lϙ%$!HڮZ5~ՖꮥEhm]RTmJֵ4vѫ%Ddad2k{=}|9=s{g233@MT2TtmqYr2+@M^A k- 0G*]!W_ynlk;@M&Q(빠'*;<C6$@X#t,v:kl&Weg0˳.'*3TF`) 5ArADd8C@)3TW*_( )唋0Mɹ6PJ,EVYġ`1H.AVJA$u/R%hkoxe)S!xxjJ" WR$2 lK;ŕU?MvSzISCBw%H6PT:.FS""Nqzֆ\?94*şlih.fic,z:CD пVDD2.r)Qb*4Ȫ@xY j"W0M 3+N_(J7O@fh@MWZ(ͣ6)OG #k""Nb Urڬ QMD$y ϗl}|yVLHUUM8_;s\kG P<1_An #/ "".>Rx g;MF$J&gnqX G2{^׼Sd~sJ˺@okM8} |TAEpSmvwJ0M&kCT)O2JN|VID;p`]ED8e\G,? Ȥ"L)O8wA6H~T(?""M~ 1_n,h"*܀RfA1H~ 9bXeGNZ("a ctL/Xwm* /mR$&_T*"e\~ɮ`4H\Yo5Cu <6{r!9lgȅ^5&PAo!"9y4pB tSw0Sd]Σ5e]ڤQ*iC %yv] };@)P"|@)PP xJ;t]R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJn%OO/`*O#x(EJ>R(EJݾ()<ؤiРA?7mFxGfΜ}'mҥ"++ָp "|@)P"|WūnKvJ>ʧq%g̘Q~}y{ݜ͛iӦNe,ʕ+Y5עyo ?ѣor'zW-pϞ=ʧN:aݻw޽[D?pŋO8qnV}5k֜4iR*Uv9~jժu5 `"v5!!AD<9Rf͛7;֭[_R6jԨÇ+YYY~m^^^pptuҥ}Շ,]bG=p?k֬;vlʕwa9r'Ok0M5TuȖ-[֭a;|衇ܬJ-;w^;wl޼-yC}goѣcbb>]v=WٻY./2Wk>͛G}k!"{ov=|pry^n6(sC-**JJJ >7p |O:uΜ9STT{v=##󑛛Gu}ڵ?ҫW^zmvǎ˗/ڵijh͙Ljղlȋ/KHH8uw!"˗/ӧi"2gΜةSHΝٓH߾},"ў7Sƕn^1͓&M СCqUTtR)((XbE+U?<ӓΝ{?3"ҬY*7{7ŶQJQy租~JNN={/";vtn 1 /r@@@xxx-\{T#F>}/$hY'G8qĞ={k׮SNvWGDDDXXvڧO_;:u[ի]E.**n?))){MKرcHHEd۶mvIMMmӦkvFX˧rSaիIKKs8WRQll6m4f̘պwX뒆r8pU^An-#DnlڴϯdL&OjXvmWGBjt:{STΞ=wݽ{~a%o ,VNu5kLD5klNgaah^^ޖ-[.'(((//b4|pŢ_S&MDGG;6;;gϞ1117ntaÆuժUO:Z_wS 7E^7C\U4hh4z*ݷE͛7OIIɹ{V<\i֨Q#Th?x%/G^joQ^лrv^5D5Q!uC9Ð 37HKK>7pc"|[DDDNNDӴm.\ԩSN3f~@IQQQVڴi322ʬFFFѣGE$33ѣ[.\𩧞o6m+;vWu:OHHؾ}q֮];~-[ >\/jӦMzzzRRRFF[ouM"WD|||Fw߽_a\nZMQll~ѦMUV\裯曏>~2͞={C]`AΝ=^^7'34LoΝ;?裛s7&-33SDVn%OO`xx-=%&&N6mǎ~~~s;<3[ɻ'J v / ?76m}vcq]vP9n[KfS\>|ӧ6O6?g+5>7{VZծ]q0MvE;BpE.ఋ.p "|7yl6b֗<\3ftܹ~[^`\_żyRRR{54MǑ_ڳg{}z~~ =|9{+W2eȚ5kn޼C$K.6m?<}-[\Ç/^xĉC 7o*޽{7߼w=+99yѭ[NLLСرcwcJvټyCVQ†f ]-55UD^|E "%dѯ_SNW~/_O>JӴZjd _L6qƳf4K.3f߿^:dȐӧ8066^8tP5 ޽ڵk=z_. /ޢE }"2gΜةSHΝٓؽ{X=X{*UJMMcǎݺueBCCٌ:ܢvO?_cǎ!!!˗/m۶>|o߾eNu%Vu˖->UV,..  M<}NscD$,,,**aaaڵk_*k׮Vk%ۮ];=4|pR4&MDGG;6;;gϞN䠉l뮻8PbfYbjָqc׉gΜ9p@ZAlܸ bbb͛7OIIɹ{VJN{}_v!Xn .ܶm[NVf͚cǎ<AD?y.]TR󩢢VZյkjժgQ;2ݺu;wܹ?˕QPPp8D$33ѣ"(:lذѣG[-ZR; 7n\nݒl2k,(66EM6 ,I&۷u6 z!|[FV^=~uw}wt2y>}k1cƤ2ܹs &Mŋ?OFO=Ԛ5k="==]D{ȑsΚ5kذav>(uӥK~_uECqqq6M?+}+y‡8t:ـ233EjUv[ǏWԜMcǎr,Ng||#[VVVVӦMo߮XAD=.vkLQ>|ӧVJGIJJjݺu@@ҥK{xQ^{UVknܸqr͛7ϙ3p4i/>*̙3oYfRRP!(EJ>R(EJ>R7vKY'^:sL˖-]Hk"(*4K |xt{ v{``cRDEQtC#|\vڹ < @)P"|@)PKmqӳX,W*JOO}FCPqMoߞR>*RrrѣG]?~ᆪHA&BHFqذac 2 )(DH;v\r޽{:u֕+Wvڕ"E"_~R!r z>==*P"|@)P2q3"|@)P"|@)QaiD*[4MFP&‡>"|xl6w҅v8(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R&Ѕ7nݪɡ5Ǐ7ZhA#TgϞ}h>HYYYS(EJ>R(ť9X,rrnJ>p[8gϞ ֯_YdHhh#M*ǿEUgQQԩdz:͜ fϞT n_={,nИp//m֬ѵjYFh%;!M X-J?~~~5j԰l@1z>ps ҼE䫯by%K>|a߾_>pxjv؍pժkC>Ov8zt$uX,_?:M)(Hyş|R|#4Ts眎 3qkڡCƦH&{VY3:|{w:-_^| E͟??++G˗/oѢ^4TZT5k0`@pp={>;|tW^ǎw޽qƓ'Oۗsql۷H^ ?#GdeeURJ5oҤ} =rʃ z Aa +;LL,;8%Eŏ~~[ܹktY:|7,Ӱa>=嗕4[>?Ð!C"""{~aիW?x`jjjqq^TT:rwHPPwiذ^-"V`0NS&|bccccc'Mdɒ sRP>psED||-$D3ZvSD5AΏʕ59ss2}7< ]e h>>>>>yyygϞϿ$|Tqdf^>\z/[l("=\>p;vp={6//LJ=>IǨQ={scy2I64g4k"rl>?βeݷl}ۧtx] Cs]V~AQruʔ[s}oݺuɒ%oݩSvQMO':ԫWt~Ǟ;wι.uB=!%9u-Z(99922rȑ} `O*'͋yBQ}o1zctWEd^Do?L0mNK<~֭ӻdӶׂ?sÇs=7o^8ә+"OiРl>uꔇ."?}'L{ϟSXXm6DD\s۶m[||!C4M[xڵk D*=ɤ;^|`䂾}}x·R%o1iRe{{6_Rxh瘁i}?~~QRRqQэю ǟ8qO>=|ڵ5ҨQm{}}o -**ڰaCժU])**j׮]gϞ]lOqqq5fslذ?`ƍ_X5!!!_uhhi<3gz5h \ |dʧi`__}e4(o~{q9R.?ٻe=Ddĩ޽_jp<\jԨ1nܸ{WDDB <`Q .KD|||uVZ_555pf/K v{hhhTT^׮]*UWRYffס5.]T^pR\킛F-(EJ>R(EJqGrx C䲴ѠARG("(9sf v{`` EQDEB(E.]hN8J>R(EJ>R略WUaj"|@)P"|@)P"|@)P"|@)P2Ep5J>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ23PVWS-IENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/treeview.png0000644000175000001440000012534412522231473027265 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME+,IDATxyXw@[TEQ67EZVuu-TVKkmZܺWmVeuAV kmoL&!=}l̙993'sr@!2!Bġ'F$.,aBO,淆lSm| VܽkgH$"' T+9S!FaCJ*0@RI\b 5l62! [xr ]D[ZU߾o͈T7ot_XWdC`9XXUf:)MɼW"  qk̉P٩?66OORIqM+Wl>5b/Аy,襂xxf̨8@uEQ\sWnFtbCC2o\`ab{hǂwjmkƆTfH@{qEʕ{gzݺv㫲Zq8ر=enbSYɶʇ>>Zw۫//W۰[~$%9xk Yk.ǚZUNH۸TWU76ǏGDTE"U[oooTX66luX4,Lg'q5(jkY;w?TNZ)TJPv[M kklJJ8;*'O(͵_>mÇVb[Xȭexb655srrxJ%B ի [C( .\SGŪ1c$$^PИn惌j "8KH_Uh߱<=+?;vTzz*_yEU'3\55,| J+PRRlxvE:)(]^Cyy)@(T{z*۵]]JFb8dfG8޽kMDQq{CA̴r6|mÇbs}Y˥9N#0WC2T^lRIZ_lk`LM fNs5gzwsSyz*y< Dcguݻ<++S ׯgM$R)ͦPy# 6^ Ɉ]*+[(Bј.߫`pb:_D"rj9VV|ymNVVZMTUU*%!A…ebJ*e}kN+ -rsSu[Dd~xy)z>> ]3];ՃV j۵#U*Օd8d =k4GYb$s6&8~~P}cYcGE!# }$. 2t0WC2T-xQx𯿬 ˋһ)?w͵b;80u~7u iH#//eprΆ <X,rx<͜9۫R֝;<:UC1df\(nn*SK2j;Pd!_YVF**j/BBj)MDV fS+P@a!W&#Zgg˳9 m0./ggg_s#~*. % j ٠4(P*bNm-˥˾}DQcGeC0qiu&gR.N CݻM䤮`r :tP޸zF.g}E$Id,M~5-k^66Fҧ1ǐnN:e_\??E׮rz+^_rMGcUkK(g3jB?>jkYV;4`X\{Cann$qB+JhNeaҙXl knRԻnndq1'?ߪLWu5 JK94e'O#j@. D`FFMCG>J,lh@*ekzl ˜F7( ( ^lUU=X} 66Fo/.- zi4Gu_Y1g<14fK$\4" _ċKnEi4!>5 lX@ߣD8>ӃIU\.%]{6O*e] X ?,?,=%j͟T*"$D<++>|gg @"a7SCA77@Qkl 3S <ԇєj4h11]T͛A*zwzZYQuFtpiPz̛V,{{u>#F<"֜4} q/>_࠮boL۫cY[S1~c)*\D_bKߏ{H"+D޾d!!R ZkG 77UQWTF[ 5~~l^bM葕!̰A6"#O?yr9 ""$eĩ4hעvHyʴC&KK9}V04wPQ>ii6-[\|LTS7 e޸W]p:]ekU jmx޵H!an+cĪ~{[!Y-mJK9l6FN2,7r9˥:w~~=}J;b$蕙7خ+EE\a8JEϟ/ϬY`ŊGfHNX,LoDDD#Xn]=b1syеw:o-QyX,~0?lCnMߗO CMXKe ;7CMaA-ntu_n]\\ Ph|СCJrf׷lٲnݺ@Sݻ7&&&44eJ 9sh/毰E j j>- ?7p@ÓK.0?&ߠi׮|4!\.w| .m̛¶ZMAͧV?{2K{Cٳ9s>}w/&`vvܹs<==<]Dwڵ+88q1KMM=ztΝnJI#Ν]w:tJb͛7bU֯_j*z%Kƍb __߀7x͡^III (XT*vJyyy6m_GzKљ7.'O<4iWPP1dE+/hWKKKŏ=[`pp={yA~g,ڼys@@ܑ )|SʡCJ՜~nݺuk+scho&s4`UAC2ulmmMbŊsv>.j.=:xG}tΝ/"$$.uܻwo…g+**Ο?/Jwd 溻'$$899eee-_%**^s̙;w̞=[{\ ]6,666//o...&Mp8_|Ettɓ'cbbΞ={gr\ptt;w-[&Mjժe˖-XԩSrr2|yWNj\S]p!66vڴiÆ xҥKGK.}w~u%''5AFFL<9**jΜ9P2.4Hm6óA[`)S֬Yb"ww={?~Ȑ!fϝ;׭[;26Ug嬬={227rx?<66600p֭o~WEǎ۸q^zر֭[#Gd>.OI2ot94zht5ӇV7mڔqFa `šRʐb4E5jhE͡56>wZv@ ݻlܸΝADFFVUUm۶.˖-[b߇~3gJ-[L6-(((>>t&$$I&%&&*1ݻ֯_CNLLDD vMcggbJq^[cbb ڄ f̘zcȰhԨQ;v??7[`PPбc@&>}zԨQ666n݊d8dd={FdѣG>}N ի2$FC㮇F^#9(;vxxxDGG'&&27>(CCWӧO_ݐ3b4E5?_[̋](k:MV/^V[kI۠BؼysDDONΝ;:Ϧvqq{\**33s` Rl΋~k׮#Gl߾… ̆-B TlΝ;k޻wO۹j\r֭0[{,QFgFa` s8rn޼YTT ߿P(T*UNN}mPj{ڵk׵kg!sOˡi3W(洎;zxxЯCBPUt3tPjes\ZHbjkk5of"6@| O],?il6[.Mҽ{m۶ڵkʔ),kׯAǸ Yĉ+W ڰaCEdz'aX $InܸO?^)*..Сc111l6lAW+~Ӎ-IUUUNNNF!OLF$,]q(3D`@CbHrرcGs]tW5Mvvvzzz>}<<\}m/))Y~}hhg}6rHXlTVVfq9dHXUU7So"fl0pԨQG]jչs G˰/.}֭UV\ScQ^nP(r\vvv\.WH$̛TRz[͵T7A1um/z]~ۥNd8n}ڇ65K{P(={]ͼAr T*޽ѻrz]hQ+,^ȑ#SL=z(AMƃմ]IGGF!?Mr`oZx[C6s8bĈ79s޽{[liz왖&HR^ܔ8A ܹCY[[{} Aiii3g\z!Q'h쾚Po57ѣGT]t{E"ѓ'OwjF8з]^|_o_ ː߼ys޽Æ 3ðF)//(J dggbXLR㣬L&ѷ'?~ `"ŋw ͳA  ~IetҩSrhoKOOp޴iСCw=wܦdj޼y-?O:n:ݥ;tÇ]\\@19sf̘lٲ .dffܹ%ٳQQQ...;Fd9>>>^^^+Wl߾ob 6VX1yd ۷oޟ2c Cg͚?rȀu~5kVllMz_x))iȐ!~miiiC4]dմe8./((HJJrwwom{y{{?>&&Fw âfҖvyCBBh~aHHHHHϯdӦM|W_}eHܰaӀ eBCC<{ti~ڵk?N:~S4`{o׮]-c3cƌ5kּ_5sEFF~穩fͺ|  =;Μ93<<ܐ2olQD??~iD6OOϣGb̥a_Dm:[vyX;N*omڴ~ѣGw988x֭7oūVZ~}||U ߷o_xZͼ/fK,7n܊+|}}LS'OL4+((XNM|vvܹs<==<]Dk׮]/> >q ECٳ9s>}6(Tlbl̘1YYY/.JJJ8pgXXnac.Q 94" e!&s6`ݺu֭;[ ]^RԋS4*OOOGݻwO,1KWC=.)m]|gddh4g'@ ɓ'GEE͙3u׮]{ׇ ~zI&KΝe˖I&Zjٲe , ѣ~Gw/BBBK3dffv)99.OԩSJDZVVVDlSLYfM~~>h\sss/_E/9s̝;wfϞ Ç?[޾}W_5y$[pٳ?㊊KR;;;rPS6QlGGG'%%N=.\6mڰa.^tR{{{) %! Ű)e}bT*ԨT*G\;99OD9?ݻw߶mۮ]LbƏ~zsdF(6z^{᡻;b HmD1Ne6G zߊ kkkf 꽤j4>}yxx(JA.;nܸ~ܹǏٳWދ^s\Rڄ6 gɒ%Ç}ݽlқV73l6ĉM?guN&51'NXhє)Sl9P\.Ww\BcZ0zSTWW=zt}Fb8_ hm3CL81::_DWUUiDa3:1l@1gC7P ۳ip\ǴռU/[[[oo[nZjʕޞt[y'Nܽ{ݻwO>{ﵪ! 4rz]hQsݐ}9::nҴ]lŕΤH$z w}(\B#J333wΜ ??;w޿ǧD6{]vi;*T !o{nl|||?}'00055Ugrrr`` s2`7t*MUx!zƣG;##K.t5Eejn3--M"OR]z588ؐ vwҥUUU111g+@SQl+ZQVV&[?4>>>gϞrqqqpp[K.:u*ˍo9rw_;tÇ]\\7oޢESN[\]]SJXX듒 ߖj?̌A ؿ!C >>^ ڬYGnݺMyf?"""D"ŋ t"[ T|5VlRSS?c#Z?'N9gΜ3f,[,::… ;w[rT7Bb՛ mw^RRFה1lиj:(F+VL<.j'Mf͚Fi Дjۊp#>Ð:v8s-[omڴ˗/Wu[T Ko6Zs1иqtG`DFF~穩fͺ| Oa(Q 94.ƕ˜۷/X7hbMihze &Ir4h $l ZY) Dyy9D =<<,#(F[dÇuM06*11qƍ7nxm.ׯ_vbdڌSІ"Bѣoٲe„ ma!u֝={v˖-h4 0ƍ>uXB/'Ғ6oތEe!Z6xuBY6Xn]=bv"zaz%Sٻwozzzso,BU* 9d92Y6g5>C긌 @+lX@x_țVk|\~}˖-K,9{SСC&/CiiiyAIr seJeNqL^ZIԲ/zyj{c>\uߤ'L&gIlK,/<CԶ (H8yX,~IhGܹspp֭[IVX!}]JEd1 BO۩SC&%%T*i&5D^ӧճg9s<}9z7}߾}j?~X?/@2!K,7n܊+|}}6nܨ3,,FC9dq5 k}׮]/ư! 2bqޗˈlbݺu֭}nt[!7 #\[͛c`\  ;;{ܹAAAui/gϞ^zu?|wǟ3\͛7bU֯_j*աbH߿[BiZcSLYfM~~>k׮Æ [~ˤI`ҥ?nݺdֻ o뛛{ҥ'  Z҄ f̘;7n߹s'AUUU۶mOANİk׮]pa׮]C hp֭[rJdk?0ow>>jziii&v:$u«WΝ{nҝ#tlqk:Ma 6Y6Ijltؑ CBaL7s57z C`By戈N:;wQeQ󜜜P}kkkC=#`kkkkk B @ J2[o[k=PT$ɍ7v3fPU\\l7XYY-^޽mݻ7e_R51t駱lzMF6*$IVUU9qpp.rppdl(k0,~5S6tϗ=TTiFG 6T֬Yk׮~? 8eżL]6L)A}Q"IRo*_^B-|ۅf) 9Β%KqgޠCii)EQmTWW=zt}2eɃh ^l6}Q t+VUUD扆lQ&/FׯȆH$A=uΚL&k۴4yu8qĢEYjIiTaDm%uˆнܙV"ZzիWnnn2pGG:yrܹs|o RΞ=[,y=!!ީ>a\5~5SLMM>|ͬ5>BCC<駟Ο?ɘׯYF"̜9O>ѻ]vmܸ111s+,,9sfMM͜9sܹs˗/J:uꫯc`ݠqx/^HM ~PPP>}{=hѢ_~?22?/9aX}ha`HŐ 4G M{͹/(((CGĂ x ^zŭ]6!!aڴiu`6KP& աذaÿS:887<"""!!a۶mFQRRlWa_欕/'D"ˆąyxxhWQ[dɒPz͚5Q]2Dll} UTT\~Օ~G,%f!d~_ Pӵ_ ̃ ۷ocB&̧~A@v~r.!2+l| BȬ,֭[ףGXwnwtˋmUg'mTDD=xC̑$b~BMƇ]~}˖-K,9{l ܻwoZZ具<: A2lK0PY}ս{b{dRR===<]N|MΞ;wnPPgxxɓb&M =s[n5VX!}]JE*fظ}56Ru^^ަM}v|\G޵kWpp||vˆ{MXj*//{{{Z }aCқCdApp={y_V2xvU[[KӦ}!RZu1;ǎšp…'&&/]d\wwO2e?su,X0jԨ~O>Rv믿sy}gGջKfdd\fdddddѨ} @@cǎs̡_KoNNΟy̙/^GGǹsnٲvժUdZ&?.x?裙3gݻWC}5C3g^YYYuٳ'CW+ 322JJR(FWXPKi.'N3gΓ'OǾ_bT*CKŢ_ Ilm͖eaSocpȁ&;;;==O>iiiJn|0D~Z?ѣ'O7."Ceĉw{ӧ{=BJgUUϧqut2̐8qbѢEِME_tp,Y2|pݛ~ڗɳ^|5|_f+[VZrJoooOOOW+Mk.7lذz…f.Q!hG}}}.]ZUU}?00055Ugrrr`` Z$=y~MQݻwvʼr{V*fffvޝ9իWnnE;jJ6Bwk oeSil3--M"OR]z588ؐ7TZCrttmlڷo駟6k׮777~ݻw#Rj|L4i͚5k(̙3gƌ˖-pBffΝ;EaaaׯOJJ2dȷ~[ZZ2GĀ?dh4mҥSNr74GՔl={6**^#Hx=.Jd#((hŊ'O}zWkZ;tÇ]\\ѻeee2>ry/]`3g/zÛc֠%pJ矧Κ56lիW\\ڵkRzmذiÆ @YhhB!dV@!Ya!BfB6>B!dV@!Ya!BfB6>B!dV@!Ya!BfB6>B!dV@!Ya!BfB6>B!dV-СCǎKKK?+IlFx&$---**SNCz I?bw:oXbѭ՛fА?ZfMSٜСCcƌ}׮] |!""ݬYZTkhq*++j߾ La#?N:500oҤI7nܰY Iرc-{=z7۷o[o=xABSef޽iiimk;w /޹sI!X"!!bM2?l=[:9w*,,ڷo߂/9Β%KV\)H&Nh5UԎ====:o޼?,,w{Yv!ilKY*______BCCCCCPu;iƎtĉ>Xouh׮vj"Cw ~: cǎW^y~ݻwC-_Uj1cgee())iaaa]g?*55uѝ;w޺u!yHII `mm=hРd?~ӧճg9s<}ykRT^^ަM}:}߾}juSN<)o߾tWsRR3W 6tKl޼9 wu1Qhbo\6-DzS1`]^B-su .?111<<|ҥÇ?7|/vZFF6յk^uww;wΛ7>;z<<|cǎPSS>(9{FFF[pA'|Tʼ5@ѱc9sЯ+SiӦ]03׈rjɟچs8 .y֭0&77ڵڵ+ZReff= +JC!lmmAӏGV/^8--$Qtvv_wЁPFQ睆"ϼh:tE'TBؼysDDONΝ;]dtrvv>~޽{ +;;[ot[08T2QgeN EQw8p6>>>kE 70f|5駟M6988}R kD{9d~7uKL&#IVR.rrr&!Irƍ~*@QTqqq.HH߹\.3wm۶]vM2b?~\.)Qͳ\.7uуu5yðbT* {*`͚5'NXre``Ն ***X\.+**jȑ֭TVVh? ̼jjj: ETYnD:_0,bȼ!0˸kxSqΝ .^8::)'b`a3qQ^Nĉu ª*UUU|>B.K~^´I_m >\w{|χzzz6t5PLLLLLLuuѣGW^ݷo)S ;;;.[D%X,f^ĐycH4s2(..~7Gi#^kJS [srj'?~\N```jj@Dݹs~k.۫W. RSSP(^:`P(={X,...6>>gϞrqqqppia!3`<"2o\6RRSS?coooCש ///G2A ؿ!C >>.Z4JT^ƎC'rssl٢7UHHHDDD\\_뛟ڵ;v]h;tÇ]\\E ҜeS|Rf͚iӦ޽{׺] 2o\4^-E RJElȑIIIfƿ̚5맟~qrrb~Ia`zYo|7.!!A{622?/9a'>~x W_Վ!Ѓ~Ϸ3kcǎ~G}owy޽:uқ߿x"?_߹s/_.J;uW_2WXX8s̚9s$$$0o!3`<"2o\6L^;vL$> ͛jժ8 60`@ :uC~~>ȸ5~#GX]ٳ{vڸqcbbbYYRh111ׯ__fD"9s'||*YN%I0a_gϞ;wΚ5KVkv0,bȼq0V~mGi 10ze֭[26>) ^K(//Ș;ϛEEEP˃y[/jf͚U\\lmjUTTuuuߡG %fBm_Կ@pرq]&P믿nܸ2jn@Frwh4ݻw?z  n߾6>B_B".!B愍BU 4>+OOOwiӦMf = 7AO=k,5̵v~ȍw63J$@5`|m|"|Z1{lGG/RΗ_~) ֣͛yС5!ݻ[0 |||BGA 4>|~\\ܑ#G߇zwmllz4۵k׾}{sNi2`ٗ.]4h!dZfԩS=<< /]]]g̘]JsvAu~ϟoӧO:˫gϞsyo߾jg?10Pvl`Sg;hJRSSGݹs`?bHP(>䓾}viСoR)}'//oӦM>HΝ{L^b>_?mCPWS6h\h-Ydܸq+V }YD5%ynݺu?>̛9'O<4iWPPPzɵOm\ҥK^{CmܸQ;;ԅ bccM6lذ/.]޾ü޽{ .={\QQqyTjggG/}?;w|!!!t8|u۷o꫆$9s̝;wfϞ7YYYu6ճgOuڵ_}ذayyyׯwqq4iS.]8q@ ɓ'GEE͙3PGnn{BBSVV]\\L^SiDϗ{FFFLhj`7 W6kefffNW^yeԩzr%gAVoڴ)77wƍ&C ۂ Lf͚| #TW=cر[n'6|״޽;((h0tĦ|ߺu V\I_lzǎΣFtRJJ }I5y63rHz.=z> Zv@ ݻ;v d2ӧGeccs֭HqF;wYUUm6oT׮]p®]ɫ BOJ=ñӝLoq0`7NF|q8ۿ8@5Tb+̵&$$I&%&&ҍP2:T*wH7> )l&L{su'#D=Ԏ }wuܺuKw΁)ŋY驝C͑ Fڮ]]C~7AAAW(qqqiii**'''((ȸ@TѣGk /bNF]_;q ͛#""|||:ut9mL^Si\>_*ئݠqVvYx=YnDCر>T(6ݜ ^Ԓl79ohպ$vppd/~3\ݷmv޽)StVfk6555*JwNNNb000Pdgg'---77WT0k(P$Inܸ̘1b1tqq~4ݚ5kvo?~>|QƅT( i7h!7Vڒ$YUU|*QF>vYBM. _b|9dn3&&&&&ѣW۷ޙM Prkjj6mlmmoݺjժ+Wz{{{zz2D gɒ%Ç]ݝ9{ JKK)2Uĉ-ҞVFcp* TSWkFZYYY]fӟ gՔDBcHac٭!ԂZHTɁkH5EQwmԖBٳb!_z GGGݫ'w7_z왖&HR^lt\n^rssvp̜*44T.;wN~^%P(J 0EQr\!J333) Ґ@ի)Q2>dZ"uZZZ׮]l6YnD5%=f###N–{ܶPiu=s̙1cƲeˢ/\sNzQXX듒 ߖ2rbGDDH$xbAAF~:taooozެYGnݺ5gaPPЊ+&OLv߾}Z!PK.:u*ˍoRDDD_׮]۱cv>>>gϞrqqqppЎ6A ؿ!C >>^/éz12LFNyyǏ@w4henиCfVVV[hџyԩu= %ʸf޽{IIIϪXRSS?coooA/V矧Κ56lЎիW\\ڵkR|WRR|iӦ]|2&MFLĽ3֬Yꫯ~'N7oނ RrҴ &Ir0h $ @Ѓ>x`^jj*CfNk׮iӦ%&&[:t:v8s-[  0l0//?! Ropz~aHHHHHHSWc7h!3ʠ{vZh믿nYnDC4۷o_`oL Q^^"1 vQ"q,Y " _ubdڌS"B̰B!juNB/O?ÞB6>B!dV@!Ya!BfB6>B!dV@!Ya!BfC!?j۷Z/p.E"Ep=: E~ jk"\p.Eye0mjgE! "BȬB!B! !2+l| BȬB!B! !2+l| R[[۳gt׿~zݫ͙ɂe}>u M\G@e:t 5p ??;v#o}$JJ8;r l| ˡV;yF}y B vAcǎh )Iҥ !{>ׯ+bHB | d X B56>B!dVxYo߾=44Ԑ_>}tPve IH(nvrrxەE"utnUۼ<z,!YݻwwرC}9$Ipw,?M~M ^IB d9j޽{'OܨT'O޷o_&H6j5'_8 @@rTdTTUXB.r\rlȑJx_~%**Et ͛ ƏKHj32lm*+0iXس'UWU}YzMJMe%F(>)瑩yy*5Ҭ,z3/p! =rvg҄Bwjjj !St_~98\.U^9uʕgG8޽kMDQq{ݭ]l{}e%ՕT(X))6艉ZMs8;ٙjRI`B6>5"7Z"֮e{xXGEYLIxQcHǍKBHYIUk=gR. .,-]D :' JJ8W=[!L o QVVeDBGG~sЁ,Mi)sjkY\.EOӷ9;(*ZPi~r fSЭB\Ţ8!6> I1Hs8pJ`( jkY`cX`c92KZNV|ښ"(pu%W(o25l| (HH(HZJYj5٠рT>_cm @L]`){{uU- 5VV2=,G׮]HM%hT*5GyxIM?6Xr)uڳ8R)n^^^ HKXiiE‘#ֵ;|cWj IB~ "I$ A`;vJrOZ} &a!2)'QHr).ggEnnGk~YxO?ٱ}%4Tʼ7nsrxWPSîdDh|?kH$+7+ y:*B襅=rDGGիW*55UT1QXt8HDTHD#  7NҵB R1Y=~|J.'r^cm;]5}zev$MӦUŪV @$22kש~+58RuF%Q(۶mkԎ`#Z?|bQ{0m).:jVRRrcBl (;v`szΕ^5t,!,g j \.6m[tT ңc=Z7)zS-YUHoE`"aY^؃s~IUTd]<Ξ%CC9s3g||}>ٵM/?:usb8;;,!f@c,k{eRϞmRپ(pZ IR "> ۽{ܞ;7Q&sv-SlswU*o޼\ ?sȐdغuNU֭{(~*? v`QD1HKS7*UZ Cr[6KaK-HDå×틻v͓x]E}y>TWS;DB!Vm? | +V|_y(*2̜U(m?vيQѿ=p=ǀlݻTVv3~=ǘR`YXB̰,DvTThϝk]@Gpr=ɩR&;wxThgWݳgݒtطoBamlvz!֨TO> biѣѰjkj5QݿEf}_`iD1Ç!K)HҘ*Eo(4hɩ D*j'.vvNN<FvD RFG_ݾaնE#gʳy$;9o׮IOGbQD配d!5h̭:UYժ˹\JeծPQ@瞈Dҁ)})V;t(A^^.]U*0'dOOkݺ?!d,Di)UZJnn+NN3!P@<+*|y9쪟>޸Ea7St=jkUt*pv._jn^2. Yp7\·.x_>XǷNMHX)x_N&"IΦM tWhIǎܞk0c!̝QXB̰,J3qc7h׿rނ޿Y uz۰]z]0X(qq){u֬;luS;۷6lxږy_7ov?;w|JG$dBrS;qGQQыTTT\~ÍvYB,Ru.<=%$j 刳rq@5?|bQ{0m_b$ +VD"7 L2ukJBaѡA,J*)1v@NfؚӧU:2l| BQpT#Z!Z)l|6Ϝ 'fQ@!Ya(߾}{hh!_~}BUPݲŅ$$7e;99"::inrI._sWZ7722K!z6/Ϻeo^O"B| {: ??;v`L9sH()TX,WGVGϷy_S4r{Nđ&lV~~ի $'Mշoe%|P_ҥB_MLFEU_aGM.r\rlȑJx_~%**2t ͛ ƏKHgd$'TVaaҰgVWU՝7=&%Ŧmc {ww| BrdeeƍUYvkײ=pttH$F$H$NNN@R)K64Jkɞ5W7l6eobE"BJOJE+d\3p` j,@k׮F$JE\f(3I GqܹӦU\.%]{vG*e] mKii62+-Muvúu~>vAǂn^QQ$I$V̩@5նB/@_~ǎST\n#~rVo߾=a էNٟښ<矅ǎ9MP8Pz?'zXP']Y7b8<w?kt\!|v}b;f!TE|  W^mTTR9bĈ!Daaq$"R"9f$}y B vAcǎh4O}t邡C!digbخHBFž,SEEX,~ !`!Bf]E߿CCC,4hЋ½~ӅB!Fplq4 MNNy2H~jc<._sWZ7722γիyy55,{{%z a(wСn… ?YTT?j ۱co}$JJ8;cev_YxHMMܹ?O>̷B;55Ȁ!St_~98\.U^9uʕgG8޽kMDQq{ݭ]l{}e%ՕT(X))682g@&9eL@u5Klә>wwPZ6>m:ut!;;nٲ:7n2a֮e{xXGEYLIxQcHǍKBHYIUk=R. .,-]D : gԖpVv+*z2==!rrx<++Jx憷](++et|_Loa;t φJ\\4P\̩eqTH;g'EE\>_\K*6̳Pl6uݪ(,亹 r)qs=y9|؁ `*5PZ6> IiH]jSfR66z66j#T*;; A?SDn?Fl0@( \]+J[0~M k\=i` &B-r8::ϡ+<ښ<矅ǎ9MP8Pz?'zXP']Y7b8<w?kt\!|v}b;fƥBѰYhxRSSJ#0F 'H1c$IvU(T3"#ǏrwW\rs#ktOl׎d)WWrڴ XUu@u"@$"H\X|薇GQQыTTT\~Í[\\Rܺuk(m۶5jG&/حV_Xl*Lr 0C-,,4>}:2,Jǎ8h \$}uCBf=b]!,Saa!! mB| R[[ۿ۷קO. 1zZ-[\x$>KF*hT]rJYYȑ#*::zſKTTe7y11A.ogfd$'TVaaҰg5f%%9Y tJ&0P>|S.WC 4TkBCYYf~Ĉ Vܿo]]nT=rvѱQBwjj%!St_~98\.U^9uʕgG8޽kMDQq{ݭ]l{}e%ՕT(X))6 ZM38;ٙjRDS*>IDATو)?|hFqB愍d9|}}H ˪,kQQV{+SR@&.^1q$pP"${0iR՚5nnoBTĥKB bcK-+499b ų\KJ8W=[|99lw¹BvAˈ%ݡ!x6)-bNm-˥BBз9;(*ZPi~\`wVEa!MAKX'V985B,I1EX؀SETP[ =\ΑX* rөj"7#6oX[S%-?gH.g40Pf! !",D"1"D"qrrJYj5٠рT>_cm @L]`){{uU- 5VVz@T*b^Qe%{k ܝqB-| ѵk|#y{{[||TF"]L\Nxٙ$H8iS*.X׮=#.\6P4&::raݺv?JQpcAWڨj$HPB*,G~;R\j۷'L`a!2)'QHr).ggEnn*'tY[S1~c)JoVv I԰++"FLY';.gm 51BUd9իJT*G2(,L:nD$"U*B$"nj?k'UPR){̘ܽ?]%r9͍ s]5}zev$MӦUzR1e\*P "@$2.ש~+58RuF%Q(۶mkԎL^ `X,6jpy9xYءCXJJJN>}y B vAcǎh4O}t邡C!digbخHBFBSaa!!2.!2+@۷o 5dׯO>===](ݣ.(niveelH[7$ɶ7n 2ƐT| {: ??;v`ocq1$NNeg 2K ?ڷ]k &B6>P{ٳm^M ~A遗 d9RSS;wبTB;55sN):s/jN~~Jee.*/:eʳވ#G޵&I{._=q¾J*D&[L@u5Kcd}^^J,!f,GVV oܸђYg֮%Uʔj5qƌI32ltIؿu5LTգ,1Ql*8tIHpaXJY~ꚓ+.溹58BA3plq<~_.gYY^Qٰ\j8=BH@Ɉ-svP 9,.om+((*sr8\`E;ҭ CFAKXզRť{PB| A$cLp8-;bQ*ֲFC`F-sd2J`g!{t*Lj (AE+bEPHD__$.]za! r8::J$#J$L@V  Hl5rL ^݈g~ٔ]^r++C@|MDDի[#]ڵk~~ 򼽽[ḹJE\f(3I )wbKdkמǑJY.u(R@ZLJK@. qXǮ*իOpJB"m1 B=rرc*JV߾}{„ pl>uI,r).ggEnnGk~YxO?ٱ}Ew\H޸^, 55JHR?`v]K-{>刎W6*UjjR1bD+<0qT3FA0nkWBAH1cq)2z*ww\N,772r>Ĕ?o3$D /UϙS_Zݥy~~r?gf=CM PaYءCbC/))9}1t!d6xY;8p@>Iҥ !{>ׯ+bHB | *TTT'O`(B!2+,Jmmmojׯ_>}zzzP(iplq4 MNNy2H~ڭ\od7lpuU RcHիyy55,{{%xjͰYݻwwرCgrݷϱCDI g~'C&pe2BA<~loݻzS[߼ɯ BmUd9j޽{'OܨT'O޷o_N,gmjOzuq@\d[zNڵ'$ݽzS9;QQWaj W\)++9rdREGG/^_~8<]Bu&/&F};lڌ dJ:,L fլ$Ǽ<+wwՠAuknbSYɶʇydj^5J|Mh4+w> 'Y{6ϐ ۊNBa,GjjjΝRP흚jI sr?9c}'?w~?%q2KsNrYođ#wZ$QT=~^wk/۞8a_Yvu% VJ́zV2jpv&T@$*+t6B{>5"7,*,ڵ@[=Z&.^10iF. ֲݳIz%&MVR. .,UR)O]srx\7'Q(()l_\PSp ŢΟKL>H* = \.bQFJEAAY@$Iǘ"p,l)?ŢT*ebZ.d, NC;'Tj57P)WWrŊm{\H&c]d{ aFȒ`YGGGĘIV%q]&m@V  Hl5rLO^݈g~ٔ]^r++C@|MDDի[M# ]ڵk~~ 򼽽->>nn*@R׮@f@.'x刎W6*UjjR1b0qT3FA0nkWBAH1cq*2z*ww\N,772}y B vAcǎh4O}t邡C!digbخHBFBprr*,,lDV o BȬ!ftN;+0dOVc2\b[QvtTTӧO!jkY| ^ƈ| dzkְ)K5en5!=PRr'O8䣏ǍP$^{N}=ư9`!cP@=e=UQQ/.z~$H3HH8$8EȄRo^!ߚ"eki^V(J~6>2F)opw6HbEȄ:vT:w R gflްaO) y۷;_.x 8EȔj|Neՙܨm)vAIㄑD$""j8/^l ~~jEZsɼ<<<0w]e2p8|z/_j\tRXXp55RV)P+lI +[[MM 믿J`XfS￷V̘QamM &dGb޽{wdH ϚD9u$;@-U*҈l5PCq$HO ^II.R>޽kkkYii6RS5Z/ewU(C~pfa=Yt)<B/&{͎sѸ~U={5F!.l| dz _'B/ B!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬB!B! !2+l| BȬ8&ܖ!j);B"|QTT'!j){n䴉\"BH+W/>}ꫯ|b!]t_TTT|SB6>B!dV@!Ya!BfB6>B!dVSۗX7)ʱEQi*,E6{>B!dV@MwAM]y;m*Z^fqE SIeu`mY)>VW+RQjAˋo  [ޓ珫)4#~?nι97sνфvx'w٣F;#)ZZŒFu-6\juvKݱhnnHNNz:}}{>wF-]`HJK))vc~ٲ>ggjbcڵORU5OVцbr ԊDG~ۖx:N*;c?PIIH`kb"ᇪYlbюϔ3EQ#FUY}ӊܹsWr7>>W^Aw|/79͛ջw(p907mr(*҈Di?4)p/xY]ۄoun}vX,޻w@ ?9a76֔K9;߿~T*UTO x"%IK㦥qOmۦ.-Ռ.طo\.7o^ii,Lq%%%B ~ghuĆBpƎR~'BN%$$$xzzT–\{52eJEEEmmm^^ުUƌ# x OOO/z/KM&N-ˋZ[[{zzCaG8;= lF"".Ĝ3~ոyjfUx8o$'s/8sҥKE%n߾]WWh !D׫jرc !..._~Dx`BT*j FN#pԩSNݸqÇlٲ{~SE/CRCb"*-bB !]]] La;BCO1SS@z5oKCQQ~{ 11͍)"vqpp{ÌnɞHAݐΝ?p!Ͱof^Mc1Hp0ӑF}p0٠T !AA-(.?L}}/|aΜg̶TPy9^On߮feW^=|pnn-[,YE0m]ݓGd2:3gh͵t\.3`:}7<b/ ӧO8prҤINbbh}/+X4SWBL^ -,8/N{L]rxE&!d:eC~:%!$$9a]W?4>?!!dϬ즦1\j&ĉ,詬Ԏ},YRYYYXXp-[~%B/!A~݄"@6믿Zx.BX, jz'R"Å;*ڵkџ\n*ڵk`ҥEDb?LLXur68,XS\-.>J ֦Mdɡ/\iʼnݶmoѨ#mH  ›7HOwJOgD"uElj\.WV;wt3ˠ&O\__U\\p4wpp0~\rܹ+W0 thh裮q ѣnnnEk BbOkylBͥ_a~i$?_ʬnB{>,ݻ _8(x_zlÆO=lʼn80olwFFwoϖ-ʼ|M!B6l p>In~4lcF``B,d! YBmF;v T*z3,d! YzY|>HO+0<[Xp 6l )`S>Lں[q/`se#`cdʕiii?Z"H$={ cSSS3,099ѣ"Ḍ,G>g͚U]]=ŦFDD<CBBn޼aPPP+ BWt{{;!DTX7aכKJJjkk>\Lٳg?~Ν;׮]KOO⬬7o]vCII&^޸qjXn;wbكh Z+ BIx!HQQQyy9EQO]\p}]\YYiaϞ=f͚W#-->((ƍ%7n8n߾taKAAA#yyyt"͞1cǍF#rҥ3hw1 32V Z]v555n߾}m'J,Xzԩ/244,viiix" /...,kڵ>BQEQ--- b|\.od̙z~警j/_L(++ ,1Pu:]vv' z[m^T ///YL" WH\I.ZիAAAN3?08qdDww͛_7onݺմ4 4Ś>}T*ŕ`>>j'O$-]ԴCMMMrrrRRRcccGGGkk+hm۶gffZxFXWQQѡP(~3  66Vׯ^jo@3^ZRR"Y,VBBBPPлヒ+ RbGinnDGYxqcLG}?J$,:1;;(##C$gdd<6a_aaX,~Vc„ MMMoi7PxΝA =7njllDǎ;w."K<:, >|`X 9ptUY'C:%J>Vyqt8LsIS$\WsW.*M[deE@~ EV*^eDTWvolҤItEڱa*?!S\bmAqk2.F_;&^]2*X"C. srM*c&)e_DdMDdUDd_dwH)~GH)!'cP$2/ո6xq5DDr–=vrDvmk>W?Z {C;ZUU&|<`&Im";}642{5c'7%G&EDF%F]6m3$!d8"oI.]N1֚c{C%J_َDʯWcLpTևr6᣹Y=Ar>("G߶:Fn_dbdy R[{FHEDoU,w+NdMe[ˆ袉%[knYn1a.|""PQ|./9+ZYU&|+R&8 yOX/"ONl:X6%V*)&dWvĥɞ_#9+֤&NE[YDġIwtHIt_$k2*8bY۱Bj8DI.!KDDtѮa*l3_գ5- MR${ۭ>6CMXuO"rw1)[. ɾ?+Tej3..~J>R(EJ>R(N8 DJ R""e(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R˶ii%~9"w;ox#p1#|ҧ쳉^f'NTWKRR|Ggoϧ}]Ud6 |1誫CMpA>pȰz&4kzK]eeڢEnٳl0n8ufeݮiSrAvZ, .r\HBB ;۲wcĈl]׾2fʨNk۷_VJo૯ܛ7;}GxIIar?.}?l.]_~wgϣˍ ({mOO6l\+4YDtڍի͋իpŊ-KKF7kVv9&ωEE;[&aK_*/66XeQf'ؽ{q{ڹ;ۼٹobϯU+,SOپ6:-Y}v0IQ)=*"7TPV 7ov>l3{<ÖCsZ*ל9קVZ<*7j۶ V]Dt]-r_*(09zro5kho:gު}Tҷwd}6ĩ}mfi_$Z6j7lpZtlqw|Zݮc;c,\<֘PY&v=%WX۠/%W];v8l6=%'"68͋ IfEDL&Y3 " #@X$Ocss͵jL˗Gnܱވ^]R5mZw+LIծ8u_v#>l).6%&\Pbb -͚nMN>~ZmӦtȐU>4[5w׻wɼy]Wv? .+ܨ ȰZ͝;yyf;x[D޽>wnƉPͶ`P3'$F*,4=\msƾ$$D$;׿ں ILS3))1*p~f,?_رYb+ڶ͑aMLncG暍jae͛wTW0Uڽ $:ᒔn\s['"Ҭ{+ |":!dp]D|SBZ.D||0'ǜi).y&UҥXD:u*^0TKO3t5εfn0m\4 ZI)**t>|`ifK4kbh8`mѢi̥ȰTڽW pN>H]oқ69ow9`^[`ܱiG'sSytGH\~⏊ XI`Ļފ߳~@@;Mv8B"RVfT3ܴ Σ`P۹JGW#G;wWZ: ]Vj54{O ~L6mZVQR\ϧ@>.-*yyGE$**dLo,.6b6K($fFFH]yeI($O?]<5dfZj dg[~MDO hz晌StB#Fdw\n]_V{q6m񢰰w](pKYVp/K/t^SFeh]-4ȬYt4Mj $&]߯Y%"k׺JK5COJ~`˱EE&;zm6&10CF=ߘ#G,[Dj4Ɖ[FrjKJLkָ%ŦEFbcW_7W^T,kU.e5u}8I;{ԩ筷?] N4JfeOPDRS ?p)3ԯeɌY훟X&M3v^<`@~BB}Ya%%KK}lYE SKFpCYkժ;j 3'ƤZڢ˂AzM'(5;j@ϞEv."͛6h͵iXn݊Ojikm> }lG: <ѲE$!{Fcſj3WCF2q dƌݻ]ǥ-''M66lUjl]pNLrݹMWO |87\ШQJ>z*NꋯVafP"|@)P"|@)P"|@)P"|@)P"|g-999999%%[n'N|^1o_~eŅ˖-KNN>x๭̙3WZu?Ov[N[s~SϗN:wM4֭ٳQp"|TN_O>0`_￿z^z 5ov+̙3W\y[9uַ~{&Mj۶O<7d qƷr~z׿5nܸ׮][DNg 8fE~RkxZM4vgҥK, G4jk?~9s#%%{^%奤|Kvڕ\>$pO<1zCV-L>&E ۯ_~XnkԨQ^JwT\\leϞ=ߌO?t̝;SN-[|'`$5/zݸqvڍ5 Vm۶+^xᅓV]?crr 7nK/=͚50aB#yHQQx<<>+صkq\hу>ح[3ftj>%|Irrr׮]V`թSgᯃ|{キwq\"f͚_uy7W_}> #˵zիW7h`ԨQz ~ÇϜ9s…p׮]cǎkytW>^:tI֬YzUw}M3Y~ dZc=W_=s߿vnҥݻ}>_uvRF u333+ݤy`GYreCΝ;ufvM6]"v5Ms\@Kkǎs̙2eW\᣺-q**,,x!񔔔K0X̝;WD͛׮]ƍVyr+^(QXX^~ 6LuDi0~MZn=u]v 2e˖?p[[*miNL&qP*=^۷ok3.T׶mۚ6mj6EvW|G^^X*O>}ǎ_|EgxR%%%绥׿Ǎ7o;֨byGo馊SaL-,,裏yN: 2$nj-***_R:Lrss×`7nG.a|T޽{g$H۶mWXQvٲem۶֭[_q=X^^^~ʗ)0!!ȑ#k]wyŸDO4mzWv%"Vcǎ;wlr"In;igv9299MZhO?zw6^W]~nKQ.[|={,X`׮]3glР}g,5j԰aƏߧOE]7ߌ;gMMM-_`_z9s\333˧,Ts|ЬY5kS>JJJBdgg3=u61cϟC}gf뮻Vk>}Dd͛7o5kV$h޼ nᆚ5kz3fx7np8\,''M66l0 "U+rl]r1ؿݻ'OR(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(e IIIt u/ |N'¸ꪫs@D;EAANT4ixCoTNR(EJ>Rڞd}zܙViZ.ǢJ J1q֢ #GڧOwK~;믗-Z4w*.Y5,ڰvmg%|2M5E;sfO&/sȾ˴Ky ͳlÇWW~ӦM"Ҿ}{TEDL&sRg'0ٳg{4M.ϡٸk7ڵqcǎ;vc\xwef"Ϛ+_T P'tC~u֭[ /jnwܿ7cJ>$oHuÑXFKp\Eqn9/k-;[JK7(7,+.۷7pUqn#)Stҫg%:Z4{4|rȑ#[j%"W\qȑ#o6~!bo1Ǐ}}`۶}^wuXc/vejqalc_}ls^;(:GS;vfÆ33?>:Ed MС$%eǬ_xq׮Uo%4H0h.-GUb⑙3^wMZOZ3~xj;io'O8@[z1uj٬Y|رc̙]vׯ_w:-~ 6mNZu͛7FGGnݺuiqVHz}]zzzBBB۶m_CcCiiiىzr8a Ξ;wny 3g!CT+.\{-ZN9ʶE$eO[l),,t85ԩb7feelzu(]ׯ_sNkjԨѭ[VtG9Tٳgc۶mk׾룢lu˗o~˖-)))n{ӦMuMMM5>g[suq`䣊Z0OJK<դ9;;t>үyssFFhȐC Əǔ)ض]4n~8Xoŋo>:St<HBu։Hn݆~5׈Ȇ -..>t萈\wu{o\\ܹaFn֫ZD>}xƶrK߾}{]vn믿?~ |Ν;ʪtJ^\֬)|eszV”6l "4h]we8`:u 2dȐ!v[Edq>ڵM74`!CxÇ<9={72ҲeKiѢk׮v{ӦM5Mkժ/rNjh cn)-- Mn߾}'N8wٳgkӧOOMMQnv4[55GYYY~d2}#[dee׮]{ݛ6m|PHD`YY0vr#Gԯ_nݺƅV!)))8(,QF"SPP~ffl6TtQEqv6hf6owX_o_ytdBBl>}byᅇ[yMG~kۧۛ(DD~v(dCWHVVA#5cb L&<fD$ 7f9₂{Cf%s{0(p8|>\cr3E*^f o'^&;lW壬qoͦ:uuHeS|(2~].\~k.77[nݺuktt-xIWJ5 ,OQu=jDEElSe\g|Ǝg8Жzm̙;c1TR1?>~Ύ喏Mo7۵3/2 5jdGG23םu "[`/_1`~U+SDrrGM41{}P[ݺ`PetuݺusΝ5kk֫W{믏pR8zlrnP(d2 ~j:Vjdgbg^(ZdɻᄏhѢƍ3fРAg:uEx5֩i5lۇ vѳgF>k֬o6.mٲ%;;{ݺu{S`uJOۮrY?N"xgpqbYA))=Wj6O8v2Di^Jw%5jdOWߣǪCzuO+~ݴiF;pA1G ΝMB!Sr/:("Yj99qNgQQf7nls;j]n҆  (ZyN{Yhч~hFٹsիWG_K֖-K3omDd>f%$$ozٲe" A\Ӵ{o:th$*UqB5,KYYdiׯ|偯iӦVȑ#K(--j޼118)jUimWm۶={11|TCD^#G~Qʼn*JK =Tɳϖ dQQJ&QXK&N|7~ٿ_Ddԑ"2lw=gӦVGYSuvpO85jQ+}iFFysˮ]/_['N|ɓ??RRr\ښ5)SUmk׮]v |xm2:vr+V]%۾}{K5|p'n߾}>rկ_ ,7&!VZf.**Occc<477CMNNZ g{].4MۭVkv~e˖&8wlٲFvlٲe 'Fs]v%$$8#bXfVZiU~&//o֬YFƭW^>\ ONzi2.*j}Sg?|֘137Yli` "p hz[v[1e}i8io'M|ᣏ|~9Ǐ?MNݺukɴiӦSaiשS=zvn*TZóUi={\zu^^^FFYOwչYjG955uٲeFu]Ӵ:8Ο~)??d2׫Wj>}ZjϞ=iii;vxjz rssNgVϸg*mӶXս{wPbb^[BQEBrky?jt\ӺoPXNI| 6/~.P(4k,z]wY,|%xX߾}@DrrrڴiaÆ'TuH&ꕈdgœUWmt:K.q1զM.;V]i]־ծ]-2ANE8;*'  *|@)P"|@)P|T:¿!rJhڴizErUbX*#|ƴiN$ FGGUbXxUB8T: @)P"|@)P69YP|@)P"|@)P"|@)P"|@)P"|,tYʡ F>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R(EJ>R?:}`()LIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/scrollbox.png0000644000175000001440000012441212522231440027427 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIMEIDATx{@2#BoV7>T JROad0H)d08'ܫ'G!6fJJQ&3g3$fv.ot1W*Bu/滒[M0F֝/b5*@ "!P35 e  0P$@j ōA   ?^o1bPÁ =@ CG yf2Aϣ1 Y8vW,"vL8 Oՠq0<с RLAȁ*u&M`?CVHfexŁa2pߍRBi[$P-G&DAF1`, gH ] :LP3Vߪ(I`$?A@>UJ ] wȑ3 XP &`"WhRI >Rt"k$~|<lV u"J`" bS2D!ޜ4>N\Yˀj x+b\P v)ة5`W x 8a(lPXU XR R>j8\X ~wH]5k#G"0| #_S5X yФPkZ` WLJx+`+ ^B򚠸#Y(5Fh !L@: |$0 AaG8 dM@f3a J^iR8jIP4쩗) 4R6"-p^tY.Hx)P B73NW!s?EOPY`˄:  BvUu@0K`?չY(r|"#- TaJ@`M ɑ7tM(J@S{"d*CBLχ띵 @3@l#A`AuzݟA^m#h,oP{}qv5W屸P܁jRAuflɠI _/߾vy!-i|{(" e뿾;/#?K lW&2A@NQ eu?b&K˼u.jMc,SX HmMo6A A֕|eB4>% Ap n6@?$9:`c^p zY3 ?_*\cve.p J@@dVi#Xu l %]#сD *T4@x=OԠ;W&_"B3Oj.aI?6]oփM ! e8iP *uJ  x::lyEd˃&_~Qc$H<p\yS**,/j ,˝x xJJ!嶋,HMU--Ull$ R+ Mckj?8X PPWo230*}Bu|Cm-C"`jj?ȑ7G-]Z(ij"tMre+ ۷wҳgaD54PYɌx/?_44˗WTW36o4kfS jjM| dGxkfA@nx K[[afS.]bO$ heD ^hm]K^$ $[0eeaD99Wg47D]c$U$"t:8ԐR?y¢IԴ 7UU)3Z%!/&O˲|i~)K\k̘zr,K˺_eWW+ mwdp7GF#c$fǫW#Odg؍GcMM5dH47 hXշ~O$'TTiA-++1 @^`flg1h,2սȋ:!mY 2Դ&&TP+@@5jׯ2vAoK2dJ#Fr3W_)xy Ǝkn/NP5Vf@GjdP.W`frPhjhnPT͸;_xr Pߒ o018~ 5 ޸yX,I]#+>®cXY**J1Ҙ[ 3@FJS]2TD"mAx0JHDde lzBII&+quc2d)NJ@q~'{>[c䚜rf|Bw\GUvA!P믩r XoX,rgϞmȑ#ׯ_=(GGG.r-Zԍ)l2:<&˽`7gΜW!)."Ȉftȑ ك駟2337MFGd7+y.RPPtR5tPPVVH{(@zwt#FXZZ۷OzSbb"}𡏏ϧ:ijO~~%K|>spp빸 ))իWԦ{{{gkkK%\.wÆ !!!6l >Ԛ .[RRפoBrvI.嗲|,(AT{Y;644lٲe„ NNN j/޽{̘1cƌټy4QmV6X~qqYn@ xǏr\盧ɠo4BR|Sң=Ν;ukjjHb __߰b!QhiimܸQ]]=//oݺu...=Waaʕ+/^y檪 A@JJJ``Nz`555www/Yd޽>>>6lXv+ &G2,,,Ο??erMrr1cȭ͓&M>JEE%33>C)R^Aɗ ˲ɠ .]hll\PPp%ooo!wkjjڹsgAAAdd69򆾲>p8...'O"ל>0a5n@YY+&ww 6$''wC2 ')//H$m?=5˗A 2rRއ~RRҪU+po&!yOX,++b(DR__׋cBavvvP^x1˥z)ө{.ӧO/))9sLaaal6[(v  9*CJ2ZɠgccS__O9Z^\rޒO˙Tݠlϟ?¿~888X xzzR뻒F_z33gruuۏ".66|#$$DqnOall͛7544.^ꞷڵk]]]SRRz(`ddd``cffF# G;wESS 2D28qO?t1CCCMM+TW(,ˑ ?~lll\\\uAY⒣***.[, 0!!a֭V6[[)S|F0 svvJ]LFzz:K"7._|ժUu.QvvvSN5005z?sݺuOMMoƏOnrvv޵kWzzERSS#""d/_2Hϟ?o1v3_|񅵵AAAzzz ,pppػwe6cƌt6ɲ|ɠ/,\ѣNNN2%G533#:~+gh*UPPЦM}H,Kv g-Vʝ PFTVVeeߎ֦yBPWUUeffv- yr$1׫#h޽^^^@!m۶ܹsk׮@!}Xb` B7a!B !U@!PB!z6>B!ԫB^B*l| BWa!B !U@!PB!z6>B!ԫB^B*l| BWa!B !U@!PƇ^yy9ȑ#\.W,{xxpB!ԣ=X,>yel-,,X'BճߗXB^ӳc>Xd>or6l000 144ܰau`zzLj#,--"آnI|{qz͚EQ[y<-/RCCÖ-[&L䔐@_~˥l3.\x9}իW~]HKKrP[[Y[[KS!PƇ+uhiimܸ166wݺu.\?$$ÇÆ 411"Y ߿ǧ+ɻt钞A]n.t5666@iٲeǏgٲZZZ&&&䍘&JppyfuuuK!=󡠠0{lr$2,,ӡ把UUUV K;ye0bZ,GFFn߾M"H$gϞv ;v,XYY)++EXX֡UWWs8#éL&ŋT3[nq\꣫+M2?~m/++tر[nMLL$wB^8]]]MLL5O%?uf2k֬6mz--JQĄ&.P։G@Lpp8rDfxϞ=֭[errrСC-Ze˖UV%$$={vҥnJJJSN=pʕ+.yB{NLLLN:E~H$ԽPa ,ʪ`?I@ȗb֦:sstcZZ9lccS__Lm󡬬}-Š+Μ9D|BnKs̚5K"""B]]nԩlll>||UVOtENN߲eˎ92uK^\/^رcG9;;ڵ+==}ѢE.,\ѣNNNrg999YCCcԞ:::OLΝ;Ȇ|%Bu#44(+{XӧOBTUU٭[{=r Ic*+%"Ba!B !U@!PB!zU6>RRR[xeC!KBCCuttԃ= ###jrWiGg֭[{ݶmegϞa!ś󑟟d>/_L홑rKJJȏ<֖:r>|c``ɛ,M.B\;w_~%CzzLj#,--əecssscccj~8, wqjB.a\\'|"|uxӤ'NL0$$$I<|p?YWmmgmm-(>>H={Ff?{>h^ o]EGG[ZZv ,,,_zF*Buo|Լzhiimܸ166wݺu.\--- S'''3OII 4iRLLCppp1+Vpww?{-[y䵴233[dfffffAAA֬sjiiEEE-[lǎޱcvٳ'+++33^9ɓ'=O@Yjll\paCCClliiiAAAiiiTZ===ݻw޽ O>xɠp޽̙3_? K\rɱ[lQVV&'UʆBݫo|Բ+y9s&5]NNNbb ?<<cbb'O///???066+L$ (L&sРAS 22$** ggg@~>|m͚50vXWhsr@LbbٳhДp8T;D_P]]}!C_tڵkdo_]]]RRsss0e˖?~=2{ECCݻw޽TQQA6iAS`lڴIEEE[[{ܸqann._ޛ !W|DFF>#W644޽H__?99V^^~ }ӧOrssmmmɟfiӧOzE"Qvvlmm]TTHsTsssAAIȏC5j&SLp8p͒//)Kit#7drYWWL|󋊊_!ݻi%_u-"]paYY… e,<{,??wyySSǣI} ˍԔ >ӌ H\B{xرc[8 ;}thhbDDDU_陘$''?#G$jCpb19-iС]OsuuX,ܾ};F"H$gϞwTMMH$N%&,k֬Y'NXdɩS,,, dIdэTUUez ܼ9??Ǐnll4vWiiرcnݚHtϰa pƍ&%%,.KBCS@YYZf0"2455ݿtt/Y,V/W6^7ӧ|}}ɏuuu[7lؐLu{G@ZەKtDL&s͚5ӦM^EyUH/gСCOJJZj4z|jhhaÆPCCCG^i0h%%S8p`ʕr ]]ݔr Ee&IS.Crluuu||W_}5a__^l!Խ.CM(fggK0}3gJ7>өiii]OͦX,UAAbX41zhrp"RVteSSScc`@)K{4hWP`aaˉ'DWZZZ(K\gԨQAAA۷o/,, ..@Ƭ饦;Ǝ{erM2h*@ːf/^咏reCz>2e 477K`ddd``@z֮]ꚒatuuudK0T;wESS#̙b\]] /////ᆪkѢE!!!nnnfff۶m0zB+Y4+(>~?lmm=J=KqX̙3AAA7_CBB6oLţRRR9j)l]7otttиx'O>YB{|DDDM:OqwwyѣλvJOO_hQjjjDDDG]ڴzjkkkrh_|ammmmm-CPPނ K{WZ.ooe˖Xb„ "(Kg=fϞ-cWj4hWPb&O,|~ܹsg^^.l|K>hAS+ѣG֭?~jj7|C=қ !QYY >kWV_oڭELLLdddNNʆ!UUUfffnݢ&spp#Ç|2gFF-))!?&$$x<[[[(Rbb"}𡏏'{KKK>}B\;wK ==cĈ1kIIINNN^2miiibbDmݱc֭[n?H,l2a}}}'''N0aBd2l|Yf֬Yׯ766633eMpfff-n]wHEEELтBHv=QSSC3L(((ڸqz^^޺u455]\\,,,Ο?ONKcƌ!l8S^x188XMM;WXV\\`0@KK+33ŻUTT233?tqq3?++kܹSN |Axx}f W\x͛7WUU?^(4&322:sݻw/^lmmM8vخ]wΝ3fe^^^,,,hLZtifff``qAAKM%%%qqq_~ݻwk*/C󕝝F6ˆ>gMj O<i)--fȑcBݥ|J>sLj ;;DJ~d#|m͚50vXj^>IKJJrww8p`nn.9gG{YhD/26mN, !P._ȕ wvtt422ONN.//'7߸qn߾S\jJO'/ZE'HAMycmm]TTHQSSӧ~Q[[+&K &+СF"|~QQQCC׃222D"ѽ{su%%%Rb2nx% yTMMH$25ysss~~ǏQPPaŋTUUUjYAAJHsRUUM4,W^(C555YBf^~退___c]]Vww 6$''Kϙf/B@YYYwPPPzl6\fʹiӤkiiuxguuu||W_}5a2Yn/,ZC-fddlذ!44АI_ep%I{nD^xAmz⅂,Y bXx/B= <"H?BavvӧO/))9sLaat<==fnnlP(bYYY'%{/rdgIYnAG{.V /_N8Q$]zҲ0mllɎ%R{C(X>}\5jpYAddd_xQPPŵyB! bccGZBBBZ722200 NF>;J[vkJJJvvvTTTUTTՑQTVVH##sιhjjr8rCpp9sX,+}wq޼yQCCŋO~!=zzƕ&֎AAA?666...:x`ieH-[/۶mpS2 ܹsq8 =|{狒N>BC!uoKDDg}fgg2gS\\,={.]*y׮]{矵#""dyB!ԫC#>>J"rs}bL!Pz>߿O_yݻwyJ"AQ!BUi|888 {apҥɓ'cD!ԿƇ?8spp'2B.K`oolmm_#::$$$fS{Rko$%%999XXXzڔ1bKK}amF!V?'' gggj}AAƍccc}}}׭[wp8...'O뜘8{l~͡C|~xx8899PS0M6hkk7ڵkhd2uttڜ]677BCC!,sDFFDEE,u!Pׯuuu wvtt422ONN.//'7M2$&&͛7KJJMۓ IH&4>ӌZjH$𠆶X[[566bF!?m4aaaK.=uԅ MF`Xf:q:uT]]-nSWWGuN(++] H$>&4LMM_XXkbbzj2jXD"yiB}\E[[lǺ:އ~RRҪUl6[ P2)q'guuu||W_}5a___6d2׬YӢu!Pp*HɏB0;;[zSSScc`@I777OOO>\2:f/^rɾ eeeUPP0X,iB}\?Ֆ ;;)S@HHHsss}|||œ]5%%%;;;**QQQQWWG,--y󦣣ŋ>>|>d```aa+t#FXZZ۷OdW~~%K|>spph;voݺUz}ii)ַ]h'N0aIHH,"Bݨ4>_&=#%%%00pҤI111/+Vpww?{-[pʕ'OݲeP($wʚ;wVTTԲev/{:[UPPqX__u]pرcvٓI: @III\\ܗ_~`#G$''!Po?]ٳgϞ:)???&&D-^^^~~~`llLPGFFDEE,#c:[5sLj;;D8|ۚ5k`ر.d2uttbq(h2dK]CPB{>ZK Y[122jjjO322jkk"(;;à ںQtaݎFFF\PP@N8C5j,Qx2dKƅBյyQ뫫9յ0:thLMM_XXkbbzjHD&###_H$Ϟ=1 ^tS.\0m4rFMMH$N,Qx* !i6-@YYGɱ-xzzzzzVWWW&LeL&s͚5ӦMYKKKǺ:*,Sz^B/OSe?f/^},ʪ`?X,'H. PM.1zwkkk:x#B}A[vkJJJvvvTTTG޼yQCCŋO<ϙ3b@^^^^^w}'_2e 477S[-Zfffm6S***ȝ+++KKK@GG>!λvڳg?6=:99yݺuBP__o4۾}G;}ʜ9s8Nqq1ۻtŊ 3f̠ի/^H.BYY}B7 =k[[[ӧXj![֭[TVJvA!P/B!z6>B!ԫB^B8~ȑ#.];Λ7/00PƝb1m=nOuȑׯN!f\!vO?ٳ' @ ܼy ###6 q9r$##w՛q!z:t?/ɏ .~hߡp%v!e磬lkɅ{xxP/_Ko411 !Ў;͍nbSbb"}𡏏'or_k}%==cĈ16 B2ܹ\e`oolmmȕor6l000 144ܰa5??ɒ%|>988PGWYNJJrrr200~QB?'cc1==]zbYܻw?s_?$''wxȱcvٳ'+++33>+Vpww?{-[il233ۼ75w\--e˖ر#>>^ZPQQ'ȭ)))&Mqppn  eeEӧ|}};UEerӳ:>>0a5B~4>JKK{d @CCzDr}o^hjjjjjXIѣ޽K~-**222;,ʪ ֮f[477OOO>Ӈ#HNPmjj*w\YsdB~4>>#G:99fee=zO>!7چ'$$L2///ȉEm۶Mn:aR LsaXwܹs...gȐ!vZWWה쨨(p2e ~qd966͛/^|B@?i|;vl֭BPWWw&++M6mܸq]]ZZbŊ3fPB^ŋ_|A.M\\ۗ/_8zh.|q,XPSSqFpvv޵kמ={~gmm툈Y'TTT̙pMGn:P7BQYY D{{׶ӧOBTUU٭[{=r ˕/$9jB^B*l| BWa!B !U=HIIѣ7OX\pȑׯgk޼y]r֯_zP=-Z$G۶m;v,˕%/]¢uiFu{4_ޞөՕs*Q ~(`O/#ȈftOOO~vjiܛ:[~u׭[ݻm6ssvWC궮9Fu;#5|a1_wx~̘1o< .]zNmrg+9'25ݝ슋Y,G} q5559rd͚5#ҏkogkT?2 73#??ɒ%|>988őÇ_|3##喔y<-u)11>|}TtןP($W>x`Ν_~I퐞1bKK}ɘ$''' W^g^wFGG[ZZSQ[wannnlluVjÇ[D?dаe˖ &;99%$$Ho=qĄ Z'㋊z}\'|"ȌKHw*]rMESrp͚5fZ~Ydd,_h?_QE_{Ѡ F[ISz 9>|jԨQ_|'|Jg}\(jW{GMhKD&@o%M/,NՍ%KiiiVVVFA/9A:=eWWW/3gΜ9\iggHF;eݪ<8dwwK.Q @(pթS١3reCCݻMnnn7n۷o?}͕ޞҦO4Dlkkk뢢F>ӌdtuu.$7577P4 :544\~=(((##C$ݻwӧJJJҥdx䄴dS .,++[paVr%PEEzix#FP慅-&nu0[;4u%[I/,NՍ{Q  KGO$uzcر>}:44\QQ1""iLLLǏ#G9éFraUWW۷k$D"y왮.́e0|Axx8Ţ2(++S C$@MMH$2u377onnϿ~322;l|xBSSbJ-+((~!QrxhxBUUUb@ n:tW{RzeI 旨+vVJ9_=TݨVQQ-N%uo$ӧOPIouww߰aCrr>6-@YYτBדfL5kM&^KKc====== &٤r{`X555jYUU0777##cÆ <OM\"s*@7ՕSIo/_|ŋ jjj4_j/@YJWOL_VV/lꆆNߢ:{;[EEo7D"> ;L>̙3ҍsstcZZyfBeeeUPP0dobŋsgϞɒ61zwkkk4xĉE"իW---; Ʀ>99Z#Sqqq=]`BPS:.Y5XÇO>%322FE06e9S|v }=ztVVgCCy[s߿,ہΝ罁 bccGZBBBZܨ622200 _N%ڵk]]]SRR:G;wESSP̙b\]] /////ᆪ+66͛/^| yG,gѢE!!!nnnfff۶m_|ѣÊ4Yvtt zqqqqVVeILzz: u#*L8~:v옡el,N8ɓ"u+ՕGQQqٲe/m۶.FWfA^~ht{4J~,hѢ>hƍ9nچ'$$L2///udKyIBB_oz3]""">3;;;9sp8Dٳgҥ+wڵgϞY[[;""BΫWx"_ eeeAAAeee ,߸q#m߾}劊Gso֭ | |JYnwii+f̘!ĚX,ɓ'9rLȘ |>X<==oݺ lٲE2TW\]]׮]{U''ڬQ]Ia{|WZd2Νh/@Jã,(+/n[)oT}aiꆣƍ;{ӧ&++M6mܸqP{; Xғ'OPGTVVF7k[[[E]o-5k=6*"|.] r̛7Azw}7`})++ڎ7Û6m0L?… ϟ':t?^p®Oҏ͇~iӦ~B={>,Yy<sNjhhزe˄ >Y6%$$x<[[&&&r܇|K|ǎ[n>Z{xxDGG[ZZ455Q[wmfffll>NkB;w$߻L6 '>B.Ku /?.U FUڵk\ \zOLi{xx1R`eM{ɠDS ,,,"Q \|B}M6> 6nnݺ .P[.]?,\>>>D)%%%00pҤI111︯Xٳ[l!':vخ]>={deeeffR;kiieffw޽{3g~ɓۻwovv,ldfffffAAArIjɓ'\|Gxy<ޣG$I:99eddTUUedd8;;S덍NZ#++kܹZZZQQQ˖-۱cG|||Wβ|Ն&)lb\rɱ[lQVVn1I6448 !쏝9s̙3e;;DJII&2e 5SͦCpprrϏi1k>f;v\L&SGGY" ƦMTTTǍw5 &&fڴi9|++ rH4hP5oooϟj'&&Ξ=w[WSSSmm-xlHT__awͶشi7o^`qtt\p,SFFFDEE,#Y$>U\ %;<&&&9993kz磡aݎFFFׯ+))M>ڙ-M)77WzC{{{W\PP@6tPjꪨ˚d%ݻwɉ`Ȑ!FFF],(Yڔ)S8Nbb"ܼyzD{*U2ruu׮];p˗gΜIfH$ e`mm]TTCgia ۬`dd駟fddPSy0x`KB}G6>¢.]zԩ .L6 MMMVͦjC}p8uuu-:tǚH$}`D"xU4,jb͚5ĉp) ؽTTTwGGj$ᮮiZWRR1cݻ7+++wlbqddk~~~ٳg=t &͊ /,,511Yz54&!dу]N>@͆,`)//H$4l@ > ee#҇X,rIzY bXx/D}С'%%ZJ[ۣOxGx<^ִGTTT<==-Nze2k֬iюͳL YRf====== &P_7*ٲBTχD"~B=zj,Pl277=fnnN F}]cmmmQQQWE 5ŋf[ /_$SSScc`@)Kϟ?[yn.==l444\zή+J,((xhZb F깳ܩdȗj\.Eg VFĂ =bŊs.^+?9rjVVѣG? 3g"G}wre M2Kall͛7544.^>tΝ֯E7oDDD|gvvv***sp8Ș |79;;ڵkϞ=?vDD,Opx{{XaƌSXzŋ/\(++LJZhQSS,XPSSqFEIXXٳ[l/@++M6mܸq-*>yeL@SSҥKrII ˥K1ȑ#]QǎۺuP(]~Gm߾}劊GnqogYjC R8zu B}}oFI.HOOolll=R!8|Fw*~)E",[l…o$111999ꀡhѢgϞumB!ԫB^B*l| BWa!B !U@!PB!z6>B!ԫB^B*l| BWa!B !U@!PB!z6>B!ԫB^ճO2E__!))/dx޼yo*#G\~Gb.{Ywttr\.wѢE 8ًSٺrKKKz{`֭[K.3f̷~kaabŊ~/#Gdddt( lOX{B|u!F̞ :::{a0SNo'LY .]}CX,vX!E=󑞞>yd OOO'7_#::$$$,Yy100gϞ dGvI.Z.4) O Mv@ xǏr\{{{gkk:˗qYZZ>|̬㒯놌uӳ* EEEEEE z#zիW/^ѡ >\(kjj{Μ9sŋ[[[Kַ@KKkƍyyy֭tqq?رcv 477߷oߝ;wf̘Anʚ;wԩSC6VfffssIZlIeI)C9p8'OzyykN|m͚50vS"##MLLpvv'sss 44칑 Ecccr c2 nupzL6iR(wwRhP>ϟ? 11qAC|~xx8899 'O$ww:;;w{\A4u:ԴlٲǏSMY(BAoQ[]]]4,//𐆆ݻw;::'''wxTsssAAm0tQF"(;;ÃuQQQcc#555}TWvGQO^ Rm2۔)S8Nbb"ܼy͵'YEEE ׯ_ DWOTu>88_ݼyUt…eee ._@S0PHdee`D ^tS.\0mڴGԈD"C~bqddk~~~ٳg`jjB___իW)?BIQ+eI)CXYf8qN:eaaa``@8N]]C;͛_>~FѽqDAuXKKKǎuVjU!ޠ&'O 8"ӧO:dܹs=.պxe)N ׊+&y*,Bԃ8pݻ+W}}`DDԩS y{{/[lŊ&LDҽ/666qqq>\|UMG?׭[7ozr-Xa޽zjkkk2_|񅵵5U4)$yzz͘1=T'O@g/ٳ[ܵkWzzERSS#""O6mD"YZZb{{{B!ԫB^B*l| BWa!B !U@!PB!z6>B!ԫB^B*l| BWa!B !U@!PB!z6>B!ԫh#<ŋԞպ{9m6vX.![ny}˗s۲h"X~ӧ+W455566~z7>o޼sȑ 𠪇ݻE"ћr;ehjjJUf5ãgΜٽ'...#GZti~~~wXrϞ=-,.+@1fRSSlvjjjhh̞={ڴiNMM={D"ʚ6m[vvvSS=Q]L[ݻm6ssҥKɋAqqmۂF Æ 2TVV^~ڥK[V79  ۽{w}}?Vr駟׭[6O?g7o411 022bfwG_l|TVV?ٳgϳgd3WZell)ibY,G}p|>7oĉ6SOرcGuus455ͭ]nhhh8;;iӊM/:t((++.~ h .]j:}˕+W,YGaggw .++ښigg`0hPBB=!G_~=OD"uwFZ8qĄ LLLBBB#Fܷo_477>}ӓlyttt:2;voݺ9 d>x`Νr*%K|,H lf˰ݻwrH xǏSk \nFFFS2f̘1cl޼+q >\z,er>|c``;)Tii)u+mo|hO{HS{FK_l|[XX\|Y ɊnooP 999HE#%%%00pҤI1117?88833344befffff>|XϚ5+((efIII\\ܗ_~`#G$''볲Νlٲ;vW^QBgfӱcvٳ'+++33+BEE,R===r,n/ RssP(|իWϞ=;uTr}AAƍccc}}}׭[w…d&@w~̙~%G\_9ydddyݛ!ɓҁp\|_/ܹwTTw}'K\4jo(s]$ɕ+WfϞ }SS=H$  &CpprrϏqww'8:A"s@nWWW|m͚50vwbPEd2 Ժx4H/_644$3gRrrr]\\2M`06mڤ=n8*_re؞iӦ|,Gy{{?ٳgѕ/Qcc]]]cbbȁqg ,p8 .$7R^^^~~~`llaA1L6oN|+Cxګ^[|ܹs&N˜BFO---¬,Q4rssmmmox<ސ!Ce]]rDuQQQcc!O0А &mjnn.((4i~С<ЧJcܸqNJHHؼyoW_vhddL%w 5ZSSq%M"ܽ{`Ȑ!FFF8e7o,))!o ===mmmryҤI=jhh;.SSk׮8p3g$C O-սQ􉧏5 \˗ 055 &&& /_#˗/L*} }dffҌlqT{9Չb& S: 䠄jX}v'L"<{LWW>*ѣG^aT[[+7-ARSS0aL4f.[LWW7,,ӡ把dȗ$I`0r՛eغkիWSS%y,k֬Y'NXdɩS,,, ɨҒ;.%%3f̘1v޼yឞ2!9ؖ"wAuo}jv[>rD"CNMM%ew޽QFQ7k&OW[[{ƍsxT{lAr}*KfY,VMM IzFkHWW&q^╻ >477+))AX,ty%˕%1އ~RRRL#kt2~'9R2l#wAuo}别ַnTWW߸qc޼y^裏n߾ݩSwI&Mjjj:zh]]G<==87bYYY'EW OO_~͢r{=z4՚-**j۷ϝ;ש lrpϕFk>CJ$zA(Rcerk4Ґ/^.CmmGQKJJ'A011FJx񢠠ű~7 |^pp@ jggffJKZ<^PP{)((WT/F'^[j}ڵk"gܸqEEţG^r/Ν;WXXx==%KPlرc80f̘4G{$(dIDAToڵ)))QQQ}̙b\]] /////OO?p|?pcǎ1 /,lZhQHHٶmZAɓ---U+2222:w&áNʔX\RRrsss###)S@HHf5iW/g}[[[߹sR ܹsq8@H8qO?t1CCCMMM鱱>>>aaarIQQqٲe -Zl\ȑ#TUU='t i -d,FJ,--h/_\r+QѷW\p8䛵HcǎԼ|r'N/3g\jUWNЛAĝ;wM+:ljj/f{mv9{{kt {3n/(>BCm8 B!1l| BWGxx8ݴiJxI&mܸzSVTTåVT]]w^n۶mcǎr nJ1o7oĉif{q)((\tI ۜ/8pΞ={ ԩSsrr۾k=ٳg6>hJPo\rEAAaɒ%=|ĈvvvgΜ&%effّkwTyDdv7iӉ'&L`bbB_EOOO1b}Qbb"}𡏏'oRhZv_d xCv=f̘1cl޼|@ xǏ),,r|IOOmxϞ=#+ˍ|t{ &!ԦHMM555UWW|!w!jhhiozhN4)&&!88gffOgff>|XϚ5+((efIII\\ܗ_~`#G$''볲Νlٲ;v[bٳglB浼@KKkƍ֭pBϕF^^ŋw;**'ḸÇ r(,,\rɓcccl٢LFSm޽{3g~:#oܽ{WQQaӧ<'*M4YF.ʕ+d }SSSܷ&BA&O7oD5> СC|>?<<cbb 8QWW'B!r_[>x!C/]DibbE@ ؿOώUL6;gΜI ILLtqqhllHejOsNEE9ĉ_|@KD"---L!:?Fnn-ޞ}<TWW\$egg{xxPWkk뢢Ʈ8}twnhhؽ{~rrrM.O4ѣG 0e7o,))!022jjjO322jkke6HgMM Ϟ=ϟ?;w?HejOk|\| SSSPhbb ǝ/_2LU'}dffҌlqT{pp=*((D"2yb822R5???DB"rL¢.]zԩ .L6[Z]!}Rș?b͚5ĉp) voPiJt&&&W&OJFzsA՞aÆ 0ƍMMM666JJJYYY \.+}4YF.W\H$Ǐ֤YSܻwoԨQ͚ɓ'޸qcܹ26-F@LNl&fVӧOP3ehƥO˗/ :t$YfRSSSSS+--oܸ1o޼S}Go뿊[24iRSSѣGd<=>Q,ʪ`?XLD"WWW'?  D#Qmrvv޵kמ={~gmm툈6&..n˗/WTT=ztu^ŋ_|A.@DDg}fgg2gS\\,}[^|`-[t%%fffAAAAXb޼y-ZXXX О8p ""ܹs#A=ztrruB7|C@jCszGD MB=Dee%hhaY߷굵[W/&&&222''GII K!.233ur$1s ]JJJ- m۶;w~ڵX!`s~-B)}qnBc@!P꣍p.iӦN%[O.GGGrxrr2olѣG}`?sjӕ+W/~[8)Sz."%_eCW󑚚fSSSCCCe? ##p租~jll\ndžJz_TVV^~ڥKNFݺukҥ׿֮]bŊCN0'⢩Q]l!6ꋍʼ?{yٰadD.C>Ywݻnj3f̘͛7o='_}qjB.ANssӧ===g\IOO1b}MHHxr333ccyW{'O`0`ӯ KKÇ$'x/!鋍TSSSuuu ˗/Kow~̙~HNN&kiieffwaÆ͜9}igg,|Բ+,qyyy1ܾ}&r'ڮ1118GoooϟTgϞMMPͯA~H$BDddITTA`>>>p!>ON䔟b111ӦM[YYQ;՞W^l>P]]-ݑ"< huuuIIIuvv/!s=wܩ '8q˗/srr***䲦f?RۣJ^Wl6A***Bvhdd,c"##g+ek'^nzzzI=zSLp8p͒//N(σѣG^b822rVD"H={[]]- SWW'Lf{+H:^ɧ[r555annܜgddhkk766|B>rD";55u͚5=ӧz._E]QZ~%AC !?z{{:tIIIV0(]]]6}]#ϧ&=fL&s͚5ӦM>DKK* @,h] bX-OHW{ԤyﹴNannnFFƆ BCC y<Dr$!A}Kuu7͛w굏>җ"HɏBPz#i/^蝸ss~HII D9r$"?/ _~i}X,UAA"277~$--Q LLL1/^(((%.W^%innNMM4iRxĉE"իW---eLMʆB}_vH$7nFQQѣW\VTTՑWo?~.䒘`iOh بAE8q(AChZ@Tૠ$Uk BJA@*"?i(AQ M\rK wg?YGن724(J׮];p@7o^p+!! ^gNIIIQQQRRҰaB\d2M2e'O,**z># ,5*+++22P0rrrƏo4*"ǎ;vX暬 &:tǎzׯY3g| """ꋚfL{g5;,((ϧMv^{-;|>_ثF3gu< )[wT;!99 33omeK.=rHv0j~L2qDNLMM-..G\+ԊuU.|ҥKN>_Xb̘1<Μ9STTt=Xwyrȑ>1EQ>뵵_|q֭w_nnnxht`vذaٮsCY~iQ7_|@CD1"e>ٳvJbw@m/_SX>"cAϺ/M4?ESА˥۾=#JJnN9{ִfM܉f/_0/ةH5C߼;?L̃u>l:S@ދAm8wowv ϟkUU>*"۷Gy<ѕ`c ‡*jNkZTh-j/3V7oE  s 2[h2(|_c2j>5"rDl:=Ki\W~ͷ.38H'E .׼ "~1s5-UUx }ͣ{w x̰|yCT?Sqlt8u)SS&׭E+SlD_9qB{wdya^RӰdIj pH.ܲ獱2JBN#gS-mW}xqW^cɱ4״XU+:F@vݭ[]Kzʙ3ƪ*}|ODzԸqcL^u&8fj H>|8w#l,~|DqjO}?]M<>o DQ A5O1n4*GX;m,[8vlE>n-^|i#[a}ڴ ƷߎEz+iS|/3))iiiAKl VDt? t\&&FyRUQ4 ~VD,A>=kN|flt~={l7GO #ڽ{wEuuuFFFL; y5uӨ*^K'xQ+K $J]S D5AMnuV155 cr`^kEAԆn6-FdW=/ζC,|lu@݀Fm-[>P@}:`b5֚~ZcUU|>gPU+1DϘa!hnUr4f kz#Z>֪竟ix<7?q9j׮˭1n=hKzaܱ#i̥\w.U3SX,);~ #I'znoҥr7͟}kW&hImi8ڵ.uW{]͚L ۫fOMYK/T{݆L=2+KaWDЖ~I]ѷoXU568Ze?ItT>cF> Nbc]1UY |m3h͛=Çl9 ^v)/o,\#"99+=z->mmhӶmpo@3@۵7f̥jzyꩈ'Ǎ h߷7̜Xǧo["Xd4z#"z:AaHɓ1yyf ]Vڱ% JK Zv'9l*{K))yyg9F^Ys׬krs_~。)"ٸ1#2fܗnIOvN t+Νր녧ИLMM-..NLL ܹsԊuUh#|M>hKqR;Z>@S)h4Ej8y hFigϞ]FDV+EQDEQEmF8Ͽ|m6EQDEQEv]5 @Kh4E"|M>@SWնsgKGh"|M>@S)h4E"|M>@S)h4E2ܰ-;\-@S)h4E"|M>@S)h4E"|M>@S)h4E"|M>@S)h4E"|M>@S)Д!áR@|M7K9yNIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/inputbox.png0000644000175000001440000003135412522230546027300 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME6 2RIDATxw|TUߝIt$$BBG*k HYUT,,#vdaq#(Y H0@ʤd}a -Ġ$|/^:s˙=ߜ{/_LF_T~.Q'<o>4y@_> `M&MM<۷q奕IDL'krOȸ פXHzk^8"︥TN1֚<Ǣ \PMV6j(;uD$VGgIWuCT%᣽Y"_"";H.Oԫ6[.kU#D!⌔BDDqIEeGD?YN8dC,"qȽA]4YA4k51Xa.*EDʡV^]DD #r(BEgVV>@_>\+w ȇrd;dO"4Ib[+=~ d_/k1ss|dxġIM?Ɩ-bK""vMR,b$8uR*2*ӽeWlV yRܺE\!"?ڵtɽ'k'ϻ~an}Z~~[ms#IzȚ>jdK6Ij|mTK&)ӫf1H^ ~I*}Vsx0MIK0IBO"rU^ #ǧq 18˹j];ZFo6lJ;j/ * zjw]L|?@)P"|@)P'Qt-so"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)PBɩJHР>_ΝAGLL>JoŚ5SƯYzkVpX˟z*nmNcqs#w /vkIM-5x {ƌ)LoC-44c={-ٳ'ak˖CaH_Dz*;B$&V8#"|"K9b=K]FII>l}&y٩tg̈ɱlYyH̺uW##}))e))e"RRb~&Cx-Mu))1-ZwY35הv5kB ͡.]\[uKDSֱ+&aڹod:c|uѡ[ ;tpW_p*6i tYv Z*O>Z }ޠŋ#k~ =)yJibbeRR{oqvzェ׬ ]$"/bO>0o,/ Ծ!"WO=~ΝA^vuɒV BEynӚ5X~}ժgg]߲žP hp@]zv=!go?>δWήq (m'?>Ed׮ I11wƍ?>[ oӴ'sG*} >_U4'r-+&"W^Yަ41-*쬇|&EEݻD曝O>^rCd„IMz$$Ŀ}=7jlзouוȵז^}坥x ]POê>|.'&VHTODN:UH\':WP`>vR*XΝ]bsnW^nZ*=ʖ/wÇFaÆ9_z~NN빹 w^i\o_U:tvkfKt]D$'*|~"urs-g*>99Q87P>P5|f]D4Mg܀v_|R4o< ++r[cL& \׊5o^o_P\GQYHxH0Qϧt.g;~M7֓t۶m?]vmllY>z!p,"~91~8HiiU0rLhߘZVfl_"\S6m ޷/HDrrׇ\yey',/".WU<֭;㇈g̙ƃ'HqbP/dex<4M43K~ !3NjEEf8OHѲBEdKxTT#D䦛DOOl-z5MŔ[U U0eeKLT5(_42|ߎx4$ZTd93VDu0)1cUڮۘٷ/hŊ;9Hi~&ވ_9kfl۶O>HO.ID)ZuY4t%=ڼٞq뭅u %msy kKWp|Q矇zQYDk%4,|lێ׫oۿVXX4(>cmڸ s }{'S1qmYOjY3Ţjs))eCx=-&;hPA6h P""LiS:СEmۺnuW^9i3ڴi#"=ܹs׮]{U?cBB:p\3f۷o6m'/))駟~:iO?x-ϝ;ou۶m{wFku/ʕ+4x~"HnnFڴiW_HUVӇ.|KJJŋ'$$|rŋ{ѱcLJ~w+ڶmv]wu-)))55u…򲲲{K{6,]o߾[ƍW\\\N3))? ,ٽ{wBBB`eѢEzJJJJII T(\N?~ѣO~ᇛouݺuOkhpݻweG} >h֭OkG 9pVZu7 ,7GFFN.4xe[l[Ç 8p{lرs]||׮]͚5{',X0riӦXBDBBB֭[nݺq'O\Ecbbf̘ѤI w=a„kf裄dȘ4iW_=gΜ)S5CTw}x㍟~39s,u-4kl֬Ysϋ/h<τ bccov.h n֭[oᆭ[|GIIoqʕk֬1 2dc={nܸ1==4y"bXÍ' <;==}ذaoݭ[ӧH߾}m6gΜZ6+"Ç3ftС6ۛLz*$$$>>+8kGKƎ[VV믏5[n?? /tq֬Y93f|_qʔ)6lXdITTd_`#)))66xܢEcǎn+ҧO۷lrUuӾ}{|7ܫwޑ"w8p`ƪM6իojEh"$k4iRˎ áiZHHHYYY~%"W]u՞={*+;w.Z7ިe6h>mذ%'',ٜ`l` f|ٳg}K,YbŀSN3fؽ{ȑ#;v?)Z5ZC]x,Y.kݺdȊ [z6mL&S-;J4c&x^xqcƌuݸ"cرcٓ0p @\@cjժ]H׮]˳g劎겲ן8r8wygBBB_kЩS:L2tVJҥKիWwxsܹ7tԩV_k׮6'JH"ܥK՚w4gϞ ,8zѣG'OOڦ}}ڵkٓw2,X?iٲek׮}:T}Fn 6N"2nܸS\rڴiׯ;U)))999-{饗q9viM2O>y>?_;vl ̙ӢEOh>F0?j c?|tttϞ=׺u 'ONLL;vljj믿~/#GL6mԨQVz7ZBZZ 6줅/rffwܱjժ>p_>y䧞zkx<vi%''/\~?~ߟy 7T|>]y-??_Dbb4]Nϓ OFlΜ9/ƍv;TWPPйslfl L-љ8ua)p8p`Ϟ=I.<{>^zM:p! |̙3&@)P"|@)PC_Ei>x#SdݻwD 寽ZDDTTT|Sdp*^zyP1(EJ>R(EJq-pHHH8Ӫ2|@#7pKڷorJz.lɁ|6_4~111iii-33sZ޽oX^\\p;#vѢEzJJJJIIYpan3<ӣG-[wѢEzhƏ_Ӗk׮-ZXѣ /[ի~G)//|s=g]ן}!C\zwnEtߵkWf͞x͛7O6I&]wʕ+5MJII6mZ-D^رY4MKKKs:3f̨>:t "v ~nݺM>]Dm۶9s#+++##c7pʘ2eJJJ| "K.ݱcǬYcǎ}X8dȐ!C{qt.hzgʺ[~Y~5M36ꪫSYY)"I#%M6kӦMk믿>b9Kf͚uѸ3cƌv)`ʔ)O?Xv_y>}o߾e˖˗/?vo#hG׮]E/8q͛7oz_xᅿof뺞ۢE cjZIIIdddidddEEX,M4 ĈdggWPѣG{,".k۶m999vϦȓO>?#]tl?|AAomۊȱc:vhX|TߠYf"RVV&"8xt:cǎ~ѡC^{xZ˗7m;xgE}w}w`ٳg~[&L0~'N9r񴢢;z.۷ODV_k׮6'2F;<("ХKիWwxr/_X[}GppDž k.cٲe7pðaDdȐ!\tib"##۶m;yow]].W*LYYW@㗟z8[ouڵ]v"2eʔ?Vոy͛7ϛ7ooFݣNmmܸqcƌ:uj322֯_zUWgСþ}\ޙzqM8cƌÇWo[lɓ/={\`A޽E+|۸q1c瞹so޼yU Ǐ333TLRXX/_~933;Xj?VDfϞ=jԨ9s~۷Y;S˗/+[vҥy~I-X,^ziFy磣{ٯ_֭[|zByÇ :w}Eљ[m_]Ïw0#|@)v.LPO0"|@)P"|@)>I hlj;Edt74'jMKKc)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P\6l`<(**7>P>|N+X>>ꫯ7tƄQ6m&@)P"|@)nE(+'.F8Ql۶\Q;wqGM}WDvi^Wnw~#Z奦͜{:n+rJ_}5쭷rtA4V\vNc`vs愔|PyffMjӱcVO; ɱc_ǿJaa3ʕo:qbPa&E/Z t6wN.h@cphc&LzEoBӦ.3ȴi۷׊m\bnѮW_kG駦uv#gpϛWYT׹;wΝ;799y%K̉AiiZX 77wƍyyy.f5o<99nȧ~ӽ{>}D"++^722SNڵ3Vmݺu˖-%%%vUV=zXje_~~%!׹_Z̟?W^۷o/,,lڴi޽CCC2h0Ko!mژuk}{xsODWT"Ҿ9͂Ϟ={.5-[_y%$''b̐K/5}>g}6bĈ>}_E"ٴڥi9xbݻwYb1L^wҥvr\&)//oǎƪ7fffDFFz<-[ddd\sͳ҆ l2{|.S}Go,j=|_20lnNh"";vέ?+cDToH֢~Zҭ&i9g/vv[7{V;= }wy`W\qʟo9^͚59rdxx_:pk?Zݻ֭[3339b,ܱcl7pE]r/"^7;;[D rDGGN:X";;{&M=zYkI V|@˖-SPP㏥aLJ~C+#m soQka}~ѣ/^|Y?>0t8M䌟W_;6)){1b&jiӦ{ٴiSeevW."q8"r?kXk;t "yyyd25uX~wnݺuO,^x/oVRѯu"ͦEFj\ΜN]D4IMD qݯz< > &DEiͦW\VVV\\\^^~ҙ?u/]ח/_~S:2"r$X#~СC՗{䚙[%'WvZ9xj! ޿Uy„mÆNܹv1Eڵ3kȮ]>j%Kn\]ws5ߤf~UJotAG.ҥ7tgdxy挻$''oذa{3jԨ޽{ڹgӦS7GjjjVt]7o^m* . 3fiw4B1P_jջロѺuo!!!5P!A7zLDCGgRC1&1KeIIEO?2/>rdB+:Ժ{wĴi ղeСg;88xԨQf;߭[NDCpW;HeedbGNG*|bpĉAu'X$lPСKN37yԨ7=B!!ZV7܋Ur_$'''''t:"b8֫s„ ,mxowXիWnf9oٲxɒ%62..CV.oW^ߚL&ccǎǏ.$22t~'QQQtMC =ztBBB~:rԭ)9o>w+NZDӢ-}yynֿkݻ7''/?=:hРDEEoXս{[L͛[WDV^o;z߾}+rԡ@HIIٲe(\sM/k2hh"]]ǟ:5V[d|ؠAJQsF"R~|8uaPbv#R(EJ9or7{^Iim۶ݬ\DBBBXŪ d>0̜9+**|>_XXXոWEFF 4:&@)P"|@)nE=\:h@J>R(EJ>R(EJ>R(EJ>R(EJY4|t4 |@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|@)P"|,u(PYIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/buildlist.png0000644000175000001440000015307512522231230027417 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIMET7 IDATxw|EgwoK/$%$BIB*HS*EMWA} /-EJ@B!@]ս1Inow9^vwfyy@  @^G@ R#Uu5 rh.___[oGEFE .5>4 V jq^ܝ /\ 8׿ʝӲÇF0@à|0+{ܴ_,XQJE6@bbA\k7!@2%,h4b夛i % XV0hPA G CP(QR"%%"4>BB3jϧcGCǎ nƦE'-Ko4L44=uݻɄ]&+b_}d8bJ0c۶fŒmPR+Ŗ>-ۿ߫J@tu!/8C@p| h4xPI*rR3GjFC PfjD!"?h0)^O? "ڷp6&F?yܰXV NcXJ4|ݺ+WdP#??iJ`i+WD_|SR"!||`؋,ĵk"IntPvaJ5͟_U_Z=Z(kE³T bǏc﯁}$'N8ޏ@<94 AzAp̥M#m[cYYR"5}ЩFbE,F#Ɯ(sM QY)`i|ܽK Aǎy#ϦSヅ@@==uuDEAE Xpl|F8QxJa1 V$9zSɾ}"?[#[+o@8|lJ~] %%JLl,.e y֬,Ƀ\Ѱ`/tfXd}ܺ5xxX3l ӂaev]X)g i0Lf%2Yt8 ǒN:Yv6vA<2F#uAauu@&{4L"~hhx聭(xsK ap.iJi ,/cjl,Lnǿo~ѢEsLM8E<TU q^<-|rĢ-njW/3jk $ 8oDZ0"IZϞ# %o ! \Pljk"Oe` tl`&|Se`V@yD"~IGOᳶo_G?Ѭ /( Q%%~zUh~" /[t_,NO njܚi6݋RE0~~&//3NU ACz=HLGMz>p̥]Qqg 5Tb@@2uKXZ*wO0Rai_3fLmH%;{Nm}j4Uhl``rr`Jz<(4hPHk̘`J ۷Kj0@ jn~ܸN c6T,bĉJJKw:b,*͸q&|}Mc6R2 V]] mHH9@¹ #AMMMLLLAAA@| p)@ ¥ DX Ǝ@ @ x+U5@.@ \ʿrF׬^[nJrԨQH<ؽ{w^^o:mڴפrjd2)~OgΜCӼ:QKux)RyΝEoٲ%))cǎ۳g#O8?~z-o}I&Y_PPPiӦŋ9rdƍH|>77rS0 ꫯz]cy&N駟ƾ;'N@9 o߾}mtAII I/5thQh H$*-AHǎsrrD"`ذa'O~ˏ=8S*EQnZ o#׮]S*Ls;##caaa߻w3?/~]v5:_gΜ5jT7ol}J͛7'MԡC8ߛ% NJJСCgϞ]WWh4Po7nX~=|rb\|yΜ9qqqaaa j;vGEE-]l,bI{Uڒ,Ef_/~fcmqf xxxL>ޛ3gN׮]/_;pI؊_,YW^V^})cRP(C ̜0a ]Fxb@nz܂\,X`J[^d[+m6\jڶml>ulm۶9ĉD-ù]*uhfy*++[S,Y믿߿}6?xxxtO:6DvE>@d=;$Yr㗪Q5kRl,˹(i˓F9wTuҥKOV{ubIKUEf/ EEy{{TV!Å RRR9Qf[^T,b8j2T!+N:[ڵk=g9ykZTWW4-Jcbbhє/G?`wL4_4huٳ ~'NΝ5k<տs;vm߿#G%K:t7Ǐ?^!T_|oZݻ#G]~=7  _ܿ6fΜy)ZrJ7rb*y"?Q;wpf)IէO_u߾}L:ܽ{7###<hzYp$5233Νf>d2 8SOL&&w޽7oޜ?믿~.KեK{ӧOSSSCCC_zAmڴnk֬0`СC;tEggĉ[`A޽)\,VUÕEf/~x㍄(?񏄄5v3f\r[nm%B޽ `ds+1E GQD ,:h6`EEE۶m)l64  t=<j^g?򤧧]b.2s̊ .B%eJ9s իW[n7֭[ׯ_ߴiӄ ;!44M/k׮Ep:(T"iܮz#G 8FՃ@<`vEJ# pp:S[@ 1@ ¥@ @ \ j| p)@ ¥@ @ \ j| p)@ ¥@ @ \ j| p)@ ¥@ @ \ j| p)@ ¥@ @ \˗+JRٶm>}[555nXݻw5:{5ꉪwyg}w %11̙3?;Ch W֭R|k2J?/OU>˝iӦp^v1[8C.SL̜5kMVݻw> 5k5UW_'&&>vO 7`ӦM/>rƍEDDrUW%rFܹ]v}}'d!$''*>+WDEE= C<$dBp+JJJH|A8qUrXga6w޽x'ʜ<#..p-J͛7'MԡC8̙3Fj߾}||͛39|pRRRw>{캺:.E7n_^|5}]޽.]j6,`Kŋ7ދYv-s̉ 4h޽{34 }Q޽Ó222qƮ]vuժU,UO ߿{9=Í7DFF5e9BK5&v.-`Ohh/"oe{OTkEA1 6~ǎM5o;w( rUyRw!--mҥ;w~e[b0>>~׮]2/cbbڡSn6܁%U_UB>-zzTUU1;S pnvwX\`ɓW\YRR8ٳSN:thJJʍ7'Mv… g͚jժcǎi4OOOSJ~Ȑ!gX޺uk޽˗/t'|,KxܹSNhئM)SWXSTT2;wn~~~JJJdddqq'&N[B@QQl^~}qqڵkCBB()泲RRRO>tǏ/Ykȑaffڵk_}=zl۶qoS,м! ,UdɒW^y~XzS"Ȯ}ʕҥKfb4Bppp~~bׯZfJoo9slڴiҤIo` ~l^,5Ϳ{³zY̆;j6}mذ!%%%66v/^=z4R9?>nFcX._vڶmv f̘G֮]}v Òj-[`-[m$S0m۶@ [S__m6??#G8qӰX$d]B$WX! 4i$8K2 px٬;vNE~FmBBB VRR,UO;wKKK$%%]|9==Byg>|wyףG&)xhM] [`Wx~` T( LJ 속~(JCBBzh-h m۶mڽϮ(|饗4ͦMOtқ7om|e[b0...33>wޓ'O{ʉؕ U*sJ"Ƌ,ZLYZee%MӍ j5󻶶0"tDbjD’'IT*,Z6mu?!m_\Vaefѹsٲe;w T [5~V嗡@ I9h.޵CX$=zw;^rYJ%rplk*͛7N:AӴ^gܹsL}G2G#޺u#??bT󱱱gΜa}Puxv[\͚ {amX~UaX.].]jׯ_^N:;dɒ)S$9l0@QQQQQ~-11weFXN%""ȑ#C W(: Y`P(Λ7oѢECV^ 0l_|K.^.!!!11155ۑ%%%gϞݶmo ŸvZFF] GhVgϞ1co=lذsm߾29sfJJ{uV I, }ꫯ׹sg84+|222WVV2hJkvUUNTWWO$6(G̦E^J{=Z|\ʒb6vRe r̙K.1bDLLի[֧OLSu4>wu͟?_(v҅ҥѣG}]Fg1YN%55쥗^jhh={+xKqqqzzEN Y歷0`T*2eBnرcڵUUUaaawDB@LL̠ARSS1 [`iӸf5aÆO?믿 Yf O!xd8a„۷oڵk3g4Sc\^裏Ѽء-1@z葚Xb$A~m4 78~8(++cW#fR_{f%7Lp SO={nn{N/ؽ`Uĉܹ`0zFc3lذ~ɓIIIV]]  !!!LWY,^oEx4ݷoyO! HMM5-Z1ҕ0Kyٝ$,8[A X}vFFF~RiffZ7nSbRRR=-PCd~~Ν;-Ktt7||r @ \Lhh_~vnvA aj@?@ ¥8{F8pkcyRKYzunݚnݬzW ]oٴZm[]L&S=ٱ+ <> l"<<|n.+:P)?:Qp7rYԩSJ.~zR˕7ug pbY)ꫯy-((شiŋ9qF.uz'G4͆aΝڵ۷oka^W.'zʬY?Sȧ~*͛ pܹ۷o߾};:55pBl\(m?[N0aƍc_#yyy7n2eʿ'>amZoÝ$_xnݺuؑc~Ϟ=\vxzqDnl޽{7\ 'N}=zTWW˿{}}}:zÇ?޺^`E֭[ok̾O&5>4 :qMR*̊wQQQK.53gΌ5}NYSVR|(^G.6LVe|9s w^k1Fcǎccc###Ҩt/"{>|8))Cݻw={v]]’`0|G{OJJy y( SUU5bĈF322~חJ͛7'MԡC88rƍcbb"##Қ65<)S|'O?4 `ƌYw`Yuėy8sҭrNNAs M;?B\jp9fEfWaaa֫;^vMTrel,g _{޽{/Y4h…vu38·T*䓄~gϞ:uСCSRRnܸ?i$ޒddɒW^y~XzS"Ν;9sfȐ!\(..^bOQQѻϤrJDDҥYf1طo߆ RRRbcc7o|ѣG;Xuڵ Κ5kժU555ǎh4+=ܹsSRR"##O81qDvͳd舢Μ9Ӿ}{oooYYY)))ӧO:tǗ,YŬ^lK ,aӽ{z]sŢhL&Ӆ ~g4_~e!JYW(C ̜0aJ+ckzuV>}Νlnݺm۶Ļ3Ž{[+Am7r'N>}fڵQQQ۷o0,99YVoٲ+gPP( FZCΟ?Qg}g p2~(JCBBzhc׮]#FXx1[n7aֽ ˖-bK*%ٳgvogEEFF6:sθ4@RR˗ҡÄ `S@@жmfAӇGq [S͛_x:a霜X l&;w 1bʕ5ͫoF'N={|F-[S׳EXXkf}D(꫏30fvUVV(:w jTBB׍F#8=Ck\0 7nLLL?zuvF:X,j`` )#4{/@DDl~7sssJ:dO'yz@*TTUUuзgu1Cwsk }\t 󋈈+akx ;h^{xb<|7J7 /VUU%$$S[[k<ٳ322VZ/|]dɏ?j*ƣم޽{O<S)J?X2mz;ZV% 'ò^.$IZY[XSxV}sˎ8}hNNM}p,4M_~KcǎbxС[n~ĉ;wzÇ_uƕa\h8^Ld=;fZ;*ʉ  f`z=5͹s0K..]jׯs/MW^mi͚5KT߸谥۷^?z(s}7㦚gɐ :u*))it066̙3̟N}ܡE`WT*-O)..޻wond L/;:::22rɒ%jzرp38%/""ȑ#C W(̀-,Y2e$ (*****?.ӧW_}o߾Ν;Td"lx"BX / Xt) gΜt#FĬ^;V222WVVr/~D__Ǐ߽{״Öj>!!!11155ۑ%%%gϞ^YͳdOQ𙙙EYٳgϘ16lXVVֹsohCTUUt:h~pEHX_3gLIIY~}Ϟ=n*R.O9sҥKWZűK}s[&ۗ9#^vxi&MԳgOxD(ٳ'''>L&ӭ[nh; ,SSS]'MrdsZ).9=/ҠA6md}ݻ͛Ϝ9t[;vƌ+W=z֭[ϐE3gF֬Y3`CvЁĉ͛`޽{SfѣGjj~OS%U.]ݻN>=;;>c:Eꐇw1}_~yϞ=IIIv5ϒ!?EA`H:y 69sf̙k֬qM׻C P??? x]v͝;{ݺuk45,&ϗ9#^vP(#ݺug93͛{!C|-ׯ/**3v xW>S\ 7YR^^Teǣ6FSNzvRAJJJRRRYYX>ܾ};##_~R433SVhq')G[n]~}ӦM&L@-5>lb2}#_:>xHCd~~Ν;-Ktt7|cIի92p~i}@.@ aGiW[@ @ ¥81|m{.aݖfz¯^[nJݔ;52dڴi)))GL&R 8mٸI-X (vcek@08磥Sv,p6 6mڴx#GlܸIðmֹ؆ '|r;v\tٳ:uJII۷/Ҭ;SRRB /TdBĉ'Zjl:O2|/7o{ls7nڵk׮]WZeݣlYtk׮F111vuhmC->ܹF=,n6,䓄+V)**zw S]r%""￿tҬYTk׮}W{m۶Bf߳gN:uС)))7nHKK4iom^%K+?իO:D\4Ϣ^[\vm…fZjUMMͱc4ݪ,**2ׯ/..^vmHH̙3Y̢wޝ]enR۰aCJJJll͛/^8zhx*888??b4]q6XNqp'O^reII kW,;w.<<ԩSѦM)S؍ .?gq=ͻ(m G``7Z.ap+@ 3ܹ3...-- ttgfeeر7P߶mȑ#O8qil>,3qϟ?x zpRiHHHϞ=TÇwqqq=z`nvڨ۷cVl`ǽ BP0yvڢl23hܶm[HHȰaJJJaVYt t9rL&+,,=]lMjy׮]#F{wzOs@жmf6XNqp„ 3fDFFrIլz$WX! 4iҤt`gͳXLGu6 G]^|:ĉ6l̎r3//O,[keGQXXcv*++oqĈG2Rhtq???f'FΝ;$R˗/[lΜ93^YPt:STQ6ÃMʕ+8lٲXPf +8EQ:%d67Lk׮]nH4MWTTk׎B5Ţyv"::z˖-;viii_G}/\.W̟jZ"uBBQYYItXhɓ:nOOO$%Kr@xÇ[' vzƽX4ϢFUHcǎ;vl}}7|ݛ6 ԋa|QQdΝ;˖-ܹsXXB(%CUkY.$P$$Je H o6/蹃?up4mgΝ)8[.k4FcccϜ9yԩXYW=z9bwRMziqk4sٽaQQQ̧*&IGw}[ڰjͳJ^lf͚T*+**Hr-fQ~~>,"7ݻӇ'Odz5Z0K..]jׯR'+=rMƢrss;uDQ<&!Ŗ3Q,Kx8ڸ^bO?tCCׯ_%mDDđ#G P(ٳg̘o6,++ܹs۷oUBBBbbbjj۷###KJJΞ=m6v0`_|1x`ҥK9.6s̔s֭{4/Ydʔ)$I6 PTTTTT#jͳiii+++/~KLL=~ݻwY [hѵk222/YŽ{?sҥKWZչsE86l؎;^_u+W655쥗^jhh={+6lO됐5kp1cǎkצWUU͟?n5kּ[ JSLQ(%%%vSM0ۻvھ}̙3f33*ٷo߽{[nBK.\FX#jvRo=RSS?+VL>=99gץKG&<<>BLL̠ARSS1 [`i8YǛL&8ڽ{73 ͒Z8q;w,X`0FmoqqQVVƻD$tz EM:Ց"?XXLԑ6 nnYܹsҼ(4ݷoyȘ7dť~-R# nEMMMLLLAAA@@<pڜ& =oׯT*TƍCv@ C ˣI;wX,| n@p' x\q1P@ }@@ .5>@@ RP@ KA@ .5>@@ RP@ KA@ .5>@@ RP@ KA@ .5>@@ RP@ KA@ .5>@@ Rjݻwkt|M{Fbd2)~*riӦ8~f [DRT*gΜw^EC')0|es8%s;tE=tu)((qEଌvٮ]}6c6=ar*p_W_w}E\iM嚪ܹsadթ]ta]iQnk7.]l۶mOei|ݻw;^ 8qkT{=$d~VMKqqqqqq~ ЧO>r:qpE>y?Ô@:yqΰKNNNUUՈ##ݸqc˭S}w{Ztlܹ50<|pRRRw>{캺:vw_~c^qllldd?F6n̙֨3Fj߾}||͛kY `裏z_|yΜ9qqqaaa ڻwѬ6׉UyT{5 .(CiiiK.ܹQögѼ-/^䓄hU_~rڵ Κ5kժU555ǎh4OFw~}mذ!%%%66v/^=z4 8qT[`Ws{hK/i4M6M>=..nҥ7o޴%--$I$yyyz 1O siZ5:כLk׮[i銊v9xhRfʕXlYllP(\fMMM oXP(lUv\m?1 /jp2!YC =<wޓ'Ofãs΅e:wfq"Id~{zz$VSJ/>|unn Bii-brtƢ @`KNJ7E*eZJEׁ?'q cla,nn#G~7ѣGt{vGD-.N7ږ#Z4>:u۲i.-Yfرiн{>}Pux$uҥKOV{u8aXTTTnnK/PTQQQ${Q\\h"6n: {hgj4sEGG[...n6ۦصaKNV<{q g^͛!!!N:ϛ^u߇iz*(."73E5E8rȐ!C 3Dm*NgXwQ_|o{w߮lqqq?߿={OX5s̥K1"&&f/R3gLIIY~}Ϟ=n*SK,2e IÆ h#!!!11155ۑ%%%gϞݶma /K›6対j߾};w)mUO*^vmÉؽ [h~СիW+a222WVV2-x(6 ?;UܡCe˖m~:z]infc6/^8a„xǰa~'O6LZVVK/544̞={ŊYǏeee.]=zwh4}& N}ꩧv`ĉܹ`0zh/&Lp]vm߾}̙fѷo߽{[nBK.U6;vXvmzzzUUUXX5kּ[ JSLQ(%%% ǎ[PPrڗ^z飏>b?Ţ :*i_ˮm8UqqqzzE8vG~+OU(,2rO?tܹ;ӭו&;lΜ9c4ObE6Xuu5z]HHHyyyK3JMM5Wzlio߾{嗑1!i/^\ZZ"U ?RSS Ö-[*xSSSSPPi-:lJJJRRRYY?i!n߾ѯ_?TVǍ@ ܓ{>|رcH_~%ǡG$wiXG x21L{ر#Ra\Xw_v,@xpa\6n܈@x, @@ OEdQېy~oߐ`J&fkfse"ZHuASHr2<h]/ɐ @8@  X 4s>>H6B7+X¹xLN].&j۰4lQӢHsA8 "etGP"(-ʳq[ #N@ @HH2e_ Aie " XT oڣh ;A,PT{f; JҦWS:n׮]<0¿^}@s溿p g wKw)C$-H=ܑ٠S(8s4MkO?n.fG+)t rStPH S1 Y:$G8se̒Im#[WX&ʣ, ո[ɨANO1pAxE.q*< @<<}׏׍G D @<&X˚=5T?4rT|##!-##HsA=Go׽U IJ/[±@ Z9OT]5 !N5>ܯNuR*a@ .5>@VviHKkS+ȗ-{'POW.]?>qj4e0@bbAhF? A喈ðau2;v^.z9u֮80nGzFEgx֗_zJ pnp7!ڻ(L,XQ~= YhF=|iً/tpAww'NTmЀ"79߽KnE5| h//Kt.9^$]_d)iCv6&[ !D XV<+Kn6;\$IcPg;w #.\lwж-(/'kv,Vnb99B 3>2 nΞ?$wC!]M^^8yc~c\nLA|X"٫j>\QAqIE4lvI( 7q:6Vwxr-aXQW^df*>hQU۶Fؖjqb0`gķp`E1њ 9~#bbt:sF֧gubɓUUǎ٠Vyy'/w>EEo-#8ҺCN ٜ9ڭ[ْɓjӆ*-VU 7/;uJR M"eJJ~]T^NLQIrOnٲ`魷!??Ӓ%O?/+#njee@t\WGTU 2 79۷޹# { <"s\"&NTow现4Rdy9ٱ?H~~& M\J_z^:|ˑ^w {GM:mE<2,HNG@~>}oo"32oSO=P; [CִmkLEaB!]Z*g2RbsgØ1^̒!KqCgѺ.l2:!w73Tq[Ӳ$IWW ] 99B!MX0#48@h1,ئ ё$ 8(+#qtkQi1%C1=#<"0{@vukT#Lſ0Xl8iCMC C;ul8pK"L~/O(*dYr믽^LXy9V;І5f3xQ  4 45իb S:~Efɐ%bҡiMrr$= tf@\H?/519fq9L:qBޯi'OV}[UUAٳDG $`%1cGc( pAR_( =<,`̩>~\%+2w0 H$tC0dR!N1Qv9S޽KH҂i"M#Ea'N1 ,\XTR n]+ 2(fZ-|*?-UU„OKm-u<Ǵך V$ @1 hF/Z|PX(\(tεc^K9#vqP(2 0f5_i{40LOݷ*`.h8g6@"ko_ͣ  rŌEݼ)ܿ뫯L&LyVM#v:t.agahZ!A~уKnt&Mwh8@&'2YX+k0N *kR!I\ $I \nِx݊ Eb:hJN߻'f?Vl h_V01f hd*)Y`oޔVsES8ve~'7=١Avq7&li-`+Cwӈ^EΥƜ@ӕz=/撶CCe4vZ,@!c@ qqLM.]?8Qtv#65l͝;Bmo?/1PcR!\`_%H,|Ђ$I*+.nȱmHzS371+//sp0um!AP0Aݭb˗;{RQAʐ~z:tUNi|/@]`QeDIΞΝXLsUjhh\^85/8K,b8t͛Sڵ3p_t[GhP*)u:Y)]tIƍ帱S:1i7n-["" ÆqYϖpS}r,Ϲp[Z80nkgg{=1^ޅ!Cmr믽Hbˊvօ!kѵ{>-{Ś].HmfЉ={jʵ6à|*1S((8!! O7FqntGa-<{>brCvvRݸ!#ʒge[$i j5qtN_.n\nwԂcm  #.\l]{7Ztcۦ$'ǣT(aaPwY}|Y&gMf|Yo |&(f0tKK5HT hKu5UT${Uͧ+* .H͎!I1q:6Vwxr-!!>@8RTܿ/8|sѢmR`FT_S#$'Μ飅cW|cGCǎ O?]GyQ䧟䱱:7|g30caEDn|rrAnjΖL%U6TiJdx7|٩S2P(k`eRRr2<8eJ*|$_,3iɒC~_VFSdhTU len%sPŷosG@x~EfAVߤuuXL+Ԙ1~~jhrEl4b4pՁ*1~H}{w3RִDtxٳ{W{yY*ŝ]H,AA՛7ݹ##<=́TEY^NvhM~#[y^\]Xb|&ζ"@^iJEdXuiؽ_.-GYb1ݹa̘Zjb22<8i/b74ఇl3IՄBaf{tbXyɑ#pt1ݖ]!?ZwŘMFG>>dVǏ{TOUU% IZpWsr푕%N u!\`4b[R'wY^w!!?H.7mnzI"}E~m[#t |]n4; *,([&.mPS`Gԩ*l8pK"L~/R5-kDWBHjUmݚ!сR__3lƎ`;7?_׉~4L-&F?y*/OvQ4~U}=jU`jf/()`ǎ1( pAR_( =<,`̩>~\%+2;i:T*y+:wNZY)-gWmKi4xsBlja0JXQAn_\,R JAZyiCC)o5'IF޽5b1cVRfFchZ|t5^4Rkgώdص|3·Fa8tk~{zE8ϦgO,Lfi:>!A  AìQ>>fnxq$4Mr%M#ݻ8}gz}pb;l~9H|];͛19dZu@@CE  -ՆP4>DEjI// U-ѴFCFE03٣ݺL&Э޽JjqLf/N8d2^/v׊a4':<=UUkDBᓒ $I \nِxq/[ȉ Ţ|Y~L0ϚU`bn"<K,@pi!!t@"M"]Y){Rق[lƘ' Tvq&S+~ ?;K]#3`fl6lJe8GzI_<=N7VҊcN^ FsIۡCi|9; ;n-v ;t99 ],uJd}::-@<8 w'AA&_mo?/1Pcc8Rҿ D"4ZTT1a[7/>i0xǁ/=0nbSu~>Le1fC6>JJݹ^*@m{yaÅX4)7(Hkz㯿JMٿuEaP%Z( ;{V8wNcb1eQ hl p<9%C1^d[ܼ)jq//s^g>J%Z-~q=+cp {0틇6FySg(kgd^LP, t‡T./TR$Itٳc_3n\0__Ә15pL;q:$R!|g;ko Ypz%"BjT"O3dH=^y:.N&.1ߺ%,-L&TXZ7i1cjCB(sjGxp08ͱ 1 ӦMmr9^xPiРGsyDbyŚ6m $'Oz0ÚiTF8.̘1@@o8n4bwy h??>T+e˸\!p lG=3f+һP\?dHTRSC|wYIQ /]?>hF=|iً/th+5A{yYu'[HRR*ݻMlJ΢^TNbNy;'U Kx7 !$&68 {l8_z$[ o~OQQz>-\@k|MЀ"7맱ҏ[E'55Ba~VŢu>brCvvRY,pAy߭[BzZ6M 99B渡]M^^8yc~G,# j5o¿R%ʒ͎H&gMWFu ؿw('"}LXUop9bQZD|X"٫j>\QAqL+ULÇ=-jcVK?%R9(M\?`s[>Żwi[! \F~ 0y*.Ng4bбBaãxB1}QIIuݓ'=A[۹A&dԵ~I~IsX,1pXWҺCN ٜ9ڭ[ْɓ9&H,AA՛7ݹ##<=́TEY^Nvh `ϒFSd*Pw^XWf40„BTeeVtΆ1cjr^Rǫ$gkF͞2 iɒ~_VFS˔ER w~]T 7N`z<# ap0Sgjb22<8i^.[ zBYe˂̬Z]<2,HW.G"Ces>e{%&֟95<ѹaڴNAqKi://23EEbœTo7࣏fW44#|3I\Y1H, 6Ċ2j܍dt4CvcamU rFVVMSpl~*IՂCm 0#܎qإMjTGԩ6m&O/ 4M]]* i{wɐ TL$*(+#qpYQYd!EtWL&lT"ͳdE8x]d®]}cB4OO=wNj!aaFfPcXn-7[d=R>-Koz("0c``S+Ν$]P ˓I$ť"NLnjvX[; h|ЗP/kظrGoI( S ]fR`+%F@I",V TD@O Dh͞6H{@&$>M9a@"uԶ_t‡T0B߫N!Iz:SOim23B5cgU:LdYpb֯DܹB!m6c&͞h}APL]$th%Øɪ<ف^pZ5`$untߒ!ʐzY 4͞]}/|JJD55ƌ oGx&&6 CUUAٳac-7[d[Pv…UJ%\" (@Efa0]fTa`~nyWUsr"8!?q sTsX wgV rsCv탁^Pmɮ/7ՆɄ}ǍGgҮaz´b$ϖ7*Wi\60DQX@ъ=ŋ*aB@ا:ޑ 7mw**Z-N4lXitM>>f3ySW_yMnO2͛T|[](anwDb \44CIHtLm)*2Rx5b1e^ZnQ%  c<}O4wRQbE"b1 01N,x;-İ!h8g6(HՄ^$ݫÀ0 a;ĥKŋhjU1V030At4ѐQQ ?L=tzl`I$++:~@ Q*[h8@&712YR ƍGzv`P*]|nhj2-*6'4=թ\U%vMTZ*$I::ڡg 80zz>xa6i:\<<,uu 1Ç:uIz [-*2ԡٌ13 )l`\%Ka &-Y`oޔVs16҆FCXjl-"G@#1L*Ay9)[6m@ъcN^ Fsٌ1VaM%f3jlv Q*[ b {-.dq ^^` B0-|ycxdf*htwpA>^Q̸;|Ö,e2apZPHRh4[]04`++.08bW강71b&ITY)wqQf16R_@XU}=^,> TV L8ĚTV |ꩆlIJEbQN4Ǜz˧덿*6g~O ԅ KryS'"kgdZp)/l:Vf R EagH7SUIDATIzL,]F߻GD">1  i2kj@\\zv&ji~~&  O̘ٳR\"%04X'_(o\$Cg{z^# #5M?Q(I:~1,9s!mVt/Ձ-]Y 9sFR#?_1$ ?Sg9Gn y-rTjw1Ea |Y, ٮ,Dc{iӀ$&={#Pݳǘ#;n[ QuqiM?uY$':u+q@bb}~Ln]jk  "-ZZ!!TӉ 4)TY)X""ZRכѵpf([t_,NO |{( /C:xu`A {ZI(fؼe:UBeolh00o^HD?tO?33?Itm-`6ve fuo.#US K*+|Vc<پ}GxՃmװm\\(#v`*-rKPU^NiCa}1X,ʉxZ*1 !u9~p@.7. 3L6kƍ5Qk3vРVUweF@t^Q(kڴ.\BB]!EaIIN||$ C^fpD~xr@ +)bP*ɓUn(T.oBCii08%0qoos|6)=EE!XZ)UQ\d꫕d\@ .|h*#ZC kܰԽ{;aх {opD5ݹ ݛ~Ѐϟ_e#|OQ޺hS܋ 8jbذD_]VFR&[VƎOeD*ڵuKݺBl601~FbbC~' 7zqa7 ]r&ưq?Җ ha6E >D=ϘQ|wa-&z?(DΏ>.HZܹQ撒ի=RS] wS\nz-r,aaFu{;/0x0>rrȸ8oa>[^Μ飅siۥcGCǎ Abb}R_Ҕ]ΝId2jUS#$'åW 曖6>\+T23 \PĉXݥK={|[%(T m1 ՄVK[Fɣ[ǀ9CŷosGf2ENTLf^;=hgezuJE.* gkwҌ р_i=HΝ c2j5e_Yn4Ii,y اcZoBm vK0YRRr2<ڷϻ@bTjYSqe!/ ?b6a:|ث\^b1=o^UHD0HƌlJ11NNTBa_Me˂-7Rb 2M޼a]ie6ϜN0mZ ;<Ĩ32oSO=صy h݁Gi%7i].J%5fL-nB!HUTdǎ? i`YhhrEl4b4=zhhmzy~}{_U f? @QXfHPV5,Kvǝ;B+.eg{0R>-Ko%CB(\n 3vqUPHw^%M&5W_)11:pV"H\ X,mg6׆"x4A :w6p_ yXZ'X Œpl__SX14}qa/~jהyy ed4:~l~*IՂCHDBCaa6m(xh{fs$I^L"\(.-믽^LXy98iqqӧ=:w~Zp08dc)шmI5 rnn ]v103$iծ빞L͙S}<+K7( 9 JJ׭ rE\QA9:,0;Z(fL&fhi>/ЭD`i+WD_|SR"!||Ia88vh`ٺݚ''N sTkncb'dx1yr|?g8 G-T`7SOi7iTŽJ5Ij_s2ٌ?.wVؗpℼ_?iz|ժ B!mח70 H$tCÃ=l $)^O? "ڶ#Fm-q0i[7]zoIr\] {]KCB%v:JE8ų۶56;M`)׹sJXl=m[JYLŰ;.6sWɄvҸq}ha6(kx]8`QwFc2'4>JGv%'OzF ֛1蘘}9>^[P ), V3nXv ']a}1 c}j` XX( uKx_eh}T!V%ѠA@ ge1G**Z-N4l>9zSI=Y͛BqP\–b>bbXLF_o0зi|8lg9pqJxC^o]:u;e^M7%mJIгM&6aH<&z$^40]ω<jqٌ1CM,0 b]|n5:n2a {xXXN *kR!I\ߒ5"Ni }AhqZE? a~,+Kk^ /_T%ot?C7,)@&3R_7/@oou: Xxł _𬧧xyBZ.7wls,P HLl,.e y֬GN&t{A5Tw Ѱ[^HOmhk1Z#Dk1MDb(FE l˃/aM7MFg#G?ةbxdf*htoKlretU^zumEv󦰤Dؾ1k<=Gz:9wnB8ͯ'N6¹~ n6˃p aō;wf3 23~bQc1`&Nl|kTj9(.ɬ,ԩ*ڴ1޸!:^b6cF.a ZJ%h*k{>(V48P$dǽƽJ$i?{VX^V2x; =zhBШ iTT4?x^E7={Vj6+Wĵ-n8QSCtȶvMz86fq ?-7n2kfp 2*J?3(J-=+;'1k2ƍ^LK+v{t͛B8/];\ng6— @m-fֈ7o ZܫԺU<3LL>X7~Ur. jsts&jװ | Y#wU>>&FP”Hh',U觟n'yf= vܷo| s/E=ǭ%o?hݺRV"$j:X.*+[0 ̛W4 r`zлnXVFJ$BKH^d[;iLn-Ӧ`/ $7nn$L?xubpua/W^\Yu`&Ģaa^,&jװKXUR"'ϫW\:aSp&$j|8PcZZS2!,E GӡW+\H4@ 4>^voFI !>ⰋvK\==[ ̶ӧbbt.qMk)%%ӧ=+qႄقmIȏlG=3f#_~]X(a_.F#'HLlhojIp`2a`N==-] kvSG4%7m-+V_eܸ:|n<*1UǍB@-QQNZ^}W/m!YŒeVW4O_ XV<+Kn6?>B8 JE>--~@tl {;5X@]qdf?@ $ICK-)$ c Wp4oѱcGCE`ÆǪӯm[#jqb0`gđJA l>>8!/*iC!{ r:=:|*@f}ÞU=yyӧe*!YbcÇideMZWŴRISgk6mRaU?p#,ӏ5_;;˖իU*bxuQT(>[۽TeeVtΆ1cj زů 7NNS LK!a7}8zG[ D\CSB<=-آxqù:l"Ov,aOB. Gv0T*w!4>%4Tj9(.ɬ,ԩVСa^ڢ1a[7/nt 3ۡL4hpc6Hbxdf*ht粩76m7nΟXh;R2a7AA;c; kgsnNE@ڳgewzޚwn b, P"S7CGl thĝ;B6tHy/^J%EN=+e5+K]MV{y{>L6k l݋]B[z tclgJfp劸0o$W߯hNlIGkj@\k gBXOc!<Wݻ$@;ð .Y.ZViO+KR뱴%wMr ,EAATA`ؙ}rG>/_3s=s9{Ś*b1ӧDtNdl-=;Xٻw:^^&5uq]DDQ\xlE_9TuFT&!qz^)KQe谪*"~l- iSCMUW=RjC0#[å}rnÇ݄B;*yx^xS|Zo_OAp wt^RնR'U 0rͼvy+}!3S\ddRiOEvH(dL[ȵnhYY ңG#]mnĤIƳ-VE.qtI~t(7OTTɓ qӦQm^~9o m(=AaP^[mS<E*es-)Ij00.]t̘I}z, qE~ToݻXJJK}s}9jWe Cĸ1LٝWgNq~ ;ƺƺkyJޱ5bDܺ%))FEaEs<F͖c<V\ R^0D鬓22nFヱyJϪXdbQn(::E֛'O*w4Krkj7jy``碎zu.1j``6lh€#j]]A٭R @ 53,\X3Lja(08vlc^0Ý#4P,@N![j>ZҿV6C5O&>!`/&m̀S( !@-|nP$& jdm<3f8e;=]ti#2o^3{K ?\tkV7aegB<21BlؙTEj' x#QG1sfUxD1z:{xR(,͛juI+8}lؓCٱãkG|_KC2z}>ꮠ }P>3S5&M CREgrsE (q P&c]5(Cg?'N( }{3:ds.;wzTw߽MYZ-*ٳe . 4FET ST$ع3%Eoo iiwUť GEpo_ME7oJ32-Z^|1:nH$13S! ߻'fYRLRQr VoU- ?f?7ЩSXE^lbAg)"Z7/O8rd4H^?@A񜽵T培{ }|Lz Ŗ--,L+99{D'Tu%'\Qj 7͛oLJLLFxwۤ7II2p옫D ,㏲jQ)nn 7ZuVQj>tܸ!ݺգsZ&c00>qBg{NH,fssEf(&==]`sxZ*y|ѣJir%%/ILef O<'$؏AAzn@jn0a "R"zyێӪ!<>7V57:',L7vlޟ*u@6UJ5ib8sƅ ;upleooS͞V^ML~WjTzyy΍j-]ڨWNNR~GkA8ujDšL~б+K1@.=t)%"RK A\dMDܯwCC:au-""- C%GӦǏ+t:BDd21Zуi&Wm6Z[GYejt^"aa:77sa03Se97)*-,In%tLF::h{R%"6ݺ%qxڸ"2dr%8Xfݸ!MKO_|89Yz)y\\N, CDn&Y,~WJ"&_odTe=٨I*eEZ +K$GYG6NRY'Z y΍j{ֺ_ 1*u:7*wU'=KRi~+쭽x(@![έ0 u=vunп8vqL[P LN)22G(_zoM^+m!23/:h-3ߞ: ˖}~l0 5nlHI^(7f a+4 g]t:F&c_vR])3r8<\߷o*w8|M(d}wO<{_VS%`@QZ,[Z[g8%>^otupw+TZBCu׮֭3޾/q@RZ*ص# X񁅪8 kf52egV51 z٠w>R +$(죜<23sew[<<8Tun8@(ȢsN' ܱxбױԸZ`SgQddȑF~~>}1'0wӝӺY3C^(9Y*=z# z=SR"*N-k76^$?~7N: /5kf0۷%iiG0l +f?(W{p!hpBTTQ$b[ԏ_ᘞ=KF(6)*OZZʱ+.=G xaD4MXXX||?'&WrsE9-Z[f3͙/￟U#¹Pj{by``⢎zuٰ[ uyܥKFfGXb)!ne^}&M򸗲J˲^?7%%/>R*Xltjuo`XhQn6C+ >.S[ yQ1).P{{Q*ccL?K.ux?7ŝtn`fw}k7?R> wڦD^OqW#@Q1IDAj\e!!7FqtW͛_'ĉ۴9ӪՅBDG,f*/wђ%n}WO|v>}bz>"zFD:}Gvc&e˦ZMKkӦMJf0m/W ]z7juu`Y_ᑥyy-^zG"u6QRxz_ ,s.LMge>xpLppCӝH&[YUzTL،P͛5f?Uב##XO>=y򙒒CF۳je||?KNnuD#6ΠxFLu >S!'b26Prj?ch-5s7˖׼x۷O⒦O_bSZYPP%ޒr+_]\oo4}|Ovm&իg̳3VΙã_޹x͚_&bqԨ6 FF܏IIAbIuN Cr%6\ԩ/;|Q2+/;[œrT"uT+) +c.!nʿi"^,0 ܊a4k׾=yD?H ]յ+rr_DYx~#7"/N;+oq5URju5g[D&?oo7߹xР]ׯS&mڜ!{.Z`:s& ~_r+J ٨*8zulsrZLM(4smyy Z%EIADVD4drI/S^hl-_hRF" \`xڮe\/"p- ;6(|F)븤^VTXxIjjRBQ {I<"^֤_̙sq=Dm. O/n2Y,ׯwqKzEEG9>F0~U6'U%v1~{Urr׸AzLJmIyg>Fv.DYzŊ޽[7FʕЩS["JHh^VtJ矿]TJDK_޼Eb>j39sܭ[GE{eA̿=ټݧ].[6e,֭ojuK=;*;w̜>|gφ?Y>g6kv%'Ǜzk%߾ݤyKu${ F jd(IDž=1@<z\!z,˩ vo>jd%6YPtqZ;T(JҚ~|R{g5ݺIL|dU% 9[PL eGG.m_(X\SOp(`{xؼNe̓kW@i@.` ZzqהiqJƍNzZ<@P`;qJ)Sh|۞o_K/U\[ \Rנ*|anݗQ*- kbphDcƺĉuez\8O @D rJb822ݓn󍌑T\%y[-޹>י/4J`=ҦN t#ƍζj?%.NѤ1.΅D$zuk].8E(P8L,˘e|&CDB!0U rJp93~W߷\[EwC$ڿKKDM@P,E\R^%/es@@z[qc //ٳ.MP]<Ο/{@8{?iNSr(>{fU*1+^^JmS'òPWzυv$7ԩT2 D¶li2%78+B4n)nZ옫)* PoarssCPԿn&2EFh텬 Vb"F2vFDN۹@h}|z/:.h(wD$Y83OSE/nỈ<jPvvA5T 1O랶ƎO4<N 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>DN @4pϟ>j+>222P \.]jc",Tرc܇aÆj|@傂WT>|S!BN B(VkqpNq$׮tIIn&IAA,Ų^"<= cYYB=Xh'j2O+YGn@=s͛u.r^=IoY` qk3g\zKlLL߯x gf@&L~hǀR8ܹr"ڻضm?h\Yy&O~٪W^Yi8xQ2 SWJQt 3vtrP-|@ݥT2&HM.Z_V|}; h,mbGKBCMa|,ˌ=_s;|e~;CAWے6ls6k&2܇̋/t:DҤILFDPj:77ϯ\iӧO߹sd2yxx<!!!\իW\RTT$Zl٭[7.=x>qP8BMe\jK]ӺL&JJ2͛%֭yut͚ xbظq+H'NDGKaZLoGFh4-[lڴI :t߾}]t,oJ;vn۶,Zolٲ_~W^=ydVV7d>>>:.--L&S||< >\Rt۷߹sGxyyU'x_߼y3Ǐ/T*Vh|@2vu qq1?]&qfcQVu>hn"ݓO&M=رcjͣnjyfBB`X,Dd6z)J"t{QHH*ڴiCD999FQ 9seYn:OԩSN͛k׮͛7k׮Up :l&"Hà ˦8,?%"WWF ݝ!dL_7XG_^^܊K,{ g_'P($r(H*NX,ӍF;j KJJd2D" !۶,ӦI{N2j$#òiaCr1"($DxU+\QrY,.gϞ!gv2eSq}8]ƍׯ:Œ ">}lْeΞIR"*..tT*0aB rA bb[l9rHV|ѣGBÄPi ?PH/KJr;?,/Om?TND۷։$-֭裏p8#Fop5K&2}kѢ`Ĉ#Gulwr|ܸqGپ}D"y)" n}[o-*""MppX,  l"\SJ%z}bbY'!Nw놸脈4um.\xW=:~xDА"ڏ?֎-׿ /И7Og#*g7nG{8́ 0O-iF9S7n'"С^MSL& 2%&!J%Jz}llajnʕ+{H$ϯM6bcǎΝ=w@ ())!m>8 \<<<0̰a>~@>BeF#mjٳhf5_d6 ɥ۷WIbbȞ=ChΜmhCEIfΜ31 .&h7o.6M{lp"H$ jԨQJJJBBBΝ\X, dfӳu\Rxxx^ `Сz(22bdeeeff,;`>K6}( b,'uF #"i.@8p*TxhN 8p*T>|SUn8iyTIQ.tR"rqqA$$! I *U+VT:]՚fWWW$! IHB<<<&T|DFF@ ASp*T>|S!BNUm`` -T|̜9SV/|+W$&&n۶-""YLLZViii'O1cH$O*Μ9өǎ{7֢3gNM1&77͛70`=VTj+V(((߿"a믿DӧO_r iӦ'|rҥ7n 4hг>KDjz׮] 4iF2d7@9\Aexy{{s~~~l>KLLlԨuJ&MAlڴuҥ'OjWӧO>l2--.K>}f5k C߾}_  >|։w޵~ٳgLLLjj Mf1cbcc/ms=V[hcǎ!CpI3f̸|rbb̙3lٲxb{5lذ~-%%ŋk׮uss{r4 2mv͚5iiiǎ+_ӁV $"6m :tǏn8۷Ps`X<{n0 sҥ>fΜyڵj]:wVyBP( я?xA3?m۶zݻ{nW]a6wuqU*۷-<5jԝ;w{ᔳfU尜UV-[l$oܸ}ݽ{Kc|Wd{ۅz-Z@4q'PTN"ӧOw6v̙F]İ,˥:u*((H"QmPƶo߾d„ M6!}GSLYz#x!kO6J/"jM[,X\xh4{""wwwTi]}aٳ)}/ysNaaav碢"_:tv .]Zd2*,,4KjED۷oR|Ν{̙m۶=T ^~a;wTC">|eˬ+ʟJ/˗+?U*44ƍwRٹs-[x`:tbٿTTTٌFCBBna$$$:s^Ȳkz} g[VEEE֭)b[-Zʚ:l1 #4 UPv'/{m֬Jl-[|ꩧlTT}SO=%wq9n`xWo>-Z4pݻw]dرu/nj4" {Whڵ7n\p/ٵkשSV/^w9w\ttMm7.<<ѣ hܸoD͚5NHH2˲'N7nND}O~plcbbbcc/_|7o8ڛUV8q۷׬Y T˂ ^jc0ŋm_Q&MZ*11155u޽z&c)))w}L?q_~vܳ$nw{m߾ݶhUZtRRR92|p{J۷O:TC__ߍ7&''_xq̙?Xm6sX~qζb [e"f:{[N<M}ܹs===qM@Uʢ;paԩS'N1Sִi1cŕ9}Ϟ=8uP= >FcDDk&\ />y uCj (g>k IENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/radiolist.png0000644000175000001440000007410612522231146027421 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME wIDATxy\,,삈(*J( xZ^Y-#LoPH#kxbx$(ʵ}uE]6d_ݝ|f>ٝ~3a Yxp&Uq1K.CH.`Ë4ՃDNO+QnJB3ʜC5]CS܉jIzL[ ٮąf0(>K*e&c=Jjlo"O}] |h7:MZs<""becՑ72Ѝ"{Gt UHiYx}ߍr|H'\եb!!ՃhitLB lfu R: h!H)Փxz0'7uoU-Fh]&}h2ARJiT!M^ǕV>=HÒ8-l 5KMxԊODԀG|2h 2nޣF0owj'O w'~FԄGh,xwRdr}/Brg(J@RΙE B)$5!#1DCD"l wz[DbhފQdwVL!|`" Cя!"F :T'hJSuR0,m6 1m3]2SG%Qۭ:*i6TAӵDDDD"=>RTAcDDê MO]+h~xUHD4LER:`@[@M˨q+)U!a.c$Qn]jb&KԡZSh[H-qjfi)YCDԘoWs|艈Mg&(ODh5z EO&F": Q >2aihYf(*"4]1ŝKYJՓ(Ego2MI@)bZI "rgIF ȇ! K+td&Z 6 ߚO D_z./JFK HRKDe_sTqv<ǝ tLM XiXdw\;@V}yDDE,q0a;;rq 2ߝxӾ[ZD;C5=%zVޛo=6 u@u>ŋ!69i/qCDTꉈG@'^{weJl.LDs*,yTDA> , c_ Y""?a=iq:n %x7wh݃\NxMT’C݈F7C,2ʕc&3wzD_]N,:`)&l>Kg&5K ݝe?i"5K{": }^EtX8Ku0>Ii' ts&:i""*ei\dtXr7 i"bRHiK-ilj/0v$WBo?8^tXBs= a FY&*a!ZI*#X%!,DDtӇU6 dihnKJiGCgN񡚲#cwc "YOw6S&a(V@mb@GctLb.#5Ͷ5H?C=xcK y>;CP,F,Oiʣ2PEG$&k=X2[CDRՏvQZz_MgLÐ7CgM4[[-)brT Q'%~ PuVAc';5_n@LR jdWbh5Q0Ly+BFLu{b, 褉R6鼉N)<jzBZfe']v|=S!BN 8p*T>x)+C5RO 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>54rg}N 8p*T>|Sլ|X t֭Zu57U8M4~{:uԚkZx1BT~f6m'!!{QRRRN|S!BN 8nx:ݲp|ϟ?Ĕƍĉ{ؒW^}Gκq\.zj;&fΜ٪U+\p=9(j:t\.qŰ[oXkvcU:j)))7СCjjjp%$$䯿4jР.y}i߾YYY .9sfDD?U a$?Slw?^ϟ u>L.Ź֨ G Ƀ' ~|>޽xmԐbԐaƍ8FDݻw?x|}Q6a˗GGGW:諯h֬_nc/?n8v>nW:]ѫVuֵlvN/۶m۰a4빏z{{sUTTjT/qgQ-i.;wN$;wnݺ%vLrܹo&&& 6movv v*333hРA]v5jUj7KII;nܸ#GΘ1d׮]*FRi׮]7mԿnʦMr9wY!===11qȐ!ݺu۳g}||zeg͌;vӧO4Ǐ3g|NKKK6pBXXϝ;7rHaÆ:111""bѢEgϞ}W\Slq>nW:]ٕ֞Ye{͚5ٻwl`- øqԩ3|p| ooou%bO>&9s&O̝G 0jԨ;wԭ[l3 CD+V5kǟ?~ʕ:t(5k֬RT*Z6qmҥK]v[\J{ p AFc)s _l0 "%%d2=D3+}b8((M6#jժU={OUV/=QQ6v 6Cҁ튊ڴii4m۶̙3h6رc˗/ٳ'u:>Ǐ?q͛e2E ?~Ȑ!gϞsd|ԩS{\XXȽtϏ kذΝ;-f2>#GpҥT*ݲe 櫻]fG}9 >JKK-b%rO"ر}[" 0\7-[rPh;/ <{h0\ERO?M:m۶0`+V\xq۶m}eD"Q( ÃhKqOmWT^~?|Νfۅ%H$O?ѣ@{/_ݽ[nK,7nܓC(VTTXXʊzZǡǼjڴ3g9O.A$>a?$ )++㾲#""Wmgacǎk׮sΝ;wfs4aaa;v8zK,ڵk?۷=ztƌ7o޴oO8ѹsgQFeee%''ݻw„ Ǐ9r$7+666???--h޼yO[I**,,,44t, EEE7n'7nTz#wn'޽{_}հaêcǎB2Dx#FlڴСC bv9VQݮ]vq=Bbccwabcbb⒒,YUVr`T@ T{Z> >{06{l__ߎ;v-44rERRR ֹs V͛߾}{„ C ٿ~kD W_gdd1bg϶ܹкu뤤/⥗^2 \IիW;wT=j6|111?OLLLLLL;}ׯrʘ1c>裌 6{yegg/]Ԟb<ҀF=vضm Gb]@E9vV+]FSND/FKa/_>dȐ+W><555>>έ3&eY|}|S!BN 827 ~RÖ=N >JKK۶mky -NYYYYDky])qY*`YVV/XLJ4dz8%fafafaf#.:u; 5 :S!BN 8p*T>\(PՑG3}VVV-J(+VdI\t/%']*‘ O7x#""y^ȑ#jk2V^駟V+נADBmt{{ݽ{6m&LpxDa4ݻ&I^^P(|qx8|8pgϞս{wBo߾'/իի}g0!pz6jefz&'?ܰAoɓSS}y ~JJW+/sͫt;899h:,3g$';&^oҤS:AD㏲Iέ呜d42\G=̩;aB_lc00U.-ȃo޼iOm۶LJFFF5,7nܐeN_m۶aÆiiiY{nԨQttED֩S[O8Q.+=]83f>[lW\8p`hhhTTe]ϟwBBB:wl]B"ꫯ"""5kRz|ySLrWY ZݧO>}pcBm*?3225j$ɪK"4m4##k׮j{{]k[W_P 0護JǏ{ lV|իn}ttb;˲}<"ڽ[r)։ڹӛg5,.Vb{R(nz7L;nܸ#GΘ1d׮]*vLܡC{͚5ٻwرcofn/_?tP"|خ}ZzvԩS[līVٳ'wUV/trԛ@ Tm2d2=a㵨ׁ23'rEy?vh4wa^D߿ؖ-&"*(YHZ-O(d_xA0yS1<kʕ~6X(?_hcȑ#Oѣ/e ׭`0?~w ;b.].ƙ3gbcc-o;uĝJD :tzڬ7tϏ kذΝ;ٜci7 hҤqzcl1~ݻwϘ1ñm\h4:iT <'#En1>ͽ0i*˗*gI$w[H|6ODf>\ڹ+ C[E"=41D.t/:^ܸa}}B!3gx#BV;vwJKOX. APQQoZ~VD"9r\./(x Hd/}ZvΝ)\P(lݺuNNNUb}tbb;)u= HT*ՓoT*mҤIRRܹssssg_>''96 Ѯ]M6 jLg dj5oFiPje/(NڤN*5QH!/߼/^t˳+6mGzn ۱[͍}饊~l$ݽۛgDԾ _ו+WF{nnoO[vɓ'sM^~ذaCӦMEEE {f%7+&&&...))͚5;v@ǿB$wSG5jСCw~e˖=a5DѣGiiibcǎk׮ҥ M4#FL4gϞ-[9s-7oLKK 9$@XX؎;v/Jv 6رcoߞd}%##cҤI3fxgc*Gݓ<o ^_<Wusc!MΜ9h׾}vܹ͛s„ *aÆ~m.铕5}aÆ}DٳK{ϽX|9sV\YTT2fKy֯_?w1cƈD͛[,#%$$| ,fϞmm26lٲsIII Ì;ު2={;7xC*Zi pƍctW^yᛖǴYrz )))??ذaF6mÛlM ̛7W^K.;v,> S\\LD~~LM(M~>((Ұi-[feeխ[IIIz3lKJJt)))fE"5uLf$gT^Y6u0 sY<\kvٟ@h_*eH NʅZyQ;geehBFo,oUK샃><^$&co;yS4eJ=[zu \~Շg^*}gh4rO.xr.|X"88)YDEE5oޜ{Mc%N Zz#G {O}]P%W >L&ի T\ JMMrP{⋨ UbkݻwW({*e3 g&޺%LN1ŔɓfϾ$jĉ~[D```~Q6iRܹu>>ܓȏ;ov-11˳f8p 7nȑ3f())ٵkJy…۷;wnȑ111{/%%2E,gffѠAv:j(chϦeggLy̙3'((hĈDi6+=ll 999ӦMΞ0a㑵!Jvi&R6m\ d… ''';^z6vرc<}<&8Uf͚91<<ԩSXbJM&{WbcU7+Ag3HqFDwS)+sV4+WY@;\m~eکRS}ϝsǁUVٓۥUV#tX"**j֬YD+Wrg9s愇/[aBΜ9CD'ON`p</AAAmڴ9|u!can9@ͽ^_tiPPPV\~_<.lC߾}-^;vxԩ-[XƀFu[lyaÆT 2$**jҤIW\W]iѿCѱMp\v)**\-2O<矹?os j5O(dcbTDԶݝj[l [P "stZ `bV ^P1 bXZl6X4ib{J;u{cbb.](,,d2}'GQ+??88X,sQ q;tpU7=MA͟??...,,aÆ;wF.]R-[ɓ׮]s$m//////"H$ Èbn\Jktx*hipoCBj5<=ܠ<yzHUz=CDfr-U*,\*** T*LȕJ,ThFR4sixСCY-(( -Z<8<}͛=zXwsy\m~mܸ6ojO9q_Vەy&8U.d229dbM,6J3'@3^^f"jTl,͍%"g6GJ%#wI$PXQQabZ"( [B!$@ O{a@E>}T*駩Sm2r3Ya:u8\Q7q~>50`Ŋ/^ܶmG};: uě W935i$//ρ/_nڴ^=Xl6cr1bĤIzٲe˙3gZ45jСCw~e˖qƏoݻQvvvvvw}GDk׮=yd\\ߞ={n޼iaaaa;vڵT* C$=>MKKH\TTh;ooܸADK.8 tqڵ]t!I&?6 8p OjcW&8UZ>+##CWXU~e~~F3jw[ŀ V\*ynԯ_Y&:QZf{,,PϞD08aG;vl۶m ݧ _uFFƈ#?{l۷_~+WƌGeddXӼy۷oO0aȐ!oqXRRR ֹs ړe˖qqqIII/;v[oMcbb-Sll gرcnBCCm?񽒄"zןlJd0DW#@wXPPN%%%-[X{LW9III:.%%ک|4QF֭>2npV\9gΜSN쩜rC+/ 5P\̒\v!|;w۷m۶k׮gnK/\pߺQYL׮]t… \  4XnWaFcjjjƍ- 0冢"^ϓLx3.b̙;vԩSrr2j\ DԮ];sc=<׿ Œŋ!TQ\jg |ȣGڙ>++EJe5zK] !! r__Ͻm@]Oܼ٧H ł[}\p?ܾ}7|ܹءC+WvykK7n܋/v/2H۱c|e˖=駟䎕p'O~W/^\PPc{XmQQ.Uvn֬O:ezݾ}޳ 0^HĚLB=+,LvNg3HqFDwGu1={$DeL͛}t蠲 q/bqPPP6m>_bETTԬY(>>+WrL3gɓy<Y3gNxxeIHHP()))t䎕pʕ/ԩSSN˱e\Eȱ"e2Yaa5%lwfߴ43^>uycb\~~F;gٯ@VB6&FEDm۪Yu f`X̽gΜSNҶ0'9rDp޽{3 st^w䎕… nnnn[2cq\%0#<zN}|Dmۊ:t.ͤRL$BU(}ӧR駟NڶmK$@駟:q``Kgݵ{R^FcY2#+ &WۤI<2^|>erxtu׸qCwoKպjzl00ǎybqwg (""ºoC""".HF)˹Bu999$uO&>6oرckNw ,??;w>eً/r+*Ukrvmڴ`01LgϞ߿Yźth4]ZD! #C^oy_螗+ bRVn܍p9<%$(nٲh<"S)ѨQܽ{Ǐ/[\k׮=yd\\ߞ={n޼i1~7xC(vޝ;;??Æ 6m_~}K8bĈ~{ڴi;v\veYfue͚5M4ye\|pV ^/۟pTСѣիWw*[kxŊ0Dj5s'ߢkDWn\*zUTZzAAzUtݐ+6Vկ_``ZT @BB_1bĈϞ=۞;27o~ & 2d~ /j߾\2f̘>(##gСӧOW,Y$%6mږ-[s֭⋗^z`0$$$Xf9VxlT bϯF uVl2++nݺMJJzQRRNKIIP;$&&_?#O&ZyIMb\jT|;w۷m۶k.|Z"DzA֭3h46nG SB-DԮ];szMϟJRT>\(PՑG3}VVV-J( !!:(M3[=&|%KrNִZmJJJ|||ƍ;t萚J*PbŊ`SUj޼ҥK_II4HiSI~,FZ,XgݻJa2V^=hРj4hPjjj㇆G7\Q-_ jƍ8pٳE|||ߏj\nEN?}uڵ5ۨcG^}M}z1cƨTޒ`ƍfͪxצMz؊ Zm=,#JGFFFFd2YrI$MZeU-f͌ {nST$ b֭>xqR~ݺFwu/)'m~{s>7o <#́+jTڵkׯ2eʰaV^sJ øqԩ3|pT2*-͚5s cxxS[)LJ Jz#!W_-UefznwC+a7H.7Ts^^P W`-[j.=z_|_T W,& ` T7R\ti:uzwÇW:~'Nl޼!> W >BCC(0DD,[P PyB! 9۶jNouKh6N]wY(?~Ѡd2T<"ySXe."QD,ly˖-vޟRNupppaa܋/}j\%0#+Ԛ<=|>G&VL&""qΫgaXdռ*sDb!Xui;syyyY|Vk=?$;z|d22:R &M纈T<|2I ><<7))I/Z&%%t(ʩM.;P,e"JLLϷsݾ}{۶mv§)r 4Xnl3hLMMmܸ1ȵnk׮rM[X<={r&88 r#:o2fͪ/$DzU1}bb83 cɷ_cp7/g4Ww6v*e}ۉp]P >,aYY?/q >Jl27CO5_O>q[VΛTedʊp, 6N疑u<|n%݆[S|y݉h$s|'D߹al^СCz|Ix_F={:ww;] ^#wl'~uA1fCa\%16n[LԳgE~h kUYaK?rZ2@Kn?"1sn5i_{k׮,۽^"뉕.Ŷz}@~~bCHZ-kLzՇeeGVKKKo)z}7͘Q^.MM6ͣBiFJ #Gbsgw,͘K|9b$xa% ;?!@ϞC3 ;dO))Q:{yFF2o"|eo!!/\h*T|ђcrwgchFe2nݻAF!c _?aǎ>A.|H$LӦ|rr|>^홑aIID:)6Zi=0իfmЀWN5zM4c6=޸_bbvѫMe#ק~ѱ?"s?\v5'~ŲLZ:zDֻZ<85)dIΝ3*{Nmy ԩZ"5K!ƍ1-8%~0DTRbd-U*ϥCØY  /"qу׷պ)B} n g&8J^ z=]lڕHDPee,yyA.| q_T*JJ5%%e5HX /(y*%[OM;v Pnnzq,)D$sA,T8܁+t{]O|ܠ r.f"]Y^Ν-/.n8#G.Hn\lgf\TZ*eEFXkq GDQX^^Lz^__NܠXA11TJPR"#"a{fTNlV{dѣԩS糹=n]R;? bϫW}֮|Zvs]4 /T\6":|h~؃"JJd .[KWR/6&{ed8|e>TeGR*f,7/,l2mLhc]$ɟp4h{dp,\c~^}z7r׭? }?=xO>Y4eN3p#GڊD~=0=i3g)V=|J/')..&"?qzLˠ[nU+{III˖-֭M )P^X ή tY`T[xvaT[S:ZyIMb\h5~~;ٙ7D&O=\kX;o#$ }VXO ,K[V#8~܈੫3/!r5`NBZ|ժUܻw/7====11C+Wܹ-1=Ǝ۫W_/D;nܸ_|qڵ_~J;v7 \lѣ꫟~ {r|dgg7ḱN?n߾Mr{>{g$buϟw7lf~]LDkJM=wΝb00{Jƍ+ *oܺ.Co6(^^^DT*RT*e:@رc˗/tbLbŊYfQ||W\٫W/;ܿC{"N!&@F>ܩr***Nɥ5R)J-oRFPiJ-RRR/_>x`k͚5K(*J8gΜsr)YeY 88-Hq|d229dBDf͈e. BȣEVL ҈f"Ryf3xTo0sNZs_,K,K ύ7,Sn޼2Riaa!˲DPX* .h4x*ϣ>}GTOSNm۶%@ O{a800?1PCe&M9M.ӕ+D hxD0ԺZ$b_YBVgΜ "G.7F;vD.F\tPDDΝ;ke/^XJ$#G" [i \]v6m2 >2LgϞ߿Yźth4]ZD! 2bZ۸Qd8p˒^$b۴Q=alo=77*~Mitno>-+Qw%Pd_@ah"{k|A^vڕuuXLLL\\\RRכ5kw1|F:thrrrӏ?l2.WllYҺtf͚&MTkמ}~n(Oq3tjw|pTСѣիWw*[;,˚L&qLqq1Ո.֣nݺuZKJJZlUn݇&%%j=}())Iӥ[]ZXOO3edxn#>6NZ橜rC+/ 5P\̒\v!|;w۷m۶k׮`.oe񈻰Gj+ >4hn:]Fcjj0冢"^ϓLx%R.|QvO oRBp 5ʵZ>q/Zg65PˇZCADιso33=qLCf͚%˿ 뉕ZV^Irnܸ!˯^,'OCWBNJ+۷oog͛sK02RftU+zDb6i{Zup(/Hu^ȑ#5y||LիW4Z Z{JJrms CWT6J(d#/O$8Ç?Ǔ8(***u]P۷Dr/-Jf~h㏲Iέ1~s KX;WV1#`„m TTҤӧכ4)oOcR8}]Hpƍ۶m>i$ZT*w˗͛ǽ2eJ:ҹsۿٶm[|||hhhddQɕѻwFEGG[?q%.B?[r4r5d%H6mѵkW{ͬJӧѯ߽EBB u{I"R(7J/^pUў=^,KWuxX@a2[o^,YRP@D[.n4s!oѢodd}luڵO2ܹs|MLL=3bqff& 4k׮F>PU+'''00pڴi&Lڵk $"??J7nȑ3f())ٵkJ]cǎݺuKLL|Yh6%Jvi&@Q6m_e\%n֬O:ezݾ}޳0]X:p#W֮*59w;NsBCwDT\,=f3xtPn5~}JųuP ,{_bbb֬Yc2,+ʥK֩SW^{=|0'"@ͽu۷o߾\;:uj˖-]vrD$Si3gh<,6gΜe˖1 P(RRRq%5Ν;l3NnK .U.:Q&V `6m|7oMK1CSN_\jyB! *XUנl _"ڼdvIhd4ڦLin.ٳEEE`rڵ+++CBBԩs( ֑_][N?~\\\XXXÆ w 3L|ɑ#Gjvp޽{[K.z%.]H-[ɓ']Vil///z-rh4 4u8m+A<|dd5mWDi~|T*{V֭QQfZ7-MyǙ3j!"Lf$pIcE**<<[wi>o{nӧ/_ۼyo֣G'zBD-ZHII}B'ӧwQJ$ދ,jZKR?$ qȑrBa֭srr?H(SǭE͚5?~Bxo Kq_ڵ۴i`V.tJfm3YtjaD0,V3v(+/^\4116mGzn ۱[?bZ۸Qd8pz /,.,\ahx!!^@pa0p6mpSD"Qjj9޼y3---00Zرk׮RرڵktBD&Mzxj-֮]{ɸ8??={ܼy366b?7 ݻw'v \Op{jVVV>}~{sʕ_~eN*:T1zzj]ek֐@@D׮^qիWE|"ٳ<2R# C={C<6NQFQPPP.`mʕs9uꔻ;nqwQO&ZyIMb\jT|;w۷m۶k׮`.oe񨬌ODhe}Μ9 \vҥK .߿?" >4hn:[5FcjjjƍrCQ_dhu|jaΞ=zp̙3wѩSdkrٮ];sG8TZx1*U:@  OtlavOW?|=H̗V-ZZk Z-kU!CN(.Lݺ.]*^kɥV<K2YQu0nv+(QN&M LMUXzb" Q.;w?ޭ[9¨5.8OS'FFXTߋɿY+5&V2!}bȜ=.F)D0{v]" َU/TAD=gHN_Bx7- 4JkZ|9m]U>_DDRgIf-,/?^:UP>2]fU+ y\p^DEi.rEdIӧ=^]!=0֦\.,+g74m:͍̈́:t`n[s f$# s_ַyB^EDZ8{[qj>|dbZQÆzԤPKKF"3ΚuKu׆ qɢ4c1 }k"??%D6mD"YfM-,#2^w+}]"Cه͇rpj7__Sa}{x*qCd21ƤB.ͯz P:m5bWxX >BaBB?[/40"!Z. 4r~~fb^ޝ/SSJ$f7&  ?rEPE"V*5LfgfZ0t' ,Z?XAXMZ;rYcSZ}D}K*Uc~utWmWyZxpwj'uެ WV 1tv?}!>Ep 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8&.(({\Љ'eeeojtq-ڴiSF܋W^ymq܋ڷup N 8p*T>p-Ow,+{,)uvksj|S!ڵrwҰUtƍX֗e}#d[ PctY ۵ݨQQΪŋ\˗//g#6|cyZ@.gu:T/&\v˖-VqsrL#GE-[X~=gLDUb({_&M .hn3ƙpwwWh,**@-`D8wT +<޻Mfȵo-,KfF//ajJ9v޽E)^jA}h7o7h`xyq/ N:UTTjE"Q۷oNDk~~~ttt~~~qqqzYDh;vu(J[hѴiSnֹsΞ=T*5jԶm[ַΝ;7|͛Nqx!խ^"JMMh4:upBiii@@@.]<==Sx@o,\(nܘ_\lvl9/H 0>5n`E%ڵ==˗kWmؐ?8?gbkN1L;v0`@\\ǃp0"_.իGDNpi@n޼yinhܶm[NNVxEEE'7ԩSJR* gϦ.s^۷FW)Ujܟuoȑ#@(޺u.S "W|/ ?4^_FGi)KD^^ ^|h4,7uZ߱sv>\nou[RRRnݺw[liӦ 7\\{d{{{Qyy ]ƲTFtrܹ۷osOB!zYn]V{U"2YYYDԷo:uh%%%+y-~Dwy筷ުSN-)U,XP`AUEÆ JJJ~7nTTTxks@D4xhZϊ vJݪU#GHqwv{|={:?ɢaJWv#FxCϞF1Ds>80lذ\0aK.9sFכf"2L:rynݺD$HH篿"Mrsݛ5kFDEEE\JeUMqԯzŊ V\gs[SSzQFD]^^P(luLDD"#2R)ߝ0! l&!{t94f̪?#J!"!<<UE!\Dt|M h4*]$b?8XԾڻw R K(R;E>hq-W84k#"rrL͚/_6k4,5mzCͽz_|H:\ƍyÇx&mfXHngxoĉ7n븸!Ct҅ -[Μy8Wqq1ytܹQF,~w͍***9mС1ukfy֭KOO ;vlb3ISpr,KRqqjNg:]W͘/^MOӄ "jޜߠի?:}Kޯ07gw77O۰aY~醚S2dHzz?(Fٮ]L"rtΪg"T^K&MB;w\WPP]xt:N:@]pwV=yeE铈JJJ,K;yd 0;ԎǪ… FRu|͓'kO/7OO1eG~76o6ܛeICwCߏib1:]ͨǧ}۷/((XfB "޽E:)ƍ7NиoUN777Nw!???,U ;{lyy͛E"^W^f̈́BaddqС?q?տX**[d2a^yҾ};r~X)pz- w}_SY`~I+{/^bjЀg=bq.4ݼkm2eVXO?׭{olGza_IM5oMD"{G|r~~~֭# _}cǎݸq`0d0nVttǹsxbccϞ==_")P1DW#i=iPPÝoQm-C^}Ui.Pl2++m* S\|!BgoJg FܺyP. ]|S!BN 8pnoyjnQ)hҤ#j"ŘYYY~V|S!BN 8p*T>|S!BN 8p*TZ%ؑ |S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*T>|S!BN 8p*TbuNpaIENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/editbox.png0000644000175000001440000014133312522231562027064 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME&KnIDATxy|սfF7oB"'$c[(%Ztz鯥 >-[h˅.\pǐqDzMeid#ٖ%9χ}h{yy3^ BP(KM@P( e6QHZj BP(3Kp|\H;BP(c ;:wkp[ f\JO@6M˕  vP( Ql:w(X6Oy}y@Ķ 9zP( RX'KC[$&5zzP( RX[v5q 5cN1c_Z G3~BbƑԩi zMx]UgĎv#nN[k`L2tdNW\2F Cq3MxyNs%ǀ+Rs)<׀F<91~ FLxh4/Ϝɉ4P( X3G4UZxQ@E#5, %Aؖ&2 U3808ǭרA:uNIL0ARiq5f6h3G-8-"$Q mn;hxUBˠS| +mj;{a(ZaKy,UeC BPq>^4sp>j J U@"Q/4CL4{y(;5& 0V54icEG>rXU!臰;$`i?Ӣy9P ]~yYUFy-; Y#h\?|hHxwGWQ ) B9vL@kD0|*?-oq$`cA`C a)#x/Ϥx8b|x/xB?P32aad!x:XK<:<_r)k  !BP(ǎ^W9i"G<_D_| A iX0H  4:iRRAO~pk:|!* ȊԩQ^ @Q":ɉeC BPJ}A"1O xU@`Rh|e`L FQ00¨䧡9pS2e2xj ) B-&|ܨ7(eAoie /dDS=5  *VI9}"D=q W]0Ob5" >0A o*?N"L`NNujj6P( e1߄ CA['``S09 xWTV'6I-<EDWīC7nvuxW4P]=FZ0S% j)Vrcj"]/Ljo+󲪌_EI-L1`=keS!BP(dђ@ ؚuS[x1`ӫCؑN#d] /BˠCĚ0#r033XbY ,Q`jKX@-aK0yDƫ'LG@nA]e7ؕ$^ؚ ) B׋Ym{(eqvnXۉNyR"DFܬ:-:EuFP( RYm:¢EKd<}0b( BPLWz8+BԚ$ǡ!/BBP(J:-P( BLB,tw9 BJ 5BB)ZU=jMzk?rAI !޲pU*=a{fLw7 DZZNXٲEe>9+;…ѺرUBtrRs՚zrEPءdI謳B += G"^}ոm[>a1)RBtEEp>z}R('*<pprٲ";wjTTR͆a2fzե[CZDWɻ q%% .y!Y̛b$u}e ~I_&orO sHydZҸjo~cDK/yfW?J죏G$?ѡ,/9'-}jsz-==W;%CCɔ\$dgCC׾6ڪ9tHPK.75ѐs A]('5(Y8r萒Xӣpg;֏Tx-]W2gSnfD,ƾn /hoWݫV*Imm@K5myRK/މ^8G3[\pɔTHmmvy55ڸ)Y(2?1O2ݫJ$~Lcdmmt쎅jn_jT(btƢ!zCS s&TB8U>kYgXn /p1Qưϵ\vpccgc.ȨL.ؿdIJWo:+$-I _U*I2 sP!y8|b6I׊ z)lHk.Ng@UU?p@ɢEQP <>c8诊@w7_V&TWwмvI4Js%%G' #%q9jׇ?*9|3&۫шnwaχҝFRu(97!,D8`Y$QE$a(>IiRWW_6?NԱrf.Tqft>]]O>QXhDw=v+^<ƈ(⮻|gt@xFgD&vi$tw~=٭DDGM6ERpn(&8ѥ1Jٰa!?EzMuE9ITZM~˞_痿hpͱGcc@OmTtv*"/RY)Qd~i錏Z]-ݫ:p@Y^.7h\ŋ#vim+ٶ'oT*|y7ifχ**V ٗ^2UTn20뮲d0o^ljjxC0.X]4t萪U+8:ш&Srx{q͖0v^^/.X3Xʄ 駭Hm`9U//l?( sѦ 3i}D)8QBˇ͖8b0$s/r!eQ,lYP"NaNoFrҹbEP+Oޮ#- ?ekO?XjBFC?5._WŘPKSy萲O `R:X$t~5!՚beAzS(E zX4RHtӠB)|>_CCCKKᐎЬyЙ BP( u>( B*4B)^{(ʉu>( B>)Iٛ BP(Y: BPf|P( BUAP( eVBP(Y: BPf|P( BU> B9騨H'M5Pc q Zm7)z詢:}G2 PcBuF#H$L&u:]7)z詢:E9PcZ}٣) B 8P( 2PBP(ʬB BP( u>( B*P( 2PBP(ʬB_- r\]VFp 3ʉq/ZDMAP |;:r%t] D.dQ"4 C%,{\h@3{lWLP@bGqw5GF9s5,T|) r"L_ UCxbhؗH5( u>(GYp o޹a8&UngN [K::n:|B9P}}Ry_7t1B~6ۏKKkiwqO5i4- ~'#s(P,\h⸛~rpV55AQ\'q/N&t^S*CemLTV*ϟ߬Ѽ ^#ZF˜Z՝{^ߤѼ ^q7kcmKwm.,pgy '?jFiS(}P(''tcFyZIIK$"P(q86TWשTQtT몪n--<ѩ(n ?+ o8^.qՍ9"?x^VV²?/+p{ww-d*4lGx>}ɿPREbtZ- ǝӴZ5ˮ0^ ¶`-YiiXo0*/SH##ҟHnq8*/7q##2[KK())aqP(''"%{:[[_ sgY5i]](+Ӱ̩}zTۗw9kT)\9*{'!ԫCM #\x %kt8Ұ-5,T6,ݷOACC+ou/ؿ#umҩszk=Siӳ36y#uQ(| NHG,VX(nH2i&FT>BG,-c_ųu8!vvI(&Sϵ3*U p8Owڣ5|rp0*/ K . ju>u 8)y֥縿ΙcuNUU=0 |gEPNZ`F˼Z8`"!MV' O$ gQ(b8ѩ|*sBzH${=[*L>F+[[fHėHhX VF)I6=@P}T;'ԇԜ~`8v;[DPH `1L>gWzgJ'މLa_^ 䲃{2 Gz@gFP(e@ GUUWTH!{FD)xZ|SۣQ **5JNg)Ͽ?߿Tɴ,T-FPc#!_@"1Tby|` Nt|iX 76jY靦.eM Jw<}'e&ScDT: 2̓\i^a6D3KJl/nBPҡ3ĺ]]c1-vbk<rsG$b%:i]a0\i.==IBV+FyhF|:xwA (U fuDb\O,nNHf%:Vr]BM8`FwsojU/ QB{P(0^ʜl-~陔khhhiiq6Ym/,{`7`Of JaIj[!rJN6{tمrEǮ]T D.P( BUAP( eVBP(Y: %/.0۽"j)u>fӴZv76<])-^LnOCÌJH}v1=1Ku:jY4|Ln/|bd('$mʴX_n6ώ C%ϯ2b/x?2A@jTc  jY9b)1P2-ڣѻ'gZv;<60p|_A1}kL_@^i]&^P@] Ior"MMϟJ憒KuWih77/^|m5-śq:ݲoو}EHc2g9#܍6۾EblUTl??e͕X}V+qMMJ~G|4]M&u7-^o8<,{Bv_b2j%n!@}}oM.W]Zmnjjl"_|G6\%1FR]L$ajkCMM{.bZfe %|jj.0,۬nJ?E+FcX ;/VZXUURi4g5ǟN9eT5,߱XV&P]]REDѥR4ƟE1AØS\RW7z p{YY ݇SqRǯyӹj(緧-]&{cdp<~^_<%qd u,pyVf ,w}-l8kF֐iR9qeʧ2. eRP`8y~N3o\mm絷w/Fa,{GYڻO綵FWJ>)kKR2̝eex<;WwuL硡Rϗwk PTnrTBLIb^ Xpl ?/9z=ʎkk4klhD[[lm}+gmѨaNiz IPki &gKsf##fkm6;vlI^Pƅ:Cφ!OdBgtOTUS~QQ@Ͳ7Vq!TTr=_[2 w*̟L'I2 @DzEↁO $kJRl=ugŔ]ųu8!vvHJBIp8Oz8TvuNUU=]("}_>98ŗ{@ZyZCR\HQ*ŧE`$.dELz ) Hc'mcB*(*N s~JDzIBƭc L$B$ O$ gI# ,qK> -wG"ٳIS(:=jMvMvxdvMݸu,p5>AGOjH~{*5JNg)Ͽ?߿Tɴ,)0[WZJ45 Vx7oby|` LPh^Oy eGWZWͻ"DBr)SW5FikȈfK˲lS%Kn2jL:|yڢQBȲvyykk,\N/S(|9ήPI N&/9ppr']==R9rû"#Xvw$`__;Ժ]]c1-vbk< JUP;zz2WM0PNG6/𡾾M## 1+άe߿=Ud0D yl`@z7gu,gW$#@ÇgtKtEj55.t[bPkLY\<=R2Y%%Kt:&mHȭře EZݟMWTTdX9| ---C:RK'ʸYp} Sq)5JeH 7몪:ݻO_ewY SRwY%.,EǮ]'^]]4) sWN9yB,|~SJXP<经NRP(73vsh)BP(Y:CvHj . 夂:RZk|_cPc杗%y5^jl,aQHikLɗͣYBPcVK$^?u8,)'8[uV)&uQC V$jI]ӱH$-ӣP(ЀY%*zb1:Of˹MԤ5~h3cyg,5Xcjl M'OBCg> OR}HSf"UV|-uub].kt)"%{:[[_Y`!l)%YV`cڹsuW;4a2Rjرyd$]pzBL|'p hPz/p0`|X[ƈ\ųu8!vvH zcm-<X2rXXk[>_2 P c)ŗR㨭 3Hy VcL&B+Qxxhy8-O~_[{~c*0PqNk=9cR,SN9]{Ooe, %5I& E1WC ב ,8[*Ax뽭3srXXk[>HėHhX VF`XXKXf3)B3t٥k4ÍZydD riY֤Py5ˍ>ߓyDn*5Ja__}dZt^vTZUV땩C3-,[e<>0H&aȨ=ZS^eaYWZWͻ"D̒9+gFNg#rOoN+*Hjk^AWߞ7-%,ko׻n2B!Gy+aY:nZ @ͲKt%:]m `j)D$!F36xI蘫P_ߦØ_ojU/ QBȑԕZ#e]ꮮe;b5σ6a*)Y1nPLEBn@(D/S(x^V+s;2gR>pHG*{{tLPAѓA(!QL$lkw樂Dt~.PY9%E|'^B9c׮J4yBPf|P(Oяy*U 7|љH B9y38cj x:b!j B)"(}ۅB|7vQ(:'kת?04d1K:BАd;\b6[5a]FBK*ɗ_$,%fPNTqrկƙL^Ϝq/]p?CRNJJv*SOB!rQė_xC8&j ۶%ZZ7tEP u>N.9taqW_!cbͶmPm ՐFվ}Xn|HJa{$2c⊣ Q鷋B($<0Yfn:;^|QI]an.ğ$]wM&7Çkj2_b޲峄 G?iKJ\#2R aًA)KMԮ[#RZ,s .jYa6˷ݦ~1mm-IYF?xD0HNv\!%o2l2Fsi `YNS̊ /rGmKM񳟩aH[oUq֬Qmؠc#ri FFReاiB($oW^}ݸ`  `*%K/l*9G`ʕOi5gmݚb7m͙þ^eӡC/|A裱_*:CRk&!0XFm[z N'b4v(5!8묑Ƒs>"DZuk<z+15C֖/Yp:_yE+gmmIaI3iti@rjX^gJy5aix0;Pk4r2Rj5s*W͛3tN( AB2w.G? ^߅ 򨅟{.`*׾?ĥSIixB{|O-C::pup}"ǵ׆I0WUΐLf.7Knh 矏bxNۿqz=#xe!W:255d6ĂA GG(_W|2^V{%<(٘<-U_Y,L$B6lx1&95daF&!O?E[diB!QHn]/ٰ!vEA˿g'-[q<_,QD"/9:M&ի7zj]C.+F<(~AY剤flogxiLXڵCĿ->zD8rD<31XZW*qg21l|r>&<9 oIqY#bzydIͷR `p$',95du'L( Ajje^{MwgMMw}EleB p|%X]jZx^J)=WO.E0y(3P(3"%ӮFc#wub47l`@`4$BbhHe?iwNVU˖)eɪ̱Mb4(Lӹ'Rc"|s <wT %%%ɴZZGg/(b:w^/q:٫VWd>jKk Έg+V}6vmNgF%7n̘l05֮ x!2N' FeVVFI"Qx*5]!O?1o(dŔ>8ᆣ~yzA:[iɪTiu37 ՕW<.d ޽Wc"5&5寽Ve00##dǎjH^dH8 ä7)z/P|>t?ʕ+8ڒ04D6ml0Jc|}+Woψ+-ejjزzami)#^z)>Hx!'AS(d~ xzHr(+c-3FgP$z{W_7MD }Im_1 GHXzG1)5F[q=Cw 52u,6͂ͺw?@e%wKrOMsOaӓOj<@t4Woۦ]=IBwx8U䩵B(($_⬳C7 j5Lwo*xxp2!j5{a\vٲRLV3~[=-55N&SSÆBdpfպuN(2|"4}}6W_՝r []Ͷ$OrϣֈF1|5jMgJG}}GC| *P( u>f ,[ bA55(O}7+)a7nw_B)Z1 iBA |3qj x: }DCP(EE51|S(q/ZDՠP('eNnvkkR!…'rFcL.PjWMӴZ9̙s0 J_e6?58ڲ/x#8~՘l] Ć|P2Mea v|;:B)f&}={> *9{OCCq81jj.5Z_Evxl` ﷄ×ttjL. rbCg> lͻG/rթTo{_bGJ9m燚^wϜRϚŋMMzRQCf:TG/WX,xzgG@ x{6NHT1{j;`HG|>4kLAbt,{pW6dKP2UUFuJ5h4,^jjziΜ1c_nhZW,+`S cjѰ:%VBpӴZ5ˮ0^ ¶`-:njXTj[w B)*QHxVvtgO][ۧ(@2aff }gC<4/9+juZO&?wiNǮ]ދwk PTnrTB1S]]7Ca[Vjɴ*;.d9RAWSְx:E8ۂBcwWkF ;w~9*M##K퓼qWâRcܺS(CBXt>QUu#ݩs>RԯL0{8[j`^w^tH$LX[ΰ( sE^VR ^lv}a>4u, ={t;vok *T̩t4,*rUhRe7xrp0*/ ^WâRcܺfS(JQAN /z{ 7722#T/Kt(ex8]6FơY*xPh^;ɞ-ϖrr c,^gROR1BBxyqx`W<^T(mGz~|tꩣ/Ȝ?c>q?/+Ii󵵟߻wjUXp'ّ'<_q\rjXTj[w B)*G!&_ٿHRywytJ6|_u5 ɜ 5yĊa,= Z)r"ϫci\1L@,)pV4hB*q'Otj8|%%)hX<ҨќׯOlTzwxϛHX'AfXU)!QXe<YY pX蔎eRZ@.aY-ˮDE1AȔ5,NI&z-zgJ'މ;Ԙ RTeBrzټ+O$,)=-Ȯ-8vkC䦴+dxnR}xɤϤKroY/n2w:/;xP^*'Jjeq&3ze(#IMtJͲUV>TY^z44,N)oY, L_ 76jY.eM Jw<}'h8j5BP :QH6CZKC>r$ [/ {_#LoFϛHh\ÕVHӓ$dټh&F"ut|kX֛HGh7|@HH hoߒTPD1("ډ_8^:j֍)qdz+V pt%:"etKtZj֘M5d*NP( Zݑ=<| ---C:Rz#t",{*ղ}N]A9NYp} 1l쬩1/2 t}ն0C@m%lz cW]Sj%ӓSص7y6՘Z]B$PcV0t:|_q5  S$S(S( h)BP(Y: 2i.0svQ(yBJnͨ.}'|(3drZ=Q˜9a>wZnJ_e6?58.j(DeΨĶ`%epN(|={>Im}ZGkS7:<üСkjn2Ήvvxl`J%X5k4 Di?t棐hXPSӞ XIQ5Xӽ:wnOCCkk<7lb{˃MM3Gʝ}EGNmj./?P_mn[xUkrjl$n6[45U痎+NHT|.5[J'臨^dǻyѲ6ۋ]<.$ntJniu'n 6f+45캨4TN嫕G6\%1[}_EŶCMM\V"gn-Zknn_f=ON$%smL]ʤG!eʧO}QwADUkְ(~bYm'LbmUU*Fz]pS$[Mx<~LJ].vo=rD~e^ViȳF9 [e-+ՠ^?xq9saJh@ϧ[`7VBĻ.q:O+)iDB캨4T;ij]a0J'ۂS4, B7n--ͳJq86TWשTQtT몪 FFJژf(IAfkm6;vlLV08v^{{hM oW}}ROJe;p޽~:͗H\d4J9z=ʎkk4x[*r5Gz/z<_JU[?Ơdəee fٯL뫪9NjvZ=ؔ0rn^ Xpl ?HK&C>uE"խKuE )-5)\nYoO'N9硡Rrϗl)%YV`cڹsuW;4a2RtEL:uV0(FӃ"n` %Bo?v8L 4ƪY֒nɤ v8't,oZw:Gy4E19^hRݝ畓. NꢆP`T_ oP9Bl/2MΖh, ED7 xjpkh5&#O&e鴋B,*0HH a^; Ya *f|~Ì.Ro0ұ,_.P/0no߿'a>r~w$=:SOby<z/dKao]xRYTb`OVgj)ݟx=ż:=v˓.} E ]9 <*O*xDvr. e&gKIN`+'2R*ژf(BM$X aT5Mg ol/ CɤeqNpѤ]^~9\e6/ګfY&w|z¢'+V*]*UG,R kNjy5s{,_CCCKKᐎT(!QL$lkwYA(rYp}f1Uj1t~.PY9%E|'^RXVVU HSM2r7*].jcRWQ:hpxJU²>},ԼPzmP(P磐g5/5^ 4BP(ʬB B4 _i(L.Pdiezfc?u8,)'8[uVUfS[wuҗHdž73@"-lcwl?4v|;:B)*9ڣѻ'ǜoar_gm/CC8:5ܷx&.m)t|G6\ [J5Րf۷hQ}ѢoGJiXPSӞ XVYvP&u> 5VkXcۇKM&izWư( 2w,'VZ! cnr{K]#See%,2wwN겥J@%~`PSKs挹+'Kt:;3} CsjQ(NoN0E'UHf ~tVRYSR ^WYv"NHV{}*\C.)[KK())atkVZXUURi4g5ǟN9EE)pU^n7FF5Y:%gӴZ5ˮ0^Hm`Id!q8T(TuUUd䑑eʧ2'2. eRP+U_'ӥRx+jk;̽{\l4ri<4]ʺ<&zUJ&kJ^(xY\%Hn,5i}֘:5.2j4DqC~ifP  ~"]XKKr-nm]w_.W[j2{M;w:v2uHI M;w{Ȩ5,{GYڻO綵ħjX "9z=ʎkk4kT,-5)퉾\R42t>k49[J0wXv\2le]];6 N]dSgƟLJ[I2 @Dz e60)@ͲH$$B!q'AźaL]uv^l.NȵcBײFNJ|:tNyi6_LMT< ꍵ3}E4 y*_j4.z%pS % +:)/M.)IB> GoZVDXCREↁO qMͿ&vdɤ"D]dЌ1 0͝PUiώ1B k>qK> -wG"ٓR1BBxyqx`W<^T(%C)Ͽr9 !?gP:= #j,f>t:HT@.ڸuI[2=uM$5D"a7ҿK{\W"~ۻ@`nn?+R#K8.=e!l) L$$(IH"a8/#bYS_Wm2Y%40bFw_٩߱øsgAJ^e6KOnj5mL 4^;Բ+s*}xgP͹zdsGvG"UJ2nJIyA&S/ _DR2 %IFW&ҰH:%}ly_zMgHZ|:0y^lDI6gHQ,GmdIFʛH*ҒYp el`8x ♓\.}mx7 3ǭw:xWSIm zHJF@2{˟B Dʜ@NkCl`Xszټ+O$$(edY`F3(ydDgriY֤PH?M>ߓS@=:뫪0rz{#^AWߞ7-%,ko׻n囩Btc6N&/9ppr']==,pp*R==IBV+FyH䢎a znL jM$-"+âԮSVC@2yξ}}>o"fOgޜuM$%ϽGxHq<'y(NyoȈa ůOmB*՗ (! sԕ[<]H-,D[fn2p"iY#[ZU'" =w R@AP(' DT=oScu>( d@={(pJP( eVB9`NJE+Klc*whEK˱QւKB_lm Mc"kj6p8}˟~xd4MKSzJy} (R<Й1Hl [2 sL7WO  7uM͆Ë8픾DeV.tECGl 5  B4;v߱X^̝](nvx,dFͺft vvJK8|IGDZRck:P!tcmh n 6GmnZW3-E956F Vvsb LMMNG˲l/w0BRչs{?_[kM:P}f+4mE.qwyhssś\Vf۷hQ}ѢZdNMS|or"MMϟ7Vc…2_e[ږ[ކjr.WEɒVߘ؈-uub].kVl5䥦IiXPSӞ XVYvP-Uq:#H&[S~u[Fz<n/++aٟp-Jqm 3!U&sjQ(F3 EsU*҇(^1, 剪1<%qdދrǽ12r8?OZvvq86TWשTQtT몪F3Ȝʇl fjj.0,۬n2d;E6,xw:Oj,`x!ʮOmYiiXo0dwDMWjj,#u_yw--V)OUWKM]ʱ:KK;C9gޭ@R嚣R =>+,&15B5Y8ۂRl ,H tYo\mm絷Ki.6mHuk뒽{؎[szk=Si]>]J Ǵs.wiXVԬ15;y~N'uja;-5)ma\R42t>ɏ? ho$}>3L2RjϮر9st:P9U^`Z=zG:buvEl.Nȵc&`/ oRm2 y*՘M)vC 鞨)e-$ NHG,&_uNUU=0Fvk4""<588L8I9 p %{1BϑlȐӆ'p hHdx/p0`˜}irzYFjRi丈(>=8(&t". CYe8M[ʤjKW`&pƭ IIv! IB Y(Nt*,'A\Xx#rڰr$UZ T|I9[]"!zirNeT, ` u;prڰRj ;5d,?.Se)o"PH צP|V ͵hkXfs)`oCkkoLEI9n `!s h\)J:q7V +U&Xp$OlSꐆ5 s>_PϜDuY < `̫:jD|eo\k8n$ȜiCkLb1)[pј/O4@J )l<\d4Vf]lS@2^:Eei6?(R`zao4:_~{޼h}iJolq12JBQTϼ>t~#KuL- zƛ.Ta\߲X7GkiрT]K8K$, S;"ejl'7=3pvӹ i^)$V攌 1˿_l4jD Bll`XӆzfQ˲6Ҳ4Sқ}'DL~۟}4sjjP:Qx.;xp{(dJJtS?xZ![rP0ZE@W'I*yxc8z2ɍ:&U&Xmq BRCXq88w䩶L]PJ%!Jcw9\Z߿k,eَXl`__S26,[=5(42`Ba;gW$#@ÇgtKtEj55.t8iqZ/Hǡ( qQr("zVdkywwdsEEEO#khhhiiq8ґ^t"d MVAmeuZWEjQ*C8Hn_WU}Cfυ*+hM4CxtمRTDEѱk׉WqI)sm4)XsyǠP( u>( H$(Rx|w +r@YB>7=m2m<%73vxЀS BP( u> j(j j ˔|/ͣ)ͳPV CMM,\xM޻NM BmPcc ;?FoCqt)P_hGЗHIk  jYYVM$O % "4T%ϯ2LuQk[c6՘tE'(ZK::ҏl Mw,xMb¸u5dEo&&p<~{2/IY#g/} Bϗ G.&gKI`"! IH"a8/#bYSiˣlRua4\٩߱øsgGo+Ufjc %k4Cɤv0'u*^>52TFs^?IHq De:\=ԐLF6&_ٿHRywyt0yt~dM0R/Ƹ& O7r@q3'4+ݶayߘ 0szZCN;ZTo"a/Ky>LɂKu8Fɧ*MuH#t4ȭ! SgdqNgU(<+E8>'+gl<\d4V<N)vʝ `j5pH2#ԁX,,%,MAe٠%%Ș.eM J^b=98WFkF !GJra__}dZt^vƕzYi溺D¦P0fޑ (U$*oY, {KZZz4#( u5B{˿l0,\jl'{=HUrX 76jY5.ykSB}\_UuE<ImM6~۟}4sfjP:1 '8a8|㮞gtKtEj55.ti{\vPH0g,'W WZ" ӓ$dټhW==w9?ӱX#GnԳR`(m6X7ApPH ?|4r]En6(ƬP/&{(TR}`@>;ԕ[<]HWwuŴ,x̴ɸCC1Q 8vQ(zX犊I>pHG*{{tfoK'L]](!QL$lkw?lsa));,eIKTvxuQkwh|OD( e`(xb.u>(GކhsGea椊jkKXk"xކvKɓ(:Y^RZs3SPUfS!Q:hsֺD'7l-57/Ztݞ^̩Z }*N9*lIT+Ϗ45mv*R%i%7:ejDR}6Դg+,j~('-(VUUT~YvSNI4ZTri)0`Ji4 rǽ12r8?O!^w۽nAyYۻΖz&,U3 L %U$J*բPDEQJE+FcX ;UUc yZIIK$"ȼᎩ+q:#H&[S#\plS"RUUPT>dkX%Oκ _ӴZ5ˮ0^Hem`i5:ej}ߵX,[T>U].5vQNZQx<4]JZgs|EFcFI43LR`X[eTjXh9z=ʎkk4x[*r5Gz/z ϟ:eje\;vlN%YN('3t 8)Ms\** ~pTWX,Q uNڿlRI%z#1:\ٹ{³u8!vvO˖{ZٚgS H\h4SnN?Uq^{4mjLz/cäPp5Z8n 08EDn2uTaȁXlJ5_)""<58ˊ 5i41B&:fDP2iٹs̩20_^f@2{˟B DJO%:'h F"ZɕVfH?ƹ홫 ER?Y/n2w:/|2˖hl ) p {43REb2@ mh[KK|Za_"aQ(/SWNTFacdD}\_UuE<+ʜ+{jEeIBQ=ZS^eaYXκ _pcTmv,kR(T&F1!S~۟}4sfjP,q#7>+1rewG"I7iu\c?Fjj&{(TR}`GW`j)$!FGhq޳~75b06mcnN&/9ppr']==yKi cl KC_յ?ӲlG,y/) )欒%:542`BDb\w,nNHf%:6&S딩]2Ruwqh(&"!vw @\. zVdkywwdsEEEOޣkhhhiiq6qe!AB5IDAT׿ JDg] <}'5N:Q;F `"f}]UUg<^{q}.+\!rJk3N.PNZصījxXx:ehUU \1(ʸPBP(r|~SJXP<经NRu>(⥬ry38cjJ BPf|P(JQs3r\CQNjx)}ۓM^"uhss…yfv(x Cy;ry4gz5~iUj7&6bK]q﫨6~u˚5˘.4,\mmi…WX,R+,;vQNq)a]e8!Zq:#H&[S~u[Fz<n/++aٟpZ"l) SThGx>} 8M*բP<`0(NR>DE@aQ|'dX,OTU)7Ni%%-@Ș1uḫqok2q۵P]]REDѥRMO#s*5,'y _ӴZ5ˮ0^Hem`ĩ~VZ! 5QǕ #u_yw--V)OUWKM]|{Zds{vt;_Ɔ/ /ݷv 90zUJ&kJ^(4&]'_V5663SP,W8ۂRIl ,H \o\mm絷w/F.3{[$Rںd^gk+iɁp^`dz={>ͼgK0wXv\2 ʜ5iނW[4jعSI}^?Gidd}ĸyhhE{|e-5 @FJͲR]];6R3JL]|{Qw^tH$L0H@,S=u ˜2 :]k;;DM$%E1IH")p BqJ55ƣpSc{:UU8_TTP%08EqB:b1/s:h1zf^(Q00dqM̩|<_24o(4<#%{8[LvHQ*ŧE`$dE91zV4-a8'VJjK `_PϜDuY < `̫jD|eo\k8n$ȜJhȚH/5ru3EFceV%:.SdbaQ,ao͌PK! -)/,s]Գ^v\SON&M-|&1_76JIoTQ*gv:KyU:MNeK]#MM.=pobYi456H ɳS`e<>05ң pؗHXwD"Guzټ+O$$of{f\Qs}URRH)7V=o^[4JYޞ$DF/5rU 76jYT6\Z5)ҏHzxdfLjL@.yykk,\Z('t棐<׷idD0f}}y $۷&j$}6yGOK8#dk p]`ÕVHw$ Ye64ܮhF|:xmw8VlnmsK0lqWOOk߿=Ud0D yl`#Grk]ꮮe;b5σ)sɜa*)Y14,Q#y _x<"!oץ:K[-RYvND dDLCC1Q 8vQN$ jeNwwGF?WTT=H|Gjkނ+Pgn0H/b0e׿ JD(Sk.ٴ _'jʐ(&nUUu㵻wϿlsa))+^/]vP&ETvxuQ OkO4yB9BP 'GwP[;(%2/鎭ERL[cMlhn7 ejP烒ezfc,_5NjM3JJ2gx|Qܢ/x#sWHꚎ5@"-l>7JqBN)iF:rOsOCCq81jj.5Z_L= _ng_q(c髱5k4 D3JqBg> 4c|ѩFեo8T_/rmHn-Zknn_f]:XCf}݁jR/mySO%nR݌Lzȑ{00N0őd=</-e^YTn??ԴH)::?&`K]q﫨6~u:j^:Tt@}}oM.W]f2杨.gjK{md") >W[jjڳp 5h/S(E u> #NgDzokjƜyZIIK$"";q86TWשTQtT몪GJXeen>8<:QPT$!u[F(#бlR)'g|:WYᬭ;ij]a0J'ۂs4, B7ƤrqWy9gg6L]9 ,5dQUu#Ŏ1|]9 ,5d-9J"/. 8^Džg8Znjc-`0$?0p%u9 -wG"[FFzaJE~Nſ | ?'*P^J&yYOJKڻ6sόb,/mg#6^H!@ViiZz,e)Rp)=Jr)[_I7 %bGrH}1-[L9913:̣w-w)p<.(8-@ E^&*D eY5붶Y*եzVVkK,vIS_ X֐yodirf!ʒJɲDԙZ;g4M{8q;uF }7I\0D$c~77Xi2-鈨N@x^"Ci)KzOoA,QN&lk#yyÜ yWՋu5IA\kK  "LUc Vso{eMM{ܼ3.e+ !3n+O7eII$"li&'c6UͲ1l @t`qdD'&jA~>le2_23&"Ln'N'=b)"!//?ZYbj({R0e{#˪X%ҲOlY*UjXvJDOp<.(%O2 `(ɡn58Pfn߁h?r=`e FwRqCTv#&KhX;&?&3v{3ʞj?}Xp[vZWlk <=j{z8_h\k1mC$#ho°e=R_i% Eqǁ#%%oU1p|B].T%RBòF\('!íƶ`pNwQ:]-kLpG"qn^R֐ao nQ[<~ R}4}zC$"‚쩞xVY.)}3 0AY E]F"є5dcC}ȶ`ckPqy^~r@?L\ŭJz Ro*ikk)wKYI ;8OTPPjcb6Y D;BkEal+y,{4{}`ԯ|={);dv@ax?@ )եz}\h>Ns4:,{_Q}EEcґY]P̙]վOgqrbWn(/类c8DHYjr[UPWwV;>|$Չ/ V&eQ/Oiq8G1d:ln^_LTrN]YP4r<[!eY_jt&[Ph̻h4 tu]xvNî]fz'OɲJ 'Z 9/kr}(СSa]N'Qg_SCDъ,ԡHwF'-g'/> BAȯ_Y'*(eQQ&{kŖte7&Z}Fbً @߮m'g6[M0՝JK)aP*8fʒꁢupSF.(pcD.j9nRyټYv_$R]H'_z9mڂ!i/644ED4Ul= A0M*ǫ@ڽRew%:把)J'$T6ΞMDa㡴.eY%MsW; # _i0,jE u:q\j46xcGi5,){>K5P#Nq\"csor.6D"75]׿:eBnRy8m.7WT X?wu};9NSə8B"\q{煅k;;ÃɒJHر?tvn2%}h1/& 9Ѯ.x'NID~Pj"dr3I0] rRŲf3!S㇢QWror.>vGx~cwwk<^PTT3~ H,FD}dirfJ,y^zFZT=ɤA& n7OsXϠeiL scFN8MhF Gal:gk4ETGDTqLL!cMS.;%:)>K2H,Y0Pg^,,US4a~QXm}y\%MvWꂂRH 5ĨhVKD|k>HYI49_R.oZoZ[bK\2<ʭ=/V(R!lvb@׳493Y&#"w"!DIAH$29?K*%Qgj+a &1#̚RVTfTRg1(pZ- njnܙ〻4_up$N&lk#yyͲdg8iweZX[3;8nV;UlF9%\=~'XTgM;RhM%C[[QP~gFlj ƛLQ\`"18śƉbtSTQ\.ӱ)8}LB>L[le2_23uaI3=!SFC<Dz1(5&vK_F"}H[<'hQL[v mmk_WlkmDfTM1{aLroWm +A]g}Ǐ!3G{jkU*"R|vV[Tf/fMGǪcǚQ Ft:'>rd[01yyyZfT\^C$ߵK|BnRID*46{]a03JbR$8`ܵ`}^{J8C Α#C}~kxbRI0Dnc*t;:J,6Ljձcf>yNܝ"b,(|o,&DP[$6G+KptϞy-5KeM>P#NC/s5KKY!37|<'*sWEKN̛ə8B"4ڵ1"ya:},T,+d1ΝoTe`A1t#<5'*> /jpt..&"˚e2J9xAg"toZ2?zzvn"Fi㇢QWZJt],kfT[[-%MMӾ,,k;d=K=@D PƯ,ML%DBDB/R,uV~C.@ƞ-7YPcgfΝ]ҷ&DT6?.cޅ{+"Gj`8B͝:dgdi4xu'ܼ<.UH0e Þ 'NVtk::}o69ᰃhShT]5ГH,kj*ݳp)WTc&gF.e {0Gsʾ3y O.W0G'bq>ݔ%' "\.!ۆ3N>ޭ `(Q(Q&G/x?}"bY.`$xGGk;zoߋiw%p"Z]PK&hORx璽]e)kZE.wx<\DdۛY1dY!3L{ao"f^&%8!J%h4y,n nJZòDIo"a˟*-#uR̙ɤQ&!?G7|o t}]_qݛf(=ώ|ϭ2k{{n)>!aAccTy<޾Y`wӹ; ~---DԝL8|Pj'lmMޟL^x^'P1̾H䙁~<F9nio$fGOtևBQAxeޢ-HC֤ 4 YRxI@$W;>1pB"Z/#Z3Xȭ8!fo׈}g[0XT^Gw?>&gƘ5d=ODi*XvV;_-&CXuXS4aCN}Gl 99//oV O]]Qg. D1q`a<Y,dk֜"[UUU___PP .)I=zʵUU 8a˶TV~XTR5Nؓ{^. ϻ "պhcs {6_I.V v>BN&g`xhy^y |E"CJe^z7WA>NC{SЇ0nݿ0!3w`0x$+==ˬn ss7<{5ku:>@РQaabREEx?m_'pBZ3aJ|G?2Avs1xRPާ]>P©T9Aߚ/ D-{1ڜN@2'nmmK"Klm_Yusc/DlRmbNlh9d"W_5׫gΌ?Řsf~RW>&62U/k^&"e:*;g͟xв2"O[}>9IDr0}z3REDa"Xw8Fc2D` >&NsVᬇteڢBDý!nc-d:z#x"dJňh"GǬ.'ojݺz ]NW&pX~))JH:)szY7'ח_Sq0o^DT[{8~\a2%R>fKXѓcKV֐en"2Fh55{w;ۻě@')R ƛޣMG嗍 C+Wv}& DTS]( .bF*F)@D>FcR566%(AD,eDbClhy-!D`=0i3X"}gvnU2m Ka6ja͜ŒD8t?7Qۓ-n!?6?|oL+=̳Zd .`)őPS͖XS7^|-[I7+dB1B bҥ3q":&?o>DQH\e-a=lG_{lx]0 T}v袋CD C2 n-;zc*utg̙̈ mХ@>&cgf66-.wعo(rQyR","[ool~YwxuΝjA^0=yf5G ] Gm'K# A03JAvEhz+3U\﹈3Mt/ As.m`A`ƌj-WХ@D!"eҽ|OV<ۼ0Ѿ\)>p.}iI&![UUU___PpvIIrl]+19vY]n݈<U[sܾ"^a.3#}MA8p$$$$$$$$P\\N,o.~AoN`l͙30&|??|˗CF @N***^1p BBBBBBBK`RfࡇGJK?jr"|/2|,Fэ7}k1!D/|gP_}uKYCganL^[oϞmXNQSӽjU27۲eK ())Ao={3[7"PTÕO>)s8k˪.8sgp:nmaJh"aic"iSL?\\wס#CՁ}y]y#!ujrbY"". Ol۶-ZhF\͛77xY_*++#Պvv#qc޼y*x UWWr<OaaŋUD?ӖD"a4+++O.jhhػwWTSL;w\.8p&d2iӦ+W.^?/--Y>wu%2]%~"5k#mp8K.ꪫ^D"1W|nYg jii充Dok.\βܵk0HkD",˺vܹuVo4޽{y/S W>`z6lx^_}Μ9#M]jDTKn7ov}}.pu]s5,xXeTEEEW_}^fAzyM2eѢE [nmoo߿e˖D"GQ"'+VG"W^yf/SL ~ 7P^^~m\R<9l%vURR2jkkkkk7_G}駗z""Դ{X,<%h4{{t:E"qljhZJ5sL"rxeRCAg >&8S`BNGDB0ػz\xᅭ۱cQ8|`PRq79k6Of*A6ooy2,Ɉ_1 ѥ<;x Büyo߾q{G]x^h"T4 cz$N&/Z[?~EEE#?| y睩SZ[hNޝǂ L"s=KqJ˕J_?`B1/L 1 8 CV_{+qM7t9|'#ΐ??GDD<mNJD۷oqA;v7o 70K/{]wu,RXln ~"bN6MPtttXVqq18pѨ84??_.G/R2ر ej|OȞɹ+0̛7o޼ymmm?|wwzU]}ܬf+V\wucuf/s\}yw!H|e-oT*-[,K,C1c޽{}>_WbXaa̙3 EMM_|e˖/e`0HDgyFc4L&a/_>|DUXXx=&k_3>d{6mx;͌Fgqȑ۷/[l-Ydɒ%__/1=lGn7[\K._סC\.gG咹B+>cǎq4c qU]]ZnhhaYl6;Bћvҥ[lx<3 `l!"eҽ ~...0 [UUU__/>`ED#N=z%'@CBBBBBBBBBr'Sr0 Ƀ(#ژ6mڀB!"h4XUXUXU0b>nݺd2j F# ҥK ' |||||&%%3K0BBBBBBBBBBBBBBBB ɋ. \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!Ix<$+ ٍ?m{IENDB`python2-pythondialog-3.3.0/doc/screenshots/snapshots.debian.net/form.png0000644000175000001440000012623312522230705026371 0ustar flousers00000000000000PNG  IHDRS'`gAMA a cHRMz&u0`:pQ<bKGDtIME SIDATxy\GFDd+袉F c#D M6FFc"pw .QĠ 0\ 0=C3G{zꧫ*@A1 T  ƄEgkK.AyTU|LdJA >0 !d: *k0TF  ]MނfۛE* D dR+%."& Vo)h5{q2a( ,DAİ7Ra*kXb XB5d?PYCB_,Ae /Tz~;K.A.ZwM 15CNl@$Տ 5ybJ+X<kxʇAυ$ws7K"_3]iRM%XCx.6s_C"pgR Ț]^,8 U0Ø2hPA+? F1p6|`JS  U D U ?;& '*ȒCa2.ˁg@!&3x82 W_R >3n)GJSЅ&Шy&*Ά^:DAWGG2zp681^fLgdJPq'4@@=̖) ! `, ``e#Ű`p4Z J՟al3ePvJo Z1ue2 ͈Kh5O U 3:VP)l~!& H1! ::|(L ;-3o7-ȕC`CT_4l:X*EތkTu 4kW`'3l(odRn%&d~8xp|m^hVbX* t  ,8x]ϑ7 ?HWZ,`| _̡\YQ"\{('łBzAA^p|qL8p dP߉Wj_gw[&@2J%Ջ+_籰xb@IX%OO kT%jWAW b,:|k f@_nx&g^2KӋ@;qU!`)@)XP XJP#ʋͫ *f[ j ˔Шsf< +Q/;6AAEGw&9 QA\ĪX{ ~.&R>W(%ϩ`;@H\j=S8m'YY<&|9<7M**Hnυ'|xd|H+CA1q>k<94daQ㟂2ehM%pCV`KLv7òF(U;JXX2d#@@?2,0#,pfX Wll/( dE". HD 4@ @?J!|R "_I=" Q @箶VЗpG\T?{d$af p_ εhg /v-\Ā“8łAA^l +` E EnL0'&)jAA4oAAbň ң 9@^ۦG?)jØ:4f,U+Wϟ:6 ҟjZe2LXJɣG={/[BB?dCo!5Qhĺys5y`cCfiA=Ay?p8JPfj4xyRs >_޾8xCg9sj\v{]mP'iS믋]35`@ˬYb++mw_(/g762TnnkZ†Fz[f--@  tH =SM*dd_1TBMBz4| ãǫ O~İxJ98̔UU￷ˉ?`ddϞ,@n9㘛+9寿ݻg:p`3|uI)<~;+͠"=ݒT#f]b^U\61)W+?xV*ABTPUŴpvnJO[ x h!hu_- (.6-&OG'Ƣ5oտTu*)̦m3y>-glbbLLZgao/[*3{DOE~tyMgTTwL>jCkS[[9TUmSTdFmJ2&Q&0 XtH =kECN#&<.|·\tn`562ly_5JnD<~0яHvLVN: ffJ_63S**X( ƎGxy#P?w>Crt2EEfyy6[bIo>`@2HcQhCcP)'QTW3++YNN-7np~ټTT07WRGG+;ˆZ;V==n"bG+.r58D u8Ir462\I +XRn<^(Az-J?Y*z: AhCr_?9<{z)?f}:guc0*B$_paU>rz yU;;? bl C&JH()A5]RGǭ?/cnr#J￳_{x /FD !2 T*h뜉_Ec9Z`njaäJ%lhJ55Ш7\ettUm-4;cvF7{=G_+VP*[8~d\R&#]3\nSafrpS ;;9A@m-LQ/PfRƵk\DàS.O*L&#ƌ(DQJ ֋[mCKl:AU*P5LFܼih`4*2;MLTV4/p=b@c##7OJ:{פae9qҤ:}mA^/ BmWdZ[[LFZQ_ӧLH$̿V3(4&ѯ<(A6镋\[NN-b.7wτ|oS.'3wϤ3&=eSs ТPqZ47Ĵepo]ݿM?[k}J$O}GhS OO(t4`@KM ؔR'iU:yUUU`kKtqA5wuppX!?2t3gg|Gjoo\>}Wj[U@AȠ  Q֯@% .|  ȫ†Vnm2N  bTztRa{DGGuLB]. P pwwx vkٳuVssѣG###ǎ{lpi]Y䮟WN8ҲvZUJ pC$D"~:=:00PL&ҥK vkl[oEB5f~^۷/p8tMp>}zԨQ^^^ o?C$m'ϟ?SWW3'XTTh"Htq=駟xxx|'L2p@??{'o޼) 7lꚜau@ggg=XnP(|d2jϝ;' ޽*% ;wvAoܸQhm [dQ97|z),j׮]ɭfdU>erl2j(4},hE,myQ[(e ?q =z4==@𲋬R(І_AAAKaQgΜIII;w={rsssssu(ŋ;GЖ1;XfQԱ:G-눐WHoնvvv.]r Ɔ GGG }1cÃ:#u,ҲU^@ j\nddK-͛7)*B mD3gT*=|DDy~~~hh(RXTjjĉ?C2Ç46QEvZFFơC&O Ǐ׼L[(bQEaQԱ:G-눐WHopvv#*++uFqwwW(~vvvccce`ss]]\\u T*ǍG۷cL;exϘ1cJKK[Zaaaaaa< .K>K $;>I^Ԇa]dmBHTZZ|ոlLv-r RT%VvvvzY.=իW4kbuK1x@2EG-#B^6 [ ɔd: :t߾}%%%gZj> `RRҡC/^wO'N9 |̟?_R  5R3KI\ @6 "k(ʢW92;;VAVVVzY.=@MM@ P{NR 9 hQzQj ~NG5{l#'x+V/J:sxl6M<bO8Q3}MM ubXS,s8OsÝB/)W^d 77 6_YCEYZZlr B#^*JzQ4Ч2a#B^6K}…BPOl'RODs56,,,$666l6{Ń ͦN'++K>>>QTVdRE(ٵGd?m"KDXR͛7ccc/\Eرc4W ^oc>J֭RQriDc>Ϟ=JJ>|cǎ]~=88633ѣGsI cǎ?Ȕu0ydoo[j>^zΜ9l6;<< Kcbbϟf͚܃vFO… aaagAO]E$[n֬Y_c^ ݱcLj#offz)ѣGiiizΔ^3fLppp\\܃<<<ʮ]vPĢȋ$G>qɓ'#>^["t>gժUG}Dgzzڵk%h n۶>rseee:c͜9Ç˖-knn:uz ;۷o_t>㴡;wܽ{~m۶N07x$qqq ,hhhILL6T;\.'kGU/^ 1cƃ9rhB^S#3fLECRRRRSS={t.PĢ.=m@ddd^^^RRRmm lBזH#B􇨪[[ Z^ǏRƎdɒwyIEGGWTT? ]joo\>}gȅP4RJR| xAZZڸq\3gb;JEn :o>|XT:ԩSyDŽ _u t>y)۷A_EAĨ  Q-%{:K.wh ii8֭[ j?PATG9zիW_vꔐ* .&88:<::8-6߮z׭[G՗ 3wk(ʎb^$8AA<yٳ'>>… v1:֭ L&#s0LKK tvv?~fs »wFEED\a׮]C 2d͛_Jn5tҷ~$ Y;wر,<<ܹs.\x =]oN0!66Ν; ** N666k׮aaa%V%,))Y|… 7o\]]}EDbiiIJuqq|2y߿9sŠ06jnrww .\8f]z߿7~g2lѦy}:$H( E E/tMzr###۞_`D"ٳgϼyD"QBBݻwbvss[fͺu<==?UVyyyA)))^^^$"44T,۷9rd0l0 |>Ϸ!ODRTTڪ1cn޼IQ.jmPr𲲲TjC]eiis*5ӦMS/ qƹsq>I*iKׯ'oAa6ԕfy<^PPPTTTjjNشنRxi&.0bĈ+WP*tvvv.]R'hח fC69$AjEQ ()zQkZXXXXX#ŋ_*\hrQ)7iuK())СC/~駉'9l4 o߾ٳg{yyZJ⇶NX.bjfl:mG,2Ef2i1!xПaAxzzKKK'++K>>>1yC lmm>}JWTon_?RB$77CpBPjwU =x`MZ;6X n@z e6t&QE_B>c<{L*UUU>rWfdd0;v>||vsaPPPPPP_@tttBBɓnݪ\LL׬Y{W%KX$--MrrrZZVY/\&|>hAǎ?~<$$$P/}GB!!;v=RCKuVѣG8qɓnnnL n2laAg*BƗF>V$?#򠼼6m]\\6?~РAcǎ=~ۗ.]jbbV9sÇ-[ Ι3痕uFBmUI[BOOkJ$?\μ!FrJbŊ7|S34222///))v[l c3wr nM@Ox ; ( _BATUU--/cA=F ݝ{@U HϦ;//O>r Tk>A12|  bTpboߎJ@W# t>A1*غuan, Z;ܹscccLѣW^ jllm+%$7Ԧ@JzD:7tzT-G^^ޞ={/\k. JN8lX =tua''cǾB ;Z)] +ҥD@U ݎ޲ബf[mLKOܬ  ѣG_̚5kӦM ҽ#֭ L&#Kԣ>VV֔)Sw^=O}||<<<ԟF"ܹsgǎƍ@,;;;k~{D(ӧO_nwJJJ?Ϟ=:;;?~\N>=j(//ԕB^zEnnn޲e˨Q\\\BBBth8t萟:MB ?>$$7&&N"kjeҥo>V-ZH$9;;2hj7ȑ#rou6s »wFEED"S66b/!݋,^wnze055%srrJeۏ_v7ߜ0aBll;wATTu^'Oܹsgll޽{שSRGr9990k֬ |~XXؙ3gf̘A^|Puqq|2ٽΜ9'8p>@FFFlly&Lzj+++}y|Ǐoܸ>3f y磨 .ŋsrrbcc=<%{ܹ7x  f'&&xT'|X$%''@HHHQQQjj>G}}""".]tEQ)Wk׮edd:t?~:_r1M6q\#FS+ZB \ЋE(`ڴiӦM#nܸq9IOB@//mA"̙3 Jϟ?anngs1c@( [mxyyݸqofH_mLK1cƔPR*}ߕǏΝׯ߿_= T?(Jz«yzOp}ܜ300.u>ɩz .իW&M>8.%NuJ]P٭63x, EѨJhnn޵kWppKzz:= 5yi DW^ΖdnDz6M57ц>:G.:P__/SRR\^0|JUQQAA&|ۅfO>wC-,,4rX,'\ޡkERT3LLF}=ziF phB NuJ`С+))={תU^^, EѨJHJJ:tŋ~iĉ"$h-GT]zuȑ---Os Wo ##=\ <bO8Q󼽽=u,6Р>yL3g>|ϟ_rfPMM1ɴR*4Wcmm][[!]]fd2;oFmmmsG;Ç3l6[}fgAxzz?KKKϔI$zjXtǏكf2O'++K>>>/R(KcǎmjjJOOWQ?Av\mJfЅ  B=Ų})yRn߾hRKDr:W __ѣGdϏoPHx77Q?^\\]:#Ϟ=JpUUÇ\ַz9sp((((((/qG}ĉ'O 2VtttBBɓnww . >DV7&&&K,YbooݺVZIGAyy9;۷o_tgȼ lٲfΜe˖577O:ˢŕ/X!&&&11Qo"FrJbŊ7|{yҥj.WLgzzڵk%UiӦy慆jpԦ(zl۶>rs6zh偁k=z\Al( [6ZZZZ-bEQUUDjo 555%%ƍfffkiiЧC'..y߾}h݂joo\<  }PU\pŹ~ii={f̘yTbccCBB A'OΟ?ET@Ku .Yh0oќG "˿A*nN  1ix1킯" bT@AĨ  QAAA  FAA : t>A1*|  bT@AĨ  QAAA  FAA : t>A1*|  bT@AĨ  QAAAÝK #::֭[7er\(lܹ>|( ݻyRgKppfv?pڴi=zի 2*;>ëjB>SܿP(lnnFtX=x/&deee[n~ www9qDKKڵk0G;vlwEu}z^瀍1&=D"_G ?:ɼtZIקo߾pry/WE'm鵝6"Ę8}Q yF&i;zWWW__ߘ:}2O}||<<<>VAYYYSL8p޽{ɓ7o 6lpuuMNNNHHpss۰a:VZZZ``դҥK~m}ծJCӧO_nwJJbڵkȐ!C ټyR֡D"! Ν;;v 7nHD]d^k z;wN(޽{7**U$Nm44 ڠ]ڊ-׿)dgg :̩)**ZhH$rvv S`#|#B:O?q>l̘1dQ*ƍkd .ܼysuuŋ%%uF'Oܹsgll޽{שSA׮]{7'L{Νd@EZ[[/ZhϞ=QQQ6lXfͲe뗑;o޼ &dff^*""*(E!!=m۷O Y)Ԋ 77dW޿9sUPPP(vQ\\@=rsrr`֬Yaaa111@SuU޺u~(,,\p!2XXXe˖͞=;))Sڪҩr"kŋǏ'㦧2dԝfb{{Dk 0hjjR?hFnDG}}""".]t(Y,cÏ~z~ȑɓ'aFJII:x Abx߾}`dϞ=D wׯÇE"Qrr2v(h"##jEQfy<^PPPTTTjj>fKKˁRSSM I㱴$uuU2M6q\#F8{V7|SϘ1cbVUNmt"i/^;wNS{@kcڴi57n8w>ݻwM*{O#WNovqvv#*++uFqwwW(~vvvcc>(bsR߾}Ld)SA3fLiiiKK x<A\.W"@~~:@rQKHC*E(8p ǧD=KqݻwOJ'''.K R'#$$DL'M畝ѼљZn[d&O\YY/͛7?~/Jr9ENBB'''ڠW)b蟠\.*ІzFH]G`0d2y͐!CKJ POhkL--2E^ JOO9rŋ F-fNägϮ_d۶mI>͛7;_=!|#22222ԩSQfϞMq=cٚcb'N޾:MX)9RTg($ zMM0LFSA1:WVe]LGzr"Sqԩ 6̩<{+ Ɔ:`t.\x!(6,,,$666>|xqq+:OVV˗}||tƲ})yRn߾V.=%_G kk޽cr7;;{mCm:VNNΠA:xXZjD*iu>Ӱ &O 26h2u^&MJIIJJJ٣S7sJԤ]H$CFd@A^|ϳgϤR)9YUUC 8;v=ҜkFtttBBɓnݪ^zΜ9l6;<< Kcbbϟf͚܃?999--m_}UeeSBBzڠNE=ĉ'Otss%i&&&K,YbooݺUԱJJJoNR… aaaׯh Q}ӧaKQ.z&Civ-S~zGGGooo}:6s ;Ft2 lD2UGZ*33<裏ȃrLOO_vD"qqq5״kc̙>\lYssԩS5_;vǷo߾tROOO}-BCCwܹ{oa۶m0|𸸸M6%&&Λ7/44TJ\=t**222///))v[l!ϋD#G\bXBω oo8 -[~فB$qqq ,hhhILLW\LT'Z֙WDDݻ/^g`fm۶> Ι3痕a#겍 lm..hy?C!>>޽{?PXR]]흗 RJRj  AAA.H/b󔔔N~A-8/]p)Kٵk*A䕀. t>bܹ wܾwV[HIpp0s4nLѣW^5NtRa{Tʹ[]AԶa|1xnXoXEuJHϢu)/* ވY)H'AKsĉ`xl/>x?C#._՚Am7Cz'.؈ (aPdcJt\ѥ!p8ݫD"_G Dh6z0K.uFd@ {aZ 5=䣨hѢE"9(( rСC~~~^^^ B駟xxx? yN>=jԨyeeeM2e~~~{'ӧ[;%%EOΟ?SWWsΎ;7R:VaKbts »wFEED"rZ 6 ---00_Y/mȑ#o4?+QSW["Hڎk3zAzb7JJJB!,N!!uk.oood}'tZjJOۅv ?Q\\loohccSPPvZ@F޺u~(,,\p1cɓ'ww_uԩzhkko>@?q>L׵k| &޹s'99Y DEE(77dڿ9sPG)))Y|… 7o\]]}EDbiirsrr`֬Yaaa111ԦCX4hiiT>_lٳ NkvFFFFlly&Lzj+++_^hϯzVh_999JRfC9hS/ ;š3+Ϝ9# M)$RΜ9m׹Se.(LQE&!.^ |L6mڴiq@@7Ν; ƦM\È#\B#G&OÆ ~%\.722EDD\tIWJJ  `ى</(((***55Ugoׯ'oAR,Rc;Ϙ1cbVBÇDd )**JMM|P[/ !Μ9RzVh_,ѱ)mfC9Pw̙111O>%pܹ7x j )ԉ'+D";iQR UIQdmRU .ͻv vwwwqqIOOT:99q\X AJXA۷4pvvVD%rssLBk0f̘Җ 8PLSRRsKwwwBgggɉiM rI3A~~~Ț&H$*--mnnzj\\\vvL&uΆ)K}Q[/@s߿.ERW)ٹw.PT%EU j#IIIgϞ]~ɶm۪6Q3 L 2竃lll:/d655@}}\.OIIپ}ѪT '''bZԡC۷СCgf0zrrίyRC .)5B}iP__iQ|>_*reLkGT]zuȑ---;4O^>O}Q[/@^6=}ӧO/ZuuuGvVER] =*)l䦧RWKw>Ξ=b RTgf5 x<?qD:h3L}zSN}ǣFҹ7 @jXi&<bP{5OC 77 6_Y!Sbn_K9Pw̙}W\[ZZlMKREWIQd#7=kç]T*USSH$:cYXXHlll,--}IÇ3֚wNiiiǏꫯ*++ӧz%CA!Nӣ]m̟?͚5j mAbDu͚5T_+ }={L*%z!S[/ush }9}C!!ucǎ#F߿̬ՙ.]( UIQdv*yim۶}\.wΜ9|>Lg3g>|pٲeSNm-C1vǏo߾}ҥ&&&A"##򒒒jkk,Xeug1rȕ+WX+V31陞vZD矷z'..| 111XÇ۴iSbbyBCCՋua@(ЩyzН;w޽ouppضmW]Ѽ6D!\.'WkGGG }Z*33<裏ȃrfCՆN&%%')$`ƌ<8r >ڵt)BaEJ"따EW)+[[ Z^C_߻wO;HɦܸqC:QTcǎ]d;K*]CtTw_%TU? Җٳgƌ<T*z)$"#.= #RRR:* Bvvڵ tezARѣW^muf뽇vbucVJpp0wttqrnJ}m^/[m7o߻wCՕaջtRa{ԺDzBO=O'N 6ZAEx϶yKhrXx%i5HN-]=<<&t7lӧO_nwJJ2|>>>|y kJ:;;rk:;o;wN(޽{7**U$k5gtҷ~ч>rsrr`֬Yaaa1119DyǏoܸ>3f i׮]{7'L{Νd@E]II.\y/J$KKK(..OLL)((Xv@  ##Z[[/ZhϞ=QQQ6lXfͲegX1MBX4$+((hu׷3r-ww~p…XK}}}/^HC 0`(v?կM3gΤo>|'Oܥle$re9߿9s>>{_NJQhUj####66v޼y&L\zz'3 V[G ݏ-,,LLLQefϞTVV`0hOX[bYZZgvvv.]r lRRRxxxtDz*++@&N2 {m̘1---ԩ+?;;[{Iss]]\\ɼH,,,,,,r%j ۅ"իqqq2֭[]U%NiBQ'O_͛?]U*UaazݽHp'uͨJeqqzo߾ꍋ nn`` 2 :+ݎ@`` ѳ&M2-d655@}}\.OIIپ};RT*UEEEjCݷoߡCfϞ`0^dIIIgϞ]~ɶm۪DA2i C. 1(]IT*^:rlAR8:d:/ E 0+==}ȑ/^4h>9+|]]L&"_vr\,knjߊV6OM3/>/Jr9`2 BZR2dԐ\;t;Y7vib'Ny^gSN}ǣF">{+FKW"F-???;;{Æ ׯwsssvv30P+*""ԩS6lHOO|%3t? h3L8cٚ ]`'ӬXp9՗+ESܢ5gvrڅd:b6c6|x<}IlËWXA; :t|PTMMM1D;tP#A }$lٵGd?ֆ6K&M?ٳ3啝`)..6O#'{Ǐ ;;{moYXXHlll,--9塏ͷ+OVV˗}||#FsH̰kDF0rڥŝѤӧOpmrΘ… aaag(z9sp((((((/c;v=" 8vDBBKBHخI(֭[7k,[ j@md'N8y򤛛@ iK]]]ׯ_gϤR)yqUUÇjVDGGرcĈƱ$خdɒ%+V߾[+:::!!a[nЦy}l] cbbϟf͚܃Y_YYY 7oӢ `GONNNKK?~W_}UYY^-dLENzW^^`Dǎ{۷/]Sxzz]V"|U۶m\9s|~YY .6tJn,zrrikvQkC'yyyIII ,زe u^:{ŋk\jUff&yGԲ͘1G9x`ttBql3 yD#G\r%Zb>3g|e˚N)uVeܹs~öm/u:N2`@Çmڴ)11q޼yTT[[ Z^ǣǏ^J;v%Ky\{hjoo\<(UAW UU*ҕyAZZڸq\3gbQ-X_AA.l6;''JrСN~'BnN  Z؞&%%EMppAɮ]P WGAC.PXGGGwwuh7p㨷Ϙ1=zի]YQb+|;{:Kj_e.]*lڇ[)ݮwꎶѳ-.Akn,28qDKKڵk{G_~ =z422rر]VQbPyIyŤVVVuָ8OOO\rrsd^teBn\pٍ kdQQݥzID_GVirCBB\]]}}}cbbt&XTTh"Htq=%+---00_[ \/]')S 8o޽i~>>>|IKJx!???//=l2j(4kС](tH`J$2;wر}zԨQJj%Haڈ>}u<<^"SQ: ؽ|X,GGvi`!i=ӦM6mypƍst>(:|H$JNNΘ2E^)))^^^$"44T,۷lGJ" WdlС;tٳ 믿}IIIgϞ]~ɶm۪;W}}7|T*oi򪯯)))۷o'TT*d2M1lll:a>f02Lg@D4V O!!= [.RYTTtՑ#Gfgg;88tP3̦N)LI-,,rX,mښy]]]o B-35b[=͉ZA[gaGtەY__ԩ?xԨQ:M>{+ԗINb2Xptq Zn^<bO8Qb{{{f5۝6|>RRSmҐ-[~~~vv ֯_-60Qqkjj4Lfg---lf}j~!ݦi&vFƬh6ߪ<O[g+4^ ~1-\P(VTTP_RD"muf?3/,/_)ӧORݾ}[g^l6{Ń &ӳXZZJbرMMM3fz;$ZD1 ^.__ѣGdO! l_wUo=x`=o6mL &lzvz+SQ/67Iw֞={&Jߪرcׯ_|Lpر@BBByѣG8qɓnnn@g^111_fMxxxFFFnnu?999--m_}Ueez"իWϙ3f@AAAAA_~ 'O޺uǘ1c<..nӦM U/pkرǏ߾}ҥKMLL<==3g|e˚N;uR/m:3ggKvFQ(!= I,XHΗ~~~r\k=zTCg}+10Q"hȑ+WdX+Vs:C[)3}u<<'OnzLA^=8rɓ`ذa[-X,GGvG`䍹էlvbb" JMMyǚ6mz_@@7Ν;3gΌy)sx }k&FJJ  k9Θ1cJ( rs)eiij)j1,X H3o>, $$(555""BBj%H(|>F-RҼH$:s HGDD燆RwDWjjĉ?C2ÇlzLA^=|ET'϶P(춛 8PSRRvoV477ڵ+88%== ?~b:C-^駟&NBfӧO?}4|wٮr<%%WTqeHKK|c:ybA*]$gAfL&Y)zYҮʗX45|T**]i%4}||JeQQիWG]\\B|Pt_A۪m .<f744hg=FFFFFFן:u?5jz暚e555L&Sq+VSJ3g<|۷ϟ?rJ=%lW Rb'NyO&6,,,$666'k.\x!熻w>~qɓ'#Aǎ?~<$$$]XW3g/)E~…0@'iAμV>U}]m褣hW]䒒4 111_fMxxxFFFnn v'hL͋Du͚5 k;틢ݱcLj#offEJHHؼy3:K;3g|e˚N2۪U233><(//OOkJ$?\sH$9rʕ+Y,֊+|M###򒒒jkk,Xeضm|r̙4c&%%Mcǎ=~ۗ.]jbb驞#H,X2Ġ@g^VΪlUٮ6tXGIJeΝ;w޽ouppضm[($l7Hg S~~~r\"k=zT}Qt_3fx#G<P(3:%gb@*%?~U߻wO`!555%%ƍO0W:Dz*jرK,ywP]joo\< @ԡRUBU ]ٳgƌzzr윜Ç+ʡC:uR v.bc9AA|  bT@AĨ  QAAA  FAA : ) 腃O%mzQSS3j(Frm jVRRR>n 8*qRTPXXX000Iv TQAAW.8EAĨ  QAAA  FAA : )KVTz< #*?!CP JFF dr\(m=zU<=*U~~llkk' 28 A^Nto֯_=z422rرGOsd$J<`l3AdL1AG&00pA'LKP$yyUggp <=2 iɹsBݻw\]]E"9nݺ)S/[toM?|P=}9"HȓwٱcyqwT~~ 9޾,깆k> [bgA}}k {,,~pu}"=ٖ'$]Al!CZDro]sm4$'$e_CBm竕vMzGy]X^lٳn?999Jrܸq\nNN̚5+,,,&&ڝ,mT*< t>?Od>5L[OoQ}X,&[Y57_nhpؘĬwQc2fiXӷVEbbOWSөqL^ 0e[.r޼#GhΘ1cX,GGG\hRiHIIRiB&&cjjZ:d_PGijPZai 45w/7/)VVNTJD\3 ݻ{z[Z:sIX RiYs@SSw38Q/ =t>7Æ Xpڷo_TQGa(ɟ߂aWm&L5T8D&s`͙L --5cѾILh'(V(Wc2_zѓasQJٺgQ>y,TM j k aR.oQ*Fy\*0hcA5r9u8XdJ}&g7EC [[ۧO*xu > *WW7(c^ΎMSl vSuQf2ّرX/joUjLw1ں ŨFWdAG?999--m_}UeeɠgϞIRR UUU>.\ |>ŽGA !M>zzgڢ56V6,A'Ry pÆ/\NI~'$J%d`_e%B&nf[aSJ *)!WTPP'HialBB 1%x,-z;Plpw1|𸸸M6/dUV3|>3f̘1c4 0`AAA{يgaoaAgk`[X[X8RD+rg[[ߧǏ^QTڬR~уɤ|Ԋɴd0~J=yRb͖HLbEA:GUE?y^W"k+lbQUU]}* )ȑjۊ olv`q񕆆S(yyN$ ie^}VUB1AA#  F"Я qAA :ՙhi t>1ɣG8p`PP_|3JppP( Ѩ@̶VrH #1x/GAn 6x[n}K.rĉkעQ)g54p P'y"[ t_\pҥK_}ȭ8>HȬϬxzIݹGǀ.ݕn(P:;;?~\4)b;wN(޽{7**U$Zڪ5R{  iʽw^, 7_89 65*LMw;:559hn4Ojj'2YVCC4g=AKK7Denn`[Z ȫ+UUU>|X$%''@HHHQQQjjjDDuĚ1cã+^N,kc3T:'2Xׯ `ۿ46 X߼XYys8R)LbC~ѣO.9:oOeeQSk&&MM|S]kS(jjJ5= U{ m"ҕH~~g```~~AbM4')0^xM ryLLpqР~tWplX,REe%|Nd2}9"Nkc:OΞ7ڡɝfݿ>G+2YWUT`.t%Kؐ|T*Yw }bYuue27SPBT\!aBᖖ[]ad3\RBz*[26,92TVd\P'ff-- K--ᥥi,|@KGw[xbt=hXu}prbP[K;_#@Basf;:A*= c!SчjnK p8۟Ŧ H+ӦM~FFL}}=y㓕>VKSkjjZ%3VUU0~KuQf2Nޞ" i`ARi\a0clm-:TZ!U--9 gX1ʪA|B-y-H&;RU.Gweʔ)˗/_|AnݺO?]xbbbϟf͚܃j=z'N<&#)lj(uuz"ɓD{NNI2JfJ vSnnMM**DRi Tq [**J%jj(jj RFr䟃q >B6|[۹RS|9dK$.]!ѣ;w믟={[oA;wܽ{~m۶V/DFF%%%.X`˖-dqix[$ߟdw3WB]9)CuNN"g9 SJO&&wwWV~ \klq9q/1pE"Z/T.v H -]\?988<~CѫVT񫧧iPq Fy~%a;P(yu[U pX0? bbdb؈ @魦OA*덍sC  t>^X _G= t>p Je- j:Ku ] eDJe]Zj@Ddddp=&FGGs>giO1E"iOo8qeڵ.qlҢIE{DyߕX:ݛ!C:Inpr91yyi]eA]zEEE-DAAAǏ'׿2;;[(޿﯎Er9Pxݨ(WWWH?vgsʬ<᧧[ J~qq |xr۷-[Z˭vr| __JeӬBB`gGdf/Zh~*PdͦM,D:YTKo&*5תDϣeSuf&N  ѽihh{Acc닋;6{kO`ooKn C>dȐ@FFFllqRSSV^ֽXlYDDď?e˖mlƍf|>O!!PTpvfh Օq֬1s3-G\ieڂTYY@ի,c\Z >05inN?Z 5W56rЌ~1ɠO-7OϷ g;91=SA :ݛ߫y}ss_|ߗ(cǒA'O޼y/2rț7o>~xdP~~z: /Z7Æ kgϮ_d۶m7(0`Wzzȑ#/^8h 7772RT.Xʵ{'M̉K.]j2<$ YQe (,T+$LL <ADO< 1H$ y GfXzI_GU!a HٳgWX1{lT?FDD:ujÆ axbXS,s8M:MT'7Ϙ02?ll 9an޼fkAFec#nZPK[=(ĠUS2:09;<{"_3~I"-=kk뚚?}[R555ؐ?%Inn&M?PRR|dee^|ǧ(0ekKADljz~zħ"N1̻r8ĬY&}2T*}[$Dc=z/rׯ?|8vӧO>}T6J~[}>&&&//o͚5.]Zvmnn… {7y5|c@uK1p ʂXRA}*9 >yȪaH~CN+'uߡM taXO+Wx۷s@($\]{]S b'{@id 邠c?~RRԩSOܶmM@@ \]]oxiգ;wʊm۶VtS gg &7qDp4&;}1?_aeEXZض^ED-qCaeEF}bqX!C`fFY{5ɛ!3ShQ%D BTUUEj]r)?~ܡyyyD(t1zV}2\ye_-]mADBVWoUU*AA : \ K_ZT [nW]_:O?TtApA--U~~^- H7nŋǏty#rPэ̳QD[B1&|tW/^4O/JA?۷5?}uq H]%uuu`ndP__/xF1cy}Xry;NMM8q~"hXX`06mrFqʕ)StkĆ~`G>]*st\ׯߞJV|RiHIIRiB&&) wCñfp55-2VVLPTuuuu-- jW[.|8 ƺ~TnQb5ʛ)ѓi?*p̙O;;;www=:99q\X } plX,REe%|l%\Hԗ}YR -*՝fH$sWg``0rH$pX,jy EA:ƍA}^M63ڨd|>_}Jϸ;1 Lkd3\RBz*[26[yqu|L 6tlV@c7&r A[Zj^i>-ẓG^IKKK6-gjkknV(bLbnϣ pHcjjQ;lXg$Fy |NJJqN ///Қ^IP1 @*9 ;;d2tg4L&^]ݠTXCRiRidޞ  ŋ_+VDDD\x,99YggϞIRe"Nȷfcccw1bĈH}}?=ibEgqt`d զ"Z.a:9ݐJ[8A !} UWL[ E'd*} t>+#Gܿm.\w1c茵jժL>"`ƌ<8r zEOe*ժ>}in]YSکiee?:ԡ,,_0c0-,ƂvI'22̬EU*PWWS> Hφ[[ Z^LjǏ;;//O>X:QTcǎ]d;S(]mADtUw_UUG>5}:A18| a999V*C=u曷 b(@cooz@A^6| \ |  bT@AĨ  QAAA  FAA : ~A1>7nAxA1*|  bT@AĨ  QAAA  FAA : t>A1*|  bT@AĨ  QAAA  FAA : t>A1*|  bT@AĨ  QAAA  FAA : t>A1*|  bT@AĨ  QAAA  FMvppCA> yP[[ ǏAψ#P  t uuuSNE: R4hyP]]  t>A1*|  bT@AĨ  QAAA  FAA ~d ,M/6$'+c:9YǛM uuu'O|醆#GD"TZ+T v59d::rf6_Ԙܹs'33<&bѢEF*B>X)ٿ~Ӧee)A:| B'^5d_}}˖m/|rCCP(EEx_|a6}zY33~a])$3wa6a _yoVVVfff6~x Pihp%믾2 p#  Bauu?!lܾ}ѣcǎBKVԩ`0& jkk`\.׿yOOc@z$yPQQqƍgϞ5558::; ~r??򪪪~A J]\Ffff5jꝚHGu_T* uVMMM߾}Ǐonn{4 KoDP\pa̙NNNQ)kj3UR}_\.tԸ{i"7)Pq*Fi;u2!n9Δdً̩7\ЀΉ."wIRn3N`-@[cR\\P(zL8f*o(-͙34MSCu %%%E ƒh4^|[(1]g~~NJAR:l61,z=̡۷oS%n޼|8ӧO:uu/^\`Y!ބ'B:B^r|Wsrrv5iҤ؍7[6*oh.aWWW;bwO|7773eeeZV,GFFzyyuwwBFcqq1!$::ӳ̙3Xyj?tO#WXܚihhhoo{kUM6-!!aݺuGp&)S qm!!!!!!IIIΝKKK;x'V7,X彽=zTZZc6 !&I׳W!4>~?>((b0B- n*OqްyZfδ!֐2}tBk[[V>FulCp bٹsC B,l"HؖK655=|h1~xX<+/tw7k4X,MMM}M&;=n8BHaL Xvhn0{e\Ozoi lј 6/؆@ryaasRSS}bIMM朜!;99mٲe*s A WW+ xB^!|F뗌140'm̜9s:;; !&L@Ѕ.tku9?À]]]&iĉBЅ.t.TJX `S xB^!|FͣS8sZ`D xB^!|>W+ xB^!|>W+5`+1++ xB^!|>W+ xB^!|>W+wa!<TizΝ˄l/uui駟^Ē333 QEUxƀbbb.]VΝ;38+111/~]m|||XX}۱cGJJJdd] Y,rNC5+ܿ?99>3AAA8yjVL(jc CZZ2L+V?O?(../q/GxxxfffuuuQQHJJʅ ߿w^07qvL'%% ?vk׮D"+74M:tH$1KYvYn]^^^mmm~~;c5kh_bM&ѽgVs4o߾*R}=8y#FhlCӴRtsNvGhhh]] _]]~ze;GJJJcc~;ye˖UTT@ d2۷iT؍5kB"##kkkgϞmw6HRLP[[,t) 8_I L޲eKPPPdd믿n{[EdSYj0?NLLdi&}||k@T*-Zs?c?&|={6;;[ 0s*7nX/oᣦF"0/ߟ;y={4ލJXRRG fv_OczzUϳ/uݖU &|K4Mϟ?_ fȪ/s=z8`R`otD .̴X,L˝;wf̘!AYZZ:sL= qرʬ#G _M̙Ͼ˛3gNyڭNkoog&,Kggն\=`CA s2{~'L@ >>>W|EIVn挌E]xd2 _5%Ve_jZgggF#Ȍ}jfBNf`F ?8s(:h4\rźnnn&ٳgôJ`Ϟ=YYY4MS5u:Te<!Ú~lWúY,Jd<͐‡`(,, <|~~~L> 䧲Nsn|7ovzzw}~zĀ+䬴4<<}dɒa=~X,',X҂7p|׿`z*!$888888..ݻ1116lxICC?>|8(((***11q[,//yVe>mFll\.W(&i׮]{wpܜ8qɓzBXpmۆR^OOOgggf4LP n 322) ܱcNhOzWUUyvܸqÇiNNNfSRRΞ=T*jJR*vd3gΔfwcԩ;[llluu3жvaoݺU[[{7Zw1O<9uT8Wyڅ(WWW"T*O&%%]vBV_|yʕ8qxcCyGm^ZbRpx?8f(IENDB`python2-pythondialog-3.3.0/doc/screenshots/passwordbox.png0000644000175000001440000005221312507731135023753 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~SIDATxw|U? $ EŅ[QTąUqVUj֪CjBZ~qFAPQ! 2Va^N>9I͜93ذe)9mQJ-6@3g!9dF=B8\j{dGD^VJtHaֹc;cK}r\)jwdzoؽq*~r*c\W 0+/ Jut萊?ֶ=筶]7scTkϭ,ht8){z!?ʋ1]kj-)+گp͘?,NZϏ,Y}t\aẘ[ŌvQ.^->+=27Fm}hO[R7EY`(YˉQKd≝G.g ߸}*~[{mbzۨls6~ug5"(+*6qbسV78E㏡cZۨh+˖QV,ZWmcv}~1]mT-cZi0.}pNn.VDDLQ<*7ZbAzqˬ,Vu|Pݤhѭc%bUϋ7u3jŘMS?7q(_ޞ[&ke{>67FL-VCy/jDT;g9-_lIȎZT}*͉}s8b~|^?7:/9KZaKIGfO'[ rc(ոΞۦVQg}*_gt\1:*ŧ{ 6Z #M-l\n+X KNuLY.Yd㇝bBu|k%Ծ#E\(̉KFڦ%K>\KWaƈ~Q\ ÒZ7nn|AZC[dťK&Tvn$*-"]m6sђLJUtE *jsP򎫊G9s^3?NZ}J_2+moW:ゅ4t;fǏ|ᡊ47v) -̏K&>(]VS|WpIM,*#-\:~*%ٯontH-~̜'+ƹFQˢ2bbM<ڧՒqrh/*%!'5벨t{} 5 XMTe9eEZFDF"Z9M^ud&N5[F,tn+49XtN-JYu#Af4*dδsR4{^fATґ^=:|'ؠ=gV:RWߢ'Xܥ{,3uY^$1K" &V:fKOEZ逜#F͓\,S!&i #& '"JWyƩؿSk4tsjy畊ؤQC7`=FPZ疹eE*] U,BYI:F}t3k89WKavAKRY.,פZ1欼hjj5u7/8ARVLm̼uozbu ɕG,/~2EUK?WtLYrcrۘd/V+EMܲ(~2"bMIGyGy#o>1"_|>91]TEX^Z2fmV~I1;^(\' We$lWDE:Nliߤ-;"bmW/E?Ѡj\}rbJ:i긯<ɋc ,_0tpH'V-,8aݍ{k%T:[-}eVswNh0⠲x`IMEDE\ػMy Β"4]R"u8koo{ygr=mR񳼸etΊj +˖^y!-fT&KWmmZ ֋ܥ,5+4SSjbyDeKǼt<[~|m֚FUcy Skb髊8cA5?tTF|Qq‚h8TFx*cn:FU1f5Ҳx:ұ0oUOƧ+Oigۏ%Sd/W6jit-4qHd>9,7~2e-2r%,Jǻ.XΚxs[DT쑽x?,Z+÷%?"JjU*m"7oí߾e1-.oVee 뵜5lE^uKUq/'ΊNx:s] $GRFha(8#p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@DDN-S֊|E9@8@8 CB8 CB8 CB8 CB8 C""G #:uRgڴiJAxȐ!p:[jjj-Z2$C L8Ζq 0@eHXQ`mϳwd//^OEEE{キֺ7EEEzR#є)S{=Հ p!ѣGQQџ畴^TTԭ[t:fj_}U/:zwVlРA^zuJ7Dݺu{뭷˕IV[R5sTÇO>ᆱ}煅ݺuرW;Y;|gw 7D[owׯ_?/=@3/{;W^EJ7DI:uJ$[n*%srrmӦG\s!J"_ýګhwlIᰲoݻ[oݳgK.oӦlȑ]ta;wu=8s:-x)[ne*_~yStU.H3v[׮]{ѧOK/tэ>뮻wjr{wMMM8wu׮]3\t%+go4hPQQyƍ;3{٭[8ફZhQϴA{ ֿqvs9'bꫯ we޺O>wqGeee;z*EEEWrF/BQQQ=j_Qܠ/wUU=saumw矯{ sQ׏g]uU|vmV[xW^yeqqq߃ssV!ӠX?Ν;w'{nȷ`9skn֬YI1cFIIɦnZQQ_20N~/RvvvuuuyyC=4~QFf=?ϓ-[>}SO=SO}]w]fm>(--ܹ[liy{O>d׿׿T*աCT*O0aرzO;&MoI1GZgo[oMM6fzg}ٟW^y#FK~g}م^زesN#E_}Gj*NO03f߸߈^Wƽzz}\}݈c=2W7׭宬zk7߿]wN88$mȑ}N;'xZ5wܑg?[~77pCD}|{o>;իW[n{WD >Ηƍgee 80qoSN9e~YgEğQFPRRrWw߸qƍw]w54`7wGd,'Nx-3/K:C{]=瞱$;3iٔ^ʗ;=ztvvoۉ'N0kժc=&5l\]~6'|rРAUUUvس>;iҤСC߃ ssV =FN]wոdp!jѢEΝc$p Q+Fo\r z뭽{j۶^nEĘ1cj7;o&ɖ֭[}٧vZDυVVV<]v£:OSS|)Dȑ#koO\ze6&ϵ{tMɯv]tPD~dx㍽G%߿>F5tkwm~3p/wuWɥ ul|?~|9Z%oǠFy/wee]w?O?dW^+ZwS;#A*++:}O>dQ:717hNчwy5\ӢE{キo߾My7߃7P/;|#sIRɧ-Uڵks'OqEwH擬rzZUUUg^{># ͛Og6.Z(xOl,--7n\DviujxgDKJJVQ]{Ɋ_fsNpMV>:w\皙N:)"̙o67ճ;XPP0'&[nƝv)TSNsrrvuצy%/;k֬:<"zvۭu}6رcOW^y'7ssV =FƟk6//oۡWpC=5pU{ol[o-Ul\Lr9:ۿ曛o#qbr]tQDe]ڷoNO<ҤIhc=6=駟.--m߾X\\3g3ޣG$25Ϋ|#"//om]e1בw?rߎ;nijԿw|[5w_؇zjBx=; l2#g/>}~iӦ(.;"Zi6gΜԩ[o\=s̏?8&~]SXXxg?8qW\Zc=:ꨓN:p)<cƌ>}zǎc\W;H*knfjҥK3q{n jr/Сܹs3ߠ^WƽzzWy睁we_|Ŗ[nYæԹ>/wvXNkݽIHԩS}7ssV =ƓO>_VVs kp~* ({ɈbVUUuϙ3gwx'|2Y [r-n`1c\veguVy]vѣGMMM򻰤$teG 5,SFtz6&M /b,sr7߻{[F#Vk۷o#xqe%Sh=;p)S$0> Ǐ_a}["wuWkiM^8 /7.sվLq~xGwu:,2[2m""Xvݑu{ծA'j43g.1.s ui{R^zcǎҥˋ/XSS3#WGĜ9sb uz#I_-חjnae]-bΜ9^xjɜ~zA8@msyrsswy޽{~~;W_4nŴi"Coy/+YỲ***[ݒMqqǵl2S1YΤݻ'𒱝2׏e֚VZŒYC}gfk 6ݑSL;wnDd.ito\[Q6mlv|1cK9䐱cN0a:uaJ;cD/{#UZqq{{wwUwGJ$1c*/6k{ps܍;dw֭o_~;h=pJ×_~yvˋ]v^ܹsnbu}~%ߘW_ԾAmIe6m$7%-[&WVXX g?"viM741I… 3KJJ>Lt FswS&23zLlhoPkP'"SZZz}ŷ6Ϋ.$Æ 7Ȭ"gyGqGݫ|h.m<0J_vEZ묳2ϙ3gСGuTӫna\z;SeeOӦ=>n2/԰F«/svڕo喗\rI0r 8;;waֹs䢂#8 .hܑ?O͈%c^z}\|ŷvСC VXXXZZK暱vwq=^{g˯꼼: 0G]wmY{]J|h.~׿7|3qYg].QG7\s5=s=[ZZNMFs17ӟt'\s͍7ؔ=>#L=rp~<~nݺSN?~dيlf#G}x/^l9'|2 `7SGJl& Nn+rС-ZhtoPkP]&˾r!もj&ֹ>rrrkfv9裟z꩕/_\\&3⚨fFuuGns;쳟:kmIReee[n婧c5knalI|>]AXǥimRuԩuo$Yo\p_s9?O=kiѢ+zuиq p2Ηigft95^?~|*j:wC2O ;AX &L>C=q AuukkDu߃^ 4?7ޘ1cFMMMVj5^+AX9_WtУ>ڔ~` GB1b"ג8~z!!!!!IÇ/**{W.⢢/Xah:>|)So}W5Թ*++x|fjٲeO:餁R)/= +ꫯFw8v֭cǎ?l|7xѣGVδRXs7f̘Ç+jWSS[o5a„#G&3x?Jr!]u=ԩSܻwmfm۷Dž nsys=?u{?# , n={/ib TTTtyEĸq<̞={vꪫ-Zi{>/HS]]}z[o.roN=~Kee޻wﭷ޺gϞ\r7|:Sf]UFqg]vٳgn{^ EEE=zHկ_:mZn[FDEE7;ʹp׿׿uDR:R?x„ cǎ}3N>;cҤIo^{tzĈ1py6\vy-4zQ~%+??ߑ#G>CmQƿ+**jjj˟رc[n7\>21K.Ng}g^xa˖--{rR%%%|JvU]]xԨQ[QQ㏿ˇrȊ%N~/RvvvuuuyyC=4~QF6 UH|ͷzk7ڴi3k֬g}gOzW&mz㏿_3{bI&GrF7\| 7g}|0~{>;{UenkXbq}YYYlĞ;bv)"N<$r矿hѢOGN)2~??묳"s#b=%oEyL6mgQ]]ntI+'n}k.XXXxQGOSN#Gޞ xEEEs Zg >ɮ~矟 <s2sr,Xp뭷;++m۶^zncƌYݩtnСCDk?蠃"oO%zu*{eZ.?0`޽{x ', U7\QUU5{U6># ͛W{mѢEOI&dx*??co,}KKK۷o 5n[oED*/~q2Mfd˫AQ֭[/K|ѢE߾Ηvy}ײϾ&Ddwa'=gϞug2^r`&ef>3g3ޣG/uw/v:l0 Waa޶mۉ'^q{~O>C.w._2t̘1ӧOO$sJYq{dL)N<(eYYٷ5ruYUU2&[Wڷo_{iJ&.dra̙3'yiْmN&we_|Eg}6">mzԓpAӧ믿~-n ƌseuYF]v٥G555I&,))I.'3{n-r]jOjIAEċ/p̙dz7t /7O{n+y&?pD<#ջkݛH>뗔uP2rΜ9ˎΚ5;pՉafK͞{J_z饎;߿K./bMMc#M` ,UTTt뭷|kٲer$"sc{-J5q#?Wߔچ޽{M2W[¤DD6mn>`̘1|pDr!cǎ0a;u/zgyf%7`Yᆫr+**"bKi&)l2Y{򰯾jEܭ[7pr/X{왬:t{:hUֹ&7|#bvJ*Hf,))ӧODӧ)Mm&lRRXVN8p=CɝГ^"bW_}'|zr+0D~ Wמ9~dksss~[I(++{饗.袃:h,@dgg{t'MtƜS:76$/~d홹s4( /85:bĈ<0"o-Z$+SZZZnnÆ 6?7p_~91`aaavvvf1ɋ.h}w"NX{8pw9w;sɵgGq\iny\p믿~Gϛ7/sY ~O2%y咒?>K/w}?_}gyfРAo g̘f 8\-gW:7>}\|ŷvСC VXXXZZ|w^2. VVVիM6&kҬ(8ᆫ/҇~W_-Xcǎ{gqcǎ`fm6rn^6mZrǂeowᇿ{?_̟?}m~wGku^vRhEEūgfoذa~iee;hР{'"Vճ.g}ᄋzkܹڵu]>dhm]vx㍿Wr!/bAAAr&K*Y}ֹN-SN}׼~? .˽Lkƅ^C=K. ~_˙eWgϞӟK.fC7f̘QSSӪUZM|.]M:]vwqNJMgz믿:G֭4Avamٔ)SJJJvg]k2A1B֌G?я5!!!!!!!!!!!!!ԩӊ4m4Y DDWn;wn볓Ҷmjkkܸ+ ܄C""{Z7u:[$F ᐥjoYpaD5Xc5Xc5nbcXC: Z)!!!!!!!!!!zNbeF(...**7nh|:?|km @  tG?>㎻KMk1M9sfDlQJ-5SҩShƍ0`ۧO1c+޽EEE y[MZؠ߰ 4k93l] 7|sΙ9sf6mOcnc<斄CJi^ziРAϏ_W=;h4zO=SN9e]w:thDs=g}ǿ;kvD!rϚ5۵k[OWTT 4BlQ2C *+!瞫>袋TpeΛ7OYȰ !!!!!!!!!9JEELZ@9@8@8 \s4:m_Z,lʪ5̗N:>tWs3~F׮_ .3FeXnȿvuYG{m?U~ßKxEÆǂ̖)SʦL){My'kMl#|֬Y^hplpfA^[ԩ^y}v>ZiScΏy 9fܹm@}ƌ).?+K0E==?lYR-Zo#j>/̙SVVV^^Ӻu7߼Gڵ8Lng_/hkN:-⋏?xƌeeeYYYm۶-**޽{'-KJJ-Zۮ].]#77q9ӏ8c9@WXڴ瞛w-ڴIEDfzҟ{GE^È8ea*~RDdz]ۮ*R{Q^y対Z󬛊 2bĈyeg/]⠃6l;z[***f͚5k֬ &۷s~WuuO<1o޼%%%O=1&nVUUg-5553gΜ9sG}tg /'dϘ1cƌ~a~ڷo߈;Gk p). :´R`-h6uyo7yI2ɓk{Xy=[F?,]MmcJWW>X2ei*u-^y\tQ^)}ipaÆuQz}7o޼ݻWG=#Ş{YYY:tҥKn:uꔕUUUcƌI3_̛7/'g?jjjy:ƌS;R̷IoqVΟ?駟lD.wy<@~?xT/Xk{n ', 63g~bȐ_n7_GٳӋ-(N魶JEDN ]W^yK&;S[ bMSѣGmxc#T}w /T6]K!Cd^׫.davZcm*'[|Iwx"lI؃>GDvv:p}.{1^zɰXj%/)),XPUUNk͚5kpXPPgeeiӦk׮Q^^^UU q['wqm]:SzĉɃL2mf„ SNɓ'7"&w>xA=sÇ 6lذݻz?ڶma!\sMF"&F2_,-]jjj"^;?X5|UU1jTQZ =^nNNtuԻwӧGo '?t%w)lnj3gΜ5HFСC֒njR;Θ1#yЪUL2̨kKJJYYY/Bf~KÜgΜ# >?կ~u 7d)kpi|P=lXcd`'=Ζs` w裎:jӕ޿>s9sWtuLݻOяXe͍6ՌmVd)/kƍ7x̟?w>s '1"rAɫ￟InG}Ygwygu:Xtv]hѣ>z)n={{}뭷ckC` w~瞛wi-6({qsG2j}8"7"R3gܸř{TͲ#GE~wס숸> {R9[^tСw];ԿC>|++\y?gTj˔F[lQ=eJ[oï:O>m,z:R~~~2%535tEZ\|gm8uY׬o<Ï?xO?SO=um #V_|¢9` lmF.⋶7ݔsKGN?Egf̝7$yܱc@ngm_z;3lܟddt+x7C9l{7d҈hٿDTSZLMRKFĴiӚ~_vhEEŲ-͛L,{cKG+JSN8c=vȐ!򗿼ۃ "X8m{ jBQQ%lg=2?IuzhWO駟^?GS%_71_pA.]2/}ށEތE999Gqă>ꫯ^|;v2eʭzAeqF*//]^>oРeק1#$hea:܈|M?둎3O>I.Z|53[y==VnACu.KF=dȐ_|1.]Z_qE5,zY'rw%rr?tѓO.MƌIl[mՔ)SzgvO>dL+ԩV[m?sT*;;;}[ō7x0aBD̜9)(( ֎-[n|MD|7Cm׮]bnֹs:O=;L XZVU#GVYYTu-3;_,gz?qvܭ]^;;3H[{n,ZTzc;vE߾v}_~eDTTTMo_|E*NמZP]]=iҤ%oժU^zz駓j37޽{V+kibԚnXCw/˾>2JJOoqNNNNNo||{[-G{۷k׮YYY999ڵq9-sGnmڴIRyyyo;зoߝvioGy[nYfe`9sfD$wf2ujY-:uմ&aEE,sVbܸq 8 RKEEET~]3sf:!!!!sVX9@8@8 CB8 CB8 CB8 CB8 C""G ;:uZviTh4;blYSSSZZڶm[5Xc5Xc7tz޼yuO>=` p}_}F# r…okkwqEEEUUrl2@8Θ8q"fRCCB8 CB8 CB8 CB8 C""G YEEͶ f% R6#p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@D$7sfZ-6XFkGy<IENDB`python2-pythondialog-3.3.0/doc/screenshots/progressbox.png0000644000175000001440000015755712507731135023776 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy\Tl1(j`RbʵJDRWŭŸzSV7ZQ." "n 288 3~ޯgyx3/rx7>BB͚ Pqs'1辚x">i[褂^.G<xv" ]h]kۻVڦv !z*Ck·y4x9*p̤)'|ZX>1%\yUx0`IyѪY`%#?<N5u.{*q{tȁ^XŝO z׌a=]DDXw1 l7>m;$sRO?DgOƅ8{Qת-KHɎ $ 챧cN8]؅GXSe8m'P3e:bc3D$z;D#+۠6ﰧNTBw}bCGʰVl8ӷbJ[*u2g`G<lia>|9gR=WITQDdǣJ|j(ҤfX=TW,zV>khFӒG" Ѷ jQ7TpԄ(HH˪!3mνdyU@]4ъެ|ͧcԪ6=Վ64:k_(L.<-BjMC+gQ ՔՃ=^ЃO9JT{jv e*2xV4FrhMKY)r[=rS{?Z{Tk9=f$UԯӸKv#ݺ*}QE%ԡj kt.%t\J}MZ=Pӊhq9R2*VԬ6'9 2/oȺW<ܗc›RJ zBʩwQݿE#PpԮ%4~#<Ծyј\[>S+OLoX\NUj"|S gEc$WT2r3DjsA"r=ܘ=hD*Y\xdW{z8v$WOWm}.#zj֜}J5}\+L/r"VרŠhCmHEC#Z9.܊Xȫ&{ m*5RTM%sU$SM5-C gEc9Y[榊N)e!=ȚȆHDT]RSd(zS#մ!$"iFVIDDJ25jUW\E%eid5&w7 =ӜgLEFiikO5{tg;2ܙ%S,YL 7xV4FrHnFҒ*$"mE?U?SZxy#4D#mkZMWV?e^mЊoLμC2u: h=4J Fs^݅5jPj ;zy$$RHmh] \[Z)\C=q{W{X_ktkOQ|^E_Q# Rp*BӏK6T{5瑐h u1y  omV{܅:]Hc&X=h$jf0_B[h$Mu$k:H㭛ֹh.j4ћ{jڨ3^4UA pUuyF]],ddEݏ:lXU6DD/ (ˑJ{v6[jhBtǙDVDU:֒w+mXLwPO&`qj41JԔ"D;V=xA8(XBwBCc"B4њW@)$S-59vfT3wn<%55^cq-z )XHB21JFkQl 1ej\pu>QSUGagރ`XSs#h}5]ǑGӭi yǭCWVۊgL4TDWm= w9>mGG Dc$* GtOMԴ_N״_cᯏ}5rFӧ WI*hj)ANoU;d8RNT25%rQ5BQAse$錒ݧ|0QN!/buAѸ*TS5Q")\EBWM^%jR)MI4jrӀW\\LD͚E@t~yRs?>kȾRNu4NjjCifj>Mh 2BZP.N1%)&/yˊ&Y=z2 _Uӎ !0O5E(GIzR4QWU$$o>He(iU'SiysXPaMD"6k$`FB^BJg t8(CrO~s)(Q65Ӧ!  ѐܾ-\%{['nb &}Q\@|}ecƔ!k׬d2]1n]P͕ʲIM˳xbã& ~fY`^j^˖~*\]߂;={7N[Y[TtTջwZr9qmRau5_,V٩={х9w qrŚHݺ jb..ΉQR}ek"fdslrs VmۚW^lB'DԫWef#G 믗cZשSȑ"tIHp~JI$5!!Wx"[mcSHwWJx<ʲYUX;n⒖88'o;8{N.YWUyImUI@kmw;rwKjwwӃQg%%UW?_9pwKGݻ<<0 *IJZ%_;57:H%7弿r xD;6pX}Cg\3 /;uT.bcՏމ ZP4om*6OI jpմc Zt"iNTT$*ikajkeK+5k>]#lkTqTt0[Eí6mw,mۇ; k UUcc 𠽅(6Y33uכlAymoпV v%IE^ww2 -q+XW*Aq??UF^^5NNJ6+U 2}fms, ػuߪ۴aCUUTs4TӥK<D"oI"#B%_ vͶ9NΠf\f$"܄*Q79a5yyVTF>ZRxV?hU~[ri?[Badrh~T*ͮr \hfp7)f:74UΧ8_Fkۘ܆wzzWޯ_~MsK͛جA!#s }iNjz3T*&"GGمIIbnyL"*,ĉ:>RIwYY6kU7HIR֭kBCZ]]_SHc >^xA^T$yee"nd1SqFF-aw)D'ru[rZ[T*UUՓy6Cma[{--Տ,-}p#=c?(DTZ7DD͛+>HOmvv{ܸauyjڷAɠucYك}k 篿o|8f]NoUj`Dl)eƌ)P4 .VZ?r'[R٘Ї9""T"\..(qIZrLiW / Ul|GqNcխwW_fAGnn֖#F}*X?Rao[بܿ/\]]jww9ȖγSLo< SDthժ"AU]T*LJ߱]H*r~àz$#GT* }#BGD{8q Æiذ{ r傝;4bfߌ.]d99_u/33u3P>vرG΢g; D_~٪E p )g *55<>m˶{nڌw~9}V!*%ΟZ_TB?fڵM'y GBu =ٸbխoW.<gϊH~d]egx%V5gejjx55"ԩ-G&>L.q0r91W ^^U^#mmUe&&}+ՌGÇr3(t6'O> ԩǧ<=k|}eb"w\ŞnԌ=;'tɚx^ǎUү_vx<18k|f}z]HM=*%Lf nŋ*~in.ӧb׮wᥥn&RIfXF 66*ݴɕe)j5)JuqCgh3|(>zY1+hRpG/4䤜6hnG6u+X֪'O.JJ˳u=3D2%B]ND-Z(lmUK6j4Rio:}-(]k*^qq1.NxF @jUٝm[x [T9Dd 4)G ?CFaMHY`={|WGH Y 9hT*yxȇ-CdL4!mWqݻ*jwwy.=e \4!͚) r`77W_a-1\CrTp5[ńJ!9zړJɣ H$^z!3.'e߾}#G|m4Y^&??_fs>qx&UUU-BO&W(:uԩZ޷o9%%%""w-6k,D2k,\bŊ`ooo__9sW*k֬0`wnݦN_H${ϸnܸ[)]lzH^4 ԷPɓ%/2e^zm߾222C? .\ܮ]4￿)C&͜9s]vѣǤI<(FYm(=lĉdD8|ĉ6mڴnرconÃԒ%K$Ippp]bzRTFnƎmZƈEEEI$ɓ'Qjj}}}}||^}t8sR={6111<<ܒm|r"xwݿMgWGJz֭ "+T*L@D"f׮]G߿)mժ7[ x{{k}ߟJW\ioFR߳gݻwJJ}QQҥKՃ(!!aS,\p… qqq[nm֬q{ٳg׶666oߎXdfaCl֟AqD2_ bP k~gΜlٲ;;;݋TT?Ə=zժU/_>{ab"|cv֮];=qZر ۢuM ]ll9sJ%ڵk׮]V0zH#9$GVTTX d˜1c233/^xܹ &ʕ+٭͛7_~ŋs!]vi[vmBBǛ?~vvvvvv||aJ [K.D4jԨX AӪU[ӧOlΝR(1b%&&r%ӧNZUU5jԨcǎ]|۶mG@d@nݺ8l֟AqD2_ bP j5kV^nݺGq?䓂???>v@"ҝ)z >f\O],?>oIO?oڵO?I$Y.9LIItvvfҥK˖-ry ?@Dz]]]yҥ}%+V~r|>iܹݻw'dRd0çNrrJZݔAlmmXJ;tLD\Ʌ 򰰰˗{zzH$ ZfH$ڷo_NNqm9rdttthhh-{{cΝ;|9:g35К?oѶmveoo?juٍ3O6ӧD"YatN:}_ X ݱcd䐭M,ㅄУSfU^^Ζ;v,|kܸqD)J>r +BDׯ_dddz8:thʇUVE˖-5dǫW>}t{ڷoѣƵAXhF4Glgs"/t1|6S3o% k׮.]jdmm#{u9sx<[͛7hIIIW^-//\ܸ8wG|39a\̓?~&3;#G-&qƘ7|mLLL,//wqqa=a\|||t(Y(9LKKJ|>_sA}D'Nm(--e/7oD-aZoا\\\tWh⣼Z?* #GRl:d2ύcDzRK.qm04nD2_ blf]… 믛7o6klҥU>f̘7&''߾}͍jǔ[[ 0C6TRSs\.'D $`(M6 $Q(SN---o:vȽsiӦ5IOP at)))n"CXn:w|T*e?-6ԔЉb\,4琛S(2O;V}+cN}ii޽ %lT*5NgΜ'h͛c4:;MA3lfW۷g͚V_}U"+̖ٶmm߾]Ti+W bK޼yܹs&+++"j;vd?dddh^KFN:Quut,zt%у/Ttuu}]Ơ8p7|xkDJrwׯߖ-[ T^^P5rHC"ԒaoxNX"9dcJ]\\ؓ4uЁiMpM6iڰa>]È_>yfF?ArÞ_yg\HD%%%ŚuqbPwBgf<5㮮˗/x~mV+BCCwvvß#eC:thS^ K$,{W\HSY[[d/$'O~lՍ(6(22Ҹ_-NJD֭[~=K._:88cԳgOVI͛gbwgLxkPwޝ>}J 4hO>SLQճfͪs"_޽۶m^;5jH=NfO/E}a>}ؽ#K###kCaaaaa{|Gl2KeesHHƍ.\hʯˢE:v(rcooODЪUÇl͛e222bl>oܸ1((^&O2%11cbtg3|xg,}7o^׮]M 2,f ';;=*#,,=><6ݥJ www2@DɓMFqFdȐ!3fh^hձctW&(55uĈߴޒH$f,+7{fj:66|<LbpӧOg۶m[SS3YX 曁-Z m۶-\pݺuofJ~ߴiӺtBD?qmֳ={daUO```jjjLLVrz >L{F'";v,ܹ:u*00p:cǎf͚DΌ ;8f"cq9۰O>1)&l.uvʕ>xbPU@ 0_3:udkk[QQ˶|W]tُBψ?p޽DncUUݻh8t¦٬'%%]z\SOx{{[,;vXzz/HD+))ٻw vaΝb;(qƘnibbbyyqbr6vR"rwwf_tIPAOO'ҌcǎIlOOׯiFk¡;8f̘7&''߾}͍jǔ[Zk% bԩ|Mǎv9m44:ivY,c=D5yÇkM84buֹs .N>]*߂1Xܜ3gQttfDDRi6gϞ</;;ȑ#nnnVTsheimFD۷oW*~~~Z0ZKo޼ID/[GmpttС\.?|rrr~)))999\=ȑ#mllYCGGG"*)))..ܞ~С& 6jJ!!!DR^^vZSj:::ѿlÇ7~\^-g`X0<-\rhkkV###oݺED ">>~ܸqMlhll@ ӧYYY^>hA6D4d TZ ,chrɡ{DRRRϞ=;wܡCI&͛76 r7({-ݻw۶mwy.4&Qxxƍe2)S[hdռys"߿?ԩS!C͍uN4VUU;ծMĐ!C233g̘aNT#F~zK"闲)BN8xChtHoߞ?> 0%DS:uΝ;*Ύ-fиs޺uK,wǎ>>> 4:6uz! 9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!C $@H!9Br!|Ikۿ?ǧTjm7oAgϞ%Ν;K$+W6ׯ_~Z6']/_zK*bbb:})Swս{I&?~\rСC~͛uFN[kUUUmݺj!2ݶmx>w駟܍7{l7l0yd}R5ww9sFKKK[`J Z`׿C-^_ѣGHV߼y399*))Ou֭[7322ܹ(5{zz^~z3X@@)_AAA1ղeT*ڵkW[[N:YKVu~J( BHvZR֭[gh4y`p SN:uSkÉ_mtJ$n K͝޻wȑ#Dfkkm~ĉEEE'00K.DtY49d&&&6JoK*++"7we޹sG*QMMMaa!?9LKKDԫW/Jui} 2rauuuRR==zmll”JeҶm[>ODDID.## "N\^xzzjm4,//p.%)))lpf.]Zl):(?m޼u5 AAAgc#KYr;FrHD͛7wtt4Z ޽Vnh͵j֬V?~ŋDkh4y`䐭S̖9x!!!x#K===WTTgkӜvx9"8q"cɡŖ*d셵[<ʊ*++u?P( \.۰a|Vy<ބ p. =BR_DBf[l9p\.D:t_1bD|Ģއb=[n׮7Keݻw{yyin)**߿qu EvN xY(9LKKJ|>_3۷H$*//?qD>}L- hݺS Woo۶͛:::j5CPhEuujDVچFhkk /ǏܹqgC7Rz쩹7c~嗿oSC6͓daFFQRnaqqVrX\\ѝqI? 9&'|||ܞd">>YK?vU???///__ B/ 8ǧk׮SLqFcz6c֬YܮUWWرc-&.HX3f͚%WX;gΜ"ӯA= aee) ܜVZqΟ?_^^Ѻukڵ+===442DԣGGDw={6{K,O?suux.]III9y1*,,:tT*S999K,INNްaH$,0}tԉ⚚ .\p!..n͚֭5WΙ3GT]vڵHnh?;Rʕ+ 7Y޽O6>,)'NȲHTSSgϞ~~ߌvq'juǎ]\\ ʠZ?r@ P*[nLHHZb5h蹡O3>E`Abku҅FDgϞT'--+ID 444:::===777;;%N`ݺuqqq-**/(""󙙙YYYW0% 57u۶m.]]lH$JNN5O:jԨQǎ|˗m㓕WT*O֮]UV;}[{A3&33ŋΝ0a\2!!Aի<(ܹnΝ&͠fL>;{Y3|nnJKyׯ_xqΜ9Dk.A# }aee) Cv+R+$#GFGGhтm;v,i%r\$-\ٙmtpp6l?`J jq " aaa,͈\pB\|rOOO"DAAAk֬DɩSNn߾_gCCCwa\7 f^kWWW"rvv^ti߾}hŊ\I\MD~xx8V\izoFSSYY|`>4wݻQrruqn .+OQ`SNlW_}եK6b B'"!|b EIIIܠf#88Xs˻KDOf[^^vOo߾CDt~ŋ*D;% mjyyyjj*;V+,ƍ#LTʶ߽{FY2 5h5b,W^!ׯWq熞2j9l ;/Ѿ}JJJݻ`qڹsgv?_>))ի嚽wťdԨQ'N /30Bnݴxxx899eeeggΜ!"pM|||&+;;ggglْ "kkK,ӌFX銊 *4г_Vr䈛[hhÇU*Uff&i9s&??5S2CXXQFсkq0HqqF6[[ JwTk-\R]6S3y87) Tk!6Xw{:tϟONNf߿JJJNNNEE / IZH$˗KD2O#ތm[~~~YYəDԣG"b <);vd=EWp"ԩUWWN/4pь qנύ.&r<՚trDDnj ٨]*QHHHyyڵkIcL)9::QIIV/SzzCtk|ꃦ"ZS6ܲuV' |ui^^zlhӦMZ6l .]pt֍&mٲESk-ЌcA_VMxY(9dwk[7\m~ڵ+%&&'MF >}QPPնmhmmmjudd$3V(ƍխy֭Ahϒ GM 0 ̚5R(111 r5Wf"ٳaaagΜaIL&;r̙3[]]m=ɓ1[,**M"J )Sњ5k6nκӧOO6͒xs 0j"(B |7?ӧON"0aҥKu?z겲zxxy\C1cq`]ar< uʉ޽{3aKJJٳL&nӦ͜9sjVGeC=̙3'f!44455߶:((H+޽իg̘q7xZ,߻w{={6WI)Ro;w.{̚5ۼy-[g{L<944TI&8qb[`uyy#vaJ j:s 02_3MzVZ}w'Nyf^^p9yyy5o޼>|֖RㄇK$UVeffd2wwA͜93%%EPHtȑ/޺uͭGƍ{WM A0B-/299CoɓE"V=zt͚5˫pqqСCPPoatOfFFFNN斚5'8>_^v3gʜ"""8GNnpڵk׮ݺukׄBogmܸ 14ttnzY VUU;ϴ'ݻn[#F~zK"闲9z! 9$@M|R0k"C $@[r/H$IFFAH$zd͚5K"̚5>#XYY)yԐ!C#b>o}F/n۶-bhZNVܹsΝΝ{mΝ|QFYYY!>&{fo޼y s w=c;DC˾}"""H$|\SД!9ԋ3_gΜᶔ;vرc111v4Mll,{zŋ?~,Yf :O0Z~'"}|g4_ܽ{^zib\r+}}}̙STT[^TYfݺu:uj^^_|!H{=  Ln:"9r$j%H&OLDǏyWϟnYqqq3g8p`׮]z1iҤC9qDDu֭nݺy{{ZJ.~=4D2hdƍ~Q˖-yy FDDyyy?6TD&^FGCo$ƎmsA5`O9x>>>>>""bɒ%:T*٩ꜜ%K$''oذA3tو#d6VZqsΟ?_^^v˗kݻ߿i>3S kЈh]v\KN8V;v¶FǹkJK"<))i޽&VgϞ("8p'|K/ݻw؂ -Z$ U؋.h@BB͛S^^/,[,++k׮]oWlڵ </***""&##aFx<C?+J?S??iӦu҅?sAhhoآE "ضm… ׭[ojlr۶mAAA ?OǙ3ggC';_>~QΝ[_$d̘1~kii7|~+Wv]sFAM(נ07ӧO^m۶f8?0rHpBvFDÆ LY./\^{uֱz"ruuسgO]zE֬Y{Wj˗|''svޝ2J$S?\RV[GhB,SNn߾_gBCCwѬY3V`ȑѡ,q""{{cΝ; ""PugH.^z}׮DtR6xŊF6E_O|ŠkJYP(JJJ攔۷og}m޼y}/^lmmnݺ4Jc+DtunKFFT*%qiС<SjooMz/ vx{]X/e=<<5DTZZzi#lɈ|SSShرZgaff&;- -l s\OLkVڭ[7QFM81((ǧ;l={^|E??ׯvSw^7rE"mp׮];C^Jj)**Z~}RRիWU*Ku-NNNeeeYYYZ'> '+;;q___[liha|Hf:(F\PrbŊӧ~DdggףGaÆ|DnЧ#e2[DDk b/z*\\\tڒCH'7oLD]g===<--mرx{{ѳŗ.]b˽hact7z YO$#vbۗm *l43]OLk{EHHɓ'-[oo߾299>0a8%elΏ>'|B Zct5=ko'Ȉe:88KJJJMMeHLL|M|>ic|OXPP`PKnݺ-^u֥dڗݻw-v,H6JѸ59s&??;vVu7p녘'q;dq1Խ-\  ^~#5`'%ٚoQ0?M׮]ӭ-Sy=wϰA+VGV7N:QuusY,cqޱcG|M^xA뭣G)sʈȠ٤FD2nʊ߿1OD gر#PP"h5;hk0L3X(9}SSSCDZوtͻLTZFDK.ӝ%00pڴiD_[&7e+Ll޼Ys{FFFNNN1|XPٽ{D￧5:::QIIVg`zzCTAAÇ5lݺ`dK& =?trr"[nW!006mڤAa"ҥ AMF C8í[5*66wWRR`*)ݛ;w.+[[[,-ZDD0aBVV^ZZyaÆ=msҥ\.6mL&3w(ԩShݺuׯg/_1cH$j**V,yGy{{ѣGO\.[bŝ;w600VVGFFtB?n8[[>8k֬Ǐ111pFdY[[d/8]v%=s#O<eNʢ!###.l65O4 F2 `&ZTV=z spp\W̙3uۙ:9rvڵkP(T(m۶:u_[aÊ-ZtbHT^^VɆD~aW\YhW_}ŶϞ=M-ڹdR>8w\G,?~} ;wj*,,lӦM[O666vܸqϟ?sw۷ojD ,7o^RRRϞ=e2Yuuu6m̙UBCCSSS~m{{{\κFL?6y"D4k֬jݺu6mbx !,,leee`5:tƌ\Yf}w7o޲eɓ'kk {  Ǹ8PHtȑ/޺uͭGƍ{Wu۷osN˖-_s60;."""88x͚5)))7oޔdmڴyW'LOڷo6m߿q555k1z@/]v˖-W^Ç_ާժUظ/w7 k'dժU2}РA3gLII#-Z?䚚:ۓ'O6 A=O$#vl֬ڵk\f޻wQc\\w}wĉ7oQ]O裏^~kמ9s/"""$$DN x  CǸ8͛z=Lā֮] >>󫪪4 Td2Y\\̙3صkW//=zL487^zi,HsڵׯCm۶ӧg}[CP(~嗁tuʔ);OD85tf%|-8w\YYqѫV|ٳg5Kj6S(,,QVϟ///hݺ5oooߨVÏ9"Jeuu֭[333D"f˗/'"x߿ڴi})5# `׮]顡IOO'=zx<%!!a,555.\pB\\֭[5kV_UsQ*k׮]v-22Ě{ٳg׶666oߎXdIx?촔JW\ylׯ_pB`zիWccc/]Y=!'NxA"D555{IIIׯ_CglۓE^^999}||(&&Fdjj7|~XX2hРZrԨQX͛7_~ŋs!]vi;x njysM0V\`tzٳ'զa=$+Ĕ_ZYY|`>4wݻQrrf~z_;KggKۗVXatzbYff&C[ $-\P.-_ӓD"QPPК5kD"Ѿ}rrrԩS۷o;vp]"FX#G mѢboomLp3r|…Dk[^b]]]#""٣YI}!ˣgb+W4p:g3,* B!6ljzKLL6VUU޽FmbXyWܖT";v,7b7neffJR#j_Nlmm+**rssٖK.9P(իWO>MDS۷Сbxba<O ^sôa4fRRRn߾MD}nd7oνnjEh߽{W*` 63q6S,sowwM`ѢE/X,>|ƍcbb|M111e&6Cw""EE%;;-٥ɰLiٲ5plB??cǎDo߾{.XjGvY,љ3g}Ǻݼy.:g2Ԭ'%%]z\^<{g; hjEˊ۷oU[n 4(t1"<ilmm_xᅗ_~y;wzw̘17nLNN}6{b8S[oB*LsRBÁRRRbD 8vXZZZXXT*~z^^^6m&LZnL&snҮɔ+--mر,l K.EF?DTXXؒMY9;;v2'8)t`ɓ֭[Ν/\JlcJ.kҰDEEMݠO|{Ν> ԩUWWN/dL :7 B%;;;#####nr;;;f gOJuVvM6irlذt颵QT* !kңcJ}||_~)u3.y6_͎DTRRq~С>n I *dӇM]t#LMdmm-ɾ:oٍ.dDE'LŶn޼yذaM}zڴiAq6_,@ؔ׻wm^vy睆 ^llBСCg̘ao 5kw}y-[888pOڲeˠA\\\*++CBB6nܸpBEˋ=<F֖M4xGN>sVVV...{;wÇM0S7n dSLILLd_e? ݻ(WFFZ5555k8tЄ ڵkd2Y6m{};w6XBpڵ-z饗|P(|7ΠsC8/tl6J6,,h<67J vfCŐ!C233g̘1o<-yѢEVVVǎ]v#FׯoD"1/eYa9,;;[A;ФXtXiIIСCoݺeggGD/_}:c555.\pB\\֭[5kƊ=zժU/_>{b|Ò]vW&==z j9s(Jk׮]icccb͍x*()S$$$H$ٵkѣG6|w={l۷#"",Y[aaaСCRZYdIrr .+AvEK+W>?h= 444:::===777;;%{`ݺ0ur^IDATuqqquNm۶e˖DkVZŮӧ?6 {쉊R(ܿ˗ϝ;dWWW͒F @aa~JD୷bn6lxYYY|`>4wݻQrrf 򰰰˗{zzH$ ZfH$ڷo_NNWx̘1DW]]Y 6ӧD"1f=33\IC۬ԩS۷o;vp}kFX,RdyWxxԩSYʕ+5GwGڢE >""bرDs:H(t.::ZwpנAr… ^[nK/ĶFDDٳGq;X49lٲA"b^2ѣ@4W^!ׯs[^zi"h߾}H3?ݻmڽ{7=ڈvvֶ"77mꫯt石 Bmֲxb<O ^sp4 TJDƍa nOQuКvQii);^JII}6}go޼MEvEΩe˖-[J999M݉@_̙3D>cn޼Ç߸qcLL̛o6&&& <ؘ.;v,==_$}ݻwT;Ʋsl.mOSjnkx*\xX44uUs~)**Z~}RRիW5;luwMkSYYYVVG uY"rss H @aPkrQ*>]uhc}2j-Z'L1c6nܘ|mn6]COǎKKK Jٞׯ_kӦ;#a.cJ͍bx*BG]hMDiiicǎe׻7Z\\|%܋eee\*,,dէ;DH;ɔۻM6 Zuֹs .3R)@eܘRFsV[TTɓ>5Έ6sYָŢkp+S7;vڹsi ƛwB %YtݻwM|>R.lT*5-Km6"ھ}RӼ4TϞ=y<^vvvuu#GBCC===>R233I̸6/D`cii5X%3gQttcT\\\Ůق3 @aZ8JIF= tڵ'"sܯ7n=z T?5rHC"59ءC\~~QSRRrrr***_xSlh0L4^qѩS'"֝^x9SjfS1]]]`rX‡%ʈHI&b޹sGyFnshr(J|-a$wTV )//_v-=:Ҹ6/:tІHi:` CAA>9A7-[$͛7kn0DTRR~С>UPPpa GGGfҧO6wҥAC\.nLaΝ;]Tn߾}ٲeD4a[[[ [޽{seu5wڕ}C5z͋/DgϞ ;s MdG9sf߾}c3 C qpp0ldll@ ӧYYYIn)m6_4dmm-ɾ:J 7.@0uT"ZnY{3fhkkV###_[ E||q4t͚5T(111?=;DE'LŶn޼yذaA[R% 7Ј, 믿9j(;;;Bn{5gb:t9rwڵk.PP(ڶm;uԯV^]VV6p@6iС3f0ٍ^sW^=cƌ'Ob޽{\Dݻm۶ll;c`.r< x޽{^tȸ6/j=@$jꩈӬYumڴHo@E 7z4Ǐ۷/**/pppsNV6mdvppX`y󒒒z,ɪ۴i3gΜ:?oriΞ=MـR ̝;W!Æ +**Zhс8 E"QyyZfMAC7X?|wbZn߾'|eԻo622ÃN8qϞ=얽>Z>|x˖-o޼e|ӧwʪťws=|p} C !"777ֵe"///sk[[[66)l8_XXTD#22믿f3l ݻW_/ˢE:v(rcoobt7n dSLILLdԩE#ju>͛7yz8^=ݥw""":4a„vxѣz'%%%ӦMJ"MԩSO:uJegg`D 4M6Y[[{zzdJj* 6un}ݱcb5pVZKR//>`3 =M]ll,|O k׮ŁC@rN D{Ó/H$IFFMCFY"@?.yTv킂M[~޼y={VS|#İnqgý{a2ƍ;w U*u d޽{n@;wqƍ7Ξ=nݺ^z~7vwwϪny|#p,322ܹc BP(jjРA[nuuu%:C>X@UH,߿_PtԩSN~~~jz߾}f͚%Hf͚%WX;gΜ" _~8pO׮]Lr [+fΜ9p]zyycҤI#)))~ݽ:w2w܃ޘ k׮} ߿Y?H$cǎɓ'K$_F̉H$'O&ϯ"%KH$:kXlD"ի)cSRR"""|}}Ǐ_A1D24&_=<<<==wmJ={J$?$%%I$Ν;j Ϧh֬lBK2v5`߳g&&&YXV9rD ([fff&$$D"\.8q"aD555{IIIׯݽ{ٳk[[[۷oGDD,YDO?suux.]III9y)-IHH>}:KbqMMͅ .\uf͚bÇSRRJKK5k@FxY簺:))4nňѣuOHHݼy/^8g"ڵkfիWuԪQF;v˗/_޶mOVVև~ȕݻw˖-ryBBV%WUUcYT*O֮]O`` h}055ƍ|>?,,̸hiii\IϦSk׮FxY.9LIItvvfI]taL}4+++/_󝜜Ν۽{w"JNNh"zYJ@@ʕ+Moȑ#CCC[hGDDqZgzz\.D .z ?Ҍ 򰰰˗{zzH$ ZfH$ڷo@ 6liܖP~'krԩ۷l;vp}kcƌ!jn>}H$٫WM-wqQVǿ  \-1uIMoIĭ떊uIruKSS\K͐rLEQrIT@DAq~kAyysf^wy<ױ  +PئM5$LHDDD^^^We˖"r%'O޽{WD|MȦMX'XS/^4,"+JKLLh:Ǩ(F5j4::ZUw ǔZzd#3fppp0.򊋋 /nffzb/--MMһwoӧOKNN!X3VXnFݺuK.0g???5jTD]v-Fj{N׮]UWnݞ={lٲ>LKJ"z0''g׮]"nvڭ_~Ϟ=%j2ڢz }NjQp Ο?oco߾r}%&&v۽{z5`@oooǏF?~ޤ$5k^r%<<\?3?ѣ*Ui<;!oooӫcW_]fƍw6FDDuѺڈWIjTbiC6̷hѢ;v3f6~3kCe}'O|Dw?0e}izTNXx@L4I?ֈ{+RMUj7@WD' ykݺVMKKiժKLPwmegc{ݽVZJ;w?>;;0eÇOHHxwEL27ڵoa+'77СCO0g,X}v}rƔ+VYO߿5k8pƍժUǔ[] T.Ӟ.s-a;v8;;gddi|ofm4m4::ĉ񞞞.]rJ͚58,l-[?~ʕ+~x 6⋦vvv|F((9TޯD$""݊egg:4%%% ࣏>]~֭[ f:~PPÇãccc8pUVRf|#*9uVʕSSSՃjFZqd=}R>4hP^ӧOo޼yɪV)-Ն֭[bŊ77. @EpNu!  =[IDj׮hѢ7n޽V}#"?FsssTΝ;W^Kf{/S\\\?}9rW^"gbR :*QN__ǏΝ;u:]57nl-ٴi|7?nԨQeZD?3-Fkx^=[a 41cF5RRRBCCmYϢhҤF:x`jպt8ca!gi43f'&&NԿiE^xQMqD)IIINu, f*Tf̉I<<<Ν[N[ 2L5T'M#[gϞJR 7ް倵kVVː~UESϖR˖-;|;;ŋMm+WW/PO<ˑΝ{iS=> Iu&" ../o$gZQ$j.__ߪU36h@_pѣG3Z\r"r=ȓ'O9ӽfJEMi>oooٳ|+WTȑ#*5Sjݑ-CRJ9|...jŵk^Z~_j͚56l|V'!ֆ5_'''YXҖ/_.&cJn}ܹsΝm*C QźL  Vɡjٲe))`O988 3fhڟ988* 8xȑ#[nmxyy5j('''444;;74+l)Z%SN...6P-5qǫVRSSstEY϶;vN6l՝lՆ5yf{{{@]``5SZx@K"pB8''dff< }B[n4C֭7mt٫W֨Q80&&f'N2eSZZZ zZ]l)SL8q߾}M4quuʪY1cŒsssT7~qȑdɒ#F>|[nNNNׯ zӧOiѢs=믿믿n{s 5jԼy֭[~z# REYVj .رŋM6gΜ® 76m:Ɲ[h~1IkϹj V СC### 4))~ydC IYqʕCy]sk.u[VZnq988,_|ڴiuԱspp֭[xx% YfM```ٲe322ҥꫯ՜6ls>^=k۶mU 7KSɕ /SNqqq#F8q"Q}ӦMsttz<ɑ#GzѶmۯhG! yh((jjHH!ƍkӓ )?~>>zxvsw֭ׯ;;;noNbC͛7S C! $!9H%'N#__߶mN8hmCE>󁁁Æ |;6x`///:tI~m߾}֭믯]ѣG6CD^ɹsL|||9sծ5kZg=m9~zm߾}XX޽{lo$Zu"qFp|U^=>,+Wzxxx{{_ho ؽ{wU'h'Ţ? .~Ǝw^9e޽{*wJJᮬ,k˖-ubbz T'VXaO?Ժ8qIJeˆ GݤI//ƍ9 Jsf͚;]6Ȍ˗/oݺ588x999F+Vѣǎ;u:]rrrxx믿矛Ν;ݻw>|ݻo޼RSS'LkR ~oS۷o7ڲu N'oڵKszz3gV\c `~)oOsi4إKL:N7sL ^xUg ZI [~âE933sÆ U>̙3۶m5jTj yYu0?wUŘ:ujR]tR]+V|V>}zV'h'źo`VZegg駟vٺӴ"zj`[o^D"##nm۶ m:tuqttlܸA.]ZJ|"߿?hР֫WoϞ=/_޷off!C޽ku0(Azzz,_\X(^WZC6lPݘ~'999V_~ҥ֭l2//܏?0x޼yvvv+W\r:\2AzfCIII9r䈈L>.66͛yCEd۶m-'[n6]'?'O׫Wť|M47n\tttVllW9TFtڵ|bT,1|pYp۷ _;o<>>˗//[lZZ)OHӬY3???9qD+VT9 ߿{.]Z[oHLL=##C={lݺ[30,b޽;;;nݺumԨQnn?qjժwߩn߾Ӵg`ygΜt"獾S0aڱ֬Y3Y%fwީQƃ7Ν;755jժTuEނ 3uf "ZW搐YjUA}"7o"y,U[Zm6m S՚+^~c*Uv*&- %ӟTݎiTRgN87on;vLmٷo_ZZ˖CO%ڵ7""I֭[RR:zhRRғz- J62YǢS*#JOOWsܽ{WeJ7oLNNGݺuKLC34uTYn_U ɓ˔),-X/>SǖsݻwwuuݳgOݪj$5ԐҢE +^ZliKm|7%O\""˗?ÇG7^xQiߢ9yh4KY %++KM`ZDEE=x CUDۃm ֮][eg,7s=ggg'"W^D}Rn^vM}&SNZz3Dd̙:y=z0 +-Xkתy„  +sR?~4WQF>OEQQQŊZڹsoSHUg ZI͛'N("=܈#loVo߾fݺu-222Tnݿ_er:]nnn=^}nݺegg1c, %[Q':ʕ+WhgٵkWԭ[gϞ111[liڴ>F-"NNNF/h4j†tE)-[aجY_̜b(jf6mڨ"Fgxdo߾ܾ}OZl>3OpڴiNNNwYf;ӢE-[Ο?__VSyNh4;9U0`yhz]n]ӰB:NТO_D,X*/i]Eӳm۶o.VDRJ+՘RӎͧÇRJ=x@vp̙;wWEd+~jѢŻロboo?}t_3iҤ&MXIJIٵk%ٳI=jh_|!OzԊ`wwSyٹs'hoo?a„Ǐϙ3k׮j K.͙3]vVWuU 󌋋Q?_V-GNUj]1ƌ\]]ǏgL!U'h? :T-:{;Q4jA ŰЈK~J.Rj %SVZtioozkΝȖ-[ӭ[sνF+6]<77WPS=?6qD4}CDN8lgg/7nZզ=iA65hNNN:u|||1*%;]c3gLHHP|WEd+z~p?^zy;:::99.]vڋ-jӦMvvq p#_uϭQnݺexiggVr{R)>"1''I&~*,ᑣGׯرcͩ@d 7nG}$"OVX˟>wRc꿱pXi!΢b]xE|g'O.XZu޽:U)"111:|y}*W0}VPn>Ƣ`P=J͡hf̘aooqFvlƐ~}zj(''G=U,׾}3gvɜX\'$]tQ#ut'իWUX8ӞB*FUE'h'ƶѱcG5O?Uc\mV7tttoƶSj4/Oŋիm9ZL~~&R@l$"[p~Z@@;|QbggDm۶jpԷ~[Ÿx񢺋0S]&%%r9*Q++XosJJJLLVU/Ԯ]ĉjM XuE_bENO-ec+Vصk͛7Rɡ?pX|ڵkHtt.z`P=3ɡ 2DD\rʵjJD6lؠPD=zn:yʔ)[o_}ĉ,?3u(qE\>TڴiSNN VWUFQ]OQQQuQ3^:884h@ ^V-b^Yt}R,jyP̙3Ejl/^8^zҥKǏ?wE+vRR~[o."]v:`RrK/… sx=Z\v:.!!af̘1G7n\Zt:ݛoojQ럮*mhٲeSnZ~O?FNN'0gvׯ_-[aaa"gGguեy)));t:ùp#scJ ^Yt~R, k׮j_~iB6q~~~RܲeK5k4i$ UZZ_[ ;i 料ND.\0` <*СC###ût""76mڴiӧOnGӢb4kLC^S[޴iٳg^ZF"$5ɓUElgghN>=e`//ŋ[Q[nY]uPʕ#$ORYtE>O2k֬C=z׮]FK2wܸqw^>1Æ ۳gᖯ믿Vϟ?|K.UuڵsppP#/^\BÃX JgPDڶm[N1~ۥK*Uhʕ+wqӦMV'iӦrZͭe˖sٵk.c׮]''ZRQRzvuu=tɓZmJZl9cƌ={Xv#Î5ܩPQHUg ZI3*U_\2m42ѣ\r0L ?믿^Z5FSJ={FDD.b]0(4jxц"b P9rGm۶ꫯvyxxқ9C! $!9!@HBrC5k[oEU<+Vx̉?~ȑ#Edĉk֬' CkToK|||>|("&L0'"booqЯ_3gwݷo_)U]]]aYYYj4:իW_|E޽{_x7ڸqѣEرc̩Ɉ޻wӳYfڵkٲS*hlܸի-ZxbR O%0##[n ?~|NNiۍlݺ@=33sÆ ym5N7p~{׮]:.==̙3+W ٱc_oܸO>za޽z̆o߾ _p{R gϞ=<<޾O>of͚5srr~'.TU{Zm?;;;F9i ;88888TZC6lPO޽l۶MEuv(I"b**ܿ95r>}]ll͛7m괴4u'O~իR|&M7.::UVEӪ:OWɜbŊ걮\]~~~j۷{zz;m""V2'xu֭[nFrssG[̙3:ND^}UӽNNNUT)kԨQFtoӦMZ6l8f̘۷o[}5kxСC"'x8q髮]6u6m<>>>:tX`zTU/&&f͚5j0 SFիO /ݼyo&===44׷aÆ-2}Uddd5jհaþ}j$;;/l߾w||cN8s('zK*e:³[n;rH͏=4bĈyݻ/\pϞ=׮]?XڵS#""TziHjjjʕ땛rA{{Ǐgeemذ!..nΝZ֊VZU?/Vz5jDAv9|Lqvv~ӧO>m۶ 6TXQ#GOBCCwޭ999C y嗭.E>GoGnѢEdddٲeo߾=s̀G"oܹ"hʕ+wݻw޽{ذa&M2jK ػwhGر#22m۶y̪@qV2{>|xQ_^ÑjLbRJ?~xڵGfee۷O Cz^vmϞ=[ݦ?CvܙnݺK.9sf̘1"rYكԡCͿ^zm60h 'O:433W^.\p¦MϞ=0xԨQ͛7~q'LpڵFvZZ K:u*..+;;ȑ#{={l=D$""Bw^_;s̩S'"}Ν; dɒ{ Νۺuk2eɢ@U|~#/*55}~ђoڵG}?|:u }h4֭)222==UWJN1~T}'""Yf'Nܶm~eb.==}ܹmڴ+_رc C(L:Uϝ;SDZm``e˴Z?x9}… ]]]ÿ+ٴi˖-h":ӡCҥKJ___FӱcGIHHG.\PD7o'r]]]gΜٺuk?>R-]TD~퐐u:M6l:[%k׮*u[nϞ=cbblҴiۦSӳm۶o5Oi6mT_F ?vXaڴiNNNwYf;ӢE-[Ο??==8_A///lRD-$ǎÇ(L:u޽j1ٳgTZU(SugZZwF#"qqqjɓ'޽+"oadӦMUUXu(3y.g:U)I&5iIݻw3g_|!ySj#5ǪU>S999v*ڵ[~={t:]O&L4hy7n\tiΜ9֭[nOӂ&mgkǏF?~ޤ$ uرo߾VRO={,zOdOGVVg||tFcTcܠA^u(orhggc˖-?rʧ~}7xcÆ qRӓ֩SFڵQѣGϞ=g2vĉd;;;%"ҺukVcnnn{ݻ\tiӦM-z!C~3`,bs_&-$,77WM( ӍSNݵkWRRRŊgΜT>&3;;[3%%EQR%#ܻw0մ~$:7%dRGGGsRvE߿ܸq{}R/ѣK/xaz={UV5 P=999F}1ň\kܸq=ȑ#O>}I,LլY3 'Oׯ_;wOJ:I:7%pRF3c {{č7>)}3gԩSa7tttoL,|GjK.ŋ4zSjkrr7n5jTnn?OGކґ-777III1-ܹS Ubd.e$\pSgXb׮]7olŋ*CGjҤSNlyUrvjciq"fm1Ǐ~ݶmۮ_CiiiN>i1 OڵU5uI~޺uHVV"g{x*!CDʕ+yVԪW6ڮƔU &ÇjS6m^xtN{w)LJˋ'ooo5vyfwW\1J͛wС *̝;W|UV=q|`u1 KfDdڵFTԖ F=zpm /979ɹ-\к'222zu:~Çyƍ._l]%~-[sbCӴYF233סCe˖?|0===>>oXX׫W/Ϫײ \Uͫy84c V??~\9uֆ ̡C͛'"ʩ*T駟j4?|޽V&><~x5LjjjXXZI244T0x`Ylٚ5k?p˱cEׯߟNٷoqnu։'DISδnzӦMgϞzj5 wk.ϗT\Y h4O2eiŋ^u+88xɒ%۷^zs#F/YdĈ֭Uw><'''$$C#jjK,5jݻq5j޼y֭[~KZZ:A}@{'N2)--B =zol~8+OmV=F`R=z+Wpˮ]VZ;i+F:thAAAZRJ-[1cƞ={ͿUn۶W_RJRRR\\\\\ܵk׌:v5|z9::>xͭEcǎݿҥE$77wԨQ7n:u&NX~;w 6LYZ3n8x[zzkPPК5kLOaӦMSCn<9UbN4Y̑#GzѶmۯhG! sWH$!9!@HBrC $!9!@HBrC $!9!@HBrC $!9!@HBrCDā*a~k׊O9HWN7nѼysK_8k,z/U]F5jpQn6JOON:+b ^zU>WlE4!s=#?\\\jժծ]r%7^z500E %%%]|9A>N:!m+`"}AVRgϞcǎD.<-OyBZj?RSSv]vmԩmڴy}||:t`yȷ~˫^zAAAcǎݻwid F/}yxx 4HD9ҷo߆ z{{K^ff ضmȑ#۷o_~}//ƍ800`GXXCCC4hPVŋt'̋bQW~{m۶=\V&Moc li5?FV^w}g67(ʼn;w>\^;;;?zӧO޶mۆ *VhO>]D4M 4ϝ;yaw Q$''_x1t{#Vѣ;vDFFm6+saZ_~%--zf}n(777$$?ڰaC\\Ν;Zas,Wݻww޽{aÆM4ՆElǏJ*ֆl3gΈ /`~Fۈwg}ʕ+ۗߕfߠA-իW/_|jjٳg3XjժVHeQ=[gѢE?]vOzmXo$Plu?rΝ;UrԬY3HPPÇãccc8pUVb jâz.jHޓdgg:4%%% ࣏>]~֭[ fi gKW ֭[bŊ77. Zj3JxzlQKpp~o߾#GKDa])))w1RL\L'0]jOEcQmXW]nzjǏWm{ҥ'6/iU׮]+|uR ,hР3jԨZIuIF{ɡz$Iq"&ܹsjE+ԭ[WDL73=f9>>>66666ֺOlvv"RPWڵU?CllѮ'O?_ZT׳ԩSY=YBoF;Ǵ \z555UD|Fjӛ7ow_P'(""ÂRlQ=[tj qٲeϟoggx.oQy{;ooouc:{lYEʕ+7:yƈȣGDhI5h@u_pѣG}ܹsΝ"R˗ׯ\\\5k&"k׮5Xza~mXZkذ*Һu Z6^rT;7 C0]HߢSavvvVVVVVVff͛7#""^ush3Z?|quCq#Gn:++Ka~ ۽{L&зzFxȲe֬Yn;L2[~"DfRKM>|xj԰0^hhaEaQ=~С"bŊ+W … #FPK\ZYfK U7})]t>/5jz2;;{ƍj~[^ZiDd޽;{ڞnݺ]~NNNfzRrRx٢&jQ'8vX???N7l0S <-EMvpptЏ?6k,7oVZ588xڵVeʔ)'Nܷo_&M\]]322j֬9f̘<_եK#Gke˖t* |RbtӦM۳gϞ={ZmZZZnnn2el|˗oذ_upp֭ۤI֬YIR[pppdXjm۶͛7/&&&))ʕ+תn7n܋/|Ǐ6jԨAAAFֆl{{/rׯOLLtjXXؗ_~)"VVDBBB<<</^ޡC#GFFF>%+WgϞ}Gk ӢƯ߿M6˖-LJJȨYK/ԯ_?OP X/^ϸ~g󛨥OXXɓ׮]/wѺ+hfmXJzR(33hZ̺%QiӦ9::FGGNBe˖AM:n?C~fΜI<<<<6ȑ#=zh۶W_}eˑ-BV7~fA_!!!dEFP P @-uGt1E@m'P*5*%??۶mZv!f͚b[/_~ii=X -?׸P  !E=㧟~~߿zK/ȸKuA3fLFFƯ~ZT>6fϞѳgOC}}ܹswZGR'gSLyԹaÆ ۷ooӦ;{ Bӻwo;p}6''믏}{Z̞=; !zR;4h'w T:ޚB4iҤ [{)ԴikFCQ&oVD~镘 a7`gyfٚC222F?6m#Fml۶-"5j)`$Bm__~p㭷_nzر%dҥÆ ;ڵk׵k?*Yۖ6mZFFF߾}+R{k߾:r>n8sWӧg|#9}[n(+`kWzմ:'o{nrPɹӾ}]7E[nҤI}9:vد_;㫯*w]|SN1bDz9wܭ[;SN]vӟTj`qva۷ӧmݶcǎ>}ϓٳg~~~EN8cԩQG]uUV(/_Çw֭]v|p߾}Ǐx%{Ytǂ4e(=BmU~I&?1cƅ^ةSw}77.V)))M6ϟx'xbԨQW]uU9//oĈ .;v̟?ٲe{N˗έ[._߲e˾@+RhS8&?|AAAΝ[hlIKK,((:t%KRSSo>k֬̅ … GLu6lpǎoo1o޼Yf^n)Sر#??/^z-]I&}_߽{GFwJmܸN裏ktM/9sfÆ 2gu]wݵvW^y{bΜ91dȐ:u+?iҤܤׯ;;syte:`Tsr~JJJ˖-SRR~իW/]^(V{ɀ׿o[;XOQ21s؀:꨼k6"={viJ.^8tggff曯\wyg=w} .LII8qUVZ`ƍ?#% C9$"_~YXώy%J :ꨌ{NNΤI"㏟6mځloٲa{r2 2^bENNNZZڤI7olLOO?䓓ש_OQvԩӅ^:4{AT̖-[/_y_~yVJ~Tڵk;2WoFDz~{K..1!u!\䅈"t/)));ׯ/)Gr& W`58CšVZj*++k'xbaÆ >}ٳO=dElҢEd*|^y啈{K~TdliH9C[hq_xᅽ{СCd[L B~!<x`NEmڴ)yP-U[xQ[hѢ %!u!#!555"2̜$TvvvP8>RjfN/kٲeVVVI}ӧOg>69gqFEVI&`۴iScLGJzz>z5k׿ƍO>3+0OwL MWs~ߑʪ+0Mz|o,\WsJk} ,xgW\f͚gygYh`Dr!E'I_bW_}U1++?w5y3fݾrʒ+΅5k}Q-j][jP;ءC$Zx999% |0XըcK-^YfEDƍ{]pӦM_jժ  48ꨣ+`Ů{_#e;v숈u:2}p{d^x/O4/&L\>4vآ7o<~d2aժUÇOo,ԑ#GFĴi{ڵknjӕ-TB]tEU֌D54ݮs5k^y!C7%K\r%G}tUFE?>kE^^ܹso喈 5jTprarW&O/ zdMf̘q'W/SYf uC y衇-P:2dw_p orI'4f̘tՠw[nw}1c^xSN9~ 6ܼysT, Ruըc0q'fff>O6l0--m˖-Y0T`ٲeINOOOMM-K ~>q&~ӟ?~|^Sž??gΜٯ_-Zlݺy}>}IJ2eرcwߴ֭[_xᅏ=XӦM+XԩSN33333^Tu:W/[l|pz-Zk?w:UUt &Zlg?YÆ :vxW̜9% 0 "{:ZoذaO=\pdgg~sΣ>Zm8eʔA%ߺu{=pYfʕ+F2cǎ(1e( 6D^{ *ٺuoqԫ"];GwItdff3+5.]|iv1/)TFFFYmPf].''gɒ%ѳgO5?gް) TVW\qŲe WqܸqQڶm{ki>'Fq,ʮS:ٳzm6;;{ݺu͛7뮻g-xF/~'7ꫵIMS:>Dj5a„K^?o׮]߾}_>jO?>jܸq=&NءCmRiXݞi``A&  !!.ҌK/TSDĘ1c222~_i 7ܐq9QU1{쌌ʺmz髱u֌׀jx !fϞ=eʔ{T^1bDnڵk׭[.d$׮][쩂gddknŻAԺtXQѶm[cpCfϞ|MիWͯiӮYYY ,Xpo~#F&L0s̺uO۷n)V: 43gNkk~!P}^}${ѢEk֬c=k}+\s5<@:unN:IB 0g={:s-iҥKF:{キ]vSL?馛?4hD!JӧO/\!9[n)ÕW^?ɹӾ}]7>iuM4O>p@ǎww|W͛,YC iԨQ'+.jܸqD]nZx̙36lX՝R뭷FDJJJӦM?'x'5jUW]U"/qF4h/X`Æ ]眜 /0Y(--mǎ=ҥK9=*G5wTVVֿxͼ#F,\ϟlٲc=(]^rwwgr0sR~|C)/.W .\f͌3{7|sܸq[o͟?h+V9r۶m~g׮]vڇ~CoVQ[v4iRD\q;ݯYhQnnY~5k~{饗nj蔲ŋdxggff曯\wygU|]uRSSx=Xb͚5VZzu]:mڴy敻w}ŋSSS߮YfՏ>hƍ}=*Gwu]=_[paJJĉWZjժ 4nGx5d׹cL]EC؃lݺ[oӧO:u5k6~nݺE3ê{ʕɠ*v"wݿw!u.Sw״ \s{W$S:E'^~HIIK ڌ9O?3g΍7xprHҪUVZeee^O9jժ$!wڵSvXaVZg}v?Ζ-[ o[l)]jUDԯ_cǎ zoyXUzwQ^Şҥ˷u5e6=p{+^FD vpL Wyپ}{JK֪Iֆ)Λ8q_|3dee]r%ͫ[>3KnڴiS<#pƍUW_=sʷiӦ}i~6lxsss7Dl޼yəɝ}XU]w'#EuUCF] sg`';~}ך)16l(7lؐ|+~͚5bŊ;p *mCUm9rMw~7wܹG}tԨQ{`VaD9TYYY;ةsJ޿>HtzjDvmZ\Ӎ-Z(ܒLA=2Q7 l޼i25/F=S47*ΦMJ 6iU)l璃ǎ:kxvc!øN/=zm۶%+Tݻ' ŞJԩS?wu]^{;_/m,+++-ELr맟~Z}[sdʕ+=bŊX>Zjʕ+W\YSKZl>{+tA}ceffiUv_gJT;/|e$B׬Y裏*:t,~7&sӦM:ꨈ5kVcǎ3fDď~ղe믿>"~o{uЬY"qƽ{.ܘ,CbŊ_-ZTYo qC >`Dr!V)?N:餓* FӦM#bƍf?VXSOU=dff̙Ek֬ӵkdP%g+WVE%[Raߎ2uwgRҥKD,Z(Y⮽ڴW^yeȐ!/rF,Yr%}۷o/+_ve)))֭6lتUrrr֬YsE;)))m'<`:u?_=?~|27w[n%".D&ko޼yɼU^N.dՍ/b„ ɭƎ[ӆGѨQc&_sss,Xpy⴬֭;bĈ{O|~饗FgVU$55uȑ1mڴ? 3k׮3fLr/Jѻwgggp ;Q5ΥdA rw'p¾\{vI'ݺunj /r)oذ͛ /)z-;գGɓ'O Zn]WKOOꫯʧ~?aͳo߾~7n„ y.'ʫ~[liٲimO;.Ko.OZX`Gß{|„ 7pCzz'|Һu!Cz}-ZիVd?j*--{^~_|VZ%_?ɓ'&-[?aÆ;v+fΜn)S;v}MRӅ^c%MVJΜ9_~-Zغuk;}I&U@ZjU!C{СCO޻w&MdggifĈ-JNuw}'O>ԩSnSN9emڴ3[rs׿;vx N:uɝ;w4hc="SY;vM7ݔ\駟~駛7ou.(}wWx(jJ*ٺuŗHK_wRɓ'׫Wg- ;v#}ڷoߵkq}gEKN>2[n=W^yejL0!##/˗]vСÏ'n۶-">}tGwٳg~~~9!;;{޼y\r 'ХKv㢋.zꩧ,F_vJ={-m \|SN1bDz9wܭ[;SN]vӟT_>)ܩSp :tҥˈ# ֳR:{w\=Б#G~5yb-@`j =:^ 6ܱcoơ7o֬Y{WC]dIjjj^^g͚p1[.`_߲e˾EڷoU3gθqرc4hpYgu]k׮}Ww^bs̉!CԩS_veF5h?^` vu~ri:`ݓYYY׿Lcǎzt&M|g_}{IwJD\xᅋ/;vhuvJ|}-\0%%e„ Æ kРʕ+_<#Q~~_Z ]eR&M3dȐ[om۶ֻw{7--_zu?ٺu뭷ڧO:u4klݺugyR/qs=Spώym߾&ӆGuTFFFO{|&M 6sύ ~Rڻׯ_F'6ݺuԩSJJJ#b͚5Srrr瞈>|СC?;F.}y:rdŗ]yX .G>|5J8Zwy饗"bŞرcN"bٲeŞj׮G]tˑG^eUk[9%!%%%YC""~򓟤o޼yѢEm=":roJJN'S]R{wZn}م'w-Zh˖--ZH&>~wyg˖-EٲeKwJ-+A3yP8\k;eժU~uر+zovus)oFDz~{.]Ts @VJ~.((H'ܩb[JґU9T ~Ϟ>}3<'DO)=3*߫znڴ)"ڴiӾ}$Qlذͭ]YN;Xzk%p7wm$e7o^r^e˖ȥƍ#E%׈z?voqkذ-s衇|oƜ9sF\UsJsssGiӦݻ|͝;w.|G5j.R;Xq)=HB䖕Uei~መ;wn^^aVk\Y~aDs=^'evLҢEشiSpaÆ^璷MGJmA&BԣGضm˫]WYN? $7S^v_y8+S:蠈ؾ}{+233S*ίZHT5j:$kx999% |ެY裏*M68p`DתU4h0hР `Dlܸ$̊+zJ~kN9C ϙ3g/EGUwJܵkd3fݾr )tJmrrrFpյ^+ 2_NNW^d%\rGWB.]"bѢEZ(0!+jGqDF Ǝ|3]`yרQ]ʻ_Rn#FDĽ;}$ӾKFN)SSSSGӦMv1cTd)U[lə۷o/ܲcǎ ~~~=jjnݺ}ݍ5zN9:|:u:3̙m*!C4kl˖-'pB^ 0`;ի<~VWKOO#駟E]Ըq+r`r-.YYY?-+TN袋?+SN;w>SO;ʪҿ픲yϟ0aAԣGc9f֭C o.TvpԨQ]׿pKrsWF8Z˖-=z\^/Ez?~?S*֭[ϛ7oРAZZ~}fffffu* :t{nҤIvvv6mFhѢ\Jڸ+W|w\YwJݺuɓ'xuԩ[)`6mTV}J)esjjԩS'Oܹs眜A=cM4i*ڸU*%9/jPۭ[WNkɷ ޞ{1`1c|Pӌ;G'MdY|iv1/)TFFFemPf]LII ꗓdɒٳ@u'Nw\۶m5XW\qŲe ;ٸqQڶm{AL]MT#G⋟|I~~~ƍ#k=P۶mnݺ͛u]u_!v(|@O?ƍcĉ:t&PM0aҥW۵k׷o_%2ovbAv{݃ippp@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@DPڴi֯_`7f3P @-չsb[5 6CJe˖-vc!O_r%Zv!R͛7kmX+#aMFAANIXyݺl ]!!!!!ԓOqƗm|Q}S\(X?򂂖5hp{: 3Ϝ=@8?~ܹ9}cG|q9|ye_ϯLw̜y&Zvv~i׷&.<~I C*AV[UW}}3 68A7dgg|۟w~Ro}YgMϯx`7 Tp@E5n2lXgM_iU9']Ӯq ~ZhQNi->zNzys/VCM wݵ{G`(7Ȼү226}ŋ^~Y/^n/;I; ?"eҾϿ 7Kw֯~uG5ۤI }ْ%ݾbߺ>__KCf_wwܖ["#θqUf߾i'f?d5l2e[{K2?Ì~V>:ӠmۯSlyQGmy ;_uU~}1hЗ=W-_iiq_Oo;-&e~s6L6۶՟DAi{]'--ZJ9䴅 v[y^^UW&y\no_UZ~!pu5q=&]fFiO=5#2spp@p@XX.&TcY@9@8@8 CB8 CB8 CB8 CB8 C"&j֦Mׯ_e؅C{R߲eKfVXaV: l޼X?8݅p;T.3p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@DM߆ `e[Te۔_IENDB`python2-pythondialog-3.3.0/doc/screenshots/intro/example-menu.png0000644000175000001440000006315212507731135025134 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~eIDATxy\T0 ;of?=5(Bij+m~ťʹ2SZ*)n( "ʾ 3?.h z>|̙3^=sUwSի JL4 #!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!pM'T:C@8 CB8 CB8 "6tJۛN(8:֏pX֥K-wtt`%(#(nݺ[޻wPVpXcјCˊ)T5l0zVJC CB8 CB8 "6t`M<,It.C@8@E 7lXXOΝ}433*UҚ2eό3=ll9}S˗ou_u``嘐V!<<|ժUGMNNWC=#taaaW^ڵ?,_¸˗/WeX;rDLO4iKN:uԩO?}kgdfW\\\|}}kժUk׮U,Y{JUl9)( 9"@IQ}͛7k4gy'[h?VZE߿>ϐ~߆pʔ""oq;vرԩSSSS%0! *өSz :vvvE###ǎ۶mig? ?~7|3a__Ν;[.33sԩM4iӦŋrlllppp^5jԸqc>,+++bB9hg={vٚw޺u֩Sg݅w:uԮ]-ekVPDz~ګW i_uV:6l6mZ߾}[jU~:7mرϦMQg>>>-Z0LJIΝ ꊟ(^~m6lذW^|N+f) 7׷UV&LDž|]voѢE>}OQs=_~}ԩ[nذa>}K`Uf%ߞ}^z:ʶݹsgX7Tl,VW#3|||~b_A0i$}9De2JMMYfI/\PDT*kRR֭[n/k*ϟ?_k׮K]vtvvu֜9sڷoߥKs-[L<9''GDt:ɓ'O}zɒ%:u*)p5kX`VݱcG'%TB/ueZP7l,VW#׮]===z}?{NN[39h}4K*F>?CgްaÕ+WV?Ν;"6gΜ={ȧ~Zi]vM4QTs`^pzꉈV[lVΜ9SRfh4?m͡"f͚7:;;/^ؚ\pa^jujզOޮ];ٱcGjÇꫯhUvvv;vr[Jr8vX :zfU7ݻ+?|t[reFF^W_?l:u/9Zmppy4e!X-%~We>TSO=%"6l-X ǧ oEl;lI5EhPJXh%GR-f, \CT~{ԩvvv!!!&Mڵkn>̂5ӣD駟6§xgDرc ˽E.7oT~pDDƍ4i""vtW7xCDΝZW>ՙuMD.]TлlhWgl>D|A˖-E$66͛666m۶{gylVg=ȑ#III"O,ԩC9A`0$'')k.tOy{zzzzz&$$9sG짍7.P֭Ϟ={?ֺukwwQF=s~~~wK2*]vjRSSO>]֕|{vpp:thHHHXXc=+8e8nX˰Öd+푿}uֽr͛3:ӳ{g%GR-f,@%"*?K.YfW^}~WCJJRFn.)42`AY(`P~Tu6Lʴrζt'{\\\̙cowщ KO~*>O+ﻷwÆ (gϞ5}թSݻw>|8 !!!::^z.]rJݺu^pXu)g-LHH0zS_V4۰RqqqO'OꫯSOo{#55U ٱcG|||Z9?x#KX˰Öd+Ñ6nh9 R5ޞ-w`t-GG~pS~W^yAӦM;y#G]?Huֽ߹ SfDFF^~]DA60qĔG͚53?~_|b>OF0_?~O  +SJO>ۼyݻ=cǎ;vXޣ>nXn{nݺu-NU^*"_}UrKѱcGJsZj 8^zh(}.uh4J84ҬY3D)|͛w)rrri,riF^^ɓzj*I&cBſmVTU<<<xB{mk&Mz'vء yxx|'*jҥ>r[{衇M&ԩSUa<󌣣c5Cn5vZFӣG󳵵UFrR???;;{RU.ӧ+֭[`3fLОbcc3aYlYHH^xV^܂|~crr[o# z*jWfq,RYPm@]\\a~. d+Ñ~m۶5SN5 M4)+9[_mrӧ+lttv= iPjJ:yrcBׯ_,ӧOPPТE~UVgK?~{ٴknɒ%SLٷoߐ!C̗=%K۷vE2 2eJ4ydo~=zL0aɒ%AAA[n-zIa,9zk۷oر[vvvnnnݺu_~e廃 h:uRGv, /rܾ*!!aĈ ӧO/z#jժ}˗/62|C2W.G}رcFrrr2 Ν;+7%=eܸq{ݺuٳz-;;taÆO*M&Ӯ]h`N6{T80**jĈz^ ??}oJ]6h@9nȑ*U?[z-VW#СC9rIT4s䷶Vی&M >|ݺu7nܸq`hРĉ?C`a2ٳ7ӧVQFn{m۶թSS^y:wwL77>}gck׮ɓ'h6##ݽk׮ӧO?wIxyymذaСqqqǎ;vXllla2}}}ٳ[j/Ͱ \```HHsvv Õ*WfͅʲrѣGܦ Lt=;L:?Ty͛7֤RU.!M69d25nx֬YV2{ͷ~o7o\V 2dE+8C*T&Zzuwi5knڴiذavvv&I&?\[X7l۳_Djժ \Tl[]C 1_^Ck;[_JoNZvmVs/ws,M\P_(^ll[)!*P1{_u̘1s;vlʔ)g I ֻwBX&(VbI9jݻرc*PX7xCDye G, i.'Nܿ7FSSvP9ܼy={駟|}}@`|~54cڵ!p p!p|||:wLWJcR󅅅]zϯk׮P,!#"...jբPҿ@8u իWF7ngeee?^z5lذM6/[ M9t>̞=h3^uNjHTTԳ>ۦM__ݻ999暝;w.j;!M WPϷk׮~-Zӧ#""N`9Vʷe˖ɓ'+Aӝvؖ-[ZR|'k׮]N4lMZv/xŋ/N:^)i߾j ϟ/\t+"*CR={̙3ckQɎ92qD^?jԨzϞ=3fX|ylٲ~ѣGzz7|`ӧOoܸW+#FسgϨQO^&%$$m۶}[l4믿.X/T^zZ[n͝;WDƎ;c 777IOO߾}RT`^pzꉈV[lVΜ9S) .իZV۵k'";v(&߿Znݣ>5:p~f#GzV V dQQQFm۶BL:t( njTJYpaEرcl3!*rs\rZj"ru_b눈NBpJ{iCqtN;g5yy"GsJO7;gTE^=/8i~~3gT*iD#"Zi._6Zֈ2C˵9;{8:y~ܸrpuU$cf *GTTW[;siRI^補zጼkWa%ZI9z42o WЌoHoV˖."bg26nGv|aMYްaʕOtQ{ZiDDÇ[kwLDt9pj˛7kԯ\Zx+Tبхǻ)7h蠥;?  DD$3RѤ$ӥK"2lҥj.M&3sp޷>it6]nrqQBC+}D,pﺗ^˓ݻ]Dԋ;>DfQ q@m I} بQ*>X3JwOke5}_~yqq6l4$')?:9e)p:g1XνUiӫM^6wzcҤ~ЙtpP5l.xZT<`vQ a={ V?= 'l *`3hЪ?|uv}Vm_|񣀀od yf\ӧL:+df: r|2_F:2ztf>!!YYWCf|YNmseo+ܹY~񅣷 ۨEzu)Dbc x{{H\\\aÆ;"OʃO% |4e[ݻCA:TmHTP)hFJwK/}{Q6*%:~#GZK~0! T>>q `MBB 'j̏\DVo*1x{,9p+KD8*`ή|0/aK19ѣ-׭|S:-]̞L?!@9`FJC C0! x$5gt6Jm2ɵk3gϟKHRؘ45֒w}wҥw{t̘1s)ZvU??]VMJ\矷mvرV[n^z?Ubc^`NJHIHٿGzΰٳGDV86{3ڷoiQGGGGGG.^GawG8r?^$u۵mڸZU\eoo`oorp0T"b4ʖ-5jZ̩>k֬ eyܸq:uZrRbkk6f233Gѳgzꥧٳ磏>JII7n\DDD%rC(*VHQծrCeneP`Pʣv9UL8SmllZwס1ByM6m޼?߾X9!Tl11v7oڤkԶ&77Cn2k4W3gssU޽3<< }Rȑ);f ٳoؘ%66ӎOL7o!!!g.X`  7o^g~W۷oUT 4Ըq$_ȟb:6V޾}}Tl[ F+eLĉk׮SBÆ =e˖-'ONwɓ'OnذaիW/Xy:h4^v^ڵkdd[̙Ӿ}.]XOt2mڴ L:u֭nnnJyZZԩSF /$ò5ըQGV5T&ipwjMKlTzjZٳoT֬q7'CYyyC,$N_ݺzk1eyĈ{5jVȑ#'NF W^߿ٳO>=cƌ˗?ҥKQQQ72eO?^ph6ڵk߾}_Κ5+66m۶ KیؖtOvڱ>P9&v|PgMz'LHTMI\Ю^^i93aΜ=jKNN~*êg+-`^pzꉈV[lVΜ9S2֮]&MT~HLLY|nnn7o 5klܸyZmebŊ4[[ѣG#@h,ExN[nXmj_X N I^ݠR_fN;wFӭ[fz*.\8pL+J9sfG5}eTBnnYDϮX"00PDF9|J[n=sYYY>)SJ @%HHuG)-OUyؤg]aӦ8x?'dRn^V .`0Xa{\\\̙SݞSO]|cǎ_|Jb*p 2ٜ z;;Sn:8Vʦ3]ϟ[CiR9O?lYݺuJd2Ym###_."ǠA*333G}ɖ-[~"*kw y t&JRS9,Կ奤1=ʖ-s1ɰf͚"P#~ Խ{w1cƕ+W*<̡C6mŅ!T)j9;b!ʿDf%[s0&sՕm=ztR:oOСDEEۜ7y䤤޽{Z?==}ҤIz(ܱcݻQFW`OpFx1?fewp.ZI;l䚝' bZ6/~muN%" zHH Zj"KY,___{s-6)]r-Eٳc…*j^^^7o^QZ:߹sgÆ ׬Y!T-L(bdž ~uѢ 5j\Z/;xAI"rE5.,O+#~vvvmJ"撬bժU+ +{ZСCT.޹sizYZ{Yh̟?_'|R.]Qf^7ntRJIIaDŽ4P :v:~Y;Q7k]x>CSGN.aԛe;9mlL!CR{0WL.Zr^^^6l:tg\\ܱcǎ;~v5y-Zfddwucmd . gnժUbb/hNm_E("իs"/6ݴ[0߿aÆ;44J8 PnBxmR&+Km4[߲evǎ Æ~ ^п, iC ClP./O{㍒t9y4i^bTLl|}mf++w}wҥw{t̘1s)ZvU??]VMJ\ػwۏ=s-FݥKc>"J ZX[V_"`J&%Es]?hƇٳGDV86{3Ç.\pիxdz#@9pxi/X:qb6mW*X*+u_\GJ5k֬ eyܸq:uZrRbkk6f4hвeˮ]֭[377Ӌ-:u;Ӻu.]K`PTZJKF#"V]]-ZԨaѻ99u:v6fgEԩ vvvvvvʲ_W:g*iذanݺv횖F8G8ʑ>~>&MtMVfh@׭[f͚BSS5r}nлwj*ұcV1bDJxmdoڲٳg,Y` ?Λ7гbcc۷ƪT  ^{&5nk~()I532Zl64Խ}roUNE 7ϱ~2_&wĉڵkשS\aÆe˖ɓ'䈈N;yɓ'7lذzի<|Ng4]K/u522֭[si߾}F,.]L6mSNݺuR6uT /(ɰl͸OgΜ&M#@ehLw<֔t6/O׫֮u=J_mws2T:tȡq_(TشiAic#3jԨӧ߭#G&NGT^=^ٳg>}zƌ˗//XׯߥK"""7n.ܲ<٩SsEfgg'ݦ$"^o.*YZ軽{ァj:pA;wN6gϞ0EۼgϞEoxxx|'*jҥenF۷cǎg޲e˅ ?ҷoߋ/Ȕ)Sqi8Tw8{NDrrTw;)͚DGT'2fөt:<`ΩS:Y!CR+C>裥K,9p`Dd̘1NdɒԾ}֮]MD P0knɒ%SLٷoߐ!CҌOU*msRRɓFc``z1a„%Kmݺ=KҌRIII )LO#@%Pe]rPnui)C7|h}//ԩ7Y\G^.>>zs8-0Ce;gPgdjqq1֮k.s6lذhѢ{)SiӦP~ڵkٲeǕ+W222ݛ4i7dȐ l2}}} ٳwu_|q{r%/[,22ȑ#7nܸuFy:wOmۖ]UbbT^'EDz-_TT԰azJ%eMY4Vz{q TQb+{b%&kJ۹91|km\eDRRS5/j8;t;u萭՚Q2iR  t{g\lR`ַlݱcFð!_CW7F?aB@8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 C~t`QCXK.,!F8ٷo_n 3aE4#T"BgT_xD_?mn|Qܼi 7 -\WGdHZcV@rs?]Z R/W^fRb);[ek[m!*C͸qvO>i}zر_pϟ7޸qƍN߿{oaÞz֭[R֮Z5ĉv8:a E%ɓT6m|o\*T_c7|_2wjXݻ]Np6CŶd9YYYVIeg'O>i䓶:roX~qh4+>>^D6m:rw),Xm||;RRRVA,C}{s 7nPЬ`MHHPj V3_x4yG}uօ:u7ߜ;w9* U;q"o*  vss1ee9 n]c̝?˫Ldf6lЫRCntQ>{ 2d6̿}唔M6s%srS.~Ne^Sq,eAF ^o4Jzͽ~zrrҽ Ƅ4ѡC}[|c|ۏ?:fx{$M?Lo]p8n'gIʏ͚?!ߍZ ]ƍj+V8{Qf|A322>.]9rڵ@Un]e!ҥ}Ǐ!Cƌ3~1cXa?֜~驧ԩܹs;wpB1xF-Zhƍ{iUvv2|vpmjiZ]h? FOV*-Zh6o֋$Gz(m2)uGM8[dyy?*3"nRIn6Gێe[pT?:<8p/_?޽{ݯGեKNϫWԩw͛>}3A9%|j+ ժU (wg߿͚57nT1bѣ5jCVɼ,ʌȟ`Z5ED\R,݆G ZHμb@ <5}YYU+aƌ*߂/^s /ܹ}Edg3x uҤ,a9Wޫ 1bD׮]?˷')EDc|wc>eTR>UD_322,LKK}&^hk{vwK~i݇ѭ[ŋ:t(88dp{FR1[G}hx 8xqodofxݜ?׬^`|^QgΔE1޸ád2oD{رojHwqy֜כ54o)(ǂs*"r̙bgׯ|pŚ5k⋑aaa=XY^JT ._{-?vWHVu3&SDF3'gΜ ýn.c۳-""ΙoI[Flݪ Dvگ/ԫoysO8OmZll.\oc^D4hpUY[ƍ5Roo (c۶mSTF,x[5j4m̙3"qFGGGNg0,55jԸu떈ܺu~pssSfi׮]ڵEDV{}%U!J ٰAaG3}ԩ?,SM3XČ5o~VDƍ[hijg}-yr֬]lTFӷo߾}& Rq$''uIw{z&M.\p5t'OT֭{ʕo^޽/e2 ZfΝ;w{3핊"ҩSpe\35k,PY8@k;[ UKՊj`-Ο|Re4lcc7sHVhr2;crtTi:uwj_~]tQM5w*Vۯ_?;::j77|+XSgРA7vuuQTvvv5jh޼˖-~:u Tn]6-+JLLf@QمJF` 0K^YJ 5lذ޽{zb6GM!@!p!@!+d%heͼojc@8B8 CB8 CB8 ].ZGUҥK%i4ӫUFe*ST2Ϯl2 UQj֭TEC'GG*y}*ST2L[Y b+ `5(O111tP1[)p p!@!p!@!DĆ.8X=^J0r !p!@!p!@!p!@!p!@!p!@!p!@!DĆ.@I +!p p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!DF_b-F/c-IENDB`python2-pythondialog-3.3.0/doc/screenshots/intro/example-infobox.png0000644000175000001440000001740012507731135025627 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~WIDATx{u90P\ҰH`RR&ݰWMP񂱐]Y5aEVnaKU ] *J{ʴv8uJv^1rwufa}oϧ*`C6l(&GbλП_5}|'M`P׭.qc[=C qqcڪ[[v8eWˉC]W˅W^i/~PX(6C]cܸc^'Lx*}ƞB{{yuM;|7v->=n_Z}T-67[[&v3Fiy縧A?}lk+`5|eM ?S766lo癇Dg>/6뜗-kx‘GΜ## ǁ_˗7'F&zUuÏlX,y{fLcy`pOogwwaٲex+;>x`d_}dg/zM?_[xɒeN' U{ג%Rm# R4m4o~6d'iʔ|ӿka'T'0<&LؤI}cƌpx`~klyCx160i/YW__)>瞞P~.iwwGs n^zb'mP|֭viyfיgv%)ՃN۸jU:4O|b]5y;U*YfONaG<3:쳻֭s-s<ӼiSq/_Z~衶N!joo?ZbňO~bIs[~Hor9]K4vuI20PxkJrA3g?=P52_TzB}ϼ9wwo>:ƪܭߴÝ~[=~gq~c"nHӦm"V⋍irCO3 [Zޡɏ!hd`Z9s̙׬lY>TRɯv1il+^$8Zgnj*'cŇK/ő_|~ F;L_sYre}/LcN]0CXn͚UBkC3\nqI}7?;Jk|p ZvЇqwOc^yqwʔr9?W_}F]][=h–:QG=vbj[ҕA0yԺ+x`ЇC7\[:~E>x IT_mo?~PHT7LIF4Ǎ\vLgmַ7nԚLlo?MO>ْ{{ CzCW#gGz+Wu?7p!bepPWW{oC`t8Cz{ Ïb ˗SZZ3g91ԩ6uc֭|OxEoyf5^Z;gnj*_z麟l|uR`2mچf=}8ל}RnÆbww2aGNmpoo-^iSappg*_ݴ`A˲e׏,46ǍsnM6IJ9sx≓&M>}~9MԖE%)GqD_dҥO=+ʽޛd[|iӦ?^tiŋ[ߺ :;;wrk׮=j-]Yڜm5Ŋv-ܒ+7n\&Oя~4w߽g͟?ٲebqCy晫.{Ǘ.]t{g??b޼ywu׋/K/͝;awڜm{Sˎ#8O?뮻aW\qE￿wԩS;::^g'?~׿~vr>%3f̥^:gΜ$?O7lPsޛ8-V*J===~okk[~y<5U/ ~G}1ۙN83~=55g`,^4gΜIrgg?~7G?zꩧᄎͿ/o ͛5nܸ;o .LR(/˭XbGCPP~dĉ'N,J/¹[sIԄbxA]xš3.\SЀ+oGW\y!g^zCJRJ?ݾ;njzT*[nڙ3MwqSL?>8<?p /{R裏g9#v-vGŜ*99;/x/sOoppOaƌmmms 7?Sg^pau>iӦ|\{Ղn$[ZZojŻ isΝ;wuuu_WO>w?Sn#g̘C:u껍9{챫NhhhذaøqN=kwV_Κ5R}_җΦ3M$&d׶|^{{{ji3fXh5\/y,h3#6/3θ;eXy!O,ZP(lQ 85V\|%YgU}9W]uՓO>jժr}͜]!(z_yڴi/&Ole`{ح Dq@!Dq@!Dq@:KCypŊV!.ꫯnr5vX W*o1xʕ~'F`{駟n}QM---9rӦM?`k|p__V7550C]ॗ^nC!Dq@!Dq@!I,Vut4s@s8@q@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@:Kǭ@s8@q@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@!Dq@\|IGZ8}C!C"8 C"8 C"8 C"8 C"8 C"8 C:;;C$7IENDB`python2-pythondialog-3.3.0/doc/screenshots/treeview.png0000644000175000001440000020146212507731135023234 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxw\SWoH42TAqjU|TT+*T룢Z[۪*OݣU+ hĉ2@B5 ! ~/_mnκs9 ^oVթ#gdQ~Hvdg O'Ɠ-R(..3!b",:5 `90D;S<=ː'`)̸sXW@l+>RPB.?S=/dqՙ3sӦ% ({P^O9O;Y*tF*.:zT>;89WJ3 f J?3JڎHHtѧ#ܭ(ݑDD-~~i6[r@YkݏȧG+lN˗_Ի܏?Hu113'V'NHܱ*wwر9" l{}z+kky.]mlԕKe\ED[:iRor-ժ?@PM\ū4/*"/xdk[ʼnwWZYL=c$bJаaippϟ~ND:שSW/_#4o^2lXXs|}z\.S{xu߿J}; 9>=QZ^1ZFD@E zKLD4HL*~z>".|W:IKٿQhx BӾR)tJL|Y߻g}CXX۳Yܺn޼$6ݻgPΉJEnUk֬DѨ__q ee =<fgX>ԯ0v5m\lOIwϺ{$bnRll4G*Θ.99)+nKB-*ئضj% ӼeV-9 DM\N@ƞ>=-/`/!gUDo|zmnjD5RS%S)J ,zʔ=(0(d2߻ݺ2_iϞE!<~,:w#X,!nNgrrg:Q7W؊n޴hlT7n*<"V!~^rt;:WرZ@'^o`QrTGJNUjzj59u(?R)'䊾^=ر9lі-Iٳ]׫ 9(_M|(#0hQ9|P䉕Lys=?=nnJba'}uɘVǎIN fss;G9jg|l]Xf-ra,ݻwnoo1,CtsE5\R)NIDDDi]1Yj:dS8.@RXXqcTpma*YY LDjBV͛6Zoݲ)/%Gh:uYY,Z]9"YM")74Kn T^B{`XXh}'aaΌ`vZ={n߾cXX9ptQgcJw\,UIJG`٬B6JDehi ?_DԪۺ؊4RM\W4+E!z-' Z&~6tƔIZL"u,{~xfZ(~ݖv -ZNhԯrH&z(JH?~l1Ddk" FGYcj?*F^^EL4ߖ `qҴ:9c xr8Ll7^Vi3Ckϖ$}c+t97Tj-EfY !4hisrD99UtTjb+ 4kV†>ܱczO8 㗚j䉕cn]eY5a(;YUj&Oϊ=VݽkuSox1Ct={݊68[*>~ժz/qpPyyU4/z Ki MH#"o2n =zjTDoV*=*yHT )8Ȧ\fgudgbx$WJ4͆ccV/h ;wUmED4TLw鮪bYaE:X,{{syn^k7g犕EBCskYSW,VK$Rl- i޼k"wϚۢ;r?rk{>~,^.}Ȑ<77%h(ee"+^`϶XYhC (9|%n,ZTJ]^.J:‹SyE劙wUXqw:w.6An@`'ߔP?jj)O725z* {k\mxZћ"!"cD9wv<;ַo[߾m]!C[~P(99ZiѢ[JJX*ؿvTԊo4L)dCa&թ=/ek>QE Taƍ%'|2c 9PإKݳ$9r$,,buwy@.,—_~nݺ_|EL%ҽPLѣGǍGD/^trr~UZZCDV>|8ckk>]vѢEuQW^mkkkFFF_DTSN5>shIIɮ]&OcY,+5 *3FN)SN<sN㶚5`sg&xd"6l{P3BnTߖ-[&M$C bX,kn DdeeUvm镔= ݻNٳ'r^sX ŪUz0k֬:u9M8M6-Z ={ǫ[s\.߿3ӲeKoovڽ'N[D|+##c…=zhԨQƍ?>yD3ٳg===4hp??{l <<<4#{'M$Jɓ'viϞ=~~~?f &Hy=|0<>>AAAk֬Q( Ņn; `ܸq/(nƌm{A[r;aٖ/_y ̙3:GQx 7oT*4iǏ7. ׷[ngsK>H*3=C?OuF}R?xNN<)J[hVT|EWn(_~O>-[>>Z2eJzz Х>$446olo>=^1@"dfjݺO=~ᇲ23l*jq<==CCC̙3gΜѣG/|C5Z  奥vJJJzٶm F֭[/uK"...ƍqqqΝN!~>>zСC [xquiӦ]YYٵk׮]]vթSܹ3/_~Qn pJK~eee*tWV%Km۶sΚ333(jujjŋcbblbw}b Vj׮sѣGN:uܹ!5jMC:{Znڴ3ۢwܸ^zà [BZg3j9QQQf*//g?޹sΝ;܀^^ 1!C~׸yh.N>QլoOǎȐJix3|NFj7D8ÇDte˖?~|Νvvvf*jq4i57<{lxxrhc2--mǎw޽~Y(99Z!׬Y5mڴ3++kҥDvդkvС6hֽ 7nܿuYw SL)))9r3gn޼yݻw&''k-f=sN:=|?6~[ֺ7W\IJJV*ǏONN:t(>|X+<{°{7n-_\,h=f4^nrqvi5z褤ׯ_reDzjv ʙ6mZS6|n˯_ߟFׯ/4yzzvӀ dd2g}ֺu 6GDDh{.]* :@DJJJj׮!ѽ1۷|2WNhk׮=~P(RSSo߾ʁ7l-ϟr!~:Fu1چo۶P|uXÇ+]v3U/\ߚ)^UE-ΞJR*666]vf:T\\bŊ=zXYY9::Ξ=M6DSC]P r7%ɠA~'%x6lXDDDpppzؖZjfU6R *+VxyyX, \~X,>rHjj*X(ONNNھ};޽j矵#M`߾}% nӦ@ ߿?Uʕ+H$È ^XmԩӲe\\\iɒ%o&Zҏne۷oĉO;vgϞ~~{7JBA-%88Xg:F]&%%T*11 iBf4^LPDDDĉCCCYvaՕ{LSLaV^]ZT~#7n@ رc Mݛ/^7tlvxK߭[7L >ܲeKQQU~ݣZn۷owK.=~H$fׁ^CY3?$aw޽>ٸR fh}ZsOD .<~8{1ҥKYs\?lffVx=zhnyw(//%x"3fV;d2y:e)-ZH(آ\77ب3gh6HkL1s틊[0|󍿿?GD"uF#!!eQ4wЁeDv::0*=%$$rm*jU jrJCj]œCCo::0*=3L&㪄$W4xUQKX/((ܮ#QN Ȝ“C tܹC9s&111---&&&&&Û7o6SDcDCTN2%//m۶~mӦM_۷oԩ[/2OO4U{!egg8q⭷2vyNPNQ+0={633^zlJcJFCs1͛4iҩSBCCǗDuVVVcƌYt͛ s:s;0L*? WZT+ XD?>~ȑDtرkWZV4.^x}"l=0`# d2 Vѣ3gj6U>JOO7}+ods ^ `ʯg3a͚5+//?tEGG+ k4qn߾@ HII)--_~ppשST*URRɡW:rK4КTGemmgϞ# y5_Yӱ Xs*IyEWD;65׮]_ZTbŊf͚Jh...o֯Lt,))a 袼|ڴi999={ܹsg߾} htgVQBDdmmMD/x-Mpч&n~VLyuMVjp &e}Mڵk)Wİ}+...55ݽlpƋF͉- _rP߰Uԩ3hР⨨4_톙M0Ԧ_^}d30NK+0h𪢖֭[Ws(8Kxu94w[VL̮jݩJHH`K/{-ҥKLizzֵʕ+/+V_q)-vb_]3v^x9FБD"ر#m۶Mte"7ov ~%'P`]vV1|_U&U 7l@&ihjՊ=^عsW~MN@@;wء=11zW~^UTPTչ bܸq\w+fŝM0Ԧ_e2{MxC~~yĪp_-[$ÇL\j| oo֭[TpRWɼkFEE ݻCzd1FH$KvݻWW>:K<a|MΞ=ݨ*//߳gˉh_u9 {4VQsUn ̜9sܹ]vui^? |#e2و#4["nvZ}i0I$P-5cƌn!H,X0gΜ'OoI.zzzΚ5k޼y&+6mڬ]vΝ}ʕSڵ2N`z㏥KĔ1bҤIUgԩaÆ[neffRU;;waÆ/;99n:,,LEæ+W={lI13xEz}Gnv5 /^[nVV5A^N:eooo)(+7D"ц 6lذk׮;wDϝ;w֭!  6ܹ bȐ!_rQƨ4tEU|uz:6AS tqqag'N4nxذa|Xr:Xh'%%eӦMoUzz#GܪuXj/qww'.L0??~^` ۤI*#0CsZJ+Çׯ_U9V Ell,u PàsUOO>-̐;uTL P`!T-22r۶m666^^^r<##CR999YdRAU7o^\\\jjU*wPP|PMP`A-HSmX^:!::Jxe9sT*9s&#G 6I&RT*6lؐUqq 3Z4al)qFlO.J?裚@kVh4* H ҥ ב#GˆH,[YYY[[s \rQΡN$of"22"W[0hn:"߿իmmm~kkk>]vѢE(ns+nH|68[bh1^>ͤ)@ΡN uPc$''Ѱa* "E2MnXb>n G7vJJJYt_SNr`07YPZG>>>fʪNrg̘ѧO-[z{{k?ql߾T*?^ɓREjW4/^,J{Qn/_rRR֭[`G8s̩u)w4t7o>>AAAk֬Q(UI\\\XXX֭ƍK17(Acw0Y)F1g#%Po2l֬Y[ѣ?PVV}ƍR4(('Mc:=Þ*i۶m H&ݺujuhhhllP(,///--ݵkWRRRttX,/~>>zСC [xСÁ&!!ڵk'xEcԨQk֬yKڶm?l2[HHnnn\Wzxxb|||._45k֬r;wܹ 6m+++vڵk߿k׮:upjԨgϪM:;;-zO`6mڴpBRܾ}QQQ7n;׭[_@ pqq7nHMM;w~I3ju|[$+_dj:55u111[lJw}b V(k9zѣGN:wꔠG g^ 4iVfu5h@8ÇDte˖?~|ΝvvvWXxV8U4ዬY}z/-Hvѽ{_~e>|~q ovǎիGDEEEw^pƍ;togYa._B򍆯oǎ###:ݳ #+۷o_yĈȑ#gϞmB=EC2>kݺԩS(!!/ !!aʔ) bȑ3gR(ϟ3gNrrG}qF.iӦM>7lذlz~0ԐWXѣG+++GGٳgiӆbbba"""Yjժ6f"ڷoС%%%`lgbb"o4FMDg9aݥR1Ο?߱c={׏ & ޻w/w y… "$$dŊ^^^D$ׯ_/9jxBXp!_ڸq#KXXFBBB .dgD"H$ 駟̳)0M "gʕD$BBBح,;ul2"rrrZdɛoIDV24a*Z)}6~ݺu#"P8|Yfі-[H|L/KlE shH욀ӵkW"{d:+cx -4o޾(--moP"D[#oD")((8|0'QFa#oѢE"H+Bn߾}"r7nGDO6v F#..ѣGD4wy^n]c;)\h LY/HКWQ^^Kј1czرD$̳u7Z$3i_#P8[]]]5g #_I>[D7ZQ0OVjHGs۬M6W fb\x'|RxԪU+ggܑ#GN0!00y}~su&+W$s[kc~~~rr2–  uJIIquu5m̤a|}Vln :\]]]]]e2Yjjj~|L/kE|x5>1R) .zDBV%ڪ$ˍId9lH$UVM6--->#"v 4wc$c:+~ADD܇-ͪu7Z$sۑbÊW-;e2W-1*4_׊yBЬ))Smomڴ)}M:UﶌuB6~޼y&M:uThhքC=ѪU-Z\v-**jڴi2}ǔ|]օ|ɘI4Ν;wС3g$&&>|xyYzb%5H1a+*r ӥ90 (T"/޿"""4{,^ڷo/RRRJKKcccׯu)JDO[fDgϞ֭[kyga`d2+yw4X #G"'O9r$;vLs+J+o!"nCq[0X%^#W-@r##"b*/kWvZ.3i,ΡYc \\\x _Us^xڵ իWcbbzIDzKMM-**rwwTh 6֖uْVVDdSlhҮ];"*))aKb5-|{TRtŊlATvìjiJH*󉈛MڴiSvDĽG[K ,HyqNSRR 8իZOd2Oyti7_ ,ڵkQnn}'NTsl诿*dAAA6l 1zGvD_2P9HD>|lh:ZK.|y'==I[x^o4w.Y-Mh%v"*++#"E֙͡$##ԩS[v%H$;v$m۶i]knٲ5kׇ%)0Iq8p7nd2+5 uyvd/~}4H$B{9c Sf9H#FԪUKP+@PPP̙3W\cǎ;wJ$%1&Mb# +ArCg^ g+9R,1%PV/b777C_~FT*ݩSYfi6l؞={8pHT*6l8eʔe˖,g^N@f xs\[4rҶJ5k$%%rww}Θ1#..{[nVVV^z:uꔽ} g' m+W<{ө;  ן8q"==/00pLDuٰaí[jF#,,Gׯ{\.֭`X{ׯ_]vcǎ֭y:^Yg&-S^?cҥ111eee~~~#F4iR|ǝ;wްaŋ󝜜Znm%_nR|{Ǭ+?R,4z$0%%]Ž'N4nxذa|سgǏ]]]7{{8g^N@f x$:u,oqی i.O>g0aŸ9~%K 7^3g*P:gϞ۷oT*5wTWv0ٳIII<_o`P 9cywlY3gٙf;>0 oʔ)ϟJrppX`PB+Yj<<9|𡝝ݛow^___ ÓC0(d@ad@M'!s!:𚈌J:uBVkȑ#Æ kҤT*J 6D͜9S*Μ9 KW\\,/޸>gbb"V+}"##߿إKց19r$,,b53 QyB!W9|"##/"$ouuQW^mkk gT$x1[[[\k׮]h tka Ihذa5g`npsj"GVs\sBjժ=z̚5+++? kݺw@@qN8f֭f6e嚓̙wrg̘ѧO-[z{{k߯ ̛7O*N4Ǎۭ[kPNFF… {ѨQƍ|I{޻w6mXqFTSNyi I&I_~eɾ:uڳgOqqqxx_@@?\9:fUԨNw/J=z,J:uRT|+=Q+)/ƌmrA ԯ>Xwн"0v>'M㵢@ݵo^*/sITڢE Zͫ>/m޼7 Vj:44466V(ڵ+)))::Z,kVXADv999G=zԩSΝsss4\zãA\c쳽G:tСŋ*[f͚U^^~sΝ;wùqkӦMcvvveee׮]vwUNͽ-\_~!"Pp񸸸dzm۶,oe2٭[^U2J]tUVVV֒%Kڶm۹sg.0=XEuܯnܸP5jԚ5kn޼yҥmjM {XUu+V$5jԈ+gϪM:;;-ZmQlQZt|X=XEZt۱cG"U||{4o ~Xއ+M.`?>_5M@Iߊdv+7׊ZhuѾ}{z{˗/s!y:sozzZ=C&×(..^bE=gϞݦM" O?QN-[BDNNNK,y7hժUa"""իǶԪU+,,l̘1Do>|;vgϞ~{n_-\PPXˋbq``b#GRSSA=z?>{0aWUM ^"Ջڴi'ODiii\H{ֽѣGXGyܽ{wTZc+W$f@cW$AɨkE-4`i^0:ëjk|o2k׮ϭׯ_߷o_ߚijj.333ُzY*ae) [o%H 4)ՠfVHU$&H:|+Q %7׊ZnuѼys{{"37njLHԺuk=j3_O?h"7V1lsoEEEܖ6; @+0@Seeemڴɓo.,,ԼXXXh}ȋ/@ O*(55eңe˖z%n2d-8}gb  vvvC ٺukddo6>|ٙ=1+eU~3I * dvxt 㵢@]^ߙ3g4iBDG?,X@OGhNZ{̗?>>>ę} RioaSl*rlaCG4Ub2L ͳg~E=XEѣn#`6h9Ԁɲ*$IcoE2jaZ~8x𠝝\.gKi64ã^Jrʔ)yyym۶o6mj߾}SN5ToAxzz-38vL@ț8LUV-Zv/\Y2^ݨaeG+&H50^+Z\͛4iҩS[Hc¡xecǎ7FFF~m۶efT$Cprrb*…1/޿"""4i62L[CNN֯*o7+;^yd-N{n"ڳgOyyy֭*-Hux%78Ik|\+%2^۷o/RRRJKKcccׯu)JDOu4~VZ-ZAyyyZ} :дiS6mݴ-9ݬY*rߠaظs7xCWܮ];"*))as_͚ Wjʕ+óL+=pLxN?Æ eb n5+# V)WXEͤ>>W$öfX-%kS(W^azZTT1j.~,dmmMDx<>SVUVYYY>}z͚5f~CH$>۶mӺe"r4{nCDvD=!!ĉ& ___ҥK E ёܹsfǏ?~߲ Q ʹL&%W&HYZP({ʀK>Ԯ]/HII2dH5+# V)WXͤ>>W$Þ̰[P٨_U&QPPPaa![<<ʿjٲ%>|8%% Zgg8RyСcۛ27-Z$/]rE־3f曚MkOg0^ ">>~С={ܾ}֯RѾ6ǼsՄ'J={6))I %Wh:`j=?>ݛ5x3Z~itLrǏT*  ÓgOt233>|hggoݻy`> xrfjȑ#GD>0QQQ3d-?C@9BC t9BC t9BC t9BC t9BC t9BC t9BC t9BC tW_}%J{zHTکS'3̙3R̙3QqXnPMu/n4`TJPDȂ*=ztܸqDdkk{E'''W>>>DjժÇ[zJo߾?feeթS[nSNIy.]n#Ǘ_~nݺvK,ATٳ'OLLLLKK ;w k޼N(r{`A#/_|ҥK.]|ZرcIII2L,{zz;*`DIIɮ]&O\#Sw̙q=yD"ѣG<~={+$o_a2###/"R3,^܏ ۷o޵k'Mdqhkk>]vѢEz3މު l۶mqqf#}wިZPSaXmٲEV׼tL4ɓ'-Z8vؽ{N<٦M> '' 2`HT$-~iSݺu#:p[Y< 6 <Ѽy/ٳf4`F=[[[knҤI5,QQQϟ?~%KwvAM'/uSNIX~}nn͆ <<|xii ^U O_"446oެKุ֭[{{{7ĉUT*K>}|}}[l9y*Xpa=5jԸq}l>>f2Y0͓Jlh\||q|}}u6j:]p xϖuXQ W1cF>}Zlݮ]ŵΰG8995k֌233;w̟?gϞ~~~ 6޽ܹsSRRnmuǷjdtjuǷjd)熑*?*Z^^>yh.8p^zU :%>ѿr$uֽuV~VFH× )//߶m ?~]Ž=:))W\?~<^K8k׮=~P(RSSo߾{NHH2eJIIȑ#Ϝ9s͛7o޽799>/]u/?^.QFدn޼wY&*****jڴi/tR" zjRRRbbbrrڵk;tw?92JCKVDGGرݻׯ_5k%''k}4Rhd}Y֭7l'j:^tg;| E(GDD$$$.^X(nܸq&85)JB!;yyyիb7oRӧѣGo޼rʕŋuF^xU~^Gaϫnذ!::Z ̟?-7r!~rLxuzDʙ>eeeDԦMw«:Tuˍ7N رCPrS7^zjzСC [aet)VmےƍWrtO{͝;rb֭w ϫHy&&&65)!+g%s7'0%%eٲeD(x ^7s͛Ze{nhu\viܸVVZifx"kG>!HƏ9|p77SmVsssG9a„@__5VyWTTdB!"__L$[tl&l釕ѥPM6}i(4 ^w 48|rrrC4//}|S8g*_!USjD[z6W~ɒ%K,BD&[DjժiӦ}g{۵k7hРw}ʤ+/k2^hyI=j$-h ]|y̘1,}||7n\L|t 7x#88W^ JIIYdڵkn3^W#ߑjsWe sX9ʺωHLѣG߻w}W.^*n9ԉ՘1c.]y/~ܼmZa-((ܹs:sLbbbZZZLLLLLÇ7o"PpbBKQ*SLk۶~۴iSW:uj)n{{O?4::ZTVg9ׄ.e)zTȘՉrX\\{]v۶m<5UjԨQ{ğ[h;g-\ggg"˫|gggkmaL&NRu֨$IHH?p#Gѱc>ln5x Z+êƻx(""B󚆞>*yG7{T*322sǫu\ic-:㕠  cǎtR&M~WDb*j&Mn9U:u T\\M߉ZJHH`%7oNDԚڵkGD%%%lerttdҙ3g~f{yywI+V'r++"2 ^W`eh&iBa\\\x* Z=sbk>~y71kkkXx2^3M[ϟ7o{Mxx8R$4_~֭q…SV-ŗ.] x"J山3fx7n'L\RR߼ys„ EEEoݮ] ,`cBz]hٲ%>|PW(^6^)9T*ɧ rM,sbqV(ܖu^at^V tRyСcVHGsڷo?gΜ۷od+WlݺO>w!%(?s":~ (//oǎ&k _}U :+?** LBD7nܴi;o޼9}DW;rRZZmaH T('֭['rID|[Q"k7n\y{PP̙3W\cǎ;wJ$nmI&k~Ϟ={9s,XƦeС{s6m֮];}s <ήcǎzj޽E"k"mll֬YS~!ROOd#FpfϞݥKYV>}H$Bksg̘:BBB֮]ߧO6Qmz_APxUx6^/frX߮[Ns˅ /?[yL E",X`Μ9'Ol߾\./--5kּyۺu֭[ ӧk拯Aeee}ǎ;v옝X,.,,TYWèPϜ9oٸqmXq=mڴ-ZX[[9;;we٧Nέ#G;Æ ;|p^K=As~pp?dڵ7DmC quu}ARRRRRR50^{xYgaelPBCCnXV-\>yÇW9HGw^֯_֦Mwwwkkk;;;QFsLYt?tО={n߾]WRh_Ss5;[MxrQ(DԩS'6<44=C!>ӧOsN:U&yyy_N`R^^~Y;;;Z`AxMEFFn۶K.gddT*''5kT~ E(CЖkj޼yqqqWTAAA|AyDkocDs:@s5̙3R̙3_a4`=W_I{j>a)?22R*M|O4@ӥRG}cj/q1666++N:ݺu:u_uyٓ'O&&&eee BwwΝ;5o:s;CD?a*?&MDD7oƋ}C(v҅}~{'("##߿E j03)n: 9s̸q ''G=7l044>x`|||lllDDD˿⋳gϚ u .Ȉƍݻ'KT] 0 &&&22Y Z~}nn͆ 6mJD7ްaCZ +t?~ov6mROppݻk׮MDJӦM#~)++۞rJ"_~FWWAс uNNN͚5#L$?O ;n++I\\\XXX֭ƍwĉƍRiPPP5c7q6mx{{h"((hǏ^xBjժ=z̚5K?ln T*K>}|}}[l9ydLlh߾T*?^'OJ-ZP&( ѣQF7۷?FW=߹sg={kذaΝغu+"ݷ|rer̙wlrg̘ѧO-[z{{k߯>w7lqW;uYj[F=uahԱ)0aT*7oÇ[jfBa#G rd2٬YZnӣG~ 7oT*e3\Ǎۭ[痔hsX|wUW]v_ݻ#]訰055ڍlll.\{ǎ&Ls͛w+V "@Pv휜G=ztԩs5YѬ[w...ƍqqqΝ^V ]v%%%EGGbsKB0aeeeWF8oLHH v cwttiص]YYٵk׮]]vթSG|M6-\PT666l^qTTԍ7X777nիW =<<4hG~!loookkѣC:t(,,lfU/ns۶mYd[n=+nYGƎA-ffe2ZNMM]xqLL̖-[4Ǒm ܁>|o޼lٲǏܹ MATTԬYُwܹsNxx-@ͅ'U񾾾DTRRry\ND5byf5ET* Lw˫WɓMt޽ɱdBѩSCj<~8=ztRRׯ\2~x"Zzutti"tR" zjRRRbbbrrڵk;tPDGGرݻׯ_5k%''k=5]B믿NKKKMMݷoþ} F󰵗XHwBB”)SJJJFy̙7o޼ysݾY<8ouڷlRTTT;vܳgO~ؐ{V'?tM -**JJJ"ׯgggs6 jZaB7a"bЌ3 o;d2 b2_T'JÆ ߽{V5j:jasyEEEiii,7|ϭs)Znm} ӛƍ;}q縸Gܹs+[i m۶-i0ķ]f WѣG-.xq~t57WWW!!!D$5\`ѢE"Ha 5D"?~|dd ۦMfddG]t۲eǣ4gYٓ'TV_wbgZrvv9r }}}_<vUު$Msiܸqkfяas]%9s&!!I&Dtȑ?st^-4/^HD |K~,C^M654h899Uњ͢7FΜ9s吐LK߽{7==ӳ:y7{VUbsg6ն`/_3f +JwwwDvv7ZfUxU~Q병LaB!Z*L|f=Rt?/NL&;PXx sX5nt~ff& c0aoo駟FGG+J5A.hΝ;wС3g$&&>|x-iV ,kx H͛4iҩSBCC?AWq{zzR:gcP*SLk۶~^۷oԩ5P]k<)lo#U\nT'&{<s)Fs[:G*ʌ qb[q[49u4I$~ɓ#G$cǎ>|آLDyyyOY۷))):uJbuEfwjd2Yig/^>EDDh^fXxU~ sMeB:GG rʍh2, :Usttd-3g~Ŧz{yy% gnPhڴ)nk}mn+zM*X};t3Z[[ZGJKK+O/;i΍ڵk)WİW+...5570vqk׎JJJ ({i3[UyC]GL...sk`"zK>$+^M 󉈛1H6An\zUNL&c]>h&MXt뭷"?Ssxff&{ӠA+BSdeeU9ӠpDU՗x$Iǎh۶mZg-[b-lBBB5L&ɞf&TksFF"ZbEsNϟO4f~WLV *,,ܰaUo ˮۖ.]Z_WyBݻFK,lYs.&GGG"zAJvD$!!ĉYxU~[ƫF*n3Q E?##ԩS[vŎ)F F&?~r }sӧgbq;wO>akHϛ7M  =/((={62qDjFc׮]ܐ {6Hn\paԩ\l]TTP(޽;KݻzcxEbKBBB.^z#r<66vƌofW-/-{ş9?~|l{^^ގ;wSe˖Dta^cǎj:<<]+C;ģtH|+~ŭ g#Dx_?sL6OTFFF7"j6|^Gr3{l|Ϟ=˗/'s7MSj/N s9::FDD;ի{DճYfMuVۺu֭[ ӧkL͜9sʕ;vعsD"VĞ4iRppf`??aÆٳ`Yװa)S,[:PէOfCD" 3f̨L@GGǙ3g~77nܶm2x`-jD={ѣsY`MaaСCkn+:vvv]tas1ͫ۴ivӧ;wn666vvv *ХPyРAYYYcǎ;fgg' j8 Yvm~~~>}<<'&&jn)++\UC ^1F4T(z?.@E^IDAT]SVV7bĈI&j)F Ņ%ĉ76l|QaSBFש#gdhc}VŲ`&L?{;11"0#0#0#0#y~A^׷s8tPSڂx݇ B-O:܆۴iڋ#[A23g}IީC>gЊS{ 7tmDdZSc/ 59o+熄e k]*# a&7ׯ7ܴ0`Y9n%VT [WШDk*[DצFt1겍=4AٳWϩ5;|q W4gLuFN̙މjӵ.2͛N}޵k{r۶'=<_ll#Qnn2LVoѢ ,_>_&mwuDPY_LD775KXI住Δ@OQ~1디DtV;Q PbWWݻנO`%4t@&Rȁmǎ`7pKJl>Zו=YV1*-! իÖcΡ>ٲ7D-O؇TnK%dOD;^b[rs뜑T7s_o޽{HB;w>7n+nb˖׫CMM˅5:`gJw wsKNϾBPqC4ߗrS t9pܿ/ #ScA")>@ѫUX$R*Ng[3Κ\mTR0kCI]\ dթc]*6LZ?"+-d ]]2Y=TZ !5Yܧ14>?] 27u!4Ȩ̊anh$<_I 86>7kvCsjasf-=]UPPwjs۸}o(7YΝk>8;{ޭY6T3 7?Y݆Æ^ym_; ޫ@ P׫G^muS :m4OA.x5*-BZy9T٩;>tڹs7%g|}GlZ-ضm$|[7nlH`2{޾A(,߻7ksܯחKzS8+}͘7O[СOءX(t=` O[L#=cMLN㓖֞[Gt͚ ܛ*v><~ܤ/rh˭6l>\e2FDlW\9f}he"rųQ],:`o/+)QQV:ش_HDJ%mRft͛7Y P;;qϚ _{Ҥ*UEme.+,3#J||j%{%4 ~̩Je5u -Q],:`۷WF6{bo{*U*EcǮ4׃d qff w6=;֣!?vtuNMm\KKm{/"(h֭!n5|Į\trqClt;=xPz6k֍G]hl"SG`qQȐkmqww'CٳQ̊T=oysaRRm23՞Ab5DmVS΅J^q~:C]KR1fAv,WQz0{ۊ6o.3xݠsa*"[jwh\["Sd/Y!?_ݣGQVDdk+(+R;;ԩr"zPYPHM-OM5{ꋋ&~wðRC0?e8cId,xr:@+J-Zd-_\*jJLSw/=` X+V888?1_~eգFruuE[ qLL۷U u^YV}V7oZ߽ksÇbM9k 5eX|y~~~XXX:u CD2ye˖!{-NBO?KH+( IIvk=޾:|n68!C۷ocƌ1nG- 233$+KTRў=NEz@,@dddIIIN4h`֫W{ bΝd rDr[=:4_ "RرZzY ퟼No)^+sG~Ȑ!СCO>=Z.٩=<:tx_R9{ǎI*aG&9yt'VjWWe%]بKJE׮ٲ~~ݻQii6WQJB!N]))8ൂ!Qǎ s۷oԨSsBCbcI(rui|.ERRh?xRN.=WT$HIMImJ'=e]fm 73%=݋~R锘hmY߻g}CXXRd=z$+4oڬY *7l4VO1_D$H7nl{zznط$%ii;vԿ{Zf29Y~f?3S *lRR**J{\nux863Q+ُMꔖ HWfۚϺnn*ps@DM42c-Z\|ޫI..v7$"+GZg8|,&np&/OSѵWO9vl2;[eGb":{֡kzD`IExy:zTrTǏE9#l';w:Ք#<{֡G"*,|V j*?rD]=,*­Ops'ɈHg{~q 77rv%"ݻܖD;IA\:ʡCF.]xwֳ܏\nm8u\dVD+zDԺQ^={(Qll2ӵB08'`rrrHg{fR*M֫GDg߯٩7~8wcy~P3 7VM9U+cJO(Κʪ؏A9ѡÓ3gڵ{be&t) "^b[j:u7kg(nS*:\nn V<+-\R²2J{ !$)4xp[o[YQnP# ^`c iܷ.J/YǯHHO՜gX:!;tD *q1[[E֏ܞ33U~̀q֜(Wd*]f͈͛F?s-^üx\nfm{ך5hPg(;ٽūW*QNNG9)*rbGo߶>vLݼi# @ :`tBD2,##;ɹwu5ۀ97GLvh^GQ 6m3(cqJEGJ=b W*mrN Wwq E95&.ΡPxիæMK*IK9rDV9>z$bJJ**mVypsפI:udgg_xQ*v.]""DҲe0oʻw/b/*}Ċ[sba@@*[l-oe./DjR{꠻C'Ç5kjDUZ*rHz*|ٮ\@Dܯ((P ٻ1%E{lъs:O>@M'`;CD4w"6lVC5sm[ISI.3lR[\H[[yܼD66^~![?)~CIԭ|睼˜ 4dH{M[x4,@hhuԮ]PD4v6o($$U+s[[[cb%&e;&IOR{y) (ɪ>DQr;v|r{ayF\ޠiӒ&MJv6rWWSܱ..S7lXE,J C׿ݻwܸq6mZqJǕ++o  O5+i֬Ddkny E@sr T=:Waa98൅a`Ν+ W^m՗ZJ C ~~~^FFΝ; ý{޾}{ZB`X)Xs8 {kѢΝ;_EJ*C,D"޽֬Y3d)JC@C t9 W*.Z {[|T*Քh_z52BU`VX ;|իW59lq2211n߶..W5lXֽ{g;Tũnd'OD"SyÆ]`V  22s 40nի׽{'OܹsgKqDr[msTIcjߞ%UǎŭZܔ)O=3<}߿5:`oNDC 1z;vԤa̙ݻyo֬)Mޒs֭'ɶrNQ֡Ó*;BY;&IOT K ^dOXY[]]͛tRlc/u*]Vϯ{""ܹ8-͆=KIU(b1*y,=CH=`@+""zXL5:`o߾S2N -%ե]IIuIRN.=WT$HIMImJYvv6nTtSm葘Ξuڵ^=%%$=yRQ^^eF:8:UEcѹss@|Ĉ<\.!nNgrrg:Q7]ϪAZGHbckuTܵEE*GHJJ*:l+@M'`d2ilϏ?a&f=Cu׮D{ےh= <8=SG9th>ۨVӥKOnz#˭Kj""H=|x7bukyF37ugE"UV&8}P0g˗bc+]{y@ͅ'`rrrHg{fR*M֫GDg߯٩7.{{9: 5pc5ܔ9[;&iB!:<9sơ]'VVl{wEkڴ$88#lS(D$ܷ$Vuhob:QM'r?':9Ut020A.do/,xWZ*r'ee\6Fz+ʊrsaT̽7lmsf/hҤ444W$@a`؂1yyyFnn.- `RxK"y+*Ut/5֪U[6[("j֬dS <9sΡpjBxg+Ϸtl䓨Ss6%;ۣ9cfQNafldhIuqL'᰼?$iTUQ]t@_9=]FFFRRR]]Ç"[ȑ#"p8Ǝ{m||0/Eۨ6[1kL ǍvH9U 5TL&U=':%"._|1lV׫zVwr][-fθ;/ r]]+{]'̲n]J&3UE?ڵ+w)"sP{kpHSUqےر36[h\~_J0Xwv5YǷ?_7vm*iɁW.s(2ks,FK.}饗n{"lٲo Y!'}`ԅ [A1c</8**,:tjj:Ub2 6~iTy *Vk(!!8x?3ӓӞ0x2etԩ-]ZÆ {ݻ}~8Rewrn̾]qŭ[wˣ/!YY,7)>|og DG FVZѢo~ڴiӮ6tΜ9spbZ)aŊFqÆ ڭ> _^Q+WҽCèQ/^\YY۷o/--;wnNN RƊ+Oj7"W"5G^^^eeeѥ:Ч}'iii/+C CƍVZjk֬IKK{ؾq/~1P!\+;8εkFGG?c)#6lXpajj*=4ƔZ\.CTT(=ݗ2傪*_|a>svj0`zwlnٳeeK̡H~'[ `@f͚˗'%%ExG].ի^tͱc>1{S1T'N_|1С.׬4){:JK---PH|>t`)\>z꫉|]YNzM6)dɒ]hhܶm[mm-kui˖+#V($o/a AQ+{ꔍtlx&M4xMII۷o_~~?N?㚼^L0h3f4>}q*,YеG(7ו/(({:1?3ӵʊ"ý#GY>tCMDd֬Y<{}m޼pqO<޺>~sϵ׃.(+V|HQO**,nb&Nl4[ PHIO>@՟LQС skbQSSG{&OvYj^]($}5ʛ""&JJ^qWkxj&zM'OL"R]1[ouMҎ!ŋ%%%"Z͊ÇۑKQAuĉݻrB!ٺ5ȑ[ZZb[q-'ǽ`}X3۫&9m喼dm*8͛?zt̓OHȽcGf[ldhM9q¾kWl[Aa۶w݆w|;cdhڧ ?)Ujk/w:|Je7_;&".,,1Fc6%{}p25tOE$>>k LWiLIm…p޳C#GzÆ₍mq8:\"|[([&:sb֏>VAlٶn 33=<ț Mz:/"&Sw{e6 IIOikj[ҧh0>>620z+z';!PWjilL 3g6Θh0HC]fϭm]$ŴR=` UЋ(JJB\h ~--Fr!\W8Efr^ .]K/ݻ)666RenݻEdٲetw` rrF]`qM4ȟ3ӡ1rAb0C￿h&paCnn맟Fb33=]7owjjc,.nW}S >އp6l=ܳw۷?Ñ*k.umeffn]ܺuWZ>'[Ϗ{_z}c Cr)*}ITEVvu ĉcxlY^n)(pTTC!%=MW2EEC**̭EMM T~Rb4J0z^8{BN($[9iiQmŶal,.[\^?Pl?~ܮqrKy teUU$ѣkVG ~k^b)""o퓡R6 ]m=m:v}i;wjUOS׫tuֶ75-^uJ˗?;~-C=ݱcD$##ՃO^xEƏyfy嗧L|y=z*Em۩.Wڵo󳟙'L_a4]JJg?y骟p :p ZZǎ[[oȡC}O=Ujեoo :xզwOkW^A r _ssELLpʕv튍i--]g @m +/!jjjD$11*my;v<"_|կXruu5]݇ Le ?9~ܮΜ٨ %%fnN9;wmy AE>)%١GDɤΝgl)kˢ&)~c4oG)S\Cзp!^DU?#>>ʡѣG[ZUzv+n(56uB8#6ll4o!h?3']PpmFlݚK/Ddω[?([Z 5XTdۺ53yFTt~_DL{uqEEQ l֯p{@\SB>E3>>p8-zssx UN|SBk^O1̜8cF vmB{n}mÌ ҥ G&}JtZs:߰~6ohhЯ\+EXPk9-4ʗuϰ]pW{)<˖_:C=ݵøK~ChtUR)Ø16^VD$99D9űƤo^Sc͵*-~""cx-g0!.++KDΞ=Mښ t %%QAy’2HUΔ`Nٯ%%PWgھ=Nk(2a[;&q7wuTUuuIF($8kVal(*}q SysQ=~%"gX? z8V-HfldhIw Lre*/Ij;h(ү_ E4[bg2Irr[ tIIIuuux87|x]3Ǎ #FxE#+-ͿhQ7o?mZiWq:gN9]k+=2@ôRÊ+F "[}0\~(+W{zQF-^2???"o^ZZ:wܜiz+VL>=!!!"ղY@C8k8HUʢKtL+0r~=#!p!^dƍiiiVH5k֤ tlp}TTX Nڵk{챈|G^~ 6,\055FTV cJK-.!**s rAU/09c;wZScjm5Lj||0=;yrX7k֬illO~G]zիc쯽 ?mn68a?u>gs֮լ4)|JMtPiMw*7mڤ(ʒ%K"XvѢEFq۶mt2˦-[d 7/]2_%l65!!h4zݻcOދC-[<ϤI)))yyyg\ދ xƌqܧO|3NU%%KVrrEe^Ǿ}1W?0zOO zM6ȬY"^yۼy30x½u}kyE/\Pw;V0$'_"'DUTXnnW Mi\)/8**̡}?"ۡCQVŢFLZծPH>,<6j7/ED&MrXb߯\?55S&SM&NՙDcW7t/^,))܈jVTT>ގdm*8͛?zt̓OHȽcGf[ldhM9q¾kWl[Aa۶w݆wߍ 'CU8>mh0OI^҅U[Զxٯ6S*+-_i#hU:;&"C=+;;ѣ/#Nu^~2ub~3{8pKI ,[V3JBUYD2ŕc쭭wС CxNauhx8yNm1{~~J}oU:ލ11={zkʔ̖cqx<Ma#zILLZj; Ӓ2eΟ?nGgl⒒g7j'UU ;׶y΄ŢNޤERUI;שϫ?}M^Xu|m&)~c4o_GG)S\C$B27b@OW__/"T_]gNNcJ-mT.9ҫ6ll4o/~>gNZFٺ5._׉Ȟ'~Q- mȶuk͟yƞ_Kt~_DLl6WA:ԶOь*`||8me`[W^9<*'Ov>B)\2sf44۵ ]g}W 322K6왕Jtڂ1N744WA/(+ ]s--E}11ϝJb HVgٲH&}#z:a(ӨxlQDE]Oʵ""Ɂ&Ϲ-55#_;msJK-c߯Ș1E#5}@O%"gϞZl2dO6XG -z<8VJjj@[´TWgJJ SWV}],cƏw/XMfv_e zɓ'HMMMeeeċחȤIʸqn=-9SWgھ=N;(2a[;ny^=2B;Nܩ?*W^I<mf'D_rpT(D77RdfzNjXqhgXlP^nP}wRScjWp.###))iii-~q8cǎ+mZϧl!ǠY3iK_t8oϝZ`PAdR8?qbCQ"rfyΣzVwr][eθ;/ r]]+{]'̲n]J&3zTe@!NQȮ]"^|Ν"2gΜ[ }5|s8mpXMzK-4wS/QU%TV;;}֬߯dx=;(2ks@ֿ2g@/tҗ^zi޽MMM*vw-"˖-[,XА>x0ۭlA\ט1njǗ A:M55F3ԅ rs[?4d 5<؟viONM ~LY2jzoԖ!CMÆ {ݻ}~8RewrnL:9֭[Q˗G-_Ct(znLy4J 8Ƣ"k%lؐ/M@_9@ccMEYdI.Zh4n۶NE._6m u< o_d~y׮X:Ї1@/e3iҤGlJJJ^^޾}qxx`Pюgh7}7TUB!)(Yk=Ɂ4ll0::)YX "O|@F8 lڴIDf͚ʳg޷o͛R8l| ֭{=pAq8wX|Cl|UQaq]47qb1+[[ PHIO>@՟LQС skbQSSG{&OvYj^]($}iFyZDd$WI)~lJy$&VU? ZDзt/^,))܈jVTT>Ou/]ۿ_F Uk'wsPHn?rVV\lq/X4Rg^}5QY\l+/:~ l]?v+rˁ˗˪2kx"2zt[|hWœ.x ee'm%ya@O9rdċ2D[FJ_ٽ;XRysSOyI whom )'NemxmxݘNΝz2ZՁqqAӆ*]x]mLMm;m[9~SbcQD223f49;vLD222 3/;;ѣ/K\q/l:UD qq1?G sjmNcaa8ڥ-OM ՙ^y%,"DOJI ȱcv}ΡC} 6DGyjqyOPU78}-11={zkʔ̖HUbc>ؔз1rnUcf6LK:˔)"8^?s] 9QKJ ̞ݨTU9r$1Fc6dܴ)a۶x}$Ft"MUPSRDDmip!ȑ^a6Ro/~>gNZFٺ5._׉Ȟ'~Q- j.-OT#8Ɠ'mG:(?aGt~_DLl6WK IIOikj[ҧhC ~ʫ77^E_ХO y P}RD9qƌFAڄ-=;f6)!!O%ObZ)N[0tvS*&M ZZ3 Ej*C=!4ߥ>3<1-$bmDQSrmHrr?sncMiN\p!b@O%"gϞZo ovJJ-z<8FϰTWSWVU_o$=\]ԯn ٬$RKAC8{zefCW$= @O7ydxr4i طƹ[vӖ3mT0!ʨzewUULB +$?6'Qק>Յl4Jvvx33g|lCҥK_z饽{655F޽{,[[A,hq<uVl6u nkOcx~ L… ~U^nnj2JHddx'Lp?rv5=7uj~eϞ^hni1 q8B&Lp'зÆ {ݻ}~8Rewrn̾]qŭ[wˣ/!YYo~ ^̀qr^}AJK/Zt [O=!!!"ղoEJD8k8HUʢKtL+OO/^LW#!@z7Z*"֬Y /б}_bQQaCVlewp:k׮~"RGy7lذpTz]SYi.,)-\Pz//5dzjΝTTX.AU%&&4`?'=~pu gZΟY.]2B""|o%CÚ5k/_Gu\W{5ǎcMM`Pin68aC-ǔ[N߯i,*Z† )]}W? 2 6mReɒ%,h"Ѹm۶Z:eӖ-WFPHx#%sw\/̻vR-[<ϤI)))yyyg\ދ xƌqܧO|3NU%%KV9;ۓHKC>ru "rYQ$118|7=w9+Gpشi̚5+gϞo߾͛7#'[Ϗ{_z}c Cr)*}ITEVvu ĉcxlY^n)(pTTC!%=MW2EEC**̭EMM ؔM&jjjD$11k`6LK:˔)"8^?s] 9QKJ ̞ݨTU9r$1Fc6%dܴ)a۶x}"C=]}}wS}vD;9))" ]{v{hH~~0_\\PNjh?3']PpmFlݚK/Ddω[?([Z 5R]QNɓÇTU A4!]^f*8CRRS)AGPo/:+֊$'~>8ԘF~ylj"pgvS}rvv6]]2ħ vJJF= 0055-aZUe3%%ةS++++H}ޘq*Jk!:!mkQMY(Յl4Jvvx33g|l|8---ŏ9""cرtw%>>עmTX[kzT-5k&Mr y퐶sU j0Lj q[K/l6GU\p䵺ΖG;w`jr44 c ;ĉ]q ՙ֮MՎ/ E9)2|ٵkWċܹSD̙}⛸ᆭo4U-1Ioiu%ժygϚ8~|[z Grr`|?Efr-ffzfl g@/tҗ^zi޽MMM*vw-"˖-[,XА>x0ۭlA\ט1njǗ A:M55F3ԅ rs[?4d 5<؟y&SSSVfq v:e_kϞ^hni1 q8B&Lp&Ca瞽{n߾T]v\n-33Nu֭|Q˗w,OV7 ?Çkfq_9Athd--Mk6j3NBǻۏvF,_^;UV wXbhܰaCvׯWeʕt/@0jԨŋWVVGKKKΝC0@bŊӧ'$$DZvvv~~>hz ÑjYYYt)i!p!@!E6nܘjժT[fMZZ /@ ǏGEZt]6::HGy_ްa… SSSatMe0rB龼<א!YTd;wRQail4\UЀnCW3glYkjLI{'On0wnpCÚ5k$%%ExGW^zw01k%BO'NOϙ8elomtNcQc uleOiSjjL55CMkp#cZ)^qӦM,Y$e-Zd4mV[[K'Z]lڲ%>tEL 7/]2wE¼kWױԄѨySl|[F!^`˖-gҤI`ٔ}?3{v{Vq=⋞_^8ֻvXaHN!EEO>݊ݮ8ӸR^n)(pTTC!%=MW2EEC**̭EMM cq8#Gx!Ch+hWAyv$lӧc|RDEE;7b'C='lʉwyؔ7hX C=]MM$&&vS}ruu5]ÆiPg2EDg#3g6jqIIٳ*GGΝk~mZSBBzWAȌ ҥ <7&cNg7ohhЯ^DJ ZZ3 Ej*)uWED<˖ճN)@9<=D9FUtdz0fD"(:|WIN5|oq1i5%d?&Y1CpgvS}rvv6]]2ħ vJJF= ^+%55-aZUe3%%ةS++++H}ޘq*Jk!:!mkQm"EEɫf:hP'sKK-eeVxP.r^YD:}_[YD,c Ǐw/X`` KNMՅl4Jvvx33g|llw(+[ҡɤ>%ސpb@O(Ed׮]/sN3gNon9TUd8v{ƌ&;שߗ *Vz睝o>kVmWz2ɁWNT59p`9='݂ .]K/ݻ)666RenݻEdٲetw` rrF]`qM4ȟ3ӡ1rAb0C￿h&paCnn맟Fb33=.? ܩߏ)+\]MOM2dHwm=kxbhi1 p M=ûMzaÆs={ݾ}?vr\v[ff&qqŭ[wˣ/!YYo~ ^̀qr^}AJK/Zt [Ohz ÑjYYYt)iF{VVV4@o!p p!@!p!@!p]7=Ϸ?C8pLdee% 77ƨ( 7r8[JJJxZ)@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@14p@@pE:[!/op& -ݤC}Css3! :9uOSz;PWN+mjj[ !@!p!@!p]k=ij7o( ++ݼC@8o_㝴wߐ!Cn1r((̝2p`0`@CC_T5Qټy!{|K?'sҦwQQ=lXI?+,g݁C}ĿVUv ڵQ_U}h>9t)[F#xo=jHM_~^WD^o}}=h9?>n73֫<|]kݻYb%]V"b<9)FcYΝ6vj.\ؽ{7k9V {mKbE&E1o6W^v_̒?1EQEoZPmnAl^JDޛe a0A/"C":Z̏667;-"xMB:C7z|MM*oٵkkuVL݊ߊ*ii?zeee_|t^d2 0 ;;;>>}c}1#FL4_|OJJ8p`ϰ?v!...---33CqeqqqMM1C6]뜥KN>."[}OHHB=zw}gϞhѢ6}V 2G#~V-gȸqm2J6?k+Wصkڷ]zDG+˗[>qTOjMLTx/y>w?)33s𝮡`yXyM8t#F 8`0H (,,TN+**LBGvhVXX>*?Cُ?XOf9999::Z]諧zjر---_/Kss3"^Sy:9*-թ[6m}a]Z EWTxXF?~シonմxeKj""u뢞}67|7z 6sN}Z;1bԩSygϞ}wEƍ[dɒ%K_{7xɓO=ԯ3g.^oMD8u?ǬVq՝;6v8AWSTtަ=mտo <x߼d塇ъ* Z.;ڸf}^}Փ'Oh,Xp^y3尘i{ֺ\@ ja+aTT7l0bcc V\\,"^7!? >\;G9mvIIv`4d("7tә3g*++E]_W/ lRPPxs6G8uO?mOJRD$wo{usso CHDf7@ wwGG+g/sd# ,_/~7?9ZOz{gﵴy SSSgΜ?~uGxo߾hѢ'7ihh[׮]{ "C]w-G.YbIJRV3裏>hŊ<~I&)Jd<8x᯽鰶V?뮻bcûtײڔT}jWlA\\܂ @۫}ݿںu;|͛xn7D #gx5-͹hw l)Z}QQzw/]܃1'k[_VV+> î{d :__:q;voٲe޼y'O~W""b{SFEq|9UD.^xOXrdQwe˦g[-]I*VVV_{ެY6m2eʔє6QbÆuBv~Ώ?n:4kkdf65ODd2Oꫯ~O[VVlC]+1@$Vpx#B3g1Uv6xO?=."11~~O;w7}ڶ9 '|w7m_2Ӟ0?5,-R MD/\=jϞ=#G4Νȴҁkc^@QѨ WV1999##̙3"RWWcQScْ/_,"/_޼ys||b̈́  $";Xx}!t7! 䭷oOK3,[fÖӧWwdX}WYY#n?~{¿gV_yyHpc3 Gw}A|GUZZ_ϴC wwA'o}/ ={_{L8z޽{+ V UV~oigc,sYRS4 hu`иbJd o>C2D{WFO޻7G?2DE)fq`9 7ll0I&%''L&ɔ}{ȳ2w߽;lذ(`2GCoi43f9266d2)bZ1c\Y3f2dv (uuu"mcݻTV;8pD.|_+-&|Ɗ}'gϾ;6mKiiivݫuu0ruqIDAT!@!p9e=d͋tC@8 CB8 CB8 "xɋ/aΟ? [B游>`041iLcӘ4UUmjjиJ=T8)SfWQFao޾67hLcӘ41i|@ ic&%j!p!@!p!@!pS}iin; C@8 CB8 CB8 CB8 CB8 CB8 CB8 "J]]78F^IIENDB`python2-pythondialog-3.3.0/doc/screenshots/rangebox.png0000644000175000001440000012313312507731135023205 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy\0 @Ę$Y.a^4-ћuMo]j-2R+\*)fn(.,30?af_9)g޲_kʙZKQS>1v|/gjf`yLy%%r1@i_>U)9~򚏜%dȥ_TpkqưPVj];)5DDT$X3FUR`#SμwJeK%5kqŃ./E0J4e%2@۳J6j^Fj)H'O ;KEM4WKs ' z+h!۴RZ!Q/qEh<tXoys+Hky#4gce2RmU8cX>RK%EF1DfɝyNT>Cr׵ |u-́RdMiMvFOO_-ъHLQL{zK>+ ȽRhbϵTX TDwxx\1TzRY%%Ꮿ髒/CJcP BNJCaQvɲ?C԰XCʡkMZIƵFi*6[3CoER3OȓbRɀkkrsfEdztɗ.)?Q*Y$5r%쒜 2-re ̓ƗdϵP!ֻ^"Sf{IΕk16\y^xWPb?eQwE$vtd\ rT ;S&) l>WXkQIzYfj-oL?O w(h406P~+2OjbW ȋE^z%ZN,t%Z2)4)i V9+Jߖ9U&; 򠧈iYy%򚏈F/1^*BMi-?FYgդdȂ<3Ju_Ю=V:T* Wdd麶Ti說X)R`$B=S|g~YEdC$M嚩?Q)J2=СTYp K$߬tN( TCfThR9T-T"躶TNshU!rįyVL⧨?-.>#?B O-mbYSݓ;grJ(}DDSˁgsvX\"}x^_ HdZC6L?qUwzq-[YC.a獲TZEDڨX-,cb??aWi$AO9QKJvb-"Q7 q(k@5wOSEbZnT3<n!xJDx %Z8 4;O(>Q\_CK$(o8@ǷPWlN5U""_ˏז멩2G{τ3Tn)2WmW]]t"򏫲삂Jyi(+ٸmՄ3e鲬e\6ztfqzs^ΔSD^,^Wd^r9g$6D|fK.\0s.CF_M auM#H&S&][(iL1Ow|S^PID>*%?ө_W "9e⯒Zfw.۷p-=??`RdHjd|Ry5O~^`诗AU I'Oi!A*Q$LKe^ Ts.H%܌iU!@pC !8!@BpCx:G@ .UCcwAUwC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8gɓNK!TwC !8!@BpCDV2(p8u6TpVrrթSq[08pkx衇ޥKoq.,Q2@pʲؒڷo_JX@p 8!@BpC !8'E=_;C!@qXtNСEXn]~>N'?tSNut:G}D{\7t/B53:cƌtcƌ(p 8,?4ggg[tR ʝ7n;c￯ՠA /[.&&fǎׯ_~).]϶\ҴEԻwo FEEE"=/]Cw}[柩jU]vΝzŋk:SJJJLLL˖-CBB_z饟~}uLU&}E9>yɓ#""ƍw?zGt޼y]vmԨQ-bcc?^њg{at GFvuٮҰQթA_t-44yÆ ;vXl Ǻ/g }zԨQ-ZhԨQddٳzZ]٨G]FE(S###+yV "뾀J3DDRլYŋׯ_~'Li׮ݪUҢ*OZZiFR9W;v옒RFO>u>rկ̙3111ӦM޹h8p-[juiiiqq%K2224瞛={vvvںuk?OHHh/L?LMMСΝ;O:5rrSnZo垿ɓ' >|Ç:T_%$$;T#G92j(ӠM[چg}GIR:t;v8{oǎ۷o7M4 TOD֭kJw lԨQpԩ,i߾,۫D>\Qn풔4bD׷d߾}[r%KgWrHiiaÒ*())Yj֭[}Qga4l?Rjs=-nz +'J]fMJJ2&2G{ݗ]Ν;ƃN6m_E ٘jzp=:Grrgdd߿Ϟ= Yf)'"Ҷm[Udݦ޳gOFFFHH`HMMMNN>pr/eڵj:**jܹiiiYYYZ^`@>E=ztcǎ/[OJMM=v옇GttteJ|2Pbm #FݮY&..`0tmٙ{6mZPPPEolrsm׮mCqzKDbbbݛ~9sӁ=1"Wjĉ-~)eMۛ5k&"O0\$\j7ve{u4h@9pBiiiEEE߶m[vvvvveBCC8ӱ#EDϟR&NwU=۞ abW㷋}yv4ltkpΜ9j:x+]u{ݗ]B˖-;tPVV|h6ol1խlT#ug6u[jeO>:J0}GyDDfΜ$S TpS޽VUn>j*,,LRCD;~͝;7**vʖ5j(K ]PP0cƌZj7N)͛7'{EdʕEaΝu:]e*%,,I&?CII?ph^?ydy,X`aPPPLL̚5k*Ý;wo~ߔߛ6iiiz^L<9 @٨j{ǁV6U2UM6kZ*iz>::zƌSNh4֭;xGJiirf6pXzxxYR^XabW㷋}yv4E sȐ!C\Tj׮ݬY*yػgqC/vID<==+;sέhpZ-٨G  l<`}#8tT0`X_|QD222=~~~W\1iNf͔"rsyzzlұԭ[WyQN*} [UƂ;h-$$D4y衇Dѣx V{eEEEW{eO?>SIII9s挈L0dԩS==4B[R)6"b0rssFeugu+8{l%?ÿX߬kܸqXXlݺՁ#%==])1@egK6-G]^u乒Qk0--ŋ֝vv:nEׯo1gYn]nn?8i$viӦJ~ooo*/,n?/ܸqÇg[zr)ʕ+}}}tRk*0+'|w>sq:ԫWOۅ`VmCyݢEsLzژҧzi*~pS;kWV;s#Fdee"ߦM^z=5ݳ(Ó,.;խ4nNo`4o0}Ё#E@Q\Įl+ [lseJZԠRb֧\gqC/Z tlFu>>}عsgenӭ/+:|7޶Qt>{ZjӧmIjss/ŋ;&">`%w"[TТE̷W+ \ZU[hcǎs2`gqs`}6:?''駟6%7n޽z:)S6lذa___Fo4(nhFq֭pVVM'GmK9s\t[nWf<#GNRy9sY)qD~9eVZ͙3gȑ;vݻ˗Mג^%hȐ!?u|MV{ٺuFGG/\bg}Aו]u+*R/ׯ_?~I&y{{￯L6ڳ/WQQQO?t5zuԩ2aΖlT#Ů~#,,_~˗/_jժU<== =ZEgU*Bp4ڃ>8]v]t) e˖111Qs!!!wy}M6)1`:nݻw=ztJJ?gϞ~iz{d=<|4e?bbb"""͛rԩ <à rOۈh4[lٿӧ իצM_|܅:m߳c֭r?pN:~L0Fg|r ѣG[Λ7履~:~+W:uԻwo/b/>|^ӧO\\_|!"u= 4mUsQiT?,YrOO޽{O0!>>ٰwϮ\ڋ֮]~x뭷6o\RRO:mu6f:)~/_~:uo7n G謠t_@T8;WI˧(C\={9r)A/MeƌөS'evu4jԨnС'OEAM>lNڷo.]|7ot:}Ū]*uQsھ}{FFJr QM0AVϚ5w@ii̙3U*տjZz~˖-"ҡCp'Cʙ3g&N("]vU ,,^8y:>|jѢE(_[n5ԗ;|𜜜 >c4'N9ܹٳeee&MLn+&LxǕ\YӦM/^EJcҥ .nذaaaɓ'fϞtlܹsOoӦĉCCC)ۊVuCJ>RRRSѶm[N?lܸQ5mԴC:3,Hsȑ'v%,,{ܹ 233Mlٳ5j4h@DJJJh0F>?"RT*աC>>gΜILLLLL6m΍Fl٢VKKK,YhLzpTєY&%%K.{k׮ݪUҢ*:iii"ҦMӖ֭[}"oe|嗓'O6 "}Ç'$$:tȱ/Xl%|衇hpBϟ뭷D$&&f޽3gNv,ꨨs禥eeeeffHܯ_sFEEծ][RFE (((1cFDDGZƍתU+ټy)^;w 2d v͚5boJQVVV7JOO7^ʨфZݹsgԩײeˤcJEDL2ED te{^^ޢEzUoժUV,"an+d4nݪ jjtlO j&M?~ƍ۶mPXXX\\ܠAc*8_޾}Ǐ?i$oo}~{z]vL__ߎ;*kX2UR͍yM ƍױcG?{u)SlذaÆ &??h4`jBQQQf˖-?}tAAAzڴi/>fϞQXXܽ{ѣGT<=ϟ?%K9rӳw&LNrw?|ޣ>i&???eIzzͷϦ^xb111KII9uTaaa ~A`jMLUɓ[)۷K.|[:e{. œC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@W3fN3f EqS:^( [ a9mۦt:M?( ֯_OqΖ.]U)" )إ~ǎ;vѣGmo7xѴ[mЋat:݈#DO>9i{^^އ~("Æ {((6Vԩ裏~e˖Q8FiذϟR,X@6nA/ T ?qw_ri3.]TnQFYIJJJLLL˖-CBB_z饟~:YE+,X@EFFV>G8qb.]Ν;O0bBaaʕ+Gݭ[͛i_qz̙3#""5j>vXFJJʐ!CZjҴiq%'''ON<9""{mܸq?W:x e |`>WdEaw/|8!!СCdW~W~~~>>>gΜILLLLL6mFl٢VKKK,Yh>3e@J RT:x`JJʎ;,'%%1B9-))ٷo߾}V\dɒ;Á ԭ[cǎ{ׯ_6%hԨQeyv̹sxiӦm޼믿v]zs}FSRRf͚.]|x={={nݺvuڵ[jUZZ2\iii"ҦMJcЁJ1IHH;vlii#G9rdԨQ>>>$v]o_s%*tذaIIIƿjժ[>~Ludnq.e_RRRVV￿;vLIIQO޺u| vRsx#={ܹsiiԩSEdzC}H?|FF3h 5k/ǚ5k Cn֯_gϞiӦTQQQsMKKT~j V\i󤤤E=ztcǎZ=oݻ7###==si׮Eⴴآo۶-;;;;;{ٲe?XwprM f;$e:h4͛7{FkusINNVovVVWXb OӦMӁl ڶm+N\*+PRtR999oF˖-ϟ:w\#Į+:"RV-*eIII*jĉ}gTNoL/:^ٳ'###$$`0&''8p@9q]vm P?^RRZ.'|"":txw, `<̜9='O{l=(((&&f͚57wܨڵk+[jԨ3`)׮`ƌj7n\VDdiiiz^L<9 @٨j{Tɓ'3f4lPD4MN͛h֭[wA5$JYD>N:gtt2wܹrQQC 8pr]vfr]+/N>moW$eee?==ݔҥǠعsg/_MSߗ{/7޿(C쭔R%8p`llr6<<|֬Yjdc's˷[u@DDKlX{~~~ZV9ܪU0JգGʪ]ÿ6x`Q֡0`<`&???55Uy|肈J畓ܦ9sFD&L`;i@Ѻuk߬ Q#zHD={㔇_DD90׸q㰰0ٺu-EW\~->)tZ]ZZŋE3Oٮ];\<~~~W\1T;͚53|syzzlǠb2uTOOOj{l7`0 ^hTT{+%==])SZ7~:*nmE]āK:uS wܹJa_;vϟ?['T.™_SL@u_UDիw}ْ_~ƍ>o~SM\r{E/[8i=5k:kn۶mwlذѣG?ޠArʸtR'7p.-: 7뮻|^z4JQ%00X:&mEPfMc884յ⟦j]*ĝ`kݺ{פI[+V>|{IK#22rǎ۶mKOOڼy͛׮]W_Yl7h_]X{fm/"999ݹsg>}B)\Kiii?;KϮҨhq1_144T zrgO]s``޲eɓ6m2߲d86PuEuŋo߹sN`zȐ!wJ1~999"?|qh*l7,K??5R)J,Z|{zzJt2ըe-ЋެҰs(kر_W&_t)..N5jybe ˗/7N9deih4SLA8p@ٞhѢ^zRoh45Jm Cbb/hZZ=*%K(O7͝4ixw׮]O:UѻvR:-[=G1-͛ڵkV\geowzS>C]d+ƌLH0 K.Up[u]6l̛7/>>^_^z 6+'N.]<3wxZݹsgԩײe]NWຢߨ Z+" ,/#G*⣓.-6n^tvq9)q1c|ᇋ-ZxV5.=tШ(aaa[|UVZi0w}9իLaÆ 6j4|Ѩ ThI&?~ƍm۶ (,,,..nРرcVtvhܺu2xFժjѣG[<˨UVs9r;z{e=ʯB=gΜK.u֭~|ȑuy1bĞ={~Ǚ3gZ<6722rܸqOרQC+:urȥ_޾}Ǐ?i$oo}~o=Ŗ>}5bWW\ڵSnvQӚ7J!hL s{+eȐ!?u|MV{ٺuFGG/\ТTNnպ]a7#ΡӼk/޽{```AAA@@@ddd||ɓF_ }:>e//m۶ae W5jw}7tʟD: mڷo.]|7ot:}[T/\0 w C8p`5=J0:t6A۸m^Iii}}}?f׿njZ]077w999 6 m cADV;k bXt… 6lXXXxɲٳgY6n<8'N(++ |W ji\i 8BpX:^| NiUĘ1ct:ݘ1c( \AAzIVw&F:}ϜQ ի[nMAK.=qDN:vHiPՑZ6}SN;vVZݭZu ,8q-)_ѣGS7Yt?,"`5㓐3gԩSiz-(88xÆ OjmO=؍7/^|؎QfMܒ4F1ߢVS XB+W=ztnݚ7oҦM_~~NlgΜѨQcǞ?:`/uڼyaÆEW_}U~ ^⭓'ON<9""{mܸq?W6mN(w|NСCYY!Cj*$$iӦƍKNNv[ǛQPF(m2~xJIIiٲeHHHxxK/Tns̑#G&NإK{s&L,7-måGJiiyvڨQ-Z?~ 6P6S 0w8Vu2,X"##+_z~5ŕ̰-a BaÆvaF O;`+ 9Йu3}Z]NNرc[l٨Q>ٻ)=5Vhկ̙3111ӦM8p-[%Kddd$%%_Rf_єY&%%K.U3͛4iFOq󷒒FQTT$"%%%۷oʕ+,Yrw(ɞ{ٳggggkFeKtt#}QTAAA*СCLIIٱcc_nݺ9{ϯ_wmJШQ#?;c %5kּxׯ_?| &T`ɓ' >|ᄄC96\w6,))VZuG}ogcpu ]>}|)))yyyo(cStJT^ ood~åW_رcJJJ5Ο??}֭[?V_XՙW+uq>OVfdggɋ/ubniP.HjuTTܹsҲ233<8m4Z`+WZIRRRVV֢E=cNJȁVZelΜ9j:x+WXY+]ܹs-ȴآo۶-;;;;;{ٲe0_r:44}"tR;v#::ڴoݻ7###==si׮ߥ{ 4kLD`fС铓Ӕ>##c{4h̚5K f͚8Э[ggggffٳgڴiAAA )OJJRT'NLLLi{pi ];֩SG[7EEE5k4AWpQi~å]ٓb0RSS8зo_YvmoiFvuU3}huk׮5 K,9tPVV̙3~{ω)=@E+ԯ_sFEEծ][RFeVAQAA3"""<<::t*[@@y9s{'O{l=(((&&f͚5 )p*+ Ϛ5h4ZӮj6V{%"g-QQQAW"5hW^ݻwjJߪU0JգGr* ՙW+usս?ҵ>SJ__r)Y=@E+Rݮܬ߬ Q~QLz!9ziKZZŋE3Oٮ]0*O>dԩ ,ڵŻ_DdĈo5nX֭[Mx V{eEEEh~1 7秦Ȁ,ߋ/("999<%%̙3"2a}w:6\w+_V滵nupX4ʨm۶)G)Skǔ:VNpix{{)1oWݺuu12ܹsU]]\l̫N ڞgpթSbr󭰰)y=@Esx#ϟ/7nx|YG+W//)+x{{7n"q-}9 884 ǜW̳|];q׮]"R^uwO:e׷O>K.}'k׮ T.hƍ 6w:2mx2;yd;Rd>2mruDIJJw}w6mSru ZV8Vv703wi@uےg:7:FG2i`|JNA~Dz^FFF, YQF3gzxxlݺu ڢ"e GyW>쳶N1cS. M4QD[02j/egVjtٳbcm5h7YI&UkR?ZY!|5ő#GXNfKak{icp/~ÖVgܥ]n%<׹ݻ"`Qʇ[U(/լYSDrss-)9Eʥŋo߹sjUܾ}ÇȻk*[o?f5k֌V(w"RRR""N]V-9}tE Z򐢅 Z}"ҬY3Fܹ2^e;#%<<\-2ߞncm5h7Y SSS333p *'X'OzZZy[)^zǝ8:U [Z흹K\<׹$''oYdx0ܔW+:ԩS5ͯk.缰p˖-G~G,S(C{j,YDyixInnIv@Edڵ7w,Wcǎ_]YҥKqqqʜQF9fʔ)"AU7S|Tiʧj'M4~7m6 Acǎ_~۷_~&M ۷_̟:uJ٭~W`-h4O>G۔)Sye{V̙3r;v˦[aNر=ܣ ygDѸuV@ժjʹѣG59s\t[nW<#G43ḟ~hѢŋkZZCU:W^ϟ2eʆ 6lhFs2dȐyݺuqqqoV={lݺu.\hQ׎ נ]ܐ>}۷OʻmXU֘1cy ,\P)޽{?1 ׯWZj*OOOp=ƾN) Ѩ,hLs [ XJEn[J ٰՙ˵3};[ %Сرc=E5ŝ 80>>SN5j(,, 6lڵk9)S{NLL1n<7nX.\h>G[n1bDӦM\رcqmڴ+y={zuܹQQQ~>}ԫW/**jɒ%>_u]re>}ԩsԩ b^{ŋw=00 222>>~ɕCLLO?4hР{WR6h^XbEe//m۶Y3QIp.E]'55o߾]to,t.؋vp(9`*z-[DCxt9 zQTSŝ9sfĉ"ҵkWe8T#׿njZ-77w999 6|(\ii}}} EAi^ sγgϖO42v.]pBoo fN7fZ/~㯦nV'N(NiT/{~瞜gϸW/wu>eݺu111"h=<<*ω':uԱc۳F~租~|o:uZjs=UE5>>oٲwq?<|𰰰J믿^revvvqqqݺu;w4\t=Fpx}g"ңGYfEפرcǎ[b /o{x3\Ն֫W&ld{x ۶m{饗^*"gΜIHHXfͼytn󣣣{ĉ-͛裏nu'' +8 "s -oŊJL믿.Xo&>>?ٳ͛.]JU˗zզMnذرc7nlժUQQ+rhyC>|899}ůcẓN{0ÛHD( ۩jOOOOOϺuv}ɒ%AAA"r@5B8o޼\oo7iDD7n<5jϝ;ױݞ;wn"2dȐ}ݷ`V{ʕ/3Cg:yɓ#""ƍw?VS&+Ed->Mە|maaʕ+Gݭ[͛i_駟&3gFDD4j(<<|رϟNo0nݺ6o|ذaǎsQqX,hV̋3KKK͛׵kFh"667MQujP*"/Rxxxhh?|ᄄC9֞]1 ê?7foﺓғTw9tآo۶-;;;;;{ٲe?ixĈ (ĉM[[Sݻ7kLD`FZ5wܴ̃N6MV/X`ʕhѢG߿ر"rsINNVovVVWXb WիWw)"͛7xkJA1;?~RRJ8qbffffffbbw}WџRU999oF˖-ϟ:wv9899Y9z322߿gϞAȬY4i۶\ *{nSJ9[o%"111{HOO?p9s*-]ۋԔcǎyxxXemގ.6V]=LtJVTTsB{س鲋 1]]>s%2;wEdh{D]oېjZfM\\`֭볳3333m4ecu].:*]wrb]zr9&O룣g̘ѰaCh4:u7oFYnZ7wܨڵk+[jԨ3`)G+((1cFDDGZƍתU+ټy)^W 2dI^vf͚pҥ;vKO׿~JKK?S8p`llrC,<<|֬Y֧PvFUAΝ;۷o|o˱O>:yI@@y9sL9-ȸEeE \ZZ^h4'OP6j^z)z[5~YDyYr2D'ӹsgNXmlUE碞ܹsʋڵkƾ}ӧwN:ibz,-2EN)9sL2k޼yݻwx׮ߨ"_O~~~W\R;͚5SFɓ'ϝ;ٲeKeZ`pjn.ʳ<Zk׮5m,**RfY|6 [u=ibϕ+W222Dd.\P )((p`ڵS\/^lݴP{'L:{]vxޢߨ"?%%̙3"2an;t+pQ'c/KO*y;9*9Nk.QTN29_~qÇϷNo=]vewƍ-hz.D5nx„ ؿxyyw}o5o޼l\vm~~~```=˭m {z~V;hРK>Suֽ|reO ,WO?]V'j//痚|];ޢߨ _zY`U=Շc?Y⚞߱@c4ʥLRv=`< nԨ2b… R[v>2ޠ0 ǸܹZjUZZz>hժU>%K|Av\` >+w[JՠBc'V>]ʻ\mb~߮]m۶޽;:::'''33aÆG=~x ,&V9s#x oӦM^}ʜV<+͛79Q=ScWۨjl):gx( rL>}[cbcc-&zu믿H6eʔ_~eԩSNU6zzzΚ5KWSFJޚ5k|}} >,f:Vt7QU+#۞] *4mnWDp4 4A_V ؼ֭[{s+V>|xU-"M4O/]iӦ^{-99j25h5g ߘ4ʌCnڴi;vHLLܶm[zzzVV͛7o޼vگʱձ:-Zhڴ}e rrr rxL=iBԹsL+(LˍثF K,Yz#GjufbccׯΨ\-Z`ҥK_{֭[]EgWuEq˫R+j}s@qڵĉ"2w\.R]s|^^u?{J5uTZ}aͳZ)D۪bZV-4m۶UT[lW^TTTÆ 7mTVVLj?裍7_D6l`>onne͏e˖KKK[liYkՑz~eR)oiE("g>gַ fK,IMM?֭[+}||*ܢES}yyyF8"+:;ys솎і_XVձ篎'':A6mDHguʐ u&\;bٿӅ[D>y޳gVviҤr^g bz5k {ݼy2GMII9x+W9N7c e7PQ&?nkcu=Zm۶[ 6t!7,Q裏V0픡t5jԘ9s֭[gϞ]s:߰!+ˁ={WNƮ_XVձ篎'':AhhY[ʰ ǏQWV-9}S<877VZZO?T=hBgΝ;MT:+cKQ+ ,Z|{zzAR]j.ZVy… -.*w-5kf2joɉ՘r&)))ToYfTT_ffO>}6ǠK{'xBD~G7Ν;*իsKfʕDdNm."cEgcuQaWCriܹri`7LN'c/WǓڥK.Ǽ :uF_wڥnٲeя<ә<}ڵNXؾ}{???8j(G0 /i-xzz6LD͛tr"͚5{EO>q`ڀZ |Ovvȑ#8ԠE,v+/]5jybehBBZܹtK`1tɒ%cyMc~rss'M^nne|Ϟ=Z;ۆ8W ,**Qr=x+WhZ9׬Yy]vō9RD"""[ƍk֬^>|:"-ME u_L2ED te{^^ޢEpN_XVձ篎'' _跤vڦ!Z3gȑ#wѻwoooo__˗/U~|tt9s.]ԭ[+qG^ZvҤIǏ߸qc۶m 4h0vظd_޾}Ǐ?i$oo}~.ؔD򫯾L0k3 rrr~iӟ7cǎ!C֭{7Zٳg֭pB,`Pj.cƌ-ZxbVkZ|СJ](z}v븾;vܴiXFq֭ʀVVMWdFmZvh;s=Ggym { Uܹs_|Ž{vS9/={ve@4 IIIIII֕U'WD|'=zߦL;Tli.7mH.mz:)S6lذa___Fo4 ].:Nﺓ캎wG[n1bDӦM\رcqmڴW֭r>}ԩSԩS>pN:ըQ088xذak׮ux<OOO2ݻwbbb.](S8>ceKzz(׌KJJ~6c>[VSLiҤ^}YfSnTkxݻDFFO<"eHH>jڨSWDEE}Q[PPadɒruk7~TwϞ=E^z}]w 7p1(;unݺgy^z*N:[vڵkuСvN:=؜9seqʙ… ׃q߰!O {U*Uaaa ^xVEU]wrbמ]1ZS)c︣|nj>nԨQCޔsYz왑1rS¥ڷo.]|7ot:}-H F!pz~˖-"ҡCJ۷gddT*o(\_XU!_[n5-;|𜜜 >cnmgΜ8qtڵaÆhp"~a):T,Haҥ .nذaaaɓ'fϞρ)66vΝgϞ-++4ie(_X C\\4'NDFF+7~,;Pݝ;wmڴ8qbhh(e(_X 6XXC! .nݺ~w}:Ns=1ct1cܒZPP={Qηnݺh4^^^ҥKO8ѩS;ޞVMԩSǎBp|}c֬Y>>>ҥKgmC9sNJcawׯ#Cp)C+**???@uApRRRbbbZlK/ H]%IDATOɔ`"2`7DS2~rPϜ93""QFcǎ=|)O<9y䈈{キqݻw㏯^pt (ݡCt-+W=ztnݚ7oҦM_~rKE,X@EFF497wƌ"Rj֬yׯ_~&L0Oyn߾h46i$00P٢h@ݺuMݻwo~~~nSFYh8p-[juiiiqq%K222,r4bVoIIɾ}۷r%KqO>~mJJJ^^^@@[6lPҘ6^W_U^9s&111111&&fڴinnWP]pBJdgdd߿Ϟ= Yf%%%'1bD5J6qDӖoֱ:AAA"0}GyDDfΜYes^PP0cƌZj7UV"yfd'O3fhذh4N:͛7OѬ[|ZիXĢ-QQQ707wܨڵk+[jԨ L]b{ ETOMMT*^|Eɩ Q"XzHD=jr_~EDFa7 [:em.^h^4B1"bQ&[~ %/33h4Hxx[-[4SN̼DDܕ+WL[v%"*_éSLu@֭4hpD4?cIII:ux/rƍ/++3siiawy[-U3KjQ]rh4*<<UL2'P2c{(ܨQ#.\8t`pC4֠AC۷o?w\ڵ/]xSj0bccZn{5i֊+n:KEt]iUsgzM[,P(Msrr\tk +--MLL$^wi<ٮ]N8!"s5 ݼJ5n1ZQ4|M4QJIOOx+--Myq<+z[nV4ilܸm۶J^~e`ϵjRjg7nٲe˖-]ODVZժU v577766PkxݻDFFO<[ʕ+SNSNeddddd>SN5j(,, 6lڵkEbn`ԨQ͹sΝ;we4Qׯh֭;x5k(cY_@URzqG+rs炃Ծ}voxKӹc/ڥzQsC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@D<) P՜:uB GϯN:] 3Rzrwo|@p,Q2P,-}d`R! !8!@BpC ";_yf9BpZfݾǎy]VKZkwUS8TWU ffm"ϳg=EDDPu0*HP5q{"/zuFtIw'b.}aÒ^RTPU WnΧ׫V^GD\Q"CPq|Okx}睆+j8k瞒.]gRC]6rEg/۴i@R_HDFRղeEEPp|F'VT^h0Vkzddo-G_ԪUxyd'((C^tמ2֩cP^_oU?N_4RPT (jyxƴDiJCAPuO(T^k4JIjժZEJ7.:X]\R(~`0L֯ %8 !%J}6O#G?RQHT!9Jwݥ߲FvjCӦE;Q>T)]Я_@ǰR! !8;TA9BpC !8!@BpOE7:uPѣGmLYVV_V-W$ 1ILb$&˗/[$>s: n>C*ЭlLyUۛd$&1ILbnK\RRb0M#eeeQ V+BpC !8!@BpC !8!@BpC Rpp0 N:E! wC.&MXl)++X\ )!8PEmذb޽{GMɸ!*zX˗)aA! !8!@BpCDē"η*dh =J[Bpa!pB˙=zhР7w:6l0<ԕK޹wu']H'A||M=<ʒ1)OtÇ/OtKw6$܃^9dfJ 9px·.2̙UVҏ=c_ԩoAy;/G*+ӧ/p8QxDuvS~uHqqŋh: <24M 7f(0)n_}?exu?r&<\VV7u]yqĉ$pP#z0)L*ORR}>.,,4VMd}?T*:ts}QV]^,JO̟:UDwZ;"# @jZNtgrJNǝC._yj4}|rԩ2+x󎯈).+skXm͚+V^˗O>ͥK5P>7k+o-|HYfɒ%˖-S\+ca˫o Ng#GyyyŞ5jԸ뮻6m`شLhh>cǎ]q۷.7Ǐ?tٳg =<6mڴi*++/Ydwqǽ;a„!CxRB8q~-][.3Mee˖'Mzb>Xiٲ'畖⊼t: Hw_8<;|+_ .k{e8e\UUr?HڵkrR7mzio>W9mv۶mكd2K/{[oiN+rǎK,)//_f=3gΜ\p2!p FM?eؾڃ{#:|SؖM&jj2K6%ѽ{ _Y%{ǎ'L0~Gݿ>ME昏>-G]0v3<uM#rكQlH#֭]ve//'ς4{}t^rIGիseأG &L>[?!sp 7\zsٵkח{f7fLfȟ6]n2%oʔݻ3O>XVͭ}Ҹs5ED&g.s.Y2>"|~7]ٳ_pjM͙Q-aҥNmvݻ35.Xgqƍ7w]hQyy++u]ƍ:uСCOdn޽[6mjߏ۷GթӾ]:kc n =AΝ_ߺXOᆚ+-ٹs_{u~}_~߹1wcmqݻ;g3={n_6kV ΁+Vj馚}-ӷo;^[`Wպk_yݿHiD+W/ߑnM$ߏ[l9Z]]}ܳ͢gϑ8ؕH5y_Ç4iRYYYuuay_}֬Y)]8p9%JJ3g>jTy{5{䑆n{}v;h7JW7oT=c>[o-w9oߞymvrVJ_.\׿nٳMϟexc"??а]ua&mDOz+W\~}ʊgsd;YO=T۵Orv.pqCWy乭8y~qn9k_;Ŝ9ӧDDkkw_}OZXXxgϾ׿5":t={-;ݧ/裍gl>>?G3g\bEYY/Tow޹wot.$wީk~+W& "6m~??hРT*~Sr[i^3lhhX|y"HRʶ*_pk׮;vJz:[l80kƍ9u޽;w>'IW` 6` 6L&gϞWUUYG6l6+3EEE9Bll766677vpAAAp+qoaJCB8 !!q@C""=]=3sC!8 !!q@CB8 !!q@CB8 !!q@CBDD%8.pN1s8@8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB;vd\ sC#YNIENDB`python2-pythondialog-3.3.0/doc/screenshots/yesno.png0000644000175000001440000004106512507731135022540 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~AIDATxy|Td!!$@TVT@* .պ↸VZG_uպUU">ViU@QQE+1dBç̜L3sܹs C@V?['ܹɰH9dMK*lpc{fFD]=`hjɖl7&˷-2zf5PsTv|Yx{oؽE".]|yjl rf8J~7*UUDDDt4sz{/_8,;^7s) 3WӜ53ɏQ\.՘]FT\1[83#"mˉWZel:#i cYaYaQt~je-cva<V7kKͩn2f1[wVP=G5yTjfy`+LOsbXyj-caao΋ѵ(ʈ5Y-biaq{YDČx|}Y"$q|'w+ڌ&TwEϬx )w*Wz52fDGf8}Is!92;zg%082y"dF8I$U^GCFQ[Už1Y .'NCp_c[&WVʊ r1awёѾz/ύCWyzV^^ \aȍ(IFcy"➼آ:UKı5m7u&V+JE1gUoL)Kf3ϊ]2f4UӕֹJ$#H'6;Vώ2bYk=rD<,jj_7]Mx.k5+ZX4&⁼46[Q7[XCފ2\*cz/͈k?lTƧo.1*Wyd7`sQqqSI4_ij{Z$ϕOj|>zfYG,Lϖ>";4;Z%1ϕȹ:]EyxǵLDdQ.I7IaWج~YTDw \ğ.U$WU|y>3jfnĒػz{'U3"WEQFDDՅoVDĀ&ǔ~a3ȶH2eUO9:ʨ#&V?_V/G_::կ>f'5JzZbǔ>V3}l"gEE1? o8}fmw ]V.o?XA`cQrSފcJPS=dNS]I?b5YUDq2ZjˮpOp9=Ч?%^D}q+fیسgj)$bJcxo &V_GLġ5i߬ Fu:N2}\CLzJ_С2bJ89[GdQ+ʨH_˪]ϖGq2RyhO5T0‡8?ƀ%1*嘾3D\yIFyx<_'.gdy(^XcEIU=lQe^e,Kd[-KY-cnrNqeYCdFLKƭ5nI ]iĩKE1,>ɨ*8vqd{o@c;wnDn:gƇ͗/4X5v܍OsCdYoT|GsQ?{^nj!eʰ19$;~3Veʊk)INF,!~M&=32RǒM{dXYQ"hw49U,-jm~,&_㕯yp%[;ߩ+hԲG|R|T4lj^[JwVtȈVL2FCFYIC!!q@CB8 !!udKIK_:9\`g!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !e`>}A{AŞC!8 !!q@CBDD!Ӯ];@5c 1qZ2ejor-4vvg}V{0d8`պAV&O\1clC!!q@CB8 !eZmGgpaCq8 !}dɒ~kÆ +**ѣǚV/S4ˊ.uSO>:0! 4J?;rfffaaa۶m{q 't|^zg̘1u6/ݻw)?<͛۩SO>DщCh*++Ν;w܏>hРA'p­ޚcdV+77wĈ{nX-((ر[oXa|͈qFc㪪ӧO(//;vرcG׿UщChFv-\?>|O?=bĈy <Ի?|A5TUU5uԽ3ݻw~~I~߾?yc9(q9̜-o馈5j l:222xzz>#Nf'? ZѣGuY{vmyxEEE}YwqGj’:lƚ&Jy衇:=zԜS<۷vm}ZwM>}}avqC=OҥK뼵Noj vW>}taw˿ѣGs9ݺunvm:+Xx9䐎;vGf;Bxرc=FdɒK.dv}:XuGk~~~(++ a9ꨣ>?p[mUn;D"ѼyyK/E]_n?ksg}6nܸݻ׼+LN߿FF݌ {lMD̙3?_o4hе^}wq5z.⒒hڴiYY?CmݺuvJaG-Z}OСêߕL&O?^{-33tСǏ<_ݪUD"駟~'G~}٩.++{F}vuoꫯ/~ѫWѣG77tS{Y_>lҤI>Fg!lnvm75*SN?~ >ß'^ر{Æ uט1cNѿ =3bĈ#F\| Ze_p%%%'tog}gÇرĉn[{衇ֹs8餓FԐ綦^xaɏ=ؔ)S&LpGĉy:7|s7GYgG?>8q޻^{+r5*33wɓ?䓧zYfO=Ԫ+8k??~vmWQQ1f̘QFM8_~3f83*++uv'F'asӮ]̙37=zz뭭Z›ni?SN~݆_QQQlƦ{4i2hРC=ֽ,//߿w޹FDvvv޽ /~' K,;铑ѢE+[nꫯ1n,((۷oP7w_Ds9~zj^{e8zyyyx`DtmvJ$vXDL<^SNׯԩS;u4x,C-Z^3fLDvi?3"bs̩ۏ;ꨣ kQ)))I\7`t36Aoᆜzuwy'"V;N7nvIK8eʔ:?fӦM#byj"bJzs`-ܲ早O?ϟ?Oꫯv:bĈ-[?U&95L&MZNUS{^'Qx]5mcw;v\NqW~zsnnnj!uy?6mvm㏷ho-667 7oZX`Aja-rٷs) }zj!i k׮dΜ9jW_'WL˖-{챇zhذaW^yeWr?h tAo?o|'O~W_}?E\K8;wnTMsasvZHeҷשԴ4Ç#GVVV:uκnFjGMk$7Aӟvz 7l6 ,KjEE* ̙*((߿?cƌ9餓"_y:I`U;-] 3jw5l !lnRu9SN]4|A.>?M]0NͿѬY1G_|Q_cդIq n=Jߘ]weddsOsψ())IMj:r+**;SrK]w5"JKKk^p>_|15*l:!lVzGs9'}cAAAj>h-}Ô.[o?LޱcԵ"nUqڴiuSj^Ԥ!yEDYYYD ]vM|k>vؚי\VdumڴyF.l !4nK.9s/׿uDp'xbRW]uUj WJx%0L]6/((XuuڌԕԴ"&M:sRsH֋޽{,[췿Jf]q;w.//袋j}r 7dgg7n*0-[k]zKGA.]"gj6tГN:iĈ+:̟?k#b{??" 4x ;"|UnjѢEݺu֭[΄4иG?u˱{ך㠃?wy~W^o}ZiZi;#G>38∟u{ud2믧"XPPK/M_=ܷz륗^ꫯڜEjժ_~O>d787_+hH͛kn>+ٳ>.\p=8묳:ڒ?zo5Nqo~ȑgr-_q~_\rI֭|?O>-eee5L]㎿կG}L_{ {ڴi/nٲN;Իw>://o=V[mOx뭷f̘1mڴXu:ƑGkM0a̙K,zs38c}]畕>C/>_^n4Djn֭z6}zԵk. ?~󫯾`̘1; R뮢 cmڣܹp!P_z' tyC6(qԃYf9Sи8X/\pرcgϞ]UUլYk֘4F믿9sfӦM'|cǎ1X/#F0{CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CBDD!֮];@c4c 1{vԩS[ l6!keѢE6c/׺壏>K l!keJ l6LH8@8 !!q@C""iEEM7#'-~Dbce6 sO4ܫ׋oCc†矿˩c=v-4& q4SNYxW~|Qe׮dDGg7ާ9k[m]$/?+oMVK/?̈Hy݌]:DDjzf}]^o׿QKĉt3ݶrʔW^9Mk[UUg~R7ի("22+0kKkYI'e{n^{eegu.sr4"y|ʮ]3?r O=IN騣s-xqIv|#EkٴiɅ:gwӂ ?oPV֤OvH-o?#}_}.{Nff嫯?;GzxUmРӞ|yjԩU_oJJJ{C>y>i&N8gΜҜ6mtikgQX}n%Kjmm֪Uٳg7ndm۶={lHTٱcǞ={_}Uyyy֭{vm3Fg__OyiE駟~Gs1/6Wn{y94i<u!_>PYII2o,6Yzavv ن99?|aOoirA^c{{qİ vNߵs󟾻6-[l1w]>0g9|֬=ıcĈdf.#|w1wqjWʪ43x<}˖[~}/yÇsl N$b=33ۛV~oYI 2bĈ${1Kҗ_>=hMRUUꫯ~[-[6mڴiӦu\)S_JV^;mڴٳgwecFee>[\\rΜ9?1ӦM ިQ~r)]vmԯ,8X-\3n\wi~92)Se\p,y≲g- :+C~#LEu/;`qzw27n'}8E4])-[.o_7xS2\E2;ħ 7Ifj}KsZJlđ\t?޷o߃>,..ԩ5\SkDnnr飏~ˣ;5#I{曍]WVVꫯ&W>񲴴X1mڴ⬬]UUUk{~3Zlٶm۶ml͛!]W_}u.]/^d{nΉ'f(?wnr!C^sﻯtɒdUUpNȜ暕6uO?oCw-^," xbȐOZCZx x 8[m_^޸ DRo)7+l3+Z=vȤI;vœOޥ˄XܣG֩6߿ɖ[&"b2[n9K󟊆?2dSO=@_XXد_N:iMw}>XQUUս{ݻ/^Jm̙3ݺu֭[D,X`ذaҥn>N;I& :tȑ~W_}}ѧzjo4{\|q΄ G.8&2\,9lX1,nv,=z>ӷi;˖5i~_G>4HFDiiι1U}R=^?o?MoҷϞk~9wnMxȿA^O:u%K7&| /-uc"zav,]o[vۜ[ yjݻw77oי}geec0׽{͛O ,--hԩ}|+//#z… @sruM[NDDUUU>dHO/ZTx2K.\yy_v$Nj,.y;7[{'ѣǻӦuyŃ^~yQ`6w^>mƄ ;OSÏZyǥ/|ӷsEE3S`_Q/P ͚%>&?QvVVtqMMod>}̚5+"vyO<_Kyfs[9srrrڷo}뭷n֬Yjn:т R -[:t7nFVZ'_91LEEEXӆٌ?Ν;raÆM0k?8䣏* #e,lUzvj`?_UQQ\W۶#"7_8"bҤq~- ˕&GeV[Iߛ>0eڴ8LӐ,I>tyFFi t.hiiiD}}]2fc+&NСֽ3#Yf3S^1*޳_ 篺rÌFNΊV{~QZnݷoҙ3gΟ??fhV dܸhuyf>Dqe{「 ګ|3}n⯾Zi^N&?)?FZWMVvvfne~m8r˾x={<Gtҵ挌N?}H4YC*))y'O9唽o?~=N#4vXɡ.ܹ,;wbg>@ށf5%z§H[ӟroG:w>UUH$EYEj#bm9m2?*0{vC\#}ͺ瞼Y y&&M&"b=v^|#Ls5`ڴ޺?|~H$kN2ngR~7|O~X~J +Ȟԟws牝;Ov/7nԍivԨ[l17+koy+?q0#:5Mǎ_}nL&>z҆~m]1_No#-[ր!++#xG|.l뭷/[+3#b#Ժcǎx7Rӷ=:Ύ;LV`y͛7>%KnL+VꫯTUU7.uMzzTͨy*c ctar-_|E6m.ѣG6c^eN//]{#Os?!> ^<wh×-˝9s낂逌]vp=W~/ض*c]>}^ywÌ+V_׺;~ZX$/?:<wM7.uxAΞsEEV&e%%96w\xUwE;6qb Z.L;瞳W{ zWU/TeO=UV^ ۷oW^~F2d+-+ggv}T.].P^NNN)Ivu׆>$+髽gee}ux؎;;6u-3f <8HTUUeffVVVnQ)((H]sʔ)=XAAAC=4pz!B`3&RQO?]EEgѤ~>7S״iISjҞ=I_#e޼W\qjD+6&; 6?;?+{3#IEo뮻e_m;;u1D"ٲ]#F}766w%ÇMZ2339C9;mw rkK^P3B:tЫW>ZzX̟&M~/RjgjWgvvv׮]}zWҥoZ^xqzl:5a8U7\?4S{:޽Ǵm;+'`ʔyWQ7w-eK6™3Zgw1MyG{AO_sm=zSY{_}ԥWUQu vmǵl`S>rd߆n+ل[}~pCUR222<;N0믿.--mҤI6m:uۯ/,,6oQG5nܸ9s$ڪG_uzWܹsӦM?y]7 !1w܈H]Gӧ>Ы]vQ&hC4L\ d32zVGDv7&7e3L&yGV|"4:cƌׯ0dȐZw6"q\sҥkle+[rYYYEEjW IMA+ǜ6،GЧhc4{InF$6襶; "4{)]0!= fiNw1SJҿ HKFN!hR)lLFNCVwz-]mU6xЍR^}Hjr4S%fTRuCg6Q^i̓ӍO@ 7KƄGC4OshR%W}74lu(EH O{iWM\`N'c Pɳ'1gQAm<+bXΣ*%q\6d~Wu T&N+贂Ϋ@sAeK%Zÿ);;z /uHXy1uwha',V> e YN$Cr[C/ӐG?i_-*('! hEovEId(UҥZ*{g?:Mҵ9OH\mY>Ѻ*2)et;j;Tq7#R- _IC>nd_NE TF.Zh@9]7'jSt$J*OWG2%QO;Ժm<+b'2w輂^%,+YC ѣS DjU[}~Jt\%IVPat *gЙ>kuwH]&מ-**O$#'֭Ң{(i_yUkY2%ȒʔO*Q+-3S Zrk)YA#tӣ)-RR QUsݮ#~ʂ6g65\Z{Qt4j4zN|]-*:BH?^7)H}xV_^# ,H]dLwi&V%O"4R2)%Ӳ޽p}fj![v):]6xEphד. >9Isѓ1;;jI}~ꨇ%*᮴ZQx.{SIgPIJ7Rڟ'hh lљՀUQ[SRdII!ZD-~[~f7HDZ& ?L+q:T N4Y"RAipѫ*oVhiQѥَO.Q/ۯmtms ydCQONyRcWƞ?5~m0oO͓h>^ N_DIV'\ԓGD hH0UFGe'.4J3[Z[T.kdzI' hBݯ5OJ@:4O.,6蒫&ZO zSPI4Ƌ)J~E7%JYG6:DDSt;ݬ_,djE[66Tr"mBeJ2= ;UkĞZgx>o]oJ "=*ek8iJ//)Qj-GNns (_o)R-9\t;>ع-*KiݥZ9DD|JLIw$=0Ul_"'%GHwP䱵%/]%=md>P+),:DzDR%}^@bS`릲qj~-ԧPCGn '3yY[WGsBgӐzCDw 6 )OBm+2d^{Mz! !7v4!q:Nrr7W^LO7QOJv {bGtN޸'ꬬ3g>yIvFGt_ie2˗ <ЕJ,W_ɼ={.]R66{llwU C::dl\7dHDR(J$jas.=ݍ-*ׯ&>M:HT]1`@f Ҍ d2OWGCTilft@53ϟ޻v㏭-HӚ Ju__Uų'kRӞ̬ѹsw ^xA^TBYX(F?V} 8"޿;1GM}䭬;#TRBB/fJnX=j!tO=2Dҗ>]uXƳ&-J޽Ъsgj^rήW\΋1UG [[=d۲fgn^ۚ $d*]]NRItW]MT,C:nXlx䈉vҮEע<[[?~;Ĉ'nA/0'G_"e퍩%$[ٞĤã=|0;ۀ[tpjkUK?asF~W]FZ R_75^.SQF=fJ%ϝ3`iϘQbo_͒1n}}O"*+ߺgcSCDRoo)I$|xmX2Pd2ލg<sھ}k@BT.ٳ4;ۀt.]21],Wz)f,Pٽ{":wθ1[)Wt-3ݓcPPN~ wk=,-h]4fLEjqM O]gPWW9v_ cբmC+++%4Ν;UUOz6YpcMH$?h 5ssDTQj/N ]][oq (+ˀ8J۷?Ay9_.Ցjݻb=ՎrN-@N __)G|~ԩH /O\|>qb9o֣bʔmzRI/~Z秮[:::Գb઴4#"tjjxff26{S=YjjlH"n-sN3SLn9l嫯VYPx*O)*z-wAlQPՍ Դ>ѨQFUtS<+%>}j HeS۷wX֩N ޽E~ZJuZ.P<#n2@d:cT@ܼyFFFeepxCOC[Ch.ȑJwUW._6h0MM ttH"MOp˟ڝRIT]*S&ө?j㦦-.M*2OᓚU/Ey9}<ӳRuǪ T^}=_U=RxHdE/=ATwO? ѥK{5֯?YWQ&'wna{ r}}euNxS) ^xAq!UU1kQ*ys"nnF++oe6ZBCHH]]]UU3v.ꘕxAkbYnu#IQ]4uڴRny$(ǎJ$lȫW Zt rEee|/%nb+§2yV~0:<#iiiSLy.[Y@Pp._n\HInII(O;qcttɨ?o-T$hƍ{pz@UWpBA}]<ԹS&aK07o.&-yu@j]m>V 83rw6;|{n~n~VVE'ǻ&?߼d1T'-h^Gpwuut;Gt^:_u؍gfVZoU^]{oߓ^|}vPwHqAɻk͋t/Pn[J㸺> YoO]%'sεFDt`۶R(q=ܝ!7?dWņ\SjKKDt63{ʌ%7fLEzwJWWbB60P:;?bMMkG8}=x7uUU:\+\u͋t/Pn[=qx<9dРgo JwH<\+)78nG?⥤9ӭ?p)W,+߸W[ۖEԣܸw~K/PujU0eJqrݕJ%dOCeoEy~]uX@CPzzٳKrr **t|C1p`gPݴJ]`tC~m-O_̬o_U/UGϞv!hapu}xW_֭wۜ4#ÐE;Ǐ =w/PU >lF[3fL_RP@@aT۷d2O[!msgEy~]uX@+..&=Z_B,VVV-:{t7n|=B9Z>D9,.V!8Bpw;wܺu9sWR V+hPhgggii)"jXxk֬yEѶؚ37Rb6cZs!@?9Q)h CxVp//_|q[lyQD"٘6k,;;#FZJ37L& :t˼yN:Kzs:99 <{ҥ % tttqpp5kD>sww߿eeeppne˖Dӧ7,~z]u1ٵk ~۰a WXʶ~Sw-=s+]/Plэ7VZ5zh{{9rʕ999 7I$PGGG[[[//oF"ZxH$Zx;vD"ooTJ3]V$yyy5,{wwv@YVpB deeeeeݻG0&&&44yƍ7nM;|%Kc###{]><?駟377x׮]MNNNMMUK_oܸ%611)))9qĉ',XrJ|MMMM]]%Kxxx$''w֭hݺuίJ뫻 'OߒLMMU} [[۶jm~37R[ "ڹsgxxB`MZ__???????&&ڵkZ7޸{1]~/LHHسg_ͤE4{キm۶ׯ_xY)Rf.ڵkI322ϟ//^ܯ_?\~+Vdgg/[lǎ P"|ǎ ,2d;M4ͭW^DTQQo߾;vN4幨hDl2AI]-qBB[6mlnn^VVW_ܹs֭NNNj>\[[;nܸ7o%$$ 0`ѢE8vzxxXXXH${OUUU&&&cƌQ=m6 ::񇿿ҥKۼmWw]`KJi lQ6ȑ#aaaDkРADTRR?hlocǎk޽#F=xe.\W_^Z믂fҢR----::Z-8LKKu떎N@@@{_ yzyymP.6nد_?"㹹 nnn8u=i}5uԈ???vFDݺu d< b322r@ քB ;숻_~innND֭5jm޼Y-P(d=7n嵾'L@DR{nmEՍ Ԛ\.'^{mǎ,2$"ss#GtJoF>>oVhh(ZtӦM#jpȑ"K_ @ .… ՞0`=={YFW/}<Mx g?T7=i S(MJiiiD4}t+9s&bDzw쁅,}ATwبєkasƔִ6Frr{hʕ%ӳgN[)jsXL&>Z|toP(|cǸUUU&"Ցs:::Shs4Q=RTT6/==x<5p_MvvvMKi͙hΝRTuyTثb fffVZZ?gOOO;;)srrJ%988=ȥaq MW=~o tvv.((Vkjj,,,:r 5Fj~u[ŋDdiiK/uJ2d[[XXٹv_ɓw͍=vT*533cӂ@ TEϰQ:`*Rd 5H&5x JlLk.]4}2"eQPqqk4/3Y(n޼y…yyy1L0wU]]i{Q^H^ M4i˖-C67d}@Ѷ_ݸ`VVV]RԾ⫠6mڮ]ݻgiiIcJz-],Qn"Zhڒzmx)痕9;;W:x Oѝ*όwjjj\\\JJJfff^^^RRRRRұc~uQ+@;wz*//OJJSښ%@T 5>H:apBD¾ VИ=- HڼáΜ~m"PNgP( oɓs2^Q.\Akkk(>>^.ťcsn\`?]RT433u~m!;[f߾}DZGGGР**@83gnn /=b*D7b1w| 33S%*cg@IFpQm6ѣG_s{Nr-V`~ݷIʕ+j]\үƍ6Nj``6l2ohѢVݻ/^/رc/9yɓ' T*U*lb++^uXollP(؏2ZO:u:t萮B߿ִ xxxߟ|wLБJǍwSNTTT{zzN85qt3fDm۶bLfeeiKO 9sիwޭtqq9s#4GJTTTzzzyyc``ٝSۻ&fffQ]C:ziӦsݹs4vHӺm#**?d>|u!sUJ]m#00+22299Ν;2zĈgn}7ѣGׯ_ԩ0`ԩ?W >}߿ҥK8ʶ#Gl,M{_ @Gy&=zP}+9OWk6TƏ/-Zb IKK2eѣWD"QmI;XIC6w9Xi{CN!_ܻwoժUD4vX(Ys&ϟ^e|Çwݫc!_aaaiXpHh?pƌDO?5L&Ɔ :e޼yNRK$~>} ý^|nٲѣGSW^D4ydg-,,Tp͛7{yy:885Ɂ666fR+ÇDG6DH4xjD"ggg򧆂f^HEc ڵKfnذA+VlmmuޞI&}w'O,,,D%;|%Kc###{]V-7|SSSSWWoɒ%ݺu+**Zn+%_paUUdeeeeeݻG@^vظ5"C"*//իW3_T*g̘q>_[[[]]w^X/TS~7n$"gbbRRRrĉ'N,X`ʕ,C222{nj "rqqi@UVVP¢6KD?l,'{`\"J^hkբmtf _~i"󋈈]v-߱cGllZz++˗/bB=e":v2##cUUU)))ׯ_~}첳-[0p@>ODׯgqHs޽͛W^ %C&KHH`ibիW/_<{l"ںuk||$88X__x׮]~ǫy_bcc<ΫJD7oHҴ4">}ZΜ9bD"!_~Ȩ!C|:::T^|̙XpR͹u:CO?a ***ڹsgbbb~~T*UJj }}}?nOt"x˗/|;wpQQQmX|>_WPPѣGϟ?޽7o~w޽{fyuVTTpGrrr؈M\caa^z?^ZZ￯^G<аWgkk{)C(/ڲ@JsGЙupر}=|vvv]tieeeDdeeekk¼k׮) l@O.=4S*ld+33ӧ7oܷoZןj(lRĈgϞj#쁫kJJʥK$INNhZ sXZZoĉDo߾;w46Ogkm:::ӧO_~O?[YB12gg篾jS\`AKMOG}Կ 6I>}zƌM8dM8dYpzQm@kz!{߿_shzz:[2""B52aDﱓcMSSS@s{@f</''̙3~~~;}t]]9d۷IXBDXX@pأG &TVVĨ=fv jOrE"btB|>8p {9SZ1h ^._r%))iD4f̘܊ +++*h^xаܹs`С,o.]{.[>`@pHDl;Y8ᠴXxFFƩSZvvvk nQPP` ߯-oGm}w"1-% ܈_~QLyȐ!lAW$7y{{KRvcJóg4;lذs>}k޺wNDwmЙueȐ!nR;fddT*ݼB9s&K5֬Y#.^"(Lv̙QF5%k}PUU5{l__ȜGUVV #"''kwrCjj3aaalVappjb6j4&&9<==Gڎ)eXp(UgN:99ǔcǎm:4Yf}GjBիWX8|pSSSLV]]mmm'999m߾}ѢE'N744|!UFc[,!6Pcccm6OxM6޽{Ϟ=B$((O51宮Ժ TCǭ ,Y¦RTDos .]۷ӇM|7-Zԩ@2)S֬YC3fD۶m27$$$99o:nܸgFFF:usĉ[ѣGϞ=STTT*wK/7nڴi>裏^y啨rSSSGG@6pTMϞ=ƌ3fӧ^~e=mfffQ]bDU{ݴiӹsܹSPP@ @z=zP}7+++|HKK2eѣWD"QmI;XI]e!+!8Bp!C O]ttH$rwwD"ǧNK/D"HԿyŋDŋADof埙3O^^^M$={u랷}n:~x``  +++===s HsE(YZZm?Z~ƍuV:-jto<&8ǏةdggԩS02g@~#NUUUT m]~AL3tPy:uJ-eD"\$=z4"hJRl2?S>}w_]3]Esx%KFFF݋ \v-rɿ[rrrYYI*++O<Ҩ7nHD<Ĥĉ'NX`ʕ+ULLLhhhmm-ƍ7n):;;ۗ$ɟyzOrT*ӧ{!ckk OCCÚؽ{CrsIHH "@PSSsȑѣGR{m۶]~ŋΪ'Q*111Dͯ_|+s)ʁ#@ hQg̘q>_[[[]]w^X6nWWCedd5&##\\\x<he###W^-7xC3Auu5W׮]366~_PmUu?Ѕt|??ܵk;vr)=<<,,,ry||IVUU3;iӦW^|yDuV͓p$ꪚf۶m111111 .l|}}c 2cT NFF󫪪SRR_~}egg/[Lr޾}{BBrsstP{Wé>k̥K-F+,2h02T𫠋~k!G5ԩS#""zŎt-00 Um&L ";ljw}GD_~9[nԨQDyƲ}y77,~~~к׮ry@@ƍGD322R ?~<77W";w3X)nݺͯ"6mƲe1rHH]ih]O]eeƍtttwtR'''"JJJjfX,nb!u rZy|򉞞^ddd tov*袟AZ|!7M 6LMII)))JR6GuLT*MKK#ӧ̙3H,K$rf]]]|v- .fĀٳZ9##{ァzՕ5o ‡;v;XUUŦc.r^}U"yf{W/lddTQQǎ|C Oٟٙ0*gӵ߾}"""ToBӠAkkk(>>^.E5ׅr0:6P"hv ѡL󞲸BKb۷_[[5I{</''̙3~~~;}t]]X,&eCȑD驧:1Zdy^t!Cr \.^}Zg P(\z+njj*ɪCCC{ɓ322h/^iӦݻwٳG(rصd6#I$~KtR}5۷Ӈ͗{7-Zĥqrrھ}ERSS'NohhCnv?[;w܉'VXzj}}}Tjnn>eʔIxxxƍD;﴾y_ j95"WݬoP.n(CCCӧOFpآl>7nܟ'|]E_]3]K9$3fڵӳ[n2>8v՘' `ЄCG}g___33JSSSoo]v&ϙcQvwޱ'OsX,Ņjƍwم >>Cqqq7oީSR.[L$M>D?Pxrrr``ìY4 DAAAD6k,;;#FZK.RؚvҰq6lP}+4_UXX/0w˖-=j}i'''ϝ;fK.MHHкRHe\yf///[[[Т" 񱳳:t|p-4ÇDGmZE"Je*EՍ7VZ5zh{{9rʕ999 &n6vmyΜ9"(,,ݻÆ ޶m\.oMsKFmmmddرcmmm 6&+jf{xNt9^d {lddd``p޽kr)'Oo%''ɓ,zƍDLLLJJJN8qĉ \\Ąֲ?oܸqƍ`vٹo߾D$Hӻwonٕ+WRi>} [[[/\555YYYYYY{ѣE?|駬4y<޵krssSSSR1cƙ3g|~mmmuu޽{bq||@ 9sw@PSSsȑѣGСC~~~]NFFxU gΝ ~~~~~~~LL̵k״Ӣm=?x7ސH$J277wڵIII?f̢㹶qСgώ3S]]͕k׌xtC>J|;bccr>[UUebbzM&^zٳg֭[5O‘H$cTTTZZZZZZDDjm۶,\7d"Qz)9ϯOII~gggl2˹hDxX}vKkQpv}ͫWQvvCTm߾=!!yyy466>xjÇS}טK.q)[T)̑#G ω'_skךk}ҶE{f]vZ^^ކ ARRߚ-*]TTT||<[jUNNNNNN\\VgDPO5>>>iN׫W/v[nlj'L@D숟jGw}GD_~%755]nݨQh͍ennnY8К^f 7nׯ OOH@p\Μ!Axx8* 'L JJTVVnܸKGG{K.urr"$.\. sΘ1U֭[bq]]]cWɥl)\NDڎ; Ď9rD lWڵM6yzzn@@ """/ڢלeQ3ϟϺn ֺ=<'|!7&P3 ZcFSRRJJJRMRS*J҈hjo1sL"\YFWWW-|>]"??… D!3`{{{":{v'744$"BQZZڶذ(ꫯ͛7#{=Ք8/QEEE^^;_ 2 #$:::jQ#+Wj^lϞ=]{ӧڎ.uiNeffQmrjmCRGzjpg@ٰaZ?!iޓܹ3111??_*vIRՔqqq4{MMq999Ap"''B3vvvӽ:@zz:x˗k>{_- 6̬Μ9vvv-FXcEEj4:͏E})))/?~_z5Տ8}t޽<;;[mO%nիWHOOOF9QQQ;5:upح[otʈ֖(+..v[,DդIlr!.8dcJ|M՞=vBj;XXωRdkW6H&iwrPy }Ddll2a„w}WGG5BDcnYu d'455ռl'))).] H$999yfAAy濤9~k ~˹jESt,fffjM=<'(B12gg篾jS\`7 ϝ;^zKj딶vQmں5SSSRRR233򒒒;O?qTפaUt3ff!P cڎvjϏyzz۷(""B5n4M #x\޷o_d۩qGxX;D`\ ~mbbbZZ?)ڵgR%"664 R`E{x~t͠377ԞjbIF'Mfu16H֨젪!&?VUUGڛH$ڸq#+kR_&j)d`LLLr+WFcƌINNͭa32߿~1]{,۷oԾ%nsM˗/=zd޽5KEۜݻUgff6}K۳ګޯW]]ݥ<4uHT;cB7sL##^eccXWWP(dB._-wQ^^&w:;Do՚5kŋY Μ92j(hX熆^K1vVVJs~Dk.v… 4#G$"OOO==}Q+Ɣ@ O(!!axYYݻvmhמ/^̦*hܹs[mю;v~~ET7/բ=K~ P(\z+njj*ɪCCC{ɓ322h/^iӦݻwٳG(r[2i%KYyT? O"\Kj.}r>}y\oƢE4NNN۷o_hQjjĉ >|nĭR<{,h |> Q-PJiy;wĉ+VXzT*5772eʁ+\3 =<zWMMMEiuQ]b%4ziӦsݹsڶnܸqgϞڳgO~~\.`! 8@B{D؂Cp  D"_|7|ÞFA@-:tH2 vvvC~ݼy333;r|XƏЙ!8l3&M"X68q" :9mfȐ!V*DT*:ԯ_?2,666$$gС666...;uZʵk׊D"//qÆ l:Ɂ666f<3-^X$-^X.o޼!44H<3" Mrrܹslllt҄{yy ݲeˣG"hC'NܴiSZZܹh"d^d {lddd``p޽kr){m۶]~ŋΪ'Q*111D$7nHD<Ĥĉ'NX`ʕ+53T*g̘q>_[[[]]w^X/3ܷo_"H$g?|,<ڵkɩj.\XUUED555YYYYYY{ѣ!sؖTG1>vZ>cՁvvvnnnD9g/--֭[:::N6M,_z˳g&[kf&>>>//o7o޼zjhh(egg-<3۶mYpaӅVTT~z" rX,޾}Z⌌WUU\~^l!v%{{=zѣ/A4M:5""ϯW^HnON N6bccUnÑ#GD"w}GD_~9[nԨQDyfTVVnܸKGG{K.urr"$"r\ Bp„ rT򀀀7Pgdd@ 8~xnn.!I&}EEE-E< |7BÇ;:|0{ATFDӧOW{3gX,H$jojccBGΫJD7o:-bhhHD .\ "ٳg9mlҤI_|Qܹ3111??_*(#JUSNlmm ڵk B-ivڕt=KKKS[oNHD={T;wDwNs>OD,:' 7o޼p¼?]\\&L类ú=Jd2!%K$&&1g ʜ꫁rO~m"PgAlY}kkk^έ梹K!wK"EBa@@~OD'OTiƻJ$tT@v46)^P{TNj``6ٱm6֯_ ЩHT߽{ E\\̙3x!ar?~P(LxHMM]|9[{<,,Q <7޽{cbbWfc;V55kŋY ,Μ92j(  MG W^bEbbMMMe2YuuuhhhXXXc/߿7wi0ŋ7mڴ{={Bnω y^d H%o%Xt{T*Ϟ=ˆ B>-m899m߾}ѢE'N744|!Fc1@>3fD۶m27$$$99?￷9rdci>W^y%***==100ۻ򜙙zFuђ@ 8sիW޽[YYiii2sW|7nٳg###O:UPPPQQafffoo9qd?=x𠱱|m۶,\|ݻw߼yիD}!4rrsؖ#"ww/u󓒒6o)ϟ=zO?D"oQWWȐ << &L0ary@@ @sܗ^zey:u[onݺO4i;.#""hܹ3f`]]]n:yVEETVV㏣F"ݻ/]ԩS.]JJJR"=M*Ydș9s&bD׬YEY 챡!)Ҧ"R0`=={M.<ٙTǂfdd{ァՕe5_tr^}U"y&9t99lKQ=RTT4f#999J^ȥ 8lK&&&G Z2gϞjOqGׯ_ 7o^pa^^LD...&LxwuttIR4v6L2<_tiXlmmB5׮]S-@T3fS+v-48 Pt-6iީqqq)))yyyIIIIIIǎ駟*kk&ȳB?~YYW_}5p@.X#3s;){!wKP&&&ɓ';ƥa %ffGJOO}6EDDFT߷̌4#6Osణ 8Aeff= 4N$mܸP,s]\\i/SDT]]9PڻI;P(tss#_~E&!C4Ms꒡vvvNNND~_UPP&&&DTZZq)Æ c{Q=~VELBp#RSS/_֞)// KJJ"`ϼw^nLfiiիنcǎUMf@pŀtd3g΄5HT߽{ E\\̙3~Dk.]paIك{ś6mڽ{={B!CPPgV*gϞe2B!G `o߾hѢԉ'>|I` W^bEbbMMMe2YuuuhhhXXZy;wĉ+VXzT*5772eʁ/YMh,]Cx 8|:>W^y%***==100ۻ5gΜzݻw+++---]\\fΜ9bƍ;{lddS ***==='Nwf̘!m&e2oHHHrrrUW7*****j޽7n՝8qʕ+wڥ833377WHMM%%%Z3zт>BשּׁLҦL2z_U)Hno[N-.V!8Bp!C @!8M}H$zl"ݽ 9"hCǎ۳gOfffii^~Ǝꫯ|۷o{zzzxx @p6r~zիW^ݹs͛zdBeWpttAD]+8ryaO|̙3{=kk뺺SNٳy.Ǐ?-CpR]7o<Ç\^^R ҴWr">~…,444ʊݻwo=$Mݻ77[ʕ+RO>,K7311)))9qĉ',XrJ|MMMM]]%Kxxx$''w֭hݺuί Ky%KFFF݋ \vmBD?ç~lnn].=m`|>֯_{ֆv}ͫWQvvC>|{Acc6BD;::FEEEDDٶm[LLLLL… >[FF󫪪SRR_~}egg/[M4__ߘzC !"iӦW^|yDux[YY]|Y,()SѱcǸ|>/"""###///'''77wڵ|>ǎUJQQ(00ʕ+b8333;;{j:3mgϞf"cǎX"66 ߢrƍ^^^:::ݻw_t%%%iwB\ADsΝ1c~tuuݺu߾nnnF??&5Sxx\.ظqc~H xzzFFF Ǐ>m#"ww/ܜLMM׭[7j("ڼyZz___###P8f"rrrxƍ#<.ԩS#"".nݺN>Z(ͯ"Ȑ <<Ԕ &L`o ]ö'ڵ?xW7o\YYذxΫJD7o%%%D{wuuۗYFW/cy<>m .fXNΞ=&yn+R4--OT9s&bDzw}coLD;@MܢJ!"CCC"R(*0m_AAAGMNN>{n޼_޽{ݚZDgBԞ6lصkךx]+/ND<o޹synC999JԞrttҨBMW=V=IQQΝ;Ri]]T*- ]ܢJ!"Py }Ddll2a„w}X>!!!YYYl`:!6 Y[[7 ]v .,XKo͚5ŋ,tdgΜ 5jgyСDt18j˗/g블m'{k777###R"=B7sL##s+Í}---]z5J=vX|Et Q xիWk>kccm6#SNݿC:P(?/ò=o޼sΝ8qbŊWחJSL9p@kμd6w'I$~KtRi-JMM8qÇ9˙_9۷o///ӧo,ZKxM6޽{Ϟ=Bs"((O W^bEbbMMMe2Yuuuhh(cܢJQ*gϞe_B!G Na055?=zٜ"Rٽ{}eRIDAT^ziܸqӦM|7}ٿ-,,^KUxܺՍڻw7tuu'Nr]v̙GjjjTd{sƍwSNTTT{zzN8QӬݻwllMΝ;wΝjh{>W^JOO///755utt nͻϘ1C$m۶M,d2+++__ߐs+O 9sիwޭtqq9s#U=Z|aL툕u_lgUZZڔ)SF믿=%mKJœC @!8Bp!C O]ttH$rwwGQg}&NX)/D/F5@g tu//&̞={ݺu[UEGG߾} ZѣAAA1755}~aÆ|:gp\ vvv2::? "R+WDFF_~>9שoW󸞞3SǏ?~<"*c$$$ؔgee۷/666&&d׮]w\ MLLPIm[XXXXX3-,,,!!a߾}yd!!!>>>Cqqq7oީSR.[L$M>D?Pxrrr``ìY4 DlrWZZڬYFjժ*.HEckڵKƔnذA+V|Uaaaxx׋/8`__-[\$=zkILLDV*-U7nXjѣ?rȕ+W4ؑfϞ@D Vw3[]KAP>|xɒ%챑{׮]˥Aofff˗߿߻woK[]KCAP{|_DDDFFF^^^NNNnnڵk|;bccr<>>^$LLLƌLHH`7ӦMW^|ٳh֭'H$?1***------""U5Ͷmbbbbbb.\2dǨd222ϟ_UUrׯ۷.;;{ٲeZsQQ(00ʕ+b8333;;{j֢J޽͛W^ %C&۾}{BBrssVVVݻwkZf)~.sȍ TLDj٨єT*e3TǔJҴ4">}[̜9bD"i,Wk֬U'oעϿpiv| 0ޞΞ= HPm0666,DtMHFF{O5+:/lddTQQǎ|C abZFrr{hʕ۳gO./L멵eddĵy-v9T>]Zsa~B"ҼQ.**ڹsgbbb~~T*U,wgggkk낂8neBuN [CNXXXhfNs*`HOO'"|rgܹaÆϙ3ή EhuP"0`fT/%%%##㥗^"ǏWfAoK]x,--ɛ9J DEEu@*[E_VלhM{~ZA.SݺukpK.M>lmmق׮]c4iҖ-[:lLoګNH qGCc:Q*l]d2N. 7o޼p¼?]\\&L账RHs.b*T3(l'))).] H$999yfAAy l\S-mӢƯ]kNi=? @ֵW+U(/++svvꫯ=u hyܹs<իWyy9椶NikhVn ooԸ̼cǎO\E5iX>}zƌp),,d,--;aO3Eu9o& 4 4޾6..ry߾}]\\TqkhQc$I]smB(|iiiDtcǎŘ4b#Çx999gΜׯӧʜZª.-++=6lZ]gPյC6^P{*X'!M4iZ0Ť [JGQfmUU[MD7BPAJi_~5wTcbbboo/˯\6B3fLrrrnnnEEf-yBڪC z[ۯup{YRjGlP0---''+cJB/jT?3 2hO cArf;a|L& k셓'O`[{ś6mڽ{={B!%CPP^d G$o%XtL@@}||&}-899m߾}ѢE'N744|!׻MS*gϞeBsc!!!j])1o޼sΝ8qbŊWחJSL9pZb7(]]]YӧI#8liL0O>9yɓ' T*U*Ɲ#ki~Ѣ~ vpHD3fD۶m27$$$99WM8O?e9}+^^^njj(j-33377WHMMꒌlw5{ݴiӹsܹSPP@ D7nܸgFFF:usĉZ 3g\zݻ...3g1bDTJګnTTTTT޽{oܸ;qĕ+WڵK3MϞ=ƌ3fӧ TJ``Wdddrr;wd2#fϞݙ?2|>V n&т ci:@6eʔѣGjODv{ےv:oqCh! 8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!<-Z$-[T>3H?υpSK"H$_Si]-;/^,/^@۩r;і-[NѣAAADO?k?Bo߾цU*W^ |[_ԝ$дzzz=z?y|LϘDH(Th- -j-uv)BXz-TBKPET HDQK&s;bq='|Μs|>ceeFk7772C}:88888FOlpp ߉'#!ŝ;wvرw]FΟ?_իW^ 9s4S]9sTR%111 @ 6矖sΥ={O> rJtt zqB?\tq˖-/^ۻwرcUq%!D~af(իWxxxHHȋ+Wn۶1c~_ʤ>|r\\ܕ+W>sBqbLW^y%##cҥڅ+VHMM[oDFFzyyniG)6lPnnn?Ve7Ç;99988ty̙oݻwO8G-[o۶ѣ/FҥKƍ&O\###Gloo߼ys77)SiڵkVWL!=V7o^PP]8gΜ.]kM4qwwe/3:ɓ'nݺq]tꫯrrrTu!mڴI7jjGDcbÆ B~9uօՂֆ͝ؽ{ƍjƍ%ʪ\EZZjYMk2gc=uae˖cǎúJ6:RvvbȐ!%r}]tՙ3VF:VPK~_]oyf̈́ٺKǏرo߾d⟽{ !z)S2N:{B2N~{=`s(3gΨQlx5ٳb֬Y666zK. EDRʝ;w߿~//HAAСC#""Je^^^vvvpppLLLhhށo> E͚5 ˗###O:%c\\\BNm۶U(rIhhѱjժ999/^xݻkժeU޾}[n9W\YdIXXضmt2ڐ֭us… +ڀƍG ! `GjAk;voiigϞǏw֭Pyo׭[YMh2gc0Fl{FFF 12QLgw_Oex kb͚5ӎR3(S[ [.899i:uͬY +YYYJT&(JMMeԩ[:uںuyΝ ! |Qzz뭷d?19D&̃ G!Xz<-ӧn:(((****** Ŵ)J脄+ 6޽GBCClrɓ' !.]w-99Yxu…_tiݺum׮;{9BF`Ǐ0ĉW\r.]Tϼ8|億ʕ+9s/, }Zh!0`&ͧP(ڴic`-hrm>~׮]666v*I[&゙ʨ?~29sv֭[Kx2p_'XvǏ/i:mfbժU;tвe>|(HKK[vO?TjٳgW_}uڵ'r*>>m۶ګ@|!" ծ][Ղ&F͝f!СC}||=.''իWB?ߠQʨ1b׮]#G| oKyF9tP^ݥO Cu&+ݝyo>}Yy7~/^ܫW{Nf͚ƍx0--Ν;uRRRpp{Iqk{`֮]o߾~>}rssSרQ#{{{gg#F\~}4yg3)or- 2mӣz9 &IJJ*̛7z* Riª <䡥+zdׯ.yBnnnJJJ1x7322ŋhB;?11޽{rիWϜ9#(|I&ͳԩ7S-synHE)՛SꫯrZQLs?^~PGJSHֆnfe4eT2pah9 $...E6 bʮK!*ŭδUJzM$#---+++77W!effL:U̝;}ի7qĽ{?'N1cǏǏoƯR[J!DllW333_IAAA Y߉'6m*8x`JJ?,;.͛7;n=BQd+ܺuK_3-Z@:uԩ߳gܐJ,ΧՂ%;66VQrejٲ˗KX4\ճ oVVVgoժUml_n-X וDMYYZZg$,,lԨQ999CnРAbbƍ7nxUVU[:uݐgFƍױck֬YlY RFԭ[7--I͚5KLL,((sot>,,lǎHb(Y'*EG}׵tNB/KJZTZΝ;7dY7nX˗%I=ȋz* ӧOBشm۶w~...'N8wgRRq7n4lPo]PP +?`U'z^~mC*_(t 5m4yܩSKܨ,ImS5j(>>>lӦ͗_~)v5nܸN:'N?>!!!<<<<<},MwN9o̘1ǎ:tހCaÆŜ]=UW{#nHHݻw/;;J.TR1jnhg[1gYA׳S֍R9+|Vn3- 4HﭡCnڴ޽{QQQr&EN8u֭{ݼ<j޻wO;t]':ujhhhnn yͤ dc XH%ysYXJgϞy" @H}T*W_}uѨ(Ç8p@Ӯ];BQ^=F;v,??_ 9{$/?ê\DyܐdO|Ϩ46 '+Çf2\ZdG#هbU o܅[ZА}LJV뽥}v܆W+A>3gTծOrWP( k׮M_z߳jekE_"77711<=af9 ϫ Ouڵr+Rf͗_~YҚ3@Z^bIիWwtth4.\;uQ~}m ۶m+x}Y1.\wn$O7!ɔPv*O?=5ب46 '.</aȇv?5(S܅irxG&BϺ.ݻwOԝA'99遁BF=3,36 N߳:u>CSSS8:___`9evZZڔ)SԸ#Gjl[[[cgnn Vaڛ')))gϖ=7w,{رCT[BWWʕ+#͛giioyzz={V eeeEDDL8.}U7eyy2//oΝ˗/B1BS!lRq9c}駍7h4o/Fs @ZШ0RBlذaƍʕ+&L(5߿?8$%%>Jaʔ);v,|7úKnݺuV>W\^tiժUVދvtt\fe믿שSgt|[[ۀy޽7|3((ٳvvv[{lٲ ܹݻuٳ)S UV׮]U~}ww's:k KKˈ۷ogff֫Wm۶Æ ܹ^K/nݺ;vںwyぁGqFFFF5]]]S>WM5k۷o…GIKKkҤI~>ʕ+Tnݻw\_u֍7DQOH3Jݺu߿cǎݻw>|ZjoF>}<==nՂFՆJ냂mvUF_^H &ヒ}FWKu;o.z.Q,,,]faaѧO3f>3Q }C +܋;''Gw*UF:sK/߿~ػwK222WެYw}wС+&h޼O8qʕTV}ذa%߯SNΝ'L֭[w&''+ʗ_~CC )E"*Rjq41Q;Bʴ?8f̘9sPEEE۷k׮?[g6.=h 0NDDD!:t@m<+$ԩS?0 %%eܸqIII5?A<+a!HHH͛5joggvRJ ǩr|{{{77>PHQF5z079H H QB|]qF><"3Î;˗/e7mڴ~SC!4iZ4iFҥKƍ&OocƌQׯ;vCvܙf͚C i- [Z3f"**jNNN;w9sǏu̙ӥK^{I&_G!9Rm޼۔)SJlx1rssׯ_ߣG-[;?d |1;sڵk{III666---u#.]b !B^:tСq͘1CVn] .7hW^4nܸ$_bh :4""BTeggĄ}ѲerrrO>cǎժUKNN^`A6m|MܦMjIIIGN׎;&O'yڵk׮VRE. ?~LVsŋ/޽;88VZkoΝ+75k*˗/GFF:uJOlx140---srrٵkWsجY3R)Xpb۷O}˗/'$$,_2<<\OXXL ᅬ1BzPmhB1`:- ^ Є-[\~=66vBK.ٳ̷ 4lذ111QQQaaa.]۷&k?~S-[ӧn:(((****** E8qʕ+W\پ}åKOwm .Bxyy]p!&&.]Zn:M6֭ S*-JHHߵkͮ]g&MǏ.Z"777%%`!u#]\\d$( R9u1c۷/22wܹ~ŋlٲe˖ZjA.] NNNz[/&)uW2322T*fN Q/ͳluzzY!B {-QFJJʀ]]]t`'kI&˗_*CFC 2d۷o_f͛7?裟YVvSfԇj_Kz%܁) ݻkXbMC"dY$i*U}\,![EIも9AnU*O.i۶m޽?Cm 63-Mu駯ĉ/^-Gbf&-hT1,vaÆdezN:'N?>!!!<<<<<}^fTQ@`cC~& ˡPڹ7/ ?PDck&/ۆS wk֬P " '%%uTRyzz~WG0`EjHQŨQÇ"fyJJL !bbbܼy355UѴiSYfϟ /^"T;7\ c988,UHluFi۶r"+VF/\<*o!.<Y1ѣGKom߾=??_u杘x1%BիkRڷo/ؼy]yEEF#{f޾}T0VZZZRRғ K/\ȇaܸqC"œ#Л`ѪU+yq۶m1O.$fm!Ǐ1=000..ѣGqqq͛7/I&!R!!!m#G3OJrjSN}grҗT???@__"ԲeK!āČ%gZ1L+rFz70h4GC:̛7~<{|1qķ~[7 0`;>III={wݽ{w5lx1,,,Ǝ+ ܴi6Μ93nܸi~~ѿۜC(MHSR%Bqٳg~~ڵ{xxDEE߿ZjF%Znnn&MZr-[mۦR1cxxxY$OOu֥ѣAr8ٻ;aӾixoFwə3gd,1bĂ ̭̟|͛7k%%%_0eʔ"8a :8;;[n„ NӧUժU!Н6*JTjoO8Qd*ѣCM6mVVV5k۷O?Nyavɡɓ'w񸸸䂂[[ۦM; *k޷o… srr?fKKKO?7 :{ljj]֭ܞTu޽{ʕ[nܸ!zJQL(ux%9993pcLfVgwyぁGqFFFF5]]]cmm𰴴}vfffzڶm;lذΝ;֨`aaa|5 >}̘1cӦMlQV-IL[R~}.7?y޹BEV۷o׮]jue 5[)H$a+((V[PB9H H H H H H H H H H H H H H H Hx.|jzZݡC*Ƿ~V͛<33SzLJxMY^ORZ˗꯾*1ĉrǴs"':D㕖e˖\bRF < V{Fmkkzꤤ$* fżCWWW!ĢEh4 ,BJKHHO8AU T*g!P>/_UV-ToÆ ^*jرK,6`V̮[9sTֆ OKK˹srzbo7oޜ`L0l~AP 2bT`A);vܻwڀ0PV?^jժd\R1vW_}*;w'&&F0.._~'OuLp,$$:txWرCvoFٶma|ǯJFFҥK WXZn]__jݺÏ9R8lҤIjzҤIz7lؠV OV3F5|p'''Ν;Ϝ9&Ml4Qm|86lÇ/{ƍ; !"""P(޿_ Qzz뭷 ,h4:t(Abbbbcc#F!V^]pIIIӧOoݺuPPPTTTTTT@@ݗkGhB1`:L 佸۷_|9!!a喖k֬ S* qqqW*6lؽ{nprru…_tiݺuv !.ΝFd{js[.,,LT.Z(!!!>>~׮]666v*ƶvZٸv1痑!Ξ5kÇ &`IdJդIRYaoa@@^fXvPB1s̸Yez8jذa>9sε /CCCJeHBUV !:tdɒ5k !,Xo !Jk4ӧ۷osΞ={.y?SiJ}F} í\R^9I@@n~xxxԮ][.Vh4s̱ U*U޽w7!Xbbb I%=\7FsG9tPyepFsى蘘z̼y,,,~JLl,0D t颻?B<|̙3_ȏiF.Z"777%%007ްHHHK/^ܢE ݳhݺu빘掎~b...3ޤRY`ٳxbyQZs8p ''gΜ9L0ly8HɕYU͛geeaÆݻaΟ?/T6m>]mp,Z_Cmݻ0\ɓ'ܹ399>+'$i;kxc@-2 ^Vjժޒ ڦ^tIv7nxѫWjHu֨Q#%%eޮOJ/ Y߉'倐ϳg_m޼<B++½ZjurUZAAAXή7xcM0\>+[+9+Xf/׽{]abcc+W.<>e˖zU*Fll@0;%ýEX>|(_Kzoi5{\xk6 [m rBsueŊΝqrrرcǎŹ\M6!!a]tiڴlRSԑרQׯ߸qCpXz6 _K몳?=L7'uR(z &`44rEtuVw^y1t/$etQFv)eW%9W^]_C>rNMuɽdY(5?6m>|{L8Ȧqss;uߤIO?tĈ&I.3;vLp4Q\^~EL0?`ɔFQΝ;  OܹSd&̄i\JYw+}*darr^B^*|MK\Ackɧ`sٛ7o !^~ebT*OOOOOO!DbbҥKCBB>|^zܮ];BQ^=F;vl;eW5jB<|@jeY֌fkk;tP &`s6\&sV_jj޼y'Oy󦯯oppp]FK0=<,j$޽{꫆@rs|9l֬{;O&x׵ t]v|Acko*B8KNTn޼*Ў%ƬY^f(8~!EVXB~ի;::j4 .!ݺuȨ_&S) gxW+kF3@+W\re!ģGP>gdj+Utk>r(8ᅲ[mpm9Ks|'*}B͛7a+oѢHk9+::Zwϛt  -y ۥ[D-S+88XQzumM)?%%ER\tt#G IsrrDAF"mݺ5))M斞.gXSjr=?UVLޚOMM#|}}ulҦL"{-ō9ʪb|AZl)8pM4I>5777$$D>bH۷oomm]PP+6ں  cmӔٳg'^MmT5cR[o !\]]+W}vӧ$TcǎBnڴIzϜ9#ɨ?R ϣMgϞ}jUVV_| tM2EfܸqYYY&JT!6lذqFy(rʄ -S%9?Y>~7!Jgb9x !&Mr-[l۶MRi0f`GG~ܹsϞ={챰}W}||,YRQZ֭KMMѣG dw}w„ %)GTTTUh$WWWJ={iӎ=ڮ];;; NDLJJ߿6`ʔ)Uu'Q(׿֭[w>}lkk;iҤŋoذapܧOswE貴\j;|/01rȓ'O[*¶駟AAAgϞMMMkݺgٲe 4عsݻwԩӳg)SAu޽{ʕ[ ?Xk޷o… srr?fCUk׮ʪ_ĉ### 2"""66ۙk۶a:w\`{{^z)99[nڅݺu;v옵~Pz6ia|5 >}̘1cӦM%l}rrrr}]IwQU(СC_~%--O8UVPP!HHKKӋ)=M45k͛u;|8a__q̘1s̩h&MruuX<۷o׮]jue 9(S3fP*WYh4B:ToP(f͚E¬!GG'&&~"M:ډRRRƍԨQ;OW^ZjEì0l͘1wߕOWGBBB6oleeըQ|;;kV[7om6&)"9([*J>' O|{{{77>H>bxih'C>xc5jԨQL0@r 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9C 9!,Jq]קBT0nz&wzɧP5k$??}M_sa%.\8qb$PJ*dB! H H H HB * j EJŮ,66@ÝC! H`j*)oݺl![o,()7k֗z+8q^Ʌw4.,ڏY8P"":nO:+^{{LJߧ̴Bp|oʥ_W^'xQF1`V..%zNE e1˖ZOT)_qvO78>5A[څ7o/\x]oׯ7Ծ~kw6Mo޺5'- [)T|m*׭u6(ȦcG lmU=]_5\WϽ\s9p;B>I͛au]_RacUżo޴)n$*>@ԩƍ6nٮYc /X.қ4I-дlO>*9iBRςVZvioIIM7W\i}ݖ-6ݺWCPƏ>BUfCGx,>x挳ީSロeKNffJ X9,L`;uj1@EErW}u"?_:ʬ[73sFlԴ&M0:3M:4MnB88TZ*"9…m4viKFg傂z۱9fz:qPOWר?/uY{f֜y#9 V[߹cz\9gz /摙Wr6wmΦm[^P@ѢEW_e߿rYcw֯͢R9'N}Jfyh3f,7S(DkZ߹cgO5OU*kfi־}:"9żI 3#T7n.YRK5Kz~~)_}Os9s\f#5;3idd/ǏΝs)"9P1eg[sniܸҨQV#FT~JBU>,$+/9r5j7Zs*CUoU˴^lV~k?شKKQڅآ%!D^%Dz Ԫ߻W~OBxQ@wjYggyxXeիey"&?]::4X.\d oם?-o߽ݻ;|9ṿn{zk[O̴Vr+99v<]xVV /\{wFRg*ӿP|T@qFŋ'jZ'!Af4ˢE7N3cv2C^, >.?1bO?SO͛O,]?B/, agH؆ 7lwsW(-W/ބ8нis 9!@@EXV0u+˘b<s 9!@!@!@!@!@aQ_~ᅷnݢY~鶶L0L0L0f\PP|QNrXN:UZ Z[[# &` &` &`!8'''77*U ̓ÄT_P!1[)@r$Ar$Ar$Ar$ArBXj&M;C!@!@!@!@!@!@!@!@!@!@!@!@!@fV4 ?H$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$Ar$! xaq ;=#bIENDB`python2-pythondialog-3.3.0/doc/screenshots/inputbox.png0000644000175000001440000004401612507731135023252 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~GeIDATxy|Td!$v "(*(VRlj[֭Z˭xkV˵zU"R jZEE7TA@Yd8dab&gf<3ʇ,Xl۲ 9m2۠ a)ΊTDĊt|Xc<8=<͎x*,1Wb?tnHtެ)MV[u冢?*?-yicax0~4 S_&٫; iX*nɏT %fQjh˦88+n.g}sjbL53ˍfX^eVwjXoWon4IŸ{mWc 㐥ZߚYu2}*ƀx"\kz榩x0vZ3#G&j9M07]ueE*ʎMʆ?]ؾv͎ЊM7h"msTyqxߢѩv/mG:&1&tu)+ihtd~-OEoAſZ];ۼWVųUjh׬3"8&'vώ$/l/8g:I`o%+Jl\[͢tWTWpAz{Y^A\Tƃtʷ43ܠѸ٪2XgnlaÆUeXI1fwʊǚן?Sگ^qML܍nŦüʢh8j3j~2j߿ޮӌqCYQGY+Vm;)ʢmI|^A:S;feSpSczq$ުM|fˢeI|g>Im˒h8~[ykV5_2ezqX',SGߒ8dO;gA ݠ?g}:vY˳ACGvVD%kitZ-_r;g[G.JVq(KGD억 qAM4*#X59*mR+_9sLcrĐҨVj_u*նǩMVE{qiL^?Z/K*õ鸢%612̎ XѠh٠vKペcyÏhؠ;I$C^qUj)e&cQj4s6_QeīUq`ND|aYUM#"r#Nn)_1:Nj6XϢt1"n_y91UTE4(Ka-}:+m~6Ȏg Wnu2q_ETcP/9tLf-cJ;o([y q2>Kh6 ݤ긻<#;/t|Ԫ a ڍĦU'%篨gouߕ_rVDM:xMi TD:KzU%8oY"DekظUjHi^gκHEDS]E*.ȋKFחsu3ۤڧ>ՐѨ8sU[V#_7EďWuB!?]p(iWL Jl8U/G+ci:8 dP.Wܚ$UE<[UtTF|1eqؘq%TU,KǒtCKbj&o/JcRucE:&VOV_ѷ$;ձVO5tAih!q@CB8 !!q@C""gnmԢ }C0s @#gq8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB1@̞]j( C!8 !!q@CBDD!6;`[6gl!1cƌ5_PPо}{4r9:CxG1l04r`(((wOMMMYY `Ә6mZ{&L0p@#lV 8@8 !!q@CB9f=B 4C!%\RTTt% @ӽ{?O{)***..N[fFq-K/ˢ!C@ITVV>g}v^tҭ[O}|Ǚ{*++_}W_}uܸq_7!GmMӮ]. 555q޽?L8qԩG>"_#}tڵG^z^oѣG_|G}^{եK}s}m9tТZ1+7>?z٥Kݻ.ۘTկ~UTTԧO548ns9O.]z}oш/EEE}]!\sMQQy&LףGC=3i?;~8^|E]n;3{!Cg]vu]?aŊ6:cټyΝ;GDEE9ht[|ŋ[jp$͛7WTT|gZ3<ή.//'OOvAAAӦMΝ?sί~̖o} ÷~SN;cf֑#G^z?裏>袋.jڴiÞp܉[nO>OzA=͛7o^zxnjs$_QQ;;G~۶m0})SD!_|rfFgwNe֬Y1y(((7|3"fϞ,X/nj3mڴx`ƌ^^ pwӦM2eԩS_eggѣ3[od=3" 4dBl:wܻwd^h>o1"9眷~{o{wwݻW\\GĈ#h„ qVV3w7.)N;m[ougGğ1cltW]u>swO0a„ wyƼq':v[oM{ԨQ?ֶoQYY;dȐVZ%wwq7O;=ztyyyi;(sgZpo~6mDDVn?<"nM2[J0`?/[[qׯ#={nT1mڴ̖C |wvoT8v!??/rnn^{ݺuϟ4iҧ~Ӱ#ڴi;ږI;ps(**[w}]uctIM6M.x$K֭[2?SoH'ѬY(KG}8H ԾeeeɊ>'P@cJ^xawO{_~N:=wn%WXhQrh_oOa~zk"y-Z0`@D)S6mz'ۦ0(_/"sϺ$AoX"s7~s3i oq̙3W tm۶m]þCJⰲ2<ѳgSAAA:袋ҫz:묂u<0;v)S6| 4r-k+uQ9շI+\q3K,ks/袺'Xte])S~$5^_}nn믿>x'&u]ZZs]|Ň~xL&JJJzٳgÇFł4@#ɿTz^{W^3~Z*---//ܹ^z5׬큃;,YrGw)9c 't^Hn,,,άzg$1:蠝w99O^6}Knx`ᅅ=wycnvI'=Ï<#pĈEEEp1m8>=L4iƌno߾yyy[޽{QQџuls=-W#F[^z%:ڰZ)u?c{{{}]t?O8O>Y6OwyT*1UXXX\\ܡC/rĈItA~ kcϜ93++k]w=#O9唭vu#_c9c|`$^aag_]wݕ^{n-[n.Iu_1b_slc܈5j?-//?~{2TVV~}ڵk=.?|/ϟs9O.]z}駟~WTTk3u} L_TTԫW=I:8:ֶ СC3$ǔw+rG͞={Ȑ!}e]vu~Xb-46f^RѲe>l=N<{.;;O'?꫓mz# X+nЙI-_|ŭZZpa͛?~+**w]/ kwkۓ>so]RRҩS䁉Տk3f\PVV;3z|m۶x9zSLiӦ1cL61cƻ{饗F{#lܸqIvi'O~wz뭳>;"?3&l[I&e\;sVVVD̚5+"&OoFٳzqo0"wȑ#G ֱ'Yk=AΫoq痕 4_>}z{g?.4*}{oD„ O8Ν;Q˗/[铕ղe.gϞ1~87M6m"UV7p~{Y޽#b555k{Ť-_&M:uG&qx'G8vڵhѢop2dHeeo֝v)"rss>oO<ԩS}{u]wm3K/ ]tQf.]$q!DČ32L0!"8zǂuY1y=أ`ٲeӦMK6馛s_gϞg>v[oET*ږ*]7|ᇯZD>뮻n /@C렺n; p衇ݻC]t~ivi~a^Sm]D,[,sϔ)S#6{QoLM2}Io7x'-Zk#Nwk׮O?t2C8ywq]vڵkk[t}3qĈHRW\q?3gNFB_-ҥ'xw;o[#tP#f/Nnk׮ƙ{-Zݻ/8iҤϟ?ʔ);ӌ3fΜٹs熝p.ZO>9#W^=М9s7dB5N'뚮Qii/-4+f̘/ݻ7` UwM伾k&"}h L&'&H7LfW'l :w<{n_ThlMMMu 9Lo֬Yɓ$$q8y~CXϟ_UU{[q|UWW'qEDס[n:4ɼ_]Vɍ-Zno8∈8#S.[cǎ;Cvcv_x/^{%?iҤO?4'''YtIw}#,Yh!+((8O>9ɘ]5p￿ީzw_D۷ܙ5}}}}cJ#"J%/999{/\YY٩Sz׵Zl~6(..Nf8o79sIEhT!kڴ=O?֭[AAAfͺuvu%gM4wiؓ'WbxWd%K\s5Y]tQݍFG}aEܤIz(zLi"ʤ={LkS^;vʔ)k}#<2sG އL՝9$qo;涢'.\~ѣGvm/9sfΜkd_xᅿoO?̙3-[ֺuv> |{H-X "ڶ׷=E:v&L8pG1lذz?***ڐ}VL `A:s@CBKY[; lfCB8 !!q@CB9zu ljΘ1=`SVW^9C9{l#!.((08iӌcR!8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB8 !!q@CB9ش:vhmӜ9s 2sC`S6[n1,Bl%%%zCM㩧wo}` 6+]ta@ q@CB8 !cmGQQAf.51s8@9СCKKٿΝ;6CQGiY^O[ݼzWm6-ܟU3fərs>p~~y]|vK.bx# 3_o̿ʦ?vuY{m?/}OO%oO2kpC2sOYf>pIڷJo_^^ .A1!W{kR 䒼)Su<|Ǯ1߼_ҵYq%]M:مή>GW U~%7f͚5f5aG~Yyt:~cY_UWSk{xnǩT:"SOkMfoag.ׯ͈y}dj*,ٳkۍ*,0sѬYjРs;'7wf}}s;v\swQFرyyqM#bR󟕫?EQN/,\Kp°%KZl?kX48?IJ{|衇{V{o4դI_:'tvQQ?G|ŋKKKsrr7o;t޽UVu7,S\\|+|Ieee۶m;qgΜϛ74++e˖EEEݺuɖSL?~YYYnnnVviݻ6lp)S 6lȑK.^5YcóKߞ8qb{***.\p©SׯSN?G]ti?'pvmWw~>SSS` {sN'|g>=͛7o޻{1ǴnݺC4iҤq]wu<{oPJmW˖{G?K0"f̨/ݽzI7W{UmS5r '{[[l2ҬYsbo6mR_ᇸbŊÇwqGuw߽tnݺ+Y#~sfeeifv*..رcVVVDTUU?>^Ô̙3.]*kjj&MTo-T*yH}饗2eۮ]f͚%\lرc+++0VW^y^{lٲCs1:thII0sl9$sN>9`U,X~衊a*^xaOʿ[(]V* ;7Ωq uտ~ö9&7i>ݻgv[M7Ϲv%ӃuKo޼yGe˖͛7CUSSӫW^z-[lԨQeee駟fܹӧOOnr!;svvviiG}og\hѻロ...>ÓHO>nܸ())yw{象#vgqSLy~z+/yǟ~z_m8-\][4裕ÆUӰh|eXQ?2d+Y& 9ǷJ+T]z銣=&'۬Y*//N=ɩ6*馲ͺIoVDdgguQׯ'kR3o\;~}˫ti zjѢE.]LUUU|3va]vMniӦ%73eԩSgϞ3fh@&u6dȐk橧1bSO=5|ÇwOwӲeK6C`rumۦ"&ƍ6,)i˫QMMVVVMDz'Ql1c*njl,5p`77ssr87wgܹo|Ow~W)̹s?~k M6YK]nΛ7/ѬYLf'7y智eNkK|[ַ`~xĈ/~o1Slk!z+Gjp/Zz,[[">q㍿|_E&/O]m[hkw\u^>s_̋/׿Upq^^^vV֚OO5/[bEr9uUVVԬ6H۶m;O?tѢEm myw_Z0wnI'~K3g.[t*:jYC{ᄋݺMna͍>ټy-キY 3ûtMze~x'|ȑ#3AUOvɍ3zLo?;S>~}~gYY?N;w7xE8[o%YfmK~˺w>ܼ3hҶm*//N:)r,IY1lXųVlJw=67"R#g„Mխ[v~~*|"ⷿnfQD\wݯ[uTrH74IEJ,I?@]wO/2`|<#^|_|ꫯ0`A6i꛳={~衇xÆ [l!?_2d2@ۨ+:d]xc٧l)*ʺҦǍ̼_uTε6첕/gcuY?۷ls6irKYnK;*2frrr=^K:t0k֬[olSpYtykY}}yҵ t:Eyyɓ7~WG:~> 9lʔ)F4it'HVIXbʔ)?}sFԩS׸no馏>hO~Ϗ1NX}WM+u~Xsե^[:`@w1[ʸ{iYYq5M E_ʿˆh|u߼w&|5b]c}t/KǍ7lذg}6vj~U%]W O9wTac-ƏO5m;YG=kvv|I+ر;?ST*;;;{Yv}ߘ:ujD,XG)((LMDӦM۵kGj*YgϞ:u#8O?!UU1ztѕEEYgd VGWaxS~?qv_v׿.{衊?*;;裏>fee%7\ ~mm>O>$"***yΝ;Ϝ9sw#6m8 PQs %c#ݔ>@pŘ謌U>x> )(ڴՕm)_U?/esZmw[=~ 4@ i!"rwDDC}0`ESlY|`P9le:=yO ̐hXR%{JrIf1?<ͧ'W?fןLaE(v.0-IbI@?oF,֊f4U[qWS77TA3Y9挰V̐bM)ӜXԊ,)˜~4c쨆AD".m7Ȓ)(5IAc˼׌YP[)!}eDB3iRm4/XJc2z*2KaJ&kJ!Y<'3[KDtONkf)Sr>>_GT %Q'qE?>% rJ{tD0ƆCОZ r6 !u6(ř țOzg={0P/d~5 .R'SY 'UbJJeP>tC^IWmE{R#"x:3ȀPҤhaȂC bo9DLpq˓jRyOo<)/Odџ2SFV.|VQO1ϤYj؜>4U&0uD)JlJ*]VZh\ERШDYu_J1t\49DkUml5}=.@Pz u5&O# ];s頙jrړًGwGAS9CCed^JmJ^, Mxr}PJ?H;c)=f$e4WGOS}rʈC˫ɬ˨Iю\ .U)9ѥ'tj-&RRF#j$&9%#22+ɰ;-{z.ToTU)4|+蝊vR]G]ȸf>jƣUuQȓ'bjɶz]}\8{KJX4QI*ZADmjxU4GpxCNLA?z<x Ț1O9-H IYqIQ$S|p { o$$#@S?{DwT/E%Hiz(ԐV:rhUPa%rXVVUd@LM}tIITV+辜 *y8ONSpO;Թm*cڧ2tNFD̲"[j #""ч1MYG@{JQ}RQjReT 'ȫ@+K))]lf|ѵgrtV襔Rh) iz-ZU]'͵VA۞E eIDLD">jBxU4Gpxف0+%Re4ODmy:PA f(FR&Uz̖2wWN*O\]r_wM=<:bFF:ZF[No7kT$Cc3Hq"mUgN ,@>u>Sz4ĞJ\䡲4id&AdQJ,[g59mst)9Nfv7{Tx?<S]_[#W5$`OoLTGyٛ*JQjoB?Or'Uj@SG-6^<ͦ3<3*kT).IR]l`hL9F'c 83 ?7HDgu'N{"S3MnPGt[)8yP:j<-VzM^EK{RfGYyqrm%L=kMH![.m5}1_[L]ԕ$hѵO5~#~zWvuOR:MԖC|EFԳKy=ʬ9O]u0f!qZN?ƏgЈ&GZUݮڧ0s԰u DstR7 ک6^4MF.Vm9sF ~XȘ:l\VUӗFDDo(ۜJdyvnqZZfx>_>mI2"jE=kɸhJo= >u?) }śюZUPs*bڍ@B;"+ZuW2Mz: ȀBAVדؒ,̔VT>n!"^C?YǜCaDv\:5|KӪ*ѣB汩?rň MM662P:{?^)AÃ\í[ۼב!_Z,-Ru@@{hQJd9CUU:wML4}@.DNN5*/IN6;tȜy;(-$?@"+j==Y"eeplldWZ[~HbH$K >WT=(,-eoYU<ʖڴKI1ɨOG_qŋDݫnj)/.ǒH8wܹcpippQ2݊z֡6WmhCDTXȳAcgRGO:NTT[/|-[B;;ki{_:-6W5ctUM/FUwӦW>RUݻW 6R)':e#vB 9cd}ݾr qZ @aHM5 BA{Z4ZCT/fcc9{+e|r={g}Ⴑ&%olo!޽UX/r,!ڵmUo<1R 3U ڻR!(Ə/aT!;&C~Xjl}ʁ썦Vjax^I o655EY&\9e|&&rZ?ƺ&lldL2堮MrZ|厣:NR__nuDkADoѼZC jn\J!p̚^?H$x.r|Y*G;,Bۯ\.s?6~~;^=9xLx mmDD܋ ڵg+{Ar[R];ĉ66"VLљ3w7o0mld&[[N6U/ԈFAD;JkoS1駶L91fW"GtiwҤ6mdw8do瑱C˫117nQu5A* "V0=3&ݻW9.*d㑢qJ:0R(w挩OO=kD64Ʒ)\d"b:txsڐ#֭kl^/_ _ &+0ۻJOw{!tbc&8mؠ7t-33!\.m+ѣ:-̈́$nm-G7m/˥>7ʪ/zH" JJxUU\SS9{Ti?Wm̘2 _*wG:y?:|>E"4?{FlmIWf@!3zfPã+U&M?޽Xdo_kaQL6cӰ͌7MFADnʠDv" 0GՃ=VUH$/j%k׶cn#W~xgSXCCmD2ǥ{i%P0Rlm-T^S&18r\Zm(e+H6:2J /o\ӥKc ;XXԱ!wM~umzݾ}&&&666z.sn4d^ 3|]%oTSVQUu*V--nfӰ*5Zb͛4>{D*׾*;YZ1!3=O`k'ǷW4ꦢqBM %zrrR§I1S:4fm |qp\Nw \]%ͮPXgb.g*n3[r*-6۪JcwGmWcȼJ&\jt/%:_5򕫳t %,+k1o*f3gk ߻ż,Ǝ-չffڶ}XWiR ԳMT?9kC:.]""LTfd$9r6D4xR SSyq1+W/_6R(H#GQTPKPul> @T=[Y<`%llteGJ$\yoA;>NӾ㷨޾tȥKM?mrY,(|UgV]Y.Um01`0LAC[U(TiX }ճMTyTy9jCClk¢Vڶs4M9T^yRۯr6𕣲˗u }; /R vHh֤ -jj8={nS֥.A]]%_`Y};CWAP{C$+WW1 {*ӭ[o=6żÇ8 ,ԫN ZNLxC}L\ط`U+*ii&ֵS^Pb觞5ôtZNkCsQfΝkYjTiO[ʪ\l/TKr?nUbۆkÏnqpɒ\+Ѷb1 {-lmu| (Wjf:Gݻ8Lsu(Z}5i~zT \phR:BA_̽zIr7?{pm-߽{r햬:ebVVcGH6AuuuFz4gt^XCD;2[QfqfnG*ss{z7)ryLӪgСlG;w n4yӀ]Q ̔B&8dei#cW2ccyjj8kjTK5pMJKyn=NYWG-M?t6cǖf q S,K&dd_hF&&r2%ʗLh5fu(Z}5i0s 3 0gƉuX;LH.K\\$gϚܽk pvvҾ}zTl^k kj8uUDRf)v/\.*Qzɝ;r^]PneUױkުѡg[oLVxY~}d.m|VJDLLO*mh~Lnr#N]&r6z61a~Y:lXXolvRs떡X̯J$\fc'Bկ ŤIF&w $R~h֤k 8EEEDX-aCx=݆RPUԦl0-> CpRn!8Bp:pH*fΜ)ΝP+}E"'|:x͵xpm6f֮]joDh1,bccW\yiT@+J^BѱC/KcccȰ|A&L;vӧ8q5::Zn 6l0ŃC@ x<"rA^T*[5""ޔ>>>]tqrr=zN{vZ^^ުUArrO?Kb_uִ(OOO6ARR|YYYW^tҤIh;k֭g…999999 /sU=X/_qF>>GƏODL9d>Y"--&L$dL8b1s$33y<ݻ7Sk33S&<}J̰U>HD-VUǰ]r%EFF&%%-\VX<-{&&&yyy̑={dQAAÇ|gddG}|SmhՐZgtz>j׮)w ?8Η_~ý{E初EYYYvvv9::62*''quuUyrrrlllիDd``[o$ի׵k)yж]\\JJJ&O閘ѳgO666666b877׶XCO嗠 "nj"vԩ 9r_h=qڣGy!"CCC'''WiZ5P}!Ky`ӿP(%HVffz_xm۪<a;ܘVVV\.U1gPnݺмLMM=<PsLmXZZGꕩUCjmAY 5שSFnL[f 4)V{لSNeff%'''''>|_~Q QJ8+55DTTTtz k0sk,X0mڴ?3((H &Z> 425H 3׋]jE+7xdiT}E zgPv'Nѱc>smpBv3w|>}p8:w?YYYk!6HhjH3:{C"fywew-++#"[ڵ+)c<֭{DTSS>ҥK/E"իג/_bf|c׮]u:F]]]hhhqq***6l377wvvJ/_NNNfv |wRSSsss+++mmmx rnmװV IYEH z#Ŋ+꽃gAA|$&&u ( KDJ8c"ٳ'+x)333P4U[[KD*kj!UԔGD۪cY֫Wp8+Wl߾ŋ[5!̊[n&)uqqa;w]UC3haaAD^h ^,Y".\xy& H$)))f4hPMM>LdV{SL144-Cfg~J!eee ,`椅)y<Ӊh۶m۷ogȯ_>sFkza67g())Yhэ7wUYĬ9s0$oV"I&PuDt5kʕ+zڵgӦM*haFx={H1DCBBh˖-;wd3f'ֶ!ի>|YI^~Aww7Μ9ٳ#G444466.//gK5}7L*2*qV|}}׬Y{hPXQQݴiO2GY`˅Bݾ}_)UU=+'O2P(xڡfR٦OČ?+++ T&1[ ???CBB6n~QƖ JROOOsss"266߿?#Ξ=ݻc&ƍc̙3@eԩgΜ9zy-ZdhhXQQamm=z{Cg000pƍeeeC c>|̙^x!^C":tɓ'CCC{a``PYYieeտ9s]I-]v=zBpvv?ݻ _|LݹsgddJJyŋwU*JQFȑ ж!l߾}||QlllݻUPP/eìUX]]sˈݫ54y}ҤIzOCaaaM!iiiG}T* ܹT*=wܼy󲳳Νm۶v 0n߾}sMOO-ZTKb_6cƌ={2IIILd֥ׯ_ԭ4l:WsOqzVZUUzj.kaa1gwww"JNNVN6f̘(&$#"33 &Ѿ}gddHR@DD$ G?6ZEFFJիWwܙ-[#Grss+W0`xcFDDю;*++Mܹ}o>3޽lGZ;kkk"\l٠Ahݺui:WsOqz [moMDoV>p}y޽He\%3P&4oi*n޼ND*O9999;;ɓ'666GH"4%K|%xDTQQFD&LP'N$,XҍU <^bk/,,ܾ}'n޼YQQ!٧***SXYYL<ѱN[Xϟ'"_?{=_S؈_%̢Q(D򔛛ƦESx.#ܘn 澜u &FQQѵkd2rbPnݺмLMM=< 7{ё٤aŊ^&FSb8))IHLL z{{됡P(۷/*a;gϞFU=!.8۷B ce2YBBĉMLLű=KJJ-Zl5644H$˗/o(M^999͛X2/YD \p!00L%HRRRf͚5hР&9s.ܺ~mժUD4i${ٳgKf홲 054W[F(.Zh޼y'NӧD"ԩSDDĂ T+'O2qP(xʓfb!hb"<|̙3ՋUbMqƙ3g={vȑ^ Mk 055dLsk֬ٽ{wttP(d7/6mҪ4UАVQPPH$ڰaCVVD"5kVjjzb@rWUUucĉ [1t֦M[޸qÇDT^^ 33377WHmmjҾ}5k֜9s޽{T&~:$֤D4tГ'OnٲVVV#Glb﫵CVXqr''1c||H}ۺu,--܂}}}zU:p9u*OR7+ͥ=zvRyJ$Л2QasC @!8BpUUUg 6Y7˗DO>M9sH$;w.^O/wp?ѹsfL:}7"(22 u Kodd<޸q%K+1ks!?8u… o8p999i$I||Y ҫW/{{{S?~\TPPӥK'''??~ѣG)e2͛ ثW;w蹴'OD ,~XX Ri/Y`H$6m}駮 Xpauur`777{{{WWO?RWWe˖w}e,ϣa14oӦMD7o qttߪœ]]]zK.#""|||֮][[[[oJMj̙3:uرSԟر i*:p푑2 o޼y͸k׮80{l汉у.]'&&2qmm+W\ӦM6T*|MMM}]RRRttrJ k_~fZjUXXѣG---aaar?פZZz<`L6dȐG^~=''ҥKK.VN222rrrm۶->>^?Ș>}zuuu@@S_~={8::fggyqƤ$۷t߾}XN:yzzvԩd"={\v-//oժU 992"_֭[Ң<==IIIL,gee]zҥK&M"3q k֭g…999999 /sm۰tRVVL&KKKKJJ=z4>|X%Çe2YLL Su֭300HOOiU^^^/؃_}UAAۼyxCTʬ{m۶[nqkk*'3fLTTv#fff&L )JW^l}!l"9˞]TTM2%((\~}iҤI2esSYۛ|~```hh(EEE54ܹs}}fH{?#yyy}wL0oiilٲAѺuج(4((hL E~n1m~~~&&&Bswwwvvp8C%<2\rDƎAD;v쨬dh^L>?eBB®]hϞ=733駟r49ʳm۶UQ=wDt =͛DĄUʜɓ̑b"裏Szzz2)G㉨9z-Y\GDiiiD4a3qD"̑L1Ӥ6)m}hÇ*mll|}}D"a/V]r%EFF&%%-\VX $=9pu᭷$}aaO8q͊ \>UQQ?8Η_~{YPI%tJpqqQ9bgggaaQVVݿ8:::884aNN򔛛 ^JD׺W^FСm& dԨٳJgccccc#sss}mk5tO?_~ "?p̘1CO!EckkI/N0ys+_TTt5f=(ӧO7F"0ZZZkLԏzں)ƻW*)))Q~`eeK+/C1thl*?ob1[ ZՆ?޽{mڴYl}U᷶dӧڵ+Ծ}f̘ykͨSN/jOe)b4{*}C#Z5z}"***:~?KZ'=9d)((xn߽{Io> ,5騴"R`H7efE[)h}UaaS6 [>ˠ3=zKdK`=x <<\P0̝;7??_@z)8tww'[e{uD>kk7xC)vEzQÃG׽{w"QPw-++#" |ڵ+oTFF]ڸtRSK綡˗/Db?$$lٲsN&3f̖d̾|SLaٳgKf $''QXXM>m۶}v&~̙3O: ̙3釬VZED&MR~ kN>f"Zr%4Z[[]lڴI%xQz{#F,];vҥKnz_l2Ph"":qD>}z..N**P2u{n޼y]v$ѣQ Ÿqz-ggٳgKRoooE+L޽ť{={ܾ};M6_9)Sr w1xપ*f@WvѹmhNNN3gά򊈈Э6CCCryPP{|!!! "<<\i?~|ҤI]tp8SN|ɾ}ܹL"چ>|وÇ7%СCO<ڣGJ++ϙ3?TJ[n]xqnݸ\.9rdBBw4v:thц ywffZ/`YYYUUUYZZܹ322R%%ۼyŋv*JRQm: ޽{W.~@kuVR>>xY`! 8@Zgp._]|H$OJ+/|UUYÆ ൥Jccc޽ݿxڭ/c޽{wyO^@pxi"z魡D$ ;t522coܸqɒ%p+Gx.s 6 9Â4pΝ'̰UV)/2o޼z_(J׭[QXXF"Ϛ5kȐ!z:uǛd7o2dc^BBB]&55uʔ)=z3gNRRJɓ'D ܿ?,,wÆ R)gy=/]T$ԛS^^^r\lVWPPӥK'''??~ѣGiΜ9өS;:uJgΜر[-->oߞdu劊 ;;; _P(RRRx<^]]]MMMLLLVVVbb@ `8p`c##$$$$$$/]АT*\,*ܥK&''رC괢y=G6l~ zrM\.WlVZ]]MDƵW\rJ|||LLL6md5k֪UŽ=jii/// ;CVЌ1Ǎw退9s4DP{VTTl޼yժU;v,}m׮UVVٳ'22r۶m|AS7&%%xe˖?^ ;wnƌ7 lU+VQppܹsPĉ{/9t萍͞={e2*99~5kn'y=;::7---66V%8LKKs l DȘ>}T* ܹT*=wܼy󲳳Νm66qxxɓ'Ϟ=_M3E[@3jsV^r-,,̙NDƌD,Ddffp}9g"##>#㞞Mؘd2YII/S7~x"*--MOO׭Z?PX^^~a`uukIlv7odj9991ɓmmmW\IDIII .$+V0%Kne>ͨrp'NyfEEJ'z(jNN:99o߾3fD/)__߳g&$$:u*333///99999ÿVlUңG+WŅbfʘf?ԩS#aRSS߿ODEEEǏ?xI98ݻw(**J9b'}AaeeED1RQQQP( \v'رcʓSfV$YfϞ=Doչ\lv̈eXUW ŀhܹNCf`sdY[[*O,Ң޽;ԨO/j:DW֭[C{nYY[ He1c Y'Ã4̳.44x~~~?Yy[@wphaaADH377'Ǐ...LStts51󆂍Z"\PP*aS==4VD999FFFFjlVlbŊz˓ԭY֫Wp8+Wl߾ŋ[:W^Dtaf&۷B ce2YBBĉMLLV >BD[lٹs']Ϙ1ű8KJJ-ZpfL&e6 2ezboooCCCD|zC#뙙a1l0P\'nɒ%… ϟgFK$Yf 4HyӧOYV\iccCDk׮p86mJJJCh^^&00pƍeeeC c >|̙:& -Z4o޼'NR"t)""b)M:̙3G7oޢE +**Gw^ijgfѓ9{bxܸql9sN('O27B!cW5kzaƍgff&J;,,[XX޶mۯȑ#&s|[nч~XoN%ZƍgΜyّ#G;v ???6lܸ1<<ѣLآ;8l߾}||5kΜ9s=fWWW3 D6lʒH$~~~fJMMg1|֭[ns->?rܹS=qfffnnZu2c %%ի߯СĉuPԵkСC+VHNNuvv7nܴiTP֦M[޸qÇDT^^z&aÆO:t8p` t8juC=y-[?_YYiee=rHTP?x122R%yȑ#cƌy뭷D"H$z7Q.66V$yyy*6#G@ rh6M6СCׯ_odd i!BѱC Cph̘1 [԰aÆ zhsU/  ,DӦM#O?q .db*VAAAddO.]~G)Hg͚5dȐ^z{xxL:A&m޼yȐ!z sNO-<<\DMM M0=R4ZFjjjpp맟~~ӦMD7o qttߪœ]]]'OPzɓE"т ߿aTKiYVy1J"""oݺu֭0vfbbbhh( ^rʕ+111mڴa:pٳ&&&FFF|XԪup!"ڳgϵkVZ%{;7ljhhh3Uxܹs}}fd޽{ٞHTzΝ;@ ޲e@ 8rHnn.ۘ1c۵k133 0a)G}R4**LĄpׯ๵?w}gmmMD˖-4h[N%C???P;3:t(VNYgk֬&">~QQQ mޜju ͒%KgFr8GD7oLOO'"~!'''ggg":y }޽{Ìb"裏Szzz2پ(FEEEZZM0AL'NHDYYYbXx666?2Çu+;;;#Ǐ'R=hڶ:W sгϟ'"_?{=_VaaO8q͊ \>UQQ>!"CCC'''l]\\]B.@㵑P(U)7776 2ؙ?2rta=E初EYYYvv6;r֡b^@pȌkP(N>PD>x JKK]&ؔLKKKN0f xm0e&m۪<)))Q>r\!ZѼuS%.++c+rֶz^@phll4:uj6%ɦO^ZZڻwk׮S1c֚iRH yrax%[[NbL&Sw%7xC)xDl,QZZP(T:Z屴dZXX(?UXXhUϺ0sDxUx%q[[<<{DTSS>0++u^]2qlffS̃nݺt1gݨ_w[o9k^I.8ttttww'+VԻA~~>;ܜJJJTz222?B(::Zstࡥ ¾}ѯ2rǎDԳgOhZV?SHLL ʻ>PZ:WR hɒ%… ϟg"D2k֬AKnDPݿd2YBBĉMLLT!!!De˖;w21@zz3Zb6W8{_~ɬ=SVV`d" Cg3Sd2Yll,)SeW[:g[+5Nrww߸q̙3Ϟ=;rHCCCccrvvƠP(\hѼyN8ѧOKKKDRSSөS iҤe˖,9ѣGV*ѳ s(3gDs*^97Ν;B^!!!SN=}JC1/~S bΜ9">))ucllʕ+ϫ@17nܸd+o۶m-̏b8!!!11_WHH&9,X ::O4ccc`͛=-ŋLd}Ἴ?wQ(K,9ssso~.vÇJ% 8hYV嶶K^LLLwe{{{Br_wmڴ?5jZCD?k֬!CcԩǏWO.åRu|||\]]#"" d͛72ѱW^!!!wiۻ~Rf -]T$UD";^.EIMM2e 3%Gsimu*//OII!@!0ϙ3g~Xv--_<00YX,psssppYvmmmmCr|۶m"Hy\Ν;٥aLd͛7Oĭ3Ӝ̞=ylbbbddKDPxD@&J'Of@P[[{7V^MDܼѣG1cu.> 6\~… {Vy/fb`` m鋢U=k{Q6m70lmmp]zV4wETJD^^^*O1GryzzСC_yo"##'N,ĒÇ߿Ԕ_w%%%EGGaI/_ر#Aĭ3S!]t)۶m[||Kv}WFDDQvvmܸ1))}yyy355ݷo_˜ܕ~YYYW^tҤIh:Ys}%XܹruPhUZ%.,,\b_|9+++333;;{ƍiƍi#lekdd$}WӦMkOÇe2YLL̵k֭[g``떡_={$8%ʅ*q+ >3&**߿]v33 &Q1CUUի}||\Ŝ9s݉(99M#Jhʔ)AAALπ^;kkk"\l٠AhݺuY[1(g (ZhU^ T*"##---BpĈ%hmN+ƶm۪<զM4`oΜ9y?+W0`xc2ӎ;*++[S+ &r8z3C%9gnYo6ݾ}=Q\\LD}rJOOOgg"--&LRxf_VVX,֡?! >>pEѪ(hFLVRRR:H$恡z J~APѭ[6o܌ubcc,HN<٪Zg5} o~ĉ7oVTT(RQQ^}ܿCDNNN*]\\]sisrrsWWW4666ږY[ƣFڹsgll|<|pEEUs՚hU^++ɓ'{{{;::6׵VӧOa\\܊+y.]4K={T[X﷞xM)8x JKKȈ]&_cx<"bL3MgLTh@zO&estЁ);vlShU^PnݺмLMM=<t6mHҰ0ue],3Ѳr͌t}oݺط KD!~>GphnnND%%%*GǏoJ...jϝ;הB!௿r3c"ٳJ:`▂ƇD999FFFFEѪ(̼;uL DkucDî\ʜݻ_~JY[[/[]lb8))IHLL z{{=322[X,n#‚߿IIX?A`#8۷B ce2YBBĉUfai燄і-[vɄ3fhzCCCٳ_~%EYYق ~aaaM oooCCCD|b$30== & vQgm/JLL :;ڳdѢEVnkkuښ={6)((ɑJyyySNy&al܈# FD7o>sL3gﴮ~[jM4IZ ̙\)SoȡW^DtafiXA`#8 -"'NӧGSN555evnS{uuusvvڵ| HFĜ}}}Éh...ݻwٳۉhڴiL?^YXX0om6'''7777777dz(ZճV ɓ'g͚޵k=zs˖-D4k,vӂVxb<ѣg$˗[ZZٳg7eW8;;;99͜9K%Fuvv3f ߿ݽsnII<00¢bȐ!6lذa~3,~&((hΝfff6$$æ[n]xqnݸ\.9rdBBmӋ_DGGYYYUUUYZZܹ322j&,,c{=|Ç %f:tTEѪJrQF9;;QUUUcbbgݻF knС{?a666| /^XX[[:t?466V(NNN_}Utt4ɇ+W O<`݆o>>>~ԨQ666*((hJb=|afdUWW<3z@+1lذ3g #--mу޵kS"ޔ ju̙,Ӕ  ѻˬ$ ЌVnΝriC4z[޿xРA{uttD@CakJC@p0<<\$`llH$BU,_\$}'Rk6ػwz{{hM1o޼;w6{V>?XYYggzuFr4iҲeZൂఙƞ>}^P(:::ve~ 7m۶-ZH.3?℄_!!! 8 6lذa(kRu/c}Ԕ}|E&2^h۷/_~%KO=k700@!j\.VZ%mmm"޽-[|}}o߾r={X^- M>}D"ѡCIs HԣGB|\*[5"" "##}||t?zIא/)Yyyyw}իW#""(;;{222O^]]pԩׯ_~}Ϟ=sU; s֜_={$8%ӦMӹ:VN={\v-//oժU 99~RIatBCC1=AmˬEٸqcRRorssgjjo߾ ,dC 9zsrr.]tRkkk<?***###///''y<޶munZ]+VQpp˗2337n驟/26ܹSMrYaVVL6%j>>>\.bΜ9D,22R*^ [lGUy; sni-wZf7@&jhh欇lދ"Jhʔ)AAAL^TID޶mۺu>xr1cDEEk׎9bffnnn/4h~n߾yfzz:w8999;;ɓ'U$g=hԊʆoǏ'R[4g=`_b"裏Szzz2nGY3T" f?;ʴ(D$JJJ^D"a d?8Η_~c6g=hԊ;;; lIz8f(̪0NNNꧬ<'P.\ :0*,,ܾ}'n޼YQQ?_QQ[(...VVV%%%'Ovttl(pՁ~5=UVX^Gw}׮]٧7cƌ&^>.ٳgN:|_~{-**R Pʸzx>}p8:w?YYYT_ϡ&!bXNVN'XTT~S..r9WʊJKKգzOY+^PPܔϟ{.EEE)GOϭN(]ĉiiiDtرÇᢰwg8::ET*|rrr2;3[YYikko萳UWW rB= +{nYYi8)9+\ݻw'ꧬ-fqԿ[e{u̬?kkkNK<6DիW3K6N4ѻwof._^\ 3jX,%"__ߊ[RƔ:::27+Vw߅|=wIYXX%7=`AA|$&&͛I&9+\...LZttsαKl:t e˖< ܜJJJT+322?ޔ&Eih˓Z.dژ|ݻwQ~0qz x<`Ϟ=Rƒ%K ϟ?όH$)))f4hPMM>+W^Dt gfdXfo)S 9+\|>?$$lٲsN&4JOO1cF3/&I&egg3KKKw=b6e߾}MLL EXXd'LӡjuQbbb%%%-bxwX'rlٳgs8T7uԛ7or8WyivH*zzz2=gzoܸq̙gϞ9rqyy9뢇0nܸlȐ!vvvÇϜ9uZZڸq̤R)sl 7z2M,7M0g}/4̹NP2khԩgΜ9zy-ZdhhXQQamm=z{6#F(,,\xcǎ;fll,*** zBpѢE;qD>},--%IMMMN""",XД&EQ('OdƲ BpΚ5KeRܻw h_ϙ/^xqJJrDpϟߔMY^z ۶m[XX;y?ĄĥC>>[lIMMwD"ԩӀ&M,((H$mذ!++K"͚5+55MT/RRR^z:xxxL8q}g?sJJJ,--=<<>3D0Gg18ɓI&-[eՖ6zڵK)HBoDV^5! 8j mݺZz! 8BpßY$-Y5E"'|Bȑ#cƌy뭷D"H$z7_XHUUUUg 6y j*HvZ|&^ZiiiիMMM?;o޼;w6ݻfzz?VRRbeeէOɓ'߿9r$88-500йׯ_i$I-[m<={ݹs٫nԩ7o^~G}dccO&UVi敩m۶=bX*℄?pӦMyvС999Ν;{lJJ / ;w\FFFqOL8 RUUwc /簬l׮]g„ $=vXOzxErEo߾|Ǐ/Yյ_~0;;ƌcddԌYv% #E\2..j׮>zccc:vXɸ\xVV嶶K^LLLwe{{{Brʆ^X]]MD&&&[cczyCծ]Jh|2v"QF5Kn"(<<\*[5""P=L&ۼy!C{tX@0АY̙3ʅą! &G 23 -HH.]899=j%G&ݻw gVz޽<"۷o3fP(RRRx<^]]]MMMLLLVVVbb@ `Iɓ''%%@ =x`jj/^JD\1GryzzСC]taw9sBڵsD-wLX,qF3朘^rʕ+111 5eZE~~͛7}>}BS3f{۷o_z5""߯lƍIII<oݷo}lX {D9 ewaB Grlذyf6##cN~蘝=w܆^ةS'&nd 荾Ì "z뭷_%z⪪իWp\ 9s渻Qrr2F*FEEє)SsM<)vh۶mUbrM^uC ϻGFFJիW3@ ޲e@ 8rHnnnCѣ]xN}wp(ںy4h~n߾(..&>H9sS]"0 Up8UUUIyfzz:F:991U}Ɇ^δN}C&<|nJ[[]xKOcBdVk׮JuժU|>.版|޻w^L` 荾CfM.y'L P(#DdiipT7'ؘyPSS)B`NY{35{aBȼAU3ܗ4}Li vaQQJpXTT_m:umQ/9/08d(--UNd5%gvPGGפI1zbL&^}ݺu#ׯTwND555 s޽gϞUy9rjf}F 괴4gf)荾CfwX\PPvqqa:;w.//)98bbbg޽ +}7ёGdŊNoS}ׯ_ŐJcƌٳ9NAAApppNNT*˛:u͛79NDD+b %Z6fɒ%… ϟgJ$Yf 4p… D$ {q Ư2}/Hp>Í73ٳ޽ȑ߹sg3\]]sΕXZZzxx|g32$\#K6`XXX6mnzƍQyyJC嚛zRTn:WW׈Bd^^^"%]&55uʔ)=z3gNRRR֭[ .Dt.)))::X9ebbbhhhuu5svW\rJ|||LLL6m0Y*N<0AmmSSS xޞļݻw߾}իD~6l m<+VQpp˗2337n>)Çdo㢨e Th,!A^$żT`%*Z@Eŏ[iZ&SL14SS ?x M |~; z>>>a9g{̙˗/]̙3+WLT]]w+W\reǎNNNyyy{tX_޽b&=haeeeLLW:wѧO"lB!H,--BT:nܸ^*("z76m+ցLsϱ%;v TR(111ݺu#"DqFDr N5{ E\\͘1# ݌uww_nh'Zop0d%:]~:8IRYRRҲ̼}6͟?_$i}jao߾DX!Jzߟ;Ɩ\z̙3DlݝHXP s訵gӼŕUII=== 89wu_%{~Ç_z^UEEaJիV 򂂂QFٳgH$} P\\tANyf3t޽/j>/ ja N;0T*uJҵkΛ7,,,7nܸI&u>ݻwVϟS=zfO.;dU*ձcX $Jb^hh>97nܽ{-ZtI$ JFN2Rt…s=|p---jjj### \F󳰰P*,^L֧O9s:uj&&&fffۤqvvݵk޽{kddT*_|Š+Vh%TG8)((\R[[9A+>>>ѣ.]uVeee׮]7eʔA韙@//7fffWUU4hڴid2ssslmmGi޿:T^^޽{w__ߏ?X+ѣ;qCݸqÇVVVΞǏgttݮ]ܹccc3jԨFC25{]fdd4~'$$@Ğ|0o6"ʚ8qСCgd2@?ʢ>[)C @!8Bp!Cfٲe2>h*ARRL&0p*++eט1c daaahO/))͛D?X,VTqqݶnJF=ĉDԶNLRS׮] ;wdccc/^ܶW4P)(#.ƌP3`0!!A= ϶j*IVΝ233\]]Nz!3T*7l0b''޽{Ϛ5<<<4 i233g̘ѧO={z{{GDDk%>}L&uVHH >[WUUgϞ#F_~}Qâ[dL&jt=<<< SDP(֮]~޽FSEEEyyyKݻw9rw}?(ӧhM"۷/33sС۷/˧\.믿_?W_<[[[D˗/dff:uaw;V.[XXT%KdddlٲE"O?eMMMo߾du{oW\9w\߾}5WR؃:p|ُ=zT,$&&榤hFJJJpppuu5^xŋ{ILL|gx7!Zh/Ю"89rȑ#wyĉ~~~MOOOgy󬭭KKKW\O?[O>MOOK.4iD"9}ٳwh׳III꠫Q[|9~gDTQQq??ٿ͎;<==J寿_fdd6P,[ xÇ;v숊ڴi[oR:99 0 +++))I+8;tofRRRRm\QQaÆUVݻV' R(~~~aaaݺuS(O;wn^^g}i&~E'PW-6eڕOD+V&"KK˥K2֮]o "..f̘[N^rY"D_|E5zZ$DhF KKKهg}V+5\eØ #ԇT*]vmpppaay¢_~ƍ4iRӺ4eeeB'OfnkkhjjJD߿|RJ'$$dddܾ}k׮hLo{R~N$#l wR|jU!@Z]pvy{{:u*999997on.͈HwJ2((o߾+WѣݻwϞ=j]\\zyŝ;wrǔrbooLpd d>Cl. q^NÉ6^[*bbbXV]Å7o,++#_~azccc"jUq;kk^fi555e/|xS*IIIU{3f011iĤjٲeF 077WT!!!_T&''O2ܼ̳' ;ƌ#J Yݜ,^X";wٳ,:zhhh!C٨;Nu<""x~~~Sǯ4ti"vZ [[[bfܹsgذaeee:tcP;vΜ9V\zj"СT*Ua̙QQQ]TΘ1#--MLL***~Cğ~){r_ellF62 $$$̝;}JbX=dhh֫Odeeݽ{cǎ E5?3Aڵk"H$ƏW_hfҲ~֬YVVV.\ht̓ bcmۦ=;,,lǎ.qM6-X_NOO\:gv̬\]aaap389sڵ}622R*/ᄏbŊyֽ4 OJVVĉbF& ,*4.]ٳg„ 666ŹEEEZ>۷9ʪ;!!AȐ-Z+th,֒sv6A=a*ʮ]$&&6R>"z?qDJ<m۶5QHHȊ+l1w޽{nyyfOOώ;VUUΚ5+55mƘ1ck׮6|us2zcǎÇVVV8rȐk H$]t>}}^KC!h6]1CGwMtV1cΙ3G}6ѝChN<+Z @Pۻ۷o/XfvEn>}Ν; .D[s~ݽ{֭[fffC ߜP&>!;wD]m0s!C61!́bcc/^C"266vjZPee =8}z;3gΔd6l5kǮ]*++CBB]]]ᇆk.**z饗w>rѿuYɓ'_xǏkɓ'_x;;;&$$˟)]jLܹsHL6sL"ʚ:uӠA,XFXXBXvkxx{YUUgϞ#F_~}QN8ӧOdn qqqqtt^~BЧ48VDTWWqÇ;::ݸqcٲe2> ˙ߞagۘ"D:uzAZZZZZٳϟ^R?vIJգG+++D"蓍񫯾bٰD/_.((>>++++++..aդn۶.] '{j&>>>qqqم,$ś6mڳg!ю;._\XXj*D̽ǖ&",Xlaa믿6fk9뾧!(8cŊDdiit!Cڵk lB!HʤRqXȑ#ͥR)ӧOgggH4zh"*,,TR(111ݺu#"DqFDr~ib￷LNN矉hǎ{ر?ZxڵkԨQlou2&&˫C;wӧeddh&yؒ;NɩS[yV?fbbOͬCDgϞ%"H_4bѣGO:uDSlSjݳz{OzjEEE}} Ci...ZK:w\VVK#/ NMҥKDdll/k%ݻ˗ɹ.©uS >W%"Rڵk ͛GD7nܤI:tO>hST8*M٨*[{QQQy晥KYlw,gbi<ɓYU:::/_V׈aa D+++FTarf6ԩSǏ),,HMMݼysS7;ǚ333oݺED?tЛoDARTZZڷoߕ+WCݻgϞg `ilx9zho ̡zꗆoS/Q1Tf͚Çgee5I.l\.o;$|0J5h "nܸalg޼y4#zto߿px7$NM Tsfr уݑ*;;}xWd빹s~&҂x.88Cݾ}ȑ#+**>䓦$ yؘ矖͏fbn޼YVVFD lW_%O1Dp(J @D[n3e"իf!bZ"ҜQ<;99.,_ܸq=7k^z'cbbD"Qttt.]Ο?_7+;w&"6 IND]vvCCl|XTTt%, _⻕+m6͔999ߛg9ss?x3@9do58u_|(++d/ 1L6JJJ.\f>|axbDr9gϲ3G2/58qbD"kk5kֈD1==џݻ7~u7`sssJBYR/ԧ9?f& [zm۶o.JϜ90PTǎcݤRX,VO~yӧOll9sN:5~x33r`}<9rz 5kVlllXXXZZZûeee#FcO;vΜ9@I҅ Ν;l;w7lڴi֭lǏW_wycǎ Ǟ\eDg̘qĉDFF.[L*޹sK.[n]#Z?=feeUYYiii흐e>>O<=رc={466~𡕕#""9-]֬Rn߾p[ΝۻwϞ=%]tٳgτ lllssssss HHHرcUUYRSSٔ9 Yb^ݻw-//33='NhbbRϟm6v+XaÆECP( &۷cǎDO.ghUDIj/lmm@mǴiBBB~י3g2 4%++kĉC矵d( ;(GJCp^|ǎSORRR2{l\ޭ[7xډ[t֭rq gEdddfffAA͛7?v![IN>?53!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @38 daaa\0))I&yxx h>ϕk̘1MSb̙#>Y˖-d|Aݓ[`5x__ߗ_~/" =O=h$y@S7m$͚5kPZbGuւZ\RRRtt'PB;p@``SjjjlmmP,;L֜L֫W/Ǐg]v5iii$O(:M8'iTԵkק&Ϧ;wdccc/^̪8%LkhIII(OAѵ`Cy<'O~5>|uZ5f̘6wý-А`^^"2DEE|X&SRs!֬YS[[hʢ(//^z{#G=3T*7l0b''޽{Ϛ5n\]]NzСԏ@"d3g$S:99 4h,0ѐ6n8|pGGG7n4lcK#!!AlHϪU44w\PUUgϞ#F_~}V u\3-YD&yyy5ZQdM!ɓ'>G緁\w+Ytooowk׮-X`С/ϟ1E Xp>^xÇ~zaLLLYYY.]BBBs r:Lw/dV4OݛTl"ׯH$֣dرnݲ +WX"==}fff)SRRYcffV[[{ŋ/ٳ'11gB1}tv Hjkkۗ9tF111;uٳgϟ?_V'jٹsgxxx]]k׮]L{C5kVJJ{رaÆvEDž ***XGGGޛ쳹۷,Y{qD{_ʕ+Ν۷VA;tyM|饗E}IJգG+++D}rݭO?EEE)J\zի;w|2{rJdNy&&&QQQ~mۦO|ڵ͛7ѿ/v ? rmH:׋Ug^ ]jUHHHZZ%[^^^R__[oސt?{ډ{0%%p۶mׯ_tRxx8ݻW+wܹsN6[|9^p!777'''///66ݝ_>ON=ryuJynURSSJebb˗ ׮]kll|̙+Wj& ;~+W\c''<}އ.‚ݻw[XX޽atE.]?MFD֭c"V'jsssʊj7H`d _U}pȑ;a3#}||ⲳ ,Y"7mڴgk&"''QRR::Fk088X]k% p@@T*Gvʕ?sɒ%ּnN)1НT*%;k]P3fdK.U('N'<ǺY}SC^FXXǭ[>s/Mf N 8H< haeeeLLW:wѧO"lB!HԗRq{~dfƕSuу ""Xo#-[>|NP(cbbsƍ<~ZPь3uMcŊdrҥC !knumӧO0`׮]FbT|||~7z~"  b7]]]׭[l}__߸8{-رc``ɓH}f'={je2Yީ9m J "**xM6+lu``}xgN)1НL\\ݻݻlT⯾(==}ʕ)))bћp)y#lݐȆX,---g"ڱc޽{;v?%t 'H hkj:]~:GRYRRR|W>|XXXȖ|7zRVTTt]###77\lllb;Ɩ\z̙3DYݝH{ァݝVSEEEVVM|ի+**uY3cff6a„z-LMM=zt[߯u@~Ν;GD]vmؤK{洁\KC:݅ڵ޽{k8FkѣNy怀"zw}}} V7x)ϺH hañs솉>Rڵk ͛GD7nܤIxO)~nݺ]~ƍ 8l}Z.kQ*M֨*~Ҳ DÌzI+ֺ:6PK ^"e[jeeհ73HU}O~xNNNaaaFFFFFFjj͛]Ԝ9s#GUtV>JePPPiii߾}W\٣GWw={}Ӛ={^xM6 ٯ<cJgZ8b/)BAJiU̼uݿСCoSP<@֪s(Tf͚Çgee5"(??ѣ]v֭ۑ#GsssisȆ7P=>R"y_j ҆]m7|zI׿K NhgϞy&i>uh 5Y[vADvsss6M [k [>/ Z8m NFP[dǠlܾ};,,LR9>7n,Ϝ78wj-PL&a3ݱ3H:uP(.\ށ3lذ̂>zfؘt|k-ĺpVG)YwGDĦ@i8aу]xfw4y6P8ݟbIDRg!kkN8태֬kjj"I&=M.ubcC@5]vMܹܲᴁw2Mb'[pֵl/Jl?x`С۷o9rdEE'|P( St78w"8H9+m[%"i!9a#~\S"]B>Nu' aӓ-qrrbm˗/ooܸvqqa o߮i*դR){{֭[Z6y^M! Օmm4[7Ν;N:QIIeCr]|||w~~ Q [f5;"\}g#.]ʷ8m ;ypܦl/Jl^ĉ111"(::K.ϟ St78w"8H  h+8LLLd/HU߻/))Yp!8xFܹS,<<==SibbRUUlٲf.HIDDUWWk׮UVѴii/^,HΝ;YIUUU=z444tȐ!:##Yfƍv9sfٍgf:u/`^EFFBBBx@(XDD6m駟aʕ+siTzMD-r3g**$$Jerr)S4}xlN1cưq?Mt@N㾼<""3f0113dѢED>mڴ{޽aÆ6ȑ#Z gM!!!>>>>>11ڵkFFFǏ?~BBB?^{->>ٳeeennnlء>@X,ްaC||ۯ^P(&La"j weϞ=W>ydqq1< t ֯_[UUekk;rL=ANk4f̘~k׮!k0t@NUttݮ]ܹccc3jԨVzyymܸ133~РAӦMg6P\@cpܦE[OC%**,,NNNQQQZk;wcٳg'&&jŋy= AZ_G5``!!!̙31cΙ3gܹ@xଠʚ8qСCgd2@?ʢ>[)@{P(=JD(:ydnnH$zj^o6 Ǘ_~y1%%%gϖݺu{7P>ͻ} hlNl ]8+F٢ڡ[t֭rvx]>}Ν; .@[h#Fҥ͛7rÇ~lOw޺ulȐ!6:@0! @k iIBp!P d2YXX?LJJdŝ7, 6R3UqJ Oʁ|}}_~eVG/m˖-d|)s̑d}YR l5YZ<}2lM%XjL&[f Jw6m5-H,|oZW_}%ɢtI|SN=%;SSSs֭h!:zJR'''ܷh~MMMw>2eʔW)1<?#=:??ӧN:zSU*?@D3f011iyns5jժǏcWm'tohUVV&$$=z֭O֭Z,00gifW5kVee+td$L<\taWW۷k.755ƌр4PJ^^QJҩSs=7x`BuS Ҫ*kzyy9::߻wa2֏}@<33sƌ}qppٳwDDDzzzڵk ,:t/8x75[ dy tssspppuu:uCMɵ48幨(**륗^޽ȑ#_Y_&߿4d={TT7Х:bĈ޽{;88>jÀ=gom Þd=5ȵ hl>KvƍW6{0%%p۶mׯ_tRxx8ݻW+T"ͯ޽{˗/' .ƺ}EFF*#F]r%???\d5 LOOg￟{ҥ?sڴiDnݺޥ)AAA~~~Ǐrʕ+Wv䔗o2ӣoSU.X,񉋋.,,gX,޴iӞ={xSwwwo*Appz vxX`z/O}MOO_uaaaAAݻ-,,vݲŋy湹geeeee5'955UT&&&^|pڵgΜYrajSȑ#խ]۩ݙsc9fڐfz6@=mu OcxժU$##Mgů!qݭ:TBWJnܸAD;w֧Gұyt2\?!/Jw۳111^^^:tܹsDDD>}(##: D"d Rqo 7شi+–[[[۷yxxX\K.2d]0yR(111l~6DqFDr``nnn}}}Sirrr)(N~fcǎyk}N_nhڴiw1cFkd E\\͘1# Ũ)*bرzw_wڵkԨQlo$=h "o6;oٲÇB`iuu0{7׆$Pu7i{՞Ddddb츸&>!qڭ;T-'Nt#R<:]y;t5ٳ'56jkj:]~: RYRRҲ̼}6͟?_=Dg巁YYYD4ydղ7.~syz3gݻ;;;W_}Çll}7zbc-ݻFFFnnnmw6&`KD ս Tm~{)YQ]m[u/622jl"1~yzZߟlHB&"hg{9rֽ!=nucﶳ\2i$"*--e͒kC[ wérRP(nܸe˖?PRD"vcwK d6~F5%sg fRbeeURR7}tOOO''N99wu_n gk^aԇ|~'gH$/~[\\/gdvl .GWzх6k۸wO?tWVTTh^ծ0@h'æ(011i8vťļ_ˋ BI1ts^~F.5Jl%u/gݜVxj[=GDLMMNvece/%3K)sըDGvǧ[nGͥPr>{͛7(..N32Gl ͼH/\uE ]߿"?QQQe"OI&Pu gaxFφGҥ ɰorC}Ι3ԩSǏ711133+//W_{4ڤP(٭333SZft9,,oٴi֭[ǫg;q˶ Tp¹s>|UUU555ᑑZuvvݵk޽{kddT*_|Š+Vh%VpG>>ѣ.]uVeee׮]7eʔA韙@//7fffWUU4HQ~>^{->>ٳeeennnZoZ\(**ҚN\ovշ~%#< 3f̘13?;vUS z}vLR ChcR){ MS^yW@(( xC @Oqpl2Ld2YXXcΜ92>kURRL&0p*++eW~め/ޞTu4жC[[ܭa"9i׍>qp@uEbx#ݺuCW_}L&BQ)8Gj*  8JJCl!Jvj555ݹs'xbS\( l v'HCh1cƌi9Ս@u` JPaUU՞={BCCGѻwo~}GjX=BXvkxx{W*6l1bS޽g͚ᄄU4;wnc(**륗^޽ȑ#G tssspppuu:uj嬵|ӦM2ۛwiL>]&EFF޺u+$${ `u,g~ryxxך5kjkk ِ8Vg333g̘ѧO={z{{GDDk%Ԑꑖ,Y"ɼ]k'*E>L&M~ͩ V{ih&tr=vmQddL&9s&eeeM:iРA ,wL۸q]\\nܸ %:fCrf=Æ f͚k׮ʐgggWW~AC.qI{{^x zn$do&Çe2YϞ=U*݊akХ Z' +?SɁK,i'** ѣb&111777%%E")ӧJDR[[o߾̡C.]S_p^P'pttg"JII f=Ymmŋ/^gϞgywοۘ"D:uzAZZZZZٳϟoҸ{رcrJ*((XdIFFƖ-[JClf!Ydرnݲ +WX"==}fffhH\w}W++Vt"N2@C#{ׯrʹs;tR80a/YZZjiiUeeY~ͣ‰Sfp@ݏjv^WWyڵk׮r=͚5+%%EoݻرcÆ {lrO?t;vwҥKk;XZhhUBBB=XyyyHHH}}K}޽>>>M&~D"׶c'#Ns(}||ⲳ Y*7mڴgϞFlaamۮ_~ҥp"ۻwftX_޽bdxȑ;իsvvvPPPuuǯ\rʕ;v8993szz:OK.ӦM#uֱ`.ر˅VH$M]P(BYrVKMMU*֮]kll|̙+W!qݭ֯_ *885߻woDx…ܜXwwFiDC*E(?OuuuNN,tn=pNtou5 wsuu<f[my湹geeeeeix))))"hk9l6T*&NdmJ#,,֭[z_~YTT-O¿?^n0mwC__߸8{-رc`` hСCΝ#""CD4 "..f̘.ڹ[.y&(BæݗH$7nH$(((<<! [egg+ D+JǍJ0 Sў={jjj4ۆd<*t_bxܸqDܝ-}ÇGlK5 wVD4mڴݻwϘ1ӧ k׮QFax>>>Όǔ:;~֭SYlcGinn.J>}8;;DѣGQaaaeyr֓Z&M"RVmFaK"bmC$n)ʒ'ؐ8HoT*-//׼^]]kJi=5zqu;gh)[ɚtYp{rlmmxb###񘒓>4B~l(.]666dݻwrhq&  W_}Ç`oի{z޽kdduFd@h{Ž{~Ç_zBKEEE G0KYĤ{Z]\\._l%gϞ%"H_4\Cqq\糋CZ_|։;;Ν;7{uPF! [XYYM>ɩ3A=ل z-055ʊ]#wo߾7nHNNVL蹫r[ÚtYp{rlm-tprrj,NǔK./wgG9411'5Ԃt;;Ž=zԩ7o w}0E}Ǐfr?c…hiϞ=Ѧ;UgΟ??yR"uttd}/_T*Iç-͛l O.P%캎Jb3>5ǯ g}V+o*.++Sg-2@97Utr\B7$v+TvyE~ƍ7i$i]mH\{?!!!##mlLo9lS뭷ݫ٘7|S}W,t˚ۻ @`knF8S++c(z4φu9>FEE?)..~g.]j&~nݺ]~ƍ 8Ѧ;!CRTZZڷoߕ+WCݻgϞ1of| PD;l:BooSN%''?~<''0######55uElF£Grqqٳŋr=@5ԧV OcJ1Ek-6$!Sr㖑F3zFeff޺u߿С7|`9' 9###gΜyȑ:h!9<{͛7(..NG.x"҆}[g6r/vhF)ͩٵPB櫀7d6ZrA/ ڐ [IR5k>|8++ϏqDE"Q~~~MMѣGvӭ[#G;:h!C6jJϧ]_}U"i8Ξ-SFM lUWWG[P=ص7vJzW^yEh#׮]khX7o,++#"Bgūk9p#\.gg1[dJM&İkt:6$5ccc"jEz$___SSSC"Y(xs~~~NNNNNN a7 hR_ fޭe׬-Dx POmp:4o短u98?x`С۷o9rdEE'|by;uP(.\@8lذ̂6,U]p:Lpj;ξ0DpةS'"*))ѺΑfŅ]ؾ}ӧO7:2?;w&"6\ANNNl^˗7sݸq^'J ٶnݪnٲz 7{ ;;[4Z.7zGi9rDsIbb"k+FW7rA.7j?]І$nѺԐ1_ԩS' \r}yԩcǎ;vl [B|v.ϘRnͼ[]ˮY[dltLquuemۦ2''Gu98®^ĉ111"(::K.ϟ *X/r]QQOz)t6xw2ξ 4Z-C 077WT!!!=))Sf##YfƍX>sٳ[0{&T6m/^,HΝ;YUUU=z444tȐ!w!6%S hrYYYdd$6^^^.Ϙ1M;"Ɔ+ʤ$"0@6Z93?n׮]V"iӦi25$AwD\8 I҇λ!yzzTUU-[c=aȦ3fT*g6L;77R pz~̻յ;L9'6t?⠠ "ڴiO?N߯\2g#5d9rht=qի(::Fk֬D?V,*6jtΝbxDill̆SJ\NW}}Gp 1Ą4Rt…s=|p---jjj###YG}tɴs.\Ĥzĉ[?66lĈvvvlرc̙o}􉍍3gΩSƏobbbffV^^&looﰰիWo۶mRT=̙3}5ggg__]vݻw޽FFFJ_ Zb㓕;tQP^Sg:BT7raԨQ~~~J{_O?eOУGSr;CN]R;vHRX.44@ؐ:w7lڴi֭Ǐ~i/"wT*{+D"QXEL0!;;ŋmCݫ[_c VǩsZ3 lqn!')3f8qā"##-[&JܹӥK[ P:t/9R|f͊ KKK3ؽAB 8d 9VNF/h=:g<==;vXUUekk;k֬Tv\FFF-zW:t`dd4~d[[ۖ|.]3aܢ"}9zcǎÇVVV8r>W>s6ʪ;!!!**a萐;;;v&1}}~Mx?qDJ<m۶G S9semmw}LRu/ܾ}-RB7$NUNNΉG 4񉎎0a{nee%{v?11ѷ-qjHj!!!+V`ܽ{ݻ-#3vʮ wYDޫRƏ9Up=pk8cnc tu 6"7lذhѢ=z( B1a„}uؑ9u?R**,,NNN Kiܹ{ٳN؛6 ^>V\NF/h=Dlpyuu iӦ]C$1cΙ3gܹO*E?~$DZ3Fm-"$$_9sf\ F[5qġCZ_d2~EZy'OD`ؠ܀0 ѣD Cǻ} hl'ɓfffx6ڭ/رc>JJJfϞ-˻uo|66@F(f>}Ν; .|->C/<6ڏ[t֭r66@wh(͹{[,,,`''' 7ߘ-Y,<ܔ-{Wlo;uؽ!Kz粲N( 3f2IO'5/.o1pH N5V6X#D-[^~ w)%HrCpDD;LΝuCz:A$"W+b33VMo>_eR BCMq#*Eqq~0翱ؚ+w/:n7вop%Q׮gqq#ΟJС,_{jfgOŖ۶Y f;- !@lrRLԩ""R%%վ/ '3SR ,Ki4Ih+ \zN)CBJǎ}m[meLLӥm עEflzJKSVvR_wBhtР&7|JJIQ|Ae.e ɩҥfhcІ 8pnv݊ ⿷GK:vld??/J,{ReXYڳG/99O,@p~;iB]\6߾m}}%&&͆F%%ݫTtQFÏ>Z11Q /FƍlnqN͛-k/@9a^kܿ|}% ̇ 3`DϞT*߀*?JFӮ]h9X%}maaJO$A֯7}rގlnղ25}P6mCvźd߯LO3;f0IO޸y >_PysFIS^ViٲpkWg}gr2vѣҏ?Wdf*N|O>y .6!PM K/T|y2Yp<G?P`Aʯf {N4ztso_Û7eg}ocsW<ϙcڭ|*:G+lUh[z~*{ ۧ3//zZ7*F.^lFl6dѢsǎ}clӁ ?JϪ p6M={=֭_2/Njߢ 153l<)/ϙ}- ᯿vt,5mCpM**_07fii $]vHF4n$%5y]xFFʯG ZÍ|+jn9!C V nUlWq3 @(s!C @!8Bp!C "濶m417ׯ_1e}}}EEEΝXJ*//J|mzB =z у7f[{ꯍz&!nmmyy}|TEVq1S F)9 ky<ڵkrZ t==Ғgg0hPWpl;:ex!v, ;R=m拚`jK֕h2";XSCOJ2|@fi:EH<7􋋙ѵff>6VGG(dcӘmf7zzup޼!pJK4uuwu u^Ԫa428|xmP׽ySX[:|7wff|5ݪ:9,}lHy*@!USFR{:ÿA.E-AÝ!!=άaÆզvij54О>S`u5c+H+,yPO+4-rsu5]}T{Z5'o_/Dҹ\,>g4‚TT0zE‚G)UMMqaqvd_WXY԰e>o F]SO32 ^++?Z_͞ǏuwXq8xD}=s̛7g~-VMhd#3˙~:)޾_j zUYY\֖-u81ݽV%غ>BH drrur#i#-,x;<=~J-jbǏn 1J[[H,6X(ׯoNFxX<]߹7bmf;@vxT{ϞnPUxTPTWuHOO0eJu~ZZ·oQߥң[Q'e O!jʨ>@P-Dÿ?f6[9|GHeeeӊT%Y[uQv]]͓5M\MNӿ]dGGҠ{3fT7ĉoQ kJFm-jErQU>K55G++)ʽ>P`]ƍ{CCn}33HϨb˷oN^E}s͛r?7WWʡ)˫FC0mZMB^X#_P&} PRIUɓĴiQ99th;;!ͩjsSƕF~*pC.THE*66] PXC]G~T3c&6Gzjq1ØEG0E:SbmHkohЫW}-Si4 gL!UTKK%:&h[..+ 8vXT[9Hӷ]EEڿnwQ3%0&/ $O> vm_du*@zI:n*ץ䟭5n;~'|#:zz2laQSU *b5a}=MCrrаWM~Rϧݿ{.tyoLԔ_QUQ%U9A SBXMkm)|ˤvnil)8tXRQa:\ցb}ͳ*+YcCS^5!ѣGf7Q9󗃦YuTc*uu+,[hu&hvڴd˗dgQC˗Z̝Q^EGf<{ ee={][K'OrOi tB Ojo=}||OGG@UblSBQ,׬;SF/{KVC"*55[VYxRTA:34|0mij!PWWh. ,7_3>ջwOW(Νci].W4 {x+-eRc-OiE%@no*1DEouuU K ^ib$vhKfeJԐh_:B%SN`kimƆU7BYaՆ%ZwQIfUAMۛ7] Jx."\b ?wOO-+Ĥťncm2qq^6y33w.:|TUHL4lhy8vHRB(@Q_'wiiOZ'rdeg^L[CNؐTB* u`?/C@H%B ӑ}ho+ ˏ45^F]] ]]7]CNѷm3#Ù3N)+c>mHK|o_7j)Ud40XZʘPZܴɼ{w>OprOI_oA hZZVސf˲պ|ˉ<& \-in[ظ~qp`LLFz޼Okvebiss{w>3d Y,ACj* 2auի$PR~ ::dήz2ʻwc RtXݪ:,klq*@!QFzҁ"UBwA ϟ3kj|w*Ova1jTk(h0eJ5g67W `dԣGݻ]:Ne@] oػwOZyL^u D֦xK3O+...G>>&cȷ]VU1vW5͏[S 1nE[#6d= *(i* 7U<2.aRTEaBɦba*EEʊ'bi^JK^&N|zLV{7V\ܥXl~+.^dkBބ o\-ŷ,PTj}K"Fe ^ۥMrw4FWʡҒݻUve%ݼ)FSMGG`lԣO޽ $Cæ *NJ:v8f[{{ut̡! Uzz۷HCpΜyy7oꗔ0kkyE;CԩcPuQ'Slw*@!Uz LMe<cݮh񇪴TS%=!Ps?ڶO<]Pdf9dz% HB!B!B!B!"B!!B!B!{M@C!‚8fB6YB!Bc-Vi[)B!B!"B!!B!B!ʡֲi„ Ee˖[l!CTu7nd_|Rz;ɬS]n!!!l6;$$DTі5'D;Uԡxtk*@H):Ȁ4)))ٕ666;vutt4* cذauYYӧO5!U֭۷oRV]i`ǗS %xm%.;::zҬ|ŋQܩvw*xFJ+<믿NJJ]r7?pmmmfϞҖ"##ǎkgg7`#E4gddX[[իѣy8h 6˗lv߾}BL-w|yX===7ڣGr=Rbx̝;TLfcc3g8ѣ߸Li޷oߺuFhp8ׯSSlܻwʊ| agg#K>7d=eO?m۶s׮]_~}… .,X`ժUk655͟??991cƨH2C]x֭[/\`ddDy&88X |Wr$-111++ǧu`4M/B+W FSSSCCC\\\NNNrr"gQS~&Tq~(nXUdž|.]DmOC~Uwt˴^}YcϏuppP|ei-}!6mno`߿?++0?? #::ԩSb[ZZ޽{7''֖gffM:RRR'7;­[2̴4Enteee^zÇ>GvpΝ7o{&$$$$$,\P`0‚'O\.wʕQQQ;KO=?JieAY:㹽љ_GGg Rrح[ٳg3WXqԩ֟6m}||f.]̜9$/|Y,%HѼP+oZZZ~~~~ x>>'NID=?mHC 0ۻ~׏?駟6mڔ*%{Ph,*v`W^9r믿6lwY[[+2U =( "-/_[Ctɧ~ UUU7oޔc?~L>(y.fffb=NɐFVVׯ>]FMmH.>{=d=TSS 3gYf@NN%Kk'4(+69RdJ3aiieOMM%Zmڴᣏ>-u?׏җ/_jii9;;'lmmIBn>yD [V)W?2E#UY~EF#di?J'zgԳgOB(9sN \rE&*, Ʒ~p87n<ɓ'?CLLLLLX^|555kjj6N}K^444?`Ƀа://O)nݺE˗KW='Cnfffffr Ə9O AGN<`Y`dZ__/kkV1 !MSXkOOׯ'%%]z5;;0------%%СC܊\J?#ŋᔗW.]KIC ?hS+**Zy i7om-sאJmpdVVX9$|||BBBBGH֭[%%%>@tfիW [H$2!< }iv5{{g4uNHESUU% ŎfIX,y~xbJJʄ 4Q]֩ CCfZA@ xlH)͔ϟ3ۈ#8βe ( h W\񱱱?⋜PoaR)W?2EhYѣt7he:e>5퇾=VTדS؉k׮ `0u-uG8]%RJJJ@&V8p ~w]".K.E[,[)+%ͺ>$!,&86m۶?(|κ|oӇ拉K5Owݻj;RdJ3Դpׯ_=:66˫믿Vdˮ]:::x{,njp ޾}kii)Y^jxܧ\L(7@L%ޕvG|V>???;;;;; 齷5Jß 05u [nu"+nיݻ7cǎ;1Fjޕbwk.]矢KW7/\rt'͞6mjX[\.L.d8ft^/.D2e݀X7nh}nYV-]766@K}#{Pκ|oXѣGŮ> vrr"cbbDV)2ؾ}kLLLmFѶlbnn~Ν^Ԓorp555QQQ>m2+yC֟ F{~߻/{YdgE~gϞ=qĉ's5Y[Ӯdѩ㹽{1zɆL&?|Z֕U}W̙ݻ }/ Y'%%͚5WDq!!!5Ϗ'S9͛7%]GGnƍ-U!֯_d2o߾w-;ZWWwʕŋ5JadJy?uV3ghA߼yJ[緔 yoiii͟?"##9Bֹy ܲT5k֐iƎ)))dPu;KcPB!f_~}NuuuXXy.88Z`@ttɯÇ-Z$lr)ҧ]}vزe n611ٱcF۷oX@&hBB9r$pmmcǎa`z(e>ydj1pqqXh'O:T?~|NN';8d22qڴiǏOLLLLL={ ڼy6,YBC44*d_FAZ#YWTT5yUV9r|eJɼrkkk-,,8k֬#FssSNm߾=##LUYNܐHou֭j###gg瀀`8p ***66<oʔ)aaaŏ)i, CBB?noo.+V߽{wqqqrLbkkۭ[ џ1cbO;wm}:yٳV_hw^B!d\C @i8򴂿? 3R"":o6==zλr\.?Ai === |p!vOO=cccSWWWZZ*݋"4xn!yKJJW_}ZB!i4!ٳ+j0ᑂ:QjCBHSa& G BmA!B!CB!BX9D!B!rfCBBZ?M0!mܸfx6U!:9y cذauYYӧOWKJJݩ-+QttիYs/ƀGx>| sٰamg~BHAX9lnBBy~k׮***2Bb-,,p*=R4$O{?#B !fΜ9}t%AAA/_vrr]L0AEU Mc///ژ9!r: &d2E0 ]vAÃ!R3Z)۹sҥK+**]4<<ãW^^^^vz">w\6V^^<`;;;OOϽ{x<̛7ֶo߾9rDt$ۺu +V]ԩS/7n\mmm_^tIerKEGGlOOOvP lv`` dffΞ=~ĈW{Uu2EwPÊ8p`ܸq?k-[fϜ9ٿ쯿Zt!CDHuRnY#EV*M4!JϷ2dkkk٣GL BVtCP,ւpBrؘ{ԩ8SSSEˉ'r\PXPPwߥ>|X,2ٷoߺuFhp8ׯSSݻwʪG vvv=}%Kk}}}]]ϟ'%%%%%|wroYE;N K.mjj"o놪Ҩ-aΝK.Lfcc3g8ѣI)S~7SUUedd$ڋ/uDr=RbIeU)KL!e˖F@ٳ%K 6tҥbÆ Cը[WKN!P+:H099bČ9[nKLL},+++((x7nX"//oٲeъ$?033;v옻;߿۴={=$fEEŦM `ٲe*gϞ]ˋzfƌ׮] mi O>>ŋ)))&Lcn*))"wAK^4;8zh HTCԵmq#Bup>CGG$%%͞=;99co\U{mۣ[:wPCN!P:Q)r5Y__)@IsrrĖTWWǠc۶mƿUpoPn REEE%uxg3>#hhh|PYeG IoR*UzIs{HjB>.?KjgBH>rhoo6mx+7{ E.)JKK{PZZ.]ɗf ܸ !ٮ]@eeXNVV %2^VVhqܔEv޽{fCvPٳgO8qĉ Hq׀HHll7nNiR'W)ﰒ4G7YuG/͙_;y<!RNT93۷oݺuyd==7oP5; aHH?}Qɓ׭['Off3t/{ppi b1 jŋ;;;7)??qYYY4O8qѢEdf͚+V\|yРAFFFuuu K. k)=28::N6㉉ZZZ|>gϞAAA7oV-vP d&I#'7[_~eFFƅ VXfS8qB)>eʔ\hpɒ%2Y2.;c jPj N-tDuɐ/DUwR._3L;|F!=흞yҥo;::O<QQQ="OyFrݻ6mJKKkllttt1cF`` ɔ;>>>L&ʕ+///8pYFҧO:}2It6wޜ:KKK//ŋs8V#͖`˖-VVVǏ⅙CCC*ȷmN/U :hiEEEEEEiiiM#BB#aeiXf;wٳg̙a*_~eڵW^H!B̩S=_V׾Vv_Bg{tTǚ!B!R"q222~> !B!YTiѶC\"BN[B!BaˡDEEIZϞ=fnn.^PBi UQQfBO!@ح!B!VB!Ba!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!Q[[ &`ƍl_|BBBlvHHH;MF||<2dH U;@Yan u@?{%'PlٲX&y 5%%%666;;R[[fcǎ>|ڊ+9"AKKˡCΙ3O>ndСujjj޽[IǏm$ǗS C NH!Ҿ+ ڳgOx:))It߿;wN>~w3gΔ\ٳ[/6lxԒǏ߹s ?1 uDD<}*ŋݔd„ cp{L3fBHVry}h~iʔ),kjjH_~%|РA n> ޽{O6M DGGo۶MtͪLXn㳳_xann.RrC+22NVyX,]B!P[hڵkǎqF??f)-- ի׮]޽{'w}f=<<֭[@t9Ù7om߾}===CCCSSSճ'}8Hٓs;w… |>>裏Bs$pС:mmRl^6[[.**Zzѣ{9rUVS+9rtp"OYbYlkk4{K.rXX&OgffΞ=~ĈW/ |>ƍ߿[J|ؐ[x;w𰳳srrZtiEEYd 2DtZ)22rرvvv  *..n}sCzmfbCTS̟?~Ȑ!Ǐ vtttrrڳg~1e $UBP- <<|֬YͮpBrAؘ{ԩ8SSSg}wއ޾}[l4PH۷oݺu@LLLh4ڃ 8כMLCCyOROUWWw]MYYYݽ{WTǎK}vJJjgΜQFI6*v2Q'Y|p>OyǏ}JE[&+**6mˋpssSOӇ`MnN!PtaCC˗Aro߾]v4hPG=ld*nNVn̙3aaa|>ܸq.\xa~~ݻw;j5//6d__-_HMM%5?<''wޝ3g޽\V6\9***33333sr\ /,,,((8y򤁁ɓ'g ,ߖ cbbclSmmm<<}>3-|~ee O5*"֮]ի#G|Æ >|Ν;kkk[<B!F#92Nihd555EeT5'9`ժU4M#ݺuSCԐfΜ)<''׋&4DL^~-y|S$16VtT>|8 Fipvviv${{{uM888H,||N!A뮺|)2!}7%Kb!d4T2 4L=#վF Yf^:--.^ԩSb 䦦P($5N~ȑϟ [Iӧ=bvܹp•+W'M駟JةR3g$S?yرc{)))ꫯΞ=JU__>:tٳ+;wp\:.:QLfMMMFFȑ# /ZiDEmpQ'%YLn[ZZaUUUQԒ$oa( ###cA2eg uTLn'ޢR]>˔ X򷣕~JOF{LL-ө@CTboTn:R97onڴi޼yYYYvZd֭D 0o߾j.KBxzz^~=))իمiiiiii)))zo+~7={\xqnnnVVh{ XYY4(Ҭ'Ć!CPCkkkB=}ڊL-SDu[4m;L07q{X#mCoootǎwreOF9v?~ٹO>ͮbvqL___xFk${hj,Ԕ WM{t`|Q' YL/--mh{ZB:PUU%yU+cCӨ.bSyFӬT񌹁P'*wߙx`z2$MK&<$UO?Tm۶qrrr6O ѣGVROdҲ2Ѫ.@j:Vuˤŋs~G}!q-,*Su>#hhh|HP16-+^JT{Iؐe:rwPٚ-s!U耕C 6Ȅc=ڴi5_b3r׮]IUuuuL"f7vH<)PwȘ1;F7SjllL`H>m5kNCCCXX/^(8 c:K7Yѣbqa{~U߀X7nܐ]|Pr,w>!'''r Ĉ.V $ L{cCTAE̞={ĉ'NlÁy{$wnz t!L4i„ p jL۷nݺE.O\xQF5{ O'L@ "*..ZKUVVY4% Sl^__?g//w_XX 3#%R>|xONE!Cq$%%}W^}m}}7oɬx ITEN]]ƍȴe&vZHMM3gN^^Y^UU3iҤf$djSjp˗/'#XTWWyP|ZZZ#Gy g )}sb0AAA}AEiI,MlH_ܲ @;Is$_n( Le!fƍ׮]Zdt...-~ɓutt޼yC,o3lذ={fN(tX,n/^_t:F]f_mmm+f_|y3jԨcǎ啔 /駟8y﷔EI+.[344 =JěrH& SRRKjEƏС+Wx< 773fJZE]ppiTTԣGd-n9 #22ᔕY[[1bΜ9ͦԩS۷o(+++..f)7|3tШ[nUWW9;;NVTTTTTT\\\QQɓWZuȑfח>16/UlY|V.,`08c7eʔ@Ҵ4KvP>䮖s&!Gs! G#Criiûd65- rrr-Zb Bm"88 4#_֮]}Ul*jVffԩSG믿fkU5WB*WFFFNNFkvzCBH x<ޕ+W`Ȑ!f:c?օ07P'xի`ر666!!oMOOF˨\`˵1HE222~s>s7nxB 4; B! Gѱ+--FFF{miz$L3RPĘ#xn˗/ zj{{{Bp JJJW_}}cBiB!BH68 B!B +!B!rB!B+!B!+dz6zѢEl6{ٲeX #$$fajkk4a}׹sMֻwoE={%qF6_{i!چ\!,%%%Æ 4c RXVVS}ѹsdZZZtmmm $ ~ юwt#VBaX]3>>ڵkо*.͘ uDDUEooݻwb 'rC!$%"Z3aCHiZ"Is!9CBYB!B d?!C?^[[gOq8ggg[[[''ٳg_tIle˖3g_p^z988xyyڵݻw !CDGShit#GP>K[n+s.tRggg;;;;v46664!} fVve6ݷo_P(_H25۹sҥK+**[KPd(De%S> 0sLj4* SN-^xܸq8p_~)yސ#6|ƍgoo߿+񡸰06gvrr1bիI}[ 9vX;;>{sC=/rES͛bkk۷o_OOTwP-#:0Vdީ4O>dZ___WWIIIIII}܅ΝKLfcc3g8ѣ K.mjj"o>RdiTnjG 5~%۷n:bbbBdݻwo;v,<<<::O>P"""RSS Ɔ >S&yƍ |۷* 777-M)k2Hsmmm<<~x҃ĉr755AAAiݢ}5HQ,d2é>&,kҤIFjGr< 333ѷ˗mMMMff&̜9vH̚5 rrr\.zׯ555A#>?y&PGGGHOOYmff)TQn|Go߾j?C~H+(--}򥖖ɐ/Ͷeu4АmG v;PȹEo %Z~N1 YMN)YCU |~eee{2BnɃzlFGGG-yAƱ|roIl :A!5Lpuu...NJJF9{lccTn|r䕕QwP633#o Ə WfeeΝ;WYYyYң8۷/)Y!ϡ: EdhH#/_~qMMhuMM|OZb+0Jػ>hkkcPT[J)0`ccJ__߹s纻۷t7ACjGr"/u&j=O>d׮]T)׿%zӝJ d fu&}q%r\*{UnnnW^s玟ϷyIqq2%C4K#QJ:U&Hs̙3I[ZZّO^zuP$=F*9CSVvYӎU`X;w\paaaʕ+`&MO%sIjGr)rA*/_޽{uu5yHFlRںKOWA*~DXXX``/%!;ؾUUU}t h~ Gl$a\ׯ_OJJzjvvvaaaZZZZZZJJʡCiSݖBBHg%gZ:::655%%%@rr2ѣEW#]\nmb T h W\񱱱?ANNʔ_1oݺURR r#LUUdիWT%DžjIX,??;v\|933.^[F X9DHCn&&Q ~؟H#!MJɀ7@KܻwOBKdYxovݻF3f )((x| G2:| g@r.{5'CYG411B9}444H>GthV|] ?}Ic۶m#?%-|;(͖B VR!5x`8zX Я_?j4 fffkA>ddM6x<ɯ...VsS!+w\.LMwwwsC4^%zzzDEE?ʔ_AR}*--m[=Pnu*++Z󲲲r0`iJ]~ x49IĈ.V$*:}Ij6Fi2B!BEп~ aaa`ɏ:;; `>(ٺׯg2ou|]reţFMU@JJ QBCCI%[n9s+ҤMHH`0#GwwwmmcǎHR9KP ;SWWqƖ.mՐ fBapp0IIIfy9hii͟?"##9Br͛ ,S( Ç-Z$:ƞ Q&$$P}+++׬YC&8;v;(ߖB BH<==CBBobQ}||Ԕ)Srssh%""bѢEׯ_\2dҥ4i&m<͍4 6?ʡLP] G%444 =JpHNOOtRqq۷o'O,w#dFԩS۷o(+++..&xiӦK.yaڴi_}yGܐ&Ͷݺu3f p̘1>y Jd壊TFEE=z˗5'CYfݛSWWgiixb`R⊊&Ojժ#G3d:0DEE>~M2%,,(RK)7|||L+W߿_^^^[[kaa1pYf1BoFi05UR,--LύB6cn /33sԩG_fU+!3!jwx<ޕ+W`Ȑ!!,X9D!Foөqe+++,Xrmll>cR|!B->>ѣ:::666uuuh޽8B)RB!8NAAAII@ ꫯ,!+!h`> 3!B!rB!B+!B!+!B!+!쐐JչsMֻwo6f{%^0aBG QEv0>>f!ԱhSUUՄ Ξ=kffy_RR>lذvsɴXb0T ʞ>}!ܬSv BuTX9쀚?ߙL& U||k}]۷wޭ%%^IWW7!!X~}rNdXxA v@6mJKK322255u_yi:ya*ф BaGs{:th?ro:zǬ@!rء/]`ݻwРA/0UVݹsHql6Ϸ2dkkk#)lkk4{K.l26=sV믿[^ZZѫW///]v{N} .\p!yݳgիWf( 8sLXX7oקN"#ȧbӦMl2rGgϞ{ѱI&2%C/Td޽E||%K!DaҎRtѣGKKK.] _}Uii5CgXёFy{{@aa!? C ټy mذaԨQsNjM1i$HLL:Gy!<S*4*704ls!COBVVrݻWWW)%[0L1ͪ OOׯ'%%]z5;;0------%%СC9%!fyvv؟ jK i$$Iɿ|:X__OFQ ⟽d4+Ph/^Y 2"Hm۶oQC !@r.v} ʴ&U!䀕CTb <=*ֱЯ_?ɡ>HU0333??v(٧ޞTZ6m$X-CCC(//WJn'J/#GZXX $g2AVV57m٤LFPʬ3-AB3|-U1(JxV"VR-2ח/_N #OK~Y |GGfn֯_d2o߾w-re_WWwʕŋ54Uniͤ4+PLڵk 55uΜ9yyydyUUULL BaxMhh($??޼ydT[1qqq \k֬y;V=H:::uuu7nlAvP&ųv!p@T3$$d111,4@4)SdeeB CKDDĢE_>yd==7oP[Q]]=n8+++ĉ-Z$ՐfUʤI***֮]{ŋ/1̚PHRMvD--->߳gϠ͛7mV(a`0vŋS3I H!!!?CttѣGI'Onݺv} ʴK,)))!IΘ1Z!44bGxV"VRofСQQQnݪ622rvvl#\bJ>pHNOOtRqq۷o'O`O:}bhnB<:**HSVVVWWgmm=bĈ9s戭e++Ǐxl񡡡'Nܦɼrkkk-,,8k֬#F(e7,A9B3RppiTTԣGso޼Ǡ;]PP Qttׯ_+*ABz LMUuT|'2]X!B!ԑdffN:uѿ؟lʾCB!BCB!BCB!BCB!BCB!BCB!BCB!BCB!BCB!BÎmʔ)HBBBlvHHFܹsӦMݻ7f={Ē@Rx6=dȐ0aBB!,@$>>}ذa(Ν &iiiIӵ1X2a0vʞ>}BVB-vK}ݻuuuۼi Ʉb[XXt|MHH #""֯_ !V;>|֭[շo޿СC?3\:<6mZ'"u0a.17Bi&v4V:tNwrr***233ҥ˽{nݺ`uYB!$=CIMM=t<~3gN>}޽-[Hql6Ϸ2dkkk#)lkk4{K.l26=sV믿[^ZZѫW///]v{NOǏ'$$zM555͟??99dcccbbbzz1cZ4!_>!}k"P 1+TMMMOhR33gȝ,d2éb5i$B)7:U ݸqcǏ?~z͛7za9yaff&\5|3gh4-̚5 rrr\.zׯ555/>?y&PeGGGHOOW[ڒeMKp?V[u&wJWVVU$˚-֯_.64`Ⱥl$W)$rF; BHv+P~Eرoo>HY'tttDߒd@'NNNb[pvv!5Lpuu...NJJF9{lcc^n|r䕕Qc?ݻwojZe-۷oE޽WVVΝ;^Qѩ^Yϳݿ%-=*MnS!$a尣4hPZZŋSNUWW߿?&&f޽@E_%ÖOBsK|ɮ]!SKBB2|_Ԗ!HjEiHe-liiX;w.\pʕ```0pI&}TPiTnt@"V䡱dIUh4!BIad2<==ܾ7oΟ?P (rF*/_޽{uu5yHlRںcӬ~zRRիW RRR: )mH#R ~@xs6lѣGMLL޽{w)uZZ"6kŇ~Ԕ<G].rT+Ӑ4Z($٥lx,bر˙pŔ Q $9YU$cCΦm!$v ,O>3 uӧ-,B IoR'|"+דDTug/Y'J/2>/oHD)**&ml6{۶msrrP(>#hhh|ݻywީ. ~ B!+ PX\\ Ԇb <=*ֱЯ_?B!U|2dR{{{RiٴiSc+~ E,//WJn'J/#GZXX $}:ZVVe4m%@lL|!$+'''111˳8}rYϬTYC_u;Balٲk׮^ٳgL&Lԉ˗A)ȓuvv|>ѱ٦3۷oݺu\]reţFM[ %%EF3i!J/&vZHMM3gN^^Y^UU#vL޼yJMϟ7oVL\\oBB5WDee5k=zcǎU|O)A9BIV #((\h䥚www7*e$_u;Bi::gccٳ]vUUU1^!)yzzl߾=&&&66bԐ@f?5eʔ\ha(pqqXh'OuK"""ǍgeeE=8qE۠ҬB4iREEڵk/^xE===&YSS# I?Riӎ?ND--->߳gϠ͛7mV(a`0vŋS3I Q $XdIII yM*9\.wƌ 4ͻvڹs6nb^xannwQ$XL144 =J>>_}fBi=000<<s!ڑ̩S=_VתjWvl8OBi2w2dB6Î +!9tj p\?!Pg;2www{{{Gѱ+--FFF{U%!ר#o1BHCq8@`kkW_YB6CBH?|@!CB!BX9D!B!CB!BCB!B ܹso߾mm"B+DttիYs/]RRR2tP:55wޒٳgcc#NX,;;catTΝ &iiiIӵ1[B!:"8{f+bAuu;wܹs?sCڷox{{޽[WW3!Bg;3gѣIlyPPgIpذaϊO>}ɓ'wٵkŪXp!AGӦMÚ!B!Pdždv't:]lXLXnN~EBkiiiii1L33iӦ@~~Ǐ:zǬ@!ذr]pG}P(f===MƼy\\\lmmG:B!{3 ;{픔)?t:ֶSۖ-[gϖ,Y2l0ӥK 6RcO?m6h]v} .\`UVQM2~p8UUUbc^x#<99y…qOOO177777ԩSqqq]^H7c }166&KLR |>$[GGǏ?NHHx܅o߾u֑dhp8ׯB!:l9._ "CHOO'3㕕ܸq.\xa~~ݻw;\QQi&w^NNNvvv^^^DD!BN@~H夥[n% mmmlll6nٲK__bښ#FBjMR2d͛IhÆ F;wRk2I&@bbב%>>>v<o۶m666d2###Ls Ԑ xp㏣AnMLLΜ9#w2x< ]Y,֤IH B!PrةI=<<54<%պ/^p\ҭS177'/Dߒ/_$okjjx?3gΤh[5kp\j!5zׯ_S kjjHu]OǏo޼ C:888::@zzAp8ϟ?UVݺu;%zzz+++F!>sy cǎx"iҥKիWW^ݴi/rǏkiupu}K^A\ ??_(uH \]]iΞ=hffF=n|r䕕Q;xmf:M 0ظwܹOB!l9ܹrtclFb2555 ޽{O>$::d޺uK9/ޒVlt}'Ϟ/K8Px9duuuYwZZZ*=%,kΝ+Wݻg}#xG!z/l9HR@0h <RRRFލ|...ҏq4|'vxeݫ@bRڵkד^]XXr!lED!jv^ԃDJ?! T52JEE؟%bV|ᇎMMMIIIz1p@պw\.jl;H]ZZ*I3dwQX,ߎ;._ /^1ZBN +ԣG=z)))D>)++{4CbCE^P#vRH#!MJ%}MEb}}=젋 xBlf>"ifmFLȉB!ZN)566ׯ؟؛4TVV!1?#UI,kpQΐ fffSjooO*Z6m"=QQ9rlذAIz YYY޽rf#LީFKB!V;)ry=|f"3ԑ (>P__ŋߤ8l j˗/'CTWW' %?bkk,|d"_d޾}֭[nVWWwʕŋ54Usvd]RSS̙GWUUĐi͛7dy5L뛐@͜QYYfB>vX EB˗w5jԱcJJJzA-߹s؜ 3Y!!!۷oeX555,00ǧOM2%+++77Z\\\"""-Ztɓ'yjS,I***֮]{ŋ/rB!GJqtt6m|~Ϟ=6o,YPNZY,!/^LͫB!Zڽȑ#i4P(LII/%WVVVC9sf>}0W[7 :4**֭[FFF3LpHNOOtRqq۷o'O;pꬭG1g5lbeeu/^?>44ĉa2W\~yyymmg͚5b BBz LMUPZ*>L s#B!*dffN:uѿ؟lʾCB!BCB!BCB!BCB!BCB!BCB!BCB!BCB!BCB!BC:쐐JչsMֻwo6f{%7nd_|[Xh^lf&B!.hat$+V8rH++>}.\0{lսu떑NCCܹsѫWۗ/_xbqڵ3fIOO>1bi;_RR>lذvsɴX2i"Bjή>..nO>}ɓ_|Ocv5h_Wooݻwb9vk!B V; KKˋ/6'Ʌ h~d̙ӧO]te''Xb2%ɓ...ի͛7}%-H^^L6 k!r]J͓'OѣG7d2K 4"S2 {yy 8pѯ_>rVJ>fB!:9C4*UWaaP(ԴL;w. +//0`޽{y<^ cف9{l'''{{#F^O(zrppڵk׻w2Ù7om߾}===CCCSSS_YGatۺu+[Ċ+ ۹sҥK+**]Sܐhhh3gRK8;;:99͞=ҥK|EQQիGسgϑ#GZ*??_2DGGlOOOKP7n}ϟS%2\.wҥvvv;vhlllP N4K!&ÖO>/^XZZf5'a}RWWm˗'NrBKKK;|X[K655EEEEEET ꢞ^cccnnnnnSLMMEo߾uF311h<(((p8ׯ_jV9ֽ{jjjzA@7# \`0rrrŲNܐ^^dgdd>}%O?m۶d]׮]_~}… .,X`ժU?x`xx8'yǏ|رcyyybSTTTlڴ ݻ!M9VW "Hc˜'Oܿҥ(L! R)$Wo+swΙ3vޝ,3g΄q]pÇwLLLNL%(SEDD2ɓ'OTʑȑsNmm7oj:YCT>B!͇ٳg渻7ٳi4ZLLLK]"Փ g.//o59oNvGKKo…ޝGQ{LH8Pȍ hcrDk׮ ,V}ꫯj]TTӇ ""f ,vywEˏۿZWF=Xsy睓'OB>}؆vg^kܹsKJJۇF]ƏҮ]aÆk֬x =='޽{=o~3/FB2O+ִ5ߕ9Cy"X5~֨g |RrrrNI9Wj?h!"n喗^ziΜ9/BWd2fINN~w֬Y㏯^).w/Ym۶gN_7mڴr 6ܹ3==}ڵk׮ꫯ̙S~ 75jftOzI4]u:B, M7d2,YbmME_\Qi7(,,Uyׂ2ڵ9nC=zn_x9Lǎnj#"g>Or=ZTT$"ެw"RVV-Q III3fVȬ\_ND꫿"99Yڹsgvء%KL'*J}:TQuUDNg ݻwW)^xa$nٲL> XKkPwQZZɩr =Xѣ682[lIOO6YzuOJhhhmj;Z @3Cp |(++; {}fddjh.BhgnM:U,\PCڝwީ]?Y _F'Nm6mǺu~!C8N h_PPs8p@D?nFk{"W_UgЬ[#xBlڴIQQO? ,l4M&"WNIIٳg_XX'=:v{L뗴?57`{D_G}[nXmciwzK,y7D$%%j֮5jwUpfi,;Pe>6"w:v?~Ϋ֯_rQF5v5j͛Ǐvo ^zx7m4fR\\ \CU~AS?Z'(**+Zn]uW? 3|SΜ9O>?~xxfpwW>2G}iӦZjժU!!!Ff͜ ƍdɒ˗/_`0xZ֨QW5nFcǎh$6lvy[o*>>~Ŋcǎ5ͪ^pO='|b2+~xuf2JJJcY&peԨQu]ݬnlrԨQ ,|-Z,[KHH駟~j.R|#FQQQÇ裏*~}]JJJNEq8m۶4iR9үC=ԺukآE;/3X~ ?pڴi]tta̘1+WrĬXn QU'ϟoXj;Y @h̊7"Ӿp4ݫ ;L>ڼyرc 6o޼ O%%%mݼ)UjV<~[|llH S.Eۍ}T-ۤhp!8 v[M[}m 8qqf,"Y,@_o؟fHnp@S@Cp4F1qqZqKBhW򶢩!87dfe]wܭ, YTRxX"=%##8 <SD$Ozgώꏊ 7rGp4^ŋ;aw߬Y"x!x?=i>KDʤ(ƺlL){E$닥yh:z:vtMYU+0@p 8!@Bpne;ݳ֔+d BtrrY6Fw*ǎ8`1 5*۾Vo)jq8t6:d:~󉈴hyz@o ҡ|"4Ξr)99Ö-#GVB9Ԅ)"lY$є=DԩZp>}rŢu^"">|eD\ 8 ^~)PMhJY1h6;ޣE ǣ|M߇iC(!ԗfNQvl޵}{ȁf:y??:55Bely&;<X`˖-#G:IMHtZֿlVex"QDz׭ xKJGX"tZ6n\Ѩִ pzUŻvY "rℑ)fk4 GY0jS~C0ed6n -<,EEz-n]Xz9;GEy00n4Z"":֤PC@աuSƖgjS?<7DwdW{XPbN%pEExO\\=;/(Z?к\Jffu/m۲`)g!mÇD$' ZA 8aش|i=jx;v̟߸1t,z=yo-UUD$%%?63mZKGͭO_S?϶m!Zd("fΌq5ӧ0zѼ)"giiW3̘Q~XϟW))y5{渷n]K[SR"OK/҅I>^2]Wv+;vo֭T9lpN  h mj=~XZhI07Tзo֭֌ cqUf_tMwrrYNZ9@3Hl7̬8q"11QD6o* 8D3g6\K|¨߄B=~Y(9) {ЩSt)M}D͝(&S3cnj_|1aB!ԋ9e͚,#є(fb6 Alv[8OR;"s+VD8: ԗfN5< <͟R!sٲe"y&;<73llb=rXZ3ԄO׮ef_'E_?{lwݺ0G.tHۊ!"J׮ej-=~|al"5pN4sFUe(G1]BPCpx<…Q;w:e:JF)#ôqch ,f)*kuuoi{tv*0ҥƯQS6l=|$"#Fv~ep&h<:DR+?z"#Oן*٬zvv.(?S[T6|MDrr ed0^Mʗ&1~|ɤȎ!G7n :$Uܓ(RUEDRRcc=ӦxdEDxG.A9t)KD\^pC&8+N}U; חE䢋:9?f1A BB6jDODnVzy/z&Кx)[Z3elk#9R>GHEf6'P~/JHJr?HRXߵ˲mUUeǣxcY#9l/-=Ç/JSR˥|5X/.76U'ޖ-e!!uDdǎ#t4Z䜲reád^mm!8St_;[*G`S "--=D{l! aa\84Y~1.+Ch9΀i-~i9mڸD~!?__JfUY={NJ iBFW~CڕJcoz9֮ O΍+?l={,?ګcȐ^пmu:<j+iio (+hxMrmJZ"b(~Mp+T[ߗ(bVxꋎEdn/jɓ>}Jlwߍ3pөի!+(Я]vmS!ԏ}NX8_.yT))y5{渷n]K[SR"OK/҅I>?^w]ۭRYR\s(9l̘"/s T0֭ǍJ7ԛn*۷tVkFX*f/:ۦ;9sggٷoiTw~sVDWR$<׺W/G׮et%sMHllfgfV8("YYY^7o;va͛G@}9 1?HSJBpC MERRWy`9BpAӒ-[H鞵5LUȌ{j+ؼƼ|ϤINe-AP/l/h=kMI>Bݮ۰!TK''in{2~<jb;2|gA?u:=qqcv1:۪U{Ye/l6/oꢋJ@ey>={/{{fϞRp׮{?Zzw5$TDnyV}{k=.eg'+*"Gw-cvݫ%ڶ=6yIO1>zm"cx P' 6?P v??ZU%?_qcС{EZHJJ~lgڴ[?ֶl~gگ_) 2F.%i>Gw.Ff+Ne׮/tOt՞յVf3K8-e0~P_ u;l:P."uysc:ШrsEDrEQO]S8WWqmڸD~!?__p_TUl)Sں;)h!βBsi'Gm$S"*$?bCXlynz&T˖9Sݾ}m i ))S|-r SR4o?k_t۶ڶ- MSSk5?3$/!3//7s[tﮥ))ӧW~%˗GjB}aa7`Ͳ+r;ohv+U/m},S~屢.r 3#8D[wƥ|ҳBUi4s2`VfWqqmlr {2dEJH8Ud[;~Ͱw߽$ιaa[ǏKK  -ݺ՚a,.{싎iNN.0ݲ!sJ'"̬8!11QD6oBݮ۰!TK''in{fIM 0zvӧ4)iM!9]Z:4C[4K@N0HRR} ` 8DSSj)S\כ;WQLf"CIQ}!lV "b0"" t)JQ~nk4hϏNM lYe< ,ge#Rɤ&$xv-n62O<("ccօyYH;7F ;EDٵ/I u+s ,pV-3/ E䢋:9?[_b0ް0_HH`_\hT#"|"v+nwg:^E\*E@P0rȑ#NzY(:)6_'P@rnkҨE&N,(KFnfCO}K2;C@lNk2.Io&ոKҥW/yuE?l 5 TWjda (N=TCK@P0rHX/7WD$.9qqb A(Ung6.-oW.b /bV֩K].%'/C WCUԮO΍9|fml5+^[&Ev-/XvQUq#>@00MpIu}Zb(֊!ꋎEdn/j<9_/1ݧO-V9~qFs:? aJnzxqǣ֭; (єs[tﮥ))ӧW~%˗GjB}aaQo +r;B7V_l11o,??Uj|s hn?n,-U'tSA߾[Z32zW1}6me;7А]Vօo*.֋Hl[SdEp$Ÿ{/ѳvh=,v7@CbA! !8!@BpCD@ N5%%b vnÆP-\֦Jjjȶm֬,cYljb%* ͜ݮp-k+}gşp4@0) {ЩSt)M}D͝(&SSu#CE-++.LO7^>rd1Mb6+fsy`1tfojD11ޢ"y&پ=ABpiԐ ˖E.[3{Xl9b,-ՙLjBkײfɜO<("ccօyMllyO?U#٬&&##Ât&,+*{lctUJKԮڽz9~Q23+WϛRzA!mÇD$' ZA 8aشv={:Ə/4Tٱ#dhU|ƍC{EZHJJ~lgڴ[Oְa\CjjHn᭷֭l[nu4a}U #C"GNN-Ͽ 4poX/$Ÿ8ѨFDDVLe̘*sܸBX X9ȑzY(:'?#Ǐ5N/<J-֤6q6[6!!>C'"_OμY@="8f+TvrAKDWvPU-2LN.?0l:q "zz㍅m6BC}7X`"RP߷T M #rsEDl?e6oΚm5UML,_lU>$P/"6e1)iLQCS:[XEqjxT2xZt.Y/cGgǎg _y%+SO|u]hT.<@CbA! !8gRBg@SWVVF#$!8!@BpC !8!@BpC !8!@BpC !8weeet6^pN4K!8gAhn~CLǏ}>-<>sdf׮ ;xdV_mۺX8/p(qq^G 8zlYd`AfS!SZ9933"׫دX4p6|_sI…QJ{>,Yujxʺua+VD6ꍢHLKJocG ]׫hk)~c)'Vբm!6>$w}'_|!%"aChYY0M~Z:-r>sy .p\""^jOO7m^v+FZuy.6d0O -[r!8~KzSKGy]]n1cM xDSFR֮ jw1r@n? E w`]5*|Ŏt\֟pݟ_Riaw',z<ʮ]MB2%% ~)w&&&*++F].ş6dݺ0Kᇰ!Cet(y܂á><255DU墋c%&?u@f:Çp"SaChޥ:Z/CC}%K"5wk=6)ߏfnڴi2333lt*Nxd̘k)餠@PWǎ7m ݱ#hT/t„„ɓO>޿߬ө;;G*j-\_8~?UpV+ ?uc}"@u"E+"znzUD oWZVv 0=`%M {NhO-:ckXL uW^R]xo̘"KBcg9{ruph )۳Fukw- W EA\~G%Z""Ma>;۠+++_bɓ5z֭{ׯ6Yw.cjTt7P/@ȴ4K̼<Ì Z:6?h.+IM z?DmQ ڷw|mxHv+&"F܈pCa+\w]v7+V_q~޼ ]T$bΙ^ 5k2}{א!%mۺX8PLOXqYQsk)fRP!ԛoϯK7\=))pzL+BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpùzDZ@㗕{MFnw|h꒓+|淛KPl6a7 LVZU!g?p3MC8Jn @pC !8!@"b KJ i PV&Ι6!@p9@G9w+۶mK〣#@ӶjKV䫯̞gUY,S/o?uKhOT;9l؉ΝOw^=kZZRيIIII+<ўr,\HCh9'travorS3fXW^JK珣IQ>(>]u{Qǒ% &_-Zp:"t:hp!89s\a3{1c~3_^SҤ9slӦ4>t޼&k#FG/kpaZ)Pv-nyTEg˗_=E;?PO9sWUDtMנK7 ͛i_E1_ڝk~J)V&"W_yƎ5V~mDmI%"R\~"}֮ }u0_YY_|`Ei9sb2E*OJ |t::tرBt: CXXXVuXؿ,Gǎ/M6;vv7119rd߾}'Np8:.222)))99Ƶiii999eeeF1**]vݺu3kɓ'_}^{jm݅VG]~~ŋ!CZhyǏ߫W~9!PzOb&SD""^oq*?}m&:%Ť"jrp(ܹu_D|>ݤI痢0(һwo믇,\?z8xy-^X?5["b2DעY7{m۶\{1u֕_z?baNNʕ+b;t?ٳo$DP&O~+>#~iÆݻ#~p,5=z?899g˯Gx32Dt%ߦNi׮]ǎu:x]v^0q#FT,JuAu ̴xvǣj^~~~j^|:.""KKKxA}ܡC-ҵk?5S:==]Kzwtԩ޽{333Eõ?ӫVZpUϟ?I&]fx`u>}dm5/ODdР]bQ \GPeXI/7 ұnÆ4tlܹ 7p'.5^vmaa T9-&&FR7kc'N/0 :,濬73 #G9rd^^ޒ%K.\/q&jgnKMdZ>^׻778o3fg&Mju˅+Vqu& fstU_k*"g(--n;@nj$66vNZqϵDDbb* |迦:gwiپ{@ӚaFbb@ <_dg"82ok룆oFQF6ΟzD9߼hʠAJJJ^{K/nXxmmny׮]0!!a̘1)))w}wJJJ#lW}g7|s>}^z饂~͘1cMSy63!P3#Ft릟2|-Xlqŋ]֬Xt_-"*;wz-,y_ ,-"}}S "ӦIL&)-*R?T5jԨQ|… 7lذaÆzjԨQ&LKB۴=ڶÇ(gMIO;Ţ%"##'NX^y޲eˢE/_}3~I&h9x*S%3;!Pc?:4)W/yy#G"_}5$uNG.zW@.PT?[ӟjv{yˡCօ{W_6{VE_Jdxk'ܲe|pe9 ?""b5JD\k~tSFE u>deeս%%%XtWd:uEf4hu]7o޼;۷o&$ QСCÒ'Oj騨Zԙ%S_`ԩ襗HJ=%>|U;8yƱj^ G|rgw= Zڵ+sneŃuG;q ?NڲeˣGΘ1cȐ!2[oUf,~NPUU߈tOujzk׮=p6,--mҥg_jUU믵J4iii~iڧ8ݻeW^yСCׯ_pk!WD QdÆ n33 J:xSse.UW5ĩh^ II'ӧMߡא3M*+3OA O_ɷߺOҥju֏?>zyY]'MVre7=G1}׮U,i߾ѣGW}^?p@L+MLLl߾6ft:WZ(^׆+o׹s{H^^ ju\PScXⴡ'O~'QQQ!zjݺtaÆM4+ t=$xG] ^?ρ& .E9hȲeeII[o55;v_Zz|=gdΜt'"S̝9}:/\h+#'h zW\qWvi)RVfs_~^~}|Wh<#99YK|7X  |<I@={_*LO4hxaZ)P23}/@w{啐o :c˖:Qѣ_~Z]?ԳZ` A_aST+c}5%бb*FMq?DkaNwW^zqqq`0 4/Z+rĈwjt!**k׮^{m`I^?|kϏ0 游.]1 /6m\s5m۶=WmI79t ڵkg2L&SRR5\S9h<n 9lzYh`II!]Rڹ @~~ŋ!CQ`6olF҃?? @cahl*++{}s^ &_Dypjs="W_,++kǮf;p@vvvSA1kt!Ή.]Ȓ%KJd("_~esr}I&UzCX,)--)[\\L;!54III/š5kߟ_?V.333OުUYfO\z}g0>L/\K9rTx^zcǎ]veuF5͜9ӿ,"?i {ǎ޹s9sUl陙ڵ}3gΝ;8~oZ8Z 6m l-H|333{6m7n\hhY۷s￟,hrn𪫮={8ԭ[nݺ]{'N˫W\`Eܹ3<3dȐ[ovb'N_֭[cǎ=z_7曏>Y.B-?""b֬Y:w}WjTKEIKK+((r*۟GyDDTU-../~ho^o߾}fͪ۷k-бcdžAc=f2t:]֭g̘?4f=۷o߸qc?2!!!^9 F-//٨QN:Ux*!!A{j„ ̋.Ù3f 5  XvmffNfe{Yoefffjcqaĉ=uoŋgff>cg(SK,nff+N7YjڡC2330 8|p_{333/ў]tizzG4jԨK&$$ԱտE6rj*?dffk׮zt/ӧ͛ǍO;BVX1v:fiüSU?.hٲNHH8q_]eԗC\rh[}ǎ[fM`E$**J{ƶYYY@ /0|o"OjaIc޷o_UU |jܹ"ңG3>"^UUڛ'NhZ_dgg曣Fٳy7`便eٌ xzѣ>dNӻwoQUW_DO?U9vXQQQddd.]}wW_}5gΜn>E-Yq%ɊΝ;+DADDU |!m۶b5>onA^=zTiӦMddݻ?DZ^={vLL7~%)--MIzYᩋ.HKٳ֫W/_WCoOVm۶U?~\D&%% :40gĉ"R\\e˖:ֿHDSN߿~~#|x<=ꫯjkDFFN>}Ȑ!"2k֬|{IϞ=7lO }:] E:@p 8DDV-wH &T)^0 Vr2HIENDB`python2-pythondialog-3.3.0/doc/screenshots/radiolist.png0000644000175000001440000014655712507731135023411 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxy\r**xxyam)y`b?L]jZYXy呦m^  ( }a]8vC~3]="x P sqaP/,rķ3% )CDTRgmuEhG VȁX'b(ضΕ NCT{Ua3\lW/14Ǻ1 Ejq̤.Z^f:r93NCgKɲSX`ۡjT;8l+,/m !;q|GSFL& ަ,B"_lK~8D PiKipevb:hGHDitĎFW4kT7rbKOWDK+|r f$8CoKh-]Gq&XTm=kz@9FJ6 \GsdT6/V%odPzOD}hR&"JqMɜ#dP[R@4ըV VqEQ|{lw0ƕab&5:'OyBjWDAJT|벱{ YkEtJS_h&2jPZ זvMU: ϶oPf'zfIhh!z,&&2/јV St+}ךR_3Dl^iچQ0DԨ?_ZKK f/ 1DDdX->scW,9 wp^ Q dKF]N -Va[/l*YCCګ?%)e'*6۲Ȑ5h-^}kS}ɯMtθ]@:]zjRbJ&0Ep(!Z$\rɥåX M.>+ KkV*_+)e)+dWPY3r;2K5hm,EMp:jONĢ@+RHoD!( %KD-0EpxWO+HC#D;KcW̔3ߧ,4=-W(AOC^+);A󄦰GzLAZ'l8bJSKE j+9Z%u6cPJ1ܠmIO=ZyU+\E4W5)-A%KRNi=)XJela>7sY&UOCDDM+UMYY&U}Jk⺎5Qu+-OK' p-I. "^QcÊr۔n( 5nn--O{SlT 6H5JUףtU~/+*?,q%f`bq )wǀ9-: "" VIU֧4c# l;z}_:YȘŠ:|d=)}k"B\sOid>?9ȊHV0LG!}k0f`ʶSLt`h,n,EGHDYHI+عRYDj㬦,"z@lɡ*U]he`!K2pwasB+e`0K4x#gA?q){یDAJQ?TM {K3fgYĎL^p?v3pngvz#.5bECg|KmT6DEe2%!cUGD R JZltnXSO5R>K54+xC _Wф"CCd>}Z)E4h(% QK54QMfٯ!:BX: (^o/E ґbhv1 Ohȯi(}bTڸ[M,bu4VpERu*IEW@tWO,rXf*uLVVT-nؗ<^L?U)-&"aQ.-REW]Ծе`X2May h~jDd޵&/A)UDJQ!yLTo2֊[C%hS횁 RDzeyr,_M45)S+:zOhZ}7 QQT4PלWJQ393$d(GOu_CU `;! <ń4P'!8!C @!8Bp!ʯ`PkuSWrX8C@p!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @D"TAy)) T9RTB݄C@p!8Bp!C @PJPjj**9jnquuEX U;"ի۽{7R 81ڢJ%jƲ 8IHH09zhԌel!8Bp!C @PP͖s6*&r!úor|ɓ'njӢE \.˛6m<ݾ}ryx9gϞ8FuǦMhׯ~vP&yyy5ly=E+8E_4}MJJh4˗/_|ٳ6m?=P!8U5kzј1c!C 29>>syn]N2.../8zC^{5 *.KIIyJ.8BuJ%ؠ*(@ 駟~1c4lήK.;wdDtYT aB>ÖnݺN:[б|ph֭[׷of͚ua…Fi ϟ?pvyzzvyQ]vKq>lxx[o٦M??E?}YݻwF رg|AOarϯK,Y"g̘ADof^~KrURh>*ɓ'W3f̐N#XjmtL{Ҝ;ESRR/_޷oߗ^zy毾_\\l?ޤIÇnutV駟ծ]3gvJިozҥ\.?zSܹsrM6Xʟ{-]_~M6ݻŋ*L\-<<Ç}]G;vر?O٠A~?SPP޸qc>A nڴ>#"a}v|||xxxDDD0a† ܹs5pP"ny|7k׮aoo}ӧOϞ={Ŧ: .tܯݻw޼y^˥KXmٲXWp5_ NT!]r+j*" bbb_qƮ]VuFD3z*222))I Ϟ=]N81&&֭[7nܘ:u*_&9}Qǎmyj9sC]-]믿VpUєSN)J{{׼*S6lvgΜ9OѳfR*Ǐx;wܹτ-[p͛"`U?7n<{P(/w[[S]SJQLܥK* $**OYsȑ#K,j<}4ݸq?wvv:eNo<}r*+++nwg)7 C"W ֮]۷o_@h"" 3L6f̘͛76~;;@?a/"9SNz'%h4bx|;L&1b?P8q"}]JOF5L[\cԏ^[E[.W^پ}{V΁G4z褤-[ڵK$B"f8ƍD4m4aˈ'MU]?7)ȹNdRZmNNis>|L&?qQTr&Lo,(($ɓ'U˔)S(&&&==$Zb0B\xbvva-qc ְIm$&&^r74oۛ.\P7VX!Ho>`2hDԵkWn節6?)&ިwiu666 ܖm۶\X"JIID;vFm?z/^\~gիW4o۷  k[fO0&&q/Rf͸@IS充F333wqܹĂû۷wrr?~i|}}LvT*5jԮ]Ϸ~ĉ''):t0ʄVsuua#?ܝ:uHNN>v?3V]]] I=ڸz*1 655&~Gf&WO77L"4o޼ǭʫOɿ7]gz梾/FGGhтN<,[J{iӆ zڵkD԰aC.sSHFdOO`Ʒ#G$N:>)8,+k'DEEM<977ܚ5kumnVZ ֭[7gΜ>lmm;wAqtt,,U8jbj|יvzŨ(&Mܿ?99ã*f&sss3dD8krNP\pxuEzm/Zv֬Y:u[l?Ϟ=)&qر/^~=!!!,,,,,ĉ?sMZ۷oߦM7or:s#jVZj /]Q~<)gU5gϞ۷۷ԩw{j{|I},Y2cƌ+ &kMVV60>.{rp!bLL̓Z+ի$7o6ZvZ&sEFF?Μ9c8\ziiBBBh:cǎFOhQ~/~\D%*\.nժN;v?~\4nܸs5MOO7k߾}+V4n877w޼yvÅ [jk2R=w҅a8Ju 6I&^rȝByl:bBpX5j$Jsss/]$۵kGD-[JQQQ>D rvvnԨSOzU-׮]M]3Ę1c-[ ֖Jrw^}ƬEmV̞=S'H4sL"ںu]+Wp1j Ց]jי^BwDkeehvR"ş| ={vԩ={p˖PAAQ$ /2LH 7qCLlٲ?ܹs]tqttT(*c…K,y 7nܘ7p@wwwn|СCΝ[,{aJ& B>ꗑ={6mڔ9nܸ -XoݳgOppL&统1c3f:t!Hj6m:k֬իWڇ{ԨQ7oޤ'OESw}-F_u>E ը)qƹsFDD9R"H|$b?0xw~'_}UMv2O~ҥӧO˖-H$ΣG>p@M|L>M^\۠Fڵ+מ)J{_Qపƈ#233?3gΜ9sF*₂en&?ÖÚD 7lP(^}燇?U 48x~{ҥdhѳ6lX,>[>|XTT԰aΝ;O2_6U52lذ!wþB^=mvռs*Ç<''d +~ѣQ`n)))F[1!uP(H$[Ʀ2/Gb$Fb$Fb$Fb$Fb$!uB޽wލzgC@p!C @!8BpD$BYr.#%EaqejAW9C@!@ER)CDlb=ػ׮sg!EDh{(@sJ- e{u*,tWanLN#:ڋUEm˲o™bzȁe~jmu(.vkGbnV7ްam@Mܿ_?r`-̬Y.]Dq*3anwߩeK…&)t%gg0+&Pneˬϝ9j4NnohӡcYpٔ)V͚t zO>r?ݺ!6xlIg>\JDJ%7*wߕ3l{1LS'aDpHĴj%lJےK_~b\sv3Ӯj=Z\~ILz"|EWO|yɝL}du`Zs"wͣGrs`[[fylM`eED$ҪUx݁s1܃ǏWY.8vooa$'6" J-DB3gؽ[mœzKbcB`WPk۴i}aky/pXk? [-[2D)o?z::2&X~99}_Q 5/IL?~w SrlܸeNN5k(֯/73/Νll*nlyyMrs=OӿygkS~F?/L9:4tG-T/1ѣnW{.Q˧N59|Rdg7xq|'߯*66_L?:%"R裏wmԨT,Zd},;Qqpu~3$V5>\\~KdOհaT*Bhoj%0RSjlNje|`-1|1{AvJKsU-9>VbX{~~j6T.ZTv< ZKrVcҮX,Kkp`֭N̟i kw][Ӧk{Nga'S 8pvnqMNv_t[ W W^97`_'oڳu> k(Q4XRIY/jР;w޻wڮ]f%~'ܞ=/yy֬mCuEU{@LV<K/ HpzsdezLzV&X:dƆٵv̘ʊAءpLLk馟2t3={z͚%:-]-HD[NRV WWf0au@@vo( ۞ID"0@2,(sk\4yp:/(F1;;[9.]W٧JKkt7nBjBЩHX,J ֹ?~02Ib<m_w]]\@DM!5~02eYedg^_@D/$JDaaZoD'CkF? lN֤WyPT/Tbcu UЫʊR槟l6qp`~֨򝜘KT2c>&66Եkɝ;76cRޫoHA3 Ф`0GGLTTI1M}H oP/g7ͨ0Mdd1cv:9k~㍭~~?=oϞ^ҿ޽lɕ׈qJDF$?LOvwyln}A@>증]ɓuq;p?Z߾DZ/tU*M; i:~{Gvtĉ[m4o{5PG|}'7(2,ǂ՝;OZPԭ[\JׯK޽E|Wv"[\܆ yp֭{nny:廻MXZM $ƍZwrm<ƍ?fI {FWem5UdS= >=ْޞ <9yRW;p`!?Ԣ3)C^+|"? g=<={D>&X/j==rZ)e+_f}VTr')eNɟdg>(Ft-h+A TZ-CÆe32Legdbڛoر vvkkrC[b@/]ptυ _JÇ ('9JIjjf(llŏMNv?^/((6D@OD~~ak̮.W!CBӧ9Sl/mJD?0}3' `/ðDRIOЖcM+h#_=Ũ^O4Ɋ_OU/V吿NmTP>+?\~Ͳ&3CB|16lPmŵfT4}z1_ӦY򊘈FҬ;8aH#)tDtwϟP@ҥWz*(`M+JLtDkTRȷ>9sFSz>vL0ԭkW\.e2l%Ax႖+D#ĵ\}{G5$K[ {wQrɓ3g4gjGW;Oz>2vS6nw[7a7{dYc`x6%EO޽VC5|zUuS|JĵnҨW!͵ܻh˖MsR^ɷ(-]llQ |qX\G>V;( s;eN"CjBphi3.",B!'h]^5JвeɓcֻL*UVo(&'?6r.8tt3n>q>}@nݿ߸| Ӹ2Yر*ήH$j*4Hj}8;j}rqF"fF)&8{)~5hPr;mɘcfD"j͸|<-ON. 4hخ]E}+7I=l)V;(Oj5mP=sh :; ޫԽ|d٩OIA}> ӲʧCb4B|X6=_D$Uϐ[nh֑#Q k>fjCoQ#- $к{f+1RYӋ~}W!>} rG\>%?l U*e}qPDG>nn+DA!=} 4ǘ'%`)z=jgcў=jB{޻XQr]خ|ۂ@~WhX`"#naӦ>T>S ~%$''W "N""juV>>:ŨR=KKۖt:,$2ď3lVh8wnd+։'d*>V\D>(nk֨ڴI+ZԚ0?r6_b e(,y6W@NJ*z'=vvYh ߥYV}fevrݼy7U)>ݏ{Պ 9ݶmXY8c'\"5''޽{_ Oڵ~oX=Eǎ2Dt-[ ۶-}USZ-BhW@o\s,ؘ:U VƮ]elboW>]!3tK?t]^"O`tɵko)VFpZ[7ܜ^^,&epZЬ`*9917JJN|Ug.SٙW0/AD6֫LjDlu۶qs3mr?_sU̵2ͮOq,wPS*+#7W (^B Ma1N .&"__5>ӧ5S6r3'Z-?wv+U$|…? :>2ϗ8>͹sƏnՊD"-`}MQQ}|bG+Ȩ\a⨨۶M6"! Ç eB 7,[t}&Y[T/V~hawOSVNJ.L6*J#$ΝIIqq:%sJS"Qe)hQr-ߺܹHwΝcٙ mJk,-*b >ݺmTӦICaxL`>de2o3ٽF;X [QX\ё7lPq[>zBk)?ܧR=fvTV` V\):9jdeEJ%SLJeUv6{S@DGwd1c |B!!%{ϬCCյisg3ޱcP}9[.=WM.ku5|dȲ_c/eKE"mrCkz `#?ֶ §1+;_:TlaWR ,Y[3=z&L4Ɋf-xMŋCggWԷo_Qe3Rr[>n_tG."C*74wQ|f]I7Tu+c0T.,ڵf27"Cٳ=c?J=3gdBkww3fKhdeE,?IhjjRkcTV>}J>&VVʓ,XP);;mU P%-Ff&͘8ʄ9OTj9M hQQ bիg ޽&z8|xp^}a_4_~o&*A/vS*%NhQm͖;{z*$6{޼/W'0|J2if?v߽۴X sroQ|t|>@1~ooef:ѺVmeN;bM5da!;bDQIMիT\6lPU`RI vR߽/.fu:at7F*{e w2Z2hĈ#G4FC㚱c Ǎ+a{z>c ٿTXg/\HS(bUEϯma!?yٷoI;Xl.4_ZZX}j„? _%/:]ͶC8٪'+%Z[t׫~}Mx8i7Z#CϽ/{|֮]-[=V*%PKϟ\dx.$!Xf2[[8<hbk"e.SܹYj:732rΝo9ԿI,bXVjaؾ} UwFmRfl=|MQ\{fKk(׬Q 8<\^Q[kWΟW}}#5#sr_o'N !80w~rq.Kdc2aB@pZ-[+V$ \w߽ wܸd |r|ҤI ;w\.W۷O.wu&77wڵI2>}MGr#\{St)ž}5y"S21 x>3\|OMo߾5kwXf&(((///00$d3g^R*Hpy`Itg^LդI *3CK{na&Oll'N( CCC322P/!CYWx 8$S*ݻwoܸ _~޽5Mpp0*$BXݻwѨQLѣϝ;gϞs>]INR(uwWwZܶ0MpST:}^z|A>'NHҙ3g8J'%Kv1lذ͛7GFF_>::QF[tY <ZԄ"֭3LNNNLLl֬Ym^O!!׮*,d۷WDlry_b\uRUE5/Fvp% ))ݻ:uR,0hMvY"jȑ#07|vZ"b>;;ӧO={vsQ*D$Jj͛7o޼y{޴ig}0۷+X 8P(t*j޽111Ǐ3 V z= 7''gС>%;w^ٳRc:uĽuzzݻwMX*;|=~ѱcǎ;WN0aÆ wܹvZN^JDU yk֬Qz}w{nggrN:ѣz'Ѕ t:{ݻwo޼y|ph+t+4q2y&à QaH&qL{)WWmff~KFG(,ٮT BCK=kWbQHPѵkR6nxYP_&$$ﶶ{gϞ.'Ns֭7nL:֯_qѳfR*Ǐx;wܹkCffU(00~zllƍvZaɏ?gϞߺuk…D{С'G׮]=<<*|W_ -նm["?~|3f԰O8j{턄uYYY]r믿6JaM̙ Z** \YtttBBB\\\||. o~A///hQIII߿vssqFLLV<{lllѣUPzzG}Աcm۶EFFFFFn޼6ACMD-Z]̧kӦ EEE*̾}+t4°h~}E|6, .](i+93sL>_.6r?66TT&?L[a߾Z-SU*ƃĒnZO_k0h6oLDoV@@\ӵkW~ ݻ^ٙW\٧O"Zna˗k4krmb__߭['O󉣣5X,^|#Q&1{򊊊֮]۷o_@h"" {N:뭷aY_&"P8vX."ڹsgaaa-{J3fÆ _뾝]`` 77[*y'NHDTT۹f޽{jWȫjcc#ɸ>>> <@8 ]|[n4h\.Æ ;ph+[a\iiiSׯKƽ#\]D=$bjݽ[6stVVСkkXز#G湸h|}7W,EGGgggф  w(qAAAdd$M w}U"b/999?~ڴi^^^O78GqmVW=m۶5)WWWWWAݫzP*33sǎΝKLL,(((((JFڵk׾}^{5n' &jGI$_|[eN~#^^^Oj%C B:}qbSkjWPPv3Tst,4UPAgmU*FQQʼnu8KxDX> +KLD~\+ ˲O#PM%֭[7gΜ>lmm;w$7桭19ephgW5(7Wh27dQu +ںU\jښ0\|899Qnnnବ,-|L-|`zzzMFO"sEFF?Μ9c8̢U8( AW>x6olRiXq҄u:]ǎ|tב1\ZVZѝ;w̔?37giPs ွЫqcѫA #?#QVVY ?HkX Jz /y(Ӻuk"RTF (&&hK˖-֭ׯ=ML߁DԹsg"R*4 ׮]eX0fԫT8<== jgk~PܨQ#L5ʘ1c7ިJ's #NOOOII1yIIIDd&o-A9tȁE&+KtaxDTZ޻'oT1PT$i٣Gۻ,G7oZb ۷. _|pL&V_";wQ۶m 9e VZU0d0ICj5s 888ÇMmzzٳg ݻlmm}}}]ʳ'?$Ugoo?l0"O⬭GUkCN*1ACѢE '7i]vd2Yvjsu{!ZO~+?#hEsrllNN%_6ظަM6mǯmء_]Ɋ .mtL$bkX^RMN_~`N:}.[w^nvbNNβe˸% P5}͞8qՄ-Z5tԩSmlljU:(׭[7e͛EZرcSL~C dyJT3xaB0̸q6nxȑ#G6snM1cM *,[6(k> L>ҥKO-[&H G}~~~ ,o, f̘5|||6n8w܈#GJ$Tϯp`8 ˲.\&L& W 57n8p;7lСsέI ?~V.wpBd.7J쥧|EqUZ*ʓd˖-ϝ;ץKGGGBR<<<.\d={6m޽{D4nܸZ>%tW <ZM6:u*??ic Tn-?}{ED̓V cmͺku+jVWUdgrCqq1Um[gȒI͐!颚Ay'O߾-Qgg]ErЌ@"h۶m۶mۻw{D"ȑ#/^k׮ ӿ{=zضmիW;vh;g.\غu\XX;rH6aÆߺuÇEEE 6ܹ)S^~گ ܹҥKP'CpPe..!CQ-44`C@RDB!VV/vvJIzLTЭlٲE.X$ `&EEE 2u Z-Lnnڵkmmmyd8}~i&Lpuu5IiMju@&6k&0&0P|"ŋ-kp~@BaϞ=ǩIIIrha]\\LL&9sfQQիUh^*̾}DZ(*>-~< ObmmZjʔ)Zݻw3 3ydf;qDPal,h0)QQd9sx=ϛW_}@phIۧT*w޸qcf[~޽{k4`\H$bbtEHMLS0В޽FeG}ܹ={̝;׌g[f6/{V3܈{ܯ_!}^!"++vŊ=j=ôbݳR(vʔljX; \lNQQR:>>Æ +8%%eΝKIIaiӦ#Fx뭷llljWؾ}{\\@ ڵw}=""o _}KhٳVuUʹJx-FjjjBBusy&'''&&6+ LNCD$==MaBA~-( z$6!BB]+|),d۷W,seـ BNRsqXloYv-1 coo}ӧOϞ={5)æM>3.ggggan߾n q?>gRIDRTV߼yܻ͛w{''" gϞ yWuUʹJ [￉H&5o{xxp\w11FZcG?ĉ''d|pYW66f܏Ӣ5WW-ݽlzR-fBaY?7 R=SZ#8v񄄄={֭ܿ[ .$C&;{, M81&&֭[7nܘ:u*_.@ffU(00~zllƍvj8::z֬YJr/^sΝ;wBBBbccN6N>Ef͊=|VvU2ꪔs7Aˡň&-Zf ۴i5i$dXT֢mg4Uj[կ_aF"JIU/q&3Kz[W?%E| (=]fM/\[T>qnSdjD;w:=z$&Kl{*__3WEEE?S>}aѢEgTTTXXرcd?u} ʕ+֭[W5X,^|9V)F1b˗/h4A__bw֭'Gu[.9emkGD:=+[2,"wORa7C22DD%:p=Ð,Ydnݺ/beqΝDԶmFCOJV^^^>>>Djժ _\FQJJʓCՆC.](88p{ZZٳg˧oҤ EGG5==|9Wp@y-F->mu5"dڵ3YZ-R*TҔ'NdǵJ 6kV2B!XuR'eBaLMoTB8"JK{l{ZcW66z''ƍ%)n޽KdY' ڕ[䐈z(z&35B>=//oɒ%aaaD4o޼jwLJ?,[ݻDdÊ+bk^f ӧO $"___DP('E2櫍ٳgѹs>""w[oh!n Eq[oI$WuUʹJ`fܸq7n3|ޓN ښuwtVԶg5ѣǶmۮ^رc@??d;l0X|[n=|aÆ;w2e/\>/\u?399wȑ6665y湸l۶ݻ܈ک "Zb۹{ݾ}|pHDk֬qww߿ZZA-Zt s6_U>n0dee fv.b<͍̳qddѣ{ʤ:uS7|Te Y`oHH> h߾}{DDjLrrv(ǴzX˜CxbP~zSV֭[0xa!80ޓ&MJII1k88vۣz^Xshy/^==$*}$xxo5hPe>ѣGr\.sSSh4O:SN-[5jTpp0˲8R<&(((///00$d3g^YY)޺5kȐY j^۷ܹsO:h ._hѢ3g">!8$yyywff&vĉB0444##Ä;{AbkT/X)BCs~j^OJJڵvޝ=z!T%ٷoR޽{ƍMm{hMY\H~J"R= Z#~}̘1 6ҥΝ;e2={U ,ݻhԨQ&yΝ۳gܹsTxSi_/޺U:nѳ֑6V #]۶UVUl6bmZٳgDX+ CŰaǏ߾-Q77^^jLDaavGs?0X矲{ F榝2%[$Bw5Z`AHHȸq[۷o_ti-*4͆ ~d,^^zi!C^hggqMZ 8 Dԭ[7g噜جY3357n pz qv͆OVXYYo5 Zf>ץIJJJt600AmhM\Jd[y']SÜ9 Z@/q˲ϟ :NRݻ7&&b鯽sN\\ 5 ARL&k޼3fLDmp g.{P*3%AH7a{>~HX775'GcJŔxIVH,fu:YYs.}mYd {[.\HD9055uʔ):7@Mprh1EYB6mڄEEEM4L ts> kLvufevtzHLD.UTD\keQt48؉e);[xm߾F1JAn (1ъOP9j5ׯQ# })碢~O>DhѢ?3***,,lرOzURRߖ-[ڵK$Ah9:fʟ9--|ؔ܃ץ|ˑ#\]D=:$%K׮4]f9/cǖoDԱ⥗J޼i]}e2+kӦdB!PiL=mZFoco\5mZXE<7xm߾}hh;#;;͔?3.w,]X;T߼y 1j]^0Mrr "BB,9>`QF^oj.vΜ^ Ç{zz>߿s.?@~DTXX|ɞ8:Z FCDƾd$aAAI3 KC>MA{R17nT܎V3z=uJ&1|_9sOQ4n!PHDOYD{];vIxxzbٓSJ;gPvvvRRL/޾]s:ټC?! ee(0zڹ( 6տzզe3_PIM4!D~ S˲...Xt+-Zpqqʺz\.7m׮]#"L֮];eѰ<[D$O:nQ׻w_QFhWkkR)QOڵe"zPaC=*7a^/g$nQE}駮qqqD"Q&y"QFrh17n9r>|ƌcP3_y%y.]rL"CQn57xp~N%q˒BQk><0Qy;i -4IO =f":t萏O&M 3k,T@@ˡ% شiөSKW9Bqq"2eK, nnnݤ.ر|sڷWDDLl}PPК5k_aa팩S[R23Egݿ/)(h4 qLu-3@ !80k׮}wLO0$yj) lN_nְB!zEEhT?p׮]OIpN:\[@d(fΜYTTz:f͚6Ԙ]n޴#C[[}Ӧ%o*lj-$//o L<لN8q͚5|AMwI^}vʪds%۶ydd}(pt$)3@]v̙ Eh9$S*ݻwoܸ _~޽5Mppi H{?udl9,@ P;rhIvMDF2yΣG>wܞ={Ν[;PnܰNHdd ++Q۴W_61N#7q ibc/_INs9j[VY$8Wgɒ%;v6l͛###ׯ_]XXبQ~-]zƌGO/_|z} 裏N8!JgΜiQ/#555!!uf̹<5kVn{pR>>D4xp,JZt"rvv6S\iii_-[*Y<_q^Paz2l{P\L9_fe"cgǎ+Wl$Dt5CXbr1AnVWDFFZl"rtt4S\ܻCPdr'cgݽ{VhjGoBB ,y8c8nnnGO??%Je,!8nX,T;;S:E?bzDE;^{˹VbnܨxMI!D]4iRl bR(*Cph1Rf?''Zno oH#*`u3JkZTT*a,O@!8epe/'Nqv.3/in-r:)s ;;=7^={WU)33~oUVDt3ܦM)c@@NNe1ݻp| sƍKegW,[hʔBph1zID)))&<;;;))jyh>l޽XfW&rFfLse(wtߊ@in]WmQf0+F3XcuZ-Zdee]zEjڵkD$ڵkW;ն">$rgNB6&F5[[&5ULD))Uԯ&>+h\U+Mӵk6DxÆzb1+U*o0*๤4 ?hܹscVMsZ,Z aƍGDG1y&1cƘo6 uR])ŋ [T>IIVVV\FuXi4Lv?25|xF,fbV.׌7iR_آjƌ̖-66z1eΕ!&̘թE+Iz77MoݫWQ5 1YYYDk2))}܈(559z~޽2Nzԩ/74UBBB,Xx&W&!e ǴzXBˡYxP(\~Vt֭c?FZooI&$$&&;}^f+</:tIrkӦMppp-OR u C#zmZj*t+!C Vjl'I Zf?ouLIDATJWhXXh|dV8'Onܸ͛Ddeeu=T Y]w1IӧOwppX~}zz ִ#q֭/\VBr̙3}||<==}||O?%'O PTnnnI2e\.>|88-LPPP^^^``I2d3g,**Zz 4QQ|ٷ66ժY3uf 58LhG>rHzzFIOO?vظq6mWq<8..ϟGeCK{na&Oll'N( CCC322L݂ &%55*L;gN]؀33g:4DEE-[L8q"!!ԩSgYvŊ.]z ccch̘1֨FZВ۷OTv޽q&̶~{h4&=$HĈWW1v6.N nnn?svlllZnuVOOOe׬Y*J"A&LHcIvMDF2yΣG>wܞ={ΝkƳY3oT(7nX'$H22DbmTݫWQZL!VWWm~￯=;n\n.ņcc/_INs9j[VY$8'?? oI$I&\ҥK/X $$0.&޽{[n OMMh4{2eJ˖-Roݺ5***77cǎSN߿Q2ƍo o߾}ҥ-Z8{K,YcǎaÆm޼922rх5ׯҥK K÷o~ڵ[[  6ϯޥl޼ܹs))) 4mtĈobl<#555!!uf̹<p&!"pӧeɔJ#G+Wl|3ysTvp̢))ݻ:uRTvZ-oR~B$%Y%%Y]dՠDEEi4"޽S^ʕs_z饞={r/]IJl˖--bٱc˵Z-IRDzmÔ|ڵka{{ӧO>}zً/6U.\Pq޻w޽{M6}g\1}v|||xxxDDQnǏ3g*Jj͛7o޼y{j:<Эbpd͛P6jiZ١K%D0A _H\kפ|d(nn발.* L޽=hҤS> ͙3' .]믿֤0GYdV8pӧܹwƍ?0ٳgpĉ111nݺqԩShǏ7I大G;vܶm[ddddd͛v'\j?111ׯ_ݸqa2NttYJ/^xΝ;wxyyCMD-Zҷi&,,,**jҤI&ɰ0(0(豳E ΜiqcM@@ʪ, LJzD+LJTуD+.vlgg>EO* _!h9:F7M9--|OKӧVoR٦#ŋǏ:\Ɩ 92E0[dw (cgǎ^*I&&B0D"1za+++"***?z/^\>2] "##hF)LBD111ZvŊ|dWP(KR"j999O'11ʕ+D4D͛7& .TZ +Z-Fvv69::).g]LnBnzRYY V*ڲE}TzUto9fd0틈T*ф,r_5PnW77L=(MyQ~Lnݺ9s$$$|G\]uyĈo%e٧[qC ]L1vV||ԑǹ0<܎ 7VߨF"aU* ^Lct&ezF GSYYYFaVV@W>{>|SEDD;vŋׯ_OHH ;q?lԊQyC"6iB_cĉ9|`^^ylB$gdի}ʎ2lEpTm2))qƆO%''sj$'L4 s s-x,2אL&7۷̙3'N.==]VkɈ#6mʍK LHcAZjEDw1S\mڴ1^DDT]Frr*ޕm%]^[oܨ|jAv(;[XAIز~<~~g@uԉU/m]tQZZZ\\Slْk~S|TUrV ݻw{!׮]˽{ f,uܙJ%7Nxyyk{/8[:==2*;;;))za].\ "q> ޽XfWe=jPMkYLy>> >; ɂAdͺu^1z|劍Z޾wDw^1ojzϞ=ܷMt+ݻwÆ hʕ[ cdnݺ/b5tΝDԶm[h'N԰OV^^^\jժ _j+-???==|R 8-Z|rsә7L&k׮2jYUXR}zbb"0 .bO>Ξ=;uXn{nn={ xyyyK, #y&ӧ/Z&..*zGUݻw񡡡999˖-{. 00+bk^ʅ ӧJ]̙3ydC0̸q6nxȑ#G6Çј1cL8ju֕;Dlյ+[.7nHoߖR\X2ua˖ʸ8r5@oaC=Pfj!nu˚O5*OaK:j4LK c ׺P\,HJ*ir wRsΟ|'|ryxaŋs!jLj#233?3gΜ9sF*₂efL[`~gϞ`LVPP7Θ1cذanjC:tH$iڦMΚ5k5)0˲.\'dBoߛ?>gƍs΍9rD"J|3)JBphI6mtԩ|N>P(?N<@ ݭz,**jذaΝL/O?x .lݺ?LNN.,,trr9rlOdee n+II1^[ IDddѣ{ʤ:uS7|Te Y`oHH%H~sNf&jLrrv(ǴzX˜CxbP~zSV֭[0\w?!Ar]Vo_32H#JЭx{{O4iΝӺā_9b䈽@@vv:Q*npt :Zŋ:$i&88ؔ xBwwСy8=da&aY7mׯ0)*;[X\,I*e4m*tQh6&`I\\CLC@RSD VVPkB{SJ<<ԳggBj Z-[+V$ \wߡbZ`\._` ]wyzʸ8p[nOI6}~i&Lpuu5I!Ӛ6eL&lL2`M`ѱ7RA~~0Gd_}3͙;'gN|{٨}?P19&ʜ9)so8<^o)"p(gu@թP+;.Ytj}R N6mȐ!LJJ1bĔ)SRRJٽ{wñxj\DSzMTqĈ?ADIIӧkg kK9uODΜ18VUk.y5́hj!9K.\("Æ +ǎ;k֬A?011gϞ6lhժUY>|͛-Z4ym͚\c%Y47Wٔ(g^aa?T;rdU :Ν38צUS)Qb:䟜w.?_[T1{ 65>R댔d)f͚͛7oݿEd_}U.]ʿzϟ>}ٵWxFmҤrWWQtIpahafv5ȉ3%mwf3VOMm?>ys~pxq3.\|YcGo\{6ߊH>}ݻ7!!pxƍeVrl6ے%K<~z^_UWwݗÇ7lwF+X5kWM&jju֭[7q7|ը((ʉ'?u֝;wVׯ4ijhۏ9rȑUV-YVMONK5s8\))EOGiMh&Y3?s8- &CQ|k6kfLٳ4LZO6mgq8ClIIIǏ7ZUVUFuԩQFeȘ5kL8N:U[QFm߾ɓ'O\lYllc?V5nαgK.-Q]v;wNь=_L( ؿlٲ<=:v1cƴknѢE"wuĉ>}ʹ~\\_^jLLjLLj&W:uʛ6M۸yڴ-ָ25!Su髃xQQ?9.[ u_*ucܸ3S_zYcd?lse69cؿj|5ݏ?曗|Ç۸mݺ0$$Dƹ{_j¹sSh߾$&&ڟu1bg}6pȫ'N.0_-0aB||SO=UV;^?cƌk GUy3f8ѣGϝ;q"tSǏ\kTnj#"V~ў:lؽ{r~ EQp'#"VNz+++ksQ |v3yz](NOX{cŃoC䆇;Et),1ԡ "Ҵ]QJkgMMo~}/%۳N#r۵t tw\8yn_ڤ={j"(zXBBB4iңG3]vgڟu.+uԩSFQDNgvvv5^ӻwI׭Gݼy-Zȶm*7UA漼<>fZ׬Y#"?xYXsXgdeeHH;!!!-ifժUʢ^27%puyRqݙg*7Ͼwoʕ龗z5q.gIN 5{\fR˜9cX"ʕ2@͙"j۶~~/mvoذAD| ӧŋ7nܨ] Xn:udiA뜑gͧOv(??Զm۶٣FݥKتٳGDE|wյK]ָ:aÆ-X`ҥCUO&$$燆ׯl6{ w,ap8DDWn*g\QQKSi4HCu-Zdس諯LeUXo q+ Ι7zazÝNޛ$#"Xw}k4'{wѽ{ϔ:ޏQ*X}=999"ݬY3u*33ĉN-`6?I&%''+"бc?c^ExʹqbT5ncƌY`AbbbjjjڜGye;PVD fϞݤ낪uUm[ڷe[F{HXkȐ\K c[5hl3Q/uN}ϫB%$$\oWNС;㻱P||o[~{sum߾ɉ ϯ(bF*Y%Zܶm۸#G,_|ҤI)`=u͆qEEEU-"mXD\.TW.j}Ts7ڵG= J njnQ-WJefY ,ޛ?TCٳ… "grVsfѣm޼y׮]F7u/ 3i+2Zָ:,[LDV\rڵkWf"2x?7pXgnZDNo㶤) UwrzIkޔ0`'N /_\-WSd=vjH7#:]%'8ƪx̚5ԧ87lkTAAAKJJ6lX?B^^^zzzŧmpXglR. W+"f{ﭶ:cyVwZ5!!kHuxÔ?wϴWn[tշ~"/Tq=aoU׮ zlm5{;4jW_mW)1Emk׮æIcT=&wS\nݓO>i2nY5Ddɒ%FZ|wgvvkӧW~7z޽{GgAŲe˖_|Gލo5*WgCupI&o^hXUg(2rO?tڵC ދ@1_ > >ЩժkfS|lQyO>P vn׊H6֣GR_t ?ZZYJ5*~rʕ+ѣDzeˎ;v…Ox#z:Y]F駟> 6T70`ɓ+q5k˛7oCBB,fkԨє)SMvkضmٛfYz^|vUڷo駟Nd2b6Z6M~WW]i|x^.\X&Lذao=~òe^z.]w9vVQ_x!qc;}C̛7o̙aׯn;\<8y_~?ySc?Pidfz:gԩZ{uVr>EQO^d-[33u /^oxN)@j8n8!JرcE){C/9cZh1v/bn~}קO~G۶m[\ڵAki4-zڱch x]"ҧOƍ PAúgԩ  -^:)%n: : ȥ{wV[]kxOiiin; ^Mul{ֆM{*8wΐ-*Ҹb4zc~V˰!Ѯ\r倀;꫱ TuIx<P˗Pi,H !p-bc7hɪ[D JQ|W8.Vū= ~I?moiaj$} 4Z5uTSQcNΟ7j 54pmki΢n$3Sg(.7- pZ$S9,\M"r)[~M0M \CveˈUD7p\% ?1BɰukyQQNGrs닋FD8cbAAݮ:7AFDz={Z=aBV3'&n/J f4d='(Z  v z+[mn?r&/x.B;vԃƍg)HH[}4ęT֭"MYY:7ib^ n֯O8~iY~23x7,zQ/j"ʃEr8ӧ= dXqV1CՃ0:e8w`+"HH6J`66C_}1^D~#E:6._ֻED8ハMz7lXʮTg>$ɖ-m:X6o6k>Cz^۵t/^v !j4mZ6U=sUqܣdi6u6Urs/ȸ6@9tQc_$(5xp^۶K^JN!;Μ18z(dRpXKEGGjTtq;+e͕ҴN3x^ u:˥x<"".lYHllzi. =qo\0`Ts+ZEҭYov,CFG;wᰖX,gϞ=sydzC!8?7=&:̚5%'^S]*"GgwT1Ţ9x|EC{<'ө%ΗCj t70֫71>tVb64f{Ȑ\]Y&('GiyȐ\^X 5"CH#GGgk~N{1Ǭ'?-НP<~͜xmBB\fhR<nWu2A~] ߱c %J$CQ7T/۶QϞ"rꔁWw8!j[Ao0>XȈ L+VڮSWϰO=hhZGQM[P=]Y:XPD7{z|t+|mjnUWk~g:ym AƝioqFw'OrQ{'" >kvuvի`n}W_._t*UL6tڼ_Srn lԞm;q8͛ECԈ@O̅il4ci;H6;W-NN&DD':NaaOp'Pט1JZLnuSĥKC,MHw|^9DM |O0ye%-!62+W"_p dqzҿ/ V۶ [O?[ƽ~H{l%yq>kzl֤ɕΝs'O'&2~MjLLjLr߲,]JC!PelTի/7w㍷ۨϙ#hIyoqXpreʨ}4QQuWf͖ T!PW͟oM֪yk_yez~/NNNϟ9SD =0yyu͚ ַo_… ׯ} JצᐩSZ(?_k<}bVAQ<"rݏ?] ZfuRo_߾aK Qf}^شI1i%P#@ PF?_N:fߴɑV9s"үfwޱȕ+?l.<С ssnA$&ϝsϛg+{^S]Vڵk,Yl2LE1gMدf9sŋ999ft Ņ.۹s;w^xp?ѥ'NHKKX,&888&&UV%.LJJJOOZz>$$qqqqzr3nܸ :d2Վu5FVV=zԫWo׮]/_x<۷o pT<ㆠ ED\ƍ  j8ׇCE|-[[3vgIIoM+)tƥK~I穊 ._|8M)**Zx+//UVӧ_kԝ:wND _kj4ƍFGGk4q:O)üϟ?at+Q,117*}Hwz>""" @ !!pT^~{キ`ׯ߂ EjT _ZVQmݺjQ9*kW37Idfz-/\h߶._BC:(ԯ9ROFԍk=H\MsVϛgۼai:pxfHHG;4&C6iRkFFFÃI/--mժU"RPPV~r:tСCAAA||˾eRSSO^۫ϯk׮M6j̙3>zzۣGuɓ'7m$"GnŞx'x"))iɒ%+W#tS}CԩS'1 ݻw?+pҥJCzpܜ3ኈݲicB4vk4tcذo 8~czG@2|~X/$6V[Fz왚*"-[9r#<U.79SVRgօi-uo8LKKS7`f;ż5V}:N_WUffʕ+.]zӧϚ5˛@P^W)k֔vgddgnMhS >o9:%!PI/voa@=Xʽ|EE#\9dȬYYl2QXYʡHdcG6(l2dݦSXx+|7rPr:K&WFS꺦"r"pޣp름V^W&owC9nN߾qqg{ Cx'#FGz//\h+8ux\]NJrY,or`y?l9s_*,q)t;0jw\ϢEyl8pϝ;hѢKn߾}SN8pQ:wĢ&<\{] {+Wx{tu :ސhTz_==ztSOoO?lٲիW=cǎ^܂!"~WuFv륗bbrƌ)ܴSOmd>>/1t)dgx|O2 z)qㇷf?s&xo~S}֭ 4}"a7n+O/~aX.]裏>C_][TD{bZeNU|m>TމO)[2//`(ᳬ4{ҥ>[nÆ [paAAA׮]?{Θ1jH _gΜddd!!!3@E8*fݹfY{KhLg[ߠߏ?eF[}ꛤH_O_EE]:O߸:_y]kVyݻ;ډt /Ǘ^z~.\;wn=eLO>yliӮ_Ɲf=w# vWw=SNSXVkRRR||޷oUAQ%%%XwSwSD?^b3gΙ3g"##nݺuҥCm!\UPP}vQTTyfoPDu.Uu{TkY?_^f2NP("n~o&}Y~3gN™3_kn|[aÆӟLiӦ oi7|3e=X/۶uu+21QM^pA}Է~ۼysV{ԩjVݴiSufmܸQQVWnѲeǏHffիu:dA!ߨPy222-ZJҾ} Fիرc~aޚh!57|i#G9r`hѢE%LPwtʪUU11'4܂g?p/)en|n}BDyĉؚeιG>?pg}E7Ǎ5:|ի׫W/彔[[n.ɓ~7SQD:uꔐl6ZR6lPlJu5ѣ%v{MV TKܳfݢ1~y0}^oZ]N:]=霳g_ koF&Oذ4a.6V1^{]#B-\+h׹s爈N"""u_Zj׷o&ML&FBBBڴi3tPߒZwރ j޼yPPNS/""u}{]w5hРF&跸Մ ָqc`0bbb Tu.%33SDMtRzAЀ:-&X/}@Z|zܣGRGTŮ]ޫW VLLLr򕓙FB8 C=쳴"7b:ƘV !p!@!p!@!DDGT\tt'SRRhuᰪΞ=[n;???880)La Sm {<SSSu Bڵ+#Vd`ɢ0)La S0Dat:K-/;UL#X@8B8 CB8 C" ckѼj!FC CB8 CB8 CB8 CB8 CB8 CB8 Ch[+&P 1r !p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@!p!@ѩ-!@=EeIENDB`python2-pythondialog-3.3.0/doc/screenshots/editbox.png0000644000175000001440000022316612507731135023045 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATxw?l{{qqJ1DEرD`EcD5`/ o,X`D(^f~\+\y=x87O{?q\*A]LB.@9Ga)eIQ_ 8^6!qC}~1:$IK1 4y4_5zU:M=.u`Lu^q!KwJapp_&('"`havhǰ%ud5gB@p -matb|~yЕlh۝oOsYzH6 h3.z֛imkreT{R%mYOӧqڢ؁f/bsV4Ds[#yZe軀4)[Zm]v~;AUT%Lj'3ڐ~T4vEDX6CWd5NamSB*[z4pTvSC}6&D!6HXV~%uߎQԃ_RQ0#>Z裋]wUzQj+1tLn6cCE,$ U$P7ھ'jj CӽWK5b/4K&9L~jlS, ջ9Ngyt."i1KG5Rm*MM';|/A^0ȕtuDF r~œ<8Qe?)+ :H5<Ez!z7Fb45nVВRma>Dx?UR-ӐX+]/F#)'=jE tB5 DDsaD1kEey*"궭3QZ#"R#})m '6*BMQ}ETyx*`~W]rS_)cJ?%h"y5Fw y(cg2tM6(nPqK1:ahTu5*п+" $FaHj b8ú#5`vER R =S&лaȆ[r.%su<6mLUQP8zD?}ZaJ}sFS\f3C3gbHEO:jHH(vN~by[TTv)}!JZ=IK#TYQn>zuǻy̬G6wDNŤm8ImO1 kN鳣uD@"gH 9pG.iar&@S@B7A91~©G#lJf KHL=EBזgJ! qE8f\C;C'*b_: i͓溎CkfDՊkħvjC><0>g{Tu\MzNrRխvƛnaj.KWh; ][81Crt]Ny@5_tsv$;U4%"Zj+UKÁ*L興8i!@6+|*/E>}y}Tl8(,A=iL slRT_jV& GDtG5Vڕ\y_jcc+*R4CR}Fr-<>7SH&L׀ڴ1r81]Do=_=dתpu1KG"MÈR8עw(A=Bg{6rÑXl~t^_I;uDDn''6o^hܰJ%LCh4=4N~/YᢢӼ㎼ht,Ο!LR~?ԤmoT񡧼umʰnn.]vvka!zA ~Y6;M(@pԞ=ZAЃԽ]0~VT0Iޭ/L&^{#4 0ax&G99#8qΝS]cUUW_g-+ 3Ab貲)x{nCq!LR{tG3ۧybpvSD%0<=Zpc}׺{6fc'+-mNݖ-Zu0j4BvvGj% ?۳Gڪ8f-^R] 5:tls\[y$rófxJ+Ν͛ PaggyVo9d?\U Ϗ_|q$YF 0 8T|1 qD`FS"D"LM$#w< oNsV"--C)cf_wN7/t1`غU/n~}c=EEegΌ(㊚͓OfhN b1l p{/~1\0hO39∀r\t"ߢE>"jiQ\9ypB[Q9s¿Uxu^~6L.]6?4i)ѫAYT@wʊ_|q{vvR=TW_{L}>V~q ke' `|Y`A/\pڵW #0 C!iZ`ťe Q n#â詧vŴZ!a3w_c&$wԝ|r۷wz GVL+<χa Gnn7ڪoO&Cd2DD+Zt^zTV >Uvn9xSDsߎB=ˍ+"U8H&={xeK,ÀGYgVS|<4UczZ+䊊:gK'ktd 8o^H^[VqKVEj 0&A{;҈rw3"9i JltV8lϿ!v͛ԯnzcܲ Sj`6#}ٳCe|r}~*/4*_鄃tT@"zm9$%Kh޼_z}ܓ˲B"TBףּ6XoNO?)~YxJGG\[[U+Wft|8ʑ>wI#08jy3ƙ3#=~ZVJ4h{ _p{طE9,AuEGy"š墅̗__s/ph#1 -YIvs¥"2%:o^oۦ:DTVj*+51T9#J$V8XaV̘vZ$(_D4 x uEsN;m, #0(*y)={tӦ9BMv.af>++>o^(77aJX}o1Ԩ;:Djy=QT5+,G,K] wAa9$xy՚ڶ ,dԢk$Y`}5+'zjW0#)/.\ZRUID L&o MM`I$FuٳW^GZ S/hi) }N 1:PX;r,LN""{9 =~t9IGܭ9Ds'K L+Bp!v+rs==!%cRnGMV !C @!8Bp!C "`GQ(455~ykۓIygZq3n͸7f܌qsz74@Dm۶%K bсpjA"2 :n͸7f܌q3nCrQG]0 aR@p!8Bp!C @TX~~~7350 !T9+-ezAGA`ĽC8">Tiٳ9A_tZx%#j&0df2^:1} /+Ɵ\5S}j c4AmL<V Of&{:񺭍߼9>3|ᅚ3<4g3DfʓoMGD.DQc6&F3+~qos1tqǩ#8q3{!M塂o~""C7SA@@x0jc<Z`B~8,~0joj|)#ݧ1vzziFͶ6-Y/dn^(&ڹ"cy AH+>~_pB,_y͘⩧Nʢo*ԩ!pft:;W6Iݧ3%K4DzuPԆl47M^}cU̡W>SSnRPYcliBM̋?4ΆC M7n쭭~+1?olnN!c CH,xhs3RS{XCRs7l0q:'U);9To^yأ^ |a}n%TQoAQf&s뭝oo0lmÆ zGt 'r9V23-[??HΨTɔsKj~ڐ? qi2Mvv yk&cPNW]}DGZ!":kW㯹S0lY)<7eK8x$wNrK(4:7jM&淿E'92j)ŋooۅ?-^w-٘ц 1,jcڨ寿> x)Z;PFm$_o롦۸8u֬yD\iSS_NGP[p՝Kޝ8\pGD?>m߱c?mۺ8x&~ǜsr:TW ݣ.|OJ7/_|TTQv䓑%eak:s˃MU(_S)s'?![VGD}ߴ)H6jkC]paDD>IisC9a7;moN;ͯ|/w/Vbg> 5ڕX"۱`´RHN71"mŝ[s3ͣ஻5)]J?2S\}3Rmnnnowߍ6Rn|v~{,n,W6MOflmVyM.[x8au0qaZ) }vFJ)GD_HfYA|Qh͚h7˔[}zU='xq߳ŒF9f۶%<ӿysgV6dd0ѺuOV_6/J%W}7 c*ܢ[oQUWӦWv ,|q6mR 4Dtub/Ҟ=}c ӵnM?.'vsnMGD--¿EmQ+WFܛTk6)fs-fD0)8>O|0\Y?_5~ۅnJSJatŁOvEŨUx9;/"KGַw8gjbbEW[C!Ofף ~:2Ī'jsW}}4<9TU 6ly/|ik[o ]}ף?hk [sx쎁O;EDcsz~DOD^7o^d… ׮]&<1n4}כ8C ^x8 LlcXPP0bElG+5.@98qOק !XsKNsa""2emFC\>8.96Ђ#J!`Z) 0D/0r9ITճ,y227;&KJ1@`~E wbIx}DEW HP^.^_Q[ wsD}AUj1!xeEfQ&/LzapxO?ٔao60cX_HK D mƫ22+*_)ð-7\?x3j-0 853#σ]6F$( J Fu.󍋔ax8yF "0D9di4ޑ7h>onhN;ǝch6t9*C |M4XkkE8WNZјRy~W8y͗HLDODggX..((#!Z^][IiV?72T*w"%xz7?TPpbf٭퍍iH]%^t(^.7|zM{4 sv:m=r)Aƚ.وhu[+_7뇚oj)S.q8([IYmr̲D5 }=rEAy99.(KvpT/7F]r[C%EʠyN#iZʂEf@%{=fn(-[m9Zp,p$Z0WSAIedrZI1 ji2jn볳Sb9zr::i湩SϷWwxS{ pZV˳O022jKa2 wUSSWe}_u,̙ӵZF{ӧ/&}+{944`6tDtCvXJukNxC},uuiLD~zZۿ)AJAӊ(&+#HJ̙tW2Urn,NJRyja sz(T7e:-;l>lUu Ci1RkA l1\$#JapV[]\,wEv}{1A vYvuq{H1Ey{t3)-T+sht{($~{b|eޓHU}f{2] |an_Brio &`Ua{q[n8/O~˟1҂c#т-rN98 )! n:"_VUw子z ]Y~Gr#/ʈX9d't23^v]S#lkKJ?wY:vϞ 8۷7i;WDz3O4p]pViokjaij,h*+R9 t#`9oyWKE~4{ PggkF zbR'X,KnRʼns9juYY{&}mOke[[haN]d69+,ܽ[f,ASԱNj4_ew=@J0r[w555hoihע/"z]z ?ѢNjϛE~yD?~H-07b-[Z' |c,FD5,-UҀbVE"Hs8e 3 Be$NZQf8#˽N`8yc45HAƒԃ`xS?<^d)ƣc;X GDk}{yN/uuD!F~E&e)`s,vgSSL@=@0r+f T ^ukBQ&?+OzȔ F"2EyF^ &20+ձlRv'+V}7bj5\Gi{($kRѱl.{-@ ²gҳi$PL9 1e]7zi(&WqtؑXV0o"HaC]47kQOw+V*A _8p>^i'ھ|ʩڏ)ADD:mv6}oKZ-&~zJD o{-sz٨,Ebd4 cHGS4LۀH˾1;[o޽ۺmwmۺdRw_cKfsif&ߤ)98d"RD7:CR:g-S @]}=)yǘLGIBl >g#[-zc\J2Hir^Ѐ83U3h}M{-vsXbhh_/PV y؂c#ڂ0`Z) ntqqJb?Y#99ZgT7Z[r+23+/D;e^re-,75)j,ǮH Z3SOX3iȲO*-:rK..o0'5zeB)-/ΐb#)Aʃ$5'ї"ys2[W3rsϿ1Ye!vs٘>PPa;]q(3-8 8-c Fap/'-2΍ a<{=iӞoo />g~ yz3gx)3sڴ\jitI$l'/${uר|T nO _QZdQRdQvtrz_$2=9#2!ZlND6<.* UzmOm Q^ui-I>e#",F~: 9b?HDIe:'3gʯ_S[ȷc1v 8-c C7iĮ Ka_"叽N x:fpuYYt1̅Iqz}T*oolS3"bso7?_8`ႂ7P7dgDRݚ#Xo]])y>ĹhT诿S-ا99,QLV 8:L&ϙ*ՖY.(8hsa2UrntqqO'5 qƌe٩d!]:詢"勮xS_'i2] iviFeB<:.Dd`ٻyy#"jO"1\bbCW0V<^Zless=o#>?u*0D-:˙37huq;,qД0ߝ>]8~C=6ϝcEQU4=[$@~~E$ۭ);j=lo4Y*Co ^q_p0SH7?1nD`X 8HٳS8Tv4"4O޻=k)O$+D@0 8N .G)/ ǙDxkkQܵ @p^p`)kMdzqDtFp#!PxVyagkζu:3zx|k("WkgUⱢ벲9;wO9U鼽Q]n}ei$?#x2ߐMD! ] iVf#mm^3l4˛o4rD774 iV8?73U*? {ߢ={ƴibfZ/lV`,m w:?zmCiioRN07?TPpbf٭퍍j{6r?dX CHJJ̙tW2Urnň1{4NZ,+1cαoA9H2Ͽ=7W^; L#hmm2U[srcK#ެwt.~m7qׂ}Zae-Oβ^+)Z":j=dZg:Zyn%";a4a4&+딽{ {˳HIϲ!689l7xPVVo*+˖֦o6g6!X3kO_PQM0^{64 qƌr鷒 CH]yyr`Pc2`^qglk)OsH9%!_V]eYa ,{W^˳p DUW{Diߙ3{^G!HzH }H$[.PhFv{#mMq)^sK0HDü1mahw$rKrsRVRR̔)a.i l'Ft^yΧl"ruMMM4[ved+jkL0oT؄ ȳyW ؟s*FXLC̃3 Be$NsA޳=e F!)_tDsv}|>LKQ3y6mmHL5e{-@aYufYV0DCL i4l8 a~>77qڂkGD5BU&])ީR^u5t(^Dy_S($//x.u8 RqʉgNP G~|ko "XڗQb5N4л^o{"!.N0#ս_ߔo 6;>7|$Wr'`bYÈ!>_,g6v/4g t*Rm2Fbp(WB܊U9LyNH)00K۹Y:['I+dHKGLEBTSNaUlJyji F165vR-HD;6X6*ioߗ3K2ov*WƑ(<0BZ E?0mǎeկKs{{7{d+*g$>n)RL,hVD(ːpF"qڂܜCDCwk'pJuVέx;a/JBy?-R쳲n8)MJ.{hPGih}M{Ľ@LϿv_IDgZ?BxRY2)1|vGHUjzV^-.Iy oh44pX\%8[Dk@@|RD5M!TUכaJ4L}b1TZbhh@>LLpjSz6`!$K2oY{%D\_NiLD'X,_fdNS YYYZ8C'#|ñ\PpZճrs-*o\lS-(5'ї?c"z8SR1f+ekt8ytb\/q8)=<CO#*Mj((0^\,2uADg |S,f8b+)ԭ9IP)",F.[G"!Az# 3ׯ)< ;7{ϱϸ\#KyPXWJz?hS }NDGRǷkB0r)76і`ܽ,ڽ A2~Eի]#r} :R8vϞOץtiVf|PRx|[(۝Qx3GZZP@ mFa9e ˾RRrժ|@;PyvI4"4O޻=ژn%"W< :6 8&*gEN aLՒSUD:vB|ҚѩIP8om 0$k 8 0j2Ø6nzoih3DE6[W~xmy׻;6lZq-4.,saQ_$PxVy",=^uVәY֓H[CO|g] QZ];{60D}AU2NJܹ#""99jxMhYvk(t{cF6SKFcJȇϸ\;4N퍍rs״/Ngu,w::εن"WKy28k>qB FXT5dn_K<^o&>cԑiVf#mm~4veA"Y  t~=ϧYJK{VyWy=0 8dT̜yN|%S*oyXc::NZtȲ*)6rX3kO_PQMsԩg+ Ween{oV67[N0t:"!;X,S5'G>ߺ4R]d";T eL5+e2g߾BmLGO+rrX BzSYYTǛǙͿ~} dmL&q$1V&wW^ܧ.|Z޾%3.xa`ٳ&SZ-^?'ݣbՆx^NQ0yze' I=76 jqw,GDe՞D"ڛ_P@D[ںp^I[ (*=;5ϝڴioea{޼~V3{S/a2 ,|g޼ j5ѱ~jc?"zF7CTQEW­(gX)rw~~2wV9J;>AS~q Ah*S(MY=io'" \[Ww&n0CS׷BTWpAD%\~IMfQ>л^o{"<;.}ccu4:1yQt&MZWEbdKbTy`)`2y׏(LV Iipssh"ӽUZzF&opTȳ^ho 2afsf6GnFCD|]V&"| C>m4Rv)z)" }`>qjqXnG,HyDrCm!iMzp邍&hh(i;v,~]ݝWnqzKXQ<١/"-1XpoK4Uc9?J֛ ,C#*" 1!=(7."B[X=8 |'# BʪѪ53?nDt*C(G J^Sќm}7N u#4eh+xͶnֳEE&  Lss_qB(0YYˤ=fvG")|qUfkng~H#pTYwHf#Wpї:ɠiZhl4ߋ"ɘL2I!$\-7PU4 BNwt\ا}6;BҠV\ [#P^*)m ^r/ۉ|}RrC2UuSųs _U[^?f"z뽾QmD z[|MVrNں:yM:#|}txrkCFh\V}iii꧿5P"?ϟoVFcJho)qT1AXfnmh8j'>g6^uB˳3jh_$]ܬܐck0xum&ACJeD>xjÔn{[[m4z|^VgT Ap[o%$76іP;U肊 686 ~4 \."r8Xd|"jllڼy%K.\v?*H܉Dlc8zDחa;<qːXQ3/ 095HeXP0bEl'c\.pRlzm{;4G4mtOMp<p(ôRflWdfXADzDfhr껛h< 8aV՞}?45=<xt@cQ_H BE8pKsIo<G(/a=ps3CR Tճ,y{@L/b0ׁ T!2[\vD<9gNZMD/TUcȚS/ɐU;j(#1[ B],O`ǝ 7c2eTxseKׁio60cX_89|<UL}TUwN'/xnÈglW>#FmD1~cQuhn!djI)*"ǖ3)"C0+. nP#P8om ߺ4RN۠)Xv$^yn^o8z+C=j0Ox"'% ʡm^E'X,iMj5g4ЛPTVx8W/Sӱ'3gNjoM^{S%N0g(~+laQN"HxYjQLBoy/|YvuqqǮPwKs&5ѨM#EErϗH| 6H)ӧ˓)Ϲ\k۷}et= ApΝ+IO߷oo$>wegJ:UnkjnR}mI CT\f,%{z[Nq2-j)cO~8XͲ22nKIE3*VαΰZYUG%'?=xUɸ 0oLf"2|E{*,$e IaW~c 7o<)S)f(_ύٳ>6|o^G<)tKaYufYV$"9p͠yFsKs'9;Ғ(T4Ros"Sn}RKSD~1_YаDY`2e-X")IwVѬ*,vDۂOk?I+&#rN>Q\1"Eqx1P~FWvF;gaN.BCy$\P`8":f;]qF{q sԱPn7$u,-]ج/W"3K{>c-0}vSNX3ȲO*Κ YYYZAS^`2;} ,*G>h|~_KDaДRzͶng,hQI|GL=OXS̔wt|#AOQU4 O]l bBPdNꔦihqW8,G csS#0>x|nΜx|j?=iӞoo /O>uADg |S,f8yrs** UE tK>BjUaa P_eYO]8+yjYl׳nK;jn0 KBI3ShٮN7FEt^a"zBG A9x\nnO|_Dd゠b hZ7Js"pkNla?؎Db ёvt̜)~MmmzG$:ap<ѲY֨[^ ex:fpuYYˡV0JG;Y-{.:o4ً=Ji(o+.v_`v:jkŠHWkNc h*eD.yvU'nk!AJmDϲPP0`p/oCink{ D`m*1}yh8tw7M5#Tu0:BR~ ٹ- UF"O~ ɝ;B\N۷YYȘ D;\Ϲ\b6"pQuj2H1O2LWG"[w^etkCFh\V}iii꾟^*3uLV+LU (*oL-Wm2d0dT6 H䃎ZmW|Z zW57bm{pxEN&SJ?nnjh-ARo4m2ѣ-->mƴT CH4i1; 8 `|CpI܆Ahn CR Tճ,y2A@JL/b0ׁ T!$9gNZMD/TUBFlrAߢ={ƴi⯴y۷nsAx]cC0*+ -ٷ/'YTRcјRao$aG3.NENRs)+*(8b ؂YphT<+^ab{ľ]MDGLz I51̱PW (:byH0yjuZf,?{:lM~E0yzUYY[)<'3fta:|]~qGG:eIDATޟ ; *՛ʲUXo6g6!/=&Lꓙ3 L\[j:c$5,TVWûS5viWS{ sa{('*z]]\cbՆx^5kFo*˪Xw,GDe՞.4GDOΞϚ}mڴC F&=DWievEfj()' 'VʑP,Z=e2~ȶH>ϩ,`N w >RT$GD`A h4oOn*<ژmrd(SEE]~Oz`8wɑws.ך-`bϼy``Rp= ApΝ+O߷oo$>wegJ?`;:{i4~QVFD&~5 sOSNgFUYYJED n`[Nq2-LGO~"i,-!<[:f;jeUպ|^+Q?J g"ᐯ}cZ[tdRSJY=:׽ZpYF~AVz<3S%6[ᠵ1Qh:ȗH\^SS9{E&ʡ}jͳh4Y*U"9Cƃ !$K^%.Ne2LLUPH^qפX뫋^G<)tKQP\UW?ke0!WWs rOtIuna/*;6;n_$ӬM"^T_vosˮc{\ACr&o4?Uޜ^E(nbr&뱹KJyN)e6E 6ՂrQNmN?& ZoV~ f0Ѭ L Fc||}\$MaبftO>Va}P><}7VCE8|yCmm_u4eee+ںl6+!9U'Y,M&utSYpecl67XD߿ eWfZ$iPsA#0K3<'rJ-+M6s9J&U1L} j/FrjT|Gcb%O?j=j%]ޡgF6a#[~cv{u6l۶uɌ޿j9WYiVihGջ]x^Jv7Mw=y=c&CsWCO Nq~<@@A Nn#<'o 6Tr2\1QY#c!ύؼ;nn+,ғ0arΥՕ^}\F]yy)h4 M;dFW(u16Yx. {k1P~F*D=3V":b!^=EDgbaiSNIk<>KD~q[p?U5_аDY`2e-X" aP-Èa}I>`S &GHC_3hʵѨ3LvYV>FQT󜼣LwO7,~IMM2$o6Tsv{FCIɼ&c(zb1 L2"lp\-SN@@lRDuCض$hͶA.PVrV2xtQh}M{-$aZ)  1R+CprO~JF}~TqOmЙ239hz)唬1̛ GJWdf~W^(5hV@AawőӥaDϿ1o_eDcFa,O|{{T~i$UR(uc}}Bn'.Pĕ?57_ph%z)SlW`pc'z=]\LG"D ;d& 'Osbe^OD77'D]=GJ1{P9L>ϟ|{<.*K%%I9S}0OrϜXqYG3kւoY1?DB>b "~yStOfΔ_s^[nSEE[Chr`iZ泥@0rYK^Xb벲gg b^)#MK'(6IIe$O+"h􂪪inmDJuBu=L)ϗVW+ߗ%2H0<'r}A1,giZmb^Z NGV67{ "2TcL&Kq-nju,;h\j_!GMC8]F CfqA8m߾C<okOw. b:&+ rDQQ~sw{[۾HD,нN;wk!{76іPr]"c)uѨrQ(`yo:1 BwO.JL9UAzў=noy>!D`mmgXKPZp?DT.z ?wE=v|kC{}rVB S)F9`8l&[[kc"`؛]x6xsv"Kq JED[htL<ƉyF h0뱣×~GLѷ}N>_z)?VTt]Vx}y{cx5˪SMٛHx{;b7"{3F.1(}.وhu[+_{Z-}-ڳG+oL&JK<}8&bs2.GrTAF?km{99.(KvpT/7F]r[C%E!<,{MV6[NgfYO"o >uRiV?72T*w"%xz3)<-8OݑFyyF3憆HӴڕfhK0xqߺ4RӕEG"b{{GQ"'% fzggё&eCҼ8a5 ^<[;)X8n^?G8򃎎pXQaocv4eL& 65[^n>8gkUa%DtW^.|Z޾%L %S+=O"!xݾP`J7P Sg\&s:0-77CTQEWnJ9eV(87rC%SwȥZZJE &M;^*$,"(qs0xve}۶y;woUU9vn˾ѱhOس?3ge^rٵҚeՇUcǽNg\ܔ-^W?d߶mƏ? CMVVOk{\/;vnsssP0Zm+y M)X{{s4 sOSe۶?*EGTDz;[gc[r !}1A&Wc?ǽN`8yc45HxZ9 IV#m$ ^O AOKJwt/z>|sv<ܷ.hFͱX ߺF-SN|3?ۉhy3L$,m4sJ1Wh6MtCzF҉&SR)ll&Vi,4z.3H$)qmD|O*QᬥSꤛNnkh%QmI$"$~S2-Ɍm( $0{ƮyTC0YfaAڂ1EG{)Q=)Dt&x&&-aJ4~|mvn_o<)Ïh]{۷Mq!C`ICs TLve2*]H6FII<=Mt-%G6,(@V zEit.Xhi(STLe0H7(ңw6|l&{<:Oi-ccÑI!+Jy<0*Xha87oj,iDzz6ې9+Tߖ9D|i&C%%¿)AYS/&v_KqU:G,3*1tÑI]XHD ǚ+L5?TT+ yq Ҏ^LSUZb+QP|dma2 ܹaa%G=G.7\P eеXTYYZ-l[[Z>&b+1GrXۂ 0s84lHDo} ӦoYe#40gk=W^+lDw(,h%} O<~o ~}H䴚'%|֮aDcN'lxѸښFgm۶mʕ/^vm[> {VwlaF!LIPUu+sB0m6D %9:@qiQ0F }N'O9ᘣ3fݝ+]\& 0 dP|'ws1f(@rnεs1f(R!} c'@mCRWj-Q Q!8݀3/0f8ze :}/At Ar91o^Rºw<TN7 hVwla&~庲m{FC*/3=6z=yƌl8>t/X/Xpݎq3L69ߟPQjs%l%ü9mڅfqFyyvI{)*""g,|/ۘq'p0Q!9qăyzaS^~sA! [THIgUcc/x!!hgmmϘADe*Kx(yŸTWZ,DBw3sLZMD%?ִiG:c={YXRar>BӢzBv+&dW%g0H7ȑsA%f>px>^vߐODVӳkUT ExGbG4zU;_xp8Pa$Arn| BXzg WTTIӆ~o4)tg1_ظs,- a89\ӋĻ\qx;=d8ݒ GDtZv |ΦP8c1.w兇SOwv&55>ۘq-H@`NGDR4 cbŶԤʆ FCD'Msnz?z?z[F[a$Ar#F0D4K4}vVm7VO}4=jBGJrоGf^<659**.X7M'#OMDND[}S`"eYlq˵hTޕ-280WF1 }͑Jf%'YKdmmMbR(|LDCխx<?,H#FfKm~wfw8(2Uzl69`.GyFaXlUccoS-q^8 =T}!,*S*ՄFRf}έ G[F1zKK˛nP;7 c? k$" AwZ[Q[[ۈm۶\rk׮MztJ UUxb>T9bFm @vZN`)3#j.AN0rBݝ+}\39RT>NDݍq3!L.͹c.ƌi!9‚40*Z˲DH$aTze :}/ALHH(s̛WT&3j{gohjza">tQjK\W64d:B񫒒g̟_w1/LrF3<9c4  j#fAbl0r0iO/LS˻ȑ5==ȓ=EEDŞϝ\<8nV;kghAr0` ӦI[m8Ǐj d?M= Ց'uF"]W?@cza<'ym϶qhMj_}swbD`#OZ?x 1 63$CH;ZZ/-]f2YvW0x_[^o0k+D`(~ :=֮PenSN0 K$LvDDe .Xfk4Fu]خ`p,37ۏ: =RR"lYؘO3hTԆ/9 "E<;?VXn!wsLZMD%?ִiG:c={a+]j.35B¦P#VcwTخܷϦPtުP8c]ʺp*fʤV({ #*x0!?d.OpοƙQ?hۆdZdi'/g8G{@ Y(?)߿n'S -ũn|h7z<[_ˏ`yZ;'>ϗM&lF>8dCȌajoPƯPhF|au{G]ֵ QJ_wt׻bQ0 OEDRj$lr]%{URysAAt}#0sC[lg"BEO\JY9_WG ;vax>c1&17~RlDY\R_WƩzDTRb0| e7>ѱ;$Z흩o$欫N08loױ_Nl5yy$r57BUjߦMJiqlFG =fuufbWN]b4VlOvte>:$lk֬tشg >p<>U:?0#G4px8`b88x*/O MM濺\}hƒ\zWX|cڴVVVY)Gz]{ T dOG4z[ ֤aC1[Ӧ)w7k@o߷̝{q:U) 2PȓtK,'=8Ka?G֭\*no J= #=I6 Ez'Hig[PqC+ʮIՆ/hdiM^G^^>&nSƝfiYVy;ԓ]3踄6]қ`NU]sU=Ze bf$%MIe2*tjy@M}okD2Cش&W! X\%\."Z(y ɮQ[4z܁Otthޮ:W/%kJLJ 0>Va߳;?mh~pzMX~q&&qJ0RfO_>6] g:d޽ݱò{TIH'.D:@{P A#0ºbYDDt( /XhFsNGDOtv~;/xn8iO߉C]խ*i7- K=X\_ϗVR=UVd݃Ό?Gxcaŗ={)f":d"IsJO->#sUWR_/ib&\R1}>!ɨD>حjkRjVfG@F6_XJT-J+].o2)-@P8,= ^zkDzz/cUU&[H!?%.(]Vj%|>"nR޹WSUIɵ6[TO%0LgWNvo/TT䥸3*#fVSđ纻']XHD 벇+LlJ_')y8"L1!S(HDLsvUWRq%JK5K۲2a-*ra'OF|zF%W =7MUiaG8?Ӟ 93xf#ΜL$ڣQ#IK ׇDBϲJ% |]g {O`F ='iDNyLcQ58N"q5y%"jkkm۶+W.^xڵIo$e"Wõasڽg 745VUAbKEEI{N'Ճ<8Ɖ=x"EE*1%t55DD`s=I'tu!fAb0rC3w|a{Z[헧L/a׮, ]`6_k- Ek{{_t:BB>+-=` q8>*I Gڄ{))jlYa60ߴXN"&% ]`2iY6eƄoHVXng,&=*6{Kiӄtb{mKeFcFSP@"q$=U#~;ɝ.-+)?-*:]*XlW0.,вX,5#˺XlW0}錈̮W7矬)x|7{83*nCDd6-޺{q\\WweCÒÇqnJu,Lb`MKc۳gzqrpGjl<}v8)CsJu.lׄB=K@$Q;hϩw]]ݻ&[8NHajo7=믻_d>cӞ5,aصk_w@@rGɺ ?hjJ$#}k@Q]8|[[= @8yk4%ѡpgv@~}$mH ?6zzf1]T d:R݄6d=_eJr0>u8!Z%f83JS$rKs7oF?rDjgKR_H#}|}8^Wr>F=wDho!Ezoɜn)SiFqf 4\~o4)t{gx~UcY,+t=>zʀjBGJr>SGNWa[ZZnomTJ?92nHDaٟDDlJ"f7^;~ ل;3HU&Hl&I˧fK6C̻w;vXvOPzw-}YUUwpY=tjy@iS3]{W6Qa3ddB6EDa)*U\pH5ᰴ=[6J]37>^!q sga! K1 #=d"IsJO[^~eCCvG~~c꽳g uu8'To~#ٹƄoHDd:V%'::`s@D,IÆD}}0m+==՚yV{OQs廂H$5')zCsS$Tg0t_3[8N:uuI_tb;u:":A;2wpXXM?s0.,n!e߈p9͖3765enF!-uts`H7rdTml|W.K/ܦ"G]Y-r}<^/}&^rjRP9_H_o&AtSsAWWω0&vCSTDD؟tʯ _v:֛8悂24n5,Hj:/OIbwx(h:|_[0DVYn--gTXro[*)g g IK_hz+e!Ot, B!ԼO3r|)MG=L`H!-;skk?CDO,:!2*LDDºoխwۢs]]xss4zjMF7?z>|լ+*(ϯu+nmrڞkj^sFtOCwXQ c7$"L Fh]8lx9ϯeg L$WMWd;uw۽?REF%]r{3G6ОVSD5cg q:Ddq5RII ڶmʕ+/^vڤJϩj97450Lڐ6TU]d6{}c689Gas =Ok-*Jst:`.AN0r0Rh4šΕ^i.ƌ@m ,H02 ۉrgX;cFm6pF Cݜkb̨  (R!} cАPπzрC@rV *Z˲DH$a|AI!땕'tD߿_`RAr0jΞ-l„{ۄD7P$]+Ъ`l 9Gh<`8`r CD_Bs_x q^_T( QW,;\rry>Àtc4~0cN|A 5$yyϔY)Sl>*UJl~^mmO,a@:)*""g,D@/8O LTH&:S90&uF"]W?dRPT1LRdR2a8 2fGݶ={6Bf&zn]rm۞=K?q\nkB[w{šT)"#CLpvݣPrH!3ummQ?ljyϷvbzkkEZ---C!G(NdVMv8D1[Ӧ wʋxa{$Lْ{# c(*+_2Ez,@KbFgNS$rKs7oF?rD5[b0 3G4pxxi'2f)T dmmnFãPI df-]nFz"%iItggD.'†+$?}hTxXFU;gҲŏwft.,$"%\n;}J]T_*02=rv`U-m65\3Т8Z] GD :FDoRG":U=toj8^JD Ӊ F#s7yy{N[F[a CLwBDK:x9IS~ՄB8kE>@͚P>]niv_w,,+K* ##g$H˽{OO<~NDY[[cr1 :9 n'>C%ZM}k9r'KKK6aX>%_0ok[n2 W 4,{|LDCխn( a¼VIJLvC ِb@CJ%{':93 c,-E}r7 :m6a;:,jtݷH%7/>||dz%īWXWʖ ȇqj:sr= :=EED)#1{+eOt, YO2r|ܿ_0Ә5,Hj:/O {b;#R!d9=fzg>0FEb< x:c(wb^Z_y}}XoS(^?oo Q3n׻yBf_pŸP?!ZLBHahAfǎ܊'::p҄i!`Z)*Z˲DH$HCrt:"_TS YHarjke}JM~?\v MM/LE:+T*uʆtHP\P lۻmuW0eJeBubu.׫.W.a@5sf ZZ~ٙ1LTHPX&Rr)6E9T* vy=Xvs1 ȡOQ9csg0*cIZ)d`NTih0`\9Q;h$uu ٓ*; -KWgS(~ZTt^oU(خ`pe]]8E0nui$'KK<@Qc+/lXUTWe&ew}șƬe .Xfk4Fu]خ`pIqWZzdJ; Ja{AacZ=`*Z0D/3j|b:sy&wYu?˭cBR0&TPs֬&Sݑ.),=1ДȻZ[~v{RID ݅ΖhY?3ǭ0/ZxkVS0LB1[jCEEb*xƌUyyL8Z0rC w_Tk4~`ПHRL6s \n~&1(#`"aW(N3T e***BO|>"ұB|m8*Q9#DbUcg ѱ/ohjyq㈈'=@N71sf{{ooif\ |6U6jDompoۉH0g z{ u: IeF$ԩS4cVI(?u]{ɤb`"aY澢c4a{G 7ZYrrIòWe (BrC.6W/X r,q`'޻?3 *UZ3 ݱ/WkIo/?p^iu5UT |D!w`o;;􏜩#hu6~HO[jFomiy6 4qn'zHzS;W(QJ1@"e81XvSocA"Zޙ9G[]F'EN0꺷IJLh$"ǭٞ|/>tH׬Y'7bt8*T/)gY,\d.,T*o.(SaGۧTUWQ JӦ { ja7CU#^8Ӱ~ȑ#z,ux:]R8H~186^v87tü5m0%P8|W̲VT|dQSSd[2*_#*5# vw9h-# ӳ7|Dž{ƾQ\ 7~"ҰOv"} -2Dg\FR8tq conN)F"Br(5㬹d7]|2|[rX_d6_d6PhukkU2 j04˖TŸu.-  a6JΈw7oۥ6C̻w;vXvޑ%JL\Vi֐F]Fx<7~"fx)Db8SY*//Os(!cVI9:҉-='::Z^gѼ]Uu0?Ф,FXN":^#Qf@)}_ 䫊_7}6 wd/kJꩲh>ia1˞`Am"GzDE3f~bVIYJUbˣsW,|ijl|S=8jJahR|)OhFwaa2WXn7cǐ1iD4WV׆KIO?|X1r+R &dwd":`8`?S-kq^8]n_ y"+[BYږVbȨp.?n?]aVT;O9T0D(!YǜtbWnN`ŲUhOJBqf؋II4yXX2zVOCt!J>HJqBDz** xlMrDc3^`BqGe艨GvaLarvG&&C%%¿)f+YSuwooy!<6[1BZ)V*j=]^.H(¹l !y}tbp 6-ӗNՍILSUZb+BꔌxJJْK/YAfFah?гlRID|lž8K+1^ጼr=RR"[^~I\RYXm/vwwF2*saODMcZ"z#sJ6x<שTҰ9[]v'<wav;0R߈WyHf̙gy1j)*z|W0$x~F@f#04HTpSznai%+O<?6ЬW,4qeJC0h*ՙYYJht}<^/}&^jRPHy㹥e4 0aSTDD؟tʯ 89[]v'pJYf,(g,A3r|6geWYWIaO,v(<]`!9HwՄBjI^ጼv/9t#חHx{{O?thXb<@0$_757_13]]W54_o#Yyp6Ŋ a;eݭC_^^nl|F& :⺺uu(fT8@o_H?` ;;QZ*l/Ο/|Va)Sf#""aصKؙ:g>cg W#LJ}`)/@~ḯMؾ葒a{MOϪ,ݾIWg,Vjoۉ(6~ ы &^f =0DGg+-"z)\{1Uj5mz>,[Ӧ ŊIdUwZ}l ON 3 5Uhۆeo,(bYwb-^NgdG!ezRV>jRJ0w<^Zd2`𾶶M<쪮HL8ZBfʔϫ=fg46#nEqS&j.We2u% A0ii?((0}]'&ϭU*f^.62nhտ%%_Ovt)$w.55"n}WW[4P]X(hFܜő3sV N3п0 .,dŜ]թ3fJ3 E@F)*3Dϕu<'|y T,BEER{ay*A$u:_d)S2skk{׵" J$e6**\I &3~^\l8"≮klt/ ~~qm*U*[ZJNQ--%7N@brFDu#[naC0g :ELH2YԳSee+$fb)\ӳ=܀ሟg,'}riZL$/b>xUriF#T2 #5޶6˾2uLf{C(-~SoVSOB:`a0\%2񛚚BqNf'toNd"W pnmg]+ >p]l&"3]]&=x"x~/GzrQ[4zkK "Qȑ0Dv]0<G[ݱic4nЖL†?@֤3$XG`hwŌ6u{Jё߿!a_fBV*yABZp8ĝEUeu8hoR}V]FGCLS$rKss_Hܹu%=!:I_ӕ*zc8 qZԻnIJ':纺֤YTR7}ehG aHt.'?lj:\!sƬ{; u:aޚ6MxxápfeD\WY&le&=p G0Dq?'~yZMqސ,ʨ|-Q+)nj6R*P(:śodOJvGn Dd8=1gWu/c<8^vo0.$nّH@`NGDdaa0<_QQ-ۓD>i^/lDR݁3OwT-+U;gҲy;=4LD;y0D*l 6a׹)R*,+#}ࣃ^0DSuDtSA'h/4%IDAT-$u:B ,+UsJ3$Owv&zƌ!_s4":Yo;w;ŚoH ewjRdeCƜ]햅іFGCLS0#t,fvYbOPOu(*_PS/ոGPaqg5 ’!Y[[c$BDZ9.;7 Mt8UaٟDHb6 =`Cߛ2,3چTW%%lIڥ,YiNH3 `AL.,nF Kv'v6LJOOe}b!<Q(б, .? q?XRn-^﷬V"pٳc<`ϫe(7e_RJ?ʪ)gy֖ϪX|J22U0^>B-(ND'afDhtVKDOtt Ny юmC0[]`C$qdqRk/6f̙g5ؘ~̣ZuF!3Ovtq8OtSs4ue MwsAv{Rn9mlkt.nmi`}FևxC$a"q#i$O#fGox6{Dx} JB5#]疖ZJhY:c?9_/\/,yTcFېӰ"*<)WGX 4Rg8m4Q:q!d!9f}'>߹g=x~E]--;`"H$ njn"/uuh4D@(\Wi55C#xY~MΟD'[ryESkj6zn|Լ1oy/7/) G[g n7vsh>:uu;wj7l0sNkY[[Dq?,71_8d/_e{y}DiJ.^LD&yT2LH--w1e`mBfHD8}LtK CҾdZ^{MKy&"s|V!R!Ó#'Nj۹^wvUp^ ]v;iO^^Pz"JzSN jRGADUUS#DxoVC"An7WT``Z)L {cdž,EE8!r#Cɑ8)01B{͞Myy1"S9D[ g-8j``OU  FG_]OD?gA@jlT=\~Ym-F}SҜҮ.ŶmrKZͣFC:C>&z̈nt4*+csL{l0t׭--}V+Ř{5_~ohPF<ӏKFCLIII.֖;0ј"O$lhr?6^t0LdlW4qM+W X4^jagˇ 59e8ٌ%eDT_&s{lg#:(!LdBŷln 1/oZܷƹy'v(wx<;U;"'xmW/ϛ6-hx9xP04ujD*vs@^BAA~"{5!xJ0hArC UۅA&µ̌7>rF !9_#t3g@r[ […=AMRSmm]wuxʈ˥CVG̖-" L+:מ9I3#6c]D~\DͫkFD )Hqyrxf Kt YAb/YE=kkc/ǦFҲIy/D7ߎ?9[ڷbE'X⵵6|,˒ј(+|pΜ7vN0T]ZK$0yo_ӭS|v} [!@OI]3WPڞ J͌ͼ-9Y竺WGk&= Cf>kx6Dy%6裤=[P3 @r0)Vۋj $!C $@H!9Br!C $@D T _`0Ϋ@$0IE/Gm].jUxU"/駟~w]m777 />쪪*T)#V_x֭v ٢"…/Wy&*.$0ޟ %z_ _Rf8|d&yF=`ss;wv{~p8LDp' G!9I'sN=+⍍G o}!qǩ-㍍;w.\*tgS?ֆ6n ]_mٲeFssᅬs {)J$tD3K}O>>v7o,l>aT) )}!"R/[f}Eb wGCB;믿:1?AD+2CV뮾#/Htw?D6mFHR{*j *gժU_ ՞3 2*ǤP•_ᆆ B0 sbZhї_~Fm6I'TRR2`MMM,˚Yf%\(yP(T*-˔)S9R 0 9k׮^iŗݹ䓓D"i;/]lva%KF;w~<ʕ+o{h69מCCD3d <Ⱦ}+H$SSSlٲ7n^vvv{_|qAAX,ۼysCC'H8Ny뮻N~-[I{pGGGGG/_nZў&<@ k]xg}K/;k֬n\rS$%zÒ;w666 'xX=̛7/Y|yJ{N\#GHueټ)STUU,KDXl֭_GGGQQQrN$,X`Ϸ~P(DD2VVէvZee%q`a߾}RI˵~a3~Dzqǡ=LH`5kݻ8;쳯e˖e}RxQ݌Z0*~//1Yf>u}Gk6k֬K/5hf=# NXy^OOOP-XeY4uԃQ8bRy!g1m4a[Ι3gƌһ682C">}zMMMkk+566f=[H`uY/K/ԞkOucF;Ʃ,Bq{NZn_WRo]{h ֭[\$ &cťnkȓÎaCKDvvv ,nٲE^Lq4D{Wm4/ /heV+l0X" O'pxGP,[lӦMXm6eʔ vv%T/,=bAi"rn<e,;Aq|q@ lDQ=rh4HYh9!W^O_?rW\qrҭ N03s,<̲y 7Ξ={k2 o?D"AD'|W_66n3'._4޽{n/Z(//ORE"_~y(3x\p9rW_]ng}g{\pE('N9•ߊ75LUUVVVq~aX㫯1c|ɐѶ}7x>˻ˮӧl\yy9WCt%m/Yd2 4Fj)T4a64/B C( SSLO}F0\ne]v)<GEGrR((Io{Ju ہ@`cPiO?駟o~sڵ>N{gw_=hϚ . ֭ ^T) D6>dH$ҿdoooLQRI۩Ygq ! _f~뭷577g9?5gAD_V.%"> *-pZc1 ={;ohh(((馛[/U^aY0j5w_ihI !҃(={|=ҭ[ SXCׯ_/+%iHDTSS3ў-L+lշ~vO>d ~[[[]]gz*}X}=18q'pj4ꫯN?Q eŋ_}K.E:G37e?>@zp-c%"^_zK/lh4DTYY,|jӦM3f8nDTVV cp>b8aR>G:??NoP(t:]$ 婦@wwwQwwjXk?2g !}-]tҥC͸N0=@D c^) y3g޽[x͛7drh۳(>D?i]---DDkaEEEx[p,^8Ky^>U^O㵵X,6䝊Dp¿B5pXzxƬYО9L+qd̺}/o\pkRh;/77ޘ9餓D"esZ`O?ݵ*Q*r%X_} ,{y-Z(??_P(O?sJy睷lٲSt:e b3g_,/qܒ%KVX1c ɤP(Qg^lܹs|ŊҒ6hq:Dd1*ƝJJJh$ضmʕ+/^vڤJKKG'!9Br!C $@H!9Br!C $@H!9"R rNIIImmm 1͒DfFaFaFaFaM, ?ypg -@|!4h)"2Rh&o&&":l:4߭4[CX-m=!6VK=%Kes<;wX(ъ#h#8̳#861I^C5ƃR鍬a) p;8(9_3rKL?{S/_jz@0 J*Lu8DDyO廱Z "!"֋i@Ki7ekȬ뾴ݛFT6kp0}E9v:2a7cJfG]ZSl YTKI>FQ'sDƋ5TKG}hTI2|iћ4dR/Tk R3åj^Q5 JR1􅊊|ؗ"~n4-ѭ4ZDI/~g&"ʲNˍ93Czƞ"wlFɐ17w=%SMK]EaLCC4TJ4^Oʎ`hZ;p)m&>*^Zb읡9P'1uS2zTOY/|s)ؑ Ĵɋ֙k]:9Z/YP$4EN[kP);<[A7GcQjT7V:KA, r8UjC0%̑}o+m#hR76rl%"bF+2y[yWyKU'8DJDd\r]Z++?`>{\JY2Bd-LYoUKȐFנнDu32ԱtFFhwpG$+vJr9TZӺTFp('Zl$"/mV, C-tq?Fp=B7h먿&SF_Ae]Hm)ϱC?Ah8ۨ} iu1v SwԔ-2O*ʎSFWgU[ db*LEnIg[AK񰠅m.N ;kLw"wTT;1&EҭХ`*9M.e]cg5CUю͐t ~h*j~WtkpTPf fxj8?rqE,0J}u)"Q!Uuo3+80$Va[.tLuOZ" ǑQ?n;ˊgioJ%,ިa{6rNХ#]SX?e F6ÑқQ7G3=jl;J>+==RJ-Ò(zSMfBtJY*fiy{-$Rc62T1TFۼph*%r㌍z3d":ge K֙3%;d#*d鄍Vhx)}f0Db[\G12{JZ "*dYgloѹ8T;-΋ fD@)RPfGBo91tC1I}c2zVF uߘeJѳsn%-Q(N^ iߚs3అu̓ %m ^1 c5I輍>2~*4zI3ThS6BMhܝ<C@p!8Bp!C @I\~Ex4Wh9t=C@p!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @D@} SzNbr!C @!8Bp!C "IUO"w\HS.AԖJT ONmԿ޽{Wׯ䔣֨Tr[vh#85/^,%11qĈrV !C @!8Bp!Y@-y`pn5do#Gl۶-9-Zjτ=z T~NBB¡Cjkp~"bY6++k޽|Aaa믿޹sΝ;{̡D"H$R422r| 0v}(2DR$\7I \n̜9b,[_~-[={v^^^SRq߿]t8qbŊsυ}?|ttt=~^?}6m|Szꩰy]vm;wnٲ/_nXj^͛sQbbĉcbbsI峫uÍKA^7g|[?O%K8w^x>I <s̙3gnݺi&~m۶͚5{R Evv;v1yw}ܑ;D00.\8>v2\ҪU+~,?òlvZ-E*ۿk׮DsҥFQ ]M3˲Ǐ߷oX,l&iӦMIII;w!s?裥Kr;K/o?6vիf͊ۿw^^ŋvڳgϺH܇z(''ˋeϿ{oeزeٳm6˗/_<}tOcuKA^7\g|gtp.9-[I>QL&>.\jj4RDh{ɓ'Lb4G}͛7GGG;w_,rʓ'O^x1999ūW޺up缼&O&%%:uܹs+V{j L:uw1|~r/_{jԩ;w^xqÆ iiigϞ={6;wv; .;;6))ٳO4i};w,hhӧVkbbyܹ#FѮ]"q~"ڼy .^dTwrm8n'#''_ҥ7|rJai>;_7\4uÍ|v]ʠAs=zפ^>]| :tٳD,X`X.]IDRW^VJw><ȑ#W\9t@nɓR'O oС?#X|pR+dqT=PxVjX,~3<ò,0ﲮJMM=z(U1umڴ!"n~T0k׮DTR\XXXɀnx{&4|qtD"7n\5a"JJJn sss"O' "kEI$WgF,C>;_7\4^>;YW~):uw7&ɈX:. /MNC kG*~7M MFfR5kֳgω'vp,MXW)?>qĸq㊊(44e˖ J~~ VjzٲeSNx믿ND^^^ݺu{Gx Hv2*ΆµTpwuqCDo),ƿ{POCEUX\\̟WMQןgK]g'!Rkp^q6šk޼y5w<:eʔ]_v~駗^z>cǎ:uŋ{ݻw]֮][drkQPV|ɥ.n'k 4l5uqGcǎeddʕ+wh*ZOٓ8zh"?칔 d7?Ju->uWݓ_qcAA0g.MUsc, L&#j֭Fn q5kV)'' [ti())ɽd4|v{Fn׮׺uԩr/9y${" O2ڶmn_ d寻|B= @CK̬n,::NKOOo|||\ɓ'믊Dd6H8ŜKh΍ŭVwND}]n~-uر;n*Rff-ܲi&/OW|vRд+s FkQnX,'Mа<:8ի\.7 ^U-JǏ?vun07cƌ}_ݻwWT,N>Z;v0aJxM6q + z-nF߽d4|voFĥx8|𫯾NQ\\>pURVۦM^z 6L–/_d0BCC 4cƌW|CJ}={ڵkz>$$[n&L{+|2ΩSΟ?/b6sNrS\wi]+ҳgoرcž]tMV,VۻR)f":c4v<{ܞEEUNk0pzϯ=xqN|rhX}٧~~ɱX,zٳk֬?~۫zZl\edɒɓ'^<4aOmirFPP7 <18|wv!'O{gnݺu̙!Np?dȐ{&$$4(..^~=0ƍk4;V,oٲ%77 pfC&41׭Tӭ[|g}~w}ӧO/..nJ`4{Pi ӧϞ={6n8m4|*$Nwix?juU{n+.t\"?[HHYe _HO?חxdB4 ={b+>++ѣիW?>\GQ[~m+WܳgOff&0-ZxG~iJU+~N˗/ZjYYY%<&Lh׮s=/G^{|_ߵkR|8bĈ={lذaS߼/-k4Yl;p!˫W+ ȐyI׮]fK.UwΝ+nt钾BܹsԩFJl>s̙3gnݺiӦʺx"u޽=׬Y`ʥD.nٲ… =?clۯ^:k֬{{{-^k׮={x|.驩-[鱲lM^\@f_A1ڵDsQm-_|˖-[l:uj{u];+xM&=O<9e8zl޼9::ܹs/rOСCDV[n]n۷o7oj8p|w}ׯ,ONJJZs&]vU͛7b].IBͤG v{}^cұQQԺÀ'Ѯ]w>wܭ[>Vuĉ= X,Kr3J^zZJ*޽5|'OQ۶mE* b,XxիWoߞ7ys4HRbcc۴i0kTĉT@9OKVէR(|b4mnGh<].[_ݻe*66eʔط~[TjjѣGbkd֭۴iCDarrrȯ5hDo0V pts\`5rɸ~:> =fGN9qY>y(xܘC"ů79lذaÆ 5(;t萿W_}%JO;vyW+0++oMowǏ'm:sLB=?QdpA>>Q25L).N5Kmr <> s jǍǭy/2##^_s+V/YfXf 3rH$Օ1܃rrST 8; uULEֵk?O ,;ߟZdSynp(+hbƌgΜ9ydlllMxYf+rV[tgQQQ$[|8!MESѷu\yê :k0~2 yfNDNNRk~ 믿VUEe~kިGD9994 '$$/^lЩ\rzOE\&Tr|?Z./A>>-STl{GVcU@$X*mTU^0ERC8iҤAZ*99L'''#X[N8 VeѢERǎF }͘1o߾餶mr8Q+%J.\HDIΝ;m/**ڰa#ΩSΟ?/b6SV\f{ '<<ܖ8p`ժUWzzziiVmӦM^ Rj~Ǐo8s*tPhҥ^^^/bݳ>h⋜|<C4֭:wպEE]VZhz<+8&WVl-{<߄%Ks;-NΕw*hJ<{aaa]vpc033skժU֭ gU|=z T?!f[j߲eΝ;O2%== {'+}bYlY~Zl3{켼<֭ߝmM›;wndhᮾpڵᑑ۶manш#hÆ 5{ڵf3eZ,󳲸2Yׂ+fCz H<*5\ȧ닊|}} P999AAAf( w9uTHDJl69s̙3[nݴiSv]vZrrr.]TMbl6?sN"Jf>p}WKX?~}bf3L6mJJJڹsqk=u:]xxq=f(++ŋDԽ{w^jժzK*~=PMr% ===55VN sbH&pw/\-/_e˖-[L:|7;wdf;vzΝ;/^aÆgΞ=Ν;? 4hCǎh[{$&V[n+.2\r02t/78͛7󺛔]A`Qh=*B$R}m\x cbLW:v6**VBN4Udpr,!p/Y`b_t)7T*իתURݻϟ?FJl6ۗ_~IDǏ2eB /%4zҥK'4͜9sbcch޽'O$mۊrŊ .dV4hPsסC":q>o ׹BخKcuR*觢]Uw)badk7+( $yaO&za.8,7UijjѣGb3`֭۴iCDp#NV0ap{׮]V***o߾-{&zF.~U2Rh"\z￿Vr%5 θzr^0:7PD$<|/1DԲe˿k!LJJhժU˖-@Tǎ#"a^}Պ몳gL&k۶m:ut…_nK`` s6s7_~ۉ߿mKFA~tT*k*1fӊDZ}}SR &pJ5ggR\j6lY5|}Q{!@q!rXXXxaÆQ׮]7oޜU.8䚳Xf<`p#Dj+vˬfAOb.$wJ`0رcǎFGf'"n I?\P\ti…5ύm۶ȑ#:ȸF#'`HD&Tgv ?-UD4xL:C2T͙3VTN:p%"2͇ӫ⯿z…ڵX,e۷o&"auÇeee%%%%%%Ǐg~+qVu#n׮]5 sN"0a>l +b障<Ճz}fc"~nff˂1'^HOPPph̳Z,[l-+{?;ٳaJ&'"IJ _#F1˦O?s ,N4~{&N y3gk5^d5HVg'o,yfˡ'X,#=zx~jx X_f[l0o&jCpX^{|/RNNNddqύ155ܹ3!IHHrydd`̴˗/o,ӫ=VB]F6n܈IJՙ7oϟ?aۣ  /4k֬ZӧOFQ ygyrCp1ΰ nC@p&$$̚5+<<(ZOQ<$ٝ:K6>r;0<SSS׬Ywk׮L{۷o ѫW8T +D*eR%%ss/LܐCC[D:ټG[{1𫯾Zxbdddddd'N Zw ""pPDEEnPtP(1pڵA&?#C^XXX-=zz*gUҬ[nܹ-K,Yd p}˗jx%K|B4S{RZںyy-,+s|ZDzHȽ^^Z$j=i0t$xͳ=T*?f;ׯ$? VDGK3Gt]p?~}nf&xMdD"'O$h F֢/t6[}PD/mPE"-j=i0o-egs!fъŏi ED/W潥7(n߾]v K.U[pp0?t 9-[3f)))Ǐڵ8,nٲB^K+-F6 ,"wL*m&J % *2rD2Tl.,f, Jm$q z@_A6\ 6**^h8/8/) ǥdH${ڴ(tnKD^\\]=?>W#Wg-hLXIT>hjo%%xx  \BDw}/Y|9[ʢ 4h Q:4z9sTstttW\D@(ܭR񏿯5RKënh0~+4b1ZmRFFW )wLhyD%%9VkM\>C2͖b2IaR)Ed[9w]J͚a*]Jq.0LLfBeifnHz{{F)}ݼy 1<.8"C"jؔ;611q֭o\.s͆}3E *@%D*E%%~@D]ʗ2GFd1Z.eKn)*@(gssVXW,'sUw vg~I7. ]0m r.8u$#.~MXX-"as*L_d5ǧTJD hF3L!dr{ՙ31L*2RDFNfdfQ;bwVjgR1k4 ׭y܃OLΝ;t`۹0''g޽>\6KϞehICjl$ȲXbΝJN9:ALjZaco:&:z: KĬ >2L^9uJtSkZ#""222; ;vy6o4N0A.LyUO^hV>>>\o'''+Ç@DSZ$<|`5 7c> ˿6D ֵ絔 1V,^ټ9%1KG,8ǧR)e7BBWGR$Fǭ/,ގT(D*}6 xo.~hhC2DC||F9`,۹V*fO"tp#xO).22__p;x3ftY"n߾oٻwѩS;vڵ+99}Dnj=z ˋjPH03f8VtyINΫDV8w]E6cz"Z\ٯ9&}-8xvPaf=WGX|}{+J̲GY'bU*"R]1dX[I (+&?)"Q*icۯY,jo[_odem3 I$ׂ./+fcHұzd(D^^=o]jYYYѲW_?חG,mxhe15mڴ|pڵvb {F$h8u/4͇,K[pp֭[?'+++==bbbJ̐!Cː>}@#tiF3/+H*5)&Βss:,;!--^^Zf;ZVu^,+l6>?aa} so%s'LIYU,^|YdŋH*md4ii_OL*3Lݞf2)+Q\Ɠz2^S^Hbq~ldiNe]KTfg[,IOEE,KS(XsF7kKt1DTq_hh(eee[&&&1ׯo YDD4dȐiӦ͝;ldx̐dx 5?%Ϝ?III `yChFvvD@cܔ)S9ru[o!OBarss]T*?FGG#OBalقL;C&9-Ӏ<V !C&&;[òr~Xy4vڸqS e2Yddd޽{'$$ddd+..vSRwGO|挭bZIwa//5xƍLL@3u{c%1ZJ$dh[f*)a/]:d[t 5jC/رCٳgϞ]fͲe{챊JHH8tEpXGG7KϟBGڎ}魷oD.Ֆт7ü<{̓Êd2 `$=zHO7oyND~~LNb8wygǎbx„ cƌi޼nx_qFF #rL&P#&ǭ?h!#KKwF&AܹFޣ&P*뮒o{ Ϟ=kXhAAA֭ sz~.Y$L`ܹ— [Θ1c:u֭۳>_{#W\`A~ZjպuA}geeegаNfg]2yy1qqWjFU|Kn֘}o1&d'+V^yEq횦㏕*"boRGG,٬-(=xPk cTgNT2s(PZ,\߳g}6lz9Ls}eȹs> N Rӫ.˒J{g,[77{h3NX,bߤ$?Wm[eԡC7{edhN#eJn㺕r!Vspp0?t-[m۶YfqU*Bޱcǎ;&O}d"ڹsԩSF#)J|̙3glݺuӦMmPD{{3w}V0f *:Tyyx}nCJo>LNNO=%{QoYϪT̺u^#G e2&&F#~yZ]o'y\pخ];Xl/BPTA =5jԡCF=gΜC}GwE7o^`իG}Խ#,7}[EڴQN+Wlb":T|CMI1aa""mSӱu!.o+q6ڶu*Nv■DR=ܸ33oFfsmDBQQb,jr(Ν 6(HԻD&#kUvA*adh* CqJ&NHDv޽ܹsnݚ^+9rʕ+ʷIz{{O:q#={Fڴq.1?.n&shhq׮%ch!z:8 x#6n4wV2i~x}w5Z,7cŋMp3 IԺhJ/~nΉh9T-)y'>l梸?##3FWXȎ*RBB_|՛A78C"Zpry~~u^|Ÿ޽{/[LLKuڕ.]aSSS=JDSN-T֭۴iCD@mT`I zt%T#8b3 6"teEv͞ވ|.^ lVKD* ;?^}M&zٲ;?qQÿ-D{_!?^zIβZY{fݜsvO?Y:vO*}e?W s &f}$_}U37Cb^ol.78CV7n3--m_~eFF /믿VX'N7BCC[lɍiϿpf"bY״R ܽJ;?ݲ&#FO=U6`Te(8F ;{kXz؉IR)CĆت H$da&zoi2Dڬ f0aR"JNav 5t:%C5kLGk'޽ۻDč',{.fv>!LD%%O?Y}kK?H$AdecbJ^}U2~RV"jNCkƇ_~i1Y|dh}eéS6a|(>WI$XSxê :k0topc222hʕȐMn㦷ɱi{@IAJqEDE͛߸b\ |.\Ժ 沯b(nٲxxߛ CC9tMК(bpwp}֒eIߚ{7rukQ(np^c b1D$XMxƍk֬Y-G֭DT)@fY\qp2U]e R{rIDӉ11Ƒ-ZT)fRGjr/ۿ+?~gZX <\Ա?g%WO&ɼo co<҅U+e([h$yS\b o%}n͜+x\NDS})ʿ~ϏٸѫL\q@m iD"0gΜy뭷*>|J_bŊC=4m4nZ[o͝;wϞ=w}`0L͛7={6ywd"]bŴi>l @s gOIϞl,(`̩|"%K˖թys?Q&cooo^n\)Yc5JR"aNє/C+8iRBϊDECq-z7 *ɤRi@@@޽-ZDDDT[><(((+++))))))33S׭[׫W/oooڵQ*|SvA&jڸ9s7Nԩ!CiiKU=$$RPӿku j 0@n%{YkQa!{mJᥟ}f q_{0cFߛϞ6tɓ?cǎ%Uvg1cjζPv ۱Ò_|V+=p9'l[V;f{饲x}U,-eytҟ~def*+cϝ-_n[ NbxFcoPGѿףYv"ǠefbX  8+7OacC@py:P]2 _C 9ݩSTJD |%XK{Bjע8z1pGk֬ٻwkL&SHH=cӜѫW8T/ =/+jES32Ww, ŋ[,~KFFFFF?pĉ LvBB¡C!xIo]fcYd3~ ŝJd4a]v…D7mڴXm۶ף*^odj*`V!Єybph""4hЪUD>j%ට@98[ڵk L&G0e]}B3fSRR?޵kr ۲e W *^K0>~ìo Hj4C5ͅL,KD j"j#)+xh\0DPnalݺ#嵳UG0kZ~V,PJYSYD 6JIRR^#WoFPЂf̈́[|NJe')GSS+)*HMVry51wKb hzy{/\qAEaa+Wvf? ǎtӧOO4⋝;w0=;wx Ξ=;{l":w?3hР-;v$ѣGo+woILLLLL\r==ݽ{w"JHH(+WDxcpyqi)=_n #"jsO ܃U4auD;!>> `^ IDlee"eZUʷ$<\;amM2~..TXNǝR$yJC||Z"74b͛o=#X<@&<.8"C"rf?zŋ.-[VKO$i49s޽{k|9ҽ{~:wܻ;nj2/ z :?*}+!B& YSϜ)\4T!8V]|NJB$z/;6gY~w)D0O|Zd/8v[$]R2E$/hᑫXV625U{T̹s^.^2Y\e.cE׮:̙rcV/^'OPq911ƍz4a"JJJɩIz-ػwo"JKKS^hDrK^aĎ~XVڵh4n۶ƌJ .\XXlU4j%OӌWF"d2X!G–CI[_HA 4[, ]E駢"nV,r%IJϦ:UHKKXV:ݐ^#WoGqOEEʩ.<"b c*[#by';ʲUp3W\1vv,S.]dQĊV7::Jr֭KHHxGvtZv2/_5o޶b$\uqxh<'7PK<.8䗩ݹ{@>`šǿB צ⑷ޛVjر֭ۻwovvvHH9>cR'(뼼T",`Ga6f3r\J.gQe% sBEŒ*+tDDj*E" X+0IGF;bwVj'RVJa6 _!$j㺕6oޜ{P6o"=7(hܹsv;p#ѧs@DO; ;TD2rPXHDTDB5"I5^EpYAA|dpAsqS}F )wj+4Erqر?//O" pK>T\ܺhرۼyԩS֥Kvڡ{<"RᗑG+_L~4ɸ6FQ;n>R VpkrW_m*kǤ:& q Q١"wj'7tP"ڻwmi׮3)'Orڷoo&-˗k-CE""VDWC#GT(܂7o&'xܶ`Q 3?v֊Ń||z{9B~U!?r-srxh#(b%z;N3Lh6l`z*[%|/َJ%?0F;q@EN0A.LyUyu>IVs~wocǎh~'O,,-#k׮np1oP( n+پw -gca!?pn*hX |Z-,-%lRgw3̏ѽ+@Ho~b5S$^q 3L_G@' ayFۼyD"a59ybpю;x≃Ƴg~+̠8uT":|𫯾=S\\!=sΕH$۶m=pO?T' 0sL"ڰaCΝ뮎;Y{9צM#G?yN2Rht: 2dȐ>GkѢG݅5Lh^V:G C1v[f `=/Ln0/op$"QK\X;YY6GD˫w?oo~~5:~ J).aalϥ("1fP[<48$iӦo&MVTR4""bȑ6l(n+qAiZ^;`u-Xa?ӧK৞zj>U5uÇeee%%%%%%eff BD!!!}A݅ʲti{qqja\ugIcn)4\y1_0c3ii.^\WPpd*m,[h(+[7ҥn7,vdŋ;V|{ҥ9W(+3ev22kcTEE.\C+ۋm%%^pޭVYJ1DdpJDYYY#F߿Q.2dHRRҴiΝ'eg#e 4HVg'T,yr!?$%%1 !8lϟOD?7*@- <ܔ)S9ru[o!O֡^vMTF@Cˡ۲e 2C&SA3ЭrH$""Rl͆@n36I*%Xy{^rP@t h,=eeJZ-x[^^W~OhmAF#sπs5;Nzqa֭ʈh鯽?xɒ%D$QxΫSkאKЄDXNN3Ts[rO?EwE"2LTڄϴ@$ZVs =!πܸNzadddZZکSbbb-ONMMJKKCԊ !ܰvM> ۪xR>(mݺ56 e#'烢"~’n܎;5IF-3Lf͸/o3}}7TtrS7m6sX&3Lgyzii*>U2YhX6lSV6ŒJ,[./Qwuw+ 26 N"G&KUUsub= aX/6Z ]ZT4IcRnazyP(.J$zn;X,q&S u'QrvS yk+ƺN ~M1Æ O{qȑiӦg̘1˗/OII9~x׮]O,e"GdP, 3: ULּ(3YpWQ0dc2ٷ^^TW.ј_9bbHV#_r0rg# " 3W(7aTok;/ ^dKxϏ_L^_ήak;$" YTwˋb1LT,nTV.JasMrq"s|7}Ds|}TjѸۛdFQ8NFt@wh4ę"?F$Վ~M@$p^"n).J$?) Cv~.]* H$\hk05\]wJݹs.MFMž\RnPttt݉(!!SW\D(fz\~Q"Lkae~C߇ylG%ıUx)Tu_wϽn%zח8񛺁av #2Y qЉD/[ԹX$ۻVNe__ad("Pll{e8`e2qnd}}iVkg6w}F96rdgsdx^^:Hβb'eFS |#9ۮT.tT4D.Q)Ef9,YdG=(hP|5r:q&hynQ+r# ;Y,=f0tX58_.I*oA{W0:xm9lӦMv~嗅 /Zj߾+W6vĭ[r5',, PL 3tvIUdX@wxHpctA"sQQR9Ueu^^SJK+=aLSKKXT 3Y[RR*M= aW/-%@I}Jʲ'qvEaݾD^^'xX&ɑB^qQβ"Nkǡk|]PdR nڎdQX|L&uokN7]#3z~Rn af:l(MM "HR^ODYbm~SPj"E1D ,T^;NkDJjQX$*s&J}QXaD4`qSUN]~~/nLs=n9f{؛eCl%EEqfEB40W.)}dsk~GEE6e痔, e2dF`T}75y!lwruQ XkKN'%R2?)|}ƑVF }N'!٪:jsD?[L?Iִ Y GZ"z}vsc. HWu:[v9bsZZ[ K\NSw΅ܖC"zG?TT>|ݺu |]vt:V;x`1@b/(}[Lz2Zj/zܯY݄G~H0'flJ`1ee/ٮP++yR^Z~vwoGPGߌS$1j7Vl]`FRZ6sdN 3SSVvGx|;.:Wɤ`Y#ðDG CraHLtmͺ* %|\N\av+ "jeYR[`(5U"IHXR)ID'G . ٸI+m/.q;QƦcYfM4iΜ9ӹs:v.&ٻw/O)@dk潰*U}_ɲb>rOlo ֮Xk׮fe%ggW<)Th\[sɜV,߈3 AIDAT,v7 5V`JKH$@ ;40LX|J&#G ":%Dk.SpG]*n9$8𶻍;v޼y7o:u?`ٺtҮ];0Sպ/'՗3up,-se9~yzFS0v 0>Dcs~\⚟`c2g/wjRS_F:Ʋ#T%؀j BXۢۥ9Zq8>2Yb1{ $gjBA`}$NLfoYRfIIX|D&UܩP؉Xn loBDD) W/T+^:&ְ;9S]N;]9Av74 ȑ# ͛'@x.ɮH$}]Dnݵ}]J%fb"*7J0%鯎fvK,w%JH!-p:wT/M81 /֞ik<~O%冫آR5 ֮;; XO :JX$[2_bq~BgK΍~h.SEQ:"5^ʢ>V5f{`XYP0S㶜JkS(l-Vav9ro9L}v;.2]9Av74gСDo'''+Çtx$d$Y"dƋDa#zOx#W NYG"cab[ S ~~U)DK.rJ%VH^z80[D J_Yv|DD ry5&NdsyD\,X>S3ow)є2ux`>Oʣ_qhAYW$&0Dgjoȟ+ݵXw||joZX}iwS]U$+[H@Cw>Rw.Μ{;<[ƌ=z ߩdwRܸ(|=W`4DD%ӎ8w[*-c{#8ܤRq[ĂzgS{gNн My\\\-Ǐ?8_\RG/|`ܸt4C !>}hd`ea..:;jm+Dl,:F[uWnHnlkuQqhIUJJ).j4Zv17vX[!r冗G[4n-zgS"љtogpOD }hh(eee[&&&1ׯ#2$))iڴisE@X^Vn?yzN)$JtEa#8f%WT4fslP^o˻' OӰ PXXXPԔZ矤$a!Ժ+׎W# DPHM[;aܴ_y{_H'ҥI,h@EMdBrZBK0IR)7_BL78e] bB>>"atAY JugE*j)S9ru[oPdH${n]咒(k/wKKdΰ VX,ݝ \dF^v˫[nϏF@lBiyDң2H$]CC E!T-[PZ~U;R;5diQ@@! 8Bpd9F'U"\~]$227XږlFԧ.!!" 3a<`4pg$K$qh,&ŧVmU*_j g}!?'öm^x"ھ}{ll,*BHˋ{ݨnx8 LVw҈^( *,__9jVV}&Ӹ2ά%"Q;6(c?al.aZܹQj'|Q7<ӍBar\{c~~;|Anꫯϲ,T| T͋0 y|]P=K._;>Ј>\h\BꫯΝ;w]w |իW}PrIN0erB~,̩E?Ś"a__1TzN* p<.8ѣZt+۷Ri~ʽ*33sʕ{dE0kv(%Hc,8)`VqhFG.UboD'DJ Z{OѮWzvE,~G9 vXBqֹT]-WɽO|nK8*}VJ dzqA 7KF7ȉg/殖߽BqHBo?d48^HdVD-GޣPbiis@٥EEot{%JҾ}/{}Oq}J;wN:h4R4gΜ9s֭[7m_u-[̞=]˗/_>}B3fSRR?޵kWXݲe #2Fwm^+E Z_m "M(cRk'EwX}`%EOPP_1;Z0r?b r09ɞۚ#73 _ߟ sL&;&}.?\  8/W D%AFcPeYgaM^^adtJo;5xX``wf}r~C=JMT_+g{5g>R2v)-(Gez 506W z)+b񣁁IR Z(Ű%X\wW$؆5zalP>'O2eh=zSRRRRR6o}ܹ_~wy׻t7$&&&&&\{ឍ޽;%$${abb+WD"Q||<*4"h(Y* ;>e81_ ˱d9qwj6ǙqfsYO8Y8eŇ>>¯"זּ]\]Ro n&imrEprl;Y,=f0tXķKEDk4s,bd43zLK 󲯯'O9wޭD 7Q԰US.gKɥOwMٙprg瓡^-GX$ۻպQ LDI¡鶕~&\ ➣ #[*$\dxbljWy: Dȑ#z6&%%Pp%>>~ɒ%7TګWUV 8pϟo۶mw9rH׮]+qԳz;vlbb֭[~m\οk6ӧOXX*4.[E,%$-(Z 11 hs?)##ns|gHYvx?.OuF W,hVV)k14sZ*]8tnNGD)I? xk03uY:]XH` 7y!4$90`ȋe<ղDb:/)n^%QKA\hWUs fzi쒒ɰ i&X낂~&J}T&{4 2c2=ԛa&sKJJE龾r"1*uZ(5ug UՊ\}n8KI,tIm6QXg<2wMh9VAaAC@c]ZYDWeUEq(`CnJi4Ic&3?f3靤IH~4}<33wgGzj0ciVU 6:dqEj2'1L9l4H@ /xƮtvv{kQ\`h6C9ɨ,$6W"fddt֍B]KD;vl۶lBD&M!;vԩ)9s&_N0\okZNsʕj_ѸqP{i1rf !I); D(-$< a"F; #1W|i~ɤ^g*/ DV %}KK|6IIe>߇88ɔ].m 08HF9Vocb6+[嗂m"Bsy5).WjLv:uDDm&^`wN7by.9RR'*/O/낍Jc_#+hA簎z4-YG@,ˏ;;̸'3"v'+R(?nh߲e^:YR%ղ2];Mߥ>_O^m3){=**;t:":Jc_#+hA簎zjvŎݿyar xb<#bw2"R%npbWjHeOՌkfD=ctFj488p/ %MNNTjaqq1ɲ~>S7md]n ]ESz 7U_ܤ>Z#Mz=-3oTǔIҀ(MW?Y@Z/;x5:]wL_*R4xBaaĈNS\>Ye42(>t^UG 6y~\zޛ^ڂ{Yk溈]4F=9Bi#H jd>utד8pjHjQ$ZS3ҹ#A{誫׮];tP%$+k(5k֌EQ7c-YdҤI~i ޽{nn.ݮxHIq3DxJz)%'WmnL0V[@9׎FߛODD^Mz?t>tz7& Q"fY#Zpbfeema%׉Wu۱.èʙHg&JڌdIRjD<1F](lN {$\2VzuB.UJ0Vז8j],HPM#PF*s!]|Dz7m͸F%Khر7p3k$&m+] zu,g57EQ^fOkܒvS1J#/eh7xujI8\+M&Y;ɨšPBuq(3[VB׮:"zR7pb K(l춹)tky5 j1x)fkωV~Fj78ׯ`8t֭[q܀#{Nzq%''6뮻ck}S+XD`ǣ^(AGm3D74n{l; Z/*j׭㍎[5BDwi/,lY%u\rr\Qu0ij` l"8Xzg?OsUI\r0,HJZ51-k] V8s7GbJJeEWZ nPmsS<`k:Ps'aCpGʺVWjS,KD+ok{t3qj]HPM+5L^zի}Y"ٳgJm̜9sԨQ۶m3fc=֣Ga<ϖ-[.]޽#NǍ'(kf 2yΠ>45% X},;Vuي|fz$eß n-Zp,0A}QJ݈É1,x>{٬y)9.ե>Zp͛K:NSbtFjSe 1zl6oܸqĈ999;wԩرc.]*v~~~v7x#* ;Wx⻈?LT xt:wiG>qzz^{v4uD@`P4fE{|eUnj0e&ӧ&zITẩR}0-II'9n`C1TZ' +qXH$A2D8隊B šP`EO>Gw3fmLH`$YTcX׍8mnrl]EQ z:z3 jVV>n]0JdM$j Uĥ  h?I:wnwjjj~~??14eȐ!DԢE. 9Tl~כ!I:YN>;vܲ2}4#Ͳ>_$._oe$ x>-)ZXzY]VtVMHRAr~G!z||I$#J΂p/ -(-tv,d <[^VYYxWPR2Mja%KkQj*IY?*-6*vVC|f z JJ|YJoYIINT;LBq81%6vzLvFKAjae]XWEq{<钤厢8HX RbwF-5+deeQ+7ƦMFտE5l2dȮ]ᄅSVV+HҎSgPGf#6󒒞@3eggl'--)W4I6lصk0X)y]Ey}ǃ`x')0ϫwt{, 9^CI iDQQ?NDl۶-2z_Y, KS&Z!^EdrW!8ӽ޻ySNIdXO}ɓ/~srr'pNrN p}cWXOt9",_(C=1݆0uZt)2ADurvH(mEqZ>&C@p!糳gpK4olmii(h,w^K|*+/Q3'9eetIP{<<kLSS߰sk=;HD~j2KKK}>;2'&yNbY$u=1lv0|cur]~2Ʀѓ,C,8|vRswX"$ UT0,eѰChB,ժN$gg&j2VL/8j&đj0]۬Y GsRr* w3'%-*-IRK @oFr``dzn7e9]Eg'%Q$'H *p2\,ewtͯ:y< NR j'q$%GYeu . z.9y]:ݓU4dF3= IIڸªŸ 9n5wt "PQViGY@U <Pyf;"F8G ^KJFy9Ye4>"D$%-+CWj gJ=E!3̿VY,C^55^o{Q*@$U0zr%UF j%3̍JXwAhaU/8=k׭ "m";5u^ODKM`.Ozj%",QQqE N)/*汔YyxS@CdzjժիWٳro+ku͟?۶meeeyyyyÆ 0`f…SN//?z?<*4E9 0[yrh`8%WƲ&YK;**r>нE gLra: TҺ$QTvI&kUMmz} |qkKzEfv0)WYY]U0TOtlKf"2'#Zy<%EE }3,"m 07)K4r539SyT[h>_yNWƲfY xWTԬlo%% V Nlu^`TI"0H2VwhTjajKa0FY~]cDqéSͷeQ+ު?v8?f,ޱXj*I5:Zr&je >x}\J"ucz:8)8v+;z>[˺>YuNΛ++S5n>^Zd^Y'XsVFu^Or> eII?fg~P5/Tf!"l4/_| &<ҿO=1 0wumܸQMּys ~rjժujۣ@StF4kV'azY(Z,/W_bBPlo_^[07+"ڦ׏OK[OG|j2 <"0SSkn D{t=:݇U/0'ٖj,ak=}/Hsb33Ods R)KrEP sU0[zNuV r"}V9-5 zze:]?#3b٬f:*vV T]5Ų/UPi- Na?+3p<DU3Ib㸃sd%k'IJt|wIύ,zDv黥5voƿ/eF&ʮA9|pqܰaFٻwf͚^dɌ3ϟ߫W#GKJJ{9"0a?FD.k͚5|c 4h ѣׯ_M7=è1NJk.uD$=j]eT:0r n2?l Nռ.61ʲaF0Yum̏C68nm\6f{,^ dH5'~19Y&Ke4_Llyy#K|(~?yfG0:O[jWO͈IE QN*JFc0<=9Ym$yX²EGD8o%/Mdj[$5|Q\g SN7N~60}Ov&\DTkEńFkLqhii)+[PJq~(^آa|0XF#߇hHNRRü +%bGs]gSin0g]8ԇm6Z$}<$ Bƍn$'=#z|X|;Ptw0|ncuexj s%ؠȮq Ie!z&Id)zM} |_\L s42fa^4$l#]|6h?y~Ţ#:9yǣVBN"I? 33?*-(`c]5ֽo& s%ؠȮVHdbf^kzU^ee7F}<_j^oa"FqM>8ܾ}-p8(++}FJKK#kM4i߾}>(Y,/xcǎe >(]]^++E ƚFw#PJ0vY'l6+u> KA|VV~g4*-k6?t2fs]k֭[=JDsm\G~NUVu̘1cƌ!ǏϚ5_r!CP'vx ͘N@7ojz;Q\RZbyj% w3$I'90jUlWj;g`9]Q{QB({Y~MU.qoOKSzoauhWsvV;[[긵}$mDqNW$>;XO>7u )3E] BKA6F颜eOs\f mN$xڙe)^˺|a2)Gw(݆sd%Ȯ<Ԝ'Fls(>ߧ m涰) rov$''QYYYii;v5 uj~?uJII!UhssÔ#))jU <;Xh;TA.N7/үwGkQ=b}a2)c,l6)#=$2=%Eyv0?4^Ӹ`(yu8E+{mf3qP ݙY3!P1.2iL;!m~0޵X9CY.oϧεaoZTTߝ;lkQѺ-z$}n~/Cs-0/m|frF/BDHajN6Gcvp^kzzNWʲYv^j:e{QTT atsܤTw]3ba`.OVDDm!<J>GVZd.6 :,P,[ifnv*5ú$șJanK,_߻wo\YY9yYflRUVM:l6jBx/⦛n333W^QV8p`爋.Z|ʕ+ 54EzY~#)i`jcCkz͛LTVu-۝kz$ov^߻yskL~MI3S=6Ij>}:YgϞ;wԩ72uԚ(?|vܹK.ݻwu3ƌr!C 2_G큦螊dI4-iC\tSee<̷X&%丁?y+g y\Ӯ ]JYӈt:՞F\x v*&ځI"Qv 0(]8mz?CvLDϕ4 s3Y;Q|yG%z\"v@Sfo<K"!aWh@uC6he3gzkDȺpaQ$ )9 QW؝̏q1Sz7 VZVIpT 1%:uMI3Sgp[̙k.Ǔ5hРݺu56LO{9ydEEE-.n_~u}E?W_}uÆ 'N8ru ֢yIɳza dr͵'ZPZ:/)i?3DEqle单k< M;|+a^r"f,/Wfvβ>2 Fvtۂ7bzO犢@Nhٌ,CR0S͛7߶m:j>}h ie%).L++ )Nrh`8%WƲ&YK;**rDQd#<N3? n,S]K5}L6SReJUz73zär7\e3`3k6oX,DH{.MU=znݚ8BiopfyWw-ia uBcy~ymM7ܐ~(Bڦ׏OK$GEm[% xQk#͈lCgm/4r٪o?Xv(d0DCWCuL)Ot&84JKS_hܢ]1F`(,;:#cfe,痙LL'ǨPb*v%VTJD(A9^cM,+JxA3CE/SnL B#_T+R/sVbzUVG9vE]7x 222#AnqouBd'W|fM;`^?2#sVW%yz:qÛ5+eY"ZdkEDyLͿVTL {;xyv{QXmh608gálLI2[hvGP};=8.3ʂFYY$lΩun ^/ Ҭٮzg5\)7yL}4ηXt*؉Q u;8AJ0WzGO?l xnx}ϱj$1D#<~f?(=XcVu ͕\0W|nފ4Q p.Krrr~W";>;wRS@]\AP!_D;:]U2DGymΔ].m 0]d6Q9V29L&5{(Q[Q||TFDKMh`>1/K]|l6d0 1VHa)6@ jӴf9"zh_cLjK0jǕlzۤ$M1-؉Q u948qJu!M\ l^l6wg|ȭs]5ֻ yX0n>1y#%T\tsj]X/sY۷]vnݺC۷WELU X!iGlz&m ] dR(8TR$ M#"PF:m/"͈l.9'z(TODW_'B6Z/I;jڵzD;tdR֝=qw)$=72;F4v.M RC=zݹsңaaIe5x-w siIIɓN(,*R4"m֫cG8Um?b@ӧq[VmwJg]:ĹS%UOxw\ 2S)zHIS/eY]<ǔ/cx:Y~]^W>4!йpHp8=yyy wڅCte"NwQÙvj7['ظKF'8Nz>, y]WޥK~""j/?G=Ooo:ّjڌնkaNGD'9m~Љ?ƺ~|ؕ`XYSA( V4_6,2"EaV?=ESR{qu4fb} ,ZKk^U.Ha <ߵk 6ЪU+]=oٲ%?~7ODCFFY[,x9QЅr] `xjUFpD}wAS۸q#EiLi߾} ygg̘QVbĔ$/8MKSth4ZC=׿ ii++ut2zcol:PaXa4i޼upΒwvѓvDDxdIrP'**:Dt=L.NGDt͛wE\0#.0ctede$F~}_l]R-qqN̜Ό5}^ n-Zp,0AkN V fF+OIhNJY,>5xrI %3gֶZ'OZd9v%VT*}ؕ`XYSA(S%x2$]V/QڞCE;QTGVC9U^.\_O_EcW=}:8ܹs޽w~v{2yy8pD䬻Vb5{bh]FV(-鎢8,]1-г.>P$B 6a45 uRd \RY\uv DQ  E(GS=WQY0h9, EcZ:}R"ָNgeeщ'6m5jT-ZD#]Ԣ2[ee>PpF(;;;f;d=iiL 8! [s{xE\8g 8B7.@ ;0nJ\C@paB8; &YnYw,quOj.JJ! Jfgg?>6"!C$†Z?j׮]]) 8 to";++;+&#LʎdgemQ33g9\~ѣL̼qeV'N8|p"lժU&L@D:.++eY}\ڻ;ηXxl۷iӢG֭{op8RRRwf<K,_z9s|'GZ6mZFFFdOϙ3C?c߾[j~*۬}[nQ_?S>};vLUV7nC,pŴ!\~j2U{SReZ1>`p1LgAr]iF/25r(^QQ#QٌPl_Zt;h\d6o "qC޺lަӕY;5^I\-aX,ˍ}<_ɒ.I!4黷hqeh3|&9G]G>ǧCQq[kFtſmDqhfo_q8n8Cx{ZZ7뚰1|,뢾1=`íMQ0ZT^Otl%f3eyɓF!T|?Q?Lی ~FJ84,8#"X-2\bŤI*w޽{?|_~>6Fh˗/0aO?XAիWN_}պu}5k+BD $''ロ8qb,˷zO?q\ |/޵k׊+t 7nܜ9s߿m۶=zT.i1cDxg`6l rnnnjpJܣG֭[QqqЋ;,1-n'anMyII7S(Z,* t:f|H4JKShܢ]QQkbamH |o4~o4^p5Md?o}i63V~^Ų&茌<}βx~4ͬc՛ 0ǍltlK'5u|s`(lXIa*9 eeQ]J ZLpXYYyf"袋ر{ᦛnzڶm+͛N?aÆ9w͚5#"۽dɒ3f̟?W^#GT[W8g;vNۼyĉ-[}Yz|͏>hZZx饗7x#//sw+VZ}e]r}ݗ_~/n!''wޛ6m*((nڴ,ˎ3&4iҤIڵ?x}9s(/ VawXbWavo('-5kvc, Hüf|HF:0r n2?l NیX6[YդZӿm&Ke&W&S$=[^vzrڒNDe8q-Vv 0xWW e0rLD,Q,P簲.v;6 ?Lvr,{HD.d[BVHgĝf^x_aÆ=z|'zR &mEq˥#J \47pz Z̰Ҏ;N6gϞ7nJD L2柜8qB_f].9˸\.uaa! ;Vخ]Haa,Dԭ[j޽&3xLѾ}jaod.\XPPv\r<8@zĨ!.<| nu_LUNQ^ZyH"$S$ MTo(l Fz*G״Kyz5o~˭M>g֑ω@IN1Y[V>Gt9w6ܤschr߿M'|S!";#@$O> G_;vŗ\rFaeyu}GoADYYY۷W+--?DyGIcjv6՘qKu~whQ>jN4SG9ϊ2=ܸF7߼pµk)K+cJo],k[MȊS掏~/g0 TyڏӚն,;؊Usop3uT0LqV _fѸh$yU3X6 ^Gֵnt>'H}KSps΍j\9㼢.3DKz^y.777,//yիWW[ڴiSOE{u8=zx饗rss_-[lĉ7U׮];w{KN4xڵcJ-nFy~N煂$nmBy?+J6(30,Q@ӧLJd:ɩh?%-q5V|Qq} j}n䪷I93@k9sW^y++C+EQtu֣Gܹs[ R|OYwp\S3g:f]l6򢤤$%ǵ4qp7?cK,4iҧ~wﮍGXȊKo ު?{ɒtH!UTd;Np\5<L,&]Q{QɭVy6ߘL+FH&e6XJ0`k+)j;A}Enhyxgg3B(.bs_y3b"={:/&"׫LR?ij!6Ʌ^HD>fvj̎*Ν;jǎʋ .٥뉨εFࡲrرcUaF;c*54AN{ *OCFc ws<HscEm`g/g5۹I/ 64݃/BMd@g@uxv_D?YvDJa^ +7  VjhpscѨ8N3'XӮ RT[4Rg 9){ȑ#s999yyyDs |5LNN&j}A;va׮]~?X͛טZ{&?@V.]T&J|aÆѿBј7UaF- _C2c8,k VB%Mӏ`h|*6oױ`6XYV$zj-W|ǣ;=%E0?}|ѝiiڈe4kDsfs8tE>_秒gVZXhBɺ8`K0r46 y^ zj=^oDnn))n9ql_Q;OsͭyLg 9)եK~[n7p6sQFm۶m̘1=X=x<[lYt{neb޽fseeɓg͚ղeKQWZ5uT٬x~{}ʪ[l8qbwdҤI7nܸq)SMZ^^/*M<_ѷo_x}3f?̸q>e!CXk̔8B/r#$i͚5kQ FDK|vIR@( O歃Gk7!FWVd˪a3FzKC-8Y 5'rLJ"<Eff$9um]alef30rsIr3r&󳓒t6K &(z>_ut:"ڦl<]QasXvt34sFk&'{锌d]v0v%n}]}i2effD"N#psC/-uVYAsg34IR]:];rr) Ƅ[#8#nAMlr{wݺu[|ߕ[ow}7n1b`0LNS]B}jN>}ԩk֬ٳfx<>M6=c=Vmذロ:u JKK5jg}֘0`<ꫯ~GjUո뮻jx^?~<8bĈzfvDt7ƹL|AYP >Y\\}igW!CQ-.8Ν;8p~z ey;܈iqC#QQfYY/St'ZPZ:"FY6rWAxKt3h[PRȲU|JJrSVn͐$,K}nYeyvYْO[Q42G"I]yvjǜΧˇyD1M8$Y,?>Ţӧx%I/Eqfy5j +z U=]v{O 6I|ZRjaFV EI^U|WPZ:jh6#,W|%%TIHAs <筱n&lImڴiԨQ_h A 2d׮]wԩSpl~$8/%%=u8D/970cCГʄ6lذk.ayyCȬ5IJ:ȼ:+Y,jTĞ9+**zljhm۶EYLN~29'J*ƥyFDŽAhD\vn޼ԩS$Y,ӧ#O,&jSt>@Bpx:}ɓ'-_ OvoseD6YPzNvv̙3c>lvvq@"H^x^ҥ7|Ә)((x3337l`077lذf͚;w۷㸬K.d„ ^xa#㸷zk|A>}lsXfϞsjӓ47bᄏO6+bXוO?TRRޯ_'vԩ1  s׿h4ok֬CdY~7;FYO?믿vړ'O zv7߿d7۷jVhj׮].]۴i~W_}uϞ=׿vz%4r322-Z4bĈ2LcѢE8;qȍp 2dȐ!u{?~mFa6-b[n5뮻*++;wk۷ܾ}=/E X(pH i?_~پ}{^^^omfZRoK/w:Qiyk_6G'7YYy:pmۈhرQ{%nݺ^YY`7o^Vcǎͻ\.ܹsNW7BF"NHӺu#Fٳ#o۶M %f 5ceggu]DiӦo[n999{ǽ^oTv9ms jժm۶_~eYקOlp'C={J&(<5W_5\DÇ_|Q-(W_sE}݇]D Ag+8q"0|MOQ03fLfff(].޽{D.]:zw:Qp9W!ޛ6msQȲG999nW&ډV'GD{5Ayyyaa!]z~sᢢ"MA&L0cƌ={W_ :($hp;`u޽{͚5s=$EQoot8͚5J_\\裏v}޼y6mڴiܹs{ qCwދ/Cڵ{衇8P;ӧOts:thcnΜ9K.]tI˗vG[~=Y֎;֚@L%z7oxê!0߉h޼y .|}-fy„ Db QkMZaxս{w":uT hdn~7t=#i9uDrʒR"JOO`PW+ƚ K:uZ4RBD4r֭[~G$s\|)dHWhFnsX_nn]v9sf֭ɓeY>#uCYްW^,QCj>éN[|Z\*--M* DyW3Y`С#uEru`4rò}v"ήksC k,?ϙ3'?3EېY`3%%%77pMj۶:^HD>?X&(S=8$qƥ;vu~{GD{o=OII]5.KmFw4`=BTVV:jtͫV":ѻw'ы/믿ƹV,ZHe2|~r~~>Gw7|s ӧODݤ]*W+}%rsMFwIDs̩uŋ[hq 797nٳԩSWXq_u…W_}IDw_v*mΝ; /OGQvp֬Ycǎ 6M墘?p.]A8qbQML3|puh9󕑥[n+wܑz'LG;v[VRF߆lIDATj{キpBe-[h"1(k&_|*(ׂs8 .\paD;amsX;kk|wձ N7{8p'|"|P]AYcxj~XSZJ &cJݿz뭯jĈIII;wmo 8ye̳`3gNiHmذロ:u JKK5jg}UAM#8LII?~o={jW_}uᔔ[n+{uرԩS%%%ǵlٲO>r2g|aܹ>/߿'%% 4np_rcǎ=O<^yߎ8(;;;f;d=iiLMCE͕gVvޭ>$4m>M67xCyJ4*&OܲeKe~^'"CuAAIh|ԩ??[oEY)mڴyᇵ 2dȐ!M+Ǜ6M6tPe{^S j^ve8G4g vC@p!C @!8Bp!_'N1e SB :t1@pwƍ^zi7?"nL[IĞCf3*}\.W3^|C_~O-JNgr,e!C @!8Bp!C @xd.\x9x6m sB–-ߴI.+cRS={CM?޽[y}wreyʕGU~8p`NNV_6p$|l^L7ިrd9 !%*wNN({/Xa} w7[lQ#ݻ#2X;︟yFѣG=~};Dy>|>nGA ! ەP߷ut>''pg}?9S׭KCm߾]yݺu^z!KlU`'Ho>]n lj{rѢ&k R^=ztŊ(kp!8I  /^ɀCwڒ%u)))dY g㮙30hP{ytyy9jԨok׮6cWDry?~ۺuov޽{ ԪUKөX\\|#G6kLL~?Tߑ$0a׬YswԩSNٳgȐ!8@TVV~Ç8pyNgnnO< [\۶~д,U۷o?tgϞ~ԩ]t^p!CpB˅Z;D3dY6--m۶999YYY,(k׮ef#G8Nϒ$֮] QǮ_^ u:]FFbQ~t+W43h @믋-ZlҴlF馛s3^*)Q^8ʦWKm5-Fn[npş~鯿:uԧzjĈǏѣ*DT"C";/l֬=N:>uT-ԣG=ze˖y^":y6MQQK/m׮q?Ԕeee{Q^\~8^\.מ={uc@߇~믿q3f̠A"~(rpk`;az+*71";cƌ{/((??877w7pCJJ DbL~J_zqqӧ+**DQeYۭgkfG,&''wyDDQT?CMeo^ym2.Ž;ݷo852$:ݻDtСC5!8]qEEEDtx7pCfS[!a[TTtСBQ.篹kO?-((سgO% q (@V#~"CdR^>SmAYVVAZJE"ڴiS۶m:Ç|'O,++S ZǠLEDp8@ POƠgڧ6{엫T^}FQKI.Cp{>^5kV~~1cG RWKJoIX\~Z袋Gaa\z+VXdO?$Igcc NT_U 333/䒴4^D9NQBp6lذa>G/˴iӆ vM7]r%s[k8rirrjav툨[n{QnڱcGy%K|<"iiiG?~|P εn8zԿuk>}Z}=`duE 2LʐTuhh]F"%%e̘1!~vH @(4V۶m}͛7;W^y)((=zt~~Y'H]D߸گ3w^S^WVVܹ3v^{_~]wݢEn^on۶mƌhBAaD_V >Wu(0xT":qD7Xvk5S:κ֙^W_ !DCׯ_hѣ_f ]FDŋՙKH=}DDK.uXsIII]vy4#~f͚M8qݺu#G,pnc s>XiS`, Q|]v5~S]V[XXl2j&Uw|vSID{u!D5aX)DYVy䑇zhՋ-I>[&pxل O>r=x 1LC]|ʦ u~tY߿㯾j4F!n ׶mң|һ|}ؤuJ<8xW5[1]vGUjժU;v8QVծ];} ptWjugdd{%/yCm0%%%DTRRGl6eƚVZC 㮾ꫯkQ't>J_0u4}~~ЩS;w*^tE1]omr~q Z7z]f׭[Wqcǎ߽{~6mmdYdզׯ_ ؿ( >HDzZr2QS1P +؊[׿}q063t:Y3iKXPa޽{+%IX&-5+299t\֦O#6e_r%<<ѯ_**[iuʏ7M#/6'7~4ifrcN~͏GnuV)#n΋V߳ϊZ ᲈiU1|񚙇eGD,H.nqT7+U:&"=bT^5/Wn'Ո1';d#eq(]ڑ&⥼2cyGYv<"ҡOv.Z =k/SZ&b13~$X)"#^ϋE#в*]Nͣsn=b8+'~:?>OvlR}6\yb\WgcZMU"%#<h[WMjWm>+oh>Z3,8$+͌iI;;N2G:Iܚ[fDIƵ*5Z]qEpfrI_'W+Q/V,fDܗ[p1dN\%ɰ8*cj27ɈIGs*W?쓽 XWpqh9'6OUbJ _._vy,fkűqpI;wZZj?,c1~5F7͈&Vƶjn_YD&,sb˹Ҏ|lؠ:^F9qӢYFިXҗU?P޷*zNtG̏/q@n{kw{֒~\[΍fcYmgT`DY̍bq܂An83/Iz͏ű(uƪ~6`]:gU(3.?L_yX@um_9=%qަWŠ(TW\D46Y2PUr *.ϗq䚗 0ɸ%V3xyuSγKBJU#lgUQhM[ҝ$R%/8mAׇ3ud|SEɘ]xRU$cZ2""7z6`]:9|lɰ̴oEȊ-+2,~4"";&ҥ)]UFz"QiĂؽ|f'fLELŒK Zk9=Qe|\#Y4#02[uȂ%I,WƸeLMu~s ['W̴wy1^$퐹vʬ *#NXnEk0c5T#}ثKkTު>Nذ^Ckj9#7QC/9 u.\/.5Woj7lɥhw4[Jzidă=Kh+WՁ03bT& KisJNHj5-gq*ߕ*ݰ%gԍ2ⴜxeӰ>H!҈sr)u拾UT._/ܳeUẗ_/ 9rou|EqIӈm21'%ϥ𲸶̊Q$bQr)kXis0]fdG]hEY25i312vɌ_ /vOT5F/9`*K.~kVJn\e )_DDtɌ1yQoX2`8^>H7,Zr1XJ2⬅w ]qݺhfoVeE#^^Ch"uoŅd`,M"q4O,EO+p2wr=-qNN\46Ɉ>,M">lD}Qq%6O,NOM_ӥ_-jBDl񽩤^f }6XpJU9/*yɘ}yz,cĿ۪X-s*"NZ͏ˣ(%cTy5?Y2cѳ8^ɘQwqLZ '|$UFI2&8{a_O|sƍ5"܂R҈DZUdTFNƸkil~qQl@c9sfDlJ\}¸o;_,5ݸVOݫ8^X̙X=#+SFW}i2ɰ19(;.h2|dvˊ+Yw]XxiME"e.^e"E 2|_a"nm6hV5F(8pyF{\Yx|F-kZyʸy/ECCjEܰ(̊-2M"21*ޫoF N1AZg$[@0r@=FW>9@8@8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 "SK )Р9@8@8 CB8 CB8 CB8 CB8 C""K ե@ٴihC/\vک j΁^{ahC#77֞E (ǤIjy뭷2@`RCCB8 CB8 CB8 CB8 C""K ~ mؑg).PF`ȑݻw_sylMaaaaaov^/,,<}XE_~zj;333??7޽GN;ϕ9r)Ss=i4=܀"";; ##I& @" ]ee̙3gΜ <裏srrj97ވ=iui6ZWߗ/ѻwiӦ zB8ѣGwqܹ~#<O<裳f:t4"r!w?#}F:sRYfeee~~O1b 6y[n믿 c1cƴhbƌ^{m׮]{n|7vmH$Zl9k֬?/첺gL&O䓉'3fرf۷O_ro&ni[l=^xaeee_|_{ O=\QnnnӦMgyg0`U9]}gg\WʊƖ[n.țoL&;wܺuԞzCJ^FfOm?JmguVyyy~?:K?/o[̓7ׯE]"***o;};CV{oAfff>}8w} 7?# nq>?ϩ#G#R::s9sImoeeeW\q+XM`bZ)6AnСCDdgg瞃~&NX zK}e]zD"ѻw4iR޽7ئMϿkw߈; n/##UV]t.JfnyyyvvAR0";ԋw}{NMJӧ?ёG׿O>d-Z0` '?y[\i4+XM`"Lz͏/"8i[m[oZڵ0K[q '$G8餓"bEEE^cǎ,^{Eė_~Ysgf"bkb\sMV$Rյk׈>bEQ+L[{2Lm۩\rIӦMKoZ~%6RDĄ RZw9&0^YsN;ԺuٳgŞ{٩SeEzԩH3f饗>⪪ |Zu^ӧ@H5zE8-[Lmsdjiǥ*))0##FsImm۶{]#5LN)yyywy93iҤѼynݺva?ӧRScܸq'pB[lE*!Ϝ9O>IbZu^ӧ@H5zE8S66h7l|])N+gϞcǎ}g^{oҤI+e15yuY***:9stnܹsG?gJZSXǸhd>N;HM+**Z\ub/.'ݦ~wKoV~"^xgB1~)SD_ך0G֎PFtkΚM` O?;Cz[nhѢj"QΝSw^mvu\aamݖ:ڦUM6oq-a{k 4\o hLLԩSj뮻&O\yyy{D<&X>;{yjDEDEZj߿ǪH]9{3gy=5ZFwkk7up4h .o^x3<+ck~woٗw޾^te;v%\Zdܹ_~yq{n6bĈ~= gϾ+Sw8w1"} &zyw}d2yHEE3Z2|R7233ӫewy{'ҿ{gܹt&l?qyyyW^y套^K/%%%mم^x/+r\pAƨ裏N7袋c5]v}o h233[lYPP}JM{~/N}dgg}7|`6ڨ[n't{ャgo'|iӦM<9v_w'?~|IIIAAA^;1c,Y+rĉk)++NYB]?^)4vu&l_ 3ujh[ow6lXJ939 CB8 CB8 CB8 CB8 C`3rݻ8p`aa_?Y%K nȑSLs=c hFoD ~ԩFmtkT~`}#C9CQuVkiСRSo.ZO޽{Z(O/,,8N:u[`瞻[wS4hr-j^z\pο /y睷b;(++[j1c 0`wرc.]N>_|V7|s6tM_?tM7dAkaay饗 ~d2RuN:N:gqW_}ƕ>bv鬳ΚgYm}݈֭["X:=ztDdgg=cƌ6<3FnOk ) 'JX9^z=Zmv~=Z駟^)S?:s~;vXQQ[o=?۷oDzO9唈뮻R1)޽7|_:7ԩSwy Qeܸq+[{gљ_I&N7oxȐ!FJ$W\qń &L34oG+-X+777///50.l։Dw1iҤtAnСCDdgg瞃~&NXr{Guԅ^O<1"9#磏>&MNwܱV)++;;{Ȑ!~SX(##Fd2ZrJJJjIhΜ9鍶mj3{4hiӦm^{*av{Ǎ׿ &t/|xk)$K.>C5{uoJQ7ee?HWK/P6hvqLjxgS `e\sMvv;ӿ~;JJJ^};o}]jr袋RwS|nֈ8SrssmRwb;v%\Zeܹ_~yڿs=xo="nTjӦwܑH$ʢ+%5kGg}"b=lҤ#<SYYYgqFD HUUU/U3z‚4@C׿{gܹt&l?m.)SS8>t.h=ǫ.sǎ{4kl޼y1s?_~͛7Hݻ_x5ϿzÇ{'r֬YsNUUՉ'ثW}3θ{?H J n-[f͚/r +UN;7|/+2''M6}?Y4~_=_?!//o۷߿>XxSV3hڷoO~oiRKԺ=`eee5W\"1+wޯ_|ɓ'ϟ?u[o{y LiӦͿ뮻_7oV[muGyM4׿u= oϝ;7??w0`@jzgJ2|^^^/"nWMYU6 ޗX9S־\AAACڹOQx뭷6֏ jU3CW_}5"w 4o^{/g>쳋:tD}`Ms! ȑ#|:L:*??sVZ?4_~1c&N8eʔ;3xSO=S~,9@8@8 CB8 CB8 CB8 CB8 CB8 "`=TPPM6Mup+--o;wn֭W UUUŭZZˉ:C{׷oߵSNg l`} 49995,\0"rssW+Xuj}gذa:Z)!!!!!!!!!!!!!!!YJ(7wywƍW_E)rm9z^?~|QQQvvfm~z@|͗^zޛ4iҌ3233 z1`n`]s믿 5A8h=lٵk O0a„ Æ <ƍ??1bW\q72bĈT25J8h4i;vm]w+rG}ۡC7x㦛n3gi6z;6n;{fk׮??izѨ;XӬY暭jҤI~ XCO>Nm_}iy-}YYKfmvۣ:tȐ!zZ{bk=7oȑ#f8\gϾ=XQhҹ? Sw[D;TnmD|wL_{G}o߾ݻw+&/ڶmusc=Vy}㏨xĉ[,--o~Ӽyw>!z?]veTEEEyyyQQc9fΜ9ngn;/;`pϛ7I&ѣ &\y5//cKڵknҤIw}[l`_`#&Lp7F\СCU?`FF^-TW]2\ūNo~򫯾z5v O8X͘1… >cfgg2WΝNL&wyo~F裏n馍?رc{uָ`]6o޼;u]D"u0Hl}׿չs篿km=1c&M\uU>M!:k~;<͚5[;;`5jTEEE_?wܳ:kL'JJJN:wygmy.DDEEԩSo/ˈ; kHݣ2"='N8X07r-GѦM_}Uj#77gVi5eee/_}-Gp WKr)!C䬵͘1yu<8":t];裏YZZ<= p8"t֬Y=-ZhҤIDvi/bdeeۤdddTUUK튊ՒVcǎK;omiѢ}ݻkʔ)ZVd;?q8_xᅚ{~~8}wuQ1u>"O~A=N֭?3gСCZDb{l~"Иp3f̻;}3fdffnݻw?vyg%x`Euq-ՙ_e;ۻw޽{\kX,%h tP`/u,Z 4d!@C1vؽګΩSZ 233sssuPG$u6i$AYR`*((P`4m4E/#9V7p:w\kOUUpz+x /Pk|py (GiS !!!!!!!!!YJ? 5H&[xDbvԩ%>l9@8@8 \sСCKJj_ٻw6LqXYF~L/PqQ xG1gkӟ.I&ۤ4mZޟQ5j1珩rT|+ӷfzǎ1wW^QH1roK~QV=dՓO~mӯ{ھ?RIeοd]9eJɔ)%=nܸviڷo_ZZfF*CL5~{iΙgo{[j{Ԩ\vtYUWED=h>p`v.̊O?]S k]իWjcʔ)F^*L+m2Ke-T,K.i:jT+hYʿ]IIIrYOy*HF'lyUUϷveM:k""W6#G_F~~"//{]򮼲щv^=|ڴgpC;4niQD|]g+ͮܖ-1o^G ;Z+}Uս>pټyɆ&.Z駟1b#<ڳ%%&MZ]}dԎЙ5~_9sJJJJKKZho5ԩS=Ǝ_o{AARpɟ|KJJ222ZjUXXعsZO0aBQQѢE;tgggׯ8'xO#8"77a]4,!@tyi9ۤeDDTVW|ᅊ'7IorJT8^(6FDUUu„N-[[ni6rdFEy'L0lذG}t޼yK9=tD4wߌ |o]sOYY٬Yf͚5q^zm&uUYYSO͛7/g9#6pÚ***^|/"j̙3g P/g}SZZ:}ӧGrH֭Qqƍ=۷qN;&JWVy睖_3I%È˪5~8&ѥ˒$͚%jo9gRۿeO?}Z+W,͛' hy|rڴIo… ~axC 7o^ΝW`V͞]Wd]WmڴСCN 222"W^I&2d:yyee-֪qj+LD"Z}70;;m۶͛7O=?>[^^^Z]z;z!{С* !>kN9%f# Vkk|@o֭M.9D"6(Ɉ6m)9nMo>kh:{oҿvߞ{ =Vv・/T\MaÆ=x߷o~K%ÈqEk&ӧ?1ӧoFUUUյk׮]Ο?_hQD|75|~ij;''g|333KJJ> r}QjSNoj駟~:z(..裏t鲲;N8 &1{/ҫ?vop_9'WʩJIIʇ +5~11U3ړnSSjo>Ϭ[1vlŅ.<Nhr͛'rrc{l>nXK7<߫W%#o˗w|QQw}`d2YsXo֬Yuannn׮]322Zlٱc &DDiiiEEE:d~'[ln֬vmVKO4)N[N8qԩ_#tyРA_~ /0r^xaÇܹQGj_'X\uU 6HDDUU]>lX?Q^\@WY{7=x|1jTQ͛'>&?IvVVtqt8oۈfm9昣:rRC~+2gΜe5H ҦMnjR3N>=Ѽyt2LkR/RfWYYY|DyFFlaFnkR|;;v˽}6 ~s׿U**28'g)32~1j]ӈq 6k^XSyyyUUղ^klvXii7|3{TyX?YX/;y}~8윜z=;Yx2~npxiw=oW;O:ԡkqaÇ7>7O'tyלna?M7ԣGc9GMZ27,Q?x? ۵kwᇟr)~)?UsѢE?;v뮛={vo6K^o}ipB 6HđGfydܹG-6+baqM:kH6#⪫~ ;%^Yߤ_&5);7Ce[:n H>}W_=C#G|_.O>ѣG"26 sM+L){Koٳew\?Yf)驡ҴiFVo͒^W'#wn?F]|B j^}53ܾb̘O^sk!u᷿{())9rG{|_U/RM􉈲W^oYSFD^|Ԉ6mڪpzN-++r޼y˺DK4Yre٩Sy{~aÆ͟?yAIz4~ru-J[0 W3{ |ݥW\Q W_[pD˛q]NRھ?kݚ>v.y-:w>o矿FM2nw}mrO:),-wuק>=Yҁ0LoDQZZ:~U?՚둾+}Yj E&L㏧idKp &iJz3"&Nԅw{} 7|ng=f̘#GquWy`dZ).+ʒ>}O=5Cf "k]{ƂYf˻E9W]u#EW]uï~u>x+{vۏ&׿ G=lذ_~9ZW]gf-;/{"+=!C6|DӦO2%{nV˴҂7<5fXZZ /$pe*mvm8qbD̜9'-++K֌)M6m۶3"bƌ=P~~~jŚ]veM6?蠃B""**'ʟx0㤓W<&}TyK5¹qs??n'qi~Y|i͝/z䑲*33:蠃?iŢE7\6f̬1c?#?Ll&O꧷WVVL&kNdrO??xbDn>lj3:w]XϙV =SV]wݢZ7~6Ύv=jT;Xe*+3/w5z7߼!'ÚFrO9%SDnn";;sMydʨnѻw=zm6+++++m۶{O~rVٽ{իWǎsss322n#8f̞={z[mU˖-DNNN۶mv^zu馛z衛mYzI, Ԕ9sfDn N- VkHaapdoH^>z뭷6֏ Ry`̜ #p@p@i%+s7`m0rpp@p@p@p@p@DDWAAAݝӦMSL8ֆ/r[VUUjJc5ָq5N&ͫo FB8V ^А ڐ-.\5XcN㲲6nڴi4x!6L4I2  !!!!!!!!YJOaa5v6 9@8@8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 CB8 C""K geFJ̙IXo9 U-IENDB`python2-pythondialog-3.3.0/doc/screenshots/passwordform.png0000644000175000001440000012231412507731135024126 0ustar flousers00000000000000PNG  IHDRyqgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  ~IDATx{|WdfrP4B*kKWjZT("nVŊjjڨ%,ZEB\qe1MIf$|ޯ}u3'Ϝyss͛7ts*WVQy 8rA\T""w rX>n+*HKe:8l^ȻN@-*H{vwydo|1_O#R1k*ȕJ)_$ c2Y*cYxmxRFpx#y-%*O^ֈ por)M6})d#$lӛ6x)4Np/`͞=T傒T}l  \ -**_,ШEEW^bwq *ш䙝J`}qDXŸ,M{tٛLٕ'1BLQ;@l\ LRl#K۵ (యnj:H{L5E2 ${!˱|9򀩉y&1Uߛk詒n&1˚EdU$75RR2%d|CECK$ätPƇVQK&FhW-;.3V ڮmD)UU nwȍ_aEnR.&Q(`*%9z*dLtQkLɺ硗Jʚ(yV7pnޑe&?(ZPNFpx@g$ [JMm1F}#2W\+Rӗ'28SzݖzI2^A6L)8%Cmd^^ΐ?ݖIYr$_ r e |nK ٠KƉ|i.? 䈜ʗ;Iiy;SdHD+;I1ȑ|Y#ߖ/\͛7Ere XŻߑ̾v""")y6k]'ٗ2dOS]@tAJg|2ޭ?']2Y|7vo]lpKPi!o8pG껫;l H.2ED M%LFȕ;p.amy<%gyxm2p>/eQ0@EN˿ ʚ]yYkxD9/8GOvAq,H(C !8!@BpCDDc_<)5(T)#+F-@e#C!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpCDD_bbeӹ0r 8x!vp˲eѣk-&9Yuk22z?ȇznQ Άʕjзly[O),,Tef:&$8֥KFnK):qTR89P8!X`[ݽeSƍ_L7<<)Ү]fivUFpXT+`?`.qp0Tׯ_wg?&&j swqCsWvK/e>L^{ݎwNJ8x{i*K6Xxƌo;?qٹy2uwA8:>^ vstkBcVۺbޝ;+KEqؾǬ,kw49tqVmAv휀VKIQhzgZJ=|-"mfVkW.'N8/]eg\Kgmg%iiw]*;]v7?|#׬ԢSEFz=bܒt%}܂nVsIc98XA\\ `jg d7m뛣U< &1-[i{wYڸ8g+[o,%srT$Ex1rϗ+jtfsAn8:ޏ/]r*"tɱVs#㝔MfV1{8x;$MfHR18+Yڹn|3yߪZ5M?x*CO;!V򹉉Zbb\ܹ[D5kVeo+EE)GH.*.F#GT \] UrT΢Ҹ~]KUSLܺ޷ϭcۖ湄Ex=Kۛ4r?uۻ׭hm _?`˗]Ub:Zx#ufq  >J'Ì ҥw㣯\9'MZr<*12|܀g;9rrBCM_b 7vpqIqC^C˱"ꓓ5z*-M"ҤIVL;ff:(s9%gʖ*U٪ǒi(J4 T;`)WWB[ \3z+PZͭ = -K'N?l0 7'^=1$oĸ$&joMP(Xj`C蒚z7uwHCBgEiv,*  nR%J1%,: mӧO9a2 ʊ#s^^͛g xW.rA=Ol NvsǡR|oo}*y'\;rh||VqATx<\ay?D?Rr]mǢ0f-ͭ[Dn^}`OP:aA\pOJPlXA?dYh`)11."Rf(K*[MfC׭ܑxf͚JFJ7ϲ4L+ef:Ȗ-׮tƊl;1^/_!&#!:u޼gr}J`OL+ѨQwcjZmuyDʤ$͎֬W$)Ixwnj:%st4nvAWe,o+OۻqCU /i .Mfot 9͘Qh _lg۱4[9pUD^.XPE5䨌օp!VoVkW4u=/Or䈋1su-H.Juf **W3]{-Fde7ӟҭ+ g7H5g rr2t|Em<ێi͚zխ[j릒#P:$(vQ&U׺-M߳g\}!+AyEݺ9g*4.qy ""3y*v``J&Y^옕rv6۴4}51"yVGC͚=ғ4R6ʳXTa6m?~N~GJK)8SOOO^R{AFhZm͚5 R /^LeW+mӦMFDȑ#%Obbbhhhǎuv/sNdYYYk׮7n\׮]7n\V-[>|sTT԰aÚ7o^V veҤI۶m+I6lwǏtǏرc:u6m:qdӔ{rg֙naJ_رciiiVaƍcƌQ.\\\rssO8qĉk׮XrƔ? ׮׮]۰aÆ >B{o>#QT^^^*̙3Oڿٰ* àAvڥVsrrVXqFVVǏgddkԨ2]SDoܸh5kVuVGDZnTM]9ߕMӧ+C[:t萈TW\1(99yɒ%;v8|FFO)4i陒ҿC{}fE6lwRMPP۷ooʲ_="""226m޽1e\\Gсtj[ISjft+vgÇEz+ kuSRSN>SݗoϞ=111Jl޼9%%_6mܛqڰaC%+I{~x *k999խ[բiquu}g_|wyaÆD`0(+++ȑ#LMMoo:u(kܼy̙3ʊF3fL||~("nnn-[իכoiٰ*NT~n7]?P9$,㭷ފعskתW.放+(%ōGVΔ7n(]h:<啖fl,Jܺu={9r$000)))..f͚/^LHHQFKҞ^ʞ=<<xE̮-օQC.FڢE7O?=hԥKoذaϞ=G߹sΝ;7m.13;@[.Bˈ&M4lĉV3fLRRrgIqPRVfV/3Iᐐ#Fo *tákvMVT-dΐѡC._,"-2{# rww cǎ֭[M(;2Rζc] ʲ4+WիW7k֬Q(PJ-4"x]ہ-%}bbٞn޼YtrOm}YUV**...''g׮]իWYoVPP+&#gyzzHjjjѐ´4x:QDh-[Hvv)7yyy=쳅2s N7geD2ȊlXv{C#pp\('G6$o߾QYtT eƔ;EMͽ4u…{֙܊|bwoguLHqeѯƛ-m}YbŊ~~~z;wT*عs稨ӧO߾}ۘCK۳4h "999Eo/|YQ<=tp\d$&&>JW|5kF ++HJJJcbbo^oݡ抈2ze"۳)!W^}x$Kkdub2<:G\\믿^(PĥKDQFw(eĘf5))#!;Sڷoܢ9s̢zb~tˊ+6ciJ$%%uEDt钑.Sji{6_&M˗n?pq%U޾shxR)++O>yз3ZÇ:\deeڵkܸq:t0~i`0+wyyy6lF3rH PӃ=MԨ`=ev+J,gRJǏ/^tR޽{%"͛7_pرc߻wo'''t8qwwiӦM}֭[nj322 2֞9gWB^ĥM/+czuxKvBE"Ç߷oߖ-[&O}Y$ӬL"\rs)VJӽ{ݻwm߾=!!۞~~~{6Y}РA:nYYYݺu7n\TTTяjv:yիW333W޲eEӛ Knϊjժ]vܹrJBBh2[gՠ ɺѣ_]zueȥXދ/~С4f͚)S /|||V^}Uk&M*zqlS>S:vuʕ5jC )Ihf)zg~Yfܹ377ϯ_~#F0}̉M/תUJ*ɝ;w6nܹo hu{K _bŅ 4M޽LQ& SK] b|4ѣGllرc'OLi`С!CfΜIiӧON~Bot:}-޼i( ٷo_llJ  8ڵkSNW^yEYe(S=@y7jԨ\~mڴi FۺqիW]\\:tf___e#mZB@!8!@BpC !8!@BpC !8!@BpC !8!@BpC0~xN7~x HN׶mrt1Ot:oMi*/Ie^n6oܷozt:NWvm꺌cƌMTPѣG~x>8yQQQ[- WRPPpݻe0 k.ZbŊ؍7jڒƍ={LJJrss3 Ow?pFV8qb~~ .\p!88kΜ9"R*Vx֭-[lٲeSL)|G}$RTgΜ9}tTT %޸q1c%77ĉ'NXv+*W\B0#٦h0Uf)>>>=1A:uJ-Z({KJJ:w\i`~~ȑ#7n("Z677wݺuwܹs ٢<[tXVdɒм<%ϟ?jժ3gغ!Yg^?tPDGEEukݺubbb&&&FDZlRɔЀ,XpÇhѢgZJDA[-]gnFloXsY? ׮׮]۰aÆ >$|ʼnl76} {zz*[.h9eCco[fBo7nlٲ/,Xg̘1x7nTTSN۰aߒyLn!!!yyy]vݲeٳg;{yy١!Y n۶MVO駟~' UVrA9bLiNԿ|}}۴i#"ފt钃C``u5h#u2E߃6m٨ k&3kPV,Z(&&&>>>..N #jŋ׮]kulfb+:G^XԋvƌclJ(8uT?OO/ZN#84sRJ?Y 9gΜ;:88TTiҤI͛7;w}$`f ZGaQu.6s~~r0hРQF)6mt ښEgE,juz>44TD^}ŋ v//ۧ!g^h"6lؠAo֭[ϟ?$\dѣƔvdlq["vZewu:ݺ[-,yɆΜ۷EyeK (""g3[X}>^vVߋNNNRTGުURF/\x)4e7ԃ!Ϙ1CaHjȈN+=]RRq奤<<ϟW>ouݻw̩f!l,Ұm ѣJ1jѢR#vcbK[]TTԵkDdʔ)j\5 ɢ<ܺuKD `u% ޾};>>^g5jHI%"7nh4͚5O'c3O{zzMBEj?@#scg^Fa3hP&;fQlfbK;8ѷU9e${۷opM4)ڻUT)--ԩS%owX8eDiӦ/VjܧgJJJ[l|!z{mZ%Xaiuʜ=|XDW^@֐,ʳFSݺu5\ٳ'&&F)͛7ӦM{6l\'١řGDDDFFqӦMwۡ+дR{o޼1cJlٲW^oM%AYX!_S%Xaiu(۳yOOBR6ebK[ݍ7D16$ãIZngϞ#G&%%լYŋ 5j(Cv26:Sz뭈;w^vMyغ270]]yo6cg^Fa3ȑ#Tx{{שSG͛gΜQ㲮6?ELI_Xڋ۪z{Ѳn޼Y(8yґ;o6ƃte6lسgѣGwܹsM6}:5j<;nˆ9\FeEgsy<KrMS!!!#F T R4iҰa'N(˟$%%)[˒sRX(tk0//oԨQ-Z?Y~}c~iEEm"${{Ѳ?9׋>%!!Aykcyfэp;"S>kѢl_P<+ر#::"uV)BٙQF"Uw9dZRZsش)cC(,}YlfVZT]vU^= f͚[AAAll7rXeA+Wի5kfzlEW`oR?7B߃3/#PtC._,"-*rӗE9-dlul]/ZVߋ>v[hܘ[y,t._&"w(3]y_.\`lԯ__MHM˔qEf tsQҘ~b˖-E$;;[aq]6J縸G=zԞSJRJV4h "999Eo8vۃ:euׯ?yvhH!5hu)*V?sNy_;w:}۷}2Xo߾ʣet1l~PtԠr[WSp,آNW_EK۪\+hy+Vl߾Xj;77wٲe"/sZibbofeŊJ>Mg(cbbܹcܘTZӘ www.K.-#? "52Aӵ|}} YfW v6lwٳgϞ=DmTR%zjn6m_9=jϕ-:Slڷo21s̢?XZ} E ɢ<7iDX|i?IJJҥt%###<<\J0ݫuF+VT#.._/aW`o+:sȜV6UΜXپ}{}Z?[NGJ׿}O><i/ZN &TĠ8^?|ϫT*4~xe ~^^^dd,aÆ>lCY$:==}ҤİBi eʽiii!!!`XByxqFJJʴiӔu_y3fj ]Dm6dȐSN)SSS-[֫W/4$hF)"aaaUG]JQ揬ZJV+';::*? dvIY {c{^÷E9hd`yPe?۴ij07//oÆ .E-d:~$K{Q뾭 vS*?deeݺGɳ^7n1 EvzE˖-O>}]v6eJ5eʔ?="P^WzFB ϯo߾W^nݺu4M^^^ڵG-]t?~ܹs-[|rwww#FP~;12 wVijøq ="y .;v{⒞n]ζˆu{6 RZZjv>!-n uGF߳gϱcZ &(Ƚ{BgL0i$NaÆݻw!!!|򉻻׫UtҒ49lљbV׫Wӧoݺu֭...Z6##`0]F ɢ<>|߾}[l棓5 E2 22rҥNNN5kJLL,((X`ϐʾQF8pnnnӦM|t2! ڵkj._TVw}w˖-%\t(nܸqU:Yחӵ  C! BddN+_|YtGReu:is|':ߦ(`S-VxbctoM=add_|w^ GtPjJ/)g >r:22RnڵkG-[zuD`;3{JCD=zA9& O$zQ=ZtCرC5l`0HVVڵkǍ׵kƍתUe˖Ç߾}{ѿ5ދ͛ױc:u4mtĉɦ)#""t(fϞ31ydӢ<+ ּyZj5lذK.&Mڶm[󜘘ڱcnݺݺu/ܹSl6BBBt:݈#D$::wiڴ/}DdӦM%iO%lԋ>%VXʕ+Ϝ9?{lVsB۶n3nӦMyyy+VPy޼y?i̢<?m۶W^}?f͚d^@ydPiJmfUZm쏬,c Zgoo/BDBCCm6uT5k;S*mkϞ=111͛7ӦM{ 64(dɒ;v?>##Rt{Of~4i陒ҿC>0ߡCS/+W-׷$Kb~P+6*:2?%A[0*ky.i >|XDW6 #KGDDDFFqӦMГXm5mڴPu)EETnݢID֜<>?77-[7tpr8W `0( |+++u~z,Bٴl<mӪЦ5 wx{{0~v|dW`Ez뭈;w^vMy270/dѷKqc-ᕢãU]D֜<+GY.U^1ֵg.!l݋lء+JKK3v6nA圔d̪y wʕʕ+Ϝ9SJM|U1~4hPiyyyFJMMmѢ?O?==9s.]߿aÆ={=z4>>~Ν;wܴi_kԨA TrVe/^{hB[ѕ܃Eyg۵g;#Ds2UfvI& 6+.}uvvVxZ,_++)h-ҠA)zCz9s!y>v֞%DyT˗Dx/Au_wBdRRZm+򜟟?f̘[nuiݺu_jSNsӕ?IIIC]t?\WXQDRRR f}OJDD8.9Kv+"t2?ϾʵYjif"zNϞ={Y*OWܹsǴo*7x!|ڵk׸q:tP1_6b4iRFzѣMJR,>i$%'qqqÆ S+IiءKVWFڳEjO."۶m2dȩS˖-իխuYPYSGEӘm%߿￯mlQk4#GHXXXDDrwA%T. }êQFŋ,Y\d={vر>"\x Qo+4EFF*3m6nnҤI@k~~իgϞ-"C 1-Cw޹s_|^^^U*7|S(}&^ߺukWv)?6AwwiӦM}֬Ycnm ;lذ{n޼9$$O>qww~zj.]ZFu{.- lݯ_ *z%7ClZ%.}kۿ77<۶m;qD|֭1c 4[n۷9r… ǏeFG#;jժRJrrrΝ;wo*s ,Xݭ[qEEEV~Uvڹs۷ʕ+Eb>jwuɫWfffV^e˖Vn-Iw{۷'$$ܾ}߿wV6\tjPnn_[wԭ[7$$ҥK;w<̺=)c```Z/Yz׫VkM4؎<ۨmRou u1,,,**ʕ+YYY5jx嗇 bu+5hQW`u{_W^]V"{JKKh֬YPPPg4[JфX… wSL(ayVVw˗/?^CBB;)Z#=Kۋruxg~Yfܹ377ϯ_~#F(4xn(q뼼r޾}{zzzݺuъ< _v744&O{cǎ=zŊeiNLz.2j|~SpO=zƎ;vɔ}1bD /0t_uȐ!O`>}t,NZ͛=cL4h!4۷o_llJ*xC؎^ߵkmۖO}X}'kצN*"T&J|{n㒏)))GNJJY櫯J@,y KVBgʣQF8pnnnӦMLl$22rҥNNN5kJLL,((X`x1rxݸqի...:tXf/eb#!!!]vV˗jժnٲ_OUVQ6ʃ'#C!@؃O>Dӽ11144cǎ?|ݺuu_޹s4͈#t:w}7rH__߶mۮ^:33388ϯiӦ_u=GEE5k֬VZM6}woNS4czСCm&"Z677wQQQ:u*6ƍnj-"...'N8qڵkWXQre_|EnnnAA>a„vEEEUP!99y̙-Zx͙3GDT*UŊoݺe˖-[=zʔ)4O';.\p۶mjO??}O?O?M3jԨٳٳgϞ]rSJ}رZjEGGo۶ԩS}M6Sn۶M zؓ'O;vlȐ!"27 <EȰa jEu/6}hh^ 3gN͚5EDi͛7>}4}n\]];w,"͛7STݻwxcʯJDڶm{yy̙3;t "ͣAx:#8u떈 0t{֭ %>Ed̘1ު[~ݦ۫UZ?٧7nP-"TT{k֬)y .;v{⒞^PP$(꩙t2~s.[lnG@trh4ӧ w6l.6}w=f̘ :::޾}ӳ]v&M\]]{キ|nݺyzzfffzxxt%"""44੥R .z<"}ԩӏ?X-Nge~қ7 bC@YFp 8 !8!@BpC !8!@Bp E\csrr^Zt{AAAZZ9;)((ȨTILb$&1ILb[!1GӧEqILL,M+UNNN[ܹ#"9ILb$&1ILb[zlaG*V+BpC !8!@BpC O͛7۷^z:Nծ]A)###u:]۶mK?ѣOt:oM=v)9۴iˏ=Xf6mڼ+/ӓQ/_o׮]|AAA"jpPjx8W\tc,#G>|GQr2dȐ3grPݰa間'OhÆ jz QFAAA||ۗ/_NԩS"ҷoGF"ңG&q7nٲeVNDUÌ>|pVZj*888--j3Gvv>ͅpV裏hɓz^D^:99UZEر#11QRծ]W^Æ {Pht…+Wz<~R,Y$ `ѢEϏ}>۩SS˙ɓ'~ٳgϞmA>SJo+W42p@kGG .۶mO?d,YbŊϻO2T12pe.8T"CIKK{g73F(sqq=qĉ'֮]bŊʕ+Jdɒм<%ϟ?jժ3g^[n]VYXIII~afFݨQ#s[+ѭ[nݺ)wO4TJo̘1cƌQ^׮];77wԩ;w~P (/"##'LPl n۶MVϜ97j=zO? M{a*UyٴiS6m&Ovڄ s̩YhZ0VyӧOPyW/^D"~}ʁڴiz^{Myv_@@5kee<EȰa mnz=PDOt͈ڵ{饗͛ipQݺuDdƍQQQ׮])STBRJjƌZU*Z"0&&֭["2`[Vv >,j|0bĈ_~%**׮]xg}lٲe˖;t萈T~\b"RzzY%__߇ hi6`\\899խ[[M4y-JWY Tۼxʕ+˗//_q?uAy|oܸ!"ޖfFH fܱGс\///OnnphVZ^ڵǍwĉ͛߭QCR4v 4+>H@@2d|򬋤$OLL,݌Yrv}:u?}755QFE@SԪUk=M6;VrrrrqqIOO7 ǻ_xӕ.Va0܊Nn YdI@@4"rΝ;988xxxHϞ=ǎ[r]vnnҥK;w\l &\|Yyt9GGGebҤIڵ+ȼy>3j>2&6lؖ-[D)##˫cǎk֬yP;1nw͛o @Slv@OzAj{_vl0*UT^ݻ[΅{w ۾}{BB۷==={]4b رcXXXTTԕ+WjԨ/2$94"RZkΝ;w߾}W\IHHMڧ=zi-*/Hpppʕϝ;ڰaZ|mjժE;e.8ȈÇ7noժUVҨ6sdggS[_|E~4^z/oGNE OP~}OOOeV-EG'%%;wt:tm۔_>**SN6jcUT9w"2w}\~}Z?k,sVR5j^߿k֬80ySNo[xiׇH׮]?^xADnݺvZeb%%%}͚5=ztFoFnݺu림ׯ޽{?iҤR)1cƌ3Fy]vܩSvA,X0aB).\m6Z=s7|S8p`?-Xnnr7f92*U;"iӦ6mL1b/uk׮]x>[lٲeˌw:tHDT*_t?W\1Wqa^zz,ʒCn40..ND֭[&M<P+$'':Ν;رc9SewMOOρ*m^xqʕ_˗ʸ_RR Q2qㆈx{{[2Yrv*"ErJzK.jjE?xʕkժ{ծ]{ܸq'N1]MF ZJ#!W=̷~ĉ5Zt9 \^?@Q)8TJpp7-[hs7^~]խX "e?EΝ;JРA)z{alllso߾~Ŋ;UxΝ;}kʕ"b\NWf͚IBBiվ}ի̙3]R0T\zgŇM4Q%/_n%vnnavUN+W*Xe.82dHnܹCyx}6lhL?c V{QY$IDATC)v5nܸ:kӧȶmۆ < ]DRSS-[֫W/mQ67n,"6m*ݑL[>bJF3rH P|۫U7h4[do-HRN81mڴ֪Uk[7op±c߿wNNN...ƁBR+99y[nݺuV0 nnnVgl(.\ֵkWٳ}0a„˗/+HgL0iҤvڕ+U4~>lK.Uw}1۷e˖ɓ'O6)##˫O>k֬l""ׯ_ڵkǏ e.8ػw/{dPRzurvv.'ݻw߽{wXXn߾߻woWWB郂:vuʕ5jC )I-͆TVmڵsݷoߕ+WDiӦ)G>}tKnnzKr"\rs)IOOChWXqFӻw)SDDDp~vRք.0@[<=::O>:uect:Io4HZ`#C!@BpC O͛7۷^z:Nծ]A)###u:]۶mK?ѣOt:oM=v)9۴iˏ=Xf6mڼ+/ӓQ/_o׮]|AAA"jpPjx8W\t*}رѣj_ jР'?`,z Lri+:WX1u#FpFe18裏6lؠV<`5jo߾}ԙN:%"}}dd("=zngYVvFk׮FUV9uܹsO<I&/"P0###""BD>ܸUVZ NKK̑-"Om |嗅ԩS祗^j׮]zzzdd$!`T9y^_NNNUV-=11144cǎ?|ݺuu_޹sAr…Svϯv۷2eJ\\\є!!!:N;4m_:uYJ-ʜٳg.2ydKo[.HӶm[ӏ~4]6nxȑS^7npFenP E$--g1O6n8f%Nsqq=qĉ'֮]bŊʕ+Jdɒм<%r+ڪUΜ9OYjĉ^p… IffZj; ?s?N:V?o} C===-ZP-Z(tܹ-gk|С۶mSr~N:٢edd>}ZD82֯__VϚ5˜TbbbF?~5kL<ԩS/^l~!!!"ҵk>@Duڵk\6klэ5R>o"ݺu֭_~{߿IJƌ3fuڵsssNڹs_`"22r„ X[pmj̙3|MV{ѣGOը CJJѣGgyfȑQVZJwyGD6mԦMɓ']6!!ACCCz}``9sj֬)"Z?,,Ln޼Y&RPyW/^D"~}ʁڴiz^{MfpE(ltz~ѢE"2lذA)c[?~i<..f͚jj޼!C.^8`͛7;?xjPDOt͈ڵ{饗͛ipQݺuyw6nv횈L2ER*U<$W3fh0ЪRj(wlw111nnoݺ} kGY>`ĈKTTԁ]v>lٲe˖-3ޕw!QT~\r_ÇEzճ(Kl;;@e ''uzI&|OLL4 ׮];|~a۶mV2xʕP9pŋW\__|/˯%%%`P,VVV@Q&R>(wlw"Qt ˫AR=;wիW\\̙3.\H(nphVZ^ڵǍwĉ͛߭QCR4vdkPP|qƼBSVYA%Cg]$%%)ϥx$%}bbbfl;;@1[7o޴(Cyyy<jZ fe˖"mׯ{Y "e?EΝ;JРA)z{allҥK WWW@Q;w++Wq9___%ޛ5k^/' WW."3gTveJ fèRJ"r2J>g}VD6iD\|Ǘ$&"5kT>0;;{Ȑ!ݺu sNfff\\?͛7oذ13ZÇ:Nڵk׸q:t萓cLjO."۶m2dȩS˖-իٶ(F7M6H-XwNNNYYY|IQFQF9xѣKjj7n<|RRұc"""vz;v,?`TVpppPT'N6mZwkժ`-͛7_pرc߻wo'''t`e0{ꕜ<}[nݺEfdd 777mi6 .LKKڵ>q˄ ._V#MJJׯ1IڵkWT?ŋ/]T9޽{G4Ç߷oߖ-[&O}Y$QhJ;vl'+O2zxxݻ_~ٽ{w\\\rr`TRzw[o9;;ݻ޽;,,l oݻwʂ:vuʕ5jC )I-͆TVmڵsݷoߕ+WDiӦ)G>}tKnnzKr"\rs)IOOChWXqFӻw)S ,ҹsgcbb_V}ٶm8Yf)&dvvv7m>}t%t6;['y kR!8!@BpC !8!@BpCDDSvM}c؂ì/n!8饗 mLLLJCpV]]])z(;CpزexV+BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpC !8!@BpCh7efrJ99#Gߨ~k<(-4PjnZhǍWsNprsBpC !8!@BpCDDC'@DDDVVVݻwQ 8<цcVC:kgf'NP^6LV+ æM._W^H;Β%;w_*99ի;n?;v@SӦIAOCRR 7n#G>/^xs=׺ukO;1}8k6viSZwl?r}hݺuS^\|yƍ5XRP{h4 K%_|r655uJ*+*")?11c q3,LKm\ۼa*wwJ Zl%;;{+VXTklwϹ +e+![!) 7ӸDhd,#F$&>ɢn:qιM6lZ6eHz9cOZz¯|ϥ'&w+W0'1bDi}?=L&iӦ(..^hQqqEp/.^xo{vDq0_y  ޻wCN8ݝNGя~tڴieee'9sm:3nܸnoFKKKggg2;v jjjNyȦ#GtuuUUUM6*zMMMk֬կ~֖?ٱ#ruwͧ[3kI])f٭[8q""%&;vزe˪UVX/|kgE]O?s&?s>믿}[2̱cǎ;k׮ډ'~T__~܏Gyg/_>~aݛ=S[nݳgOnK/5CcݺuK.]`>VSSC |kLUUrWoy;vطo_no绿Ocvmuuu=ɓ'1|s#9dyyyUUUuuueee2ކl6;xs޼2L$/R ***Fg)89~X9Ν;׬YqW+Vu]?m q49n)c ~a=nox'|rΝwwe˖Ϙ1C>seɓ9Ǐ[,,r嗟:g̘1cƌ7vuuE;S8yݹ#F̞={ʔ)Ts޽z~ssG{-[Dɓ':s}{wTj+W.@v׉#N/Hg3{Im۶lٲ<>͛ׯ_yu֭[;;v?3jf+og[K?rȻ{fecǎ 3f$1cL<)"{{{or-r#GkN7mR|FĕW^k׮ÇGľ}. A!p>O577GUW]};vD"ܼo߾緢2E-ZO_~f C0OY477744=ܪ)˓)E3fD:mN럷$g9wqq_xW/‡v'sg>f͚ٳg?V0%K""?p,ߙwM$ o_,dlkk;u&X\\>S͚C`hŋ?/ҷ/?Ν;/3f-DDO\Lsڈ(9󴻕M6mѹ^{II]]#|{ƬZ۷[H޳?}^]98_Wg^x /eF[L&=wW\q`Pc޼y}}}f;3gN__ݻs?Hň'?NTݝxFMM9p&v+EU7%K$/,ǗՕo0k_;'n)߿mҏ7*{_NWW'JKEEIF~]L&fΜYQQNtEEŜ9s>Oɻ***[F5yki˻,d[nxbbs8/VI][s8jR7B=k6ɃԦ }[~ +\>71f s5uU2 ԃ]& ^eS}iP>tTufPockTE× as`1C96ch B!ԱcX|/Q<o!Ur̉|0@zӚ4ρ.nSb(R~%\nxtw,n|ˇ_u-ِx[#OCb:5|Z57K”0 sy+ =8'MApB W /&'f  0jz)mS a lL}(nbB!B:.13ʀ-l3nMŝM,}Ք_kR8-Kr+n|^B2].V"^gkw2O}d z Yfa ,8¨>:jRA6@iq`1<XW=C Wi!m6~3(i|k/=8E49 !W_e!BBC`Z]ᏦXft}DO?^>f0 FUi#:TXW ]Jv{4S›4`Q}*ZSW!Ƞ做kޮ-}'9' RՂA+;/}u.ooVE9TGq xW誗ӃaҊޫk+ PC`S*>yّj/GWÈW=0 jeNz B!: ut4Bz!5P KOƔ1" (lMg'Fц!e(q#n+G 52X*Ja "Xo['¨B+{";SZ:/^=tN6Da` 5HeM;6XeƜ B!: u9<\F$<xmY!1ij C!@ iJO j2PB=:ZrG~ґgJ7 OWs@OM#xm=Ӎ䰴1@nr;kMŵ^q|YR de@z䙡X*_P6B!(9|Hj\20>l{5T)5$L&J5eA#(<,ncrdsNˡxШI.`fψQV4qZʏFiκig xRȘ B!: u9WzƔGI++T* K ^ 0 A [tPl*w~Y $!Bunڽ~M@ghjL.M"@Ԕz]0Pgj ;X~ٛ8#JȚ}y|uDudj5[ )k{ B!t::SKܚ3 k^-IQSZ\mehT__bXC ^IRs_DFE uNF*  8GOSyZjJ#zt^W6B!jzr18`&yįޙKoQ_H5K8MK2z{ܙn7n4*/arC+zBnuc@8&wM:U ݯqkTk=ol*!Bu<Xd^)fEp}2zSp 5-2W6RCwg 20vncy֒qf6iLDžt~7w k%uP/oVZ* 0 ƅfrbڗ4ɫ3x*{5* [s \) @yWF`l B!#qm` Fb\Oqm}x1b4uG9rw2y:>@ mags˳ "vS:iS,20CՃoZgCKx6I4k^jy3Ll}`׆2^ɆB!PGA#xVA NH坐F˛Xxj'UD2ʠdž-}_XYI僦d٠R ʗ s"NȨĤFP7xDۅB!BHQc#8`_ԖjN~a~ϯk )ɌzQU-(6u +*^9ӥЀ_Fұc>7 Rox5-,rsr^ݞŜ׿p$ Y|+Ĺ5֒۷ kkB'39qkk &iJ4pd9gGMkk_ƹ{נ\]of 5<~ g~ =_`z*55z۷w{'FO$eg^@C!B:˕S?]=R]޽i*c12jՓrsLL'Oh-1a&? nR JKy1¢а#>6*sʫKL4o|$륥uiL{GY׮Қ=ò2]]CCEO?AUkk)>}kERE$?7:8 [>++)ٳ/{]J2o r\YC˃74pf=W1792d 3D*xF)Z2:d֧O chUXjXYI-,|Yu޽{ hl/{x2%/tWhVTP(X[K9O>7z^;<}}YPFyQ̗5w\^xM]:ks++gݻ- LV_qr5$PR§FY#[ƚty޵J9o:AegeWO>)31ir.UUܽ{_6ڶ]94K1c*[7i~YY s3lA2еǧ.qԊ I0ҷoL7+pA&GTʕWNpvS:f![6_YFz&ܥKzw 3SDhc8 [38et>9D}'#FJff dOs_0MWj$[_R=ko8;O(\\ 5>{*ƹ5=zH9^|!Ս K~MT ׯ*禦 (STm|D 3gHQqxn[6ɰbuz89սvc5BN޽{-n766 -PSfV %^G7(_vZ}n1eήh|XPWǹvͰsAO ]RLsELAI,@dlN,QcG׶''$@nKClT%rn4ywVn-}5_RPhN!N T ԣ 5ӓi 'p**l֯##]59T'.e23P=Þ=}}+zKb` ӋƜUc05mXizz#j x/s>sraBظYia9DK=˹2k=C-Ȏ34l]_h<} Э/E6X[K]xduG/l>֢&ǔ{yfOx}ٳ^wO1OPg9z2k!Tǯ =3Inz΍FMP~aF-_ğYO|2@q2XSCF􀬮Dܹcv+/ʿЂUkRJl8PjjO2\`!sz?9ٌLQ{wb=ASݬFN<~ƒLan{^SUeeKw!ԐQƂ^,VIÀz33 Yv|W^MN6TVr0۬Bue 毐! ˕#2*F/+kRGl6?#W!pX)B5 #FT=}۸`WiG..ǎ|ĝ;W[8<66w.Gmۺ2C=R`օc/ΖR}}Y}=,=Bu/_6&[^=>}fԿV|}{7j=zJqECY_7/ɥnވY4H>@I ݻKɓ+o*e Ovɹs$P6ho_\PO/reF-j+/^g'#O eV6 {֑ !3e"zJ)BCq*e2k+. ?*u M+߻גtd2hhF10hhSҷo;0\8[[KIǓH{wqcRj5]4^l NCcSXޥX_,k{Y…aJvY?zt&'Ӄggv/#JoOes<3|~MP7tu ]:Zec„ʷ߮+*2xzbysL>u#FڽB)3GʿRR8E!<~̋zZiʇ yѹBjsC- pAB!BCB!BCB!BCB!B"B X[KW)C!ԡ`!B!I9W8!B!vB!Ba!B!`P P0!!A(zxxo$n:Pgu:~ԩSyP( {ifc"uڭ J n]涏\SS#|㱾 pA[b2{.]4$$#ks/)iZ066P` BcitD"ٲeKXXXiii<<<}qyffyhoo߯_?oo4S III!!!cƌ0`O:zvH;v3q ,h{EIIIddoݧOŋ ;v,X555NNN...?s puuwqq={'HVt `̙Ԗ>PYYYgvqqqtt>|+Hχ={P#6m$_-[JR2Y ¬BѣG'==](O&1hh;w~AAAm^LAb\=ά^hŊFrrrݻ#/_b֭K#+fA*[K)l\<|rd23g\nCCC]]]|||nnnjj£AD"ѝ;w>WZҒܺu 33ŋ$X,Yllllhh㔔5k0>D";w. #Gdff5SSS-ZDOFFF7nܸqFRRR|||׮]w޸qc}}}ccdɒaÆeffvҥtڵ :t(EBgjj'N8qb…˗/g|o65… 2o߾dBS%aaa ע`%{A%UUUT+Z9ZETݓ}}}[';;8VnhhX`Ajj*srrٳgGJS|AAA3f8w۷o߾}GGǼ/Bak׮KҬ)ScǨ=ȥO?ͽyk̙[n%7,Z( Zb~ߙq2D"W_},}||f̘(|̬ZAf?S/NPInIk^JIEUcccSSS9Ί+SRRLLL~wUfYř9r$""B*3ĉoϿvښ5k,--UhܥiřVud1v51BCPSS奧gff>p@`|lD###F@0qğ~Ic^2N۽{wK.3go!Hbbb`޼y6}֭-)Hz|>sΝ|> aNNNgܸqPXXHIar{dnnvڑ#G-[4qҥ!C%VUUeee̙3t֬Y+>zjkd&-V rݱ)JQ{}~ۿ2JJJ>}\]]Y999$$-Z8l\233?~ ˗/oްw֍Yf{6V[\嚢%c7jՌlaaQVV6cƌszzz:::(dڵ+==ݻUUU_WUU1;&YO>Ea˕+W,]>|HBM000@V"! O'\\\Kݫ <{TINX`c;S,,!segg;p񲲲?sʕ4_~}M'ɐ7`՛8l\/njUj7ػzlMavnk\R"7a-^R@ زeˢE +011qss8q%ի3g,//ry{٭[Ȫ 77B,ddb_S&?(J%$Z֜ڢgª$j ۙdes^'{u޽b;;'±QI -,,7S͋.$fqfjEXبvKvݠµ)Zr9FH]sةy{{_x1%%ܹs999ǎ_4dHҠA}w}t jڸ#Ef;E93EET~2,"""00'bA0q]aڭڭʵ[)i3s ??~!===++kƌp֖ԕd\r#u#/(//o~z2I$ WjoPGKr3s83gX[[Ӎ!M|2qQ {qfV KJJtwՒkڱwfOorQgCP(" &ޱ|뭷5VԺ@mm-F}%_QSkGK!OßN)ejj$H_A@8ẑj_]D<>H8E}Ik ]aڭ }}}xEk;wfu7a%HZ^__ }\2LMMLSN`ggg5_t2ߎf-iqq1n@ 2dݻW)ݻ%ɐgff=RN)jGF3o"bccAj }4)D<Ϟ={„ &Lhe՞85bkkkXvmԌ/VK̐._IIIkC݌v&u*9K]eee+W$D:!Cd`ҦKҔYf``عs={u .lqիWʕ+!Ϝ92rH뿑5/^tR2ٽ""" LjI2( cǎ!{9y2EhD.;b?p0֑VrAAAk.ҵ}ŋ R^!t6gΜ<|߾}'N"VKxzzuֵe͘2u7Si:%K4:_$M>!<<|ذagLvY2NC p\אӪd+W.[,==}b.,,,""B8ϟ?… 'NXlʕ+ ,--Lr!x/N4Ȩޡ7o޷ow``fJ$]QQ1f[[[2c„ /fv@rdڑgVݝ|(>g͔:-:28Dppp׮]cccܹC^RRYY){nfE UnG%%땴U!PppΝR1!Ԇ)S5_UP(dckwT׳g29!I$3g? 5Ǟ!B!fsB1ٳBeee .Dz5 .1^BCB{K,466o۶M/r:@B;!CkcǏO:w Bwޝ*/^, ,DC ֦FV9ѕ  :Z1κ:VN:\Zj_8~x@@|===}}}AJHHxaða4\.u>> -H tN!y9y0nܸ[b&!!!Ё/~F{UXCCDsttի;pvwjj2tZ!-,uxsB ]k:7<,//N)l_ӌ8#I ]sccc B!t ]C( wر`GGG;99 C~m|_pήgϞΝk={ڞ:uJO%%%^^^ov>}|||~/^4?T*ݱcǘ1c `2:9s&iܙ...gnTJDDP( ٳg8::>|ŊggD0WWW//~5_!..N(z{{S[Cٴi|9Yl㤊⤤1c 0mmd P Λ7oOKKcfEtܹB0""ѣG۶mH$Mu%C'_S$ɖ-[\\\JKKqAR&W+˳T+AURG־`WXZ`v3K;+7nollᅲ,Y2lذ.]]vРACv4hPϞ=@$ݹsc:4$$dӦM'N077'+++=Z.Z߸qƍIII]vH$s%WV>___ȑQF5OoMMTpL&۷ᘚ>ĉ'NXpcbbbXXXCC(88A+ά*++0a£GLLL6lHKKۿу ׫lmmI9!?Xd ))))))k֬X4,Fo߾j*RD---9έ[ 233/^ifVD>}:aHdbb" ֬Y{5Ky7t -B2̙3\..>>>77755Y4$%|b}/^|Сcǎn۶@] [zً/~G6?)))quuU/;;;((H"̘1#44W^ҥK˖-/⨝Ҹ\ڵk?c>ҥ >|y2-Zh"s޽WX/O?ꫯ,--˿]vmݺudD_}… OΈ:kqt;v{Çohh8|_|qnʕ C~>}g̘r\__ߏ>hȐ!ݻwDFFŹGh_ KUUUzz|+,"zQ++xzzJ?OFF?i5t -B`߾}#FڱcǦM򒓓Mjd2Vg-V,Ae)͌/m ٭|e nɠu'alΜ97o^  8ɉ7 }4駟SRR~W8p@rrr.]~g/"##%_TTT^{zzܹ?~)Hbbb`޼y8[nU=\?xxxlذ׮];rHزeKkҥKC 9xرc0__C?`ger7>dӴi`VNKK.3gΖH$|>?22z /&NHJ*͛7{zz#/111*0333 8p dddh( T+FXʧM$`vkI4<=z%7UO>e|d7@dddZZڊ+`䞏r˗/O>NNNpY%;;'Nd*++ fΜp4k,DիWx=*p8\.WqJ~ X,=2h Pf_G*Jڽ)@yy9tj AVۓ:d Q2lW+]FXJYK%C̒ڭ%@]R@M100@>36nܸٳg/sԩ \r8ҥKÇ ??$O> {:;;ߺuqRe2(Օڇ7+ptt|VLKFVVVVVV"`رVDKKKwڕ~ݪFOUUU*eee3f̘;wckwl7 [lmm***VSSc3V+]FXJYKn%C̒ڭ%@]`PT*U>|صk׵k6߁|=&Ȣd-r077o~}%3#Gnݺ)ڷ B%k1P" z̙3IlllH_ٳgnR=n @e˖E~W`bb6qď?*Ti Z ]EEj AV5JZ[@mKJ:V+iVҦ[PdvkI4j9ydff>z={vԩ-fggcȧz|ɤJҠA}w}t 5~F/^LII9w\NNNaaaFFFFFƱc~L+Ԫ @:yolk B vv? dd/Xa2:Llq#464=/1Z|sʕ@LL}4=eX4@ ӳf̘'Ou&z"d[IIӧݽ~!Sђj%ՊiCՒKd7u=u9Ο?yfظq#i,--}vիWʕ+gΜ 9r$R"[`ܹsϞ={ fŋ.]JWTTDDDww 's744K.ӳ33o6..n޽$&MZj@:Вj%ՊѪђKd(ݴ NG;JNNNAAzuZ2,44ǎ Ylٳg]pxj-qƝ={vΝN*..prr4i</666666>>M4i{QˡC^r5 @=:ѣׯ?uTeee>}NL qF[[ۃ>yjرm{葔y .<|?UN ۶m666>>>!!!h3gܼyѣG555nnnf"k>fuޝ.##i遁|>ܵk;w鬕 ({[1ZRԞ -V셎Ve\$C[t7u2.kW\t@/wF!2w?sΜ9-!Ҁ)S5_UP(dckwT׳g29!B!;!B!;!B!;!B!W+E'66B!!B!B!"B!!B!B!!B!B!Ρ68~ԩSyP( {ڞ BCn n:Pga>*Bի6B044?d\D !]/RWi&P?`HBW+mgǏ>occrÆ #??|xzzR ˣLLLc4Ve7:wرuO> j9lg۷oqmݺаkhhH~ֆX ϟ}ciӦEuڵECESђ$u!$,XaÆ 6|Pa,//Nƞ!?>###!!㦣***~W3syXDBO?&&&>}j9lg`ll jkk=<xjjEȨƍ7nHJJo{[$ܹs%9r$33sԨQGT(_^UUekk+TO>ٶm۷AG&)~~~zz} &D"LVPPf͚ݻw+Q>|XXXC Q='N8q… /_be23g\nCCC]]]|||nnnjjB/t k׮HTJn``pݻw&&&޺uK8+:M7,%cV"Ѱp8n*((̼x*9ޑie7¯?cɒ%gcccCCǏYFPad5ڹdggQaLLL khh yt/f9H.wm^Bm,Z( Xo)m6E}젠3f;w۷o>pc^^_|8iii\.o),,,((8|ÇU u3f$!_|J[VVDr>p[ 7m322~g̈́B>} HKK#7@~inn͛7]6gغukjj NMM-,,ܷo߽{n޼yyyɌ(j9r$""B*3ĉoϿvښ5k,--U2 F2JKKׯ_ׯ_ˋvwwW%G;2[r}}}cbb I%%%i,7Yɝ Mݿ\zSQ$}WYYYYYY111|1A;;;Ed aCH$~~~QQQz>sN>H$1110o<ҡuwwߺuOO?$2B1B(6W7oG:0111cX øw}l 8r䈊qV{EddggK$>innN6 '@iie7{:ujLLoɖ.]:EV^ܙrssP{0^tiȐ!;v,S{!U|N/Biv;w^|?ӧ={?|vwwwrX?!*++;Fm?'U@yy9 ' TUUeee̙3TĬY 77|"cv{VAb5S233?~ ˗/WtM8=t̢dHҲ2n|vMA ً #iVr{ظod&<}㹺0^)AUr\&ٹtMsh ]~I@ B!fccR:fP{2@ lٲeѢE_}M8?Ve4{GV>Y իWgΜIJYٳgn"+h 7Yϝ;wU???H߫W{)L8Ta$|Zڪ!*v4vvv{s~nܸA?DdPcJۦpvxbJJʹsrrr 322222;/tK#ycT* *//4hw}׷o_O^pag%cvY~MGDD>}_a¡*ȳGm)!98Ȩ'Hmk6˛ <{LgJ9p\S@{ߩS."YJES & 1-d۷o%}%_yk8onQ :U& wB!ưsء^_~~~W\!FX|̙#Gx400֭kz,X;wܳg .Tc ǎS}2Ð,>~x@ΡdT*MHH 7ow!ÄʓGŋK.%Ð***"""ȴ`m+t {@ZZڜ9s}M8QqV&5PDIF||3eee+W$o5:#LTVV*5fɐ!Ce2Ypp0~KҔYfk27dhbb"1bl듑#ԘRV+,qumhllLo%B.H,YBf}@4H4}tjpjFGG/^ŋ&M200022,oqYhh~w^2cҤIԋ`.\8qIJeV\i``PUUeii9eʔCL+**ƌckkK1a„ŋ7yذa{&CqX__߬ӧwE"hOOO[f>rȤITwhh͛۷~@@-4Hj[UX͔'=yɓ'|~UUL&#C5ge[ETddgϒQROBBB0@NNNSN=x`rrrrr2ǓJ{ ڰa*@re˖<\,مEDD iYM3ɳADNg 6##i遁{,to߾_ee%Q1_~СCccc\RQQann@F^ia[X͔//;wfff>|P, >|Μ9vU&|>̙37o|QMM۬Yʧ=ƍmmm<++cdž]Pm۶\Xlccz4Rad/ʹv֭[iiѣG>}1 Kbb855f͚!8d.A׮NWJJ_F^kБ?>77w˖-kqssYv${Μ9֭[7{lDigÈzzz麬)S5_UP(dccyL8 .r87l_˗/r[n#444lٲ0C{?~b Ȣ:>+))QX!PgvСwN6j/8钠K.=y򤱱dʕx˗/0ay2B!ۿ)E!Va钧O>zmŊxEtBu6.!stIbb;##`ÈB 8!B!vB!Ba!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`!B!`P P0!!A(zxxhϹ[N(~gXDߨFǷ .^X(~;Ɨ6 \C*~p!mj*PrÚիc9!!aƍϟWcu,~A=J*۷$ȟ\< AG%1H&&&W^݁O6!!y 6L;#]n/m,&+,Bv5j̙ӦM~톆*~kLBd[:!sQ|>orgjjAu !B De///yxxyy 8޾_~iii*V*رc̘1 X`ؿ$22ӧϏ? }B;,Xq`''' puuwqq={ST<֖`!󬼽U2`;+tOPIs = vvvvpp޶mD"Q D0WWW//~qسgUOɘM6We˖1ۙnҬ|'""B(@VVٳ]\\bŊZuR}:aHdbb" ֬Y{ndUVV6a„G۷7lؐ~###ѣ5UUUvfVAHLL khh 3jS{vkbVSޘ)Jyɿ[fffyyGԜ9 w͛7 ///99Yam۶%&&&&&.Zc__JjҸ\7|SXXXPPpaÇ79;;;((vƌΝ}۷8蘗|1kk׮KҬ)ScǨ=HK駟޼yڵks[j&hřV4Ayvvvvvvj)tGnݺUXXi&>SeZ;&Jɑl٢}||f̘(iƍÇ.;m4r-߽{wuu 298|oz/]4dȐ; =tK_KrLQ>\.wĉ>le N۽{wK.d0m=UZ C*N\ 4 {{{P}wcRT-S?|vwww'''޽{ehep>}gϞޣG򃕕ӧת,9s&Ñ?¬Y 77W$i 3hQM?G3fee0biV;fFFW^pȪ6hiIj)tLF;w\/'sƔ* @4hq҇Z`Vۚ\(8P74NT3ggg 3f̝;ѱO>?֭[[\gҥCjr䇺:*2 ?puu!=LV)g`)+ AښUTT+J$;V{ f_~fNѱyz@Ӓd)tG㬁RC9^Maw}֭[)))gNMMH$={tssc|^Zrrʃ &&歷ޒfkc &4P@nn.{PWW0cZ2[K rrrM~ gy H8 {>(g xwTID>O0(moܙ¯%3{ cڐj)LѤ}*% 2Rg]\uP*,BΫeot{&GGGv[LOqq1`Ȑ!w^ ݻs so寝"H- L7, {g7*))yJIIӧ~D G611!˸3(eGIwf_~M4ؐVkdkd0K3 fee^cJdjj eee ֲrbaO^Jr)++[r%Yb>`vX`عs={ .lqիWʕ+agΜ 9r$)]d/.] Z,?]YYN?o<*q rU̲@,[ %lRiBByTkCKxx8mhh8xM`Μ9ep1b۔ٙ¯%hřF-Aiwuumll JNNN*>`ђ А!Ce2Ypp0THҔYf7b9ʒ%K<h ONN---Ξ=KZ^@rBBB? N8lٲ+WTUUYZZN2СC ;80::z/^4iQee%5*ޡ7o޷ox``/trr:uy'$$BmnihgoN" \Ѷjժ۷_&?6V!Bib8)))$$d̘1 wss?SLSH$[lrpppqq +--mT*ݱcǘ1c `v(d$22ӧϏ? U>}ܹB0""ѣG۶mH$]ffyhoo߯_?oo4}C@lڴI~e˖1+tڂqqqBۛ j@DDP( ٳg8::>|ŊOR<9HeJ@@ٳ[l7k>>77755UiD";w.G5jOS4@jjEQ}}7nܸߵkWU &D"LVPPf͚ݻw+$۷Z 8%ùuVAAAffŋzAMi~zUUmϞ= Gf5)111,,ZTTTTTl*N rᅬ"bjj'N8qb…˗/deN=999;;׷dgga)_σ "A$ݹsGQ'l۶נA.dh(jhhX`Ajj*)gϞ=zk7EYR>Sh~d4ؾhTD<|r\oLLLvvvaaa~~>0sܸ$55p߾}ݻyfXX%''r‚Ç>|X鷳swwk{7%ӜT[[;cƌsݾ}ptt/TL-*n*,,ܴitpܜhwww=}||f̘(<`P6,//&eee:HW_feeeee($FyK_ts0--t>ܛ7o^vmΜ9uVr# J>5W^d*Htm۶h"uUXVF !C !!A YYYc ZTbŊ]/̪BE"aL:5&&׷{dK.]fΜ -555QQQ^^^zzzfff jD'?22ܜl'N駟4\6ؠ >|K. 2cǎ%v|}}:Rdgdž ,--|ڵ#G-[zSIo'77W~̡jOVKYVAO ))N~;yl8bPJL544ΰPPyuVN3sdZ*t3EivAk#G#ۓ;$ݣdgg?>=ݝ4ʤݻ/_ߴӇ$ٳ$Vaf 022Tgb* 6wXz5SYՆ :3g*Yf@nnH$R {ՅdodP%<}㹺Zh$VgVA?!*++;Fm?Ge.@999P2&vdZ*2EsZٍP9t׮]wޭ͇“f-```ЧOoݺsT&W\tGx!_ƜښUTT1{ǑEYYٌ3Ν&fe ʟ5$GGG'hԩ]~~>ּcX^-??JGK'HnOϝ;;ϕ+WBи~.{VAb}f"0*HFFF'O޳gOBBG}D6;vbܸq*27o>)H Щ.V+ZVbcN+j9lW^9sfyy9888Ϟ=uT*mO#_]ˏ 477o~O@hi2i&_d2tXb*h---+**H[lYhQaaW_}&&&nnn'NQ@`{'/(ujGnݺ)16:Z'~ܹWD^zݻwN]Xh$VgnAOٓcp2tڴi/ȡ( !T^^Uie.6洲vCMJAAA K .킝]-;{T ŋSRRΝ;SXXqر_~Sv)S,--mc p9H1~ WIug9OWׄC%K$5HrAArvvׯߍ7"cJ;<6JƪND jڕ+W( h>1Pm{iƸl`bbO>U^TTl_ʟ RǞ7`߾}UP_^&(Kʟ RǞ7@ ۻw·w3[qS*3$~D]UU F >3h6oAfԔu믿744TbZ*2q4ԛ)u09Դ!Cd`0IҔYfrd`عs={HCy js@V^/??+WBX|̙#G*400֭{[BCCɄT@^5o<fi'/ϥK\ ǎ#Kl@̮ 'o-N}:Af= YŋK.%k6TTTDDDAnhAevudx[bb"1b}}}IcJ$VgfVd\ CB ;.qqqv"۷o/^X?IDATqhnJ],U+Zn034@re˖<\,مEDDr_pĉ˖-[rAUU)S:8p`ttŋ/^8i$##JjAK)~qqq{%d&MD뛕5}.]H$rd|3 2ٳd@ r~!!!/::b̘1$&LXxeG''S=00P/}}}|3gn޼ѣkkk77Yf >գG͛7_pÇd[ݘ e 7n=x'OƎN)KK/rСW\077wuu  4")YY֭[iiѣG>}1m z%`Pa4oAi?5yZb4hr;v숍ݿݻw%ɓ#""vji,:ZhU+ZBP{WD<е+Ӈ╒ŷ؀Jhܹ9s֮]@!ʆq񹹹/^l$)88 2ʚ2eʨQ~W? B> ={&sBr…\=7H$gΜ :"B<~xŊ5?ٳg5-.\(zba CBiTPPХK>>>?/TO|ffyhoo߯_?oo4bqRRRHHȘ1c `oo6SN)( wر`GGG;99vtsPh0+BѣG'==](O&ZD5 ?2{L_™3gqj!_Xnv8888;;qֵ{2Ν+ #""=zm6DI;v3q ,hcNϸ}puuwqq={vkGf|Ŋ ? nQgO5GׯWUUٓdgΜr uuu񹹹 _Y.Z4+FFF7nܸqFRRR|||׮]|VciipnݺUPPyE=%K ?~f#oܸ^dɰa233tRZZvA :T{Nn* eCpwwONNmmlpssp8(=ʧYrHffQZ_RGᅬ"O8qĉ ._\~O3۔3ۗ ZcVj@~-***** f6 СNjOb3启}ݻw͛aaa,[vvvPPPmm3Ν;w۷o8p1///`@@@ssssrr򢣣vr111مrqqqIII \v-77^*feeM2;U'H7#CS5W^@U졕f{ذaVVVW[[kjjp;m6R-ZLʕ ]llljj*YbE~~~~~~JJ :Jy[nnڴgdd ':::--~76119|p+_KKK#=O?477͛׮]3glݺUTUaggngg>Jƙ˄]˟IYYeC$}WYYYYYY111oظZ-Ρn333 8p ddd)Hz|>sΝ|>[D###`ĉ?SN޽;ҥK2-@ trrp8ƍBm;AZFCylD\rss['''SET#Vn.;qDh%[|}}U[544[" ]֭[ wN7oGz111FI$7o?)`[nU=kH#aKKK077_vȑ#`˖-Z[9s>|x޼yhETqǮVÇ&...gХK rcǒbqڱ"-C`ooOݻGm{˗}qrrg2KHRe*m(oРA|L=VVVӧvЍX{gll\]]M|'nӧ<U3ET#nie75zܹϟSL*1,999"f͚`rvӪdzyyo|4]٤}'Unں,9sGBKʰŠ*y9jFWx Ujvv#"s" _VWWS[\gҥ͏C 8;;[XX͘1cܹ @ii]޽[UU%Jagj`䇺:-}F[O5PC}EO:3V"Wׯk&[}FE9 oɐKe2YEbY-[-ZTXXW_ĉ?c=A_zu̙`cc@+Ϟ=uT*U88 Rk B7Jb/ΝzH$ի׽{ZpjU졛fGT琌)?c#-,,vY:JB|cEE)ctenn?K:Lu'j 5CsbPDcR2a簣k]PŋSRRΝ;SXXqر_~ՐJAAA K .{O -j[~M2$"""00-N8Ԓ"ՊAv >}ڽ{ sǔb[ױю3UQebW6&^˘BH` H$J E @IIpcǎ?sʕ@LL[o%ϩi!:}b4pΜ9cmm۫WӧOgғC-V wurruVJJٳSSS%IϞ=4sP^^بE~&dgk$Ϟ=kOfL&S«҆:R333?Qȣk.VQFq.[\\v@H1nSm~H]npAv:iPdmm-6P0dD<ZKNV2^4LMM$322FYPPP]]mcct0mVe7yHHF~G{uuuͧc]v :6RGiK.yzzw? N8lٲ+WTUUYZZN2СCK¯L4CCC7o޼o߾ =.jǬvef899M:<O*;((hÆ 0"]ԣG͛7_pÇdBW92nܸgܹԩSNNN&Mbח9s͛=vss5kv ۶m666>>>!!!MNV2ehw֭tѣG>}ؘѶd,88k׮w!:*++Yv;rnmaqq1^oر#66vwޕH$'Oرc%GtL2)uн{G_>##i遁-M.Ϟ"jN"9s<<<03Bu9D?ٳgu8.\(zb|g$p!Buv {500իX,.))ill477߶mLayF[I"""233 _~ ===SSSB#iڇoƝ9o޼;<<<--M4⤤1c 0mNR9Jsfff@@ٳUOFk? Booo\RRo|E=R;ƌ8` k^D"ٲeKXXXiiZSTTbŊQF999{Ĉ˗/gtӼj*9Z[V`7FcϞ=T:M6'~ٲelY GmctPد_?LF`Ӣ|2od7w\R5=zm6Dt3aΝ|sPPPqqqKqd ""B(@VVٳ]\\bŊZW+6ʆ^hB()@M+SOKuAP'OǠAz "Ν;m}v2FXZZr8[ndff^xq%K ?~fUNV(O8qĉ ._\cB+ͩ-"ͷQ}}7nܸߵkWjOD2w\rS99j( $dgΜr uuu񹹹 ߋӵk׮HTJb``pݻw&&&޺uKV>ϟx 2ѣׯWUUڒ$Tn wwl__777CRARaӧ&LD&&&2`͚5wf Bа`TMNN>{ѣ5yTEbbbXXXCC(880TVˆ]B)t݌3E]eAè%w_Hm۶Egii 빹999yyydgg.ȴҜFڦO?477͛׮]3glݺ h4gggΘ1ܹso߾} Ҹ\7|SXXXPPpaÇk w͛7 ///99Yd9r$""B*3ĉoϿvښ5k,--Un?22ܜl'N駟T9ԩScbb|}}wNt% `̙JׅV 6[gssk׎9l٢qH$~~~QQQz>sN>D"y/Gݷn.ũ&**KOO,<<|$22>øw}l 8r䈊F hLnnrss['''SG 9s>|x޼yjI c7oGcbbT\|7qqqQd/]4dȐ; =tG|ˆET [3qlh&tΡ322T/QC 4"z`̙ 5kD"ݻw/_ Ϳ+ӧ={l&?=ɞfooۻ(ًs/YC<$-ͤ#5_}Skej5LB< DSSpVLr.,>f~3~aAQFFی!իWWTnnn<ܖȳ劮a9M;wlkk[ZZ̮Ov"+J߿/oP6L:ɘuC5\K/QQQіV еk^Ô՞E-wѬk `g1I#ԍf-D-Ťkw=JCՍ,:h0氩޽saa)SfϞ=p@??.۽{ٳgror򜘘[Y111VW<_zy뭷5;;<YYY=SU?h0^#:پmDձcSw-g]KrB9Qŋ٢8ydaafqڥKVV~ eäg<5[vtt,..uV<7oH$֭[ճhO7nhW8X34BhFB~PLv4`haS'lٲhѢUV]^ƏK/xM6۷ovϿ}6;~:Uע­i_g4^V-BaNNNUoM5=U؟'UGg#Sw-g]KrH9ŋqqq2,117###33M6U6olt1ObXT/@l]uvvz.fc6F;X[IVt!8lcbb;vk׮%''GEEEEE8qbϞ="j4 > ?/\7LsCiLs6mj @3qBf8' ;(,,l޼yΝ>}z#8lIMW˘X0ܨH<^S9T gh]'a CCCCCCH*nذ!""ԩS'N;vzjVVm߾UVj^u37[@^^۹gqiLB\_SgFA&i4qU9;;QQQ^7 /[Fd D*>2EF4rݻ70J^^^!!!Ν:ujBB5naN$cj? F&]N3jq5u96m#|>?33霑n4#;יtn\ „4͏D"ٴi; "{eх5]$Oڭ)imF0Mh*;;;g(==>yիUTTk׹sg"R*UƘ}vjwoȢ1F!ְ>}`9;887nDEE>|xtttRRRiiwN2~~z*..&}A1TYuO\4"Y\gҵ G~ M]MT*"27*"*,,4 ,>>̙3KZ?gXܷo_"ڷoQvjxh+||aVe2ى'g???6裏}Wff&wF޽; \rű{駽hݺuU6dma0p{޽ٻSl^&Qpp\.SڰEDt1T3K*;wp͡CŤ P`` []8`ڵk>'7nH M:#]7Z$˝Lv7`ӹL@఩;tSMaa5kؙGafkkk,Yž>4ͱcf̘akk[heeP(֯__5ؤ>}z̙nb8p`s-W7,Wnݺщ'LjoE)ghdd$H$6x5u?ɘz~,["h"""؇5ȷŤ _`ڵkMvJJŋ٧E霑̫-u^Aˉ\& ˜`p _!&O%Xr%7^pF,|aҥf?"L,Y>{l޽ RlӦ͊+jze>]v۷>ae988xٲe7o>pb17yBBB.gI&>|ȑ#G]v ,O=z|7/0aMII Rd8Daܹ/_?~5kXYYr'OV,jyyySN:ecc# r^gK5\ݰ\ipBCC#GnݚZ7n&RlZӧXdcc3`(84>ץ#N2&Y!!!'OW М9s.]tɰ׋\OO}.Md^hpMdsI&rPL:164AaT*$WCBBBo޼y޽2//^z͘1c%ɶm Q.]],Yʎ())1L`j|_z)((h֬Yl?[n}\ѣG\ڐ<3… ;wܹs쨞z]3UIgoGEEET*ɓ'ϛ7ڶ8S堘t;v?x`ZZZ~vADFEaf9#W7VӹY\g굻)SOMr M wueTj8eM`W^9wGkٿ̙3׭[eɒ%?y{=Y&(66vĉÆ ۿџ$>iJӕ'9GӱsXZ><P@h+С(?υ ) .\(|}}y@CCh ϟCD%%%SNСJطoBJ:i۶mx<@)Z"v @K/<¢t:]۶m_uюP@K>j^dڵ6KOkk8|BxaB@p6)ׯH$SN)ADDD"iI6vX/K{\ۢ-[&H-[*/^,HG1??BxaBx4>?`v9;;Ν;(&%"""++kaBDݨgi< EwYfP(x"dXȟkmm.7k׮űhR;""ҥKD^{D04GDcƌٺu5j]=1 Xdر, nݺED&Mj 3Ts$ "K?Fٱcȑ#u6ZFIpG3gN=ڶmۥK+W>}(ٳ%IXXؽ{,Yҽ{o۶MVg /tґ#Gv֭m۶z;w3gR~dСngƍt:3aJ{oС:txꩧF_W8,,L"̛7bcc_}@??;]x˥a; yyI$;v̟?ϯ_~.++[d``_]Z޲eСC۷obŊՍ0{ˏpd2ي+ڷo?t/BRt5kVPPP۶m_}zyEWl4ת.٠ʙ`XJMƭ1{BfWz-H~ZҜ={V"tEכq96Bjw9bĈw}^SҰIZ0t+} jٳhM(TGFGG6={!"LZ%"a\\\}vRRRtttLLL7nL&III~aTTw}' _u청uNNαcǎ;6k֬?K/o۶-%%ٳFz=;,443W-Zu666*~C+Vj%KSӓ:r \޺ukŤU*N{ moonݺ={샢O~y>jJC?Pa%*Gr9(ƍw|駧O>x𠍍a 6lڴ=988… W^m^iQtŭVuF}|^pvvfט]]ӧϑ#GCBBjJODzb˱IzV;Ǐs9r…ÇW:N2Ђ1oN>?䤤6m"#####-ZT>#"5k֍7]v֭oO>վ~}vrrƍBaTTT}~!!!۷oONNNLLdo|]~._߾}(""h#wx):`|| ***LrŔ~֭[L/VZ}J.xGYk׮D4eʔHl;}mj4ӧOߺukĉDtĉǏ'''8p ##͛+V [n9rAJ U~S`ݙ&rPN8h:-[D>3Lvi6zWn޼y3g֭[ٛl3JԢ{6,2)-v ynԺ޽{SeW8.c.ǏgwILLLLL}nZǫjP{999+b꫚޵y@  ey۷o7ݤIoή5kִiӈ+/vp͆O?D"ge{=Zi&___" ܹsP(8J-[6K/QQQ_e^68F؎F]q}YX\RRbyEEůZPLKKcSO… 5}ڵkQ SAOOOv%޿>i۶-{4hedd'ϖMJ9(kؾ ۲\.%iӦ3(!!A&YȆ%VM4]ܹmii)']veeT*@  2u&]] x4&n <0氱%&&SO=eݻ߾}>޽saa)SfϞ=p@??Viݺcqq[~ R^^ݻϞ=& )mll{FDD}.^*}}}322233۴iSuz8;;WFW-FaKsر/^v-999*****ĉ{쩽HI,XgϞ}Y@@y…U7۽{.]?(L8RvM6\nkbƏʏy;؀uvЌ=b9jգ:9i؋NXXؼyΝ;7}t < 0氱3Uoš_|ٳgcccLBDNv*j?,MicWfee o'jDtaVdveَL2r ;۶m>њ gcHoFᠰ_Jq ѩ@<:::))ۻw.Lג U;@ ఱuޝ\RQMT*"2Q%Jϝ;gСCDPmwJ)Jkvpp BGϜ9SS'?|x]vϏ?> 3335ёݻWS渃fUHUAՍ9(u';;;#D$۷(dvZ+&#DLkMe2;Mnpp\.z)5BvZՇR]&Z=R=fac';wݻ=_ .:>VXXfv#FTe˖4MDDȬ9s8pBX~}W}%K!Fsر3f֒yv!;IرcbqCy]vpڵB z*{P(Ο?t!C4 dn݈ĉyj;h^YEͮdv\hb+W Z7n$3g!;LL[oQ\\Ǝ[dIK.Fk"h5~i",)%/|>Dk׮ݻw]JJŋͼ0t4ܹs/_k֬...'N駟/_DÖd2ɓ+W.\`b1&[tik }-666 `&Mϙ3ҥK'O [~X, ݷoޙW;@ q@~Сt@0a„իWݻjKT*4eCBBBo޼y޽2//^z͘1cf~裏T*ɓ͛W3$,Y>0%ɶm Q.]]{Ɍ;믿bmu1c\paΝgΜ,--uvv8p joi(&n/y˗/ggggffRu=k ;h**jv$*,eV$9s䩧4i믿%5o?<<իNNNAAAfb;ֿ4،lXBFum۶uss>|8rΝeGw~6Bw~4Zχرa 0 ;6յOnA,;{}̙֭k"Y;vlBBŋ~PGK,͛{498qao'Db-@ɛ'?_OsM˗ 8Z}y"ׯJ Chrrry"1b/ .\RXXpBL3Ϡ|`!@-+,,l!!!۷oݺuk|||iiiV ;X[[Ѳe~_|q͆oߵk;ӱcӧOׯݻw5MHw޷~pƍ7nȽ>}TO=yyJ k/55E,ݚcoYʆݾ.ֶa,)87BAD=mlӓkly%%eUk݅H4Be\ʱb_}׶mXLD|tWss|776)eg1DD>͵h6N6f]Nx{۶HD|42YHMEPڵkȐ0 :=ZV/%+ .[&"[ϖscSRMF\>6% \TfG[||ʽ=G/dTKZT}V۳ ]\(E, OUƛdnl*fgbL^ϮF,nI qZ79Ҹ j~~~)+EBNgҚǫT"[d2M M5du.*yGZ^֖*Ύ]Pt|} ۡ!8+lJy9f n q 8ť}'QcVX[f%RRЩe۫r~1B Ms22$ᏚIeH>C*Ɩ ~"Qc'C^%1|Qj] SMrr.c"7lbuɳҠ ӻ2ϼfhy_^^έd'Nhptt${[;C 32 tVHD ooӆ;Y9'?AP8N^5btuquIl^6LF$G{ ι\> QMʳF9aV{y.hyUdC !+W~oB֭[cǎ8q"111 el^r3v>ϭ#3fsTǢ1/WP8;?[R >pMV]+/ϟJD66 Z-󹖺U6ĕ%^wvMT*z=eTJ~"wwÕ%Z0uSȉϿީF0Ja^x 80I>|ȑ#GFӮ] |F/_.d2ɓ's V\9`w~7#Glݺ7n($ 5h|ύ;?h\x[qqc-o<7 ww'O-ʺo Lkyr^Ocv0~~|!"``eΟuIl^6LINwwzIy87y''.0LJ[^>OxЭ%KZn- ===gϞ}Qʆ C׮]T)55T*%U8_~y=<<R)JϦ{7\ӕtWfe>jjJ5()bT;WZ::%eõHONN[PTtZP+/ߞ|j2Y-() NN>V\<2lKba,z`Rү%ZmV\>"9@uߩ:9|tJŲ @(,rvYmZ$&??\]a_Rh7egg7gN8qذaoЬIrrP]W:s33w`` zy.W"Xl pL͓'!8BpB7!8'Iv(Fw{b)D5*vJ-PϏgcQy>-Mx 8ՋOD11(' LcǢXrrzg>+^ ڡz4}h9/--mQQQS*^^^}y b|;w@p-ܷ~n:Zͭ:|p\\d曵kעuEGD..LnL BKgϞ x@>믿߿ kҤRva ]Bp-T*eFsN=zcΜ9b„4bٳGPD? 9hettYڶmꫯ9sA2cҖ$ɼy(66W_ +G97Q&7׉Ϳcy Ivr'yͪS\\O'66ʕ. jnt8pn<+Ɯ{y.7IptI&b=z Y6l =yd^^mAA9mڴ3'fo922rg^^^EEEzz]JJ|ٺ @?^hgo /<^޸eA_yaV<lsC΍4\P ={~~'O($&$Dx}DՃdׯ?ȶ DD7nhz\"ްf@3#өEK9}~tcm/8~\ܻ7FZ4-e*,,dݻw]ҟ>}zӦMD+$$$ܼy3g$[?~윘eLjժ۷vT 6hU={͛mCC8T𾾼GmfaHυv/(ڸі]Î?s빔s4Gċ|`ӥ˃￵{S]jk{رN*տkD" AmhRB=am۶uIW_Q~>S"rrrZn-[|ʕ}>|xCBB~'WWW8zT {í)S,Ν?h;tH]ܳgIůRf^y\i.'%i;u*qv.zb.[cG>%$h5K"]7-־^uԃF,E\EXT%ToWV >]DUZ[Bɓ>3:Zq׏OD*>}[" 0Vj˗5't%K&5(;例5*#@Z&1eeeL\TT.[SXXhF6e___G IJFG?V؞\Ҽ++KgGf0BOIQ<}DfljjݻVܻ _|a{í[>[c ja῟eA!@SZ6mڰ t>i7-O ||x\Tj[P%"[[LJ*"Gΰhk6$l]``Ɇ w>4:1 ¦S`*2իWɉ]3Kcmrx{V|{NI33u7>-cG[NɎD۶)[QZLOS\nVKn=g?>:w~h=S']v;^$>pn>Wg0;njgCK6w܊ 6DGGGGGג288xٲe7o>pb\.g 0ov s8vTnܰ=CoQnmͼʃ66LUVzQ{..N;v0% Sjcf0"#U+V m~6r*CVr$T0zeښ_пCo)(Я\@hr-ŋ㏙3g BI&8p?oyQF9;;999ݻޫeK,O7lϖ!S>,N- ݫJMՕZ*,ioW>|_VT}׉`cG?t.51lңG2^Ǐ_x˔Moъ }\ܳ+3?Q,]Z㏪7yyzr}|*v-1lf'"WW!/oooo"nϊ8qaߏ4{YQaU" ^\ SrK zJ$PyrO(??ҥٿ_psO^͝+gz[[3D_Td ,F~h5k)): <J$ 5MEDApO *6l@'RcIr5e0rP J-񳲲\KãN ڵekKD1eeP !825ݻw?~8JHNnB!*,|)8Zb :3g\n+ܹ҃M X.+)-+C@CAp@֑7|vZ 4Mn{Zy Ch@/FUuH$B@Mz'&Z>@-LP^_YG9R.◢m.m;_|ýluzZmR!,/SdPegAzxw~"rp׺?O$vݍ*/vvAFPLLMUln3z{vީ<73bi|rrGi<L믿._]9vرcf͚r)>::p#eeeNb߰aæMa??\pիkUdd+K,ApX@p߿Aɸ nA'k뗝QubXLDVVW˫nJ0DtC`'+Ӷm3ƙ`g7nܟLJl f G0zSe;ޡà cZxg;XYղ𥏏ð/[ B!ðyD ;:abPxjzMp<E`*>϶''''&&&%%}|>׮] rj1㏊ &ӧO+pׯϜ9nZ5d2٪UccccccoާOj}Ъ]^'?_Aru]XCݱ2RnZm\y5W$:ڡ2~0)񭊊sJK C]Sۘ ?T0a^^iL* -wRt\["ê5HKu:ns#_qU!֦@PhLh9o޼yUWv?0o&Mz Ϛ5+99yϞ=?s=ǮǏ߹s#G^~e÷9rBBBB!򫯾"~} ӺuҢl2vjtʕaÆٳGPy3*Hƍedԃ/wϖ۶xGG"r󧹸lS -&cjhvٳ'd{^x[)Ϝ9C)山D4m41c%$$drvZ@`O>"ÅD"wBUhؗ6YYQ+o`vlG.^QAD]\æffrN~6wI-4VwZOV*.*bW:v<^=w0GoNFOattlJ@)hǦgTl^_վɵ>S6 Hh9oƍ#G4zUݻw={6--M.6gϞmڴ|O`m}oS1QyvثzqZӫW/dܳ. gFTTN$doD''CV~/)a]W(&;9Quo[[" ֶseAnZMV*;#3PĖcZMaD\OˢV&[rHDD5?Q-;;\\\"C"pBMb ޤ܌vk׮)>>]Tmh(*վiikctoFq.]:RiqӇpib?!1)1ǰa2&1oINNW$8MD4_†|R dzV cccjRXܷo_"ڷoQvZl4`g?<%0\sf/9;R"PZʭ!>~ɒ%߿6Eļ[Wvvv...O1K,jllPT:u֞s1M,x>KIs̼p(E Wh{+`K@h9xeˈh׮]O=TPPPPPК5kb}y޽{wܹvvvov-[f y*`8н{Ν;wuD4o޼d{y h4+R.ة %+y6<^{++-&%l4xNzhP{"z&1o#'`hey|z*$'ÑhAVfWB!%KTNOš>}D"ٶm[BBB5jҥKk OD:o?<<իNNNAAAf ơi(JOC;Y[{|~NRQRI&~vvDTŕQREEFZLJ~jFƎYZ V Se(Wˏ7K&%|y}fk@ Cv$`sVLJغP{{"-/_s~ONi@Ű\]1}R!oooaN8qذaKIrrP \>73sG-  Xr%v>UVÆ {wٔ{.֭[ԔV{4hժUۺuao[^l?/~g۶mb#V^mkPO::usgk"jWvTTT5yz~&npVyy s5xbbjR753(@*twT/O0~~FiҜn-W[s\]ٹ :]bE/EE_ɵZT !Lqqqjɮtט1c}{dd+wK,Þ={L&KMM%'ZvǏ'"PR9r…ÇW[fӧ?kZRyСǏ BԄ0N_.. 1\WH/}|}J(l% ڷԞx{Zwt\Z%%Sk﬿++e;: JJKc0{ڶ 5Ǚ`g7nЌ[)L\XUuBnMML&[jUPPPxxxlllllcf۶m-='ǏgwILLLLL'j7b F !8jo糁SM{A4 SƩ֒xƖTzMk|~Q` wpP4Se:[޹s}2'33] LDEEE:Ψ񰠠i4삏H<ϳH.VʤĽ ~x9##Md[7Jk4DDt[?- e-SϞ=e>A]zmltܙJeׯ_ajb*g-rG98pK*g6j(6,hȐL%b+O$jWbBp-O?MDf.%"Ju"߿MJP``ʹvZRRSSZ$jcS{r?++D,|Gb 32 tV` K_Xe'?Aܟ¹nnwj ƇxZ|ٳgRY}???0--aa,Xڵ}ӦM)))/ j !qL"L"^_eTe<=ΝZ'>޷DSf1ϏEEc*-i^?ٹnA66 Rsv>ϭ#39+/ϟJD66 Z-RChzϟ1baիW0-/_<++]fc(&O%Xr%9s\tɓaaaׯŹ3DĤ-Cn%Nwq!"qEE+m<ϟ4EߊC; C 8b>p$723 Gb" !dZ``~{ʕB''^zkv UT.]^N6w~4ZχرfR5i84znn}"yy-Ϧ.qw`m'UQ'?4(1KCOؑ?u]+ЊaJt JyO'"Wצ2zS *x{{QvvvVllĉ ?zc=Y,Y?Λ7Ci4IN ^^('c˕T7gt3 <jDԯ_?4,?υ 4O+,,\pL&}gP>`!EDD۷WPHRNm6 MnL,.,,,:::)))++Kӵm688_oժ kk(hs0C@p!C @!8BpH"hQh6 "##p ChLAJ(h3>okkr c֫Wd<^C @!8Bp!C @!8Bp!C =!IDAT@!8Bp!C @!8Bp!C @!8Bp!C @!8Bp!C @(F!F!h9T`FӡXP/r 8z9uњ7n,]%Ӽ 8zڭ`B@p!8Bp!C @!8BpD$@@3w^Bar̘1mڴAnnCM_e~2΢޽mg `… .'Ndee/G"mI4iiwRc⋢!CP8T[ѼyDvC?d2YDi͔)(+F+ߵdؗzرk7#_qaPP"oK׭ӫmV"+KqG\ãR$"RYPP  !@sc#C5k~~ڌ 3gk E8vǧO>(Җ|hŋ II5]:~85n4Uƍ񽽝almHйΝyڌ?wᇚ[TTtvqĈ àH[ T*_Fr޹x!vF,F) ѣAJJMh(++۩S֩._ܪWR}q{9[ %j]=z? 9|RLOO{nQQBP*޾UV]tqrr2LM׿wjWW׾}z{{W۷o* (H6ΦLLLdB׷K.B߰}tttEEj… }ن  :nܸFj?Ѻ|X 2uݺuc%&&vԩK?u:oԩcuI3\dѿHRvAob(j]պ^7_Pe@p`;w8p ""ŋ/^\zuHHȔ)S8pNz;w>>ff>HWڵ#7o?]_z2Ү\?9reSN5ox:ZsuhTW>r`vdccvIښ]ptt FkyFDTZZZKq !9|}}WZo$==}…=ΘXYʒrsspz{RLHHV #JMMeVTT$&&_^I6`'&&㏆svN"JJJawu\gaŋjٳ\/SZZ@֭|+V>}zΝk_\yV*-5~~ڌ j҈aW|>W^lVjիW?x<ްaæN:rH$Y}}W~űc/dt{wiiGGE1DԮ],]'O|ꩧ|~jjjt+n׮xT*O:0 g+ {2u1))9"lmmU*7Waɲvsscy8JңG֭[ֵs WD"#G9{ݢz9~Ο1?0xjр܂kعufnͷ͝K TѵԁwJn۴iY9x> jMzÎ)jSRRؗ#O>'N`yJ%ԺƯubamԖV#:h4F-}5A``ߪ\DzپZ]"C"bo߾'O$"N3jԨP,u,ŋF.߳Gu=Ry^^>}'O"x1cܸq#%%) ?<< cƌȸ}L&xޝ;w6L󃃃rss˵ZH$>>>m*ga5^v8jcu`a矿t۹ݽG)Ef'"WW/Iƃ+D]AAAdd$bcc'N8lذI"Xˍ7O~0! C @0[)<\\\͛r0C@p!8Bp!C @!8"ۻl 4w+##)u:\.wttDb$Fb$Fb$Fb$Fb$n1z}IIQ✜a<8h 4wֶ)Y$VTJNNF!@sJ! 8Bp!C @!8"Hl,m/4Ah9!C @!8Bp!C @!8Bp!C @!8Bp!Eи PC @!8Bp!C @!8Bp!C @!8Bp!C @D)r!P ;~8S#5jÇbOOOo2eT*?yo پ}; :4%%OqqqD|Sj/].{{{>22eŋl5j׮]DVu:Jj1?~#wV333ϝ;cǎ'eb믿>,M2eD؃CecDtĉ VTT4+SSSsrrΎ{) No:upjr!<:u"Ç7Ȑ?eggGFFFEEݹsG,07trro322P]5(+WFFFj4nMRRҭ[~G++ٳgYШH$>ܹs)))'O\xm}.J׭[תU-[$$$>}zӹq+V0&?6o5p@?++ݻÇO6hvh߾}ܚj'K.w7f˗+Vlٲg)**b;88lٲ}7gΜ1;um $&&k-_z}II3<3lݺu|ɓ7nٗڵk׮ݖ-[%GrJHZniӦK. PxС˗߹s4ŋ̙VGձczdٲe/^d|С͛' 4MAVhѢqM:^| &U{6-"z¢hɒ%5O>&MoM8mŏɓ'r9wm^ "zꩧ0oJڿ?\`!1}{&"6`3|m"4hP}>ݻΝ3\sA"rrrb?`vv6ېDj*6,ijbq߾}h߾}zO}QīTI3`nn. _A{C- ୷"M65-C}?hn}777nW^D?Ӫ[7[BBњw;::vO3oO8gϞW_}u޽D?>|i֒aڵkFҰa lfAnR4|.ԟ[xx_Sతd c۔a'M}an F흟dk WyyyF8;;Wf\>3N3\0zYr9믿.\hf аoZ-mj;8xVZÏ=jyS> XE_ߥK7nL6MPMJc9>yxx4HsJ\]]d'vk DGGg}֦MYK2tss3ʹYWQ|w={LJJzry :@իWښԤT*=Zݻw7ZHDIII#; |>rqq9{K/tIOiJLLd4)((]uV8ceek׮Ve5Fp>bժUޠiӦ#"DP" :pMhh(\r/..&"gCe PPP|r^r=zZlX\.%iӦu1cݸqhKA D;w|^|EIc}]Zݳgψ^zO?_DEEU;ŋJի͛7)SܹL>_NDcƌ h0`eˈhʕlLUPPtR^?`a93駟s8::[nȐ!De˖\Z@ o;|FF] XG1.._/wRP(xi31o޼?ϬYMƎj;rȚ5kRo},-- }ŋ$h9t믿ܽ{Ʊc -Ptqqꫯx<޽{O0˳gիcQQQ\\ݻO>hy رHd8(; @|.J׭[C `6* ! 8@D ;+ FL?f*m9IENDB`python2-pythondialog-3.3.0/doc/internals.rst0000644000175000001440000000120112507731135021052 0ustar flousers00000000000000.. currentmodule:: dialog Internals ========= .. warning:: The functions and methods listed in this section are implementation details of pythondialog. **Do not use them in your programs**, as they are likely to change in incompatible ways without prior notice. The only reason they are documented here is because some public methods or functions refer to them when listing the notable exceptions they may raise. .. autofunction:: _to_onoff .. autofunction:: widget .. autofunction:: retval_is_code .. automethod:: Dialog._call_program .. automethod:: Dialog._wait_for_program_termination .. automethod:: Dialog._perform python2-pythondialog-3.3.0/doc/DialogBackendVersion.rst0000644000175000001440000000031112507731135023071 0ustar flousers00000000000000.. currentmodule:: dialog The :class:`!DialogBackendVersion` class ======================================== .. autoclass:: DialogBackendVersion :show-inheritance: :members: :undoc-members: python2-pythondialog-3.3.0/doc/Makefile0000644000175000001440000001520212507731135017767 0ustar flousers00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pythondialog.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pythondialog.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/pythondialog" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pythondialog" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." python2-pythondialog-3.3.0/doc/exceptions.rst0000644000175000001440000000525312507731135021247 0ustar flousers00000000000000.. currentmodule:: dialog pythondialog-specific exceptions ================================ Class hierarchy --------------- Here is the hierarchy of notable exceptions raised by this module: | :exc:`error` | :exc:`ExecutableNotFound` | :exc:`BadPythonDialogUsage` | :exc:`PythonDialogSystemError` | :exc:`PythonDialogOSError` | :exc:`PythonDialogIOError` (should not be raised starting from Python 3.3, as :exc:`IOError` becomes an alias of :exc:`OSError`) | :exc:`PythonDialogErrorBeforeExecInChildProcess` | :exc:`PythonDialogReModuleError` | :exc:`UnexpectedDialogOutput` | :exc:`DialogTerminatedBySignal` | :exc:`DialogError` | :exc:`UnableToRetrieveBackendVersion` | :exc:`UnableToParseBackendVersion` | :exc:`UnableToParseDialogBackendVersion` | :exc:`InadequateBackendVersion` | :exc:`PythonDialogBug` | :exc:`ProbablyPythonBug` As you can see, every exception *exc* among them verifies:: issubclass(exc, error) so if you don't need fine-grained error handling, simply catch :exc:`error` (which will probably be accessible as :exc:`dialog.error` from your program) and you should be safe. .. versionchanged:: 2.12 :exc:`PythonDialogIOError` is now a subclass of :exc:`PythonDialogOSError` in order to help with the transition from :exc:`IOError` to :exc:`OSError` in the Python language. With this change, you can safely replace ``except PythonDialogIOError`` clauses with ``except PythonDialogOSError`` even if running under Python < 3.3. Detailed list ------------- .. autoexception:: error .. autoexception:: ExecutableNotFound :show-inheritance: .. autoexception:: BadPythonDialogUsage :show-inheritance: .. autoexception:: PythonDialogSystemError :show-inheritance: .. autoexception:: PythonDialogOSError :show-inheritance: .. autoexception:: PythonDialogIOError :show-inheritance: .. autoexception:: PythonDialogErrorBeforeExecInChildProcess :show-inheritance: .. autoexception:: PythonDialogReModuleError :show-inheritance: .. autoexception:: UnexpectedDialogOutput :show-inheritance: .. autoexception:: DialogTerminatedBySignal :show-inheritance: .. autoexception:: DialogError :show-inheritance: .. autoexception:: UnableToRetrieveBackendVersion :show-inheritance: .. autoexception:: UnableToParseBackendVersion :show-inheritance: .. autoexception:: UnableToParseDialogBackendVersion :show-inheritance: .. autoexception:: InadequateBackendVersion :show-inheritance: .. autoexception:: PythonDialogBug :show-inheritance: .. autoexception:: ProbablyPythonBug :show-inheritance: python2-pythondialog-3.3.0/doc/widgets.rst0000644000175000001440000001346612507731135020541 0ustar flousers00000000000000.. currentmodule:: dialog .. _widgets: The :class:`Dialog` widgets =========================== This section describes all widgets (or dialog boxes) offered by the :class:`Dialog` class. The descriptions of many of them are adapted from the :manpage:`dialog(1)` manual page, with the kind permission of `Thomas Dickey `_. .. note:: All unqualified method names in this section are methods of the :class:`Dialog` class. In other words, whenever a method :meth:`!foo` is mentioned, you have to understand :meth:`!dialog.Dialog.foo`. .. warning:: Concerning the older widgets that have fixed defaults for the length parameters such as *width* and *height*: Even though explicitely setting one of these length parameters to ``None`` will not cause any error in this version, please don't do it. If you know the size you want, specify it directly (e.g., ``width=78``). On the other hand, if you want :program:`dialog` to automagically figure out a suitable size, you have two options: - either enable the :ref:`autowidgetsize ` option and make sure not to specify the length parameter in the widget call; - or explicitely set it to ``0`` (e.g., ``width=0``). Displaying multi-line text -------------------------- Message box ^^^^^^^^^^^ .. automethod:: Dialog.msgbox .. figure:: screenshots/msgbox.png :align: center :meth:`~Dialog.msgbox` example Text box ^^^^^^^^ .. automethod:: Dialog.textbox .. figure:: screenshots/textbox.png :align: center :meth:`~Dialog.textbox` example Scroll box ^^^^^^^^^^ .. Automethod:: Dialog.scrollbox .. figure:: screenshots/scrollbox.png :align: center :meth:`~Dialog.scrollbox` example Edit box ^^^^^^^^ .. automethod:: Dialog.editbox .. figure:: screenshots/editbox.png :align: center :meth:`~Dialog.editbox` example Progress box ^^^^^^^^^^^^ .. automethod:: Dialog.progressbox .. figure:: screenshots/progressbox.png :align: center :meth:`~Dialog.progressbox` example Program box ^^^^^^^^^^^ .. automethod:: Dialog.programbox .. figure:: screenshots/programbox.png :align: center :meth:`~Dialog.programbox` example Tail box ^^^^^^^^ .. automethod:: Dialog.tailbox .. figure:: screenshots/tailbox.png :align: center :meth:`~Dialog.tailbox` example Displaying transient messages ----------------------------- Info box ^^^^^^^^ .. automethod:: Dialog.infobox .. figure:: screenshots/infobox.png :align: center :meth:`~Dialog.infobox` example Pause ^^^^^ .. automethod:: Dialog.pause .. figure:: screenshots/pause.png :align: center :meth:`~Dialog.pause` example Progress meters --------------- .. _gauge-widget: Regular gauge ^^^^^^^^^^^^^ .. automethod:: Dialog.gauge_start .. automethod:: Dialog.gauge_update .. automethod:: Dialog.gauge_iterate .. automethod:: Dialog.gauge_stop .. figure:: screenshots/gauge.png :align: center :meth:`~Dialog.gauge` example Mixed gauge ^^^^^^^^^^^ .. automethod:: Dialog.mixedgauge .. figure:: screenshots/mixedgauge.png :align: center :meth:`~Dialog.mixedgauge` example List-like widgets ----------------- Build list ^^^^^^^^^^ .. automethod:: Dialog.buildlist .. figure:: screenshots/buildlist.png :align: center :meth:`~Dialog.buildlist` example Check list ^^^^^^^^^^ .. automethod:: Dialog.checklist .. figure:: screenshots/checklist.png :align: center :meth:`~Dialog.checklist` example Menu ^^^^ .. automethod:: Dialog.menu .. figure:: screenshots/menu.png :align: center :meth:`~Dialog.menu` example Radio list ^^^^^^^^^^ .. automethod:: Dialog.radiolist .. figure:: screenshots/radiolist.png :align: center :meth:`~Dialog.radiolist` example Tree view ^^^^^^^^^ .. automethod:: Dialog.treeview .. figure:: screenshots/treeview.png :align: center :meth:`~Dialog.treeview` example Single-line input fields ------------------------ Input box ^^^^^^^^^ .. automethod:: Dialog.inputbox .. figure:: screenshots/inputbox.png :align: center :meth:`~Dialog.inputbox` example Input menu ^^^^^^^^^^ .. automethod:: Dialog.inputmenu .. figure:: screenshots/inputmenu.png :align: center :meth:`~Dialog.inputmenu` example Password box ^^^^^^^^^^^^ .. automethod:: Dialog.passwordbox .. figure:: screenshots/passwordbox.png :align: center :meth:`~Dialog.passwordbox` example Forms ----- Form ^^^^ .. automethod:: Dialog.form .. figure:: screenshots/form.png :align: center :meth:`~Dialog.form` example Mixed form ^^^^^^^^^^ .. automethod:: Dialog.mixedform .. figure:: screenshots/mixedform.png :align: center :meth:`~Dialog.mixedform` example Password form ^^^^^^^^^^^^^ .. automethod:: Dialog.passwordform .. figure:: screenshots/passwordform.png :align: center :meth:`~Dialog.passwordform` example Selecting files and directories ------------------------------- Directory selection ^^^^^^^^^^^^^^^^^^^ .. automethod:: Dialog.dselect .. figure:: screenshots/dselect.png :align: center :meth:`~Dialog.dselect` example File or directory selection ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. automethod:: Dialog.fselect .. figure:: screenshots/fselect.png :align: center :meth:`~Dialog.fselect` example Date and time ------------- Calendar ^^^^^^^^ .. automethod:: Dialog.calendar .. figure:: screenshots/calendar.png :align: center :meth:`~Dialog.calendar` example Time box ^^^^^^^^ .. automethod:: Dialog.timebox .. figure:: screenshots/timebox.png :align: center :meth:`~Dialog.timebox` example Miscellaneous ------------- Range box ^^^^^^^^^ .. automethod:: Dialog.rangebox .. figure:: screenshots/rangebox.png :align: center :meth:`~Dialog.rangebox` example Yes/No ^^^^^^ .. automethod:: Dialog.yesno .. figure:: screenshots/yesno.png :align: center :meth:`~Dialog.yesno` example python2-pythondialog-3.3.0/AUTHORS0000644000175000001440000000026412235663765016647 0ustar flousers00000000000000-*- coding: utf-8 -*- Robb Shecter Sultanbek Tezadov (http://sultan.da.ru/) Peter Åstrand Florent Rougon (current maintainer) python2-pythondialog-3.3.0/COPYING0000644000175000001440000006363712235663765016647 0ustar flousers00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 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. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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 with this License. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. 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 library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; 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. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! python2-pythondialog-3.3.0/COPYING.Sphinx0000644000175000001440000000743712507731135020100 0ustar flousers00000000000000The doc/Makefile file is a derived work from Sphinx (cf. sphinx/quickstart.py in the Sphinx source), whose licensing information is the following (the "AUTHORS file" mentioned refers to the Sphinx source and is reproduced below): Sphinx licensing information ============================ Copyright (c) 2007-2013 by the Sphinx team (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Sphinx AUTHORS file =================== Sphinx is written and maintained by Georg Brandl . Substantial parts of the templates were written by Armin Ronacher . Other contributors, listed alphabetically, are: * Andi Albrecht -- agogo theme * Henrique Bastos -- SVG support for graphviz extension * Daniel Bültmann -- todo extension * Etienne Desautels -- apidoc module * Michael Droettboom -- inheritance_diagram extension * Charles Duffy -- original graphviz extension * Kevin Dunn -- MathJax extension * Josip Dzolonga -- coverage builder * Hernan Grecco -- search improvements * Horst Gutmann -- internationalization support * Martin Hans -- autodoc improvements * Doug Hellmann -- graphviz improvements * Dave Kuhlman -- original LaTeX writer * Blaise Laflamme -- pyramid theme * Thomas Lamb -- linkcheck builder * Łukasz Langa -- partial support for autodoc * Robert Lehmann -- gettext builder (GSOC project) * Dan MacKinlay -- metadata fixes * Martin Mahner -- nature theme * Will Maier -- directory HTML builder * Jacob Mason -- websupport library (GSOC project) * Roland Meister -- epub builder * Ezio Melotti -- collapsible sidebar JavaScript * Daniel Neuhäuser -- JavaScript domain, Python 3 support (GSOC) * Christopher Perkins -- autosummary integration * Benjamin Peterson -- unittests * T. Powers -- HTML output improvements * Stefan Seefeld -- toctree improvements * Shibukawa Yoshiki -- pluggable search API and Japanese search * Antonio Valentino -- qthelp builder * Pauli Virtanen -- autodoc improvements, autosummary extension * Stefan van der Walt -- autosummary extension * Thomas Waldmann -- apidoc module fixes * John Waltman -- Texinfo builder * Barry Warsaw -- setup command improvements * Sebastian Wiesner -- image handling, distutils support * Joel Wurtz -- cellspanning support in LaTeX Many thanks for all contributions! There are also a few modules or functions incorporated from other authors and projects: * sphinx.util.jsdump uses the basestring encoding from simplejson, written by Bob Ippolito, released under the MIT license * sphinx.util.stemmer was written by Vivake Gupta, placed in the Public Domain Local Variables: coding: utf-8 fill-column: 70 End: python2-pythondialog-3.3.0/dialog.py0000644000175000001440000046142612531567750017417 0ustar flousers00000000000000# dialog.py --- A Python interface to the ncurses-based "dialog" utility # -*- coding: utf-8 -*- # # Copyright (C) 2002, 2003, 2004, 2009, 2010, 2013, 2014, 2015 Florent Rougon # Copyright (C) 2004 Peter Åstrand # Copyright (C) 2000 Robb Shecter, Sultanbek Tezadov # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301 USA. """Python interface to :program:`dialog`-like programs. This module provides a Python interface to :program:`dialog`-like programs such as :program:`dialog` and :program:`Xdialog`. It provides a :class:`Dialog` class that retains some parameters such as the program name and path as well as the values to pass as DIALOG* environment variables to the chosen program. See the pythondialog manual for detailed documentation. """ from __future__ import with_statement, unicode_literals, print_function import collections from itertools import imap from itertools import izip from io import open import locale _VersionInfo = collections.namedtuple( "VersionInfo", ("major", "minor", "micro", "releasesuffix")) class VersionInfo(_VersionInfo): """Class used to represent the version of pythondialog. This class is based on :func:`collections.namedtuple` and has the following field names: ``major``, ``minor``, ``micro``, ``releasesuffix``. .. versionadded:: 2.14 """ def __unicode__(self): """Return an Unicode representation of the version.""" res = ".".join( ( unicode(elt) for elt in self[:3] ) ) if self.releasesuffix: res += self.releasesuffix return res def __repr__(self): # Unicode strings are not supported as the result of __repr__() # in Python 2.x (cf. ). return b"{0}.{1}".format(__name__, _VersionInfo.__repr__(self)) #: Version of pythondialog as a :class:`VersionInfo` instance. #: #: .. versionadded:: 2.14 version_info = VersionInfo(3, 3, 0, None) #: Version of pythondialog as an Unicode string. #: #: .. versionadded:: 2.12 __version__ = unicode(version_info) import sys, os, tempfile, random, re, warnings, traceback from contextlib import contextmanager from textwrap import dedent # This is not for calling programs, only to prepare the shell commands that are # written to the debug log when debugging is enabled. try: from shlex import quote as _shell_quote except ImportError: def _shell_quote(s): return "'%s'" % s.replace("'", "'\"'\"'") # Exceptions raised by this module # # When adding, suppressing, renaming exceptions or changing their # hierarchy, don't forget to update the module's docstring. class error(Exception): """Base class for exceptions in pythondialog.""" def __init__(self, message=None): self.message = message def __unicode__(self): return self.complete_message() def __repr__(self): # Unicode strings are not supported as the result of __repr__() # in Python 2.x (cf. ). return b"{0}.{1}({2!r})".format(__name__, self.__class__.__name__, self.message) def complete_message(self): if self.message: return "{0}: {1}".format(self.ExceptionShortDescription, self.message) else: return self.ExceptionShortDescription ExceptionShortDescription = "{0} generic exception".format("pythondialog") # For backward-compatibility # # Note: this exception was not documented (only the specific ones were), so # the backward-compatibility binding could be removed relatively easily. PythonDialogException = error class ExecutableNotFound(error): """Exception raised when the :program:`dialog` executable can't be found.""" ExceptionShortDescription = "Executable not found" class PythonDialogBug(error): """Exception raised when pythondialog finds a bug in his own code.""" ExceptionShortDescription = "Bug in pythondialog" # Yeah, the "Probably" makes it look a bit ugly, but: # - this is more accurate # - this avoids a potential clash with an eventual PythonBug built-in # exception in the Python interpreter... class ProbablyPythonBug(error): """Exception raised when pythondialog behaves in a way that seems to \ indicate a Python bug.""" ExceptionShortDescription = "Bug in python, probably" class BadPythonDialogUsage(error): """Exception raised when pythondialog is used in an incorrect way.""" ExceptionShortDescription = "Invalid use of pythondialog" class PythonDialogSystemError(error): """Exception raised when pythondialog cannot perform a "system \ operation" (e.g., a system call) that should work in "normal" situations. This is a convenience exception: :exc:`PythonDialogIOError`, :exc:`PythonDialogOSError` and :exc:`PythonDialogErrorBeforeExecInChildProcess` all derive from this exception. As a consequence, watching for :exc:`PythonDialogSystemError` instead of the aformentioned exceptions is enough if you don't need precise details about these kinds of errors. Don't confuse this exception with Python's builtin :exc:`SystemError` exception. """ ExceptionShortDescription = "System error" class PythonDialogOSError(PythonDialogSystemError): """Exception raised when pythondialog catches an :exc:`OSError` exception \ that should be passed to the calling program.""" ExceptionShortDescription = "OS error" class PythonDialogIOError(PythonDialogOSError): """Exception raised when pythondialog catches an :exc:`IOError` exception \ that should be passed to the calling program. This exception should not be raised starting from Python 3.3, as the built-in exception :exc:`IOError` becomes an alias of :exc:`OSError`. .. versionchanged:: 2.12 :exc:`PythonDialogIOError` is now a subclass of :exc:`PythonDialogOSError` in order to help with the transition from :exc:`IOError` to :exc:`OSError` in the Python language. With this change, you can safely replace ``except PythonDialogIOError`` clauses with ``except PythonDialogOSError`` even if running under Python < 3.3. """ ExceptionShortDescription = "IO error" class PythonDialogErrorBeforeExecInChildProcess(PythonDialogSystemError): """Exception raised when an exception is caught in a child process \ before the exec sytem call (included). This can happen in uncomfortable situations such as: - the system being out of memory; - the maximum number of open file descriptors being reached; - the :program:`dialog`-like program being removed (or made non-executable) between the time we found it with :func:`_find_in_path` and the time the exec system call attempted to execute it; - the Python program trying to call the :program:`dialog`-like program with arguments that cannot be represented in the user's locale (:envvar:`LC_CTYPE`). """ ExceptionShortDescription = "Error in a child process before the exec " \ "system call" class PythonDialogReModuleError(PythonDialogSystemError): """Exception raised when pythondialog catches a :exc:`re.error` exception.""" ExceptionShortDescription = "'re' module error" class UnexpectedDialogOutput(error): """Exception raised when the :program:`dialog`-like program returns \ something not expected by pythondialog.""" ExceptionShortDescription = "Unexpected dialog output" class DialogTerminatedBySignal(error): """Exception raised when the :program:`dialog`-like program is \ terminated by a signal.""" ExceptionShortDescription = "dialog-like terminated by a signal" class DialogError(error): """Exception raised when the :program:`dialog`-like program exits \ with the code indicating an error.""" ExceptionShortDescription = "dialog-like terminated due to an error" class UnableToRetrieveBackendVersion(error): """Exception raised when we cannot retrieve the version string of the \ :program:`dialog`-like backend. .. versionadded:: 2.14 """ ExceptionShortDescription = "Unable to retrieve the version of the \ dialog-like backend" class UnableToParseBackendVersion(error): """Exception raised when we cannot parse the version string of the \ :program:`dialog`-like backend. .. versionadded:: 2.14 """ ExceptionShortDescription = "Unable to parse as a dialog-like backend \ version string" class UnableToParseDialogBackendVersion(UnableToParseBackendVersion): """Exception raised when we cannot parse the version string of the \ :program:`dialog` backend. .. versionadded:: 2.14 """ ExceptionShortDescription = "Unable to parse as a dialog version string" class InadequateBackendVersion(error): """Exception raised when the backend version in use is inadequate \ in a given situation. .. versionadded:: 2.14 """ ExceptionShortDescription = "Inadequate backend version" @contextmanager def _OSErrorHandling(): try: yield except OSError, e: raise PythonDialogOSError(unicode(e)) except IOError, e: raise PythonDialogIOError(unicode(e)) try: # Values accepted for checklists _on_cre = re.compile(r"on$", re.IGNORECASE) _off_cre = re.compile(r"off$", re.IGNORECASE) _calendar_date_cre = re.compile( r"(?P\d\d)/(?P\d\d)/(?P\d\d\d\d)$") _timebox_time_cre = re.compile( r"(?P\d\d):(?P\d\d):(?P\d\d)$") except re.error, e: raise PythonDialogReModuleError(unicode(e)) # From dialog(1): # # All options begin with "--" (two ASCII hyphens, for the benefit of those # using systems with deranged locale support). # # A "--" by itself is used as an escape, i.e., the next token on the # command-line is not treated as an option, as in: # dialog --title -- --Not an option def _dash_escape(args): """Escape all elements of *args* that need escaping. *args* may be any sequence and is not modified by this function. Return a new list where every element that needs escaping has been escaped. An element needs escaping when it starts with two ASCII hyphens (``--``). Escaping consists in prepending an element composed of two ASCII hyphens, i.e., the string ``'--'``. """ res = [] for arg in args: if arg.startswith("--"): res.extend(("--", arg)) else: res.append(arg) return res # We need this function in the global namespace for the lambda # expressions in _common_args_syntax to see it when they are called. def _dash_escape_nf(args): # nf: non-first """Escape all elements of *args* that need escaping, except the first one. See :func:`_dash_escape` for details. Return a new list. """ if not args: raise PythonDialogBug("not a non-empty sequence: {0!r}".format(args)) l = _dash_escape(args[1:]) l.insert(0, args[0]) return l def _simple_option(option, enable): """Turn on or off the simplest :term:`dialog common options`.""" if enable: return (option,) else: # This will not add any argument to the command line return () # This dictionary allows us to write the dialog common options in a Pythonic # way (e.g. dialog_instance.checklist(args, ..., title="Foo", no_shadow=True)). # # Options such as --separate-output should obviously not be set by the user # since they affect the parsing of dialog's output: _common_args_syntax = { "ascii_lines": lambda enable: _simple_option("--ascii-lines", enable), "aspect": lambda ratio: _dash_escape_nf(("--aspect", unicode(ratio))), "backtitle": lambda backtitle: _dash_escape_nf(("--backtitle", backtitle)), # Obsolete according to dialog(1) "beep": lambda enable: _simple_option("--beep", enable), # Obsolete according to dialog(1) "beep_after": lambda enable: _simple_option("--beep-after", enable), # Warning: order = y, x! "begin": lambda coords: _dash_escape_nf( ("--begin", unicode(coords[0]), unicode(coords[1]))), "cancel_label": lambda s: _dash_escape_nf(("--cancel-label", s)), # Old, unfortunate choice of key, kept for backward compatibility "cancel": lambda s: _dash_escape_nf(("--cancel-label", s)), "clear": lambda enable: _simple_option("--clear", enable), "colors": lambda enable: _simple_option("--colors", enable), "column_separator": lambda s: _dash_escape_nf(("--column-separator", s)), "cr_wrap": lambda enable: _simple_option("--cr-wrap", enable), "create_rc": lambda filename: _dash_escape_nf(("--create-rc", filename)), "date_format": lambda s: _dash_escape_nf(("--date-format", s)), "defaultno": lambda enable: _simple_option("--defaultno", enable), "default_button": lambda s: _dash_escape_nf(("--default-button", s)), "default_item": lambda s: _dash_escape_nf(("--default-item", s)), "exit_label": lambda s: _dash_escape_nf(("--exit-label", s)), "extra_button": lambda enable: _simple_option("--extra-button", enable), "extra_label": lambda s: _dash_escape_nf(("--extra-label", s)), "help": lambda enable: _simple_option("--help", enable), "help_button": lambda enable: _simple_option("--help-button", enable), "help_label": lambda s: _dash_escape_nf(("--help-label", s)), "help_status": lambda enable: _simple_option("--help-status", enable), "help_tags": lambda enable: _simple_option("--help-tags", enable), "hfile": lambda filename: _dash_escape_nf(("--hfile", filename)), "hline": lambda s: _dash_escape_nf(("--hline", s)), "ignore": lambda enable: _simple_option("--ignore", enable), "insecure": lambda enable: _simple_option("--insecure", enable), "item_help": lambda enable: _simple_option("--item-help", enable), "keep_tite": lambda enable: _simple_option("--keep-tite", enable), "keep_window": lambda enable: _simple_option("--keep-window", enable), "max_input": lambda size: _dash_escape_nf(("--max-input", unicode(size))), "no_cancel": lambda enable: _simple_option("--no-cancel", enable), "nocancel": lambda enable: _simple_option("--nocancel", enable), "no_collapse": lambda enable: _simple_option("--no-collapse", enable), "no_kill": lambda enable: _simple_option("--no-kill", enable), "no_label": lambda s: _dash_escape_nf(("--no-label", s)), "no_lines": lambda enable: _simple_option("--no-lines", enable), "no_mouse": lambda enable: _simple_option("--no-mouse", enable), "no_nl_expand": lambda enable: _simple_option("--no-nl-expand", enable), "no_ok": lambda enable: _simple_option("--no-ok", enable), "no_shadow": lambda enable: _simple_option("--no-shadow", enable), "no_tags": lambda enable: _simple_option("--no-tags", enable), "ok_label": lambda s: _dash_escape_nf(("--ok-label", s)), # cf. Dialog.maxsize() "print_maxsize": lambda enable: _simple_option("--print-maxsize", enable), "print_size": lambda enable: _simple_option("--print-size", enable), # cf. Dialog.backend_version() "print_version": lambda enable: _simple_option("--print-version", enable), "scrollbar": lambda enable: _simple_option("--scrollbar", enable), "separate_output": lambda enable: _simple_option("--separate-output", enable), "separate_widget": lambda s: _dash_escape_nf(("--separate-widget", s)), "shadow": lambda enable: _simple_option("--shadow", enable), # Obsolete according to dialog(1) "size_err": lambda enable: _simple_option("--size-err", enable), "sleep": lambda secs: _dash_escape_nf(("--sleep", unicode(secs))), "stderr": lambda enable: _simple_option("--stderr", enable), "stdout": lambda enable: _simple_option("--stdout", enable), "tab_correct": lambda enable: _simple_option("--tab-correct", enable), "tab_len": lambda n: _dash_escape_nf(("--tab-len", unicode(n))), "time_format": lambda s: _dash_escape_nf(("--time-format", s)), "timeout": lambda secs: _dash_escape_nf(("--timeout", unicode(secs))), "title": lambda title: _dash_escape_nf(("--title", title)), "trace": lambda filename: _dash_escape_nf(("--trace", filename)), "trim": lambda enable: _simple_option("--trim", enable), "version": lambda enable: _simple_option("--version", enable), "visit_items": lambda enable: _simple_option("--visit-items", enable), "yes_label": lambda s: _dash_escape_nf(("--yes-label", s)) } def _find_in_path(prog_name): """Search an executable in the :envvar:`PATH`. If :envvar:`PATH` is not defined, the default path ``:/bin:/usr/bin`` is used. Return a path to the file or ``None`` if no readable and executable file is found. Notable exception: :exc:`PythonDialogOSError` """ with _OSErrorHandling(): # Note that the leading empty component in the default value for PATH # could lead to the returned path not being absolute. PATH = os.getenv("PATH", ":/bin:/usr/bin") # see the execvp(3) man page for d in PATH.split(":"): file_path = os.path.join(d, prog_name) if os.path.isfile(file_path) \ and os.access(file_path, os.R_OK | os.X_OK): return file_path return None def _path_to_executable(f): """Find a path to an executable. Find a path to an executable, using the same rules as the POSIX exec*p functions (see execvp(3) for instance). If *f* contains a ``/``, it is assumed to be a path and is simply checked for read and write permissions; otherwise, it is looked for according to the contents of the :envvar:`PATH` environment variable, which defaults to ``:/bin:/usr/bin`` if unset. The returned path is not necessarily absolute. Notable exceptions: - :exc:`ExecutableNotFound` - :exc:`PythonDialogOSError` """ with _OSErrorHandling(): if '/' in f: if os.path.isfile(f) and \ os.access(f, os.R_OK | os.X_OK): res = f else: raise ExecutableNotFound("%s cannot be read and executed" % f) else: res = _find_in_path(f) if res is None: raise ExecutableNotFound( "can't find the executable for the dialog-like " "program") return res def _to_onoff(val): """Convert boolean expressions to ``"on"`` or ``"off"``. :return: - ``"on"`` if *val* is ``True``, a non-zero integer, ``"on"`` or any case variation thereof; - ``"off"`` if *val* is ``False``, ``0``, ``"off"`` or any case variation thereof. Notable exceptions: - :exc:`PythonDialogReModuleError` - :exc:`BadPythonDialogUsage` """ if isinstance(val, (bool, int)): return "on" if val else "off" elif isinstance(val, basestring): try: if _on_cre.match(val): return "on" elif _off_cre.match(val): return "off" except re.error, e: raise PythonDialogReModuleError(unicode(e)) raise BadPythonDialogUsage("invalid boolean value: {0!r}".format(val)) def _compute_common_args(mapping): """Compute the list of arguments for :term:`dialog common options`. Compute a list of the command-line arguments to pass to :program:`dialog` from a keyword arguments dictionary for options listed as "common options" in the manual page for :program:`dialog`. These are the options that are not tied to a particular widget. This allows one to specify these options in a pythonic way, such as:: d.checklist(, title="...", backtitle="...") instead of having to pass them with strings like ``"--title foo"`` or ``"--backtitle bar"``. Notable exceptions: none """ args = [] for option, value in mapping.items(): args.extend(_common_args_syntax[option](value)) return args # Classes for dealing with the version of dialog-like backend programs if sys.hexversion >= 0x030200F0: import abc # Abstract base class class BackendVersion(): __metaclass__ = abc.ABCMeta @abc.abstractmethod def __unicode__(self): raise NotImplementedError() if sys.hexversion >= 0x030300F0: @classmethod @abc.abstractmethod def fromstring(cls, s): raise NotImplementedError() else: # for Python 3.2 @abc.abstractclassmethod def fromstring(cls, s): raise NotImplementedError() @abc.abstractmethod def __lt__(self, other): raise NotImplementedError() @abc.abstractmethod def __le__(self, other): raise NotImplementedError() @abc.abstractmethod def __eq__(self, other): raise NotImplementedError() @abc.abstractmethod def __ne__(self, other): raise NotImplementedError() @abc.abstractmethod def __gt__(self, other): raise NotImplementedError() @abc.abstractmethod def __ge__(self, other): raise NotImplementedError() else: class BackendVersion(object): pass class DialogBackendVersion(BackendVersion): """Class representing possible versions of the :program:`dialog` backend. The purpose of this class is to make it easy to reliably compare between versions of the :program:`dialog` backend. It encapsulates the specific details of the backend versioning scheme to allow eventual adaptations to changes in this scheme without affecting external code. The version is represented by two components in this class: the :dfn:`dotted part` and the :dfn:`rest`. For instance, in the ``'1.2'`` version string, the dotted part is ``[1, 2]`` and the rest is the empty string. However, in version ``'1.2-20130902'``, the dotted part is still ``[1, 2]``, but the rest is the string ``'-20130902'``. Instances of this class can be created with the constructor by specifying the dotted part and the rest. Alternatively, an instance can be created from the corresponding version string (e.g., ``'1.2-20130902'``) using the :meth:`fromstring` class method. This is particularly useful with the result of :samp:`{d}.backend_version()`, where *d* is a :class:`Dialog` instance. Actually, the main constructor detects if its first argument is a string and calls :meth:`!fromstring` in this case as a convenience. Therefore, all of the following expressions are valid to create a DialogBackendVersion instance:: DialogBackendVersion([1, 2]) DialogBackendVersion([1, 2], "-20130902") DialogBackendVersion("1.2-20130902") DialogBackendVersion.fromstring("1.2-20130902") If *bv* is a :class:`DialogBackendVersion` instance, :samp:`unicode({bv})` is an Unicode string representing the same version (for instance, ``"1.2-20130902"``). Two :class:`DialogBackendVersion` instances can be compared with the usual comparison operators (``<``, ``<=``, ``==``, ``!=``, ``>=``, ``>``). The algorithm is designed so that the following order is respected (after instanciation with :meth:`fromstring`):: 1.2 < 1.2-20130902 < 1.2-20130903 < 1.2.0 < 1.2.0-20130902 among other cases. Actually, the *dotted parts* are the primary keys when comparing and *rest* strings act as secondary keys. *Dotted parts* are compared with the standard Python list comparison and *rest* strings using the standard Python string comparison. """ try: _backend_version_cre = re.compile(r"""(?P (\d+) (\.\d+)* ) (?P.*)$""", re.VERBOSE) except re.error, e: raise PythonDialogReModuleError(unicode(e)) def __init__(self, dotted_part_or_str, rest=""): """Create a :class:`DialogBackendVersion` instance. Please see the class docstring for details. """ if isinstance(dotted_part_or_str, basestring): if rest: raise BadPythonDialogUsage( "non-empty 'rest' with 'dotted_part_or_str' as string: " "{0!r}".format(rest)) else: tmp = self.__class__.fromstring(dotted_part_or_str) dotted_part_or_str, rest = tmp.dotted_part, tmp.rest for elt in dotted_part_or_str: if not isinstance(elt, int): raise BadPythonDialogUsage( "when 'dotted_part_or_str' is not a string, it must " "be a sequence (or iterable) of integers; however, " "{0!r} is not an integer.".format(elt)) self.dotted_part = list(dotted_part_or_str) self.rest = rest def __repr__(self): # Unicode strings are not supported as the result of __repr__() # in Python 2.x (cf. ). return b"{0}.{1}({2!r}, rest={3!r})".format( __name__, self.__class__.__name__, self.dotted_part, self.rest) def __unicode__(self): return '.'.join(imap(unicode, self.dotted_part)) + self.rest @classmethod def fromstring(cls, s): """Create a :class:`DialogBackendVersion` instance from a \ :program:`dialog` version string. :param str s: a :program:`dialog` version string :return: a :class:`DialogBackendVersion` instance representing the same string Notable exceptions: - :exc:`UnableToParseDialogBackendVersion` - :exc:`PythonDialogReModuleError` """ try: mo = cls._backend_version_cre.match(s) if not mo: raise UnableToParseDialogBackendVersion(s) dotted_part = [ int(x) for x in mo.group("dotted").split(".") ] rest = mo.group("rest") except re.error, e: raise PythonDialogReModuleError(unicode(e)) return cls(dotted_part, rest) def __lt__(self, other): return (self.dotted_part, self.rest) < (other.dotted_part, other.rest) def __le__(self, other): return (self.dotted_part, self.rest) <= (other.dotted_part, other.rest) def __eq__(self, other): return (self.dotted_part, self.rest) == (other.dotted_part, other.rest) # Python 3.2 has a decorator (functools.total_ordering) to automate this. def __ne__(self, other): return not (self == other) def __gt__(self, other): return not (self <= other) def __ge__(self, other): return not (self < other) def widget(func): """Decorator to mark :class:`Dialog` methods that provide widgets. This allows code to perform automatic operations on these specific methods. For instance, one can define a class that behaves similarly to :class:`Dialog`, except that after every widget-producing call, it spawns a "confirm quit" dialog if the widget returned :attr:`Dialog.ESC`, and loops in case the user doesn't actually want to quit. When it is unclear whether a method should have the decorator or not, the return value is used to draw the line. For instance, among :meth:`Dialog.gauge_start`, :meth:`Dialog.gauge_update` and :meth:`Dialog.gauge_stop`, only the last one has the decorator because it returns a :term:`Dialog exit code`, whereas the first two don't return anything meaningful. Note: Some widget-producing methods return the Dialog exit code, but other methods return a *sequence*, the first element of which is the Dialog exit code; the ``retval_is_code`` attribute, which is set by the decorator of the same name, allows to programmatically discover the interface a given method conforms to. .. versionadded:: 2.14 """ func.is_widget = True return func def retval_is_code(func): """Decorator for :class:`Dialog` widget-producing methods whose \ return value is the :term:`Dialog exit code`. This decorator is intended for widget-producing methods whose return value consists solely of the Dialog exit code. When this decorator is *not* used on a widget-producing method, the Dialog exit code must be the first element of the return value. .. versionadded:: 3.0 """ func.retval_is_code = True return func def _obsolete_property(name, replacement=None): if replacement is None: replacement = name def getter(self): warnings.warn("the DIALOG_{name} attribute of Dialog instances is " "obsolete; use the Dialog.{repl} class attribute " "instead.".format(name=name, repl=replacement), DeprecationWarning) return getattr(self, replacement) return getter # Main class of the module class Dialog(object): """Class providing bindings for :program:`dialog`-compatible programs. This class allows you to invoke :program:`dialog` or a compatible program in a pythonic way to quickly and easily build simple but nice text interfaces. An application typically creates one instance of the :class:`Dialog` class and uses it for all its widgets, but it is possible to concurrently use several instances of this class with different parameters (such as the background title) if you have a need for this. """ try: _print_maxsize_cre = re.compile(r"""^MaxSize:[ \t]+ (?P\d+),[ \t]* (?P\d+)[ \t]*$""", re.VERBOSE) _print_version_cre = re.compile( r"^Version:[ \t]+(?P.+?)[ \t]*$", re.MULTILINE) except re.error, e: raise PythonDialogReModuleError(unicode(e)) # DIALOG_OK, DIALOG_CANCEL, etc. are environment variables controlling # the dialog backend exit status in the corresponding situation ("low-level # exit status/code"). # # Note: # - 127 must not be used for any of the DIALOG_* values. It is used # when a failure occurs in the child process before it exec()s # dialog (where "before" includes a potential exec() failure). # - 126 is also used (although in presumably rare situations). _DIALOG_OK = 0 _DIALOG_CANCEL = 1 _DIALOG_ESC = 2 _DIALOG_ERROR = 3 _DIALOG_EXTRA = 4 _DIALOG_HELP = 5 _DIALOG_ITEM_HELP = 6 # cf. also _lowlevel_exit_codes and _dialog_exit_code_ll_to_hl which are # created by __init__(). It is not practical to define everything here, # because there is no equivalent of 'self' for the class outside method # definitions. _lowlevel_exit_code_varnames = frozenset(("OK", "CANCEL", "ESC", "ERROR", "EXTRA", "HELP", "ITEM_HELP")) # High-level exit codes, AKA "Dialog exit codes". These are the codes that # pythondialog-based applications should use. # #: :term:`Dialog exit code` corresponding to the ``DIALOG_OK`` #: :term:`dialog exit status` OK = "ok" #: :term:`Dialog exit code` corresponding to the ``DIALOG_CANCEL`` #: :term:`dialog exit status` CANCEL = "cancel" #: :term:`Dialog exit code` corresponding to the ``DIALOG_ESC`` #: :term:`dialog exit status` ESC = "esc" #: :term:`Dialog exit code` corresponding to the ``DIALOG_EXTRA`` #: :term:`dialog exit status` EXTRA = "extra" #: :term:`Dialog exit code` corresponding to the ``DIALOG_HELP`` and #: ``DIALOG_ITEM_HELP`` :term:`dialog exit statuses

` HELP = "help" # Define properties to maintain backward-compatibility while warning about # the obsolete attributes (which used to refer to the low-level exit codes # in pythondialog 2.x). # #: Obsolete property superseded by :attr:`Dialog.OK` since version 3.0 DIALOG_OK = property(_obsolete_property("OK"), doc="Obsolete property superseded by Dialog.OK") #: Obsolete property superseded by :attr:`Dialog.CANCEL` since version 3.0 DIALOG_CANCEL = property(_obsolete_property("CANCEL"), doc="Obsolete property superseded by Dialog.CANCEL") #: Obsolete property superseded by :attr:`Dialog.ESC` since version 3.0 DIALOG_ESC = property(_obsolete_property("ESC"), doc="Obsolete property superseded by Dialog.ESC") #: Obsolete property superseded by :attr:`Dialog.EXTRA` since version 3.0 DIALOG_EXTRA = property(_obsolete_property("EXTRA"), doc="Obsolete property superseded by Dialog.EXTRA") #: Obsolete property superseded by :attr:`Dialog.HELP` since version 3.0 DIALOG_HELP = property(_obsolete_property("HELP"), doc="Obsolete property superseded by Dialog.HELP") # We treat DIALOG_ITEM_HELP and DIALOG_HELP the same way in pythondialog, # since both indicate the same user action ("Help" button pressed). # #: Obsolete property superseded by :attr:`Dialog.HELP` since version 3.0 DIALOG_ITEM_HELP = property(_obsolete_property("ITEM_HELP", replacement="HELP"), doc="Obsolete property superseded by Dialog.HELP") @property def DIALOG_ERROR(self): warnings.warn("the DIALOG_ERROR attribute of Dialog instances is " "obsolete. Since the corresponding exit status is " "automatically translated into a DialogError exception, " "users should not see nor need this attribute. If you " "think you have a good reason to use it, please expose " "your situation on the pythondialog mailing-list.", DeprecationWarning) # There is no corresponding high-level code; and if the user *really* # wants to know the (integer) error exit status, here it is... return self._DIALOG_ERROR def __init__(self, dialog="dialog", DIALOGRC=None, compat="dialog", use_stdout=None, **kwargs): """Constructor for :class:`Dialog` instances. :param str dialog: name of (or path to) the :program:`dialog`-like program to use; if it contains a ``'/'``, it is assumed to be a path and is used as is; otherwise, it is looked for according to the contents of the :envvar:`PATH` environment variable, which defaults to ``":/bin:/usr/bin"`` if unset. :param str DIALOGRC: string to pass to the :program:`dialog`-like program as the :envvar:`DIALOGRC` environment variable, or ``None`` if no modification to the environment regarding this variable should be done in the call to the :program:`dialog`-like program :param str compat: compatibility mode (see :ref:`below `) :param bool use_stdout: read :program:`dialog`'s standard output stream instead of its standard error stream in order to get most "results" (user-supplied strings, selected items, etc.; basically, everything except the exit status). This is for compatibility with :program:`Xdialog` and should only be used if you have a good reason to do so. :param bool autowidgetsize: whether to enable *autowidgetsize* mode. When enabled, all pythondialog widget-producing methods will behave as if ``width=0``, ``height=0``, etc. had been passed, except where these parameters are explicitely specified with different values. This has the effect that, by default, the :program:`dialog` backend will automatically compute a suitable size for the widgets. More details about this option are given :ref:`below `. :param pass_args_via_file: whether to use the :option:`--file` option with a temporary file in order to pass arguments to the :program:`dialog` backend, instead of including them directly into the argument list; using :option:`--file` has the advantage of not exposing the “real” arguments to other users through the process table. With the default value (``None``), the option is enabled if the :program:`dialog` version is recent enough to offer a reliable :option:`--file` implementation (i.e., 1.2-20150513 or later). :type pass_args_via_file: bool or ``None`` :return: a :class:`Dialog` instance .. _Dialog-constructor-compat-arg: The officially supported :program:`dialog`-like program in pythondialog is the well-known dialog_ program written in C, based on the ncurses_ library. .. _dialog: http://invisible-island.net/dialog/dialog.html .. _ncurses: http://invisible-island.net/ncurses/ncurses.html If you want to use a different program such as Xdialog_, you should indicate the executable file name with the *dialog* argument **and** the compatibility type that you think it conforms to with the *compat* argument. Currently, *compat* can be either ``"dialog"`` (for :program:`dialog`; this is the default) or ``"Xdialog"`` (for, well, :program:`Xdialog`). .. _Xdialog: http://xdialog.free.fr/ The *compat* argument allows me to cope with minor differences in behaviour between the various programs implementing the :program:`dialog` interface (not the text or graphical interface, I mean the API). However, having to support various APIs simultaneously is ugly and I would really prefer you to report bugs to the relevant maintainers when you find incompatibilities with :program:`dialog`. This is for the benefit of pretty much everyone that relies on the :program:`dialog` interface. Notable exceptions: - :exc:`ExecutableNotFound` - :exc:`PythonDialogOSError` - :exc:`UnableToRetrieveBackendVersion` - :exc:`UnableToParseBackendVersion` .. versionadded:: 3.1 Support for the *autowidgetsize* parameter. .. versionadded:: 3.3 Support for the *pass_args_via_file* parameter. """ if 'autowidgetsize' in kwargs: autowidgetsize = kwargs['autowidgetsize']; del kwargs['autowidgetsize'] else: autowidgetsize = False if 'pass_args_via_file' in kwargs: pass_args_via_file = kwargs['pass_args_via_file']; del kwargs['pass_args_via_file'] else: pass_args_via_file = None # DIALOGRC differs from the Dialog._DIALOG_* attributes in that: # 1. It is an instance attribute instead of a class attribute. # 2. It should be a string if not None. # 3. We may very well want it to be unset. if DIALOGRC is not None: self.DIALOGRC = DIALOGRC # Mapping from "OK", "CANCEL", ... to the corresponding dialog exit # statuses (integers). self._lowlevel_exit_codes = dict(( name, getattr(self, "_DIALOG_" + name)) for name in self._lowlevel_exit_code_varnames) # Mapping from dialog exit status (integer) to Dialog exit code ("ok", # "cancel", ... strings referred to by Dialog.OK, Dialog.CANCEL, ...); # in other words, from low-level to high-level exit code. self._dialog_exit_code_ll_to_hl = {} for name in self._lowlevel_exit_code_varnames: intcode = self._lowlevel_exit_codes[name] if name == "ITEM_HELP": self._dialog_exit_code_ll_to_hl[intcode] = self.HELP elif name == "ERROR": continue else: self._dialog_exit_code_ll_to_hl[intcode] = getattr(self, name) self._dialog_prg = _path_to_executable(dialog) self.compat = compat self.autowidgetsize = autowidgetsize self.dialog_persistent_arglist = [] # Use stderr or stdout for reading dialog's output? if self.compat == "Xdialog": # Default to using stdout for Xdialog self.use_stdout = True else: self.use_stdout = False if use_stdout is not None: # Allow explicit setting self.use_stdout = use_stdout if self.use_stdout: self.add_persistent_args(["--stdout"]) self.setup_debug(False) if compat == "dialog": # Temporary setting to ensure that self.backend_version() # will be able to run even if dialog is too old to support # --file correctly. Will be overwritten later. self.pass_args_via_file = False self.cached_backend_version = DialogBackendVersion.fromstring( self.backend_version()) else: # Xdialog doesn't seem to offer --print-version (2013-09-12) self.cached_backend_version = None if pass_args_via_file is not None: # Always respect explicit settings self.pass_args_via_file = pass_args_via_file elif self.cached_backend_version is not None: self.pass_args_via_file = self.cached_backend_version >= \ DialogBackendVersion("1.2-20150513") else: # Xdialog doesn't seem to offer --file (2015-05-24) self.pass_args_via_file = False @classmethod def dash_escape(cls, args): """ Escape all elements of *args* that need escaping for :program:`dialog`. *args* may be any sequence and is not modified by this method. Return a new list where every element that needs escaping has been escaped. An element needs escaping when it starts with two ASCII hyphens (``--``). Escaping consists in prepending an element composed of two ASCII hyphens, i.e., the string ``'--'``. All high-level :class:`Dialog` methods automatically perform :term:`dash escaping` where appropriate. In particular, this is the case for every method that provides a widget: :meth:`yesno`, :meth:`msgbox`, etc. You only need to do it yourself when calling a low-level method such as :meth:`add_persistent_args`. .. versionadded:: 2.12 """ return _dash_escape(args) @classmethod def dash_escape_nf(cls, args): """ Escape all elements of *args* that need escaping, except the first one. See :meth:`dash_escape` for details. Return a new list. All high-level :class:`Dialog` methods automatically perform dash escaping where appropriate. In particular, this is the case for every method that provides a widget: :meth:`yesno`, :meth:`msgbox`, etc. You only need to do it yourself when calling a low-level method such as :meth:`add_persistent_args`. .. versionadded:: 2.12 """ return _dash_escape_nf(args) def add_persistent_args(self, args): """Add arguments to use for every subsequent dialog call. This method cannot guess which elements of *args* are dialog options (such as ``--title``) and which are not (for instance, you might want to use ``--title`` or even ``--`` as an argument to a dialog option). Therefore, this method does not perform any kind of :term:`dash escaping`; you have to do it yourself. :meth:`dash_escape` and :meth:`dash_escape_nf` may be useful for this purpose. """ self.dialog_persistent_arglist.extend(args) def set_background_title(self, text): """Set the background title for dialog. :param str text: string to use as background title .. versionadded:: 2.13 """ self.add_persistent_args(self.dash_escape_nf(("--backtitle", text))) # For compatibility with the old dialog def setBackgroundTitle(self, text): """Set the background title for :program:`dialog`. :param str text: background title to use behind widgets .. deprecated:: 2.03 Use :meth:`set_background_title` instead. """ warnings.warn("Dialog.setBackgroundTitle() has been obsolete for " "many years; use Dialog.set_background_title() instead", DeprecationWarning) self.set_background_title(text) def setup_debug(self, enable, file=None, always_flush=False, **kwargs): """Setup the debugging parameters. :param bool enable: whether to enable or disable debugging :param file file: where to write debugging information :param bool always_flush: whether to call :meth:`file.flush` after each command written :param bool expand_file_opt: when :meth:`Dialog.__init__` has been called with :samp:`{pass_args_via_file}=True`, this option causes the :option:`--file` options that would normally be written to *file* to be expanded, yielding a similar result to what would be obtained with :samp:`{pass_args_via_file}=False` (but contrary to :samp:`{pass_args_via_file}=False`, this only affects *file*, not the actual :program:`dialog` calls). This is useful, for instance, for copying some of the :program:`dialog` commands into a shell. When *enable* is true, all :program:`dialog` commands are written to *file* using POSIX shell syntax. In this case, you'll probably want to use either :samp:`{expand_file_opt}=True` in this method or :samp:`{pass_args_via_file}=False` in :meth:`Dialog.__init__`, otherwise you'll mostly see :program:`dialog` calls containing only one :option:`--file` option followed by a path to a temporary file. .. versionadded:: 2.12 .. versionadded:: 3.3 Support for the *expand_file_opt* parameter. """ if 'expand_file_opt' in kwargs: expand_file_opt = kwargs['expand_file_opt']; del kwargs['expand_file_opt'] else: expand_file_opt = False self._debug_enabled = enable if not hasattr(self, "_debug_logfile"): self._debug_logfile = None # Allows to switch debugging on and off without having to pass the file # object again and again. if file is not None: self._debug_logfile = file if enable and self._debug_logfile is None: raise BadPythonDialogUsage( "you must specify a file object when turning debugging on") self._debug_always_flush = always_flush self._expand_file_opt = expand_file_opt self._debug_first_output = True def _write_command_to_file(self, env, arglist): envvar_settings_list = [] if "DIALOGRC" in env: envvar_settings_list.append( "DIALOGRC={0}".format(_shell_quote(env["DIALOGRC"]))) for var in self._lowlevel_exit_code_varnames: varname = "DIALOG_" + var envvar_settings_list.append( "{0}={1}".format(varname, _shell_quote(env[varname]))) command_str = ' '.join(envvar_settings_list + list(imap(_shell_quote, arglist))) s = "{separator}{cmd}\n\nArgs: {args!r}\n".format( separator="" if self._debug_first_output else ("-" * 79) + "\n", cmd=command_str, args=arglist) self._debug_logfile.write(s) if self._debug_always_flush: self._debug_logfile.flush() self._debug_first_output = False def _quote_arg_for_file_opt(self, argument): """ Transform a :program:`dialog` argument for safe inclusion via :option:`--file`. Since arguments in a file included via :option:`--file` are separated by whitespace, they must be quoted for :program:`dialog` in a way similar to shell quoting. """ l = ['"'] for c in argument: if c in ('"', '\\'): l.append("\\" + c) else: l.append(c) return ''.join(l + ['"']) def _call_program(self, cmdargs, **kwargs): """Do the actual work of invoking the :program:`dialog`-like program. Communication with the :program:`dialog`-like program is performed through one :manpage:`pipe(2)` and optionally a user-specified file descriptor, depending on *redir_child_stdin_from_fd*. The pipe allows the parent process to read what :program:`dialog` writes on its standard error stream [#]_. If *use_persistent_args* is ``True`` (the default), the elements of ``self.dialog_persistent_arglist`` are passed as the first arguments to ``self._dialog_prg``; otherwise, ``self.dialog_persistent_arglist`` is not used at all. The remaining arguments are those computed from *kwargs* followed by the elements of *cmdargs*. If *dash_escape* is the string ``"non-first"``, then every element of *cmdargs* that starts with ``'--'`` is escaped by prepending an element consisting of ``'--'``, except the first one (which is usually a :program:`dialog` option such as ``'--yesno'``). In order to disable this escaping mechanism, pass the string ``"none"`` as *dash_escape*. If *redir_child_stdin_from_fd* is not ``None``, it should be an open file descriptor (i.e., an integer). That file descriptor will be connected to :program:`dialog`'s standard input. This is used by the gauge widget to feed data to :program:`dialog`, as well as for :meth:`progressbox` in order to allow :program:`dialog` to read data from a possibly-growing file. If *redir_child_stdin_from_fd* is ``None``, the standard input in the child process (which runs :program:`dialog`) is not redirected in any way. If *close_fds* is passed, it should be a sequence of file descriptors that will be closed by the child process before it exec()s the :program:`dialog`-like program. Notable exception: :exc:`PythonDialogOSError` (if any of the pipe(2) or close(2) system calls fails...) .. [#] standard ouput stream if *use_stdout* is ``True`` """ if 'close_fds' in kwargs: close_fds = kwargs['close_fds']; del kwargs['close_fds'] else: close_fds = () if 'redir_child_stdin_from_fd' in kwargs: redir_child_stdin_from_fd = kwargs['redir_child_stdin_from_fd']; del kwargs['redir_child_stdin_from_fd'] else: redir_child_stdin_from_fd = None if 'use_persistent_args' in kwargs: use_persistent_args = kwargs['use_persistent_args']; del kwargs['use_persistent_args'] else: use_persistent_args = True if 'dash_escape' in kwargs: dash_escape = kwargs['dash_escape']; del kwargs['dash_escape'] else: dash_escape = "non-first" # We want to define DIALOG_OK, DIALOG_CANCEL, etc. in the # environment of the child process so that we know (and # even control) the possible dialog exit statuses. new_environ = {} new_environ.update(os.environ) for var, value in self._lowlevel_exit_codes.items(): varname = "DIALOG_" + var new_environ[varname] = unicode(value) if hasattr(self, "DIALOGRC"): new_environ["DIALOGRC"] = self.DIALOGRC if dash_escape == "non-first": # Escape all elements of 'cmdargs' that start with '--', except the # first one. cmdargs = self.dash_escape_nf(cmdargs) elif dash_escape != "none": raise PythonDialogBug("invalid value for 'dash_escape' parameter: " "{0!r}".format(dash_escape)) arglist = [ self._dialog_prg ] if use_persistent_args: arglist.extend(self.dialog_persistent_arglist) arglist.extend(_compute_common_args(kwargs) + cmdargs) orig_args = arglist[:] # New object, copy of 'arglist' if self.pass_args_via_file: # There is currently no 'encoding' parameter in # tempfile.NamedTemporaryFile(), and the encoding for text files # defaults to ASCII in Python 2 → let's use binary mode. tmpfile = tempfile.NamedTemporaryFile( mode="wb", prefix="pythondialog.tmp", delete=False) filecontents = ' '.join( ( self._quote_arg_for_file_opt(arg) for arg in arglist[1:] ) ) with tmpfile as f: f.write(filecontents.encode( locale.getpreferredencoding(False))) args_file = tmpfile.name arglist[1:] = ["--file", args_file] else: args_file = None if self._debug_enabled: # Write the complete command line with environment variables # setting to the debug log file (POSIX shell syntax for easy # copy-pasting into a terminal, followed by repr(arglist)). self._write_command_to_file( new_environ, orig_args if self._expand_file_opt else arglist) # Create a pipe so that the parent process can read dialog's # output on stderr (stdout with 'use_stdout') with _OSErrorHandling(): # rfd = File Descriptor for Reading # wfd = File Descriptor for Writing (child_output_rfd, child_output_wfd) = os.pipe() child_pid = os.fork() if child_pid == 0: # We are in the child process. We MUST NOT raise any exception. try: # 1) If the write end of a pipe isn't closed, the read end # will never see EOF, which can indefinitely block the # child waiting for input. To avoid this, the write end # must be closed in the father *and* child processes. # 2) The child process doesn't need child_output_rfd. for fd in close_fds + (child_output_rfd,): os.close(fd) # We want: # - to keep a reference to the father's stderr for error # reporting (and use line-buffering for this stream); # - dialog's output on stderr[*] to go to child_output_wfd; # - data written to fd 'redir_child_stdin_from_fd' # (if not None) to go to dialog's stdin. # # [*] stdout with 'use_stdout' # # We'll just print the result of traceback.format_exc() to # father_stderr, which is a byte string in Python 2, hence the # binary mode. father_stderr = open(os.dup(2), mode="wb") os.dup2(child_output_wfd, 1 if self.use_stdout else 2) if redir_child_stdin_from_fd is not None: os.dup2(redir_child_stdin_from_fd, 0) os.execve(self._dialog_prg, arglist, new_environ) except: print(traceback.format_exc(), file=father_stderr) father_stderr.close() os._exit(127) # Should not happen unless there is a bug in Python os._exit(126) # We are in the father process. # # It is essential to close child_output_wfd, otherwise we will never # see EOF while reading on child_output_rfd and the parent process # will block forever on the read() call. # [ after the fork(), the "reference count" of child_output_wfd from # the operating system's point of view is 2; after the child exits, # it is 1 until the father closes it itself; then it is 0 and a read # on child_output_rfd encounters EOF once all the remaining data in # the pipe has been read. ] with _OSErrorHandling(): os.close(child_output_wfd) return (child_pid, child_output_rfd, args_file) def _wait_for_program_termination(self, child_pid, child_output_rfd): """Wait for a :program:`dialog`-like process to terminate. This function waits for the specified process to terminate, raises the appropriate exceptions in case of abnormal termination and returns the :term:`Dialog exit code` and stderr [#stream]_ output of the process as a tuple: :samp:`({hl_exit_code}, {output_string})`. *child_output_rfd* must be the file descriptor for the reading end of the pipe created by :meth:`_call_program`, the writing end of which was connected by :meth:`_call_program` to the child process's standard error [#stream]_. This function reads the process output on the standard error [#stream]_ from *child_output_rfd* and closes this file descriptor once this is done. Notable exceptions: - :exc:`DialogTerminatedBySignal` - :exc:`DialogError` - :exc:`PythonDialogErrorBeforeExecInChildProcess` - :exc:`PythonDialogIOError` if the Python version is < 3.3 - :exc:`PythonDialogOSError` - :exc:`PythonDialogBug` - :exc:`ProbablyPythonBug` .. [#stream] standard output if ``self.use_stdout`` is ``True`` """ # Read dialog's output on its stderr (stdout with 'use_stdout') with _OSErrorHandling(): with open(child_output_rfd, "r") as f: child_output = f.read() # The closing of the file object causes the end of the pipe we used # to read dialog's output on its stderr to be closed too. This is # important, otherwise invoking dialog enough times would # eventually exhaust the maximum number of open file descriptors. exit_info = os.waitpid(child_pid, 0)[1] if os.WIFEXITED(exit_info): ll_exit_code = os.WEXITSTATUS(exit_info) # As we wait()ed for the child process to terminate, there is no # need to call os.WIFSTOPPED() elif os.WIFSIGNALED(exit_info): raise DialogTerminatedBySignal("the dialog-like program was " "terminated by signal %d" % os.WTERMSIG(exit_info)) else: raise PythonDialogBug("please report this bug to the " "pythondialog maintainer(s)") if ll_exit_code == self._DIALOG_ERROR: raise DialogError( "the dialog-like program exited with status {0} (which was " "passed to it as the DIALOG_ERROR environment variable). " "Sometimes, the reason is simply that dialog was given a " "height or width parameter that is too big for the terminal " "in use. Its output, with leading and trailing whitespace " "stripped, was:\n\n{1}".format(ll_exit_code, child_output.strip())) elif ll_exit_code == 127: raise PythonDialogErrorBeforeExecInChildProcess(dedent("""\ possible reasons include: - the dialog-like program could not be executed (this can happen for instance if the Python program is trying to call the dialog-like program with arguments that cannot be represented in the user's locale [LC_CTYPE]); - the system is out of memory; - the maximum number of open file descriptors has been reached; - a cosmic ray hit the system memory and flipped nasty bits. There ought to be a traceback above this message that describes more precisely what happened.""")) elif ll_exit_code == 126: raise ProbablyPythonBug( "a child process returned with exit status 126; this might " "be the exit status of the dialog-like program, for some " "unknown reason (-> probably a bug in the dialog-like " "program); otherwise, we have probably found a python bug") try: hl_exit_code = self._dialog_exit_code_ll_to_hl[ll_exit_code] except KeyError: raise PythonDialogBug( "unexpected low-level exit status (new code?): {0!r}".format( ll_exit_code)) return (hl_exit_code, child_output) def _handle_program_exit(self, child_pid, child_output_rfd, args_file): """Handle exit of a :program:`dialog`-like process. This method: - waits for the :program:`dialog`-like program termination; - removes the temporary file used to pass its argument list, if any; - and returns the appropriate :term:`Dialog exit code` along with whatever output it produced. Notable exceptions: any exception raised by :meth:`_wait_for_program_termination` """ try: exit_code, output = \ self._wait_for_program_termination(child_pid, child_output_rfd) finally: with _OSErrorHandling(): if args_file is not None and os.path.exists(args_file): os.unlink(args_file) return (exit_code, output) def _perform(self, cmdargs, **kwargs): """Perform a complete :program:`dialog`-like program invocation. This method: - invokes the :program:`dialog`-like program; - waits for its termination; - removes the temporary file used to pass its argument list, if any; - and returns the appropriate :term:`Dialog exit code` along with whatever output it produced. See :meth:`_call_program` for a description of the parameters. Notable exceptions: any exception raised by :meth:`_call_program` or :meth:`_handle_program_exit` """ if 'use_persistent_args' in kwargs: use_persistent_args = kwargs['use_persistent_args']; del kwargs['use_persistent_args'] else: use_persistent_args = True if 'dash_escape' in kwargs: dash_escape = kwargs['dash_escape']; del kwargs['dash_escape'] else: dash_escape = "non-first" child_pid, child_output_rfd, args_file = \ self._call_program(cmdargs, dash_escape=dash_escape, use_persistent_args=use_persistent_args, **kwargs) exit_code, output = self._handle_program_exit(child_pid, child_output_rfd, args_file) return (exit_code, output) def _strip_xdialog_newline(self, output): """Remove trailing newline (if any) in \ :program:`Xdialog`-compatibility mode""" if self.compat == "Xdialog" and output.endswith("\n"): output = output[:-1] return output # This is for compatibility with the old dialog.py def _perform_no_options(self, cmd): """Call :program:`dialog` without passing any more options.""" warnings.warn("Dialog._perform_no_options() has been obsolete for " "many years", DeprecationWarning) return os.system(self._dialog_prg + ' ' + cmd) # For compatibility with the old dialog.py def clear(self): """Clear the screen. Equivalent to the :option:`--clear` option of :program:`dialog`. .. deprecated:: 2.03 You may use the :manpage:`clear(1)` program instead. cf. ``clear_screen()`` in :file:`examples/demo.py` for an example. """ warnings.warn("Dialog.clear() has been obsolete for many years.\n" "You may use the clear(1) program to clear the screen.\n" "cf. clear_screen() in examples/demo.py for an example", DeprecationWarning) self._perform_no_options('--clear') def _help_status_on(self, kwargs): return ("--help-status" in self.dialog_persistent_arglist or kwargs.get("help_status", False)) def _parse_quoted_string(self, s, start=0): """Parse a quoted string from a :program:`dialog` help output.""" if start >= len(s) or s[start] != '"': raise PythonDialogBug("quoted string does not start with a double " "quote: {0!r}".format(s)) l = [] i = start + 1 while i < len(s) and s[i] != '"': if s[i] == "\\": i += 1 if i >= len(s): raise PythonDialogBug( "quoted string ends with a backslash: {0!r}".format(s)) l.append(s[i]) i += 1 if s[i] != '"': raise PythonDialogBug("quoted string does not and with a double " "quote: {0!r}".format(s)) return (''.join(l), i+1) def _split_shellstyle_arglist(self, s): """Split an argument list with shell-style quoting performed \ by :program:`dialog`. Any argument in 's' may or may not be quoted. Quoted arguments are always expected to be enclosed in double quotes (more restrictive than what the POSIX shell allows). This function could maybe be replaced with shlex.split(), however: - shlex only handles Unicode strings in Python 2.7.3 and above; - the bulk of the work is done by _parse_quoted_string(), which is probably still needed in _parse_help(), where one needs to parse things such as 'HELP ' in which may be quoted but is never quoted, even if it contains spaces or quotes. """ s = s.rstrip() l = [] i = 0 while i < len(s): if s[i] == '"': arg, i = self._parse_quoted_string(s, start=i) if i < len(s) and s[i] != ' ': raise PythonDialogBug( "expected a space or end-of-string after quoted " "string in {0!r}, but found {1!r}".format(s, s[i])) # Start of the next argument, or after the end of the string i += 1 l.append(arg) else: try: end = s.index(' ', i) except ValueError: end = len(s) l.append(s[i:end]) # Start of the next argument, or after the end of the string i = end + 1 return l def _parse_help(self, output, kwargs, **_3to2kwargs): """Parse the dialog help output from a widget. 'kwargs' should contain the keyword arguments used in the widget call that produced the help output. 'multival' is for widgets that return a list of values as opposed to a single value. 'raw_format' is for widgets that don't start their help output with the string "HELP ". """ if 'raw_format' in _3to2kwargs: raw_format = _3to2kwargs['raw_format']; del _3to2kwargs['raw_format'] else: raw_format = False if 'multival_on_single_line' in _3to2kwargs: multival_on_single_line = _3to2kwargs['multival_on_single_line']; del _3to2kwargs['multival_on_single_line'] else: multival_on_single_line = False if 'multival' in _3to2kwargs: multival = _3to2kwargs['multival']; del _3to2kwargs['multival'] else: multival = False l = output.splitlines() if raw_format: # This format of the help output is either empty or consists of # only one line (possibly terminated with \n). It is # encountered with --calendar and --inputbox, among others. if len(l) > 1: raise PythonDialogBug("raw help feedback unexpected as " "multiline: {0!r}".format(output)) elif len(l) == 0: return "" else: return l[0] # Simple widgets such as 'yesno' will fall in this case if they use # this method. if not l: return None # The widgets that actually use --help-status always have the first # help line indicating the active item; there is no risk of # confusing this line with the first line produced by --help-status. if not l[0].startswith("HELP "): raise PythonDialogBug( "unexpected help output that does not start with 'HELP ': " "{0!r}".format(output)) # Everything that follows "HELP "; what it contains depends on whether # --item-help and/or --help-tags were passed to dialog. s = l[0][5:] if not self._help_status_on(kwargs): return s if multival: if multival_on_single_line: args = self._split_shellstyle_arglist(s) if not args: raise PythonDialogBug( "expected a non-empty space-separated list of " "possibly-quoted strings in this help output: {0!r}" .format(output)) return (args[0], args[1:]) else: return (s, l[1:]) else: if not s: raise PythonDialogBug( "unexpected help output whose first line is 'HELP '") elif s[0] != '"': l2 = s.split(' ', 1) if len(l2) == 1: raise PythonDialogBug( "expected 'HELP ' in the help output, " "but couldn't find any space after 'HELP '") else: return tuple(l2) else: help_id, after_index = self._parse_quoted_string(s) if not s[after_index:].startswith(" "): raise PythonDialogBug( "expected 'HELP ' in the help " "output, but couldn't find any space after " "'HELP '") return (help_id, s[after_index+1:]) def _widget_with_string_output(self, args, kwargs, strip_xdialog_newline=False, raw_help=False): """Generic implementation for a widget that produces a single string. The help output must be present regardless of whether --help-status was passed or not. """ code, output = self._perform(args, **kwargs) if strip_xdialog_newline: output = self._strip_xdialog_newline(output) if code == self.HELP: # No check for --help-status help_data = self._parse_help(output, kwargs, raw_format=raw_help) return (code, help_data) else: return (code, output) def _widget_with_no_output(self, widget_name, args, kwargs): """Generic implementation for a widget that produces no output.""" code, output = self._perform(args, **kwargs) if output: raise PythonDialogBug( "expected an empty output from {0!r}, but got: {1!r}".format( widget_name, output)) return code def _dialog_version_check(self, version_string, feature): if self.compat == "dialog": minimum_version = DialogBackendVersion.fromstring(version_string) if self.cached_backend_version < minimum_version: raise InadequateBackendVersion( "{0} requires dialog {1} or later, " "but you seem to be using version {2}".format( feature, minimum_version, self.cached_backend_version)) def backend_version(self): """Get the version of the :program:`dialog`-like program (backend). If the version of the :program:`dialog`-like program can be retrieved, return it as a string; otherwise, raise :exc:`UnableToRetrieveBackendVersion`. This version is not to be confused with the pythondialog version. In most cases, you should rather use the :attr:`cached_backend_version` attribute of :class:`Dialog` instances, because: - it avoids calling the backend every time one needs the version; - it is a :class:`BackendVersion` instance (or instance of a subclass) that allows easy and reliable comparisons between versions; - the version string corresponding to a :class:`BackendVersion` instance (or instance of a subclass) can be obtained with :func:`unicode`. Notable exceptions: - :exc:`UnableToRetrieveBackendVersion` - :exc:`PythonDialogReModuleError` - any exception raised by :meth:`Dialog._perform` .. versionadded:: 2.12 .. versionchanged:: 2.14 Raise :exc:`UnableToRetrieveBackendVersion` instead of returning ``None`` when the version of the :program:`dialog`-like program can't be retrieved. """ code, output = self._perform(["--print-version"], use_persistent_args=False) # Workaround for old dialog versions if code == self.OK and not (output.strip() or self.use_stdout): # output.strip() is empty and self.use_stdout is False. # This can happen with old dialog versions (1.1-20100428 # apparently does that). Try again, reading from stdout this # time. self.use_stdout = True code, output = self._perform(["--stdout", "--print-version"], use_persistent_args=False, dash_escape="none") self.use_stdout = False if code == self.OK: try: mo = self._print_version_cre.match(output) if mo: return mo.group("version") else: raise UnableToRetrieveBackendVersion( "unable to parse the output of '{0} --print-version': " "{1!r}".format(self._dialog_prg, output)) except re.error, e: raise PythonDialogReModuleError(unicode(e)) else: raise UnableToRetrieveBackendVersion( "exit code {0!r} from the backend".format(code)) def maxsize(self, **kwargs): """Get the maximum size of dialog boxes. If the exit status from the backend corresponds to :attr:`Dialog.OK`, return a :samp:`({lines}, {cols})` tuple of integers; otherwise, return ``None``. If you want to obtain the number of lines and columns of the terminal, you should call this method with ``use_persistent_args=False``, because :program:`dialog` options such as :option:`--backtitle` modify the returned values. Notable exceptions: - :exc:`PythonDialogReModuleError` - any exception raised by :meth:`Dialog._perform` .. versionadded:: 2.12 """ code, output = self._perform(["--print-maxsize"], **kwargs) if code == self.OK: try: mo = self._print_maxsize_cre.match(output) if mo: return tuple(imap(int, mo.group("rows", "columns"))) else: raise PythonDialogBug( "Unable to parse the output of '{0} --print-maxsize': " "{1!r}".format(self._dialog_prg, output)) except re.error, e: raise PythonDialogReModuleError(unicode(e)) else: return None def _default_size(self, values, defaults): # If 'autowidgetsize' is enabled, set the default values for the # width/height/... parameters of widget-producing methods to 0 (this # will actually be done by the caller, this function is only a helper). if self.autowidgetsize: defaults = (0,) * len(defaults) # For every element of 'values': keep it if different from None, # otherwise replace it with the corresponding value from 'defaults'. return [ v if v is not None else defaults[i] for i, v in enumerate(values) ] @widget def buildlist(self, text, height=0, width=0, list_height=0, items=[], **kwargs): """Display a buildlist box. :param str text: text to display in the box :param int height: height of the box :param int width: width of the box :param int list_height: height of the selected and unselected list boxes :param items: an iterable of :samp:`({tag}, {item}, {status})` tuples where *status* specifies the initial selected/unselected state of each entry; can be ``True`` or ``False``, ``1`` or ``0``, ``"on"`` or ``"off"`` (``True``, ``1`` and ``"on"`` meaning selected), or any case variation of these two strings. :return: a tuple of the form :samp:`({code}, {tags})` where: - *code* is a :term:`Dialog exit code`; - *tags* is a list of the tags corresponding to the selected items, in the order they have in the list on the right. :rtype: tuple A :meth:`!buildlist` dialog is similar in logic to the :meth:`checklist`, but differs in presentation. In this widget, two lists are displayed, side by side. The list on the left shows unselected items. The list on the right shows selected items. As items are selected or unselected, they move between the two lists. The *status* component of *items* specifies which items are initially selected. +--------------+------------------------------------------------+ | Key | Action | +==============+================================================+ | :kbd:`Space` | select or deselect the highlighted item, | | | *i.e.*, move it between the left and right | | | lists | +--------------+------------------------------------------------+ | :kbd:`^` | move the focus to the left list | +--------------+------------------------------------------------+ | :kbd:`$` | move the focus to the right list | +--------------+------------------------------------------------+ | :kbd:`Tab` | move focus (see *visit_items* below) | +--------------+------------------------------------------------+ | :kbd:`Enter` | press the focused button | +--------------+------------------------------------------------+ If called with ``visit_items=True``, the :kbd:`Tab` key can move the focus to the left and right lists, which is probably more intuitive for users than the default behavior that requires using :kbd:`^` and :kbd:`$` for this purpose. This widget requires dialog >= 1.2-20121230. Notable exceptions: any exception raised by :meth:`Dialog._perform` or :func:`_to_onoff` .. versionadded:: 3.0 """ self._dialog_version_check("1.2-20121230", "the buildlist widget") cmd = ["--buildlist", text, unicode(height), unicode(width), unicode(list_height)] for t in items: cmd.extend([ t[0], t[1], _to_onoff(t[2]) ] + list(t[3:])) code, output = self._perform(cmd, **kwargs) if code == self.HELP: help_data = self._parse_help(output, kwargs, multival=True, multival_on_single_line=True) if self._help_status_on(kwargs): help_id, selected_tags = help_data updated_items = [] for elt in items: tag, item, status = elt[:3] rest = elt[3:] updated_items.append([ tag, item, tag in selected_tags ] + list(rest)) return (code, (help_id, selected_tags, updated_items)) else: return (code, help_data) elif code in (self.OK, self.EXTRA): return (code, self._split_shellstyle_arglist(output)) else: return (code, None) def _calendar_parse_date(self, date_str): try: mo = _calendar_date_cre.match(date_str) except re.error, e: raise PythonDialogReModuleError(unicode(e)) if not mo: raise UnexpectedDialogOutput( "the dialog-like program returned the following " "unexpected output (a date string was expected) from the " "calendar box: {0!r}".format(date_str)) return [ int(s) for s in mo.group("day", "month", "year") ] @widget def calendar(self, text, height=None, width=0, day=-1, month=-1, year=-1, **kwargs): """Display a calendar dialog box. :param str text: text to display in the box :param height: height of the box (minus the calendar height) :type height: int or ``None`` :param int width: width of the box :param int day: inititial day highlighted :param int month: inititial month displayed :param int year: inititial year selected :return: a tuple of the form :samp:`({code}, {date})` where: - *code* is a :term:`Dialog exit code`; - *date* is a list of the form :samp:`[{day}, {month}, {year}]`, where *day*, *month* and *year* are integers corresponding to the date chosen by the user. :rtype: tuple A :meth:`!calendar` box displays day, month and year in separately adjustable windows. If *year* is given as ``0``, the current date is used as initial value; otherwise, if any of the values for *day*, *month* and *year* is negative, the current date's corresponding value is used. You can increment or decrement any of those using the :kbd:`Left`, :kbd:`Up`, :kbd:`Right` and :kbd:`Down` arrows. Use :kbd:`Tab` or :kbd:`Backtab` to move between windows. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=6, width=0``. Notable exceptions: - any exception raised by :meth:`Dialog._perform` - :exc:`UnexpectedDialogOutput` - :exc:`PythonDialogReModuleError` .. versionchanged:: 3.2 The default values for *day*, *month* and *year* have been changed from ``0`` to ``-1``. """ (height,) = self._default_size((height, ), (6,)) (code, output) = self._perform( ["--calendar", text, unicode(height), unicode(width), unicode(day), unicode(month), unicode(year)], **kwargs) if code == self.HELP: # The output does not depend on whether --help-status was passed # (dialog 1.2-20130902). help_data = self._parse_help(output, kwargs, raw_format=True) return (code, self._calendar_parse_date(help_data)) elif code in (self.OK, self.EXTRA): return (code, self._calendar_parse_date(output)) else: return (code, None) @widget def checklist(self, text, height=None, width=None, list_height=None, choices=[], **kwargs): """Display a checklist box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param list_height: number of entries displayed in the box at a given time (the contents can be scrolled) :type list_height: int or ``None`` :param choices: an iterable of :samp:`({tag}, {item}, {status})` tuples where *status* specifies the initial selected/unselected state of each entry; can be ``True`` or ``False``, ``1`` or ``0``, ``"on"`` or ``"off"`` (``True``, ``1`` and ``"on"`` meaning selected), or any case variation of these two strings. :return: a tuple of the form :samp:`({code}, [{tag}, ...])` whose first element is a :term:`Dialog exit code` and second element lists all tags for the entries selected by the user. If the user exits with :kbd:`Esc` or :guilabel:`Cancel`, the returned tag list is empty. :rtype: tuple Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=15, width=54, list_height=7``. Notable exceptions: any exception raised by :meth:`Dialog._perform` or :func:`_to_onoff` """ height, width, list_height = self._default_size( (height, width, list_height), (15, 54, 7)) cmd = ["--checklist", text, unicode(height), unicode(width), unicode(list_height)] for t in choices: t = [ t[0], t[1], _to_onoff(t[2]) ] + list(t[3:]) cmd.extend(t) # The dialog output cannot be parsed reliably (at least in dialog # 0.9b-20040301) without --separate-output (because double quotes in # tags are escaped with backslashes, but backslashes are not # themselves escaped and you have a problem when a tag ends with a # backslash--the output makes you think you've encountered an embedded # double-quote). kwargs["separate_output"] = True (code, output) = self._perform(cmd, **kwargs) # Since we used --separate-output, the tags are separated by a newline # in the output. There is also a final newline after the last tag. if code == self.HELP: help_data = self._parse_help(output, kwargs, multival=True) if self._help_status_on(kwargs): help_id, selected_tags = help_data updated_choices = [] for elt in choices: tag, item, status = elt[:3] rest = elt[3:] updated_choices.append([ tag, item, tag in selected_tags ] + list(rest)) return (code, (help_id, selected_tags, updated_choices)) else: return (code, help_data) else: return (code, output.split('\n')[:-1]) def _form_updated_items(self, status, elements): """Return a complete list with up-to-date items from 'status'. Return a new list of same length as 'elements'. Items are taken from 'status', except when data inside 'elements' indicates a read-only field: such items are not output by dialog ... --help-status ..., and therefore have to be extracted from 'elements' instead of 'status'. Actually, for 'mixedform', the elements that are defined as read-only using the attribute instead of a non-positive field_length are not concerned by this function, since they are included in the --help-status output. """ res = [] for i, elt in enumerate(elements): label, yl, xl, item, yi, xi, field_length = elt[:7] res.append(status[i] if field_length > 0 else item) return res def _generic_form(self, widget_name, method_name, text, elements, height=0, width=0, form_height=0, **kwargs): cmd = ["--%s" % widget_name, text, unicode(height), unicode(width), unicode(form_height)] if not elements: raise BadPythonDialogUsage( "{0}.{1}.{2}: empty ELEMENTS sequence: {3!r}".format( __name__, type(self).__name__, method_name, elements)) elt_len = len(elements[0]) # for consistency checking for i, elt in enumerate(elements): if len(elt) != elt_len: raise BadPythonDialogUsage( "{0}.{1}.{2}: ELEMENTS[0] has length {3}, whereas " "ELEMENTS[{4}] has length {5}".format( __name__, type(self).__name__, method_name, elt_len, i, len(elt))) # Give names to make the code more readable if widget_name in ("form", "passwordform"): label, yl, xl, item, yi, xi, field_length, input_length = \ elt[:8] rest = elt[8:] # optional "item_help" string elif widget_name == "mixedform": label, yl, xl, item, yi, xi, field_length, input_length, \ attributes = elt[:9] rest = elt[9:] # optional "item_help" string else: raise PythonDialogBug( "unexpected widget name in {0}.{1}._generic_form(): " "{2!r}".format(__name__, type(self).__name__, widget_name)) for name, value in (("LABEL", label), ("ITEM", item)): if not isinstance(value, basestring): raise BadPythonDialogUsage( "{0}.{1}.{2}: {3!r} element not a string: {4!r}".format( __name__, type(self).__name__, method_name, name, value)) cmd.extend((label, unicode(yl), unicode(xl), item, unicode(yi), unicode(xi), unicode(field_length), unicode(input_length))) if widget_name == "mixedform": cmd.append(unicode(attributes)) # "item help" string when using --item-help, nothing otherwise cmd.extend(rest) (code, output) = self._perform(cmd, **kwargs) if code == self.HELP: help_data = self._parse_help(output, kwargs, multival=True) if self._help_status_on(kwargs): help_id, status = help_data # 'status' does not contain the fields marked as read-only in # 'elements'. Build a list containing all up-to-date items. updated_items = self._form_updated_items(status, elements) # Reconstruct 'elements' with the updated items taken from # 'status'. updated_elements = [] for elt, updated_item in izip(elements, updated_items): label, yl, xl, item = elt[:4] rest = elt[4:] updated_elements.append([ label, yl, xl, updated_item ] + list(rest)) return (code, (help_id, status, updated_elements)) else: return (code, help_data) else: return (code, output.split('\n')[:-1]) @widget def form(self, text, elements, height=0, width=0, form_height=0, **kwargs): """Display a form consisting of labels and fields. :param str text: text to display in the box :param elements: sequence describing the labels and fields (see below) :param int height: height of the box :param int width: width of the box :param int form_height: number of form lines displayed at the same time :return: a tuple of the form :samp:`({code}, {list})` where: - *code* is a :term:`Dialog exit code`; - *list* gives the contents of every editable field on exit, with the same order as in *elements*. :rtype: tuple A :meth:`!form` box consists in a series of :dfn:`fields` and associated :dfn:`labels`. This type of dialog is suitable for adjusting configuration parameters and similar tasks. Each element of *elements* must itself be a sequence :samp:`({label}, {yl}, {xl}, {item}, {yi}, {xi}, {field_length}, {input_length})` containing the various parameters concerning a given field and the associated label. *label* is a string that will be displayed at row *yl*, column *xl*. *item* is a string giving the initial value for the field, which will be displayed at row *yi*, column *xi* (row and column numbers starting from 1). *field_length* and *input_length* are integers that respectively specify the number of characters used for displaying the field and the maximum number of characters that can be entered for this field. These two integers also determine whether the contents of the field can be modified, as follows: - if *field_length* is zero, the field cannot be altered and its contents determines the displayed length; - if *field_length* is negative, the field cannot be altered and the opposite of *field_length* gives the displayed length; - if *input_length* is zero, it is set to *field_length*. Notable exceptions: - :exc:`BadPythonDialogUsage` - any exception raised by :meth:`Dialog._perform` """ return self._generic_form("form", "form", text, elements, height, width, form_height, **kwargs) @widget def passwordform(self, text, elements, height=0, width=0, form_height=0, **kwargs): """Display a form consisting of labels and invisible fields. This widget is identical to the :meth:`form` box, except that all text fields are treated as :meth:`passwordbox` widgets rather than :meth:`inputbox` widgets. By default (as in :program:`dialog)`, nothing is echoed to the terminal as the user types in the invisible fields. This can be confusing to users. Use ``insecure=True`` (keyword argument) if you want an asterisk to be echoed for each character entered by the user. Notable exceptions: - :exc:`BadPythonDialogUsage` - any exception raised by :meth:`Dialog._perform` """ return self._generic_form("passwordform", "passwordform", text, elements, height, width, form_height, **kwargs) @widget def mixedform(self, text, elements, height=0, width=0, form_height=0, **kwargs): """Display a form consisting of labels and fields. :param str text: text to display in the box :param elements: sequence describing the labels and fields (see below) :param int height: height of the box :param int width: width of the box :param int form_height: number of form lines displayed at the same time :return: a tuple of the form :samp:`({code}, {list})` where: - *code* is a :term:`Dialog exit code`; - *list* gives the contents of every field on exit, with the same order as in *elements*. :rtype: tuple A :meth:`!mixedform` box is very similar to a :meth:`form` box, and differs from the latter by allowing field attributes to be specified. Each element of *elements* must itself be a sequence :samp:`({label}, {yl}, {xl}, {item}, {yi}, {xi}, {field_length}, {input_length}, {attributes})` containing the various parameters concerning a given field and the associated label. *attributes* is an integer interpreted as a bit mask with the following meaning (bit 0 being the least significant bit): +------------+-----------------------------------------------+ | Bit number | Meaning | +============+===============================================+ | 0 | the field should be hidden (e.g., a password) | +------------+-----------------------------------------------+ | 1 | the field should be read-only (e.g., a label) | +------------+-----------------------------------------------+ For all other parameters, please refer to the documentation of the :meth:`form` box. The return value is the same as would be with the :meth:`!form` box, except that fields marked as read-only with bit 1 of *attributes* are also included in the output list. Notable exceptions: - :exc:`BadPythonDialogUsage` - any exception raised by :meth:`Dialog._perform` """ return self._generic_form("mixedform", "mixedform", text, elements, height, width, form_height, **kwargs) @widget def dselect(self, filepath, height=0, width=0, **kwargs): """Display a directory selection dialog box. :param str filepath: initial path :param int height: height of the box :param int width: width of the box :return: a tuple of the form :samp:`({code}, {path})` where: - *code* is a :term:`Dialog exit code`; - *path* is the directory chosen by the user. :rtype: tuple The directory selection dialog displays a text entry window in which you can type a directory, and above that a window with directory names. Here, *filepath* can be a path to a file, in which case the directory window will display the contents of the path and the text entry window will contain the preselected directory. Use :kbd:`Tab` or the arrow keys to move between the windows. Within the directory window, use the :kbd:`Up` and :kbd:`Down` arrow keys to scroll the current selection. Use the :kbd:`Space` bar to copy the current selection into the text entry window. Typing any printable character switches focus to the text entry window, entering that character as well as scrolling the directory window to the closest match. Use :kbd:`Enter` or the :guilabel:`OK` button to accept the current value in the text entry window and exit. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ # The help output does not depend on whether --help-status was passed # (dialog 1.2-20130902). return self._widget_with_string_output( ["--dselect", filepath, unicode(height), unicode(width)], kwargs, raw_help=True) @widget def editbox(self, filepath, height=0, width=0, **kwargs): """Display a basic text editor dialog box. :param str filepath: path to a file which determines the initial contents of the dialog box :param int height: height of the box :param int width: width of the box :return: a tuple of the form :samp:`({code}, {text})` where: - *code* is a :term:`Dialog exit code`; - *text* is the contents of the text entry window on exit. :rtype: tuple The :meth:`!editbox` dialog displays a copy of the file contents. You may edit it using the :kbd:`Backspace`, :kbd:`Delete` and cursor keys to correct typing errors. It also recognizes :kbd:`Page Up` and :kbd:`Page Down`. Unlike the :meth:`inputbox`, you must tab to the :guilabel:`OK` or :guilabel:`Cancel` buttons to close the dialog. Pressing the :kbd:`Enter` key within the box will split the corresponding line. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ return self._widget_with_string_output( ["--editbox", filepath, unicode(height), unicode(width)], kwargs) @widget def fselect(self, filepath, height=0, width=0, **kwargs): """Display a file selection dialog box. :param str filepath: initial path :param int height: height of the box :param int width: width of the box :return: a tuple of the form :samp:`({code}, {path})` where: - *code* is a :term:`Dialog exit code`; - *path* is the path chosen by the user (the last element of which may be a directory or a file). :rtype: tuple The file selection dialog displays a text entry window in which you can type a file name (or directory), and above that two windows with directory names and file names. Here, *filepath* can be a path to a file, in which case the file and directory windows will display the contents of the path and the text entry window will contain the preselected file name. Use :kbd:`Tab` or the arrow keys to move between the windows. Within the directory or file name windows, use the :kbd:`Up` and :kbd:`Down` arrow keys to scroll the current selection. Use the :kbd:`Space` bar to copy the current selection into the text entry window. Typing any printable character switches focus to the text entry window, entering that character as well as scrolling the directory and file name windows to the closest match. Use :kbd:`Enter` or the :guilabel:`OK` button to accept the current value in the text entry window, or the :guilabel:`Cancel` button to cancel. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ # The help output does not depend on whether --help-status was passed # (dialog 1.2-20130902). return self._widget_with_string_output( ["--fselect", filepath, unicode(height), unicode(width)], kwargs, strip_xdialog_newline=True, raw_help=True) def gauge_start(self, text="", height=None, width=None, percent=0, **kwargs): """Display a gauge box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param int percent: initial percentage shown in the meter :return: undefined A gauge box displays a meter along the bottom of the box. The meter indicates a percentage. This function starts the :program:`dialog`-like program, telling it to display a gauge box containing a text and an initial percentage in the meter. .. rubric:: Gauge typical usage Gauge typical usage (assuming that *d* is an instance of the :class:`Dialog` class) looks like this:: d.gauge_start() # do something d.gauge_update(10) # 10% of the whole task is done # ... d.gauge_update(100, "any text here") # work is done exit_code = d.gauge_stop() # cleanup actions Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=8, width=54``. Notable exceptions: - any exception raised by :meth:`_call_program` - :exc:`PythonDialogOSError` """ height, width = self._default_size((height, width), (8, 54)) with _OSErrorHandling(): # We need a pipe to send data to the child (dialog) process's # stdin while it is running. # rfd = File Descriptor for Reading # wfd = File Descriptor for Writing (child_stdin_rfd, child_stdin_wfd) = os.pipe() child_pid, child_output_rfd, args_file = self._call_program( ["--gauge", text, unicode(height), unicode(width), unicode(percent)], redir_child_stdin_from_fd=child_stdin_rfd, close_fds=(child_stdin_wfd,), **kwargs) # fork() is done. We don't need child_stdin_rfd in the father # process anymore. os.close(child_stdin_rfd) self._gauge_process = { "pid": child_pid, "stdin": open(child_stdin_wfd, "w"), "child_output_rfd": child_output_rfd, "args_file": args_file } def gauge_update(self, percent, text="", update_text=False): """Update a running gauge box. :param int percent: new percentage to show in the gauge meter :param str text: new text to optionally display in the box :param bool update_text: whether to update the text in the box :return: undefined This function updates the percentage shown by the meter of a running gauge box (meaning :meth:`gauge_start` must have been called previously). If *update_text* is ``True``, the text displayed in the box is also updated. See the :meth:`gauge_start` method documentation for information about how to use a gauge. Notable exception: :exc:`PythonDialogIOError` (:exc:`PythonDialogOSError` from Python 3.3 onwards) can be raised if there is an I/O error while trying to write to the pipe used to talk to the :program:`dialog`-like program. """ if not isinstance(percent, int): raise BadPythonDialogUsage( "the 'percent' argument of gauge_update() must be an integer, " "but {0!r} is not".format(percent)) if update_text: gauge_data = "XXX\n{0}\n{1}\nXXX\n".format(percent, text) else: gauge_data = "{0}\n".format(percent) with _OSErrorHandling(): self._gauge_process["stdin"].write(gauge_data) self._gauge_process["stdin"].flush() # For "compatibility" with the old dialog.py... def gauge_iterate(*args, **kwargs): """Update a running gauge box. .. deprecated:: 2.03 Use :meth:`gauge_update` instead. """ warnings.warn("Dialog.gauge_iterate() has been obsolete for " "many years", DeprecationWarning) gauge_update(*args, **kwargs) @widget @retval_is_code def gauge_stop(self): """Terminate a running gauge widget. :return: a :term:`Dialog exit code` :rtype: str This function performs the appropriate cleanup actions to terminate a running gauge started with :meth:`gauge_start`. See the :meth:`!gauge_start` method documentation for information about how to use a gauge. Notable exceptions: - any exception raised by :meth:`_handle_program_exit`; - :exc:`PythonDialogIOError` (:exc:`PythonDialogOSError` from Python 3.3 onwards) can be raised if closing the pipe used to talk to the :program:`dialog`-like program fails. """ p = self._gauge_process # Close the pipe that we are using to feed dialog's stdin with _OSErrorHandling(): p["stdin"].close() # According to dialog(1), the output should always be empty. exit_code = self._handle_program_exit(p["pid"], p["child_output_rfd"], p["args_file"])[0] return exit_code @widget @retval_is_code def infobox(self, text, height=None, width=None, **kwargs): """Display an information dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str An info box is basically a message box. However, in this case, :program:`dialog` will exit immediately after displaying the message to the user. The screen is not cleared when :program:`dialog` exits, so that the message will remain on the screen after the method returns. This is useful when you want to inform the user that some operations are carrying on that may require some time to finish. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=10, width=30``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (10, 30)) return self._widget_with_no_output( "infobox", ["--infobox", text, unicode(height), unicode(width)], kwargs) @widget def inputbox(self, text, height=None, width=None, init='', **kwargs): """Display an input dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param str init: default input string :return: a tuple of the form :samp:`({code}, {string})` where: - *code* is a :term:`Dialog exit code`; - *string* is the string entered by the user. :rtype: tuple An input box is useful when you want to ask questions that require the user to input a string as the answer. If *init* is supplied, it is used to initialize the input string. When entering the string, the :kbd:`Backspace` key can be used to correct typing errors. If the input string is longer than can fit in the dialog box, the input field will be scrolled. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=10, width=30``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (10, 30)) # The help output does not depend on whether --help-status was passed # (dialog 1.2-20130902). return self._widget_with_string_output( ["--inputbox", text, unicode(height), unicode(width), init], kwargs, strip_xdialog_newline=True, raw_help=True) @widget def inputmenu(self, text, height=0, width=None, menu_height=None, choices=[], **kwargs): """Display an inputmenu dialog box. :param str text: text to display in the box :param int height: height of the box :param width: width of the box :type width: int or ``None`` :param menu_height: height of the menu (scrollable part) :type menu_height: int or ``None`` :param choices: an iterable of :samp:`({tag}, {item})` tuples, the meaning of which is explained below :return: see :ref:`below ` .. rubric:: Overview An :meth:`!inputmenu` box is a dialog box that can be used to present a list of choices in the form of a menu for the user to choose. Choices are displayed in the given order. The main differences with the :meth:`menu` dialog box are: - entries are not automatically centered, but left-adjusted; - the current entry can be renamed by pressing the :guilabel:`Rename` button, which allows editing the *item* part of the current entry. Each menu entry consists of a *tag* string and an *item* string. The :dfn:`tag` gives the entry a name to distinguish it from the other entries in the menu and to provide quick keyboard access. The :dfn:`item` is a short description of the option that the entry represents. The user can move between the menu entries by pressing the :kbd:`Up` and :kbd:`Down` arrow keys or the first letter of the tag as a hot key. There are *menu_height* lines (not entries!) displayed in the scrollable part of the menu at one time. At the time of this writing (with :program:`dialog` 1.2-20140219), it is not possible to add an Extra button to this widget, because internally, the :guilabel:`Rename` button *is* the Extra button. .. note:: It is strongly advised not to put any space in tags, otherwise the :program:`dialog` output can be ambiguous if the corresponding entry is renamed, causing pythondialog to return a wrong tag string and new item text. The reason is that in this case, the :program:`dialog` output is :samp:`RENAMED {tag} {item}` and pythondialog cannot guess whether spaces after the :samp:`RENAMED` + *space* prefix belong to the *tag* or the new *item* text. .. note:: There is no point in calling this method with ``help_status=True``, because it is not possible to rename several items nor is it possible to choose the :guilabel:`Help` button (or any button other than :guilabel:`Rename`) once one has started to rename an item. .. _inputmenu-return-value: .. rubric:: Return value Return a tuple of the form :samp:`({exit_info}, {tag}, {new_item_text})` where: + *exit_info* is either: - the string ``"accepted"``, meaning that an entry was accepted without renaming; - the string ``"renamed"``, meaning that an entry was accepted after being renamed; - one of the standard :term:`Dialog exit codes ` :attr:`Dialog.CANCEL`, :attr:`Dialog.ESC` or :attr:`Dialog.HELP` (:attr:`Dialog.EXTRA` can't be returned, because internally, the :guilabel:`Rename` button *is* the Extra button). + *tag* indicates which entry was accepted (with or without renaming), if any. If no entry was accepted (e.g., if the dialog was exited with the :guilabel:`Cancel` button), then *tag* is ``None``. + *new_item_text* gives the new *item* part of the renamed entry if *exit_info* is ``"renamed"``, otherwise it is ``None``. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=0, width=60, menu_height=7``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ width, menu_height = self._default_size((width, menu_height), (60, 7)) cmd = ["--inputmenu", text, unicode(height), unicode(width), unicode(menu_height)] for t in choices: cmd.extend(t) (code, output) = self._perform(cmd, **kwargs) if code == self.HELP: help_id = self._parse_help(output, kwargs) return (code, help_id, None) elif code == self.OK: return ("accepted", output, None) elif code == self.EXTRA: if not output.startswith("RENAMED "): raise PythonDialogBug( "'output' does not start with 'RENAMED ': {0!r}".format( output)) t = output.split(' ', 2) return ("renamed", t[1], t[2]) else: return (code, None, None) @widget def menu(self, text, height=None, width=None, menu_height=None, choices=[], **kwargs): """Display a menu dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param menu_height: number of entries displayed in the box (which can be scrolled) at a given time :type menu_height: int or ``None`` :param choices: an iterable of :samp:`({tag}, {item})` tuples, the meaning of which is explained below :return: a tuple of the form :samp:`({code}, {tag})` where: - *code* is a :term:`Dialog exit code`; - *tag* is the tag string corresponding to the item that the user chose. :rtype: tuple As its name suggests, a :meth:`!menu` box is a dialog box that can be used to present a list of choices in the form of a menu for the user to choose. Choices are displayed in the given order. Each menu entry consists of a *tag* string and an *item* string. The :dfn:`tag` gives the entry a name to distinguish it from the other entries in the menu and to provide quick keyboard access. The :dfn:`item` is a short description of the option that the entry represents. The user can move between the menu entries by pressing the :kbd:`Up` and :kbd:`Down` arrow keys, the first letter of the tag as a hotkey, or the number keys :kbd:`1` through :kbd:`9`. There are *menu_height* entries displayed in the menu at one time, but it will be scrolled if there are more entries than that. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=15, width=54, menu_height=7``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width, menu_height = self._default_size( (height, width, menu_height), (15, 54, 7)) cmd = ["--menu", text, unicode(height), unicode(width), unicode(menu_height)] for t in choices: cmd.extend(t) return self._widget_with_string_output( cmd, kwargs, strip_xdialog_newline=True) @widget @retval_is_code def mixedgauge(self, text, height=0, width=0, percent=0, elements=[], **kwargs): """Display a mixed gauge dialog box. :param str text: text to display in the middle of the box, between the elements list and the progress bar :param int height: height of the box :param int width: width of the box :param int percent: integer giving the percentage for the global progress bar :param elements: an iterable of :samp:`({tag}, {item})` tuples, the meaning of which is explained below :return: a :term:`Dialog exit code` :rtype: str A :meth:`!mixedgauge` box displays a list of "elements" with status indication for each of them, followed by a text and finally a global progress bar along the bottom of the box. The top part ("elements") is suitable for displaying a task list. One element is displayed per line, with its *tag* part on the left and its *item* part on the right. The *item* part is a string that is displayed on the right of the same line. The *item* part of an element can be an arbitrary string. Special values listed in the :manpage:`dialog(3)` manual page are translated into a status indication for the corresponding task (*tag*), such as: "Succeeded", "Failed", "Passed", "Completed", "Done", "Skipped", "In Progress", "Checked", "N/A" or a progress bar. A progress bar for an element is obtained by supplying a negative number for the *item*. For instance, ``"-75"`` will cause a progress bar indicating 75% to be displayed on the corresponding line. For your convenience, if an *item* appears to be an integer or a float, it will be converted to a string before being passed to the :program:`dialog`-like program. *text* is shown as a sort of caption between the list and the global progress bar. The latter displays *percent* as the percentage of completion. Contrary to the regular :ref:`gauge widget `, :meth:`!mixedgauge` is completely static. You have to call :meth:`!mixedgauge` several times in order to display different percentages in the global progress bar or various status indicators for a given task. .. note:: Calling :meth:`!mixedgauge` several times is likely to cause unwanted flickering because of the screen initializations performed by :program:`dialog` on every run. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ cmd = ["--mixedgauge", text, unicode(height), unicode(width), unicode(percent)] for t in elements: cmd.extend( (t[0], unicode(t[1])) ) return self._widget_with_no_output("mixedgauge", cmd, kwargs) @widget @retval_is_code def msgbox(self, text, height=None, width=None, **kwargs): """Display a message dialog box, with scrolling and line wrapping. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str Display *text* in a message box, with a scrollbar and percentage indication if *text* is too long to fit in a single "screen". An :meth:`!msgbox` is very similar to a :meth:`yesno` box. The only difference between an :meth:`!msgbox` and a :meth:`!yesno` box is that the former only has a single :guilabel:`OK` button. You can use :meth:`!msgbox` to display any message you like. After reading the message, the user can press the :kbd:`Enter` key so that :program:`dialog` will exit and the calling program can continue its operation. :meth:`!msgbox` performs automatic line wrapping. If you want to force a newline at some point, simply insert it in *text*. In other words (with the default settings), newline characters in *text* **are** respected; the line wrapping process performed by :program:`dialog` only inserts **additional** newlines when needed. If you want no automatic line wrapping, consider using :meth:`scrollbox`. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=10, width=30``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (10, 30)) return self._widget_with_no_output( "msgbox", ["--msgbox", text, unicode(height), unicode(width)], kwargs) @widget @retval_is_code def pause(self, text, height=None, width=None, seconds=5, **kwargs): """Display a pause dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param int seconds: number of seconds to pause for :return: a :term:`Dialog exit code` (which is :attr:`Dialog.OK` if the widget ended automatically after *seconds* seconds or if the user pressed the :guilabel:`OK` button) :rtype: str A :meth:`!pause` box displays a text and a meter along the bottom of the box, during a specified amount of time (*seconds*). The meter indicates how many seconds remain until the end of the pause. The widget exits when the specified number of seconds is elapsed, or immediately if the user presses the :guilabel:`OK` button, the :guilabel:`Cancel` button or the :kbd:`Esc` key. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=15, width=60``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (15, 60)) return self._widget_with_no_output( "pause", ["--pause", text, unicode(height), unicode(width), unicode(seconds)], kwargs) @widget def passwordbox(self, text, height=None, width=None, init='', **kwargs): """Display a password input dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param str init: default input password :return: a tuple of the form :samp:`({code}, {password})` where: - *code* is a :term:`Dialog exit code`; - *password* is the password entered by the user. :rtype: tuple A :meth:`!passwordbox` is similar to an :meth:`inputbox`, except that the text the user enters is not displayed. This is useful when prompting for passwords or other sensitive information. Be aware that if anything is passed in *init*, it will be visible in the system's process table to casual snoopers. Also, it is very confusing to the user to provide them with a default password they cannot see. For these reasons, using *init* is highly discouraged. By default (as in :program:`dialog`), nothing is echoed to the terminal as the user enters the sensitive text. This can be confusing to users. Use ``insecure=True`` (keyword argument) if you want an asterisk to be echoed for each character entered by the user. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=10, width=60``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (10, 60)) # The help output does not depend on whether --help-status was passed # (dialog 1.2-20130902). return self._widget_with_string_output( ["--passwordbox", text, unicode(height), unicode(width), init], kwargs, strip_xdialog_newline=True, raw_help=True) def _progressboxoid(self, widget, file_path=None, file_flags=os.O_RDONLY, fd=None, text=None, height=20, width=78, **kwargs): if (file_path is None and fd is None) or \ (file_path is not None and fd is not None): raise BadPythonDialogUsage( "{0}.{1}.{2}: either 'file_path' or 'fd' must be provided, and " "not both at the same time".format( __name__, self.__class__.__name__, widget)) with _OSErrorHandling(): if file_path is not None: if fd is not None: raise PythonDialogBug( "unexpected non-None value for 'fd': {0!r}".format(fd)) # No need to pass 'mode', as the file is not going to be # created here. fd = os.open(file_path, file_flags) try: args = [ "--{0}".format(widget) ] if text is not None: args.append(text) args.extend([unicode(height), unicode(width)]) kwargs["redir_child_stdin_from_fd"] = fd code = self._widget_with_no_output(widget, args, kwargs) finally: with _OSErrorHandling(): if file_path is not None: # We open()ed file_path ourselves, let's close it now. os.close(fd) return code @widget @retval_is_code def progressbox(self, file_path=None, file_flags=os.O_RDONLY, fd=None, text=None, height=None, width=None, **kwargs): """ Display a possibly growing stream in a dialog box, as with ``tail -f``. A file, or more generally a stream that can be read from, must be specified with either: :param str file_path: path to the file that is going to be displayed :param file_flags: flags used when opening *file_path*; those are passed to :func:`os.open` (not the built-in :func:`open` function!). By default, only one flag is set: :data:`os.O_RDONLY`. or :param int fd: file descriptor for the stream to be displayed Remaining parameters: :param text: caption continuously displayed at the top, above the stream text, or ``None`` to disable the caption :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str Display the contents of the specified file, updating the dialog box whenever the file grows, as with the ``tail -f`` command. The file can be specified in two ways: - either by giving its path (and optionally :func:`os.open` flags) with parameters *file_path* and *file_flags*; - or by passing its file descriptor with parameter *fd* (in which case it may not even be a file; for instance, it could be an anonymous pipe created with :func:`os.pipe`). Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=20, width=78``. Notable exceptions: - :exc:`PythonDialogOSError` (:exc:`PythonDialogIOError` if the Python version is < 3.3) - any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (20, 78)) return self._progressboxoid( "progressbox", file_path=file_path, file_flags=file_flags, fd=fd, text=text, height=height, width=width, **kwargs) @widget @retval_is_code def programbox(self, file_path=None, file_flags=os.O_RDONLY, fd=None, text=None, height=None, width=None, **kwargs): """ Display a possibly growing stream in a dialog box, as with ``tail -f``. A :meth:`!programbox` is very similar to a :meth:`progressbox`. The only difference between a :meth:`!programbox` and a :meth:`!progressbox` is that a :meth:`!programbox` displays an :guilabel:`OK` button, but only after the input stream has been exhausted (i.e., *End Of File* has been reached). This dialog box can be used to display the piped output of an external program. After the program completes, the user can press the :kbd:`Enter` key to close the dialog and resume execution of the calling program. The parameters and exceptions are the same as for :meth:`progressbox`. Please refer to the corresponding documentation. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=20, width=78``. This widget requires :program:`dialog` >= 1.1-20110302. .. versionadded:: 2.14 """ self._dialog_version_check("1.1-20110302", "the programbox widget") height, width = self._default_size((height, width), (20, 78)) return self._progressboxoid( "programbox", file_path=file_path, file_flags=file_flags, fd=fd, text=text, height=height, width=width, **kwargs) @widget def radiolist(self, text, height=None, width=None, list_height=None, choices=[], **kwargs): """Display a radiolist box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :param list_height: number of entries displayed in the box (which can be scrolled) at a given time :type list_height: int or ``None`` :param choices: an iterable of :samp:`({tag}, {item}, {status})` tuples where *status* specifies the initial selected/unselected state of each entry; can be ``True`` or ``False``, ``1`` or ``0``, ``"on"`` or ``"off"`` (``True``, ``1`` and ``"on"`` meaning selected), or any case variation of these two strings. No more than one entry should be set to ``True``. :return: a tuple of the form :samp:`({code}, {tag})` where: - *code* is a :term:`Dialog exit code`; - *tag* is the tag string corresponding to the entry that was chosen by the user. :rtype: tuple A :meth:`!radiolist` box is similar to a :meth:`menu` box. The main differences are presentation and that the :meth:`!radiolist` allows you to indicate which entry is initially selected, by setting its status to ``True``. If the user exits with :kbd:`Esc` or :guilabel:`Cancel`, or if all entries were initially set to ``False`` and not altered before the user chose :guilabel:`OK`, the returned tag is the empty string. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=15, width=54, list_height=7``. Notable exceptions: any exception raised by :meth:`Dialog._perform` or :func:`_to_onoff` """ height, width, list_height = self._default_size( (height, width, list_height), (15, 54, 7)) cmd = ["--radiolist", text, unicode(height), unicode(width), unicode(list_height)] for t in choices: cmd.extend([ t[0], t[1], _to_onoff(t[2]) ] + list(t[3:])) (code, output) = self._perform(cmd, **kwargs) output = self._strip_xdialog_newline(output) if code == self.HELP: help_data = self._parse_help(output, kwargs) if self._help_status_on(kwargs): help_id, selected_tag = help_data # Reconstruct 'choices' with the selected item inferred from # 'selected_tag'. updated_choices = [] for elt in choices: tag, item, status = elt[:3] rest = elt[3:] updated_choices.append([ tag, item, tag == selected_tag ] + list(rest)) return (code, (help_id, selected_tag, updated_choices)) else: return (code, help_data) else: return (code, output) @widget def rangebox(self, text, height=0, width=0, min=None, max=None, init=None, **kwargs): """Display a range dialog box. :param str text: text to display above the actual range control :param int height: height of the box :param int width: width of the box :param int min: minimum value for the range control :param int max: maximum value for the range control :param int init: initial value for the range control :return: a tuple of the form :samp:`({code}, {val})` where: - *code* is a :term:`Dialog exit code`; - *val* is an integer: the value chosen by the user. :rtype: tuple The :meth:`!rangebox` dialog allows the user to select from a range of integers using a kind of slider. The range control shows the current value as a bar (like the :ref:`gauge dialog `). The :kbd:`Tab` and arrow keys move the cursor between the buttons and the range control. When the cursor is on the latter, you can change the value with the following keys: +-----------------------+----------------------------+ | Key | Action | +=======================+============================+ | :kbd:`Left` and | select a digit to modify | | :kbd:`Right` arrows | | +-----------------------+----------------------------+ | :kbd:`+` / :kbd:`-` | increment/decrement the | | | selected digit by one unit | +-----------------------+----------------------------+ | :kbd:`0`–:kbd:`9` | set the selected digit to | | | the given value | +-----------------------+----------------------------+ Some keys are also recognized in all cursor positions: +------------------+--------------------------------------+ | Key | Action | +==================+======================================+ | :kbd:`Home` / | set the value to its minimum or | | :kbd:`End` | maximum | +------------------+--------------------------------------+ | :kbd:`Page Up` / | decrement/increment the value so | | :kbd:`Page Down` | that the slider moves by one column | +------------------+--------------------------------------+ This widget requires :program:`dialog` >= 1.2-20121230. Notable exceptions: any exception raised by :meth:`Dialog._perform` .. versionadded:: 2.14 """ self._dialog_version_check("1.2-20121230", "the rangebox widget") for name in ("min", "max", "init"): if not isinstance(locals()[name], int): raise BadPythonDialogUsage( "'{0}' argument not an int: {1!r}".format(name, locals()[name])) (code, output) = self._perform( ["--rangebox", text] + [ unicode(i) for i in (height, width, min, max, init) ], **kwargs) if code == self.HELP: help_data = self._parse_help(output, kwargs, raw_format=True) # The help output does not depend on whether --help-status was # passed (dialog 1.2-20130902). return (code, int(help_data)) elif code in (self.OK, self.EXTRA): return (code, int(output)) else: return (code, None) @widget @retval_is_code def scrollbox(self, text, height=None, width=None, **kwargs): """Display a string in a scrollable box, with no line wrapping. :param str text: string to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str This method is a layer on top of :meth:`textbox`. The :meth:`!textbox` widget in :program:`dialog` allows one to display file contents only. This method can be used to display any text in a scrollable box. This is simply done by creating a temporary file, calling :meth:`!textbox` and deleting the temporary file afterwards. The text is not automatically wrapped. New lines in the scrollable box will be placed exactly as in *text*. If you want automatic line wrapping, you should use the :meth:`msgbox` widget instead (the :mod:`textwrap` module from the Python standard library is also worth knowing about). Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=20, width=78``. Notable exceptions: :exc:`PythonDialogOSError` (:exc:`PythonDialogIOError` if the Python version is < 3.3) .. versionchanged:: 3.1 :exc:`UnableToCreateTemporaryDirectory` exception can't be raised anymore. The equivalent condition now raises :exc:`PythonDialogOSError`. """ height, width = self._default_size((height, width), (20, 78)) with _OSErrorHandling(): # There is currently no 'encoding' parameter in # tempfile.NamedTemporaryFile(), and the encoding for text files # defaults to ASCII in Python 2 → let's use binary mode. tmpfile = tempfile.NamedTemporaryFile( mode="wb", prefix="pythondialog.tmp", delete=False) try: with tmpfile as f: f.write(text.encode(locale.getpreferredencoding(False))) # The temporary file is now closed. According to the tempfile # module documentation, this is necessary if we want to be able # to reopen it reliably regardless of the platform. # Ask for an empty title unless otherwise specified if kwargs.get("title", None) is None: kwargs["title"] = "" return self._widget_with_no_output( "textbox", ["--textbox", tmpfile.name, unicode(height), unicode(width)], kwargs) finally: # The test should always succeed, but I prefer being on the # safe side. if os.path.exists(tmpfile.name): os.unlink(tmpfile.name) @widget @retval_is_code def tailbox(self, filepath, height=None, width=None, **kwargs): """Display the contents of a file in a dialog box, as with ``tail -f``. :param str filepath: path to a file, the contents of which is to be displayed in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str Display the contents of the file specified with *filepath*, updating the dialog box whenever the file grows, as with the ``tail -f`` command. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=20, width=60``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (20, 60)) return self._widget_with_no_output( "tailbox", ["--tailbox", filepath, unicode(height), unicode(width)], kwargs) # No tailboxbg widget, at least for now. @widget @retval_is_code def textbox(self, filepath, height=None, width=None, **kwargs): """Display the contents of a file in a dialog box. :param str filepath: path to a file, the contents of which is to be displayed in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str A :meth:`!textbox` lets you display the contents of a text file in a dialog box. It is like a simple text file viewer. The user can move through the file using the :kbd:`Up` and :kbd:`Down` arrow keys, :kbd:`Page Up` and :kbd:`Page Down` as well as the :kbd:`Home` and :kbd:`End` keys available on most keyboards. If the lines are too long to be displayed in the box, the :kbd:`Left` and :kbd:`Right` arrow keys can be used to scroll the text region horizontally. For more convenience, forward and backward search functions are also provided. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=20, width=60``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (20, 60)) # This is for backward compatibility... not that it is # stupid, but I prefer explicit programming. if kwargs.get("title", None) is None: kwargs["title"] = filepath return self._widget_with_no_output( "textbox", ["--textbox", filepath, unicode(height), unicode(width)], kwargs) def _timebox_parse_time(self, time_str): try: mo = _timebox_time_cre.match(time_str) except re.error, e: raise PythonDialogReModuleError(unicode(e)) if not mo: raise UnexpectedDialogOutput( "the dialog-like program returned the following " "unexpected output (a time string was expected) with the " "--timebox option: {0!r}".format(time_str)) return [ int(s) for s in mo.group("hour", "minute", "second") ] @widget def timebox(self, text, height=None, width=None, hour=-1, minute=-1, second=-1, **kwargs): """Display a time dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param int width: width of the box :type width: int or ``None`` :param int hour: inititial hour selected :param int minute: inititial minute selected :param int second: inititial second selected :return: a tuple of the form :samp:`({code}, {time})` where: - *code* is a :term:`Dialog exit code`; - *time* is a list of the form :samp:`[{hour}, {minute}, {second}]`, where *hour*, *minute* and *second* are integers corresponding to the time chosen by the user. :rtype: tuple :meth:`timebox` is a dialog box which allows one to select an hour, minute and second. If any of the values for *hour*, *minute* and *second* is negative, the current time's corresponding value is used. You can increment or decrement any of those using the :kbd:`Left`, :kbd:`Up`, :kbd:`Right` and :kbd:`Down` arrows. Use :kbd:`Tab` or :kbd:`Backtab` to move between windows. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=3, width=30``. Notable exceptions: - any exception raised by :meth:`Dialog._perform` - :exc:`PythonDialogReModuleError` - :exc:`UnexpectedDialogOutput` """ height, width = self._default_size((height, width), (3, 30)) (code, output) = self._perform( ["--timebox", text, unicode(height), unicode(width), unicode(hour), unicode(minute), unicode(second)], **kwargs) if code == self.HELP: help_data = self._parse_help(output, kwargs, raw_format=True) # The help output does not depend on whether --help-status was # passed (dialog 1.2-20130902). return (code, self._timebox_parse_time(help_data)) elif code in (self.OK, self.EXTRA): return (code, self._timebox_parse_time(output)) else: return (code, None) @widget def treeview(self, text, height=0, width=0, list_height=0, nodes=[], **kwargs): """Display a treeview box. :param str text: text to display at the top of the box :param int height: height of the box :param int width: width of the box :param int list_height: number of lines reserved for the main part of the box, where the tree is displayed :param nodes: an iterable of :samp:`({tag}, {item}, {status}, {depth})` tuples describing nodes, where: - *tag* is used to indicate which node was selected by the user on exit; - *item* is the text displayed for the node; - *status* specifies the initial selected/unselected state of each entry; can be ``True`` or ``False``, ``1`` or ``0``, ``"on"`` or ``"off"`` (``True``, ``1`` and ``"on"`` meaning selected), or any case variation of these two strings; - *depth* is a non-negative integer indicating the depth of the node in the tree (``0`` for the root node). :return: a tuple of the form :samp:`({code}, {tag})` where: - *code* is a :term:`Dialog exit code`; - *tag* is the tag of the selected node. Display nodes organized in a tree structure. Each node has a *tag*, an *item* text, a selected *status*, and a *depth* in the tree. Only the *item* texts are displayed in the widget; *tag*\s are only used for the return value. Only one node can be selected at a given time, as for the :meth:`radiolist` widget. This widget requires :program:`dialog` >= 1.2-20121230. Notable exceptions: any exception raised by :meth:`Dialog._perform` or :func:`_to_onoff` .. versionadded:: 2.14 """ self._dialog_version_check("1.2-20121230", "the treeview widget") cmd = ["--treeview", text, unicode(height), unicode(width), unicode(list_height)] nselected = 0 for i, t in enumerate(nodes): if not isinstance(t[3], int): raise BadPythonDialogUsage( "fourth element of node {0} not an int: {1!r}".format( i, t[3])) status = _to_onoff(t[2]) if status == "on": nselected += 1 cmd.extend([ t[0], t[1], status, unicode(t[3]) ] + list(t[4:])) if nselected != 1: raise BadPythonDialogUsage( "exactly one node must be selected, not {0}".format(nselected)) (code, output) = self._perform(cmd, **kwargs) if code == self.HELP: help_data = self._parse_help(output, kwargs) if self._help_status_on(kwargs): help_id, selected_tag = help_data # Reconstruct 'nodes' with the selected item inferred from # 'selected_tag'. updated_nodes = [] for elt in nodes: tag, item, status = elt[:3] rest = elt[3:] updated_nodes.append([ tag, item, tag == selected_tag ] + list(rest)) return (code, (help_id, selected_tag, updated_nodes)) else: return (code, help_data) elif code in (self.OK, self.EXTRA): return (code, output) else: return (code, None) @widget @retval_is_code def yesno(self, text, height=None, width=None, **kwargs): """Display a yes/no dialog box. :param str text: text to display in the box :param height: height of the box :type height: int or ``None`` :param width: width of the box :type width: int or ``None`` :return: a :term:`Dialog exit code` :rtype: str Display a dialog box containing *text* and two buttons labelled :guilabel:`Yes` and :guilabel:`No` by default. The box size is *height* rows by *width* columns. If *text* is too long to fit in one line, it will be automatically divided into multiple lines at appropriate places. *text* may also contain the substring ``"\\n"`` or newline characters to control line breaking explicitly. This :meth:`!yesno` dialog box is useful for asking questions that require the user to answer either "yes" or "no". These are the default button labels, however they can be freely set with the ``yes_label`` and ``no_label`` keyword arguments. The user can switch between the buttons by pressing the :kbd:`Tab` key. Default values for the size parameters when the :ref:`autowidgetsize ` option is disabled: ``height=10, width=30``. Notable exceptions: any exception raised by :meth:`Dialog._perform` """ height, width = self._default_size((height, width), (10, 30)) return self._widget_with_no_output( "yesno", ["--yesno", text, unicode(height), unicode(width)], kwargs) python2-pythondialog-3.3.0/README.rst0000644000175000001440000003771012531564443017264 0ustar flousers00000000000000=============================================================================== Python wrapper for the UNIX "dialog" utility =============================================================================== Easy writing of graphical interfaces for terminal-based applications ------------------------------------------------------------------------------- WARNING ------- This version is a backport of pythondialog to Python 2. Unless you *really* have to use Python 2, you should go to the `pythondialog home page`_ and download the reference implementation which, at the time of this writing (May 2015) and for the forseeable future, is targeted at Python 3. .. _pythondialog home page: http://pythondialog.sourceforge.net/ This version is only here to help users who are somehow forced to still use Python 2, even though Python 3.0 was released on December 3, 2008. It may be the last update for Python 2. In addition, the reference implementation is less likely to have bugs. Before using this backport, be sure to read the `Backport-specific notes`_ below. Overview -------- pythondialog is a Python wrapper for the UNIX dialog_ utility originally written by Savio Lam and later rewritten by Thomas E. Dickey. Its purpose is to provide an easy to use, pythonic and as complete as possible interface to dialog_ from Python code. .. _dialog: http://invisible-island.net/dialog/dialog.html pythondialog is free software, licensed under the GNU LGPL (GNU Lesser General Public License). Its home page is located at: http://pythondialog.sourceforge.net/ and contains a `short example`_, screenshots_, a `summary of the recent changes`_, links to the `documentation`_, the `Git repository`_, the `mailing list`_, the `issue tracker`_, etc. .. _short example: http://pythondialog.sourceforge.net/#example .. _screenshots: http://pythondialog.sourceforge.net/gallery.html .. _summary of the recent changes: http://pythondialog.sourceforge.net/news.html .. _documentation: http://pythondialog.sourceforge.net/doc/ .. _Git repository: https://sourceforge.net/p/pythondialog/code/ .. _mailing list: https://sourceforge.net/p/pythondialog/mailman/ .. _issue tracker: https://sourceforge.net/p/pythondialog/_list/tickets If you want to get a quick idea of what this module allows one to do, you can download a release tarball and run ``demo.py``:: PYTHONPATH=. python2 examples/demo.py Notes: - the preceding command uses ``python2`` because we want to use the Python 2 backport of pythondialog; - depending on your system, you may have to replace ``python2`` with ``python`` or ``python2.7``, for instance. What is pythondialog good for? What are its limitations? -------------------------------------------------------- As you might infer from the name, dialog is a high-level program that generates dialog boxes. So is pythondialog. They allow you to build nice interfaces quickly and easily, but you don't have full control over the widgets, nor can you create new widgets without modifying dialog itself. If you need to do low-level stuff, you should have a look at ncurses or slang instead. For sophisticated text-mode interfaces, the `Urwid Python library`_ looks rather interesting, too. .. _Urwid Python library: http://excess.org/urwid/ Requirements ------------ * This backport of pythondialog requires Python 2.6 or later in the 2.x series. It has been tested with Python 2.7. * The reference implementation supports more recent versions of the Python interpreter. Please visit the `pythondialog home page`_ for more information. * Apart from that, pythondialog requires the dialog_ program (or a drop-in replacement for dialog). You can download dialog from: http://invisible-island.net/dialog/dialog.html Note that some features of pythondialog may require recent versions of dialog. Quick installation instructions ------------------------------- If you have a working `pip `_ setup, you should be able to install this backport of pythondialog with:: pip install python2-pythondialog When doing so, make sure that your ``pip`` executable runs with the Python 2 installation you want to install the backport for. For more detailed instructions, you can read the ``INSTALL`` file from a release tarball. You may also want to consult the `pip documentation `_. Backport-specific notes ----------------------- * The pythondialog documentation is written for the reference implementation (Python 3 at the time of this writing). To be on the safe side when using the Python 2 backport, you should use Unicode strings every time you pass “string data” to pythondialog, and you will get Unicode strings in return. Indeed, these correspond directly to Python 3 strings, and modern versions of pythondialog (>= 2.12) are all based on this type of string. The pythondialog documentation consistently uses the term “string” (as opposed to “Unicode string”) because it has been written for Python 3, but **you should definitely use Unicode strings when using the Python 2 backport**. Many things happen to work with byte strings, but in most cases, this is pure coincidence; others fail, and won't be fixed. This is not a bug. The easiest way to use Unicode strings everywhere (or almost everywhere) in Python 2.x with x >= 6, consists in using:: from __future__ import unicode_literals at the beginning of your Python files. This method has the additional benefit of preparing your transition to Python 3. * Don't use ``str()`` in Python 2 on objects such as pythondialog exceptions or ``dialog.DialogBackendVersion`` instances; use ``unicode()`` instead, which is the Python 2 equivalent of the Python 3 ``str()`` built-in. Of course, using ``repr()`` on any pythondialog object should return a byte string when run under Python 2, because this is how the ``repr()`` API works in Python 2. The same holds true for ``str()``, but this one is not supported by the Python 2 backport of pythondialog: it is superseded, as already explained, by the much more powerful ``unicode()``. * Before taking potentially expensive decisions, you should realize that Unicode support is *much*, much better in Python 3 than in Python 2, even though the basic types are largely the same (Unicode string in Python 2, native string in Python 3). In Python 3, native strings (simply called “strings” in the Python documentation) are natural and ubiquitous. They can be read and written from/to the standard I/O streams with sane encoding defaults. ``str()`` and ``repr()`` return native strings, as do all standard library calls whenever expected (i.e., when the return value is text, as opposed to binary data). Python 3 strings are both powerful and easy to use. By contrast, in Python 2, you always have to be very careful about what you manipulate: byte strings or Unicode strings. Most library calls in your code are a potential source of bug. Usually, this kind of bug only pops up when user data or input introduces non-ASCII characters in a byte string that is then either combined with an Unicode string, or used in a context where the expected encoding is different. This means that some users get annoyed by “crappy” software, while the responsible developers are often not aware of any problem---until a bug report is filed, if ever. Want to use ``traceback.format_exc()`` for instance? What does it return, byte string or Unicode string? Experiment. Answer: byte string. Then, how does it deal with, e.g., accented characters in an ``OSError`` exception message? Experiment. Answer: it outputs the ``repr()`` representation of an Unicode string that uses backslash escapes for the non-ASCII characters, all of this inside the returned byte string. Conclusion: the messages seen by users will be very ugly and more or less undecipherable for many of them. Does it behave this way in all cases? Tough question. Use the source, Luke... With other library calls, you might get non-ASCII characters in a byte string. Then, the question would be: what encoding has been used to encode them, and is there a reliable way to detect it? In many cases, this is not documented and/or depends on parameters under user control, such as the locale settings. Again, you have to waste time figuring out the encoding, and often can't be sure whether your answer is correct in all cases. **Bottom line:** There are good reasons why the Python developers broke compatibility at such a fundamental level as string management between Python 2 and Python 3. Getting Unicode support completely right in Python 2 may require more work than porting your code to Python 3. Besides, future maintainance and evolutions of your program will definitely be easier once it is written in Python 3. Think about it. Documentation ------------- **Important:** be sure to read the `Backport-specific notes`_ above. The pythondialog Manual ^^^^^^^^^^^^^^^^^^^^^^^ The pythondialog Manual is written in `reStructuredText`_ format for the `Sphinx`_ documentation generator. The HTML documentation for the latest version of pythondialog as rendered by Sphinx should be available at: http://pythondialog.sourceforge.net/doc/ .. _pythondialog Manual: http://pythondialog.sourceforge.net/doc/ .. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _Sphinx: http://sphinx-doc.org/ .. _LaTeX: http://latex-project.org/ .. _Make: http://www.gnu.org/software/make/ The sources for the pythondialog Manual are located in the ``doc`` top-level directory of the pythondialog distribution, but the documentation build process pulls many parts from dialog.py, mainly docstrings. **Note:** Currently, generation of the pythondialog Manual with `Sphinx`_ has only been tested, and is only supported with the reference implementation, on Python 3. As a consequence, the package containing this file may be fine to read or grep through the ``.rst`` files; however, if compilation of said ``.rst`` files with `Sphinx`_ doesn't work, it is currently not considered a bug---simply download the reference implementation if you want to do that. To generate the documentation yourself from dialog.py and the sources in the ``doc`` directory, first make sure you have `Sphinx`_ and `Make`_ installed. Then, you can go to the ``doc`` directory and type, for instance:: make html You will then find the output in the ``_build/html`` subdirectory of ``doc``. `Sphinx`_ can build the documentation in many other formats. For instance, if you have `LaTeX`_ installed, you can generate the pythondialog Manual in PDF format using:: make latexpdf You can run ``make`` from the ``doc`` directory to see a list of the available formats. Run ``make clean`` to clean up after the documentation build process. For those who have installed `Sphinx`_ but not `Make`_, it is still possible to build the documentation with a command such as:: sphinx-build -b html . _build/html run from the ``doc`` directory. Please refer to `sphinx-build`_ for more details. .. _sphinx-build: http://sphinx-doc.org/invocation.html Reading the docstrings from an interactive Python interpreter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you have already installed pythondialog, you may consult its docstrings in an interactive Python interpreter this way:: >>> import dialog; help(dialog) but only parts of the documentation are available using this method, and the result is much less convenient to use than the `pythondialog Manual`_ as generated by `Sphinx`_. Enabling Deprecation Warnings ----------------------------- There are a few places in ``dialog.py`` that send a ``DeprecationWarning`` to warn developers about obsolete features. However, because of: - the dialog output to the terminal; - the fact that such warnings are silenced by default since Python 2.7 and 3.2; you have to do two things in order to see them: - redirect the standard error stream to a file; - enable the warnings for the Python interpreter. For instance, to see the warnings produced when running the demo, you can do:: PYTHONPATH=. python2 -Wd examples/demo.py 2>/path/to/file and examine ``/path/to/file``. This can also help you to find files that are still open when your program exits. **Note:** If your program is terminated by an unhandled exception while stderr is redirected as in the preceding command, you won't see the traceback until you examine the file stderr was redirected to. This can be disturbing, as your program may exit with no apparent reason in such conditions. For more explanations and other methods to enable deprecation warnings, please refer to: http://docs.python.org/2/whatsnew/2.7.html Troubleshooting --------------- If you have a problem with a pythondialog call, you should read its documentation and the dialog(1) manual page. If this is not enough, you can enable logging of shell command-line equivalents of all dialog calls made by your program with a simple call to ``Dialog.setup_debug()``, first available in pythondialog 2.12 (the ``expand_file_opt`` parameter may be useful in versions 3.3 and later). An example of this can be found in ``demo.py`` from the ``examples`` directory. As of version 2.12, you can also enable this debugging facility for ``demo.py`` by calling it with the ``--debug`` flag (possibly combined with ``--debug-expand-file-opt`` in pythondialog 3.3 and later, cf. ``demo.py --help``). Using Xdialog instead of dialog ------------------------------- As far as I can tell, `Xdialog`_ has not been ported to `GTK+`_ version 2 or later. It is not in `Debian`_ stable nor unstable (June 23, 2013). It is not installed on my system (because of the GTK+ 1.2 dependency), and according to the Xdialog-specific patches I received from Peter Åstrand in 2004, was not a drop-in replacement for `dialog`_ (in particular, Xdialog seemed to want to talk to the caller through stdout instead of stderr, grrrrr!). .. _Xdialog: http://xdialog.free.fr/ .. _GTK+: http://www.gtk.org/ .. _Debian: http://www.debian.org/ All this to say that, even though I didn't remove the options to use another backend than dialog, nor did I remove the handful of little, non-invasive modifications that help pythondialog work better with `Xdialog`_, I don't really support the latter. I test everything with dialog, and nothing with Xdialog. That being said, here is the *old* text of this section (from 2004), in case you are still interested: Starting with 2.06, there is an "Xdialog" compatibility mode that you can use if you want pythondialog to run the graphical Xdialog program (which *should* be found under http://xdialog.free.fr/) instead of dialog (text-mode, based on the ncurses library). The primary supported platform is still dialog, but as long as only small modifications are enough to make pythondialog work with Xdialog, I am willing to support Xdialog if people are interested in it (which turned out to be the case for Xdialog). The demo.py from pythondialog 2.06 has been tested with Xdialog 2.0.6 and found to work well (barring Xdialog's annoying behaviour with the file selection dialog box). Whiptail, anyone? ----------------- Well, pythondialog seems not to work very well with whiptail. The reason is that whiptail is not compatible with dialog anymore. Although you can tell pythondialog the program you want it to invoke, only programs that are mostly dialog-compatible are supported. History ------- pythondialog was originally written by Robb Shecter. Sultanbek Tezadov added some features to it (mainly the first gauge implementation, I guess). Florent Rougon rewrote most parts of the program to make it more robust and flexible so that it can give access to most features of the dialog program. Peter Åstrand took over maintainership between 2004 and 2009, with particular care for the `Xdialog`_ support. Florent Rougon took over maintainership again starting from 2009... .. # Local Variables: # coding: utf-8 # fill-column: 72 # End: python2-pythondialog-3.3.0/INSTALL0000644000175000001440000001343212531555223016615 0ustar flousers00000000000000INSTALLATION ============ pythondialog is packaged with Distutils. With the current state of Python packaging and installation tools, there are several ways to install the Python 2 backport of pythondialog from source. Probably, the easiest and cleanest method at this date (April 2015) is to use pip, possibly inside a virtual environment created with virtualenv or venv.py/pyvenv (at the time of this writing, venv.py/pyvenv is only available for Python 3). Typically, assuming you have a working pip setup (see below), you just have to run one of the following commands: pip install python2-pythondialog (which normally installs from PyPI) or pip install /path/to/python2-pythondialog-X.Y.Z.tar.gz or pip install https://url/to/python2-pythondialog-X.Y.Z.tar.gz or pip install http://url/to/python2-pythondialog-X.Y.Z.tar.gz Notes: - old versions of pip don't support https; - upgrades can be done by passing '--upgrade' or '-U' to the 'pip install' command; please refer to the pip documentation for details. Uninstallation should be as easy as: pip uninstall python2-pythondialog For more information about pip, venv.py/pyvenv and virtualenv, you can visit the following pages: So, what is a "working pip setup"? ---------------------------------- What I call a "working pip setup" here is a setup where a command that is typically something like 'pip', 'pip2' or 'pip2.7' (for a Python 2.7 installation) can be run to safely install, upgrade and remove packages into or from a particular Python installation. Normally, a given 'pip' executable is tied to a particular Python installation that can be discovered by running 'pip --version' (or 'pip2 --version', etc., depending on the particular 'pip' executable name; for sanity's sake, we'll assume 'pip' in the rest of this document). For instance, the following would indicate a Python 2.7 installation based at /some/path: % pip --version pip 1.5.6 from /some/path/lib/python2.7/site-packages (python 2.7) In general, it is safe to run 'pip' from a Python interpreter you installed yourself without a Linux package manager or similar. It is also safe if the Python interpreter running 'pip' lives in a virtual environment created with virtualenv or venv.py/pyvenv. The one case where you should probably avoid using a given 'pip' executable is if it runs directly under a system Python (typically, /usr/bin/python or /usr/bin/pythonX.Y) installed with the package manager of your Linux distribution (or any other OS, for that matter): in such a situation, 'pip' might, if run with superuser privileges, mess with files under the control of the OS package manager (i.e., 'dpkg' on Debian and its derivatives, 'rpm' on Redhat and Suse, etc.). Depending on how you installed Python, you may need superuser privileges to install, upgrade or remove Python packages inside that installation. For instance, this will be the case if you compiled Python yourself and performed the installation step ('make install') as root. However, running 'pip' with superuser privileges should not be necessary nor desirable inside a virtual environment created with virtualenv or venv.py/pyvenv. Old way, without pip -------------------- The following instructions explain how to install the Python 2 backport of pythondialog directly from its setup.py, without using pip. If possible, the method based on pip is preferable because it makes uninstallation standard and easy. Here are the steps: - make this file's directory your shell's current directory - optionally edit setup.cfg (cf. the "Installing Python Modules" chapter of the Python documentation). - a) 1) type: python2 ./setup.py build (depending on your system and the Python version you want to install for, you may have to replace "python2" with "python" or, for instance, "python2.7") 2) then, as root (after replacing /usr/local with the actual installation prefix you want to use): python2 ./setup.py install --prefix=/usr/local \ --record /path/to/foo where foo is a file of your choice which will contain the list of all files installed on your system by the preceding command. This will make uninstallation easy (you could ommit the "--record /path/to/foo", but uninstallation could not be automated, then). OR b) type, as root (after replacing the installation prefix): python2 ./setup.py install --prefix=/usr/local \ --record /path/to/foo This will automatically build the package before installing it. The observations made in a) also apply here. If this default installation is not what you wish, please read the Distutils documentation which should be available in the "Installing Python Modules" chapter of the Python documentation. UNINSTALLATION ============== If you installed the Python 2 backport of pythondialog with pip, you can uninstall it with the following command: pip uninstall python2-pythondialog (which should be run under the same account that was used to run the "pip install" command) Otherwise, if you have followed the old installation procedure, you have a /path/to/foo file that contains all the files the installation process put on your system. Great! All you have to do is: while read file; do rm -f "$file"; done < /path/to/foo under a POSIX-style shell and with appropriate privileges (maybe root, depending on how you installed the Python 2 backport of pythondialog). Note: this will handle file names with spaces correctly, unlike the simpler "rm -f $(cat /path/to/foo)". # Local Variables: # coding: utf-8 # fill-column: 72 # End: python2-pythondialog-3.3.0/setup.cfg0000644000175000001440000000007112235663765017414 0ustar flousers00000000000000[sdist] formats=bztar,gztar [bdist] formats=bztar,gztar python2-pythondialog-3.3.0/MANIFEST.in0000644000175000001440000000036512507771445017334 0ustar flousers00000000000000include README.rst README.distributors COPYING COPYING.Sphinx INSTALL AUTHORS include TODO ChangeLog MANIFEST.in recursive-include examples *.py recursive-include doc *.py *.txt *.rst *.png Makefile prune doc/screenshots/thumbs prune doc/_build python2-pythondialog-3.3.0/examples/0000755000175000001440000000000012531573210017373 5ustar flousers00000000000000python2-pythondialog-3.3.0/examples/demo.py0000755000175000001440000021601112531564544020707 0ustar flousers00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # demo.py --- Demonstration program and cheap test suite for pythondialog # # Copyright (C) 2002-2010, 2013, 2014, 2015 Florent Rougon # Copyright (C) 2000 Robb Shecter, Sultanbek Tezadov # # This program is in the public domain. """Demonstration program for pythondialog. This is a program demonstrating most of the possibilities offered by the pythondialog module (which is itself a Python interface to the well-known dialog utility, or any other program compatible with dialog). Executive summary ----------------- If you are looking for a very simple example of pythondialog usage, short and straightforward, please refer to simple_example.py. The file you are now reading serves more as a demonstration of what can be done with pythondialog and as a cheap test suite than as a first time tutorial. However, it can also be used to learn how to invoke the various widgets. The following paragraphs explain what you should keep in mind if you read it for this purpose. Most of the code in the MyApp class (which defines the actual contents of the demo) relies on a class called MyDialog implemented here that: 1. wraps all widget-producing calls in a way that automatically spawns a "confirm quit" dialog box if the user presses the Escape key or chooses the Cancel button, and then redisplays the original widget if the user doesn't actually want to quit; 2. provides a few additional dialog-related methods and convenience wrappers. The handling in (1) is completely automatic, implemented with MyDialog.__getattr__() returning decorated versions of the widget-producing methods of dialog.Dialog. Therefore, most of the demo can be read as if the module-level 'd' attribute were a dialog.Dialog instance whereas it is actually a MyDialog instance. The only meaningful difference is that MyDialog.() will never return a CANCEL or ESC code (attributes of 'd', or more generally of dialog.Dialog). The reason is that these return codes are automatically handled by the MyDialog.__getattr__() machinery to display the "confirm quit" dialog box. In some cases (e.g., fselect_demo()), I wanted the "Cancel" button to perform a specific action instead of spawning the "confirm quit" dialog box. To achieve this, the widget is invoked using dialog.Dialog. instead of MyDialog., and the return code is handled in a semi-manual way. A prominent feature that needs such special-casing is the yesno widget, because the "No" button corresponds to the CANCEL exit code, which in general must not be interpreted as an attempt to quit the program! To sum it up, you can read most of the code in the MyApp class (which defines the actual contents of the demo) as if 'd' were a dialog.Dialog instance. Just keep in mind that there is a little magic behind the scenes that automatically handles the CANCEL and ESC Dialog exit codes, which wouldn't be the case if 'd' were a dialog.Dialog instance. For a first introduction to pythondialog with simple stuff and absolutely no magic, please have a look at simple_example.py. """ from __future__ import division from __future__ import with_statement, unicode_literals, print_function import sys, os, locale, stat, time, getopt, subprocess, traceback, textwrap import pprint import dialog from dialog import DialogBackendVersion from io import open import atexit progname = os.path.basename(sys.argv[0]) progversion = "0.11-py2" version_blurb = """Demonstration program and cheap test suite for pythondialog. Copyright (C) 2002-2010, 2013, 2014, 2015 Florent Rougon Copyright (C) 2000 Robb Shecter, Sultanbek Tezadov This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.""" default_debug_filename = "pythondialog.debug" usage = """Usage: {progname} [option ...] Demonstration program and cheap test suite for pythondialog. Options: -t, --test-suite test all widgets; implies '--fast' -f, --fast fast mode (e.g., makes the gauge demo run faster) --debug enable logging of all dialog command lines --debug-file=FILE where to write debug information (default: {debug_file} in the current directory) -E, --debug-expand-file-opt expand the '--file' options in the debug file generated by '--debug' --help display this message and exit --version output version information and exit""".format( progname=progname, debug_file=default_debug_filename) # Global parameters # Set two global variables u_stdout and u_stderr referencing text streams, # similar to sys.stdout and sys.stderr in Python 3. for stream_name in ("stdout", "stderr"): _bstream = getattr(sys, stream_name) if hasattr(_bstream, b"encoding") and getattr(_bstream, b"encoding"): _encoding = getattr(_bstream, b"encoding") else: _encoding = locale.getpreferredencoding() _tstream = open(_bstream.fileno(), "w", encoding=_encoding, closefd=False) globals()["u_" + stream_name] = _tstream # Important, especially when the stream is not connected to a tty, for # instance when piping the output or redirecting it to a file. Indeed, # '_tstream' is fully buffered in such a case. atexit.register(lambda stream: stream.close(), _tstream) del _encoding, _bstream, _tstream params = {} # We'll use a module-level attribute 'd' ("global") to store the MyDialog # instance that is used throughout the demo. This object could alternatively be # passed to the MyApp constructor and stored there as a class or instance # attribute. However, for the sake of readability, we'll simply use a global # (d.msgbox(...) versus self.d.msgbox(...), etc.). d = None tw = textwrap.TextWrapper(width=78, break_long_words=False, break_on_hyphens=True) from textwrap import dedent try: from textwrap import indent except ImportError: try: callable # Normally, should be __builtins__.callable except NameError: # Python 3.1 doesn't have the 'callable' builtin function. Let's # provide ours. def callable(f): return hasattr(f, '__call__') def indent(text, prefix, predicate=None): l = [] for line in text.splitlines(True): if (callable(predicate) and predicate(line)) \ or (not callable(predicate) and predicate) \ or (predicate is None and line.strip()): line = prefix + line l.append(line) return ''.join(l) class MyDialog(object): """Wrapper class for dialog.Dialog. This class behaves similarly to dialog.Dialog. The differences are that: 1. MyDialog wraps all widget-producing methods in a way that automatically spawns a "confirm quit" dialog box if the user presses the Escape key or chooses the Cancel button, and then redisplays the original widget if the user doesn't actually want to quit. 2. MyDialog provides a few additional dialog-related methods and convenience wrappers. Please refer to the module docstring and to the particular methods for more details. """ def __init__(self, Dialog_instance): self.dlg = Dialog_instance def check_exit_request(self, code, ignore_Cancel=False): if code == self.CANCEL and ignore_Cancel: # Ignore the Cancel button, i.e., don't interpret it as an exit # request; instead, let the caller handle CANCEL himself. return True if code in (self.CANCEL, self.ESC): button_name = { self.CANCEL: "Cancel", self.ESC: "Escape" } msg = "You pressed {0} in the last dialog box. Do you want " \ "to exit this demo?".format(button_name[code]) # 'self.dlg' instead of 'self' here, because we want to use the # original yesno() method from the Dialog class instead of the # decorated method returned by self.__getattr__(). if self.dlg.yesno(msg) == self.OK: sys.exit(0) else: # "No" button chosen, or ESC pressed return False # in the "confirm quit" dialog else: return True def widget_loop(self, method): """Decorator to handle eventual exit requests from a Dialog widget. method -- a dialog.Dialog method that returns either a Dialog exit code, or a sequence whose first element is a Dialog exit code (cf. the docstring of the Dialog class in dialog.py) Return a wrapper function that behaves exactly like 'method', except for the following point: If the Dialog exit code obtained from 'method' is CANCEL or ESC (attributes of dialog.Dialog), a "confirm quit" dialog is spawned; depending on the user choice, either the program exits or 'method' is called again, with the same arguments and same handling of the exit status. In other words, the wrapper function builds a loop around 'method'. The above condition on 'method' is satisfied for all dialog.Dialog widget-producing methods. More formally, these are the methods defined with the @widget decorator in dialog.py, i.e., that have an "is_widget" attribute set to True. """ # One might want to use @functools.wraps here, but since the wrapper # function is very likely to be used only once and then # garbage-collected, this would uselessly add a little overhead inside # __getattr__(), where widget_loop() is called. def wrapper(*args, **kwargs): while True: res = method(*args, **kwargs) if hasattr(method, "retval_is_code") \ and getattr(method, "retval_is_code"): code = res else: code = res[0] if self.check_exit_request(code): break return res return wrapper def __getattr__(self, name): # This is where the "magic" of this class originates from. # Please refer to the module and self.widget_loop() # docstrings if you want to understand the why and the how. obj = getattr(self.dlg, name) if hasattr(obj, "is_widget") and getattr(obj, "is_widget"): return self.widget_loop(obj) else: return obj def clear_screen(self): # This program comes with ncurses program = "clear" try: p = subprocess.Popen([program], shell=False, stdout=None, stderr=None, close_fds=True) retcode = p.wait() except os.error, e: self.msgbox("Unable to execute program '%s': %s." % (program, e.strerror), title="Error") return False if retcode > 0: msg = "Program %s returned exit status %d." % (program, retcode) elif retcode < 0: msg = "Program %s was terminated by signal %d." % (program, -retcode) else: return True self.msgbox(msg) return False def _Yesno(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return the same exit code as would return dialog.Dialog.yesno(), except for ESC which is handled as in the rest of the demo, i.e. make it spawn the "confirm quit" dialog. """ # self.yesno() automatically spawns the "confirm quit" dialog if ESC or # the "No" button is pressed, because of self.__getattr__(). Therefore, # we have to use self.dlg.yesno() here and call # self.check_exit_request() manually. while True: code = self.dlg.yesno(*args, **kwargs) # If code == self.CANCEL, it means the "No" button was chosen; # don't interpret this as a wish to quit the program! if self.check_exit_request(code, ignore_Cancel=True): break return code def Yesno(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return True if "Yes" was chosen, False if "No" was chosen, and handle ESC as in the rest of the demo, i.e. make it spawn the "confirm quit" dialog. """ return self._Yesno(*args, **kwargs) == self.dlg.OK def Yesnohelp(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return "yes", "no", "extra" or "help" depending on the button that was pressed to close the dialog. ESC is handled as in the rest of the demo, i.e. it spawns the "confirm quit" dialog. """ kwargs["help_button"] = True code = self._Yesno(*args, **kwargs) d = { self.dlg.OK: "yes", self.dlg.CANCEL: "no", self.dlg.EXTRA: "extra", self.dlg.HELP: "help" } return d[code] # Dummy context manager to make sure the debug file is closed on exit, be it # normal or abnormal, and to avoid having two code paths, one for normal mode # and one for debug mode. class DummyContextManager(object): def __enter__(self): return self def __exit__(self, *exc): return False class MyApp(object): def __init__(self): # The MyDialog instance 'd' could be passed via the constructor and # stored here as a class or instance attribute. However, for the sake # of readability, we'll simply use a module-level attribute ("global") # (d.msgbox(...) versus self.d.msgbox(...), etc.). global d # If you want to use Xdialog (pathnames are also OK for the 'dialog' # argument), you can use: # dialog.Dialog(dialog="Xdialog", compat="Xdialog") self.Dialog_instance = dialog.Dialog(dialog="dialog") # See the module docstring at the top of the file to understand the # purpose of MyDialog. d = MyDialog(self.Dialog_instance) backtitle = "pythondialog demo" d.set_background_title(backtitle) # These variables take the background title into account self.max_lines, self.max_cols = d.maxsize(backtitle=backtitle) self.demo_context = self.setup_debug() # Warn if the terminal is smaller than this size self.min_rows, self.min_cols = 24, 80 self.term_rows, self.term_cols, self.backend_version = \ self.get_term_size_and_backend_version() def setup_debug(self): if params["debug"]: debug_file = open(params["debug_filename"], "w") d.setup_debug(True, file=debug_file, expand_file_opt=params["debug_expand_file_opt"]) return debug_file else: return DummyContextManager() def get_term_size_and_backend_version(self): # Avoid running ' --print-version' every time we need the # version backend_version = d.cached_backend_version if not backend_version: print(tw.fill( "Unable to retrieve the version of the dialog-like backend. " "Not running cdialog?") + "\nPress Enter to continue.", file=u_stderr) raw_input() term_rows, term_cols = d.maxsize(use_persistent_args=False) if term_rows < self.min_rows or term_cols < self.min_cols: print(tw.fill(dedent("""\ Your terminal has less than {0} rows or less than {1} columns; you may experience problems with the demo. You have been warned.""" .format(self.min_rows, self.min_cols))) + "\nPress Enter to continue.", file=u_stdout) raw_input() return (term_rows, term_cols, backend_version) def run(self): with self.demo_context: if params["testsuite_mode"]: # Show the additional widgets before the "normal demo", so that # I can test new widgets quickly and simply hit Ctrl-C once # they've been shown. self.additional_widgets() # "Normal" demo self.demo() def demo(self): d.msgbox("""\ Hello, and welcome to the pythondialog {pydlg_version} demonstration program. You can scroll through this dialog box with the Page Up and Page Down keys. \ Please note that some of the dialogs will not work, and cause the demo to \ stop, if your terminal is too small. The recommended size is (at least) \ {min_rows} rows by {min_cols} columns. This script is being run by a Python interpreter identified as follows: {py_version} The dialog-like program displaying this message box reports version \ {backend_version} and a terminal size of {rows} rows by {cols} columns.""" .format( pydlg_version=dialog.__version__, backend_version=self.backend_version, py_version=indent(sys.version, " "), rows=self.term_rows, cols=self.term_cols, min_rows=self.min_rows, min_cols=self.min_cols), width=60, height=17) self.progressbox_demo_with_file_descriptor() # First dialog version where the programbox widget works fine if self.dialog_version_check("1.2-20140112"): self.programbox_demo() self.infobox_demo() self.gauge_demo() answer = self.yesno_demo(with_help=True) self.msgbox_demo(answer) self.textbox_demo() name = self.inputbox_demo_with_help() size, weight, city, state, country, last_will1, last_will2, \ last_will3, last_will4, secret_code = self.mixedform_demo() self.form_demo_with_help() favorite_day = self.menu_demo(name, city, state, country, size, weight, secret_code, last_will1, last_will2, last_will3, last_will4) if self.dialog_version_check("1.2-20130902", "the menu demo with help facilities", explain=True): self.menu_demo_with_help() toppings = self.checklist_demo() if self.dialog_version_check("1.2-20130902", "the checklist demo with help facilities", explain=True): self.checklist_demo_with_help() sandwich = self.radiolist_demo() if self.dialog_version_check("1.2-20121230", "the rangebox demo", explain=True): nb_engineers = self.rangebox_demo() else: nb_engineers = None if self.dialog_version_check("1.2-20121230", "the buildlist demo", explain=True): desert_island_stuff = self.buildlist_demo() else: desert_island_stuff = None if self.dialog_version_check("1.2-20130902", "the buildlist demo with help facilities", explain=True): self.buildlist_demo_with_help() date = self.calendar_demo_with_help() time_ = self.timebox_demo() password = self.passwordbox_demo() self.scrollbox_demo(name, favorite_day, toppings, sandwich, nb_engineers, desert_island_stuff, date, time_, password) if self.dialog_version_check("1.2-20121230", "the treeview demo", explain=True): if self.dialog_version_check("1.2-20130902"): self.treeview_demo_with_help() else: self.treeview_demo() self.mixedgauge_demo() self.editbox_demo("/etc/passwd") self.inputmenu_demo() d.msgbox("""\ Haha. You thought it was over. Wrong. Even more fun is to come! Now, please select a file you would like to see growing (or not...).""", width=75) # Looks nicer if the screen is not completely filled by the widget, # hence the -1. self.tailbox_demo(height=self.max_lines-1, width=self.max_cols) directory = self.dselect_demo() timeout = 2 if params["fast_mode"] else 20 self.pause_demo(timeout) d.clear_screen() if not params["fast_mode"]: # Rest assured, this is not necessary in any way: it is only a # psychological trick to try to give the impression of a reboot # (cf. pause_demo(); would be even nicer with a "visual bell")... time.sleep(1) def additional_widgets(self): # Requires a careful choice of the file to be of any interest self.progressbox_demo_with_filepath() # This can be confusing without any pause if the user specified a # regular file. time.sleep(1 if params["fast_mode"] else 2) # programbox_demo is fine right after # progressbox_demo_with_file_descriptor in demo(), but there was a # little bug in dialog that made the first two lines disappear too # early. This bug has been fixed in version 1.2-20140112, therefore # we'll run the programbox_demo as part of the main demo if the dialog # version is >= than this one, otherwise we'll keep it here. if self.dialog_version_check("1.1-20110302", "the programbox demo", explain=True): # First dialog version where the programbox widget works fine if not self.dialog_version_check("1.2-20140112"): self.programbox_demo() # Almost identical to mixedform (mixedform being more powerful). Also, # there is now form_demo_with_help() which uses the form widget. self.form_demo() # Almost identical to passwordbox self.passwordform_demo() def dialog_version_check(self, version_string, feature="", **_3to2kwargs): if 'explain' in _3to2kwargs: explain = _3to2kwargs['explain']; del _3to2kwargs['explain'] else: explain = False if 'start' in _3to2kwargs: start = _3to2kwargs['start']; del _3to2kwargs['start'] else: start = "" if d.compat != "dialog": # non-dialog implementations are not affected by # 'dialog_version_check'. return True minimum_version = DialogBackendVersion.fromstring(version_string) res = (d.cached_backend_version >= minimum_version) if explain and not res: self.too_old_dialog_version(feature=feature, start=start, min=version_string) return res def too_old_dialog_version(self, feature="", **_3to2kwargs): if 'min' in _3to2kwargs: min = _3to2kwargs['min']; del _3to2kwargs['min'] else: min = None if 'start' in _3to2kwargs: start = _3to2kwargs['start']; del _3to2kwargs['start'] else: start = "" assert (feature and not start) or (not feature and start), \ (feature, start) if not start: start = "Skipping {0},".format(feature) d.msgbox( "{start} because it requires dialog {min} or later; " "however, it appears that you are using version {used}.".format( start=start, min=min, used=d.cached_backend_version), width=60, height=9, title="Demo skipped") def progressbox_demo_with_filepath(self): widget = "progressbox" # First, ask the user for a file (possibly FIFO) d.msgbox(self.FIFO_HELP(widget), width=72, height=20) path = self.fselect_demo(widget, allow_FIFOs=True, title="Please choose a file to be shown as " "with 'tail -f'") if path is None: # User chose to abort return else: d.progressbox(file_path=path, text="You can put some header text here", title="Progressbox example with a file path") def progressboxoid(self, widget, func_name, text, **kwargs): # Since this is just a demo, I will not try to catch os.error exceptions # in this function, for the sake of readability. read_fd, write_fd = os.pipe() child_pid = os.fork() if child_pid == 0: try: # We are in the child process. We MUST NOT raise any exception. # No need for this one in the child process os.close(read_fd) # Python file objects are easier to use than file descriptors. # For a start, you don't have to check the number of bytes # actually written every time... # "buffering = 1" means wfile is going to be line-buffered with open(write_fd, mode="w", buffering=1) as wfile: for line in text.split('\n'): wfile.write(line + '\n') time.sleep(0.02 if params["fast_mode"] else 1.2) os._exit(0) except: os._exit(127) # We are in the father process. No need for write_fd anymore. os.close(write_fd) # Call d.progressbox() if widget == "progressbox" # d.programbox() if widget == "programbox" # etc. getattr(d, widget)( fd=read_fd, title="{0} example with a file descriptor".format(widget), **kwargs) # Now that the progressbox is over (second child process, running the # dialog-like program), we can wait() for the first child process. # Otherwise, we could have a deadlock in case the pipe gets full, since # dialog wouldn't be reading it. exit_info = os.waitpid(child_pid, 0)[1] if os.WIFEXITED(exit_info): exit_code = os.WEXITSTATUS(exit_info) elif os.WIFSIGNALED(exit_info): d.msgbox("%s(): first child process terminated by signal %d" % (func_name, os.WTERMSIG(exit_info))) else: assert False, "How the hell did we manage to get here?" if exit_code != 0: d.msgbox("%s(): first child process ended with exit status %d" % (func_name, exit_code)) def progressbox_demo_with_file_descriptor(self): func_name = "progressbox_demo_with_file_descriptor" text = """\ A long time ago in a galaxy far, far away... A NEW HOPE It was a period of intense sucking. Graphical toolkits for Python were all nice and clean, but they were, well, graphical. And as every one knows, REAL PROGRAMMERS ALWAYS WORK ON VT-100 TERMINALS. In text mode. Besides, those graphical toolkits were usually too complex for simple programs, so most FLOSS geeks ended up writing command-line tools except when they really needed the full power of mainstream graphical toolkits, such as Qt, GTK+ and wxWidgets. But... thanks to people like Thomas E. Dickey, there are now at our disposal several free software command-line programs, such as dialog, that allow easy building of graphically-oriented interfaces in text-mode terminals. These are good for tasks where line-oriented interfaces are not well suited, as well as for the increasingly common type who runs away as soon as he sees something remotely resembling a command line. But this is not for Python! I want my poney! Seeing this unacceptable situation, Robb Shecter had the idea, back in the olden days of Y2K (when the world was supposed to suddenly collapse, remember?), to wrap a dialog interface into a Python module called dialog.py. pythondialog was born. Florent Rougon, who was looking for something like that in 2002, found the idea rather cool and improved the module during the following years...""" + 15*'\n' return self.progressboxoid("progressbox", func_name, text) def programbox_demo(self): func_name = "programbox_demo" text = """\ The 'progressbox' widget has a little brother called 'programbox' that displays text read from a pipe and only adds an OK button when the pipe indicates EOF (End Of File). This can be used to display the output of some external program. This will be done right away if you choose "Yes" in the next dialog. This choice will cause 'find /usr/bin' to be run with subprocess.Popen() and the output to be displayed, via a pipe, in a 'programbox' widget.""" self.progressboxoid("programbox", func_name, text) if d.Yesno("Do you want to run 'find /usr/bin' in a programbox widget?"): try: devnull = subprocess.DEVNULL except AttributeError: # Python < 3.3 devnull_context = devnull = open(os.devnull, "wb") else: devnull_context = DummyContextManager() args = ["find", "/usr/bin"] with devnull_context: p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=devnull, close_fds=True) # One could use title=... instead of text=... to put the text # in the title bar. d.programbox(fd=p.stdout.fileno(), text="Example showing the output of a command " "with programbox") retcode = p.wait() # Context manager support for subprocess.Popen objects requires # Python 3.2 or later. p.stdout.close() return retcode else: return None def infobox_demo(self): d.infobox("One moment, please. Just wasting some time here to " "show you the infobox...") time.sleep(0.5 if params["fast_mode"] else 4.0) def gauge_demo(self): d.gauge_start("Progress: 0%", title="Still testing your patience...") for i in xrange(1, 101): if i < 50: d.gauge_update(i, "Progress: {0}%".format(i), update_text=True) elif i == 50: d.gauge_update(i, "Over {0}%. Good.".format(i), update_text=True) elif i == 80: d.gauge_update(i, "Yeah, this boring crap will be over Really " "Soon Now.", update_text=True) else: d.gauge_update(i) time.sleep(0.01 if params["fast_mode"] else 0.1) d.gauge_stop() def mixedgauge_demo(self): for i in xrange(1, 101, 20): d.mixedgauge("This is the 'text' part of the mixedgauge\n" "and this is a forced new line.", title="'mixedgauge' demo", percent=int(round(72+28*i/100)), elements=[("Task 1", "Foobar"), ("Task 2", 0), ("Task 3", 1), ("Task 4", 2), ("Task 5", 3), ("", 8), ("Task 6", 5), ("Task 7", 6), ("Task 8", 7), ("", ""), # 0 is the dialog special code for # "Succeeded", so these must not be equal to # zero! That is why I made the range() above # start at 1. ("Task 9", -max(1, 100-i)), ("Task 10", -i)]) time.sleep(0.5 if params["fast_mode"] else 2) def yesno_demo(self, with_help=True): if not with_help: # Simple version, without the "Help" button (the return value is # True or False): return d.Yesno("\nDo you like this demo?", yes_label="Yes, I do", no_label="No, I do not", height=10, width=40, title="An Important Question") # 'yesno' dialog box with custom Yes, No and Help buttons while True: reply = d.Yesnohelp("\nDo you like this demo?", yes_label="Yes, I do", no_label="No, I do not", help_label="Please help me!", height=10, width=60, title="An Important Question") if reply == "yes": return True elif reply == "no": return False elif reply == "help": d.msgbox("""\ I can hear your cry for help, and would really like to help you. However, I \ am afraid there is not much I can do for you here; you will have to decide \ for yourself on this matter. Keep in mind that you can always rely on me. \ You have all my support, be brave!""", height=15, width=60, title="From Your Faithful Servant") else: assert False, "Unexpected reply from MyDialog.Yesnohelp(): " \ + repr(reply) def msgbox_demo(self, answer): if answer: msg = "Excellent! Press OK to see its source code (or another " \ "file if not in the correct directory)." else: msg = "Well, feel free to send your complaints to /dev/null!\n\n" \ "Sincerely yours, etc." d.msgbox(msg, width=50) def textbox_demo(self): # Better use the absolute path for displaying in the dialog title filepath = os.path.abspath(__file__) code = d.textbox(filepath, width=76, title="Contents of {0}".format(filepath), extra_button=True, extra_label="Stop it now!") if code == "extra": d.msgbox("Your wish is my command, Master.", width=40, title="Exiting") sys.exit(0) def inputbox_demo(self): code, answer = d.inputbox("What's your name?", init="Snow White") return answer def inputbox_demo_with_help(self): init_str = "Snow White" while True: code, answer = d.inputbox("What's your name?", init=init_str, title="'inputbox' demo", help_button=True) if code == "help": d.msgbox("Help from the 'inputbox' demo. The string entered " "so far is '{0}'.".format(answer), title="'inputbox' demo") init_str = answer else: break return answer def form_demo(self): elements = [ ("Size (cm)", 1, 1, "175", 1, 20, 4, 3), ("Weight (kg)", 2, 1, "85", 2, 20, 4, 3), ("City", 3, 1, "Groboule-les-Bains", 3, 20, 15, 25), ("State", 4, 1, "Some Lost Place", 4, 20, 15, 25), ("Country", 5, 1, "Nowhereland", 5, 20, 15, 20), ("My", 6, 1, "I hereby declare that, upon leaving this " "world, all", 6, 20, 0, 0), ("Very", 7, 1, "my fortune shall be transferred to Florent " "Rougon's", 7, 20, 0, 0), ("Last", 8, 1, "bank account number 000 4237 4587 32454/78 at " "Banque", 8, 20, 0, 0), ("Will", 9, 1, "Cantonale Vaudoise, Lausanne, Switzerland.", 9, 20, 0, 0) ] code, fields = d.form("Please fill in some personal information:", elements, width=77) return fields def form_demo_with_help(self, item_help=True): # This function is slightly complex because it provides help support # with 'help_status=True', and optionally also with 'item_help=True' # together with 'help_tags=True'. For a very simple version (without # any help support), see form_demo() above. minver_for_helptags = "1.2-20130902" if item_help: if self.dialog_version_check(minver_for_helptags): complement = """'item_help=True' is also used in conjunction \ with 'help_tags=True' in order to display per-item help at the bottom of the \ widget.""" else: item_help = False complement = """'item_help=True' is not used, because to make \ it consistent with the 'item_help=False' case, dialog {min} or later is \ required (for the --help-tags option); however, it appears that you are using \ version {used}.""".format(min=minver_for_helptags, used=d.cached_backend_version) else: complement = """'item_help=True' is not used, because it has \ been disabled; therefore, there is no per-item help at the bottom of the \ widget.""" text = """\ This is a demo for the 'form' widget, which is similar to 'mixedform' but \ a bit simpler in that it has no notion of field type (to hide contents such \ as passwords). This demo uses 'help_button=True' to provide a Help button \ and 'help_status=True' to allow redisplaying the widget in the same state \ when leaving the help dialog. {complement}""".format(complement=complement) elements = [ ("Fruit", 1, 8, "mirabelle plum", 1, 20, 18, 30), ("Color", 2, 8, "yellowish", 2, 20, 18, 30), ("Flavor", 3, 8, "sweet when ripe", 3, 20, 18, 30), ("Origin", 4, 8, "Lorraine", 4, 20, 18, 30) ] more_kwargs = {} if item_help: more_kwargs.update({ "item_help": True, "help_tags": True }) elements = [ list(l) + [ "Help text for item {0}".format(i+1) ] for i, l in enumerate(elements) ] while True: code, t = d.form(text, elements, height=20, width=65, title="'form' demo with help facilities", help_button=True, help_status=True, **more_kwargs) if code == "help": label, status, elements = t d.msgbox("You asked for help concerning the field labelled " "'{0}'.".format(label), width=50) else: # 't' contains the list of items as filled by the user break answers = '\n'.join(t) d.msgbox("Your answers:\n\n{0}".format(indent(answers, " ")), width=0, height=0, title="'form' demo with help facilities", no_collapse=True) return t def mixedform_demo(self): HIDDEN = 0x1 READ_ONLY = 0x2 elements = [ ("Size (cm)", 1, 1, "175", 1, 20, 4, 3, 0x0), ("Weight (kg)", 2, 1, "85", 2, 20, 4, 3, 0x0), ("City", 3, 1, "Groboule-les-Bains", 3, 20, 15, 25, 0x0), ("State", 4, 1, "Some Lost Place", 4, 20, 15, 25, 0x0), ("Country", 5, 1, "Nowhereland", 5, 20, 15, 20, 0x0), ("My", 6, 1, "I hereby declare that, upon leaving this " "world, all", 6, 20, 54, 0, READ_ONLY), ("Very", 7, 1, "my fortune shall be transferred to Florent " "Rougon's", 7, 20, 54, 0, READ_ONLY), ("Last", 8, 1, "bank account number 000 4237 4587 32454/78 at " "Banque", 8, 20, 54, 0, READ_ONLY), ("Will", 9, 1, "Cantonale Vaudoise, Lausanne, Switzerland.", 9, 20, 54, 0, READ_ONLY), ("Read-only field...", 10, 1, "... that doesn't go into the " "output list", 10, 20, 0, 0, 0x0), ("\/3r`/ 53kri7 (0d3", 11, 1, "", 11, 20, 15, 20, HIDDEN) ] code, fields = d.mixedform( "Please fill in some personal information:", elements, width=77) return fields def passwordform_demo(self): elements = [ ("Secret field 1", 1, 1, "", 1, 20, 12, 0), ("Secret field 2", 2, 1, "", 2, 20, 12, 0), ("Secret field 3", 3, 1, "Providing a non-empty initial content " "(like this) for an invisible field can be very confusing!", 3, 20, 30, 160)] code, fields = d.passwordform( "Please enter all your secret passwords.\n\nOn purpose here, " "nothing is echoed when you type in the passwords. If you want " "asterisks, use the 'insecure' keyword argument as in the " "passwordbox demo.", elements, width=77, height=15, title="Passwordform demo") d.msgbox("Secret password 1: '%s'\n" "Secret password 2: '%s'\n" "Secret password 3: '%s'" % tuple(fields), width=60, height=20, title="The Whole Truth Now Revealed") return fields def menu_demo(self, name, city, state, country, size, weight, secret_code, last_will1, last_will2, last_will3, last_will4): text = """\ Hello, %s from %s, %s, %s, %s cm, %s kg. Thank you for giving us your Very Secret Code '%s'. As expressly stated in the previous form, your Last Will reads: "%s" All that was very interesting, thank you. However, in order to know you \ better and provide you with the best possible customer service, we would \ still need to know your favorite day of the week. Please indicate your \ preference below.""" \ % (name, city, state, country, size, weight, secret_code, ' '.join([last_will1, last_will2, last_will3, last_will4])) code, tag = d.menu(text, height=23, width=76, choices=[("Monday", "Being the first day of the week..."), ("Tuesday", "Comes after Monday"), ("Wednesday", "Before Thursday day"), ("Thursday", "Itself after Wednesday"), ("Friday", "The best day of all"), ("Saturday", "Well, I've had enough, thanks"), ("Sunday", "Let's rest a little bit")]) return tag def menu_demo_with_help(self): text = """Sample 'menu' dialog box with help_button=True and \ item_help=True.""" while True: code, tag = d.menu(text, height=16, width=60, choices=[("Tag 1", "Item 1", "Help text for item 1"), ("Tag 2", "Item 2", "Help text for item 2"), ("Tag 3", "Item 3", "Help text for item 3"), ("Tag 4", "Item 4", "Help text for item 4"), ("Tag 5", "Item 5", "Help text for item 5"), ("Tag 6", "Item 6", "Help text for item 6"), ("Tag 7", "Item 7", "Help text for item 7"), ("Tag 8", "Item 8", "Help text for item 8")], title="A menu with help facilities", help_button=True, item_help=True, help_tags=True) if code == "help": d.msgbox("You asked for help concerning the item identified by " "tag '{0}'.".format(tag), height=8, width=40) else: break d.msgbox("You have chosen the item identified by tag " "'{0}'.".format(tag), height=8, width=40) def checklist_demo(self): # We could put non-empty items here (not only the tag for each entry) code, tags = d.checklist(text="What sandwich toppings do you like?", height=15, width=54, list_height=7, choices=[("Catsup", "", False), ("Mustard", "", False), ("Pesto", "", False), ("Mayonnaise", "", True), ("Horse radish","", True), ("Sun-dried tomatoes", "", True)], title="Do you prefer ham or spam?", backtitle="And now, for something " "completely different...") return tags SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST = [ ("Tag 1", "Item 1", True, "Help text for item 1"), ("Tag 2", "Item 2", False, "Help text for item 2"), ("Tag 3", "Item 3", False, "Help text for item 3"), ("Tag 4", "Item 4", True, "Help text for item 4"), ("Tag 5", "Item 5", True, "Help text for item 5"), ("Tag 6", "Item 6", False, "Help text for item 6"), ("Tag 7", "Item 7", True, "Help text for item 7"), ("Tag 8", "Item 8", False, "Help text for item 8") ] def checklist_demo_with_help(self): text = """Sample 'checklist' dialog box with help_button=True, \ item_help=True and help_status=True.""" choices = self.SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST while True: code, t = d.checklist(text, height=0, width=0, list_height=0, choices=choices, title="A checklist with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True) if code == "help": tag, selected_tags, choices = t d.msgbox("You asked for help concerning the item identified " "by tag '{0}'.".format(tag), height=7, width=60) else: # 't' contains the list of tags corresponding to checked items break s = '\n'.join(t) d.msgbox("The tags corresponding to checked items are:\n\n" "{0}".format(indent(s, " ")), height=15, width=60, title="'checklist' demo with help facilities", no_collapse=True) def radiolist_demo(self): choices = [ ("Hamburger", "2 slices of bread, a steak...", False), ("Hotdog", "doesn't bite any more", False), ("Burrito", "no se lo que es", False), ("Doener", "Huh?", False), ("Falafel", "Erm...", False), ("Bagel", "Of course!", False), ("Big Mac", "Ah, that's easy!", True), ("Whopper", "Erm, sorry", False), ("Quarter Pounder", 'called "le Big Mac" in France', False), ("Peanut Butter and Jelly", "Well, that's your own business...", False), ("Grilled cheese", "And nothing more?", False) ] while True: code, t = d.radiolist( "What's your favorite kind of sandwich?", width=68, choices=choices, help_button=True, help_status=True) if code == "help": # Prepare to redisplay the radiolist in the same state as it # was before the user pressed the Help button. tag, selected, choices = t d.msgbox("You asked for help about something called '{0}'. " "Sorry, but I am quite incompetent in this matter." .format(tag)) else: # 't' is the chosen tag break return t def rangebox_demo(self): nb = 10 # initial value while True: code, nb = d.rangebox("""\ How many Microsoft(TM) engineers are needed to prepare such a sandwich? You can use the Up and Down arrows, Page Up and Page Down, Home and End keys \ to change the value; you may also use the Tab key, Left and Right arrows \ and any of the 0-9 keys to change a digit of the value.""", min=1, max=20, init=nb, extra_button=True, extra_label="Joker") if code == "ok": break elif code == "extra": d.msgbox("Well, {0} may be enough. Or not, depending on the " "phase of the moon...".format(nb)) else: assert False, "Unexpected Dialog exit code: {0!r}".format(code) return nb def buildlist_demo(self): items0 = [("A Monty Python DVD", False), ("A Monty Python script", False), ('A DVD of "Barry Lyndon" by Stanley Kubrick', False), ('A DVD of "The Good, the Bad and the Ugly" by Sergio Leone', False), ('A DVD of "The Trial" by Orson Welles', False), ('The Trial, by Franz Kafka', False), ('Animal Farm, by George Orwell', False), ('Notre-Dame de Paris, by Victor Hugo', False), ('Les Misérables, by Victor Hugo', False), ('Le Lys dans la Vallée, by Honoré de Balzac', False), ('Les Rois Maudits, by Maurice Druon', False), ('A Georges Brassens CD', False), ("A book of Georges Brassens' songs", False), ('A Nina Simone CD', False), ('Javier Vazquez y su Salsa - La Verdad', False), ('The last Justin Bieber album', False), ('A printed copy of the Linux kernel source code', False), ('A CD player', False), ('A DVD player', False), ('An MP3 player', False)] # Use the name as tag, item string and item-help string; the item-help # will be useful for long names because it is displayed in a place # that is large enough to avoid truncation. If not using # item_help=True, then the last element of eash tuple must be omitted. items = [ (tag, tag, status, tag) for (tag, status) in items0 ] text = """If you were stranded on a desert island, what would you \ take? Press the space bar to toggle the status of an item between selected (on \ the left) and unselected (on the right). You can use the TAB key or \ ^ and $ to change the focus between the different parts of the widget. (this widget is called with item_help=True and visit_items=True)""" code, l = d.buildlist(text, items=items, visit_items=True, item_help=True, title="A simple 'buildlist' demo") return l def buildlist_demo_with_help(self): text = """Sample 'buildlist' dialog box with help_button=True, \ item_help=True, help_status=True, and visit_items=False. Keys: SPACE select or deselect the highlighted item, i.e., move it between the left and right lists ^ move the focus to the left list $ move the focus to the right list TAB move focus ENTER press the focused button""" items = self.SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST while True: code, t = d.buildlist(text, height=0, width=0, list_height=0, items=items, title="A 'buildlist' with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True, no_collapse=True) if code == "help": tag, selected_tags, items = t d.msgbox("You asked for help concerning the item identified " "by tag '{0}'.".format(tag), height=7, width=60) else: # 't' contains the list of tags corresponding to selected items break s = '\n'.join(t) d.msgbox("The tags corresponding to selected items are:\n\n" "{0}".format(indent(s, " ")), height=15, width=60, title="'buildlist' demo with help facilities", no_collapse=True) def calendar_demo(self): code, date = d.calendar("When do you think Georg Cantor was born?") return date def calendar_demo_with_help(self): # Start with the current date day, month, year = -1, -1, -1 while True: code, date = d.calendar("When do you think Georg Cantor was born?", day=day, month=month, year=year, title="'calendar' demo", help_button=True) if code == "help": day, month, year = date d.msgbox("Help dialog for date {0:04d}-{1:02d}-{2:02d}.".format( year, month, day), title="'calendar' demo") else: break return date def comment_on_Cantor_date_of_birth(self, day, month, year): complement = """\ For your information, Georg Ferdinand Ludwig Philip Cantor, a great \ mathematician, was born on March 3, 1845 in Saint Petersburg, and died on \ January 6, 1918. Among other things, Georg Cantor laid the foundation for \ the set theory (which is at the basis of most modern mathematics) \ and was the first person to give a rigorous definition of real numbers.""" if (year, month, day) == (1845, 3, 3): return "Spot-on! I'm impressed." elif year == 1845: return "You guessed the year right. {0}".format(complement) elif abs(year-1845) < 30: return "Not too far. {0}".format(complement) else: return "Well, not quite. {0}".format(complement) def timebox_demo(self): # Get the current time (to display initially in the timebox) tm = time.localtime() init_hour, init_min, init_sec = tm.tm_hour, tm.tm_min, tm.tm_sec # tm.tm_sec can be 60 or even 61 according to the doc of the time module! init_sec = min(59, init_sec) code, (hour, minute, second) = d.timebox( "And at what time, if I may ask?", hour=init_hour, minute=init_min, second=init_sec) return (hour, minute, second) def passwordbox_demo(self): # 'insecure' keyword argument only asks dialog to echo asterisks when # the user types characters. Not *that* bad. code, password = d.passwordbox("What is your root password, " "so that I can crack your system " "right now?", insecure=True) return password def scrollbox_demo(self, name, favorite_day, toppings, sandwich, nb_engineers, desert_island_stuff, date, time_, password): tw71 = textwrap.TextWrapper(width=71, break_long_words=False, break_on_hyphens=True) if nb_engineers is not None: sandwich_comment = " (the preparation of which requires, " \ "according to you, {nb_engineers} MS {engineers})".format( nb_engineers=nb_engineers, engineers="engineers" if nb_engineers != 1 else "engineer") else: sandwich_comment = "" sandwich_report = "Favorite sandwich: {sandwich}{comment}".format( sandwich=sandwich, comment=sandwich_comment) if desert_island_stuff is None: # The widget was not available, the user didn't see anything. desert_island_string = "" else: if len(desert_island_stuff) == 0: desert_things = " nothing!" else: desert_things = "\n\n " + "\n ".join(desert_island_stuff) desert_island_string = \ "\nOn a desert island, you would take:{0}\n".format( desert_things) day, month, year = date hour, minute, second = time_ msg = """\ Here are some vital statistics about you: Name: {name} Favorite day of the week: {favday} Favorite sandwich toppings:{toppings} {sandwich_report} {desert_island_string} Your answer about Georg Cantor's date of birth: \ {year:04d}-{month:02d}-{day:02d} (at precisely {hour:02d}:{min:02d}:{sec:02d}!) {comment} Your root password is: ************************** (looks good!)""".format( name=name, favday=favorite_day, toppings="\n ".join([''] + toppings), sandwich_report=tw71.fill(sandwich_report), desert_island_string=desert_island_string, year=year, month=month, day=day, hour=hour, min=minute, sec=second, comment=tw71.fill( self.comment_on_Cantor_date_of_birth(day, month, year))) d.scrollbox(msg, height=20, width=75, title="Great Report of the Year") TREEVIEW_BASE_TEXT = """\ This is an example of the 'treeview' widget{options}. Nodes are labelled in a \ way that reflects their position in the tree, but this is not a requirement: \ you are free to name them the way you like. Node 0 is the root node. It has 3 children tagged 0.1, 0.2 and 0.3. \ You should now select a node with the space bar.""" def treeview_demo(self): code, tag = d.treeview(self.TREEVIEW_BASE_TEXT.format(options=""), nodes=[ ("0", "node 0", False, 0), ("0.1", "node 0.1", False, 1), ("0.2", "node 0.2", False, 1), ("0.2.1", "node 0.2.1", False, 2), ("0.2.1.1", "node 0.2.1.1", True, 3), ("0.2.2", "node 0.2.2", False, 2), ("0.3", "node 0.3", False, 1), ("0.3.1", "node 0.3.1", False, 2), ("0.3.2", "node 0.3.2", False, 2) ], title="'treeview' demo") d.msgbox("You selected the node tagged '{0}'.".format(tag), title="treeview demo") return tag def treeview_demo_with_help(self): text = self.TREEVIEW_BASE_TEXT.format( options=" with help_button=True, item_help=True and " "help_status=True") nodes = [ ("0", "node 0", False, 0, "Help text 1"), ("0.1", "node 0.1", False, 1, "Help text 2"), ("0.2", "node 0.2", False, 1, "Help text 3"), ("0.2.1", "node 0.2.1", False, 2, "Help text 4"), ("0.2.1.1", "node 0.2.1.1", True, 3, "Help text 5"), ("0.2.2", "node 0.2.2", False, 2, "Help text 6"), ("0.3", "node 0.3", False, 1, "Help text 7"), ("0.3.1", "node 0.3.1", False, 2, "Help text 8"), ("0.3.2", "node 0.3.2", False, 2, "Help text 9") ] while True: code, t = d.treeview(text, nodes=nodes, title="'treeview' demo with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True) if code == "help": # Prepare to redisplay the treeview in the same state as it # was before the user pressed the Help button. tag, selected_tag, nodes = t d.msgbox("You asked for help about the node with tag '{0}'." .format(tag)) else: # 't' is the chosen tag break d.msgbox("You selected the node tagged '{0}'.".format(t), title="'treeview' demo") return t def editbox_demo(self, filepath): if os.path.isfile(filepath): code, text = d.editbox(filepath, 20, 60, title="A Cheap Text Editor") d.scrollbox(text, title="Resulting text") def inputmenu_demo(self): choices = [ ("1st_tag", "Item 1 text"), ("2nd_tag", "Item 2 text"), ("3rd_tag", "Item 3 text") ] for i in xrange(4, 21): choices.append(("%dth_tag" % i, "Item %d text" % i)) while True: code, tag, new_item_text = d.inputmenu( "Demonstration of 'inputmenu'. Any single item can be either " "accepted as is, or renamed.", height=0, width=60, menu_height=10, choices=choices, help_button=True, title="'inputmenu' demo") if code == "help": d.msgbox("You asked for help about the item with tag '{0}'." .format(tag)) continue elif code == "accepted": text = "The item corresponding to tag '{0}' was " \ "accepted.".format(tag) elif code == "renamed": text = "The item corresponding to tag '{0}' was renamed to " \ "'{1}'.".format(tag, new_item_text) else: text = "Unexpected exit code from 'inputmenu': {0!r}.\n\n" \ "It may be a bug. Please report.".format(code) break d.msgbox(text, width=60, title="Outcome of the 'inputmenu' demo") # Help strings used in several places FSELECT_HELP = """\ Hint: the complete file path must be entered in the bottom field. One \ convenient way to achieve this is to use the SPACE bar when the desired file \ is highlighted in the top-right list. As usual, you can use the TAB and arrow keys to move between controls. If in \ the bottom field, the SPACE key provides auto-completion.""" # The following help text was initially meant to be used for several # widgets (at least progressbox and tailbox). Currently (dialog version # 1.2-20130902), "dialog --tailbox" doesn't seem to work with FIFOs, so the # "flexibility" of the help text is unused (another text is used when # demonstrating --tailbox). However, this might change in the future... def FIFO_HELP(self, widget): return """\ For demos based on the {widget} widget, you may use a FIFO, also called \ "named pipe". This is a special kind of file, to which you will be able to \ easily append data. With the {widget} widget, you can see the data stream \ flow in real time. To create a FIFO, you can use the commmand mkfifo(1), like this: % mkfifo /tmp/my_shiny_new_fifo Then, you can cat(1) data to the FIFO like this: % cat >>/tmp/my_shiny_new_fifo First line of text Second line of text ... You can end the input to cat(1) by typing Ctrl-D at the beginning of a \ line.""".format(widget=widget) def fselect_demo(self, widget, init_path=None, allow_FIFOs=False, **kwargs): init_path = init_path or params["home_dir"] # Make sure the directory we chose ends with os.sep so that dialog # shows its contents right away if not init_path.endswith(os.sep): init_path += os.sep while True: # We want to let the user quit this particular dialog with Cancel # without having to bother choosing a file, therefore we use the # original fselect() from dialog.Dialog and interpret the return # code manually. (By default, the MyDialog class defined in this # file intercepts the CANCEL and ESC exit codes and causes them to # spawn the "confirm quit" dialog.) code, path = self.Dialog_instance.fselect( init_path, height=10, width=60, help_button=True, **kwargs) # Display the "confirm quit" dialog if the user pressed ESC. if not d.check_exit_request(code, ignore_Cancel=True): continue # Provide an easy way out... if code == d.CANCEL: path = None break elif code == "help": d.msgbox("Help about '{0}' from the 'fselect' dialog.".format( path), title="'fselect' demo") init_path = path elif code == d.OK: # Of course, one can use os.path.isfile(path) here, but we want # to allow regular files *and* possibly FIFOs. Since there is # no os.path.is*** convenience function for FIFOs, let's go # with os.stat. try: mode = os.stat(path)[stat.ST_MODE] except os.error, e: d.msgbox("Error: {0}".format(e)) continue # Accept FIFOs only if allow_FIFOs is True if stat.S_ISREG(mode) or (allow_FIFOs and stat.S_ISFIFO(mode)): break else: if allow_FIFOs: help_text = """\ You are expected to select a *file* here (possibly a FIFO), or press the \ Cancel button.\n\n%s For your convenience, I will reproduce the FIFO help text here:\n\n%s""" \ % (self.FSELECT_HELP, self.FIFO_HELP(widget)) else: help_text = """\ You are expected to select a regular *file* here, or press the \ Cancel button.\n\n%s""" % (self.FSELECT_HELP,) d.msgbox(help_text, width=72, height=20) else: d.msgbox("Unexpected exit code from Dialog.fselect(): {0}.\n\n" "It may be a bug. Please report.".format(code)) return path def dselect_demo(self, init_dir=None): init_dir = init_dir or params["home_dir"] # Make sure the directory we chose ends with os.sep so that dialog # shows its contents right away if not init_dir.endswith(os.sep): init_dir += os.sep while True: code, path = d.dselect(init_dir, 10, 50, title="Please choose a directory", help_button=True) if code == "help": d.msgbox("Help about '{0}' from the 'dselect' dialog.".format( path), title="'dselect' demo") init_dir = path # When Python 3.2 is old enough, we'll be able to check if # path.endswith(os.sep) and remove the trailing os.sep if this # does not change the path according to os.path.samefile(). elif not os.path.isdir(path): d.msgbox("Hmm. It seems that '{0}' is not a directory".format( path), title="'dselect' demo") else: break d.msgbox("Directory '%s' thanks you for choosing him." % path) return path def tailbox_demo(self, height=22, width=78): widget = "tailbox" # First, ask the user for a file. # Strangely (dialog version 1.2-20130902 bug?), "dialog --tailbox" # doesn't work with FIFOs: "Error moving file pointer in last_lines()" # and DIALOG_ERROR exit status. path = self.fselect_demo(widget, allow_FIFOs=False, title="Please choose a file to be shown as " "with 'tail -f'") # Now, the tailbox if path is None: # User chose to abort return else: d.tailbox(path, height, width, title="Tailbox example") def pause_demo(self, seconds): d.pause("""\ Ugh, sorry. pythondialog is still in development, and its advanced circuitry \ detected internal error number 0x666. That's a pretty nasty one, you know. I am embarrassed. I don't know how to tell you, but we are going to have to \ reboot. In %d seconds. Fasten your seatbelt...""" % seconds, height=18, seconds=seconds) def process_command_line(): global params try: opts, args = getopt.getopt(sys.argv[1:], "ftE", ["test-suite", "fast", "debug", "debug-file=", "debug-expand-file-opt", "help", "version"]) except getopt.GetoptError: print(usage, file=u_stderr) return ("exit", 1) # Let's start with the options that don't require any non-option argument # to be present for option, value in opts: if option == "--help": print(usage, file=u_stdout) return ("exit", 0) elif option == "--version": print("%s %s\n%s" % (progname, progversion, version_blurb), file=u_stdout) return ("exit", 0) # Now, require a correct invocation. if len(args) != 0: print(usage, file=u_stderr) return ("exit", 1) # Default values for parameters params = { "fast_mode": False, "testsuite_mode": False, "debug": False, "debug_filename": default_debug_filename, "debug_expand_file_opt": False } # Get the home directory, if any, and store it in params (often useful). root_dir = os.sep # This is OK for Unix-like systems params["home_dir"] = os.getenv("HOME", root_dir) # General option processing for option, value in opts: if option in ("-t", "--test-suite"): params["testsuite_mode"] = True # --test-suite implies --fast params["fast_mode"] = True elif option in ("-f", "--fast"): params["fast_mode"] = True elif option == "--debug": params["debug"] = True elif option == "--debug-file": params["debug_filename"] = value elif option in ("-E", "--debug-expand-file-opt"): params["debug_expand_file_opt"] = True else: # The options (such as --help) that cause immediate exit # were already checked, and caused the function to return. # Therefore, if we are here, it can't be due to any of these # options. assert False, "Unexpected option received from the " \ "getopt module: '%s'" % option return ("continue", None) def main(): """This demo shows the main features of pythondialog.""" locale.setlocale(locale.LC_ALL, '') what_to_do, code = process_command_line() if what_to_do == "exit": sys.exit(code) try: app = MyApp() app.run() except dialog.error, exc_instance: # The error that causes a PythonDialogErrorBeforeExecInChildProcess to # be raised happens in the child process used to run the dialog-like # program, and the corresponding traceback is printed right away from # that child process when the error is encountered. Therefore, don't # print a second, not very useful traceback for this kind of exception. if not isinstance(exc_instance, dialog.PythonDialogErrorBeforeExecInChildProcess): # traceback.format_exc() is a byte string in Python 2 print(unicode(traceback.format_exc()), file=u_stderr) print("Error (see above for a traceback):\n\n{0}".format( exc_instance), file=u_stderr) sys.exit(1) sys.exit(0) if __name__ == "__main__": main() python2-pythondialog-3.3.0/examples/with-autowidgetsize/0000755000175000001440000000000012531573210023413 5ustar flousers00000000000000python2-pythondialog-3.3.0/examples/with-autowidgetsize/demo.py0000755000175000001440000021665112531564630024735 0ustar flousers00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # demo.py --- Demonstration program and cheap test suite for pythondialog # # Copyright (C) 2002-2010, 2013, 2014, 2015 Florent Rougon # Copyright (C) 2000 Robb Shecter, Sultanbek Tezadov # # This program is in the public domain. """Demonstration program for pythondialog. This is a program demonstrating most of the possibilities offered by the pythondialog module (which is itself a Python interface to the well-known dialog utility, or any other program compatible with dialog). Executive summary ----------------- If you are looking for a very simple example of pythondialog usage, short and straightforward, please refer to simple_example.py. The file you are now reading serves more as a demonstration of what can be done with pythondialog and as a cheap test suite than as a first time tutorial. However, it can also be used to learn how to invoke the various widgets. The following paragraphs explain what you should keep in mind if you read it for this purpose. Most of the code in the MyApp class (which defines the actual contents of the demo) relies on a class called MyDialog implemented here that: 1. wraps all widget-producing calls in a way that automatically spawns a "confirm quit" dialog box if the user presses the Escape key or chooses the Cancel button, and then redisplays the original widget if the user doesn't actually want to quit; 2. provides a few additional dialog-related methods and convenience wrappers. The handling in (1) is completely automatic, implemented with MyDialog.__getattr__() returning decorated versions of the widget-producing methods of dialog.Dialog. Therefore, most of the demo can be read as if the module-level 'd' attribute were a dialog.Dialog instance whereas it is actually a MyDialog instance. The only meaningful difference is that MyDialog.() will never return a CANCEL or ESC code (attributes of 'd', or more generally of dialog.Dialog). The reason is that these return codes are automatically handled by the MyDialog.__getattr__() machinery to display the "confirm quit" dialog box. In some cases (e.g., fselect_demo()), I wanted the "Cancel" button to perform a specific action instead of spawning the "confirm quit" dialog box. To achieve this, the widget is invoked using dialog.Dialog. instead of MyDialog., and the return code is handled in a semi-manual way. A prominent feature that needs such special-casing is the yesno widget, because the "No" button corresponds to the CANCEL exit code, which in general must not be interpreted as an attempt to quit the program! To sum it up, you can read most of the code in the MyApp class (which defines the actual contents of the demo) as if 'd' were a dialog.Dialog instance. Just keep in mind that there is a little magic behind the scenes that automatically handles the CANCEL and ESC Dialog exit codes, which wouldn't be the case if 'd' were a dialog.Dialog instance. For a first introduction to pythondialog with simple stuff and absolutely no magic, please have a look at simple_example.py. """ from __future__ import division from __future__ import with_statement, unicode_literals, print_function import sys, os, locale, stat, time, getopt, subprocess, traceback, textwrap import pprint import dialog from dialog import DialogBackendVersion from io import open import atexit progname = os.path.basename(sys.argv[0]) progversion = "0.11-autowidgetsize-py2" version_blurb = """Demonstration program and cheap test suite for pythondialog. Copyright (C) 2002-2010, 2013, 2014, 2015 Florent Rougon Copyright (C) 2000 Robb Shecter, Sultanbek Tezadov This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.""" default_debug_filename = "pythondialog.debug" usage = """Usage: {progname} [option ...] Demonstration program and cheap test suite for pythondialog. Options: -t, --test-suite test all widgets; implies '--fast' -f, --fast fast mode (e.g., makes the gauge demo run faster) --debug enable logging of all dialog command lines --debug-file=FILE where to write debug information (default: {debug_file} in the current directory) -E, --debug-expand-file-opt expand the '--file' options in the debug file generated by '--debug' --help display this message and exit --version output version information and exit""".format( progname=progname, debug_file=default_debug_filename) # Global parameters # Set two global variables u_stdout and u_stderr referencing text streams, # similar to sys.stdout and sys.stderr in Python 3. for stream_name in ("stdout", "stderr"): _bstream = getattr(sys, stream_name) if hasattr(_bstream, b"encoding") and getattr(_bstream, b"encoding"): _encoding = getattr(_bstream, b"encoding") else: _encoding = locale.getpreferredencoding() _tstream = open(_bstream.fileno(), "w", encoding=_encoding, closefd=False) globals()["u_" + stream_name] = _tstream # Important, especially when the stream is not connected to a tty, for # instance when piping the output or redirecting it to a file. Indeed, # '_tstream' is fully buffered in such a case. atexit.register(lambda stream: stream.close(), _tstream) del _encoding, _bstream, _tstream params = {} # We'll use a module-level attribute 'd' ("global") to store the MyDialog # instance that is used throughout the demo. This object could alternatively be # passed to the MyApp constructor and stored there as a class or instance # attribute. However, for the sake of readability, we'll simply use a global # (d.msgbox(...) versus self.d.msgbox(...), etc.). d = None tw = textwrap.TextWrapper(width=78, break_long_words=False, break_on_hyphens=True) from textwrap import dedent try: from textwrap import indent except ImportError: try: callable # Normally, should be __builtins__.callable except NameError: # Python 3.1 doesn't have the 'callable' builtin function. Let's # provide ours. def callable(f): return hasattr(f, '__call__') def indent(text, prefix, predicate=None): l = [] for line in text.splitlines(True): if (callable(predicate) and predicate(line)) \ or (not callable(predicate) and predicate) \ or (predicate is None and line.strip()): line = prefix + line l.append(line) return ''.join(l) class MyDialog(object): """Wrapper class for dialog.Dialog. This class behaves similarly to dialog.Dialog. The differences are that: 1. MyDialog wraps all widget-producing methods in a way that automatically spawns a "confirm quit" dialog box if the user presses the Escape key or chooses the Cancel button, and then redisplays the original widget if the user doesn't actually want to quit. 2. MyDialog provides a few additional dialog-related methods and convenience wrappers. Please refer to the module docstring and to the particular methods for more details. """ def __init__(self, Dialog_instance): self.dlg = Dialog_instance def check_exit_request(self, code, ignore_Cancel=False): if code == self.CANCEL and ignore_Cancel: # Ignore the Cancel button, i.e., don't interpret it as an exit # request; instead, let the caller handle CANCEL himself. return True if code in (self.CANCEL, self.ESC): button_name = { self.CANCEL: "Cancel", self.ESC: "Escape" } msg = "You pressed {0} in the last dialog box. Do you want " \ "to exit this demo?".format(button_name[code]) # 'self.dlg' instead of 'self' here, because we want to use the # original yesno() method from the Dialog class instead of the # decorated method returned by self.__getattr__(). if self.dlg.yesno(msg) == self.OK: sys.exit(0) else: # "No" button chosen, or ESC pressed return False # in the "confirm quit" dialog else: return True def widget_loop(self, method): """Decorator to handle eventual exit requests from a Dialog widget. method -- a dialog.Dialog method that returns either a Dialog exit code, or a sequence whose first element is a Dialog exit code (cf. the docstring of the Dialog class in dialog.py) Return a wrapper function that behaves exactly like 'method', except for the following point: If the Dialog exit code obtained from 'method' is CANCEL or ESC (attributes of dialog.Dialog), a "confirm quit" dialog is spawned; depending on the user choice, either the program exits or 'method' is called again, with the same arguments and same handling of the exit status. In other words, the wrapper function builds a loop around 'method'. The above condition on 'method' is satisfied for all dialog.Dialog widget-producing methods. More formally, these are the methods defined with the @widget decorator in dialog.py, i.e., that have an "is_widget" attribute set to True. """ # One might want to use @functools.wraps here, but since the wrapper # function is very likely to be used only once and then # garbage-collected, this would uselessly add a little overhead inside # __getattr__(), where widget_loop() is called. def wrapper(*args, **kwargs): while True: res = method(*args, **kwargs) if hasattr(method, "retval_is_code") \ and getattr(method, "retval_is_code"): code = res else: code = res[0] if self.check_exit_request(code): break return res return wrapper def __getattr__(self, name): # This is where the "magic" of this class originates from. # Please refer to the module and self.widget_loop() # docstrings if you want to understand the why and the how. obj = getattr(self.dlg, name) if hasattr(obj, "is_widget") and getattr(obj, "is_widget"): return self.widget_loop(obj) else: return obj def clear_screen(self): # This program comes with ncurses program = "clear" try: p = subprocess.Popen([program], shell=False, stdout=None, stderr=None, close_fds=True) retcode = p.wait() except os.error, e: self.msgbox("Unable to execute program '%s': %s." % (program, e.strerror), title="Error") return False if retcode > 0: msg = "Program %s returned exit status %d." % (program, retcode) elif retcode < 0: msg = "Program %s was terminated by signal %d." % (program, -retcode) else: return True self.msgbox(msg) return False def _Yesno(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return the same exit code as would return dialog.Dialog.yesno(), except for ESC which is handled as in the rest of the demo, i.e. make it spawn the "confirm quit" dialog. """ # self.yesno() automatically spawns the "confirm quit" dialog if ESC or # the "No" button is pressed, because of self.__getattr__(). Therefore, # we have to use self.dlg.yesno() here and call # self.check_exit_request() manually. while True: code = self.dlg.yesno(*args, **kwargs) # If code == self.CANCEL, it means the "No" button was chosen; # don't interpret this as a wish to quit the program! if self.check_exit_request(code, ignore_Cancel=True): break return code def Yesno(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return True if "Yes" was chosen, False if "No" was chosen, and handle ESC as in the rest of the demo, i.e. make it spawn the "confirm quit" dialog. """ return self._Yesno(*args, **kwargs) == self.dlg.OK def Yesnohelp(self, *args, **kwargs): """Convenience wrapper around dialog.Dialog.yesno(). Return "yes", "no", "extra" or "help" depending on the button that was pressed to close the dialog. ESC is handled as in the rest of the demo, i.e. it spawns the "confirm quit" dialog. """ kwargs["help_button"] = True code = self._Yesno(*args, **kwargs) d = { self.dlg.OK: "yes", self.dlg.CANCEL: "no", self.dlg.EXTRA: "extra", self.dlg.HELP: "help" } return d[code] # Dummy context manager to make sure the debug file is closed on exit, be it # normal or abnormal, and to avoid having two code paths, one for normal mode # and one for debug mode. class DummyContextManager(object): def __enter__(self): return self def __exit__(self, *exc): return False class MyApp(object): def __init__(self): # The MyDialog instance 'd' could be passed via the constructor and # stored here as a class or instance attribute. However, for the sake # of readability, we'll simply use a module-level attribute ("global") # (d.msgbox(...) versus self.d.msgbox(...), etc.). global d # If you want to use Xdialog (pathnames are also OK for the 'dialog' # argument), you can use: # dialog.Dialog(dialog="Xdialog", compat="Xdialog", ...) # # With the 'autowidgetsize' option enabled, pythondialog's # widget-producing methods behave as if width=0, height=0, etc. had # been passed, except where these parameters are explicitely specified # with different values. self.Dialog_instance = dialog.Dialog(dialog="dialog", autowidgetsize=True) # See the module docstring at the top of the file to understand the # purpose of MyDialog. d = MyDialog(self.Dialog_instance) backtitle = "pythondialog demo" d.set_background_title(backtitle) # These variables take the background title into account self.max_lines, self.max_cols = d.maxsize(backtitle=backtitle) self.demo_context = self.setup_debug() # Warn if the terminal is smaller than this size self.min_rows, self.min_cols = 24, 80 self.term_rows, self.term_cols, self.backend_version = \ self.get_term_size_and_backend_version() def setup_debug(self): if params["debug"]: debug_file = open(params["debug_filename"], "w") d.setup_debug(True, file=debug_file, expand_file_opt=params["debug_expand_file_opt"]) return debug_file else: return DummyContextManager() def get_term_size_and_backend_version(self): # Avoid running ' --print-version' every time we need the # version backend_version = d.cached_backend_version if not backend_version: print(tw.fill( "Unable to retrieve the version of the dialog-like backend. " "Not running cdialog?") + "\nPress Enter to continue.", file=u_stderr) raw_input() term_rows, term_cols = d.maxsize(use_persistent_args=False) if term_rows < self.min_rows or term_cols < self.min_cols: print(tw.fill(dedent("""\ Your terminal has less than {0} rows or less than {1} columns; you may experience problems with the demo. You have been warned.""" .format(self.min_rows, self.min_cols))) + "\nPress Enter to continue.", file=u_stdout) raw_input() return (term_rows, term_cols, backend_version) def run(self): with self.demo_context: if params["testsuite_mode"]: # Show the additional widgets before the "normal demo", so that # I can test new widgets quickly and simply hit Ctrl-C once # they've been shown. self.additional_widgets() # "Normal" demo self.demo() def demo(self): d.msgbox("""\ Hello, and welcome to the pythondialog {pydlg_version} demonstration program. You can scroll through this dialog box with the Page Up and Page Down keys. \ Please note that some of the dialogs will not work, and cause the demo to \ stop, if your terminal is too small. The recommended size is (at least) \ {min_rows} rows by {min_cols} columns. This script is being run by a Python interpreter identified as follows: {py_version} The dialog-like program displaying this message box reports version \ {backend_version} and a terminal size of {rows} rows by {cols} columns.""" .format( pydlg_version=dialog.__version__, backend_version=self.backend_version, py_version=indent(sys.version, " "), rows=self.term_rows, cols=self.term_cols, min_rows=self.min_rows, min_cols=self.min_cols), width=60, height=17) self.progressbox_demo_with_file_descriptor() # First dialog version where the programbox widget works fine if self.dialog_version_check("1.2-20140112"): self.programbox_demo() self.infobox_demo() self.gauge_demo() answer = self.yesno_demo(with_help=True) self.msgbox_demo(answer) self.textbox_demo() name = self.inputbox_demo_with_help() size, weight, city, state, country, last_will1, last_will2, \ last_will3, last_will4, secret_code = self.mixedform_demo() self.form_demo_with_help() favorite_day = self.menu_demo(name, city, state, country, size, weight, secret_code, last_will1, last_will2, last_will3, last_will4) if self.dialog_version_check("1.2-20130902", "the menu demo with help facilities", explain=True): self.menu_demo_with_help() toppings = self.checklist_demo() if self.dialog_version_check("1.2-20130902", "the checklist demo with help facilities", explain=True): self.checklist_demo_with_help() sandwich = self.radiolist_demo() if self.dialog_version_check("1.2-20121230", "the rangebox demo", explain=True): nb_engineers = self.rangebox_demo() else: nb_engineers = None if self.dialog_version_check("1.2-20121230", "the buildlist demo", explain=True): desert_island_stuff = self.buildlist_demo() else: desert_island_stuff = None if self.dialog_version_check("1.2-20130902", "the buildlist demo with help facilities", explain=True): self.buildlist_demo_with_help() date = self.calendar_demo_with_help() time_ = self.timebox_demo() password = self.passwordbox_demo() self.scrollbox_demo(name, favorite_day, toppings, sandwich, nb_engineers, desert_island_stuff, date, time_, password) if self.dialog_version_check("1.2-20121230", "the treeview demo", explain=True): if self.dialog_version_check("1.2-20130902"): self.treeview_demo_with_help() else: self.treeview_demo() self.mixedgauge_demo() self.editbox_demo("/etc/passwd") self.inputmenu_demo() d.msgbox("""\ Haha. You thought it was over. Wrong. Even more fun is to come! Now, please select a file you would like to see growing (or not...).""", width=75, height=8) # Looks nicer if the screen is not completely filled by the widget, # hence the -1. self.tailbox_demo(height=self.max_lines-1, width=self.max_cols) directory = self.dselect_demo() timeout = 2 if params["fast_mode"] else 20 self.pause_demo(timeout) d.clear_screen() if not params["fast_mode"]: # Rest assured, this is not necessary in any way: it is only a # psychological trick to try to give the impression of a reboot # (cf. pause_demo(); would be even nicer with a "visual bell")... time.sleep(1) def additional_widgets(self): # Requires a careful choice of the file to be of any interest self.progressbox_demo_with_filepath() # This can be confusing without any pause if the user specified a # regular file. time.sleep(1 if params["fast_mode"] else 2) # programbox_demo is fine right after # progressbox_demo_with_file_descriptor in demo(), but there was a # little bug in dialog that made the first two lines disappear too # early. This bug has been fixed in version 1.2-20140112, therefore # we'll run the programbox_demo as part of the main demo if the dialog # version is >= than this one, otherwise we'll keep it here. if self.dialog_version_check("1.1-20110302", "the programbox demo", explain=True): # First dialog version where the programbox widget works fine if not self.dialog_version_check("1.2-20140112"): self.programbox_demo() # Almost identical to mixedform (mixedform being more powerful). Also, # there is now form_demo_with_help() which uses the form widget. self.form_demo() # Almost identical to passwordbox self.passwordform_demo() def dialog_version_check(self, version_string, feature="", **_3to2kwargs): if 'explain' in _3to2kwargs: explain = _3to2kwargs['explain']; del _3to2kwargs['explain'] else: explain = False if 'start' in _3to2kwargs: start = _3to2kwargs['start']; del _3to2kwargs['start'] else: start = "" if d.compat != "dialog": # non-dialog implementations are not affected by # 'dialog_version_check'. return True minimum_version = DialogBackendVersion.fromstring(version_string) res = (d.cached_backend_version >= minimum_version) if explain and not res: self.too_old_dialog_version(feature=feature, start=start, min=version_string) return res def too_old_dialog_version(self, feature="", **_3to2kwargs): if 'min' in _3to2kwargs: min = _3to2kwargs['min']; del _3to2kwargs['min'] else: min = None if 'start' in _3to2kwargs: start = _3to2kwargs['start']; del _3to2kwargs['start'] else: start = "" assert (feature and not start) or (not feature and start), \ (feature, start) if not start: start = "Skipping {0},".format(feature) d.msgbox( "{start} because it requires dialog {min} or later; " "however, it appears that you are using version {used}.".format( start=start, min=min, used=d.cached_backend_version), width=60, height=9, title="Demo skipped") def progressbox_demo_with_filepath(self): widget = "progressbox" # First, ask the user for a file (possibly FIFO) d.msgbox(self.FIFO_HELP(widget), width=72, height=20) path = self.fselect_demo(widget, allow_FIFOs=True, title="Please choose a file to be shown as " "with 'tail -f'") if path is None: # User chose to abort return else: d.progressbox(file_path=path, width=78, height=20, text="You can put some header text here", title="Progressbox example with a file path") def progressboxoid(self, widget, func_name, text, **kwargs): # Since this is just a demo, I will not try to catch os.error exceptions # in this function, for the sake of readability. read_fd, write_fd = os.pipe() child_pid = os.fork() if child_pid == 0: try: # We are in the child process. We MUST NOT raise any exception. # No need for this one in the child process os.close(read_fd) # Python file objects are easier to use than file descriptors. # For a start, you don't have to check the number of bytes # actually written every time... # "buffering = 1" means wfile is going to be line-buffered with open(write_fd, mode="w", buffering=1) as wfile: for line in text.split('\n'): wfile.write(line + '\n') time.sleep(0.02 if params["fast_mode"] else 1.2) os._exit(0) except: os._exit(127) # We are in the father process. No need for write_fd anymore. os.close(write_fd) # Call d.progressbox() if widget == "progressbox" # d.programbox() if widget == "programbox" # etc. getattr(d, widget)( fd=read_fd, title="{0} example with a file descriptor".format(widget), **kwargs) # Now that the progressbox is over (second child process, running the # dialog-like program), we can wait() for the first child process. # Otherwise, we could have a deadlock in case the pipe gets full, since # dialog wouldn't be reading it. exit_info = os.waitpid(child_pid, 0)[1] if os.WIFEXITED(exit_info): exit_code = os.WEXITSTATUS(exit_info) elif os.WIFSIGNALED(exit_info): d.msgbox("%s(): first child process terminated by signal %d" % (func_name, os.WTERMSIG(exit_info))) else: assert False, "How the hell did we manage to get here?" if exit_code != 0: d.msgbox("%s(): first child process ended with exit status %d" % (func_name, exit_code)) def progressbox_demo_with_file_descriptor(self): func_name = "progressbox_demo_with_file_descriptor" text = """\ A long time ago in a galaxy far, far away... A NEW HOPE It was a period of intense sucking. Graphical toolkits for Python were all nice and clean, but they were, well, graphical. And as every one knows, REAL PROGRAMMERS ALWAYS WORK ON VT-100 TERMINALS. In text mode. Besides, those graphical toolkits were usually too complex for simple programs, so most FLOSS geeks ended up writing command-line tools except when they really needed the full power of mainstream graphical toolkits, such as Qt, GTK+ and wxWidgets. But... thanks to people like Thomas E. Dickey, there are now at our disposal several free software command-line programs, such as dialog, that allow easy building of graphically-oriented interfaces in text-mode terminals. These are good for tasks where line-oriented interfaces are not well suited, as well as for the increasingly common type who runs away as soon as he sees something remotely resembling a command line. But this is not for Python! I want my poney! Seeing this unacceptable situation, Robb Shecter had the idea, back in the olden days of Y2K (when the world was supposed to suddenly collapse, remember?), to wrap a dialog interface into a Python module called dialog.py. pythondialog was born. Florent Rougon, who was looking for something like that in 2002, found the idea rather cool and improved the module during the following years...""" + 15*'\n' return self.progressboxoid("progressbox", func_name, text, width=78, height=20) def programbox_demo(self): func_name = "programbox_demo" text = """\ The 'progressbox' widget has a little brother called 'programbox' that displays text read from a pipe and only adds an OK button when the pipe indicates EOF (End Of File). This can be used to display the output of some external program. This will be done right away if you choose "Yes" in the next dialog. This choice will cause 'find /usr/bin' to be run with subprocess.Popen() and the output to be displayed, via a pipe, in a 'programbox' widget.""" self.progressboxoid("programbox", func_name, text, width=78, height=20) if d.Yesno("Do you want to run 'find /usr/bin' in a programbox widget?"): try: devnull = subprocess.DEVNULL except AttributeError: # Python < 3.3 devnull_context = devnull = open(os.devnull, "wb") else: devnull_context = DummyContextManager() args = ["find", "/usr/bin"] with devnull_context: p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=devnull, close_fds=True) # One could use title=... instead of text=... to put the text # in the title bar. d.programbox(fd=p.stdout.fileno(), text="Example showing the output of a command " "with programbox", width=78, height=20) retcode = p.wait() # Context manager support for subprocess.Popen objects requires # Python 3.2 or later. p.stdout.close() return retcode else: return None def infobox_demo(self): d.infobox("One moment, please. Just wasting some time here to " "show you the infobox...") time.sleep(0.5 if params["fast_mode"] else 4.0) def gauge_demo(self): d.gauge_start("Progress: 0%", title="Still testing your patience...") for i in xrange(1, 101): if i < 50: d.gauge_update(i, "Progress: {0}%".format(i), update_text=True) elif i == 50: d.gauge_update(i, "Over {0}%. Good.".format(i), update_text=True) elif i == 80: d.gauge_update(i, "Yeah, this boring crap will be over Really " "Soon Now.", update_text=True) else: d.gauge_update(i) time.sleep(0.01 if params["fast_mode"] else 0.1) d.gauge_stop() def mixedgauge_demo(self): for i in xrange(1, 101, 20): d.mixedgauge("This is the 'text' part of the mixedgauge\n" "and this is a forced new line.", title="'mixedgauge' demo", percent=int(round(72+28*i/100)), elements=[("Task 1", "Foobar"), ("Task 2", 0), ("Task 3", 1), ("Task 4", 2), ("Task 5", 3), ("", 8), ("Task 6", 5), ("Task 7", 6), ("Task 8", 7), ("", ""), # 0 is the dialog special code for # "Succeeded", so these must not be equal to # zero! That is why I made the range() above # start at 1. ("Task 9", -max(1, 100-i)), ("Task 10", -i)]) time.sleep(0.5 if params["fast_mode"] else 2) def yesno_demo(self, with_help=True): if not with_help: # Simple version, without the "Help" button (the return value is # True or False): return d.Yesno("\nDo you like this demo?", yes_label="Yes, I do", no_label="No, I do not", height=10, width=40, title="An Important Question") # 'yesno' dialog box with custom Yes, No and Help buttons while True: reply = d.Yesnohelp("\nDo you like this demo?", yes_label="Yes, I do", no_label="No, I do not", help_label="Please help me!", height=10, width=60, title="An Important Question") if reply == "yes": return True elif reply == "no": return False elif reply == "help": d.msgbox("""\ I can hear your cry for help, and would really like to help you. However, I \ am afraid there is not much I can do for you here; you will have to decide \ for yourself on this matter. Keep in mind that you can always rely on me. \ You have all my support, be brave!""", height=15, width=60, title="From Your Faithful Servant") else: assert False, "Unexpected reply from MyDialog.Yesnohelp(): " \ + repr(reply) def msgbox_demo(self, answer): if answer: msg = "Excellent! Press OK to see its source code (or another " \ "file if not in the correct directory)." else: msg = "Well, feel free to send your complaints to /dev/null!\n\n" \ "Sincerely yours, etc." d.msgbox(msg, height=7, width=50) def textbox_demo(self): # Better use the absolute path for displaying in the dialog title filepath = os.path.abspath(__file__) code = d.textbox(filepath, width=76, title="Contents of {0}".format(filepath), extra_button=True, extra_label="Stop it now!") if code == "extra": d.msgbox("Your wish is my command, Master.", width=40, title="Exiting") sys.exit(0) def inputbox_demo(self): code, answer = d.inputbox("What's your name?", init="Snow White") return answer def inputbox_demo_with_help(self): init_str = "Snow White" while True: code, answer = d.inputbox("What's your name?", init=init_str, title="'inputbox' demo", help_button=True) if code == "help": d.msgbox("Help from the 'inputbox' demo. The string entered " "so far is '{0}'.".format(answer), title="'inputbox' demo") init_str = answer else: break return answer def form_demo(self): elements = [ ("Size (cm)", 1, 1, "175", 1, 20, 4, 3), ("Weight (kg)", 2, 1, "85", 2, 20, 4, 3), ("City", 3, 1, "Groboule-les-Bains", 3, 20, 15, 25), ("State", 4, 1, "Some Lost Place", 4, 20, 15, 25), ("Country", 5, 1, "Nowhereland", 5, 20, 15, 20), ("My", 6, 1, "I hereby declare that, upon leaving this " "world, all", 6, 20, 0, 0), ("Very", 7, 1, "my fortune shall be transferred to Florent " "Rougon's", 7, 20, 0, 0), ("Last", 8, 1, "bank account number 000 4237 4587 32454/78 at " "Banque", 8, 20, 0, 0), ("Will", 9, 1, "Cantonale Vaudoise, Lausanne, Switzerland.", 9, 20, 0, 0) ] code, fields = d.form("Please fill in some personal information:", elements, width=77) return fields def form_demo_with_help(self, item_help=True): # This function is slightly complex because it provides help support # with 'help_status=True', and optionally also with 'item_help=True' # together with 'help_tags=True'. For a very simple version (without # any help support), see form_demo() above. minver_for_helptags = "1.2-20130902" if item_help: if self.dialog_version_check(minver_for_helptags): complement = """'item_help=True' is also used in conjunction \ with 'help_tags=True' in order to display per-item help at the bottom of the \ widget.""" else: item_help = False complement = """'item_help=True' is not used, because to make \ it consistent with the 'item_help=False' case, dialog {min} or later is \ required (for the --help-tags option); however, it appears that you are using \ version {used}.""".format(min=minver_for_helptags, used=d.cached_backend_version) else: complement = """'item_help=True' is not used, because it has \ been disabled; therefore, there is no per-item help at the bottom of the \ widget.""" text = """\ This is a demo for the 'form' widget, which is similar to 'mixedform' but \ a bit simpler in that it has no notion of field type (to hide contents such \ as passwords). This demo uses 'help_button=True' to provide a Help button \ and 'help_status=True' to allow redisplaying the widget in the same state \ when leaving the help dialog. {complement}""".format(complement=complement) elements = [ ("Fruit", 1, 8, "mirabelle plum", 1, 20, 18, 30), ("Color", 2, 8, "yellowish", 2, 20, 18, 30), ("Flavor", 3, 8, "sweet when ripe", 3, 20, 18, 30), ("Origin", 4, 8, "Lorraine", 4, 20, 18, 30) ] more_kwargs = {} if item_help: more_kwargs.update({ "item_help": True, "help_tags": True }) elements = [ list(l) + [ "Help text for item {0}".format(i+1) ] for i, l in enumerate(elements) ] while True: code, t = d.form(text, elements, height=20, width=65, title="'form' demo with help facilities", help_button=True, help_status=True, **more_kwargs) if code == "help": label, status, elements = t d.msgbox("You asked for help concerning the field labelled " "'{0}'.".format(label)) else: # 't' contains the list of items as filled by the user break answers = '\n'.join(t) d.msgbox("Your answers:\n\n{0}".format(indent(answers, " ")), title="'form' demo with help facilities", no_collapse=True) return t def mixedform_demo(self): HIDDEN = 0x1 READ_ONLY = 0x2 elements = [ ("Size (cm)", 1, 1, "175", 1, 20, 4, 3, 0x0), ("Weight (kg)", 2, 1, "85", 2, 20, 4, 3, 0x0), ("City", 3, 1, "Groboule-les-Bains", 3, 20, 15, 25, 0x0), ("State", 4, 1, "Some Lost Place", 4, 20, 15, 25, 0x0), ("Country", 5, 1, "Nowhereland", 5, 20, 15, 20, 0x0), ("My", 6, 1, "I hereby declare that, upon leaving this " "world, all", 6, 20, 54, 0, READ_ONLY), ("Very", 7, 1, "my fortune shall be transferred to Florent " "Rougon's", 7, 20, 54, 0, READ_ONLY), ("Last", 8, 1, "bank account number 000 4237 4587 32454/78 at " "Banque", 8, 20, 54, 0, READ_ONLY), ("Will", 9, 1, "Cantonale Vaudoise, Lausanne, Switzerland.", 9, 20, 54, 0, READ_ONLY), ("Read-only field...", 10, 1, "... that doesn't go into the " "output list", 10, 20, 0, 0, 0x0), ("\/3r`/ 53kri7 (0d3", 11, 1, "", 11, 20, 15, 20, HIDDEN) ] code, fields = d.mixedform( "Please fill in some personal information:", elements, width=77) return fields def passwordform_demo(self): elements = [ ("Secret field 1", 1, 1, "", 1, 20, 12, 0), ("Secret field 2", 2, 1, "", 2, 20, 12, 0), ("Secret field 3", 3, 1, "Providing a non-empty initial content " "(like this) for an invisible field can be very confusing!", 3, 20, 30, 160)] code, fields = d.passwordform( "Please enter all your secret passwords.\n\nOn purpose here, " "nothing is echoed when you type in the passwords. If you want " "asterisks, use the 'insecure' keyword argument as in the " "passwordbox demo.", elements, width=77, height=15, title="Passwordform demo") d.msgbox("Secret password 1: '%s'\n" "Secret password 2: '%s'\n" "Secret password 3: '%s'" % tuple(fields), width=60, height=20, title="The Whole Truth Now Revealed") return fields def menu_demo(self, name, city, state, country, size, weight, secret_code, last_will1, last_will2, last_will3, last_will4): text = """\ Hello, %s from %s, %s, %s, %s cm, %s kg. Thank you for giving us your Very Secret Code '%s'. As expressly stated in the previous form, your Last Will reads: "%s" All that was very interesting, thank you. However, in order to know you \ better and provide you with the best possible customer service, we would \ still need to know your favorite day of the week. Please indicate your \ preference below.""" \ % (name, city, state, country, size, weight, secret_code, ' '.join([last_will1, last_will2, last_will3, last_will4])) code, tag = d.menu(text, height=23, width=76, menu_height=7, choices=[("Monday", "Being the first day of the week..."), ("Tuesday", "Comes after Monday"), ("Wednesday", "Before Thursday day"), ("Thursday", "Itself after Wednesday"), ("Friday", "The best day of all"), ("Saturday", "Well, I've had enough, thanks"), ("Sunday", "Let's rest a little bit")]) return tag def menu_demo_with_help(self): text = """Sample 'menu' dialog box with help_button=True and \ item_help=True.""" while True: code, tag = d.menu(text, height=16, width=60, menu_height=7, choices=[("Tag 1", "Item 1", "Help text for item 1"), ("Tag 2", "Item 2", "Help text for item 2"), ("Tag 3", "Item 3", "Help text for item 3"), ("Tag 4", "Item 4", "Help text for item 4"), ("Tag 5", "Item 5", "Help text for item 5"), ("Tag 6", "Item 6", "Help text for item 6"), ("Tag 7", "Item 7", "Help text for item 7"), ("Tag 8", "Item 8", "Help text for item 8")], title="A menu with help facilities", help_button=True, item_help=True, help_tags=True) if code == "help": d.msgbox("You asked for help concerning the item identified by " "tag '{0}'.".format(tag), height=8, width=40) else: break d.msgbox("You have chosen the item identified by tag " "'{0}'.".format(tag), height=8, width=40) def checklist_demo(self): # We could put non-empty items here (not only the tag for each entry) code, tags = d.checklist(text="What sandwich toppings do you like?", height=15, width=54, list_height=7, choices=[("Catsup", "", False), ("Mustard", "", False), ("Pesto", "", False), ("Mayonnaise", "", True), ("Horse radish","", True), ("Sun-dried tomatoes", "", True)], title="Do you prefer ham or spam?", backtitle="And now, for something " "completely different...") return tags SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST = [ ("Tag 1", "Item 1", True, "Help text for item 1"), ("Tag 2", "Item 2", False, "Help text for item 2"), ("Tag 3", "Item 3", False, "Help text for item 3"), ("Tag 4", "Item 4", True, "Help text for item 4"), ("Tag 5", "Item 5", True, "Help text for item 5"), ("Tag 6", "Item 6", False, "Help text for item 6"), ("Tag 7", "Item 7", True, "Help text for item 7"), ("Tag 8", "Item 8", False, "Help text for item 8") ] def checklist_demo_with_help(self): text = """Sample 'checklist' dialog box with help_button=True, \ item_help=True and help_status=True.""" choices = self.SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST while True: code, t = d.checklist(text, choices=choices, title="A checklist with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True) if code == "help": tag, selected_tags, choices = t d.msgbox("You asked for help concerning the item identified " "by tag '{0}'.".format(tag), height=7, width=60) else: # 't' contains the list of tags corresponding to checked items break s = '\n'.join(t) d.msgbox("The tags corresponding to checked items are:\n\n" "{0}".format(indent(s, " ")), height=15, width=60, title="'checklist' demo with help facilities", no_collapse=True) def radiolist_demo(self): choices = [ ("Hamburger", "2 slices of bread, a steak...", False), ("Hotdog", "doesn't bite any more", False), ("Burrito", "no se lo que es", False), ("Doener", "Huh?", False), ("Falafel", "Erm...", False), ("Bagel", "Of course!", False), ("Big Mac", "Ah, that's easy!", True), ("Whopper", "Erm, sorry", False), ("Quarter Pounder", 'called "le Big Mac" in France', False), ("Peanut Butter and Jelly", "Well, that's your own business...", False), ("Grilled cheese", "And nothing more?", False) ] while True: code, t = d.radiolist( "What's your favorite kind of sandwich?", width=68, choices=choices, help_button=True, help_status=True) if code == "help": # Prepare to redisplay the radiolist in the same state as it # was before the user pressed the Help button. tag, selected, choices = t d.msgbox("You asked for help about something called '{0}'. " "Sorry, but I am quite incompetent in this matter." .format(tag)) else: # 't' is the chosen tag break return t def rangebox_demo(self): nb = 10 # initial value while True: code, nb = d.rangebox("""\ How many Microsoft(TM) engineers are needed to prepare such a sandwich? You can use the Up and Down arrows, Page Up and Page Down, Home and End keys \ to change the value; you may also use the Tab key, Left and Right arrows \ and any of the 0-9 keys to change a digit of the value.""", min=1, max=20, init=nb, extra_button=True, extra_label="Joker") if code == "ok": break elif code == "extra": d.msgbox("Well, {0} may be enough. Or not, depending on the " "phase of the moon...".format(nb)) else: assert False, "Unexpected Dialog exit code: {0!r}".format(code) return nb def buildlist_demo(self): items0 = [("A Monty Python DVD", False), ("A Monty Python script", False), ('A DVD of "Barry Lyndon" by Stanley Kubrick', False), ('A DVD of "The Good, the Bad and the Ugly" by Sergio Leone', False), ('A DVD of "The Trial" by Orson Welles', False), ('The Trial, by Franz Kafka', False), ('Animal Farm, by George Orwell', False), ('Notre-Dame de Paris, by Victor Hugo', False), ('Les Misérables, by Victor Hugo', False), ('Le Lys dans la Vallée, by Honoré de Balzac', False), ('Les Rois Maudits, by Maurice Druon', False), ('A Georges Brassens CD', False), ("A book of Georges Brassens' songs", False), ('A Nina Simone CD', False), ('Javier Vazquez y su Salsa - La Verdad', False), ('The last Justin Bieber album', False), ('A printed copy of the Linux kernel source code', False), ('A CD player', False), ('A DVD player', False), ('An MP3 player', False)] # Use the name as tag, item string and item-help string; the item-help # will be useful for long names because it is displayed in a place # that is large enough to avoid truncation. If not using # item_help=True, then the last element of eash tuple must be omitted. items = [ (tag, tag, status, tag) for (tag, status) in items0 ] text = """If you were stranded on a desert island, what would you \ take? Press the space bar to toggle the status of an item between selected (on \ the left) and unselected (on the right). You can use the TAB key or \ ^ and $ to change the focus between the different parts of the widget. (this widget is called with item_help=True and visit_items=True)""" code, l = d.buildlist(text, items=items, visit_items=True, item_help=True, title="A simple 'buildlist' demo") return l def buildlist_demo_with_help(self): text = """Sample 'buildlist' dialog box with help_button=True, \ item_help=True, help_status=True, and visit_items=False. Keys: SPACE select or deselect the highlighted item, i.e., move it between the left and right lists ^ move the focus to the left list $ move the focus to the right list TAB move focus ENTER press the focused button""" items = self.SAMPLE_DATA_FOR_BUILDLIST_AND_CHECKLIST while True: code, t = d.buildlist(text, items=items, title="A 'buildlist' with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True, no_collapse=True) if code == "help": tag, selected_tags, items = t d.msgbox("You asked for help concerning the item identified " "by tag '{0}'.".format(tag), height=7, width=60) else: # 't' contains the list of tags corresponding to selected items break s = '\n'.join(t) d.msgbox("The tags corresponding to selected items are:\n\n" "{0}".format(indent(s, " ")), height=15, width=60, title="'buildlist' demo with help facilities", no_collapse=True) def calendar_demo(self): code, date = d.calendar("When do you think Georg Cantor was born?") return date def calendar_demo_with_help(self): # Start with the current date day, month, year = -1, -1, -1 while True: code, date = d.calendar("When do you think Georg Cantor was born?", day=day, month=month, year=year, title="'calendar' demo", help_button=True) if code == "help": day, month, year = date d.msgbox("Help dialog for date {0:04d}-{1:02d}-{2:02d}.".format( year, month, day), title="'calendar' demo") else: break return date def comment_on_Cantor_date_of_birth(self, day, month, year): complement = """\ For your information, Georg Ferdinand Ludwig Philip Cantor, a great \ mathematician, was born on March 3, 1845 in Saint Petersburg, and died on \ January 6, 1918. Among other things, Georg Cantor laid the foundation for \ the set theory (which is at the basis of most modern mathematics) \ and was the first person to give a rigorous definition of real numbers.""" if (year, month, day) == (1845, 3, 3): return "Spot-on! I'm impressed." elif year == 1845: return "You guessed the year right. {0}".format(complement) elif abs(year-1845) < 30: return "Not too far. {0}".format(complement) else: return "Well, not quite. {0}".format(complement) def timebox_demo(self): # Get the current time (to display initially in the timebox) tm = time.localtime() init_hour, init_min, init_sec = tm.tm_hour, tm.tm_min, tm.tm_sec # tm.tm_sec can be 60 or even 61 according to the doc of the time module! init_sec = min(59, init_sec) code, (hour, minute, second) = d.timebox( "And at what time, if I may ask?", hour=init_hour, minute=init_min, second=init_sec) return (hour, minute, second) def passwordbox_demo(self): # 'insecure' keyword argument only asks dialog to echo asterisks when # the user types characters. Not *that* bad. code, password = d.passwordbox("What is your root password, " "so that I can crack your system " "right now?", height=10, width=60, insecure=True) return password def scrollbox_demo(self, name, favorite_day, toppings, sandwich, nb_engineers, desert_island_stuff, date, time_, password): tw71 = textwrap.TextWrapper(width=71, break_long_words=False, break_on_hyphens=True) if nb_engineers is not None: sandwich_comment = " (the preparation of which requires, " \ "according to you, {nb_engineers} MS {engineers})".format( nb_engineers=nb_engineers, engineers="engineers" if nb_engineers != 1 else "engineer") else: sandwich_comment = "" sandwich_report = "Favorite sandwich: {sandwich}{comment}".format( sandwich=sandwich, comment=sandwich_comment) if desert_island_stuff is None: # The widget was not available, the user didn't see anything. desert_island_string = "" else: if len(desert_island_stuff) == 0: desert_things = " nothing!" else: desert_things = "\n\n " + "\n ".join(desert_island_stuff) desert_island_string = \ "\nOn a desert island, you would take:{0}\n".format( desert_things) day, month, year = date hour, minute, second = time_ msg = """\ Here are some vital statistics about you: Name: {name} Favorite day of the week: {favday} Favorite sandwich toppings:{toppings} {sandwich_report} {desert_island_string} Your answer about Georg Cantor's date of birth: \ {year:04d}-{month:02d}-{day:02d} (at precisely {hour:02d}:{min:02d}:{sec:02d}!) {comment} Your root password is: ************************** (looks good!)""".format( name=name, favday=favorite_day, toppings="\n ".join([''] + toppings), sandwich_report=tw71.fill(sandwich_report), desert_island_string=desert_island_string, year=year, month=month, day=day, hour=hour, min=minute, sec=second, comment=tw71.fill( self.comment_on_Cantor_date_of_birth(day, month, year))) d.scrollbox(msg, height=20, width=75, title="Great Report of the Year") TREEVIEW_BASE_TEXT = """\ This is an example of the 'treeview' widget{options}. Nodes are labelled in a \ way that reflects their position in the tree, but this is not a requirement: \ you are free to name them the way you like. Node 0 is the root node. It has 3 children tagged 0.1, 0.2 and 0.3. \ You should now select a node with the space bar.""" def treeview_demo(self): code, tag = d.treeview(self.TREEVIEW_BASE_TEXT.format(options=""), nodes=[ ("0", "node 0", False, 0), ("0.1", "node 0.1", False, 1), ("0.2", "node 0.2", False, 1), ("0.2.1", "node 0.2.1", False, 2), ("0.2.1.1", "node 0.2.1.1", True, 3), ("0.2.2", "node 0.2.2", False, 2), ("0.3", "node 0.3", False, 1), ("0.3.1", "node 0.3.1", False, 2), ("0.3.2", "node 0.3.2", False, 2) ], title="'treeview' demo") d.msgbox("You selected the node tagged '{0}'.".format(tag), title="treeview demo") return tag def treeview_demo_with_help(self): text = self.TREEVIEW_BASE_TEXT.format( options=" with help_button=True, item_help=True and " "help_status=True") nodes = [ ("0", "node 0", False, 0, "Help text 1"), ("0.1", "node 0.1", False, 1, "Help text 2"), ("0.2", "node 0.2", False, 1, "Help text 3"), ("0.2.1", "node 0.2.1", False, 2, "Help text 4"), ("0.2.1.1", "node 0.2.1.1", True, 3, "Help text 5"), ("0.2.2", "node 0.2.2", False, 2, "Help text 6"), ("0.3", "node 0.3", False, 1, "Help text 7"), ("0.3.1", "node 0.3.1", False, 2, "Help text 8"), ("0.3.2", "node 0.3.2", False, 2, "Help text 9") ] while True: code, t = d.treeview(text, nodes=nodes, title="'treeview' demo with help facilities", help_button=True, item_help=True, help_tags=True, help_status=True) if code == "help": # Prepare to redisplay the treeview in the same state as it # was before the user pressed the Help button. tag, selected_tag, nodes = t d.msgbox("You asked for help about the node with tag '{0}'." .format(tag)) else: # 't' is the chosen tag break d.msgbox("You selected the node tagged '{0}'.".format(t), title="'treeview' demo") return t def editbox_demo(self, filepath): if os.path.isfile(filepath): code, text = d.editbox(filepath, 20, 60, title="A Cheap Text Editor") d.scrollbox(text, title="Resulting text") def inputmenu_demo(self): choices = [ ("1st_tag", "Item 1 text"), ("2nd_tag", "Item 2 text"), ("3rd_tag", "Item 3 text") ] for i in xrange(4, 21): choices.append(("%dth_tag" % i, "Item %d text" % i)) while True: code, tag, new_item_text = d.inputmenu( "Demonstration of 'inputmenu'. Any single item can be either " "accepted as is, or renamed.", width=60, menu_height=10, choices=choices, help_button=True, title="'inputmenu' demo") if code == "help": d.msgbox("You asked for help about the item with tag '{0}'." .format(tag)) continue elif code == "accepted": text = "The item corresponding to tag '{0}' was " \ "accepted.".format(tag) elif code == "renamed": text = "The item corresponding to tag '{0}' was renamed to " \ "'{1}'.".format(tag, new_item_text) else: text = "Unexpected exit code from 'inputmenu': {0!r}.\n\n" \ "It may be a bug. Please report.".format(code) break d.msgbox(text, height=10, width=60, title="Outcome of the 'inputmenu' demo") # Help strings used in several places FSELECT_HELP = """\ Hint: the complete file path must be entered in the bottom field. One \ convenient way to achieve this is to use the SPACE bar when the desired file \ is highlighted in the top-right list. As usual, you can use the TAB and arrow keys to move between controls. If in \ the bottom field, the SPACE key provides auto-completion.""" # The following help text was initially meant to be used for several # widgets (at least progressbox and tailbox). Currently (dialog version # 1.2-20130902), "dialog --tailbox" doesn't seem to work with FIFOs, so the # "flexibility" of the help text is unused (another text is used when # demonstrating --tailbox). However, this might change in the future... def FIFO_HELP(self, widget): return """\ For demos based on the {widget} widget, you may use a FIFO, also called \ "named pipe". This is a special kind of file, to which you will be able to \ easily append data. With the {widget} widget, you can see the data stream \ flow in real time. To create a FIFO, you can use the commmand mkfifo(1), like this: % mkfifo /tmp/my_shiny_new_fifo Then, you can cat(1) data to the FIFO like this: % cat >>/tmp/my_shiny_new_fifo First line of text Second line of text ... You can end the input to cat(1) by typing Ctrl-D at the beginning of a \ line.""".format(widget=widget) def fselect_demo(self, widget, init_path=None, allow_FIFOs=False, **kwargs): init_path = init_path or params["home_dir"] # Make sure the directory we chose ends with os.sep so that dialog # shows its contents right away if not init_path.endswith(os.sep): init_path += os.sep while True: # We want to let the user quit this particular dialog with Cancel # without having to bother choosing a file, therefore we use the # original fselect() from dialog.Dialog and interpret the return # code manually. (By default, the MyDialog class defined in this # file intercepts the CANCEL and ESC exit codes and causes them to # spawn the "confirm quit" dialog.) code, path = self.Dialog_instance.fselect( init_path, height=10, width=60, help_button=True, **kwargs) # Display the "confirm quit" dialog if the user pressed ESC. if not d.check_exit_request(code, ignore_Cancel=True): continue # Provide an easy way out... if code == d.CANCEL: path = None break elif code == "help": d.msgbox("Help about '{0}' from the 'fselect' dialog.".format( path), title="'fselect' demo") init_path = path elif code == d.OK: # Of course, one can use os.path.isfile(path) here, but we want # to allow regular files *and* possibly FIFOs. Since there is # no os.path.is*** convenience function for FIFOs, let's go # with os.stat. try: mode = os.stat(path)[stat.ST_MODE] except os.error, e: d.msgbox("Error: {0}".format(e)) continue # Accept FIFOs only if allow_FIFOs is True if stat.S_ISREG(mode) or (allow_FIFOs and stat.S_ISFIFO(mode)): break else: if allow_FIFOs: help_text = """\ You are expected to select a *file* here (possibly a FIFO), or press the \ Cancel button.\n\n%s For your convenience, I will reproduce the FIFO help text here:\n\n%s""" \ % (self.FSELECT_HELP, self.FIFO_HELP(widget)) else: help_text = """\ You are expected to select a regular *file* here, or press the \ Cancel button.\n\n%s""" % (self.FSELECT_HELP,) d.msgbox(help_text, width=72, height=20) else: d.msgbox("Unexpected exit code from Dialog.fselect(): {0}.\n\n" "It may be a bug. Please report.".format(code)) return path def dselect_demo(self, init_dir=None): init_dir = init_dir or params["home_dir"] # Make sure the directory we chose ends with os.sep so that dialog # shows its contents right away if not init_dir.endswith(os.sep): init_dir += os.sep while True: code, path = d.dselect(init_dir, 10, 50, title="Please choose a directory", help_button=True) if code == "help": d.msgbox("Help about '{0}' from the 'dselect' dialog.".format( path), title="'dselect' demo") init_dir = path # When Python 3.2 is old enough, we'll be able to check if # path.endswith(os.sep) and remove the trailing os.sep if this # does not change the path according to os.path.samefile(). elif not os.path.isdir(path): d.msgbox("Hmm. It seems that '{0}' is not a directory".format( path), title="'dselect' demo") else: break d.msgbox("Directory '%s' thanks you for choosing him." % path) return path def tailbox_demo(self, height=22, width=78): widget = "tailbox" # First, ask the user for a file. # Strangely (dialog version 1.2-20130902 bug?), "dialog --tailbox" # doesn't work with FIFOs: "Error moving file pointer in last_lines()" # and DIALOG_ERROR exit status. path = self.fselect_demo(widget, allow_FIFOs=False, title="Please choose a file to be shown as " "with 'tail -f'") # Now, the tailbox if path is None: # User chose to abort return else: d.tailbox(path, height, width, title="Tailbox example") def pause_demo(self, seconds): d.pause("""\ Ugh, sorry. pythondialog is still in development, and its advanced circuitry \ detected internal error number 0x666. That's a pretty nasty one, you know. I am embarrassed. I don't know how to tell you, but we are going to have to \ reboot. In %d seconds. Fasten your seatbelt...""" % seconds, height=18, seconds=seconds) def process_command_line(): global params try: opts, args = getopt.getopt(sys.argv[1:], "ftE", ["test-suite", "fast", "debug", "debug-file=", "debug-expand-file-opt", "help", "version"]) except getopt.GetoptError: print(usage, file=u_stderr) return ("exit", 1) # Let's start with the options that don't require any non-option argument # to be present for option, value in opts: if option == "--help": print(usage, file=u_stdout) return ("exit", 0) elif option == "--version": print("%s %s\n%s" % (progname, progversion, version_blurb), file=u_stdout) return ("exit", 0) # Now, require a correct invocation. if len(args) != 0: print(usage, file=u_stderr) return ("exit", 1) # Default values for parameters params = { "fast_mode": False, "testsuite_mode": False, "debug": False, "debug_filename": default_debug_filename, "debug_expand_file_opt": False } # Get the home directory, if any, and store it in params (often useful). root_dir = os.sep # This is OK for Unix-like systems params["home_dir"] = os.getenv("HOME", root_dir) # General option processing for option, value in opts: if option in ("-t", "--test-suite"): params["testsuite_mode"] = True # --test-suite implies --fast params["fast_mode"] = True elif option in ("-f", "--fast"): params["fast_mode"] = True elif option == "--debug": params["debug"] = True elif option == "--debug-file": params["debug_filename"] = value elif option in ("-E", "--debug-expand-file-opt"): params["debug_expand_file_opt"] = True else: # The options (such as --help) that cause immediate exit # were already checked, and caused the function to return. # Therefore, if we are here, it can't be due to any of these # options. assert False, "Unexpected option received from the " \ "getopt module: '%s'" % option return ("continue", None) def main(): """This demo shows the main features of pythondialog.""" locale.setlocale(locale.LC_ALL, '') what_to_do, code = process_command_line() if what_to_do == "exit": sys.exit(code) try: app = MyApp() app.run() except dialog.error, exc_instance: # The error that causes a PythonDialogErrorBeforeExecInChildProcess to # be raised happens in the child process used to run the dialog-like # program, and the corresponding traceback is printed right away from # that child process when the error is encountered. Therefore, don't # print a second, not very useful traceback for this kind of exception. if not isinstance(exc_instance, dialog.PythonDialogErrorBeforeExecInChildProcess): # traceback.format_exc() is a byte string in Python 2 print(unicode(traceback.format_exc()), file=u_stderr) print("Error (see above for a traceback):\n\n{0}".format( exc_instance), file=u_stderr) sys.exit(1) sys.exit(0) if __name__ == "__main__": main() python2-pythondialog-3.3.0/examples/with-autowidgetsize/simple_example.py0000755000175000001440000001152312531555223027002 0ustar flousers00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # simple_example.py --- Short and straightforward example using pythondialog # Copyright (C) 2013, 2014, 2015 Florent Rougon # # This program is in the public domain. from __future__ import unicode_literals import sys, locale from dialog import Dialog # This is almost always a good thing to do at the beginning of your programs. locale.setlocale(locale.LC_ALL, '') # Initialize a dialog.Dialog instance # # With the 'autowidgetsize' option enabled, pythondialog's widget-producing # methods behave as if width=0, height=0, etc. had been passed, except where # these parameters are explicitely specified with different values. d = Dialog(dialog="dialog", autowidgetsize=True) d.set_background_title("A Simple Example") # ***************************************************************************** # * 'msgbox' example * # ***************************************************************************** d.msgbox("""\ This is a very simple example of a program using pythondialog. Contrary to what is done in demo.py, the Dialog exit code for the Escape key \ is not checked after every call, therefore it is not so easy to exit from \ this program as it is for the demo. The goal here is to show basic \ pythondialog usage in its simplest form. With not too old versions of dialog, the size of dialog boxes is \ automatically computed when one passes width=0 and height=0 to the \ widget call. This is the method used here in most cases.""", title="'msgbox' example") # ***************************************************************************** # * 'yesno' example * # ***************************************************************************** # The 'no_collapse=True' used in the following call tells dialog not to replace # multiple contiguous spaces in the text string with a single space. code = d.yesno("""\ The 'yesno' widget allows one to display a text with two buttons beneath, \ which by default are labelled "Yes" and "No". The return value is not simply True or False: for consistency with \ dialog and the other widgets, the return code allows to distinguish \ between: OK/Yes Dialog.OK (equal to the string "ok") Cancel/No Dialog.CANCEL (equal to the string "cancel") Dialog.ESC when the Escape key is pressed Help Dialog.HELP when help_button=True was passed and the Help button is pressed (only for 'menu' in pythondialog 2.x) Extra Dialog.EXTRA when extra_button=True was passed and the Extra button is pressed The DIALOG_ERROR exit status of dialog has no equivalent in this list, \ because pythondialog translates it into an exception.""", title="'yesno' example", no_collapse=True, help_button=True) if code == d.OK: msg = "You chose the 'OK/Yes' button in the previous dialog." elif code == d.CANCEL: msg = "You chose the 'Cancel/No' button in the previous dialog." elif code == d.ESC: msg = "You pressed the Escape key in the previous dialog." elif code == d.HELP: msg = "You chose the 'Help' button in the previous dialog." else: msg = "Unexpected exit code from d.yesno(). Please report a bug." # It is possible to explicitely specify the width and height of the widget # instead of relying on 'autowidgetsize'. d.msgbox(msg, width=50, height=7) # ***************************************************************************** # * 'inputbox' example * # ***************************************************************************** code, user_input = d.inputbox("""\ The 'inputbox' widget can be used to read input (as a string) from the user. \ You can test it now:""", init="Initial contents", title="'inputbox' example", help_button=True, extra_button=True, extra_label="Cool button") if code == d.OK: msg = "Your input in the previous dialog was '{0}'.".format(user_input) elif code == d.CANCEL: msg = "You chose the 'Cancel' button in the previous dialog." elif code == d.ESC: msg = "You pressed the Escape key in the previous dialog." elif code == d.HELP: msg = "You chose the 'Help' button with input '{0}' in the previous " \ "dialog.".format(user_input) elif code == d.EXTRA: msg = 'You chose the Extra button ("Cool button") with input \'{0}\' ' \ "in the previous dialog.".format(user_input) else: msg = "Unexpected exit code from d.inputbox(). Please report a bug." d.msgbox("{0}\n\nThis little sample program is now finished. Bye bye!".format( msg), title="Bye bye!") sys.exit(0) python2-pythondialog-3.3.0/examples/simple_example.py0000755000175000001440000001105212531555223022757 0ustar flousers00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # simple_example.py --- Short and straightforward example using pythondialog # Copyright (C) 2013 Florent Rougon # # This program is in the public domain. from __future__ import unicode_literals import sys, locale from dialog import Dialog # This is almost always a good thing to do at the beginning of your programs. locale.setlocale(locale.LC_ALL, '') # Initialize a dialog.Dialog instance d = Dialog(dialog="dialog") d.set_background_title("A Simple Example") # ***************************************************************************** # * 'msgbox' example * # ***************************************************************************** d.msgbox("""\ This is a very simple example of a program using pythondialog. Contrary to what is done in demo.py, the Dialog exit code for the Escape key \ is not checked after every call, therefore it is not so easy to exit from \ this program as it is for the demo. The goal here is to show basic \ pythondialog usage in its simplest form. With not too old versions of dialog, the size of dialog boxes is \ automatically computed when one passes width=0 and height=0 to the \ widget call. This is the method used here in most cases.""", width=0, height=0, title="'msgbox' example") # ***************************************************************************** # * 'yesno' example * # ***************************************************************************** # The 'no_collapse=True' used in the following call tells dialog not to replace # multiple contiguous spaces in the text string with a single space. code = d.yesno("""\ The 'yesno' widget allows one to display a text with two buttons beneath, \ which by default are labelled "Yes" and "No". The return value is not simply True or False: for consistency with \ dialog and the other widgets, the return code allows to distinguish \ between: OK/Yes Dialog.OK (equal to the string "ok") Cancel/No Dialog.CANCEL (equal to the string "cancel") Dialog.ESC when the Escape key is pressed Help Dialog.HELP when help_button=True was passed and the Help button is pressed (only for 'menu' in pythondialog 2.x) Extra Dialog.EXTRA when extra_button=True was passed and the Extra button is pressed The DIALOG_ERROR exit status of dialog has no equivalent in this list, \ because pythondialog translates it into an exception.""", width=0, height=0, title="'yesno' example", no_collapse=True, help_button=True) if code == d.OK: msg = "You chose the 'OK/Yes' button in the previous dialog." elif code == d.CANCEL: msg = "You chose the 'Cancel/No' button in the previous dialog." elif code == d.ESC: msg = "You pressed the Escape key in the previous dialog." elif code == d.HELP: msg = "You chose the 'Help' button in the previous dialog." else: msg = "Unexpected exit code from d.yesno(). Please report a bug." d.msgbox(msg, width=50, height=7) # ***************************************************************************** # * 'inputbox' example * # ***************************************************************************** code, user_input = d.inputbox("""\ The 'inputbox' widget can be used to read input (as a string) from the user. \ You can test it now:""", init="Initial contents", width=0, height=0, title="'inputbox' example", help_button=True, extra_button=True, extra_label="Cool button") if code == d.OK: msg = "Your input in the previous dialog was '{0}'.".format(user_input) elif code == d.CANCEL: msg = "You chose the 'Cancel' button in the previous dialog." elif code == d.ESC: msg = "You pressed the Escape key in the previous dialog." elif code == d.HELP: msg = "You chose the 'Help' button with input '{0}' in the previous " \ "dialog.".format(user_input) elif code == d.EXTRA: msg = 'You chose the Extra button ("Cool button") with input \'{0}\' ' \ "in the previous dialog.".format(user_input) else: msg = "Unexpected exit code from d.inputbox(). Please report a bug." d.msgbox("{0}\n\nThis little sample program is now finished. Bye bye!".format( msg), width=0, height=0, title="Bye bye!") sys.exit(0) python2-pythondialog-3.3.0/setup.py0000755000175000001440000001402412531555223017277 0ustar flousers00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # setup.py --- Setup script for pythondialog # Copyright (c) 2002, 2003, 2004, 2009, 2010, 2013, 2014, 2015 Florent Rougon # # This file is part of pythondialog. # # pythondialog is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # pythondialog 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301 USA. from __future__ import with_statement, unicode_literals, print_function import os, sys, subprocess, traceback from distutils.core import setup from io import open PACKAGE = "pythondialog" # This is OK because dialog.py has no dependency outside the standard library. from dialog import __version__ as VERSION def run_gitlog_to_changelog(after_this_commit, output=None): args = [ "gitlog-to-changelog", "--format=%s%n%n%b%n", "--", "{0}..".format(after_this_commit) ] try: subprocess.check_call(args, stdout=output) except os.error: print(traceback.format_exc(), file=sys.stderr) # If the following message contained non-ASCII characters and stderr # were not a tty (e.g., redirection or pipe), this would fail in # Python 2. demo.py has the correct infrastructure for this issue, # however this would be a bit overkill here. print("""\ Error (see above for a traceback): unable to run {prg} ================================================={underlining} Maybe this program is not installed on your system. You can download it from: {url} Note: if you have problems with the infamous shell+Perl crap in the first lines of that file, you can replace it with a simple shebang line such as "#! /usr/bin/perl".""".format( prg=args[0], underlining="=" * len(args[0]), url="http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;" "f=build-aux/gitlog-to-changelog"), file=sys.stderr) sys.exit(1) def generate_changelog(ch_name, write_to_stdout=False): print("Converting the Git log into ChangeLog format...", end=' ', file=sys.stderr) orig_ch_name = "{0}.init".format(ch_name) # Most recent commit in the file referenced by 'orig_ch_name' (normally, # ChangeLog.init) last_commit_in_ch_init = "b69a76b550d62fd5965a3e37957aa3fbc11e1a5f" if write_to_stdout: run_gitlog_to_changelog(last_commit_in_ch_init) with open(orig_ch_name, "r", encoding="utf-8") as orig_ch: # Make sure the output is encoded in UTF-8 sys.stdout.write(("\n" + orig_ch.read()).encode("utf-8")) else: tmp_ch_name = "{0}.new".format(ch_name) try: with open(tmp_ch_name, "w", encoding="utf-8") as tmp_ch: run_gitlog_to_changelog(last_commit_in_ch_init, output=tmp_ch) with open(orig_ch_name, "r", encoding="utf-8") as orig_ch: tmp_ch.write("\n" + orig_ch.read()) os.rename(tmp_ch_name, ch_name) finally: if os.path.exists(tmp_ch_name): os.unlink(tmp_ch_name) print("done.", file=sys.stderr) def main(): ch_name = "ChangeLog" if os.path.isdir(".git"): generate_changelog(ch_name) elif not os.path.isfile(ch_name): msg = """\ There is no '{cl}' file here and it seems you are not operating from a clone of the Git repository (no .git directory); therefore, it is impossible to generate the '{cl}' file from the Git log. Aborting.""".format(cl=ch_name) sys.exit(msg) with open("README.rst", "r", encoding="utf-8") as f: long_description = f.read() setup(name="python2-{0}".format(PACKAGE), version=VERSION, description="A Python interface to the UNIX dialog utility and " "mostly-compatible programs (Python 2 backport)", # Doesn't work great with several authors... author="Robb Shecter, Sultanbek Tezadov, Florent Rougon, " "Peter Åstrand", author_email="robb@acm.org, http://sultan.da.ru/, f.rougon@free.fr, " "peter@cendio.se", maintainer="Florent Rougon", maintainer_email="f.rougon@free.fr", url="http://pythondialog.sourceforge.net/", download_url="http://sourceforge.net/projects/pythondialog/files/\ pythondialog/{version}/python2-{pkg}-{version}.tar.bz2".format( pkg=PACKAGE, version=VERSION), # Well, there isn't much UNIX-specific code in dialog.py, if at all. # I am putting Unix here only because of the dialog dependency... # Note: using the "Unix" case instead of "UNIX", because it is # spelled this way in Trove classifiers. platforms=["Unix"], long_description=long_description, keywords=["dialog", "ncurses", "Xdialog", "text-mode interface", "terminal"], classifiers=[ "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Development Status :: 5 - Production/Stable", "Environment :: Console :: Curses", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public " "License (LGPL)", "Operating System :: Unix", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: User Interfaces", "Topic :: Software Development :: Widget Sets"], py_modules=["dialog"]) if __name__ == "__main__": main() python2-pythondialog-3.3.0/TODO0000644000175000001440000000013212507731135016246 0ustar flousers00000000000000* Support for --output-separator * Check for terminal resizing?.. * Support --tailboxbg python2-pythondialog-3.3.0/README.distributors0000644000175000001440000000553712531555223021207 0ustar flousers00000000000000-*- coding: utf-8 -*- Packaging from a release tarball ================================ Packaging from an official release tarball ("source distribution" in distutils-speak) should be fairly straightforward, as every source distribution should contain a ChangeLog file that is ready to use. The rest of this file mainly concerns developers and people wanting to package pythondialog from a clone of the Git repository. Management of the ChangeLog file ================================ Starting from version 2.14.1, the ChangeLog file is not part of the Git repository anymore, because it is automatically generated from the Git log with the gitlog-to-changelog[1] program. But it must be present in every released tarball or package! [1] http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/gitlog-to-changelog To make this as easy as possible, setup.py does the following: - create or refresh (overwriting) ChangeLog from ChangeLog.init and the Git log if there is a .git subdirectory in the current directory. This is very quick and done every time setup.py is run. For this to work, gitlog-to-changelog must be in the PATH and executable. - use the existing ChangeLog file if there is no .git subdirectory (this is for people building from a release tarball as opposed to a clone of the Git repository); - include the ChangeLog file in every source distribution made with "setup.py sdist". Packaging from a clone of the Git repository ============================================ If you want to prepare a package from a clone of the Git repository, you should: - make sure the 'version_info' variable towards the top of dialog.py indicates a Git snapshot, with something like: version_info = VersionInfo(2, 14, 1, ".git20130930") - install gitlog-to-changelog (single-file Perl script, see above for the download location) and make sure setup.py can find it. Unless you modify setup.py, this means you have to make it executable and put it somewhere in your PATH. You may have to replace the first lines of shell+Perl crap with a proper shebang line (such as "#! /usr/bin/perl"). You can run 'gitlog-to-changelog --help' to check that it is working. - run 'setup.py sdist' to generate the ChangeLog and prepare a source distribution. Alternatively, if you only want to generate the ChangeLog, you can use a command such as the following, which writes its output in the UTF-8 encoding: python2 -c \ 'import setup; setup.generate_changelog(u"ChangeLog", write_to_stdout=True)' \ >/path/to/generated/ChangeLog If you want to do some testing of the command by piping the output into a pager such as less, don't forget to type Ctrl-L to refresh the initial screen, because it may be garbled due to the messages sent to stderr (alternatively, you can redirect stderr). python2-pythondialog-3.3.0/PKG-INFO0000644000175000001440000005021012531573210016650 0ustar flousers00000000000000Metadata-Version: 1.1 Name: python2-pythondialog Version: 3.3.0 Summary: A Python interface to the UNIX dialog utility and mostly-compatible programs (Python 2 backport) Home-page: http://pythondialog.sourceforge.net/ Author: Florent Rougon Author-email: f.rougon@free.fr License: UNKNOWN Download-URL: http://sourceforge.net/projects/pythondialog/files/pythondialog/3.3.0/python2-pythondialog-3.3.0.tar.bz2 Description: =============================================================================== Python wrapper for the UNIX "dialog" utility =============================================================================== Easy writing of graphical interfaces for terminal-based applications ------------------------------------------------------------------------------- WARNING ------- This version is a backport of pythondialog to Python 2. Unless you *really* have to use Python 2, you should go to the `pythondialog home page`_ and download the reference implementation which, at the time of this writing (May 2015) and for the forseeable future, is targeted at Python 3. .. _pythondialog home page: http://pythondialog.sourceforge.net/ This version is only here to help users who are somehow forced to still use Python 2, even though Python 3.0 was released on December 3, 2008. It may be the last update for Python 2. In addition, the reference implementation is less likely to have bugs. Before using this backport, be sure to read the `Backport-specific notes`_ below. Overview -------- pythondialog is a Python wrapper for the UNIX dialog_ utility originally written by Savio Lam and later rewritten by Thomas E. Dickey. Its purpose is to provide an easy to use, pythonic and as complete as possible interface to dialog_ from Python code. .. _dialog: http://invisible-island.net/dialog/dialog.html pythondialog is free software, licensed under the GNU LGPL (GNU Lesser General Public License). Its home page is located at: http://pythondialog.sourceforge.net/ and contains a `short example`_, screenshots_, a `summary of the recent changes`_, links to the `documentation`_, the `Git repository`_, the `mailing list`_, the `issue tracker`_, etc. .. _short example: http://pythondialog.sourceforge.net/#example .. _screenshots: http://pythondialog.sourceforge.net/gallery.html .. _summary of the recent changes: http://pythondialog.sourceforge.net/news.html .. _documentation: http://pythondialog.sourceforge.net/doc/ .. _Git repository: https://sourceforge.net/p/pythondialog/code/ .. _mailing list: https://sourceforge.net/p/pythondialog/mailman/ .. _issue tracker: https://sourceforge.net/p/pythondialog/_list/tickets If you want to get a quick idea of what this module allows one to do, you can download a release tarball and run ``demo.py``:: PYTHONPATH=. python2 examples/demo.py Notes: - the preceding command uses ``python2`` because we want to use the Python 2 backport of pythondialog; - depending on your system, you may have to replace ``python2`` with ``python`` or ``python2.7``, for instance. What is pythondialog good for? What are its limitations? -------------------------------------------------------- As you might infer from the name, dialog is a high-level program that generates dialog boxes. So is pythondialog. They allow you to build nice interfaces quickly and easily, but you don't have full control over the widgets, nor can you create new widgets without modifying dialog itself. If you need to do low-level stuff, you should have a look at ncurses or slang instead. For sophisticated text-mode interfaces, the `Urwid Python library`_ looks rather interesting, too. .. _Urwid Python library: http://excess.org/urwid/ Requirements ------------ * This backport of pythondialog requires Python 2.6 or later in the 2.x series. It has been tested with Python 2.7. * The reference implementation supports more recent versions of the Python interpreter. Please visit the `pythondialog home page`_ for more information. * Apart from that, pythondialog requires the dialog_ program (or a drop-in replacement for dialog). You can download dialog from: http://invisible-island.net/dialog/dialog.html Note that some features of pythondialog may require recent versions of dialog. Quick installation instructions ------------------------------- If you have a working `pip `_ setup, you should be able to install this backport of pythondialog with:: pip install python2-pythondialog When doing so, make sure that your ``pip`` executable runs with the Python 2 installation you want to install the backport for. For more detailed instructions, you can read the ``INSTALL`` file from a release tarball. You may also want to consult the `pip documentation `_. Backport-specific notes ----------------------- * The pythondialog documentation is written for the reference implementation (Python 3 at the time of this writing). To be on the safe side when using the Python 2 backport, you should use Unicode strings every time you pass “string data” to pythondialog, and you will get Unicode strings in return. Indeed, these correspond directly to Python 3 strings, and modern versions of pythondialog (>= 2.12) are all based on this type of string. The pythondialog documentation consistently uses the term “string” (as opposed to “Unicode string”) because it has been written for Python 3, but **you should definitely use Unicode strings when using the Python 2 backport**. Many things happen to work with byte strings, but in most cases, this is pure coincidence; others fail, and won't be fixed. This is not a bug. The easiest way to use Unicode strings everywhere (or almost everywhere) in Python 2.x with x >= 6, consists in using:: from __future__ import unicode_literals at the beginning of your Python files. This method has the additional benefit of preparing your transition to Python 3. * Don't use ``str()`` in Python 2 on objects such as pythondialog exceptions or ``dialog.DialogBackendVersion`` instances; use ``unicode()`` instead, which is the Python 2 equivalent of the Python 3 ``str()`` built-in. Of course, using ``repr()`` on any pythondialog object should return a byte string when run under Python 2, because this is how the ``repr()`` API works in Python 2. The same holds true for ``str()``, but this one is not supported by the Python 2 backport of pythondialog: it is superseded, as already explained, by the much more powerful ``unicode()``. * Before taking potentially expensive decisions, you should realize that Unicode support is *much*, much better in Python 3 than in Python 2, even though the basic types are largely the same (Unicode string in Python 2, native string in Python 3). In Python 3, native strings (simply called “strings” in the Python documentation) are natural and ubiquitous. They can be read and written from/to the standard I/O streams with sane encoding defaults. ``str()`` and ``repr()`` return native strings, as do all standard library calls whenever expected (i.e., when the return value is text, as opposed to binary data). Python 3 strings are both powerful and easy to use. By contrast, in Python 2, you always have to be very careful about what you manipulate: byte strings or Unicode strings. Most library calls in your code are a potential source of bug. Usually, this kind of bug only pops up when user data or input introduces non-ASCII characters in a byte string that is then either combined with an Unicode string, or used in a context where the expected encoding is different. This means that some users get annoyed by “crappy” software, while the responsible developers are often not aware of any problem---until a bug report is filed, if ever. Want to use ``traceback.format_exc()`` for instance? What does it return, byte string or Unicode string? Experiment. Answer: byte string. Then, how does it deal with, e.g., accented characters in an ``OSError`` exception message? Experiment. Answer: it outputs the ``repr()`` representation of an Unicode string that uses backslash escapes for the non-ASCII characters, all of this inside the returned byte string. Conclusion: the messages seen by users will be very ugly and more or less undecipherable for many of them. Does it behave this way in all cases? Tough question. Use the source, Luke... With other library calls, you might get non-ASCII characters in a byte string. Then, the question would be: what encoding has been used to encode them, and is there a reliable way to detect it? In many cases, this is not documented and/or depends on parameters under user control, such as the locale settings. Again, you have to waste time figuring out the encoding, and often can't be sure whether your answer is correct in all cases. **Bottom line:** There are good reasons why the Python developers broke compatibility at such a fundamental level as string management between Python 2 and Python 3. Getting Unicode support completely right in Python 2 may require more work than porting your code to Python 3. Besides, future maintainance and evolutions of your program will definitely be easier once it is written in Python 3. Think about it. Documentation ------------- **Important:** be sure to read the `Backport-specific notes`_ above. The pythondialog Manual ^^^^^^^^^^^^^^^^^^^^^^^ The pythondialog Manual is written in `reStructuredText`_ format for the `Sphinx`_ documentation generator. The HTML documentation for the latest version of pythondialog as rendered by Sphinx should be available at: http://pythondialog.sourceforge.net/doc/ .. _pythondialog Manual: http://pythondialog.sourceforge.net/doc/ .. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _Sphinx: http://sphinx-doc.org/ .. _LaTeX: http://latex-project.org/ .. _Make: http://www.gnu.org/software/make/ The sources for the pythondialog Manual are located in the ``doc`` top-level directory of the pythondialog distribution, but the documentation build process pulls many parts from dialog.py, mainly docstrings. **Note:** Currently, generation of the pythondialog Manual with `Sphinx`_ has only been tested, and is only supported with the reference implementation, on Python 3. As a consequence, the package containing this file may be fine to read or grep through the ``.rst`` files; however, if compilation of said ``.rst`` files with `Sphinx`_ doesn't work, it is currently not considered a bug---simply download the reference implementation if you want to do that. To generate the documentation yourself from dialog.py and the sources in the ``doc`` directory, first make sure you have `Sphinx`_ and `Make`_ installed. Then, you can go to the ``doc`` directory and type, for instance:: make html You will then find the output in the ``_build/html`` subdirectory of ``doc``. `Sphinx`_ can build the documentation in many other formats. For instance, if you have `LaTeX`_ installed, you can generate the pythondialog Manual in PDF format using:: make latexpdf You can run ``make`` from the ``doc`` directory to see a list of the available formats. Run ``make clean`` to clean up after the documentation build process. For those who have installed `Sphinx`_ but not `Make`_, it is still possible to build the documentation with a command such as:: sphinx-build -b html . _build/html run from the ``doc`` directory. Please refer to `sphinx-build`_ for more details. .. _sphinx-build: http://sphinx-doc.org/invocation.html Reading the docstrings from an interactive Python interpreter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you have already installed pythondialog, you may consult its docstrings in an interactive Python interpreter this way:: >>> import dialog; help(dialog) but only parts of the documentation are available using this method, and the result is much less convenient to use than the `pythondialog Manual`_ as generated by `Sphinx`_. Enabling Deprecation Warnings ----------------------------- There are a few places in ``dialog.py`` that send a ``DeprecationWarning`` to warn developers about obsolete features. However, because of: - the dialog output to the terminal; - the fact that such warnings are silenced by default since Python 2.7 and 3.2; you have to do two things in order to see them: - redirect the standard error stream to a file; - enable the warnings for the Python interpreter. For instance, to see the warnings produced when running the demo, you can do:: PYTHONPATH=. python2 -Wd examples/demo.py 2>/path/to/file and examine ``/path/to/file``. This can also help you to find files that are still open when your program exits. **Note:** If your program is terminated by an unhandled exception while stderr is redirected as in the preceding command, you won't see the traceback until you examine the file stderr was redirected to. This can be disturbing, as your program may exit with no apparent reason in such conditions. For more explanations and other methods to enable deprecation warnings, please refer to: http://docs.python.org/2/whatsnew/2.7.html Troubleshooting --------------- If you have a problem with a pythondialog call, you should read its documentation and the dialog(1) manual page. If this is not enough, you can enable logging of shell command-line equivalents of all dialog calls made by your program with a simple call to ``Dialog.setup_debug()``, first available in pythondialog 2.12 (the ``expand_file_opt`` parameter may be useful in versions 3.3 and later). An example of this can be found in ``demo.py`` from the ``examples`` directory. As of version 2.12, you can also enable this debugging facility for ``demo.py`` by calling it with the ``--debug`` flag (possibly combined with ``--debug-expand-file-opt`` in pythondialog 3.3 and later, cf. ``demo.py --help``). Using Xdialog instead of dialog ------------------------------- As far as I can tell, `Xdialog`_ has not been ported to `GTK+`_ version 2 or later. It is not in `Debian`_ stable nor unstable (June 23, 2013). It is not installed on my system (because of the GTK+ 1.2 dependency), and according to the Xdialog-specific patches I received from Peter Åstrand in 2004, was not a drop-in replacement for `dialog`_ (in particular, Xdialog seemed to want to talk to the caller through stdout instead of stderr, grrrrr!). .. _Xdialog: http://xdialog.free.fr/ .. _GTK+: http://www.gtk.org/ .. _Debian: http://www.debian.org/ All this to say that, even though I didn't remove the options to use another backend than dialog, nor did I remove the handful of little, non-invasive modifications that help pythondialog work better with `Xdialog`_, I don't really support the latter. I test everything with dialog, and nothing with Xdialog. That being said, here is the *old* text of this section (from 2004), in case you are still interested: Starting with 2.06, there is an "Xdialog" compatibility mode that you can use if you want pythondialog to run the graphical Xdialog program (which *should* be found under http://xdialog.free.fr/) instead of dialog (text-mode, based on the ncurses library). The primary supported platform is still dialog, but as long as only small modifications are enough to make pythondialog work with Xdialog, I am willing to support Xdialog if people are interested in it (which turned out to be the case for Xdialog). The demo.py from pythondialog 2.06 has been tested with Xdialog 2.0.6 and found to work well (barring Xdialog's annoying behaviour with the file selection dialog box). Whiptail, anyone? ----------------- Well, pythondialog seems not to work very well with whiptail. The reason is that whiptail is not compatible with dialog anymore. Although you can tell pythondialog the program you want it to invoke, only programs that are mostly dialog-compatible are supported. History ------- pythondialog was originally written by Robb Shecter. Sultanbek Tezadov added some features to it (mainly the first gauge implementation, I guess). Florent Rougon rewrote most parts of the program to make it more robust and flexible so that it can give access to most features of the dialog program. Peter Åstrand took over maintainership between 2004 and 2009, with particular care for the `Xdialog`_ support. Florent Rougon took over maintainership again starting from 2009... .. # Local Variables: # coding: utf-8 # fill-column: 72 # End: Keywords: dialog,ncurses,Xdialog,text-mode interface,terminal Platform: Unix Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console :: Curses Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) Classifier: Operating System :: Unix Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Software Development :: User Interfaces Classifier: Topic :: Software Development :: Widget Sets