pax_global_header00006660000000000000000000000064146526575440014534gustar00rootroot0000000000000052 comment=6a62b0cf5e90a6bdc5bf556f9a5aa676a3c1ef27 PythonQwt-0.12.7/000077500000000000000000000000001465265754400136005ustar00rootroot00000000000000PythonQwt-0.12.7/.coveragerc000066400000000000000000000002141465265754400157160ustar00rootroot00000000000000[run] parallel = True concurrency = multiprocessing,thread omit = */qwt/tests/* [report] exclude_lines = if __name__ == .__main__.:PythonQwt-0.12.7/.env.template000066400000000000000000000000141465265754400161760ustar00rootroot00000000000000PYTHONPATH=.PythonQwt-0.12.7/.github/000077500000000000000000000000001465265754400151405ustar00rootroot00000000000000PythonQwt-0.12.7/.github/workflows/000077500000000000000000000000001465265754400171755ustar00rootroot00000000000000PythonQwt-0.12.7/.github/workflows/python-package-PyQt5.yml000066400000000000000000000033471465265754400236210ustar00rootroot00000000000000# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python # Inspired from https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions name: Python package on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: env: DISPLAY: ':99.0' runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.8", "3.11", "3.12"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | sudo apt install libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 x11-utils /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX python -m pip install --upgrade pip python -m pip install flake8 pytest pip install PyQt5 qtpy numpy pip install . - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest PythonQwt-0.12.7/.github/workflows/python-package-PyQt6.yml000066400000000000000000000034341465265754400236170ustar00rootroot00000000000000# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python # Inspired from https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions name: Python package on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: env: DISPLAY: ':99.0' runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.8", "3.11", "3.12"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | sudo apt install libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 x11-utils sudo apt install libegl1-mesa libxcb-cursor0 /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX python -m pip install --upgrade pip python -m pip install flake8 pytest pip install PyQt6 qtpy numpy pip install . - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest PythonQwt-0.12.7/.github/workflows/python-package-PySide6.yml000066400000000000000000000034311465265754400241140ustar00rootroot00000000000000# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python # Inspired from https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions name: Python package on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: env: DISPLAY: ':99.0' runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.8", "3.11", "3.12"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | sudo apt install libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 x11-utils sudo apt install libegl1 libxcb-cursor0 /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX python -m pip install --upgrade pip python -m pip install flake8 pytest pip install PySide6 qtpy numpy pip install . - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest PythonQwt-0.12.7/.gitignore000066400000000000000000000015541465265754400155750ustar00rootroot00000000000000.spyderproject .spyproject qwt-6.* qwt/tests/demo.png doc.zip doctmp/ # Visual Studio Code .env # Created by https://www.gitignore.io/api/python ### Python ### # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *,cover # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ PythonQwt-0.12.7/.hgtags000066400000000000000000000010621465265754400150550ustar00rootroot0000000000000062c1865dfdafe71311bb0cac30af71409e466a7a v6.1.2alpha1 7e90ab6db012fa323e31421926f1c19cb1ebe02b v6.1.2alpha2 446030e474b9b9a14b789d70696968e16acc9e5e v6.1.2alpha3 7064b469eea1696ab85fc471f7568e6f5cfecb6e v6.1.2a3 1050efc1f915a3bf04dc925f44beb23e20c8ead5 v6.1.2a4 1050efc1f915a3bf04dc925f44beb23e20c8ead5 v6.1.2a4 e5cb19d0721cda2c5a97533be64f1834dd92233e v6.1.2a4 e5cb19d0721cda2c5a97533be64f1834dd92233e v6.1.2a4 aa2d7302a28b22592acca32ac6aa6166b79ccaab v6.1.2a4 8e044d5aa6eb6aaaf9a7a506f05d1fa8a3663a8d v6.1.2a5 be644cd20052d4a1219bd6948c2ce973396f8385 v6.1.2a7 PythonQwt-0.12.7/.pylintrc000066400000000000000000000007161465265754400154510ustar00rootroot00000000000000[FORMAT] # Essential to be able to compare code side-by-side (`black` default setting) # and best compromise to minimize file size max-line-length=88 [TYPECHECK] ignored-modules=qtpy.QtWidgets,qtpy.QtCore,qtpy.QtGui [MESSAGES CONTROL] disable=wrong-import-order [DESIGN] max-args=8 # default: 5 max-attributes=12 # default: 7 max-branches=17 # default: 12 max-locals=20 # default: 15 min-public-methods=0 # default: 2 max-public-methods=25 # default: 20PythonQwt-0.12.7/.readthedocs.yaml000066400000000000000000000006421465265754400170310ustar00rootroot00000000000000# Read the Docs configuration file for Sphinx projects # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details version: 2 build: os: ubuntu-22.04 tools: python: "3.11" jobs: post_create_environment: - pip install QtPy PyQt5 numpy sphinx: configuration: doc/conf.py formats: - pdf python: install: - method: pip path: . extra_requirements: - doc PythonQwt-0.12.7/.vscode/000077500000000000000000000000001465265754400151415ustar00rootroot00000000000000PythonQwt-0.12.7/.vscode/launch.json000066400000000000000000000013451465265754400173110ustar00rootroot00000000000000{ // Utilisez IntelliSense pour en savoir plus sur les attributs possibles. // Pointez pour afficher la description des attributs existants. // Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python : Test launcher", "type": "python", "request": "launch", "program": "${workspaceFolder}/qwt/tests/__init__.py", "console": "integratedTerminal" }, { "name": "Python : Current file", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] }PythonQwt-0.12.7/.vscode/settings.json000066400000000000000000000015701465265754400176770ustar00rootroot00000000000000{ "[bat]": { "files.encoding": "cp850", }, "editor.rulers": [ 88 ], "files.exclude": { "**/__pycache__": true, "**/.pytest_cache": true, "**/.hypothesis": true, "**/*.pyc": true, "**/*.pyo": true, "**/*.pyd": true, ".venv": true }, "files.trimFinalNewlines": true, "files.trimTrailingWhitespace": true, "python.defaultInterpreterPath": "${env:PPSTACK_PYTHONEXE}", "editor.formatOnSave": true, "python.analysis.autoFormatStrings": true, "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true, "python.testing.pytestPath": "pytest", "python.testing.pytestArgs": [], "[python]": { "editor.defaultFormatter": "charliermarsh.ruff" }, "editor.codeActionsOnSave": { "source.organizeImports": "explicit", }, }PythonQwt-0.12.7/.vscode/tasks.json000066400000000000000000000163101465265754400171620ustar00rootroot00000000000000{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "Run Coverage", "type": "shell", "command": "cmd", "args": [ "/c", "run_coverage.bat" ], "options": { "cwd": "scripts", "env": { "UNATTENDED": "1", "PYTHON": "${env:PPSTACK_PYTHONEXE}" } }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "dedicated", "showReuseMessage": true, "clear": true } }, { "label": "Run pytest", "type": "shell", "command": "cmd", "args": [ "/c", "run_pytest.bat" ], "options": { "cwd": "scripts", "env": { "UNATTENDED": "1", "PYTHON": "${env:PPSTACK_PYTHONEXE}" } }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "dedicated", "showReuseMessage": true, "clear": true } }, { "label": "Take screenshots", "type": "shell", "command": "cmd", "args": [ "/c", "take_screenshots.bat" ], "options": { "cwd": "scripts", "env": { "UNATTENDED": "1", "PYTHON": "${env:PPSTACK_PYTHONEXE}" } }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "dedicated", "showReuseMessage": true, "clear": true } }, { "label": "Clean Up", "type": "shell", "command": "cmd", "args": [ "/c", "clean_up.bat" ], "options": { "cwd": "scripts" }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false } }, { "label": "Run Pylint", "type": "shell", "command": "cmd", "args": [ "/c", "run_pylint.bat", // "--disable=R0801,C0103,C0114,C0115,C0116,W0612,W0613", "--disable=fixme,C,R,W", ], "options": { "cwd": "scripts", "env": { "UNATTENDED": "1", "PYTHON": "${env:PPSTACK_PYTHONEXE}" } }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "dedicated", "showReuseMessage": true, "clear": true } }, { "label": "Run Ruff", "type": "shell", "command": "cmd", "args": [ "/c", "run_ruff.bat", ], "options": { "cwd": "scripts", "env": { "PYTHON": "${env:PPSTACK_PYTHONEXE}", "UNATTENDED": "1" } }, "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "dedicated", "showReuseMessage": true, "clear": true } }, { "label": "Build documentation", "type": "shell", "command": "cmd", "options": { "cwd": "scripts", "env": { "PYTHON": "${env:PPSTACK_PYTHONEXE}", "UNATTENDED": "1" } }, "args": [ "/c", "build_doc.bat" ], "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": true } }, { "label": "Build Python packages", "type": "shell", "command": "cmd", "options": { "cwd": "scripts", "env": { "PYTHON": "${env:PPSTACK_PYTHONEXE}", "UNATTENDED": "1" } }, "args": [ "/c", "build_dist.bat" ], "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": true }, "dependsOrder": "sequence", "dependsOn": [ "Clean Up", ] }, { "label": "Run test venv", "type": "shell", "command": "cmd", "options": { "cwd": "scripts", "env": { "PYTHON": "${env:PPSTACK_PYTHONEXE}", "UNATTENDED": "1" } }, "args": [ "/c", "run_test_venv.bat" ], "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": true }, }, ] }PythonQwt-0.12.7/CHANGELOG.md000066400000000000000000000341731465265754400154210ustar00rootroot00000000000000# PythonQwt Releases ## Version 0.12.7 - Fixed random crashes (segfaults) on Linux related to conflicts between Qt and Python reference counting mechanisms: - This issue was only happening on Linux, and only with Python 3.12, probably due to changes in Python garbage collector behavior introduced in Python 3.12. Moreover, it was only triggered with an extensive test suite, such as the one provided by the `PlotPy` project. - The solution was to derive all private classes containing Qt objects from `QObject` instead of `object`, in order to let Qt manage the reference counting of its objects. - This change was applied to the following classes: - `QwtLinearColorMap_PrivateData` - `QwtColumnSymbol_PrivateData` - `QwtDynGridLayout_PrivateData` - `QwtGraphic_PrivateData` - `QwtLegendLabel_PrivateData` - `QwtNullPaintDevice_PrivateData` - `QwtPlotCanvas_PrivateData` - `QwtPlotDirectPainter_PrivateData` - `QwtPlotGrid_PrivateData` - `QwtPlotLayout_PrivateData` - `QwtPlotMarker_PrivateData` - `QwtPlotRenderer_PrivateData` - `QwtPlot_PrivateData` - `QwtAbstractScaleDraw_PrivateData` - `QwtScaleDraw_PrivateData` - `QwtScaleWidget_PrivateData` - `QwtSymbol_PrivateData` - `QwtText_PrivateData` - Removed deprecated code regarding PyQt4 compatibility ## Version 0.12.6 - Fixed random crashes (segfaults) on Linux related to Qt objects stored in cache data structures (`QwtText` and `QwtSymbol`) - Test suite can simply be run with `pytest` and specific configuration (`conftest.py`) will be taken into account (previously, the test suite has to be run with `pytest qwt` in order to be successfully configured) ## Version 0.12.5 - Add support for NumPy 2.0: - Use `numpy.asarray` instead of `numpy.array(..., copy=False)` - Update requirements to remove the NumPy version upper bound constraint ## Version 0.12.4 - Fixed segmentation fault issue reported in the `PlotPy` project: - See [PlotPy's Issue #13](https://github.com/PlotPyStack/PlotPy/issues/13) for the original issue. - The issue was caused by the `QwtSymbol` class constructor, and more specifically by its private data object, which instanciated an empty `QtPainterPath` object, causing a segmentation fault on Linux, Python 3.12 and PyQt5. ## Version 0.12.3 - Fixed `Fatal Python error` issue reported in the `PlotPy` project: - See [PlotPy's Issue #11](https://github.com/PlotPyStack/PlotPy/issues/11) for the original issue, even if the problem is not directly pointed out in the issue comments. - The issue was caused by the `QwtAbstractScaleDraw` cache mechanism, which was keeping references to `QSizeF` objects that were deleted by the garbage collector at some point. This was causing a segmentation fault, but only on Linux, and only when executing the `PlotPy` test suite in a specific order. - Thanks to @yuzibo for helping to reproduce the issue and providing a test case, that is the `PlotPy` Debian package build process. ## Version 0.12.2 For this release, test coverage is 72%. - Preparing for NumPy V2 compatibility: this is a work in progress, as NumPy V2 is not yet released. In the meantime, requirements have been updated to exclude NumPy V2. - Fix `QwtPlot.axisInterval` (was raising `AttributeError`) - Removed unnecessary dependencies (pytest-qt, pytest-cov) - Moved `conftest.py` to project root - Project code formatting: using `ruff` instead of `black` and `isort` ## Version 0.12.1 - Fixed `ColorStops.stops` method (was returning a copy of the list of stops instead of the list itself) ## Version 0.12.0 - 30% performance improvement (measured by `qwt.tests.test_loadtest`) by optimizing the `QwtAbstractScaleDraw.tickLabel` method: - Suppressed an unnecessary call to `QFont.textSize` (which can be quite slow) - Cached the text size with the label `QwtText` object - Added support for margins in `QwtPlot` (see Issue #82): - Default margins are set to 0.05 (5% of the plot area) at each side of the plot - Margins are adjustable for each plot axis using `QwtPlot.setAxisMargin` (and `QwtPlot.axisMargin` to get the current value) - Added an additional margin to the left of ticks labels: this margin is set to one character width, to avoid the labels to be truncated while keeping a tight layout - Slighly improved the new flat style (see V0.7.0) by selecting default fonts - API breaking change: `QwtLinearColorMap.colorStops` now returns a list of `ColorStop` objects instead of the list of stop values ## Version 0.11.2 - Fixed `TypeError` on `QwtPlotLayout.minimumSizeHint` ## Version 0.11.1 - Fixed remaining `QwtPainter.drawPixmap` call ## Version 0.11.0 - Dropped support for Python 3.7 and earlier - Dropped support for PyQt4 and PySide2 - Removed unnecessary argument `numPoints` in `QwtSymbol.drawSymbols` and `QwtSymbol.renderSymbols` methods - `QwtPlotCanvas`: fixed `BackingStore` feature (`paintAttribute`) ## Version 0.10.6 - Qt6 support: - Handled all occurences of deprecated ``QWidget.getContentsMargins`` method. - Removed references to NonCosmeticDefaultPen - Fixed `QApplication.desktop` `AttributeError` - Fixed `QPrinter.HighResolution` `AttributeError` on Linux - Fixed `QPrinter.setColorMode` `AttributeError` on PyQt6/Linux - Fixed `QPrinter.setOrientation` deprecation issue - Fixed `QPrinter.setPaperSize` deprecation issue - Improved unit tests: - Ensure that tests are entirely executed before quitting (in unattended mode) - Added more tests on `qwt.symbols` - Added tests on `qwt.plot_renderer` - `qwt.plot_renderer`: fixed resolution type - `qwt.symbols`: fixed `QPointF` type mismatch - Removed CHM help file generation (obsolete) ## Version 0.10.5 - [Issue #81](https://github.com/PlotPyStack/PythonQwt/issues/81) - Signal disconnection issue with PySide 6.5.3 ## Version 0.10.4 - [Issue #80](https://github.com/PlotPyStack/PythonQwt/issues/80) - Print to PDF: AttributeError: 'NoneType' object has no attribute 'getContentsMargins' ## Version 0.10.3 - [Issue #79](https://github.com/PlotPyStack/PythonQwt/issues/79) - TypeError: unexpected type 'QSize' (thanks to @luc-j-bourhis) - Moved project to the [PlotPyStack](https://github.com/PlotPyStack) organization. - Unit tests: added support for ``pytest`` and ``coverage`` (60% coverage as of today) - [Issue #74](https://github.com/PlotPyStack/PythonQwt/issues/74) - TypeError: QwtPlotDict.__init__() [...] with PySide 6.5.0 - [Issue #77](https://github.com/PlotPyStack/PythonQwt/issues/77) - AttributeError: 'XXX' object has no attribute '_QwtPlot__data' - [Issue #72](https://github.com/PlotPyStack/PythonQwt/issues/72) - AttributeError: 'QwtScaleWidget' object has no attribute 'maxMajor' / 'maxMinor' / 'stepSize' - [Issue #76](https://github.com/PlotPyStack/PythonQwt/issues/76) - [PySide] AttributeError: 'QwtPlotCanvas' object has no attribute 'Sunken' - [Issue #63](https://github.com/PlotPyStack/PythonQwt/issues/71) - TypeError: 'PySide2.QtCore.QRect' object is not subscriptable ## Version 0.10.2 - Fixed type mismatch issues on Linux ## Version 0.10.1 - Added support for PyQt6. ## Version 0.10.0 - Added support for QtPy 2 and PySide6. - Dropped support for Python 2. ## Version 0.9.2 - Curve plotting: added support for `numpy.float32` data type. ## Version 0.9.1 - Added load test showing a large number of plots (eventually highlights performance issues). - Fixed event management in `QwtPlot` and removed unnecessary `QEvent.LayoutRequest` emission in `QwtScaleWidget` (caused high CPU usage with `guiqwt.ImageWidget`). - `QwtScaleDiv`: fixed ticks initialization when passing all arguments to constructor. - tests/image.py: fixed overriden `updateLegend` signature. ## Version 0.9.0 - `QwtPlot`: set the `autoReplot` option at False by default, to avoid time consuming implicit plot updates. - Added `QwtPlotItem.setIcon` and `QwtPlotItem.icon` method for setting and getting the icon associated to the plot item (as of today, this feature is not strictly needed in PythonQwt: this has been implemented for several use cases in higher level libraries (see PR #61). - Removed unused `QwtPlotItem.defaultIcon` method. - Added various minor optimizations for axes/ticks drawing features. - Fixed `QwtPlot.canvasMap` when `axisScaleDiv` returns None. - Fixed alias `np.float` which is deprecated in NumPy 1.20. ## Version 0.8.3 - Fixed simple plot examples (setup.py & plot.py's doc page) following the introduction of the new QtPy dependency (Qt compatibility layer) since V0.8.0. ## Version 0.8.2 - Added new GUI-based test script `PythonQwt-py3` to run the test launcher. - Added command-line options to the `PythonQwt-tests-py3` script to run all the tests simultenously in unattended mode (`--mode unattended`) or to update all the screenshots (`--mode screenshots`). - Added internal scripts for automated test in virtual environments with both PyQt5 and PySide2. ## Version 0.8.1 - PySide2 support was significatively improved betwen PythonQwt V0.8.0 and V0.8.1 thanks to the new `qwt.qwt_curve.array2d_to_qpolygonf` function. ## Version 0.8.0 - Added PySide2 support: PythonQwt is now compatible with Python 2.7, Python 3.4+, PyQt4, PyQt5 and PySide2! ## Version 0.7.1 - Changed QwtPlotItem.detachItems signature: removed unnecessary "autoDelete" argument, initialiazing "rtti" argument to None (remove all items) - Improved Qt universal support (PyQt5, ...) ## Version 0.7.0 - Added convenience functions for creating usual objects (curve, grid, marker, ...): - `QwtPlotCurve.make` - `QwtPlotMarker.make` - `QwtPlotGrid.make` - `QwtSymbol.make` - `QwtText.make` - Added new test launcher with screenshots (automatically generated) - Removed `guidata` dependency thanks to the new specific GUI-based test launcher - Updated documentation (added more examples, using automatically generated screenshots) - QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default - QwtAbstractScaleDraw: added option to set the tick color lighter factor for each tick type (minor, medium, major) -- this feature is used with the new flatStyle option - Fixed obvious errors (+ poor implementations) in untested code parts - Major code cleaning and formatting ## Version 0.6.2 - Fixed Python crash occuring at exit when deleting objects (Python 3 only) - Moved documentation to - Added unattended tests with multiple versions of WinPython: - WinPython-32bit-2.7.6.4 - WinPython-64bit-2.7.6.4 - WinPython-64bit-3.4.4.3 - WinPython-64bit-3.4.4.3Qt5 - WPy64-3680 - WPy64-3771 - WPy64-3830 - Added PyQt4/PyQt5/PySide automatic switch depending on installed libraries ## Version 0.6.1 - Fixed rounding issue with PythonQwt scale engine (0...1000 is now divided in 200-size steps, as in both Qwt and PyQwt) - Removed unnecessary mask on scaleWidget (this closes #35) - CurveBenchmark.py: fixed TypeError with numpy.linspace (NumPy=1.18) ## Version 0.6.0 - Ported changes from Qwt 6.1.2 to Qwt 6.1.5 - `QwtPlotCanvas.setPaintAttribute`: fixed PyQt4 compatibility issue for BackingStore paint attribute - Fixed DataDemo.py test script (was crashing ; this closes #41) - `QwtPainterClass.drawBackground`: fixed obvious bug in untested code (this closes #51) - `qwtFillBackground`: fixed obvious bug in untested code (this closes #50) - `QwtPainterClass.fillPixmap`: fixed obvious bug in untested code (this closes #49) - `QwtStyleSheetRecorder`: fixed obvious bug in untested code (this closes #47, closes #48 and closes #52) - Added "plot without margins" test for Issue #35 ## Version 0.5.5 - `QwtScaleMap.invTransform_scalar`: avoid divide by 0 - Avoid error when computing ticks: when the axis was so small that no tick could be drawn, an exception used to be raised ## Version 0.5.4 Fixed an annoying bug which caused scale widget (axis ticks in particular) to be misaligned with canvas grid: the user was forced to resize the plot widget as a workaround ## Version 0.5.3 - Better handling of infinity and `NaN` values in scales (removed `NumPy` warnings) - Now handling infinity and `NaN` values in series data: removing points that can't be drawn - Fixed logarithmic scale engine: presence of values <= 0 was slowing down series data plotting ## Version 0.5.2 - Added CHM documentation to wheel package - Fixed `QwtPlotRenderer.setDiscardFlag`/`setLayoutFlag` args - Fixed `QwtPlotItem.setItemInterest` args - Fixed `QwtPlot.setAxisAutoScale`/`setAutoReplot` args ## Version 0.5.1 - Fixed Issue #22: fixed scale issues in [CurveDemo2.py](qwt/tests/CurveDemo2.py) and [ImagePlotDemo.py](qwt/tests/ImagePlotDemo.py) - `QwtPlotCurve`: sticks were not drawn correctly depending on orientation - `QwtInterval`: avoid overflows with `NumPy` scalars - Fixed Issue #28: curve shading was broken since v0.5.0 - setup.py: using setuptools "entry_points" instead of distutils "scripts" - Showing curves/plots number in benchmarks to avoid any misinterpretation (see Issue #26) - Added Python2/Python3 scripts for running tests ## Version 0.5.0 - Various optimizations - Major API simplification, taking into account the feature that won't be implemented (fitting, rounding, weeding out points, clipping, etc.) - Added `QwtScaleDraw.setLabelAutoSize`/`labelAutoSize` methods to set the new auto size option (see [documentation](http://pythonhosted.org/PythonQwt/)) - `QwtPainter`: removed unused methods `drawRoundFrame`, `drawImage` and `drawPixmap` ## Version 0.4.0 - Color bar: fixed axis ticks shaking when color bar is enabled - Fixed `QwtPainter.drawColorBar` for horizontal color bars (typo) - Restored compatibility with original Qwt signals (`QwtPlot`, ...) ## Version 0.3.0 Renamed the project (python-qwt --> PythonQwt), for various reasons. ## Version 0.2.1 Fixed Issue #23: "argument numPoints is not implemented" error was showing up when calling `QwtSymbol.drawSymbol(symbol, QPoint(x, y))`. ## Version 0.2.0 Added docstrings in all Python modules and a complete documentation based on Sphinx. See the Overview section for API limitations when comparing to Qwt. ## Version 0.1.1 Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building the package): typo in "PythonQwt-tests" script name (in [setup script](setup.py)) ## Version 0.1.0 First alpha public release. PythonQwt-0.12.7/LICENSE000066400000000000000000001012611465265754400146060ustar00rootroot00000000000000PythonQwt License Agreement --------------------------- [1] Software licensed under the terms of Qwt License The essential part of the code was translated to Python from Qwt C++ library and is thus licensed under the terms of the LGPL License from which the Qwt License 1.0 is derived from (see [***] for more details). [2] Software licensed under the terms of the MIT license Independent Python modules purely based on new code (no contamination from the LGPL license inherited from the Qwt Project) are distributed under the terms of the MIT License (see [*] and [**]). [3] Software licensed under the terms of PyQwt License Some files under the "tests" subfolder of the main Python package directory were derived from PyQwt PyQt4 examples and are thus distributed under the terms of the GPL License from which the PyQwt License 1.0 is derived from (see [****] for more details). [*] PythonQwt License Agreement for new and exclusive Python material (MIT) Copyright (c) 2015 Pierre Raybaut Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. [**] Spyder License Agreement Spyder License Agreement (MIT License) -------------------------------------- Copyright (c) 2009-2013 Pierre Raybaut Copyright (c) 2013-2015 The Spyder Development Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. [***] PythonQwt License Agreement for code translated from C++ (Qwt License) Copyright (c) 2002 Uwe Rathmann, for the original C++ code Copyright (c) 2015 Pierre Raybaut, for the Python translation and optimization Qwt License Version 1.0, January 1, 2003 The Qwt library and included programs are provided under the terms of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following exceptions: 1. Widgets that are subclassed from Qwt widgets do not constitute a derivative work. 2. Static linking of applications and widgets to the Qwt library does not constitute a derivative work and does not require the author to provide source code for the application or widget, use the shared Qwt libraries, or link their applications or widgets against a user-supplied version of Qwt. If you link the application or widget to a modified version of Qwt, then the changes to Qwt must be provided under the terms of the LGPL in sections 1, 2, and 4. 3. You do not have to provide a copy of the Qwt license with programs that are linked to the Qwt library, nor do you have to identify the Qwt license in your program or documentation as required by section 6 of the LGPL. However, programs must still identify their use of Qwt. The following example statement can be included in user documentation to satisfy this requirement: [program/widget] is based in part on the work of the Qwt project (http://qwt.sf.net). ---------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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! [****] PyQwt License Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt code Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further developments (e.g. ported to PythonQwt API) PyQwt LICENSE Version 3, March 2006 PyQwt is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. PyQwt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PyQwt; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. In addition, as a special exception, Gerard Vermeulen gives permission to link PyQwt dynamically with non-free versions of Qt and PyQt, and to distribute PyQwt in this form, provided that equally powerful versions of Qt and PyQt have been released under the terms of the GNU General Public License. If PyQwt is dynamically linked with non-free versions of Qt and PyQt, PyQwt becomes a free plug-in for a non-free program. PythonQwt-0.12.7/MANIFEST.in000066400000000000000000000000341465265754400153330ustar00rootroot00000000000000graft doc include *.desktopPythonQwt-0.12.7/PythonQwt-tests.desktop000066400000000000000000000004221465265754400203060ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Type=Application Name=PythonQwt-tests GenericName=PythonQwt Test launcher Comment=The PythonQwt library provides Qt plotting widgets for Python TryExec=PythonQwt-tests Exec=PythonQwt-tests Icon=PythonQwt.svg Categories=Education;Science;Physics; PythonQwt-0.12.7/README.md000066400000000000000000000112521465265754400150600ustar00rootroot00000000000000# PythonQwt: Qt plotting widgets for Python [![license](https://img.shields.io/pypi/l/PythonQwt.svg)](./LICENSE) [![pypi version](https://img.shields.io/pypi/v/PythonQwt.svg)](https://pypi.org/project/PythonQwt/) [![PyPI status](https://img.shields.io/pypi/status/PythonQwt.svg)](https://github.com/PlotPyStack/PythonQwt) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/PythonQwt.svg)](https://pypi.python.org/pypi/PythonQwt/) [![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) [![Documentation Status](https://readthedocs.org/projects/pythonqwt/badge/?version=latest)](https://pythonqwt.readthedocs.io/en/latest/?badge=latest) â„¹ï¸ Created in 2014 by Pierre Raybaut and maintained by the [PlotPyStack](https://github.com/PlotPyStack) organization. ![PythonQwt Test Launcher](https://raw.githubusercontent.com/PlotPyStack/PythonQwt/master/qwt/tests/data/testlauncher.png) The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. The `PythonQwt` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). See documentation [online](https://pythonqwt.readthedocs.io/en/latest/) or [PDF](https://pythonqwt.readthedocs.io/_/downloads/en/latest/pdf/) for more details on the library and [changelog](CHANGELOG.md) for recent history of changes. ## Sample ```python import qwt import numpy as np app = qwt.qt.QtGui.QApplication([]) # Create plot widget plot = qwt.QwtPlot("Trigonometric functions") plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) # Create two curves and attach them to plot x = np.linspace(-10, 10, 500) qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) # Resize and show plot plot.resize(600, 300) plot.show() app.exec_() ``` ![Simple plot example](doc/_static/QwtPlot_example.png) ## Examples (tests) The GUI-based test launcher may be executed from Python: ```python from qwt import tests tests.run() ``` or from the command line: ```bash PythonQwt ``` Tests may also be executed in unattended mode: ```bash PythonQwt-tests --mode unattended ``` ## Overview The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations. The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `guiqwt`: `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt. ## Roadmap The `qwt` package short-term roadmap is the following: - [X] Drop support for PyQt4 and PySide2 - [X] Drop support for Python < 3.8 - [X] Replace `setup.py` by `pyproject.toml`, using `setuptools` (e.g. see `guidata`) - [ ] Add more unit tests: the ultimate goal is to reach 90% code coverage ## Dependencies ### Requirements - Python >=3.8 - PyQt5, PyQt6 or PySide6 - QtPy >= 1.3 - NumPy >= 1.5 ### Optional dependencies - coverage, pytest (for unit tests) - sphinx (for documentation generation) ## Installation From the source package: ```bash python -m build ``` ## Copyrights ### Main code base - Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code - Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python translation and optimization - Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and exclusive Python material ### PyQt, PySide and Python2/Python3 compatibility modules - Copyright © 2009-2013 Pierre Raybaut - Copyright © 2013-2015 The Spyder Development Team ### Some examples - Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code - Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and further developments (e.g. ported to PythonQwt API) ## License The `qwt` Python package was partly (>95%) translated from Qwt C++ library: the associated code is distributed under the terms of the LGPL license. The rest of the code was either wrote from scratch or strongly inspired from MIT licensed third-party software. See included [LICENSE](LICENSE) file for more details about licensing terms. PythonQwt-0.12.7/doc/000077500000000000000000000000001465265754400143455ustar00rootroot00000000000000PythonQwt-0.12.7/doc/_static/000077500000000000000000000000001465265754400157735ustar00rootroot00000000000000PythonQwt-0.12.7/doc/_static/PythonQwt_logo.png000066400000000000000000000201171465265754400214770ustar00rootroot00000000000000‰PNG  IHDR}}€l% pHYs  Û"¦tEXtSoftwarewww.inkscape.org›î<ÜIDATxœí]y”TÅÕÿÕëufXFF@¢0€@Ð5‚Ѹý4ŠKŽÑ/¢Fð‰ ¨Y0'1d1'1Fи¡1‚`Ü5&• fÌ(Ê(‹² ÌÖ=Ó¯¾?èש®¾·–žAýŒ¿sæÌëzU·î­{ëÞ[õ6!¥Ä'øïBüÃf Þ~ûíþ‰D¢Ÿ¢ @Uýs¹\_!D<‹r¹‚ ÈÅb±ùãíaîèêêÚ±ï¾ûîûP¥ø >ª3½±±1ÇÇ&“É1a0T1T1Àp!D”2.„(´B@ý­–I)¡×Í£5‚-š…ohМËåÞN¥RëúöíÛ„™a|$”ÞÜÜ< À!aŽBŒ0N±?€NY% µ(·Ä((!Ê;… Ö!Ö„a¸:‘H¼Ô§OŸ-=üC®ôgžy&>lذ‰±Xì!Ä$S±{æZ• +Õ¤\ê?U7úmëƒ(ß(„ø›”ò…x<þ·ÊÊʕ²åÆ¢ôæææQÙlv†b†âH!DªÀ€¦€¨Ì4øz[j¶AF&càúá<‹b€Ç…¶¶¶.¯©©ùÈz‚=¥ôÄo¼1À 3„£û rÇ6EG‚ÀêÞmtMÇÔ9†~à!Ä2)åCUUU¯á#„^Uzccã8_ ‚`&€ÀÍ5G¿]Ü·‹BÕ™HÕUûSÛ¥†có . +r±.ŠÖËT†Ùd4—ðÀñá£hІ7)„xAJyW{{û]ÕÕÕ»J}([鯿þú1A\)„8@`ˆuÿéŒ1†è÷ßD×Å;èÇÑo7îë-lî_É7v !î° •Jý ¼”^__ŸŒÅb'Ap€Ã D\¡‹{·ÑàêºôíJË7ÄPm£$Ò&þ·ð¤âÖT*µÀϬ”ÞØØØOJyY†ÿ+voŽ@®®.´¶¶þ‡˜6( Ëmeêo…QÇœ 6õm '®¼q³ÞƧb€yÉdòìÁåŸQéëׯOg³ÙK¤”רÖõÕWQ__϶?þøã ŠÚÙ’,›p1®ñÖ¥>(Z¾üø©pc2™¼{@ùW^__z&“Y†áO¡(ÜRJ¨F¥*)*çRoAmOµÕëšf¼^Fñ¤–EǪ\&O¥ƒ’Ÿiw €»ºººVe2™ãŒDË@‰Ò×®]{|CCê î“RîO)É7ù£ê«tuãPÏëu©ó:&>(—NÓË8wÍ)Ÿ3ZŠÃxÁÒîîî%Ùlv,+˜' JohhÒÐÐp'€G°ÛÒH†¨Á1AmÔ ÒË©óœÁq ‹~S†¤åf]¦ó¤Òå¼ndŒ|3‚ øWww÷Ïô)aÈ1!D°Ï>û|À_êo7mÚ„÷Þ{%^WW‡ŠŠŠB.þ–Wõó¦}S voÈØ ±'|êu8#çÆ>ÿ?p˜”ò,)心 ({™œ~úé/„ax€~@ùñÊÝrÞÂÖ‡)S3›ŠÁj¹Úžâ‰Šó¦cW¾9Ïä8ÆŸ°4—ËÝŽ¼Î|˜Äu®»,›Û£` JxSl¦b¿‰“Òl ¦äµÉo‹Ý”¬Üxs9‹ÒÇùaþ ÀQ”ì&%r”‹£Ü’o\Wçf™ZFÕÕÏs %çVM ¥ÚFòÚä§äq‘?¢ç*? ¤”û…aød†s‘¿÷À%Ù;7ó,K ¶ÄÉTF ¬J×– Q}P1_mç+¿-_Øò«ŠÇn~GJùò¹l(Ku\nLçhØb¥Ï@™©+ÍNôLœ3,Ê8ïa’_— §]£¤”/8„m”Gœ‹{*c èèè(éÔ”¹ÀêÕ«‘Jî—(Ð6l†Z$¬Ú§êú¨‹3z=Šg*CVÏëtM†£Í¬B*ê0%­\ŸúyO—Çp)åóBˆ™î)i”G\í€c¬½½mmm%ç³Ù,GÐÖÖFÖÉd2l] 6·JÅHJá6f’ßµ\ç›3JŠõœI~Š®6QRî0À Þ™: å&l6˜\—©OSŒU³aÎuFu9ï ÿ6ñbš™êyÝý›ÆÓ%¤Ž W/|ÀÏ”tXHä¸eb¢·AÍ=&Úâ>7°¶DOׇ-?àh¹Ž¡Í«qòS¡'ËüZÂèPLï p17‚šPq Ó“/Ž5»):6>MÇÅmãÕåæä§Î)¸ÀB(Kº@u‹&Æzz–J ¤þéíÔc“R©Ø¯S™³ÚVï—S4¥0Jfý˜ãÛä±t>¹É“Çÿøò®Þ8Ó÷¤k·—‹uSq“£É¹½\MmŠÖù¤ŒÅeâØ”ËÑãägô6Àbɦ/i ‹!/~ìMèy1ñx‰D¢¤œkç’ÕrítزŽ.&¨v6ú&zœ·pÍêu>l´ó˜`“X³fM@ÂfMêqÄÜk¯½f¼sfÆŒ^·LEt©{Ì|x£ÚºžwíƒpÓà»È¯–›ú0õíàY¢ÑuÍp]—rzLvaŒr­¦z\™É›–‹¶:Ñyʵr9†kn¤çœû6•;„ä hÉfRN9BPƒç2è:¶¤ˆS€-¹Ó5µœJ©ö¦6T¿®ëpÓq5…DÎF¼Ü¤Îo\BuiÜl¢òe¢¥òË—ȹÆòräçŒÖ…߆Յ×Êå¸ÀÔ>ú¾û.ÄK/!÷úëÀ¦M@g' 0`‚º:ãÆALš¡%.É-«§f³®0ùMüpòëe”rÕsÔøê¨°÷n„s…&p1Gtt |àÈûîƒ\³†mÝû+öÞ±/} ÁÌ™Æ+რ&õÁâf¹ÎHŠd#&K‰üš‚¸•åÝ8øLÈÂÞ;ÕXw_ºð¾aüå/9á÷¾gTxQ»íÛÑý§?!;}:ºÎ>áÚµE|pîœ,E»Äfªo[ÞC…ÍHô>{šgJLwÉB]c¥Î¸”X»á™g"¼â ÈÍ›ÛëÈ=û,²Ó§£{î\ÈüÕ:—¸ÈõÛE~S f¬zìê¦u£ÕÛúÄqäU6ÎÒM%…3K– <ùdàå—3Avw£ë7¿Aæ„ ß|³dÖèüúð\ÔA~ÊEëJSÏS4ô6ºPzàôä=Ó9pƒæjURJàŽ; ¯¼0\C/áêÕè8î8ä^|±ÐÇ›g“bôc›ôc*fSu(£¡úö™ÕŒî*Ó™e!%*o¾rî\ ܃¯biiA欳{ê)’7*†ë0Éoʼպ&ËeÞz=ÎËèü¸è¦ä*›ÞŸ‹¥ôÔSH=ø µ^¯ “AçE!÷Ê+ÆÙýÖì²<2Éï:û8ÈÊZýk¼7}:Zn¸Ë—CîÜYÒeÜyq“epK[âpÀÊ•ÿüóÖÎ{Èœ}6Ò=„˜²¬Jg„KnBy õœ”ö7m¨m]êv.]ŠÌ³Ï"óì³…²ø§>…ÔäÉHqÒS¦ >fÌî} ¢ç\kÍš5Y!DáRÕ›ùÔ£ÊCÞxÇÜuDîÃyßž¨­Eå’%µµ»3¼«Ç6÷èBƒ«çÚNvvâÝÚZÈöv£|±!C:üp¤§LAÅÑG#9q¢‘O …ìs]> \Ek+ŽxàMá ß}çž XnÚ,jÓKòSô\ÚI)‘}ñE«Â ·q#Ú|Û®º ;,pÚwÐAî½SÔ%gI‡,]Š”ã{áêÕÈÞ|3yŽ M®ò»@­ËµÓWO>éD[EÅ´ilÂgBÉŽœÚJ^"+ÖÛŒ\¹Ã¼/B¿~>÷9ˆèÙßüásÏpÛžåΔ¼Q‰TôÛ´‘£÷#¥Dæé§ý©£Ž"ù´ºw[FÎY©Z^µc&-_îÇ´ŠŠ sæ ñÊ+ˆßwO?IJeŽ8¢|šR¢ã²Ë ·n5n€˜\¡i–ªÉ­)†«¿9C‘Û·#»r¥—x‰ <¸„O›L@þU`£:c&¢Ÿyüq$ÊÜ|55ˆ/^ŒØ7¿ ¤RÿÈqã¸ûnį½V½ìï¹y3:/»¬hŸÀeí+w£‡¢Ç•@ç²e€gT©¸vÛ2U‡ñ}ïÑ;v »»»„X[[mØ€áŽNJ°ï¾ˆÝ? eÚ!„@üÒK!jkÑ5kVY›<ÝO>‰ìOŠäìÙEôÕ{)PKUWèKDuGŽ2²ö‡ö¢éc-¡£öe‚õ%ÿB455‘5íliÁç{¬ô ôí‹Øí·µµ%1TuWRJÄN: ²¥Ý×]WNOÈÜr b“'#>e 9Ë©ßz·ì¢<‡i ¨€loGæ‰'¼äÉ$RJèÓCMñF¿iscÃ^}››½Îs‰à¿€=š8E3?ï<į¸Â¿/CtÌšÙÚZöÖ²K;2^k‰œnO>é´TS‘:òHUUÖíbE÷ȹ®C@„!Æþõ¯^ÌFØyÒI”ÌSå:Ž˜=±£.«O¹a27ÜPT¦ÏXSRkÛÀQéè4tcPÓùÈ#>b*O<±@×gkõùÏcìØ±¬ÄdS ¢¹ T2‰Ôo ôïïܹ͋7ÜPbàTH3M=ùuYDFÕ¹|9dK‹ßñº:$,¼Ì³$£x¦`ÝêB ººC† Amm-{®)é4úÍž¡C‡bذaèÛ·/Ùç ©Øbß}‘œ7ÏŸ]‹#§Ý³çë&um«5‡h¿ë.ᆰN>ÙêMœ—l:Ãl£]» ÊXbˆ¯~8eXuŸz"ÉÒÌó?õTÄ¿øEož %:®»®°Ëg[{ÛÉ·§r¤¨N¸y32e$ÂUgži …NÙ»¾lщ¹Ö‡´·LYC\tQá'µ‘ »oj·Œ(:NÞtDe¥_r+W"{Ï=Ú:\’%Ûd¡Bgû¢E]]^¼&&L@rÂr,ô|Ã:Óuש+RÐ=ì[ªXˆ“N‚ÌoµªJu]«çu ǵµHÌšåÍtÌ›W´Sg’ßħ„£оp¡7Ÿ}Î:‹œ06bº5›nh€ø·ÿ‹‡Å¹ç–d¿zl1Q…N+qÉ%e]‡—[¶ sþ|¯Õ„ê¨äZDÇ™§ŸF÷ºu~L*Ï<³ˆÇu¾„œ^@¹WeÅòîÆg™SûÓöÉF¥”‰R7ÞèÍ#do» Ýù{ý¸˜H¹Pnð9€Ö ¼ù«˜6 ñü†ŒÚ‰7J^J@Y.Âïv!€ìi§9)ŒrS¶XIeú±©S?Îÿ벫 sæ@†¡1Ù¤\¨Í8Õ²\S2e\¯¨ºà‚’2.ùvN䨆E¼üòîLj=M§‘ýŠÊ\3r¨¸©"ñÝïÊ«I]Ñýâ‹Èæ—Qº"©äܺ m xß4•ù½ö¨?Nv•_È—FˆK—z1 ë'L€Ìï±sIŰ:«LËű؈H^|±7¿Ðùƒ Ì_DÒg·Þ—š˜RÐeÎm܈ö;ïôæ©êì³åeM\¿¶U†ŠÀTIÊÝW‚D.i}>–S®‘ZšQîÉ”‘rt¥”H\~9‚}öñæ9ܶ ×^[‡5ْψ϶[nììôc(CŸo|Ã(?Å“ ä—¢™õÏ;vxñÚÖ¿?¶ ^¤>sÕ¬ž[›«0¹Ù"ºUUHä•ç‹ìâÅÈcqK2½Nô_•%·q#Úÿðo^*fÌ@|ÿýù\‹øí‚’ .:D÷c¯Ÿ00$_º…R3‡rï¦å”Þ.yƈOžìÍ;´Ï™ƒpòoN±&£h½ùfÿY Ïe—ÑWÿ«åÜ ˆC 3¨Ç+á{?6òJ7ÀÄ µ^¶)ZW¸@ò'?’IoþåöíØ5s&d&Sâ}tÅrüFÇ]¯½†ö;îðæ!yðÁ¨˜:µ@OåA?¶­Ûuº¥m¤46B¼õ–³;Äöšÿ|UÂe)AÍnê¼^fÛ0‰‰ä%—xñ!·r%Ú¯¾ºˆ>·Tc!%vÍží}{3ô=[!c_!x/Ù8‹ žyÆ›ÙfåfG}6R«»wSB§ i[SK)‘úÖ·ì·Ÿ·Y¸óçñ«óÃÅw)%Úï¼Ùüûßĸq¨:õTV~“R–l\f¹óÎCîDxá…#G:1Ü7ߌÔW¾R¢™Ëa×W óþûË¢Ÿž>3fÑTe äàã=‹ÞDA­E¥”Xµj:‰uæ¶m۰ðq3tèP$“Éf†ŽáÇ“}q³Ú¿]Ê£ãÌüùÈüøÇ,Ï®ˆÊ /DrútĆE®¹­W\QÖÉ$jV¬@¢®®„gîØ&?‡¸ÉUEJÈf³%ße€.ËÝÈË•®®.rFrŒ›<ΫI`)%ÒW]…ÜŠè.cÓIEnõjìºòJ@¬¶á–-ÝÝeÓë3kâ£F‘ç8…ëKT›üŒwÎ¨å½ * ×ÿS}Ê¡×Ðoî\$>ûYg×ÌÕñÑUÉ3úRgO¸w½?õ·Éà(~LüqKHÆØÄ‰¨Z¼b¯½z$G¹HM›†¾—_NŽ7•³¨ÿõc8?}O êŠïœÁqq_?OÑ£úŒOš„>K–@Ô8}…º×øô§1`áBHÀI~Ó*G…‹¾JÖéTœH&“‰µ-•Ñ«H§ÓHæ¯r©tõÏvÙ\½Ë¾m·Ï´ˆƒ¾K– mæLäÊ}•ŠâcÇ¢zÙ2yã+?%'•És«W¯ÎAP¤Ó:W=¦Þ©bÆŒ8p I#úmJM|¸®ÙõsÜy!É ýê«‘Y´ˆ•©§ˆï¿?>þ8bC†”-õÙpnMN)Ø4* ‰·¥×ÓXb[bp1Ú” éõ¸¼@íGw›dfœJ¡òç?GŸÛnÛ#™}ò°ÃPýÄ…S|r|ëPó/j L0~v³72E“[6Õ§NÍ*ù1Í •ŽÇäé§c¯—_FÅ¥—BÄ­ïb²#PuÉ%¸|y!w°…,N~Ê}sò³ìP ø¬ùl Ö–¦U©OÎó¨49›\9ù)yt”õýt÷îc4ÜÆ §0.ë¥útç`øpT~ÿûP_>  u≔<…l_QÔ—¿Œ½ÿügTÿýïH~¸µONõ˜“ŸË8>Ñe‹½åÎxngÌæ‚u~¨ŒUÏ ¸Y¬»U‡“üHŸsÒçœH‰°¾]+V ܲáÖ­*+ ‚ø¨QHNž QQá$?W‡Ëm\hØPtÁÅ—1_Øb– ®/ІOŽ ž#õÁeåÄÆGlüx'>M¼ÛøÖa“ßE7ÆñõTÑ&…¨åMMMÈï–b÷çº$^¹¡SÈý6y‹––¼¡½ZE­»ß~ûaРAEç©õ1—pq ê¬\¹’ÜB ‘HàÐCee²”Ó÷Óu¸º5¹2Íê7’¯!€T*…±cÇzÏ [öOɱk×®¥«èß¿? ÄÊdÊ%lF•E´×¯_ÏÞ«N§q衇²žÎ¦›’çÓÕÎ)æ¹ó&PÙzo&ƒ.ÆióX>žLÍ–MŠ6¡§ rÄG9í>rßOwex.nÕ¶\tWõöåÄYª z{>RßO7Ñ1•q °Íêr³_µ=ulJN]×á>ðñ‰ï§»Ðà&?µŽ‹Ç¢h¹Bß¡xp‘¿7Æ–ê›CÑ÷Ó[[[ÑÑÑa%Ñ9.ùаuëVd´çÁ(ºííídöaâwÞ)È%>»ÔÕËÞÿ}–è|*•rÊ l2SçUžÛÚÚX^¤”xóÍ7h×ÔÔ ªªªø¼z7ìsÏ=‡MžoœømsÌ18òÈ#‹ÊÈׄ~‚(Ý’oŒüoWÙ>ÁÇ?*ïÛWŸàÿ+øö'îý¿8€,¹Êö >–xÀºíûé£GÆàÁƒÙ ½|ãÆØ¼y3ÛÓ˜1cPI<¹¡Ó~óÍ7Ùçâb±FŽé´Îö-×·´´`CþCjkkQ]]ÍŽ‡ÏE!kÖ¬!€x<Žƒ:ÈIÎ#F<à…EÑ¥ÕššìC¼Û–Íf³F¥9{ï½·uÓbÇŽÆ«l•o„Gí¨7]q2ñýÞ°a¶mÛÆÊsÀ`Tþ!CnsE?g뛫¿iÓ&ãU¶)S¦°—‰•²?8ù¡W¿Ÿ®£·ònŸÛ÷.‡ÏÞÌitz{b;XÕ³%}+€s )`n¢0¹.ߨïsÑÃFöu©Ÿ§»×ì Û¬ÎeÈ>}h àr¿äÚöÚ÷Ó9p"Ôó® .pP×§+¿\dêÛñX !Åb±Ù¶”0î¡ÍZñú믟†áƒ h[¯SBšbo̦b«Ëêuõ2].—çÂ]ä§Úõ’ü«|3?‡^€~iUŽ=úv)å×!Z¨8U¨ÌÄAÛo•–ɰ¢c*70ÅUŸœ‘rýûÈϹmê·I~¥n3€‹ãñøÁ½¥p t¦aݺuÕ®‘R^*„¨(4*Ã5ëÇÑo×™ý×g,õpb¹|¨}èüÌ;o{[~‚`›”òGÉdò<¿sj‡QéÖ­[·¯”ò;Bˆ™Ò*Ã%ËŒ…\{ý˜« Äzƒ®Í½ëp1^Ãñf!ÄOwîÜùëêêê]%Ä{ NJÐÔÔ48 Ë¥”—!†ˆ`ŠÍú¬qÙ2õa úlòéÏÖïùêAþ\£âÖ÷Þ{ïwC‡íõ™­ÃKéêëë“ÉdòDW8(´¨Œú¯—Qnº\ûÎbW£5Éæ)à© ~›L&àÿÍ2Q–ÒU466.¥Ó˜óöý¾2ðþ3kW-ßjذb]mwm4”×4Êò«(øè›k×=œ?úbÓÆœF¿Ì5V¿”qUö} _ÅCàÒ´ÿ¤¶<;û‚¶eØËÛñ“ì æqG~Y™þ²9MÔ¬½ßÞÚµ«Œ¶~VÇÑ¡Ž¶xÐÁuÑÖV> ƒ]ml´Úý¸äþ3~a ÛúZSå£ýe‡.µ§ïymtúí»Ø¶ß"péÂ/ŽzСßÝÑÝõõÃÈóRæƒF2×t5ȈŸdÏÄÈõ—m[…†òšÚÚÆFðó [¾F?ÇÓKÑS£:cÄp}ÑÃ]ïèèü?ÿ‘ pîB#X‡Žû-ú…EÁô0_æô{£7XÒµ#ý-½uXÔH°š>|sÆYÚéo8ÀŽþØÞ*:Üú9¿Ì5Ë»·“tÿIöHŒ\Y°úï† «W[þÆ%/©zjDG3è3BÞFØòµ«–>òµ†Ój;²«:îˆ>#Ôq%Žþ»ž7uûÌH?€îÓr½ÇÖ›«ªÓµøÚuë`¹ã›eÎ×4B¦4^<&Fοˆ_Xæš°L€ÆÆÆ‹5÷ ›*k—‡é'\{úŒPÇ¥>"ðþ¿Ls,]^cMÛŠ…‡«F¦9µ–ÍÖ{l¢ììèäzO'on[ÜðöºÚ¶ž»±±6gÝÊ•9vå¦ÊZ'¢m[`Z½ò¾zh¬]·²ã1 øùl“±aEVVVÖŠÕvÉ)Æö/+×_¤vÝÊ•ë, ú…e.Œ¾ÿZ휡ÔQ}F¨ãRøe.1n°ô|­¯=x襥å+644lX½â‘g—®µ6$×{:¶|íÒs–7›V¯x4.xd¥±í ãªì…N4Ñ^ýÈ®~¤³·´[]s’nÄtñËv\?”í/ÒÐñs€@ã}·L¯DŸê¸a˳×.mÛ…h\ÕÉ¡¿Ì5k×®2Z¯—®r4)×{ºzóÒG^ FãÒ%–ý$~™k¬~OëÛÙDv»&KW-t$‚‡-·þ´«Ö:¹íÔ¶ûYYþ"ã–;|òKW­]£×ýë¥è•et\žÚ΋ªèèèèØ…>#Ôq5î/ðÜÿ/ë5¢‘þzÔÑÑq}PÇõèt'иJOléèè8u\á#Œç¬*ŒvUIZGGGÇÔ[#|çw^|ñEuÚruØ¢"矂Á HÞÞÔ•+li)°lë¯~ŧ¤¨£áÿ0¼ñ†çŒ$$Dôö›šè£GéÇ—^z©50PTGƒpùù†?†ÖVaôhðñÛ·™Ó§%//óóÏ“ÄDu4|ø¡áË/¹‰Å1cD–•._¦««ÙaÃÄßý®eäHÝ êÁåæz¬^ „èhièPhnfΞ7?÷‰‹SGÃ?ÿiرƒ ýüDš†Ó§éÝ»¹˜ò»ßÝó÷—ÔÑ ;úŒPsxþæ7Ô½{-¿ú•8v¬õ×™#G ëÖ±&Ó½×_WT@k+<ý´Ï¸qBEÅíÁƒqvI »|¹×“Oò?þ±YQ :<û[ª¥¥å¿ÿ[7Îúë̱c†þ“--myí5EII}Hvvs¿~˜a×.vî\Ÿ_lýÑt3¨×¯MݺÕüÞ{âĉÖ_§÷xÿ}6?¿åÿWQ÷îÁè)|üñÝ>}ùÎÎì /x/[Æ/]ê’fÐg„ÚÂû©§øE‹ø…]ã6mâ6onþ÷¿ÐÒB¥§û¬]{/(Hèê™ÿþoO³™Z½úžBt,xÿèGæ Èܹ]=ÀmÙÂnÙrïà 0thÿüü;Ó¦ui†_þÒ³o_øÍoZÒ cÁûùçù øyóºz€ûê+nëÖæO>QHÀåËÔœ9}>ÿüî¸q]æ~ÿ{OOxùåV…4(‡¾kTCôIK3?óŒ(üüùæå˽–+R8ùöm*#ç¨èŽ(ÿû¿- #mÜÈ)¡AÇ‚÷óÏ·®\i# ?ožù¿þËë…”pí5qbßkךlDAøÓŸZ<=¥;ôÜ’‚xýç¶¾úª(ü¢E|f¦ÏìÙJày˜5«ÏÞ½·mDAøÍoZÜ%Í B­àýüó÷^ØôºÂÏŸï½x±¼x–-óÞ½ûŽ=ÿá-·nÑk×zÈ«AÇ‚Oz:Ÿ™)LšÔí“Bp0IMõÉÈW€Ù ii>'Nܶçá—_n­¨`ß|S7ƒ"ø,\È/YbøÌÌÖßþÖûG?’W€Ù ~~ýµË Ï?oÞ²…s93èPxþñ$-M˜1ÃÎçIBIMõzùe5,Zäóç?;í|á…Ö˜o¾Ñç…2ãù»ßñÏ>Ë?ù¤ÏóYYüâÅž²®¿ð‚÷W_5Ûÿü믷ìßÏlÛ¦›Af¼V¬àçÍ#Fc÷‰ˆà=ÿüg5ÌŸß§¶Ö®(háý÷ï56Òyy®4/Ô!>ܦMôñãæ§žrè§Ì?þ±äíÍmÙ"‹†•+½æÎåmç=:ò¯5ÿö·žW®P²hÐnófàyó3Ï8ôSægŸ¥š›ÙmÛdÑðÒK^‰‰ä‰'3ÃúõÍŸ|b¸zUïRdƒûæ©ó~àÐOñK—Òp2™áw¿ó|á…Ö€ÇÌðÖ[÷Þ~ÛãÆ —éôÍ2ØÜ»×oÚ´[Ç;÷Ó}Ç¿SW'yyõDBa!»s'çÐt°ƒ™µk=>üÐÙƒNWPwïö7îV£3W;@_ߦ†ðô쉆;¹O>á>ÿÜ™?hm-óë_{Ù™]×± uûvŸÈÈÛ‡;÷ãýF¾uü8°=š–íØÁ­_Ï}ö™3f¨ªb^{Ík×.×0ƒ>|CÆëW¿j~ï=§¼eíZ¯þ°‡~ðïÿ÷ÿœÜõ7uª0t¨øÞ{.¶$ M<ó›æÏ?wúÇï~ö™×¯~ÕC ù‹áãÖ„… 3f¿ýM7ƒ xÿèG÷ÞyÇé¿÷׿z½új5¼ù¦Ç'Ÿ8i†ÈH!1‘_¿ÞÐC ê BL¸íÛ©«WIR’ÓoàÓÒÄ‘#¹;~Ãoëù»ßµôíëüIØßÿ¾¥°ýþ{—IƒhnófêÆ ûWƒ:B¨ï¾ã¶owú «Vy=ù$oèAßõÇ?¶|õ×Ô¤›¡G°[·ŠcÆäd§ßÀ§¦Ò/²»v9ý†—^òZ¶ÌÜ“)å+¯´®Zåy÷® ˜A„˜þõ¯{ùK_ÒúÊ+NŸ¦8uŠÎÍe{~ zéRó+¯ô(=«ã±fMOfî­]ëáìF‰'è«W©Ÿü¤§føÙÏZ_~Y7Cð^¾¼¥Çó¹æwß5üë_Îýì¡C̱côØS3üío÷þç\ C l |Ç ErE<Þ~[ ’ìá{¤Áƒ[—/÷øûßøÙ_þÒëõ×e8 ½`OÓ°w/ÓóWõN<Þ|“¤¤Hôð=Ò A$.ÎcíZ'~vÕ*¯gŸ•¡,HVOìÛ§›ÁI ï½×²r¥,fÇ÷pj¨ýË_zþæ72œ‹Ÿ7¯®fëê´n}³ ‚à“‘qwǹÞ×ðঋs`ÿzI ûÖ[›7ß•E@UûÚk»vÉó¶ÞÏ÷‰Šº³g\ïër{ÿ~‡~¤¤„ݺ•[³FžjAååìþà±}»n‡¡ZZúÞº|Y®öIK»ã`‚´ €ýè#çŸÊ³®²’ý׿ ÿø‡¦÷Óé©Q<ÿûž, väÞŸþä±fC?²zµÇo+[e¬ÈH2eŠXTäJ‡‡4‚çïÏ/[&ã ÍK—:z¬ðµ×øÀуƒ¶i}õU6;D{îÞÍ ÁÁršáµ×Z>ÿ\ÓÛGõ@ˆ€ço˜—,‘ýµ­¯¼bÿF‰Ï?7üú×2Jž>]4>ôÓžkÖ(q›Ÿàiw†àô\¶LæK©¸X7ƒxüùÏ­¯¼"ûkùÅ‹=ßx÷ÿðžï‘iGHˆÐØH•–j× z DÀãÍ7[e­Žf¡õÅ öÕž¯¨`/]¢äZX¸ã Ø$¦D‘©¬”77`¡õÕWÙÒR{ž,)aûô‘¦O—ß ¯¾ÚúñÇšžh B _~ÙúóŸËþâÖ—_öxóM{ž4™ØÐP™s~ùËÖÏ>Ón>=ªáƒZ~õ+ 9[c^¶ÌcݺnûòKnÕ*E®J‰Ž&--”¾}ÔN<þò!<\¡—“ÐP;j5|ø¡á¿PÄ 3g’Ó§éúzÝ vá±nYÖ¥â‡p\ë/~aøç?»}ð­·<22x%$DG“úzæðašA„jãùÖ[æçžSèåæ_dËËm?sâ]QÁÆÅ…4¬XÑúþûú¤Ð.<Þ{¯õ?ÿS¡—›þsûïÚ~æØ1úäIF93¼òJë—_jw )ØÊÊ–+z¹ù¹ç<ÞzËö3‡3W¯RññJ™áç?7¿û®F3z TvÛ6~þ|É×W¡÷‹J}úp_mã™÷ß÷øéO¼9sÞ<¾´”½|ÙÊIàÂmÞ̧§KC†(ô~qØ0’`»ÐLv¶aåJïÔÍÈà?ÿÜ WênãFià@èß_¡÷‹~~dölÖf ª¿þÕð³Ÿ)x¿üÓO›OŸf´YuH„ªâñî»üüùŠ6ÑúÓŸz¼ÿ~Wß%jj˜ž—’±ÍÊ•-7jtè§<þúWGo™p~éRC×ÙÑÖVøË_<²²I…µñ“Ÿ´þýïz† <Þ¿õ§?U´ þÉ'm¤Ê››©œNÆ#42kyÿ}-ö z Tæðaêöm©h+BX˜äãÃ<Øéw?üÐ#&F©ÔG‹ó.w3§Ê0õõâàÁBD„¢­™3¥þý™#G:ýî?þáñ æ,üô§f}ï¨m˜ýûÅÇBBm…ÄÄÐ×®ÑÇŽuúÝÏ>3(´oÀšŸü¤uóf-¦Êõ@¨ì¦MfÅÖ¬áçÏïjaü³Ï¸^PvÐýúIÉÉä믵èx`øç?{RRÙ~HRRWf()aT„ýúIÇ‹›6éfèÃ?ÿINYhY±Â°ys§ßZ·Î™©ln”ÆŒ·lÑœ”-±Ö®Äh//±ÖàÀ¦k×€VcðÑwüøÛî8,+cÿô'mÛÔ(|UUÅ|ú©á½÷ä)ÙånHRÿ›nÜP£-Qì?hPÓõëí¾l2±kÖxlÙ¢†ä-æçnˆbß)Snw1k—³¹¿¿ÓwßµûrQ»nGNŽ ÂBöÝw=¾ùF[fP¶S~Ñ EÒ>†õëÍÏ<£N’šÚñLá'Ÿž{Nñé …ÈH¡¢‚=sFO9t‚᫯Z{|·€½Ðtë/~Áeg·û²šfˆ‹# ôÙ³º:ÁðÑG$-M­Æ æ _|ÑîË»ws=¿uÄNËÂ… Ú2ƒ¶Ô¸1lAßãtíÇü쳆O?}ä+f8vŒ^¼XñìGÏ=gþä-.Œ£cøà^•¼¨>)Éãí¿rïÔÖ2Jo“±fÙ2³«ÜѪ2†O?5?û¬jÍñ?ü!›Ÿoý•;w¨O>áÒÒÔ3Ch(Ñšô@¨ô©SÌÁƒdútÕZ¤þýé'Ú¾²aƒA‰ê!6xî9sE…¾K¢=ô±cÔ;ÂŒªµ(DFR׮ѧNµ}eÃCr²â{¦¬yî9ó¦MºÚÃ=*¬ô6kHD³gÝÐÐö•õë ²سͳÏòŸ~ª­eB=ªaÃóÒ¥*7Jbc 6´ýç_žzJU»?þ¸Ô·¯”Ÿ¯wÀíÚÕú“Ÿ¨Ühëÿý¿Ö 7l0(½Q¾C‡Jþþú}íáÖ¯ââTnÔ¼t©uÏP]ÍüàêMÀÏOLL$ååª2£B5`+*”*žÔ5æ%K 7Zþ}æ íé)ED¨:#€%KÌúÂvxüõ¯üœ9*7JfÏ6<8]zâÍ0 D=IÛ<õ”ù‹/t3<‚aãF%êïÛÆ¼ló þÔ‘#Ìñãôĉj›!*JÐTvT„ŠÃšL’‡‡4x°ÊíJ¾¾$*Š)+€ QQª¦Â,,ZÄŸ8AK’ú-k¶¸X˜4I¹j2]!&ŽÍ>0Czºª3 K–ðÚ<»Àĉ‚>)lƒ-)1?ÿþØ ¿p![R‚+æ©§Ì»võÒI!·u+Ÿ‘«aëV6#ƒ™7E]&€¬,~ëÖ^šeM&>+ WömÜܹ<ðsæX¡E!#ƒ ›A„JÁmÛÆ£Â˜Aƒ$??HZ·~=¢ˆ'½öšrêâEÜ@¸w/3|¸4l˜|F}ñ"¢HMå·lé¥ÙQÃúõ|J ¢€}û˜ÄD~èP ø¹s¹mÛÅÀ‚|e¥Ý¶²’_¸PêÛQCÛ $OO!*ÊRa ‹ÔTRPÀ´ÃÜh°ÅÅÀ0àí¨¡´”]²äþ‰1©o_ ÄRw‹´4’—ÇŠ˜‡zp`wï&ññh6`ófnüøû½4`?w.îfº”þã‘GEz TnófaÂ\ 55LFÆÃ£ÓZÈüøÇæÝ»{]B =7Ÿnˆ‹{8ÑÂ<`öl~ÇŽ^—!à¶oǪ±×ÆöíÜœ9{qÂvófD=4 ))<}ðìYº¡ž0áá›ddP. J€ÐP²iS¯Kˆ¡›áôišh›™;—Å„YYüÞ½øÛU†jlÄ?N3 ŒóÐ Z"Ï™C¶oÇ"ëP~˜ƒ¥DD ;vp³g?RIK:”¾x‘©¯Ç’°»ú0aa¢¯/¢†]»Øùó5ƒ¿¿Ä9‚% ââÈGõ®Q³oýý÷êß»dM^ûä“”U%//æèQ,I0w.ñ"f0Ò¡ü°ùùèG§kj˜yóÚ/Ç‘ôtµDŸ>Ò´iBYY/Š…ÜÎÂäɸ¶mã’’Ú›Aœ<™E  'VW÷¢I!·kn=ؾÝСg˜?ŸÍÏGÑcaÀéÖ- ñ@¡^kT~¸­[ɬYˆš›©Ü\¶ãM¼|Zî2X´ˆ¯ªêE}»s'A-)yû6uè£M3¤¥!¯ © ºšš¨£GéÈÈö÷Ñó³fáž3€ÔT>7Í z­Q™¡®^¥ÏŸBC5ìÚŦ¥u²;S ¡îÞ¥¾ûN}ImDG“/¾è- 1êÊêÖ-!8QC—f˜>úî;êûïÕ—ÔÆœ9äÈ‘Þ2*¢.]³Y˜:QCAûôÓÜ="„‡Ó'OR7n¨/©´4²kZ®HOÊ [TdF½nòò¸””ίÚ!\n®Êz¬3FEøöÛ^a?ßÍbè}ßåËTY;q¢­‚žZ%&ònnv÷nÜ /]¢oÞ¤&N´Õ3QQ\v¶j’:%)‰äç#ÂM6æ¬\±¡À¸*{yX×ß¶ÐéC6hm‡Uºtc#ܾ-¢–ÍÏg è|   qüxiÐ ª±QòóSGUG’“ɸ©€>wZZÄqã5p‰‰¶¦ƒ LœH55Ñ/ŠÃ‡«£ª#))ä™gÜùD }ö¬èç'ލa÷n69¹›‚÷ÂäÉô÷ßS—/Kx…ùeË|ZTn·ÝŒ°1çí #Wegggg¯‚Õ+s;û£åìììlÇ¢ ºíÐ-( ØÙü|¶c ‘ŽcÇr»w« §+DA€Ó§Ý6!Á–—ó‹áj°Ó ü’% êM£F‰--TCƒûša÷nÜ!;ÆXÚî >!+,TAOWŒ'z{K.¨m†GÛk¬)oaØp^ö[ËP¦½ê@>L°ëÊÛÙ÷i!êðÇ IDAT!†•QvÛ6Ü¢ pëekÛÔ„iÓÐk.»¹òóIR®†>âbc»ßŸÆÏ™C:¤‚„„ ¬w ¼#ý&ÌÎ]èlJhZea]­Ãí]¾Œs^R ëד˜DõõLj*yì±nR£ @èÞ+Cè „µµÌ­[TŸ>Ý?©3¸w D7CU$vupÂ!&ưaƒ ’l˜HÔß/óh{Ï7´ýÛÏd'Ïûe®É¶l‹lÌY¹bõÊk×d>ºÒd»¬èöíîÙ÷1ÕÕâ”)’¢†¼]iU]‘˜H^xAm3<‡„ó÷ÿÝxáÀˆ®Ò/s‰qÃêó „]•µÈY³HQ;k–»ÝSÎò ¸ŠŠØ_ÿºÕ·…É“ÙÝ»!MÃŒ‚ÉÄîf¦ºš<ù$®†ÂBîõ×ïÙù°ùÉ'YÔ@Ȳ`¹–$&ÆÝÌÀæå S¦àj8{–þÙÏìíHb"[P€½¼¤¨(¡ºš‰ˆPï¬qÇÔ¨u:Ô:M* ¤°Ð s ôÉ“µ†ˆÙ µµlt´½ý™5 ÷X=<ájPnËŽ(àÎèÛW ··ÂÂÐ/pW3°EE¸wÑܺEíÜÉÚ>Re ŸœÌœ<©¨¤n‰Œ$*¯›<ý£ÛvÈ\<ÿ`ßLcÎÊë9+, 6æl41ÊÁ]£ üÁƒîVH‚ºs‡ÍËBB5”—³Ï=gîþ¹Ó§Ó'NP·o+'©[ÜrTD55Ñß~‹k†¢"Ξ¡6„°0úÈêî]å$u‹[BêÆ úÜ9ÜëGÍÀ aaìÖ­T‹Ú¬Qß íóË\³j]VV€qUvfû ¡ŸÿHÓê,“å?=C0y²xø0sõ*5x°ÿ£jôAäærcÆ8–IàçÌaJJÈܹ Iê–à`¡¹™ºqƒêöì£ ¡38±ú`Éðxf NŸ¦m”ÉuEX“‰Ÿ=WƒófÀ»:1,L8r„¾{—òñQÉ S£aËÛôË\Óö_mßuâ á}ÜoèÇ“øx\ NØ]ˆˆà Òc'AA‚›M ™êjÜ$9³ññö}))¸åµ`ölRRâVf`óó…ÈH\ ´Û¦Ú ññlq±2rìEå0pˆÕý!sø0AÝ)sé}ëŒo×–Ñ6ôeB%àvì Ñш.\ ÇŽFrÐ ÑÑÜŽ I²“ˆwK•£§Ξ¥Oœ íÜLÞILD?M˜˜H**Ü:&$ð—/»O úüyª±Q|â D ÌSOÙµ=Ú10è†ÙõØ›BúÌ i1 QCQ;dˆÃ %qôh0›éóç»T1ÜÍ §N§§èï¨Á‰ÜˆcÆÐß~K_º¤„$;1U½’ ! *56Ò'N¸I,dKJH\®†Ü\Îv9Ý®@Ÿúù‰S§Šgθ‹4$w®ï $ÄDš÷1ötJJØ®®e¶ ‰‹cKJd×c?£G‹f3œ?¯’p<ç>‹Z„NÛOLdjjd×ã~~¢Û$Ä\»ïÃ@f&_]í&f`jjÐÏ××3ÎÚâãìeÂøxR\¬’ô@ØSÐ'ÇŽÑHC‡:³½JˆŽæ°¯£s'30àšáèQzÜ8aÐ gÌ@â㙺:Ù%9ÄÔ©Öå²ÃíÚ% Ö\ÒgΠ_½äê£"ˆ‹JJô@¨yÐá¾}̸qbŸ>Î×_"#¹Ï>“Q’¸‡àÞ=\3ÔÔ0AA¢§§ófàFª¹YFIN0y2qƒ;j 6Ô£ôµµlZoèÁ”aR9sÆ­a|<9{Öµ÷I3uu|F†äy—PÏoo<=Å)S˜={ä’äF#1™\;255”Ù =éxzÌž=lzº“«Å÷ñö¦îÜaöí“I‘3¨6 P¦ªJ˜>÷ꥢ"fÂÇÎÑ·Cêפ¦2Ê%É "#Ɇ j|Œh¡ˆ¢À×WT³v€ì°EEÒðḎc­ŸÔôeBƒ’’HM wli)‰Å՛ˆ†öôæË––Ê¢Ç9¼¼¤É“Å={\Ù H’ËrÁ™èë‹»LØ·¯4j”xà€âfÀœ“‚ÉäÊv×@ß—ÍEEõ8&$0gÎÈ¢Çi¦LT;3¤ZèûJKÙØX—@J _YéÂ=}æ }œT–ËÑGEKJKï0¡:¿¡r ª*vÆ Âöø#$QQèË„®nêömÜ@XQÁFFºÇÿC£ššäPä<áá‚Ê×ÑÉ‹áóÏ…¨(DUUì~àÀ¥l]! ö¨(>ž¨À „ÑѤ¢‚•\óÒfÏ>#w ´”‰•ãg†!áále¥ ¯r–˜RV檭¨<=¢5Ô×ÓsçölÐÇQ ƒ{…k›{| ¬¿-Hžž$-Ù¿¿ç¯ršèh5j, oWÉÊ2WVº¤ãÙ¢"qôh\ çÏÓ =Í~X@úQÌœIÊË]Ó È‹nÝÊËÐ÷²£, 3fª*×4ƒ¡,Ir âOà.zyI“&‰{÷*;)D„ãÆ‰.Zo^ vÿôSCd¤@3†-+#xe‚cbHY™VëNÃTTŒ \ òB (~Φª ±CŒ$óæùüõ¯jÔ™”¶´T;WƒÉƇË×3pœ0}:®ŒF²f‡¢MàÔµæ™g\o™Ù»—¤¤àj¹ï 11lY™Œ/t‚èh×[&äL&2y2®ÙGEâäɸUEÂÂ\o™w(iA–ƒÖð))ÌÞ½2¾ÐQX¡=gŒŸ|]î›—'`×Ú®«cäZ² ÄÆ2Ø9ôt¾®ß“Á”•áÞ¶#ŠPSÃʵZlDG³åå2¾Ð bb„²2[&D„<û÷3r΄ÐPn÷n_èJo$Æït\qÀ–—“èhDååì´irzp# ÁÁâ®].v€Œ­¨À] ”}Ú„ññääIüÊAâ8ÜBw5ƒÒaßg‘‘Bm-#ÈÜ«+[YI"#qËʘ˜E>2\Ç»Ü2¦²Ò¼l®†òrÙö‹>„aÌK–0µµ2¿Ö""È7߸ҭ¥lYô¼¢AÏ8|˜îi½ÙŽpœÂÔÔÈüZGˆ%—.)øÙâBpµI!}à?g®Eú> dG) ¢¢ˆ U eKJ$\ /R=¹z©+¤áÃq— 9BC…êj—ÉŽ¢çE`Û6CPüfàçÌaýµöc0€··¤\‰M¤$¢ôyIávîñîs· I ïN ZØ/ãZÈ´Ð÷}ú©!"Â=ÍàZ¦´T@=REìÙ#Û Bk„)SØ]»d­C(jMÂéÓ…ü|—±;úaUÃó”©Y-ô}qqäÔ)MØÒСkB´`W „‚ÀÖÖâÞA¨P¢zÁ2¡&zœ™3]&ÆTU 3fà{¬¨`gÎTÄî@’“Ô¢£.´2„>$%W‹e…3˜ª*E^n11äÎÌÅxûa++ùäd\ ••LO®¤·…§§€}k©¢¹"MBŠ‚ÈHâ§ µÐ÷)7îaÚ4ÜyÃÀŒ®±2ÄìÙCq5(7#>1‘E=@Æq Iàw²ee´i¸JJب(¥¶¢O ==¥¹s‰Bwj"ÀìÙäÀ­ˆ±}ò$‰‹ÃÕP^ÎDG+f÷™3ÙŠ …^n'®’!` Ñ“VW+…ÐP¶°P¡—Û‰«ì¤cÊËì!re%ÛóÛI»‚ÄÇÓ'N(ôr;ñõ*É©•Ø3eŠ›ëÈ ›6‘ðpDuuLD„àé©ÔåUèã>ˆ‹sdè'«ªØéÓ•êø@ˆŽf°Íà2£"l3(ºbBx8·i“rï·åj, ×m#:š,Y¢õ:“̾}¤Ià鉨¡´”Ub{ôC >3“©«CÌóDF O=å­ñ:“Lm­0mî…”Šæ@òô'NdöïBB”kÅ611Âk¯i}™Ù³Ç¼x10˜)\ÅÍàã#ŽÍÔ× AAʵb›™3Éü‡—oƯ5jÁ`€à`¡¶VÓ‹èƒ>PxЂ8t(î•LžžÒĉ¢Æ¯dbàÓÓq5(= ~öl¦®NÑ&lãã#qÔ×kÚ ¬É$ †«áâE:>^Y3 ¯›ôë'Mž,9"ØÒPJû‹ôñãè „ î|€²£Ú7·{·€]k›P|T4y2‹]gRûÙQ-ì¡Û°Á¦¬„øxúØ1E›è–  E– 5ãâ´~·e‹€º@xø0“œLúôQjЂÃà ÓzÁeôZÛuuLS¥tž^ £"í›=îÙà …‘°0nëVeÛè…FE <ááBv¶v÷Ë0GŠÃ‡Kýû#j(-e‡•n¥m1@é†lMZZ´»2Ä8 Ž#ù`®j«©Ñߟ9|Xé†l ñô€¶¨°bÒãK?Ž»wT!3h(úøH£F‰jtè§…íÑÌÌ™j”''³g3ûö©ÐPWôí+]½J>¬Q3 Ï@ùÍm g fÍ"'Nh¨³²†Ù·OKÃՠΨ4°L8h4p $»´å­èh¡¼\«}Ÿvʨfwaòd¶ @…†l0s¦PQ¡Q3Ðß~Kâãq5(zhÌ2kóí·*4dƒ$…õ¶ ½øð©S”¼73wz €ÌL^ötÚ „11¼f·‡QÍ͸3“'é¤Aƒ”] ´ »ky‹÷Í7ÂŒˆNœ CB„U1Ch(—“£BC6ˆŠÒnå)ô!òÁƒŒ·7x{«a!&îÜQ¡!Œ-ȼˆ¦­@!ìÞ­ÅeBúÛoé'Ä¡C5ìÛÇÌ+÷Mc] ‘ÅmÖÖ¢—–DÔPVÆ(¾ZlA2DêÛ—>}Zæ:E³¹"-lPmÅÄáÙC‡èsçÔi®S”Èi+,=ö˜¤Áª"èƒ>(,ä&LPïþb’”Ä¢ÖØ2Dâ8øö[Ý  Z’Üz†`Ø0Ñ`€³g5gfÏ‚]k»·™Áß_€ ä4ƒæŒ¥Í„˜vʨ¶9 ƽ—4k†ÚÚÞ³SƉ‰Á½­âãIU•æ&…lq±Œ«áÚ5JÍ@¨Â{2O • „ïXaçh³ïCŸœ?OSÔý¡:hÁîÚLˆ±&“€zíÜÙ³t@€8l˜ŠfˆˆÀ-6aa‚÷Ë ‘OŸ¦/_¦VcÐúŒâ㉼»I´Rb­ØX{-¶=ô¥K@Ób@¢†ª*&!A½Aˆþþ@Qôùój6Ú ŽŠè ÀòáàQ^ÎŽ¥^10ZZèË—Õl´Z4Ù3àå%úú"jPmópâèÑ`6Sß}§f£í˜>È»›Ds©ÑáÃÅúzæüy cÊËÑoÛ)-e§OW/f}R N˜ \º¤%3TTø „êmŽhC˜9“AŒ%67S—/k¨Ìz¢°Ì0}:î¤püxñêUêúuÙÌ ¡.¦ ­ c++IT®õÇ}À'%1¨{ o_ÐTvT }Š´›?Ÿß»WC“BúÛoIR®3DE±••*7ÚyOÔh1jíÌú$àÚ5êÆ jìXU³a £ß@¦53P7oÔ£W¯R·nQ£G«n†ØXêúu•mÇèÑBq±†ÌÀ}ó î­ôß}G'>ñ„êfÀN@B‘± ™»jj’ &NDÔ€2èqìXêÆ êÚ5õ›nCSéêúuÖdÇŒAÔ°o“•eV¿]aüx6?ŸºuKý¦ÛЖ._¦îÝŸxQCYãã£Þ6™6„©S¥~ýàî]õ›n#4TÈÍuëáøñ¢tã†&ØŠ ©O\ 'N0))4™8Q¸x‘njÒŠÐó¢EEœjGéÛžs&zÁåQ£D¬ ¡÷}wîPgÎÐX£"-ô}))äèQMô ô·ßâÖU¸y“ºt‰ž8­g@ß<…sVfYX§\© ­,¶¶2‡áž@ô€`©/#WÂ)´r€ìÞ=0p7G ›aÆ $àU*xÛ)S¦;ñËSwï2••âäɈªª˜Y³ò¢BD³ghn£Q¸rEž<¹£°1çí #Wegggg¯‚Õ+seQÑiÓ„{÷àÞ=eÞn7ìž=æ%Kp5`í”i}0}ºpèÓÚŠ(À²ZÜ·/®†Xľ¤>}pç‘‘Bu5#!ly-¬˜”—³¡¡˜qÈüôÓLM ¢€°0²~½A–W9kÊG €á#Î_”EEgøûKèóÖdýüp5œ=K«sÓXW B˜5‹¯®Æ6CUA­¬lHf ¢¢l3DF’ª*l3`'ÉACdiøp¶´QEAD„ KZ'ü4Òÿah8w¡Âö—µ%;š˜ˆù—f**Z_}Qdgs~ØŒ(€ÄÄx¼ÿ>¢ ÊÊX£Û ¿þ5¢Q„ÚZ&"yTäñÖ[¸“sË! Ü@Ÿ8a^±Q!PWÇ̘m†uëpÍ` ‘‘=ý „Ï7´ýÛÏdgtUVÔÑ9s¦ðúëýˆì°UUwQ'UUld$æÿð DDp¸¢¢„7Þ@6sø0î¶)ô™3½üc\ 11äƒäIˆ9 ·m[óúõˆjkÙ¬,ÌÅZ°¤ž~WCTùðC—^êi8v05:|D`Û¿/(z9#ú~fÏ!88Ì•y”B‚íaaÆ ¦ºQ¾ª«ÅñãÂ<Á¶?ƒ› à81 €Ù»QBd$r}ôäPRÂâ'mCòô'L`êê5DG ²ÜRéÄ+Î]x¸CÆ:M*3K—š÷îEÛ*ÍVWãÓ€º:&:»ïÓÀVi–…¡¶Ï èû Y¬S4Ö ›ÁËK?^¬«C3ƒŽ“j!=–‹*Q‡È>>’Á õ¼ÖšƒÐ/<ºm‡ÌÅómûfbð`ÉdBú1¥¥¸×Î@A éÞ÷Àœ9¼Œ¥E ³ŒˆZ8V{¢F7CBd$î~©ðž£3B¿Ì5«`uVVVVÖjXµ&SÑ-•½ÜîõõÌèÑ"J-Ávèh Èÿ×M˜ æåኰ'ûö1“& žžˆQQ|<9}¯ˆ$án­­e¦MPmî£3È&œ0SØòl ËÃzØxw ÖØeGŒúõCiÝ‚F}ÞÞÔµkÌÁƒˆ7Í3‡‘9s$oo”Ö-hÇ R¿~$)‰9v QÃŒBNN`öï§ššuHrè3gòN ÒÀÒ!4ª¢£Iϯ,Õh‰5 >>ÒèÑb}=B,döï'Ø[%qˈ´½èècI¾¾â±cf`ËÊÄÇW¿]kΟ§âã5@züq5!6p 4x°tü8B÷¥…„¹¹ì„ È;eÚà32˜ýû $]¿N:Õ#3h:@J AÙ/Ããǫ߮5--”vÊXбz¬ ʈ|ù¥aút­ŒŠ´`¬ÄZ0ƒFvÊXÆã q5ôÜ Z„AABQ‚ÝÑÇ}'NÐgÏÒâ/ZÐBßONÂa›áØ1zèPiÀ­˜==xÝ G2Ç‹ýûëfxHχÈZ„(v§Ïœ‘¼¼$__•ÛµFSƒ>†ÆŒ¡ÏœAÔ0c†°i“êf8uJêß_QƒûÏ–ú÷—z˜ÿuôAh¯ïñ‰'p¯â>\ä8åü¬ý0ûöñ³g«ÙbG4h~ÎÜcõ~~â¡Cô… êö eeâ¨Qj¶Ø‘={˜ØXm™}R(Nœ(\¹â¼”µÑ;V8ý’ÔT²w¯ªóúäI’˜¨f‹ÑÚ¸zë2¶°Pœ4IÍ;r꣭¾Oœ8‘-*ÂÕ þ­¥èGª ¨Hg‹­á˜“'q5x{CY™ófP6¾h…Ó/™:U(*RÕîÜæÍBHˆš-¶ãÒ%* @9R+Ã,háÌÑHöìQw€Ý÷;G_»F®•5! Z0ƒú£"ôã¤gÎÐ^^àë«­žA á¶lÁÕMÊË7ƒÖS£ ú2!uù2ÕÜŒ›)/g‡ÕVÇb@€4lu领ˆ¡¨H½dtc#‚8²Óòò*¡„Öˆ£FQÍÍÔåˈT„ô¹sb@î½l5øqÔõëÔµkˆzh„¢Ù =?2i'è3ЪÝ@1‚-+C0j”x÷.%×µÔÝÂTW“äduÚê M'µ†ONfQïe;V¼u‹úþ{•ÌÀVTà‰àÄ ¿ðzg g&L¿ûŽº~ÝI3¸@ u±UUèµ¶5¸@hA ‡(Ôœ°&“0mš:muÅ… ´Ö-ÁÁ¬É„«!"¢G 1‡Ð ÂÍ›9Ü[黂DG£ßØœ”Dœ¾¤×5aRQmã(SZ* nmj¢h&LФݱÇ} nª}ÿð•+Ô‘#ÌOhkMÈú^APyT„+º|™niôÛ—:E˜97WÓ¦ eeNšÁ5aHˆJ¥©›7éK—„‰Uh«+ÊÊXmv| N˜@]¹Bݸ¨!6–8qêûï©k×DÔC<8ц0iÝØH55!jP-WD]½J55‰cƨÐVWh6IÂÔ©ô™3Ô;ˆz2*r@8a‚på }ã†âÝú ´mwà/Æ=@6q¢˜—ÇÞºÕ+Ì ÙÕb è©ò  aÀéî]Åb÷íã-R¼›hyTÈL›&;F·´8Ó3¸F „ôíÑ ù¾O `±K ªcúøq’šªt+¶Ñø¨ˆ¤¥áÞ< ‚ØÂB! @éVlså «a3h`Ýdñb¾¦Æ™ B5ÏÒW¯’ØX¥[±As3uâ­…‹È»‚DGãÖ—€˜¡'‡gí„Û²E Rºܾ C†H“'k× ÂÔ©ÜÖ­¸T"—• ¨{ènÜ Êʘñãµkb4ÒW®àjKJœ1ƒË˜rà€Â}_K ·y³¬l+6©­ežyF7u…LŸ:E©ê¶HPwïÒ§Náš¡¼œõð@l¿{„éәÇ¡¥Qƒ jj¢/\&OV´Û”—³Ú¹‹¦S„ÐPpoðvÚ Ê¨'•ÕÚ1uªpàs÷.¥Üíè»Â ¨ˆõ÷×èN™6„˜¦¬ 1m"ܹCÝ»^^J5>Í'É-X2ˆ% gÌêë³ ¥š`ËË öŠIY£Ýé Kv”X"#…ÚZF€qpÒä%ÖÚP:;ª…@è}_L úi€QÑy€ú>×0ƒRå™™æêjÍÀTT¨+&pø0£é\hc™Ð¹I¡Ë¤FAùú$€Ø· ×ü¸/* ýÌÒÙQ¦¾wµ˜çáø‘Bä IDATqzÆ Í›!6–9pWÃØ±N® Ù [V†»øömª®Ž™2Å5rE¸RSI}½Ãó%W „F#¹|YÁMóô•+$2R¹÷w‹KÌ@˜1ƒ©¯³Qƒ²£¢ÖV¶²·ðzY«ý(BX[\ ¦TEsEÔ½{ôñ㸆4¾y¸ M76âjvírëaHˆ“cP¨ûeKKEE^m7••ŒÑè4‰ˆA•"k!/ZVÆj³²ZGг£ŠÒT9E‰¾¾¸ë&˜âtÛh¡ï+)aµYb´#üìÙôáø¼½A)3h`µXû»Û@@V_U¥ˆ˜#Gø´4%Þl?.dôì(EADqÔ .•Kˆ¡/‚ ûÄ  ôdÊŠ¨ÆF§Ä›í„س‡ÑÚý«]Aâ⨠p5Œ-–”(’å¶mÃ=Nj6CŸ>Òôé.bìô$'“½{3ƒ‹Bû¾æfÜK'\($2’­­Å]ŠJKèûDѰq£&ÿ›í¦¦†]¶ s Ö!„ÈHÆ ¸”êÌf¦®N—ÿÍvSZʲª^?Ü#Hl, 2€ÐP!?ß­g„”ìÝ/[Q!yzÊüR©¯§çÎÕúöhkHL îÞѨ(R]ÍʾL¨…$yQëç§õ-‚¡(‰»2¤P dËÊÐ/es¡¼(ÃP4ÍTW#Jp"qèb†KKev¼ò¢;vpÚßm z € ä_ÒB t‰ÓÓÖhae(*Jþ5z tôì¨ÁÁÁBm­é"× „J,jÁ˲ýûq5Œ+È~€ }T$IPU¥é{:‚Þ÷@zºüU™ýû뤀 ÀÉ“tD„+Š´0Dv4L¸^ Tbe}àBÛdÚ"#ÙÂBPèƒ}(Q}›>{wTT^κÊ)š6Hl,ÝЀ«!8XعSÖQ‘ÙÌ–— 3fÈùN)-eƒ‚\) ‚6FE³f‘†¢›ËÔm#2’P”‡$%ÓÙz¶¶–Ÿ3Çáât²RZÊhù‚•®° ý‡ÌÑѤ¼ÜGƲee"öm;¥¥®7*†}}Ùª*Ä’11dþ|™Í€ž(*-ecc]Í |r2³oŸŠ%!2’,^ìóÎ;÷ì|Þ•j¶a0€É$[gŠŠÄ äz›sTW»Þ$´‘yúi9— ÙÒRÜÊj`21F£ëŠ£‘1™Ð4DDÈy²^ ÐåVL,ˆãƱÅň<< (ÈeB×K€ÑHd „Zèû ]l=܉§.]ÂÕ Ë7*2™ì5¡š[ ´@bcÙÒR\ ³g“º:Ùú4êÊ!>^®·9Ù û÷3®µ@hA fˆ%öo«tÉ@èÐoØ-èÐE} „‡6lÀ]&”sÍX’€apË+»d* Hl,%)uEš ;wrò¼Ël6|õÁKî@u5»t©Ë'µF pÖ,rℽÎ%ax¸pàÓÚ*ë˜ÊJó³ÏÊð¢àº}h ;M**XYz`ÖdÂ]*€ƒé9s\é8©5’$áî’qˆ¬…¼hAàJGª²æ%K˜ÚZD QQ$;ÛÞ;*]2@r2/Ë! ®¨H1¢çïé Tb¢ËB ýä:Lž€­[ ÁÁ®— ³€nOjÁ ®›+Éߟ-,DÀ²0c†½EG]5†…És€ }Mˆøâ ƒK\¸Ó)ÄhdöîÅÕ˜Hª«e˜É¡÷}­­pà€ \HÙèûeÀhL&ÌÀìÝ‹{‚°¥…:tÈ.¤ì ôQ8bW „òä@a÷ìÁ½ƒÐ¥ó¢ DD°¥¥Àcfó¢¢ÈîÝ=^âyúøq!"BENâêf 3g2õõ€ºRÇ;q/k;¨–¦¦F˜>]IÎQYÉde¹j’4°hŽ„ W „¡¡Â±ctssβeedÖ,¹$9‡Éä’'¬!F#‹:ˆˆêêzºfÌ–”à€º:&%Å…û>fÌ`KJDE ¹¹\Ë3%%êõ#ŸÏNœèš „ èkÆv«wÕ@K—š«ªz4ôcKJЯ;y’Žwñ@‡Û÷'jØ’Ü«—`ûv.,ÌUSa´`†¸8ÒÃu-˜Á†ÈQQ¸§ à‰'D{z„£FI»w»¶Ý››©ÂB6$DïûzÊܹü¡C=¡šáömêÔ)Z7CÏqƒQÑÔ… ôÔ©ºzŠ£"„=´;uç}âb ()aãâ\{ÐBp0xyQ·o#j rrœ_&¤ššè³gqï_u3„†ÒÇS¨7Ò%$K—œ_4¡nÞ”ú÷&O–Q’£¸‰ÂÃéúzª¥QƒÐõj¶1y²pé}ý:5p 3‹óèƒ>p»€8x0[\Ìgd`  Ξ¥›š¨þý2Ce¥yÑ"ÙU9„Û˜_¼˜©¨ ÉÉX‚‚„íÛ¹;wZúôqÊ EEÒС²«rˆÊJÆuTY#ÄÇ3ÅÅ$- KÀŒBß¾Rs3x{ÛzÌ%k¶‘•evºÎ$}àIO—W£³®¾@hÁ…r ÂîÞ-Nœ(¯G©«£gÍr3&pùù¸zd ‘wïæ\±æbGøôtæÀ\ žžRII7é"NÀ¤Ib^ž“v7lÚDÂÃåÕãß}G ‚4a‚ko ³ …@˜’Â<褟Ñû¾Ë—éóçé1ct3ȃKÂÆFºµFr3ááܦM¸ì1ƒkÂY³HQ‘3v§/_†[·Äqãd—d?EElh¨;xıc…1cè+W5DF 99öVT²†¾xš›Å1cd—d?ÅÅL|¼kïŒhCœ0ºqƒB5CB‚ÐØèÌ2!}ñ¢0i’øÄ²K²·I’€0q"}íuõ*¢†øx¡¸¸›t®DЇ.`´ÀãÖ•÷²;H=†[Qi̱¥.\pÜ 55ü’%JH²·I’[0?õ[](`Ìaß>æÒ%‡ÍÀH*!É~Ž¥SSÝÇ è‚ „aäk×l Œ\;@j*ïDIæøq^_ ”2k[T„«Á¹ ·}»0i’zìçêU:>ÞµÒ[#NœÈîØ«Á93°EEèE6¾øÂàz73w ?{6}ô(®†!C¤‚[fpù@8s¦àÄiBÃçŸÔbZß~Ë Ç»Ij´““‰5Ðû¾ãÇé h__ä;Œd„ç°OR»h <|˜2D<Ø}Ì DD¾øWC·fpù@è„Ý™£GÅ$__…$ÙCA3b„ûx¤ÁƒITƒ:ô‹%;v8vš9tHôõ• RH’=±î±_´ É×W|ì1æØ1D äÈÇú7æÐ!'  ${p?3ˆ~~àãCŸ8¨!>ž/.¶Õ3t0JcÎÊ, ë:»Kêá·m<¤&ýúIcƈûö90@ô;ÚÄ‘#Ù‚DH#GŠ8`¦¦†_¸P9IöàfIr üÂ… ê2áãKÕbóóÅÀ@ÅÙŷߺÕ¡ôt‘¯¯4~¼pìX—£vßhÌy{ÃÈUÙÙÙÙÙ«`õÊœÆÎ~Æhy ;;;;{y˜¼‚ÁÑI!}ò$IMUN=¸e $ ¸ûeÀq3p[· Ó¦)§ÇZZ¨Y³ÜgЂ0m·m®†„RXè€ØÂB’ œ{ø÷¿ ®{aWð©©ÌÉ“¸&O »œ>kÊG €á#Î_TV›<$$‡.é5|ü1îµs{÷2™™ÄËË­R£ q8ÑÓ¬Ù ˆÁõFE¢È–•áÞAX\ÌÆÅªGwêhcøä\ ¶GE¿1Ò߯íßç.4B˜_û'L«³,—îWu2#T´¬Z§DG“ |Z[íêMØ’ 4æâhn.è&‡Æ¢øE‹Ø²2ƒ%!.Ž,Zä#I`Oo¢…@AëÅ´ÚÃ0$:š5™CˬYdÙ2›•µ¬`M&óSO)ª§[Ü2Q`0°0¶¼œDGcIHH ‹ûtõ]6++ —®]“yñ|CÛwüüGvò¼_æšìLhÌY¹bõÊk×d>)»ª¦¦h€LHà ¹ôôîóKéûÞxã®…¦Ness!ÄǓݻٔ”î;fß>~Î$Ù  €}ç÷4?w.ú=ï‘‘‚C 67Wœ:UI6hl¤/Æ,Q­– b ¤iHOçËÊØN3ÏôƒÅ¾5™~ÃG¶}§ñÂ9›ïõË\b­$O‰íc"mÐçÎ!–€›7©Ó§ééÓÝqF@’’Xì:“‰‰|A]{G¹o¾¢¢”Öcƒ›7©Áƒ¥iÓÜÓ Bd$—“ƒ«!)‰äçÛÕ3p|b¢ÒzlðÝw”ÉÄNžì>Gª¬!ÉÉtC®†ÈH!7·s3tÌž»ðp‡ŒušTÓ$'“={ºßF}÷[^Ž{zº¼œ]¶ÌŒ(@Q„‰©›7éK—5ØÙ÷Ñ—/Sׯãš!/0ÀÝ–ŠÛ‚‚èK—pËkÙ9*¢ÏŸ‡{÷pk.r î¶gª !(ˆ-*¢®_GÔ`£gx4ú…G·í¹xþÁ¾™Æœ•ÎI4æ¬|p`¢1g£ ŒQØ5 âíÛÔéÓݬü¡ú`Û6·ôYà³²ØÒRD£GÛUx-( Øf((àݶï’˜ˆ{¢fÜ8 ûÂ{Li)ú)šü|6)É€ž.š8Qhj¢.^ìÄ í¾ä—¹f¬ÎÊÊÊÊZ «Ú/ÿøù4Y¾µbÃÈÎöÊ aÏ<€ÍÏ'IIêèéŠü|.)Éû>!,ŒÅÞ7?ké¶Þsð ?{¶:zºÂíû>~öl¶¾WCtt÷fà¶mP¦&ÊÍÍ˜È¡ŽŠ ë0AݼySï¼óŽB·ZÈËc?üÐãË/m]í“™ÙüÑGRÿþÊɰM}=óóŸ{™Lw°¨uï^ßQ£n¡fGwíb?úÈã‹/l™¡ŸŸßí'$Ÿ.7’)Í¡CÌ_þâñ÷¿7c Pª©©oPЭ³g5ìØÁ­_Ï}ö™­Ï¹ÿ!M.€Á™ÛKdaÏæ—¿ôÊÏwëžáÆ ï^¸›¨áº¡î¸_ÆåK¬µ‘’ÒÍ¥SLM u÷.b€êjvÑ"wž€äå%„„°ˆRRHuµ­5c¶²R BŒ‚°};èÎIrú÷Çgjj5$%ñùù¶– Y“‰DF"FAÈËãRRܽg0€º~Ù·Qƒ¿¿Øù®Qõ¥(G\±qO/——ǧ¤¨©§#ÙÙ\x¸;g?, pû>š†ÁÖùÙ¼<‚m†ÞÐ÷ŸœÌíÞ(À`€Ù³ùòò.FÌž=üüùjJêH^ž]~\>%…ËËÃVÑ nSRø¼¼.‡~ln.neµ›7©ãÇéˆ÷Ü+o ‰Šâ¾ú WCj*Ÿ›ÛuE¥sçpïáúþ{ª¡ÁmOÑXCfÏFß7&بÆnøòK2s¦šzÚñý÷Ô!n{ŠÆ’šÊææb«è· „é餮®ó߈¾rEô÷PÌææ²îWN·S„É“©7苘‡LSSI—g†™ª*q•%YSRÂ.]ê¶§h¬&OfKK©Ë—5Ø"ÓçÎAs3®vîä† qó$¹!$D2„þþ{l!íq«@èç'Þ½K=ÚI„ݹS:T}IÖÔÔ°sæ¸*ÌúÐ/0P?^8uª33ìÚEÒÒÔ—dÍæÍ\o˜ZàSS9T3Œ+gÎtÒÝ¡'Š 7 ‘@<˜Ý¹[E{” „ïX¡hCm¤¥‘]»:™h¡ïûüsν·G[ÃgdàÞMãÇ‹;vtb.7—×û>!iiì®]¸ž~ÚÜii~æøq~î\õõX“›Ë¥¦öš!²ÌÐeá‹V(ÚP]­ ¡÷}eelh¨àíí¶eDÚA |€«!=ìÜÙù™!Ü2&.xzö3ðii4jIˆˆ¾úªCÏ@ˆá£H\†¢û˜LlFºeUUÐÓâV©QˆŒ¼½¥Û·¹z€-(0?ý´]÷(FQ›‘Ñ[føÙ³¹;DE‘Ç™[·ù»sÛ·‹ƒcI²°{w/J’P”4`î< .ŽÔÖ2ÍÍšaÇô¢ [·r‘‘½©gà8óÂ…lI ¶ŽGp·@¾¾âÖ­ ý¸Í›…ÈH,=rr¸ääÞÔ÷Ù³YÔ@?ü¡¹¸ø‘I!»};Á¾qbóf.=½7õ}ÀìÙ¤]ªœÝ±ƒ`ÂíÛÙ9sz—„ðpnóflà†pî\²mÛ#vG÷;Æ Ò¨Q½bcXüœ9Ìþý¸BC…¯¿~tT”—‡k†Ã‡™¾}¥‘#{™fÏf±ÍŸÏïÙóHÏÀÔÕáÞÃuð =eŠ8|x¯3ú¨¨ngÏæ­Ï ±{÷’ˆiÐ DIÛ¶±sçö®AHH}û²UUˆÚ›¡²R;Vzì1DI&óÌ3½âà„5Ò AÒÈ‘¸e’“ùÿûáZ[V& $õí‹(iëVÃŒ½¯gðõ¦McÀò7 „ðÜsæ¶3dìæÍBD®žS§˜yózW^Ô™;·7ÇÁ¬Yë ±Û¶ì-‚Ÿ}f0{ËÁ kø9s¸íÛxx@lìÚËZ0Cï"ÑXvÔ=áÌ™BNÎýy·mîöèÆFº´” ê•}ßܹ̩S¸æÍãwîÔŠΣ›š¨©S{©8ìkI23ù’’ûf`NŸÆ5CCÝÜLMš¤›÷ „¼e¿ sô¨äá!Ž…(fëV.#£7N@ ¤.\`BÔ0w.oÑG aaÿ¿½3«ªÜø{ötƒW4‘ðRieš7¸!‚ópËD¨@¤å) ˜h¥=•‰~B\ç«Æ(zL½¨¥–7Eå¡Û -Ñ2 Aû¬û‰1œ=àpd8œaÎú=þqx÷Þï»|öZ{½ãZŸÿ¬¢0’S¦8«2 ÀŠ]¾¬¢ “&±……$BÿæÍÂC©(Ì_±±N7IÞBKdìÒ%µ¹M÷t„nnâ‹/r§NÄ_°11ê óÏ:ÝÁ Sذ0uç@<<Ä!Cøý‹ öíã{LEIBeeø´iNêB‚¿?¹w¯ŠxzŠþþüéÓ¹?¦¢$¡¼}°‹U”aÂvëF\ôðh™Q P~ð`äꊩºll÷è£0"¼­Ê2¡öãbŠŠ”ž;‡r¶$\æa§M£²³•o—Úµ‹‰ŽnùÍìÚ¥´2œ:Eh4¢“TŽ ;s¦êaº¡#$KJ¸à`ÑÅ¥åÏþÈâÚ5Eÿ§99Ô_ÿ k÷CQôœ9 §ê% 6, ‘·;þãÇsW®`7nhÌ?%-ùùÔ¬Y0¸Q§ã&O&KJ”l”5|8§QtÚ5à&OÆ+*47n¨%€¼Žp½ ²6tò“OØ—^jUèë+0Œrdž6m¢&Mrö"Á,^¬Ø±!*7—‰mUèç'xy _}¥2ìÜIBXµŽ`bcÛ?E8@¿þz«Â…À@îÜ9…ú)99T\ Û‡‰‹S1ÊLw ±F;F·q„¡øxfçN%º~?þˆ]»† ް}˜_Ô®[§L[ÄçŸ3³g·-ùefÇ%”áʬW/ôì³  íCÇÇ“Ÿ}¦L[ÚµkÙˆˆ¶åcÆp[·j ª £i[:‚‰'ÕØHÜB·š%{÷ûõk{iÚ4öÂ\…ñ’rÑ"g²mÑÓ“ "»!òàA¡o_±O;1ö¦Ogkj°†Ù•aËí¨Q0ìÑÇGèÝ›<|Xî†ÈâbnÌÑãí¥ÈH¶´”P@¶nÕÂR±__ÑÍM•C5¨›9Bí–-ôܹ]>Ý´Iöq@ZšÃÍÃÌKÊ¿w”ܽ›ž7¯£«!!ÜæÍ²+Ö-Ôܹ  æ`æÏ'å?TC”–2’“iN—–•᯼Ê`zî\í–-ª4Ý}!öÓObfÒðΛG˽L¸s'ÇêDnê2p!!ø×_Ëi«ªÂ«ªøûwF˜2>½i“¼b……ÔÒ¥F¬ûX˜,p£Gã••²&¥Ã¿û?ž êè†èhö£äU†Í›©‘#aR´¸‰E­«©‘¯ ͯ¿b—/·-ï>fªÍÎnµ?°½z‰~~â®]2º© ´óæÁ¼hçЋQùùòկݸ‘^°ÀÌ >(FE±‡ɨ Z«f ô‚Ú嫟*( /6sƒ··Ìɪ 7j,€/Cçp#Gj匴à>¥ý\lJ;BâèQYê¥i*/™3Çü]¯½FoØ W×ïèQÂÏO€¼K–ÀÄÄPÛ¶iššd©ÝhÄ~ú©%¬š""˜5käR†cLj¡Cù@:‡y嬪 ñ² ˜4·n‘99ìh21w.“™)£2ŒÇùù2t3oµm›LÊ@>Ì <úhÛKJ;B™Ƶ™™tBB§·=õÿøãÂéÓ²L:D&%娹[B'$h33å¨Y·nÜémÆñ~~‚Lá÷22´¯¾ B–¡ÍÈ£f ¿ <Ž‹ee²(CZš.:”ÁRäû2¥¥Ì«¯¶{IiG(SúÝÚµÆädKîœ1ƒIO—¾ëwö,~ñ"Ë–B'%É´CŒ8x^²Ä’;ãâ9‡Îœ!DÁ© K1&'Sòl$&ާ“’,¹sÙ2Ú`~vôìY|À’Ñ[’"K¯H¨Ü\nܸv/*íé%K´k×J['µ}»ñ7Ö¢/Ú¨Q\ß¾âþ#ñÚœjùrZEq!!Z©#-h×­ã&OF„E]û±c¹úzME…ÄÊ›K._ BÖ@QìØ±Ú¬,ikÕfdpãÆ!Ë6,ÍUTàß|#±2¬^­›9–Š­@tu¥lXŒ ÖIDAT“’$?\¯]³†^º´£«š›7oJÛ^G¬_¿>11q\Ͼ}ëûMšÿÔ·ïÕÕ¢Å1ÍNœ ²²´ÅÅR P^ޝXáòÙg RUè,n3f4KXeO/¯ú_~±°W„:vŒÈÍ¥vî”lµòìY|åJ—#G@¬CÓÔÔcàÀ[uuÖéÖ¸w¯…½"„ÐñãDi)±fd=Ú³gñôtݾ}’}jœMCCAƒnI‹±§‡G}ÇÎNñ]£a\ºT÷á‡RÕGmßN¯Xa¹DÃ=ð€pö¬dëëÖiW®„á õèt|` 6=]ªú´kד’,÷‚¡qã¸_ÕH¸8TXH­ZÕ,Um΃èêÊ,\(á à`˽ BhìXîÛo‰³g%¾óŽnéR˜°ÑÝNN¦>ùDª uï½g|ûm37È;"lbôn µ _~y7S’í0Lχªÿßÿµö¹¯¿ÆSR\Ž— Û~ü8‘­…NŸÍ¸M™ÒXRbÕ«]4ÍÍ=yäÖµkÖ>XQggkwì`Pxä±}»¶¨”ÁFzöéSõ*¢ìŽuÐÜì¦×7Z¿îX^ŽoݪݲEe(-%srÈÂBy¶F;={÷®ÿí7 g¶Í ihp?¾áÌ3÷à©©©v6c†gM8sæÌ³Ï>{û‚NGíÜÉ=÷œõk32Øèh~Èkôö/\ÀŒFÍcÙ»§yÞ<×µk›==!Ó¦h†ÊÉá&O¶³ÝŠLl¬ðÔSÖ>دŸxàÉqèñÇíU†÷ÞÓ­^môðe°Ñˋڳ§UöpIJâ&Oæ­Wqï^!4h½Ê0}ºÛŽÍ={‚2؈èãC~ö7b„õ¸$$pQQæÝ„:ê™ØXìçŸñÊJ{*Á/\ ?ý”™1öÇW®¤,°wHºi5|8o¿7uf˜øxÍØh¯¬$¾þš½?¥å¬]ÛœmïöÑìl­¯¯ÇÅ쉋ÃËÊðï¿·§ì»ïM3¶*CFFs~¾½CÒM›´ÑÑlÿþ  ¶ÃÄÄvñ¢=•àÿþ7ö믺 Õ"Ë4§§ë:ÞÃc Tffó† 6?îî.~ø¡qíZÛ?MMšýûÉ´4X²:)ɵ³`æq™?¿ÙŽ=‡¢^Ͼõ–í9$4‡ï¿KÅöÒœ™é2¾=5¸ÎžÍXv˜ª]<=ÅQ£8{”á÷ß5kÖhW¬e°—¦¿ÿÝÎ3….Ë–5§¥uz›jŽP<˜9Òæó"Ú?½¼ø¡Cí‘!6–9z”´ym<.Î59VÂ%€òI6"‚²5y=µmÉ?ñ„=2,X@—•6¥ˆwMLe~èPnêT›S›6±3gòƒÙ#Ãë¯ÓׯcçÏÛ¨ ￯“p²3Ãÿå/¢‡‡Íø´iiÜØ±‚¿§wªkÔøÖ[ø… í†@5öã¤Á`|ï=ûe((h\µÊ–®ßîÝÔÓOóãÇáii Éýûm˜ Å/\ vì ¥HxYXØôÑG¶(ÃÖ­Ôà   RaLNÖnÞlÜvþ²¨…¬^ÝëjÃ6h]\ÄPi0~ø!YP€UW[û öý÷ø?-Û£rÐíæìlwëwI¸¼ùf“Á ‰< .YB''[·XxéVP@¾ù&L}HIS^žû¤IÖ>å’˜Øxè$ôé#ÄÄ0Ö~þ.]ÂÊʈ5k`†\Jtµ¾sã>yr“DÁܽ¼Ä·Þ2Ιc2TVbÇ|_)iÚ½ÛeÅ kŸrÿÛßš,Žß­²#ÝÜwírï8wR[\cbèE‹„”J†‰9ooaþ|+4>0°GI l‘—Ñã© ÀÅlÖˆV¸$&ßy§Ý„«¶ñ ìСüŠVŒ gÌpûÇ?`LbDOOcjª‹e¡òZp™;·iß>ÑÝ]*¦Og‡ á·nµbãÌŠ.|$Fðö¦çÍs}ùeËq5ª±¸Y|¾\ý4L|@@cAÛ /Xr³ÛÔ©lT”%!•­"%…~ávçN‹4Þß¿Çï¿×K+Ð7b³x±›^oÉÍnQQ¬^/‡2óë×wnB< øÓ—_6hdOoîŒp£G³áán–m wŒ¤—,ᥕ!1‘öðß|³seE4a‚ûž=Ð%’nÔ(vêT·iÓ,¹Ùý¹ç÷ìáŸ~ÚòúÕw„!±o_fáB÷ Ìåå1]ãâš7nd-s™Öòüóìÿ«Y½ÚœÆWVâO?Ýãܹ\âx„À=øÁƒé… ]çÌAtÇ{OŒF—… +WÚƨ]žžmlDË—›S†òr¼OŸž—/ßrw‡ƒbrÁ…„—/wY´1gohnv=›ILìÛ Ó‘‘,ÇiÌo"-/ÇCCÝjÐé@ä‚ oþøc×Ù³ÛaìV͸oLJûô±ªryÔ›rßú6òO=åª×#‚à‡ kuU»q£ëìÙÆ´4™t½…  ¾¶V“šêêáÑ:­àÍ›šìlmq1YZÚh<À<‚ŸŸàëëºp!„¶ä©;u«V1ÉÉvî6Oh(wõ*ëêç'>úè}ÊðÛošôt—Ü\²²ò Êèå%>ø ÛüùHÚ¾q*7W÷î»ôòå|@€|2L˜À]¹‚½ý¶ÎÛ[|øáû”¡®{ûmÝ‘#Ä¡CvG:AìÙSôòr›<ÿÌ3­®RÛ·»¼ñFsv6ß±£éŃnw†ö£ˆ/¿ä‡½¼Ïã—/%%L|¼Qºð¤æ¹zUó'ÈqãØžGuuX]6e ûÒKTLQ´kÖ'N=&xzjh¿t ¯¨`^~ÙhýʹmÔÔ`«Vé~þ â½½–E?ü€ýô¦×ƒ2(võj*7—6L8étš7ðª*vÂÚŽ#ƒVQ]­_¯½q<˜ïÝ[¬¯×|ó VY‰¿ñÊ (.©©ÔŽLx¸àïBsíþí·ÜèÑfòK˜G9GˆÚ„…i;$Sz0oÉ Ðr,eBÝ©Î.!$Ôéøuv !¡N9êl[è›e@-ÀNÒk„’s äàÀ rpà9>í¾#N 8BÀ©G85Š®€£#BÀ©G85à§!àÔ€#œe‚n—gEùff„ûÜ)¨-NIȯF¡Ðe†Å2f¬àÞ[iÞ&ãЀí82; ÙayVDúI„߬{eµÅÿ“ß™!#¡ò¬ˆ”bS uvHÀdº`;ˆ…Hö©Ñ€ÅƒaY¨iQí¹SÕ~¾ýBõóõ«®©“[èҀɀMX耔ÎGx‡þÝëÐþrµ@ÿÖ18™q!Ý[‡LÆÑÛé:´¶&‰¡ÉL¹ß¬Ž¦oêjªïþöy¨¿´Óæeù„gÂï^JOñ… 8LÆÑÛé:´gM;Â{ê`†~¾~¨æöïÚ«¿ ä+­€e˜yY>áQ¡ùé5u1;`2]°G§=kRëøÄ/Wkïþ6¥Ð.`2 ­­I Gè|w¹¿®æî²% 2µÅ)Yåw~D¡A°Îá €É88`;]ˆö¬Iöìwv¯"„L× ïú²ã`ú®à½8`2Ž ØŽƒb¡‚4L€S!Ö§!àÔ€#œp„€SŽpjÀNZA·­äþl_ÖœÓi“‰ €ö¹ïÌÕ3 º?]áayVDúIçWž•ru:&HImqJBMXàŒ8¾#¬-NI8Ü^ôÞ0Ñ$ÓEëèN¶<+¢ÈwVÿüü“&˜övM~C˜ÀÙhåïQt{Ô™Õ¦¥µ[N§¦¶.ª=wªÚ/8©mÇ´<+Á$ËpBÖC†ÅµÅ)é¿ÌÊ4Ü6ˬVTç×D ‹QmqJÂÞò𬳓J Ë–¦m·<5•n]äì—ßYú °  {¢ÎfMÿ: ½Xûåe÷"Û…¢“e·cÞÞÍÞ°¸µúÍš€PK*Óèãm1S t!,75ŸðŒÌY(?!¢…”âv ,螨3"4¶ù™£ƒ|Ü÷bðßI0åž±¬&ÂÎ<Ñ’T@jªÑšÛïÏ.Û2ËbC«`A@WÃáOøûUŸ:×^çón§Ó4åpÀbC ËBO¦ßÉŒb-’T]Ÿð¨ÐNÆ|f ºï‘OxThu~‚‰1•g¥×…¢“E-Ó7w§I˳îMèôóõë-Μ•’‘Z¶° „‚ú§·”Ü.ôAæ;£>áQ¡-s8~³f…¢S¨ýJ »ãü‹‰¡ÐeKÎN€ÝÇ?>2âøS£ #à§!àÔ€#œšÿ:ÏÓ?s’zJIEND®B`‚PythonQwt-0.12.7/doc/_static/panorama.png000066400000000000000000005200721465265754400203050ustar00rootroot00000000000000‰PNG  IHDRÄÉi0„gAMA± üa pHYsÂÂ(J€tEXtSoftwarepaint.net 4.0.6üŒcßÿŽIDATx^ì\gúÇGMbÚ%¹Ü%—úO¹K¹”»$—\rILbÃ.6ªŠ"ö‚¨ ‚ ˆQlØPA@zï½.})»,Û` Ûwéõý?S@Ä šù}ž¼óÎÛffç}¿ó¾ï¼ƒ½–hÑ¢56Ô×××ÛÛÛÓÓÓÕÕÕÑÑÑÚÚÚÜܬP(òªOÛÖ`6´ÑöxÚ“»k.¤Ö …B™L¦V«µZmKKK{{{gggww7Üp_ÀÝAÝ'´h=$aÇ.GPNZ´h=lA«Í4ÐT´µµA³GSSSv%—f&Úcf:—TÅår% <$6ét:xf€'x~ ™‰ÖvúôiÊI‹­‡­fèd‚ÆZ‘¬rÍL´=ÆÌt:¾¢®®®±±Q&“©Tª®&š™h e&r\àfÑ?VZ´FAƒæ Á€Gmh<7ÐÕÏ mmmäðÍL´Æ‚†2SL\bl|ÒuKH ‹ ‰(b”пWZ´FTp‹AÃÍ0<^“sÐx444¤³3ÓÄÝÕŒ2A£xÀ„’*V}“5Õ5} m´Ý½=»—e—(l3¼…CÂܽßU3Ë[0nµùÚöä³¼½70ÓɘҪª*>Ÿ/‹É®&xf`&úÑ©âUWWGí¸/AôßüÆ~7µ¡ÌTRVɬWÔ5VrUj­F£Ukt5¼&FIÙ@º²ÆzRB™Žô¹¥ÚZàçÞÒÒÕ îŽf—[/”¨{É}¿¯2ysåq{u¶kÔ­¿l@m:¥®³¿ ]m")”ªW£ÐÀC}û-îÉ>BÂ…ƒm”õÜâ†í’K½¿w#÷v´ðàøy‚–ülÜAíj —Ço!Š×ÛÕ.äCÎ !Y°¾6l(Z~'Z¨˜  `&xÈÖh4r¹ž¼S5C˜©°˜¹ï|ÒþKñnWã„"¡PÀæ6^Š)ÔsÏ$Ã<åÀÞ—«MmèÈ®ÑZ_æÄ%í£¼7ìHwíê$é,?ñ作“¶ÞdÈÚUŒÖ‹¡‚ðƒíÅ éâÖ+eÍ~™âìj‡ì½½ñv&‰7gË^êV®ê­Ò]Žo|jÿÿçýͮ擳җêTÄ â ñùƒ™©³½µ]ÈàÊÛ:‡6ÞMÜ2¶’ø… ÔÈ­6ò¸Úæ+5»¬¹¥U#h wþ®šÒ šµÒôøÂÖß#•¨¢T ¡6îB¢ÚÂZ%ÉX팼¤Ìø’.ÔUž[Á­­–ôÞ u=5Ù©µòVa OÕJùáàÅ-®•Àíš›;`·VogqZŠ@׬UËS2‹º†n-JÊ¥(¨W›ŸV*WÖç—óð;޶¶ÖÖVMAn~œü¾ÎÒô¦֦ܴ›¡õ8h03Áã5e_÷ÅqÞÿ9±Ÿ¶gƒãÜ%ºíçëŸÄ»j†‰~:ßðç°°%!G èð” ?¥Dç&xÚ¡î_Çy9³Çïf½åÊù'$âÈf:–ܾ¦0?ÉÁö°?ƒ0‡êž²e¿yî×YŸã}ì‚cÊ‹8Â{AêÍÂŒbÅÏ *^¿ÕŸ­U¾hËv¬ÑN=Ìyhfwíßqí+š-½ê?ó’Ú]@±_s¨ÅvÕ~èÁ…_¶«™äP÷¶ký¿Žsÿ¼·vz„bž{Ýx€';Žc¶üMÎÄÝ5¯ºr^ÜSó¬CÝw>2ß Éûq¼û2P1íhÝk祮þœütµé7¼„5NJ^ã=Hp!êÖ¼ø0“E¨d°Ïƒ0Ø“»kíâ%`aÊ/þõ3Ù†0J‹ EEU¬z©´‘‹"nrH‚²¥µ<-‰§SgFe´u÷µBM*—·võÈ…e©ùÕ-êê §´æVm‹.;:³µ»»<5…§nmë‚Z´î*fnJ‰P©UÔ0ùJ¹¼(üÕà”·wе5ëðg•ÖÎÞ&6ƒ-Ó@ÔÛÓÊÈÊÕé´Ý½¨£µbôtµ*%UÉiź6¼únæ3jEºv'›}½Ñ• ˜| I½ªúô iw«"­”¨Ûi=€ÒÓÓ)¡ÄÄDÊu_‚ZW TTTäçç+˜@C™)'¿ØâTà‚£'qg³qfj”ˆÂ*3H.(­·ti)ññ¹Åœ­(-1>§¢"ýÚÕø -ÑëÓÑÞÚÑÑÞÞÕ^œ”&éïêëUT”sûP{en©®½©(=#%9µJÒ?ÀòRf[‡*311%­´µOš‘TÔ®mJÉ«éîíåUæÇÇ¥6´¶°ò ró23 :zú:ÛÙÉñ…•òÆŠÜFr\L­¤MÓTW^U–WWÏOˆ+`+  *ɂعP’šœ¼ôŒÂêÚ‚…®"'G¬jGH›—XÖ…úZ´-í­­·à3`¦4^ R6–3ؼ²!x5զĄ‡×Š2"2““ÒJùp;JØ È´-ïCš²ŒìÄÄ„l¦¸OQY!&’ê•&–W×É{Ú4ü*¾²¯]–››èãŸXÌ…Ý]*Azµu·§”áqõÊ«KëÕ¸£]›Ê`ƒ£®<·­sðS­ÇD·d&™Lvkf*ª˜wääüS‡–ùº3 Q“ˆÁ/¾3Õí,ј4î“ÎS,õ~áVo[ÞlëÛ°ûzH̆íÂÖnNשýáŠlù%©k˜`Òú9>bÿå{„Y’æÙÅAåŠ\Hfªù?O±{oqšjOPÃÆDÅW'%ù\µ^ ¬˜¥Öó%°Uïìâ«ÔL¿Øè]®úÈap^5lY/:°&Rc7õ^lÕ{‡¸A•ÊÏÎIN^ã¾èÊ;#vªjÞ}‰û¹—,©˜zM˜ÚøÑié™ÄÆÉþ²SÉ¢ï.Ëãr¥Ó£Ôž©ê¿Q)[¦©Ū?;ı/iÙæU·0Zµôš"0§‰à¶š)Ñšÿº±0‘_$Ÿ íboO“=CœŠ7.+ì.Õa¸1iøŽ}Û›$¨nlãû‡ÃîÕ†™À><ÄÊ[&KŸø½R3yD2J‹ò23“/‡s¥W¯DruIÁq…2=!EÙ‰3“F'LË* jR3J„õÅÉ9Ú¶z{ðÛ§‡j­tYQéj.=)C.ã¦U6u·isŠ™åÙIEÜ&¼*<*KÈ.ŽÏfé”ìô‚Z1¯"=·Z!.‹J-×ä%Ô³‹ÓÔ-Tú5E©¼ò¬FekunCÐÒX•UÇ.ML)$Ȫ3¸ò¤mL(m$Ã#ÔY™7UàjWåÕëP‡6>¿†Ü÷‡—Ë¿Qp¨}÷®áe&PWWWTttVvö`ȹ†2Sn~±ñ™S Ϲ^v ˜I(“55i$·`¦Fe~LDRV^RrJCMN~µüÅì¢jÅ碷3/)w ¨·Gœ•YÙ‡Zr¢ÓU­Âä´²¾NeFFu[‡¼¢`/=6-'39†+ãÇ_‹-+).(©nmáGGåe¦Ä×3bcê‚r@ymAB²”è¨U‰ÊR‹x=­¼äô ™°$½TØÝ̉N,ìíT'Ggµôô X@QQL¹¶0&¶Q×#ª-LÈJ¯—’F$3Ý Þ¶&F^³NLôæ3%&dæÁ]§jk-Ìd´ ö²\†ZU—W ÷†&éZ‚¶½%;:EÖÖ”_ÐÝÓU™/j‘'D¤wuêÒ¢Òd‚Ò¬9‘0jæä–ÕÖ¥ De)‘éL)§”Ù¤„SÑLô3u*xYµJÔÝ‘–_F‡V´«¬ XGìíiÓ¦—pÀQ_‘ßJ3Óã¨{e¦ÅçÜ }÷Y\sàãýL•R©V©nÁL'¸á¢–}1MÛƒÞ;Ù°+Y±Ê«Þ4S­ïr=a83ýÓ™ç”%wÉ’tTä.ø.Dv]3.»üÌ„úš*Óóje¨§S×Ñ)ËÊ,ëëÖ¤D¥ªZ²ójÁ¿±:»4+½Q×Í/Ï®V´ 6e¦”ôö¶å'ÄÉ•Cåø+}ÅqÉ’v$©+ªnÒäŧʈ‘ãþ±9<ŠLPV.jîëgeT™åF§)ÅU9i]IµB[›,ë@¢ÚܘÔŽ˜¹[0Ï:\¢Ÿ©™Úî—§¥ç3„-­Š™ˆ±¹Î’ø$±VšœPÔÝÛ],i“g&öôµƤ(t²ôÔü޾¾žî–¢ô,egWEflF^¯(/¥ ´­¯y€™P«41·®³C•]\Ûª‘k;ûºÛÔŒÚ<ß•Z«MI/éDe9ÙÝTáh=N‚ߨÝ3Sqiex^fDAZLqšH$jj’ªTÊ&YÓ-û™¶êöÆHL|ïž®Œl:vM8'Auôšð©›ú™þéPc˜¦µ>W÷Æaœ™V§¨¶†HCêpfŠçiMCerDohaªL¥‡²d¯ØÕNU_Êšø5üãØMÌäÈq.Õ® •žÎ—þõzF7eµùÃYp±âå=µú©ê#!Â/Ï_g¦NŠ/eIM£{‚ùßú^g¦WóÏ*WŠÝ*Zöûpžrâ†qZ~;Ä2Íl9p©îÏ®Bß|Å¿Ýð±Â×÷À‡ä€‡“¤Kýî„¡Æ!¤(2À761öÊ¥ëÌDŒÍuÀMA2“¶Eœž^À®.Ë-æ¶è„©™…rÝ&|àcsS ”ÂÊøÄì–n$®)Ì®â«e5̤UsÓ²ÊØLFaEƒRr™Úuʬôì6›‘•”S§ìíhN‹ ¯StòŠâr8šîNYzJ–TCU§Z[TZR˜+ji.ˆIUu"qm¯Z¨ÎÒ„d±VŸž[Q‘_+ºÓ$`Zw£ÈÈHö ÅÇÇS;îKJ¥’tóx¼êêjÒ}; e¦üBWÀçò¹»O|"qhvú×hõ\YÏ;°žÜUó”~øp˜/îc“eÃSp`ÿ ’²©yÖ5Þ¦ÎÉ“D¾P`ˆòô^ÖËà¿#\®Á!ã'p=»—캻O{ޏ.¤MºãëàX$£¬´-.—'‘Š¥M2­V£QkÚÛIfêîìè„{¤»«|ð!¯¾¾ÎŽöî[½›Ó¯¾®Î®ÝÍM\† ïiïèìííéî¦éëÂ_T‚l/>å©§¯§—ðG½Ýø í:iZ|r½ª½«³vöötõàað€‹HO¡£*ç¾n"S<bGwW„Å‹—Ÿð¢õÂ/Ç =È0hptøuýnjC™I$óøÒø`Ê-‰3ÓSТµ«ù…eÜû=}Í¥Zw}"9-Zƒu÷Ì„ÛN&¶³òfͼ!Ø0Ù3ö‚ƒI¿3¼2,ö¥¯Ô7WöRŸm#™©¢¢‚Ãá444H¥Rxú'—µìè ™éÖÐHêR3 Z(Œ¡Eë>5”™hÝA½Ým\›G£Ek¸uoÌDm‘43Ñ¢5,¢™‰­±"š™hûÃÍL´ ÑÌD‹ÖXÍL´ýaf&Z„hf¢Ek¬ˆf&Úþ°F3­GB43Ñ¢5Vtgf²Ž•ú—ii£í±´£ÙJ÷ky………L&³®®ŽÇã5669Éår•JðÔÜÜ üÔJ‹ÖCvìØ1ÍFpïAóÓ46ÕH$¢JF‹–F„?Q…Bíü< ÍðØ]UU™^ÈRáhÑzìTÆW¸eçææ–––VWW³ÙlÀ¦††±X µ%ÜJ¥n*4-ZI83Á/’?Šª¯¯§\Cp×Qõ[½½½÷T —Ë¥\cOP{R®1,àꮺ_Ý 3µ··Ó¨MëñÍL´ QÌ?GÊcäõk|hÆ3©Æê¦1[%òOôþ4:ÌždxZ´ÑÌDë‘ÍL×Õ×K,ìÚ‡O(!ÖxE=à"V™…]àê½Ã D|"Êà½dbwÍLw/š™÷3iñÕ‘iÑz¬D3­GB·a&•<Ò瘃ƒÃ¹èÊçF1ók›¨UW’\V'¸(T2²yr¥D˜ØÁáRxŽZ# :zh¿ãyµÿbdÄså× _UXÝpÛiw`&MUâ2Óõ]=ÙÛ6­Û¾Ü樺!wÍŠíú†‰\Õw‹­ë·øeP¡oR—¬89Ÿüþ !qìFÛð;G÷vÌ$—å×A|ñàCGƒ5šÒ´ ýîùB‰RQqÂÁáì•T…FíuÜÁÁ³öö•ÈkÄ-K-f7P·Ò˜©ª$»¾IÑ$.òppðÉRiÄ×NÀ%: ¥d—Æ:9Œ-eC^Žû=N…K4ªü(ß}GŠ%ø— o)!3=ŸÉ£64977)§šÚ¸•îÀL|Na%Nû̾}'ÎÇ6ié^G+äJ/ÇÝaßåè|µ¦1à°ëƒ¹MuAä—”þ (·‘Rœ$¡6€hIQñ·¯´G‡™hÑz,E3­GB·d&eÜþe6—’e2Yâe¿äªŸ_|f·ø$ØÏϯR(?³}é¾³~vlG$äðÙ%™ ¡°«Œ'÷ßgºÓý\YaŽ¿¿_LF…ŠJóºnÇLütŸï¾Ÿ‘/j8µnIJ­Ì~ëꌘ‹û¯•TîÜq&4Ö1Âñ”òÔšœ¿€ÌrNuq^ee!U0üÜN‡Ó¾•…é°ŸS5ä»3õõtuÜ[ß%Ü5ÛVÚÛujýE?÷h©FUsùÏÉ+=;Û6;Ë!¨Š1ãdž‹çͰð¬-¹¢7méÂykË‹.899ÎüÅÈpѬvaWv}øÉÿö¸žZ°TÚôõƒ`êºnÉL²úró…?ï÷ÏÊ p?’*H<±Ö;>c¥5·8nö¦S>Û ‚ÊdGmÌR’‚wO¬‹u_q0ŽQ&(KˆÀÏaBZ_×+1§²®² ’Y˜™þ%\YðÁ–=‹ óüýý£ÒÊnÛ1“ ;à‡¦g ^–ÄUÉœ¬VeÄ_¶Ìg…Ú®÷ˆp\½¢ªªtî ûø³v'³Å¡n«‚’“mìÜy¡ó¬.ã¹HY±ÑWüýÒË4Òš?¿¨Ä"!§¸¼¢ %.~$ÙÕâÂ+ÖKVïÍ,,¿à#'3¤Û1“„™9wÚäË9̨ƒë½ š|÷›E¥Äîp½ÄËö[´ÛïØš%™µRëÍë2£¼DT–\Þf)Þ~íVEî,s—0ç ç Š£Yj9NoÕ¥9±¡þ!a|©¦2/Áß/¤JÔ‘’WPP˜ã-l¨³˜§:2¹<#ÂïÊUKH–a@#ÍLÒ9ЊТõX*£œK3­±/ÌÇÇghƒÔĶ˜±¶„„w—þÜÀ´ª]ëÍ®]µéD|U°­ÙÁˆ«‡·\IKuX¸Ò#(ÈaëšÓ'ך9UEZ²;(æìö3áñvKŒO$fù;#&’¬;ô3ùºÙˆªvL³dj4Án{]}ú–²Ò¨;¼¡8…Wwm=Zwl¦éö•z‹3òVm?ëfsÊcÕ†£±U!{—öØê—˜´uÆ’³©¹þ§ÎéB¸3¡¾Þ ê»Ö³ìšP·ïî½G/»Ç4i´â—Ón;Wžêê•îšgÛ!•E+Ö^hïÕ:Í[´l§-³¹»*l¿Ë)ëýûVmõíji0_áª$ú™X^‹íHÌ)ÕYܨÛõ3Õ¥y¸ûg…y8DŠšXÅ}­ÖŸR©«·è­_?kc¾F“àítèªë‰øB2c³é NŠëŠ]çªR}§Íß´f̪íëÌýNî:ë¹ÞxÏ媘ãú;®$^´>ç´bÙÑøLÿ£§©Ü®ëýL»rU6Ó·”i4aÇÜü/äWi”ñ–ëv¬Ÿ·_¤nØ;wƒ­í®x¹²<ý´k ëžýjUÅÆYv|ˆ\8[ߺ,'Zï·UV+ç®rßfrõ¢çÉÓÛT¦ÍXu¢2åÐVG¿ËN›b«!s¤Û1(çêþ«9¥ÇWY¦ªÕy‘‡‚\ÏÅiTÅæoZ;ͪF£öÛ·Ç墓W* Ýí`»i‰k“šk=s½Õêm%?ÊãBüÜ4Þ{–{&—&[·ã¢Û²¥Û âüçmt53²Ù±fö‘èÊg ¿Ì¢+7¤—Ä/ýyEdFNpjY€43ùå7Âc -Z¥Šê$43ÑûÂòóó‡6H*ÞÎyËÒy¸RX¶ÜÈ«Ö\´YkwrgTY½¦êÒ¦½!Qg÷Ä—[è›] ‹ˆˆˆ¾âp9­RÃ5ßv9ýʾ ¼ªŠÜÔS.Væ[<­gl©Tk¼l¼ü\/³åU—v8^ƒ{¥0ÔÉ7¥B£ÊZ>YOßÄC,Yë›Y¹Úœ:eQ\§©öÝ`ãeWœžxlßæu6îž™z»ÚN9ìfj•綘”ðä[·î(OñuOûl;[älµµ¡&¾åyü[s83WÊù« ·qÝà•«ŠóXp˜iÍÎî¶ÆµfnJI‚™…gUq4‹S¹ßÀ4UIfrƒîÌLGÂ…Rfò‘£ÁÇ·¯?©—¬0ؽ}î†\•&ì¤íùk‡ÅªëÃ×lº׉“îqèr¦F]böý´Y‹Ôš3–{Ž[Ÿ=ks>®DÉ6Ût);Äñrz9³ ýÌ¡fëÞ;3Uïž¹©T­ñsÛu>ÐÍ+·J;²Éæà¦ùö"w£ÁŽC{wÇ6) #\N…ß³ß_Õ˜¿Üä0~õk×X¨Ôu›š1mÑŽj•&úÈû“Vžž6Û#Ô ÆË=ê NÙçVç_>·©þ®š›Jñ{ÌTvrõÖd¥:ÍÿÙð£ûÏÆ¨…ffö›gXV«T§÷Úœóq¾\É—žßsøÐ楥MµK­÷­±LV¨Ó¯ì.dA:ÞmymÑ™Vf[BTÂÂE?.›̴æR©Ê r HgØm°®R‰R#‚v˜»…f“ÐH3=6Gë196—““Ì?x`&.—+ ¡’„{î¸/È œ­Ñõí×­˜I£a§øšm³²Úhíî³o¹©¹•±ùލó¶Ì”xÄÐjû»•K–[YívõÝ;ÀL%±ç–®5·0ÛheµaƒÍñM-Ý혩¡0bî¯ßop<uqÛšÕVÆ6¼š ‹e›WÏ™ïÏh* ÚµÐÈÜjÙŠÉÇ6-^m±ÙÀæ(`Ö`fÊ >j¸eýJÃuVVë·Ú_’Ý84xfR3œœœŽ_ –42Ž:9‡çÔö!mÈQww`Büòx'FÑa¤,šþ£Á~§C),jk8åâ|Â+N£¨ÌÊÊŒK­éíÖÅEçµ!ñà…ðèÃfH‘ÃPÝ’™ä‚»53~›g±ÜØÒlaJMÃI;³+Vn½œVë`¶ÂÊdÙ&6«x‹ù†µú‹§á2œT×™sM­V­Þwq·É +£5»ÃNïÌLåI—–š›­³Ø´mÛÆuÛOŠd†×u;f•Ä-˜úýZûC1¾;WÃ/aÕvnmκ›-æÌ;•Í8¼rÃêõÆ}¸E~ËŒ·-_dšÇªwÙn¾qÙrë<<~màOÿ¿mÝúõÇãÎlYhjej´69Èq03qkS ̳ڽ}ëæMËW;°nbƒÛ1S»hÍ’É‹V[ÆEž\fbµléª2víÆµŒMbJS|·¬µØf´~/¿:ÕÜt‹ù}÷ÒÁW­Yu<”í¹ÌR)ÄÑÚ{ï²U[¶n61(ËÜn²dÊ•–ÞÁ«3SF¹ÏNóUŽÖ&s-¶l±8z5‡,Àhf¢Eë¾ÌtÀ?-555//¯¸¸¸¢¢‚ìm"dx‚Û*L¨¦hÑ5ÁoúöëÖÌRH¥†ŠÿÃl€ Z§<Á‹ØÝ¿KC„'üIß!º3AìþHTŽàGx‘ùj C\J*…m<"0ÏzhÁú"¢ Ò˜éÔ\öbÞáô`ºM?ÓÀ)¥Ž÷"– µ1Xׯ2‘™;éƒïH¼~D‰ÂQiÕZìð—ãÑñ=D¼p‘Š5 yH7_¶;ô3 ”­?eÜïzîC Lœòdâ~×£€¼Z6JaßA¥ÿqá>¸úF¦pƒhf¢Eë¾Eϧ5°N¹úu[f9Ý–™~OJ™¤Iñ@å„ î:ŠY¶n76wR)¤pj¨ûÕm™é¥’5ŠnûÝ]j~¢Mq?åݧhf¢Eë¾E3­1¨[0SFFü4ÉUŒGGåzÒjµ³›6õ—ï'¯±^¾`ÍKE…eŒ(¯Øb<š¨ÈÄÀß$Ýcbnç¶-©NÌ/õZ³×ÏÇÕ¦°®ÐÔ`—¹ÉF†DêºÁÙÓòÐÕ\ +Òx½Ó²ï¦ŽH)¯aCÐtQYÒ¢õÒÑÌDk Šf&Z´Æ®î•™(W¿(f’Ä.Þ#SâßË Í­.]±xkfˆ£[X.H^¾lšiW¼nùš‡mrNÂA«ã1>ö›Ø¦F{¶,Z©¹`kzÁk×¹˜bM}ì sgÿøòÿ#¼è&‹Öp‰f&Zc_43Ñ¢5võ€ÌT•š_‹ßáWÝW­\iétéê±}+W®<ŸT'å³öZ®ŽbàË¿³²|׬4?žpp¹¾É²õ[ŽÖk4õ…ñ›¬,Ž„Kù[V®´;\ÈL)®ÓˆJÎù†{lݰÊbmbéð,A‹ˆf&Zc_43Ñ¢5võ€Ìt¯Jºz¶\4äóB´h’hf¢5öE3Óc/íÅÝÛQ[uK²·˜ía÷ôR۴ưF™™hÑzˆº33±ªKË*kqf5TW±šî™¤|ViY¹à—ÕU65ź/­Ç@43=öRYi°éLµ…Po›4/ƒ¡¥/ñ£ š™hýqtgfªˆwµr3qK–î­»OfâØ/28`kîê—Eyh4êú„sW²†$ÄÌH-¯§6ú?”NmÜA*™ß™‹\Q…û±HüÍUZhfzì5”™ºMYUÙ#Ý¿dþ ëýÆ gÏZ°ôZ‰°§«=îÌþyS¦ÌÑ_Ë!¤ô¶Û>uêÔ™ó–‡ ©È´FW43Ñúãèff2?“á·sçŽ}Ξ9Ñ®F&[œ rqf–=xðÄùò£ïŒÌ¤à‹®îÇN±Eêü8?gg÷4f}TXªTR’)äV18ø§U«ÓÏ}ùÑ”íÖkݯd%]9Á’˜ü"¿?ë­Œ,Ä¿tÄÏwvvöÍ»°S¹¥]Hà•l¶šW“uõÒ^`¦â¤+.¥’*gUö5WçÃIuÙIQÞ'œxžçðk—Oûmï©ÓWÃòYéGœ/GäÖ§†ùz@²Ä—åi=Ú¢™é±×˜ÉÈú²D£¼`½ÀÌò|CyÀÜ©¦ÑWŽíXbb×(Ï7™2çT4#1àØÞca-TlZ£*š™hýqt33½ô«stzÌ ÷C;—Ï:î±mé†#)~¿Î\·ÐÀÚÖlù^oo‡Í¦W YØ{ÏÒã)ü‚‹Û6œ½öâ—™ v9o 8jºû`JÜé˜Ü¦â¥®8Zœà~øJ37Îç¸ã«OJËÎoÜ(Wª5rî¦ßô/æ”Ǧ8ø$—È‹/­´v1÷;à~áÐÒ©«¼Ïš1ÇŽiÉ Œõ,ª+s vد7 fŠÓ<7Ú_K³Û°½”j¼ÜÞbÖ‚dfÓþMË/z¬Úå[Ø”âº|_(=ýêQÍL½îÄL{*À'éäF³-çŠC÷O™>wÅ*\ë-­9ª®Ü`×UËÍŒ–™n>ÖÞCƦ5ªº3 ‚”¢jš™h=Nº™™Þ™|`«ÅÂ}¾‘çö­<èºÉÊ9ˆ_7ç—ó—ìØ´zõµ¼Òòrfƒ _ŠÌû  C"¯Œs;yÆvź#åÕ5\ÆÅ‹Ì] ¹èvt;£^…'*È2YåY™zäðÑ}†¦{Ù‘ó–: ™Þ›öá4£–—1|m5\ë‘~u¿Oz¥F#;¸EÏbñ>FЇûQ[c3—ÒòŠªêz¼oKjjæ!±–MY¹ÞƦR©*Žsµ»˜ì°~{9?ËØh·ÑRk–\sv‡…ãIëè²zMÕ¥Mö!43=ꢙé±ÎL=S Ñ%ÔÕ)¼53Õù̹('ÏO<ï䢿ìÞå–Í–d…š£gVªÂoZ£¬žž¦®®®ŽŽŽ––­V«R©šššø|~raÍL´'ÝÌLïMqvuXÿ¿_~™>{¦«Û¦¯?ûvÊÔù§#£Wš:dÆžüã¬YúËÓjð1µKn¶ÅR93áðÙÈ$§5 gÍšmn{YÈ ^fqXVž4ÏÂUH áiÙ+Öœa¦?ê¾fÖwóÌúmSƒ¤vù”¯ŽÆ°4*ý2ÃÙ³§m?Wumæ¼Y1ʼngw9ű9éÇ=bm\)/Ûy^‚§%ö²1œñÛ¬ gB­Ÿ÷Û¬Y‹ô7 ÅÎf˜,]y,öœåÔßf/Yã{É!¶œ«©öݶŸîgzäE3Óc/œ™¦ôKoѲ’‚ð[2“¦³åÊÑ s§L™=Õµ\~o¯îÊ‘S§L™6c¦ƒWt ´Þ´F]À4ÐɤP($ —ËM,`Ž3EFF¿I~~~ÔnZ´†I73ÓXXkà°¥i•䆺 •Zqˆèg¢6i=Ö¢™éñÞY1Hpqñ¿„o/~¡ûð½Ä0P´Ð]]ÝD@pw¶ê ú¨h¶€–H`jii›S¥RÉd2‘HT__ŸWq÷ÌT]’ßx¿uúöíÛ݆hãÆÔî;JÌ)©äàËfj iéeä£þ}ˆ™éã{µZ@<Þßµ„,Fí=F¡õ56™I¥úýŸ-ܘtÒD43Ñ¢D0Óõñ 6˜ ÚlZE­­­@K:îLh!˜$ Ü´,+6»ìw™Iï»ß¦NÕÛrôêy›ÂA«Ë$ù:§±®ßùbV™oR®ïÕ0h€øU)ÛÖz ®€™¨Ÿ!@pðàÁ5kÖ{Ã=ÖLž2uút½Ý^ø÷z‡¨<Æål4w5/÷¸Ï~0E®ù¼-WOÙfWS>M]æé3aÔF¿â.Ì$PÎÕýÙUÔÆ$«ß¶Þ…'Èv÷Œ§û ¢Æ&3Ñ¢5X£ÄLIIIÐúBíOklª¹¹f-!¨†à± ª$¹\4TORBÐZÓeAó€?ªÕ$0Á&´Ðr@Yü»Ìd¼ú¼T)Þk´ÑÚÅ&¿Ž±ÅhÑô)ù2ÁŽéŸü8Ï8¿Î-J˜óÛ7ß~ÿý¿¾þO`‘Š“2gþZv¿€™à昆Y$mÚ´‰Ïçô3]=b_Q+¥¬Ø-«­æÌš¶ûrq}¢§žžžé†Ùaކóç̘:?8'Ãxù‘šÿEzz+·‘(Õ¥ô”˱kõ.__Ãã{ìX¥7C?0—±ÏÞGXumÿÑðòô˜^°ḇõo¼ùéÏzKýS ÷o\¬7}¾/£ÞkÔO¿úßÅ4¾F­J<¶iºÞÌ—"¶NùøçFîVk£ËUÙa'Üv¤±[«7cÁåB²¦S^;j©7}±Q±‹ÝÞUKõ–˜[•Ç}óþßõ7®Û82/ÔyÎôÙö—âã.Ÿ°Û4gÎü…é5÷Ý;FëÞD3­±¯Qb¦+W®ÀC3•­±'’“ ‚šÚf $¨˜ „ ~"šI¨°h²¸\.\ òŠÀå€kžÐxTTT„§ü.3ýúí|‹uë,v8åbsîÂΣQÌÆTW3Û«Qçl«¯sQîûœ÷Àl"5IÕ cÇ!ÌäççY*ÕÖÖÂ}™\-6ÛÚ8èš}BÙA9¯xá¡0ÇfãÆ9S§øœÝ±ïr†„qeÎüu‹ö,ÿñWãgÿ2-Š+Ò(Å»–Ä²Ô žVg|öü6M£ùâßÙ\¹Þßy‡éã‘W—Öß³« _¹Õ7ãêþ«Yåag7.›ÿãÚ U)‡=sð½r¦á—S¼s™Œ‚‚ðÓ{RXBIÉ9[³˜‹ög}öþúóÜ «—þ ƒl|b=,~úqò:÷Pb 9Ÿ©»»naòv 0S‚×ÎéÓg̘1k»ÃÁãq*i­½wÜùÝàg²q÷µ«gN™6}Áº’:†ƒ_mÞÅùÓfÌз(5i”Ò“.'êÕš‚賩een[W@*[E°*‚/¦©+b7»…Ro+ñÓG3¼¢2ó¶NÕ72°Ú(äU­Y2Å›ã:-ÖÓ›q>ÅΉ\d²¢ˆ%ºd»ñjµ¢4Á+®°ô„¹ÞŒœBˆoY(‚l™1mÑåüü53~þuÆ ‹í§E*e¼Ç†EÖ:ŠÈ vš=m6Aìå“åb¯Àÿr\ QZ#®›™É90O€MðÌO¬±±Q"‘@eÏxPkÑ¢5j‚ÇWêÚ¯g¦‹­­6íí¤›ÖXÐ@'ü È1 >ŸG]ìuÀííí7ߤõë×S»Çž”2É>Ǧ;w@Èù;Ö ?e1¦tgfª©©fâñx ê(¨©€™ Ê‚Š‹­Ñõí׈3Ó™ÖV«þ~¦­6œx‰šÖCÔà9xzkhh€‡¹˜˜êâÑzx ÌD‹Öèèff¢Çæh}83hkÛÜÏL:Ý/Ýݤ›ÖÃÒ`f‚új.‡C3ÓXÍL´þ8¢™‰Ö£¨af&ø•s¹Ü‹/0Óá¶¶uýÌT©Ó}ÙÓCºi=,‘Ì$'&3‰D"@PWWM]BBpùˆ—߇J&“S!h€hf¢õÇÍL´E 33Aý¿oŸ–~frik[ÝÙIº+tº÷{{I7­‡%¨w&€“ÌÕÓfªe×0Ê ‹¯[naI\rVxtBkk+ˆÖp‹f&ZÑÌDëQÔHÍiú™É±¹}ecé.ÓéþF3ÓÃÖfâóù,+**Šºx„øay0,µ"<£œÁäýR9¼¤¬"H £V’o{¥fæ¨[{HÏ[Iǯ Yü¶v™@JŽ')ªS’“3sJ Ÿ%m»ùçÚ+â å2‰ªçÅó™xôܲ¶[ìl¯-©éÄ—o¼“º[i)É©é Šë¯’ÝRÍ̔ԴFu¸{;Z ²Óˆ3”#ï&òÖ6¤¤¤T‹Zp÷­D3­?Žhf¢õ(j¤˜IÑÿ®œ½¨cE95WªÓ½Ü×GºA:ýí‚Ñ×Ý0/ˆÍ®Zçºú¬¿Obz“TÜØØšU‘– )Ppi2cr:nÁÊÌø‚nêg%/-bUd—ju¼rŽ„ôº'50óÙš9'¿”+ç•æp´ƒókÎŽÎhéî©)®pÙ]Ý”÷ ñËð(Rvn…PEy!ÔÕÎÏ)¬žËŠÎ¼K RwKAr𼫧·§+?+K‹ãÐ`µåG§Œ!5i•=ª¼üŠAwT{i^Qwoêíbd5£ö’ôÌÖ®[ßq÷ÊL‰DJ‹Ö£©±ÏL™A®Ó©ÏãZcãM® v÷*I>µx©YéàÐ~Gµ[gΠò›={‡ëy®ìŽ ~ ©ªBö»_T=©ÊâPŸ}§"4¢Ò•³—UÐï›Þ ‘b&i?3í©é2-¦˜©X§{¾¯oàÍìêâiµÔ­ÑÒÝ0S=—’Θã~|Á©CgbHfÊâä'¦A T \Z`¦Ö6unZJbL2O«ÉIŠKJI)/-¸rùj>KF„ÀQ `¦†ê¼ôü¼ÄØÈÒâÂĘˆŒÊ¦®6]nzbx\Fkw7¿<3!1)!"NÐÚÍ+ËNŒOÊg‹Hf҈ˋXR‚™º˜Ùñq E°ïªï•äR>žÇm~Ç$3©Jl^^AU¦&ÇG\ c Ó¯E¥¥$‡%u¢nNqzB||b6³½GþI‰ñá©rvJ…z*v^fQe·¹]U›Îàö¶H3³C|ýcòÙ°·K#JgJQ_Oƒ¥!£´72ËñÞ©Þ®¶, UyêÖ¡äEꞘ {iÑztEýŽ MfZ²Ò²V· .¹B)“r²ÓrJ‹ò Ìâ̬²2FfZ¾H¦‘ *3ÓÓÒ² b¹F£¨ÈÍ)-ed¥åfÄx.^²,.=?--«‚'‚Ò«UÒâÜÌ´´´’ª:•FÅ©(ÊÏ/ÌMÏæ‰Åf:x Ùñk²7/½ýD"@“\ÈÍNKËÌ.i’«4rAvZ&³¦,##ƒÉ ÙÅiY\9VŠÆÂœ´´ôÌJ6Σ\fvn~ey1dÇäàë )D¼ìŒ H©¶¡I!ãÛµr醽y%,¹L˜—þil¾LRwd³‘ÉŽÃE%åI©,âË•x.­ L*Wj4Ò¢ô´RV}NVFVãú‡-ÿ)fjìg¦Õ]+s)f*Ôé^ìî#O1\á©ÝÝ543º Þ¹f ÎÊ_xÖÅÐwß…´p)ÁLºfMy%R á™I.,  ‹ŽÌcÖ§%¥56©ºz÷3Qj'˜IÈÌ­jjoVTgU4 ^ez\~{‹*3-ñZà5®J™ž^ÑÕÛ]™žÌW+"ü¯ÆÄƆ¥— ™Y×"c“ tÝ=83)U)ѹ­}¨©&¯J¦#ú™¨,(µKSãⲋêÈþ#~ðOlRJQsOO}I±¨MÃÈ«im£ú™2#Óš»:ËS’…yr<£³¯¯¡8*³ô謎¸d±˜“R*"RB:^q §1#»ªž‘™˜V¯¯d«´ýLÝqZ¥¤Ÿ™ˆ}ÝåÌ.¢_ g¦"œ™à h†‰™hÑzl46™iѲ y%P\±‚S´hꌥÆËÏ\ݽhþÜE&kœj˜™f&‹ LL ­¶q)y.Ë—ÎÖ_b²Ú66öäìéz†ÆË Î1³ªJSÎí^¼ÈÀÔÐ`ŽáF/ÈÙRoö“•[³kɯMãÌäÁ&Üš4_;3»Z>×a±ñ2cƒ%;ŽÇ*¹ÉK¦L[dºÜ`Éü¹+Ì7™­X4oæºÃJ•äâ   ¦†‹ MËyyQGfêÍ2]¾ÒpÑœ¹+m„M¼[ÌçA™ —šn±¯¬Êݰd֌٠ìù;Y,Yjl²tñÜÛKŠVêëéÍ]tàЉåx?S('`ñb}ãe¦K–,Üy"P®©Úrl®›™š"hV§F§µvt”¦¦K:5™±¹½%ñIâ–öì„UGWW§:59«µ»—•ÏU°ŠóJ;zZócR”D:TÉÉ¥­]²Ü<¦J\'ÔtõtiJ*ð.¨¿^¢ÊOÍU÷¶¥d· ÁÉ~ÑÌDë«1:67uêô~ŽªfZ¥¿Ð4­R*iÈ2›®w2¥¾2/3.)úˆ³ÍôiúWJ˜ÀL‹6ìÈŽìf*Œ;n´bwy²×Œ)s6m³Ùla4gþŠÂR`¦Ùg28Ué§gMYQ&Ž?¶aÉr7n锥¡ÕB…œ}pñÆCWs#,0XÏ’‰³.Lb”ÖÈrZi°xÅÎ3~áÁIB™4òЖå{N)Õ2FZJLb„“íæ)S …|»•.AÔØ\YåÙ]«-ìÎKÔʲìsúÓ&×áÌdçS$—5Þ¶t£ƒ?ÙEöÑH1§}ÕÝF93e¨›?!ÁLZíô®®¬æfr­QÓÝ0‹Ías8µ°ƒÅ†¿œz.«ŽSSËJÏ̆¨@¸Úyµüîžn^uyAA›/.-.*b°ÚTª ªÍuw¨$ F*”·÷v¶Ë…M:„Úx,A{›ªŒQXYQ­ììk³ ‹ Ò£S;Q‹œW‰VñÉ(d"*1_ÑÑ×®Ôð±? »¸˜}§iRdj¡¢Œ¸ŽîÞ¾žîÚ²‚ú&%¯†×ÕÛ+­ç¨»NÆ-,(äHµÄq zúzD¬:]7êiÓäçgfçÖrÅÍrA£ºuªXu®œ[‡J&ÞÖÄ),,R¶¡fecS œHªÆýuR‘ª µ4Á5Rüw ÑÌDë«1:6·ÊŠK|_‘0ÓR½e9øÀ0Ób÷(üK;±ž–+6ž$¾/]½uîØ—åF{ý2`»$ùÔR£ L¼ ©nç‚iG"+ÎØ®]h´Ö}¿ÍÌYKÂÊ«™,ìÎ)®Ö Ì”rÞÚp•cú•ýSf:yÒÓÓóŒ×…ÚJ`¦ù!•Rnî…¹SVäJ4©§·3Õ•Ìš²"O¡Òh¤>»ÌwŸfZ¼l=ÞUŒ3“DÖÄɹxÌ}Ë3=ýe©U|Š™Äì}ëLŒÌ-=¶MÕ3ÍnÜÀLÅen–¦ÛݯAº‚Úxã™Óƒ ‹™Ücê5J™çîå43=BBB‚ƒƒáÒÖ´RÌ´¦¦Û(‹b¦$MË'\Ä!˜‰¯ÕÎïêJ¤™iÔu7ÌÍ¶Šø&ÝÍ‚]T áW¯R$¨¯c'¤äu »úúºÄueEÕ’ûþ¹ãDscçÙðŠf&ZXMfZ`h~-*Tf^«âÌT™zqÖ|ÃSÁá¾§¬g/\W,­ÌL³¦Ì²w÷ ¿à6}–iZ9cÉü-‡=ý.8Θµ$ª¢ö–ÌdåÙ…x/ž9ïDL…´6ÙtÎTŸãNŒ7àcsÌ´®TC1S½¢|ûÒ¹NÞáaçŒÏ;ÁȺ‘™ê™6«79]Œ »¸xæ¢@'þ˜åÜV‰aW,˜çpñ²×ÑmSg-Ïol v4Ÿ¿fovzÔ |l®&åŒýÔű‘‡íÍ®8X§Æû™hfN]¹r¥RG1Ózf—Q&µÖ@œºåßLTKŒÇÕkµú]]ô§TF]wÃLI}m­---]w~“í¾ÕÛÖÚz›a±1¡?83ÉżвrŽ`è b»¼¬ŒÉ¬“)áç«`1™<ñ]¿À¤’UU0ñ‰«·¢IX )³ñ÷šÔ YU%žäÖao–‚]YQFª²’×(Ùö\©ðøwbµZ«—È5A]u-ï‘{%y 2SaÜy óëÚåì]SgµvW1ÞoÄ?niéV…‡SÉS‚NoXcn¾Õ6©°V­iôÚ½óxdìaælÝl鿏ÇÜ|óÙ˜x-õÞdn¾ÏóœÓ†­þ¹Uqç\Ž b&ŽóZHˆÐæÍc²e*µF­*N;oin¾ÉÒµœ%Ös¶™oН• Нm4ß%È tÙ¶Û @®¾,ËÁjµùš žW“áf)I½´m—c=ÜOÌxsóùRŸ•³kÛHÛãr¤T¥–ÕÄíÚl¾Ïùjü¹#ëV[x\öÝ»zslµ¤¡$dûFsg׳»ÖYÅÕò5 i˜—ój(À^R6<Ûi…wºüÊÑ]<#GîÕ¾1¨‘b¦25µŽårv‹Q6UÁE«Z¾/B•3ÕiµKª{B543¶Æ03ýÑõg¦Œó;fL›¶ÎÙpË(©É]·bÑìY³çÎZäv1Y%eY¯Xq6¾¿+5/ŸiZã6oT-ÃoÁ”)3LìjMCU®Ñü©S¦,I¹uØ›Ug=öt½Y³Asç®Þ‘Ï!ÆgFDª‚`ÏM{ãÔx5²ó¬ÍM“«5i~ûÖl;=rE!Af¢Eëf31”Tß’)Gc˜OÝ¿ÊÖ_³P©g&–FkœÕ¤l%wÁSÑÝ>ÝÑz0ÑÌ4fõ‡f&yýޕƇ¼Ä`+“W·Ãh®¥µ½õ3ãmgÅ‚£iÓæ-ß´móŠ©óç¯_»}½é¼E–g¥šÆ“ÛLôWn±µÝ¦?Oï|Biqò©YÓôVn´Ù¹Ñtš¾y… ÎcãòÅ+ÖÛîØ¼ÀxMAu¹ãº¥³™?¸ÅÒ©úËw:žÉÏ 5Ð7Ùmk¿lÑ<ëS1Á;çèÍØl}ÒïâžN$Õ»V-2X»}·ÍÆù‹Ç”rÒN›>gƒÕËU §.µâ+ÇÖð0Ó±HFEE‡ÃT’J¥ÀIàÖwttuuõôô¬^Ýgb‚ÀžxàSSêÞ"¸w¨1 ÐÐP(?µñ°•˜˜5 µñTP€_Ä!¶aµ÷!ÊÝÝr‚ ™ü}h¤˜)[J1“OmÀ jÀ aËò°¶‚&œ™ªºÕ1½—¥'mìè8ÛJñ­Õí˜ niZW@KÐ6@ ÀÔÜÜ W š ‰DÜIÌÇ›™R}l—šìJ-È?l½r½ý%ùõ§2ÝÉj³á⹋×9«˜Ét‹[ƒ˜ç¸Îxó¡@E]Þ¹‹} +€™Œ¶ËÕüÚ(ÃiÓB³ÀL×JJv¯Ys§˜çÊ”jÏÕ|é:(`¦Å«¶×‹ÕÒŒ³S¨¬Ænf&¨¦´Z-ÉLpkÀ 2ÐTaj¹í'ˆpAxHÚjllövö¾gP€ÚxHêêBMM¸;†þû_Ê­ÓQ{¢ 5¤\„F™ÒÅ3-ª Ê© õ­q-Yb|S•\·.º÷’„b&ƒ®.OºŸiTt;f¢vÓzx‚K£R©€“àê@½õ¬@ €&¤ªª*2½èqf&uÃÁ•³gͯš7GÏx _BÍ+Mõsµw»"R)ëóýçOYSY1ÀL+,‹%|§õ¦v^±jNþ3oÆ™IÈŠ6š6=,g¦ ¢"+³yÛÝ| òRSRKØõÌ´:?óÚl=½Y†k ŠÃ€™’ù¦ õ­]Ï¥ú:N™»–‰÷3-´:“˜’3Ó†blm03©Uʤ3Û—¬8Pw|êœå‘Ù¹¹9)©‚:`¦y—‹Äe ¦˜åÉÕù—lfŠfJÄ™Irg¦#ÀLÔG6˜q83q¹ÌÜĤ“'ìfÍÖ¿”Y ÌddéL0“‘ÝåtÈ4ËÇnÞB‹ËWCœ¶X çàÌ47©J=˜™ò(f2X{$˜i©ÅNT£È¹ðG`&xØ 6Æ€àˆÆ3Á™yèÌ4 ooôóÏ”{,¨¦¦†rqfЉ‰9}útŠˆš¾P¬ZZEM ðc·šÆ¨3qfbÊt›#zÏ÷÷3-èê:J3Ó¨ˆf¦1«?,3I+ãçÏ6Œ¯&`¤!ÇxÚß" Lj2®Ì™¿`×Ag»f³ ·²ªnf&ï„ÁÌ4eÊk{WÛ FóÌ]„ä|¦*vØá-óŒ–;°›«o[J=Å‘ÌTÔȲš7ÕtÃᚺ`¦øÌäY³çlut´Ú°tŠÞªb9167m龃îMælv‹êÿXÎL&›÷º»»;;î7káÅT¦FR³uÉ”õ»÷[oY¶xã‰F|ln€™Ì‹Ôý̤Ùh°h­³³í¢ù3NGW|˜Œd¦ºÚ£VË V[»»ØëÏ^|µ€•ë»_OßäÔ%_SŠ™b<ÖÎ60;phÿ’ùS6âÖä.[0ÃÒöèùSøØ_\±cÙ“-{·Ï×_Áàý¡˜ b¥§§Sc@Ð2Bù©‡­ŒŒŒ®®[Š`ô5Ö˜ è…rqf‚¤@W®\‰o¤ÖŸ/U/aSÌä[Óº*Z–*Ä™©B®ÛÚ|¶Ÿ™fvu¹ÓÌ4*¢™iÌêËL5¹Ñî§|Ä2ª¾pð| 5æ*Îðsqqr:z4·L¤‘ |Ž+eåÅøžò‰’ÉÅ¡ç=ƒRJ45GM¯åcs{¯^:ízÈ«ŠÓ¤ibŸr=–Ç©ÕÂh_'§C)µTº€qÌýKªI8v1®LÚXtÜé(dRêëâì“›~Æépg¦­§#.ž:rìt(þÁ/J þînN¤ÜÝcò*ÉÉáüÚÔÎN‡ŽøÔ äIÕñƒîé,©Œ“uØé,K­®Iõw?zU˜(`ûxº89»&2 V]Y¼Ç±Ó±FÃe8:àô…Ø&ˆÁÆ£8¹‰Ï¯ð™¡ÇÎù‰åeUГөšAíÇ‚†—™@Ç‚þP… ѸqCmÁjï5frrFol.VHÐ4…t _©äÍl]%JâáÌT&×Ù†r<ûç€OéèvÕQ˜EkDE3Ó˜Õ–™†Orœ™¶:5 çŠ1<`¦mçð% iœ†—™t:]tt4µ10vú™àÌÀ)¥6F@½½H­Æ-$½ÿ>å¾ÝõkÌäèèH¹3E (úU#þY„pt®¢yK?‹¯5P*×í¿VuLAû©¹ÇEL-ƒIkDE3Ó˜ÕCd&hc iE¼ºj6W£¥¶‡Cªúj&[ØDmÑ&Q?>BÃÅLÿþ7úâ‹lÚ4j×CȰ·³÷­æææÑ)L\úûß)÷í4Ö˜ ê^ÊEhô˜)œO-VùS‹è>ú:]®ÞÍŠåâî…Ö5´ôˆšb¦ÿ¶ö8óhf ÑÌ4fõ™‰ºuiÑ-Q?>BÃÅL¾¾ÈÇyzâa.]ÂÝÁÁÔ®‡¨²²2h}©‡­šššÑéôz™)%%…r=fºÆÃP“Ì$O%{ÊO–*vFTE×ããè ¥öh8ÃM‹á© ˜ºç‡b& ñeÒMkØuÌÄ­Ì<îq„TjÅÐO[h”Òøèô;µç²úè8F;¯€y·K,ÿ15bÌÔï{Ì'õú ¡›Eݺš._FçÏSîGT ÈqIELÄX¸53‘R(ð0c†RPQQÑØa¦ÊÊJ8ŸÔÆHêQd¦ØØXÊEhô˜)ˆ‹3ÀÐd]ãÿd)M-‘Ù„—FÔã“( •º3Q9[ð9Lrfš¸Ç±ŠzÕ.¯¹Ù¡žÛ4RºfR)åâú"ã¥vÕ"‘\*LˆŠI)4%1¡‘ñì:Æ¢i†þ©ø"½*Ynr\hh¢@Þ˜ž’šTPÝP:UosDFF»U’S+敤'†Æ$g5IÅÉq¡@]ckNêCÐ1¯²(63 `3Á/$Ȉºu);Ð$÷NÓ¸¿:DùÜY<:ëØdþInLdóêúòrÊ$ÔÜŒ7Û7K­F«?Ë[ðlBUò9¢˜ñlVÀ“&lìÃ'–ðùT˜?ˆî‰™¶lé^³g¦öööY³faس?üð¿ÖÖVHçèQ´t)™äu5fzèkHÖ¨½4w;fJL„B¹­¬?û,A׿4\¸¬,Òùp?0ÊEhÄ™ ~å __ß+\’ÍošÆŸä)b‚™Kw‡„rpf*Pé.Ä¥8¶álMÁìúžý%3%57uRnZî»d&ðöK"‘h$U+ŒùMü9Ç—ýϹl:yÑÝ`¡expXte¶éüµ)L60OUŽçª=¾Éçl-›9yyRfú =ãäÊØy‹bƒ 8µ|áú´0Ÿ[ÝWNŸ|:šqt»Ù¥‹œÎ?“§Â Feù‡œvW__Ïf³kjj˜LfYYY~~~`lƃŒÍÕ3c1´I ©êêêììlê~¤4ëíÄnìÉ:ì''ÊçδâaïV`Ÿý íÇìVÏÝa€B øžŒ;"nÿO†õ{AJ%å3 hбC{îöö‰O& ±·þޱ\0ëï°<@º;K«E6+$c©ñ} ÝÌL{/2bb*RS9ÙÙ ùùRC©ÑPÌ´n]÷Š=IÓûí†Õbا6ù‡`/\Öyó¨44Ö˜Éßßì̇ÚN)µ1’º3=ñ¾‚%œmÛ¶½€a`Øßß}÷ܹs°+>}ø!êáÈÁÁrqf‚útáÂ…Ë3É5š© Ñ/²´‚™\Ûð¬àzüÜ<µÎ%ÕÛ£ ›¢Zݽ¯€šÛÞÒ²¨‹Z“Ö°ë.™ šUÊEªŸ™|¬sõò¾|ùJNUq„ïió+¢™¥kLöà_´Òh Cø¦VhØa‹g._lvBªi:ºÂ /ÃÄüty’ûÑ£6lƒTÅK~0™GD ÷ÜÃȼâ}ÈxîÆ{ùyô5bcsC™i°à7ðÈ14>‹ !ÓWbNîmª­¥üUY«-Ôï[¤ß'áQ>sCíØÓåØçqØ ;lÿ¶ÿÜ®á02BŸÛ¸õ¿ùÔv‚ƒkJp/_ÖW_Om–ÕÏE­Ø¤6왫_\2Zý^ÊÂq×JŠÑ/41°¯Ž`–мGa³W¯¦ÂÜNÖÿNa³1RÛ¸nf¦§?fŒWŽa Ž'7N¡TâßNG`¦åË{ÒÒÒÞê·¿cXhh˜›ÎLd+6ЖÉå}3Q›CöÞ¼¥ç7ï&ÌÍ» 3dón ټ›0C6ï&ÌÍ» C:˜iH’™˜Ì1ŒA\Ê@ ì`¦!Qîfón ټÙsÀAþ½±¹KÄÄ™F£×(˜^ÃÓàÌäÄÙF¤Ôã³›r5:»|ýÄú­AI§CÞÿòkmO3ӈ险8Ú}Éê}]ÜÓ³¼Ö,ße½ckHÓÅx±õÅp`^å5“m»ÍLLÿqɾýûVXº%ÕæÓgÙ»m?tÕÒp©åÖ5'üIÌfºäh³Ã~ƒÅ–l>ÍL#ÅLb~i>“xùâ&=rÌä-áp1稱?yjsA±Ý/&Y=ãiŽyúc‹ FþþCÖçá}–Ø‘¹XÄë˜Øe‚õ÷–wê„Xðlĺ8Î,#ß”ËÑ®\ƒèÿþ²÷Èúçø*£Yo”à7 àöÂþÃOî„`°WA"»÷6] <ÐGá­?`“¶û¿ŸhÁ'/Ýîy‹qç ô…-KK)ŸGZ·›óòò?žeié& CCC333¡š:}ú40†õ`ز}ýÀÌ„aaàf‚ˆ‰‰‰%%%:ÎÅå<ø_¹P__¿ph’ Gooo¸³***€½ ÷sçÎA”„„„ÒÒRˆrž˜€G[o Üåååéééd”®®®øøøÁQ $—Ë… âD)++ËÈȈbiiY\\¬Õj‡D $£@ iÂñB`ˆccc!‘ÁQx<œ–«W¯Âæ…  ìà(111PT8™d2JPPªˆ’••EFéééˆ{É(Ð"@µ `@F’C1%::Î!TVd???ˆ (_}uÍV3 ˆÑ ÌØí D©«Sÿë_x`&ss†½~²ÿRª1ìcüj~nfÖ ÌQ"##+++祂ùvíäe.,,ÌÉÉ‹ψˆˆ&£\¾|ŽÎ3ü¢äæævttQ˜L&DK@FÙ»w/D2Êè1Óh]5©Z;›Í5HªWâÌäÀhØïG0SŽF·³ÂiŸg¦•Ö¤ Ã>“j2ÏjÛæho¸h £î“™4jõEwµ b65)UJÜ!ÿ ¦RÊerr¢¿Z!o™J˜c´ÜCÐÔ¤ >ª”C@¹R¥V) _™ÿ’š’ˆ¨TéôGÿCkä˜éz„˜‰‡!B|„€vêúß÷ymØ3©Ø/CÆæ ö–êÃÆaþØÜHlÎW&¢ïæ÷@ÕŽÍ ÃæÅ TØ¡rGhÝ䈵ý?Ðæážç+Q6 ¢ûaÆìí)¯å.FhùøKàsKf•t gnìάDGÇá]Jÿý[19ÿJ&CÛß hÇžþ'Vy诇|.õ}ÿ]Ï•'MÇ‘Ÿýö\7ÇE÷8¼æXQ?ÌÕõôñÔOÐÀ|¦ 8……Cç33™šö$&¦ÿÈV¶ Ãþ†aãÇ?ej9oÞPþkcsPÇ{;{ß&¹Â_D¸ ç¹ç^7îéI“&A >ååèé§»ÁüøH û \½fjð_0lΜSß}÷Çæª(¡Ñc¦³3ITÚùUõ 2‚Ùr|M¦=Eüá>\¼uÌÖ6ï¨ß·O3“P©5ËmÝ›!Çãh4ÇÚg—-(­áÒý2Ó=J%çòDôŽ£{ÍL·SÑ·ä‚TUAìðÔŠ~×ðVó¿?17mê«­Å!ƒ©D_4£™/Ĥc?ÿãH‹9=ÍGX¿©—‰}zÛô—šÂÛoÁL5™#OýJ„ÚÚÐ|TØŠN!ô.<}v¡5¦Ò™ŸòŽ»VŽ}¾è_%3úöBó{Ÿòjùó¿ïˆˆéÈ×ÅDj~µ…K©D{ßò†2˜}W½’ðÉÍE OÍÑb/Ø`Î? ÑäwÙÓ°„&ì/bìõ]k”‹{þû¿t¡ç×w8à‰ÐŠ#â>ºWfš?¿âý÷ßûí·›ÞÁ°÷Ÿ{nêÔ©Ðü¿öÚ§“&½ûÎ;?üq5™r[[[v6Ø ÔË Û¶¡={HçÃàØa&N7r…!™ š—‰ig| «Ç°^x¡´´ôóÏ¿?þÝO?ýtܸO‹‹ËJJJ L%\' ûïd .<Ÿ)1½óÎP»t‰Ú;B‚f‘r=f:ÍÇ;–ÄJíâRîÒ¤ÐZ)ÎL6E¼ƒaW/Ì”¥kÞ"¶Ýׄ¯/À—ëVgimÓ©—Ø]93 hf)3Ѻw23Av—P(ËÌÃÅ™ $‚V¡<„–#”@íD[ódØ«ðœúÎëa—|‹åÏù8ò_ñ(äÉ…ñØô­Ÿ%‚Ðx„ÞC(¾™Ç£Ýñh6 G×™©šX„æö À6$#Þ˜Í\„žCè„>F(â"D¾—€ÏQU«‰ „Rúé_;{wÏ®öõ+ÛÓS¨Çw`¦0„†Lgèy>kÉL /¾D_>SŠ-FX.ú♲,ì{°›~+íè@sT‘à?`ÙjìOà°XÝ—ŒÐÿQQyÝ=3µ··¯^}ä‰'ž ‘ÉdñññŸÍ Óñð@?ÿœøæ›o=ñÄ„éÓ§Cø3f<…aÏ`Ø»o¼±}ûv³|9Z»– þp8væ€ÇÄÄŒÜ{|ÀLßþö7“õý}H}¶ '¢'0Ìï¹ç’ 9Ÿ Ê—râÄIãÇ?óÖ[oéééÁß  í3A¸ÝÀ ñõH·@@í!8pÃóÔ°1SI‚ŸÏ•ÒÆ›^ !Ìt’`&‘BkPÄ3‰‹¨ãKlgð\C|Ïñð!žÌææ 2»}Ägéx2ݺœ¦ÝéBpƒk:§õ‘nZÃ.𙯬F™™ e¨³àÒefì¸H8®!dá&µ¡uåhæc9aþP;ŸÇV}ƒÎ-F§Ÿ^«Å^ø|Aù7ͦ‚£C]E(]g&ðyë<Ò+@/"kÌÅá…ÃöeCh7Bß~Wgé ÷ÙXÔûK9rìÏW±%P­ƒ€™¢ˆ“£C. {{| íKbìo€™êžnQ(›I¶2Ÿ f„¼OµCÊ`+ Û,°³àˆŒDÀLˆÄÝ=3>|š\rV ÎÒ·+*Ðĉ¾?ýô„|Äĩ,Ű¼óŽD"yèÌôÇ0Óºuèóϯ3˜+†}ôÑ|ðžEÚ·ïúå¼>±ŠÄûööCW騳çËIŒŽ†‰™ºšÎ¹zi;{zo˜é˜ïXjkMóù+ã¢*ðMË"îá«gÏðñ .éºæ õÛx83Õ7i7¦H­ÒÉW¯4ö•]¿ÓÌ4R¢™iÌj”™‰ÔØ›ƒ§±ËýL2„ ½Ë Ü 2x3ëɧГA¨¥ÌDOÿÚ^}¶s ÂñTõ1È¡q}ϯíNíÅ£èSIÞÀL#ô·7”Uã>ÙôÄÉ_¾ÍèÄ&6`oz_Â{³@3‰¿w£înܶO+×aÏ÷aã¶nÅ=…yÌ©1(cÜÏÝØ“6¿äoéDÿND¿p‰˜3ý—`¦ÿö¡—ÞU`ÿñÇŒžø®çl Óß}HÖþ¯—¬@è qî†™à—¿oß¾§Ÿ~:22²çŽkZ3çøñ½ö¤hPký'Ø~²lüø‡ÌL×®];ýL #ÚÏ×âøñãã1, ÃtÄ;qànkk+/§˜i°3Ê”)SÞ|óM¨ú(/B£ÉL‡n\ím˜˜I^µËÎÞÖÞ)·–ùƒŠ8i@'Ož<"Ä!I(Ó¬Ìá¯I.à™m.c :ê)Àg¹¤h[6&,u`ãÌÄ‘j¶$7X¦SßßSÖ²8‹tjZ­½VÓ°Šf¦1+š™H#dƒT.„¼ÚFàÉèÔÅX{ÍsÔ{­øŸOUaÑó˜î½—ÕŸÖ O¤hB¯¸(¾zñ÷·‘†2ÓQ„¾FÈšÈeú_ ¡YebŸ~ýkߺ¤lÿ1¿Š„Ö Ô?wWêè@«æÉ>þZ²SKõ-ÍGxwÑ:|òÜr!ö–ÓU_sö„ ^Ä_°A+jJ0“+BïM©ÏþsǬ‚±EØ\ÎøNØJßCˆœ’º !| ÊŒÐ2Âñ¨ë–ÌíÑ“O†¥ÂïŸÉd¾ôÒK_|¡/ !ðï2Ó¤I8RðÁÓod¦ää²Å‹23‰Åâ{ngGL2™ P€Ún‘ÌÄår1 ûø½÷^Ű¿ÿýï‰ÿw™ ÔÑÑ1mÚ´W^y Êkt™©®®Žr&fêínmiïÔˆßzÁNÀ&÷|0NФ^Â_”QJô-mdÔ STm™ÈݘÉ7ȺLýSméfiµŸ÷ônZÃ"𙯬hf’#4‡èRÇV„Ž#Ä"üµÙ!ô ½9©áŸX¥{e7æÔ‹/Ç>öU„e¢WkШ¯‰©N+ÇyCc™úÔtr˜Œd&ha݈ùI{‰¾z¡s¾º9/e³ÆÐh®7Ãà€ŠÓG‡<ÝûêîTMŒëíƒ:’`¦övôñdõf3]Vz·ËöF(Àì—³ l¥Ø—ž'©(‹€TkFXzÓNÅÛ°gþÏÆ¢œ76úö¡ˆ`›ˆ‰\PSÏBh áó¨ëff:ñÆo¼€a™4) Ü“&Íüúk5´£wÃLÏ>‹;Þ~é¥\ SaØOöÕ_´´´<ô±9¸‘Ç3Á-?rÌ”›‹tºÞ%K–,X° &FþÖ[™P¡‘»à’åäÎëÂL ¶¶¶3f¼ùæ›P’>£ÉL@ꔋÐ01S³äØ¡ƒgΞK.S>7 ˜Éµ±Ȉߤ2‰.}~;šK,5SZ/št±5ûv=;£Å¡oˆ!­ñÄÔìÁïÍ <ŠAú?Ï`oCãì1ÎR†½zøéÝÐ*ߥ›€™> ˜) ›¬À^Y£Ïfé÷¡¿õ¢Þ>|ìO,Æ;·áMØÌí ¬Ñ3*Ç>?‰mø/–{[3îp_&BO pŒ#¦@om&|iÝÌL“>þ­‚X¼ì1lÞ¼yææš»d&Ðà®™¬Ãz322Ÿzꩲ²2ˆwï­Üpê>Ù‘Óˆ*®·ÞzË××Ü÷ÍL€—ãÆõýôÓ”·ß~[(ÎëûÝw¾_‚{òÉëï®»†ôÀ 3ÝYÀL$í@õ¥Yxƒ¡{u.¯îW×{xï9$Ƨ:EIZÝ}¶;ã VKTÖqÅëÒòHfZÃ’ÏeדŸ¨+ÕèþÉë«ÖáQh ‹î™Ä Ið¬”-d¯Ùâ#0)¥´¤„5¸#PÊ©irX¸[©p¸"›’«+´_×%)(( ˜I)ÎN!2IHå]Ï _2Þ¶5ŽÂY}øJz%á¼g5†Nž:å¿¿X+ˆR++K™Ôâ`RJศ•éARÖF ×ëQn/•”SÅòÙU"j Ð{Ð(3“É„ªíâÅ‹‘™/,:°BÌøÎ"^õ—AMŠÐ÷Ð4®C€/ÀŸ-âaÍh=æÙ…MøËžƒEÂß<ì;öþeÌ„½ó‚µöù^ô<1ù æ$B1hÊÆ~{}K;` ùŠïS7¾77 ÈbAŽ¿4#cÌb½=Kð‚•Öãon?}œÙ=UŒýÛ|?†|<çr›M¸n# À·JªE¶;;×j¦tã Jgާ/¡/œYþ§p¿‰f_cEbìõRìË—lUÏüЖ1î§W O*];Z^”SÄä'Hù*±<Õ Ÿ}ugfšao½eõÁ÷ÀLƒ5°¦ettô{ï½uµã!) `ìô3Á9SJm ·Þ|óÍ©S§’é?3ÁåÓé:!©Ÿþ|Å ì//½äãã{ÇAfÚ¿?å"4zÌ´OÚÄ‘(ÌâêM޲39xù¢¤þÐÙÝ.|ªSDCËÉÓûí ñU¤™¥uLþò¬’™LëÅÓkÊ„3ku_W š™†O÷ÇLY¥nCÒ½÷­³;`d~Z"±Y,~ƒDÁÏ[¼xo…@B ªOíÞwùè¡Ë•ü¦ú² r¸tCÒ`f8زeKRRÅLÂ\ýÖ °‘žÃ4 xlvG®Ô4òëX,¶¨±n­‰ua«ž×Pæä“\&rÁ_,'ÀFÕÄçòÙl–@¢7Dàp… ™X*SHdj•¤AD„SøÚšOŒ56p¨oÁs¸eo½Ñ¦.þn‚Z¥äÕ³YuÜ&nö¢Å•‚Ɔøé*j –í㩚8DêËx*y=^F¡R)åÕ×CjB©’Ÿé±ÙÁ¯´¤H(“ ê!x½\¥àó„uu,nu–n§?T?S+Ñ«K@Àlb¦s'±ðãIÝ ú°}׋ –kgaÑ}Uƒ ÑŸ¶«ß™$ }ZÿÅW5aØ| öÚç¯5Å<5çO'Õ¯í”`}øD%0êÕ}°Nô"a ôB/b $Ó¡‰Ä„'‚™p„¶ ôBSˆþ§ˆ’¼Æ@Ù ÖŽ÷î44 b52þ¼âï^Ú×Äè5„þ…Ð7¼Þ“Ùwþ•Bþ&…Lï@k^?ÃÀ¾Ú` (BèPÿþßö¢_m4¯½#iÀÞlÅ&-Ã|Ža›yØ»Ø^´Õ<çÞ eÆZÑ_–)¿øJòŠ ½Û‰7áœwŽXó ˜˜é‰Ÿè j}=˜©¹¹ùÛo¿=vìµã! ŠA¹Æ€Z[[G¨« žÁþóŸÿ´õ¿Iñ€Ì$À®_Oƒ‹°+öÒK¯À7n™ j`ÊEhô˜É^Ö Í 4hæQ³3õ©ux¼¬”ëæ¹ã`S ¸Cù-æF§öæK!X…D¹+:Ã4‹úxÊh³¨^3S‘N÷¿’¾<ŽY´†E÷ÉLYUÁyµ‚ì&Ë6š:²qÑÎ}ÇW¬ÙÆ)úé‡Eg¢ É`ù®sWí0]¾ê|`À 7ó˜ËÌdmm}íÚ5ò‡¸mÛ¶òòòÚÚÚfšüåÏÆË–-ÛäzÂÁdÝ^÷kçŸN¬N»æuüÀ£ƒ—-fα=||墅þ—ìÎGÚoÛ}Ìu旅áx+è§ÿ-öpÚ­·Áóªë~ûãÇívX^ w?r5ãøÚY§‹jV¹ïnòí gítÚ)UWe?~|÷ÆÕùeK~ÕsóTªÔœ¬Ë«¬ll7í‰* ýñ‡%g"7mÝ­¬ÏZd´m©]À »cǬ·¤Uãk‰å‡:m>¼c™Alô‘©ÓVsÜ®·òx¢Ï¶™K6ÛØX…¦x¬Øs`íò}~~¿};ÛÅÕe–ñn¢ ·ÕŠ™ö#MðL‡ŠÐ„Þûµ½ ûÂ;k"C‘¡SØ:¨+w¿îôòËÊ:샟ø=ƒ0 ¼pëìAoÅãK3£Ò ó%^»û7BNMhüªÞEŸcÝø*o¯Î‚¼€ðá<à'FNUM'_B€8†Ø3½üƒ’¬Ä?þQu‡ö¦·!Ì‚ÍþoØ· ú·]ÀV‚? ÒÒW±¯Ð±\²]؆.ÆþýÄ©À¦LìGðoÚ»Þ Î}’ÕYø°#œ¢íÄK EÄßGW73ÓSÿ†õkÓ¦MPM a¦?ý ÿòî`{â *µ!üí¨Ê AÂû¡©¸¸xÈ ÏCÔ'p>©{ÐŒ¹ùP;xÚ;nܸàà`jãŽÌÄåRqú ½þ:åöë_~d&ÂÞNêwÉ0ì}ìi K­‘c¦„„sq3Ù*º€jÅ2‹…· ‰7Æe<·ãVŽòVp‡Ôë–-öß“ÛÁÊ%Ê=‘IF¹©$3Í‹ç•ç±xßR޶Y/«']„c­aÑ}2SJ¶Þ¼%Ë7ðÓMŒl–š85xY­‰â䙘"â41ç´Û~ÃÛMÍVGæá«mÝÌLðìèáááååµuëÖ¢"xüÆ¿Ä4ÀLÆfÇ%P>µæ²›MAcSmòa‹¶kM–é;m³‰Énü³¾®›í<·ŸöÜþã÷zË—/ß¾÷¾~<+ÈbÇ•¸bÙR›•ú3—ÀŽåÃr³í½¼Nܵcýîõ©xMð±ÝYÕ 3£½~,Y>{ú”à¼bË•6äBº„Í+6¸»T+(0^vX¤Q…Øépú¸{L¶™ÍÆesã)oˆªÂ¿wëílÃÈ™‘v9oغ/T­©Yÿ³a^æÙÝGbBŽï>sÖæJ&Sà Y2{ù’•'¥Š+s*—ÛéÀLbbàl5,kˆ Š^™FÌdúǯ:¨9Øû ÷ê6êñÇ~^˜ù$¬Õ ÛþžØz¬Gœ/ $ê$Æ¿¶›+z¡¿ô'pó2fñ×ö„¦û¤ðÔüØfúpÁÀô‰¸PoC…XG¬¢ ÒººÑ9/dýmjXrqAŽŸ8èýT z¶ÿXàNxjWó²›’íAs3:G\Þ÷Ú¢Áû„€™à,‡Ì´ÿU·ó ×h1Â!GÌÖ³þ;Æboÿ„Å]y|tò5Ç<ì»q?÷)°WÀsvêéùƒÞ›ÛML tuKfZ¹rå„ œ‚j}¦ÔT­ƒÃufÂgÑ3“Û-5ä{sð öóÏ?ß7(<¸?fÒ×G&Pn`¦öööÉ“'›™™QáÝ 3½óNéÂLè­·®3S!†½òÊ+pÅG´Ÿ)ž|Û¶_#ÎLW¯^ ÅL3ä’Ee9UÄçVR4ÍÉê!ŽY´†E÷ÉLD?îâg˜˜;Û›Îó¸¹nÍqsõ “ ü|—Z™Ÿâxþr‚T®T55†Ú´zç‘êA)¹ººÂízáÂ…W:3ÓüÙ[‚#AñN6"‚™N¹[XØ_ôøiÖãE澑‘6›×DûìõŠ8¿ÂhkxDdJn>è6ÀLÆö'm v‹ŒŒIä5Öí3Ò;_ïk¹ôdÏb€™ wÛmßz><ÂÎ|nP~™“ñ²“©y*µ†ÎóÌç–Qee«f˜„Öªê~ùqQ=—ifl{îÀÊm‘Ñ õb|¾UÚå]ëƒm2ºâf°b_„§¡õy~EÈ ‹]®ûv^=jºå˜ïþÛOz¯ô¤™ ”BL^†ŠÚ~-BiA:¡_ âùFÑ÷Ù¯ºgÚ¦õ¡Y]hËÜÚ_±”'cº¿3ëýðWõ¡ö½}ø´žÿ ó_bN7°ÎD‚H.g¢O2qfAúS$ý«¼÷ ¶+ûuž.Òç)bX0Œ°*‚Ÿ sˆòÿ:¬'ËŸšú&úub]è›É…‘¾ók×&„6"ÏpÆ@ÑÐðŽGT73Ó¤O§2Œ[~oŽd¦»oª†0´èÿøÇ?òòò¨íQ9¿gŒhX´,+CÏíү¤¤$8ãr¤îfl4$h€™ ™xÿå—SˆÎ¥^x|ÌÑùLC 3zýL;5=@Õ"©q"oZ¤$ºo±WÜ\·Ù«pf ¨V¬^gÉ`%åÞˆð%3MWJ—1²ÊDøx\œªeuœ(’O3Ó°éþ˜I*•‹šð#4Ji K ׿çW²ðîC~MqI 5=ZÞX/•%øôgµ¢©”QŸŸÏÔÖïÝ»2,h°)fR5•Aª FM§I¥VHxüƦڲüB£’YWSQû*YÂ&·A"ãÖ–ÃfiŽÝE#‹Ó¨QÉkk¸*Ev–ˆårnU•H¡i¨¯•(¨ùÜ|ŽT!ƒ`" B•TV‹d )¯¦¨¬Z­Ö(dˆ[T^n^uqI­@žïk°ÓW¡R@¥BD¤\Ü(£NEIA£¤FÆô6Ûx,/Ÿ!”+{ªJ¡TlÈ¥º¬8?¿Lg¬Vþu,í¶zŒ™‰EŒ A3oE,bÄCèS„wÒ|‹P$BŸŸÂ–šÛ‹>´W½ú‰ìGý¦ÿÎU*±—¡î|q²&ŽÀ,sb,ˆg7IB­ã¡§Ûñ~—g}Zržü>û‰^¿B¥F²Q&Bgªì„gkÜ&öáˆx´†ö6Âg)A0@%81Ä«joOh±Ø+_lèF_ÛëŒÙð°w%2'"–H€è߭Úõò™^l<û4,þú÷æÈµ+¶€´~í¤†#½¡„õèßX1${~Ò*¬ëC˜ /6œ«Ùý‡àÔŠže!{92ä¡Ä^TFL WL«ˆtQÝÌL{ÎÇÞî½ÈL ??¿çŸžÇƒŸÞC¿¿?”ŸÚxØ‚ÚþÁn03•——?÷Üs—/_&7ÅbôÉ'¸½óš8‘ro俆L»Á…{÷]`;Ü][[ûâ‹ï>ûì»Eii)øüßÿ!-æcïÌ¢mwt$bSÓ°É&wáCsC€Y‰XM. À þ9£| ž€FRŽý;I…ÙIüý¡Ÿ‰ñ,HôBŸ!4˜M¤EZ@ƒ0P†wúÓ{îBsöHó©¹'`o @x&íx·D$m &¦‡oƒ”k‘Ñ„ ½7cÿ'¹á½[rÍ@ë«]fÀýá“Õ£°l|ä!Ïô‡¯àÇ~ÇŸzI,Þ; ;Õ¾ˆJN®5p÷xƒº™™n÷½¹{b&##d`€,À™iéRܽ~=µëÙgŸ]¹rà[´Hƒ™iáÂ…nnnÔ>Ç¿Y†XÖ­À¾+‘ë3ýõ¯]×ut5zÌdÙ‚3Se£Ä,™µ E^…¿$>·ºa—ÓÎÝ:œ™.Uˆ694lO­‚`¥båþ«—gdâÌ6Y!ؘO,ÄkÝ^€ÏÑ(§º»S›éùइËL´î Qf&¸îáááÁÁÁ#ÇL9ÀF,do%ùàyé‰J|í b€É ¡Åü…€˜¯ˆ%¿ÿLókûŠ…ýÝsÞaÆûì*úÎ=“†*°Ï  ÄÖã˜õ ñZˆ;bxþöT2vaNèÅüoVð`W.‘Å ’9*AÁǃ¤†Àìˆð`¶T©ñÙÖ¦@$^èÖM…ð"Ã{!BÌÿ±¬¹€Ï¾RÔ¢' H˜†U‡7! `¦eã} À"ìo.àyÅ"ôÞGõàs Û (öò»Êrìóÿ`Xž EʯùÙk«°O äÇ¿éà\Hf~Š!¢Fˆ™6oF7Þ`¶ý×µ¦¦æÃ?¬«ãàz£}¿ª‘TllìØégÊÈÈxð5-˜ š{ ™éÀ;{ö,åºHf*,,ê-//§|GFgΜ¡\„F™öJñ±¹Š‰EJµiïg&½ÚÆ­N{lZpfò*L>)³J.‡`…R•íUß)øØ€ÑT©pGh@V=>ŽPÓbžq‘è†kµ³ºº"Zèùà$𙯬§~¦âúÿDèÿvŠdØ«Bì-lúµŸýþõ¸ñq¨ôï_ŠŸ¬Å7E¨ ]òêúÏÌÎné îÅ_j FhRºð<þ¢0Ó3½I çAø'Ò{ÿbûÂ+Ú6ìŸ'–aR4®=I¼Úö4„)CÇ&nÎ}â¿WZôÈoeˆAC€°Oƒ’sÀ»‰õ¢ÀÔ=E€¤?‘˜MØüF¾mG†Á³&͹L´[øttNÎL–_&Ç`3/?er!OyêÌôÉ»UàvÀì±Hô^6õ:0Èe¼MœÙ¹óxb'zŽ˜çg¦—øð ü#¥b&RP³QƒdllüôÓO·µáóÌŠŠðOԑnÄf³‡½½oÁ™¹?€ûç?Q4Ü*Ä•'OzbØ3æææp>¡±ËÑ3ÏÜvJþÅ`0(×mD2àË·ß~»v„t'§L hô˜iCgPyƒdc*sC'¨g¦©uâ v´w€ût ÷ïÁÚmIøÚßMê=~ÉJ7€ÒÌF‘mXP*Ÿf{©Rks–`&V»XÜí«¤ç6=hf³z<˜IA,àH̶@èy|+û«A˜ Ÿ'TÈè]ÿ ì'_Ìtǟܦu¡–TVÒ;óýš¿6à\”üÁú$ùM4ž‰ÅüÕPúF/÷ â-9p¼)A“~kU`¯ƶaMTÊP«»YìDìµìÙ?äAaȽ=/#´´sˆý¡÷ ó&º¾jQ´ "‚vxñ a8e_ÝK`¯EFÜFt A:¶ÈøC¿>l\öõß²ðoáýE‡>á _>^ø Ä ƒÿWØõãGœOvÊÿÓ‡ÞÊê|ÿï{̃½ÿ¯OKÞh£^ýû„a‡A=ú{/ò!G€M83 Ñ«>ÝÌL¶837dgKóóá ú>™ CšÔÆ uuuMŸ>ÝÊÊ ’ª¬Ä™it÷õØa&83÷W˜>@¸ã­·ÞšJ¬>Š$Ãd¸ðîºû;DÉíVÙê×À·S˜L&dUá="R˜Ñc¦uݨ¬A²5µ|gam ÁL¿Ö‹×:9o'˜é£î©Í»¢ ÔjM~“z÷•s?gg@™Z3£V²Ç3$™…¿BîU.·O¹z’˜ÛÄUjW¥õx5áSÈiÝ·hf³zÔ™ ê‚!Æ ô/p­½…0°(›sð•]ãøx€Õ'‘{bìôÄî×:ÑOeȳ†ªw²aàHÑ•JË@ÅãþÝ…MørNÅ7=x·Ðÿ„pC8üÍCŸÔŒ‹èÃ:p²ëSâýp¼·‘ÿÃòO¦â]A°ù$ñZÜŸ 7$r­ß¢z‰èp" ‚AÒþJLǞ݂?ô9ú7׳»–v•÷â+qïX¼ííB¯uáI $Lj±Ð¬§£ü(SâIAˆn6pC8Æÿã’PZpfY·#Û'áHó±o'¤âÐI–œóþ6ƒßë3ŒP _DL0u33Mú”ñä“83M˜Ð0a‚tÂ¥JuŸÌ¤Óébbn=nYXXí.$;šÌtõêÕûëÚ ÅÆÆÞß«sÀL¡¡(00ø‡ñãÛûÇ5w`؆ ›cî›™œ)×m4ÀLPìÙ³g/[¶Œð999Q.B#ÎLY„Ξ=kÑ‹3S©P²=¹Ä!¿Ê¿Ÿþ_jîzl{ ÎLž¹UsJ´[Š X^“f—ßÙÿäeƒ»I¥^"·pdáK‡ŸbHc/y4àó¾ÙrÝÖˆ^w5>´Gë¾E3Ó˜Õ°1“ˆíës)¹Œº‚ŠFN€ß%Ÿ¨\rsˆœ™ÂÃñZj»ñ©ÙдÐçD3ïH͸þ†[‹% ›ü§Jô°B²[ÊÚ†6ï÷ßx´ ¡Ue(ûªÞ' {È(óˆVƒûš» åS¿Y™ ôË@²ÄtrPˆ9R'ž8¤¶‘ð §-$­_‹Ïì&Ðö#ñºß@"`ï}Tà€X†„ƒœ„~ÝRÐGãkvaßzFˆPžäÜ/°‹}LD‹û‡†¦5G¼vèpf:œ[¹¬Vµ)!‚åÊ4V>ç>Í+Tj4…vVjíá¤k,¼Æ÷(jp>â&Æç}WËuû‚$ˆéP´î[wÏL´FYB¡ ®—Ë­«««­­Z*///((ŒË¼{fJ>“PQå±Ûƒ¯ù ÉòÎeׇ»ïJºÕòPÈL|>òoÒ‰MœòŸ4¬g—E]Aèï§5 '^ûû ևωƛü3hÚ¿N½jÇàËQ ¼Ñ‹ô;ÑÂNü£³× éCíº—êw¶w"7Ÿ†°kèbê ²'û§ñÀ&5#ªß¾&þBH¨y~#Rc>Q4UKˆñ8ˆþ61뢓Iû ì;ø Y€½IŒß‘ܶ¡æäø‘ßOXÆ5Lßgâ2,ß5›˜·Žé_'ucOr°÷w„àgÀŽ$9Ù¨!V Hü×þôÈ·¡T‡ Ìñø à?b™ØÜs ×»Þ‘!·‹B%ˆjÐ;õŒF”™t:ÝÅ A x«‚¤žyæ™ &bØDccc¸¿Àó‡ÐÈ}a%$$2¥6¶àÌÜw?Óµk(88ô¿ãÇ·õ3Ó6 Û²eëƒô3:D~„z¨"#ñ¥ Àžx_“‰t{z¢¯¿þú×_á6 ù"êèÍ­éAP] ¥v~…§]+.Uàë3}Û(7· ڡ™É5¿t;_¶!ÿ.oŽ\»åÒ¹rÊdZ­X®^§Úv<=¨s.ä¹_=àD|n¥R®u /sh¦™ét—ÌDkô5\ýL×|˜©¡r¤Š‘óŸlʰ/>Z)z¯Eô¡7Ä8I|óF)T¢5ØGãÝzɆ,ª%ÉðéÒ³ˆoõË©4ð9C`u|CìýG Šœ8§{có<ÁìbVµýÙIþÞÜzr nˆ‘S É[GÌ­N")ê b$î¯A²ÿGx Ï„=KÌU‡ðÏKàcpb#16!"$òBû´(º7–/í¿Ïa6£YïGýKÑ»mx:¯`÷± ƒè“3ÄK ¹"¾åçù„ˆéC^`ãêÑ eè×¶7&4xbv™ðoAR»¾x£ ⓱Ȃýy¿|~Hï„Ä_#NÝ#§e&7µÑ¯f²··Ÿ>n\#†¹`ØôiÓ üˆ2“D"övö¾gP€Ú¸ÁÙ#ç3?þ5 {ƒ°Í›7Cj2Ÿ )×jkCC­¹Ê1iÒ$¨©pê!…=fZß…ä C(Ýç—ïãVê]‰/~øµH±vCÂÎLΙe‡Y²õ±83e+´/ÿ<«F¬Ö6ÊTKrÕ»=³¯TãQöp<ý÷8K‡—É5)™ š™H43Y 3ÅøŸ©•Š‚ÜˉÚÄz»T74±cŽ_JÅ?h3D÷ÑÏ´~]ß±¿¹xl›Õ‡=ÃD³RÑë½è!z~²ný;ž¯êЛ—›y>õÂÙ}(•˜04ƒ ‰ç‰éÛ `ð¨M¾Ž0²+(ᓬAEE(ã‰ÉP ŸÃVÏúI÷³3A,ìïIØ”ñå×!ì6ŽÈNèì9EL$šÞ¿€ø$b9ò£©À4P<°×‰ò@©>'fb…ëŒC”‰á°þu2a¯112öÑw)ÇB J”ÚŠO‡|†èÍ‚ ˆ(@s À‚(VÄ›€à ç ªÝ™D ¥†(X/zqª&ûÅþ/X$Â2ñ`¸e#oÌ NÅÓ+Ú±>œö~@h3v |ž5ø"A8¥Àdä™+ó5¢ÌÔÕÕ‰PýfzæôË/½†1ú»IÀžÄ°~¾øâ2Ç;Ìgæþ˜é‹/9IÌßßÃÞŸ4 ðâÔ矿Of‚‹N¹îZûÛßfÎ$ïžaÖµ F™6¶#©J[$lÚãçYt¾ï4úJ¤Újž³SŒCczéµêµ±¹*&S¡[wñâ—Y\¡B+lRÎÏU¯¼”ï[…G±Í¯;zÒz± f‰Bk›h/Ä‘‹Ö}‹f¦1«áb¦ºìk{œ]FK4œôäâ’x—£ŽÝJêú;šé^™I @¯»BKs[…iñFœô0kY†Oy˜¨ß¹!g„ò‰(û‰W½¾½iÝj|¢BˈäX›!1݇´NµÚ`Î+± àgoU3…có›^:¨ÂI¢ßÞÉ_Ntè›À.ÿìw©|J“>±9‘À‡Ay ®Kˆò€‘Q`/{e¿'µìá&gGc $ªëklz­ÿ+.‰Xë߀E® -5Rrdôw8Ø l1&¦ÂàfØWà?ã?qX'åùÆèÆžÜùW¬ß„#}a <‘Y˜kDúcS#ÊL­­­999ÔF¿€™^y<ˆ3SÇÌ´gôwF™’““ïSFB¹¹¹¸>ÓĉW¬ðü픑åºkedd<ÿüóÅÅÅÔöðéÒ¥K”‹Ðè1Ó–Ö>±B[ØÐä”åw1ÿ³Øè?Íîµ;…-jÆ!µ$ÍR¾†`¦ ¥nï7Ùb~“–'•ÏÏS. )ð&˜ig>ë óÎÄ´ñ"¥vkáûª6ˆ*Ôéªuø7éhÝ“hf³.f‚” 5~Ÿ4%D'ª‰Mð ÷ Ñ=1S@zñ+ôÒ{ª+˜¡ fýë)Ÿô íô8„&W¡˜ì2>ÜmG`iÀƒ)ñi”ñÄ·ý¯ÀáF¼óEÖ>à0ˆò É7=èçqé]Ø„KÏ.Dzиø¾ñν€ ÿÄä¬#ÒuøTž 1÷!Áa꟱DN ’˜ÒdDt#=‡ÐeÂ2%gb¥EZØ_žMDiÁ~"æ˜Cx0`5H 0ˆ,À_òí?dr‚6xÃAàõSÂy€D̈tÚž– ì úY€#RGá‚}<áH×ÏÄ&”/v ÿrïXá¸+¿~žBr*v=1¡ãîþ£ÛCô«e0J– 8•,yh`#ø¢ö½hD™ tsà±¹C‡}ƒa1Öa 1ìí·ß†ŒèØÜØ&жøP½û©Êáb¦û89p_|ñÅH¬Õ4¤0£ÇL–Í}2uAƒÌñZ†`Ι*‘R£™ÅhvÙ̵æé òÞ›R’oÝ´:g¦t•Îü|ÀäG¬ª—4-É“¯*8W…+Xæ³ìÛ½Xž _¥³*ôtËÆ× mïè8Þ6ÌëÀc8¾úøc-𙯬†™©óÀo¯»a¦#^ ëñ®õØ{f˜· {u+æÑŽ=ýÑç5/³¡íz±ÙËP™ Á“°B2.¤A;M®* ¡!ƒ(?[ùƒlá/EHEÄr…¿2´äWy £€æ¯DÄë+FÞh¯¹A€W €$ ±j‰?%@KA€—n‹" 0r'ËF¦ðdÁÈ¥~:úçQN°w‰7ÿÉ ˆ¸¾1±àÂD½øûgà YÈ%—XC|B3ßÈ€ÓhòB$p› q!$Ö‚£Õ‹Åc›rôq>šÙ€0cü­Ãdì7¬aæÈó‚¸o'_Ùûí«ù¯Ôô’S¸,­¿l5ý‡6‹˜4Fî…2G6ú_üQf‚ˆP§Qý`¦¶¶6Øû¯Ï>û3þÎçˆ2´‰P~jãa ŽN)µq‚K°~ýú;v ùFïƒÈÑÑ‘r݋ȵšn7ê¾µoß>ÊEhÄ™©•ŸŸßvmŸPªÊo;†§ùEfžª+TšŸØ-Ǭ¥;8øïž”’b7ñ*¢Ÿ)MÝlîymæ«A^'–.Ë•XÇ圮Æ×ØPPg¿ÿ€ñª]®Fgac—ÛD2Óbe·ãpÌm²mooìÿ†Ý¶ŽŽ¢þo³È5|UÍÇN43 »ÔüÌë¶§Õÿü®ú™‰y`íZ ssóU«¶óO©,ÍÙºÙ꾘é÷ugfj%æå|ÆBã¾íÛùºë.ì`,¦—ˆMZ:­ÕÃbŸ÷ÖAü"ÂYä/ÄÄ—û[h0@ `‘_‰–{31g yn"<§ѳˆ/¾½ÖÏ"3ˆ…‹€3 >)ÀLf„ã=b!€riÇf‚’@.׈a/ ‡½'’‚¿àžD¼ÚÇøÜFp Y`È"†(P†Ü Áà`/»›HUô3Çi"(9Ù"…U-At =84¼$]è%#Õ«ßÊþâŒæ½‘Þ‰MœûBYB`&À,#„>HAÑf%=9»‚ô>ŒÍǾ7¹«G{Ÿß÷ïߊ±f„ÍC¬ØSo¿&8ú§-Ãξló•IˆL‰U^!Ò„¬É.((ytp~ X1¨Jݢߋ Iௌ=²ÌMÝÍ_Ë×hñWJ••­ãÆ¥Oš4 n:Ød2Ñï­­xÿ‚f‘rÁ™¹ïFžè€TD¢Î´4ôÜsø# ؾøW™rÝ‹:;;gΜ¹bÅŠaü)¡g¦¢¢¢ÂÂB///ku/W,Ëk”ˆ»’zæDD®ÔüÊj»¸_³%è±I.-öo0#˜)UÓ¼úxÄÂàÖJ¸V$^Óà””Q |…õfN'ppfÊÒ5»†XíÎ&¾c¯ÑLUu;”vÎûÐÒ×==ì~fš¡íÑQßfñomuî~¬± š™†]꺘ESDÖâ_ûyõ3Sñš)¿m9xþÒ¥‹‡ö­ýyú’ДäeK†™jkk‚‚nÉLÐ|¬'Ñ/úçjá×X´Í§°uÏý_3æ‰&ÿ/-û|>}‡ Ð!wp½yFbÍ| AbiDx0 Ø„¿7KJD$ÇÂÀ1ðfD$'BŠ x‚½KŒ¸AbÎ#{ž>&º—Nܘ4€0²$`œþ’“·Á€6È]x/ÑD›L¼ 7w°Êˆ¶ÄxpÛÚþU”À\›…бÃy3üäŠ^4š…EcÓq(nAHŒ½®Â^ÂŽ Óñ¾ø«×¸Ž\ë¸hv¾û|ö?£0>šÿ)þѽ™ÿŠÁZ¨èP08ä¼+?âëxûÉdo4@Ïò×:4€'2yYÁnxî>(3µ··CRÔÆmD®Ïdgg·t`ñŸ4‹C}¢àÌÀù¤6îQsçÎŰiÖ;h>úª‰Pll,åºG%''ÀÁ/„ÚE“_‡é×èÍíRö²Åy §hßÀŒÝÇkšd Õômô±ômL´ ;SÊŠ²øËcó€™’µÍkNį÷k-á jE›Ây§œÒ²ðùª+йËûïhìNJÕ6ﺴoGZ-¸¡uš!ítH%âÞ$ÔjÓú;“*Ôº_KûªTÔ¼(½¢¾³uTßÕaUû–e²1(š™†]3•Vl^¢¿açæ%s§šnsô÷Ø1gæôMžWáçZq\öŒ©S§ZöQ¨Ôõq›–ÌŸ³ÈÜaÇ2ƒ•n<•*éâ!ýiSgÏ[u5¹’d&XNccCUÉUýŸ;”0Ì‚Ã@?ÓåËÈÛ·j„¶ú ?éð±hûß^.8‡­vÄl]ß?kvG ³KøË\`o¼Óø3`/X0`ÐîÂßóD§Ë€á/ˆCTdÒVFƒã‚v@û Q¼ûãBÄf¢ß?5Ø^%z¹þKÄ5&’}Ð^ð„¿ÿê_• è þÛAÊP -ø F†t4kŠ, ŒILÜ"Ë?ƒ°¡?X=±ë?U JyÙ¿âçmœEßßlD"ìo}ظq[¨Œ(+BïÎ圸K@ØJtâ©_˜ò$ ýRࢫØh©¶½u;…°³hÖ‡%^gj ÑOFûy¢$p˜ˆ×?'8ŸU=É``ËûOõU¢ç €Á… ÷Šé?ºt²®Ý’™BBBØl6´ ™™™ååå …ÚTœ‘‘!‹¡îDOII¢‚ꫲ²p*11”••q¹Ü¶¶6hùª««³²²Hö‚¤Ga2™åȑĉ»KKKŸ|òI–”„/ª5dNÇãñÈ( ü…(d.dH¢@9‡D©ªªˆâíí]__Q ™'£@õ QÈ[ŒiŽRRR‰´¶¶Žõ6<›››! &Z÷ââb8º›£ÓáÉ(P ˆ犌Â`0GsK|EvË(pu¾üòKkkßÜÜ’”” ìžžÑÔ„GÉÍÍ%£ÄøÖÔÔ¹` ð’K^^ì½e Ì!QÈ6k ”¹®®îûï¿ÿç?§“×€ùúâQÒÓÓÉ(ùùùQà×ÏŠ]]] „)(( …pŒp È(p5ÁŸŒ2zÌd+ï© rEŠQ©‡Ž²dR¹rv<ßßu[jj«”òJ¶‰)ÁLIºæõÇ3ÖGëòë8L¡h[x·[òa6þÔ¾1ƒ³âTÜNn34éðÜ–—Wʬa–dŒ43)•èÓgyÑØ,Ol}öæilí¤[Ç+:’6xtŒ²óhvJ‹½°æíXrïGD MMܹÑw`ØûDÛ Ž[$x{ƒ6þ–Q¨yÓ¿gÀIdî`ÞZŠP$A?ä¬ð(bYKÒ¢E‘Q wØ$÷þÐð˵?ðKÉ d±šX²2ƒxA®¨ !!.¼ƒ(ó›Ñ7å(º§ ÈëI¢/Ø…LÓ®ßYCf¸Cj€€˜aѨûFŽýy?fÇÃÞýëd)Ö€Àƒér¼¥ŸA1 Í bHŠHxlAD@Û~°ÏúЃ˜òQ∑; C2ʲþà€3@ÚÀÌghë{{q#N‚–‰ú ö9à‘‘p…o!(4®7Zä¿þõ/È… 1z æ€÷¼ûî»À(Ôöðiÿþý”ë^§“ü!½óÎ;S§NÕ×GÛ¶;ð‰ê×ݽW988P.B£ÇLÒ®vM¶Xu "âJâU÷:eC“tIµHæ±9¯V¥VoI­,çí3ŒËŠÓ5ï9u =9µ²²\ ÚSyõBìAb ãùU¢V•Û+¤ÀLaÕÌsåâqÌâ6©­ãë Šs<›Û¬#l9Þ·,ÖØ¦Ä‡ò[ÁÍ–é0WpðyT «,Þš¬æ%ÎIþŠÖ±],Åã°´ÍLî[1“a<_L2SNeêÜyú§“r #§Ì_óL—9\Kù§-—˜¹UæûÌÑ[W-d¤_qvõ­¿>6×ÿÞÜÈ3SZúbB•)æ»óôÅLÿãžõjö£nh\]DÊ`[uÿÈ.Â0Cì é3À¤AË=˜4`‚Áо4ÐöpíÛ›|Û+ÄÂ`ƒÿ»An`ÍwˆY_Oä1àOÚ_ØèMSô)î>7hy§/§—Ú¾‹ñJ±/7cÇ¡&a­zXì{À‘oÁ9·!‚"£€Y rßÒ> ŠJ.dõ»0GXí  mØÀ› H2ÀŽŸsîÒÁÌË«oD™é^õ׿þ•ó¢u;ÅÆÆ¾þúëpi¨í‡-(¿0üuÈ„çŸþí·M?ùÄ´‹Xw èvÝï”­4zÌä(î̯ff‰UŽaÑþ qnµ@"2ªnP”xl̪fÚ”Æ,åÌ£jqñ 9”“’PZ^ÎíÊ 8»_€ÊÌ©§5{CQªES#Dq9¥VªÜžT¸¨0ö.™©^«#݇¥íîѹÕÄKq—¤º½ Þ¾¤¦´A³>)}®ˆb¦Y¥›2ù\¢£é´®õPxY¥œJÁ§µ•ì.)5šœþ)VP”Ø–¼@##š™†]wf¦"aõ ãiS§¯Ü´^Ê’¾Œ™piùüÙzs í·®fâ©—\×Ì™:Eo–Á±àüAó™F™üþŸ½óªhßþM/"ˆ(Šˆ €QA,4ééMzï½÷Þ{/¡&”ôB$¤÷Ò{ïPDÏwŸ™Íº„bÀ$ð½ïë¹63ggΙ™ÝœùíÌœgJ ±ÆÏÆèrx¿ÙòÁŽ )êjâç[Ù &¨ëodù¶W{ý‘yá§šÖå’´yǵ«³_Èê"‘îôÄ»…h,ž¶eäâsì31â¥6Í{Ò-¿íSZ½q‹ŸÈ) ÁÇÞêRÞ8U¿V}à"ú6ƒ{.*¬Ä’CþÒMö/Ä£úzËPÔµVŽyÑ«ÊwþDI'|Gc`Tjj2sÙðw@5räÈêÕù •Œ_Ÿq¦7ncÆ M¤Pµoß>MèE¤e¦™3gV&+ðžùo˜iÏž=šPñ1ÓšØû·¼½ìãÒן33_–3Ì/&#øèDФî·=ú›;Œ’²ö_2Ùébmìæé¿ØÊTÿê¼¥±êókíCR.m ™îÌ,‡½‚§ZfŒ4·e¿„Ô¹†Ö=nK¶ ÿø?׿å֬ܩ9dx›KÎ|Û3ž©*íM¿³ýܲ®ª/(‡ðäu§Î ÷‰‘ÖÇÓv–¹GP¢z…­‰w—ØñÌ•õEâŸ>ÿÚfBV–wÞI‚³²>ÌýS>ª›™Õ/Ç÷.ܽ{éŽ&\(ú™ _ilÌ´ŒŒä¤¤”´ôÌŒtFÓUW’©IIÉü¥§ª­š–Æiqû¦ë8báeK«-3û^~Žß^‘2)119--=55%.&&6>áofòó»dåP¤Ì¤”(‘ŒÃ{w_y¿W‡;³T¯ŒÏ·7ÄÀÉ÷bÙÐ ™\|ï vÁ´*yÇ‹e@Úd¥¥µx¤K71M:Ú–ë1ý7Šr)ov‰Yh,-MwT¡[…¼«È–É÷n>“3qù>f•†¿eãÍ)Øi4l,A)ýG£qxÖïa‡ÖÇ0¢OC}äªï~¥“ò1¥È@;EuõµËm^ºŠíbÞm»_¼ò­j" çXY—|Ë’ËÏBkr²R×4 ¾ƒ7V–Y‚ʛdzKµ8Š‘fètÃÃYÖeûú{E:ÎôðáCþïh"ïuëÖ}¡,/$VªèÉ^T¬æ‹\ttôûï¿Ï{…&^¨òððЄ^D’™ÌÍ•òåßðfHØy Q£æW¯¾<3åó-^äÌDZÒÓÓÛµk׺˜{×=z ˜ÜQÛ-CâÁQÂß"$ñ¸X¨Ä–'uñÝËŠr@àÃòˆPL,éù¡È=ûüÿPLB4ßÀÂsPiMÕMþ•kæ¢B*ª¬iŽz¾¥¾ØºUýÄ‹”™˜˜ÿMšHÁÔ·oßÅ‹k"…-þS¿>ÌÄ–yÑÂ,[¶ì×_ÕD [/‡b’™>þØäë’¥îä1ÓU lÙ&õë¿<3ñ®« ß8Ó†è\ 7·‰™“/žl1oudöíÈÈž~ÞSsžLNÊÈg{{GÈá¾×\È"cŒÝÌ÷ø¹_töt‹N\fvCÿêÑyIªo¤Ö±©†s§Xz1Ëæ›nFGÒ~3¿É,î i³Î^ùÖ84$^ʼnu¾¹?û>Ï—Ò4ûÐþ·ï$Šuß³lfZiŸ­BÏ®èÜyKvÎq førHüŒýÆÝ<2ãSÔgè¾uvY®wÖ+Ne¦ޱ ι–©f±ˆÊœaî¡ô2Ì䓟=cãîM½–ºPü2ƘE_‹P™)(+k®Ë¥YijuâÓ³¦Ýº;Ç3W&3ʾ3)óä§—V>fò‹Šò þ™^33IiÆ™—î-Á?e©ØKd¶¿Q=þ;‘&i‚ÿ¬Š’+®K["|é‹É,¹á®ìÈI?|í(fß‹&© y;¨Èì´¯óÖ õ5’Æݬ#ÍEœ\¦d »2m2ë.SÒˆ}211‚öžˆJ«™wð9ƒIïrhªŸÁ9'O—è¤e¦vW¯,ŽSÇ™Z%¥ÞvÚ>ÉÜ=-#cÍ5'sónb:Ï9)cƹK,2<"ÔŸé3ýâ†8F¦?s ¦·§ã «ˆHáB|¢•[ÿM–Éê„׺°Ìû¬Æ»ª Îφ&M=s­Kzdb aåsûðYg;©83Yù ™mq%B=¿~Tú:ƒS[Åtµ#ížcVø‰ð5&üáb±w«0.4k‚·…œ[ä—°JßôŒ¿ºJÊ!!gÞyc2T6ŠHɘoé·Ü* M€Ò‚ðÜéIZoÓÚÀ ‰sXzzb3- H˜æõ3½zM˜iËeÑ熙™*Ilî¶g —…+]‡àÏ™I+3ቛҮ7¿"^‰a› ycHõEÉiß‹±œ1b8Dª‹˜¢bÝ«ÏuÔÚf‘—¯d/tw]öxÊ9y¢É™ÁfвPDå>„<¦‘‰óñÓ‚çx\÷àÓ-^9ŒÑì4{§ä¯931õxüë¾+/W0[A[e%–ü†³®hÎã%~ÿëçÊÖ À9¦¯7><Õ ,©Ù m¼ºÄMuùÑ>Õ»&K~A¸‡à[? ‡œ²vªë!¡½â­ÎzJ ÞÎA¥Ïûz3Znºâ‹&¼¯þe‚аÇUµ­dÞ]š¬ÊÞ½ÊÂÏ.ó Æ>§H™é%t÷îݯ¾újøðášøÊÓ Aƒ¾üòK¹¼úõ‘îð·-ÂÖ¯Ï[èÿ—kÀ·Fä:8Û$e­¸bpÆüÒò˜;~aá½½|–æ.oêFfezþ¶ag»[¤‡“Î^ÃbŽô;{ÆÑË9&yªé¥¥¦K¦eÞOÏÈü))=üöå‰&.d¦¥–.n:‹¡)‡”¬YG/M;•ep›Õè7ÅDß6‚ï5s”[J_ë}Q‚ófxÅm=½bm˜Z$ƒ€Äé NÍöÈfõo§dÌ11œbi’¡^«Wæ¡>z b:2<3«[Æ/Ñ‹¦ddt»o¯®¹a9úšO;÷CccÍÛÿéÕéu`&77e/&ü‰’ ?CtŸúyîyò™Î./£¦ì¥4ÁÐ5EñÕU7HߊyŽÌAH’Ìô› €·Åð£,³«ð¾=VÌ@µðÔO˜vÎ%Q BØ“bFZ®X&ÅyQæ•6D§xu6‘s^ôT4&n)‘ËÄ?ŠÄ†bV‘…'5²$å$²ˆ܈wLPJ,zW×'gº2¹î®«è¾²ÆDç¤ý¥”Yö°\÷û¸'¢jWqåŽcx_\Ü‚™|¤ŒÿÞ›§mËŸ}åσ£_²N©éÉp¼:/W{NLJ‰·'–ØóÅaõ¸lI¶˜î¢(&cânbÖ27”Se‡ðÌs?7ë÷—ÒÊR©…8F;ÃÄ- * ë㬎䱎 èdÚ·5œùÕÚIE>ÎdföÔÏöy:xðàÏ?ÿ\ppñâÅ×gœ‰-Sðq¦ÜÜܶmÛîß¿_/mÜHDa¥¦*ÝùõXùÞ{ÝÆÝÅ¡û÷Õ·^®½ó z3mϾ|Ëézröª«—ÎZ\Zw×7$l°GðåÃñ&.d¦áan~œì;ܦe-Ÿç}픓·SLÊ\ã-6k&åÜOIKû%1aIâø‰FNd¦…–nNá׺Ür#Ù¦eÏ=zq·‰Ç%w_òDû ôY»¯œR·¨Óê\Ê]áx)$!½•Eä¬ófžD•ÌÌî7¶nÎ8èæÇð</“=®]‚TXÙ—}bßùÙ¦~>Q±n¡a Ó'í3´ÉPÏ0ÒÜõøúÔ-öî oÉɾnË ïh†Ã’3ºÛöLˆÃ@O‹z2ån¬ Ð2ãós-½S32ÓR§™ôÙÛ)\}~¯Sjæª gÆ©×ÚåØåBâô!©é~éYã.œnx%9#31-s†mÚ¸ƒzŽ‘êÓ¥àì WâL" „k)™™f9Òñ”w|Æ´+›ícÉL‘±q?:X 1°>}©™ÉÝÝÝÛÂwCÒfÖY°¨ÎŠu¶?Ë6ÕÙ¦k›ëlÕÚ–:[¤m­³YkÛêlÒµul«³qûÓlG ϱ|‰uM{òéu¦¬«³ŠíÕµEÒ-g¾*ÐòÕQ×´-³°ÎŠéuæåE·¯§ÕÞº®ö–5µ7­zÊ÷×-«µza­eã?Y[<Ì”’¢LÆ._4Þ)&RÌÑ<ËÎä-9*¸-ô#m‘XH®>ǬŶnZñ"cɧŸ#TÖ± uÔqȤ8±nœ,“o¤+,-k‰¥Ó†$užÑ33{ØÙ#ãÍŒ™601uÖ¥ëóÏÄ^ô $u‰Ì;÷âˆuÚn½ïÕ ¡SM\’ÓÓ=2³ûž4ëtåf|ffdRÊx›àþú‘z>aL¶Ô;nËé}+ÃÕëò¢{Srâ™=U–©Ù³o¹Üë±L¢Sן=0È5€ÿÆ®Á‘ÝN{ >b³ëŒ¾LYpEØë/X¸à€¡ûSyÑÉÉÉÕÐ{¶J›ŽÍ3UÛB›…Í´ÙØD›ƒs±6ëçcݬ]ˆ5´EX½«–`åR¬X†å´åX¶KWbÉ*,^Ek°¶ ÖaþzÌ[ƒÙ0w#ælÂlÚfÌ¢ñw¶´­˜ñTÓ&ée^ž„§¢ñ´<9mµzþ¼( ±$,KÅâ±,* ,KÎ*°"¬MVu”•e­e д-3[Ø8Ú°ˆnšŽ S±n ÖLÁªIX> V]Qlssª G¸…,vŸ:ÖR óèyªµ^{æY1ÚÁ€ì¼›‹µ8_‹aŒ¯ò0‚²Å]1+×J<vNDiÚ…ÛÙyG¤iofÚë²lr “öÒ´øÇs=µçIÖ9 Ñð¬X5ϼÄ5y’MbéÕrFDñXìÅ¢TCü•¦ëŒ@Zõ¼GÕøÖû¢âÄŠ+r«OÜÁ]•fZ¼íxÇaíßÕÄž÷Udì¢(Û)­î*å©Þ,¿M7QŒZÄ+¿Õ¼þÛ{6—c4Û÷2AÅU×:3ñ>nfffhhøäðâ»Xí2£ç‹ý½V·ÅüÅ~šÝy%±~è”ðåÍèî¼eC„‹êoÄÔQã7¥UÉã€eyG¤-}–Ï“ùòr2;m¾8‰ö­í¢Tùt^ìv,Å«H½*xe˜ð.¯^:ïœm-Ùow4K ö+p×$ ’:‰‰?í‘ÏÄ`Uù½÷øoÒƒ<ÔRºÂ† Ö(ƒœ†¯šì“a·™`ÙÛ,6Élp¼‚¥ n©5%ÿÝ%!ɱ.âÉ6UkÅÁOO>²ÆÏ ð5ÜÖŽQýe–ê£ðÿté›W¸© Îxr6¬l‡A!Êòj˘˜ÿ§Ï™*Rfº{÷.oAšÈ‹ÈËË«aÆññdã”MÁ‡vŠZÎÎΜd±«T©ÂE/4¡­«W¯6iÒDy)>­ëÊ÷Åçæ=¸î笷yþ¯¿vû­_¿ÅÇ=ÔeUi¾Ûe$ø·ÐŒaÞ»wÏOGGŽÙœvþ–£UjÎækfæVó’ïy‡LvŠ̤ t‹ö FfZntÍ%)ó¸kà—@ûøô•†·G§f……õ IMÊH™xÕŽY¦^÷÷ Ÿ”éæïg·/åÚ9{ç>±ž‘q­nîõß49‚ì“v)2ùœwè¶ðýzëÇ[zûGÅ ˆ[rëÔ<Ï“V™a!=¼¯DÞ˜g©N´M¹jëêÞ1.!:.vIz¶e´ñ2#kÇØÔ ^ÁÛœ=§í¹©îqÑÍËS?Äd´ƒ:À3ÅØqsæò~>·ÃÃÄeo±Ü°èêY‡˜”ðøØ¦¶ Nyù[G»GEeEŽò‰º¼×LC[Ökç}a[¦ù™¹‡„¹§eM1>»ÔmûJ¿¤Ûѱ£®{ÌY<Ôþvrjê  äõþ›'_2MLÏÜe}kqÂÁ9QgÎÞrôOL›¥o°Úyã´Èìø¤ä^·“Î:,kœš¶ÕÉoš¡Ùtãë™þÑ6ቮ¾>«Ý£§·7‰ IÈJ˜háxùà‘I×¼Xþ•î·Ø¯êìæìïÎ/r‘ÁÖ'7-00á[WRtðêÕKÖ®X±á ~J$ž?þ\ž8`ahÓ[[à÷!8ÕÝzbs',i‡9Cq¸9úÄ¡Ÿ0®'ŽÀÖ–èKžh‹ðd$uÀ’ÇOè: ‹‡cì` _ŒÅÐn%þ†“1l&wG[2Mü¸C—cp[4Ù±ýñÝv Y€.³Ññ†ý†fÇ0t"Z¯Ä¯ûÐo0šÂ‘øf zlF±hyCáë=°æ Ã ï‡obôhü¼}6bTo´"‡µCó¹6£à×u˜÷+~YˆY#1b(†ÏÇòŸÑiÖuÁÀ!˜>«@OBR Œ•°òGŒü¿Q£»:aAÌŒÃÍðÛPœü:cUlù ]ÙDß`xOléŽ ß«U>Ò ýúaK;Lÿ“úaÍ'U{:3ÉåS±±±¯Š™Ú‰Ù´‚è™ÉNÌÓ•}¼ä íÜœ©8¢;7g ä[!Êh>cw?ý‰ƒº6FìÁB‚ÑÚ ã[$!¢ _¥‘Àäö·4Ö}±x¼NFˈ¥â,Uo‘…ÖÐ’¢¼ýNJp‰#KU‡‘Ä&Ršž¢.Üž£TÝÞ D0IåO”|ç‡Ta«î^½i¹ÊÆÜ6=ûÊ-Ç¥AѦ±~ËÍn¥f¦Œ°pÝê¾t {àZ/Ϲ¶ž1©Q+,ì÷Dœî`ìàhž¶â†Ñ;£Å™¾á‘“n„g…6sOIKëçŸèè7ÌÉ))3}‰µYBÌ1ßУ·ú ÷%ôÊg<È·˜€É˜øœÁ@æ%WÀ°£y£bÌ>ŒßŽq;0y;¦mƬ ˜+fë-Dz¥X!G˜æ`ãLl™†í“±‹U‡ýcppްjÃp‚<Äþƒõ€s¬>¡ô{À&Zæbœ—­Ô[=Nc[íS½q¼÷Áþ^ØÞ©êÎb››+6‘fj‚ÿ _±¬[ŠÌô¶Ü.Å%3é®gø}qrŠÌd.ðB—™ä²ñgvæybÇ2S|ñ®š œ‘Þ }%ëk.¬†@·Úb°ÊXÌ͹(ÊOâ ¾ƒb˶ 1äC²iUMõîϱK]UGQæ‰ÊVÍ;­ÚÆô`4ˆÄ‹°zSõÙA¶ÎÎUz|iéŠæã?²8¤(î¿Û<¡f‹ÄsÔ\Mj©>3ùíýú‘Òâcׇ(“…ʳ°¹uó¬³>*§²C¼ãUf2vòÈôiÛ/e¿ÇquOT²:ct10rÍé[cM¼Ãâ““³fœ[i·}c@RPdÔ@WŸÍ¹ÃFÝðOMKæ±(xõPÓ›)™ûn9ÏŽ_36ô¸ž½‹G|ÚtÃ+‹o,™š”›”šÒ+<þrØ¢qž)iéKn¸_¾=søõ‰6ŸäôÙ§N÷?垬.³–Kšn¥fO2u6ŒTLÎY³õD·ä¨„dàè-6'–]8j•œ•’žö³OП5Ë,ÕѬIFÎA‹º¨OçíÊÊ=xyý›ëŽ¡Q×ýƒ—ß2]röø•LÕ?BÏ›>FôWX«˜µ78}Æú‹ì}NNÏ<è—â+—z«b;LÈXrÒàB ºúj¾{ìò#ì#’SN:{­=ãØ_Ï0 2êVÀí›wË,Uzš“ááùóçï7°K•~\d&[ÃŽ0§u‚Y+ìý Ç;ä+ŒºÁ°®ˆä'-<‘œ~Ç!ÇD왂›H$ì$3­Å‚˜#i&’fHK„"Î|Gâ!úÈC—Ñó*º¡«1º˜âWš:™££Ö¥ñ¸ :3™!º]Aæ"E¡ÈO„'Ø1Œ 9ÍA·Í½S¶a:±I,ŸZ¸Kù3šHG°c7#i<öIZŽãD%-'zârw\eõ»À˜íð+LÙ,´¶8Ù»óŠù–Qg\ùq® ôºâXìû¹ê¾ÿ=fJž ríh1û&•+@“"@T¯ìÚß˃øZS<$/‡¦6 BÚø*˜Iê¼ÎÜÜ EÑ®fØ"žü@ø“´Ìô‹ ¡O Rõµ¼4«uU»šK{‰™¸›p½M@ |¤¤§+é¹Ê»«SBQ?²Ä‡Ug)Uo«+Àª‰Äв:CyÇN¹¬Î¾ñêÌÎwy•¹¤Igeì>[fÆvÿK©<Û­ô·«°˜ö®–ëke¥–“Ÿ³Ð¦²TŠ%Ú³Ö/¿—œ¬ØÙ)ÙÚõO(€×~®Š”™˜² XðTñ¢ 48v¬€c ’Ü'ÿ5[æÉ–œ2EÑÓS,-•Ö­iY­[¯f#T©ò#£òà=þF)åü›5ÛO(  råÊ÷^¶¸ù ó¢ÌôL%øÙ^5µÌxF©ÈL‡ÏØ»î̲Ó Žè—éï<óV° @FŽ¡™¡ýü#â¢gܽoêweás÷Ät='ïžAÛS¬·YÙ±d¿:º¸úû÷ŠJgS×y÷¦ôuõ ŒŒÜš²ÖrÏ,}ç¤ÌÛÑÑ#\B\tº¤.ñÙà“2ãÂ6o±)ŠÔ­¬ì'Žýl㦺ÁL]ré¢ÁµS;½c¢â{Ç„›ï瓞ž>Ù>Ô*øô(CÛÔŒÌËa‘'oXìv¿aêîá—¼ÐÄÒèú¶EY䓲LwMwJKOßãä³ùd꣛̚”>çšûLKu=»®³ù.e•²æÄ®^‘Œ9„FM¿;÷‚Ù­8nÚ:îØzÄCuª¹ØÂÕf»y?w•™Ž&gmÙy~¼UŒ_TŒod̳ŒùGÏ^þ¥Æ[y Üáv"XÍ~%!k˹ƒ¼þ^üžOY¢ï¨Ä”™yÆ/aΡ½ÓÂ¥¹Å¦t;d2éÜ¥ ðH'¿À[÷‹$…&2“aXÜ”Ö7~„Íϰþ×ÚÃ’| ù‰ðDžè‹‹¿á,!ƒ¨1‡‰M“°›B™‹ ’™x+_‡ù›0{;¦íÆ$9¼D¦9…!¤%‚Žz“{@Ä ò:X¡5~¾ŽŸn íM´ÉgOìši‚ªúhþjÖƒ€ÈL;0ñ­bUd¦½b8'ßssÅÉL·uÖ9é2Ó1çÕHQ.ŠhyE‰«”–‰eÝce´(ä ñÊ(_ U,ütaÔxÒáôDrü¯ß™"PÁ6ek+'!õóƒÌ(íK1‚%å¬(#ÄhÜ|q6Ùœ9£lÛ¦  n½L[ôëc›HP ÿï¡üŠn®/ÞiäW‘2åß<þ¶gÏž:h"…!GGǂψµ¼¼¼ØžšHž~úIÙ°A TÞxc1ðn? ¨ÚsçÆó  n|[Dºzµ ÷€?»•+ùcäet劜ùרИéù"3ó;sËmqê)³ÈÈ„äÄNiŽÎ!·gÛÝmŽY7:‡DEÆÆÎʹÖéÄ‚+ ég¼æzßœ˜±f­:èÒõ¦ËŽ Óm#Ò32&]ó89igHhtôžÔ³Öç¹%¦'¥e~o3h£§ÜÉä`öÝyדcÒþf&Ÿ¤Œ¥—ôF_³&Í€èÛïÝrÌ3$)5½sPî¶bïdddζ ðrÛ8ñ²5Ç6){övï&Qn¡á~±‰s /¿ºNŒÓtK3ÏjR¸šÅ$4­Ã:÷¹–ª³ÍÔÌÌI¡ÖDÜ€ôyÇgŒ¶ œ%–`‡'e´3 ™}ÞÑ;F~¶®ý÷˜^N6½âFŸ žx+ˆá«a)sŸïc—“œž–ÕÆ&xö9C‡Xuðl•KÄŠ“KíUÇQiÙƒîzd©áTpfÖïA{"3y3 JNbvl†¡GHD¤‡àø}zšD…$2“µaDs¸~ZSœÿ F-áÐ ·~€-qÜ@x"Iœºã*ɉ1z›È“±‹,B"Yˆ5¼S¯Æ¢õ˜·3waò>Œ?ŒÑ&2 ÉF}¦¡™º•H?ä$Â-~¸…VhéˆÎøÖ߸¢¹ÖåA'|Çwíñ½Z¡ÈOÄ,©ë*ºˆb²åøu†ÀX²‰Ü¶ VbÉb¬Ò2MÄž188ÇH~ä?R`/\’´DT")²¾¤"Vÿ{Ø·€ãwpúÎl™ÏaÒçòÊù[õ-&¸Ù×ZÁ¼5ŒÚÀ  N·¬zâ˜)1ÂØÈÐ)0^ÆÒ"ÍM nª«ÙžÔ«e¦ÀsÉÍ_U=Äüå%h`µX-¤»ü'SÔ³˜‰qSsà™*f¢ºjþ¾3ç­—nX ¾ÊaüDÁ† „ú´^{3~õªÏ$®ÇiGAŽ0ÄÄ46ËP±ê¼²˜ïc²0»ÄÒUáœ×¥nÜPŽ–{àöùûvÊø±JQ¤ÌÄ,ìê_V±±±ä‚Ž&þ¯åííýú0SPPГ…’™ÂÃÃ?zóÍà/uaz;v¨ÎY‹”™!šP!iíÚµ½{÷~9°±¶¶Ö„„Š‘™üb8ÚMŠÝ}=‘|’Þ*þºaè­9¶d¦‰FŽ'2wwŠˆŒMˆŸ›yÛ-s®šz&¤wôân|üŒc.êêì>ÖîsCVLtR™išoš÷áÁ¾qQñqƒÎÙl^l|Ñ#Ahiîæ9ðøA' ‰™Y6Ù=;’œ±ÐÂ…E)'(>iœE`7³ø+~¡D¨Ö YSçsGݸwéMŸ §ÝJÍÈpÈÊ|ȸÃÙä°„ôÛq‰“Í‚6œðØéÃd#übç¬]>Fìõëš‘=çêœynéâz ™YÑÏ~ÔŸIú=¼§‚ÃíƒnŒt¸MxbtºµçÌCk® Oâ;r'-Ø·Ü1€aˈĥÇõ~ ‘cW]<æ™8øŠ\ö&Ü]uíšk²ærñ™êXAÄÌë3ïñŒ¼E%¦¬º8Ö75<2Ò?èö¸óæšD…$2“•aTcø5oSø4†}S8}fp'ˆdˆŸaM¤ 9/ĦÁ8Mò BÈ"³±iÖJfÚˆ9üU½bŒa"0‘lÈ7‡ñ£… ¥›h#Q‰H䆯=ð•¾ðAS_4¡ù¡1M†yП{âKw4#E‘Ÿ˜‹¤EÞ"9¿ŒÐõz›ö£÷Q !¥‘ÕvbÊfÌZ‡ù’™æbÃLl!ÞÃþQ82'%0õÀ•.0îsÒ±5ìÈ‹„$²áKx~o6 ç3¸~ ‡¼†òþ\}ËýK8…[_ãÆ7°üF-p¾yÕ3g&»K®:»m^´Ký¢gfÞºrÈÁ?ÈâäNGÕk~½ZfŠSi6jVdˆ©%Ê[`Á¢T3/ÈLŽç31ë—¶¾f)¦óÈLëÅÃkäVŠMDdd–OÅt›”½¢¼íóèhõÙ‡væ²Ï±ÕV•..DHê&ŒõåLcØt|kŸ¸táMŠ—.+Î|JQª…*Ÿ.KÔ7—·WÛ¿P‘2S¾ôì ÅžràÀãÆÓÄÿµ^«¹9¶Ì“-IfªXQ©TI¯ù(Ïl€’%ëV«V´Ì”ýœ)Þ—+X§NMüE”¯0ÅÉL1kœ†Ü^o—ª®ïie¹%üø¼›þ’™¦¦ï£Ž?-H¿7÷Ú¼©†W=ãSõ<çúYŸ :{ÞW}¤¿¯•»k ÷‡ÐŒŒŒ9nÁ·M6÷ LŽKN>îsú¤óƒ›ÞqêØO—› ŽîòyÆÜTbFÖÿûË|UŠLJe3h­·}¨šz˜{Ââµs—F©ž“6ÙûLsJf¦zwÎÈuúÄ×Ö®‰™‰)ÃlãžôQçþ–:oÝ3†Ø Î?-k™­Þ¬õQÿ‚È++[úï¦&:†qË›²d.³YavÄ>E}ë|\ÎÖ£Ó¸«]£KtÚL ‹^aê<5ÒÓw„sR¤Hf’qg„çýp±wÞKˆíÉ›QBJÊ‚ÈÌõ±ÉrÞùúfš·ÿµLLLNœ8±gÏKØBk€àáñ ¼>Eး@n =œ?†`!±©7 È$9Ô4;fa³d¦5XHfÚ©{1áFÄÐ3x} L¦øU­É:vhíˆ.ø†DT"ùã³@4ºO‚Ñ ‡¢>¡a>eòቌEÒ²Ç÷¯køÅ%6EÏDJ;€±»0y+f¬Ç<2Ó"¬–s“°›7ÇâŒ&9¼D"$JZ",•$ù7B`C‰f ù~õà•×P·?Qßòû^áÖ_àÆW°ø—¿¬z¡àÌtéÄžØä“Ý \#Ôè¹ÍW-Z2wë™ä¼ÅúÆÆÆüŒ¤ä½šÝW¡îbP¤ š¨ù«N«#æ1“´p±Z™¢€.3Å‹åM D”bxÐkÃLO0ËF¯.ÆÒÝ&Ö9 “h¬ îGEâ Ó„u-”ŠT¹¶–]‡»°ž"YÑ&d/¶Ò¯Š2Ex mÈ&MS½½:zó÷ÏBUV?|}çä[Sú÷.’ÅËEÊLÌørkÀÉ6rñ7oŒ5jÔàÝ’—ï¨JJR}L¿„Ø'>9´óªôÔ5àd¦©S•-[.}S²äÃûìKw÷¢e¦Â].µdÉ’h"/¢¹ü%ÅïÇ ßè1n{G¸oµÏTG€ZÛˆš´à†¯`&§ÁÉ]~KJNMYœzoŸéÁÙ†^ñ©—]<¶ûyè»Z\ Ué`éêl8ãV0¿µóýcMXt ÉIJM×ó‹Ü»ÕwþEß8}Û8,38å-\J>UãïÝß#÷»MËì;Ìðt@¢Jý‚6o=_LŠís iw6}¦µ?™É=5kæÉ#í®™³‰KÉì>yƒË•@Õë÷Z÷¨­wo W¼‡¤eÍ7JÞý¼Ÿ¥Å~¹¿ÅªƒUÔ– »KLÝ<óOÊžk«w!ZŸà”ìQ6‘ó<Õñ-jå­¬ŸÈ./>+Ë,ç±á´’d¦””” ääÛqq’™ö¿˜¯”“““¹al]DÑ>@äû¸Võú n“ˆ_Àëk¸}'bS[Üh+rFO\î‡ r¨iöOÁΙØ2ë–b™ifïÄ”ýw#Ocðyô'И ³%Ú/Àg¶˜È=¤2aˆHD6 ÃGø=AêjQZ8ê¡HTä*?4öÆç„-"±éÚZ¡iŒL¶?Aßã.Л¸ ª¯&-3MǶ‰ØCÈ#ê À¹^¸ÔFa®¦oàBF$)’–$*±ê!œÍÂÆy.ïÁ*¯¡"ê!ì#•¥ˆ˜àú™:>gýŒšV5(83Þš”xiËrùõ9±~V@lª÷ŵ.ª±|zµãL”™XUSé2aâÁãÌ´X<ÌÏÀ±Ìy¢z¾&3ÝKžKi²ªÐÐîµa&ÏS™‰LC”œ!æ× ó*8Føþ®'ÒK}¥ã!ýIf¢˜åI±ë>,l‚X5E[+,1Qi…[¡Äuü´ÂOùö€â€–ì-;7*’'§Š”™^ZÇ+Z—–C‡m×®]ß¾}ÝÜÜä‘>PÌÍeðMrnŽZ¹rew`´°²€¯¯/)3…ÜÝÝ?þøc~4ñ—U‘3 J:tè¤OäT·soœsÌV™éWŸ%á»Úf2v޽Õ5>+5-}irîeãË l¼ãRLÜÜ÷ºÝ&=#Ó+9cžþÉa&†LŸœžÙëvÚÔ#ço…©“bG¼SçÚYÃÒ^ËQçÔ^T†wî\¸£²u4ý™ÁbW;ËøìEf¶b¿^ï»ð{[¼U~¢vgäÎHÕ`Ö¿”–™ä~s’™øËCóv!‰ÌdfW‰ï"á=Ä×B\mÄ >D‰è@€ F›ähÓO¸NÎ mô†Á@œŽãcppvÏÀV-3mƬ]˜|cˆ/ÚA&st´ÆÏ¶øA“¾ ýHKD"‚Q jÇ¡V<ÞKÀ»´DÔä+£<‹÷£Q‡DE®"9³[øÊßÞB+üH3F—ËèI>;‰¡G0j/&™6`®d¦ÙØ4 Û'`ï(!êøz¨¼™ ‚ßÃ^ñS–$*ÕAôûˆe›°qh5Å«l¥÷]uú!êë\Á¶1Ì>­z¥àÌäwýìúý‡Vm¸›åæànyæÌÙó‡÷luWGKóë•3ÓCÙþj‘ %)ÞÞó1Ó·:Ì$œÌc¦Î:ËÆ ÎL¼-.„ñ/UpfÚ"Š­ËLÇóvÐ#âŒ}‚™üÅ´£”ûÓVhËçŸ%VPÚ8AWM¾I<…!cq ãOšOcñ÷×ùï¶zZ²Œ®Š”™rrr^n•Œd¦ØX¥D‰ŸÛ€%@= D‰Ý»¿<3ñûúŒ3±ežÜoN2“žñ( `ÕÇË%-‰ƒEÈL{öìÑ„ U¥K—>q‚ÿs/¦]»´;J«*rfâ'Áï÷iÊ'⸋Ç*S'ÉL®>NÁ^K®{“™&™¸„uJÌNKÏ\‘p×ÀøäcŸ¸dK¯-.76^4³NP9fˆ™‹§ßüù7ýY{wáXÕÝmÃ{˜E¶ NP™iÙµÛó­Âäƒaÿ¤~‰™C}=%^ÍñŒ^uéÔ®†Œ#ï¬Ü¶r®y"Ó/)}¡‰Ñ8kK^‹)Ûg&±?â¯ÖâjÔqQ—Ã4œÄËËS½¨˜K›Ñ,çN׬?Ä0S¦WZvûGî굨 \ÊРë›õ’“qùTlÌdj˜PéÕV©Uqóm¸“ È $§F€ØÔ®ßÁéØþ‚kr¨©?ÎÅÉßqh"öLǶyX¿ Ë×bÁÌÜI‡ð;ñE;Èd…v7Ñf.ê» 9ÉŸ‘~È@¤%"Ù( ï¤àíTTOCµtT¥1@ãÁdÔ ?žHNr̉°å‹&Ä&'|g‡Ö¤13tZV'ÐCƒŽb¤p×4MËL³°y*vŒÃþ8FÔ#ðû:ÀâGØH`’óqdD’"y‘àH6"JÖ@2›…S>•q#¯¡Rj ±&âÞSÇŸBê¿T¬­kÔx‡Ÿ»Öx¯EW|ooþ¾Ž?Þ¼ysM¤ÀòòòÒ„„ŠonNÏ;옛Ӣ˦΂™::z9…^_bí¥2“©Ëm¯c¿¤¨ûö¯Ž»£o²{¾éu2“Ï{«…G,o&«P2ÔÔÙÙ,rñMÕóÐÒÔ{“§¶÷ükÁÑ£‡¹.öìXá>Ï4[÷Y¹çhZȽ©æÙ’WÖ{Ç/1·<ªžÄ&=gºõ¨Åêâ¤àÄô•WoM²qTG“23û¤¤ö2‹K‘3rÚ8>º•ö2cKÏa(@4•’™9úþ-™çäD'éªØ˜ÉØ0±rÞDvedUAbU$½”wDh¨ƒèzÿ·ÃTAl"aÈ¡¦n0ì‹‹ƒqzŽLÀÞ|Ì´`Ôi ¾ˆ¾WЃ@s?ÝB+K4#èø¡1‰ô…º$¡DÔ$2Q% •³ñf*Ic˜3ðYŠäD´ŠAmbV>&6yãsW4w@Ëhk‰öúèx½Î`àq ?€±;0u#æHfš‰-S°“?Í‡ãøœ#ðý S°›Á½)|!À$&(cIlâÑ[Ȩ‚L6N%¤UB2¢¡2ßBZ5$¿øwñ‚kÃ÷C¸Ô‡ÍÇUM_€™þVZbâßþºžª×™ö ÿ×ÿ(2vÿL2SOÁLÒq©èg±ŸÃ#Å ÍçO0“äÉLï÷ÿ¨b`&ù»¯(¤.3±jÕ„«ÿZ[¬d7‹Ä¥X¶öš *uK÷'ÄV* þøCñ÷Wââ4Ñ¢V‘23»&ò""3•/¯Ô©£>7'‰ö—ÊLøðÃ{¥K¿$3%''¿>ÌÄ–y’™´jÖ¬™¾¾Öƒlq(Zn@XØâ—§víÚ/º™]¾Â3õ=æqcžþeñD[G;O§ˆ‹Ënº’™&›»Úoi›®²ËÚØ“•óM¯ùÆ&Ùú/º4}·“Cšše„•Ë®¸7¼^šso̦½ƒ½Õ»¿CXÂàmnï%F'©T³öö½¾ášqšÔ¶„{#ÂÿÌtÈ'cÑÙ`#uéT¦kvö¤¨å32Ô-rC“3暇κî/™iz`úpç`¹((+ë»%Çhõý[a¨Ø˜ÉÈ0©<îU@nEÜ­ˆˆ7KJ¨ŽTbS-Ä›>By‚Tñ<¾ƒSÜlË®0êýAЉ£ã±o¶k™i+f™Žb¤é£!ºY ±†psJL«wBQ_ Lä!RñèÞ¸‹Š¹¨påi Ðx„ðDr"Ti±‰¼Œd/9Ôd‹øËû~<îç0à†‘™vbŠd¦…X#™i ÅÉþ8ßW;ÁŒð× ·¾Ëðú þ ,G˜j"‘ÀTélÒ$›…S‰å™×Pw*!«2ÒßBR5ļƒ°÷PîâæGUÍ_Š™þY¯3QéðÄs¤E«@áòºž!€ˆAréÏS™‰if‹Œ’™˜¬ D‹™XêIfJÏÍ ¾Ifb–Vb:-3Q½4U=•™ö+ÊËŒ·½Š”™²³³ÍÌÌ4‘QÞÜ\.ÐöP3mQ‘©óºu^znîâÅ‹¯ÏÜœ¹¹ù“ssRvvvåÊ•svvÖÄ‹E7nÔ„ [5kÖìÑ£‡&R0m«ºòT|ÌtÞ;ø¨‡ÅÌsú®b xG[7—ÐÃk­ÜÈLS,Ü,µIWÉc}t¶¾áìyfV~±I.!!SÍrßãè­äL4´·ž—´F8•Yš{oÒú•]¢U¢ðŒLŸpØzˆ{¼xî>sOrn§\ ý£næälÈÕ¬Ú¾q··E®m¼:ùå•™½þÖ¹ÙwTfŠJÉšl“±Ø6VžsQà½>Nš©4’Ùμìÿÿª¨™éÆW®\9v옑ar<¤•Ãýr­ˆ‚q¡ÒˆMï#–$Ažh ?²Å·pn »v°êã^¸4gFàØ“Ì´ŽaÄ ¼„^Fèj‰öÄg|{P€q'Æâý¼›‚·%0‘ÈIPö!ÊhÑû(Gr"6e¡2±) ï›È[r†ÎŸ»à›[hu]]þÃyt•KšbŒ.3ÍÀÖÉØõ; Á©¾¸Ø †`Ñ7ZÂA25DÑ€øâk ™Àô&²ßÀ›¥,”Abi„å5ɉ|™õ&RßB|uD¼ƒÛµàU·>¨jYèÌÁËÒÒòu`&ö÷éÚu‡£ÊŠA—kbï"ÍQ¬þa´©pØHf²c3ºÌä“—¸Ø˜ÉUƒ* 3¹(ÊiÁLä¡aÂKS¼2Óê g•Zí‹®¤2„ßó|²Ëž^C)3½´$3efª~±úé'1À„_ýuʃþ—×€KéééµhÑBùÿ_®®®ÕªUÓD^JÅÇL½oq½0MOÃLÝ,Ý]üV®¹®z€œvÍÓçò¬SÔ㛢².ž?<ÏÄÁ?6Ñ32j¸ñýáû¬œ37uÒŸ“¶ÑNl+{çÞüóûñÙ#Ì.ŒsLLÔuæÎÝù÷î1P}äèe“™óYè_¢xþiY.ù¬J×¥g ó»»ÂQã r{ü½¾^´L¦ üÿ«bg24L.‰?KáQiüQ÷Ë‹'¹¡:"«át]DÕGè§«šZáÖϰþ¦=qù7œŽãã°*vÌÅ-3íÃx2ÓYüv=Ñå~±CkáŠéó|Jܹ:'Uª‘Žª„¡;xƒÀDHú¥¡ÔŸ(Ic€QÔbS&ª±Q3µI]Ah胦nøÚßÛàG3´¿ŠîÐï†Âï»0yf?ÉL} ßFľ6¸ùpFEü·‰†ÄšH$,VF–˜IlœRø£¤jjC•ÁbSyÜy•‘øBªàÐÛ0¨ ûºU­ ™øMHMMŽŽ~˜é’¢|£ >O„$íC\Ïb¦2‚3eŠ˜Eh(¥ÃL üª™ÉL|*3=ƒa$*âÑPEé ª3!¯Žù˜‰Å{>3ý)œ ¼†*êq&SS¹åà‹éÚ5e®ôý%J˜››ëççW®\9ydäHŽ +ïžÐ… ^Ÿq&33³g3•/_>66V).­_¯]•WÈ"ñ´lÙò…Ö˜¯]»V*>f2 39œ˜rJßM¬hîjåáæYÙ•(É"opjöôKwǩ앒™Ù;þ%‘$çÜ‘« ÿo¨™)¥þ¢ 2p/ƒò¸Gb¨Œ¸Òø®4TÆÄ*]| 7¹¤©ÌÈLpîYÌtÃÏa™É­ñó-´rEó¨€Fú¨ýJ¿‰cP> o†ˆDP–„DTú %´Æ¨Ä&¹J;Ô‡Zd¦`4ðEw4“Kš¶ ùüúfÃqšÌÔÆd¦`û-œ¿„§œ˜û‘µ§d"8²$0•J ¢ÜòJ…Ër¸SQ¼‹*V%Q£ÞxçêV½ö¿=7wGì"÷æ5‚5AuÖé]ÁL‘ªÂée“¼§Ì®Š}Tä¼™‰Yxp¾xFŒÌô†x¯ø™éŠðâ­‹÷TfbÈLÔ ÁLül¤»ÎNbC=2'Š‹Gœ’wpâ»û'ªŒR”ûÈu¨H™‰‰ÓÓÓ5‘'þ¨xóÍ7ÿ¥!Þo‹a¬€bË<µ0d—*UªV»\ü¸5¡"ЀªW¯^ðÆÏW˜"g&~S)==½+>A‡o™zò¢d¦.×<œ,Í6Ú¨Ì4ËÖÏjïíq*¬lK?³Ïr¶±O`lBHlJ—ów†Öwc?SÌ]†ùeìvVý[nJ½»aû‚Q~êÞ# YYíâ®ý’›ö/9&$+«ù£G2ž™5ÈÿÑ…D̓ý}î<\rG3vE&sÍ[£ý¿¡âd&@! ˆA”‡eÕ¡&•™J¡ei4z1@©j˜YpfÚ†éZfº‚ºÌä!3} ›PÕ ÕKѨLf’³rZfÒ.ꔣMr¨é.*JfJF 2S$>KšÈLŽhAf2G;Ct{3MÂnÉL½að$3}Œ2“œ˜{ d&9ÈT™Ø8y»ȆzTʪ뜲*À¸Þª » \Íêü¯3õ¡˜Hz¾,ÄJ&©Ë‚$ÈLT1ªô¶Ž’âá²ubzŽ’ÌTJQ6 Âx…ÌDé.9’ÌTZ¸3Ð2ËÙO‡™ fúFÔ”)YµÄ[SÅ+EB"†¦¤f=™"ÕAåë¦"e¦DD°Þ…#ö»S§j›üeüú0[†©‰èhÖ¬YÆ ÓDŠQ®®ü)*ñ[TªT©‡µÿ"ÿ MH¨È™‰g³¶¶Þ¿¿‘Ïí½æaSŽº§«ÀÑÍÊÍV?iË •™f;n úUxÛÛšvbëõéFþAq ñémM2Fœ8ë*0kš…ÛÏNÙÜÕÍkw$ælÝ¿x‚š‡¨Ô>Æ¥×S7Ó1DÞU\VVׇoæ9[š~ÿþþÿÿ×-=KÅ?Î$˜)¸,b$3ªÂ­&+cÞ蘙äÜÜ?2S¾q¦í¨w õ>BwÔJÀ»ðf;”~rœI“g*3Éq¦hy_nœI2“î8“îÄœhŸD X6T)üAf*§2SfŒ-‡ÑÕZ çJ Ì{UþÏ3“—2ùG‘-¤t™‰¨Á°d¦‘Šò–X Ä#Ô“Ì4HŒi½&ÌtQd&jùãÌÄ*h}ZP”úÂaw€3Q+u˜ÉTŒ±åSºðæðº©H™)77·{b^À¿ÙŒÅÖÖ–½¯&òªÅ–a{j"ybS³ŽOe©¢Ö… r«Ã¢ywøðášÈ?éüyÝG,ŠqnÎÔ/h»qâäãW=„€–®æ§S·Ûº«ÌärzE`×Hzv‡¤Þ|cª™p|BtRÖ7މ£ôN¹ ÌšiåÙìrÚqoÕ ßž¸¬'×L÷Šb˜ê6RõË]˜rÌÉÑ>äÏ’ý/MÆåS12Sr0=*ø²H¸°­ ~y)ï"¡Ž:-U¶n4…d&íz¦çÌÍÃ-3]Ã/d&|sŸ¬B­(:ñxïÞú ¥P‰ºd=“d&ÝõLò¡¹÷ûŽú(œºžIÎ͕ŃÒbS d–@‚&ͯrê‚'ßxãM˜¼wáSßV«:ûYÌ”œ`»kó±k6Α Oqóýz­˜éMMðyÒ2» ÚyÌtJQ¾W”ŽbKîÑ&ÍãiÌ$ݼþÌÄî‹uÑ2Óø¼oê;Ä ”;œš ª§¤²Å¬"e&ª…×ýüóÏ{õ’“½/£WÂ"ÏÒS[ÆÜܼI“&¯ìž¸ÂÕ‘#GJ•*UÀ9Ç|…)>f²ð¿½árò”—%3õ²t¾t4m÷-•™æºG˜Ø#L}~opòžÕ¶“MCBâãÒ²š9DŒÕ;å.²Ì¾î3jsôY_u>î`LÆÖsÛçzj˜©Ÿkâ¤Ât’ôJEÍLÚýæÈLyð°œ:¾¢>/V3ËcT $×B܈,ƒ?ÄÉÏáý \ZÃŽÌÔ&½pé7œ}ÎssgñÛ%ô2F+´“ÏÍÙ¢i”º.vD‘Ž* „‡pÈD*’ØDH"*IZb”À$3eãÍtT•þ-¥» 4”.šìñýuütí.£»|nî9ÌԻ¨=,Ûâ†tÎ$½YÖC¸ÖÑÀ[È^´ØT ÷Já´²*0岡Êa_)|Y ¡ï ø=x×ÀÎRUë<‹™2Ò’\ŒÎÍ7~ÔГoºáäS@ßB¯3=Þ†´+už%á_@ªN3´ÑÖˆ=z+‰¥?Ä‹ :ÌtBþ?b&ŠÌŸ·k'q03QºÌ4‰÷}MðoÍ{ý<<•™lllBBBìííãã㣢Ô{>L‘››ËƒÌN–⻼± c÷FÒâý‰½¼¼ ™2''çÉ,Ò[’Ì’ ³ð]¦aJRZ¾,L°mÛ¶¶mÛ²$Ú,>|V–0¯ÂÄò*[¶lIMMÍ—åîÝ»ÒГYX¼§^åÉ,¼“k³°Ñþ1 ÑáØ±c÷îÝÓfaƒM›7o¾aÃm¹¬G›%ßU˜E{ö Lÿü,¼É<™…’YFŽÉ·d¯”/ OõÔ,<˜/ ÆÆª´ðdÿàƒÜÝÝe~ÏÉ2oÞ<™E^…)™@WEÅLÖÁ«Î¥N=ià)¨¥“ÞŽÌýŽžd¦ùÞ1›§ôÎ$÷ßN\o`7Ó<$,>113ëS‡ ‰zÇ%fͽ8vNà¥ÕÃ÷±¨ôuG—zh—FYÿ±Ê¯p6ù?(þS)3I9 ÿLÂË€ºŒ©<\*"°2Ôáßêˆ~ ÄÂD-쪀†_Âó[8ÿÛvÂ×€Ü>å©þ™ÈLG1ò  ·ô5pmÑb&ê”A 7±_ŠjZ†JÝQ&K¬j"6HNº&G˜LÒ³%1KNÌ…àã|ê…/ˆbÒøf|«‡.Ò?S>_3±…Ì$ý3õÃ…n0ìóaÓÍáJüTÝ%´.¢Èˆr¨©Špe©}z®,BÊÀY6”p4S ™å±¥ ~¨ðwXž5±«TպϜ›ËH óvØ»qÑÈßú >iÂÐß6žq*È@©ŸŸßÉ“'y}M˜‰"+¬ÓŸ©Ûz¤ÈL-E@ë |·`&¾›ä1S®¢´Éú¿ fòÐY§õ,fz_Qš‰ƒO2SZž&¹ßÇ…PÝ_ÍõEl,«ê”NXWS4_=•™,,,ÈLVVVì˜É= ó~åææÆÄþþþì‰É@ÌîëëKLá}Œ@ÀŽÍÛÛûÑ£G¼›ñ¶Æ.Q¾q˜=_r‰n¢˜Ìâãï†Â,, ³0 ›…]uÙ²eÉaÌøÔ,ä¹'³È«ð5((è©Yx\f!Ä0nvØ<‰6 «PÀ,„š«0 »0™…ùmaXfá&..;-MÍrüøñ–-[òsÑfñôôÎÊzJ–œWáqyÖšQ]3ÝY|2cÚé‹^ÂdKÇ+²9{ó¼Ð7qå$ŸþÁ*  JXdiÿû­è°„$2TCGï©zÇÌ”-àæùÓdˆ¥š ú˜=ÙˆÊÇLWEød3Qrï”WÂLT7Íß§3Ó ±¾û3q03ý¦ÃL_ˆuT_ñ*Å“hÝw?‹™x•‚®ƒ-=•™ØKÖz&÷—ó ðl=zÙ²ešÈ Šÿbì}5‘W-¶ ÛSš6mÚäÉ“5‘b—&TتY“-¯ˆD*T1bÄÜèÅÇLv!a3gM;­ï%\üfé¸aÁcn~™kÝ’çnu¤Î ŒŸbâ4Â!>"QÝe·©³Ël½ã^ÂöûÈ¡£Ï™F¨spÂÓ–ZnóÔôCï<8tçvvQ«Ø˜ÉÄ0œD>û„8Tƒw9ôy#j#†ÀT?ÏË@¼Ó{åăØÑ†àÔh~ê~s‡1ú†\@¿ËèiŠ_¯á[üÐ ïö@5é \bÓIÔx%½ð¶Ü>…䔉*Zc”åÆ) x7ï˜ÂQÀäÏ<ñ¥Ö¡¥:lF«“è~aÄ~Œ{ê~sÃqü7œí…KÚ%M¤À¯á¦u.±©Ô}‹kˆÍæHžÞ„½l¨ªb˹·‘@fª ÚüÞÁ¹¬«Wóì5àüH_~ÞkÅL÷:üãÒíæqüu©ËLr 8r‹¯¼+v zŠçð_OfÚ!Êc$æó1±ï%Ò´¯4êYÌÄ»yMð1íãm¯Š”™˜EŽa¢ k×®¯‰¿ˆäˆ…&òªÅ–acj"™BµjÕHšx±ëæÍ'w—.i™i„ µo׎_§g1Ó74!¡âc&‡ðÈ Gsæœ¸à—¤ÞÍ[8Î;–sÒ3ˆ÷ö%·3§èÙ P;€ãqc¯8 qLŠLRA©•“ý¼s'Ä)™+œf-Üf«ú龞¾ôò­ÃâÌÌñ÷ïÞÑl^ûŸ^T…ÈLÁv÷šÝÖD™ÉÔP}Àžö’ÞQ×2‡U@Ï71œôð1B$0}Êhþæ¶Åö°$p;àÜ0œø‡&a÷ luK±b nƬ]˜|HìÑ{ôÑÇ]É4WЪJ^Ç×øÊMˆMÁh„zuPúªÇã=RQÞ!iÑDÔ”´:d,áS&/|ᆯÐR2ËNá×3è{ƒ`Ô¾'öè†íã±o$Ž‚^èwƒ¡j’[Λ>‡7±éÜþa„E"#Éé]$žØ2o#º:BeCñÈ»êžc)T¯ ·á[nŸàÖ§°hTÕðÙÌô¯ôZ15_làÿ|é2Ó)EÙ–ÇL„¤ bqOmE©˜‡CŠI?à¯33™ïSd¦Ÿ…K)2S+±ûÊh‘F>*H£øsX]>#ÄîN›…Ò^NW¦‘šàk¡"e&vu¹¹…Œˆ<¨S§ŽùK9¿{÷]ŸØ2º-i``ФI“‡~¿ÐÅOY*l‘™PFЍ1yŽf6o¿Ýgûö§3¿ŠšP‘3ÓÙ³g L»wïvŠŠaš3ý¼àœ¡æc]³ô|B PKBs~?l5Ü_}Æçd@Ìð‹NƒœR¢Õ©¹Ììíæ]8í£9e®tKÙrjد×$"cÞUߣþ ªrÉÎ.¬Mþÿª°˜)=%dïÂI› Õ‰y©ÙÚÚšFÕR³”àTþÑñ- ÿA áÜ>_À¾9n}£¥Qñ\kƒ®¸ÔçúáÈí“°s6ÌÆÊ¥X¾37aÖfŒßƒÑG1ü0ú^@¿³èbˆNçð€[êzífnøÊUYû4 ?@™¨ n‡R'µQ‹„„÷"Õ‡ãUÇ–|TÏùâcO4ôEã[h⊯¯ãk´²ÂOøÅÝö£ã ô;Š!»1|&®SmîR,˜‡e³±qÖMÀžaØ3Gûálè‘ü~•¶°ú7¾ÁubSÜj¬î£âU¾©Ë›|Oï#è}uE×íšpy±µÔ¥Káuò&FVBzpl׆¸I`j ãFUõþ0S´AyþOò@EÙ%d¦Oĺo2S•<ž üª(ó¢b ”d¦#Šbõ"Ì” îßëYÌD '˜©r3ÅŠyºZŠâ)Ò\P”ÖŠb¯(5D™ÏäyU Ì+Šºl5OÚ¡)Ц®ßyBC 0†Wl*RfbFÞÓ4‘Âñâ‹/¾ÐD^Dìu‡v^­Ø2lRMDQ>ûì3këôŒV„ú—þBŸ#2SÕªJ… S‡çm?{ ´¯RåéÌ´bÅc~9ŠoœÉ-:®¯söôK—|RTfá8üfÆyÿFGܺÛh”¯º*^/0zài§Îé±É꺧ínÎÓ?ë+˜iµgæBý v*3YFfM¿uæ¶Æçäú7*fJO¾zxŸ¹™þ6£¿™ÉÎÎŽ¨$uáÂSCàR gê«ã(‹êà<¿ªõq¥ ,ôz¨H™©ˆäççWºticc6äÿˆÌÍÍK–,)ûß“œ››:Õ®!JÜ}œ™LLžÎLùT|Ì䓸«}ætýË€Fš;t3M¾ÃÈ’ØûC¶èõVtŸ ŒžtÀþ7ç̸uÑê/v6 ._ôKVëýs¦šŒrÊR™É.:g²~Ò¥ˆÿ˜©T(Ì”žwzÿæ•ó§]º/6é) Žœœ¬ £>ƒ?­1üšÀ·ÌùUý _Ãí;8µ„ðý ×[C¯Þmƒ]½p©?΂Þpÿ‡&bÏ4lŸM °v–¯Æ¢ ˜»Óö`â!ü~ #NaÈyô¿„^Ÿ ê$|f…v×ñ“-~°Ç÷NøÎU…§ÏJ¡„7>÷E?4öÇgZc”惦^øÂ_¹ákg|눷ÐêÚ^Ã/æèhŒ.WÐã"úžÁo'0ì0FïÃø˜²3×aþJ,YŒUs±A.‡ý#qtN À¹>Ð'6u†IXü ë6¸Ù ·XåoàÒ î_Âósx7…›…&›H¶Rcø6†ëhY ¿Twù½ÙVßÂø;\øºêÙBg¦¨¨({{{›×™@g4Á§ëO±ú›¯r=ÓB1C'™I®g@šDד™,Å€™ÉJQ&?›™¾S_E9,ê¥e¦vuÇ–ÜE»*$DQj‚‰ÍŶ}MT¤Ì”““SDc';v\¾|¹&R`]½zõõgbË<ÈÛoníÚµ½{ËÇ$^™v풣ƅ/ÉLüÖ´iÓæàˆ°F Þ»wïYë™vìàO˜¿U|Ìä—òÓŒúWü36wüQ?Î0(AgJ¼ßo㉠ުã€+~K·\蚟ª&ëlo³Àè’¿`¦5Á÷ÆÛwû–8Æçô±¼k–øß¦BP!®gJð³=k«:}Rd&kÃâ‘´Æ8û)™ˆJbİù×:œlQM›`h?\ 0 ÉÑ8L™Œ]Ó±m6.Ä-3mÅŒ]˜¼ãŽ`Ôq ×à bSTû•Ñ™ #Éé&ÚØ¡õ9|Ef" ¹à"ÁH×x„ÇIWhIT"l‘–¬ñ³%Ú›âWCt#]@¿3¸vcÈŒ%®Ú6aöZ,Ì4ëå’¦ Ø;GàØ`œ–ØÔWºÂ¨ÌÚÃ’äÔ7ZÃî{Ø·€£ä§æpeË4…ñ§Ð“­Ô._ÁŠ­ô-n¶Àõ–°h“Ö¸ôN·¨z²Ð™)==߈ˆˆ×™®‰ ©çkƒ¢ð®Ï^¨“¢n0b!¶§m’ç–‰Èu^Q‰°d¦lf2T”^f"*If¢Ê?›™ª Ô2SQ£Å"-­{OÊ]Qtw"íªù›_ºY^­Š”™>|XDc'¼s–/_žåÑÄ &Þf_ù ™VÒql%Ö…=‚<þª$Ÿó/ õêÅ“«2¢ƒƒCÛ¶mß}÷ÝqãÆñH\œòãê[ùÄo &$T|ÌŸÑêZê }C9h4ÖÜñû“‘¦Â¿ÀâÔûCÖœ,TEÏÜv½ŸGV‚x¼®¯‹ÍBã1n±6êÞøØµ^‚™ˆ S±c&¶ÌÅÉL«°x=æmƬ˜ºb ±é†Ào¡Úh|~=ŒÐ•¸c$'ÒÏ´¨€Rf‰ìñ=x$a$WIT"f]Ã/¤%9¼tÝ%0Åo§TZrP 2×¶aúFÌ!3­ÀR2Ó|¬›Md»IØMÎ…#Ãq\bS_\ì‰ËÝ`H(”äÄZ“É‹?À–üDveûnä5Ô­0&3ý >ygÞÆ?âòÏ8ÿ3Ž·ªzìÿÎÜE¦yìÖõ„ö‰+Š1U¬:ª-Ö6‘'WÅîuÛDt«`&Ò™)Køs"¬p¿9ê•3Óifª$€’•Z!|TZëxËÌM¡ÕP±íñ“bí™_­Š”™˜85õ©.þ­îÝ»W¹råY³fiâ«óú0“têÈ@||<ëò WKñg›&TôâW«zõêÏY’Ÿ¯0ÅÇL! YßX$Í00ö4ÞÌéÛCÂ÷÷âÌû‹Wo™æ¡2Ó•Û1S6_ëí(üX¹e½ÐØ2P`Öæ˜{“#Öz‹ýz2³¿öQœ2ÿc¦BP±1Ó ÃПaM#+ü€ åñöçXÐæD¥.0&L)zà.ü€ÙUñáP—À4ûä qdÖ/ÂjÉLë0f“ZÈ.$˜KlZŠÎ•Qn:q Ðû2z’xO&èl†N-ñN|@„"‘¢´Æ(Ò$'‘´ˆJÌEð"-]Dßs ‡A'1ôF¬Ç€]ø}7&×¶`æÌ]ƒ…d¦%X¹kåô o"öŒÅÑ8Ll‚SDÀþ8ßú½p©;®’%<ÉOí`Åf¡µÁÕÖ*Ɇ²j }u²]õ'~µô;â\'œêˆƒ?V=øŠ™Ö)Š“&øLõ¯…5b®«¢´mõÌÄφ`D(”Õá[2ÐE,ôf.­tOžðŒé«GôAÿôIDAT9fá^)3åääXZZj"…­eË–õï/¿}Õ¥K—^Ÿ¹9¶Œœ›ëÚµë‚ äÁW¨­[ù»¦øÄìêÕ«5‘'´yófMH¨ø˜)<)ç+óئrÐh‚¹S=®V‘ê%çÜ_µ|Í7uNÇ88füfÓî~YÉé*3 ²¿±ìªMp’ŠVëÓîÍ Øä#˜)<+«~¬â¥†ÿÓ¿T±1“a0AFS²×ê$]xã'<ý$¦ç$3UÊvz˜)] zQ/ÇLï _Òøs˜©£Ø³OêYÌDɵç¯\EÊLE­Ò¥K'$°ÿ?V```É’%¯\¹¢‰ÿŸÑþýûÛ·o¯‰ü“Šœ™øu§Ž;‘’ûièL³@-œ§l±±ŽV¡gñÝ{«–-ŸãÁ°ypì¸m—»g¤d¨Ì4ô–íÇ`Y²s9ðÇã33ë§ý*Âÿé_ª¨™ÉÌÌìôéÓûöí³7 $+Œh=qðM¼÷ ’ˆä¤a81ÇF⨘ÙIfݤ%’Çtl“ÀD!”,ƪåXFf"©W6bÎfÌچ鄒ÓohóêìÅhòÍŒ"èwNb(Jƒ¾FínøôH#I“Qâ1‹ÉILÏ\Ç1ü(Fò<‡ð;l/&ìÆ¤í˜´ ÓÈj¦õ˜· Wa1‹´+Ès °V‹MD=Vä4ûÈžXGÉO¬5ë>gh)Ù2ýq¶Ÿ€*=[ ›aÈœ€£pxöÀ®~ØÜ¥ê¶‚3SŒ‡ù´9sÖµÕ84ãÐmÇžþ¿žÌô§Xæ¬î’õlMkzzä­ÿV@C7ñÐ\šxެ´`‹%ÂÁ“ÌÄw“Ä‘ç«p™iª˜”Òe¦ç<7§e&–¿‚¢¬•ê,Âá/Q,ê’â=}œx}Rÿ˜);;ÛÄD—' YÍš5{¡óŸ?þõg255}ðàžžÞ·ßòŸæÕkݺÜ0©0ÅïRåÊ•ÙëiâkÍš5šP‘3¿å©©©'OžŒJ»ßÉàöó@ÁL“-]F­5±‰Sq/¾woíÊÅóÅ8“UHüìãºF§‹åL™#ìæ›z„ˆ¹¹ws÷YYû‹ñ'ž¢ÖŸ†üç“©0TlãLކþĹáWÌ©„êÄ#b<1û °wvOÂÎÆhù~"v–Ès±a>Ö˜%K°r–¯ÀR’ y…Ø´s‰/$§­˜Q f¢?´Ý‰Dœ}OÖ9€±1†ÜÓŸ¶Á'‡1ŠDÒ£ÒHZLÆÄ4æ’œ´‰J;1e;¦Î&©&󢦵X@t#ÀIf"Ïi±‰7 ›%9‘ü¦`'«F~bYYVy ²îlÛDâT?lêŽey u¸&|‡þ#Õ§ðöŽÀÎáØ6›‡`MϪ ÎLfgøÄÅè­]ã«n¦™™‘{zÝ²é» Å›ªbccù¹KñçækÈL»ö½šàÓuY@•.3µ£S}„WL2Ù¢ŠptÙ@‡™È%’™øî?îL.3Ù‰ÅÚRºÌd¤ÃLu„&-3å |$3ðÄbk̤ @{“ó fŠk¼^¹Š”™˜˜7:M¤DjÒ¤IÁÝf².¯Ï [&''§nݺ¼ík½R½œkõ£ ´iÓFy\ì5!¡â››‹Í¸ßÎÀoÎ%« 3¹ ZuÑ6I]´ô+,Ìdš°Äàlפ45QfæHG·¹þaâQ»­wrw9f¢¾|ô(ì?f* 3¹úNÆ.i=1åMT#FÐȤ Útl“DÔø?}НˆJ„Ò)„,B"!0MÈLr¨‰ØDd!¸œH0ä˜7Pq oÂÌ-˜I„"âth;0U@ÏdÛ0a&?Õ˜†ÆÄ4IH4žŠ@F,Ûˆ9•æ®´Db“ÀD€cyX*Æ¢ïXlžU <ûX)Vd5e}%HIÓ¶Œ® ÅR¶ÒP,ž„­±y6ŽÇúqX=KûW]]pfÒ?¾;!9Íbß\ç05êe}þ’µÝšÃ†êÿ•¿¿¿{žìíí —™øsºP~Q' ÇÏÑá›Ìä¯(3¥½x ŽYFŠ)0ÉLkÅx’d&¾>KË_OfbÁfˆðQ6ݕڭ¥ž¢ì×ñNk.f$ ˆÚÛ7kÇÖP÷ y<þ$VDõ_¹Š”™ëö:g«²r7ìZ¸J0“Sxʬ+zí³„³ðÌÌñvÞ3­"#3íO»»âRÐmñ<%¢þÓ¿W±1“§¡‡–3Úá—¦øL¥IÒZoôø.k«¥ î<¨ZHµR÷Ki­ÌÝ2¿õømiIuRLZoô}ï/Áòñ˜ =H“#8f9ï Åzí4Ý3èÚ ÌZ„% HzÓš$'­iKþ,Ó­¾ÖaÞ\Ì’áq]å—cÑ2,Z‚|kæÎS½ŸOUu~Á™)#ÂsåŠe§mB22OºÂ$iñ‘gM4o?®Âe¦þ½þÒ ÐúËØ+b(ÈMó΋ÉÌL¹rEù5B,ÑjÓÄðþå®\>ý÷CôºÌD€¸-`‚¤ÕXQüòØ‚ÌÔP¬ ßôÿ3±´Zåc&½¼ª1oÔãÌtôñMåæM4ÁÇÄKüãc‰E­"e&¦dzM¤häêêZ©R¥Žfuaž/ÉLÔ—_~ù5pp*•(±lÙ2|åÌôJœ >¼,kþ„ò¦ø˜)5÷^ ã[³®Ú fšiíÓwËgáÔ{mFîÞÓ ×Š5஑i“δËÖ¬Uhë7Í:>JħÞw%;$õ¿gå YEÍLQQQ¼ëYYYyºnSf´ò(;Ã7«Æ©s^ÒäÌ—\'D+‰‹0m Ϋ5õ×™íÊe—ýÈúÙu§Í¨;6½îŒ)õ¦¿ã[³JT•-ÆÉQœP uæcÝT,““bÒfc“œ›MQy4æÏÄ–' ¤Éô4™]NÒäÈÐl¬X F´c`’Ÿ$'‘uä ×j,báµó†4Y;V“&«,[@šl™Mꎿª Út &3mÄŒ ˜¾NmŠ©«0e&-ÄøqUgœ™tíèà­ >C/ÍLééJïFþƒ›énj™ÿW—&Q4oßGƒÄSlK…oIÂÍ!áÏZµ`ÕÑœî²ädÕW/ÅŸâ gd(#«^ŽBÝ¡ÕNŽÒ¹9MÄÒX»O‚5çȽ-Þš Ü2 ’àA¾ M ”Ós¤ -3‘?^CfúQ‡™š>¾çnoQ;8Yx³Îü|ÇLÕ×%5ãfД)Ñ)êØÒñ¤ÜiWÿ û™ [EÍL<o|ÆÆÆ~†Îû0^™i ìÅí k¹–H»Šh+f™–câ’š“ªÄ¼ùéÕ“š$…EÈ%¤b a…àÒfQûŠÉo4¸úé¬2ë:a@mÔŸ­¿ ßÔ¼C“±K»øšÖ½êáËñØ÷¤É4&f¹¨H»âJ»Öj &Nà "”œF”Ø$™‰À¤E%B’d#ÉCre•\VÅʲʬ8M6M¶ÌZ Yˆ¾2üê@«Ý· ã¶cìVŒÙ„1ë0zFN©:奘éŸõÒÌtø°’…ÊwQqbsÛ»ŠB“ bÏœxسýݸXÍ]ÅRlÎÏŽÜMÁ&/å@¥±–h_ì’s-Zª¬hpªK»{ÌÕýçœ Nž8¡D•¨Ë3){ðý¿Ô‘¤žÂÆ–=Àƒ?4 ½"NKÛ/xˆo5 AÎè,Ü]2l ˆ¹÷œ.3½!Üð`±1ºÎóŒºÌtý®3}¦ÃL_?î•€÷Y–––-¦ääR-Y©«‚™tÖ™Ð<&æ+Ÿª=ŠR$> ¬¢gbM¤°õð¡rÿ¾R¯žR±¢5Ðø«bE†U£îÞUÑ?Ÿ^­ßH2SéÒ,ÞK–ü#™Õ º²,3c¯–™øùjBÅ«AƒMž-½b²FÞ2ï¢yl.sþȉv™±b Óéä»ãÍþŒÈ››ûO…¥b››ó7t<†Ò* Ì*ôÌ÷¨Ú~Œ#(hŠÌ4»Î *q•>3¬¿sˆ ¹æZ2a…ÔBv™TsI•°ju­?.Q²Ä¬!åHH"Ãþ18HÓ>›Öýê¢Ù{Òä3}4ù@sÉú$E‘ŸOr¡:ÉiŽð}ÀÛ$3æˆtZ`"-•D%ÉI¬+¨ûŸtˆ ŸÝÓ6ŽÖª Â|üz#bÄ> ßá;0l †­ÅàU'¼nÌäá¡,)·aé[;Vú)]œœTª§( *l"Þ†»|ùØmøŽèÚù n¨â‹&LÀw¤(C?9Éèœãk\áë5ÜÌ_ŸÊJWuBJ;ŒÅ¨z0M=Õac…&ê¬UZ*vg“<1QLÒ1@èákñô™–™(ÂV±15÷ßÇ™‰"᜙ȅd ¹ßœ4†™%3ñ„º0D |ªô屄Š]EÊL¹¹¹...šHakÙ2Eº´LOOWÁ‹gÏ^¢±¨TI ”Á¿uóæÍW¾ž‰jܸq¯åîÈFfþÇL…¬bc¦ Cû èGÛ…Î5Pq/ºI—HZHÒo$‚0AªŸK¶(ñ…Aým%UgH1gæ“HÈ%d&bÊÂ<’3±eÒªÔD)ŒÀF‚NŒ…ÃÄ a8!=I‚žtƒô½oúáB>ëóÒ+Ó0¥ôżÅ;rROK#<õŬñXOrâ¥çb™€ô&™‰HG`Ú€¹›u\FíÅr!‰„D6:Žá'1”UfÅ¥×M­§(6Î~tÝŒö²¡ÞR3ýtýO£ÿqô;‚þÑúmEß¹UG:3EGG³_±³³+ 3yyñî¦þÂÖŠ¿ä=R•£%G»–hþu)·\Tè uZ­ú”4B ­˜K¢… høã/eî¬GõûÿQòПÅ9H)‹lŠïa÷šÃ•á’Ûÿ$*Éì$ƒ¦yg i·¡½,ü3é*_(ƒe ˜ƒ«,V/Ižø@ì"Ã‹é­ â 1…§e^â Î™5{–>¡Ùb0ìßëß3ÓïÂoç8Þ&^%3ñ´ƒ5 U*3ñ¦¯{‰âW‘2³k"…--3]½z•nàgàí·ßçÁ§2“ŸŸßëÀLaaa,pia]ºtqwW¿Œ¯œ™ þøaáŠ_§/¿ü²gÏÇþElmuŸ¾ø×ÌäyeÇ¢E‹ŒCbSî<ÈŒßyñéU=sæ 1¿«ŸÑls÷0ÁL o†o>;'@ÀжĜ Öí÷Œc80!g ‡}Ÿd 3-±Mé~'^Œ-™¤Üø(ú¿gå [ÅÆLÁ†¶&èlŒ.SñùÇxK¥ßíKèe€ÞÒé6‚0!I¾±«ÜeÞÞ]f,±c»ð!)±IËL„•9ØH`š†í“°û÷JÛJ d· ˆJ}°U×ã¶Ü±DºÛþ3ÞFÓθÜÆaBc@šôQÎdOz'—ð4 Gƨ;ïn™ Hlš/\“/ÅŠ•XB¤“#L¦˜²G¸&'•H„Ò59 ‰<¤>¬8«ÏFNÉÙ2´KètdCUE¹õøþ2º ëytÓC·è~Ý÷ ÛâªÃ ™RSSùã˜]TA˜);[YÿÆŠDÔìÙ&𤫠Uˆ˜¢$¹¶jÕt$ix¥­‚Oú|—¢Ô RG8®‰ƒ¿*Ê(˜¤¼Û\i>Ei5!}M¢2=QõâØBAs±mœ<´rŠR3ÏÞ2UÜK5‹,ñáÖ9ñ®)U3u+u BÕÄ\uågÁX, E²$¤’“¯j’ÆN°kž1¥kžm¥ý÷úGf"í±™©‘ði®•vnŽÌÄn™â•MÄ’“ù heú8 ñÌOwÞ'Fé²5ÁW "e&vuÏÙSì_ŠÌÔ®rö¬W…2eˆ1›@o`É’%®®ê ݓ̔“óo#ý7Z³FYµJÝá¿FHu\ ‰´·ß~T³¦²v­Ò²¥’Tï®E&vIšP±‹¬Ò¶m[¹“ŒT¾ÂÒ8Óƒœ£ç.[½Þ%4]säqIfêîe8ÛÂ;\0Óºkáˮ̗›ŸlOÊ^{eËa¯†o'e÷÷p˜¨é –Ú¥ õ¹— ü}[ääô|ø0ö?f*l3…Þ¸ŽŸh³Ð¨Þ4ÆOVhgfèDD 44›»•è?dF3œF}¼CàØ—·îfÌ"‘¬Æ"2Ób q'c»çÖ\ªMé2©:~·¢ vôÅÉI$!¹³[G˜ËÝJ¢Ì÷8÷®kM»ßí í.xd,òá‰ì5PìL Œí¿‹OSu¶ –Ì$™ˆw¦½y;“ÿ‚r¢Òeô$$‰Lñ«9:Z¢½vÿ;6ŽÚ¢5ø±:ÊíÄ×øÅí ÑÞíÏ£Ãit<„+ªþVüssééJ·Vi™â’•¥l(¿”ͼL·WÕåAiƒ”nÕnµ®æÿs·oÙ>-¦£ï_Õóºù7òõÉ ŒöUÿnïG†b¼„ÄÐN¸½&ÜÌ*¿”³N<üÅÆ¼û‡²üöŸó Tãob±š¯ê9MŸ’MãJÔª=-–Ê[­2Þú5÷”w‘®àE™²TÞjf¬¢(߈«”Ã3² ù,L,'§±]Ö‹USÝtŒ€¢›¸€k1þ‘™LçQd&•¨A®ÊÒ2ÓGâµ¢¢Øˆ9J–PwÝ ©•µð_õTy(Ê Mð¨H™);;›÷4M¤°Ef*[V©\ÙµjÞ<-NÀHµjJ‰Oa¦³gϲüšÈ+Rf¦R¯^¿åË—/X`lm}Ÿÿô´ÈHÍ»¯PÏÙý­T¾|y_Õûù¤3ý“$3uó4œeé!6BYj·äêb¹yÜ®øìU¦GŽ{'1’šÕÛÇqHŒæ¹¹e·²>Lóqv99½>Lø™ [EÍL7nܸzõê±cÇ ¯;¢m>zå®â;´¾‰66ø‘¸@n @$HN#f6å]gد_ÖÄ››ÐäAþ …lUŸ S7Ä•Ì4ë‰,S°söŽÁÁÏÑùC´ülMÏrÉ•¿Ã,⡇¨DN" ý›6¸Ùv­p«Ê4ÕpÔµ–pà[´`Û7$B‘ŸO¤.IN¿áì`œîŠð{ö›Hlä¶XKfZ¥³mðnL’{ŸÀ0= :þè}=ˆ†D%r!‰`tmmñÃ-´²Ç÷hÉÆ1Æ×çð«Ñ *Ùá{[|­,ÐÚm®¢íüx?®­Ú·˜™)1QÙPo/;ƒO?~8mšêÜÅÎNéTÂ"o'¢æ/”vŽ ¦)ÕV(ÍÄÀÌ4eö°¤ÝýŒ•EÙ.|H²_ï ¼UR”Vò"Oؤ®/Ó&‰Œìþ‰Lÿ–èìÕ·Ü•)[Õe:.(¼ô¼>!lX~[.^TA÷WÒ Ó«YŽ(ê³tŠÒ¬³{.*°lØ-Îð¸ñÌSE€×"'u}üÝ'­QÞùY<i”¬`žÉÙ1­µüÝǼ»è¨àÌ,ÆÉt™‰"AòZZfÒ/Gf"\ê.Nj¢³í ÏÚ™"Y¬0+N±‡^”çO³H™©H%çæ\]]Ë7ò˜i90Pq}úÜÜë ààà iâÿIhüøñ7ÖDžPñ2“»ÑL« éli™}⢫Ë}3í‰ËZqíü)•“"2³zx»ŠÔ0ÓrÇ{ýÂþÑydgw~øP³8ü?žŠš™x~ÊÑÑ1Òðš¾ -CæxÓÍ\ÑÜßH DÂÉéBµ_êT6ï3}ô©ŒrËÐù(F’?H!d‰d¦EX=f`+Áe,ŒÄÑ&èúZõÅÅjN jÿ™´ÔV?á:Q‰$D*úÎÍáÚ îd¦Ï`þ¼hŸÃ[¾„'ßúnßÀå;8}{–„'’Sg˜ÂzÃ@LÕŽã¿ãYm*vÌÂæùX·+ÉLÚA¦}£ Lg0ðú]B/Ct“´D@$*‘ IÎø–à†¯=ð•'¾”íã…Ïùº|†ŠnøÊ_9àë›øÆßš£ÅU´<‹ï7UíQlÌÄ;þÖ™1½J^! ²}¶cZ>¬;=zDɬESøÔï:ÜFiP2øÞG½gÕ¾|óÜX²Ô}”+±@È9¡(ÇÅšåábg4öî%þR|ƒM4ldŒìïÌëøKˆN 4tY  -q’íScYJ‹Ÿ¡¿'>hÊn©ÄDÕÓ0Eùà/¥©›zrÚgÂö÷?:š óùrýqMsÎç[oqÅz¼Y ”‘¶XœœÆ2Æp)\Có<Ç´y¥1;/D“uä« hêgb™‹-VVç$4  ï‰ð‡‚ê>$:SÔe‚˜­c›K#–†´Ñ/tÂùì«'Ž¡…+몬ÍD•µÃÕn»H™)''ÇÊÊJ)li×3-Y²¤pX T¬XñæMu¹ÝS™éÊ•+¯|œ‰¥ýà~k”k×®éÎF½ríØÁ/ï+“‡‡GÆ y”ÑmÛ¤WŠ™™Œ§[‡D fZá˜2çúV¹áîþج–WÏúªãOÑYY=}'„jÐh•ëÃ^±$@dg~ð@ÿSaª¨™IÊÉÉ)ÚÐò6> BÊ(yu®¡/šxãs²¡ô@rº‰6u+6r®r¥|Ç«è^eW¢#»UòÇ^LØ©›1k-HfšƒÓ°à2‡‡âX=´ú ý{àÊÏuŽ—‹¯Öò“¤%¢ˆ¨ô<ˆGMàûüÉLõaÓAŸà¶4†!o5†!€ü$ቤErú6į_a*±é'¬ (möOÆ®™Ø¢ËL[1C2ÈÓ|ý LFèj†N×ð ûû[hEL$,’ÉFl?4À§hÄÆ±ÁG—ñj;j5Fy?|êƒÏ<ÐØMoá‹ëøÊ _ ùìo~.6fÚ¹SayzáÒ9 àgAàKC5Ò¤ü=ýö7)øCí¿»60b]LÊu†•-cõðbù¾6%~Ä aH«*h@†ß¸¯ Mù葺®¨³ïaW"Öb·V…Éæ+l^è»2N³ÞÛLJÛ…ÉüDøYŒÿp_ÕûJµ«JÙªµ+oWÃç/9cE»ü@ÙæôGi§?dTÚ':ágËV-ÏÈ%vy¦uÅ©§¨ä4\O±THš­Nâç(=/ïx±4û{ñ4Ÿ¬ì`±`«•ð@\[*ø|Ó“Ëè\‹VW”– y?‹<йxžKâT<´ в+ïºòÒ·u¢º)Ü.ä;Xæ¡(³¬”eÚò“å¿0ûœ"e¦‡Ý.fGŽ?Ô˳qãF õgŸ}^«V-ñ¦Ò¾ýS&¼¢¢¢ ½Ÿ}!±=ßxã ¹K [†( ¿ Є^‘ˆ’ZTò÷l*»X™©»»é´ëÑ’™\ÒfzžÌt(&s±Ù•óþê˜S\VVߨéÁÒ xæŸ#Bþ ‰Tÿm–R*6fŠ54Ä4þsÅA¨Œ¤|惦$'W4ßõógåï–Üõ}3K´7F—÷QiÚ<Žbä~ŒÛ‰)[0sæ¯ÀÒ…êv"›¦bÁ…ø2‡ô„~w€EíuÝʤVþ¶’µ––ÈC’ê#´¿Ž ’VQ|ýõþÂ>FÓ|ŠÒÕðj÷oáÜ ·t±©'Î Ìjš„Ý3°uÖ“™VcÑFÌÙ†é{0ñ~'^2 ÐÛÝ$0‘É…¤CÒa‘¨DNb#„àã0|ŽzlœPÔ F]ö FS” ÁGl(|ì…†.ht ­ÑÔ ìçµõ?.Š5àü„„„HfJcÏ&Ä.áP‰1èð®Ç¡V™>ë÷-e÷¨Y-wZi×<.IUÞ<–]Þäž&JóSJ{¨Î$K‹Þý]íñgéá¤x„­‹˜BâÏð`EqSŽoMïRËý­‹w­ÀNy÷„¦¥|xi5¯ žBNe×{ô­eóŸS×ò­!#5ö‘(„æ3V“æ$æÚ˜@)P› _M¸a°´ssÙ‚œÚ‰#Ûņğ nãyxuâ£öT´y~8õÅl ?(Êûb8ŠÙ;Š(ÒN‹!(m©ÈX¬ˆ6ª5vAbjO÷Bùìßô üé—®8‹k±‚,ØÕ wøÉî_•Ìw‹”™˜>9Y½JщlÔ¬™jü)Q¿~N™2M›5»¢yï S^-3>|ø›o¾‘ÏÕ³e^+f*Ò ¢«W¯V¨PA†ùõ“©be¦^צވ‰£F+ݲ¦¹ŸôÊ\hj¢x‡áĬ¬nþ±såvs™kB´ÏùCPÿ©hô¢ÌfbráüùóVŽÑIê*´‚ˆÌgh–€wãñ™é&ÞñC­(Ô%(HN/|Ñ¢òâõíÄ"hstÜ„ÖUPî Çðƒ³“Ø;j™i6OÆ®±8@|é‹£d¦n¸Ü f?ÃúKìÅ_%Þ_<ÜÓ~ØÁD"âQDWÇá2øô=Ä¿‹´Zˆ«"ù‰\EÀ"95…‘Kb‰4F&ký}…‚Q8ŸÈÓ±m.6HfÚ„ÙÛ1m/&Á(¢Þô»‚&èL`º¶&|ã¯Èˆøô6>!*Ø1¨Ma㡦j°¡~P€¿÷#P'uýQÏõñÉM|º®Õ‡¥\ë:3ñ£····±±!3¥lú`—··Â5k–¢>@Ù®]•#*Ët`â©Æ^yúãGªé<êÏþR>Ok$zz–VR,âëþâ7)¹CHëìXŒÃoŒ†£‚ëʾÒã×b?öT¿2ÇÇNõ¤ yâmV–4ÐzˆÂëšö-‚c¾·$éf©#ÀŽKbï”NŠÚÔÔ{â l#yF$j%öSŠ H!]Q$*FuÅ jÅ3ŸÓÓYqf^ôÎ…òÙï:¥}–Óœï1íÚþˆÿ“>Ø}ôéO ùÜܵk…ò¼ã3uæŒúëBk[¶ÈÀO{åW;7׺uk¶¶¶~­æævîÜ© ½"¥§§ñÅ£F]åÝO×îÜ)zf266fï»wï^•™&Û%ÊåÝ«<ïLs> ™):s¾©õå•™R339Ä.ôWÓPëbîw¸óØ?Ò*tœ™"ÜÖÏ=düø%B‹/úý÷í IIÏHM8²uõ† «Wí8›ç)â1‘™ MÓP-ÕÉLö¨„D²‰ý1bú‚wÞ/{ý­¯ÑÂ?X¡ÝV´$3À“z¿ïÁD2Óz̤̓ºeÂîßqˆøÒ[]E€Î0l«¶¸Ñûµ:\Þ÷ã†ÕäØi‰HD6ª‰ÄÊ8Q «#µÒ¤1ü6RÞAê}Ä’«ê!üc„¶ˆMÍàþœ~€-iŒLö ô‚Þ`œ‰£ã±o¶k™i3fíÀÔýw #ˆzèm„®è §äœñ-ÉMш¤%*‘’ðN Þfã„¡ª/ÞbC•üP-ïÄ¢f$Þ Áû~¨ëzgÔ-RbÉ7ßéÜÜÉC­ñóìû %~ž¢P” •Òÿb@רAJ  í3DÚ¨´R"™\Ôáñ·ž´]¼ÊåÊž-âï>¯‰XªFåsÞøŸtÕ±cGþÿý÷?+VTºwW=ZÑŠƒ™¤ä8S‡‰ö)Ò©÷*ß»Óô…ã%½¨Ì¹&ö†*3Qmƒ“–ù©ótÔ†Ì{=rÊð*"œ™R’ƒyóJNMeŠ0ž’’‘žÁ³$§x“ÎïÚ™¨&___Þò¤LLLnÇ ² *‘™ ñf ªù¡ºjDã}S¼T¦^Ùû%ú¯¨æ„/õЄ„qßmC 2Óvt<…!ËÐkÆ®Àؘ° KFaÊ lŒåƒ±m ŽÕÂW0°5öµ…aK˜7Å©¯àQêf¥w‡®ü޵áø>¢Þ†U $U…K%œ"3U­ÊȪ§Êˆ©ŒèÊp!5DÝ |è†Zî¨w®£*!É•ÃP9•o¢R*“™Ä‘ªö¨ƒwLð¶j]ÃûƒVVùâB…Õ¿+RfZôé¥M˜­G*V|t¨ÝµÃ–3íM1…¤5v“—uì”ÒÞÉj=qüùVI,~Êw°Ìå‡o¶Ë.9ðO†Çààllƒ›&èL&.ùÛŸÈQšµrÿp|„º¦ÊE] ¤›÷õ7²Û¶¬Xôý†šb˜G$ô”a­É,2™ ËÅõÚ·^•é’efñT9Ê𿹠û,å›/ÝcÕ^LàÏøsˆáÔÔ"d¦ììlÞ‚4‘bË6tèÐ.]ºH0Óù¨ÌÅÆ~&1yÌJ¢’á͹¹¿=ü™ŠVg&¡4«›65ŠJLMˆ¶70sѦғ®_:fâ©K ×ѵk×" ÒQaJ÷Dé (ï‰JQx+ÕPÓ5‡ì«T9£¤c™OÜÑÔMÑÂ-ŒðK}T¡RԠͰ ãÖaÂrL]Ž¥“0o¶ŒÄ†¡ØóNÖDãO1¬-δùw°©…џëöwÛJEÔ¬]É©üÞE|5xUEÚ›­€3%Ѥ‚+âny„U@ZE¤TDª2üª#ñm„¾‹€:ˆªûOÔåá7¿€Ýwªé·ƒÕ—˜÷+ŽôÉ~Ø)Ù[1 ëçbábu«Ý™+Õ­NÆìB¿ãèm€n'…'…+ªc…æŽøü&ÞÆ'ö¨Ú·Q3ÕSTv¬œ…7ÃQ1 }QáÊÞEE1ÎT1o¢r"ª:£jjšUÉ8ñqíU‹–™22”€å–ÍÃÎõÔÿâûb¦LZk±d›ÖFQ¼„ËvGüA­MÏš‰ÄMòf‘h¥D˜&GDžjåuœ9éÚ’¼@ÕMéûKŒ+ƒ‡õê„ïÊyPïÛp?4^ˆ5¾hr¹BÏMïOWÖ(ÊnÑs´'ÑÚ‡y{ªH«,êBc¥òÕBOU'¯ð†"¥¬í¢XÅ“äi’x^ÎåÒ=Ëj‹K°Ø¼ &G¤žc¬¯,³È€®å)|û‰Ï1ÉÄÌ¢{†Ç,UÁ_ î)ºŽÇ¾hÔá§vcÕéì7禧!311ój"Å¥øøxö»ùÄHñg¡÷³”··7K¥{u¶Ì«*ÌSÅÏZzubƒLœ8qúô鯒™z:ŒqÉ”N½Wß›sS?HŒGèGfÎ7 1OÔ0ÓO¾9ëüîÉð¶ÜÜ‘ÿ=+WÄzQfººse¯!}‡ÏXlds鸾æpz’áþ}†®~ÏZ|æää”dhôeG©(•‹ wðF6ÞÌÀ[)xÛ«VZѥ̚¾Ož`oç‰/ñ­œžkˆ*cÐì ÅÈ}ÏÛëzÌ[Že Ô¡­°w$ŽÄ™wФ†·‡eÜüN_Á£ |?Áí²> Ë:}E`ªäªH'½;åZõʽ,H+‡ûåqõ&²ßBFu¤¾ƒ¤Zˆû‘ì?EÀðú.­pKNÏõÀ•þ8? 'Æàà윃K°r nÁÌ]˜Lf:‰¡ÐÏÝÌÑÑ?: ¥¾öÆçhŠúQ¨‡Zɨ‘†jY¨Ìv $ÝCùû(Ç&’FfŠ@¹;¨˜‰J)¨‡·"ðvßݾ3(w£tÝãU[)3iþuÿI‘:›|$|gÓžŸù‚HL¶‰Ë( ðòHþþU<<≃ùm‰Â/ÆêÞÊ7-]šÁxÍÏëJ…àãqý¿ÝóW+ÁCw+è¯üãÞHÁ5òJHÓøª(Qš  I,ù©¼dŸç5Å:¼”~ÞqÚóˆ6C'<[¸kÒ=ò¤uWi Î.Ø´¸9µ¹Îui¿ˆô½ò Æ,2 µ¹Â%&SNQ”Ã"0ïñÏÒéÓêÃöã³Ô,óÅUŽë\WÚq\O„›ü¡ §ÂψÌd‰öëF‡º¸<}=ÓöíÛy;Z°`ATTÔÉ“'-,,Ö¬YÃÄ{öìñ÷÷çýj÷nr¬²yóf¾åââbhhÈw×­[G´200°··çÙV®\²wïÞ€€€ˆˆæÕfqvvæíîáÇ2‹¾¾¾ƒƒ³lذi˜%00P›eÓ¦MìÑy7366–Yx°’œ¬¶§ŸŸß‡~X¾|ÿnÝFò8ß9rØ1ÅÈLÃÜœF¹gÇ‹5LkÂï/µ1½-\ \ŽÌšcr-%G™<ÿÚp_†ùIN¼¯ ÿ§"Ò‹3Ó>û˜0½]‹ºÿÚuc3¥&Æž>°•ÚuøLœp[šOü×M64ä]r JŒDI?” Gyb‰!U—Íy£Óåò‘ø€ýœ?>#[¸¢ù-´º†_ÈLcñÕYüv #ö«Ûûçg¦8Ö *£Î·XÝV­aG¸ù>ƒÿÇy¿ŽTýñR5¤‰™¸œ È%$•@íR°(…G´Òøƒ&ÉI‹Mo#å]$ÔFL=„7DPSø| ·ïaÿ#lZ`Ogœ#3 ÅÉßqh2vÍÆ&ÉL[1ƒÌt¿ŸÂ‹èk„®ìn¢#ZÈ•L„ÂpÔ‹AíDÔLEõLTa# IKQ†} Jù¡”=J5D‰”ÉE¹THG¥DTvy—å‚7Þ³GU[¼Ìô¤ÒD+íÞ§òì9[E0dzv·º£‡–ÂÖ „úQ$+§sfJ0°Ýøé°ÁÑEnî[ê“GÄ#6;ÃíÙ/““¢‚,£ot¼ÃŒ£ÅhN‚öxÚçŒxÕÕ™%$Q-5rÖÿo…æUdq^­CòŽ~äšv ÏÄ[Š€öZÒ~}â¸#Ï w¶›7 EÉÕÄVÄÚôϲâ$mòÎÖø‰OµáOÙ*³ë=¸†vü‡]w4—ÕÑýꘛ+66ʦɑCß9Ù#\qsSF«+ ©6Ë4eÊug©§2Sa3±SôÊ·ÅO±ˆS¦L"”&ž'B9@)F‘Ã*V¬ÈRiâBÞÞÞlOMä5{MèU¨|yÕ7¤S§N €)@- wïÞü²ÙÙ)ï¾[ŒÌ4ÒÕy¸ON¢d¦˜ûÛ®9 f2ŠÌ™d~#CÃLíÜþڬ᤽wïÎü™ŠXg¦ô´„¨ˆˆ°ÐÐpþì ó··¼îì§yïŸ$™é/” 3B‰D”NEY²B*…¼S¹^H)Óo«G£N(ꨉšºák{ÕÿõO§ðc)”<‹Ç1œÌ´S7`®–™Æcßpï„õ¥Q¡3L~ÁµV¸EfjýF¨Ð:%¢*œéYÖ¸ý[¥R CD"‚ ¨]V%ð­$þ”äDl*{oàéJ5½Øñ n7/{å–ph‹mq¶ úáœz3Æ`}ôan…v¶øÁßzâK?4fO4ŒC­$¼CXÔŽ0˜”¢dJ$¡ÄR”臠Ô}”¹ƒr™ê´Ý›Í¬K­YÉï: öÉ"˜›‹õôôä'õo˜IW÷%W˜üè+¬CÞcù´|b"ÓŸ}U t. oÚ²“þJ)!z}MÏý§Rî÷ûå»ß+}öƒ’½ßC<9›`T§TtÙe6c?‚²›¨SBÑÊLlÑ0Ó¥„á_Ÿ÷€«:Eò J+Š(ênquš˜¡§äüûû2y™ž…‘F5’f=ʫȆ¼ZŸ¡˜ˆkò ÏÏ,߈½Ydú1>D ú>ï*ýD.IlD+–Š 5ò¢¥ÄH Fê‰ëˆõd Üdï(2’GYfYZ»¼b´¨D2Ó¾E–÷.g>œwÚê'“®G?a¶^Å9wùo‹÷ßš’¥mZ5ý\ëRí K÷¼ùß»¬Ññ2¿ß(Õ¶õ姯=.RfbÊW…?þøã‰'4‘<½ªÂìØ±£kWÝg(U½ªÂ0=ztq3Ó8'!w“„O¦µ‰÷¶X:‡f2¼;Ú2æV¦†™:¸þµ+R37g•“sõŽfÎî?‘ ÎLáþF3ÆR£:F L&3Åã½dÔÈÀ[d&9ÈôJ“™Øµ<ÿ¨Ë2Ó#”|€ÒwQ6¬šUx/°¤w¥j¾¨éˆ÷OUý¶Ð™‰ß¨¨¨   Âb¦§*<Ïfæ-Šj$|ÉÕBºK?¢Äöº³1H×Jrê‚XEô“8þØàòñÛ!?¦Âð®%ÚWØž‹põ-uÉÑJ­p¥Þ§áu"þB°ÂïR&ª”íñ€ï;ˆ) °Ä5#N€=‰,ª¾p•D«©{¹§™v¯84¯R4R‘< †U&0ñ æºð˰*¯)ˆ#ÛDF–¤H3Uä"Hñä,Ó™ª‰˜"ÊÃ(ë–öµ–ã»LÉ´¯kSîo´p•Ìduwȵ$g± ÕÉã¯}ñ¹2üŸŠA/:Îa¿iéáP5+v\~¾ÌÌÌNŸ>½oß>2S"ñ x¡T(Ê™²J½ñÆî½õ̤gê€5ePI—™jcq#Hfz öŒ,mÖîß3S 8’™šcÛ¯8ûï™IŽ3åc¦(ÀóiÌô£Q©õ#+„¡ºj:¨ÌT´kÀ5ÿÀÅ"Û¼Ž–èÀ>¾—0Þ5y§y‹ ÒF±æº¼è¼/‰ð&%ñ†‘.+ѨÖìSZÿ.*ú–hòÖî ÕGù}5M>F§òGˆr¡d?6{…¾÷I]ºàµNœ¼Ž(COÁ ²´?@°œßˆ4å„ñ´Ú¼ºF¼“ã1„$& ü0ɪ%‰™J$í®>yp·¸D B#Ä,£_ (7(Š£8ÕVÑ\–yÍEfâÕßÙåEk‹ÓJçL•E½Èp¤¶[‰¥%¥14¾%/͂ɺ0MiQeÚ÷â$²ân¢)ø)0—Ý¥ç¨;oý)Ë 5~|WN2ò$?V±á¿¿ó»ú5OPêÝPL\•µ£Cg´q{ÖîEÊLLYüŒ¢UÓ¦MÏœ!ÿ­¢.Lt´Ò¹s~ûòËã-[¶Ô¤ÐÑ+l™§êáǚЫ™éØ1åÒ%»b„‰_ã‡b†®cÇQ7ï8Ól»÷äæqëÒî­·t“[¤\‹ºÓ÷FšG–†™:ûýy(í?f*>½àz&Ê{×ê³â£{ɹ¹” ýRQ昛Û2¹l{“2)x;ïʹ92“vnÎ?_B‡ú¨2mžÃLQí{¬Ò›û^ŸÊ¹9D¿‡øªß™—ôoT©Z”vn®fcåÜœd¦œ›“ãL?¦,ºÁðùss§0äɹ92S0DàC97—†jÚ¹9¶†œ›£‘œòææJ˹9û&å+¤Áô‹7CUE57'UüÌôT cçM~"NÈF\ÞC5<È®ú±¢œ]A¿eNåKÊ®T·uY¢`¿‚»J§ïÌøa ÎøÛ£¦Æô,V>}¤4T”úùÞ¶HQæäXŒê‚ExEš®§Âؼr’odFRòÙð¼ì t²,TÔðàrqd’Zc]†þ ]wHrGÞ_óΰ]\ú ¢x €£øJRa6 _‹dä­Vâòr<"Kò–ˆ²…e2š8 áL¦”¦ë‚|&³\!„ßÛÞe[qb-æû³Øw¬Rz®Ræ _…Å´æFêBþ‚¨H™éîÝ»rŸW¢°°0Þ÷4!ö³Eºž)9YY¼Xµ>}ØÍkÂ%J”Ê·{š[æÕbJ>ñ7¶&ô*$çæØ ?üðC`ðо}{~ÙŠ{nnÎÍð¾±÷d_»>3w­‘_˜ð;p#æNW‡?}ó˜©{ä£3™_ÿ©Tpf öÕÿ}0Õ£C×nÕÀ°]&·4ïý“$3Å¡ïPÆeBÄÄ\©G˜¿¤B2j#¢P÷É5à&èÜ ´ÅÇÏYNfj…•]`,×€ çºX&×€€ÈZˆ#ý”¹öC…áûäP“À&w R¾5àºÎÉ5àD®¦»ü'\ÿÛ:ã ™i(NŽÁÁ\~mÑÂÍžº<•´KšI‘(åŠR¦ (ņÊE¹lT·µLóë¥#KT F ±¼ök»¼ÐÅŸÀ¼ÓRÅ¢(öÍ¿ˆQ‚ËYñhý{b(…=úVòÇU¥ÉÅ¿{ú·[§H ý¸LHŸ2úu§E}•÷­kgð•x¡=N;#Æox!^ñ[1œSB<¿Æ+2\Eƒ6âÒÒØÊrî¹h?§ÖäÀ­”ð¸Í"+Š… %é;1ƒF\c²ò‚œÎ‹16fÜ”w‰d‘˜Œò 0^½³ðäÄ4&¿x’,ñ ‰I™ Q”£bĈ­Çì$*V„•"²<=Eʵâ„ÕZñ-Ž× UZ”u·@‡%úí¬êˆ‹¹Úæ Ô±Ë}ß¿ò›Üú—¬‘›‡êÇW@)3=xð€çÑDŠ],gŸ>}f̘qù²¢¯ÿ˜õ„!/ñ¿aŠ2oÞ¼ºuëfgg‹Ã‰-óZ 5988hB¯B’™(¶IÿþýË—ïÓ¥Ë0 ¸ÅÍLsm"{%Þ—s9rrW] Ìd—p§ý_Úq¦‡ü·†©UpfJN ÷óþ–„"â’R’cc3þy{2S’¡Q Ê™î¡\2*¤â1{ÊTO.[¾ºœ˜#L<ékÀ]:áCÉLOõ50»ßÀÛ?bcWI_-àØ¦Ò×@=„K÷ßo}oRòvý7«Ääa“ ™‰œ$Ń˜ª ³:Rk"‘°UQ/­¯Ùϰþ»Ã`ÎÄ×€t¤À§ú 6iG›î£\ÊÊVºƒr¹øì\I€ÿvÞyÞyçusßu÷W‚­(b'6&*(Šˆ X”twwwwó¾¼]J)¢ûý7@D0îñnŸßœ7;»³Å¼;ÏÎÎÎo€‘E¯pÞSãJàålx-Þº8öÆççGémÛjæ’Fß±äÆºîÞ±m£¡u=Ýê{7ýÍ™îå:Õó+¬È‡Qo½aø€ FYƒ¾­ðÞø]²Ó7jDÐ ,3v°l"Dè¸äG©€Õ<=ˆùê1Ö3íét@c@¡y‘jkAuÀmP-^h§E CiÀô¨6°iÔëu¸<šMÛ¿ÑæEå°•Zmç Ñ71œ¡ôh&õ5:<"¼tã¿_RmQ¸î<.£Ü¾þ:Êrpëç¨cAÁÂe¾£òâV¨‡žßD4Ô,Ü&ô¼YT'*Üa\ø‹öÞë¾¥ñ PÅÐÑÆèÝÛ >©&þ“ %ÂÏÆ—ZÌ©¶(T=ú$ôο—fÁWV/k@Çz$zÕ™°ÎÃŒÌÄ“w~Ô¨Q_~y æ‹/È._~IÚÌoø÷èMhgÂs¥££³»ãÅ»Á3óØ+ýž+&ö$¨¯ÇÓÅÄ‘Îã3ݸAðx}èL»#83%×é×Ð56ð¬§)IÒðg"QÒîLÓZ[C˜þà,}ÀÃ;SM±÷N½õ{ö¶wtŒŒ»`wþ€þ®zû„~RG9S@ £l`$FåŽý¢p€îñBx‰nd¢Ì¡XdÂ×Éðc,ü*þ0Ý&=#΢3°¶³3mèLA÷9xkxÌ¿IúDÿIŸ‚ççû!¿è=¯hpÎ'£4lÛGHAgBO¢ÚÒ(h¤…‰îÉ„šE4@wfú ²èϧ`í;œfûBpFgZç»8Ó)Ø@;“+,ð…™Á0% þL€_Òà»ÎçÐùð²ÆÉ`,­M0 ÍIÃ+`8ž¥«0²‹aôšCR=ø… x©^É„7cáû±¿<¼3…:ŸÏ¨«¹hx´ÊQUZ ’HÒŒ=ÓxÔ|²÷·¨,ýÜ™:@ 8A=ÉŠâ¨?Q<ðcá€ñJºµ#n“f3$ºõàÐýèßh½9ðÅÂÎsÚÝùAJŒÆRîE'bÀÞ fa…×JM©¦£"à$.é^ Ò¿¡ÒS“˜¸–Š£Ü`ÀôíT«†\ê)ÿö·;† J5,Ñq:Œ¢ò¢¬H¨÷àèÄ(*û×TvtÜy\ÃEJéR¦…[÷ 4èjŸÑÕèÀ€ÂÔ€ò$¬µqm‡¨îM¸Å)”‡9Pƒc­£¾-ó¥êÍq\³|éVõ( §&YâÂÏŠÚ›™ä@MÑÑ(@Ì&ž^u¦k×®àùx’ >|çÎii!©ož†ÑÎÄãñpë== Ä3ƒ§”™è>|˜‰õžä˜–»"ªŠët‹„Isó^¶jÊ™R¯6ü–L”¶÷ŸÛÚšÀ:SòHý™8œ2Ogg SSÃCGÌÍí]]}kUs£3 ü¾†A3aˆžÍ‚gÂßzÀx¦:xƒþä\>|Š7©¨tpÔ7˜?À’r¦“ ×Ù™ÖÁieX‡Î4ÜfýÞ_!^ Ž} Yè:@)ýi^Ô¦q$ÂÍA¨DÏ|4$€Q(IТ0 -ýÕ9¦7 îm¨¦?9‡úõ-¤ÿ ‰¿CŒ „MË™à¨NKàÂj8·,hg¢¿7‡ÎtV]„Å. î ³A•îÒ„HkY¡vh“^”À ´9]…g+`t"ŒDg’³rÃñÜ—©ƒ.©Ž©†ñ¥ðj¼‘oGÁû¶c{xgò¸hÅICÏîH­¤¼ÚTëÓ^fJ‘ššÑNppðÓâL42êý/ô¬ã÷ï'†%D’c…c¥þ&Öåáä8–sÞõ Èw¾:êømTó V¤è+(ô§èt©¶™Ï(1ÓþP à jyŒ|LÉÊíéè¸iúQÚAjy´LG×ÁD\l•Ø1¼ê ¦ãæÜáà‘œ©ÌÅÄ^õP˜¼¼¼ø~A_Áà0J ã„ðâGyƒ­4Ç¢7ÔÀ[´0ÂÇ9ð ÝÈ„ªhÔWX€Ît tNúÎδLuÁê3Pù&«ƒËðšè4h6?QoÏ}9¨Mÿƒ’÷ èÕ—3q^utý‹ z²Ác Šþ@/&¢-Ñßè}jé¦.ßè¨e3ÀW Ü5ÁñŸ£e•‘þF/-Oxž cÑ™ð‚Æ]˜ýìg©Cª¼R¯Sßè}7 Þ‡ÿûçÃ;S¸Ë¹”ª*›&EÔøڼèS§ª»{0‡ôÿgs÷2‹’‰‰ñå[¹m0h÷ãŸÚÈîGïÓ5úmâ¥[äó/¦‚ç3^ó{ckZΆvšO5·`$‰ê™ÔFuý9A­]j#ÕÍüÛX2É®?(˜w.•ˆ^5 ¥„jîDœ…2„³^¡„ Uæ/jͨD˜ˆ.ò<µ<ºý^êÚ†õ4OYËÿ¨NBÌÞRæ7¢Ó$½ x¼èg'©DŒ¸·7üàÎc·²Ú™w‡T¡Ž«¼šQN+´I)Ü:<Ó¾6{J±"¿r…Ðìø—Çu<¶¨•·‰OŸÍ¿ZÛàø Ú#¿ôG‡_¨•©¦µî[0…^u¦†††°0<ÁOÜÛáÇ_¸p¡·iôh¢’áüüüM›® pd̘1ô¹zé%"=œÕ™ððð';$Rºí¨ÞÇ=Jhiu }ñ^,ëÈÅ‹IgŠn˜ÒÈ|<ÎRA:S-åLhH?äß.ow¦­×¯—_eâ,}€üo9Óëåóùqqqõ~Á_ƒ–àõë‹oT.öf¼ƒö€QŸ 0¥Ã·IðS<ü†Àd?˜áóP>´à»ÏámKXo›Aÿ ìß ‡Ñ™Öƒå ¤F~¦× =f&ø¢Ó Ù(ÁæŸ ‰Ö¦O!Õè]¨c²j¤ÃÜ×Ô½ õÃà×g`×+ÀÀ“¨J¯‡¶%t,4­ èsÈEaúR…ø?!j„¢–M€ÃsÀ~\^¶kጜìp¦ã°Í6µv° «7˜ï³è¦¦ø=~¦µ)>+‚Pé§ZxÝ‘ ¯á™I‡—N˜W`^)õÊgéC,Œ+ƒ· álx/>ˆ…‚à“3c•Þ™$å©»ví´ *”)Š®ØxZlÛºc‡þ®=‘¹Ì³¹Î<Î$£ú;ãU•J¹ Æ.~ã"´‘]޵×îC¨gX/Rñ?_‰B¯’Ãs`@ì(#SÐ]~¤žOaü›Ä%Õ»Õ+ n’ 0¨M3k™O‚Zü†Î°±âù·^ –ßI½µ‡*öµ ÊÇ'T ª ®ç{ªé×9Žú½g¡oaÞ_©7àh rjkWøµ0JÏ;Ô˜% Ýëç{z\u ô£CÜ[4³dj«ÿe‰iä³ÅE°Šö6óóPr?q'Q×ÐÌöP›;H탘 JâALQp—2ùT¹ÀK‘'!ÞT'žùñ4ÛÂã2£w@[Â\«êïUgÂåñ*ÄL<9ßyç>_Þ«Î4béL(LŒù#†1lß¾O׸qDZ³Xxfzzl÷D()ÁbÕ_è2†{¯;—‚v¦=17§_e~ge̓Úê¨1Á ¯]û#ïvE»3in®e©yDg’¦†û%ÔÖ󅘑I{RRR¸~¡ŸÃ°ÃðzÒgC?ÌVJ%ð?úE¹lø2 ¾CaŠƒ (L¡0)¦yÁWX€ò± ~V‚×NÁ†°¥Ã™ðÆw-ƒÀ mp ›š¦ƒÿdù4›XÔ¦ï í+ÈBõù HsT4°aä[/¦£€_žƒíoC5hUBµ¢mé3ÈCßú2~€”_ áˆV0Uœ>sÀy!8.†‹+ÁZ¬6ƒÙN8J;“ l? z§a ¬¸ ‹œa!:š_0L‰€‰¨M ðK ü _£ æÃ§´9áy@yÂÓ‚þToýÃõȯ˽í0ñå1’%ð~(eÇ©ðQ|ŸûÁ—–c'?¼3u¢..&‰öÀÓèLmT‡e¬ƒššÍ™e£ëÉF£×(“À:ž–!” 4Œ¼i­Èô%^ùJÓþç>¿@úÊF4{òS¾8wÌb…Æ‹aÜ[˯M§ôíç8A|ô}ÕuÖ#-º>…Ú(—zŒ…a-õ¾ºÅ/TG%t&ô!´"ºyiVûG…Ñ®p™ç©ÒcT¢Ea ÷×ðõ¤W2žÒ¸ÁT³ 3á¿t–*àª0Üi<»;¼IQô§É¹¦—ŽI¾)ÕÝ­QD …kø¸Ø!$"®‘;ïJ=­û“Ú„'A,¾F¼ñR^žðkòûäá?lT¼t“<¥¸E\F•:-˜÷±Õ½íL¸fâÉ×ÌW^yÅË+¸·)-í¦Š²òÜ Ò„Ïo{þùnœ ÏL¿r¦²²2&ÖÀÚ‰Qôº3ÑÐÏæöÄßœÕþåjt¦5Q·8”3•_½úI[[ëIOˆGt&yQLÐŽ•: —ê7 KÏe’:S_Øg0ü ¼\ ޾:Ðç“÷PЖ²à«tøM"~Ž…ßÐ-Â@%T}`–;¨9Æ%ÐY ¿ŽQa¹)l=»€Á0Ú&¿Âôqðúb8­—4Áq>¸Íïið=˜N„ˆß u¥ÍékÈDB¿cË3ÞÑŸFÂOã`3œDOú ?…|¬/!m s¡uÑ-L´0Íßyà1 ,4Àn)د†sëÁr œÐct&CØ{ vÐà œ‡U` Ú:šŸ?LGm åhø#~M†QisÊƒÏ àG<-h© ô ÛãproðJÃsáãLø4>K€/¢àë`øÖ¾;9vÚßr¦ó4:rŒjgBÜ Ò~VP=ŠÞi †ì¦ÓùÙÖú`A „[‡`_L•Âó¨¼S!èÊMrîp‡üa53ó79µ>â,õlNWALþ2˃ÊuR_ÖP½­»À£Æ`D- I=ÃI”*\ó4*eè-ªA¨c0üAÍBõs¢u ÃXê(0‚)fíoêý@Ÿ4Æ…é@=죗¿+¸õðj3Œøb^Ü&ß+ÜL-³ÜbÂ6ÉYXcø©KV+Ùõ%%@¸žííÙ¿?G¼×B z…À%Qß?][‚kø‚} 7èUgÂ\ÑÑô(TOkkÂýýûøñÉ“UÖœ;gMÍ!Y»–|îó¸@g(Ú.L”3‘à C7΄g¦_=›;sæ ëÐßfî OioJë< ó«°•6/KjãRßQá\½úþ­[•¬3=!Ñ™H*ó’].˜Í›®º`šÆÊ#µân>ÊÛt¦l¿wa˜-¼o°ü·£†GSOâRá{ˆø…n^B[B·€i´09ÃÂ˰È–¢‚Œ€¡;`‘ l? »igÚÇ~…iï«àü2°Cm¢ŸÐ¡6ý&S EuÍ ½k»ï!5HiÊ©m?y#äøáØ€"…†„á+ÈB¯úÒq±!ùgHÄ\@4º×$¥…i.5ÄÀL8¹¬W€ÍZ8³,¶‚i‡3…t—&¬ila9Úž#hºÁ|Ô&?˜" “"á¯øMå)¾ABw̆/ãáÓ÷aøx9ð^¯æ¥ôI*|߯ÂwðC0üè ?;Ã/&cg³ÎÔ™`ªû3Ò@9òR*¡1ÀÉa€öÒ¥·é‘é0™ ”ʘ‡h,lX£Ì,N´3&ˆ=Wn/_v[¯‘üÞp†W ›ÛXÌB‚ÛÞ”“¹ä8“FR]§í¨Ðù½,¼†bÀ›wz±e”ëØR=‡4¨”OÚßø#;ªS  3¡cÑ;‰‚òÕ·ãïPc Ðé¸.C÷d·¡\ðj: ݆a AŒÚr{ÀúÛôdG°)!FØo¿ZG} 6L›F ~Þ¾]üw(õ´]í%j?አÿþVÁNªßÕc®:Ñ«ÎôÄQS#6¢zSu,òûo¿ý6Ýú5p ñ߯Ggª¨ ¦M›¶·Ý™<(cÂsÖí³¹þF¿ú³vÙ™¾u¦ÌVu1ӟ颸yQaz'V(Þºu«Šu¦'Ä#:“4ÐÆx•îF““—ʪê„BA¢Ÿ[šÿ†ÉÏÏïy’? oèýò·q”'ÅÂox[O·-Ѷä 3Ñ0Ð3:„ÉVžµèLZ z vÐδ ·Ã‘Á0ø;˜„—R}ŒP›¨wèœg‚Ï4 Í ½åéwˆ™qhB£³”F'}ú*,xfýIhHhT(I¿@ÎEÇBUú "•!|2„L… à‡†6¶œµàÊ"°[6t#“œÜ&»àÈ~8ˆÎd úÇaÛIг]ô<;XFk“ ¨c%"ˆæSÑœÂA‘–'¬–ÐQ¡ðä$ÂߘðÆ ƒ×UíÇÇ“mo¿D¯¡0!~óßÝàÏKðçá±jÝ™ .\¸ð4:òõ¦X‡3E¥¨ãXa¨.½ÑÉœÑ'noîlþGËÀÖ1(†üÑjhsÓiÿ°¤>¾v“’¡Ž¦‰òr´qm§‡lZ2ú¢ÁóôÀwW ‚C5}H=M›Hõà^Ð>¦@ç–F‚PPA‡z`‡ê¶–z6÷.µW˜òe§Ä0ª½[:ºý‘c¨§c¯”MìÊ!®èapáŽa~¿¼“øë«ñPG¶$¡~}Cµ~-yIcðÞ çgç4xÑ3¨OT–©CÀ%?¦Çšúìîíf÷ÓþP´õÚ£$†^u¦'>ÖíLÁÁÁÏ MyL+€2'ªã±;Se%? ` À;þxñ"ÎêÖ™ûU;S¿kÀÐЉQô©3í+¾¡%bœéJC“zK+¿Ý“”nݪaé ñ¨ÏæjËÓ<]#%Šz7kϱT&KîÛ¯ —.]ÂK:ÓXºdÿ;ÃYŒþö üŠž“Ñ!P•P&P)P›ÎÁjXòG›º 3,D/ÄãEAÄÃÇ“€ …gÏ †ÓðÛ`øÓW>Hë1BÕ¦{à O˜á3aæ%˜i 3­`æž±:¬3u¥dÙÝ®2bªúÿ‰jA¡a(§ºZÓq2Ô E€ùà©Ã™sÔàj“Áëâ•+„—Ig˜óì<òe·eÔx’I¢žaáv·0 $¸o˜ˆaCûXtø‹™ÓŽYŠl$û¾ó¾õxþ:°¦Eφ"&q!ÝÕJÌþÂû haiÜ?òà×EÄö_pò—«–ãÜrâ÷ob€KvT‚t&ãàc7qMošÿ!#_¦ÃÚÿüºÔ¨˜}I¯:fy²oc¡3MžLlÝz—3iìÛgˆ…jÀ€;Τ­Ýõ÷¨íË;Vp'ü…%©Ë–-:ÅûηSîž<™ÌD? &&†‰õºtƒë[gâ^ßZÁ8“gcãìÖÖŽb~¼y“Ë:ÓâI|îäÅØ”⢢HŸÓö¾ÉLòƒ  Æ“?p÷ó,`òy˜Žêà hU«6*ݶdËÐ3Ð6P˜,a= Ó Ø‚"ò2¼¸fu8“|ø#üւNÑÚ„Zó¬ZöhNè:Zp¥Õý MÃ{gU |Æ?ÜP§ÐhIBÁÂepIZ•P¼p ‹á"ÚÒ °Yç×ÀÙù°s Óƒ“[ÁtÛGö‚¡8ûÑ™:ššN‚j ßYXƒò×aNh„x°´<á±ã  ÅÃIPcáBMMÍE–ñL²BqöøyçKÇNwÛdH;Ó³¾£P 0lƒÅ{amEL`;4 ÚhI¢= ýÃö ˆ`@#ù> c—Á²¡0t!h¢¬ ²` å %Ú̘»Žb]ŠÖ)Ú¨:ÂÆáG@ ~ƒ1ÐKÒ¹è5`@'ÃÕÒž´Vo…}¸EÚ–öÃÁýp`ì7€ý©@›î6-Oèá- }¼ô±Ó'¤#à™4hÐŽÿ-Ãøq2l1-GaóÐ3‚‡`Ã~X¿Ö¬»õ±;–„Ëå>½Î”G½û†hSÿÒl žs¡ˆ Ô¾5ÚÈ'tè³ Œ¿¼¿Þ‰ "î#®Ã°øß 3iggBª °X¿¶ídâí=1/ù¶Ê¬¶Ì/’™”ZÍ£:¤ãBXoµZm¤Æí3 P¾ma¹­©Ä†jN=z[O>XRÙÕ©Ï¡´P¾EóvümçáK® Ñ_R¤¼ âcï–w6Ô|CÉ)h#Ío°žj*&æ òzyø „[Þ<5Äïļµ¾f@6ùfÜ[±=ÈÊ%»@¡þF5=qzÕ™Ç^¯ým:;åµÉ̬ó³_’¿çL ,˜1cž‡˜5‹ ßOŒÃÄïÙCÿ934è%L¬ÐegúÔ™·´·;StCƒzkë# #ÍÒk<¢3É¢/Ú†VÜó§sŽ™ÚóÂ˦G8íýÔ°,E¶ãììŒÎô|7&v&w Êt˜tWPQªŒ„QÇ  “:…Ét˜ØM˜Ò%ü1Tþ‚ñðJ—ôNá®5t¬œ ÌUÈ 2Õ àuxÞ%ÜÏŽ}î8*ÜuŒ]Î~Á@:N-ö†Ið§ ü¡ L„ßÿ„ß~‡_~;ó±;SYYþݽ¼¼ž^gBP5’ïv¦tª?S@qaE4êƒF0!æ|ê…q5pù$¡ÔJL6!Î ^þÝzK´ž»ùdTµ^¼4`ñÁhbî0_Ì8{ä½-M]As2Ä3ˆíƒÍôÇÛV`@Ü„Áxý½-ÜíáBñÔKv}Ài°®¤é&µõ!n¸EŒ3²ëZæM¥Õ0þÕëkÈl…!&/ÿ°Œ€ÉÚùêÒhð´™Qš&SCbî ˆRjµ©w 3Û|òôª3555õŸRÝå{sxa0`€ Zôþ†3™ššâUˆŽ …Ìge;''zfW;Ú¥ú.\`bý{{{&FѧÎt¼¹ùds3½¬rÙsý„Gt&©ŸÝ®)³fij#‹­˜dç°ÙE±BâxòP]»3áj;HJJJ÷ËÙJ~X÷0†Å°q%ì ãÛÀ¨#l'G ÃN8´ê“áÀ.2ì&Ãþ=°o/öî#Þý°ƒ92¸>†ƒdØyv΂ɇ`»!l7"Ã6 ‡É°µs8[ÿ€ÞzíõCÃôºÌÂ…é\p%TØqˆ ;qýËA[6ãF1àÖ'Â_ÏÂ3¸?ãáe-ÐÆÄ€;Œwg ñ1t/}:š—õGŽ5–´Ÿ(£-`´ 7áMp`#ìß{ua×ئ1v/ûl®[vS&ñ5VSh¿ˆ Ó7Nž‡U(ð‰>ã¿d7¦ÄŸC£®“CØÜäÂkRxþƒÁ•LFš_Ge7Àè”?àõs°Ôf1cdèü……Òsü$ÑÃq[Ê!„ƒ3á5`®ýs[òs™›×žœÉj@újCz3æÖ—19ÚÈWí°r‹¦FxŸê9¾‹ ~:ILƒ€6d˹õaÕ¹ #`"*Ú·¿§ÿpƒü.ï<Ê–ÎQon¤úWõ£z²—鯕ôwkû÷~£7<<|ذaÇ¿~TgŠ{Ô¨Qo¬s<3x2™‰~@JJ ë$'ã-ØúÔ™¬š›-Û‰¥ÿðˆÎ¤Ö×áUŒ¢’+èx'ò9qÔ32èè1÷N]œî€?ƒT¿|ºŸ†Õ`ºNÒ†:÷°N` Ÿ‘u<ëÜsh?¤;\wî<Ôñä˶›ÂÖý°šî?Ô¹ ,a=Ý—ÃdøÂöïæÓªè@/†Y:w®:[¨‡eäcİél§Ÿî­Ã`˜h5˜ÿ¼‰†×¹—BÇcA<®Í`†Çˆ‹‡Ü¹»Tg¬†·`è¶Ÿ(K]òe@‹u`¾N¬ãkàè*8¼ æ=Ì:S·4P˜,¨o«uàOõ•CŒY=ŠÂ-üC €Ûp‘e¬ ¹=øøáè,]r×5Ã!–Ná½êÒŒñº:bþÄú¾-§ "‡²¢ûãà@l}Ë#hø¬áÌÞù[±©€ Ââ Ê™>¥gj¡ŽSþ§ ì¤d:ÊßÇT8@µm¡ºO}…Y>#^ÿŒ3êH£̹ ÏÎßï!õ,Ƀϔ6Šuo1T–mÔÚ°FzR½ïC¯:VuOv|¦ÎÜëLHXXØèÑ£™/Ó<’3á™yë­·þö+ú ½Òÿ'`eÄÄúOr|¦óMMf¬3õ?Õ™ri~Œ¿›gHFv‰¬ó3:^E\\\·û^jèLÉ~…KàýVš&X.‚³玲kúõ´5p–î‚M‹z-O´9¡ŽÐ®;^RCU¢ûѯ÷£å ñìMºo5ýžš5¬ìxU­ãm5 Óást¦·ÓÇÙ $_ßëxƒÆ,]ÞãCB‹ÂM„UGa3n7­ÓÆÃK{a':ÊÜPº6à~¢-ÑžD¿Í‡Ç‚J„ÇEw?ïüBž ôk}/¦½Î4 ¶vœ¨¥`·l–Àù%pf1X.s0Նóǚ°ÎÔ-ô;nw;ªÉ ºÛ»_9Œzô&Ô.†‹¿@‚\1‚=²nós¦ê¨ðÙ·Ýb‰ _KNÕ+ _Óî Ò9*‚3 BÕæÆhåÆå¼Û¼CÇ«nRïî˜õÞœ 5Ìæ»Þþln*A6&ˆWc‰?ä­ø6}¨ùJJÒ2J Ó©1™Ž5߸>ĵu¸~Ë(ÇÆØA¿5Â(,<™ðõð„n8‘r›|RiK=ÑÛMÐ?éUgzâã€Ó¨ªÊÊäXJèC'’ñ9s˜YHppð矎G‡ñžœ©©‰èhŠŒl?¾OÅÇüã?ŠÅgf=ì8à÷áÉŒž••z"4ôpXXK?0x5AIòõõõòòrssstt`øãDLÄ€sq\’Zó¢Z¡H¡EÑþ„*¦šÇ`nEícx6LA{£é+øv,¼@·-¡-Ѫ„HKmHXŸu8 Ï=v”òÏŸÍcȘQ¿Ánú,©ƒór–£:8,€ ê`«ç€Õ|8¡:ö$ëL=f0ëngB¦}^GÖBsÁÿô䛟Վ¢FÀJ@§› Hë~äk¼, –Й¼›,˜}Û+Ç×’¯Èý ²Ûg€æŽZ 'õ©wè*¨É!n^‘ÁX33rˆ&\²ŒêÒŽ‘"\ì#Y!|ŒÅÏf¿XE: ‰]ƒŽì{Õ¦´–Y ÿ=Ôiü…þI¯:S?ÁØëà»Âñ»;”-_¾ü«¯¾ÂìÉ™^}•ˆ¥±ÈÉÉ1bL›6íÛo¿Å,L¸¸P ±ô}äLné477ãÅš™¸/qqq­­­ÌÄ}quueb÷¥ªªŠÏç3÷ÅÉɉ‰Ý,Á±±±ÌÄ}¡ûß1÷ÅÅÅ…‰Ý—šš¬ö˜‰ûB ^zpp‡›ššð’„&ÌΔˆ®HƒÏšûf%œÜv&6ÂÞÞçÆ´Œ÷+£ÇÚ¦‚ïLð™ Þ°£“ìF•å©ÃœP;6ùê+%ú`ŒÎd°Æ:»ŽµiI €Ô1èöj¬#TZè#½`Nçq·é¡·€O<ž_²ýcœÄtzhrO˜‹ËÓ_q¡ÇÛ¤åÉ–š|5Ê*šl È7Úö„ýûà,Ϭ†½(L:±‰ª„FH{Jú2VÛsÀ«ctò7.ý9Æïý¡ðìp°ýDùÎ gyÍ÷™à2 ®Ì‚‹³Àf&XªŒµb©'ÐxQïÊu¦¦†À‚tô}›¿çàŸõ{HEÇE‡jbT<ãLî!¡"=½·@¹Ð™ü¯>qÅõlÞ,u»MŽàLIOh(ÙBÐ-ÍÍÄ—ƒóœxžO>ŒLµ*M$_ªkMõø w êÞFõ;™¸8|µÝÐe_-F^”¢¥#ˆaÄé1ë°vEÇ"ºqÈ)¢Mc°‹Þ÷‰gH!»B] ä”ðõszÕ™ð¾™èàÝ)î?3ÑÎ÷ß66·¾ûî»/¾øâÔ)K€ÁªªªôbÓ§ä2´3egg¿7xð^ €:À_ý…×ð¿íLaaaýªéĉL¬pün«Å“) íô–3= øgËÍÍe&î –Üufâ¾`ÝÏÄî ÇÃ$3q_Ð3˜Ø}ÁŸtVÖCÝ×áEáÞO·`Éfb÷åï!ŸÓÏÎñÏMkSKK ^Yd2®!22’)÷ ©JܹvÕÂùºë¥”K™ÔžéøÞ\¬_¹2„Óßtû Îý—§@ðTšèôKÐ$ÔÁ­Í %c9ØÒÚ„þ²­ýC%èL†íÄEq9ÎÀZ´t4Ð^ ß¹Pª„ž„„>Ó‚`j0L ÉŸxÀÎtü“oÆq†¹¾ô¦ã¸X ¨¢N¡BÑþ„òä isB!ÛÓÍ`)j“ |7 F„͇a7íL;Àð9xa,Ùºd·­sh~èhKôX䨆ôW\P’PŒT!Où!¼!@ÀGã· „aßÁ)ú,©@¨ ù¼ÀIà?¼§€ûTpž —¦Âù?ÇžìÎTPP€){{û§Ý™%ê#$Ñø½^ãOØ!—É5ÄÀoÅÀ聆uÌ8…ï°YJãë¡/+ËÛGâî–5ÔhXý64qý9à¤õ²Þ×\KüÓªg]Ò¢Kôkþì%A#Œjáï( ÿ¤Ú´®¢¥]iPŸöî1.3—jyj¡œ‰O}5oµØh‚˜/"JyÄÇ«ëFŒ'\RÉCÛI€þ4}AÛGÏ ðаØkUªª×Q¡°ä;Õ“ÃyŸeöú) W —vþ$Û“ïLîÝùo¾!lm‰ÚÚÚñ#FLØÌ˜6 WU•Ø·\æÕW›ÎŸOÓÒÒÒ¦ZIé0 :úê»ïþMgÂ3óõißPVVÆÄú]v¦9ÓSÁC:ÓSÁßs&±_]Q’‘žY^^+?Ø™hRRR¢ýª~ ¿Bü¯5¢‡˜?!ê/ˆ¤¿Œ‹ò„>1¯ý›¸:piØÑÚ„B75í†Ã´3…XçY´ ×–¡ÓÐmKW`6êªÚJRLŒ‚?±šŒ…ßâ`B<üš¿`üáûO’ŸY³ãLÇ¢áHø u Šþ~0ÊmNN qÙ€Ž5¬8 k~‡Ï¾ƒOL¨þàèL{ÁPŒ_†×'ƒæz°DaBçCóCÿC[BD)DUBGDO¢¿Œ‡ÿuÞ<¬=ÎeâGGÀ[?CLû‰Š›1 ê7ÿ‚ÿ¿?Áë/pù .ü:ÖžmgºX²»8Ó‚_ë¯Ã0ËáÛššÝYVüÇøç¸ °hM¸Iv*BÖ7â*Mw„ë=cZVQ]þ‡X6|9Û„l) ü¨°7ž65>Ç"¼‹3a©4èo:ž™~åLÅÅÅL¬Ð1¢: ëLÌÞ™¤¾6çÏŸ?gÎåISMü;Æ´|èL‘~Õ_C&†o ãsü €”!å`Ä¡7L„4 ÚœP/惛8ÑÚ„þ¢'·ƒ íLF°çì0ƒÍ–°þ¬¶…åa1 “+,@¿9 ?£-¡ô *¡¡'ae“?¥Àið]:|›ßdÂ×ЙÂásƒ¥oáµ'uÀ·©ð}2ü˜?ÓþDËS0Lñ'¿•;oß±f:3Ï‘Ÿ1Yú¼°æ‡mÆ ˆüËrÐPòV€ “\Q—¹à9 |h[BADUÂãEwü ’ð$|=.txùëL°yNqŸB`û‰JÿR¿ƒäï!þˆú Â~À_Á{8þ0ö2ëL÷¡”z¿š™"AÙó]hT^‘ Ûç¶¢'¡æ¢ˆ¿½ºz˜£y\küFò‡¾ðÀÉÉ¿‘oÉuË›B¦ƒÿlðFmBç@ó@ÿX§±nÛ ¦»àíL&°ý$è†u6°…é h¡0yÁô3ø ]m)~¥U =) ¾Ê/òà3¬¥0ÂÇEð:Óqx=í™ß)zñ×÷ráólø] Õ å M } Í õ+¦ùÀ,Ô¦S0Ã4-@ /U°álép¦plìBgBÉ[ öÚà€Â4q¹qƒ0;Iàÿv Í‡—Eð"Z8VE±ð{N³|gêêˆCãÌ[`øÁy¹].¥¥„íóÛ±È]¸ÐµG‡C¬ZÑÍÍ<¦üúU#–±_&i7ñ•„ë€X,7 0­š°'ˆ¯([¨øxÀ?Üm”ïô{^~Û8àî3–ê€~ôyÓG£[gòôô,++sqqár¹ñññ¨PhN(¸0Nâ• ¯WÁìÑÑÑè µµµxA‹ˆˆÀerss«««ñʆ4¼ÐaÁ¦Ý‹Î‚•ݵk×0Kaaa—,ÍÍ͘—éÈBÿ(è,555Yðßœœœ.Y„B!fI¤†—èÈRTTÔ‘%++ SºdyûmÉÒ¥‰QQÑ_ ¢ |¨`ÀùóÖS§’Ïæ0ËsÏ5Ç¢¤¤4bذT#“n…v¦ââbz+XÚè­455Ñ[Á£‰Db±8‰z³à¿ªª w œÎ’™™‰'äÞ,ô0E˜í³àVîÍ‚s{ÊRYYYRRBgÁÏÈÈÀ,˜NgAiÃå1V8‰Ëà,tåÎYÒÓÓëêêîÍ’ššŠsqoq˜E"‘ày¼¼¼´´”΂ˤ¥¥a<-·‚Y0ÎÂ:Ë#·3:_A¡6ÑùàL&ùAà!ÔóT½ •ïAÅ{P¢Åÿƒ”ƒO!½í«”‰ß!ł֦¹à‰Îæ± ìÖÀÙ pŠv¦ýpð0ì>ÛðŽü¬¶ƒeXá9ÃBO˜ë3B`r ü¿%ÂÏ©ð=Ö7¨A¨J(IÅða)|PïW»ªàc÷ ÃøžÍ/ü8ªpð¸ Ö=(OèXhZhNX FÁŸ´6yÃlg˜{4,a!:“%èâÝÿQr Mòk*ÛÁd%Œ€ÑêpD.i€“Ù}Ûw*¡ ¢¢þÉhK_AÖç‹bôÁs©Cj_¿ØOËË`=Þ{ÊÚOTùûPªEÿƒ¼ ëHù â¾€ð¯À狱î¬3ÝggB/‰aœ•“Ò4•;ÈNÙ„ú@7,NøÇÚ‡ð¯,>{¯i毲m«¯uÛÏÐ×—‚©·`àþ·.Þ»@MÕ-_÷GèN[XH8YƒµãyXÕÐ@î˜æ¬”6,ÌŸŒ):žXv€ˆð‡ËèåXËŸ>Þä3`Öÿžå•Ü3žæÇï^G³÷©}÷|OXo1E‚v&¬öèŠÅK&V`xšFÁ«^»°RÄ옎õ}£'ñʆñ7n`:Ç À%1c—,¸@·Yp³ úw8Ó)Ø€• Þ|;†Ì÷YXŸ…ƒ²(¡0¥Áwè=´-•Àÿ*à=”¤x«ÞàÀë\x­^= c¿‚¡ÇÄ·!öÝ×ÑŸÊ@‰6§ø•+~ˆƒ X'¡ùÃt#˜`sw¦À§aÝIÐ;FN:Ó68®'ß…/>ɨz Àu6xOƒCaúÈ'qTÛÕØVü>”¿¬riç•ןËÇÓ‚Âôœ|BÚOTÝPóT¾ ¥ïA¾dþR>†˜Ï ð“±ÞÛ™$Õ9{wwŒë¶3ڿÙ||ˆüŸüôþŸa !2}×#W<ëbfF¼ÿjÓüóîÄ®+ ìÝ2ûœÎCSþÒ[§½šu`YÝ ¥¦F(`ŒÆo ¼mXe@de’”•E¶fÝ î3κ»ëÅSÖLL¤x¼Ï氪ÌÌD?…‰ubÊ¢£ëGxx@‚{Ž“ÚÚ„‰ =ç]¾ò·Á3Ó¯*}üC3±~@—aéÑH÷9}ü¸YHVçnO%õ%-Ä­ÖhOÛsÎÍ7Þ™d©ŽGwÆ2Ot?uÊÉÉILLÄ[™ ?Þ8¿¢—@8¯µà ¨{ªÑœP P›¾‚,ú9Ý¶1¼ÔÁe\^6º`…δŽÀ#°Ë¶â¹5¬¼:t# M(LІ?haʆ/óáS´t ´¥Zx݈¯`…$„—Dð¢Ƈg¾†ÁÇDMÛ?Æ Cyª†·Q°Já”­\øµ)~Œ…ßÐÆÐÉ|a&úÙ0N~: kÌaSggÚæï—èL¨zóÀcøM†?É>ïq?B2 ݼ¤eïBå[P3ÂWåÙõ‡_>ž–0ìyȳÔ~¢ã÷ Ô½UoBÉ[ÿd~‰Bè‡cýþ¶3¥Ù‡ç•]14Nã3)ùw8‚ÕÏÃt>Sg—3ÑÏæ˜‰~ý˜¬ŸÐåÕûî S±,²tå†ÈÚð´„l¶džNn‰«3Œw\mÆÙ8%dú^Œª¿zãÆ¦¦&¼ûÁ ÇÂÂôZêŠ4ÒùèúÝÆç¬Îìß±fïQ kë‹ù"13³g’““|yc@>dÏt ¤<yè/“æT÷©Måÿƒ¢Ï ÷kHÿR~ø¿ b Ío5pÕ‚ËËÀf-Xé‘Îd¼&i³%Ù™iùe²'“šÌ„©ðWüzÞO‡¯sáÓ"R˜Þ«‚·káõzÒ–P•ÆIày<'‡1laä70'%06èçg‡¶@Äç/pàÕjx³Þ) àã,ø"¾‹‡_"á˜d¿ZÁäñ0Z~< «ÍaãQØ~öîÃ-p|˜¯„30.ÏOUP†°ß æ'HüÒ¾€ì¡@ JßÊ7 æ¥¢•¿ýÂËσd,HÑ™FAØhH ˜ò<éO‚—€ó2T¾ÅoB‘Jcþ¶3Eºœ*«&]ܘߞ‰RKãïïïááÁLtÇ… \]]™‰{pqq±··g&ºÃÎÎÎÍÍ™¸''§‹/2Ýakk{ŸìŽŽŽ—.]b&ºÃÒÒ’‰uÇ•+W˜‰î°²²bbÝqùòeÜfâð¬ž={–™è333&ÖxÔçÏŸg&ºãäÉ“L¬;ðOfccÃLt‡¹¹9ëŽ'N0±°°°`bÝñÀìîîîLYlçñ:Þæçw7¸û"##£ÿ8SAAA¿r¦&ÖfbÝ8^=±,â Œ³0H+=b`pÐ'±”Iy:i½~=7Ê=Q¤P¤9¸%Ôp3ƒ/%‹ñš‚#,b±˜Ë内…áª;D§-<Òò*++’£/Ú{%0É"11Ñ×»~$\ WGÁÕÑPý,Ô¥„`<ùªö-²ûNéGPð9d} i?@Âo¥ÁÓÁg.¸j€ÃR°YM n¶Œ÷9Ѐž%¬±¥䃹¹Þ0#&EÂïñð“+|’ŸÀG¥d×¥·jÈ'q/óaœž—’ªôŒF_…‘×`¤= ý^…Q˜"ƒg‰tjÑh¼TGjÓeðn| Ÿ¤ÃW‰ðC4L…‰ð—L Ãl@û,¬4‡õGa:Ó.8´Žë‚ù Ê™æÂå™à5ÿ„ðŸ!ö;Hþ2>Ü ø(ª_ÎH³CB~$Ï‚|4\6ÒF@ÝHh ˜ò Èqîó uã¡âU(| 2Þ…˜÷ÆÿmgJ´‹)ªp3>’ÌeRº€µ;ë¼Üc a&î¡®®.55•™èŽ””>¿».Šêêꬬ,f¢;° …Ý~ÒëW¬™‰îðòòbbÝQZZZ\\ÌLܪ¿ŸŸ3Ñ………åååÌÄ=H$¬ ˜‰î@]cbÝG7´ÌDw ®1±î ›™‰îpvvfbÝ&ÊÄzŒ‰udz÷¶3á’­ýéÕ0¼Geb=ЗÎԯΠÒÜÜã+«}O—A)b h;gK$þËr-‘¼¹Af}ÅóÆ &í)%7Ò-^ S”8äE{øIèF&™L&‰ð ŠòÔ-ÜTïu‹—®X¾bõšIe<&õAàõÚÛ«~(4ƒ†ápmðGà>¢qÀœ× úm(S"_ËþÒ¿ƒÄ_!j"«‚ïlpS'‡¸´]E~‡îÄ68²öÁŽã°É’ø{±¨»ÁlorÔJåHr쥂àÓlòÍ8¥2x» ^¯ƒWxð¢ÆJàYiK#®ÁðFŠC_…I0å0*ü»‘¯W ¬ý<Æ×«ðf1¼—fÀIðm4ü ºÁÄ#ð+:“=éLËO‚®1l={ôÁp˜¬óepfŒž VÓÁKƒð!îHþŒì”ÿ.”¼•¯Bí¸ó Fÿ/ÏÃ(PŒ€kèLC g(ˆ‡BË0hMh™£ÉÆ9ñX¨U/CñëýĽ=6ôo;“¸"}÷®‡í":>°Ü…û;–,'ÌÄ=ÐEˆ™èœ‹òÁLÜà Õá>Ù±ZÅÂÆLtÇcbÝqgBw€™¸ÜíûÈ"rgÂìè ÌDwÜGdü»ÜÇ5‘û;^˜X “1±îx`öÞv&̈¾ËLôPpqÿ™‰îèKgò÷÷ÇSÊLô:ÄÄú`bÝ8SXXXKK žA#,wPÏï48xÈ7©´™IzZÉw‰­7*j,íÞmp´Rz­¡¡/ÊxÑÇËzMMMpp0^a{¢¾®¢¸¨¤¾žÏL?qqqžœÁÐ0†Âµ¡2òG“í+±À{ê^!»ì”¾ùAÖgö $ü ‘BÐdrÈl×pY¬WÂ)]ò÷F{`Ÿ!l7 §È/é.º \`–9~÷_ðK|· ÞÈ‚ È>IoV«µðR=øÉ4ÏÀ23X{6ï‡];ààF8¶N.…3_ƒúËð*x*CÀûb¿„äO ãÈ}Š^‡òñP=ÌzÁà€ßGŒépP ÷ðí`È©ƒ¡e´ %µ©q$Ù,'üç¡æ%(}rÞ€„·Æ†ýmgz ÷w¦^åÎÔ«<Йz•û;SosgêmzÛ™ž:úÒ™Xžnœ)44´©,Ö¦,ÿb®]»†x¼ Åt&¼<áE* o»§$Ýlÿ¶ûÍ/Z_È*&¿m÷0DEE¹¹V„káê ÒdÃ@2„£€?¸/@Íx¨x|h•û?òVÊWû#9øuÀ$ðœNóà‚œ[kÁd3Ú»ÀÖ£ {–Ÿ­‹0Ï fx/µý?ÅÀ×IðYü/Þ)†×ËáåjÇçx0Z#%0LC¤$ º1 3…à 9 –ÂPŒÈzm4@-<_/•«ðV6¼Ÿ ÇÁ—ð}Lð‰c`è>øÝZÂSXm›öÂŽm`°ŒWéb°ú æ£3M÷?Áïù¢?‡„ í=²•¨àU(}á•dÜÊðygG‚p8Ù°$Æ@u 4 „ ƒà:š¥M #A†rùÔƒò—!ïuH|slxï9Óý®õ*<¯²²’™ès°ð×ÕÕ1}ÎýŸõ6IIILìIpo‘{¼Î„¹úÿ˜–éKgÂÚVvLËxð˜–ø·ÄJ‹&NÈår¬JYþÝÐ3D"-Lx£_RRâããSÓ=U¾V†¾¾G6Z„ºšXºF1É=ƒwÖÖÖfffNNå@6¤A2â†@Öpàî³Pó΄zãïObìX&þOÆåÂ3sëcÒÓÓ™X? --‰QtãLX4% ] …B,¬,ÿbP•êëë¹\.ú Þâã¯SåÝS`m¨Øxëâ†[WYºG—1é ((èòå"ÁàÞ (•àv$T=ec¡øEȲ߄Ô÷!áCˆù¾ÿ_ÀóOpšB~Ìÿ¼:Xè€É 0Ò…½[aûnØxV™€Ž,8³.ÂG˜è¿úÁ÷¡ð…|@6½•¯æÁKEð|<[ £j`†ÔÃ` äÃõ!Lt&Xƒ¸0¸†VÈU{‡Ž.9â…x9ÞH‚wcàáðy|ã ?_„_ž‡aûàw+P3­Ã°l?¬Û›7Á®Õp`ѳ™`:FNË àöø|ÁŸBÄ÷$¿/H­4rªÕh¨5C3xáÀ!  µi ´ &©¡;gŠd‰å_Ìãu&¬ê0/3ÑËå=í|Q9ÒiXéLÁPQÁÌ¢¹vøøã®aéRfîßÏÌßÉ>ÿÖL¬Ðegºq¦³gÏFµÉòß <<<,,,$$ÍÆßßßÛÛûÌ™3hÏÝããrdÿÎ+VíÝoæêͤ=[[Û“'}•”"•”">PŠøŸ’Û‡JÞ)…|¢ô™RÀ—J~ß(y¯äñ“’ë%Çß•&*]˜¬d3]éÌl% 5¥JGu”Œ–)¬VÚ£«´COió6¥ »”Ö(-3RZtTIã„’š¹ÒœÓJÓÏ+M±SR>¨ôó¥ .J?¹+}ï¥ôÒWþJŸ*}¬ôqˆÒ‡aJÿ Wú w… •”t””01TéÃ¥‚”> Pú gl]õ©‡Ò·®J?:)ýrYéw{¥‰6J“Ï*©nPúã¥/L”Ô+iTZ²WiåN¥u[”6mPÚ¶Fi× ¥½K”j)ù@éÃéJ†3”¬¦*SQ²ýSéÂoJ?+9ÿ äöÕTÓ<¾ùBÉýc¥`<ÿS û@i—’Ò¼÷ß÷1"}ȵAT÷¯a  ÒÑ xjÇAÙËÛ»Ïædd»£¬ÇnÖ½ƒœ|4ܱQ9µi=Í+r¼Cì²-™ìa?>ýé²urR,yˆ±br)n[Òñ§–á$þúúoÈ¥÷ü­Ñ™Nú¤eggã]ÞÎá}ÞÀwhS 5Zw+õºÒ¿ŒÁƒ»†O?ef±§¼œ÷ìèèP?$C@6d#@2 „Ïw,T½%¯@öëÿæ?xo"Î=jbpÖ=«kNi†³å“#fIYË<ìNœ=kyàÈéÚû½éõxàU$74²ªèpAÉ‘F|Q_§0êàQSCÛjj²¾8ÞÜüä‘#‡“Jû@›¸WŽ˜5Φ6.®»tÂäÔ™gœ"úVšdÙÑ—qíb©èLëŽ;â=üÉ“'íì윜œèq¹ðŽÎ××oíñ+,£#=Ë_¸p™è\¹‹‹ 3Ѹ€——3Ѹ9f¢ð²cç{âÔ©SL¬gÌÍÍ™X8::âéb&zàâÅ‹x2™‰À»h&Ö3L¬g¸ÃÈìÇÊÊŠ‰õÀc9{H—eÐÝ™ÚëL,,O’òrù˜ÑIC |(p†`ˆ¨Aꟃš ü%²ÿxúýÖ?Ÿé~ðË Mœr®­¹•¸oZyI½™©-Wοhr”C  #Ç2ùYÏ«½ßÀ…¨ ¡e)nçüŠÈ–ËľöçŒN˜ö3eÙ&VÇØ™—’“ —÷_ñ ŽN’öAcOMŠ‘UHmYêyïxrRTyἃ —k`B_:“XP—ìeiÜ3sKHJJòññIOO/++«®®æp8<O(ÒÃ:ÈÛG¸ÿ°[ˆ@ ˆ‰‰a&z ²²27÷ÏËËÃÝ`&z 997ÇLô@HHUÈïj"ë™|uÿÑÔhbccñ|2=ðÀ3Œ<Ì‹ŸÜaäòåËL¬gP^™Xܸ2š‡Ù™.Ã: Ë“¤¼¼ö¹Ñ¦Ã!wÄŒ„’QP:Òžƒê1ù"䎇èW!ø-}}¬m¯8·x…—L!½`i*ê³ÇS"Ž‘ù%©BædnÀ4,IÑ~—|“+ú òÎ:“SãwÖ5“¬ÃêÒÝNÚxž61ȯêGŸw“ês:£”“êdìMUÖþf#2Óƒ“ï7’Óã¡,v¿]\}ež¥[4Nɪ2œò,.M?eíÒóX½D¶UÏ΄µ~aaáý SèHO<Œ3Ñ/Ä0=€ <Ðupß:v¬'Æ™(^È—y˜ygzàFË#ãLógb=ó0Ë<²3µÞ¼yãF뽡_u³gaù×PQ.}a´ÅHH Þ£!óYÈ/@Éóàõ2¤¾¯ƒÇ;àÿúXó^q&Yݹ}ÇÒó"›¹õ™2)äB'ã£ÑyiG]à‘/ HÃ/ŸuOÌàòø}ÐÚR‘íeëàj~2Y( Åüª¬§ÍïÉ*ë}kQ( “\.‡¦ØOËDBqž¿eHJi^„Ó¥„û žùx™î;ét)2‹ì>V‘¶ÛÌ£º¶ÊôÔ¹~åLÙÙÙEEE÷w¦‚µã©/ygê3Æ™ú’‡q¦>ã‘)0$,$<²Sˆòô tõòOKÏìW=íYXþT”×mÿ,D´±ó<ä½yã!çÈx ’ß„Øw ô=ð~¬k/õ%à5+§†™ì#ª³p£iåRNy†OBF”7N]¾âêUÍë}sóƒ}\½#Óä ¾ë ;z¼êìÔx‰´OÄAÄõõpö‹ËS(x.æëqg¼œý£ú¦viJ“›W­@žâáž*•eG¸]vpÌ(yÀ£œ^ 6)&§‹A<^gÂåq ÌD? ¸¸øáw¾·Á3ÓÉÌÌdbý€ŒŒ &Ö])+'?¯´>§„“SV‡gÿÈrŵÂ*AFVN‡3 j™÷Ék :¥[šMM ­ä·[®IpùêziO_)¼ÕÖPM­S xÀwyîæºLrU.’u·Úr}«-LB'n4ËeÔ«ATG®£NÈL÷Ä­›ÜÚª*®ˆžº.瓹ðüp$ôŽ)„u5œÖ6V:û#¾¾¾Ì»£)))̼G§­­->>ž225µµyyyô¬n©(ç¿2Úz,¼Q/BâKò ¤¼ ‰¯Cì›ù„¼>€“ÒX‡^r¦'‹@PY]}¿¯pô&¢ÔÔ&ú¦¥1Ñ>§°°PÖoªpšÇëL,,½DWgJMËÖ· Ñ=ë¹ÞÞ+ýººZ—gšÜÙ™Zo´Ô—§gÕH¯·v}`'¨Ì.•2Òí*ªãVW]m¸..ŽJÌknn¹&­kìá+77š«ãSJZZdqA¡¢†‡ÿŽ8;½4/!»;Ï’ÇÄ+äâ°°¤Æ;JÕV–’P×DÈxyÙµ÷>¤QP™{­¥EX™RÀíâ;ÍW+3Šyt¼ATZT+¨ÌJ.—“‚x«­µ¥¥EZ[”R)#g·òR“Kµù9Ú"Ë /ÐÌ%:ÉÿdÀ8, ±qqׯ_Ç‹> Óýh9uÂyÓN¨M³Õœå¨3×}‰š×R5¯ejžËÔÜ—ÍsY>×qÙì‹Kfœ›7çü¿Ò™XXhXgby*èêL‰)™+Ï8Í6·T;gZVF:S=¿Þ· ´³3!âÚì<^ã yUxppbzYƒ‚œ—íéâ£h"o²o\o¹qãúõÖ–Œðé$·o‰3“R¢C‚“‹…7[9ù5Ñ”“¥h¨N̨JÙÍ«uAÁñ©%×®ÕfçdFä•s#Â#3«o·¸Å©!ÁA©%¢[·o65¶474uW)Éã‚’n´]O‰(,Ê)·Ý¾ÑŸçãtÅ+2MÄÉMÌHô/ªo¼uC‘X-½)ã•d¤'UŠš+r“¯Ý ÷ûVz|TE^JÓ›©õM·ÅõIA>Îî>%õ×p6¯ ޝ¸qKRSÈ45áVe7Ý$e­¥6#½ºáv“84£Kû´ƒFÒ|7ÌŒGç±;‚?-__¦[·zjZe¸zõjBBî€@ À8õ…À–&ê#ÊXIˆD¢ºººÈôbÖ™XþÅ;(,,dæ=:mmmû0544Ü¿8ëLO)œ¬@­©ÓöÛGô‡ÛõÝ:–|t&üiˆÅâGp&™8;Éë‚klß ŸÑ3raͱýÆî—O¼#yÒO „uå;÷˜”óx.§ køOxgq†ç‘KÑÅÁ'ÜÓ™¤'†,ˆr¦ì€³ ù5îæ9çL°®Žs'p˜Ÿ/èìL›[m¼ø¸ü>v‡¶ÖëUEÙ‚ö&±GæV«\*»Î¾õÆÒ °ÎôT"˜mUßo~yÅ"¯Ä'üXáß:ÓQ×xü-dee”””TVV’½’¸\>Ÿ¿Z›dANˆÝiÿü’2®@Â$=9¤Qqa^¢×™ÃNÉ’‡Úý^Dʯ=qί6ŽgŒkøOzod2q–ïÁ³¾Ù‰áÆQLÒCxî|ŠXRšáuÎ=ÂÎøDºˆ9?xîLWgêmnßn ;z7õMra-OÌ*K?D¦¸÷gª.+´ºàÂ:S?¢¾4 ·0)ÄÏ×Ï?"IÚ wöðóó½âÅ©ÈqLH+b‰å_ :“‘ctTTTrrrVVV~~>ÝÔTUU…ÚD·6¡9ñù|”'–>FHÊÎ: Ë“D"S„Åù;¦•–ø¹GH›šj³¢²9¢p÷`¾T–èç›]”wÅ?9"u&–3èL‡"ÃÃÃÒÒÒ²³³im¢[›ª««ÑœêêêPžXXú.­ì(O¬3±°6.·œÛÒ¢(Î.’_»V‘›SÉ—ÔV–Ú¹ú±ÎÄò/ÉàbX```TTT||ŸKb.¬fМ°¾aay°˜'%%åææ¢-u zDAóÄÀ’L{ƒ÷XÂQ˜ðGeK>–Z˜ØF&–΃Áw¯ÌŒ¿fï(ZÁâGÇ{âΔ›é~z“îþ3‘‰"A=Þ×rb¹DD¾tÇás’-7p¬‘¥\.âmoW ñ9µä°P"<»Ã1:5>.](—Ôb–Úz™LÄ­ãà\žH&’+äðDôÆXXþƒ`µ𙙉wüÇšƒ¨¿}¨~Œ` Ö(tózV~XÕa…‡·é˜……å!ñóó³s HOO/,,Ä /Õ´ÃåÔÖ‘ÂBÂIŠJÍJH.ø¼ÚÄ`oggçÈä|ff'PØ»Š»®4=&­™¸^}×Gg'×äâZn]~t|Že›DÀŠ%¼úââŠò¼œ¢kíÂÔÑ“éF37Â? (0´Bv©¸Hn߼ъu¿<ŸÓx‹IëÛ·n¦D„„„DgU¡}1©íÜj»ÙÖžx«A’Ï¥§¹ùñ˜+8Ð?µL¹ÝÚ˜ž”{ódéEPýéòCƒ×OfÆß";'¯®Aa*))ÁŸÞ] /ÓxÛ*XeŒ¹ÉåX…¢ê¤îæÃƆK6š¹Ú·ÎØXoåžÀ‹›•g­ Êä(|Ç=Zk¶›,[¦d³iц]&ç.=ê{jÃŒµ»öÌš½ÝÏëðµÆµ4CL•'-:¶{ýì­öG–êl71ÙcpZŒù©»g–=ø#g~lÝ:þ éïAb„¾—Âtüacv\¦£… 剅å!‰ŽŽÎÎÎ.++Ã"„—\¡éêY\O6^tPBZTl©D˜æUÊÃ$Tª{>QÊvó*®g&‘ ?($EÄ+÷ñ¯áäGft¬V&“$‡gÖJõùù%Åi)¹MT;+-Lt#Óõ¦ê„Ô²›Íˆ°ôëwd¥99 JÞJÔä&•_½¯ÂÜn«HM,¨—¡ôˆjr jÄLz;‚ŠŒBQ ¯*È߸^‘ͽz“N!ˆ¶šÔ¤šrRÁÉ­\•”eæò˜åYúž˜˜&FÆÄþXÀ223¹õõ(LÈ›3»:^šéÖÑgª‰ùõÓ ZZšš{\¼-×lØmw%´6Ûf‡‰?ùÈNPº\Ë J¡p9 »÷ôv÷ä…"zɬAöûýÒ2×/Ö72ÒÏJr<î>¶~ûQ?9'UkñásÛôö¹¥Þµ=–5X]11Šû;Bk¦#è[hN´NË%õ¡^‘òk²DŸÌR’äâéíãë[TZUYS'âçG%—Hª <}½]œ|¸²ÊÐà”†a„GH½¸Ôí¢£wP™X&—GÆå&FK ?:5¯,3&ß@·-‘ï>ܸqóFSNbtPPœ”r¦ÍÕÞÎ!ÁÑõ-7®7r²Š95¥yW[ÛÛ™Ke­×ÄÅi%¼‚øx~Ûí… ¥„W’]yí–¬>/»R›A ÖŽ-ŠøìòмÌZnmfAfY]eFv)¿S;SQfâ›·¯U¦–ñ锫¼|ލ‰Žó âxŠ·$å1…":…åa  ïæŸôN{¼Î„{B :;;oD™ÔžèèhæâMq¯3IøU•µ|Œðª âããSòª+±dÆg—Õ+äò¼´ø¢²C’LP™Ÿ•_ë¸×ô²w||摸©)‰iY%)/5!>9­P,ª)­à*d‚Âòâ¬4\OI-ÛAœå?Ä ‰v&¹\NY©MæDËSGË ËC’‘žxÚÔ2%#«¬¢ŠÏãVä$EäV¦ø”®2õCKEjHln¹ººšŠŒ˜ÂÚÚX_¿*¹ Â7¶¡ùZj@`©àj]QBdVµT&kl¸&ñSbB9õ1iåy QUüÚ0Ÿ`þÕšÈðŒ–iŒw˜@V“K€u&–ÞàÁδx¹mBa·ƒ‘ÕN¸À•óæÍœ8óTR®ÕÊ?~økšg ÙîëÈ[7ýóŸŸðÕOSmb¸rQÝöU;»8SQQFP˜ 6n܈[Ù¼y3=7þŠþöÃæ—.] q›üëü…ógüµüDevèBõùj3æG†Zþõë´Ù“'¯·t]¢µ/6Ä~¾šÚ)ä኱îòej³'ý꜔k¾c³·XzlÒÜ™•ë±@ûpFªÏ¥Èt\,#àØûï|=cþ|#»¨+F+ÔfÌXy.,ÊjÒ'¿X–(d"oƒU*jjË·ž0Y:á'•™Çv­ßí^‘ê{øà½Ã¶^VÛVàš×›R>T~Ç™ªs—™9ŸÝ³LKkÞ,•?]““çÿñ¼Ús™œ×›2Emþ²½!vêhÏS›øõ~·¶d¡a‰¥`‰…¥7x°3Íý}ö_“'o5õº°ÏÚv—©S‚¬ [gr¶1 ILëÑ™d"/G¯:~чèn^Æaaaygz,DDDìºfv¿ÄÃÎŒÿ€+‡<ÈÅ¡‚jîbayHXgbéîu¦ŒìŒ®Û4-·)?ÉÿüY»Ä’Ê”¸Hë‹Nž5µÅ:Sfœtv Ë®/O¾`mí•]–›æsÁÚÆ&¯V‘âhm{9§Š¼YeaùoÒGÎÄÂÂBÓÅ™jJ 'Nüãó/¦Ç•”v8Seq>Or÷ rI^váW2å«C Æ×%ÜìÜJ~]I%ç®”åßͽΗe²Mû¬WpiYE}m”ÖÔ¥©ñÓtöîY¶Ð1£Âï芣Aq[—nJÉ ÔZzpÝŒÙiU»Ö-»|béûÄR¯}k ÏùsexBr@N.® ‹1 Ë¿žšºkÒXgbaéSðwÈÄ(ò² V6_¯³"º ?';»°°„/ÙÚ]D¾N¡PÔ×V”•W xe+lH®®åÖÖÊär^M¥ñNý<±¨º¢¼¼¼JLÿdåÒÚªŠ²²*‰LRSUS^^VÍŠKƒ,>‘W˜Y\]ÏçÔ”•U¥N-·º²¬²ºŽmÌú·r¯3Åde›ïY~),ž|6Wà½h¥S°èÅË6ëÊäéAG÷_ŽÔ_µ£°&V[k×BURŹ-«ö[î )¬!|9|%&Ôgã5«¨lf,,ÿvº\®Ö™XXú”.?œœÂË×̘º(<5Æü„É]óáYOÝci_×*jãWª/9¸ÇÐ1)xö„)&Žž'·.)*)\²Hoû}¿à »MLM÷éžó'G+K¿¼pÙ¾C+489Lüi®É1£IÓôbâ/üü»ÎÑãÛÏù9¯]¸ØXë«+ÚÊ“÷3_££SÏŽ&öïä^gJLϾl²]e¡NdjQ}}‘ñª9ês®0w2\1gþâÅK®K®ªsعdÁæó—š9Y6wþõUû|Ïïaœé€á‰ ´t´¯D‘/,³°ü`‰…å Óµ)¯ÔØöÊö•«]ÜÌæÌÑPŸ1aû™+¦úIµÔÛм=:+ÌϧW­[¤_ªP¤úž1¸xAÿ¬ï‰]úæG—ÌT×ÔÑYj刋Æ9ôH)Q;-œ½dáʳBïÈœÙ):kmÓüž>­¿ÃÄ_ÎI™÷‹ö,-ƒ*…Âåä®Df+,ÿ6îu¦Ž÷æ*Úû€‹Åb©˜o¸Y¿@*ëhq”·÷¤ëˆt@¦°-“,ÿ%XgbayÂôäL¦Ç·³½tvׂmgB¼M·ö â‰dŠjŸ}/ž9¶Ï&"Ý`¾ÖÙ˜T)7GmÂá¹uèLnž‡Vpô÷̦>jTfñÖ3— V럱ž5s‹—»“æÊ}•uiZÓ–Ûžß{ÎÛnÙÂu.gL´ Ï/céßÎ}œéî÷æ¤"¼æ3‹°°°ÜŃ H¸ K/ÁáÜõÉÄššZŸ€À¨ðˆ¼¼¬è¨ÈäôŒÒJŽ€S•–‘%$?d''§f䈥r~UaZN‘¤4~î²cu2yuE…X*ÌIKMNN)£ÕG&.ÈJONÎÔÄÌ›o—œZZG¦—ç¥dÕò„Õ%¹ÉÉubaIq¥T¡àVWÙ·>ÿ¥<´3±€…¥GðŠÍÄÚéêL,,,}É£Ž5 ¨.N,|ÐËÞ¢êˆè\¶2ü/Ã: Ë?‡u&–þÅ£: ËÃÀ: Ë?‡u&–þëL,½ëL,,ÿÖ™XXú¬3±ô¬3±°üsXgbaé_°ÎÄÒüCgÂx/¬`±ü×`‰…¥Á:KoðiñâŧîaË–-Ìl–ÿ¬3±°ô/ð7éíí•ViÅÅÅÕÕÕ555˜Ž ÅÂò·‹ïä=669,öŽ3ñªÊrÊ+Ó‹j©™ü´„‚Î8\¿~=щëׯmÛ¶œ'—eÅ]!qN,¾kà š{ƒÐBê+]U¡Ë7^|À‡Î{@&*Þ¬1ã·Ÿ§ÄUó˜$…¢¦$£‚+d&ÚÉÏHãQ_¢ñ´Úß)KH¸x2Dõ鹕L Ë=°ÎÄÂÒ¿Àºmgbé|M/;efç 3Uç^9wÂÂÚÞð¢cPqiϬ ê':·Juv¦†††1Î$ÖÛ™_PXXTU]V“™PÊ‘òÊs1’YPd»çr@hbb·4d‰®}=§4)!1§¤šÊ+.Ì/ÉLKHË.”IŹé) ©!¿°¸FÄ­(¯ãóª«ydÉ—æùV[atbߖزªŒÔ$\¬N,õ:¡kîÌvW]˜ž˜\ÉåY¿Ì39½87G ‘×–ÙØWY›Ÿ™Je!·‰’Wš—‘Æ•óròR“ÒsKe13gnÉLÉ̯æTä'&$WÔ ÊKÊò2RÒ³Ew ›å? ëL,,ý Ö™Xú†Ë—½œ¶IÏ"©<7åè¶e¦†ë¬ì<+yX3$j-µììL«V­:{ö¬L&knnFaò÷÷¿}ûögZ>ý/UUÕÙÚ.»¦jêûÚÍÚîZžåää´aãf¯“k6›]´Ý±`ëÑ£‹uÔÙd}åòÝ=e2¹‚_´ð‰æ¾;V-ñ ²Þ꜓ÕÎ]fg×-8l¦µèd¸›•Y†…E’ê´GK×øà¶M1%¥Þ®NGÖo¼äd´ÔÐÚ¹²^¢¨ÏX6}™Ý%GûˆpƒvÁ^Æ+ý“K vlµ:¦ïd½×ÔÊéÌÞm¦Á2ü‰•{k/ÝçtÒ`åqÛÙæÚ¹ûlX°0$'xò¤5î®F»OœY7[ý²Í¹¹;,ö-šºßÆÇTOÓ/‡2<–ÿ<¬3±°ô/Xgbé®\ tŽ!ŸÍU”»94Gåwí¿®2õ#çÝãLëׯÇ2¹eË–ƒÒÂDÄgÚ¢_@=«Ž·0¾­¨ÓÖ9bºcåÆûçÎT·´Ò)¨–äÚ.ÑY®³X_å×9úû‘SEX¤ùEKµ¡8ßuöÔº%º[q†gü…ƒ‹ö­Ø»e“¡ñyK‰”\3?ýÜ^‹`7‹Ý¾g—®Ùº‹†Æ6ÇïŒ2r5v†vnÛå‘RpÚ@?G,-ÏôÝyÚJ9f9gµ^{•®ÙÚ5©,Êì„S¼¢&zî‹æhã(ä.‡×ÙÆ%i뜨Ì<¿{·þÒ—$‚âÅ¿jkoÐÇŒq<à•VJm…å¿ëLý™úØÀÀœ*æéIFLtb¯6?$0îÞQŸ%µÕ9¥\f‚åi†u&–¾Áó²ó*ã“©™d;§È÷ÐIïcFõò‚“æmòëKüÒï4®ÐÏæP°BBBhaºË™t—·±µ³»èãjÈ8Ó"Ãõ:«,íì4g͵4_¿ûø)“ÍËN;Ú,Ñ=qhñì#ævvWüɇnœÉ+ÔRsí1;;»°ä’¸Ë›ŸŒ)w<´ÔøÝ7©Ã™.9šî:rüÌeó·9&»™®79U\+VÔ'nÔ59evÀÔ%Îå Þ>'¯j‹ê/¶ñ÷S»=ÂÎj®4Ä5'áÊê+io=µoëÆ3—çM^rÚÎVOw{)·híT5+û}»Í¬7ÏW;yôè‚ýçö³ÎÄr7¬3õgrÖª¨œŽdLÈíØªå[Ï—dzê­5.¦“îÀ?§§µûû‡û7À:Kß™‘æ”Cõ¯«®­çsê™/²óꪰøÕñït×^½zuÁ=lݺ•š)çsjpùòò ËJr ‡+p«1©º–+às*p^G&së…Q=N–WÖ’[’˸>–l!Ÿ'•Ik«*q‡'’ˆx|±L!æsø"j ¹TÀˆEžX"Æ¥*««¹õ"™T\UU)"¿Ã(­­¨¨¨¬KåR¿²ºV\§¾d_¥LY$2i]5uDõt‡q9oyy•ˆ›¥©nC¦“mjNUUm¹~]Ey%n‰WÏÃıßad¡`©?Ó3eymÑ=Z¬e»mÚ°aý†½‘ùÕ¥é~Z3'ÏZ¸Â.0U\›mf°qÝú'¯ãå£$Ãk×–ý¦ûwîÞ¸§‘W$—I…§÷ëº$R¯±°ô?zt&aÕ)ƒëÖæwꎚd·~Ý:3Ï ¬4¸Y!ëuuõœ®¹ëí¨nȵÝ{àB7/8õˆ¼"?Êð Þ:]Ý}¶Žõ‚7 ð¢¬ski!ö¸cºÛöÙ $åÉ.Û7›—3 Þ³D;X紗ǺŠ}&ãº-FÆ1…U½©Šòò¨ ÷¤û IE™‡“§DPe¶gsb>“ú¯à‘ÆÀ™tùùý÷„ 9å—u­Þº"fg—²Ý»YÖ™ú3¤3­ÚyôŦ¥sÑ™ lfªèæsVL®ÒîÜ!ÝÙ+•¥nÓœ¾lשøœãjê[L.]¶\¤®jâ›g3cÊŒ=¶žj³tâ+ëų§/O«go›ú)=9Sm~Ô¢¹js樞 «`U(¢ORVÖX{Š£Ç;›¨(+Ï_²§¼ëË×]©Ê‹óõOxÐRw¨+ˆY:{𮡅³³ÓÎUóm3㉻/?eé>šê)Šhç#³Õ—Ú;`ëÕ:3t8å„Zα½ˆYðe¾šê “Û©ºÈkÊ$£3ΈéþUÓç­Œ/½kT¡Ç çö”ãwÎç=HÃÎìÒÚj"ñÂ}|RKÿUwäL,,,ëLýÒ™–m>p˜BWgÎgRÔœÒÓQ®µÙÐÊ=:M.çY¬£1EQ6GE#‚‹uŒØÛt›úÆÃéÑ6 æ/Ï$‡\XèÎÞíxBO×øJ§áKXú=9S•}ê›,íoXwО|AΤ¹p¹šÎŠŒráé]Ú:zzZèLiF¨ö•©3v³®HÎnŸ»Ç>Q&ºo\m`ïj¤µôX…8a™ŠÊ#Õ)“ÕWnM¯àI¸•–ÛV©N™~hÿ­˜öÇ"A6»µ×qèÖ¥ªø“ç»$&­Ñžs%º´*Ío¦êÌÓ‘Š’ ÙªóשOVVVVQYwÁùˆúÊ5Xåü+'6i­7L bœ©4Ñ}•ÆT•ÉSVì8ZÈ©2Y6ƒÎ’M­žt¦I“ýóȸ„[ºuɼ=Ö‚ÚRËí«¦ªLÒ\q «B˜ék2{ÆÂMëªLW;sÙq“ÎŒIó‡•rÂ:·s»fªª¨ÌT·t”È8§tu46ê¯Òš=uæ\ëÐt¼â]8°cÒ¤Iª³t\âŠR½OMFÍT™u&Üa‰ÊÌ «µ—n8—ï¾\m†ŠŠÊê½fÅ¥‰+fáÞ)¯Xo¨«©i‰kàUÚ[?u²Êdµ¥âäŠÊ½óg-Ýe¤­6cú\ Ô§©× ëL,, ëLý™nžÍ1Î$â&Æ'¤'¥ÚŸß;eò‚Ð .:ÓV›x'^Se¾sn¥TƱ5X»d§yFŒ†º^5¢[𷙆ú†¥K4/G—P«détïLâ*£¥s{fÕÄÚ«ªo¬j.iÉÆ=»/¾²qÎ 3t¦‚ÒpÉ3Žù¥—G®Ò˜{Ø%&ÉÛ\kíÁòÊâÍ:3¬ “Ü 5—EgZª¬¼ýTxinزùÓ_‰Jò>1cþʰÜÒØó{••5;œÉùÈÊ Ç¼Ûû¶ÔhL1 .´×_µ×&(ÎÍxêÔ©+z%:Q]¼==Úyá‚…1yüHç#“'Mž9 ™9Sm…Ofa8åL’œuÓ¦ï¼UY“¹ÃÂMGrÜ.PÎãÓuuggR(êÏê-ßbîqaïBÍÝþA7,Ú`t%ÅÇdú u§¤âóÆ«gk®ÏÊÐ[[Âã¦mÔRÛw1«ø‹»´çÍ›½ét æêÉ™âÜg-ÔM®¬Ïv2îÜΔd3c®¶kB¶Õ¾µ›Ö©LÓ/­ÕÄ/›«:mŽVxzꊅӧL™bÃ)K÷QŸ¯W$BgbžÍµÃ8“(cŤF>éBqÙÑm‹Öì·-J÷]8Al!³­ÎΔí¥9w–mh¾¿Õ&µ{+ëy®—-/zƧùÞq¦UÛlÆ™’ýOÌY°>¶’WYà9oÒ·¼’®ÎTgdd›Wâjåëà–¤l]‰›W™«¡žSŸÑƒ3ÉëËï\£Š»©:{ÿ)G‘”{O;S½õAÝI**“¦LÝ|ô2_¡p?¶d²Ê4g{Ú™Â:«½ë§*+/XºB}ÊÜ )%åQÖs§)/^¹sõÒ™µ¹;uu&ORž4sÉ¥¹¼òéu¦ŒŒ ,iÉÉÉyyyeeeÕÕÕµµµX%pYXXzï.˜ßO;¬3ýK‘Ë„P$nï=ÌÒOéΙÄO$aä2)þ!éÑšdR1ù7•ËE¸˜çH„BòO,—ËDø÷`â\¸*ºï?™‹\L&ȵRÙÅYV˜í¬9 ­Üüü­Mž¯["lïÂD¯^£H˜áà•Jš·D,­cD* ¨.ˆi÷Y(u.lrî•"ÇepM¸-Lzßär)¹ \ƒ¬}T*©„Ì#¢:rQûO® E"ÜIr bjmÔ sJÉÕÉ%äRé£ÎŒ Ϲj!µ¹*ê,I„!5Ü´BNÆñhÈ \†:“"n9™2üsP;G훜<•ÔŸO‚Ü™§¶‰…åŸóÏœI.â’/m)ļšÒÒ2ò’+••–Öð4b EwÎÔGcZJEÕWmY¢¬q Êëý ²·ïXdÈåóîñ!/GÛw¶¢»¾UUUïLXg´¶¶¶´´à/+’[·n13XX¨­íÝ'ÉO¹3‰b?AÄD“ÀÒ;¼ý6ÌÄ O3 ëª.Ÿ4ÒÔÔ\´t«oŠð~»&Ë÷w³h¿5ï ^Áö¥ë| ´X'JÒbönX¯¡¡µj‹qlNÝßìã'äß³î°MpªŸù†-gº¾­~n•iõ&i·HœËfÛ´446m6Ï®èôzj÷ÈëÒ­/.6»¼û÷ÛÆ™°ªhniIÍÈpñò²qq9u劅…ßÙ³‘ÞQQÉ ì3 –ÇëL÷¥…©}_P›ÜéT–Þà¿îL"ŽÙŽ•FEG_4;0cêœK‘˜,•ˆqWÅbòBr¹T,KÄH‘Žª¡{ù:¤\†K PŠ —IqyL _””ò"cJyX3É1uÈÌë–¸¼„Z3ýB%¬8Zsö¼ƒ¶îQa{V-š½X¿‚z “ÙæÅO×F&H©³‡[$÷H,–JÛw†[¹wúŽ“ÞµeY±ñ9b™(‘Ê:¯¤óq'»k¨k&–PozJ¨·CÛ_›¥§¹˜®¶Ì-0`¦úŠ#Ž2¹ÿô~ãjðäÔvÉ]¨\èrpÕ²ö䛪rúÀÅ2ò0ɸ„v[ŸM9SqŒ‹µ•w„ŸóÜsÉÏ:M[°:6“é´[YeY*ÝÖ"]8´v“‘ó]ƒnI«-^¨cäP'­w¶Ú¤¾x_qUä"•™'Ãò¸u©z‹ÕöØ%úž˜¾`yl)_—¼Leú¿ŒºªŒµêª]œi¯MR]iÜŠÓ®D${Ÿ0sˆŽ ]£9wË1÷ÂO uÍä2™·…žÖ’ýÞ^î›ÏßfîÑÑ`#——ܶnæäɪZ‹.„e(…ç©Ù'•q£ÎÏÐÞVÉ+Ù±PmƒñÅÈ@Ï]‡-Šy\×C«—¼(­É\2k®áÉ+.§f«¨ùçå£3©ï±++=uê>ëÈâ seå%ÉLÓ×]ΤPd­V™ížš³Y{Á¶ç>AÑ^—F¹n;x<)=GÀçXZÙqKâÙøßj™_ãy&,#óÒÁc®‘‘—NŸðñ¶´tÑç„ÖJƒjüµçyMUÖˆäŠbÎñÍ:]œ‰‚¿tÃ’ù¤3E_ÑÖÔ^±béœS¶™z§yk,ÔL­TœÝ¹`ú\MêhVíµtko“W–äWÔ–Ÿ;´zÊÔ5™¹¯éêEû.جÝiá+SÈJ㶬Y¡µHKsí΢ºz7Ã5Ë]ªÏ‹š5]UkÉrj}«\cóvh/Ø{)JÁÍЙ:çbJ¥$É^Yyq÷ÎT>_e®Klâ"µé ´—Ðk° AgZ¼ÞøŠŒW¨«¦f꟡ÈóGg +ÎÞ´Xý¨k,æ+Is_0oALÁ¿VšúÈ™ð'ZXXˆÛº×™ZZZÎ{xèúùu±%:ôäLÖ­»ab’ÜØØÈ¬ˆ…åѹÓÎ$^­®îT±%‹Å 1/ÄÇ6(³4ÕõÔ±³—Â+8ùiÉN§[:„'Ø%[<’˜œœœžu)0¥Ðù¼u97÷È1ú²ñ´;“³3ñõ×Lœ¥×ðWU­ÖÖÆ?ú‚ØMJ®ÌÌ¿ÅÓåL¢º¢-‹go0¾Ìár}/jÍSwˆÈq6ÔY¨g”Y¿q‰êî3¡y¤3­Ï%¿fQo¼DuëùhN–Ǽ©3œ“ âÎnÙyº²"i«Þ^¯„„€S3TÔ#òIgrJÉØ»zîºc¶™I®óæÎ½—ß½3)ä¥avÓgj:Ääpj«/n]°L¿BXi¼\S}uY}…½é͇Kkc—N™qØ+µ¼4fö¼Ã}Oh¯:H:“$}Õ”)ú—ãÊRWªM½3]9¸Hs‹qf~¬®ÎÔ½çÃKÒ}ÔÕ„eT»ŸÔÓÚ°·¨´ÐäðnŸ$¦I.ñ0Û¶`­~Vme¸ó¾)“W¥‹•éA gÍž1K3°P à–îÙ}Þ;%7ÙSmòì+éFkl5甦¬˜;ëˆkXifàF½Yu…œi¡OiͽδpݾŠÚzN]Íå#Ûg/ÝYYS¸MGmÛi§Ê‚ø-[öÅ••tr¦…¶ yŒ3Õ”žÚ°Dm›EI}¥£Õ†ùZ{K˜Æª!OþÙœK`à:_ß.ªÔîãLÖ­»yþ|4V0̺XX‘<›“Ë‚œÎZ˜›Ÿ8~"«Š¯æÜc"V>ljaqÌÆ5¶ Æë ……ÿ%³}†g.Ć^ø÷9ÓÂ…„•Q•8K/Réåµ ðòø#AøÙÚbŠŒ Ìèy§¬¸BQ™¿o£ŽŠ²òdÕ…»MªDŠœ@ûS&O]°xóÊÅë .d'v8“"äìú©“TMœ’}mvÌVQV¾È> o}<ÏL¡:4é›;òégs™…AçÏTVž¿RwÅìyG½’zp&’(ëÅó&++Oš¹pÍEÿ4™\ÁÉߺ‚ìS5wÙæܶ\ëyN“êÏ´a¿YY½"©Ã™ŠxçSó&Mš±`±†ÚÌû8S–¿ÝüÉ“TÕ—è-_¤{è¯2{Ë’éÊÊË"SSô×Ì™¤©ÔLf6“ñNüNŒ‰·G:ÿŸ‚œè“z'ýNœ‰´'ÿü·ò$ ÒÆNN]$©KØàáqgÒÕmÔ×KºhxX"2+eayìL‰…Ô«ÇÆÓïL…BC" §ªpö椷PU%ðongWÚÜü—«|õêÏ¡B¥ÌìGçit&–‡‚_thó¦íÇÎUýËßëïŸ.ÌøÏ¥Km?üÐöçŸmS§¶ ôü¾£¦¦†‰=i™XÏdf¶ýòKÛĉ俹¹LâcÕ™‰Ýþ½œÛ¾ÿ¾í¯¿Ú&Onãr™ôÞ@,ã’™x¢ðx<º¸vSèŸOOÌ™ð·zÞѱ‹!ݺu&½µ&ÛÎflܾmÛ)=;»c¶¶MMMôšYX¬9z›§ö{s<‚8@´µý ‘ݳ‡NÔ¡ÿÇòØQU­'³ðÚ¨A3gÆQÉ÷8“XL¤§3ñû‚e)dyÓ§g}÷]uU•¨¡¡+*,i}ó}…òrbÜ8¼?!ª«‰/¾ 6ndÒÿƒ8;;3±¸z•|åbÅ B V¯&¾ÿžË™Y}þ™^~™8uЍ«#w`ùr&ý?þ@˜ßO;}äL¨´X1„††¢3ÑI=·óÊ••>>÷ë\]7l(^¹ò&6¬çmq¶Ù±Óe×®íff«ììèÅô‹Š‹é5³°<ËcEUµ èÀQ‰vZZî ‚°£R:ññÇ„ëC½O×¥xçååEDd½ùfõ™3}äLR©‹qk+1g¡­M>yDrrˆçž#Š‹©%ú >ŸÏÄž4t¦+Wˆ?$D"2.“|@Ø`)èðÊÃÄîææMB]˜?Ÿù{cÆ©©Ô¼^àêÕ«ýäÃh‰äÞ«îÿÙ;¸(®½a›û¾ß}onrsÕM,±$±÷Þ5ÆŠ½Dcï½aWн" ‚ØEPT°ƒ" ô*HGz‡Déü¿ÿ™9,ËÖÙeaW³ÏoÄ3}væÌœgÎ9sŽÊœ ož¬¬¬¨¨(t&L¿€€5×®-±·—>¬²±Y»öÍ’%W®HݵíÖÉÝzúGެ31Yjk+¸ØŠ›7Ÿ=ÎnYƒîЪ:ÔØ™1Ífœ Ã>|xm`PŠ) Àlv¶å2q"¦\™A{ΜLPè~$Òvÿ>eÁ]c¤»wŽ*‡;:¢R²²²DŸºjäL]]WqÈgâ8,·µ½uï»e ¸£¯¯Ï½­ÅPÄ™®\©ÊÍ¥w­ ^{¶Ú™|€FÏž­Gy·_v’Úó  ÀY|28ôÂôPC:_r¦Jž?×°‚4OÈÚO§"us¦wïÞ9;g5kö¾°°!ꀿ| ¿þ ¢µ‰´µaéRå{€ú#=Ÿ©R'D@4i ÓáÅë×ðË/lŸÜµÐÓ#í´ÕsdQGÔÈ™¼||ÖX[ ©ÂÊ›7?{ÆnYƒî|bÎô¿ÿ â Ýëgz‰ü­[¡´œ´_45ÏÞ5¦’ïÓÒ¦1Çlž‘AÞ¤¦² ©BÎTVæï’e/<ÁÿG:õùspt¬£3¥¦fýúë{'§zw¦ììì;ªæÍ££‚<|H*î4Øax—Ѫ‘âLÉÉðõ×ä»9!0ÆöêJoNŸ{4$À¡C$£K4R¸º’oòòè¨Ñä3ICЙÂ#"6*Ï™Ö\¿ŽÆnYƒîÈr&^jR2iÆ’—›¢Xó²œ)ÑÓó¹°35k&Þ™5R3­F±±!ŸºLb'©+&ã\zØØDÅÇ£058 `кuUbb S½Iír¦ÊÊÈü|‹k× ÷¾€3¹¸€³s)33kõê÷Ë–•–•Õ¯3•––·kGôH”´4ò5{d$­oð¤!U#Å™LMaèPRp)¦ã›6)¿¶h}&ÜQÏžâ#ÚmÓ¦õòµ#>î4õ™Älccciiž…Éû„„cW®©Âƒ®¹yTT“jÐ 2œ‰—sãÂ¥˜<^~VüÉ£Vɼ¼\Gi ÇËÃþG—‡,gŠ÷ôœ™‘1¹°prIÉüòò’Šÿýß*±MÛã;à‘#4Ü 8>ËõoÜ(ÉÉ )?P#.üQUu¿¬lÀ• Vù¦¦vòòº ãè8ëãÇåL[j‡3½_v÷®^|üŒÒ´À3£S•áLø>}íÚû>}J ê×™‚ƒ‹QŒÄFdL%{÷kk:ZßHúF¬á‘äL0s&q#±þpïÉ–SîÇø†FCÕ$%‘f $õ©1b˜UGC%‚ê¦&Î$öãJÕç3½|™Ã&WÖ¶¶ËÄ}'ï°ÔÎÎäêUv›4Èß™’’  ùµ Ag:lálezäÜ9£Ó–®]>sîܩӗŸ:œ9fdúâM³´x8”Í ˆŽ^—‘‘Âä3¥——V,^\…z$ >SgÍ¢áAÀ™aa{?~æÇÿD0Ÿô«œ4]]<$_|xJfxíÛçŠÉôÿý$Úû8Ó{<¹¤c-öY©FÎô༶6žïôCw4nØ‚´ÌYgbcZPP:“™Yܯ¿~ÈÈøÀö+‚wAyy9&`¦ødƉiii………q.Ž&%%áÃ_…©×G’=þ*¸q\ÅÛ;ý›oª"#kVÁ —ᯒŸ_–€œ¿ Ûbà^ØUpãB{IMM]§®’““Ã~“…£ø‹ØUJJJ„VaSJÑUø{\ÃÒW‰ö~`ló8ÜÝú­ç¥p<óèI|ŒE÷‚?vÑ¢’Ù³I"»<í¨¶ü½dgg?|XÖ¥KUPPÍ*B&ºŠè^p1VqŒ‚«à%ý÷¿QŒòù«à£ WÁ³Ä®“ôë¯àà@>‡dWÁ³ŠaüxMÅ®‚1¯îEpÜ#» ©pIÑU ¤¬Âß ¸¯òáÃÑUðZðWÁÈ#´ þÅé8Qå8Ó›ç·Î¿èž”Ÿm~鼓wÉ »÷Pž²9¼ÑùEFm:<‘¿ý&­ìL^xµ[ÇZ¼Ö­“Qöwé©$®\Š‹‹¥G’톨gÊN{lQWçðcÿèûÖ¦IéÙ.v{FÓ™VÕ˜››£3%‡‹àãë{ÈÂb±¥å\kk™ÃÂ+Wt-,Ü==ÃÂÂèú4(FÑòz ì½ ¹iíZ‰_"Õ5΄/ax0µœÉ¦z7Œy‡?¶ti"qõ ¦³633¾3;GªU;“€}ÿþ1wï–›IÁ˃ÔIF23e¼n×Ä™0áª!ÂÛAÕ‘ZÎÙ± ð†…DI•äL¨òóç—oß^/¿¥O°´”±q__òq{Ôf©hØ3•å%¥åâ÷(Ö™¡];Ùîæúõ¤Ž¶²ÀG ]€¾}ñzÑQI„†’ŠêÊ­¶¯&™LˆØHR/Δáyàª{Nv²ñ9‹'¶C“SnòW/–Íg:~<é8ìîÞÝef¶àÊ•¿¬¬æ\»&4̵²šåŠöùóWoÝòõó£«iÐP˜zªDЙò<N—W"ø#fÌ€ÜÜ\éùLxQÐnutèhýÁ~¨ˆu¦ß'‘N&YY¤=‚§OéhÁ·504äT±¬²’|õ¡Üjà3Õ¤xŽý쎎TSoÎÄ Ö™ôõSiz¥AƒªQ‡|&wwO7·èŒ ãÂBÆ™H}¦…µœéôiµp¦/AåÎòò—ýºÌÞ;ÁøCøÙ””GjåL––¿V;SE9—%%»&ûyÆH•mQQFN˜4ÚK–¨­3y6gZèÙt²ÿ“¬ÃÃ;—•†ìxðoºÖÌ̹îΔP‰I rK®?&- qÜ&F(<µQšzGÔ™ll`È—Ç!Î…ômee‚ƒûá e.‡x¸8Óû÷•¿üË÷áÐ!Ú‚¨ØwQz÷®õ±`} XßYµˆ:“ž,\HÃ2)( EcJ9]l!È™3¤8Ǽ«ÊJ1ð•IYð˜^èˆJQÓþæÐ™Ö­ËÔ8“5ïL999i°Y^ܾ”œÁËM¹qö莭úÏbß9Ù±tõÆÛNOuöìÒÑ=줰3¥$&z¾°ñõmãâ2º°Ð7=½Äа¼¢‚Wõ±3¼ûìÆTœ©S¥9S͇õÊGœ3!a˜ÄƒÝx¿´þøë/ÎÎÔ¸1¼OÃõF-gjÖŒ ÅEäíÜë.ÄýÙ–::9/aÂçu´çVسü^µæ…êâL˜:íØ醰j ¬ì`eûß¹EEã Þ*ýÌé NÍšu ž.,.ÎTRR9i’Àg†R©âÖÈ;þ¶ÒnŸ™ tî#Gh¸ž[UE%ˆ:ú¥‘ ËoÆ©Skyµ¤_/þ9™3‡h.GP*V­"5÷•y?äèkõŒØèªδjU–Æ™4¨ |gÂð-óŸXgJ‹¸ovÝ-'ÞG÷à(»[Ï‚óÓ#öïÛ¾qµý= Å).ÐóqÓõëOšQXx1==˜q¦+UîrÿÕÂÅe9Þ¶íÁ³üÉä'Ir¦úyîHp&†gëàChi ;“”#ùâ ²z¦–3á1BQÛ•3ÀgwlÎx{¯G$Ó%ÀÅ™***·mƒùó%^´(y OuAwÌ™ÓÃâ“p2‚%¥ÇxìßO[GÄ`¦Éã&ÛõJaa! ©QgêÒ…”ŽqgçNÒ¤*@¥Pê.z Ç^¯E°èœ€€Jò©¿?™¶m¹Vg9qB™ŸÎ©Oß)b?®T gZº4+$„M°4hP1\ê3QgŠr>{åYvÌkcö1~·¬ú=´4t‹ÏypÎÎá’âΔèéy5::úÜ9t&·ôôçŒ3-®Š[r¹§Þ²exÛ6‚{ÀŽÅt¬!É™®]ãZT¤9“¹9)*u¦£G%ÖÎP™31‰9†oÝ"Ïì{øp+€@ŒƒÃAË/–oô6| àW³ Ÿs¦éÓ‰3±gœïL“'“¶.Bu/-µÓê·´F9;ÇKËfâäL˜$XY‘ú4BµzQ‰"!r'ìlÍÛA;L}7ÀmÐ^«ÆÀ˜¦Ð´t3“\Žr7ú‰ÔÄCÐT¸$‡7nOèëõ˶Üz¸5CÈ™ðRù%‡'°·' KŠž®hˆÞ{~‚ŸÚBÛ©0u=¬ÇëµVƒqßÃ÷¡£eC6]š)9Å¿YY$óW®æ«ìì`ð`Œ]t´Ž¨O½b;%T gZ¸0[ãLÔ.ÎøòATzv~^ÖCkS=Ý“~iYÙé‰çOê޸㴟žáE wwç»O‚t¦ @O«‘ÑÑ22‚ M«ó™¶yz™ *+û5$älÖÐiï[v{¦>¸º9ÓÁþ^^³g?xà)ÙBBH«ÏjáLÊçÏÇ©žnwÊ‹ÿ×Ãq(Œdê3­\I^äQgªX¾jöìÇ!i ÀeüJq¦ÐPR÷]0½È€Œ­°Úé0Ý ¼J¡”ŸK.Uá£ Ø ‚A- …9˜CÍgoOŸ’‹Ìncþ‡Ék©×f(Ô!'#***22Ò‚Ž3„‡Å”«~b"4iR«ˆMh7ìþ¾› “=ÀCôzá²û!0 ø<œÿdì9qs#_퉳‰øûï¿ ÜbuCM2™±G¢2gÊÈȈ‹‹Ã;iîÜìÀÀ` Ô.ÎT¯¤z^½í–‘±½°0ºº>SAnîì—¦púë7¡ƒn™ÎûO;xÒŠÜÄêåL`ïð¿&æoØ€)ô­òr¦[Iδf YE-œé+œÀ¼fûŒÑ×Oض-!ëáïð ãLxœBý¾ñ‰ßmšRŸõ..L«†R V­š6 ˜|&Ò¸²œ ¯Õ×_Ó8…Iìkxýü6†B`°×^<˜ôÚݯðë˜ L΀©)ŒG£ îˆKŠ˜@(ª×ZÚêÐß{¬­­é8›i$)[V,xF›5#Ýå²øƒgè<û‚¯ô녦뎡ãïð{$aLÀ‰çÏ“ àôçÞ8(mÊjYŸÀŸap—(r¼Wc” ñôôDgš2%õùó—n4¨¹¹¹4ŽªÆ™HÙ¾WfgW;S…»{U@›>`ø¿íÚ%y¸­rúÜ™~¹¤8S=|±-Ë™îB‚sÈîoßâø&£IŠ3aÒ¥«KGë ‰Î4kI ˆ3¸AÀS÷z놲UKð€ŸW 21¸-øŒ¼“gš7Ø´I¹…IôªÊr¦6mÀÑHÉ΄K@ \*¡Ò¬€Á¡÷¤'’!y*LíÝÃ!GW¯®é[ƒcF–ÿþ·~?_WŸÌ ¡²9¼¿ðö•×ÆŽ…Ë—Éõ²ûæÐ|/ì-®9Eh·s`N'è!•UU‘×®¥³8‚çò‡ (ˆŽÖõ¹4bD1gÊñ´»¨'‰Ó)t®°esZZégÒ &¨—3ÏKçéõ(/¯8¶6!- 7,[æïþ9=âAG°Ÿ °œþ’èLC˜šÂJE–3o3¼Aÿ@lˆ"Î$ö[dt&|*MJGë ‰Î´};üßÿ1Îô à9À~æïkRkIO€¥ ÕW`ò™z H0ë3ð©GZ(‚I ÚŒòàèLÇŽÉòñQº3á Ø°¹â4œþ¾Cm­/,ðq#lü~öÏþýI÷û,¸SŽ)b·np÷. ×lÝu@ЙðÜãå]·ŽŽr‡ôé»´òœû¾½—$ÕÇ—D ”l‡í-*[¸T¼øýw¸z•NçÎðáäy£0*²‘Påðx<Ñ誘3eÙ;~—óöötyxýÚ5;‡ÇÞÞ®‡´Ï%иÂ:Óøñé®®gÒ ¨›3•¤§oldXVV1¹©;´jËþ÷mhûÁ)‘- Ñ ªî‚{íÇ•*©âÀ÷ÛààäÉå§àè_¤ƒV@mÙ0`'yJ#êåL îøÁr<”p×¶i9׎^S>e:iLß™þ÷!#ƒTâLiÒäý[·5ðšïL¶Øá³,PîÎtå*ü{p`ËŠ6.R;°“BT„ƒß•þôåWUüìN͟O:2«?Ôó»¹âbR.†Y^nÜ€ þ©¤í#xD'É jñžü=Ë~øï÷¥[=oëV®#êóÝœ`||s¦¼w1±™$qmßÖƒ†[¶î~›“ž’!oM֙ƌÉÐ8“5Aíœ)+ýdoíòrßÉM_ÀOÍ x.€ÖK£QÑ{û¤$¼‹`s;€ê.=CBHF9¢2gJ pØPEj1C)mÄ8ÓÜŠŠRÔ¤ Èò*q&tŽ¥KI@¬3©„½Ë ~4¼tÑj‰bdrþü𢱣VÓe¾3}ÿ=x{“€ œi+l_Ù³'¼}÷ãü’’üŠŠ$Ÿ Òñä’UjÃÑ™ª ê¸ûë¯:'<Ï•7ÇBr(ßáoû?-ÓKH!½žÊ±cL”©7ð—Òªt&¼{ºv…Gòk‘ç¿:$<Í’ØâJÊKöG_ÿ¢iÞëRy·sî±=¥ &™LˆØèª˜3徸yf¿Å›ä$û‡·lÛ¹}Û¡äEjβÎôÇ™..gÒ ¨™3)É^wa̲òò¦aæ]à†50 ¼h2=àN_¸k¿iS @?ØÎô€ù­¤IP±3Èeœ)Ž~É$€ã óV¯Æ—ÈR¦ùAg}¥{ùRY]BÔr¦µkijÌ:S³fððamgbЦ–L€œß½ŸŽèÛ¹ÀûRâÄG°>»Š œi#lY¹c|xŽ_1YwCw층w/Æs€³xþ™-ÕÀÅ™**+îÃýoßõù¶uQt4]QaÌÎW}5¯Sy·d u®qG³ɧsõ—zªCpAgÊÎ&½oËn V”›§ðô»ÌÎ_7û#ÏŠ¢$$$\³†o†ÿRÑ!˜¯78óà±=¥ô˜÷YÖG‚<.64q™ÉU] é IDATd:)@µ3e<~ìA“, TŠš9Ó%ùwnëLõòª(*ÚŽ >ëL˜”NÁZ/^Œ¸Í|•Žì(kPgÂÄÛÆ†a¨åLÈIGGm€ã¤>ÓŒ_˜œ§FC«ªt¨:¿25‡š¯Òê†4gBBCÅ9éoN«e0Ž‘êLµ?›«/gŠŠ¢%}ËæìºhCî2ºÅHª}Ÿ>ñ;¢<éˆéìž‹3…U†µ€§ËÌ~ü©ªŽ=¨àµ]¾æ/-ý³jÎhÍ#…³\yý~ù¥>¾ûT;)&†ä{Òû‹ÑÝZŸ¨:ùsÛʧOéD…Y¿,®XRµt8 mjK >>СƒÒ>Sgs&^\ðÓC»÷X„¾:}H÷À)«w¹ò5Fƒ7ª———‹‹ [6çääI“, TŠÚ9SÉÒRÃÅ‹+Þ¿¿@ZZö¹qÑ™P“ª*·l1(:¤*5ßÌЙ*jœ S}L\• ¾÷8Pµ„Îtò$,ZÄŒ0;SÕ¾}•ÉÉUÄ™JP:ª¦M« ¸YUõ’™ûé;Sp0)“à;.|ó ÿk±grt$mæ ¢Î´j%^ˆeꀣ3}¬¬Ü^Y¹ )A¦3¥•§õ¨ì± 6U1媧NÑããG9ŒIsA}¡ïZX›™#æÅ],‘‘Ä™Ð!ë‰45è8„ÁïšjîÝ#ãr'rðÄ®„•x½ðÒ×§Ó#..yÔ(8~Ý–7-‡åÒ›*$.Ú·WΧŽ3Õ¤xNl÷ˆŠ9SŽÓiãë®Ïm¯šºF$äórÓãâsyò9¦L˜$DDD°Îäèøš&Y4¨õr¦Ÿ~(¹Ô¸¼ühEÅùªªTwX֌ܸŒ3-]Š)u1À —É™™èLæ :*‹™M\•Ji)èèÐ0g"ÏPLû™¶f¼yC ÁÌÌÞUVdç*ß™<ÛªâÎô‡pó¦DgÒÓ#½º+Ñ™Z¶$爡ƙ¿˜L#1δŠügÛÀ˜°­º¤dûÑ£ňHw¦ÂÒÂÙå³GUŽb[8Ä‹6m»ž‚ää@»v¤ˆ‰„ÈÖÐútùiŽe²²ˆ3½zEG•ž Rx ˆ@Ní‘#rœsš%°d c›05…Ñ£Ù9 ’˜ø ï!$bÛC{cÀW2N’{âõk:ZÐÝÕ¤x‰¸ÖCÌgJŠ u¸q㮓gVM5¦¼ô”t…ë€ÛÙyÑ$Kƒ•"Ÿ3åe§¥e¤¥e)Öä·Xj9Ó?”4iR^_QѵªJ àqMÙÓE/J zL›6õFÑ™ðu•M\1­ÅÛ^®F…|É“°Š¼ÎSþôiÝÛš‡…­}õ*þìÙÓ¤’1‹3á.ÂלÉјZñB(ìL¯Nû:]ÍY³æÃÛW¿——/Hc†ªúr&4$Z̪€3!ùxùKJòñ¸Ä‚)4d BÎt¹ôr»òv‘•ô£)øùgòû#—_Ò3ªtî4­hœòŽÊÊHÓÒ‘ë‰b¥T½Q‚esóç“^˜9b ¶m¡mмtS4ÔºtxýöíÇo¿%­Š#x½œÁù[ø6HV«Lð>îÜnߦ£u¡¬¬LMœ í†PÌ™²ìŽé¸(„¡öz#ÅÚ@gºqÇ&Y4¨ÎÄËó¸wõØ1“Àô,2úî…á©K‡ ³™™J¡Æ™?.ܲ…q&Ò¦%}ŽÔv¦3gH½ËÁƒa÷n2™ èLžž$íÈüçDz:\ºDõ‘×™ÒÓ„„\†àpâè™±V;wVí!Bδ~=¼yýú1óÔ™’ƒ¯^ų¨óä«ÉQQ1_\8§Jgúí7rfp§xdl…£g" $3δ`iK)Îú>´Yi3»r;~±ÈÛ·äWâÅTgg’WÄ“ᵕkGÃ肵é%3z4ù¹õDºÚT½á;žøH3Ü\H†äŸà'¨É£Šˆ ¥cu)Í´·ÏlÖŒKThƒöÂñzaT=|˜†ëÆL5)›ËÉÉQVÙ\î«»ÖÇE0¹x/.À~p++_šdiРRdç3%zœ4y”›—éñÄùö5£#Œ3¥$†Ü½}û©G<á‹'%%ÅsÀâL/ÚÙqq¦³g-Ÿ>] €Ã3U:Ó L¤™ìêLb‰Ÿ= 7iõ$¥fÎtlF;ÓǤ*)Ë?ÿ)·3¡ëÔƒ3¡Ü=ùjzT”€ž™õ°ªQ-gBOÑÕ%%IüÖ=¼œ˜ì0 SJt¦üƒTÆ._NÎRÛ™0²Ü½»Ÿ©Ï„sQ:ªûÔìLéYé“ÞOZPº ¸¼˜Ÿ\ed@ÇŽðü9;¦èñsçÒ0Käý¿œN%t›7“Žþ>{øÎ„¯]»rÊZ+ƒ²Ù0ÁúF)P§]lN‹€·©Paþ{xߺ#\5Å»A´€ýóC1g’MRD€‡ç«Ø¤ÌüìÔׯxZ—.ei×.œ:ùÉWS¢¢&„lÚt¦¤¤ ZAæ©gbWAØÖDãâER²Gº«ƒ31èef’O™˜vDk*r‹u¦¸wqG³Ž¶yß&³4cß™ÊÊH–”bà¡ F*€ ’ý¼êyKhÀoNL2U†¥a¥ƒw ©¾3adGéa®š4P7/Ãe<‡™I'1à 8|“ 0£F;FÃ|^Á«ЗôÃ([[ÒsÝáñxŸg[Rॽ56²ñ |qÙæß£«V]Oè÷þÍÏg:>&Y4¨¾3eçå¥dgóv"q¦`7ëGþ1y1OO¢3¹|@ÏØ+$,,,"CÎ!D©åLwï–4o^Ë™RSÉÇçÓ§K¤SêÜ\—¸…“bbÀÔÈsß2L!¾l[DœéÇkW|*si/©Q#²ÊÆtJ5œœ aÓxÒdÔ­ªªã™&?\7—‘‚Z³W[¸ÐH%‰4x3 øÄ ×É™¢¢H{܈bÎ wî2f ©EnbÂw&<p`NöãÖEEÝ*+ÔÖ~§«{¯|à—ðä ꨚ‰Z›Z/ÎäKsìäs¦Ò›7õmm3{÷.@?½L'Kp¦çïžÿ”õÓÕ÷WKJK Áë©@?,xÂ;vŽn$&CÅX3 † öß'Ò8«Hš¥Êäú ¿.T–egdddf•”‹ÿ%|g 'e†ÆA\[h{ ÄôT¢­Mž Šññ#)H­þ¡†J¨ÜÛÀ™²ìÖý¼ª‰0!]iH€zq¦„€gL.:pÈ5ð݃ëfqé™Lu½âè\''§Õ\½ziÔ¨”cǼœ5hPrr¤fñò^Ü4X°x·G¨»Ž®îáC»’²9;7{ã]»÷í;fŸ#OrqÔr¦˜˜-­Z΄¬^Îtå I[1¥Æ¿ïÖô¨¨˜óæMWÒΡÿ0Z6L>¾éKL\%Àw&‘oxˆ3uv ¥k² ¹Dr›Ùmñø˜2È>'.ÄdáêÉå5¶UUæ0­äg2öí£aéÔÑ™¶|iÖ îßv¦5lÙÎöкwÏ#±QkxòošÏ~{Ÿ:Ó¥KLîBˆ:Óƒp*‚΄gIÈ™ŠŠ„ú­¸s'lëVÃ'OVcNbu&¿@¿1ïÆLΚœÿ>ŸmŸIЙ,,`Ð ­%¾}{ ££,>|Àhœ)í¡ý¸@§J 6þýoËꃂ®]ØÖ•¬36®Ìo=ßB(ß™¼½á§Ÿd|°3æiV)¾fˆ€G®¦ Áh‹×+X\…ï Èø~1:.èhhÞ\ìý'Ÿeß)”8o'›o¼t¾ióH°Gœï£}]2³ÒÌ̭ЙbÒ3šèyÅÓ¹‚°ùL#G&êè¼vРA áLõGgÊζ 49sÆ8SçºLÛ‡˜¸úOVíL˜ã3ŒŸ¸bº.—3}ó yù€8S£êF-99Sé¾íI#X¼5¤¦àNà?`;ÔÕå:“%ΙæÌ-¦ØN&ææä#+DÔ™P=¸;“­-Y^À™Àsõ3“?àÅP˜>iâD<%UBCwçY5 õ™ž<¨íLîîH.Èý GgºvMØ™?ÿ¤Â=_ß n¸pÁH:ǃ¨3 <óã»E?zÿþ}FF.À.ƒ ãðö-|ý5ž:":8Šq&i!sñHšÜ²²²’’VApLQ0¥A7rw¯üùgRG‡ÇãñW),,dW±(±h-² Kp °{aWIL,oÑ‚t$e/‚«à\Œ]%//Ë*xZ¸ì…í½NÊ*Ù±/Í︳«àöàÂ… ì*¶¶•]ºŒ ѽ`Oîťʥ%´ ¯ »—ÈÈòÿû?r_ ®Â^;I†Ç§GsÛ¶­HN&¿…]ÿâ*x´¸Ê¥ÜKÍ YÔ‡(ÁU„öšÓ¾}ÕË—¥ì*b÷Â_·Ìß ®.¸ >q¹VÁ%Ñø…VÁê¸  NÁg/ü‹[`;SÒÙ={ž¹:Z?ô¾jpøMvÍë5/)üÔ…ë.ÏžXÚ=q½qöºÝ‘WÅ~RÇ:Óï¿'îØáM“, T Þ4vªagÒÓÛYØ™JÛÇÇÇ:8|,/7¾¿ø]ç6ÊËañb7€cvèƒã ®¶~âŠ/¡ íLeïA¿=¤[CñZòž pêÔÏ‘‡ u±QiéVÈù?(<óF*îL¨33g’€3ùù±]ï)èLÙFæ°¸ÑUX³JI²ÊJ’¡ãì\‘ô?­Àe$Xÿ5on䟆XqÎÄñàù¬azˆ««3EÜ?xvˆŸžÂô¨ÄÎÀF2¿P¿Ö­½;”™™‰I&KlLÃTÆ¿¸C´–À@²v"FB6òGÅNDðþþ;ŽÕš‹v™ÒªÒ0c),-«$qIpþ(î½[7¸{—ŒJZFʨôeØ0"8Wh)£BÙ€¤U>äÇXµIû@rgÙ¹˜Tó¹~ý:;ßyØëÌŽ²Á¿EUE= Çq8^EÞiv6inÀÍMÆÁ ²¯^­ìßgщBËWÏÁ²jNy±:±ËäåUöêvvâçŠ(vÿ²£‚™EdЍð*øWh.¦÷O5Ü)õ¢Î–ËŒŽ¿¤³qwdí"‰Ìäø¨èèôì¼üܬ˜è¨„4ñßb³Î4ztÂæÍ~4ÉÒ A¥¨31oœµ©5nðø1ŽœqrBg°ÓËmÛ"Þ¼YØ«] XèÔTm×™PÐWÐ2P_øÎÄÔ™UÄ™p={H…!²|ôìܶ-†ÇsáÅÞ„ëž<Ùuñ:¼1‡y”ïL ƒ¹v­Æ™ÒÒHCæɯ+ø9’U„œiÓ&’z qUÁs»d þ¯ 3%?x€ VUáµxÉìw|ô 9“u¨u÷ÀîoÞ½ì;…MX>~$õ¸%|C)ƒ¹sÅ”¬âŽøÑø ¼ù¾ ªö9QŠ‹aøpz^•Nƒõ7W™spïqÿˆøÔ’% ¿lÏÊ®$ГLÀ¤'ôÌ'­p‰¯×ˆL³ü`_±Bü²ÄA^¯×¤hñ`Ì­õ¯yŸksHjœÿÅGuuOÞ^^^Ñâ{ká;SïÞÒîNðZA+;°£ãâÀß´lY­xÁž=ÁÞ^ÆjûaÿQbjù°à-[÷ëÕ`—F&b¤NùL®YYVsí†S\¦Ü û±Î4fÌ»•+ƒi’¥AƒJù4œiz7¦J>¦­ÿú0ÎDÀ´•|½RwgB¾ø¢Æ™Îžeõ…:“óàr&Ô–èLä³²àà}EEGà}KðàÌ8“³âùLhÑÑõâL/_‚»3„N†Gk0ýt&«“z³ éúuÈpp&„=f•9žì…Ôu¿’ñTº˜3¹†ºúúKq&w8v,SÓ]22Huà˜:Êw*˜%AR há Ît\¼>óæ)b2ÁŸLCª†u&| ùáR˜,– ¨Ø›FÂH ÐI¸pd5É{½Þ¿‡ÆáÕ+Ú?´$2 ½Íªosöí#1±Ž× £¢P$Tyyy¢ÚTgJ<²eán“F.[»êØ‘íÝ’WšXg;6~ñâ74ÉÒ A¥|Îô?ÿÃ(Ž’' q¦9»Øþðe8&¨B ŠE¦3±î äL‚­@It¦B€#ö¤M„L7¸tà™ÇQ¿æÍ¥Î„ÆÀöŸª€3µiCô…OÝÉÙ®2esµœé·©SÓ`Öø›7ݸQ¥–ÎÄèî®L>EÈ™ømZJq&OOò9•¼³½zEzÒÀs/ UsÎv‚N’Ê›._&P5…L­mu€u&Œò-[JlÅ;B€ÜÔ"—NX±Uqý¤I#044'û[BK°ü ~ËR'Zü)ìɺP¬6ßÍ}÷c]œ)Þdqx|rjR’ý¯„€“;.$ÒY²Á{ÕÊÊÊÜÜiüøøùóÃi’¥AƒJùœ©Q#Áo²ðõ4õM\e8&çüÄU 8¾µ£gð‘èL¦ŽÈ‚ÌL¶Ÿˆ=ýŠßÄÔ|7÷àm ™£3¡ák5{HøëWQª3ù_úê+\è"@úŠßã GOгµ-W_gµj'ž 8¦_~I.¯\XY‘ª-l® ¢õT0õí=NÃi:^wwòA¤¼¹&\À_JCª†u¦òKé-R›r(Ÿ “—Á2.§ã nÜXîö.0âŒ)rÁD@»í = À€Ž×ÝëÇë긢‘DUˆ=’º8Sî3“m˯\½lùÊ]ç¼\/ëžwU¬^t¦¿þ ¿s‡&Z4¨OÍ™ ýüC¸›¸š™‘”Z9΄ ?yBéôiV$:SFF­£E 5(6–Na©v¦/àKÑ2™Î„/ã¢]K°LD2WW"=Ês¦˜Qÿø.„jÈ{ÓZëÉ¿q•™™óß ‡Øpž³3¡JÔôÈ´BÍ´ÜÃÑ™ÒÓɸ8“ÐÙSÈ™îÝÉe‘ mmñµ ²³³E³lÁö'ø‰íœ_¼à_MbÒÁ»Œ†T ëL[ñ<ÓXZ›Wðª5´æNäÀðáüþ¹¢¯OîŒn Þ‡ûßÁw¤a0†þ󟤽°ºð9×ÏÏÏIŽŽ Ï £rÃw¦¹sßÞ¹ãHS- TǧæLCfÍŠ„lmˆ#‰«Iå‰3ýþ;Iu‚‡IŠw‡iÛQî΄©5>ÈYgÚ¸‘õ$Å JÂÉ9‘Ô ’éL+ÄË‹ÖÐ*/'§÷Å_“"ÜEÝ 7ˆîøäIž÷Ê'v©|s4ˬ}Ô±ß\\F8Ljæž÷8;pß¾4Œxxjìß™ɇx‰¥ ÷#èx\2DŽdû#| Cõ@O4¯êþC‹j??\\\ž={fÆDiŒýû‹É™«„ʱ0v lá’ÉIJy3iOC.0ÖÝXRøFÁ¨m°Mô>| Ír²ÏŒÏ•:9S€Û³g‘cûN¿V¨ùc¾3Í™qû¶Æ™4¨žOÊ™0¥¬$¹ùáF¼©ï?r=ŒmJ+¦žøu€U¤²‚‰(›¸²ýáK‚u&D¬3uq$݃"Rœ Ó]~¿+Š8Ó]pú J]„WÁ[·®FsçhÃÉõçL¸Y$M76𭃾þ'÷šhÐÂðàA=ܱDg /††µúQu&dÓ¦º:ÓíÛ¢%=Š9Ó… 0j9[))!™C‰‰tT¼¹D_Ü‘Gðè'ø) „‹q§]ºë tÒÔ@ÄðT 7˜Hb`@»Â\ZCëtH§ã¸r…d5á­À¼ ßOntîí/x€ÇðCŸC¼ôýú‰É – Œ™¢‘P%ˆÍ­‹3ÅZ±z˲ù Ïl;p,%GÞr9ß™fÍŠ°·×8“zqð ûß°ÀT-œiÖ¬hÎD qH«ÅáPj‹at¦>üóî¹5Ò†Êe^nzPˆNPQãL?ÿ,-!’îL¨alEr)΄lØ@Ü FÄß÷pFJïÃÖì²<0Ü£`_ƒ9Ó“¯’]¢ðPI¶,­QÛ¶yDGÿ ðjRûW`éÕ΄?ÜÛŽ'a¾Á°¥o,óæÕœa‰íðB¹ÎdoOº&¬bÎäæFÄ%—4IÍ üõ­[ÓË"jS •Z µ¶ õŸÇ2a© ®tðTЪaËæÖ¬“™‡gc ŒÑ}î™Lžÿß~# ‰q$2¾ýO^2©ý¶€Ç3æ®5B× ïÂiÓÈKA](++5•€Ï^ .Δlª³ëιçž\ØÔ_ pîðiæÌ({û»4ÕÒ ܼyoò䘿aæŸZ8“‹Kô–-œ SbL}'AüHxMËæœiaHÈê±c‹îÝ+„ÂiÛ¨3ݺoÞ€¤WQU9Ó»ã°c$¶Dgúpì(sxµWa “þ©Ø¶¤«ˆ΄i?3D¬3¡ÄDEQgzñIJ5Y“fµ}FlØà{°¥TLô¹:üõ ¾ s-ÞAzü‹YáLóæ¤réI£„œé§ŸH@)Î4n½¬Ês¦”R±—{óœgÏ’’aÑb&D’3!ÏáùÏðs"ÔÊžÂß·j•Ü%ƒ\P7g;–ôî'„38·€y@ºìàF“ÆIß’a{Ĉ»3!^à…Çö#¼wÖ®U¼_g–ÏØ™òã|ž»ºê¬Y´á¸e®`‡sœá;Ó´iÑvvgR#Nz>n\¼Æ™yœ©4&qÝ`g6;/|ãL‡ÓÓÛ$$¬}ûö0S67:Ó™3¤‰e|²îÝKÖ „cÇH€3á3Õݽ!œÉ´ÉUàÁ»;ÇŽíf’WUÞ½#¹Jîš…ÿxVÀ™ØZY,biÊHN¦Îôö dÌÃý‘*¹p´ºÞ{á`#=(¿þàŠ„­a¾›óè¼£pDÄ™úõ£9Oûö‘CÅÎÏ-S®3µmK 7å9NÀ­>}JG¥ƒ ã™Ã„Slª'¶Á–r(£v“æìkqð`ÍS"cÕÖ™~ù…Üd‚AÑ0¶öÈ•ÉÄÒ½;­Á(¼Ë–‘K†T‘#<ªI0i¹#j×kútú"£¢‘P%ˆ-J®‹3åXïÛtÓåæ¼¿æ­Ù¸/VÎ|¦7oÞØÛÛÛØØøùŽ1vlØ¥K5-djP9 ¾92ÒÜü*ÿÛ-wÓ¬Ê%66VoÏžccÆ/Ztîøñ‹/^¾|ÙÜÜÜ‚b£F–ff4Ìrø°¥¶¶¥å´uë.µùBÏdÓ¿ç6kinni¹ÛÒRoøp ‹_XZž³ìÞÝ7òÅ–.µðï”)–é|öîµÔÓ£á;È–û÷'á¾}ñÏ¥K–“&Y’Usç,ÿüÓrð`66¶\¼˜øŒM¸Ž– î9}ÚrÑ"üçN˃› ,W­²\ÐȲ[·ÍŽZnúbÖ¬‰—.m°ìÑŠ]– «KdéRK¢A ¿ÿN—/“Ó‚ûâïeÐ ò÷ÌË –-«^ƒ=Ú>}jþ²ôêEþ®Yc¹y³å¦M–óç[jÙ³§¥¡!Ù,²u«åÑ#––ì%ØhÙ½Åù.½¦5šlyy•¥åfËž_“k¹œÌ2Ülù®2’,È?˜~ýHOøÔ©dT_ßrÏf†% 4nL#™UXþøâäö²VŸp˹sI12"Ƹ}–ᄈܲ…Ö­#Ë€i³b΄`šºs' KçÃ8´‡ îàÞZD“ÜÓÌÍ%æZ}àuA‹þòKaÅu§ïà»LȤãò°e Éå^¯!Cèˈ¼xƒw+h%ôA[›J\ÍgB]œ)îÌ®“fºK¶žwrþ^ع±±¸Ùsçx‰‰ÌÄ9sÈßÉ“Éß)SÈ_--òׂgkË»y“wò$ÏÌŒ7x0ïí[²YÄÁççGȼ7Î<ÏïxA?óx{““ýWµÁ“š—7ÿáà ?6bWYJ–dæèQ^F lÙ»pð ?zDš7'—ã³f Hˆ^ÖÛdtÖ,ò7!wä ‘‘ôÀX¦O'ñBŒͳ³#a++²Œøú®°3ÙØž=¸¼ügeA“&Û[©–O)”þl¦ó™j< »ÊW­;)êÔÖ@b"©QÄÏ;°Û #Wá²9âL¿ÿþöÂ…k4ÕÒ jLMmFŒˆ<8å‰NúÛ rgR´lOê[éu¥pÅðæž<™Ì$e8+W‘‡ÙÛ·d\_ŸüdÞ¼šÃW¯jzp`ËææÌ!aggˆ‹«U67…t„B’ÓìlòV+TIXfÙ®ÂÖS}ñbqç«Úºxtºè÷‡…Ïžþ§QazZiu Å_k½iÉø«¬¬è("Z6·`ù«pÙû¾Ì/›{ò¤¦‘æ{÷HE¨iÓ@O÷‹g˽çÈÈH­ÜÜî>>û¶ò\…ù‰-›36&…¡‚à:üOÙ²¹e´K8ŠÌ²¹´4r`ü(Á_á5BÅPvÙHŠç¸|V…±¬uk‰v%3-ÄkÜ Ö’Á]·oO~ºrÁ_JCª £À¯¿Öò 'pjíD?LãHH9i\ª4á-Õ¸1¹{2ùsó!ð;ø. Âè8S££³ ÿÉ‹š"6’(æLy©Ñoü >žž¾‘‘!xËÑ9rÂw¦‘##ÏŸ×8“ºpüøí!C¢Ñ™Î³¦“þ6|²ÎÄ$®`ï¦çy`ê3Ip&Qj>£t¦ôt¢\œI°R3‹Lg⯒ñâÔ¢mL}&ÓÔ?ùùeܹ»›3½T¢3‰¢Rgºßhò™3¤+2ÒvÓÂ3оv}¦Oß™0"`¢Îå›ÿ;hìKQQ‘”|&¤ŠÇÂØM°‰_‰è÷ß“ìåR@>7U1wï’*¼&&&7o’MþkKTô…¾Ç©§SÐqÝÜ訪©tÇ£7‰”@‰h­…µüë…O&Žc©ôHÒ`àMAC(æL9/lÎnßV͆KÏQ¼8q¦#"ÍÌþvɳڲ~½ëСèL1††·è¤¿ Ÿ¸3ø3ßÍ ÖŽŠXS\¼à*N[µ*’§Až>@íÆ¸YøÎtìi™ïL*ˆ ÃÌTg‚l'>3ûÃvؘÐ(#ÃoÃ386MØ™Dw!ĉbœ OÔ¡C––UõçL p ¹ëLîîТQ ]áâLxñ˜ÕÛ™pÚ Aäƒ8锕‘fGñäI÷"39t÷à‡l Õ¡ ýu­ö%”‚~POܼyóäIø™Oái;h'W›L¢ŒMÚ|’^ÖaÃjâT.÷ö$ðßoá[Á,±fÍÈ«0>| ±*æLù<^^ ¹9÷/œñʪS}¦áã4Τ&XX\™0!täÈHt¦Ã‡èÔ¿ Ÿ3U½¼_VvŠé—¬`@XIÉ$p9o’NQEá;Ó¢EÄQêÏ™ðåžÿµ]Å ^ÞJ~ÔòÙ#g¸ßÈÒx©»û®ÿ~]–ãŽñ'Þ§OiƒLg²³#‰6ëLûö‘Ú­,ë×[Zps&”t#9 wìæ6#6vÆ©S¡¸Éؘ*ëFŒ®!èLøc·Öª CøÔœ 9tˆžZ)¤¤ì(þ/…KþATM);a'?ë¢sgrú•‹š¤ÊÈ7ñ^AáfÁ_­@›L¢ ÄAÃ’ÈÈ ×‹Ÿ¥Ø9©„ʹ0w¬ã·Õ4dmœ_1Ô$“ {$Š9/-9!–OTÔYcƒ9¿›Ã{ÕÊÊêòåˬ3 }îœ Mµ4¨¼#FDâE4(VW׉NýÛð8¸ß0bûr@Oú¯Þoc½®”¾wÇÔ•]ª%%¤§6TŸ;0]­•)"Ö™V¬ ® ˜3áÁWT]°€9¼¸ O.ÁýSfÇÖ¦¦Ì)--7Ž™sˆ3ݽ ß}Gþ¾yÃN•›°ïÝKöÂÂÝ™æÏ__®Î„GyàT¡ „ áö –âÎ32ÊïœCk`>wÂ³Š¯ª[¶0« €¿÷Âò‰8zõþ#œ_&„—´hQ] *Ü—ñ<ÌhÁ3$%ïJ1¸·y]ßX[ßœ=›|¢Ïâ ®?¹ H– Åþû_-‘bdoÓ†D%Œ 4$'îàÞZò³šð&;|˜ *BÞçX<ËÎp×T>þyÆÆ]¡¢¹š|¦¡C£MM5Τœ8a—/Ê!1[¶<¥S?),,,Ïœ¹adt ЩÜP#gZ»¶0+Kg*zäzïž®µuyn.¦¤O´“ëvéî.}ûv"±¸¸&bDÓK±Îtû6IëâL˜ºúø0³àÅhxà7¬«LÿQYD ³˜jKøsçg5  ®U$̙Ǝe:[|]Ç_ƒXY->¼27WÏÕÕàé˜+6–ä~‰æ3!l]3O#†ùù ,êçLxú¥·=Jت;ePÖúœ†Óì(:çæÍlð3äÊ•›ÑØÖJ¡tL̳Q¼^¿ýVóT˹s¤lŽƒÄÊ *†ÃðCpˆÕׇ%KØàgˆbΤ4øÎ4dH´‰ÉušjiP)»v=><ŠÍü[±ÂNý¤04´íß?nРX ˆ32²¥38 FÎ4sfaa¡BùLîÚÚ˜tn'mCO21äRbÌÆœœvÁäcò sí/[>~$mj‹>>ëÝ™’^@Ütx;ÑÔSÜÆ6ððöëëWz“Ì ¤KáŸ,‰cLjÐ(Ë™òóÉ®&~£µœ)ˆ/ž‡…m+.þWJJ ®Ê08Ó_°#Â:žLÖÌø9¦BEEªu&¼ŒãƉùæ’Kß¾2ú9áñx\ò™Gpü~a{ Ã«¡$3S‘vêsó›:ÐÍ@lMâ€s›ë’)/'%Ãl³µ’=º&B!uéƒïô$EÂ&O\¬êãL1gÏjœI-øë/ï#ˆ39w®7úI¡¯ðàü 8 +W­¬ÏÆ™X=` ‰ áɺŒ„Óñ~˜¬• ÇpøiÔ(Z´T΄ÏÇž=áúÖ˜˜Ùîî³ìÈçSp'%eîÇ¢YPÂô·Îý+èRwäEøÎ„^ÈfùHq¦èhÒ]ߙŋÉ_„ÿ}Q-gBÐ󦡛^½Z•—7©ªJÙ2¶©Î´{7éf;g²³#’„‡ÍÁw&ÄÀ€¤²üªÊB$%AË–$&J€†dQ…Ý ›«Û­›’›µÄßKCªæÂ…›ß|C®g”iÖF¨îܺΘ™‘ΠùQFˆœRè-ø)m]¾%,†âÐÃŒ1Œoh…›hÂ'G±®oÄv&£FÎdl|“¦ZT‡…Ŷ`ަM ¤38cjj£ò–07lpÅÅþü9zz÷é |ò΄ IÀÛ·³³uI®9! Ñ¥ÝTæùHWLñp„I\¥Ó¹3ùš ‘×™ø=ÁÉt&d\W(:cj «'à‘y1u°Ö:8T1uN&cb‚6Ä.+)΄©:["Å™Aƒät&$à N.(x`­«{ˆÉÞ›±á˜$ÒEDA•äL§N9Ý.v&ö„³¨Â™Ð7&×P,h6Ý»KœË‚Û§!\‡ë-¡%ʓӋ±BuID¶ˆê ##‡¯¾"÷D ¶‚VÁ$'X9`Á-Kê¬÷ñcÒødž@ÃWu<'Žàøü”9ÞÞäz)œ‘§&•™±Ñµ.Δ`¶w÷öíL›ÛçÕçE>¿þ2,=ï]ð~}]óÇabë; :“Áßî³v5äô雃Ų¶ÃäÉAææWèºsÛÎÎîêÕ«ºûFÖv¦ôwA‡¶®¼ë“üÒáÒ‹ˆ˜‹z'ÃÄ5{)XŸéøñÛ4ÕÒ :tuó™´´BäÊ4:sæFÿþñþéKÇ9ƒZ³|¹©–'†òˆ‘›7ËQ“]-œÉÓ3zݺŒ©Sq¦›½g‘êJ3Èþ£Õ–͈ßoo ¼>@ 3*!gÒš®gâ׿aÁÞëÀw”á’x`x7 N ¢šØ3ˉìEt¦¯¿¦aÖ™FL©OgbÁQú`èÂö±«àÙ–¿²dɧåLzz€Â-š¢áEnÞ<=騲0ã^Ð+!¥Ó`¼°Ÿ%ëÖ…Ž QUÑÍ¡y©§40v8@n5Ñì¼ÈíÛÃÇtTY\‚K SFnY‹ÊáçS¤.ΔáãþÒáÜ‘ã¯ÛgÊM»sÙä‰ÕQt¦ûÖ&Éé9®—vyDÓ™ÎÎÎ(×,VVVèLC†„ôï¾{·õi ªféRç!CBñаÃÈ‘§N™ÒyX±ÂiР7ƒ‡ž8aF'q`ûö†ýþ»?¯xÀ#Fñ A¡‹=¢ó8€é©*B¶3õí+ìLÉÉ`jJÃS~8Vð ¨Iy¹ÖD²…èèÊY³ð!ÊíM®áœ mŠ`ø¼:¢‚„„DìÚåQR‚ pè'“Öê¶ ( çL,ÙŒ3eüFJèÈÚÅäB‰ð©9Óë×$ AôFL}ûM8VŠ"¶£x)”@IhsãÃÝÖ­¥5û¤rõá_¯Ì›²t)ì­Ò™ËH†¥2 $Ì‹^/77RùL¨ÊQÞ uã|@gºRi…;uw§åc¦šä3‰Í­‹3ÅmÙ´Ža÷É[™yt*’ã¿kÛ¶M+þÚlhçjwÑ/!áÆÑ£Ait® l>&lèL˜pÒTKƒê˜3LJ/8œ¸:U*xHÇŽ§#"?~^ð' ÃÍžýœÎãÀ'àL/ŠI¦O§-4†8&K‡ZA”äÌ¢\;Wº3á£:6Vœ3]§ál>|è_XøëÇZ••ÝH›Ã2Agrq¡a–†v&$?!aRy9±7&%zÉ "Ôřڴ¡a¤¡œ©¼œ“±1‚&p‹‘þeê8c†Ã`ø/]‹ñ)‘bé-M5 cƯۗݚúr‰Þr‚³W/¸t‰Ž²àõÂHƒÐ¥ÆèACŠRU§áô@Ø{ÈGKK:Q^ÊÊÊäëúClt­‹3åçf%…x¸¹¸ø¤gˆIfÂÎ:û§¤½y¡½cû1Ë—b <I[ûMµ4¨ŽiÓÜ…„ãøq®9F»w_Cïa×Z¸SÖΑ#† f÷Õ§O$ŽÒÕž¥!6o¾5sæ :"ÂÁƒ— c·ÉLèĉ¯é<|úÎ$±µf¾3aòõ¶iÖ,Rë99™|ÑÇÉ™æ9Ošä °`ÔÎOI¯´N2øî,Ô¨âúõ[~u.ñ»‚δnù‹ÈáLdm¦"ÓD¼hÌw‡ø+ª;„ïL_}E§°pq&ssFøÎ„Ë;:’pý8‚ñ§ÿZ[â~š4áÔ]FfâL&d~ ßvsì¢êîJoŽ¡Ý…#`D)È-”\¸|Y8c:=¤Šæ‰ýLL^xÀkÍú/Ž  …Àx¨&Î$6ºÖÅ™²®ï[©­½ïÈÞ½«6ïOÌÈhâ ß™úõ{»q£=Mµ4¨Žqã¼ åãèQa‹±ñ™©S©oá_Ô&™™F¦cÇúð÷Õ»wäž=×è¼jÐD`ÍÇ‘#N2¡ãµÑÕ½2`@8³x0#GÒyøœ)4Ṫ×õíL¸‚gŠˆ ]Žpq¦  øæu¦aÃHè°ÍoÞfšå|P½‡µämV.Ö¯_Öÿ Œ¯ 3ñ‘Ǚ悠Ölyù¥ Ï€¸/ÊøÎdaA§°(ìLx™Ø˜PoΔ­Z‘.mXpñ Hq(—dNlƒ72Ù ;¿Ù~qùr:ªÔ¤}&Ôû.=Ê¿tüëÔ¡·©`,hÑ‚f>"xú·o'Ý›ˆ^纴Ï$ÈA8øÕ¡ãl³n €=™‘°aÈÍÍ®uq¦¤Ë‡.$çÎ眬/‡ÉÙw ‹ 3­Yã@S- ªC°&(‡_¤ó¤‚fƒžÄ_±OŸH«t“Ÿ¤­mklLGYÖ­»3`@M†Pÿþo×®­кú÷߿ߜŽW³xñC\ñСKt¼6lí(þfqÀ_Açqàp&±Èv¦´gÏÖa*}振"΄Lœ(Æ™ ¹œièPÒò¤ âÙT*%-FâÆ+bb²ãâ0Œþ$gMct¦¥Uäh9:Ó¨QÄ”ãL˜DUŽ_‰W™&ÂÿüùSN¡¶ÕØ™}ûÈÇäìGì¯_“>YŸ?gfÔñÍÅíÇË-[êÀÇܰ“ú‡tNÆä‹) ÄKÔê·â®^++8Ö/TRÛŒý‚ÓÏÔpâ+o} ±ßÜ\Õ«×'y½dRgŠÙ½xêô%KWÌ™£5sÆò+¶êœM¤³¸"X6·l™Mµ4¨ÁöºìßoAçIeÅŠû‚$X`”ÃQlÁ ÎÂØ˜›[9bDÙÀ`eÍ›WéêV}ü(qÜ)«b8Š7WQQFfœ"e/‚«àhч¢?ŸŸÿþ§ÒÅ$FqYÿJßKrr²ØUÊÊÊcc«¼¼0²%qy¶z »Œè*Æ)l!ŽŠ®òú޵7ïCú›»n¤¹Oœˆsñ„³SgºPˆéé­[PPpÆÙ™³3Ašˆd;¶töü†u&>7\òòBP,„;~‘ÎÞ½Âδ`©Ì\¿ÎôÁß·¿tÖ¬bccÉ΄Ò!Å™:WïQgb»¨« >ôi$cxñâÅ¡C‡Œ™ìß .\ºtÉŠáÊ•+ׯ_·°°°±±a§à¨©©é¤ëÆk×®átCÃk#GFýüsÙìÙ¯ÌÍmØUpœuõêUvÜ‚à*8Š³ð¯µµ5NáïÿòW¹|ù2WÁ-à_}Û~S¤ÝÝ‹à*ì2B«œ;wNÊ^p—Ý˵kÖë×{þôSU³fЮ]ѱcNußËá]ÛNX\¹tîàNýì^p®a5söû×7ïÏXšKÙ ^•²\ÆÌÌ ÀƒaGñ/®ŽSp1v™“'-ÿýmëÖe3gú˜šÖìEp<ù‚«ˆîåâÅ‹ì*¸®Ø½à(‹ô n}Ù­v¦0LêØDKƒª8q¬OagÚ²EXYDÑ×·8°Výú½=~ÜìСKüÆ |³xñC\þèÑ ýû /_³Xp×ýúE,_~ŸŽWÃÖšÂ8#¶Ü72hÝ#; 3‰ðIâ3u¦HcÖ™6m’Ç™i×®ÔÁYEÎp"+‹äË0Î$_·éË–1ݺñéñcÒœ398€+SM[9δ÷Ì™²ôôW×jëLü²¹ôôôà+5Æ4|Û¦Kד’ ¦+4$ŒÉtDxT!âbŠ‹¯jÚòæ(Ó*¨’¹ÄÞ^Æ·ŽlMùÚ„…‘l˜3gÈ5Y¾œt"ô9vŒÂKáÞ½{±Žã‹£].¸†¦Ó©ÕCq×;š·ÑÉHTTOúqFØïÓnÞ¼IC’‘y‰1¶°97’À(„—qï*h_¸6ä<;]™{ ’ùU£««+FÔèhRUëÄ ÒšùÚµ¤ƒ~« ¹¹¹oû…‡Ìs‚/‚·C9”÷óÐnÛK8kˆ‹3å8Ÿ=âœJÇòóoœ>\·úL˜š å1hhx¼Ì~øÆÐlÖ¬q¤³%³uëM¼‚‚+â€Î´zõÝñã½ Eg×.ë ³Þ#2„ ¢-_î„ËOŸ^+be3à ۲Eø[KT.Ñì+t&î­}¦Î„àä/—?^½ZúÐÚšN•ƒÞ½KýB‰3;~þÝw¤k[!”ìLH\qñªððÎ+q[8µÉÉÀÉ™ð‡±mÿ)Á™Ülž>eëµÏRgÊÌÌÄ€tgòìëF2—‘éLx„ÿéˆЮCiS·éÙÍåHüýýiH¢ÎTVcÆÀÒ¥t4-­¤C‡bÁöäE‘¹—`ò1a¾ƒéÙ‹–EÛ®zOþyf{×®¤µ{)ddd°eCR+š‚øŠÞ¡"È´™ÄÄDŒ!tD87&†Ü•x·ï\òÕ³©É üëd^>.ÎQ^^…1}î\ZŸÏ'8tˆ™M>Ÿ-Â7:"™çDÈ™ÜÀíŸWV¤H}¦l‡S†nI5­8››úf ´iɾ3a:7y²Mµ4¨+‘²¹0.e¦‹?u&ºwÊò<8dèÐà¾}k™@cüm #ƈµ¾zã‹Κ6í%ZÍÉ“ç𘷉CŸ>‘Ü¿Êü| ™qð`ù¦Mpœ81À….0]ÌÊ~w‡½{ш3!¸—†v&|é/½wo@“@$põ>âL6þHÈ™ð‰?ëéÓ Ù΄ µØËڰ΄q^®:à #Ó™$QX½ûT}{cÃØS%âu¦W¯àçŸIñ)wïÂ?Ên¨S1*¡òø£íç#Ô¥s.Y‰Á[¿g¯ªolÖn‚Mò^/.΄øù‘ï7?·Å·”¦M%ö¯§‚΄¿b:Loµ÷Ú¢E ÕO÷±_¼vë•«Ž÷ÍîÚrèœ`›–Üp¦Ð ¼hª¥AElÛv³wï(AÛà˜ÿ7nœ·±ƒh–ƒ‡JÈd A—Ò×·¤=}zØ0²ð€ᆆ5"µc‡ _ìpyƒZÍ”:t©_¿·ü ²ó…3]BŸ¯31ý¸ÁþýøÇÂ×w0¾DoÀD™‹ u… HC9ÎÔ¾½pæ ‘ÙäæVܼ©/¦ö‘œÎäæF”¢œ y[T4=.n¢ŽŽ­4g’ÄgêL~~~Š9^™#àwCçöÐ>ú•U”'OžÐP5I–.­Uo¾¨ˆ´lt^Lù’ðÏТ÷¸ì3^ÐIªæFl%ϪQ£@ëÔ‹–Ð2—|Ã!áááÒKY´µaΜZÝøàõ4¨VW“uÄËË‹;@À÷ðý¨?³Vô»¹ˆ÷+WΞ61¹åø0:UÁd†ïL˜4ŽãKS- *bÍG¡ 4¡ñãe¸¬‘i@p-…ÜûæÍ´¸íÔ)S¶rn\°­Ë•+ïñ­—ߺõ&Á £c%ôp<øÍܹÏè²PgrvΘ1CÙùL쬇Û'NŒgZYÔ0>~!À)f®4”ãLŠÂÔgò˜ãኰ Î…lgrq!_ÊåLøV+Í™#Fd$'{ã®NÉ>µµùL©.Ì ›·•uƒî—È J&/¾ý–ÄPAð†;|þøCLkhu¤*—À’¥°¬mûÊåËÉ›ÌçÇòå°qSå`lt’òÀG >u¼¼è(Ò’‰Ò¯WT¬€Á_=ûàk›âm (¾3á WÃêƒE‹‰l ‰räÈEQMQlÀ½ó›Ð×·dó“p㺺5Í Ìšõ\0ûJ¨_mm[¡æØ_æè²PgŠŽÎ˜9SÙΔ°U`Âþýñ: "츥¥•ŠÉ²ø†ªk#‡3!ø’nm­DgzÿžÔW°° -kË•/Û™ðµQ#ùœéÃYÎd{àöm ÓÙ³åÌ\‘éLB|"ΤX›–,ººD›¬«lºA7Qü:‘Á¶VTÍíÛ¤Ñb¸wï qcÚ²‘‰ƒ¸&Ð$ 0ºeKÀ·>:UÕ(·¾ãÇIîííªÛ¡³\YM2#áÝ»äGôzef’gLR]ûÍ£ðÛ´L€„ïà;¿òÀ~9SRRRPP‡‡:ÓàÁÁ8 ```xJƒê˜9óÙ AäZC†g*.† ÀÛ›ÔtFêìLÈÚµ${Ÿ˜rõš.Ÿ38@þÖÕ™qC±±$10ž=[ÎÂ9ÅœiÎ’7¢ÆÎ„@Còƒ‘hèPÈ«Ìoíìˆâ× ü½4Ää'-^ŒîBG…5Šä™*‘r(_ çÁ<·—ñ-[–éè(ð9F½€ORŽŽÐ£|¨úø+üz ˜ûŽøÄ“þ¬Ãº|¹Äþ §M#¹ƒJ®•P¹V΂Y™U-Z@D„Šœ ïÒÄÄD¼i}}û÷÷ÇaÐ ŸŽÒ "<%“FùG[Óc{÷î´xYYEbuóæHg qî©J¥Äâžhˆþ~ô·?|Ÿ½}—IüGˆ§ bìÒݱW'ð¸~",ŒdÑal²«ŽÐ1Ÿs›j±¯ï»ì*å|£É´k/$T³° n-w B!*+R_ÙiïÜù04/b[Ckp 'U1U]6Çw¦}1E¤ —†MeìXW¾dðTº8¦O§r£”aÀ?T4ô›ñ㟱Spã3gÞe÷¥§wã aðð¦Nufç"¸–؃2Ä‹£‘«‘3edÔ›3JJ@O´Ø4`@ÓE 2êí[èh Ô3Õ¹‹:9S«Vt\YÎtä" ¼*“fΞ"PÝé—L>SgJ ÷¶´½uÌà¾)Zf&üóŸÄ]Ò íøå6éˆPQ*ËBßä]9z® ŒD ´1ŒÛbñ÷')¥¸dlã*¡òὈÎ+ ¬n=ÇP¥ç§V¿¾{í‰Ò>âËÊ‚/¿$ \eA^/[¨îN@*ù‘ng,®5z$¥¿b|Øüðy|‰] oô:3ç¦ZÜz›šZQY¥:#`D”yxÎij³ÕÈ™üöí;F. ÎþýG~ÿý%_2øC¯^Á»wÒ…Ä1b„‡©OŸ “hÏC‡¾f§àÆÑ„Ø}¡½õéC# @âÇœ!C¼Å ª˜Æ™„` ÓÖôt-t€gS[§¤ 4íc—B¼3­[×ÀΔž~˜{Ë–bœÉÛ›ô𯇋3>M¿lf‰+ÄcfÏfÃÓØÿdóúµÓ‚[Ÿ3•f9Úß¼ëh¤·ÕÚòÜÚG£räþ‚µiSÒC0‚ÉØ0¦@£¥yÉv¶7ž‘FƒÒÞ<³~U°qcM3?¢|üHNêPa ¡´z$“ä–íÛÞ½«.Ÿ¿rý¶—Ü¿Dù||yÝ<0IiùLùùк5ªŽÃñ^ÐKfŸzeÒêìµ±4Y»åTbD¯Þ¹“ÄtIÊ bÀ"ŸEÊGÖ»ÇZš?âàú´xFž¤´±_?Œ‡jãLlM¸448ûöÕhŠàлw°`á—îÙ3Th•º ¨h;wcLÀ;hð`ovw»v÷êÂ_˜ð·o?ÃLâ¦wï Ž¹˜gÂWvÔ†9s //&+Ëà”™Ù»œœ¿òòº’B|q¸»m„YЙ^¿nHgZ¾üÀ‘©SËð0UÚe#Æ™< @>èL]ºÔJ6E)&î0Ÿ8ÉçL·}|ngg[’–9ãô¯Y :þ–ýûÕ+Ÿ©ªª‚ÄáÊÌŒŒ²ü¸“†÷>HÌâ(.&oùlSí9ÓZ>àžoǧªŠ¹›Ê_=»e}ãey%)­0€ÀIañbòe»R8 ‡GÀˆR¦üäÉŒ±SÀÜÂêÖs’µ«JÊ ]­=B”¨n ûö%­ë#ÙÝÚÝ™µÝI<ÉN 9nô°D¡ ÂgÏÒQ±lÚD*<Õ…Üdk—à¬Ô7³lG!lAðùóä#J¼AèýSÊœ “F]Ý4áÒÐà ¦{±ÉæÍft!vî<ݽû¡Uê2àîÖ¬1GKT1 ³µ‘6l¸Èw)þЧOдiN8WW÷¤¤ƒéÙ3„c.æ§êL[¶Ûî-ggB$él@¾F/èôüùÁÇ+ýüD:B©†/fŠ8:‡fW¤R~ôhо}ûñ%¶úW®cÿ“'gª8ª4gBRž>MINΤcÜÏ™rsIž!ëLüüCT^6‡»€éVÖ/ˆ}ÆŽ…Ë—I¸ ªöÂÞ?à2âÍrSYRxvߦ{t^ ‰¬øö[ˆˆ ³Ä‚1¥C%TiBuø¾wwvtÍøc°û¡£Ç’Ki³J‰|H ÐÞ¬­½u›¡½7TgðRãMjhHÂx½öÃ~”.׫¬ ÞêÆ+IËá׺5)0•£GðÛo$cRaª*KÜ®ŸÝ°{ë7¾} Ù‰;w’w65r&¦ÞÌIšpihpPXÅ–j¡‘¬_‰.$ŠW{ôP²3Ík¿lÙ5AgêÞ=ŒK–؈æ3áÀfRnÝj‚K ÍbÜÚž=ÒJù|ªÎ„Iݱcä­YgÊŠšâë;%88ñÉ“µ©“3)í/NžÔX«¥…ÉÌGô<<ŒX:_ªv&ÈÉqËÍÅãD§áj Ä™ú2„Èt&_®ÕÞ™02ÓüTTü¶Ù $Ò›BÓy²îá÷FâìLŠr¤ÿh4ª6mj59­&`2ñk¯£š›sê ®a(»@yà)]²„”{²ð€× š½Ùeœ¥<ë^¼ ö%U>c‰Ž&UÐÞ¼¡£ sºüt_èË¿^³gT™3½}ûÖÙÙùöíÛ|gÂÄrï^iu5Ô+::x ø’ÁЙV¯¶  ‰0mšsß¾J«Ì„ªó˜1Ï'Mz„ûåODÒÖ6ÅÝMêÜ»wÍtþ€7o6Ãã”$p={†°[ɧêL,˜Rru¦L€cl>ÀOW¯®Æ÷(€8Lš$±Ÿ&ñΔšJ³¸DQ¦3¡¦ãL®û¦Û·—ð?[«Î‘€ªÉà6sYÊ™Šbœ¤„8Ó;þlœ‰ÇãqŠÆؽæÍ«©È²vL…©Še5áOfkÖÀªUlP"ä‹OÁø¢¥Pú üb5cºîî®FÎ$³ƒ6yÙ»—x?Bí‡ýãa|‰¬×|èI‰„»v‰Úµ(.&ù‚ìͪ0ÅPÜ º™CM˱}ûÂýûªs&¼y¸¸8Ag’^×XC½²g!Š_2øJÌÒ¥Öt¡Ú8pýFhùºú Õ¬BZ¶ìîqäHñõÍñ §O¿?ož i ={†®]kζtþ6Îôàƒ”•¡ˆ<›2ßÿ*˜Æµa’Ä¢9 Î$e:S 0Ï/æqú‚ieÊ_(™zÛ‘(2d ¨Ú™ð ëèíaœI ¦y-® 6+:û_÷I‹Š,Ÿ‹3ÕSS’7Ã/#c?Ú p ´”È-‡/º0æcj­0UPeF½ ßðp×ÿúWÕÓ§oÍÍÚsÿ¼¸t Fެ¹^‰Ø šù‚„‹'™=Aµ»L‹…ùfJa² ë7øÍ‚4?AÁôÔôÑÆÆ†NR5 ìG‰ÊãÉòeÿz!»`×X+=k0//wt¤6))¤TRKZ‚ØÛ“*M ǵÈé ]fäGW¾úŠô±£^ÎÄ~ý¤A%¬_I’3ñ›G‚)Ο¯S—¡K—·Ýº… Mœ0á©®î ¡‰‚CÏž¡bËÙ­kÆŒ{ô¸¥òi;&®˜ªp%’éc®&.3™¼šqr&|ný÷¿4,…ˆÒ¨Ž’‰ÇIIøº{ÎÇg3ÉG— q¦ÂBÒ¢3Kƒ×gb^€Ïû_˜3¿Àà2ÀLU33ÙG<-gü,IRZÈ??Ò˜aÀçðáÞZ¿‚Wtœ3쑸»gÂäP&xñ¿ü’D"Å8g:A§bˆúú5)?Âߢ>esxõiHIDF’ºG‚=œDCôÏð³)­–ˆ”øê1!¼SdG:P¸U-´ÛöÐ>¿¢¦ÎòÎ…¿E½œiÛ6špihp–/·’äLZZéB‡íØq†_™zóæsbW©ãЭ[˜hUîÑ£Ýví2–bEýúüúk¬ÐDþзoM#OÒù;9+’M² µw&ãL¤e(.EÄ™~©¥¨3••‘¯Ag¢Í*TS'gº¯ñ÷ï›:;ãI¶e>÷c“ o€.19hÔˆM]ª©_BMKzýô ÷R—|&ôÆ&MÈ7‚|* bÌû˜¦äLj’±1×lÙ¼<øåÚÒ¼°™LÖP«HéömèߟäÁ¨3å žYe€¿ï~˜7ï–$g5Ê]æÀ#C†x à»aÃE]¸Ð¶>œIì€ûݼÙLŠ3ÉFŽ|Éþ é|Ú΄oâøP©ÕÎt`9“ºÇ±ãˆú8š‡›ÛòW¯tfÌýr,Û™DñôþX¹NÎDb„ÇwïVTœ˜ °oË|þ.a ÇTeù²eÅÅF(ì ¬ÿÔ ³Ù§àLEEEuq&<´¯¾ªÉ}c‰˜&ÐěاàÏÇ¿xROb'È ´”ÔÍ;(½Sf \€ Ý¡»Pç!gÏÂøñ¤6žú8Sž Ý(‰Ÿ~"94‚ÄC|3hæ.t\Œ¥’"áüù ¯OÃÒÁ‹wï^:*×àZè’ ¹xSÐIL:£G“w«zq¦ÌØ sv/“Þ»þê¾¹£w ñ^ãÈ\:W!g’Ò†úFÒ'iýú èË.³u« [Ó—œ3çöÈ‘îhT‚ ×ßзoÀêÕ’ªxsø=ÙIçÓv&d÷nPÆ™6áû3†¯L€ 6Îäà»`—&'/¬0!EœI”:9Ð  £§g¡»»@7“­UU­½¼2ض’¯\Yúþ}ÍÇÞŸ¥3Õ}ã]»ÂÓ§4ÌRkaí$˜$³™iAðHPƒ¾ûN8{Q xc͘A¼M.ò ¯´p„Z‘ oå]»`©=¨FÎTÇ’S±àœ]íþ”+¡rl c%]/I:<ó­Z‡´b½Z8@eò^¯÷ð¾´»N>Ȩ]ñzÍK.\½8/1Úíª­«“iBzÖÓó{_ÅÐVÕ˜››£3õîíC÷îþ«VïÑ "Fzܳ§/{-„†nÝØe´´îôèáÇNÄ…;u á/SßC·n³g[I:B.Cÿþ;wê±?D Ÿ¼3ÕÆ™Hs’B!¦ã^ŠÚ8Ó €P”¤°ðzI‰7S=œ­–R°ƒtSQýP¦ÎÄÏ @g²±!å‚ïL«VÕ| $‘¿Lôõ]ÂTß©«{Õ×7âÍ<øÃ-[¦Öüv&”¼-hX,Ÿ‚3áŽêÑMMi˜O*¤6…¦þ µ¡ÃÚ$''GF’4˜{Çd¨ÊhlxvåÂLÀL‰é8žãùóI¢Ž¨3aL !å±p¡˜^³!»94g;ERð¤$â¸Ìǧœps#µßä½SÍÁ¼7ô. }l¦ltÅÃAÁݾ,P_ÎàtÎâ^Rvþ“›"ÓÒîï÷M¤³aó™zõò¡{w¿åËviP¸±BtèÜ9xÇŽ=[·êá5šÕ`C×®þ¿ÿîÜ£‡¯ÐtîCïÞ¯ñ'Ð_+4;U„z8¦è ¾ùæcxxÓûEmœ)ƒ)êb™Ð@›i®©œ™Î63³©ÕN ÎÄméWt9á;Suïq `ja±70°×ãÇ:K–TEEÙmØ` []Ÿ‰"ìLþþ¤.0iš:•ð¿?íM¥6*w¦º£­MäP”]°k2Lfû$ሓôî-GµîÌLø÷¿å«þ>¶†ÖB™LHy9ù ý`N}œ©>@{_¼˜†ùTA•>èƒq2ÛjäÉèÞ]Žó_TDªíggÓQ.”AYGèx®ÐñjJKaÜ8ÚÁN½8SFŒ÷†eÛ­nÝrtñ‰ð°?zîâÁc¶b+4Õv&ߥKOÓ„KCòsçž~ý<øz!4tî´e˾… Mñ Íj°¡kצ=|„¦sp]üôKFãLéé¤aäòå­¹¹zÌ4Š:ÕgÊcêZu}ôhR4é­ë"Àk&KL«º>7&EjèLÈ-€%“'³­ ,9{–¤ˆ gBΟ§I°‹ i[¥B¨Ü™òòòêMMIê%Ê;x× šy×çÞ\'NÉ”ëpÚ·'õÜ8‚fp€¢&‡i0F@só7¾¾¾—Ø›M HåžçÆ 1‚ä« ‘ ©’š/(( aÂòFÀ¼²èÄÎÎtT&x½ Á°;tç7…““ÃF×ÈMÊfL׋3ñòò2²²spÙ¹<:¯6Bδh‘ M¸44,Û¶éôíëÉ× ¡¡S§  ö¤gOo¡Y 6tïî÷óϱu9Œ`7¤?X2gâ;S›6ààð_pÒŒƒ«ÛßCg9’†¥PÎIJÎÏoÓ´iY/naš> °æýû¦8@Ù΄çSL©gJ¯.âY2e ­g%Û™¸ƒÎ$¸­jTîLÅÅ2Z…ÉÝ»$![@¶ö …¡I:²)**š1ƒkp>óçáC4,“dHn -ï‰kmõãG’e•‘Q^VVvý:©:£` !åñàùWì†OÁ©~Я„;lÁ'žè³',\ȵ8 ®²jìØAGe‚×Ú°5™Xð~aðý÷lE…z+›ãˆ3ÍŸž&\mm}¾[ˆ:…à¥éÒ…^)• hKíÚE M”kèÖÍýúÃôK௿.¦¥åÐØ©"TîLÙÙ·nEߺÑÑRSÑÎ’&K iýú#²:“›³¸TêÝ™P•ðy<+-Í//¯]UÕ[€y))[¢£'è ×g⣘3!))¤£Î:é ‚Œòh€»v¥Õ—3‰«Ç¡rgÂíÓ¢xxfsrè¨ è(í 0=éËìÏ?ƒ刱1¹X\ÎP%T®5ãa¼ØšÎ˜ú6iBJèõ)›ÃsBCÊÃ×:vߢRd´…¶·È+D-Ä>ëðœwïNŠçäâÜ9’+É%ÒáõÚÛ‡Á0Áö6ÑhÙ@ZyŒ±§Gœ©Gß¹s/Ñ´KCòyó~)ån:ìZ—r1uºuó[½ú$û{wìØ³m›æ³l™ñï¿;edüÍ뀿åñæ?}êhnnVXøìС³••[++{Ü>t(nút|l0‰ÔÅ™â™ò¸oöœ8Æ<Ô´¦N%ß æá+Í™ð8:‚wÝû~ç©ãkdTõÇ•l2ü?ÿS«µÆÏÒ™²³³ëß¾%í$Ij°úœø ~l:Raa™_-_å$„Í5á²VD´„–’ª9?zDª“³QT}œ)Q‘¯Aeðî´n-ñzƒsí¡}!Ô:¡<wt¤šHå$yrq!¦%x[I"¢[A«gÕ­ð³à}ÁFW4u4l6檗3ÍžmA“/ ˆ ‡¥ÔïîÒ%ð×_Ã…&~rþÀŋϲ¿wêT›=¼7mª)ªC…êÝûµ–Ö­¿}ÙÜäê²¹Ù›ŒŒÌtuaãÆ³ 'NŒ»zõ6>ðÉRêâL,YGOœÀÁ€NW®ìÝë]/Τdž‡…ºqc–V{„5ÕÅ>Sgª;YYäc7I]ÖçBngèlÄf…JÅÙ™¤¦òf¬DE‘´SfµŸJ¨œCÊqç`€NªÍéÓ¤q&öLÞuÀ‹ŠàÛo!<œŽ ‘y= ‡ÀW&’pw'®,.RK#9™tPÃ¥ëá•°r L‘Ô©‹¹9©•¥bg ¾qãÆÕ«WËæf̰¢)Øß˜­[õ&L¸ýçŸæt\×fÌ0X¹’Ž(Êš5Ç¥8S>ݺù Müä†nÝüæÌ¹Œ?våÊSîÙÓ%‰Õ¦;öŒõ'Nš¤q¦ÉUUþþÌÖVUEVVþØ `’»ûì?ÿ¬.̈‹“˜p ‚ÇÆkƒ¶h„Á;‚ LšDšï`Q/gš4É–¦á¶lÙ‡ 6;Ìšu•MÈño×®›6  ‰°sçîÙ³¯ ð²g7ïKß/³ë5e÷ÎtWvoß¾—™ª<Ÿ½3¡‰Ží4nœƒ`Å,<Ûƒ»véÈžv31LxHú?%e^CžnÜHÊ2xQjêôFÈ$¥9S\})®ÊI)©òòå¤"¾¼Áû{ø^4Û€OAé;ÌÞžŽÊšÖ‚š†ñÅ` –¿Â¯yäú2d…^rôunsãi;¡¨ ¨Ñ>õq&Œ4¤T¶n…µkiX,ÁÜš„‘†ò …žu……з/\½JGå…Izûù7áfkh bÚqÂûÿ–”žùíx¨—3‡¦á6l8Ô§'&Øì€žÄž ºuóŸ?ߌ.'¢E&¸<.Ö¿§ÇÝo'Ù·ž¶g«|δr婾}=wìØÃŽ.X`†JÁßûg9 áI“®†gbÀGç>æ»3}F›àSq¦?ÿŒ´¶>ÐÀ“IØ’Ù9…I8 p(55]ÉÎ$QgzýúuLLÌÛ·o1½Äˆ÷í«£Æ:Œ¦8Šsrrp#!3™O¡P¶0…Cb»*㯂[Z¥¬¬ WÁâ_¹Váï§°«ìÝË›4©¢  @Ê*3sgŽ+WPRÀß .É_%$$£IÈ»‡÷šÐ*ü½Ü½[Õ©¤¦’UpE\]pLzÛWµ7zoTQY!x`™Ñ®—o“¶ˆp•´´²6m>?øœáܹs’~ ’ؽà’x&…VÁS*×*ÙÙÙB«$''ãÕÇÅW)** $¸ ž%Á½È\åâEÒ,‰ôU´«´ÇÀ˜øŒx\%ÜKJJUóæ•/^ÐUð/þ.±†Á½à‰}ø\¯¢"ñ«¤—¦w‚NF`”‘™±ÀUø{Á#Á)YY]»’ »qö€QeðÑ£ï³I¸ óæ]˜0á¶¶¶>ÿ\ؼy¯^¯ù©µÐ€ <þjº¨C‡>e›ÐÅѹéx‡¦Sw¯ÛMçqã?îuëæ·~ývtöl‹ÏÞ™pèØ1DhŠÐ q¦j*™6µinùž=¤ãÉÐê<9¶¶¶ ×0 òô´-(8Ï|Ò¯ÎÎDHM% ïL‚ùLlLÃ$iBñMh¢ôQé˲H_† 89‘*2ÕÓÄ/“P•ð3ül ¶‚ù¼~]õí··À"vÿ‘–-ŬRVU¶VކÑl1SŠ÷í£GºG¾Ï‹¼jj›ULWIH U²Þ¾­ÂSܸqƒY›Àß‹ØQ±£JY…? #ì(¢Ð(‹¤U\]IKoeeÒVIƒ´6ÐæZÕ5Á‰ü-Ã×_›G)v ¢«°£È›7$¶ÄÕô3^³ ^¦°q *áÒ@Áíàõj׎|ôÂŽâ%£÷O5 íL~¾£»=ÄäªGŸ#±I8T¥îÝ}{öôéÙÓkÕ*:õÓG[[¯o_¶ü±Ta"Óúö!ºN5Û·ï>üQõº¯Oÿ´îöwÓî6ÕÚÓaÿ¶m{éB;wîØ±kÓ¦Û·×L`—–Ö-<Ûxb‡ {ÂN;Ö¡{÷O»ù%Á¡oOÏinÍîhƒÃôN¶½{¾Z@Ò ¥e«q&QЙîÝ+KHرg'yÔfÁÕÅrsÙ¢I·kwî@v6¦R¤=;5w¦ôôü¦MQïr.tÇcòÉügêLJÙxt4ùà_f%þða4Œ^ËEëö2Àk¥ÊÜ)/'j ä QxÀë]ÃaZõ»šŠoÃè$Úç£GÄ!ø¨3 ™Š²ˆ%–)ó+ÛðqL˜óË+…Û \¸TŠR |jöé#¦.Tõ‚^: #å[6ºzxg⟕9SLLÌ‹/KgÂø\÷hœžNš–~)¦§2a" âøá!ù ¡†I{’.Ð\X°@L~ö>5U¿%clLgâ£>Δ#¶yõ:“M®×óçtT Ñý#üxõÃUÁHˆ’Š×«.'iýzÒ¸ƒl×r9 í'0™™µr¹TæL,ñññ>~׿ٽ«[—.=z¼`Óudýú#FØŠ&ä]º¼š>ý ]H¬=Ü—ìØÑKÔ9øÌ›wdР{¬1±nݦ ŽgÙ³çó?þ°ž7ï0ŠW7p;¿ÿn×™ÃÀ÷ñ<Е† »Í_}p§vM¦¢3áp½É¬écϱË,[¶—¿´L£1c¬P•عø»:uòb碖͘a„{ötÅóÏ_ë“úv~fóí,ö´à`×dʾ;…–‘4hœI,èLgª>5t&nEuX €Ù¤IÀ§ÞQõv¦)©©`n¾“øgÏ&›šâ¯˜ pzÖ,åø­rg***ª{4.*"_½ÙÒªJÒ¨‚*0鿊JJ" š>{–OÇåçÂ<˜†Y¼Á»)4õ:.•åËk)—ú8[_^锕q•¼^áb[h›5ÍP¦¥‘l*/®/‹wÝ£ ³A^/ð ãÀ›ÿâÅZ¹’@P½3øú=üïèþcšÝ¥‹'›®#K–èò“v¡=`Ö,CºÃêÕÛ0ÕïÚU8ÕGéA¢ U³ví– Ì;uz{ìÝÛEH›fÏ>Õ­Ê„ãxHFMÚ#‚[ž=Û`ÅŠ]t\h?è+ü<Žƒ`VÙÒ¥:¨ŒüYc;Ø96™ÈšC“‰£~»‹N†Ã€„öÂüÒgxJÑ,»w¯1Kœ>r¤-nY(?ï“þlùN-¾3áp¯ñ¸^]ž -&vÐ8“XЙ´´Ê˜^Òð)s@ñô¦¡Ø P±nÛÍÅúeËTvê8°¶²ò}IÉ1<½eeÃÝ»³Î|–Τ”ã}0bÈn;šPåZ õüURÝÀi@)ÚKOW¼*$¾úª¦ ñ\Èí½öÃ~)¥<‚ HÚ•æóÙ—Í!'’F)¹Psaît˜Îï'(ˆ8š®Â„‡“Þýx<:Š×«?ôß;d^/6ºŽGÚmç£ÎäÜxÌÒ¶g0ÅêÐÁwáÂý8,Xp oß'Œµ§jՃǟž¬^xÿÀ÷Å.ܱ£÷œ9'Xá`AÅA¥àgÕ [ àŒ…³P¼†·gf‰ÙNŸ9SP›6N™r kîÜct£M¸‹•+w`€NbX³fë¤Içå&<þÅ‹õØ- r{Ep ‹Û™8TËZ´Ÿ­ñH¦N5»}ÐÒdìtÁ‚ƒì¦PÅøâ…qã® xÍšujР{]»zâv º?s¦ŠÎâÅú£FÝìÑã9yîC§N^ãÇ[²{?Þ\èðý´•Ÿ¡r§É¤­­ê =ǨcGᬻß~ó›3縤,½On˜ò«µCuÞ›àp²ùún]_ -,:hœI,ááKÏž=ÉdÞ|BÄ¡-9sC––ÇØÁ?YâŸe}&e?v,ÉpâÈ-¸õ#üè¤çŸíÛIéX]((€^½à:‰Yp.4ƒfüöe‚¾…éw@ ß¿ÿÞ½{¦¦¦ÌœÏ™+WHîwîÂ]¼^¯à†‚Ù³ÙÉ òþ}M“˜Ö`ÝšA3G6¹¹Ð²%ùôZ8&iÖßÎîÕÅU(c‡?Û_>öã¦íÌúu~"4‹Ë€ÁVŽ^³F{À'±ÙQ8ÕAlö’ÐЭÛË%Kô,8$$jèCŒ½ù NÄep 2ULÊл·ËÒ¥º8 å¡\ÿv&?C½Óü»ù¿ü ¸ —=¯cG)Þ){˜úë5ãf«V´1ÒÉYhÇaP§§›¯Z÷ó‰áïu™Ë}À¨"”ÉÄx~¸ÏiœIsªfÎÄÀ[gvÒ§¾¾gNžLBË–¡…TgÍ«=¬-}–Δ››«”hìêJrk¸o©*¶ÃöNÐ)Ò "Ix:—Ž[%PQAš–Þ¹<À… x:ƒ¡¡¤6Õ»wtQŸ|&|òвñóƒÆ¹^¯‚‚‚òÊrÐií!qÂi]¯p÷;m¹^¾à÷ü`vt†,rrr""ªÚ·¯Õ¼“Êœ)99ïØW¯^±Ît·É„Á%`8ôéòìN-L›L¼ßxœn‹=+¦ð‡Î=Ñ Ö®Ý2tè.V$s@7ª‹É; r1™@ÂG>¨ÓC‘Z;ãejå¤_¯‹ž@Üþ¯¿Š‘­ž]^M;Løíæí&“ñÝi2É©ñXÃækgýb1°ÓC¡Å¤ èG~Ü‚«Û7™ìÔxŒÙKw´Ú·£%´[œö«UßÎO…V;Œîxç~㱂ç„?àÉù³½9ÉomuÝÅæÖ‡ñd²Ó5Î$B€ þÇtõi9Ós€ÉÉpñ"œ:eÄ}|ÆÎT¬¤ÍRSIóªLÏ\ùçÂÜaEãÿû}Yp0©Ng(ľ}0djv‹ÊV`À±Ë‹СC­Æ¥ÔÇ™0вÁëõõײ›hbÁxˆÏ:¼^ aá òa¿/Cåª#'NÀЉ?W¶=¸_/Œ®îîй3Ê‚¨Ì™0=ˆ b }Z~’ÆÖý|¾É~ʇÉêÉ7ô”S›Ð z÷~*µv”:âMånã ü3ƒú *‘Ðb‚Ã¨ŽŽŽ'ˆÖìiß>ˆŸA…çvdGÇmŒ/~¿èL³U½»¸ð; ïx_(_¯Êœ]Ó)Ç~Ü4î·[\JÄð·¨áº(aì€åÀHóÞ–{ïèð{: awïZë3ɾŸøi®Ëߎà€[8Ûl{0ø£.}¿ðv“Iü½\ø~ÑÀNp–Æ™D(cŠäð= 7FD>!\JK'&$LÔÑù$ê`±”§¤è É6:E'+•;S™2úèEòóISÚ¡¡t”#ù?0|é·móc“JðÇÒ© aû(ÿ#V•­/ù¶ccC:/¼•ÕÇ™ðQCCÊ&7—”HzÈøL‚‘}Ö½‡÷£Þ-ýÏO…±Éu=°î…ÿh“´¸bÿS.`t½}z÷®U›JeÎÄÂ/›ÃTöè›ùé;ôéüL4 ÄDT¯ån¡%¥hK Ô%Róa~»ó˜ê žÊÕmN -&8è·Ø…~p³ét¡bÐÎ=Ùó3¢ã½ó?,F}ql2Ï<Ú®"Ezúu~zíÛÙ‚Ç 8àááF¶·Ú/$7¢ƒQó5’\‡? 9ယȸ¼q³Õ³ÚÏÔéáî–zW¾›+”ñ&: ìüÎñ7 íʤÙò]^hœIvÌðˆŽ}:dgƒ©©º·iY&í+W‚fÍrÂG½rϹÊ);;[)ÑøÃRCåÎ:Ê»G…ÿÛóͪ‚íïRŠÇä$råLúÇ¿Jr?È–ëèÀb4aÔÇ™iHÙ‘úLW®ÐQéðx<|ܱá»Ï þ·ÛۥᷪË`—/§DI„Ä0`LÕØŸÛVú:åò1mšpŒêãLõGy9Ûö:åÎ¥KÐñ÷”NåÝÀ‚Ò֚ܤBê06¬ôÝJ?ã ®¾> ³¨‘3Ým<þ÷l:ŠÃÈŽwE“pþ€iùÖVGut›‡j2á·›‹ÛšŒé`/¨VÃ:Þ_ÔîÜÆÖGÙ·`ßt2¦»˜^â€i*¦¾˜¢Ÿÿa N¼ÍÔÑl¾… ¼¨« îôàfÓ$¬Ån±&7°ó£ ?,Æ ùi‹`u"àÓÚ,„……P8cÑéÜißžT`äïÏ„hküy(tT ‚ùLëÖÁ¶m)è=C`È;/w0‚~ƒßæÂÜÜŠü¹saÿ~:#x_ôêUåà@GYêß™r3ß¾ KÉ¢£µt&‡&ùµt1I>Ýl¦aì,±ƒ}“)è—¾_8¿Ù¨êš.hQ«Ûœºñí œ…i$þEóXØîÜŒ_®œi¶ M “Lœ^=LM­Ñ$©.Œ[ØÒú0:{œì¡^üa»<à½-u„´‰Õ º@“É»[ê°NƒÓ1õošhÝl:åÉæÛ™ü½ã*è+Û¡*á¯Àß‚³P>¬¿…¿‘Í4p\ÌúÛÙ¸ "_žPõî5®ÉËÁ“°¿Å Êâô¡Ó”ÄgSŸ a›(îšL:€‹ d–fÎ9˜ >…§\ê$¡$…³Í¡ù~ØÏ–8˜ ËuSÁÿKúÉäïPŸ 17'-‘r¹^ ùϺh l>ä/†Åí¡ýCxÈåz½‡÷—à^¯Ý°›m:ëàA@Í•+v—””ýç?¤CAêÝ™BŸß8{Ýîð« tB- uD¿Å.L›wµÔ³úîO¡$VÒ€I/ÊSÙÿN¼Ód† “If®Ç ÊÐc®;ãØ›Æt°ïÛù)©‹S«–ºÖš6Ý»ºÑ¡‹Û™f+õcÃÏÇ~ïè`ñý<~F0ûDÝ7ˆ³{\ÅHl;°[Ùþ°lnûKý;?>ÿýb¡-£Þ¡bžh¾·/8]ìÀJ•aóµ“~µéÕåùÞ{•r2É©]]åÙ¾ó5ÎôgLýú&Ÿé ã"kTîLx4Tg?†nÝpƒt” ðï“*nHQQ&¥§àÔ÷ðýl˜ ±’>§ª€ ð#ZBËûpŸ¿˜­-é†L®£¢ ukÈ̤£vvv¶¶¶gÑþÔ|ÚÐP=ðêÉcãbeøÄcŸu¤½õäêÆGQUMÀä;øn&ÌŒ‚()×˼GÂH&{°ç/vû6©}/W„‰‰)þî»ZÍ!õîLnœNKw>³ÏûâááñD€¸˜ƒá‹p85|ÁÅ3Î ™}vèvŠ:FÃæ2Ë`Ðb£aó…f:ï@¿uûû­ÇáØ€†" œ6çôàyà MWú€§ÒdàܳC„O)¶ÉÀ9†ÃM—2à12óÔ E§‡ý%4ë³öM]®rgJNN~þüyXX˜»»{vvvAA¦g>|(..Ƨ‰QQQ4$|âéˆd0ù¤!É„„„Ðd¸l¥‘¾MaúJG$NC‰ }pûvÉŽ,)I`§ ‘———™™IG$€ ðx<:"<ϘÓÉà•¥!ÉÔÓeÅÓN#CÃ;Ffe©ÿ»w€é™\©¼‡iéó%"¿?Ú@œsš@“°àÜÀĘý´ª ƒ È ÌÆÂØ¦ÐtlKƒ4v–À@Ò§‡\ÝÚ>{FzÊ:fõÉgÂHNCõ@~>|ù%©_(ŒŠl$ %_G Yi(„΃y¡ñ\˜k6‘É^¯"( †à‹pq"LĹ›as Ôjn*"‚lM®.õž>-éÔIøzÕ»3=¸n—žùÈT÷u‚O(!lª100 !._¾liiIG8uê `ddDC\¹råâÅ‹tD±»;wµ5©æÚµk&&&tDƒ“'iHÜ—Õ•+×­­É@§Ä›Ø_aaaannNG{ÀøšBC\½zÕÌÌŒŽpRÜŸ? ÀØØ˜†û“ë~põzºFb2î OÀÍÍFSÕi!¾KàAbdø|ÏÍÍÅ4›.!À½{÷hH©©©žžžtD2xöhH2VVV4$¼.4$|¤˪4æââ‚?™ŽHßÑiH2\~Wl,ªU(‘ú"º‘Àëׯ¹7¦‘4$™†¹¬ ïLJÌ+ÅÃüúkár.éœ>MŠóØâAÁ#©„ÊhˆÞûA¿æÐü_ð¯ÿÿï+øª5´ÃŽÂÑ\Èeûñ“ÿÆkµv(ss=Z¸|J}œ©¾s²[¶„à`æÂÅ‹0|¸˜â<¼^q·¶ö‡þ?Âìõú7ü»´ C÷Ãþ,Ƚ^¸ÿþ—˜w,,`äÈšŽYêÝ™ž\³t~r\ÿbœ˜¾0bïð7oÞÄÅU —7nÜ !hH|(࣎ vwìË=©§<{öŒŽ 6ÁÔ“::"€½½= pýúuß2ß¾}KGÀD†xüø1z'©©¯^½¢#ˆ=`///±Ïú»wïÒr]#±ÉÃ;whH¼FAAAtD±»{ùò%j©Ÿûu¿Fê€\ÎäêêJC@;ÁMÑÉÈL¤.Îtÿþ}’Lpp0þ(:"ôÑX-gâò»"##éˆ"""’’’èˆ8:ÓƒhH2ʺ¬êæL¸#%&Ìýûƒ£# ËÖ²e䃼³h¨Le?À‡lÈN…ÔDHL‡tT%éÍùôî v\Û”&ìÞ «VÑ0õq¦úëoŽeÌÚ‰tðÆgª"ÀŠd_Øë•9x½ ! ÒðzIo’à÷ßkõŽ,Üïž=¤ÞºÐÔ»3åg§ùx½~Çé[$±é.>^E%‰§!ðªÓ’œIìîRRRD'œ"6‰Å7T@RzŒ‡ACˆ=|² tD± ‹u&LbQ›èˆb8--Mlú$ödŠ} ËuÄžÔ±éØÝÕýa’#3CUà¯àîL gjH¸8SCÂÑ™us&ån\ô;p)|üÆ‘œ¥ ئM4Ì…iÓÀÄ„†ù¨3ñ¿V«'6l€-[hX ¬Uãõ9’d *t ¡Æ±¤€'cÎ1íYÔ¿3©’œ©žäLõ„Xgª?¤?…•NïNÐ8G4Î$us&%ÖgBNž$ý¾q$?š7‡7oè(ÞP4T¬­¡_?’¸r¤cGpw§a>êãLøÞKCõúâ¸q$ÃO:EEE sr M®M‡sÄÞžd rü:°¬ úôû÷é(Ÿ¿…3¥¦¦FGGÓ‘ú‡ý≎Ô?þþþ ™š>þœ†„Þ:Àw&ŒHjåL*?!ÔíxÔé§¨á “C%:“ƒi œ­Ó-“ÐPR…ï7ho4T¼¼à·ß€co¿ÅÅðÿ<‘®¢ÕÇ™0¶ÐPýàìL,Df5ð?b$‰Š"uÆëÖ+ 0þþäzqì‰øãGøæHiÀëoáL4|Bð)&&F­œIÃgƧ^6çç'‡²œ9Cª³ð…M)åP˜ú¶mK> ã‚·7ih@°B1ÞÝÈU.u|„ú.› #YG2¯I,-‰+—ìlhÑ‚ëõ£ýö[q5Ð5ΤAƒZ‘˜˜èàààåãñömø»ä4•;/7;=;/Ÿ——š’”œ¦ââ'<˜¤ÄÄä4Rá/+=%)%Uµ2ÉËËMINLL!U6s2S“’r®¨\,9¤ranV ^·ü¼œ¤¤Ä´Lá |ŸzðŒ øñGá&%1kìÜIÃÊ ÕLP;t Ù]\03#: jIjjjJJŠú8S}×g¿4Œ‰¡£’`ë€/^,_]1.`ÔëÙ®_§£Ò±²‚îÝ?ˆj¤Æ™êìT‡«gOž4¸ó\̇` ‘óꮵ“W,núù˃Ė3æ¾r¸z×CÆ'Ó5d½»zÖØÐø’“£í­§Ar':Yñ§ Î^‰•ñý“¹‰‹‹;rDGïøEO'ËýFgõ÷_Sµ3yÝ6:u/"5Öã¸ÑùSGOGäªRRüß´¸isôÐñˆ”h³CGÏŸFç©‚X¿‡®\5¡nW—ï9›ðîÍùÓ×’%¤s¡n·OÛÉn^¥š,Û#›OÚæçg\Þ¶ììc?:™%뉑qrzºçm ÷:Q&ioÖ.\þ:,þîé]{Î=QàÅ89Ü{ùµb>ÎÓP'ð øÑÛC‡n]<éu×P×=F•Δíf¼o¯¡SDä‹+}¢ýïš;¾Qå'‡×MõïÝvxà–ÿö¾‘µg´ßã«/®¶¢(ñAOlnܺvùJP¸ß3R“Þœ¿þÎkpÒ“"_‡Ü»ˆÎ”¼ßø^zFôÅ+ön^ˆLK»o¼ß·ö‡° ïL•˜Ï„̘GÒ° ]; £H:Ç"=Y`ºŽ©»LŠ‹IÉà‰tTõq¦Ž5}êÀ²eäã5é`ÌLH¨üõWRš©tîÞ%å¹2ãxy9¹^Û·çˆFW3)Ÿ7/­fL›kq×->-3ÊËaö©„ŒtÃË|£ìÙ¸aõŠ[O^\7kæâÏíöÖÞºíði«äôw†ÛWë?»iÕŠ§M÷îÞ°NÿZM%…œÉ×í–Á’-{víܺý”£×C‹IZÓݰ>¦mpëåsëƒ+uNëïܰvŸÁ>½Í+ÖMÎŒ{í¬»q÷ÎmÛï{…Q=bœÉ+ì:Ó¢u¶oY§{Ù37ÿݾu›Â“"t×®ÐõÒ3­+Õ+~·O?öð²?m}ÿ¹î—ŒäèsÖ²©ª?r³_gJØ{îqVfâËÎ6çÞ¥g=1Óy]»Ù†w¦e÷hvêLœHÃRxýš”â V(þÀ±ê¸,"" I“šîP$‘“C’êÇé¨ êãLEÊ­q-ŽK—H3•ҵ㡷wÕÏ?Ëׯ:Gðzµhñ²zQÊÍ…®]áÖ-1­=iœIùäeg8_;ô×ôsVê½^·xÅ oç¥ó¶?ŸýçÌ}7<Þ&<¼¸kû%÷gƒ?µMÞFDœÝºÔÚ3䨯%çïyÝ7Z¾Óü]²ßêé+üh2)ìL®6‡7¹‘‘±uÅüǯ=æÍÛšj{`í‘ëÏŸ]ÑÙpêAR´Óܙ۳Þ^2ïv`ÐÁ ÞòruXºZ7Š­Ž"àL;Nß ¸·dáþØüܘˆÈìô¨íK—8zD¹XÚpØ66âÙâé[ÞäçÅFD¤¼ ߸dúƒsÂ4ÎTOÄÆ¿»h}ÓÕÍã‰íY §§'v…eªÎ™òr£#¼¯²yêlvãéÍ3§}²TYaç¾YXD´ó僾Q~FGÌŸÚžø6‘ÎS¦Ž¯n›X>ó:«cèùÌÆÂI•PêLyñ¦:¯Ün·uóy`yóÅ+ÓèÚ×­áI‰}ô²<NªËìôíÄ aµR–½¡-uèOžÐQI¼{GZ-›·¥>ÎT,Wçy áîN:œ‘þ}FÂó竆 “¡VŠ‘MÊœè¨$Pªš7‡°01kœ©žÈ{÷ÖwçâÉ6>YŒ¶ëÐÞdp‹—ŸáöäŽî–¥söY±Îl»oúºCN þáÑèLæÃ|žY­k“œ´¶¶3´òÀ-ðIûÔýœ´ØkæÝwsr¦M¦.)ïÎûsO|~ʱ%óìýö®žµÏÄ÷òð©k ÛX¦€3í9÷$:ÈyÉ|=Z‘µ}ùÒ‡>q/nÝrò^|”ÛâL,9AÞÏNÜ2mÝÁÈà×gªâãã -n8F‡:Þ±w ŒUyðœäè€èôüܬW/ž¸z«ì8rRâ>pzDšKð{ñä¹g–J['ÍÉHvyääôÜÉo^=xô$Q¥µäyy‰!!1HyëåüàQ|z~~f⣇Î^á)ì|Þ™0&+·l."‚ºÉ¬þÇ`hHÃ,©©©4T7JKIÍîãÇé¨$="=‡ˆE}œ)IôÃzeƒWª}{§£bÁ˜9cFÅþýtT¹TTB·cÇè¨$<<àûïÑq³5es AÀ]³eÚǯ]¿¸YûhT/.äÁœÉ“®¹¾ÍŠóߦ½ãüý}üœ./ßeêà¶sýN³+V»6ìô’ìLù1¯í6mÜxýÚ¥-[øE§¢3Í_£m~ÑpËîsïòßé,]yËá…µ¾xgºåqýìæ=§.œ=zÈȶÈ.Þ™âw/]ý&1\œ3%í[±Ü+2üè.í³ç ·í7‰ ÕÔgª’5m hh>õ:àHNŽìlžÂBR0W•cXví‚?ÿ”–)RR5wÂóIs訫:àïßg’~½PCñz)·5KA"M¡JW÷£GAK‹†…Ð8S=ÀãegaJ—™K²ÂÃ_.™³à5Ó‰H3#7Ç#]©ga 7'›,™ƒoÊ<œ‹Sòòr²³syù¸‘,D’—“EÖe–ÌGgÚrÒ1 SSf¸bVVNn6ÎÌË#ÿ‘ϳ²²qu\ [f×ÎÊË«Þ$u¦$<\ˆYwši3n—ÌÃy9¸6V.Ç0î(ù­¦l®^P7gJ ~QÍKÿˆ”¸0ß ¡Biðx)ÁAJ9ô¼Ü4Áoä"ý’ùQZƒœ 3ùúúÆÅÅ¡6¡3a+a`ëúàLØ)ø¶]ÈtÊÊÊp:Îe—©¨¨À)WÉÎÎÆ‰ì*?~dWÁ%Å®‚‹ íEt•ÊʪÁƒ+Œ¥­¿þ ‰‰UÅÅÅü½¤¤¤IÙ .ƒK ®‚Å®ââRöóÏUååâW)ÈJv¼eݾcÁîttS¼µùXXXà*8Qú^DLáUØeDW‰Ç)¸˜”UЪq °«°{‘k•ñãI6è*üHåæ–Õ²eyBB¥à^pÁUðw ®"öÀØUpa¡U^¾|ÿÝwŸÿAhœÅ_eôè*ƒªÄÄD&ŽÕìÿâ(½ªÑ8“RI ÓÛ½íè5oå–¼r4=|éY¶™©·~Íö='Ã9õ(Bfô©½;Ö¬×{£Ê¯¼?OÔÍ™²S""t–.ºïŸðÀ|ŸÑ1 Ї÷öÁém'o*El2SÖL[é/pœÏï5ºÿF#MŠÎäïï)ejj*¦ ¦˜`*ˆi†1ñÀQ„Å¿l*‹ÓÙQü‹I"´Šà2‚«à,yW‘¹]ݪ™3¥­bcCzóÅ•÷‚à,\€ã^ØeÄ®‚Ø´)ivHh•W˽{÷^¶²^¶jßÿ›5y©Ú .ƒsñvæsíÚ5™{Á0.€‹q?0Ž« üUPWÁ¿2WÚ‹è*øWhÒY¯”U®_/íÛ·ª¨Hâo]ÿ íEÊ*YY¥-[‚——ÄßRP@*ɽxAZ$Ú þÅUèýSÆ™4hP%êæL )‡W-{—ŠôÆí¶éÕ§Q~ŽÍ¬Í ;wí‚ñýgƒx¼ô[ÃSúû¾xSýñnêùÝ+Ï:Ɔ»ïß§gtù!þ†èNûõôN_¹“ÎËçeD^6Ò×ÛwØÿM"/=þÆ}ýÃ=âòóãÍ·¹`¨«oèÇãeDŸ9¸ï¤é…ÅÄ™Òo]6ÔÛwÈïMb¸«ÍÊ]¦i*­ÏôéÒðesl¶‡rÁ´­Y3iE-Ë—Ãöí4Ì/ ÕL—QΟ§£¢„„À÷ßÛ½ÿ˜ú”Í)¥?™øúÂþ#­Ó·­[aåJ®Ð|&NßîKx8)@ŒŽÿq¥Æ™4hP/ÔÜ™^Û­×µ zvvæâãI >K&þåzQwÅ {÷'{·uM õZµ`K0S:/5vûÊÙ·}3n쟿ñ”åYó‹oÂ<ýµ102åöÁ-'lÝŸXêì»ôÄâÞ«wí4x˜úÆsÃü®1›&Íu ‹±Ú»öÄ—Ï­õ·ž~œpgþÄ•/ŸÌZ°ä’Õ¥kÏ‚2CŸÎY¹5>M•ßñ}º4¼3)·^–Œ ÒÇEDM‹b*Çà ECužig\Ò™³·‡víJß&åÓñÚ¨3a4 ¡ú$-T‡÷ñ¡£¢tîLz¦«Wöí#Uš$usÿ>9ô%¼Gè$4ΤAƒzñ©8Óì–ùù!릭LM¶Ñ]ÎdµoÁ¼ÕÛõõõutöz09MÙÉÑ[–LsÍä¸m˪éK6Þw¸:aêŸ{uõôtuÎÜr»¶oÁù´|×BwÞ9—äüôw{Öεq½iú2Ÿ„ÄÛ‡7¸òôæ¡ÅN1´l./á⩽KÎÝxþa~¤ÛÌ¥›cRrØ-h‹†w&¥ RTC†žIÄJœ)/ŽòQî‘<} :S³H K—Jk+\}œ©>®Ž(?ÂС`dDG…ˆ'ý«ˆseâéI: dª'‰/Öòå$ ö„hœIƒõâÓu&o'ÓõzW<ÜìÕ>ŬÆK×Yû—{£KÎ;8ïݰú¡ïÿoï¼ÚÊÒ>þìJ«Ñjµ?ìêÕHû®VÚÙÕfV“ÌÎj2émRH&L !…CÕ6±MSM'¦cƒiÐ\°q\i¦¸w+³¼‘²ƒüžc;Ä’!3¦„ÜøáœË=—ýçÞû½Ïyžç°Q×î6örʰ±UÏD#´ÜûèŠÁº´èüöaJv؃µúnPü¸Iâ©™øO nÅ·O f*بG¸62á6–¬âµ_ AÍmñ x*›¯™Àòú‹ïÖ-Ç¥Kk›y23a¢§#Ê€;Ë]ò?üàøõ¯ …»êÉÿ xéïwWW³}4 îÒD‰ŸßÚ׋HtìÚµøâÅBÀË—0•Àš‹õ‚áäok+,ƒgïêáúÞšÉjµj5ýú­áV‹ÉbÒ¤:CÇVbV´å×Ðßëm`™h#V»šØŒ¶N›‹øs:»Í\E,TÀ(0÷ö×Ìtg÷ÁÍfUºèÍ•6ƒm©™,bWm‚~C¥L06¥[³áº‡z>‹§³˜§ÇxR¥Ún1ЏL:ƒ)S¾ §´걡„ºa½v–ÅdpE³ó Ńy•,:—Á`+5&Ð\,a0†'g v»A0ÌÕšÍJ±`|rÁnÑóXÌÁ8‡ÅÓÚ-RІ $œ^ÔUŠ&{Æ—"¬ŸagP©p2eµ‹ Ð+§O;’’ÜUO¼þož<éÀ`ÜeO¤R¨™Þ¡Ð¶fÚÐKï‰+©ÓÕþ ÀGdäf¼`’ˆÕÝä”kïØ™è}ìË!aq×±mÜu>©µIL~ô ÔšǦђ¸¶÷zè™GI‘©­°‰~âšüŒkë:Ƚ>«³Ú­Flªm cÒ¹ú÷Ȫo?l€rШ ˆÝÊU¬>V¶¥fúù¨Fâ×lPB€ö‚äZÁV&ÿ ÙþL€~püêWðm·»Ýñ›ß8d2wÕpO¹K^¢¼ÜñÅkè¶ÊJÇž=ïÊT¾}4xÔ¸K 8KŸ|â‹ÝÕel6Çïïèí…aÿîM8ë»v­1=WW£,]Îßàñ‚‰N—4qzÙ“à‹7÷ÿËçÆ]BO]¦¯Ÿß…+¡ÌAªÏ·G6Ròøž;züžs(]êÅÝ{Oœ:pðÒµ ¿“'¾²¢¯_ö;} Ó(êÄ©™žEßð=w.SÇïH?pÐïÐþo*ûº…|çwút"©éì —¯øõ¹>Êo9uÔ×çøžNÍ´ }úÅÿþõrBá–ÏécgïUt;û¨©N¸ãëãã*"&ݼä{æðÞ¾Ú®ê J¯J¾zò乿á“™Km¯:å{êÐÁk¬ñþË—Îû?Ýõ´èëÝÇÏ?Lx3Ô_sþ¼ßùóß Êáw³NÊ ¸à{äx³3+‘vv8äìE??¿ïïÆ ô&I7HŒ9²ï\T|ÖMŸ ‰Î”ó”C¹|é‚ß™s œYgß~‚¦™ìvÛë¬`Þfý°ùšiqqqƒlgÏ:Ðhwy™²2¸€îš®¾^›˜püákè3Ÿµ ]‰D"‹I$’»¾Õ€!á.m0`øû;¢¢ÜÕe`ÀÚâ"ÌäÞ´aÌÏÃÌ™«3’_½êˆˆp—] ™Vðþš©whÏW{ž •ö\ ÌÒçïûúëÇ÷í=YØ™{úà÷䮎–T¿€˜Ö.†Ë@ï¶3ß3Ù{Ë⊠ï}þ/ÚïZ wi¦èØ]ÿó·C‡~óÍë¡aBƒ 4)*ŒØõÙn°Ûù€ˆ³”V{qr‘Ý*R®´3M·Þ!™4’Kûoƒ Œ/?ýÛÁǾúW`LJä°Ê4FÃÐxÜšdLóP€ªÊ íL¨Úö¬3ßÞjèPÏ>¶wÏ?0Y1!(²EÅ÷ùêò™Tbø™¯:°ïHþÀ(<ðh»ÏÑãû¾ü{lÙ¨‘“ëÙP–aQ|IÜ…ÏËC݉¯®Š«ïgáÓˆ¸+_î;phÿþøÊg`O„ŸdÇi&„mÊæk¦ßªô‹q™s+Œ.|zHzx¯Q¦hÁ^&ä¡ÂS( cÚ‰‘¨»—r[¥=žÁÙёЄuámÍd3ê´à8j­îÍØ úUŽ@6«V£µ8m7zvMLï.®ÂfÕ¨ÕàOÁÑn³è ¯ç¾ùý‰Þ³ &”w•›ÕŽσùÍÞ»òÝ¿‰Å¤×àf5tÎÂJlfÃÛïÄ5;fuDF£Zy×iÙIì p ðmçiæ‘J¿ýí@.Àˆr—¼GCƒã„…Ëde9vï^ÃÝ“í37777ç.m<&Œ[V'¹:~ñx«ÕºqÚÚ FÏy&()q|öÙkG+ðìõÂÜÜô´Z<ëŒ 6L·¶sN¡Â\—QÈ“ ‚BvM!èJÇáJh<¸xøÎMå¥×<ÕØí“ÂÙÜ|7¹´¨¢qÁ3ϺÀïeJ%Œf8F M?ÃÃãq·.oãÊûËÀnå=-T†xÆÎ°šñBqUûðpŸPÜ—ÃåÖö.ÈFÒ ¸‚êZ°Ñõ¿Hçç;[ûtzEKË™šÍ®Vð3ÓpùUOè|§§“YUW”vb Ò øÂšú‘‘¾§Cø+‹Žö„gãŒÊ²ì >½ÇÕá§Osoj&‹¾›B"“ 2â›XQ ¦… ,i¥+vìNPX+wÒ®¸&Yíðg·óy+Ä×k4¨0tuMîqùŒiŽ1,[5t ‰?ïN9ß×X2êü^ZIË£ÄLr11­rÁ£Ñ,¯¾¡oÌ]y£‰™@T™¬Ý5©I¹]kh;ý›?ù¶ó8ÐT"R½ƒgÕ—ÅcØzûHGÙð¤óp±ùšiCñós‡ˆ» „à›‰ÁàøÓŸ ÅËOÿü§ƒ@pW߯öÑL›LPãâEhŸsSƒnŠXrãZ¬°¬Ì]× Ü·&—yoÍ´ÑH{ÊüýÃãÊ^Þx«EP]ѳӾv"Þ×LéÅ0dÕ4žX!t`0˜dL†BÁ½÷ýõÇå­õ¹˜¤D4yî¬KŽÏ{œÝÔV‘‰É*÷ÇǦćÅt 2ѹZ£:7¥°¨´¤©> ‡G£QwšØ2rFBJRüȸh¾FˆM£š,Ú‚„l©šÿ8³ùi.>sç^BS³IôF¶œˆºþ(=F³.Ë«AJ-m†O$ñ¹“+i(IÇ<Š+ì—vÄÞ¾ÓÑ;„KÅ¢%òg žbPIµ5é=LFqN".J+Á$Ä£1¥”á&M¡Ÿm©«-ÌÎ.‰MHE'D¤5Êy”(|Mµran„WšÉ*¢¢ÁiÂfdô°ï‚Ò ˆq!(Lºd|»í6_3a¼q®*<ô v­ÅËbAo>ßù‹µÐjµî’WÉÌ„kÛY­pê‡H„©¡Þ–´i™í£™6ÂööD"x½˜LX a2w6–ÁÈÜ4á^\ [:,——È9O?x“Éä;†ò³5ÓbiéË£G—ì®ý—5“u67&ŸÃjD=@ݾÆžC;“EÛVF@EE\¹›Ev ‹oî!ÅDæP;ÉÅTjñ tÞ6Ùͤ¶s„#µ=Ã¤â¦ÆÂ¥N?ÞRF*ÀævX 38l•K3…~ZÚͳ©ù©˜¢xtµÖjm*…M8J­^ÜRÚÂy›É£ï/ þϵqY3ÉØMT:”ž‚м–Ú<å´3-ˆûâ¢bïß½ÕÈ”}€fbGî]íÄJRRëôCI^0ÃÅ–twçŠÅÝYYÅhB‹É¤ÊÀ•’ˆR£UN¯éôÔLVc96ú> õàQ¯TžO(žµ#v¦Ðñ{÷à«·¤Äñ»ß9bc_Û06ÅEljÐ\‘‘_ÀMMîíïࣵ35ϸ^@¸„‡oª‘ɸ^gÎ8>ÿÜ‘“gr×s)Í„€°½ð¾‰@*•¼¡'yuLbjÖÈ”²6;axB‘‹çȱ¸ù8'2–ÔL-zìJ×M.îî+Ëk£s)|t˜•9,UAÍÔT,˜×é%”òúZ|bÁ„\’\±lgÒ«É<#•P™ñÇ•OW‰  6¡–µpkó;¤“ëtš)¿ªG©+Ĥr-Eä9›õh¦¦‚Æ^j9qP:õ¬ÓÀ„“õ@3ñfU3ŠÓ<ŸS““È•b ù›õYÑä †Uùh&lF›Ù¬ÎÄ7ÕäRSìNR‡K35‰å@CP Ð ÌåìœÉ¨qi&^©™;f²ü¬K°]š ³™™0Æž?þâÅ‹—/_ºdÓÊóçK-}úéRròÒâ¢{ã&c0,,ýå/KdòÒ«5m߸µÝ¥ÿüg)) ^¯‡ayK0›—‚‚–þüç¥ÊÊ¥WKý¾‹üÑ}ÿ¼ÑL[‰—5“Í"b>£P(Ý}“Õ¾ frÏ{Þ`ž¥·Œðû©­4Zß ú.™Õœ¹Ë hJ2ª5jéÝíJÔCíð Àh·ÉFE2™He´X4Š1ùü¯R[~3¥δ™U®47L úè 6oB-gSZšãK¤¯›èç':º{5†5ÜVcÑÈ@(šDe¶šMCÝZW‹#7›ô]6OÔJ¥t2N'ËYÅè‚ËÅÛ8ËL©'y­”VŽZÙT ‘\­=ãóEÞ„ÕjâqFÚéV*•DˆëÂ}fÄ,*…ÒÖÎÐg:ÁßlëšÖh…\‘O­ìêêšÕ®k>ñCA$Ñéô±±1 ›4Ñh#Íj]×uA@@ph&„­ÄËšiƒé¬ àñÙŒ)$±µÇ7ôð·§}f~lô>ŸÔîöNÿÈ@4Â/ÑL[‰§fR«ÕÛ\3!|¸ š á—ƒh&„­Ä¥™„B¡§fo2D3!x ™ Æøø¸§fB†Â{h&„­h¦ÞÞ^ð>›žžöüúG^fÞŒ1‹%‹•J¥V«5™Lˆ9áý°ÛÿÆLlcsIEND®B`‚PythonQwt-0.12.7/doc/_static/symbol_path_example.png000066400000000000000000000123051465265754400225360ustar00rootroot00000000000000‰PNG  IHDRX,_ZÁ pHYsÄÄ•+wIDATxœíÝ[J$Ùºð•‡~ïx.KqÎANÂ~è9Tí‚c„¶ƒ ÎA(6´“5}Î=ÏCjVhfj^â².¿ßS”m•ÑËïŸßŠËL&“ЉóóóÿûßÝü,€ÈUU5ÛÐÿô½¥«ªªž‹tLôæ)„§—mYØAгzŠÃî B€NUÕïó_|‡ý„šLþ»ì?‰Ã^B€ˆ jÛî&íÆo}ï@)ªê÷wÚAØAБÕRðéo£ ‚ Oƒ×”‚Ýs u ï µ4Ú#Aкwú¼ÉdROÁ٢˲“Æ B€ÞÔ#ðMShŽ´3í^#þ`%‰¦`öUnK‚0Õ‘½®ÙA7È@i ©r„ù›¿)FÂZtTy+zõ‰ì§û]|2W ëÊ£Pd_ñ6fõ‰âX’ ÎÔhq¦ù'a&EKPn;¾«êw)+Êr.±Øê·L¹A˜åø^E±ÿãÀ”"ðF¹AðmS9J Bã;8ð‘Ú&u`ªÄ ,a|ÈAÔ©ƒàú¤Ò„†øŒC •Ö')ÅaiCü”‚ƒ`½Q™ BC|žcu…÷FÅ„‚‚°ð!¾cÌ[Š^}`ÊÊ %k7ëËMôŠFù;ð+PWZM(ej´¨“º.¨+­&”„ {‡3ù¡Q¾ G‰b•Öý¬¥Êå«p”€y…T†üƒ`¡BÚ>”yè«s¬(M!íÎö²/™¡¾:Ç X(ûâyÌ˾Åa-Ù¡¾Çdßâ´$×ú0÷f™ñÕñËÛB8<}?XþŸ§~S ôÍ8nÀ2¹Ö‡7A8¾úórïdtvÂÍÅðøê¯³£¹¿mø¼£´7‡µ¤ªªÉdÒ÷^4éõÔèøŸŸ·û»ŸB!|ÚÝ¿½ìcŸ¶—kÿÞ G\IÁ¦TUUUUß{јù—nï}þÕÞ=ŒÃÁ\Kx}:¼!,i cXqÂp߆£¬bš…t‡¯ƒðñþv¶½óyoÁ÷ïŽBÓ«…§Ç»s“§õ'êbH L&E÷ „E¾žý´»?Û?ܽû7wŽþubœ<5³·=ÇÌHÁ6<Õ¶“ž)|âîa<Û®O“&Èߞc¬â©‡é^8|„;_¾Íîy¼¹of|u<^Ü…”›Â‚Рo›# Ô½éS/9!À”Ù‹,œ ~1Ѧ0ù 4î»á8“„Ô[“tMKD¢× Û}ްƒ'Œûn8ÎÀ;&“ÿ†d †¶ƒ°þ*Ë0íñø<KxjÔd]Çp"4»(%{—n‰H8ûŽ9àÄ)Åå²”n‰H8fÄ!K5ÓíÁSçÈ¡úbx}îGñ­©aº=xêyâ”ô°ÙH´>¤„oúÔ×I§/éa¢­wNœ"±°ÿ‡½K®D¤„‰¶Þ9q ˆ_}ýtYرäJ„ê$½ó}k¦Ó¥Ä:Âä:î\9ôN Æ,­‘XG˜\Ç+'‚‰Àx¤U"ëÂ\Ã1x‚°–dVŸðFÝ9)ôeÙÀ›L&n‰DBõaÐÙÂùùy}1 €íÕ^º=yóE³£¬ÈÔ(˜7ó¢“Édaæi YQA˜Ö HEqjè^}Âmaê#‘J}H#S™h.S,“J}Hìñ  d«ß¡)du±w„©tÖ%sŽèL*uñ—ˆØƒÐ¸Ÿs¼#þ{LÅßX¨¨ƒÐ¸Oˆ“EÛâo,X&òúu÷ q²€e"¯Q!ÀTä-I‹4 ú9k´'ò–‚Å\" Bƒ>EΰLÌõ!™Õ'€b%´Ž)j7ëËM¬Š}ºœ;Ú`På!ÚúãÔhœGŠU8wÀ2ÑÖ‡ƒ`*æ;,ÈF\AhÐçÁy¤)Ñöl,ÂúWôype"¬q!ÀL„­YŠ( úœ8›l/ÂÖFÄV" Bƒ>'Î&°Llõ!¢ ˜‰­i cQ¡Ÿ%§•mÄÖ4Ь¨êCAhÄgÉi–‰ª>D„3Qõ ” ÿ 4èóæü²®¨zÚOqèõ ƒ>oÎ/°P<Å!ÆÕ'€bE»@ëyj4žÖ˜ö8ˬN –&†úÐsô%p–eb¨ýß,0Cs@z B#¾(N7«ˆ¡9 {½×‡Þ‚Ј/ŠÓ ,Ó{}05 D¡÷¶€bõ„F|™œwÞÑ{[@ú-ý¡_&çX¨ßâ°þõã«ã—·!„px2ú~Ðô¥ñ=ýZ·#_ýy¹w2F£“pz|5^óï›+œÀ<)Hèµ8¬„ã~Þîï~ !„ðiwÿöþqÍŸgÄÎê±8lppïóÎlûîaÝ– Æ$½[óáãýíl{çóÞ¢oyÿåÚUUM&“õ~(yqAˆ:ƒº^êÚAøiw?Ü?oîBØû–úŠu³€¬ª*„ ‹¥ðËôR6˜­O‡Ö§IWòô²QUÕ4b™%káΗo³;dïg÷ͬ婶- ‹¥L°H÷ÅaÝçwŽÎN.†Ãa!žŒŽÖlŸM³pB0SZ*X(úk„!„pð}4úÞÄχP2·M /ݦ7fG 'Y¦ãâ°AGؘAm[/X uX¨ãâÐ[G(¡X&ˆJA8¨¥àd2‘‚%SËd2€uYºÂÁë?z|¢p "°P—Å¡¯õ5‚P(ÓÄ¦ë ¬GàtCSˆÊXÓ¬®›âàñ ú§2 uSÚ}|âý•(B“ÉdúÒQ3¥PÑ¡vƒ°¾Å;¡(Q á,³®ŠCÿS£R >KtPúB n‰"Z‚X(”yÓô³±¶‹ƒ $ %°Pþ×ìi÷‰™ $.*f–´ûl©ÕÊ ‰‹Š Ìkµ2B ]º|"'‰Žº™]>Mi©8B¢£n µT!1š¾¶ï½ ú{â'‰—,Ì€þžfµñѪçÕ'à}Ó,ôBZ`ªVQ¬> =…0!ˆÃ4YQ„T˜%jOµm3¥i‘‚´¤ñÙQAHìžjqè& ñÏX‚4ˆÃ´¸Y”„B’1¨m»^9ó¢´ªÙOZ‚4HA`¦ÙOZíÞ5 ÛÉq¿(iÑ5)˜")H7šš „ÄkðúnêšúÈej”èÔoÖJÁT˜%9:B"5™LæçBÅaü¤ ]jdvT£ùt˜×È/AHtÞÏA2¦YU¿‡`ò-F&EéÅö—¥Í8ŸŸ×£€˜`^”t B’¤ìÆÆ¼(=Ú² B’¤ì3[AlKƒNÒ!©R|ã¡A'×AHª_ nãš ­hÍI $mªpï´æÄc³‚ I›* ÌlV!°!í8y„ä@Eî…vœmP !9P‘© ªÕ'€MX‰žl´„õå&„"­R—;æh­u«©Q2¡.SëVA¬ÍÝIäD’ºúoâ·z5„dE¦V¯‚Xƒž›üB2¤X·GÏMBV,‚ )Ö@X¹B`UZm²$É–ªÝ8­6ÉY¥̽Yf|uüãò6„OFß–ÿç©…ß1PµUêÀ› _ýy¹w2:;áæbx|õ×ÙÑÎÜß~P /±#W¯§FÇÿü¼ÝßýBáÓîþíýcûM1;Ú )H¢>¬ó/ÝÞûü«¼{‡ƒ¹–ðútxBXÒz¹6ñP»ëÀoÃá0„Âþ=ÞßÎþËÎç½ß¿st6: !L¯žïÎMžÖWœ¨.ó¢dì·ÑhTûãî~¸Þ?Ü…°»üoîýëðòôþ1„ù«ˆE|{ ©{§Ì?>q÷0žm×§I!UŠ8ðNx„;_¾Íîy¼¹of|u<^ÜïÍn•ñI1AºlTU5™Læ¿>XøÕ6œŸŸ/»ÚVUUa>õ¼b Xʼ(ù©ªjšˆ3‚‚(ëë2/J®êq8ÿ@=dKYžB! B/“¥:B`1 4{ªm BŠ£¾¯HMÞž^âPRõ˜y„ÀBúf 1hûf/Ú&Zž¯ŸƒC ¦·Ì´„õ'è…"QQè¡dƒÚ¶©Qà“¢ämð:'“‰ ¤\*þBze 1}×ZUU¨§\*>”éÍëFu„À/ºdò6™Lê)8Ý„”Né¯Ó%“±e«- BJ§ôCÉÜ,„ðòêaÍ1e„‚ xÎÂÁÇßÙ„‚ Òo,…B(Ý›nx~ýnÈ› „_Êœ uÃOµEÚÄ!å„ðKQ¤ËR_R«O@¡ÞOý§Ú3UU-{ 2`õ x%ûå™Vÿœö…ƒç¿U…åÏ#CÒLÂ+y§`XóðÍKú߈—nCÖítE å„°@~¤›¥ ¤¦FalRpÝBÞ.Cy!äL#„°TºÏ×o¼ç³ÕÚf‹w7¹[%AK¥;AºÙž/le!Ù„íÁ7_Üz ‚Þ“Öìhº-,ôÈãðž$¢¥½‡=4…”@GÉK"­!Z‚>çiœ{ɱú|,Ζ+ν‚äX}“ßëß _¦FaU‘LEJAh– „Uõ›@‘Ä0äGB4‚ÐAëÑ™Af!¬§ãÎLîBÛ!DÍŒ(´MÂÚ:èÒ4‚ÐAkë KÓBg!DD#Ý„°¡6BK#Ý„°¡CK#=„Ð? ôÈê°•m^íõÙƒAg+PŸŸŸ×£€˜…®¹"Q„°­uƒÍt(DE¶V 6 ÄIBG4‚'AÍXÖði!r‚š±¬áÓBä!´B#©„Фªªªª AHGwÔ/š oó¯vi÷k«ìÁ6Úx[3ò3‰ôoÆÿo&±“þÍ6þÍù/š h‚€¢u}Ð{·›â`6ÈÁl–ãÙ ³Y §Ž€¢ BŠ&(Z§× 6:BŠ&(š  h‚€¢ BŠÖÉK·ÇWÇ?.oCáðdôý ‹™«›‹áéõóöþíôº;Ù¸¹žÞ9ž ˜PÃs{¿*§£¹›‹áß»õ8IáøêÏ˽“ÑÙA7Ãã+'tsㇻ—Ïã«ã^}q0·7¾:>½a¿ïýHßÍÅð4œŒF>ì6áæâÇså_ÿøqñY±¾—fûüúÚ‚HjjtüÏÏÛýÝO!„>íîßÞ?¶þ#óµstöò»°óy/8˜ ¸¹øñóÛ_'‡}ïGúÆW_ž(Ö z®œ;_¾í÷¼'©:ø>^ÿv/Фn®î}þÕ¶Ü=Œ;ù™¹?ܽüš°±ñÕñi8ÑV7aüÏÏÛý»¿‡S7}ïOò¾Þ^þ¸¸™Úï>a4çm$µ?5úx;ÛÞù¼×úÏ+ÃøêÏËÛÓ3|ÏsO L#ïoCøãÿFg;Ó ©‹¯¦ò¶sðõ0„ðŸáð:„ÃDz!‹"©ýŽðÓîþl{üp×úÏ+ÁÍÅËðÇ_ÊÌvÆw!\Ÿ‡Ãáðô:Ü^þÐÇléåƒöÁ×Ãpýsã«ãÓ»?þ÷ûtnïúôøÊ\Z#ER'w†»‡q8xn^ê=)pƒcSvŽÎFGÏÛs÷•±®O»ûágí7ÝÄývïoÃÞ¿j,îC0>›ñ6’Úïw¾|›Ý!óxë·c+RXí|ù¶ûóŸq˜Þ6ã#ï–>íîϺê›ÿ\ ²(’ºY}böl‘ç·SŒ0„àñ¢Æèá)ÂFýú}w<7ôªdþ:Šo#É2Líÿ(9{MèXIEND®B`‚PythonQwt-0.12.7/doc/conf.py000066400000000000000000000152641465265754400156540ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # 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 # 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.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # 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"] try: import sphinx.ext.viewcode # noqa: F401 extensions.append("sphinx.ext.viewcode") except ImportError: print("WARNING: the Sphinx viewcode extension was not found", file=sys.stderr) # 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' # The master toctree document. master_doc = "index" # General information about the project. project = "PythonQwt" import time this_year = time.strftime("%Y", time.localtime()) copyright = "2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)" # 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. # # The short X.Y version. import qwt version = ".".join(qwt.__version__.split(".")[:2]) # The full version, including alpha/beta/rc tags. release = qwt.__version__ # 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 documents that shouldn't be included in the build. # unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # 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 = ["qwt."] autodoc_member_order = "bysource" # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. 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 = {'sidebarbgcolor': '#227A2B', ## 'sidebarlinkcolor': '#98ff99'} # 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 = "%s %s Manual" % (project, version) # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = '%s Manual' % project # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "_static/PythonQwt_logo.png" # 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 = 'favicon.ico' # 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"] # 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_use_modindex = True # 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, 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 = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = "PythonQwt" # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). # latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). # latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ("index", "qwt.tex", "PythonQwt Manual", "Pierre Raybaut", "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 # Additional stuff for the LaTeX preamble. # latex_preamble = '' # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_use_modindex = True PythonQwt-0.12.7/doc/examples/000077500000000000000000000000001465265754400161635ustar00rootroot00000000000000PythonQwt-0.12.7/doc/examples/bodedemo.rst000066400000000000000000000002121465265754400204660ustar00rootroot00000000000000Bode demo ~~~~~~~~~ .. image:: /../qwt/tests/data/bodedemo.png .. literalinclude:: /../qwt/tests/test_bodedemo.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/cartesian.rst000066400000000000000000000002261465265754400206660ustar00rootroot00000000000000Cartesian demo ~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/cartesian.png .. literalinclude:: /../qwt/tests/test_cartesian.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/cpudemo.rst000066400000000000000000000002201465265754400203430ustar00rootroot00000000000000CPU plot demo ~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/cpudemo.png .. literalinclude:: /../qwt/tests/test_cpudemo.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/curvebenchmark1.rst000066400000000000000000000002621465265754400217750ustar00rootroot00000000000000Curve benchmark demo 1 ~~~~~~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/curvebenchmark1.png .. literalinclude:: /../qwt/tests/test_curvebenchmark1.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/curvebenchmark2.rst000066400000000000000000000002621465265754400217760ustar00rootroot00000000000000Curve benchmark demo 2 ~~~~~~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/curvebenchmark2.png .. literalinclude:: /../qwt/tests/test_curvebenchmark2.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/curvedemo1.rst000066400000000000000000000002241465265754400207650ustar00rootroot00000000000000Curve demo 1 ~~~~~~~~~~~~ .. image:: /../qwt/tests/data/curvedemo1.png .. literalinclude:: /../qwt/tests/test_curvedemo1.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/curvedemo2.rst000066400000000000000000000002241465265754400207660ustar00rootroot00000000000000Curve demo 2 ~~~~~~~~~~~~ .. image:: /../qwt/tests/data/curvedemo2.png .. literalinclude:: /../qwt/tests/test_curvedemo2.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/data.rst000066400000000000000000000002021465265754400176200ustar00rootroot00000000000000Data demo ~~~~~~~~~ .. image:: /../qwt/tests/data/data.png .. literalinclude:: /../qwt/tests/test_data.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/errorbar.rst000066400000000000000000000002241465265754400205310ustar00rootroot00000000000000Error bar demo ~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/errorbar.png .. literalinclude:: /../qwt/tests/test_errorbar.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/eventfilter.rst000066400000000000000000000002401465265754400212400ustar00rootroot00000000000000Event filter demo ~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/eventfilter.png .. literalinclude:: /../qwt/tests/test_eventfilter.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/image.rst000066400000000000000000000002201465265754400177710ustar00rootroot00000000000000Image plot demo ~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/image.png .. literalinclude:: /../qwt/tests/test_image.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/index.rst000066400000000000000000000015351465265754400200300ustar00rootroot00000000000000.. _examples: Examples ======== The test launcher ----------------- A lot of examples are available in the ``qwt.test`` module :: from qwt import tests tests.run() The two lines above execute the ``PythonQwt`` test launcher: .. image:: /../qwt/tests/data/testlauncher.png GUI-based test launcher can be executed from the command line thanks to the ``PythonQwt`` test script. Unit tests may be executed from the commande line thanks to the console-based script ``PythonQwt-tests``: ``PythonQwt-tests --mode unattended``. Tests ----- Here are some examples from the `qwt.test` module: .. toctree:: :maxdepth: 2 bodedemo cartesian cpudemo curvebenchmark1 curvebenchmark2 curvedemo1 curvedemo2 data errorbar eventfilter image logcurve mapdemo multidemo simple vertical PythonQwt-0.12.7/doc/examples/logcurve.rst000066400000000000000000000002361465265754400205440ustar00rootroot00000000000000Log curve plot demo ~~~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/logcurve.png .. literalinclude:: /../qwt/tests/test_logcurve.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/mapdemo.rst000066400000000000000000000002061465265754400203350ustar00rootroot00000000000000Map demo ~~~~~~~~ .. image:: /../qwt/tests/data/mapdemo.png .. literalinclude:: /../qwt/tests/test_mapdemo.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/multidemo.rst000066400000000000000000000002161465265754400207130ustar00rootroot00000000000000Multi demo ~~~~~~~~~~ .. image:: /../qwt/tests/data/multidemo.png .. literalinclude:: /../qwt/tests/test_multidemo.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/simple.rst000066400000000000000000000002301465265754400202010ustar00rootroot00000000000000Really simple demo ~~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/simple.png .. literalinclude:: /../qwt/tests/test_simple.py :start-after: SHOW PythonQwt-0.12.7/doc/examples/vertical.rst000066400000000000000000000002341465265754400205250ustar00rootroot00000000000000Vertical plot demo ~~~~~~~~~~~~~~~~~~ .. image:: /../qwt/tests/data/vertical.png .. literalinclude:: /../qwt/tests/test_vertical.py :start-after: SHOW PythonQwt-0.12.7/doc/index.rst000066400000000000000000000003051465265754400162040ustar00rootroot00000000000000.. automodule:: qwt Contents: .. toctree:: :maxdepth: 2 overview installation examples/index reference/index Indices and tables: * :ref:`genindex` * :ref:`search` PythonQwt-0.12.7/doc/installation.rst000066400000000000000000000007651465265754400176100ustar00rootroot00000000000000Installation ============ Dependencies ------------ Requirements: * Python 3.8 or higher * PyQt5 5.15, PyQt6 or PySide6 * QtPy 1.9 or higher * NumPy 1.21 or higher * Sphinx for documentation generation * pytest, coverage for unit testing Installation ------------ From the source package: `python -m build` Help and support ---------------- External resources: * Bug reports and feature requests: `GitHub`_ .. _GitHub: https://github.com/PlotPyStack/PythonQwt PythonQwt-0.12.7/doc/overview.rst000066400000000000000000000071011465265754400167440ustar00rootroot00000000000000Purpose and Motivation ====================== The ``PythonQwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. Overview ======== The ``PythonQwt`` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...): - The subpackage `qwt.tests` contains the PythonQwt unit tests: - 75% were directly adapted from Qwt/C++ demos (Bode demo, cartesian demo, etc.). - 25% were written specifically for PythonQwt. - The test launcher is an exclusive PythonQwt feature. The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations. The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `guiqwt` (and in the forthcoming `plotpy` library, resulting of the merge of `guidata` and `guiqwt`): `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt` and `plotpy`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. The `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not available here (a similar item is already implemented in `guiqwt`/`plotpy`). As a consequence, the following classes are not implemented: `QwtPlotHistogram`, `QwtIntervalSeriesData`, `QwtIntervalSample`. The following data structure objects are not implemented as they seemed irrelevant with Python and NumPy: `QwtCPointerData` (as a consequence, method `QwtPlot.setRawSamples` is not implemented), `QwtSyntheticPointData`. The following sample data type objects are not implemented as they seemed quite specific: `QwtSetSample`, `QwtOHLCSample`. For similar reasons, the `QwtPointPolar` class and the following sample iterator objects are not implemented: `QwtSetSeriesData`, `QwtTradingChartData` and `QwtPoint3DSeriesData`. The following classes are not implemented because they seem inappropriate in the Python/NumPy context: `QwtArraySeriesData`, `QwtPointSeriesData`, `QwtAbstractSeriesStore`. Threads: - Multiple threads for graphic rendering is implemented in Qwt C++ code thanks to the `QtConcurrent` and `QFuture` Qt features which are currently not supported by PyQt. - As a consequence the following API is not supported in `PythonQwt`: - `QwtPlotItem.renderThreadCount` - `QwtPlotItem.setRenderThreadCount` - option `numThreads` in `QwtPointMapper.toImage` The `QwtClipper` class is not implemented yet (and it will probably be very difficult or even impossible to implement it in pure Python without performance issues). As a consequence, when zooming in a plot curve, the entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). The curve fitter feature is not implemented because powerful curve fitting features are already implemented in `guiqwt`/`plotpy`. Other API compatibility issues with `Qwt`: - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no sense in PythonQwt (the polyline plotting is not taking more memory than the array data that is already there). - `QwtPlotCurve.Fitted` option was removed as this option is not supported at the moment. PythonQwt-0.12.7/doc/plot_example.py000066400000000000000000000011251465265754400174070ustar00rootroot00000000000000import os.path as osp import numpy as np from qtpy import QtWidgets as QW import qwt from qwt import qthelpers as qth app = QW.QApplication([]) x = np.linspace(-10, 10, 500) plot = qwt.QwtPlot("Trigonometric functions") plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) qth.take_screenshot( plot, osp.join(osp.abspath(osp.dirname(__file__)), "_static", "QwtPlot_example.png"), size=(600, 300), ) PythonQwt-0.12.7/doc/reference/000077500000000000000000000000001465265754400163035ustar00rootroot00000000000000PythonQwt-0.12.7/doc/reference/graphic.rst000066400000000000000000000000341465265754400204470ustar00rootroot00000000000000.. automodule:: qwt.graphic PythonQwt-0.12.7/doc/reference/index.rst000066400000000000000000000004111465265754400201400ustar00rootroot00000000000000Reference ========= Public API: .. toctree:: :maxdepth: 2 plot scale symbol text toqimage Private API: .. toctree:: :maxdepth: 2 graphic interval plot_directpainter plot_layout plot_series transform PythonQwt-0.12.7/doc/reference/interval.rst000066400000000000000000000000351465265754400206570ustar00rootroot00000000000000.. automodule:: qwt.interval PythonQwt-0.12.7/doc/reference/plot.rst000066400000000000000000000005651465265754400200210ustar00rootroot00000000000000Plot widget fundamentals ------------------------ .. automodule:: qwt.plot .. automodule:: qwt.plot_canvas Plot items ---------- .. automodule:: qwt.plot_grid .. automodule:: qwt.plot_curve .. automodule:: qwt.plot_marker Additional plot features ------------------------ .. automodule:: qwt.legend .. automodule:: qwt.color_map .. automodule:: qwt.plot_renderer PythonQwt-0.12.7/doc/reference/plot_directpainter.rst000066400000000000000000000000471465265754400227310ustar00rootroot00000000000000.. automodule:: qwt.plot_directpainter PythonQwt-0.12.7/doc/reference/plot_layout.rst000066400000000000000000000000401465265754400214020ustar00rootroot00000000000000.. automodule:: qwt.plot_layout PythonQwt-0.12.7/doc/reference/plot_series.rst000066400000000000000000000000401465265754400213570ustar00rootroot00000000000000.. automodule:: qwt.plot_series PythonQwt-0.12.7/doc/reference/scale.rst000066400000000000000000000002601465265754400201220ustar00rootroot00000000000000Scales ------ .. automodule:: qwt.scale_map .. automodule:: qwt.scale_widget .. automodule:: qwt.scale_div .. automodule:: qwt.scale_engine .. automodule:: qwt.scale_draw PythonQwt-0.12.7/doc/reference/symbol.rst000066400000000000000000000000331465265754400203360ustar00rootroot00000000000000.. automodule:: qwt.symbol PythonQwt-0.12.7/doc/reference/text.rst000066400000000000000000000000311465265754400200130ustar00rootroot00000000000000.. automodule:: qwt.text PythonQwt-0.12.7/doc/reference/toqimage.rst000066400000000000000000000000351465265754400206410ustar00rootroot00000000000000.. automodule:: qwt.toqimage PythonQwt-0.12.7/doc/reference/transform.rst000066400000000000000000000000361465265754400210470ustar00rootroot00000000000000.. automodule:: qwt.transform PythonQwt-0.12.7/doc/requirements.txt000066400000000000000000000000711465265754400176270ustar00rootroot00000000000000numpy==1.22.0 PyQt5==5.15.0 PyQt5-sip==12.8.0 QtPy==1.9.0PythonQwt-0.12.7/doc/symbol_path_example.py000066400000000000000000000021311465265754400207500ustar00rootroot00000000000000import os.path as osp import numpy as np from qtpy import QtCore as QC from qtpy import QtGui as QG from qtpy import QtWidgets as QW import qwt from qwt import qthelpers as qth app = QW.QApplication([]) # --- Construct custom symbol --- path = QG.QPainterPath() path.moveTo(0, 8) path.lineTo(0, 5) path.lineTo(-3, 5) path.lineTo(0, 0) path.lineTo(3, 5) path.lineTo(0, 5) transform = QG.QTransform() transform.rotate(-30.0) path = transform.map(path) pen = QG.QPen(QC.Qt.black, 2) pen.setJoinStyle(QC.Qt.MiterJoin) symbol = qwt.QwtSymbol() symbol.setPen(pen) symbol.setBrush(QC.Qt.red) symbol.setPath(path) symbol.setPinPoint(QC.QPointF(0.0, 0.0)) symbol.setSize(10, 14) # --- Test it within a simple plot --- curve = qwt.QwtPlotCurve() curve_pen = QG.QPen(QC.Qt.blue) curve_pen.setStyle(QC.Qt.DotLine) curve.setPen(curve_pen) curve.setSymbol(symbol) x = np.linspace(0, 10, 10) curve.setData(x, np.sin(x)) plot = qwt.QwtPlot() curve.attach(plot) plot.replot() qth.take_screenshot( plot, osp.join(osp.abspath(osp.dirname(__file__)), "_static", "symbol_path_example.png"), size=(600, 300), ) PythonQwt-0.12.7/pyproject.toml000066400000000000000000000052671465265754400165260ustar00rootroot00000000000000# PythonQwt setup configuration file [build-system] requires = ["setuptools"] build-backend = "setuptools.build_meta" [project] name = "PythonQwt" authors = [{ name = "Pierre Raybaut", email = "pierre.raybaut@gmail.com" }] description = "Qt plotting widgets for Python" readme = "README.md" license = { file = "LICENSE" } classifiers = [ "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development :: Widget Sets", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Software Development :: User Interfaces", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] requires-python = ">=3.8, <4" dependencies = ["NumPy>=1.21", "QtPy>=1.9"] dynamic = ["version"] [project.urls] Homepage = "https://github.com/PlotPyStack/PythonQwt/" Documentation = "https://PythonQwt.readthedocs.io/en/latest/" [project.gui-scripts] PythonQwt-tests = "qwt.tests:run" [project.optional-dependencies] dev = ["ruff", "pylint", "Coverage"] doc = ["PyQt5", "sphinx>6", "python-docs-theme"] test = ["pytest", "pytest-xvfb"] [tool.setuptools.packages.find] include = ["qwt*"] [tool.setuptools.package-data] "*" = ["*.png", "*.svg", "*.mo", "*.cfg", "*.toml"] [tool.setuptools.dynamic] version = { attr = "qwt.__version__" } [tool.pytest.ini_options] addopts = "qwt" [tool.ruff] exclude = [".git", ".vscode", "build", "dist"] line-length = 88 # Same as Black. indent-width = 4 # Same as Black. target-version = "py38" # Assume Python 3.8 [tool.ruff.lint] # all rules can be found here: https://beta.ruff.rs/docs/rules/ select = ["E", "F", "W", "I", "NPY201"] ignore = [ "E203", # space before : (needed for how black formats slicing) ] [tool.ruff.format] quote-style = "double" # Like Black, use double quotes for strings. indent-style = "space" # Like Black, indent with spaces, rather than tabs. skip-magic-trailing-comma = false # Like Black, respect magic trailing commas. line-ending = "auto" # Like Black, automatically detect the appropriate line ending. [tool.ruff.lint.per-file-ignores] "doc/*" = ["E402"] "qwt/tests/*" = ["E402"] PythonQwt-0.12.7/qwt/000077500000000000000000000000001465265754400144135ustar00rootroot00000000000000PythonQwt-0.12.7/qwt/__init__.py000066400000000000000000000134351465265754400165320ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ PythonQwt ========= The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical user interfaces for the Python programming language. It consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with some limitations. .. image:: /../qwt/tests/data/testlauncher.png External resources: * Python Package Index: `PyPI`_ * Project page on GitHub: `GitHubPage`_ * Bug reports and feature requests: `GitHub`_ .. _PyPI: https://pypi.python.org/pypi/PythonQwt .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PlotPyStack/PythonQwt """ import warnings from qwt.color_map import QwtLinearColorMap # noqa: F401 from qwt.interval import QwtInterval from qwt.legend import QwtLegend, QwtLegendData, QwtLegendLabel # noqa: F401 from qwt.painter import QwtPainter # noqa: F401 from qwt.plot import QwtPlot # noqa: F401 from qwt.plot_canvas import QwtPlotCanvas # noqa: F401 from qwt.plot_curve import QwtPlotCurve as QPC # see deprecated section from qwt.plot_curve import QwtPlotItem # noqa: F401 from qwt.plot_directpainter import QwtPlotDirectPainter # noqa: F401 from qwt.plot_grid import QwtPlotGrid as QPG # see deprecated section from qwt.plot_marker import QwtPlotMarker # noqa: F401 from qwt.plot_renderer import QwtPlotRenderer # noqa: F401 from qwt.plot_series import ( # noqa: F401 QwtPlotSeriesItem, QwtPointArrayData, QwtSeriesData, QwtSeriesStore, ) from qwt.scale_div import QwtScaleDiv # noqa: F401 from qwt.scale_draw import QwtAbstractScaleDraw, QwtScaleDraw # noqa: F401 from qwt.scale_engine import QwtLinearScaleEngine, QwtLogScaleEngine # noqa: F401 from qwt.scale_map import QwtScaleMap # noqa: F401 from qwt.symbol import QwtSymbol as QSbl # see deprecated section from qwt.text import QwtText # noqa: F401 from qwt.toqimage import array_to_qimage as toQImage # noqa: F401 __version__ = "0.12.7" QWT_VERSION_STR = "6.1.5" ## ============================================================================ ## Deprecated classes and attributes (to be removed in next major release) ## ============================================================================ # Remove deprecated QwtPlotItem.setAxis (replaced by setAxes) # Remove deprecated QwtPlotCanvas.invalidatePaintCache (replaced by replot) ## ============================================================================ class QwtDoubleInterval(QwtInterval): def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None): warnings.warn( "`QwtDoubleInterval` has been removed in Qwt6: " "please use `QwtInterval` instead", RuntimeWarning, ) super(QwtDoubleInterval, self).__init__(minValue, maxValue, borderFlags) ## ============================================================================ class QwtLog10ScaleEngine(QwtLogScaleEngine): def __init__(self): warnings.warn( "`QwtLog10ScaleEngine` has been removed in Qwt6: " "please use `QwtLogScaleEngine` instead", RuntimeWarning, ) super(QwtLog10ScaleEngine, self).__init__(10) ## ============================================================================ class QwtPlotPrintFilter(object): def __init__(self): raise NotImplementedError( "`QwtPlotPrintFilter` has been removed in Qwt6: " "please rely on `QwtPlotRenderer` instead" ) ## ============================================================================ class QwtPlotCurve(QPC): @property def Yfx(self): raise NotImplementedError( "`Yfx` attribute has been removed " "(curve types are no longer implemented in Qwt6)" ) @property def Xfy(self): raise NotImplementedError( "`Yfx` attribute has been removed " "(curve types are no longer implemented in Qwt6)" ) ## ============================================================================ class QwtSymbol(QSbl): def draw(self, painter, *args): warnings.warn( "`draw` has been removed in Qwt6: " "please rely on `drawSymbol` and `drawSymbols` instead", RuntimeWarning, ) from qtpy.QtCore import QPointF if len(args) == 2: self.drawSymbols(painter, [QPointF(*args)]) else: self.drawSymbol(painter, *args) ## ============================================================================ class QwtPlotGrid(QPG): def majPen(self): warnings.warn( "`majPen` has been removed in Qwt6: " "please use `majorPen` instead", RuntimeWarning, ) return self.majorPen() def minPen(self): warnings.warn( "`minPen` has been removed in Qwt6: " "please use `minorPen` instead", RuntimeWarning, ) return self.minorPen() def setMajPen(self, *args): warnings.warn( "`setMajPen` has been removed in Qwt6: " "please use `setMajorPen` instead", RuntimeWarning, ) return self.setMajorPen(*args) def setMinPen(self, *args): warnings.warn( "`setMinPen` has been removed in Qwt6: " "please use `setMinorPen` instead", RuntimeWarning, ) return self.setMinorPen(*args) ## ============================================================================ PythonQwt-0.12.7/qwt/_math.py000066400000000000000000000027351465265754400160640ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) import math from qtpy.QtCore import qFuzzyCompare def qwtFuzzyCompare(value1, value2, intervalSize): eps = abs(1.0e-6 * intervalSize) if value2 - value1 > eps: return -1 elif value1 - value2 > eps: return 1 else: return 0 def qwtFuzzyGreaterOrEqual(d1, d2): return (d1 >= d2) or qFuzzyCompare(d1, d2) def qwtFuzzyLessOrEqual(d1, d2): return (d1 <= d2) or qFuzzyCompare(d1, d2) def qwtSign(x): if x > 0.0: return 1 elif x < 0.0: return -1 else: return 0 def qwtSqr(x): return x**2 def qwtFastAtan(x): if x < -1.0: return -0.5 * math.pi - x / (x**2 + 0.28) elif x > 1.0: return 0.5 * math.pi - x / (x**2 + 0.28) else: return x / (1.0 + x**2 * 0.28) def qwtFastAtan2(y, x): if x > 0: return qwtFastAtan(y / x) elif x < 0: d = qwtFastAtan(y / x) if y >= 0: return d + math.pi else: return d - math.pi elif y < 0.0: return -0.5 * math.pi elif y > 0.0: return 0.5 * math.pi else: return 0.0 def qwtRadians(degrees): return degrees * math.pi / 180.0 def qwtDegrees(radians): return radians * 180.0 / math.pi PythonQwt-0.12.7/qwt/color_map.py000066400000000000000000000270441465265754400167470ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ Color maps ---------- QwtColorMap ~~~~~~~~~~~ .. autoclass:: QwtColorMap :members: QwtLinearColorMap ~~~~~~~~~~~~~~~~~ .. autoclass:: QwtLinearColorMap :members: QwtAlphaColorMap ~~~~~~~~~~~~~~~~ .. autoclass:: QwtAlphaColorMap :members: """ from qtpy.QtCore import QObject, Qt, qIsNaN from qtpy.QtGui import QColor, qAlpha, qBlue, qGreen, qRed, qRgb, qRgba class ColorStop(object): def __init__(self, pos=0.0, color=None): self.pos = pos if color is None: self.rgb = 0 else: self.rgb = color.rgba() self.r = qRed(self.rgb) self.g = qGreen(self.rgb) self.b = qBlue(self.rgb) self.a = qAlpha(self.rgb) # when mapping a value to rgb we will have to calcualate: # - const int v = int( ( s1.v0 + ratio * s1.vStep ) + 0.5 ); # Thus adding 0.5 ( for rounding ) can be done in advance self.r0 = self.r + 0.5 self.g0 = self.g + 0.5 self.b0 = self.b + 0.5 self.a0 = self.a + 0.5 self.rStep = self.gStep = self.bStep = self.aStep = 0.0 self.posStep = 0.0 def updateSteps(self, nextStop): self.rStep = nextStop.r - self.r self.gStep = nextStop.g - self.g self.bStep = nextStop.b - self.b self.aStep = nextStop.a - self.a self.posStep = nextStop.pos - self.pos class ColorStops(object): def __init__(self): self.__doAlpha = False self.__stops = [] def insert(self, pos, color): if pos < 0.0 or pos > 1.0: return if len(self.__stops) == 0: index = 0 self.__stops = [None] else: index = self.findUpper(pos) if ( index == len(self.__stops) or abs(self.__stops[index].pos - pos) >= 0.001 ): self.__stops.append(None) for i in range(len(self.__stops) - 1, index, -1): self.__stops[i] = self.__stops[i - 1] self.__stops[index] = ColorStop(pos, color) self.__doAlpha = color.alpha() != 255 if index > 0: self.__stops[index - 1].updateSteps(self.__stops[index]) if index < len(self.__stops) - 1: self.__stops[index].updateSteps(self.__stops[index + 1]) def stops(self): return self.__stops def findUpper(self, pos): index = 0 n = len(self.__stops) while n > 0: half = n >> 1 middle = index + half if self.__stops[middle].pos <= pos: index = middle + 1 n -= half + 1 else: n = half return index def rgb(self, mode, pos): if pos <= 0.0: return self.__stops[0].rgb if pos >= 1.0: return self.__stops[-1].rgb index = self.findUpper(pos) if mode == QwtLinearColorMap.FixedColors: return self.__stops[index - 1].rgb else: s1 = self.__stops[index - 1] ratio = (pos - s1.pos) / s1.posStep r = int(s1.r0 + ratio * s1.rStep) g = int(s1.g0 + ratio * s1.gStep) b = int(s1.b0 + ratio * s1.bStep) if self.__doAlpha: if s1.aStep: a = int(s1.a0 + ratio * s1.aStep) return qRgba(r, g, b, a) else: return qRgba(r, g, b, s1.a) else: return qRgb(r, g, b) class QwtColorMap(object): """ QwtColorMap is used to map values into colors. For displaying 3D data on a 2D plane the 3rd dimension is often displayed using colors, like f.e in a spectrogram. Each color map is optimized to return colors for only one of the following image formats: * `QImage.Format_Indexed8` * `QImage.Format_ARGB32` .. py:class:: QwtColorMap(format_) :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) .. seealso :: :py:data:`qwt.QwtScaleWidget` """ # enum Format RGB, Indexed = list(range(2)) def __init__(self, format_=None): if format_ is None: format_ = self.RGB self.__format = format_ def color(self, interval, value): """ Map a value into a color :param qwt.interval.QwtInterval interval: valid interval for value :param float value: value :return: the color corresponding to value .. warning :: This method is slow for Indexed color maps. If it is necessary to map many values, its better to get the color table once and find the color using `colorIndex()`. """ if self.__format == self.RGB: return QColor.fromRgba(self.rgb(interval, value)) else: index = self.colorIndex(interval, value) return self.colorTable(interval)[index] def format(self): return self.__format def colorTable(self, interval): """ Build and return a color map of 256 colors :param qwt.interval.QwtInterval interval: range for the values :return: a color table, that can be used for a `QImage` The color table is needed for rendering indexed images in combination with using `colorIndex()`. """ table = [0] * 256 if interval.isValid(): step = interval.width() / (len(table) - 1) for i in range(len(table)): table[i] = self.rgb(interval, interval.minValue() + step * i) return table def rgb(self, interval, value): # To be reimplemented return QColor().rgb() def colorIndex(self, interval, value): # To be reimplemented return 0 class QwtLinearColorMap_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.colorStops = ColorStops() self.mode = None class QwtLinearColorMap(QwtColorMap): """ Build a linear color map with two stops. .. py:class:: QwtLinearColorMap(format_) Build a color map with two stops at 0.0 and 1.0. The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`. :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) .. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]): :noindex: Build a color map with two stops at 0.0 and 1.0. :param QColor color1: color at 0. :param QColor color2: color at 1. :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) """ # enum Mode FixedColors, ScaledColors = list(range(2)) def __init__(self, *args): color1, color2 = QColor(Qt.blue), QColor(Qt.yellow) format_ = QwtColorMap.RGB if len(args) == 1: (format_,) = args elif len(args) == 2: color1, color2 = args elif len(args) == 3: color1, color2, format_ = args elif len(args) != 0: raise TypeError( "%s() takes 0, 1, 2 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) super(QwtLinearColorMap, self).__init__(format_) self.__data = QwtLinearColorMap_PrivateData() self.__data.mode = self.ScaledColors self.setColorInterval(color1, color2) def setMode(self, mode): """ Set the mode of the color map :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors` `FixedColors` means the color is calculated from the next lower color stop. `ScaledColors` means the color is calculated by interpolating the colors of the adjacent stops. """ self.__data.mode = mode def mode(self): """ :return: the mode of the color map .. seealso :: :py:meth:`QwtLinearColorMap.setMode` """ return self.__data.mode def setColorInterval(self, color1, color2): self.__data.colorStops = ColorStops() self.__data.colorStops.insert(0.0, QColor(color1)) self.__data.colorStops.insert(1.0, QColor(color2)) def addColorStop(self, value, color): if value >= 0.0 and value <= 1.0: self.__data.colorStops.insert(value, QColor(color)) def colorStops(self): return self.__data.colorStops.stops() def color1(self): return QColor(self.__data.colorStops.rgb(self.__data.mode, 0.0)) def color2(self): return QColor(self.__data.colorStops.rgb(self.__data.mode, 1.0)) def rgb(self, interval, value): if qIsNaN(value): return 0 width = interval.width() if width <= 0.0: return 0 ratio = (value - interval.minValue()) / width return self.__data.colorStops.rgb(self.__data.mode, ratio) def colorIndex(self, interval, value): width = interval.width() if qIsNaN(value) or width <= 0.0 or value <= interval.minValue(): return 0 if value >= interval.maxValue(): return 255 ratio = (value - interval.minValue()) / width if self.__data.mode == self.FixedColors: return int(ratio * 255) else: return int(ratio * 255 + 0.5) class QwtAlphaColorMap_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.color = QColor() self.rgb = QColor().rgb() self.rgbMax = QColor().rgb() class QwtAlphaColorMap(QwtColorMap): """ QwtAlphaColorMap varies the alpha value of a color .. py:class:: QwtAlphaColorMap(color) Build a color map varying the alpha value of a color. :param QColor color: color of the map """ def __init__(self, color): super(QwtAlphaColorMap, self).__init__(QwtColorMap.RGB) self.__data = QwtAlphaColorMap_PrivateData() self.setColor(color) def setColor(self, color): """ Set the color of the map :param QColor color: color of the map """ self.__data.color = color self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0) self.__data.rgbMax = self.__data.rgb | (255 << 24) def color(self): """ :return: the color of the map .. seealso :: :py:meth:`QwtAlphaColorMap.setColor` """ return self.__data.color def rgb(self, interval, value): if qIsNaN(value): return 0 width = interval.width() if width <= 0.0: return 0 if value <= interval.minValue(): return self.__data.rgb if value >= interval.maxValue(): return self.__data.rgbMax ratio = (value - interval.minValue()) / width return self.__data.rgb | (int(round(255 * ratio)) << 24) def colorIndex(self, interval, value): return 0 PythonQwt-0.12.7/qwt/column_symbol.py000066400000000000000000000132001465265754400176430ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) from qtpy.QtCore import QLineF, QObject, QRectF, Qt from qtpy.QtGui import QPalette, QPolygonF from qwt.interval import QwtInterval def qwtDrawBox(p, rect, pal, lw): if lw > 0.0: if rect.width() == 0.0: p.setPen(pal.dark().color()) p.drawLine(QLineF(rect.topLeft(), rect.bottomLeft())) return if rect.height() == 0.0: p.setPen(pal.dark().color()) p.drawLine(QLineF(rect.topLeft(), rect.topRight())) return lw = min([lw, rect.height() / 2.0 - 1.0]) lw = min([lw, rect.width() / 2.0 - 1.0]) outerRect = rect.adjusted(0, 0, 1, 1) polygon = QPolygonF(outerRect) if outerRect.width() > 2 * lw and outerRect.height() > 2 * lw: innerRect = outerRect.adjusted(lw, lw, -lw, -lw) polygon = polygon.subtracted(innerRect) p.setPen(Qt.NoPen) p.setBrush(pal.dark()) p.drawPolygon(polygon) windowRect = rect.adjusted(lw, lw, -lw + 1, -lw + 1) if windowRect.isValid(): p.fillRect(windowRect, pal.window()) def qwtDrawPanel(painter, rect, pal, lw): if lw > 0.0: if rect.width() == 0.0: painter.setPen(pal.window().color()) painter.drawLine(QLineF(rect.topLeft(), rect.bottomLeft())) return if rect.height() == 0.0: painter.setPen(pal.window().color()) painter.drawLine(QLineF(rect.topLeft(), rect.topRight())) return lw = min([lw, rect.height() / 2.0 - 1.0]) lw = min([lw, rect.width() / 2.0 - 1.0]) outerRect = rect.adjusted(0, 0, 1, 1) innerRect = outerRect.adjusted(lw, lw, -lw, -lw) lines = [QPolygonF(), QPolygonF()] lines[0] += outerRect.bottomLeft() lines[0] += outerRect.topLeft() lines[0] += outerRect.topRight() lines[0] += innerRect.topRight() lines[0] += innerRect.topLeft() lines[0] += innerRect.bottomLeft() lines[1] += outerRect.topRight() lines[1] += outerRect.bottomRight() lines[1] += outerRect.bottomLeft() lines[1] += innerRect.bottomLeft() lines[1] += innerRect.bottomRight() lines[1] += innerRect.topRight() painter.setPen(Qt.NoPen) painter.setBrush(pal.light()) painter.drawPolygon(lines[0]) painter.setBrush(pal.dark()) painter.drawPolygon(lines[1]) painter.fillRect(rect.adjusted(lw, lw, -lw + 1, -lw + 1), pal.window()) class QwtColumnSymbol_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.style = QwtColumnSymbol.Box self.frameStyle = QwtColumnSymbol.Raised self.lineWidth = 2 self.palette = QPalette(Qt.gray) class QwtColumnSymbol(object): # enum Style NoStyle = -1 Box = 0 UserStyle = 1000 # enum FrameStyle NoFrame, Plain, Raised = list(range(3)) def __init__(self, style): self.__data = QwtColumnSymbol_PrivateData() self.__data.style = style def setStyle(self, style): self.__data.style = style def style(self): return self.__data.style def setPalette(self, palette): self.__data.palette = palette def palette(self): return self.__data.palette def setFrameStyle(self, frameStyle): self.__data.frameStyle = frameStyle def frameStyle(self): return self.__data.frameStyle def setLineWidth(self, width): self.__data.lineWidth = width def lineWidth(self): return self.__data.lineWidth def draw(self, painter, rect): painter.save() if self.__data.style == QwtColumnSymbol.Box: self.drawBox(painter, rect) painter.restore() def drawBox(self, painter, rect): r = rect.toRect() if self.__data.frameStyle == QwtColumnSymbol.Raised: qwtDrawPanel(painter, r, self.__data.palette, self.__data.lineWidth) elif self.__data.frameStyle == QwtColumnSymbol.Plain: qwtDrawBox(painter, r, self.__data.palette, self.__data.lineWidth) else: painter.fillRect(r.adjusted(0, 0, 1, 1), self.__data.palette.window()) class QwtColumnRect(object): # enum Direction LeftToRight, RightToLeft, BottomToTop, TopToBottom = list(range(4)) def __init__(self): self.hInterval = QwtInterval() self.vInterval = QwtInterval() self.direction = 0 def toRect(self): r = QRectF( self.hInterval.minValue(), self.vInterval.minValue(), self.hInterval.maxValue() - self.hInterval.minValue(), self.vInterval.maxValue() - self.vInterval.minValue(), ) r = r.normalized() if self.hInterval.borderFlags() & QwtInterval.ExcludeMinimum: r.adjust(1, 0, 0, 0) if self.hInterval.borderFlags() & QwtInterval.ExcludeMaximum: r.adjust(0, 0, -1, 0) if self.vInterval.borderFlags() & QwtInterval.ExcludeMinimum: r.adjust(0, 1, 0, 0) if self.vInterval.borderFlags() & QwtInterval.ExcludeMaximum: r.adjust(0, 0, 0, -1) return r def orientation(self): if self.direction in (self.LeftToRight, self.RightToLeft): return Qt.Horizontal return Qt.Vertical PythonQwt-0.12.7/qwt/dyngrid_layout.py000066400000000000000000000322451465265754400200300ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ qwt.dyngrid_layout ------------------ The `dyngrid_layout` module provides the `QwtDynGridLayout` class. .. autoclass:: QwtDynGridLayout :members: """ from qtpy.QtCore import QObject, QRect, QSize, Qt from qtpy.QtWidgets import QLayout class QwtDynGridLayout_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.isDirty = True self.maxColumns = 0 self.numRows = 0 self.numColumns = 0 self.expanding = Qt.Horizontal self.itemSizeHints = [] self.itemList = [] def updateLayoutCache(self): self.itemSizeHints = [it.sizeHint() for it in self.itemList] self.isDirty = False class QwtDynGridLayout(QLayout): """ The `QwtDynGridLayout` class lays out widgets in a grid, adjusting the number of columns and rows to the current size. `QwtDynGridLayout` takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s). It lays out as many number of columns as possible (limited by :py:meth:`maxColumns()`). .. py:class:: QwtDynGridLayout(parent, margin, [spacing=-1]) :param QWidget parent: parent widget :param int margin: margin :param int spacing: spacing .. py:class:: QwtDynGridLayout(spacing) :noindex: :param int spacing: spacing .. py:class:: QwtDynGridLayout() :noindex: Initialize the layout with default values. :param int spacing: spacing """ def __init__(self, *args): self.__data = None parent = None margin = 0 spacing = -1 if len(args) in (2, 3): parent, margin = args[:2] if len(args) == 3: spacing = args[-1] elif len(args) == 1: if isinstance(args[0], int): (spacing,) = args else: (parent,) = args elif len(args) != 0: raise TypeError( "%s() takes 0, 1, 2 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) QLayout.__init__(self, parent) self.__data = QwtDynGridLayout_PrivateData() self.setSpacing(spacing) self.setContentsMargins(margin, margin, margin, margin) def invalidate(self): """Invalidate all internal caches""" self.__data.isDirty = True QLayout.invalidate(self) def setMaxColumns(self, maxColumns): """Limit the number of columns""" self.__data.maxColumns = maxColumns def maxColumns(self): """Return the upper limit for the number of columns""" return self.__data.maxColumns def addItem(self, item): """Add an item to the next free position""" self.__data.itemList.append(item) self.invalidate() def isEmpty(self): """Return true if this layout is empty""" return self.count() == 0 def itemCount(self): """Return number of layout items""" return self.count() def itemAt(self, index): """Find the item at a specific index""" if index < 0 or index >= len(self.__data.itemList): return return self.__data.itemList[index] def takeAt(self, index): """Find the item at a specific index and remove it from the layout""" if index < 0 or index >= len(self.__data.itemList): return self.__data.isDirty = True return self.__data.itemList.pop(index) def count(self): """Return Number of items in the layout""" return len(self.__data.itemList) def setExpandingDirections(self, expanding): """ Set whether this layout can make use of more space than sizeHint(). A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in only one dimension, while Qt.Vertical | Qt.Horizontal means that it wants to grow in both dimensions. The default value is 0. """ self.__data.expanding = expanding def expandingDirections(self): """ Returns whether this layout can make use of more space than sizeHint(). A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in only one dimension, while Qt.Vertical | Qt.Horizontal means that it wants to grow in both dimensions. """ return self.__data.expanding def setGeometry(self, rect): """ Reorganizes columns and rows and resizes managed items within a rectangle. """ QLayout.setGeometry(self, rect) if self.isEmpty(): return self.__data.numColumns = self.columnsForWidth(rect.width()) self.__data.numRows = self.itemCount() / self.__data.numColumns if self.itemCount() % self.__data.numColumns: self.__data.numRows += 1 itemGeometries = self.layoutItems(rect, self.__data.numColumns) for it, geo in zip(self.__data.itemList, itemGeometries): it.setGeometry(geo) def columnsForWidth(self, width): """ Calculate the number of columns for a given width. The calculation tries to use as many columns as possible ( limited by maxColumns() ) """ if self.isEmpty(): return 0 maxColumns = self.itemCount() if self.__data.maxColumns > 0: maxColumns = min([self.__data.maxColumns, maxColumns]) if self.maxRowWidth(maxColumns) <= width: return maxColumns for numColumns in range(2, maxColumns + 1): rowWidth = self.maxRowWidth(numColumns) if rowWidth > width: return numColumns - 1 return 1 def maxRowWidth(self, numColumns): """Calculate the width of a layout for a given number of columns.""" colWidth = [0] * numColumns if self.__data.isDirty: self.__data.updateLayoutCache() for index, hint in enumerate(self.__data.itemSizeHints): col = index % numColumns colWidth[col] = max([colWidth[col], hint.width()]) margins = self.contentsMargins() margin_w = margins.left() + margins.right() return margin_w + (numColumns - 1) * self.spacing() + sum(colWidth) def maxItemWidth(self): """Return the maximum width of all layout items""" if self.isEmpty(): return 0 if self.__data.isDirty: self.__data.updateLayoutCache() return max([hint.width() for hint in self.__data.itemSizeHints]) def layoutItems(self, rect, numColumns): """ Calculate the geometries of the layout items for a layout with numColumns columns and a given rectangle. """ itemGeometries = [] if numColumns == 0 or self.isEmpty(): return itemGeometries numRows = int(self.itemCount() / numColumns) if numColumns % self.itemCount(): numRows += 1 if numRows == 0: return itemGeometries rowHeight = [0] * numRows colWidth = [0] * numColumns self.layoutGrid(numColumns, rowHeight, colWidth) expandH = self.expandingDirections() == Qt.Horizontal expandV = self.expandingDirections() == Qt.Vertical if expandH or expandV: self.stretchGrid(rect, numColumns, rowHeight, colWidth) maxColumns = self.__data.maxColumns self.__data.maxColumns = numColumns alignedRect = self.alignmentRect(rect) self.__data.maxColumns = maxColumns xOffset = 0 if expandH else alignedRect.x() yOffset = 0 if expandV else alignedRect.y() colX = [0] * numColumns rowY = [0] * numRows xySpace = self.spacing() margins = self.contentsMargins() rowY[0] = yOffset + margins.bottom() for r in range(1, numRows): rowY[r] = rowY[r - 1] + rowHeight[r - 1] + xySpace colX[0] = xOffset + margins.left() for c in range(1, numColumns): colX[c] = colX[c - 1] + colWidth[c - 1] + xySpace itemCount = len(self.__data.itemList) for i in range(itemCount): row = int(i / numColumns) col = i % numColumns itemGeometry = QRect(colX[col], rowY[row], colWidth[col], rowHeight[row]) itemGeometries.append(itemGeometry) return itemGeometries def layoutGrid(self, numColumns, rowHeight, colWidth): """ Calculate the dimensions for the columns and rows for a grid of numColumns columns. """ if numColumns <= 0: return if self.__data.isDirty: self.__data.updateLayoutCache() for index in range(len(self.__data.itemSizeHints)): row = int(index / numColumns) col = index % numColumns size = self.__data.itemSizeHints[index] if col == 0: rowHeight[row] = size.height() else: rowHeight[row] = max([rowHeight[row], size.height()]) if row == 0: colWidth[col] = size.width() else: colWidth[col] = max([colWidth[col], size.width()]) def hasHeightForWidth(self): """Return true: QwtDynGridLayout implements heightForWidth().""" return True def heightForWidth(self, width): """Return The preferred height for this layout, given a width.""" if self.isEmpty(): return 0 numColumns = self.columnsForWidth(width) numRows = int(self.itemCount() / numColumns) if self.itemCount() % numColumns: numRows += 1 rowHeight = [0] * numRows colWidth = [0] * numColumns self.layoutGrid(numColumns, rowHeight, colWidth) margins = self.contentsMargins() margin_h = margins.top() + margins.bottom() return margin_h + (numRows - 1) * self.spacing() + sum(rowHeight) def stretchGrid(self, rect, numColumns, rowHeight, colWidth): """ Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect. Rows and columns are stretched with the same factor. """ if numColumns == 0 or self.isEmpty(): return expandH = self.expandingDirections() & Qt.Horizontal expandV = self.expandingDirections() & Qt.Vertical margins = self.contentsMargins() wmargins = margins.left() + margins.right() hmargins = margins.top() + margins.bottom() if expandH: xDelta = rect.width() - wmargins - (numColumns - 1) * self.spacing() for col in range(numColumns): xDelta -= colWidth[col] if xDelta > 0: for col in range(numColumns): space = xDelta // (numColumns - col) colWidth[col] += space xDelta -= space if expandV: numRows = self.itemCount() / numColumns if self.itemCount() % numColumns: numRows += 1 yDelta = rect.height() - hmargins - (numRows - 1) * self.spacing() for row in range(numRows): yDelta -= rowHeight[row] if yDelta > 0: for row in range(numRows): space = yDelta // (numRows - row) rowHeight[row] += space yDelta -= space def sizeHint(self): """ Return the size hint. If maxColumns() > 0 it is the size for a grid with maxColumns() columns, otherwise it is the size for a grid with only one row. """ if self.isEmpty(): return QSize() numColumns = self.itemCount() if self.__data.maxColumns > 0: numColumns = min([self.__data.maxColumns, numColumns]) numRows = int(self.itemCount() / numColumns) if self.itemCount() % numColumns: numRows += 1 rowHeight = [0] * numRows colWidth = [0] * numColumns self.layoutGrid(numColumns, rowHeight, colWidth) margins = self.contentsMargins() margin_h = margins.top() + margins.bottom() margin_w = margins.left() + margins.right() h = margin_h + (numRows - 1) * self.spacing() + sum(rowHeight) w = margin_w + (numColumns - 1) * self.spacing() + sum(colWidth) return QSize(w, h) def numRows(self): """Return Number of rows of the current layout.""" return self.__data.numRows def numColumns(self): """Return Number of columns of the current layout.""" return self.__data.numColumns PythonQwt-0.12.7/qwt/graphic.py000066400000000000000000000666751465265754400164260ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtGraphic ---------- .. autoclass:: QwtGraphic :members: """ import math from qtpy.QtCore import QObject, QPointF, QRect, QRectF, QSize, QSizeF, Qt from qtpy.QtGui import ( QImage, QPaintEngine, QPainter, QPainterPathStroker, QPixmap, QTransform, ) from qwt.null_paintdevice import QwtNullPaintDevice from qwt.painter_command import QwtPainterCommand def qwtHasScalablePen(painter): pen = painter.pen() scalablePen = False if pen.style() != Qt.NoPen and pen.brush().style() != Qt.NoBrush: scalablePen = not pen.isCosmetic() return scalablePen def qwtStrokedPathRect(painter, path): stroker = QPainterPathStroker() stroker.setWidth(painter.pen().widthF()) stroker.setCapStyle(painter.pen().capStyle()) stroker.setJoinStyle(painter.pen().joinStyle()) stroker.setMiterLimit(painter.pen().miterLimit()) rect = QRectF() if qwtHasScalablePen(painter): stroke = stroker.createStroke(path) rect = painter.transform().map(stroke).boundingRect() else: mappedPath = painter.transform().map(path) mappedPath = stroker.createStroke(mappedPath) rect = mappedPath.boundingRect() return rect def qwtExecCommand(painter, cmd, renderHints, transform, initialTransform): if cmd.type() == QwtPainterCommand.Path: doMap = False if ( bool(renderHints & QwtGraphic.RenderPensUnscaled) and painter.transform().isScaling() ): isCosmetic = painter.pen().isCosmetic() doMap = not isCosmetic if doMap: tr = painter.transform() painter.resetTransform() path = tr.map(cmd.path()) if initialTransform: painter.setTransform(initialTransform) invt, _ok = initialTransform.inverted() path = invt.map(path) painter.drawPath(path) painter.setTransform(tr) else: painter.drawPath(cmd.path()) elif cmd.type() == QwtPainterCommand.Pixmap: data = cmd.pixmapData() painter.drawPixmap(data.rect, data.pixmap, data.subRect) elif cmd.type() == QwtPainterCommand.Image: data = cmd.imageData() painter.drawImage(data.rect, data.image, data.subRect, data.flags) elif cmd.type() == QwtPainterCommand.State: data = cmd.stateData() if data.flags & QPaintEngine.DirtyPen: painter.setPen(data.pen) if data.flags & QPaintEngine.DirtyBrush: painter.setBrush(data.brush) if data.flags & QPaintEngine.DirtyBrushOrigin: painter.setBrushOrigin(data.brushOrigin) if data.flags & QPaintEngine.DirtyFont: painter.setFont(data.font) if data.flags & QPaintEngine.DirtyBackground: painter.setBackgroundMode(data.backgroundMode) painter.setBackground(data.backgroundBrush) if data.flags & QPaintEngine.DirtyTransform: painter.setTransform(data.transform) if data.flags & QPaintEngine.DirtyClipEnabled: painter.setClipping(data.isClipEnabled) if data.flags & QPaintEngine.DirtyClipRegion: painter.setClipRegion(data.clipRegion, data.clipOperation) if data.flags & QPaintEngine.DirtyClipPath: painter.setClipPath(data.clipPath, data.clipOperation) if data.flags & QPaintEngine.DirtyHints: for hint in ( QPainter.Antialiasing, QPainter.TextAntialiasing, QPainter.SmoothPixmapTransform, ): painter.setRenderHint(hint, bool(data.renderHints & hint)) if data.flags & QPaintEngine.DirtyCompositionMode: painter.setCompositionMode(data.compositionMode) if data.flags & QPaintEngine.DirtyOpacity: painter.setOpacity(data.opacity) class PathInfo(object): def __init__(self, *args): if len(args) == 0: self.__scalablePen = False elif len(args) == 3: pointRect, boundingRect, scalablePen = args self.__pointRect = pointRect self.__boundingRect = boundingRect self.__scalablePen = scalablePen else: raise TypeError( "%s() takes 0 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def scaledBoundingRect(self, sx, sy, scalePens): if sx == 1.0 and sy == 1.0: return self.__boundingRect transform = QTransform() transform.scale(sx, sy) if scalePens and self.__scalablePen: rect = transform.mapRect(self.__boundingRect) else: rect = transform.mapRect(self.__pointRect) l = abs(self.__pointRect.left() - self.__boundingRect.left()) r = abs(self.__pointRect.right() - self.__boundingRect.right()) t = abs(self.__pointRect.top() - self.__boundingRect.top()) b = abs(self.__pointRect.bottom() - self.__boundingRect.bottom()) rect.adjust(-l, -t, r, b) return rect def scaleFactorX(self, pathRect, targetRect, scalePens): if pathRect.width() <= 0.0: return 0.0 p0 = self.__pointRect.center() l = abs(pathRect.left() - p0.x()) r = abs(pathRect.right() - p0.x()) w = 2.0 * min([l, r]) * targetRect.width() / pathRect.width() if scalePens and self.__scalablePen: sx = w / self.__boundingRect.width() else: pw = max( [ abs(self.__boundingRect.left() - self.__pointRect.left()), abs(self.__boundingRect.right() - self.__pointRect.right()), ] ) sx = (w - 2 * pw) / self.__pointRect.width() return sx def scaleFactorY(self, pathRect, targetRect, scalePens): if pathRect.height() <= 0.0: return 0.0 p0 = self.__pointRect.center() t = abs(pathRect.top() - p0.y()) b = abs(pathRect.bottom() - p0.y()) h = 2.0 * min([t, b]) * targetRect.height() / pathRect.height() if scalePens and self.__scalablePen: sy = h / self.__boundingRect.height() else: pw = max( [ abs(self.__boundingRect.top() - self.__pointRect.top()), abs(self.__boundingRect.bottom() - self.__pointRect.bottom()), ] ) sy = (h - 2 * pw) / self.__pointRect.height() return sy class QwtGraphic_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) self.pointRect = QRectF(0.0, 0.0, -1.0, -1.0) self.initialTransform = None self.defaultSize = QSizeF() self.commands = [] self.pathInfos = [] self.renderHints = 0 class QwtGraphic(QwtNullPaintDevice): """ A paint device for scalable graphics `QwtGraphic` is the representation of a graphic that is tailored for scalability. Like `QPicture` it will be initialized by `QPainter` operations and can be replayed later to any target paint device. While the usual image representations `QImage` and `QPixmap` are not scalable `Qt` offers two paint devices, that might be candidates for representing a vector graphic: - `QPicture`: Unfortunately `QPicture` had been forgotten, when Qt4 introduced floating point based render engines. Its API is still on integers, what make it unusable for proper scaling. - `QSvgRenderer`, `QSvgGenerator`: Unfortunately `QSvgRenderer` hides to much information about its nodes in internal APIs, that are necessary for proper layout calculations. Also it is derived from `QObject` and can't be copied like `QImage`/`QPixmap`. `QwtGraphic` maps all scalable drawing primitives to a `QPainterPath` and stores them together with the painter state changes ( pen, brush, transformation ... ) in a list of `QwtPaintCommands`. For being a complete `QPaintDevice` it also stores pixmaps or images, what is somehow against the idea of the class, because these objects can't be scaled without a loss in quality. The main issue about scaling a `QwtGraphic` object are the pens used for drawing the outlines of the painter paths. While non cosmetic pens ( `QPen.isCosmetic()` ) are scaled with the same ratio as the path, cosmetic pens have a fixed width. A graphic might have paths with different pens - cosmetic and non-cosmetic. `QwtGraphic` caches 2 different rectangles: - control point rectangle: The control point rectangle is the bounding rectangle of all control point rectangles of the painter paths, or the target rectangle of the pixmaps/images. - bounding rectangle: The bounding rectangle extends the control point rectangle by what is needed for rendering the outline with an unscaled pen. Because the offset for drawing the outline depends on the shape of the painter path ( the peak of a triangle is different than the flat side ) scaling with a fixed aspect ratio always needs to be calculated from the control point rectangle. .. py:class:: QwtGraphic() Initializes a null graphic .. py:class:: QwtGraphic(other) :noindex: Copy constructor :param qwt.graphic.QwtGraphic other: Source """ # enum RenderHint RenderPensUnscaled = 0x1 def __init__(self, *args): QwtNullPaintDevice.__init__(self) if len(args) == 0: self.setMode(QwtNullPaintDevice.PathMode) self.__data = QwtGraphic_PrivateData() elif len(args) == 1: (other,) = args self.setMode(other.mode()) self.__data = other.__data else: raise TypeError( "%s() takes 0 or 1 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def reset(self): """Clear all stored commands""" self.__data.commands = [] self.__data.pathInfos = [] self.__data.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) self.__data.pointRect = QRectF(0.0, 0.0, -1.0, -1.0) self.__data.defaultSize = QSizeF() def isNull(self): """Return True, when no painter commands have been stored""" return len(self.__data.commands) == 0 def isEmpty(self): """Return True, when the bounding rectangle is empty""" return self.__data.boundingRect.isEmpty() def setRenderHint(self, hint, on=True): """Toggle an render hint""" if on: self.__data.renderHints |= hint else: self.__data.renderHints &= ~hint def testRenderHint(self, hint): """Test a render hint""" return bool(self.__data.renderHints & hint) def boundingRect(self): """ The bounding rectangle is the :py:meth:`controlPointRect` extended by the areas needed for rendering the outlines with unscaled pens. :return: Bounding rectangle of the graphic .. seealso:: :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect` """ if self.__data.boundingRect.width() < 0: return QRectF() return self.__data.boundingRect def controlPointRect(self): """ The control point rectangle is the bounding rectangle of all control points of the paths and the target rectangles of the images/pixmaps. :return: Control point rectangle .. seealso:: :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()` """ if self.__data.pointRect.width() < 0: return QRectF() return self.__data.pointRect def scaledBoundingRect(self, sx, sy): """ Calculate the target rectangle for scaling the graphic :param float sx: Horizontal scaling factor :param float sy: Vertical scaling factor :return: Scaled bounding rectangle .. note:: In case of paths that are painted with a cosmetic pen (see :py:meth:`QPen.isCosmetic()`) the target rectangle is different to multiplying the bounding rectangle. .. seealso:: :py:meth:`boundingRect()`, :py:meth:`controlPointRect()` """ if sx == 1.0 and sy == 1.0: return self.__data.boundingRect transform = QTransform() transform.scale(sx, sy) rect = transform.mapRect(self.__data.pointRect) for pathInfo in self.__data.pathInfos: rect |= pathInfo.scaledBoundingRect( sx, sy, not bool(self.__data.renderHints & self.RenderPensUnscaled) ) return rect def sizeMetrics(self): """Return Ceiled :py:meth:`defaultSize()`""" sz = self.defaultSize() return QSize(math.ceil(sz.width()), math.ceil(sz.height())) def setDefaultSize(self, size): """ The default size is used in all methods rendering the graphic, where no size is explicitly specified. Assigning an empty size means, that the default size will be calculated from the bounding rectangle. :param QSizeF size: Default size .. seealso:: :py:meth:`defaultSize()`, :py:meth:`boundingRect()` """ w = max([0.0, size.width()]) h = max([0.0, size.height()]) self.__data.defaultSize = QSizeF(w, h) def defaultSize(self): """ When a non empty size has been assigned by setDefaultSize() this size will be returned. Otherwise the default size is the size of the bounding rectangle. The default size is used in all methods rendering the graphic, where no size is explicitly specified. :return: Default size .. seealso:: :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()` """ if not self.__data.defaultSize.isEmpty(): return self.__data.defaultSize return self.boundingRect().size() def render(self, *args): """ .. py:method:: render(painter) :noindex: Replay all recorded painter commands :param QPainter painter: Qt painter .. py:method:: render(painter, size, aspectRatioMode) :noindex: Replay all recorded painter commands The graphic is scaled to fit into the rectangle of the given size starting at ( 0, 0 ). :param QPainter painter: Qt painter :param QSizeF size: Size for the scaled graphic :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale .. py:method:: render(painter, rect, aspectRatioMode) :noindex: Replay all recorded painter commands The graphic is scaled to fit into the given rectangle :param QPainter painter: Qt painter :param QRectF rect: Rectangle for the scaled graphic :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale .. py:method:: render(painter, pos, aspectRatioMode) :noindex: Replay all recorded painter commands The graphic is scaled to the :py:meth:`defaultSize()` and aligned to a position. :param QPainter painter: Qt painter :param QPointF pos: Reference point, where to render :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale """ if len(args) == 1: (painter,) = args if self.isNull(): return transform = painter.transform() painter.save() for command in self.__data.commands: qwtExecCommand( painter, command, self.__data.renderHints, transform, self.__data.initialTransform, ) painter.restore() elif len(args) in (2, 3) and isinstance(args[1], QSizeF): painter, size = args[:2] aspectRatioMode = Qt.IgnoreAspectRatio if len(args) == 3: aspectRatioMode = args[-1] r = QRectF(0.0, 0.0, size.width(), size.height()) self.render(painter, r, aspectRatioMode) elif len(args) in (2, 3) and isinstance(args[1], QRectF): painter, rect = args[:2] aspectRatioMode = Qt.IgnoreAspectRatio if len(args) == 3: aspectRatioMode = args[-1] if self.isEmpty() or rect.isEmpty(): return sx = 1.0 sy = 1.0 if self.__data.pointRect.width() > 0.0: sx = rect.width() / self.__data.pointRect.width() if self.__data.pointRect.height() > 0.0: sy = rect.height() / self.__data.pointRect.height() scalePens = not bool(self.__data.renderHints & self.RenderPensUnscaled) for info in self.__data.pathInfos: ssx = info.scaleFactorX(self.__data.pointRect, rect, scalePens) if ssx > 0.0: sx = min([sx, ssx]) ssy = info.scaleFactorY(self.__data.pointRect, rect, scalePens) if ssy > 0.0: sy = min([sy, ssy]) if aspectRatioMode == Qt.KeepAspectRatio: s = min([sx, sy]) sx = s sy = s elif aspectRatioMode == Qt.KeepAspectRatioByExpanding: s = max([sx, sy]) sx = s sy = s tr = QTransform() tr.translate( rect.center().x() - 0.5 * sx * self.__data.pointRect.width(), rect.center().y() - 0.5 * sy * self.__data.pointRect.height(), ) tr.scale(sx, sy) tr.translate(-self.__data.pointRect.x(), -self.__data.pointRect.y()) transform = painter.transform() if not scalePens and transform.isScaling(): # we don't want to scale pens according to sx/sy, # but we want to apply the scaling from the # painter transformation later self.__data.initialTransform = QTransform() self.__data.initialTransform.scale(transform.m11(), transform.m22()) painter.setTransform(tr, True) self.render(painter) painter.setTransform(transform) self.__data.initialTransform = None elif len(args) in (2, 3) and isinstance(args[1], QPointF): painter, pos = args[:2] alignment = Qt.AlignTop | Qt.AlignLeft if len(args) == 3: alignment = args[-1] r = QRectF(pos, self.defaultSize()) if alignment & Qt.AlignLeft: r.moveLeft(pos.x()) elif alignment & Qt.AlignHCenter: r.moveCenter(QPointF(pos.x(), r.center().y())) elif alignment & Qt.AlignRight: r.moveRight(pos.x()) if alignment & Qt.AlignTop: r.moveTop(pos.y()) elif alignment & Qt.AlignVCenter: r.moveCenter(QPointF(r.center().x(), pos.y())) elif alignment & Qt.AlignBottom: r.moveBottom(pos.y()) self.render(painter, r) else: raise TypeError( "%s().render() takes 1, 2 or 3 argument(s) (%s " "given)" % (self.__class__.__name__, len(args)) ) def toPixmap(self, *args): """ Convert the graphic to a `QPixmap` All pixels of the pixmap get initialized by `Qt.transparent` before the graphic is scaled and rendered on it. The size of the pixmap is the default size ( ceiled to integers ) of the graphic. :return: The graphic as pixmap in default size .. seealso:: :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()` """ if len(args) == 0: if self.isNull(): return QPixmap() sz = self.defaultSize() w = math.ceil(sz.width()) h = math.ceil(sz.height()) pixmap = QPixmap(w, h) pixmap.fill(Qt.transparent) r = QRectF(0.0, 0.0, sz.width(), sz.height()) painter = QPainter(pixmap) self.render(painter, r, Qt.KeepAspectRatio) painter.end() return pixmap elif len(args) in (1, 2): size = args[0] aspectRatioMode = Qt.IgnoreAspectRatio if len(args) == 2: aspectRatioMode = args[-1] pixmap = QPixmap(size) pixmap.fill(Qt.transparent) r = QRect(0, 0, size.width(), size.height()) painter = QPainter(pixmap) self.render(painter, r, aspectRatioMode) painter.end() return pixmap def toImage(self, *args): """ .. py:method:: toImage() :noindex: Convert the graphic to a `QImage` All pixels of the image get initialized by 0 ( transparent ) before the graphic is scaled and rendered on it. The format of the image is `QImage.Format_ARGB32_Premultiplied`. The size of the image is the default size ( ceiled to integers ) of the graphic. :return: The graphic as image in default size .. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio]) :noindex: Convert the graphic to a `QImage` All pixels of the image get initialized by 0 ( transparent ) before the graphic is scaled and rendered on it. The format of the image is `QImage.Format_ARGB32_Premultiplied`. :param QSize size: Size of the image :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic :return: The graphic as image .. seealso:: :py:meth:`toPixmap()`, :py:meth:`render()` """ if len(args) == 0: if self.isNull(): return QImage() sz = self.defaultSize() w = math.ceil(sz.width()) h = math.ceil(sz.height()) image = QImage(w, h, QImage.Format_ARGB32) image.fill(0) r = QRect(0, 0, sz.width(), sz.height()) painter = QPainter(image) self.render(painter, r, Qt.KeepAspectRatio) painter.end() return image elif len(args) in (1, 2): size = args[0] aspectRatioMode = Qt.IgnoreAspectRatio if len(args) == 2: aspectRatioMode = args[-1] image = QImage(size, QImage.Format_ARGB32_Premultiplied) image.fill(0) r = QRect(0, 0, size.width(), size.height()) painter = QPainter(image) self.render(painter, r, aspectRatioMode) return image def drawPath(self, path): """ Store a path command in the command list :param QPainterPath path: Painter path .. seealso:: :py:meth:`QPaintEngine.drawPath()` """ painter = self.paintEngine().painter() if painter is None: return self.__data.commands += [QwtPainterCommand(path)] if not path.isEmpty(): scaledPath = painter.transform().map(path) pointRect = scaledPath.boundingRect() boundingRect = QRectF(pointRect) if ( painter.pen().style() != Qt.NoPen and painter.pen().brush().style() != Qt.NoBrush ): boundingRect = qwtStrokedPathRect(painter, path) self.updateControlPointRect(pointRect) self.updateBoundingRect(boundingRect) self.__data.pathInfos += [ PathInfo(pointRect, boundingRect, qwtHasScalablePen(painter)) ] def drawPixmap(self, rect, pixmap, subRect): """ Store a pixmap command in the command list :param QRectF rect: target rectangle :param QPixmap pixmap: Pixmap to be painted :param QRectF subRect: Reactangle of the pixmap to be painted .. seealso:: :py:meth:`QPaintEngine.drawPixmap()` """ painter = self.paintEngine().painter() if painter is None: return self.__data.commands += [QwtPainterCommand(rect, pixmap, subRect)] r = painter.transform().mapRect(rect) self.updateControlPointRect(r) self.updateBoundingRect(r) def drawImage(self, rect, image, subRect, flags): """ Store a image command in the command list :param QRectF rect: target rectangle :param QImage image: Pixmap to be painted :param QRectF subRect: Reactangle of the pixmap to be painted :param Qt.ImageConversionFlags flags: Pixmap to be painted .. seealso:: :py:meth:`QPaintEngine.drawImage()` """ painter = self.paintEngine().painter() if painter is None: return self.__data.commands += [QwtPainterCommand(rect, image, subRect, flags)] r = painter.transform().mapRect(rect) self.updateControlPointRect(r) self.updateBoundingRect(r) def updateState(self, state): """ Store a state command in the command list :param QPaintEngineState state: State to be stored .. seealso:: :py:meth:`QPaintEngine.updateState()` """ # XXX: shall we call the parent's implementation of updateState? self.__data.commands += [QwtPainterCommand(state)] def updateBoundingRect(self, rect): br = QRectF(rect) painter = self.paintEngine().painter() if painter and painter.hasClipping(): cr = painter.clipRegion().boundingRect() cr = painter.transform().mapRect(cr) br &= cr if self.__data.boundingRect.width() < 0: self.__data.boundingRect = br else: self.__data.boundingRect |= br def updateControlPointRect(self, rect): if self.__data.pointRect.width() < 0.0: self.__data.pointRect = rect else: self.__data.pointRect |= rect def commands(self): return self.__data.commands def setCommands(self, commands): self.reset() painter = QPainter(self) for cmd in commands: qwtExecCommand(painter, cmd, 0, QTransform(), None) painter.end() PythonQwt-0.12.7/qwt/interval.py000066400000000000000000000306621465265754400166200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtInterval ----------- .. autoclass:: QwtInterval :members: """ class QwtInterval(object): """ A class representing an interval The interval is represented by 2 doubles, the lower and the upper limit. .. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None) Build an interval with from min/max values :param float minValue: Minimum value :param float maxValue: Maximum value :param int borderFlags: Include/Exclude borders """ # enum BorderFlag IncludeBorders = 0x00 ExcludeMinimum = 0x01 ExcludeMaximum = 0x02 ExcludeBorders = ExcludeMinimum | ExcludeMaximum def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None): assert not isinstance(minValue, QwtInterval) assert not isinstance(maxValue, QwtInterval) self.__minValue = None self.__maxValue = None self.__borderFlags = None self.setInterval(minValue, maxValue, borderFlags) def setInterval(self, minValue, maxValue, borderFlags=None): """ Assign the limits of the interval :param float minValue: Minimum value :param float maxValue: Maximum value :param int borderFlags: Include/Exclude borders """ self.__minValue = float(minValue) # avoid overflows with NumPy scalars self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars if borderFlags is None: self.__borderFlags = self.IncludeBorders else: self.__borderFlags = borderFlags def setBorderFlags(self, borderFlags): """ Change the border flags :param int borderFlags: Include/Exclude borders .. seealso:: :py:meth:`borderFlags()` """ self.__borderFlags = borderFlags def borderFlags(self): """ :return: Border flags .. seealso:: :py:meth:`setBorderFlags()` """ return self.__borderFlags def setMinValue(self, minValue): """ Assign the lower limit of the interval :param float minValue: Minimum value """ self.__minValue = float(minValue) # avoid overflows with NumPy scalars def setMaxValue(self, maxValue): """ Assign the upper limit of the interval :param float maxValue: Maximum value """ self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars def minValue(self): """ :return: Lower limit of the interval """ return self.__minValue def maxValue(self): """ :return: Upper limit of the interval """ return self.__maxValue def isValid(self): """ A interval is valid when minValue() <= maxValue(). In case of `QwtInterval.ExcludeBorders` it is true when minValue() < maxValue() :return: True, when the interval is valid """ if (self.__borderFlags & self.ExcludeBorders) == 0: return self.__minValue <= self.__maxValue else: return self.__minValue < self.__maxValue def width(self): """ The width of invalid intervals is 0.0, otherwise the result is maxValue() - minValue(). :return: the width of an interval """ if self.isValid(): return self.__maxValue - self.__minValue else: return 0.0 def __and__(self, other): return self.intersect(other) def __iand__(self, other): self = self & other return self def __or__(self, other): if isinstance(other, QwtInterval): return self.unite(other) else: return self.extend(other) def __ior__(self, other): self = self | other return self def __eq__(self, other): return ( self.__minValue == other.__minValue and self.__maxValue == other.__maxValue and self.__borderFlags == other.__borderFlags ) def __ne__(self, other): return not self.__eq__(other) def isNull(self): """ :return: true, if isValid() && (minValue() >= maxValue()) """ return self.isValid() and self.__minValue >= self.__maxValue def invalidate(self): """ The limits are set to interval [0.0, -1.0] .. seealso:: :py:meth:`isValid()` """ self.__minValue = 0.0 self.__maxValue = -1.0 def normalized(self): """ Normalize the limits of the interval If maxValue() < minValue() the limits will be inverted. :return: Normalized interval .. seealso:: :py:meth:`isValid()`, :py:meth:`inverted()` """ if self.__minValue > self.__maxValue: return self.inverted() elif ( self.__minValue == self.__maxValue and self.__borderFlags == self.ExcludeMinimum ): return self.inverted() else: return self def inverted(self): """ Invert the limits of the interval :return: Inverted interval .. seealso:: :py:meth:`normalized()` """ borderFlags = self.IncludeBorders if self.__borderFlags & self.ExcludeMinimum: borderFlags |= self.ExcludeMaximum if self.__borderFlags & self.ExcludeMaximum: borderFlags |= self.ExcludeMinimum return QwtInterval(self.__maxValue, self.__minValue, borderFlags) def contains(self, value): """ Test if a value is inside an interval :param float value: Value :return: true, if value >= minValue() && value <= maxValue() """ if not self.isValid(): return False elif value < self.__minValue or value > self.__maxValue: return False elif value == self.__minValue and self.__borderFlags & self.ExcludeMinimum: return False elif value == self.__maxValue and self.__borderFlags & self.ExcludeMaximum: return False else: return True def unite(self, other): """ Unite two intervals :param qwt.interval.QwtInterval other: other interval to united with :return: united interval """ if not self.isValid(): if not other.isValid(): return QwtInterval() else: return other elif not other.isValid(): return self united = QwtInterval() flags = self.IncludeBorders # minimum if self.__minValue < other.minValue(): united.setMinValue(self.__minValue) flags &= self.__borderFlags & self.ExcludeMinimum elif other.minValue() < self.__minValue: united.setMinValue(other.minValue()) flags &= other.borderFlags() & self.ExcludeMinimum else: united.setMinValue(self.__minValue) flags &= (self.__borderFlags & other.borderFlags()) & self.ExcludeMinimum # maximum if self.__maxValue > other.maxValue(): united.setMaxValue(self.__maxValue) flags &= self.__borderFlags & self.ExcludeMaximum elif other.maxValue() > self.__maxValue: united.setMaxValue(other.maxValue()) flags &= other.borderFlags() & self.ExcludeMaximum else: united.setMaxValue(self.__maxValue) flags &= self.__borderFlags & other.borderFlags() & self.ExcludeMaximum united.setBorderFlags(flags) return united def intersect(self, other): """ Intersect two intervals :param qwt.interval.QwtInterval other: other interval to intersect with :return: intersected interval """ if not other.isValid() or not self.isValid(): return QwtInterval() i1 = self i2 = other if i1.minValue() > i2.minValue(): i1, i2 = i2, i1 elif i1.minValue() == i2.minValue(): if i1.borderFlags() & self.ExcludeMinimum: i1, i2 = i2, i1 if i1.maxValue() < i2.maxValue(): return QwtInterval() if i1.maxValue() == i2.minValue(): if ( i1.borderFlags() & self.ExcludeMaximum or i2.borderFlags() & self.ExcludeMinimum ): return QwtInterval() intersected = QwtInterval() flags = self.IncludeBorders intersected.setMinValue(i2.minValue()) flags |= i2.borderFlags() & self.ExcludeMinimum if i1.maxValue() < i2.maxValue(): intersected.setMaxValue(i1.maxValue()) flags |= i1.borderFlags() & self.ExcludeMaximum elif i2.maxValue() < i1.maxValue(): intersected.setMaxValue(i2.maxValue()) flags |= i2.borderFlags() & self.ExcludeMaximum else: # i1.maxValue() == i2.maxValue() intersected.setMaxValue(i1.maxValue()) flags |= i1.borderFlags() & i2.borderFlags() & self.ExcludeMaximum intersected.setBorderFlags(flags) return intersected def intersects(self, other): """ Test if two intervals overlap :param qwt.interval.QwtInterval other: other interval :return: True, when the intervals are intersecting """ if not other.isValid() or not self.isValid(): return False i1 = self i2 = other if i1.minValue() > i2.minValue(): i1, i2 = i2, i1 elif i1.minValue() == i2.minValue() and i1.borderFlags() & self.ExcludeMinimum: i1, i2 = i2, i1 if i1.maxValue() > i2.minValue(): return True elif i1.maxValue() == i2.minValue(): return ( i1.borderFlags() & self.ExcludeMaximum and i2.borderFlags() & self.ExcludeMinimum ) return False def symmetrize(self, value): """ Adjust the limit that is closer to value, so that value becomes the center of the interval. :param float value: Center :return: Interval with value as center """ if not self.isValid(): return self delta = max([abs(value - self.__maxValue), abs(value - self.__minValue)]) return QwtInterval(value - delta, value + delta) def limited(self, lowerBound, upperBound): """ Limit the interval, keeping the border modes :param float lowerBound: Lower limit :param float upperBound: Upper limit :return: Limited interval """ if not self.isValid() or lowerBound > upperBound: return QwtInterval() minValue = max([self.__minValue, lowerBound]) minValue = min([minValue, upperBound]) maxValue = max([self.__maxValue, lowerBound]) maxValue = min([maxValue, upperBound]) return QwtInterval(minValue, maxValue, self.__borderFlags) def extend(self, value): """ Extend the interval If value is below minValue(), value becomes the lower limit. If value is above maxValue(), value becomes the upper limit. extend() has no effect for invalid intervals :param float value: Value :return: extended interval """ if not self.isValid(): return self return QwtInterval(min([value, self.__minValue]), max([value, self.__maxValue])) def extend_fraction(self, value): """ Extend the interval by a fraction of its width :param float value: Fraction :return: extended interval """ if not self.isValid(): return self return QwtInterval( self.__minValue - value * self.width(), self.__maxValue + value * self.width(), self.__borderFlags, ) PythonQwt-0.12.7/qwt/legend.py000066400000000000000000000751211465265754400162310ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtLegend --------- .. autoclass:: QwtLegendData :members: .. autoclass:: QwtLegendLabel :members: .. autoclass:: QwtLegend :members: """ import math from qtpy.QtCore import QEvent, QObject, QPoint, QRect, QRectF, QSize, Qt, Signal # qDrawWinButton, from qtpy.QtGui import QPainter, QPalette, QPixmap from qtpy.QtWidgets import ( QApplication, QFrame, QScrollArea, QStyle, QStyleOption, QVBoxLayout, QWidget, ) from qwt.dyngrid_layout import QwtDynGridLayout from qwt.painter import QwtPainter from qwt.text import QwtText, QwtTextLabel class QwtLegendData(object): """ Attributes of an entry on a legend `QwtLegendData` is an abstract container ( like `QAbstractModel` ) to exchange attributes, that are only known between to the plot item and the legend. By overloading `QwtPlotItem.legendData()` any other set of attributes could be used, that can be handled by a modified ( or completely different ) implementation of a legend. .. seealso:: :py:class:`qwt.legend.QwtLegend` .. note:: The stockchart example implements a legend as a tree with checkable items """ # enum Mode ReadOnly, Clickable, Checkable = list(range(3)) # enum Role ModeRole, TitleRole, IconRole = list(range(3)) UserRole = 32 def __init__(self): self.__map = {} def setValues(self, map_): """ Set the legend attributes :param dict map_: Values .. seealso:: :py:meth:`values()` """ self.__map = map_ def values(self): """ :return: Legend attributes .. seealso:: :py:meth:`setValues()` """ return self.__map def hasRole(self, role): """ :param int role: Attribute role :return: True, when the internal map has an entry for role """ return role in self.__map def setValue(self, role, data): """ Set an attribute value :param int role: Attribute role :param QVariant data: Attribute value .. seealso:: :py:meth:`value()` """ self.__map[role] = data def value(self, role): """ :param int role: Attribute role :return: Attribute value for a specific role .. seealso:: :py:meth:`setValue()` """ return self.__map.get(role) def isValid(self): """ :return: True, when the internal map is empty """ return len(self.__map) != 0 def title(self): """ :return: Value of the TitleRole attribute """ titleValue = self.value(QwtLegendData.TitleRole) if isinstance(titleValue, QwtText): text = titleValue else: text = QwtText(titleValue) return text def icon(self): """ :return: Value of the IconRole attribute """ return self.value(QwtLegendData.IconRole) def mode(self): """ :return: Value of the ModeRole attribute """ modeValue = self.value(QwtLegendData.ModeRole) if isinstance(modeValue, int): return modeValue return QwtLegendData.ReadOnly BUTTONFRAME = 2 MARGIN = 2 def buttonShift(w): option = QStyleOption() option.initFrom(w) ph = w.style().pixelMetric(QStyle.PM_ButtonShiftHorizontal, option, w) pv = w.style().pixelMetric(QStyle.PM_ButtonShiftVertical, option, w) return QSize(ph, pv) class QwtLegendLabel_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.itemMode = QwtLegendData.ReadOnly self.isDown = False self.spacing = MARGIN self.legendData = QwtLegendData() self.icon = QPixmap() class QwtLegendLabel(QwtTextLabel): """A widget representing something on a QwtLegend.""" clicked = Signal() pressed = Signal() released = Signal() checked = Signal(bool) def __init__(self, parent=None): QwtTextLabel.__init__(self, parent) self.__data = QwtLegendLabel_PrivateData() self.setMargin(MARGIN) self.setIndent(MARGIN) def setData(self, legendData): """ Set the attributes of the legend label :param QwtLegendData legendData: Attributes of the label .. seealso:: :py:meth:`data()` """ self.__data.legendData = legendData doUpdate = self.updatesEnabled() self.setUpdatesEnabled(False) self.setText(legendData.title()) icon = legendData.icon() if icon is not None: self.setIcon(icon.toPixmap()) if legendData.hasRole(QwtLegendData.ModeRole): self.setItemMode(legendData.mode()) if doUpdate: self.setUpdatesEnabled(True) self.update() def data(self): """ :return: Attributes of the label .. seealso:: :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ return self.__data.legendData def setText(self, text): """ Set the text to the legend item :param qwt.text.QwtText text: Text label .. seealso:: :py:meth:`text()` """ flags = Qt.AlignLeft | Qt.AlignVCenter | Qt.TextExpandTabs | Qt.TextWordWrap text.setRenderFlags(flags) QwtTextLabel.setText(self, text) def setItemMode(self, mode): """ Set the item mode. The default is `QwtLegendData.ReadOnly`. :param int mode: Item mode .. seealso:: :py:meth:`itemMode()` """ if mode != self.__data.itemMode: self.__data.itemMode = mode self.__data.isDown = False self.setFocusPolicy( Qt.TabFocus if mode != QwtLegendData.ReadOnly else Qt.NoFocus ) self.setMargin(BUTTONFRAME + MARGIN) self.updateGeometry() def itemMode(self): """ :return: Item mode .. seealso:: :py:meth:`setItemMode()` """ return self.__data.itemMode def setIcon(self, icon): """ Assign the icon :param QPixmap icon: Pixmap representing a plot item .. seealso:: :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` """ self.__data.icon = icon indent = self.margin() + self.__data.spacing if icon.width() > 0: indent += icon.width() + self.__data.spacing self.setIndent(indent) def icon(self): """ :return: Pixmap representing a plot item .. seealso:: :py:meth:`setIcon()` """ return self.__data.icon def setSpacing(self, spacing): """ Change the spacing between icon and text :param int spacing: Spacing .. seealso:: :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` """ spacing = max([spacing, 0]) if spacing != self.__data.spacing: self.__data.spacing = spacing mgn = self.contentsMargins() margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()]) indent = margin + self.__data.spacing if self.__data.icon.width() > 0: indent += self.__data.icon.width() + self.__data.spacing self.setIndent(indent) def spacing(self): """ :return: Spacing between icon and text .. seealso:: :py:meth:`setSpacing()` """ return self.__data.spacing def setChecked(self, on): """ Check/Uncheck a the item :param bool on: check/uncheck .. seealso:: :py:meth:`isChecked()`, :py:meth:`setItemMode()` """ if self.__data.itemMode == QwtLegendData.Checkable: isBlocked = self.signalsBlocked() self.blockSignals(True) self.setDown(on) self.blockSignals(isBlocked) def isChecked(self): """ :return: true, if the item is checked .. seealso:: :py:meth:`setChecked()` """ return self.__data.itemMode == QwtLegendData.Checkable and self.isDown() def setDown(self, down): """ Set the item being down :param bool on: true, if the item is down .. seealso:: :py:meth:`isDown()` """ if down == self.__data.isDown: return self.__data.isDown = down self.update() if self.__data.itemMode == QwtLegendData.Clickable: if self.__data.isDown: self.pressed.emit() else: self.released.emit() self.clicked.emit() if self.__data.itemMode == QwtLegendData.Checkable: self.checked.emit(self.__data.isDown) def isDown(self): """ :return: true, if the item is down .. seealso:: :py:meth:`setDown()` """ return self.__data.isDown def sizeHint(self): """ :return: a size hint """ sz = QwtTextLabel.sizeHint(self) sz.setHeight(max([sz.height(), self.__data.icon.height() + 4])) if self.__data.itemMode != QwtLegendData.ReadOnly: sz += buttonShift(self) return sz def paintEvent(self, e): cr = self.contentsRect() painter = QPainter(self) painter.setClipRegion(e.region()) # if self.__data.isDown: # qDrawWinButton( # painter, 0, 0, self.width(), self.height(), self.palette(), True # ) painter.save() if self.__data.isDown: shiftSize = buttonShift(self) painter.translate(shiftSize.width(), shiftSize.height()) painter.setClipRect(cr) self.drawContents(painter) if not self.__data.icon.isNull(): iconRect = QRect(cr) iconRect.setX(iconRect.x() + self.margin()) if self.__data.itemMode != QwtLegendData.ReadOnly: iconRect.setX(iconRect.x() + BUTTONFRAME) iconRect.setSize(self.__data.icon.size()) iconRect.moveCenter(QPoint(iconRect.center().x(), cr.center().y())) painter.drawPixmap(iconRect, self.__data.icon) painter.restore() def mousePressEvent(self, e): if e.button() == Qt.LeftButton: if self.__data.itemMode == QwtLegendData.Clickable: self.setDown(True) return elif self.__data.itemMode == QwtLegendData.Checkable: self.setDown(not self.isDown()) return QwtTextLabel.mousePressEvent(self, e) def mouseReleaseEvent(self, e): if e.button() == Qt.LeftButton: if self.__data.itemMode == QwtLegendData.Clickable: self.setDown(False) return elif self.__data.itemMode == QwtLegendData.Checkable: return QwtTextLabel.mouseReleaseEvent(self, e) def keyPressEvent(self, e): if e.key() == Qt.Key_Space: if self.__data.itemMode == QwtLegendData.Clickable: if not e.isAutoRepeat(): self.setDown(True) return elif self.__data.itemMode == QwtLegendData.Checkable: if not e.isAutoRepeat(): self.setDown(not self.isDown()) return QwtTextLabel.keyPressEvent(self, e) def keyReleaseEvent(self, e): if e.key() == Qt.Key_Space: if self.__data.itemMode == QwtLegendData.Clickable: if not e.isAutoRepeat(): self.setDown(False) return elif self.__data.itemMode == QwtLegendData.Checkable: return QwtTextLabel.keyReleaseEvent(self, e) class QwtAbstractLegend(QFrame): def __init__(self, parent): QFrame.__init__(self, parent) def renderLegend(self, painter, rect, fillBackground): raise NotImplementedError def isEmpty(self): return 0 def scrollExtent(self, orientation): return 0 def updateLegend(self, itemInfo, data): raise NotImplementedError class Entry(object): def __init__(self): self.itemInfo = None self.widgets = [] class QwtLegendMap(object): def __init__(self): self.__entries = [] def isEmpty(self): return len(self.__entries) == 0 def insert(self, itemInfo, widgets): for entry in self.__entries: if entry.itemInfo == itemInfo: entry.widgets = widgets return newEntry = Entry() newEntry.itemInfo = itemInfo newEntry.widgets = widgets self.__entries += [newEntry] def remove(self, itemInfo): for entry in self.__entries[:]: if entry.itemInfo == itemInfo: self.__entries.remove(entry) return def removeWidget(self, widget): for entry in self.__entries: while widget in entry.widgets: entry.widgets.remove(widget) def itemInfo(self, widget): if widget is not None: for entry in self.__entries: if widget in entry.widgets: return entry.itemInfo def legendWidgets(self, itemInfo): if itemInfo is not None: for entry in self.__entries: if entry.itemInfo == itemInfo: return entry.widgets return [] class LegendView(QScrollArea): def __init__(self, parent): QScrollArea.__init__(self, parent) self.contentsWidget = QWidget(self) self.contentsWidget.setObjectName("QwtLegendViewContents") self.setWidget(self.contentsWidget) self.setWidgetResizable(False) self.viewport().setObjectName("QwtLegendViewport") self.contentsWidget.setAutoFillBackground(False) self.viewport().setAutoFillBackground(False) def event(self, event): if event.type() == QEvent.PolishRequest: self.setFocusPolicy(Qt.NoFocus) if event.type() == QEvent.Resize: cr = self.contentsRect() w = cr.width() h = self.contentsWidget.heightForWidth(cr.width()) if h > w: w -= self.verticalScrollBar().sizeHint().width() h = self.contentsWidget.heightForWidth(w) self.contentsWidget.resize(w, h) return QScrollArea.event(self, event) def viewportEvent(self, event): ok = QScrollArea.viewportEvent(self, event) if event.type() == QEvent.Resize: self.layoutContents() return ok def viewportSize(self, w, h): sbHeight = self.horizontalScrollBar().sizeHint().height() sbWidth = self.verticalScrollBar().sizeHint().width() cw = self.contentsRect().width() ch = self.contentsRect().height() vw = cw vh = ch if w > vw: vh -= sbHeight if h > vh: vw -= sbWidth if w > vw and vh == ch: vh -= sbHeight return QSize(vw, vh) def layoutContents(self): layout = self.contentsWidget.layout() if layout is None: return visibleSize = self.viewport().contentsRect().size() margins = layout.contentsMargins() margin_w = margins.left() + margins.right() minW = int(layout.maxItemWidth() + margin_w) w = max([visibleSize.width(), minW]) h = max([layout.heightForWidth(w), visibleSize.height()]) vpWidth = self.viewportSize(w, h).width() if w > vpWidth: w = max([vpWidth, minW]) h = max([layout.heightForWidth(w), visibleSize.height()]) self.contentsWidget.resize(w, h) class QwtLegend_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.itemMode = QwtLegendData.ReadOnly self.view = QwtDynGridLayout() self.itemMap = QwtLegendMap() class QwtLegend(QwtAbstractLegend): """ The legend widget The QwtLegend widget is a tabular arrangement of legend items. Legend items might be any type of widget, but in general they will be a QwtLegendLabel. .. seealso :: :py:class`qwt.legend.QwtLegendLabel`, :py:class`qwt.plot.QwtPlotItem`, :py:class`qwt.plot.QwtPlot` .. py:class:: QwtLegend([parent=None]) Constructor :param QWidget parent: Parent widget .. py:data:: clicked A signal which is emitted when the user has clicked on a legend label, which is in `QwtLegendData.Clickable` mode. :param itemInfo: Info for the item item of the selected legend item :param index: Index of the legend label in the list of widgets that are associated with the plot item .. note:: Clicks are disabled as default .. py:data:: checked A signal which is emitted when the user has clicked on a legend label, which is in `QwtLegendData.Checkable` mode :param itemInfo: Info for the item of the selected legend label :param index: Index of the legend label in the list of widgets that are associated with the plot item :param on: True when the legend label is checked .. note:: Clicks are disabled as default """ clicked = Signal(object, int) checked = Signal(object, bool, int) def __init__(self, parent=None): QwtAbstractLegend.__init__(self, parent) self.setFrameStyle(QFrame.NoFrame) self.__data = QwtLegend_PrivateData() self.__data.view = LegendView(self) self.__data.view.setObjectName("QwtLegendView") self.__data.view.setFrameStyle(QFrame.NoFrame) gridLayout = QwtDynGridLayout(self.__data.view.contentsWidget) gridLayout.setAlignment(Qt.AlignHCenter | Qt.AlignTop) self.__data.view.gridLayout = gridLayout self.__data.view.contentsWidget.installEventFilter(self) layout = QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.__data.view) def setMaxColumns(self, numColumns): """ Set the maximum number of entries in a row F.e when the maximum is set to 1 all items are aligned vertically. 0 means unlimited :param int numColumns: Maximum number of entries in a row .. seealso:: :py:meth:`maxColumns()`, :py:meth:`QwtDynGridLayout.setMaxColumns()` """ tl = self.__data.view.gridLayout if tl is not None: tl.setMaxColumns(numColumns) self.updateGeometry() def maxColumns(self): """ :return: Maximum number of entries in a row .. seealso:: :py:meth:`setMaxColumns()`, :py:meth:`QwtDynGridLayout.maxColumns()` """ tl = self.__data.view.gridLayout if tl is not None: return tl.maxColumns() return 0 def setDefaultItemMode(self, mode): """ Set the default mode for legend labels Legend labels will be constructed according to the attributes in a `QwtLegendData` object. When it doesn't contain a value for the `QwtLegendData.ModeRole` the label will be initialized with the default mode of the legend. :param int mode: Default item mode .. seealso:: :py:meth:`itemMode()`, :py:meth:`QwtLegendData.value()`, :py:meth:`QwtPlotItem::legendData()` ... note:: Changing the mode doesn't have any effect on existing labels. """ self.__data.itemMode = mode def defaultItemMode(self): """ :return: Default item mode .. seealso:: :py:meth:`setDefaultItemMode()` """ return self.__data.itemMode def contentsWidget(self): """ The contents widget is the only child of the viewport of the internal `QScrollArea` and the parent widget of all legend items. :return: Container widget of the legend items """ return self.__data.view.contentsWidget def horizontalScrollBar(self): """ :return: Horizontal scrollbar .. seealso:: :py:meth:`verticalScrollBar()` """ return self.__data.view.horizontalScrollBar() def verticalScrollBar(self): """ :return: Vertical scrollbar .. seealso:: :py:meth:`horizontalScrollBar()` """ return self.__data.view.verticalScrollBar() def updateLegend(self, itemInfo, data): """ Update the entries for an item :param QVariant itemInfo: Info for an item :param list data: Default item mode """ widgetList = self.legendWidgets(itemInfo) if len(widgetList) != len(data): contentsLayout = self.__data.view.gridLayout while len(widgetList) > len(data): w = widgetList.pop(-1) contentsLayout.removeWidget(w) w.hide() w.deleteLater() for i in range(len(widgetList), len(data)): widget = self.createWidget(data[i]) if contentsLayout is not None: contentsLayout.addWidget(widget) if self.isVisible(): widget.setVisible(True) widgetList.append(widget) if not widgetList: self.__data.itemMap.remove(itemInfo) else: self.__data.itemMap.insert(itemInfo, widgetList) self.updateTabOrder() for i in range(len(data)): self.updateWidget(widgetList[i], data[i]) def createWidget(self, data): """ Create a widget to be inserted into the legend The default implementation returns a `QwtLegendLabel`. :param QwtLegendData data: Attributes of the legend entry :return: Widget representing data on the legend ... note:: updateWidget() will called soon after createWidget() with the same attributes. """ label = QwtLegendLabel() label.setItemMode(self.defaultItemMode()) label.clicked.connect(lambda: self.itemClicked(label)) label.checked.connect(lambda state: self.itemChecked(state, label)) return label def updateWidget(self, widget, data): """ Update the widget :param QWidget widget: Usually a QwtLegendLabel :param QwtLegendData data: Attributes to be displayed .. seealso:: :py:meth:`createWidget()` ... note:: When widget is no QwtLegendLabel updateWidget() does nothing. """ label = widget # TODO: cast to QwtLegendLabel! if label is not None: label.setData(data) if data.value(QwtLegendData.ModeRole) is None: label.setItemMode(self.defaultItemMode()) def updateTabOrder(self): contentsLayout = self.__data.view.gridLayout if contentsLayout is not None: w = None for i in range(contentsLayout.count()): item = contentsLayout.itemAt(i) if w is not None and item.widget(): QWidget.setTabOrder(w, item.widget()) w = item.widget() def sizeHint(self): """Return a size hint""" hint = self.__data.view.contentsWidget.sizeHint() hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth()) return hint def heightForWidth(self, width): """ :param int width: Width :return: The preferred height, for a width. """ width -= 2 * self.frameWidth() h = self.__data.view.contentsWidget.heightForWidth(width) if h >= 0: h += 2 * self.frameWidth() return h def eventFilter(self, object_, event): """ Handle QEvent.ChildRemoved andQEvent.LayoutRequest events for the contentsWidget(). :param QObject object: Object to be filtered :param QEvent event: Event :return: Forwarded to QwtAbstractLegend.eventFilter() """ if object_ is self.__data.view.contentsWidget: if event.type() == QEvent.ChildRemoved: ce = event # TODO: cast to QChildEvent if ce.child().isWidgetType(): w = ce.child() # TODO: cast to QWidget self.__data.itemMap.removeWidget(w) elif event.type() == QEvent.LayoutRequest: self.__data.view.layoutContents() if self.parentWidget() and self.parentWidget().layout() is None: QApplication.postEvent( self.parentWidget(), QEvent(QEvent.LayoutRequest) ) return QwtAbstractLegend.eventFilter(self, object_, event) def itemClicked(self, widget): # w = self.sender() #TODO: cast to QWidget w = widget if w is not None: itemInfo = self.__data.itemMap.itemInfo(w) if itemInfo is not None: widgetList = self.__data.itemMap.legendWidgets(itemInfo) if w in widgetList: index = widgetList.index(w) self.clicked.emit(itemInfo, index) def itemChecked(self, on, widget): # w = self.sender() #TODO: cast to QWidget w = widget if w is not None: itemInfo = self.__data.itemMap.itemInfo(w) if itemInfo is not None: widgetList = self.__data.itemMap.legendWidgets(itemInfo) if w in widgetList: index = widgetList.index(w) self.checked.emit(itemInfo, on, index) def renderLegend(self, painter, rect, fillBackground): """ Render the legend into a given rectangle. :param QPainter painter: Painter :param QRectF rect: Bounding rectangle :param bool fillBackground: When true, fill rect with the widget background """ if self.__data.itemMap.isEmpty(): return if fillBackground: if self.autoFillBackground() or self.testAttribute(Qt.WA_StyledBackground): QwtPainter.drawBackground(painter, rect, self) legendLayout = self.__data.view.contentsWidget.layout() if legendLayout is None: return margins = self.layout().contentsMargins() layoutRect = QRect() layoutRect.setLeft(math.ceil(rect.left()) + margins.left()) layoutRect.setTop(math.ceil(rect.top()) + margins.top()) layoutRect.setRight(math.ceil(rect.right()) - margins.right()) layoutRect.setBottom(math.ceil(rect.bottom()) - margins.bottom()) numCols = legendLayout.columnsForWidth(layoutRect.width()) itemRects = legendLayout.layoutItems(layoutRect, numCols) index = 0 for i in range(legendLayout.count()): item = legendLayout.itemAt(i) w = item.widget() if w is not None: painter.save() painter.setClipRect(itemRects[index], Qt.IntersectClip) self.renderItem(painter, w, itemRects[index], fillBackground) index += 1 painter.restore() def renderItem(self, painter, widget, rect, fillBackground): """ Render a legend entry into a given rectangle. :param QPainter painter: Painter :param QWidget widget: Widget representing a legend entry :param QRectF rect: Bounding rectangle :param bool fillBackground: When true, fill rect with the widget background """ if fillBackground: if widget.autoFillBackground() or widget.testAttribute( Qt.WA_StyledBackground ): QwtPainter.drawBackground(painter, rect, widget) label = widget # TODO: cast to QwtLegendLabel if label is not None: icon = label.data().icon() sz = icon.defaultSize() mgn = label.contentsMargins() margin = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()]) iconRect = QRectF( rect.x() + margin, rect.center().y() - 0.5 * sz.height(), sz.width(), sz.height(), ) icon.render(painter, iconRect, Qt.KeepAspectRatio) titleRect = QRectF(rect) titleRect.setX(iconRect.right() + 2 * label.spacing()) painter.setFont(label.font()) painter.setPen(label.palette().color(QPalette.Text)) label.drawText(painter, titleRect) # TODO: cast label to QwtLegendLabel def legendWidgets(self, itemInfo): """ List of widgets associated to a item :param QVariant itemInfo: Info about an item """ return self.__data.itemMap.legendWidgets(itemInfo) def legendWidget(self, itemInfo): """ First widget in the list of widgets associated to an item :param QVariant itemInfo: Info about an item """ list_ = self.__data.itemMap.legendWidgets(itemInfo) if list_: return list_[0] def itemInfo(self, widget): """ Find the item that is associated to a widget :param QWidget widget: Widget on the legend :return: Associated item info """ return self.__data.itemMap.itemInfo(widget) def isEmpty(self): return self.__data.itemMap.isEmpty() PythonQwt-0.12.7/qwt/null_paintdevice.py000066400000000000000000000216701465265754400203200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtNullPaintDevice ------------------ .. autoclass:: QwtNullPaintDevice :members: """ import os from qtpy.QtCore import QObject from qtpy.QtGui import QPaintDevice, QPaintEngine, QPainterPath QT_API = os.environ["QT_API"] class QwtNullPaintDevice_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.mode = QwtNullPaintDevice.NormalMode class QwtNullPaintDevice_PaintEngine(QPaintEngine): def __init__(self, paintdevice): super(QwtNullPaintDevice_PaintEngine, self).__init__(QPaintEngine.AllFeatures) self.__paintdevice = paintdevice def begin(self, paintdevice): self.setActive(True) return True def end(self): self.setActive(False) return True def type(self): return QPaintEngine.User def drawRects(self, rects, rectCount=None): if rectCount is None: rectCount = len(rects) device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode: try: QPaintEngine.drawRects(self, rects, rectCount) except TypeError: QPaintEngine.drawRects(self, rects) return device.drawRects(rects, rectCount) def drawLines(self, lines, lineCount=None): if lineCount is None: lineCount = len(lines) device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode and QT_API.startswith("pyqt"): try: QPaintEngine.drawLines(self, lines, lineCount) except TypeError: QPaintEngine.drawLines(self, lines) return device.drawLines(lines, lineCount) def drawEllipse(self, rect): device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode: QPaintEngine.drawEllipse(self, rect) return device.drawEllipse(rect) def drawPath(self, path): device = self.nullDevice() if device is None: return device.drawPath(path) def drawPoints(self, points, pointCount=None): if pointCount is None: pointCount = len(points) device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode: try: QPaintEngine.drawPoints(self, points, pointCount) except TypeError: QPaintEngine.drawPoints(self, points) return device.drawPoints(points, pointCount) def drawPolygon(self, *args): if len(args) == 3: points, pointCount, mode = args elif len(args) == 2: points, mode = args pointCount = len(points) else: raise TypeError("Unexpected arguments") device = self.nullDevice() if device is None: return if device.mode() == QwtNullPaintDevice.PathMode: path = QPainterPath() if pointCount > 0: path.moveTo(points[0]) for i in range(1, pointCount): path.lineTo(points[i]) if mode != QPaintEngine.PolylineMode: path.closeSubpath() device.drawPath(path) return device.drawPolygon(points, pointCount, mode) def drawPixmap(self, rect, pm, subRect): device = self.nullDevice() if device is None: return device.drawPixmap(rect, pm, subRect) def drawTextItem(self, pos, textItem): device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode: QPaintEngine.drawTextItem(self, pos, textItem) return device.drawTextItem(pos, textItem) def drawTiledPixmap(self, rect, pixmap, subRect): device = self.nullDevice() if device is None: return if device.mode() != QwtNullPaintDevice.NormalMode: QPaintEngine.drawTiledPixmap(self, rect, pixmap, subRect) return device.drawTiledPixmap(rect, pixmap, subRect) def drawImage(self, rect, image, subRect, flags): device = self.nullDevice() if device is None: return device.drawImage(rect, image, subRect, flags) def updateState(self, state): device = self.nullDevice() if device is None: return device.updateState(state) def nullDevice(self): if not self.isActive(): return return self.__paintdevice class QwtNullPaintDevice(QPaintDevice): """ A null paint device doing nothing Sometimes important layout/rendering geometries are not available or changeable from the public Qt class interface. ( f.e hidden in the style implementation ). `QwtNullPaintDevice` can be used to manipulate or filter out this information by analyzing the stream of paint primitives. F.e. `QwtNullPaintDevice` is used by `QwtPlotCanvas` to identify styled backgrounds with rounded corners. Modes: * `NormalMode`: All vector graphic primitives are painted by the corresponding draw methods * `PolygonPathMode`: Vector graphic primitives ( beside polygons ) are mapped to a `QPainterPath` and are painted by `drawPath`. In `PolygonPathMode` mode only a few draw methods are called: - `drawPath()` - `drawPixmap()` - `drawImage()` - `drawPolygon()` * `PathMode`: Vector graphic primitives are mapped to a `QPainterPath` and are painted by `drawPath`. In `PathMode` mode only a few draw methods are called: - `drawPath()` - `drawPixmap()` - `drawImage()` """ # enum Mode NormalMode, PolygonPathMode, PathMode = list(range(3)) def __init__(self): super(QwtNullPaintDevice, self).__init__() self.__engine = None self.__data = QwtNullPaintDevice_PrivateData() def setMode(self, mode): """ Set the render mode :param int mode: New mode .. seealso:: :py:meth:`mode()` """ self.__data.mode = mode def mode(self): """ :return: Render mode .. seealso:: :py:meth:`setMode()` """ return self.__data.mode def paintEngine(self): if self.__engine is None: self.__engine = QwtNullPaintDevice_PaintEngine(self) return self.__engine def metric(self, deviceMetric): if deviceMetric == QPaintDevice.PdmWidth: value = self.sizeMetrics().width() elif deviceMetric == QPaintDevice.PdmHeight: value = self.sizeMetrics().height() elif deviceMetric == QPaintDevice.PdmNumColors: value = 0xFFFFFFFF elif deviceMetric == QPaintDevice.PdmDepth: value = 32 elif deviceMetric in ( QPaintDevice.PdmPhysicalDpiX, QPaintDevice.PdmPhysicalDpiY, QPaintDevice.PdmDpiY, QPaintDevice.PdmDpiX, ): value = 72 elif deviceMetric == QPaintDevice.PdmWidthMM: value = round( self.metric(QPaintDevice.PdmWidth) * 25.4 / self.metric(QPaintDevice.PdmDpiX) ) elif deviceMetric == QPaintDevice.PdmHeightMM: value = round( self.metric(QPaintDevice.PdmHeight) * 25.4 / self.metric(QPaintDevice.PdmDpiY) ) else: value = 0 return value def drawRects(self, rects, rectCount): pass def drawLines(self, lines, lineCount): pass def drawEllipse(self, rect): pass def drawPath(self, path): pass def drawPoints(self, points, pointCount): pass def drawPolygon(self, points, pointCount, mode): pass def drawPixmap(self, rect, pm, subRect): pass def drawTextItem(self, pos, textItem): pass def drawTiledPixmap(self, rect, pm, subRect): pass def drawImage(self, rect, image, subRect, flags): pass def updateState(self, state): pass PythonQwt-0.12.7/qwt/painter.py000066400000000000000000000402171465265754400164330ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPainterClass --------------- .. autoclass:: QwtPainterClass :members: """ from qtpy.QtCore import QLineF, QPoint, QRect, Qt from qtpy.QtGui import ( QColor, QLinearGradient, QPaintEngine, QPainter, QPainterPath, QPalette, QPen, QPixmap, QRegion, ) from qtpy.QtWidgets import ( QApplication, QFrame, QStyle, QStyleOption, QStyleOptionFocusRect, ) from qwt.color_map import QwtColorMap from qwt.scale_map import QwtScaleMap QWIDGETSIZE_MAX = (1 << 24) - 1 def isX11GraphicsSystem(): pm = QPixmap(1, 1) painter = QPainter(pm) isX11 = painter.paintEngine().type() == QPaintEngine.X11 del painter return isX11 def qwtFillRect(widget, painter, rect, brush): if brush.style() == Qt.TexturePattern: painter.save() painter.setClipRect(rect) painter.drawTiledPixmap(rect, brush.texture(), rect.topLeft()) painter.restore() elif brush.gradient(): painter.save() painter.setClipRect(rect) painter.fillRect(0, 0, widget.width(), widget.height(), brush) painter.restore() else: painter.fillRect(rect, brush) class QwtPainterClass(object): """A collection of `QPainter` workarounds""" def drawFocusRect(self, *args): if len(args) == 2: painter, widget = args self.drawFocusRect(painter, widget, widget.rect()) elif len(args) == 3: painter, widget, rect = args opt = QStyleOptionFocusRect() opt.initFrom(widget) opt.rect = rect opt.state |= QStyle.State_HasFocus palette = widget.palette() opt.backgroundColor = palette.color(widget.backgroundRole()) widget.style().drawPrimitive(QStyle.PE_FrameFocusRect, opt, painter, widget) else: raise TypeError( "QwtPainter.drawFocusRect() takes 2 or 3 argument" "(s) (%s given)" % len(args) ) def drawFrame( self, painter, rect, palette, foregroundRole, frameWidth, midLineWidth, frameStyle, ): """ Draw a rectangular frame :param QPainter painter: Painter :param QRectF rect: Frame rectangle :param QPalette palette: Palette :param QPalette.ColorRole foregroundRole: Palette :param int frameWidth: Frame width :param int midLineWidth: Used for `QFrame.Box` :param int frameStyle: bitwise OR´ed value of `QFrame.Shape` and `QFrame.Shadow` """ if frameWidth <= 0 or rect.isEmpty(): return shadow = frameStyle & QFrame.Shadow_Mask painter.save() if shadow == QFrame.Plain: outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) innerRect = outerRect.adjusted( frameWidth, frameWidth, -frameWidth, -frameWidth ) path = QPainterPath() path.addRect(outerRect) path.addRect(innerRect) painter.setPen(Qt.NoPen) painter.setBrush(palette.color(foregroundRole)) painter.drawPath(path) else: shape = frameStyle & QFrame.Shape_Mask if shape == QFrame.Box: outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) midRect1 = outerRect.adjusted( frameWidth, frameWidth, -frameWidth, -frameWidth ) midRect2 = midRect1.adjusted( midLineWidth, midLineWidth, -midLineWidth, -midLineWidth ) innerRect = midRect2.adjusted( frameWidth, frameWidth, -frameWidth, -frameWidth ) path1 = QPainterPath() path1.moveTo(outerRect.bottomLeft()) path1.lineTo(outerRect.topLeft()) path1.lineTo(outerRect.topRight()) path1.lineTo(midRect1.topRight()) path1.lineTo(midRect1.topLeft()) path1.lineTo(midRect1.bottomLeft()) path2 = QPainterPath() path2.moveTo(outerRect.bottomLeft()) path2.lineTo(outerRect.bottomRight()) path2.lineTo(outerRect.topRight()) path2.lineTo(midRect1.topRight()) path2.lineTo(midRect1.bottomRight()) path2.lineTo(midRect1.bottomLeft()) path3 = QPainterPath() path3.moveTo(midRect2.bottomLeft()) path3.lineTo(midRect2.topLeft()) path3.lineTo(midRect2.topRight()) path3.lineTo(innerRect.topRight()) path3.lineTo(innerRect.topLeft()) path3.lineTo(innerRect.bottomLeft()) path4 = QPainterPath() path4.moveTo(midRect2.bottomLeft()) path4.lineTo(midRect2.bottomRight()) path4.lineTo(midRect2.topRight()) path4.lineTo(innerRect.topRight()) path4.lineTo(innerRect.bottomRight()) path4.lineTo(innerRect.bottomLeft()) path5 = QPainterPath() path5.addRect(midRect1) path5.addRect(midRect2) painter.setPen(Qt.NoPen) brush1 = palette.dark().color() brush2 = palette.light().color() if shadow == QFrame.Raised: brush1, brush2 = brush2, brush1 painter.setBrush(brush1) painter.drawPath(path1) painter.drawPath(path4) painter.setBrush(brush2) painter.drawPath(path2) painter.drawPath(path3) painter.setBrush(palette.mid()) painter.drawPath(path5) else: outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) innerRect = outerRect.adjusted( frameWidth - 1.0, frameWidth - 1.0, -(frameWidth - 1.0), -(frameWidth - 1.0), ) path1 = QPainterPath() path1.moveTo(outerRect.bottomLeft()) path1.lineTo(outerRect.topLeft()) path1.lineTo(outerRect.topRight()) path1.lineTo(innerRect.topRight()) path1.lineTo(innerRect.topLeft()) path1.lineTo(innerRect.bottomLeft()) path2 = QPainterPath() path2.moveTo(outerRect.bottomLeft()) path2.lineTo(outerRect.bottomRight()) path2.lineTo(outerRect.topRight()) path2.lineTo(innerRect.topRight()) path2.lineTo(innerRect.bottomRight()) path2.lineTo(innerRect.bottomLeft()) painter.setPen(Qt.NoPen) brush1 = palette.dark().color() brush2 = palette.light().color() if shadow == QFrame.Raised: brush1, brush2 = brush2, brush1 painter.setBrush(brush1) painter.drawPath(path1) painter.setBrush(brush2) painter.drawPath(path2) painter.restore() def drawRoundedFrame( self, painter, rect, xRadius, yRadius, palette, lineWidth, frameStyle ): """ Draw a rectangular frame with rounded borders :param QPainter painter: Painter :param QRectF rect: Frame rectangle :param float xRadius: x-radius of the ellipses defining the corners :param float yRadius: y-radius of the ellipses defining the corners :param QPalette palette: `QPalette.WindowText` is used for plain borders, `QPalette.Dark` and `QPalette.Light` for raised or sunken borders :param int lineWidth: Line width :param int frameStyle: bitwise OR´ed value of `QFrame.Shape` and `QFrame.Shadow` """ painter.save() painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(Qt.NoBrush) lw2 = lineWidth * 0.5 r = rect.adjusted(lw2, lw2, -lw2, -lw2) path = QPainterPath() path.addRoundedRect(r, xRadius, yRadius) Plain, Sunken, Raised = list(range(3)) style = Plain if (frameStyle & QFrame.Sunken) == QFrame.Sunken: style = Sunken if (frameStyle & QFrame.Raised) == QFrame.Raised: style = Raised if style != Plain and path.elementCount() == 17: pathList = [QPainterPath() for _i in range(8)] for i in range(4): j = i * 4 + 1 pathList[2 * i].moveTo(path.elementAt(j - 1).x, path.elementAt(j - 1).y) pathList[2 * i].cubicTo( path.elementAt(j + 0).x, path.elementAt(j + 0).y, path.elementAt(j + 1).x, path.elementAt(j + 1).y, path.elementAt(j + 2).x, path.elementAt(j + 2).y, ) pathList[2 * i + 1].moveTo( path.elementAt(j + 2).x, path.elementAt(j + 2).y ) pathList[2 * i + 1].lineTo( path.elementAt(j + 3).x, path.elementAt(j + 3).y ) c1 = QColor(palette.color(QPalette.Dark)) c2 = QColor(palette.color(QPalette.Light)) if style == Raised: c1, c2 = c2, c1 for i in range(4): r = pathList[2 * i].controlPointRect() arcPen = QPen() arcPen.setCapStyle(Qt.FlatCap) arcPen.setWidth(lineWidth) linePen = QPen() linePen.setCapStyle(Qt.FlatCap) linePen.setWidth(lineWidth) if i == 0: arcPen.setColor(c1) linePen.setColor(c1) elif i == 1: gradient = QLinearGradient() gradient.setStart(r.topLeft()) gradient.setFinalStop(r.bottomRight()) gradient.setColorAt(0.0, c1) gradient.setColorAt(1.0, c2) arcPen.setBrush(gradient) linePen.setColor(c2) elif i == 2: arcPen.setColor(c2) linePen.setColor(c2) elif i == 3: gradient = QLinearGradient() gradient.setStart(r.bottomRight()) gradient.setFinalStop(r.topLeft()) gradient.setColorAt(0.0, c2) gradient.setColorAt(1.0, c1) arcPen.setBrush(gradient) linePen.setColor(c1) painter.setPen(arcPen) painter.drawPath(pathList[2 * i]) painter.setPen(linePen) painter.drawPath(pathList[2 * i + 1]) else: pen = QPen(palette.color(QPalette.WindowText), lineWidth) painter.setPen(pen) painter.drawPath(path) painter.restore() def drawColorBar(self, painter, colorMap, interval, scaleMap, orientation, rect): """ Draw a color bar into a rectangle :param QPainter painter: Painter :param qwt.color_map.QwtColorMap colorMap: Color map :param qwt.interval.QwtInterval interval: Value range :param qwt.scalemap.QwtScaleMap scaleMap: Scale map :param Qt.Orientation orientation: Orientation :param QRectF rect: Target rectangle """ colorTable = [] if colorMap.format() == QwtColorMap.Indexed: colorTable = colorMap.colorTable(interval) c = QColor() devRect = rect.toAlignedRect() pixmap = QPixmap(devRect.size()) pixmap.fill(Qt.transparent) pmPainter = QPainter(pixmap) pmPainter.translate(-devRect.x(), -devRect.y()) if orientation == Qt.Horizontal: sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.left(), rect.right()) for x in range(devRect.left(), devRect.right() + 1): value = sMap.invTransform(x) if colorMap.format() == QwtColorMap.RGB: c.setRgba(colorMap.rgb(interval, value)) else: c = colorTable[colorMap.colorIndex(interval, value)] pmPainter.setPen(c) pmPainter.drawLine(QLineF(x, devRect.top(), x, devRect.bottom())) else: sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.bottom(), rect.top()) for y in range(devRect.top(), devRect.bottom() + 1): value = sMap.invTransform(y) if colorMap.format() == QwtColorMap.RGB: c.setRgba(colorMap.rgb(interval, value)) else: c = colorTable[colorMap.colorIndex(interval, value)] pmPainter.setPen(c) pmPainter.drawLine(QLineF(devRect.left(), y, devRect.right(), y)) pmPainter.end() painter.drawPixmap(devRect, pixmap) def fillPixmap(self, widget, pixmap, offset=None): """ Fill a pixmap with the content of a widget In Qt >= 5.0 `QPixmap.fill()` is a nop, in Qt 4.x it is buggy for backgrounds with gradients. Thus `fillPixmap()` offers an alternative implementation. :param QWidget widget: Widget :param QPixmap pixmap: Pixmap to be filled :param QPoint offset: Offset .. seealso:: :py:meth:`QPixmap.fill()` """ if offset is None: offset = QPoint() rect = QRect(offset, pixmap.size()) painter = QPainter(pixmap) painter.translate(-offset) autoFillBrush = widget.palette().brush(widget.backgroundRole()) if not (widget.autoFillBackground() and autoFillBrush.isOpaque()): bg = widget.palette().brush(QPalette.Window) qwtFillRect(widget, painter, rect, bg) if widget.autoFillBackground(): qwtFillRect(widget, painter, rect, autoFillBrush) if widget.testAttribute(Qt.WA_StyledBackground): painter.setClipRegion(QRegion(rect)) opt = QStyleOption() opt.initFrom(widget) widget.style().drawPrimitive(QStyle.PE_Widget, opt, painter, widget) def drawBackground(self, painter, rect, widget): """ Fill rect with the background of a widget :param QPainter painter: Painter :param QRectF rect: Rectangle to be filled :param QWidget widget: Widget .. seealso:: :py:data:`QStyle.PE_Widget`, :py:meth:`QWidget.backgroundRole()` """ if widget.testAttribute(Qt.WA_StyledBackground): opt = QStyleOption() opt.initFrom(widget) opt.rect = rect widget.style().drawPrimitive(QStyle.PE_Widget, opt, painter, widget) else: brush = widget.palette().brush(widget.backgroundRole()) painter.fillRect(rect, brush) def backingStore(self, widget, size): """ :param QWidget widget: Widget, for which the backinstore is intended :param QSize size: Size of the pixmap :return: A pixmap that can be used as backing store """ pixelRatio = 1.0 if widget and widget.windowHandle(): pixelRatio = widget.windowHandle().devicePixelRatio() else: qapp = QApplication.instance() pixelRatio = qapp.devicePixelRatio() pm = QPixmap(size * pixelRatio) pm.setDevicePixelRatio(pixelRatio) return pm QwtPainter = QwtPainterClass() PythonQwt-0.12.7/qwt/painter_command.py000066400000000000000000000154551465265754400201370ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPainterCommand ----------------- .. autoclass:: QwtPainterCommand :members: """ import copy from qtpy.QtGui import QPaintEngine, QPainterPath class PixmapData(object): def __init__(self): self.rect = None self.pixmap = None self.subRect = None class ImageData(object): def __init__(self): self.rect = None self.image = None self.subRect = None self.flags = None class StateData(object): def __init__(self): self.flags = None self.pen = None self.brush = None self.brushOrigin = None self.backgroundBrush = None self.backgroundMode = None self.font = None self.matrix = None self.transform = None self.clipOperation = None self.clipRegion = None self.clipPath = None self.isClipEnabled = None self.renderHints = None self.compositionMode = None self.opacity = None class QwtPainterCommand(object): """ `QwtPainterCommand` represents the attributes of a paint operation how it is used between `QPainter` and `QPaintDevice` It is used by :py:class:`qwt.graphic.QwtGraphic` to record and replay paint operations .. seealso:: :py:meth:`qwt.graphic.QwtGraphic.commands()` .. py:class:: QwtPainterCommand() Construct an invalid command .. py:class:: QwtPainterCommand(path) :noindex: Copy constructor :param QPainterPath path: Source .. py:class:: QwtPainterCommand(rect, pixmap, subRect) :noindex: Constructor for Pixmap paint operation :param QRectF rect: Target rectangle :param QPixmap pixmap: Pixmap :param QRectF subRect: Rectangle inside the pixmap .. py:class:: QwtPainterCommand(rect, image, subRect, flags) :noindex: Constructor for Image paint operation :param QRectF rect: Target rectangle :param QImage image: Image :param QRectF subRect: Rectangle inside the image :param Qt.ImageConversionFlags flags: Conversion flags .. py:class:: QwtPainterCommand(state) :noindex: Constructor for State paint operation :param QPaintEngineState state: Paint engine state """ # enum Type Invalid = -1 Path, Pixmap, Image, State = list(range(4)) def __init__(self, *args): if len(args) == 0: self.__type = self.Invalid elif len(args) == 1: (arg,) = args if isinstance(arg, QPainterPath): path = arg self.__type = self.Path self.__path = QPainterPath(path) elif isinstance(arg, QwtPainterCommand): other = arg self.copy(other) else: state = arg self.__type = self.State self.__stateData = StateData() self.__stateData.flags = state.state() if self.__stateData.flags & QPaintEngine.DirtyPen: self.__stateData.pen = state.pen() if self.__stateData.flags & QPaintEngine.DirtyBrush: self.__stateData.brush = state.brush() if self.__stateData.flags & QPaintEngine.DirtyBrushOrigin: self.__stateData.brushOrigin = state.brushOrigin() if self.__stateData.flags & QPaintEngine.DirtyFont: self.__stateData.font = state.font() if self.__stateData.flags & QPaintEngine.DirtyBackground: self.__stateData.backgroundMode = state.backgroundMode() self.__stateData.backgroundBrush = state.backgroundBrush() if self.__stateData.flags & QPaintEngine.DirtyTransform: self.__stateData.transform = state.transform() if self.__stateData.flags & QPaintEngine.DirtyClipEnabled: self.__stateData.isClipEnabled = state.isClipEnabled() if self.__stateData.flags & QPaintEngine.DirtyClipRegion: self.__stateData.clipRegion = state.clipRegion() self.__stateData.clipOperation = state.clipOperation() if self.__stateData.flags & QPaintEngine.DirtyClipPath: self.__stateData.clipPath = state.clipPath() self.__stateData.clipOperation = state.clipOperation() if self.__stateData.flags & QPaintEngine.DirtyHints: self.__stateData.renderHints = state.renderHints() if self.__stateData.flags & QPaintEngine.DirtyCompositionMode: self.__stateData.compositionMode = state.compositionMode() if self.__stateData.flags & QPaintEngine.DirtyOpacity: self.__stateData.opacity = state.opacity() elif len(args) == 3: rect, pixmap, subRect = args self.__type = self.Pixmap self.__pixmapData = PixmapData() self.__pixmapData.rect = rect self.__pixmapData.pixmap = pixmap self.__pixmapData.subRect = subRect elif len(args) == 4: rect, image, subRect, flags = args self.__type = self.Image self.__imageData = ImageData() self.__imageData.rect = rect self.__imageData.image = image self.__imageData.subRect = subRect self.__imageData.flags = flags else: raise TypeError( "%s() takes 0, 1, 3 or 4 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def copy(self, other): self.__type = other.__type if other.__type == self.Path: self.__path = QPainterPath(other.__path) elif other.__type == self.Pixmap: self.__pixmapData = copy.deepcopy(other.__pixmapData) elif other.__type == self.Image: self.__imageData = copy.deepcopy(other.__imageData) elif other.__type == self.State: self.__stateData == copy.deepcopy(other.__stateData) def reset(self): self.__type = self.Invalid def type(self): return self.__type def path(self): return self.__path def pixmapData(self): return self.__pixmapData def imageData(self): return self.__imageData def stateData(self): return self.__stateData PythonQwt-0.12.7/qwt/plot.py000066400000000000000000002240331465265754400157470ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlot ------- .. autoclass:: QwtPlot :members: QwtPlotItem ----------- .. autoclass:: QwtPlotItem :members: """ import math import numpy as np from qtpy.QtCore import QEvent, QObject, QRectF, QSize, Qt, Signal from qtpy.QtGui import QBrush, QColor, QFont, QPainter, QPalette from qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget from qwt.graphic import QwtGraphic from qwt.interval import QwtInterval from qwt.legend import QwtLegendData from qwt.plot_canvas import QwtPlotCanvas from qwt.scale_div import QwtScaleDiv from qwt.scale_draw import QwtScaleDraw from qwt.scale_engine import QwtLinearScaleEngine from qwt.scale_map import QwtScaleMap from qwt.scale_widget import QwtScaleWidget from qwt.text import QwtText, QwtTextLabel def qwtSetTabOrder(first, second, with_children): tab_chain = [first, second] if with_children: children = second.findChildren(QWidget) w = second.nextInFocusChain() while w in children: while w in children: children.remove(w) tab_chain += [w] w = w.nextInFocusChain() for idx in range(len(tab_chain) - 1): w_from = tab_chain[idx] w_to = tab_chain[idx + 1] policy1, policy2 = w_from.focusPolicy(), w_to.focusPolicy() proxy1, proxy2 = w_from.focusProxy(), w_to.focusProxy() for w in (w_from, w_to): w.setFocusPolicy(Qt.TabFocus) w.setFocusProxy(None) QWidget.setTabOrder(w_from, w_to) for w, pl, px in ((w_from, policy1, proxy1), (w_to, policy2, proxy2)): w.setFocusPolicy(pl) w.setFocusProxy(px) class ItemList(list): def sortItems(self): self.sort(key=lambda item: item.z()) def insertItem(self, obj): self.append(obj) self.sortItems() def removeItem(self, obj): self.remove(obj) self.sortItems() class QwtPlot_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.itemList = ItemList() self.titleLabel = None self.footerLabel = None self.canvas = None self.legend = None self.layout = None self.autoReplot = None self.flatStyle = None class AxisData(object): def __init__(self): self.isEnabled = None self.doAutoScale = None self.minValue = None self.maxValue = None self.stepSize = None self.maxMajor = None self.maxMinor = None self.isValid = None self.scaleDiv = None # QwtScaleDiv self.scaleEngine = None # QwtScaleEngine self.scaleWidget = None # QwtScaleWidget self.margin = None # Margin (float) in % class QwtPlot(QFrame): """ A 2-D plotting widget QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`), markers (:py:class:`qwt.plot_marker.QwtPlotMarker`), the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else derived from :py:class:`QwtPlotItem`. A plot can have up to four axes, with each plot item attached to an x- and a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or are calculated from the plot items, using algorithms (`QwtScaleEngine`) which can be configured separately for each axis. The following example is a good starting point to see how to set up a plot widget:: from qtpy import QtWidgets as QW import qwt import numpy as np app = QW.QApplication([]) x = np.linspace(-10, 10, 500) plot = qwt.QwtPlot("Trigonometric functions") plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) plot.resize(600, 300) plot.show() .. image:: /_static/QwtPlot_example.png .. py:class:: QwtPlot([title=""], [parent=None]) :param str title: Title text :param QWidget parent: Parent widget .. py:data:: itemAttached A signal indicating, that an item has been attached/detached :param plotItem: Plot item :param on: Attached/Detached .. py:data:: legendDataChanged A signal with the attributes how to update the legend entries for a plot item. :param itemInfo: Info about a plot item, build from itemToInfo() :param data: Attributes of the entries (usually <= 1) for the plot item. """ itemAttached = Signal(object, bool) legendDataChanged = Signal(object, object) # enum Axis AXES = yLeft, yRight, xBottom, xTop = list(range(4)) axisCnt = len(AXES) # Not necessary but ensure compatibility with PyQwt # enum LegendPosition LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4)) def __init__(self, *args): if len(args) == 0: title, parent = "", None elif len(args) == 1: if isinstance(args[0], QWidget) or args[0] is None: title = "" (parent,) = args else: (title,) = args parent = None elif len(args) == 2: title, parent = args else: raise TypeError( "%s() takes 0, 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) QFrame.__init__(self, parent) self.__layout_state = None self.__data = QwtPlot_PrivateData() from qwt.plot_layout import QwtPlotLayout self.__data.layout = QwtPlotLayout() self.__data.autoReplot = False self.setAutoReplot(False) self.setPlotLayout(self.__data.layout) # title self.__data.titleLabel = QwtTextLabel(self) self.__data.titleLabel.setObjectName("QwtPlotTitle") text = QwtText(title) text.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap) self.__data.titleLabel.setText(text) # footer self.__data.footerLabel = QwtTextLabel(self) self.__data.footerLabel.setObjectName("QwtPlotFooter") footer = QwtText() footer.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap) self.__data.footerLabel.setText(footer) # legend self.__data.legend = None # axis self.__axisData = [] self.initAxesData() # canvas self.__data.canvas = QwtPlotCanvas(self) self.__data.canvas.setObjectName("QwtPlotCanvas") self.__data.canvas.installEventFilter(self) # plot style self.setFlatStyle(True) self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) focusChain = [ self, self.__data.titleLabel, self.axisWidget(self.xTop), self.axisWidget(self.yLeft), self.__data.canvas, self.axisWidget(self.yRight), self.axisWidget(self.xBottom), self.__data.footerLabel, ] for idx in range(len(focusChain) - 1): qwtSetTabOrder(focusChain[idx], focusChain[idx + 1], False) self.legendDataChanged.connect(self.updateLegendItems) def insertItem(self, item): """ Insert a plot item :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: :py:meth:`removeItem()` .. note:: This was a member of QwtPlotDict in older versions. """ self.__data.itemList.insertItem(item) def removeItem(self, item): """ Remove a plot item :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: :py:meth:`insertItem()` .. note:: This was a member of QwtPlotDict in older versions. """ self.__data.itemList.removeItem(item) def detachItems(self, rtti=None): """ Detach items from the dictionary :param rtti: In case of `QwtPlotItem.Rtti_PlotItem` or None (default) detach all items otherwise only those items of the type rtti. :type rtti: int or None .. note:: This was a member of QwtPlotDict in older versions. """ for item in self.__data.itemList[:]: if rtti in (None, QwtPlotItem.Rtti_PlotItem) or item.rtti() == rtti: item.attach(None) def itemList(self, rtti=None): """ A list of attached plot items. Use caution when iterating these lists, as removing/detaching an item will invalidate the iterator. Instead you can place pointers to objects to be removed in a removal list, and traverse that list later. :param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti. :return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items. .. note:: This was a member of QwtPlotDict in older versions. """ if rtti is None or rtti == QwtPlotItem.Rtti_PlotItem: return self.__data.itemList return [item for item in self.__data.itemList if item.rtti() == rtti] def setFlatStyle(self, state): """ Set or reset the flatStyle option If the flatStyle option is set, the plot will be rendered without any margin (scales, canvas, layout). Enabling this option makes the plot look flat and compact. The flatStyle option is set to True by default. :param bool state: True or False. .. seealso:: :py:meth:`flatStyle()` """ def make_font(family=None, size=None, delta_size=None, weight=None): finfo = self.fontInfo() family = finfo.family() if family is None else family weight = -1 if weight is None else weight size = size if delta_size is None else finfo.pointSize() + delta_size return QFont(family, size, weight) if state: # New PythonQwt-exclusive flat style plot_title_font = make_font(size=12) axis_title_font = make_font(size=11) axis_label_font = make_font(size=10) tick_lighter_factors = (150, 125, 100) scale_margin = scale_spacing = 0 canvas_frame_style = QFrame.NoFrame plot_layout_canvas_margin = plot_layout_spacing = 0 ticks_color = Qt.darkGray labels_color = "#444444" else: # Old PyQwt / Qwt style plot_title_font = make_font(size=14, weight=QFont.Bold) axis_title_font = make_font(size=12, weight=QFont.Bold) axis_label_font = make_font(size=10) tick_lighter_factors = (100, 100, 100) scale_margin = scale_spacing = 2 canvas_frame_style = QFrame.Panel | QFrame.Sunken plot_layout_canvas_margin = 4 plot_layout_spacing = 5 ticks_color = labels_color = Qt.black self.canvas().setFrameStyle(canvas_frame_style) self.plotLayout().setCanvasMargin(plot_layout_canvas_margin) self.plotLayout().setSpacing(plot_layout_spacing) palette = self.palette() palette.setColor(QPalette.WindowText, QColor(ticks_color)) palette.setColor(QPalette.Text, QColor(labels_color)) self.setPalette(palette) for axis_id in self.AXES: scale_widget = self.axisWidget(axis_id) scale_draw = self.axisScaleDraw(axis_id) scale_widget.setFont(axis_label_font) scale_widget.setMargin(scale_margin) scale_widget.setSpacing(scale_spacing) scale_title = scale_widget.title() scale_title.setFont(axis_title_font) scale_widget.setTitle(scale_title) for tick_type, factor in enumerate(tick_lighter_factors): scale_draw.setTickLighterFactor(tick_type, factor) plot_title = self.title() plot_title.setFont(plot_title_font) self.setTitle(plot_title) self.__data.flatStyle = state def flatStyle(self): """ :return: True if the flatStyle option is set. .. seealso:: :py:meth:`setFlatStyle()` """ return self.__data.flatStyle def initAxesData(self): """Initialize axes""" self.__axisData = [AxisData() for axisId in self.AXES] self.__axisData[self.yLeft].scaleWidget = QwtScaleWidget( QwtScaleDraw.LeftScale, self ) self.__axisData[self.yRight].scaleWidget = QwtScaleWidget( QwtScaleDraw.RightScale, self ) self.__axisData[self.xTop].scaleWidget = QwtScaleWidget( QwtScaleDraw.TopScale, self ) self.__axisData[self.xBottom].scaleWidget = QwtScaleWidget( QwtScaleDraw.BottomScale, self ) self.__axisData[self.yLeft].scaleWidget.setObjectName("QwtPlotAxisYLeft") self.__axisData[self.yRight].scaleWidget.setObjectName("QwtPlotAxisYRight") self.__axisData[self.xTop].scaleWidget.setObjectName("QwtPlotAxisXTop") self.__axisData[self.xBottom].scaleWidget.setObjectName("QwtPlotAxisXBottom") for axisId in self.AXES: d = self.__axisData[axisId] d.scaleEngine = QwtLinearScaleEngine() d.scaleWidget.setTransformation(d.scaleEngine.transformation()) d.scaleWidget.setMargin(2) text = d.scaleWidget.title() d.scaleWidget.setTitle(text) d.doAutoScale = True d.margin = 0.05 d.minValue = 0.0 d.maxValue = 1000.0 d.stepSize = 0.0 d.maxMinor = 5 d.maxMajor = 8 d.isValid = False self.__axisData[self.yLeft].isEnabled = True self.__axisData[self.yRight].isEnabled = False self.__axisData[self.xBottom].isEnabled = True self.__axisData[self.xTop].isEnabled = False def deleteAxesData(self): # XXX Is is really necessary in Python? (pure transcription of C++) for axisId in self.AXES: self.__axisData[axisId].scaleEngine = None self.__axisData[axisId] = None def axisWidget(self, axisId): """ :param int axisId: Axis index :return: Scale widget of the specified axis, or None if axisId is invalid. """ if self.axisValid(axisId): return self.__axisData[axisId].scaleWidget def setAxisScaleEngine(self, axisId, scaleEngine): """ Change the scale engine for an axis :param int axisId: Axis index :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine .. seealso:: :py:meth:`axisScaleEngine()` """ if self.axisValid(axisId) and scaleEngine is not None: d = self.__axisData[axisId] d.scaleEngine = scaleEngine self.__axisData[axisId].scaleWidget.setTransformation( scaleEngine.transformation() ) d.isValid = False self.autoRefresh() def axisScaleEngine(self, axisId): """ :param int axisId: Axis index :return: Scale engine for a specific axis .. seealso:: :py:meth:`setAxisScaleEngine()` """ if self.axisValid(axisId): return self.__axisData[axisId].scaleEngine def axisAutoScale(self, axisId): """ :param int axisId: Axis index :return: True, if autoscaling is enabled """ if self.axisValid(axisId): return self.__axisData[axisId].doAutoScale def axisEnabled(self, axisId): """ :param int axisId: Axis index :return: True, if a specified axis is enabled """ if self.axisValid(axisId): return self.__axisData[axisId].isEnabled def axisFont(self, axisId): """ :param int axisId: Axis index :return: The font of the scale labels for a specified axis """ if self.axisValid(axisId): return self.axisWidget(axisId).font() else: return QFont() def axisMaxMajor(self, axisId): """ :param int axisId: Axis index :return: The maximum number of major ticks for a specified axis .. seealso:: :py:meth:`setAxisMaxMajor()`, :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.__axisData[axisId].maxMajor else: return 0 def axisMaxMinor(self, axisId): """ :param int axisId: Axis index :return: The maximum number of minor ticks for a specified axis .. seealso:: :py:meth:`setAxisMaxMinor()`, :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.__axisData[axisId].maxMinor else: return 0 def axisScaleDiv(self, axisId): """ :param int axisId: Axis index :return: The scale division of a specified axis axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound() are the current limits of the axis scale. .. seealso:: :py:class:`qwt.scale_div.QwtScaleDiv`, :py:meth:`setAxisScaleDiv()`, :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ return self.__axisData[axisId].scaleDiv def axisScaleDraw(self, axisId): """ :param int axisId: Axis index :return: Specified scaleDraw for axis, or NULL if axis is invalid. """ if self.axisValid(axisId): return self.axisWidget(axisId).scaleDraw() def axisStepSize(self, axisId): """ :param int axisId: Axis index :return: step size parameter value This doesn't need to be the step size of the current scale. .. seealso:: :py:meth:`setAxisScale()`, :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.__axisData[axisId].stepSize else: return 0 def axisMargin(self, axisId): """ :param int axisId: Axis index :return: Margin in % of the canvas size .. seealso:: :py:meth:`setAxisMargin()` """ if self.axisValid(axisId): return self.__axisData[axisId].margin return 0.0 def axisInterval(self, axisId): """ :param int axisId: Axis index :return: The current interval of the specified axis This is only a convenience function for axisScaleDiv(axisId).interval() .. seealso:: :py:class:`qwt.scale_div.QwtScaleDiv`, :py:meth:`axisScaleDiv()` """ if self.axisValid(axisId): return self.axisScaleDiv(axisId).interval() else: return QwtInterval() def axisTitle(self, axisId): """ :param int axisId: Axis index :return: Title of a specified axis """ if self.axisValid(axisId): return self.axisWidget(axisId).title() else: return QwtText() def enableAxis(self, axisId, tf=True): """ Enable or disable a specified axis When an axis is disabled, this only means that it is not visible on the screen. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal. Only xBottom and yLeft are enabled by default. :param int axisId: Axis index :param bool tf: True (enabled) or False (disabled) """ if self.axisValid(axisId) and tf != self.__axisData[axisId].isEnabled: self.__axisData[axisId].isEnabled = tf self.updateLayout() def invTransform(self, axisId, pos): """ Transform the x or y coordinate of a position in the drawing region into a value. :param int axisId: Axis index :param int pos: position .. warning:: The position can be an x or a y coordinate, depending on the specified axis. """ if self.axisValid(axisId): return self.canvasMap(axisId).invTransform(pos) else: return 0.0 def transform(self, axisId, value): """ Transform a value into a coordinate in the plotting region :param int axisId: Axis index :param fload value: Value :return: X or Y coordinate in the plotting region corresponding to the value. """ if self.axisValid(axisId): return self.canvasMap(axisId).transform(value) else: return 0.0 def setAxisFont(self, axisId, font): """ Change the font of an axis :param int axisId: Axis index :param QFont font: Font .. warning:: This function changes the font of the tick labels, not of the axis title. """ if self.axisValid(axisId): return self.axisWidget(axisId).setFont(font) def setAxisAutoScale(self, axisId, on=True): """ Enable autoscaling for a specified axis This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling is enabled by default. :param int axisId: Axis index :param bool on: On/Off .. seealso:: :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`, :py:meth:`updateAxes()` .. note:: The autoscaling flag has no effect until updateAxes() is executed ( called by replot() ). """ if self.axisValid(axisId) and self.__axisData[axisId].doAutoScale != on: self.__axisData[axisId].doAutoScale = on self.autoRefresh() def setAxisScale(self, axisId, min_, max_, stepSize=0): """ Disable autoscaling and specify a fixed scale for a selected axis. In updateAxes() the scale engine calculates a scale division from the specified parameters, that will be assigned to the scale widget. So updates of the scale widget usually happen delayed with the next replot. :param int axisId: Axis index :param float min_: Minimum of the scale :param float max_: Maximum of the scale :param float stepSize: Major step size. If step == 0, the step size is calculated automatically using the maxMajor setting. .. seealso:: :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`, :py:meth:`axisStepSize()`, :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): d = self.__axisData[axisId] d.doAutoScale = False d.isValid = False d.minValue = min_ d.maxValue = max_ d.stepSize = stepSize self.autoRefresh() def setAxisScaleDiv(self, axisId, scaleDiv): """ Disable autoscaling and specify a fixed scale for a selected axis. The scale division will be stored locally only until the next call of updateAxes(). So updates of the scale widget usually happen delayed with the next replot. :param int axisId: Axis index :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division .. seealso:: :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()` """ if self.axisValid(axisId): d = self.__axisData[axisId] d.doAutoScale = False d.scaleDiv = scaleDiv d.isValid = True self.autoRefresh() def setAxisScaleDraw(self, axisId, scaleDraw): """ Set a scale draw :param int axisId: Axis index :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note that scaleDraw has to be created with new and will be deleted by the corresponding QwtScale member ( like a child object ). .. seealso:: :py:class:`qwt.scale_draw.QwtScaleDraw`, :py:class:`qwt.scale_widget.QwtScaleWigdet` .. warning:: The attributes of scaleDraw will be overwritten by those of the previous QwtScaleDraw. """ if self.axisValid(axisId): self.axisWidget(axisId).setScaleDraw(scaleDraw) self.autoRefresh() def setAxisLabelAlignment(self, axisId, alignment): """ Change the alignment of the tick labels :param int axisId: Axis index :param Qt.Alignment alignment: Or'd Qt.AlignmentFlags .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAlignment(alignment) def setAxisLabelRotation(self, axisId, rotation): """ Rotate all tick labels :param int axisId: Axis index :param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too. .. seealso:: :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelRotation(rotation) def setAxisLabelAutoSize(self, axisId, state): """ Set tick labels automatic size option (default: on) :param int axisId: Axis index :param bool state: On/off .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAutoSize(state) def setAxisMaxMinor(self, axisId, maxMinor): """ Set the maximum number of minor scale intervals for a specified axis :param int axisId: Axis index :param int maxMinor: Maximum number of minor steps .. seealso:: :py:meth:`axisMaxMinor()` """ if self.axisValid(axisId): maxMinor = max([0, min([maxMinor, 100])]) d = self.__axisData[axisId] if maxMinor != d.maxMinor: d.maxMinor = maxMinor d.isValid = False self.autoRefresh() def setAxisMaxMajor(self, axisId, maxMajor): """ Set the maximum number of major scale intervals for a specified axis :param int axisId: Axis index :param int maxMajor: Maximum number of major steps .. seealso:: :py:meth:`axisMaxMajor()` """ if self.axisValid(axisId): maxMajor = max([1, min([maxMajor, 10000])]) d = self.__axisData[axisId] if maxMajor != d.maxMajor: d.maxMajor = maxMajor d.isValid = False self.autoRefresh() def setAxisMargin(self, axisId, margin): """ Set the margin of the scale widget :param int axisId: Axis index :param float margin: Margin in % of the canvas size .. seealso:: :py:meth:`axisMargin()` """ if self.axisValid(axisId): d = self.__axisData[axisId] if margin != d.margin: d.margin = margin d.isValid = False self.autoRefresh() def setAxisTitle(self, axisId, title): """ Change the title of a specified axis :param int axisId: Axis index :param title: axis title :type title: qwt.text.QwtText or str """ if self.axisValid(axisId): self.axisWidget(axisId).setTitle(title) self.updateLayout() def updateAxes(self): """ Rebuild the axes scales In case of autoscaling the boundaries of a scale are calculated from the bounding rectangles of all plot items, having the `QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`). Then a scale division is calculated (`QwtScaleEngine.didvideScale()`) and assigned to scale widget. When the scale boundaries have been assigned with `setAxisScale()` a scale division is calculated (`QwtScaleEngine.didvideScale()`) for this interval and assigned to the scale widget. When the scale has been set explicitly by `setAxisScaleDiv()` the locally stored scale division gets assigned to the scale widget. The scale widget indicates modifications by emitting a `QwtScaleWidget.scaleDivChanged()` signal. `updateAxes()` is usually called by `replot()`. .. seealso:: :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`, :py:meth:`QwtPlotItem.boundingRect()` """ intv = [QwtInterval() for _i in self.AXES] itmList = self.itemList() for item in itmList: if not item.testItemAttribute(QwtPlotItem.AutoScale): continue if not item.isVisible(): continue if self.axisAutoScale(item.xAxis()) or self.axisAutoScale(item.yAxis()): rect = item.boundingRect() if rect.width() >= 0.0: intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right()) if rect.height() >= 0.0: intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom()) for axisId in self.AXES: d = self.__axisData[axisId] minValue = d.minValue maxValue = d.maxValue stepSize = d.stepSize if d.margin is not None: intv_i = intv[axisId].extend_fraction(d.margin) else: intv_i = intv[axisId] if d.doAutoScale and intv_i.isValid(): d.isValid = False minValue = intv_i.minValue() maxValue = intv_i.maxValue() d.scaleEngine.autoScale(d.maxMajor, minValue, maxValue, stepSize) if not d.isValid: d.scaleDiv = d.scaleEngine.divideScale( minValue, maxValue, d.maxMajor, d.maxMinor, stepSize ) d.isValid = True scaleWidget = self.axisWidget(axisId) scaleWidget.setScaleDiv(d.scaleDiv) # It is *really* necessary to update border dist! # Otherwise, when tick labels are large enough, the ticks # may not be aligned with canvas grid. # See the following issues for more details: # https://github.com/PlotPyStack/guiqwt/issues/57 # https://github.com/PlotPyStack/PythonQwt/issues/30 startDist, endDist = scaleWidget.getBorderDistHint() scaleWidget.setBorderDist(startDist, endDist) for item in itmList: if item.testItemInterest(QwtPlotItem.ScaleInterest): item.updateScaleDiv( self.axisScaleDiv(item.xAxis()), self.axisScaleDiv(item.yAxis()) ) def setCanvas(self, canvas): """ Set the drawing canvas of the plot widget. The default canvas is a `QwtPlotCanvas`. :param QWidget canvas: Canvas Widget .. seealso:: :py:meth:`canvas()` """ if canvas == self.__data.canvas: return self.__data.canvas = canvas if canvas is not None: canvas.setParent(self) canvas.installEventFilter(self) if self.isVisible(): canvas.show() def event(self, event): if event.type() == QEvent.LayoutRequest: self.updateLayout() elif event.type() == QEvent.PolishRequest: self.replot() return QFrame.event(self, event) def eventFilter(self, obj, event): if obj is self.__data.canvas: if event.type() == QEvent.Resize: self.updateCanvasMargins() elif event.type() == 178: # QEvent.ContentsRectChange: self.updateLayout() return QFrame.eventFilter(self, obj, event) def autoRefresh(self): """Replots the plot if :py:meth:`autoReplot()` is True.""" if self.__data.autoReplot: self.replot() def setAutoReplot(self, tf=True): """ Set or reset the autoReplot option If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call :py:meth:`replot()` explicitly if necessary. The autoReplot option is set to false by default, which means that the user has to call :py:meth:`replot()` in order to make changes visible. :param bool tf: True or False. Defaults to True. .. seealso:: :py:meth:`autoReplot()` """ self.__data.autoReplot = tf def autoReplot(self): """ :return: True if the autoReplot option is set. .. seealso:: :py:meth:`setAutoReplot()` """ return self.__data.autoReplot def setTitle(self, title): """ Change the plot's title :param title: New title :type title: str or qwt.text.QwtText .. seealso:: :py:meth:`title()` """ current_title = self.__data.titleLabel.text() if isinstance(title, QwtText) and current_title == title: return elif not isinstance(title, QwtText) and current_title.text() == title: return self.__data.titleLabel.setText(title) self.updateLayout() def title(self): """ :return: Title of the plot .. seealso:: :py:meth:`setTitle()` """ return self.__data.titleLabel.text() def titleLabel(self): """ :return: Title label widget. """ return self.__data.titleLabel def setFooter(self, text): """ Change the text the footer :param text: New text of the footer :type text: str or qwt.text.QwtText .. seealso:: :py:meth:`footer()` """ current_footer = self.__data.footerLabel.text() if isinstance(text, QwtText) and current_footer == text: return elif not isinstance(text, QwtText) and current_footer.text() == text: return self.__data.footerLabel.setText(text) self.updateLayout() def footer(self): """ :return: Text of the footer .. seealso:: :py:meth:`setFooter()` """ return self.__data.footerLabel.text() def footerLabel(self): """ :return: Footer label widget. """ return self.__data.footerLabel def setPlotLayout(self, layout): """ Assign a new plot layout :param layout: Layout :type layout: qwt.plot_layout.QwtPlotLayout .. seealso:: :py:meth:`plotLayout()` """ if layout != self.__data.layout: self.__data.layout = layout self.updateLayout() def plotLayout(self): """ :return: the plot's layout .. seealso:: :py:meth:`setPlotLayout()` """ return self.__data.layout def legend(self): """ :return: the plot's legend .. seealso:: :py:meth:`insertLegend()` """ return self.__data.legend def canvas(self): """ :return: the plot's canvas """ return self.__data.canvas def sizeHint(self): """ :return: Size hint for the plot widget .. seealso:: :py:meth:`minimumSizeHint()` """ dw = dh = 0 for axisId in self.AXES: if self.axisEnabled(axisId): niceDist = 40 scaleWidget = self.axisWidget(axisId) scaleDiv = scaleWidget.scaleDraw().scaleDiv() majCnt = len(scaleDiv.ticks(QwtScaleDiv.MajorTick)) if axisId in (self.yLeft, self.yRight): hDiff = ( majCnt - 1 ) * niceDist - scaleWidget.minimumSizeHint().height() if hDiff > dh: dh = hDiff else: wDiff = ( majCnt - 1 ) * niceDist - scaleWidget.minimumSizeHint().width() if wDiff > dw: dw = wDiff return self.minimumSizeHint() + QSize(dw, dh) def minimumSizeHint(self): """ :return: Return a minimum size hint """ hint = self.__data.layout.minimumSizeHint(self) hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth()) return hint def resizeEvent(self, e): QFrame.resizeEvent(self, e) self.updateLayout() def replot(self): """ Redraw the plot If the `autoReplot` option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible. .. seealso:: :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()` """ doAutoReplot = self.autoReplot() self.setAutoReplot(False) self.updateAxes() # Maybe the layout needs to be updated, because of changed # axes labels. We need to process them here before painting # to avoid that scales and canvas get out of sync. QApplication.sendPostedEvents(self, QEvent.LayoutRequest) if self.__data.canvas: try: self.__data.canvas.replot() except (AttributeError, TypeError): self.__data.canvas.update(self.__data.canvas.contentsRect()) self.setAutoReplot(doAutoReplot) def get_layout_state(self): return ( self.contentsRect(), self.__data.titleLabel.text(), self.__data.footerLabel.text(), [ (self.axisEnabled(axisId), self.axisTitle(axisId).text()) for axisId in self.AXES ], self.__data.legend, ) def updateLayout(self): """ Adjust plot content to its current size. .. seealso:: :py:meth:`resizeEvent()` """ # state = self.get_layout_state() # if self.__layout_state is not None and\ # state == self.__layout_state: # return # self.__layout_state = state self.__data.layout.activate(self, self.contentsRect()) titleRect = self.__data.layout.titleRect().toRect() footerRect = self.__data.layout.footerRect().toRect() scaleRect = [ self.__data.layout.scaleRect(axisId).toRect() for axisId in self.AXES ] legendRect = self.__data.layout.legendRect().toRect() canvasRect = self.__data.layout.canvasRect().toRect() if self.__data.titleLabel.text(): self.__data.titleLabel.setGeometry(titleRect) if not self.__data.titleLabel.isVisibleTo(self): self.__data.titleLabel.show() else: self.__data.titleLabel.hide() if self.__data.footerLabel.text(): self.__data.footerLabel.setGeometry(footerRect) if not self.__data.footerLabel.isVisibleTo(self): self.__data.footerLabel.show() else: self.__data.footerLabel.hide() for axisId in self.AXES: scaleWidget = self.axisWidget(axisId) if self.axisEnabled(axisId): if scaleRect[axisId] != scaleWidget.geometry(): scaleWidget.setGeometry(scaleRect[axisId]) startDist, endDist = scaleWidget.getBorderDistHint() scaleWidget.setBorderDist(startDist, endDist) # ------------------------------------------------------------- # XXX: The following was commented to fix issue #35 # Note: the same code part in Qwt's original source code is # annotated with the mention "do we need this code any # longer ???"... I guess not :) # if axisId in (self.xBottom, self.xTop): # r = QRegion(scaleRect[axisId]) # if self.axisEnabled(self.yLeft): # r = r.subtracted(QRegion(scaleRect[self.yLeft])) # if self.axisEnabled(self.yRight): # r = r.subtracted(QRegion(scaleRect[self.yRight])) # r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y()) # scaleWidget.setMask(r) # ------------------------------------------------------------- if not scaleWidget.isVisibleTo(self): scaleWidget.show() else: scaleWidget.hide() if self.__data.legend: if self.__data.legend.isEmpty(): self.__data.legend.hide() else: self.__data.legend.setGeometry(legendRect) self.__data.legend.show() self.__data.canvas.setGeometry(canvasRect) def getCanvasMarginsHint(self, maps, canvasRect): """ Calculate the canvas margins :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates :param QRectF canvasRect: Bounding rectangle where to paint Plot items might indicate, that they need some extra space at the borders of the canvas by the `QwtPlotItem.Margins` flag. .. seealso:: :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()` """ left = top = right = bottom = -1.0 for item in self.itemList(): if item.testItemAttribute(QwtPlotItem.Margins): m = item.getCanvasMarginHint( maps[item.xAxis()], maps[item.yAxis()], canvasRect ) left = max([left, m[self.yLeft]]) top = max([top, m[self.xTop]]) right = max([right, m[self.yRight]]) bottom = max([bottom, m[self.xBottom]]) return left, top, right, bottom def updateCanvasMargins(self): """ Update the canvas margins Plot items might indicate, that they need some extra space at the borders of the canvas by the `QwtPlotItem.Margins` flag. .. seealso:: :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ maps = [self.canvasMap(axisId) for axisId in self.AXES] margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect()) doUpdate = False for axisId in self.AXES: if margins[axisId] >= 0.0: m = math.ceil(margins[axisId]) self.plotLayout().setCanvasMargin(m, axisId) doUpdate = True if doUpdate: self.updateLayout() def drawCanvas(self, painter): """ Redraw the canvas. :param QPainter painter: Painter used for drawing .. warning:: drawCanvas calls drawItems what is also used for printing. Applications that like to add individual plot items better overload drawItems() .. seealso:: :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ maps = [self.canvasMap(axisId) for axisId in self.AXES] self.drawItems(painter, self.__data.canvas.contentsRect(), maps) def drawItems(self, painter, canvasRect, maps): """ Redraw the canvas. :param QPainter painter: Painter used for drawing :param QRectF canvasRect: Bounding rectangle where to paint :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates .. note:: Usually canvasRect is `contentsRect()` of the plot canvas. Due to a bug in Qt this rectangle might be wrong for certain frame styles ( f.e `QFrame.Box` ) and it might be necessary to fix the margins manually using `QWidget.setContentsMargins()` """ for item in self.itemList(): if item and item.isVisible(): painter.save() painter.setRenderHint( QPainter.Antialiasing, item.testRenderHint(QwtPlotItem.RenderAntialiased), ) item.draw(painter, maps[item.xAxis()], maps[item.yAxis()], canvasRect) painter.restore() def canvasMap(self, axisId): """ :param int axisId: Axis :return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa. .. seealso:: :py:class:`qwt.scale_map.QwtScaleMap`, :py:meth:`transform()`, :py:meth:`invTransform()` """ map_ = QwtScaleMap() if not self.__data.canvas: return map_ map_.setTransformation(self.axisScaleEngine(axisId).transformation()) sd = self.axisScaleDiv(axisId) if sd is None: return map_ map_.setScaleInterval(sd.lowerBound(), sd.upperBound()) if self.axisEnabled(axisId): s = self.axisWidget(axisId) if axisId in (self.yLeft, self.yRight): y = s.y() + s.startBorderDist() - self.__data.canvas.y() h = s.height() - s.startBorderDist() - s.endBorderDist() map_.setPaintInterval(y + h, y) else: x = s.x() + s.startBorderDist() - self.__data.canvas.x() w = s.width() - s.startBorderDist() - s.endBorderDist() map_.setPaintInterval(x, x + w) else: canvasRect = self.__data.canvas.contentsRect() if axisId in (self.yLeft, self.yRight): top = 0 if not self.plotLayout().alignCanvasToScale(self.xTop): top = self.plotLayout().canvasMargin(self.xTop) bottom = 0 if not self.plotLayout().alignCanvasToScale(self.xBottom): bottom = self.plotLayout().canvasMargin(self.xBottom) map_.setPaintInterval( canvasRect.bottom() - bottom, canvasRect.top() + top ) else: left = 0 if not self.plotLayout().alignCanvasToScale(self.yLeft): left = self.plotLayout().canvasMargin(self.yLeft) right = 0 if not self.plotLayout().alignCanvasToScale(self.yRight): right = self.plotLayout().canvasMargin(self.yRight) map_.setPaintInterval( canvasRect.left() + left, canvasRect.right() - right ) return map_ def setCanvasBackground(self, brush): """ Change the background of the plotting area Sets brush to `QPalette.Window` of all color groups of the palette of the canvas. Using `canvas().setPalette()` is a more powerful way to set these colors. :param QBrush brush: New background brush .. seealso:: :py:meth:`canvasBackground()` """ pal = self.__data.canvas.palette() pal.setBrush(QPalette.Window, QBrush(brush)) self.canvas().setPalette(pal) def canvasBackground(self): """ :return: Background brush of the plotting area. .. seealso:: :py:meth:`setCanvasBackground()` """ return self.canvas().palette().brush(QPalette.Active, QPalette.Window) def axisValid(self, axis_id): """ :param int axis_id: Axis :return: True if the specified axis exists, otherwise False """ return axis_id in QwtPlot.AXES def insertLegend(self, legend, pos=None, ratio=-1): """ Insert a legend If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend` the legend will be organized in one column from top to down. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right. insertLegend() will set the plot widget as parent for the legend. The legend will be deleted in the destructor of the plot or when another legend is inserted. Legends, that are not inserted into the layout of the plot widget need to connect to the legendDataChanged() signal. Calling updateLegend() initiates this signal for an initial update. When the application code wants to implement its own layout this also needs to be done for rendering plots to a document ( see QwtPlotRenderer ). :param qwt.legend.QwtAbstractLegend legend: Legend :param QwtPlot.LegendPosition pos: The legend's position. :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes .. note:: For top/left position the number of columns will be limited to 1, otherwise it will be set to unlimited. .. note:: The legend will be shrunk if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. .. seealso:: :py:meth:`legend()`, :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`, :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()` """ if pos is None: pos = self.RightLegend self.__data.layout.setLegendPosition(pos, ratio) if legend != self.__data.legend: if self.__data.legend and self.__data.legend.parent() is self: del self.__data.legend self.__data.legend = legend if self.__data.legend: self.legendDataChanged.connect(self.__data.legend.updateLegend) if self.__data.legend.parent() is not self: self.__data.legend.setParent(self) self.blockSignals(True) self.updateLegend() self.blockSignals(False) lpos = self.__data.layout.legendPosition() if legend is not None: if lpos in (self.LeftLegend, self.RightLegend): if legend.maxColumns() == 0: legend.setMaxColumns(1) elif lpos in (self.TopLegend, self.BottomLegend): legend.setMaxColumns(0) previousInChain = None if lpos == self.LeftLegend: previousInChain = self.axisWidget(QwtPlot.xTop) elif lpos == self.TopLegend: previousInChain = self elif lpos == self.RightLegend: previousInChain = self.axisWidget(QwtPlot.yRight) elif lpos == self.BottomLegend: previousInChain = self.footerLabel() if previousInChain is not None: qwtSetTabOrder(previousInChain, legend, True) self.updateLayout() def updateLegend(self, plotItem=None): """ If plotItem is None, emit QwtPlot.legendDataChanged for all plot item. Otherwise, emit the signal for passed plot item. :param qwt.plot.QwtPlotItem plotItem: Plot item .. seealso:: :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged` """ if plotItem is None: items = list(self.itemList()) else: items = [plotItem] for plotItem in items: if plotItem is None: continue legendData = [] if plotItem.testItemAttribute(QwtPlotItem.Legend): legendData = plotItem.legendData() self.legendDataChanged.emit(plotItem, legendData) def updateLegendItems(self, plotItem, legendData): """ Update all plot items interested in legend attributes Call `QwtPlotItem.updateLegend()`, when the `QwtPlotItem.LegendInterest` flag is set. :param qwt.plot.QwtPlotItem plotItem: Plot item :param list legendData: Entries to be displayed for the plot item ( usually 1 ) .. seealso:: :py:meth:`QwtPlotItem.LegendInterest()`, :py:meth:`QwtPlotItem.updateLegend` """ if plotItem is not None: for item in self.itemList(): if item.testItemInterest(QwtPlotItem.LegendInterest): item.updateLegend(plotItem, legendData) def attachItem(self, plotItem, on): """ Attach/Detach a plot item :param qwt.plot.QwtPlotItem plotItem: Plot item :param bool on: When true attach the item, otherwise detach it """ if plotItem.testItemInterest(QwtPlotItem.LegendInterest): for item in self.itemList(): legendData = [] if on and item.testItemAttribute(QwtPlotItem.Legend): legendData = item.legendData() plotItem.updateLegend(item, legendData) if on: self.insertItem(plotItem) else: self.removeItem(plotItem) self.itemAttached.emit(plotItem, on) if plotItem.testItemAttribute(QwtPlotItem.Legend): if on: self.updateLegend(plotItem) else: self.legendDataChanged.emit(plotItem, []) self.autoRefresh() def print_(self, printer): """ Print plot to printer :param printer: Printer :type printer: QPaintDevice or QPrinter or QSvgGenerator """ from qwt.plot_renderer import QwtPlotRenderer renderer = QwtPlotRenderer(self) renderer.renderTo(self, printer) def exportTo( self, filename, size=(800, 600), size_mm=None, resolution=85, format_=None ): """ Export plot to PDF or image file (SVG, PNG, ...) :param str filename: Filename :param tuple size: (width, height) size in pixels :param tuple size_mm: (width, height) size in millimeters :param int resolution: Resolution in dots per Inch (dpi) :param str format_: File format (PDF, SVG, PNG, ...) """ if size_mm is None: size_mm = tuple(25.4 * np.array(size) / resolution) from qwt.plot_renderer import QwtPlotRenderer renderer = QwtPlotRenderer(self) renderer.renderDocument(self, filename, size_mm, resolution, format_) class QwtPlotItem_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.plot = None self.isVisible = True self.attributes = 0 self.interests = 0 self.renderHints = 0 self.z = 0.0 self.xAxis = QwtPlot.xBottom self.yAxis = QwtPlot.yLeft self.legendIconSize = QSize(8, 8) self.title = None # QwtText self.icon = None class QwtPlotItem(object): """ Base class for items on the plot canvas A plot item is "something", that can be painted on the plot canvas, or only affects the scales of the plot widget. They can be categorized as: - Representator A "Representator" is an item that represents some sort of data on the plot canvas. The different representator classes are organized according to the characteristics of the data: - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a horizontal/vertical coordinate - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of points - Decorators A "Decorator" is an item, that displays additional information, that is not related to any data: - :py:class:`qwt.plot_grid.QwtPlotGrid` Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included into autoscaling or has an entry on the legend. Before misusing the existing item classes it might be better to implement a new type of plot item ( don't implement a watermark as spectrogram ). Deriving a new type of `QwtPlotItem` primarily means to implement the `YourPlotItem.draw()` method. .. seealso:: The cpuplot example shows the implementation of additional plot items. .. py:class:: QwtPlotItem([title=None]) Constructor :param title: Title of the item :type title: qwt.text.QwtText or str """ # enum RttiValues ( Rtti_PlotItem, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotLegend, Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotSpectroCurve, Rtti_PlotIntervalCurve, Rtti_PlotHistogram, Rtti_PlotSpectrogram, Rtti_PlotSVG, Rtti_PlotTradingCurve, Rtti_PlotBarChart, Rtti_PlotMultiBarChart, Rtti_PlotShape, Rtti_PlotTextLabel, Rtti_PlotZone, ) = list(range(17)) Rtti_PlotUserItem = 1000 # enum ItemAttribute Legend = 0x01 AutoScale = 0x02 Margins = 0x04 # enum ItemInterest ScaleInterest = 0x01 LegendInterest = 0x02 # enum RenderHint RenderAntialiased = 0x1 def __init__(self, title=None, icon=None): """title: QwtText""" if title is None: title = QwtText("") if hasattr(title, "capitalize"): # avoids dealing with Py3K compat. title = QwtText(title) assert isinstance(title, QwtText) self.__data = QwtPlotItem_PrivateData() self.__data.title = title self.__data.icon = icon def attach(self, plot): """ Attach the item to a plot. This method will attach a `QwtPlotItem` to the `QwtPlot` argument. It will first detach the `QwtPlotItem` from any plot from a previous call to attach (if necessary). If a None argument is passed, it will detach from any `QwtPlot` it was attached to. :param qwt.plot.QwtPlot plot: Plot widget .. seealso:: :py:meth:`detach()` """ if plot is self.__data.plot: return if self.__data.plot: self.__data.plot.attachItem(self, False) self.__data.plot = plot if self.__data.plot: self.__data.plot.attachItem(self, True) def detach(self): """ Detach the item from a plot. This method detaches a `QwtPlotItem` from any `QwtPlot` it has been associated with. .. seealso:: :py:meth:`attach()` """ self.attach(None) def rtti(self): """ Return rtti for the specific class represented. `QwtPlotItem` is simply a virtual interface class, and base classes will implement this method with specific rtti values so a user can differentiate them. :return: rtti value """ return self.Rtti_PlotItem def plot(self): """ :return: attached plot """ return self.__data.plot def z(self): """ Plot items are painted in increasing z-order. :return: item z order .. seealso:: :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()` """ return self.__data.z def setZ(self, z): """ Set the z value Plot items are painted in increasing z-order. :param float z: Z-value .. seealso:: :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()` """ if self.__data.z != z: if self.__data.plot: self.__data.plot.attachItem(self, False) self.__data.z = z if self.__data.plot: self.__data.plot.attachItem(self, True) self.itemChanged() def setTitle(self, title): """ Set a new title :param title: Title :type title: qwt.text.QwtText or str .. seealso:: :py:meth:`title()` """ if not isinstance(title, QwtText): title = QwtText(title) if self.__data.title != title: self.__data.title = title self.legendChanged() def title(self): """ :return: Title of the item .. seealso:: :py:meth:`setTitle()` """ return self.__data.title def setIcon(self, icon): """ Set item icon :param icon: Icon :type icon: QIcon .. seealso:: :py:meth:`icon()` """ self.__data.icon = icon def icon(self): """ :return: Icon of the item .. seealso:: :py:meth:`setIcon()` """ return self.__data.icon def setItemAttribute(self, attribute, on=True): """ Toggle an item attribute :param int attribute: Attribute type :param bool on: True/False .. seealso:: :py:meth:`testItemAttribute()` """ if bool(self.__data.attributes & attribute) != on: if on: self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute if attribute == QwtPlotItem.Legend: self.legendChanged() self.itemChanged() def testItemAttribute(self, attribute): """ Test an item attribute :param int attribute: Attribute type :return: True/False .. seealso:: :py:meth:`setItemAttribute()` """ return bool(self.__data.attributes & attribute) def setItemInterest(self, interest, on=True): """ Toggle an item interest :param int attribute: Interest type :param bool on: True/False .. seealso:: :py:meth:`testItemInterest()` """ if bool(self.__data.interests & interest) != on: if on: self.__data.interests |= interest else: self.__data.interests &= ~interest self.itemChanged() def testItemInterest(self, interest): """ Test an item interest :param int attribute: Interest type :return: True/False .. seealso:: :py:meth:`setItemInterest()` """ return bool(self.__data.interests & interest) def setRenderHint(self, hint, on=True): """ Toggle a render hint :param int hint: Render hint :param bool on: True/False .. seealso:: :py:meth:`testRenderHint()` """ if bool(self.__data.renderHints & hint) != on: if on: self.__data.renderHints |= hint else: self.__data.renderHints &= ~hint self.itemChanged() def testRenderHint(self, hint): """ Test a render hint :param int attribute: Render hint :return: True/False .. seealso:: :py:meth:`setRenderHint()` """ return bool(self.__data.renderHints & hint) def setLegendIconSize(self, size): """ Set the size of the legend icon The default setting is 8x8 pixels :param QSize size: Size .. seealso:: :py:meth:`legendIconSize()`, :py:meth:`legendIcon()` """ if self.__data.legendIconSize != size: self.__data.legendIconSize = size self.legendChanged() def legendIconSize(self): """ :return: Legend icon size .. seealso:: :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()` """ return self.__data.legendIconSize def legendIcon(self, index, size): """ :param int index: Index of the legend entry (usually there is only one) :param QSizeF size: Icon size :return: Icon representing the item on the legend The default implementation returns an invalid icon .. seealso:: :py:meth:`setLegendIconSize()`, :py:meth:`legendData()` """ return QwtGraphic() def show(self): """Show the item""" self.setVisible(True) def hide(self): """Hide the item""" self.setVisible(False) def setVisible(self, on): """ Show/Hide the item :param bool on: Show if True, otherwise hide .. seealso:: :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()` """ if on != self.__data.isVisible: self.__data.isVisible = on self.itemChanged() def isVisible(self): """ :return: True if visible .. seealso:: :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()` """ return self.__data.isVisible def itemChanged(self): """ Update the legend and call `QwtPlot.autoRefresh()` for the parent plot. .. seealso:: :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()` """ if self.__data.plot: self.__data.plot.autoRefresh() def legendChanged(self): """ Update the legend of the parent plot. .. seealso:: :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()` """ if self.testItemAttribute(QwtPlotItem.Legend) and self.__data.plot: self.__data.plot.updateLegend(self) def setAxes(self, xAxis, yAxis): """ Set X and Y axis The item will painted according to the coordinates of its Axes. :param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`) :param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`) .. seealso:: :py:meth:`setXAxis()`, :py:meth:`setYAxis()`, :py:meth:`xAxis()`, :py:meth:`yAxis()` """ if xAxis == QwtPlot.xBottom or xAxis == QwtPlot.xTop: self.__data.xAxis = xAxis if yAxis == QwtPlot.yLeft or yAxis == QwtPlot.yRight: self.__data.yAxis = yAxis self.itemChanged() def setAxis(self, xAxis, yAxis): """ Set X and Y axis .. warning:: `setAxis` has been removed in Qwt6: please use :py:meth:`setAxes()` instead """ import warnings warnings.warn( "`setAxis` has been removed in Qwt6: " "please use `setAxes` instead", RuntimeWarning, ) self.setAxes(xAxis, yAxis) def setXAxis(self, axis): """ Set the X axis The item will painted according to the coordinates its Axes. :param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`) .. seealso:: :py:meth:`setAxes()`, :py:meth:`setYAxis()`, :py:meth:`xAxis()`, :py:meth:`yAxis()` """ if axis in (QwtPlot.xBottom, QwtPlot.xTop): self.__data.xAxis = axis self.itemChanged() def setYAxis(self, axis): """ Set the Y axis The item will painted according to the coordinates its Axes. :param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`) .. seealso:: :py:meth:`setAxes()`, :py:meth:`setXAxis()`, :py:meth:`xAxis()`, :py:meth:`yAxis()` """ if axis in (QwtPlot.yLeft, QwtPlot.yRight): self.__data.yAxis = axis self.itemChanged() def xAxis(self): """ :return: xAxis """ return self.__data.xAxis def yAxis(self): """ :return: yAxis """ return self.__data.yAxis def boundingRect(self): """ :return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0) .. note:: A width or height < 0.0 is ignored by the autoscaler """ return QRectF(1.0, 1.0, -2.0, -2.0) def getCanvasMarginHint(self, xMap, yMap, canvasRect): """ Calculate a hint for the canvas margin When the QwtPlotItem::Margins flag is enabled the plot item indicates, that it needs some margins at the borders of the canvas. This is f.e. used by bar charts to reserve space for displaying the bars. The margins are in target device coordinates ( pixels on screen ) :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates .. seealso:: :py:meth:`QwtPlot.getCanvasMarginsHint()`, :py:meth:`QwtPlot.updateCanvasMargins()`, """ left = top = right = bottom = 0.0 return left, top, right, bottom def legendData(self): """ Return all information, that is needed to represent the item on the legend `QwtLegendData` is basically a list of QVariants that makes it possible to overload and reimplement legendData() to return almost any type of information, that is understood by the receiver that acts as the legend. The default implementation returns one entry with the title() of the item and the legendIcon(). :return: Data, that is needed to represent the item on the legend .. seealso:: :py:meth:`title()`, :py:meth:`legendIcon()`, :py:class:`qwt.legend.QwtLegend` """ data = QwtLegendData() label = self.title() label.setRenderFlags(label.renderFlags() & Qt.AlignLeft) data.setValue(QwtLegendData.TitleRole, label) graphic = self.legendIcon(0, self.legendIconSize()) if not graphic.isNull(): data.setValue(QwtLegendData.IconRole, graphic) return [data] def updateLegend(self, item, data): """ Update the item to changes of the legend info Plot items that want to display a legend ( not those, that want to be displayed on a legend ! ) will have to implement updateLegend(). updateLegend() is only called when the LegendInterest interest is enabled. The default implementation does nothing. :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend :param list data: Attributes how to display item on the legend .. note:: Plot items, that want to be displayed on a legend need to enable the `QwtPlotItem.Legend` flag and to implement legendData() and legendIcon() """ pass def scaleRect(self, xMap, yMap): """ Calculate the bounding scale rectangle of 2 maps :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding scale rect of the scale maps, not normalized """ return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist()) def paintRect(self, xMap, yMap): """ Calculate the bounding paint rectangle of 2 maps :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding paint rectangle of the scale maps, not normalized """ return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist()) PythonQwt-0.12.7/qwt/plot_canvas.py000066400000000000000000000731551465265754400173110ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotCanvas ------------- .. autoclass:: QwtPlotCanvas :members: """ import os from qtpy.QtCore import QEvent, QObject, QPoint, QPointF, QRect, QRectF, QSize, Qt from qtpy.QtGui import ( QBrush, QGradient, QImage, QPaintEngine, QPainter, QPainterPath, QPen, QPixmap, QPolygonF, QRegion, qAlpha, ) from qtpy.QtWidgets import QFrame, QStyle, QStyleOption, QStyleOptionFrame from qwt.null_paintdevice import QwtNullPaintDevice from qwt.painter import QwtPainter QT_API = os.environ["QT_API"] class Border(object): def __init__(self): self.pathlist = [] self.rectList = [] self.clipRegion = QRegion() class Background(object): def __init__(self): self.path = QPainterPath() self.brush = QBrush() self.origin = QPointF() class QwtStyleSheetRecorder(QwtNullPaintDevice): def __init__(self, size): super(QwtStyleSheetRecorder, self).__init__() self.__size = size self.__pen = QPen() self.__brush = QBrush() self.__origin = QPointF() self.clipRects = [] self.border = Border() self.background = Background() def updateState(self, state): if state.state() & QPaintEngine.DirtyPen: self.__pen = state.pen() if state.state() & QPaintEngine.DirtyBrush: self.__brush = state.brush() if state.state() & QPaintEngine.DirtyBrushOrigin: self.__origin = state.brushOrigin() def drawRects(self, rects, count): if QT_API.startswith("pyside"): # Pyside if isinstance(rects, (QRect, QRectF)): self.border.list = [rects] else: for i in range(count): self.border.rectList += [rects.getRect().index(i)] else: # PyQt for i in range(count): self.border.rectList += [rects[i]] def drawPath(self, path): rect = QRectF(QPointF(0.0, 0.0), self.__size) if path.controlPointRect().contains(rect.center()): self.setCornerRects(path) self.alignCornerRects(rect) self.background.path = path self.background.brush = self.__brush self.background.origin = self.__origin else: self.border.pathlist += [path] def setCornerRects(self, path): pos = QPointF(0.0, 0.0) for i in range(path.elementCount()): el = path.elementAt(i) if el.type in (QPainterPath.MoveToElement, QPainterPath.LineToElement): pos.setX(el.x) pos.setY(el.y) elif el.type == QPainterPath.CurveToElement: r = QRectF(pos, QPointF(el.x, el.y)) self.clipRects += [r.normalized()] pos.setX(el.x) pos.setY(el.y) elif el.type == QPainterPath.CurveToDataElement: if self.clipRects: r = self.clipRects[-1] r.setCoords( min([r.left(), el.x]), min([r.top(), el.y]), max([r.right(), el.x]), max([r.bottom(), el.y]), ) self.clipRects[-1] = r.normalized() def sizeMetrics(self): return self.__size def alignCornerRects(self, rect): for r in self.clipRects: if r.center().x() < rect.center().x(): r.setLeft(rect.left()) else: r.setRight(rect.right()) if r.center().y() < rect.center().y(): r.setTop(rect.top()) else: r.setBottom(rect.bottom()) def qwtDrawBackground(painter, canvas): painter.save() borderClip = canvas.borderPath(canvas.rect()) if not borderClip.isEmpty(): painter.setClipPath(borderClip, Qt.IntersectClip) brush = canvas.palette().brush(canvas.backgroundRole()) if brush.style() == Qt.TexturePattern: pm = QPixmap(canvas.size()) QwtPainter.fillPixmap(canvas, pm) painter.drawPixmap(0, 0, pm) elif brush.gradient(): rects = [] if brush.gradient().coordinateMode() == QGradient.ObjectBoundingMode: rects += [canvas.rect()] else: rects += [painter.clipRegion().boundingRect()] useRaster = False if painter.paintEngine().type() == QPaintEngine.X11: useRaster = True if useRaster: format_ = QImage.Format_RGB32 stops = brush.gradient().stops() for stop in stops: if stop.second.alpha() != 255: format_ = QImage.Format_ARGB32 break image = QImage(canvas.size(), format_) pntr = QPainter(image) pntr.setPen(Qt.NoPen) pntr.setBrush(brush) for rect in rects: pntr.drawRect(rect) pntr.end() painter.drawImage(0, 0, image) else: painter.setPen(Qt.NoPen) painter.setBrush(brush) for rect in rects: painter.drawRect(rect) else: painter.setPen(Qt.NoPen) painter.setBrush(brush) painter.drawRect(painter.clipRegion().boundingRect()) painter.restore() def qwtRevertPath(path): if path.elementCount() == 4: el0 = path.elementAt(0) el3 = path.elementAt(3) path.setElementPositionAt(0, el3.x, el3.y) path.setElementPositionAt(3, el0.x, el0.y) def qwtCombinePathList(rect, pathList): if not pathList: return QPainterPath() ordered = [None] * 8 for subPath in pathList: index = -1 br = subPath.controlPointRect() if br.center().x() < rect.center().x(): if br.center().y() < rect.center().y(): if abs(br.top() - rect.top()) < abs(br.left() - rect.left()): index = 1 else: index = 0 else: if abs(br.bottom() - rect.bottom) < abs(br.left() - rect.left()): index = 6 else: index = 7 if subPath.currentPosition().y() > br.center().y(): qwtRevertPath(subPath) else: if br.center().y() < rect.center().y(): if abs(br.top() - rect.top()) < abs(br.right() - rect.right()): index = 2 else: index = 3 else: if abs(br.bottom() - rect.bottom()) < abs(br.right() - rect.right()): index = 5 else: index = 4 if subPath.currentPosition().y() < br.center().y(): qwtRevertPath(subPath) ordered[index] = subPath for i in range(4): if ordered[2 * i].isEmpty() != ordered[2 * i + 1].isEmpty(): return QPainterPath() corners = QPolygonF(rect) path = QPainterPath() for i in range(4): if ordered[2 * i].isEmpty(): path.lineTo(corners[i]) else: path.connectPath(ordered[2 * i]) path.connectPath(ordered[2 * i + 1]) path.closeSubpath() return path def qwtDrawStyledBackground(w, painter): opt = QStyleOption() opt.initFrom(w) w.style().drawPrimitive(QStyle.PE_Widget, opt, painter, w) def qwtBackgroundWidget(w): if w.parentWidget() is None: return w if w.autoFillBackground(): brush = w.palette().brush(w.backgroundRole()) if brush.color().alpha() > 0: return w if w.testAttribute(Qt.WA_StyledBackground): image = QImage(1, 1, QImage.Format_ARGB32) image.fill(Qt.transparent) painter = QPainter(image) painter.translate(-w.rect().center()) qwtDrawStyledBackground(w, painter) painter.end() if qAlpha(image.pixel(0, 0)) != 0: return w return qwtBackgroundWidget(w.parentWidget()) def qwtFillBackground(*args): if len(args) == 2: painter, canvas = args rects = [] if canvas.testAttribute(Qt.WA_StyledBackground): recorder = QwtStyleSheetRecorder(canvas.size()) p = QPainter(recorder) qwtDrawStyledBackground(canvas, p) p.end() if recorder.background.brush.isOpaque(): rects = recorder.clipRects else: rects += [canvas.rect()] else: r = canvas.rect() radius = canvas.borderRadius() if radius > 0.0: sz = QSize(radius, radius) rects += [ QRect(r.topLeft(), sz), QRect(r.topRight() - QPoint(radius, 0), sz), QRect(r.bottomRight() - QPoint(radius, radius), sz), QRect(r.bottomLeft() - QPoint(0, radius), sz), ] qwtFillBackground(painter, canvas, rects) elif len(args) == 3: painter, widget, fillRects = args if not fillRects: return if painter.hasClipping(): clipRegion = painter.transform().map(painter.clipRegion()) else: clipRegion = widget.contentsRect() bgWidget = qwtBackgroundWidget(widget.parentWidget()) for rect in fillRects: if clipRegion.intersects(rect): pm = QPixmap(rect.size()) QwtPainter.fillPixmap( bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft()) ) painter.drawPixmap(rect, pm) else: raise TypeError( "%s() takes 2 or 3 argument(s) (%s given)" % ("qwtFillBackground", len(args)) ) class StyleSheetBackground(object): def __init__(self): self.brush = QBrush() self.origin = QPointF() class StyleSheet(object): def __init__(self): self.hasBorder = False self.borderPath = QPainterPath() self.cornerRects = [] self.background = StyleSheetBackground() class QwtPlotCanvas_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.focusIndicator = QwtPlotCanvas.NoFocusIndicator self.borderRadius = 0 self.paintAttributes = 0 self.backingStore = None self.styleSheet = StyleSheet() self.styleSheet.hasBorder = False class QwtPlotCanvas(QFrame): """ Canvas of a QwtPlot. Canvas is the widget where all plot items are displayed .. seealso:: :py:meth:`qwt.plot.QwtPlot.setCanvas()` Paint attributes: * `QwtPlotCanvas.BackingStore`: Paint double buffered reusing the content of the pixmap buffer when possible. Using a backing store might improve the performance significantly, when working with widget overlays (like rubber bands). Disabling the cache might improve the performance for incremental paints (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`). * `QwtPlotCanvas.Opaque`: Try to fill the complete contents rectangle of the plot canvas When using styled backgrounds Qt assumes, that the canvas doesn't fill its area completely (f.e because of rounded borders) and fills the area below the canvas. When this is done with gradients it might result in a serious performance bottleneck - depending on the size. When the Opaque attribute is enabled the canvas tries to identify the gaps with some heuristics and to fill those only. .. warning:: Will not work for semitransparent backgrounds * `QwtPlotCanvas.HackStyledBackground`: Try to improve painting of styled backgrounds `QwtPlotCanvas` supports the box model attributes for customizing the layout with style sheets. Unfortunately the design of Qt style sheets has no concept how to handle backgrounds with rounded corners - beside of padding. When HackStyledBackground is enabled the plot canvas tries to separate the background from the background border by reverse engineering to paint the background before and the border after the plot items. In this order the border gets perfectly antialiased and you can avoid some pixel artifacts in the corners. * `QwtPlotCanvas.ImmediatePaint`: When ImmediatePaint is set replot() calls repaint() instead of update(). .. seealso:: :py:meth:`replot()`, :py:meth:`QWidget.repaint()`, :py:meth:`QWidget.update()` Focus indicators: * `QwtPlotCanvas.NoFocusIndicator`: Don't paint a focus indicator * `QwtPlotCanvas.CanvasFocusIndicator`: The focus is related to the complete canvas. Paint the focus indicator using paintFocus() * `QwtPlotCanvas.ItemFocusIndicator`: The focus is related to an item (curve, point, ...) on the canvas. It is up to the application to display a focus indication using f.e. highlighting. .. py:class:: QwtPlotCanvas([plot=None]) Constructor :param qwt.plot.QwtPlot plot: Parent plot widget .. seealso:: :py:meth:`qwt.plot.QwtPlot.setCanvas()` """ # enum PaintAttribute BackingStore = 1 Opaque = 2 HackStyledBackground = 4 ImmediatePaint = 8 # enum FocusIndicator NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator = list(range(3)) def __init__(self, plot=None): super(QwtPlotCanvas, self).__init__(plot) self.__plot = plot self.setFrameStyle(QFrame.Panel | QFrame.Sunken) self.setLineWidth(2) self.__data = QwtPlotCanvas_PrivateData() self.setCursor(Qt.CrossCursor) self.setAutoFillBackground(True) self.setPaintAttribute(QwtPlotCanvas.BackingStore, False) self.setPaintAttribute(QwtPlotCanvas.Opaque, True) self.setPaintAttribute(QwtPlotCanvas.HackStyledBackground, True) def plot(self): """ :return: Parent plot widget """ return self.__plot def setPaintAttribute(self, attribute, on=True): """ Changing the paint attributes Paint attributes: * `QwtPlotCanvas.BackingStore` * `QwtPlotCanvas.Opaque` * `QwtPlotCanvas.HackStyledBackground` * `QwtPlotCanvas.ImmediatePaint` :param int attribute: Paint attribute :param bool on: On/Off .. seealso:: :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()` """ if bool(self.__data.paintAttributes & attribute) == on: return if on: self.__data.paintAttributes |= attribute else: self.__data.paintAttributes &= ~attribute if attribute == self.BackingStore: if on: if self.__data.backingStore is None: self.__data.backingStore = QPixmap() if self.isVisible(): self.__data.backingStore = self.grab(self.rect()) else: self.__data.backingStore = None elif attribute == self.Opaque: if on: self.setAttribute(Qt.WA_OpaquePaintEvent, True) elif attribute in (self.HackStyledBackground, self.ImmediatePaint): pass def testPaintAttribute(self, attribute): """ Test whether a paint attribute is enabled :param int attribute: Paint attribute :return: True, when attribute is enabled .. seealso:: :py:meth:`setPaintAttribute()` """ return self.__data.paintAttributes & attribute def backingStore(self): """ :return: Backing store, might be None """ return self.__data.backingStore def invalidateBackingStore(self): """Invalidate the internal backing store""" if self.__data.backingStore: self.__data.backingStore = QPixmap() def setFocusIndicator(self, focusIndicator): """ Set the focus indicator Focus indicators: * `QwtPlotCanvas.NoFocusIndicator` * `QwtPlotCanvas.CanvasFocusIndicator` * `QwtPlotCanvas.ItemFocusIndicator` :param int focusIndicator: Focus indicator .. seealso:: :py:meth:`focusIndicator()` """ self.__data.focusIndicator = focusIndicator def focusIndicator(self): """ :return: Focus indicator .. seealso:: :py:meth:`setFocusIndicator()` """ return self.__data.focusIndicator def setBorderRadius(self, radius): """ Set the radius for the corners of the border frame :param float radius: Radius of a rounded corner .. seealso:: :py:meth:`borderRadius()` """ self.__data.borderRadius = max([0.0, radius]) def borderRadius(self): """ :return: Radius for the corners of the border frame .. seealso:: :py:meth:`setBorderRadius()` """ return self.__data.borderRadius def event(self, event): if event.type() == QEvent.PolishRequest: if self.testPaintAttribute(self.Opaque): self.setAttribute(Qt.WA_OpaquePaintEvent, True) if event.type() in (QEvent.PolishRequest, QEvent.StyleChange): self.updateStyleSheetInfo() return QFrame.event(self, event) def paintEvent(self, event): painter = QPainter(self) painter.setClipRegion(event.region()) if ( self.testPaintAttribute(self.BackingStore) and self.__data.backingStore is not None and not self.__data.backingStore.isNull() ): bs = self.__data.backingStore pixelRatio = bs.devicePixelRatio() if bs.size() != self.size() * pixelRatio: bs = QwtPainter.backingStore(self, self.size()) if self.testAttribute(Qt.WA_StyledBackground): p = QPainter(bs) qwtFillBackground(p, self) self.drawCanvas(p, True) else: p = QPainter() if self.__data.borderRadius <= 0.0: # print('**DEBUG: QwtPlotCanvas.paintEvent') QwtPainter.fillPixmap(self, bs) p.begin(bs) self.drawCanvas(p, False) else: p.begin(bs) qwtFillBackground(p, self) self.drawCanvas(p, True) if self.frameWidth() > 0: self.drawBorder(p) p.end() painter.drawPixmap(0, 0, self.__data.backingStore) else: if self.testAttribute(Qt.WA_StyledBackground): if self.testAttribute(Qt.WA_OpaquePaintEvent): qwtFillBackground(painter, self) self.drawCanvas(painter, True) else: self.drawCanvas(painter, False) else: if self.testAttribute(Qt.WA_OpaquePaintEvent): if self.autoFillBackground(): qwtFillBackground(painter, self) qwtDrawBackground(painter, self) else: if self.borderRadius() > 0.0: clipPath = QPainterPath() clipPath.addRect(self.rect()) clipPath = clipPath.subtracted(self.borderPath(self.rect())) painter.save() painter.setClipPath(clipPath, Qt.IntersectClip) qwtFillBackground(painter, self) qwtDrawBackground(painter, self) painter.restore() self.drawCanvas(painter, False) if self.frameWidth() > 0: self.drawBorder(painter) if self.hasFocus() and self.focusIndicator() == self.CanvasFocusIndicator: self.drawFocusIndicator(painter) def drawCanvas(self, painter, withBackground): hackStyledBackground = False if ( withBackground and self.testAttribute(Qt.WA_StyledBackground) and self.testPaintAttribute(self.HackStyledBackground) ): # Antialiasing rounded borders is done by # inserting pixels with colors between the # border color and the color on the canvas, # When the border is painted before the plot items # these colors are interpolated for the canvas # and the plot items need to be clipped excluding # the anialiased pixels. In situations, where # the plot items fill the area at the rounded # borders this is noticeable. # The only way to avoid these annoying "artefacts" # is to paint the border on top of the plot items. if ( self.__data.styleSheet.hasBorder and not self.__data.styleSheet.borderPath.isEmpty() ): # We have a border with at least one rounded corner hackStyledBackground = True if withBackground: painter.save() if self.testAttribute(Qt.WA_StyledBackground): if hackStyledBackground: # paint background without border painter.setPen(Qt.NoPen) painter.setBrush(self.__data.styleSheet.background.brush) painter.setBrushOrigin(self.__data.styleSheet.background.origin) painter.setClipPath(self.__data.styleSheet.borderPath) painter.drawRect(self.contentsRect()) else: qwtDrawStyledBackground(self, painter) elif self.autoFillBackground(): painter.setPen(Qt.NoPen) painter.setBrush(self.palette().brush(self.backgroundRole())) if self.__data.borderRadius > 0.0 and self.rect() == self.frameRect(): if self.frameWidth() > 0: painter.setClipPath(self.borderPath(self.rect())) painter.drawRect(self.rect()) else: painter.setRenderHint(QPainter.Antialiasing, True) painter.drawPath(self.borderPath(self.rect())) else: painter.drawRect(self.rect()) painter.restore() painter.save() if not self.__data.styleSheet.borderPath.isEmpty(): painter.setClipPath(self.__data.styleSheet.borderPath, Qt.IntersectClip) else: if self.__data.borderRadius > 0.0: painter.setClipPath(self.borderPath(self.frameRect()), Qt.IntersectClip) else: # print('**DEBUG: QwtPlotCanvas.drawCanvas') painter.setClipRect(self.contentsRect(), Qt.IntersectClip) self.plot().drawCanvas(painter) painter.restore() if withBackground and hackStyledBackground: # Now paint the border on top opt = QStyleOptionFrame() opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self) def drawBorder(self, painter): """ Draw the border of the plot canvas :param QPainter painter: Painter .. seealso:: :py:meth:`setBorderRadius()` """ if self.__data.borderRadius > 0: if self.frameWidth() > 0: QwtPainter.drawRoundedFrame( painter, QRectF(self.frameRect()), self.__data.borderRadius, self.__data.borderRadius, self.palette(), self.frameWidth(), self.frameStyle(), ) else: opt = QStyleOptionFrame() opt.initFrom(self) try: shape_mask = QFrame.Shape_Mask.value shadow_mask = QFrame.Shadow_Mask.value except AttributeError: shape_mask = QFrame.Shape_Mask shadow_mask = QFrame.Shadow_Mask frameShape = self.frameStyle() & shape_mask frameShadow = self.frameStyle() & shadow_mask opt.frameShape = QFrame.Shape(int(opt.frameShape) | frameShape) if frameShape in ( QFrame.Box, QFrame.HLine, QFrame.VLine, QFrame.StyledPanel, QFrame.Panel, ): opt.lineWidth = self.lineWidth() opt.midLineWidth = self.midLineWidth() else: opt.lineWidth = self.frameWidth() if frameShadow == QFrame.Sunken: opt.state |= QStyle.State_Sunken elif frameShadow == QFrame.Raised: opt.state |= QStyle.State_Raised self.style().drawControl(QStyle.CE_ShapedFrame, opt, painter, self) def resizeEvent(self, event): QFrame.resizeEvent(self, event) self.updateStyleSheetInfo() def drawFocusIndicator(self, painter): """ Draw the focus indication :param QPainter painter: Painter """ margin = 1 focusRect = self.contentsRect() focusRect.setRect( focusRect.x() + margin, focusRect.y() + margin, focusRect.width() - 2 * margin, focusRect.height() - 2 * margin, ) QwtPainter.drawFocusRect(painter, self, focusRect) def replot(self): """ Invalidate the paint cache and repaint the canvas """ self.invalidateBackingStore() if self.testPaintAttribute(self.ImmediatePaint): self.repaint(self.contentsRect()) else: self.update(self.contentsRect()) def invalidatePaintCache(self): import warnings warnings.warn( "`invalidatePaintCache` has been removed: " "please use `replot` instead", RuntimeWarning, ) self.replot() def updateStyleSheetInfo(self): """ Update the cached information about the current style sheet """ if not self.testAttribute(Qt.WA_StyledBackground): return recorder = QwtStyleSheetRecorder(self.size()) painter = QPainter(recorder) opt = QStyleOption() opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self) painter.end() self.__data.styleSheet.hasBorder = len(recorder.border.rectList) > 0 self.__data.styleSheet.cornerRects = recorder.clipRects if recorder.background.path.isEmpty(): if self.__data.styleSheet.hasBorder: self.__data.styleSheet.borderPath = qwtCombinePathList( self.rect(), recorder.border.pathlist ) else: self.__data.styleSheet.borderPath = recorder.background.path self.__data.styleSheet.background.brush = recorder.background.brush self.__data.styleSheet.background.origin = recorder.background.origin def borderPath(self, rect): """ Calculate the painter path for a styled or rounded border When the canvas has no styled background or rounded borders the painter path is empty. :param QRect rect: Bounding rectangle of the canvas :return: Painter path, that can be used for clipping """ if self.testAttribute(Qt.WA_StyledBackground): recorder = QwtStyleSheetRecorder(rect.size()) painter = QPainter(recorder) opt = QStyleOption() opt.initFrom(self) opt.rect = rect self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self) painter.end() if not recorder.background.path.isEmpty(): return recorder.background.path if len(recorder.border.rectList) > 0: return qwtCombinePathList(rect, recorder.border.pathlist) elif self.__data.borderRadius > 0.0: fw2 = self.frameWidth() * 0.5 r = QRectF(rect).adjusted(fw2, fw2, -fw2, -fw2) path = QPainterPath() path.addRoundedRect(r, self.__data.borderRadius, self.__data.borderRadius) return path return QPainterPath() PythonQwt-0.12.7/qwt/plot_curve.py000066400000000000000000001103051465265754400171470ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotCurve ------------ .. autoclass:: QwtPlotCurve :members: """ import math import os from qtpy.QtCore import QLineF, QPointF, QRectF, QSize, Qt from qtpy.QtGui import QBrush, QColor, QPainter, QPen, QPolygonF from qwt._math import qwtSqr from qwt.graphic import QwtGraphic from qwt.plot import QwtPlot, QwtPlotItem, QwtPlotItem_PrivateData from qwt.plot_directpainter import QwtPlotDirectPainter from qwt.plot_series import ( QwtPlotSeriesItem, QwtPointArrayData, QwtSeriesData, QwtSeriesStore, ) from qwt.qthelpers import qcolor_from_str from qwt.symbol import QwtSymbol from qwt.text import QwtText QT_API = os.environ["QT_API"] if QT_API == "pyside6": import ctypes import shiboken6 as shiboken import numpy as np def qwtUpdateLegendIconSize(curve): if curve.symbol() and curve.testLegendAttribute(QwtPlotCurve.LegendShowSymbol): sz = curve.symbol().boundingRect().size() sz += QSize(2, 2) if curve.testLegendAttribute(QwtPlotCurve.LegendShowLine): w = math.ceil(1.5 * sz.width()) if w % 2: w += 1 sz.setWidth(max([8, w])) curve.setLegendIconSize(sz) def qwtVerifyRange(size, i1, i2): if size < 1: return 0 i1 = max([0, min([i1, size - 1])]) i2 = max([0, min([i2, size - 1])]) if i1 > i2: i1, i2 = i2, i1 return i2 - i1 + 1 def array2d_to_qpolygonf(xdata, ydata): """ Utility function to convert two 1D-NumPy arrays representing curve data (X-axis, Y-axis data) into a single polyline (QtGui.PolygonF object). This feature is compatible with PyQt5 and PySide6 (requires QtPy). License/copyright: MIT License © Pierre Raybaut 2020-2021. :param numpy.ndarray xdata: 1D-NumPy array :param numpy.ndarray ydata: 1D-NumPy array :return: Polyline :rtype: QtGui.QPolygonF """ if not (xdata.size == ydata.size == xdata.shape[0] == ydata.shape[0]): raise ValueError("Arguments must be 1D NumPy arrays with same size") size = xdata.size if QT_API.startswith("pyside"): # PySide (obviously...) polyline = QPolygonF() polyline.resize(size) address = shiboken.getCppPointer(polyline.data())[0] buffer = (ctypes.c_double * 2 * size).from_address(address) else: # PyQt if QT_API == "pyqt6": polyline = QPolygonF([QPointF(0, 0)] * size) else: polyline = QPolygonF(size) buffer = polyline.data() buffer.setsize(16 * size) # 16 bytes per point: 8 bytes per X,Y value (float64) memory = np.frombuffer(buffer, np.float64) memory[: (size - 1) * 2 + 1 : 2] = np.asarray(xdata, dtype=np.float64) memory[1 : (size - 1) * 2 + 2 : 2] = np.asarray(ydata, dtype=np.float64) return polyline def series_to_polyline(xMap, yMap, series, from_, to): """ Convert series data to QPolygon(F) polyline """ xdata = xMap.transform(series.xData()[from_ : to + 1]) ydata = yMap.transform(series.yData()[from_ : to + 1]) return array2d_to_qpolygonf(xdata, ydata) class QwtPlotCurve_PrivateData(QwtPlotItem_PrivateData): def __init__(self): QwtPlotItem_PrivateData.__init__(self) self.style = QwtPlotCurve.Lines self.baseline = 0.0 self.symbol = None self.attributes = 0 self.legendAttributes = QwtPlotCurve.LegendShowLine self.pen = QPen(Qt.black) self.brush = QBrush() class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): """ A plot item, that represents a series of points A curve is the representation of a series of points in the x-y plane. It supports different display styles and symbols. .. seealso:: :py:class:`qwt.symbol.QwtSymbol()`, :py:class:`qwt.scale_map.QwtScaleMap()` Curve styles: * `QwtPlotCurve.NoCurve`: Don't draw a curve. Note: This doesn't affect the symbols. * `QwtPlotCurve.Lines`: Connect the points with straight lines. * `QwtPlotCurve.Sticks`: Draw vertical or horizontal sticks ( depending on the orientation() ) from a baseline which is defined by setBaseline(). * `QwtPlotCurve.Steps`: Connect the points with a step function. The step function is drawn from the left to the right or vice versa, depending on the QwtPlotCurve::Inverted attribute. * `QwtPlotCurve.Dots`: Draw dots at the locations of the data points. Note: This is different from a dotted line (see setPen()), and faster as a curve in QwtPlotCurve::NoStyle style and a symbol painting a point. * `QwtPlotCurve.UserCurve`: Styles >= QwtPlotCurve.UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types. Curve attributes: * `QwtPlotCurve.Inverted`: For `QwtPlotCurve.Steps` only. Draws a step function from the right to the left. Legend attributes: * `QwtPlotCurve.LegendNoAttribute`: `QwtPlotCurve` tries to find a color representing the curve and paints a rectangle with it. * `QwtPlotCurve.LegendShowLine`: If the style() is not `QwtPlotCurve.NoCurve` a line is painted with the curve pen(). * `QwtPlotCurve.LegendShowSymbol`: If the curve has a valid symbol it is painted. * `QwtPlotCurve.LegendShowBrush`: If the curve has a brush a rectangle filled with the curve brush() is painted. .. py:class:: QwtPlotCurve([title=None]) Constructor :param title: Curve title :type title: qwt.text.QwtText or str or None """ # enum CurveStyle NoCurve = -1 Lines, Sticks, Steps, Dots = list(range(4)) UserCurve = 100 # enum CurveAttribute Inverted = 0x01 # enum LegendAttribute LegendNoAttribute = 0x00 LegendShowLine = 0x01 LegendShowSymbol = 0x02 LegendShowBrush = 0x04 def __init__(self, title=None): if title is None: title = QwtText("") if not isinstance(title, QwtText): title = QwtText(title) self.__data = None QwtPlotSeriesItem.__init__(self, title) QwtSeriesStore.__init__(self) self.init() @classmethod def make( cls, xdata=None, ydata=None, title=None, plot=None, z=None, x_axis=None, y_axis=None, style=None, symbol=None, linecolor=None, linewidth=None, linestyle=None, antialiased=False, size=None, finite=None, ): """ Create and setup a new `QwtPlotCurve` object (convenience function). :param xdata: List/array of x values :param ydata: List/array of y values :param title: Curve title :type title: qwt.text.QwtText or str or None :param plot: Plot to attach the curve to :type plot: qwt.plot.QwtPlot or None :param z: Z-value :type z: float or None :param x_axis: curve X-axis (default: QwtPlot.yLeft) :type x_axis: int or None :param y_axis: curve Y-axis (default: QwtPlot.xBottom) :type y_axis: int or None :param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`) :type style: int or None :param symbol: curve symbol :type symbol: qwt.symbol.QwtSymbol or None :param linecolor: curve line color :type linecolor: QColor or str or None :param linewidth: curve line width :type linewidth: float or None :param linestyle: curve pen style :type linestyle: Qt.PenStyle or None :param bool antialiased: if True, enable antialiasing rendering :param size: size of xData and yData :type size: int or None :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements .. seealso:: :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()` """ item = cls(title) if z is not None: item.setZ(z) if xdata is not None or ydata is not None: if xdata is None: raise ValueError("Missing xdata parameter") if ydata is None: raise ValueError("Missing ydata parameter") item.setData(xdata, ydata, size=size, finite=finite) x_axis = QwtPlot.xBottom if x_axis is None else x_axis y_axis = QwtPlot.yLeft if y_axis is None else y_axis item.setAxes(x_axis, y_axis) if style is not None: item.setStyle(style) if symbol is not None: item.setSymbol(symbol) linecolor = qcolor_from_str(linecolor, Qt.black) linewidth = 1.0 if linewidth is None else linewidth linestyle = Qt.SolidLine if linestyle is None else linestyle item.setPen(QPen(linecolor, linewidth, linestyle)) item.setRenderHint(cls.RenderAntialiased, antialiased) if plot is not None: item.attach(plot) return item def init(self): """Initialize internal members""" self.__data = QwtPlotCurve_PrivateData() self.setItemAttribute(QwtPlotItem.Legend) self.setItemAttribute(QwtPlotItem.AutoScale) self.setData(QwtPointArrayData()) self.setZ(20.0) def rtti(self): """:return: `QwtPlotItem.Rtti_PlotCurve`""" return QwtPlotItem.Rtti_PlotCurve def setLegendAttribute(self, attribute, on=True): """ Specify an attribute how to draw the legend icon Legend attributes: * `QwtPlotCurve.LegendNoAttribute` * `QwtPlotCurve.LegendShowLine` * `QwtPlotCurve.LegendShowSymbol` * `QwtPlotCurve.LegendShowBrush` :param int attribute: Legend attribute :param bool on: On/Off .. seealso:: :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()` """ if on != self.testLegendAttribute(attribute): if on: self.__data.legendAttributes |= attribute else: self.__data.legendAttributes &= ~attribute qwtUpdateLegendIconSize(self) self.legendChanged() def testLegendAttribute(self, attribute): """ :param int attribute: Legend attribute :return: True, when attribute is enabled .. seealso:: :py:meth:`setLegendAttribute()` """ return self.__data.legendAttributes & attribute def setStyle(self, style): """ Set the curve's drawing style Valid curve styles: * `QwtPlotCurve.NoCurve` * `QwtPlotCurve.Lines` * `QwtPlotCurve.Sticks` * `QwtPlotCurve.Steps` * `QwtPlotCurve.Dots` * `QwtPlotCurve.UserCurve` :param int style: Curve style .. seealso:: :py:meth:`style()` """ if style != self.__data.style: self.__data.style = style self.legendChanged() self.itemChanged() def style(self): """ :return: Style of the curve .. seealso:: :py:meth:`setStyle()` """ return self.__data.style def setSymbol(self, symbol): """ Assign a symbol The curve will take the ownership of the symbol, hence the previously set symbol will be delete by setting a new one. If symbol is None no symbol will be drawn. :param qwt.symbol.QwtSymbol symbol: Symbol .. seealso:: :py:meth:`symbol()` """ if symbol != self.__data.symbol: self.__data.symbol = symbol qwtUpdateLegendIconSize(self) self.legendChanged() self.itemChanged() def symbol(self): """ :return: Current symbol or None, when no symbol has been assigned .. seealso:: :py:meth:`setSymbol()` """ return self.__data.symbol def setPen(self, *args): """ Build and/or assign a pen, depending on the arguments. .. py:method:: setPen(color, width, style) :noindex: Build and assign a pen In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setPen(pen) :noindex: Assign a pen :param QPen pen: New pen .. seealso:: :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 3: color, width, style = args pen = QPen(color, width, style) elif len(args) == 1: (pen,) = args else: raise TypeError( "%s().setPen() takes 1 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) if pen != self.__data.pen: if isinstance(pen, QColor): pen = QPen(pen) else: assert isinstance(pen, QPen) self.__data.pen = pen self.legendChanged() self.itemChanged() def pen(self): """ :return: Pen used to draw the lines .. seealso:: :py:meth:`setPen()`, :py:meth:`brush()` """ return self.__data.pen def setBrush(self, brush): """ Assign a brush. In case of `brush.style() != QBrush.NoBrush` and `style() != QwtPlotCurve.Sticks` the area between the curve and the baseline will be filled. In case `not brush.color().isValid()` the area will be filled by `pen.color()`. The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending). :param brush: New brush :type brush: QBrush or QColor .. seealso:: :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()` """ if isinstance(brush, QColor): brush = QBrush(brush) else: assert isinstance(brush, QBrush) if brush != self.__data.brush: self.__data.brush = brush self.legendChanged() self.itemChanged() def brush(self): """ :return: Brush used to fill the area between lines and the baseline .. seealso:: :py:meth:`setBrush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()` """ return self.__data.brush def directPaint(self, from_, to): """ When observing a measurement while it is running, new points have to be added to an existing seriesItem. This method can be used to display them avoiding a complete redraw of the canvas. Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)` will result in faster painting, if the paint engine of the canvas widget supports this feature. :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted .. seealso:: :py:meth:`drawSeries()` """ directPainter = QwtPlotDirectPainter(self.plot()) directPainter.drawSeries(self, from_, to) def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw an interval of the curve :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`drawCurve()`, :py:meth:`drawSymbols()` """ numSamples = self.dataSize() if not painter or numSamples <= 0: return if to < 0: to = numSamples - 1 if qwtVerifyRange(numSamples, from_, to) > 0: painter.save() painter.setPen(self.__data.pen) self.drawCurve( painter, self.__data.style, xMap, yMap, canvasRect, from_, to ) painter.restore() if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: painter.save() self.drawSymbols( painter, self.__data.symbol, xMap, yMap, canvasRect, from_, to ) painter.restore() def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): """ Draw the line part (without symbols) of a curve interval. :param QPainter painter: Painter :param int style: curve style, see `QwtPlotCurve.CurveStyle` :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`, :py:meth:`drawSteps()`, :py:meth:`drawSticks()` """ if style == self.Lines: self.drawLines(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Sticks: self.drawSticks(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Steps: self.drawSteps(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Dots: self.drawDots(painter, xMap, yMap, canvasRect, from_, to) def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw lines :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawSteps()`, :py:meth:`drawSticks()` """ if from_ > to: return doFill = ( self.__data.brush.style() != Qt.NoBrush and self.__data.brush.color().alpha() > 0 ) polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) painter.drawPolyline(polyline) if doFill: self.fillCurve(painter, xMap, yMap, canvasRect, polyline) def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw sticks :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawSteps()`, :py:meth:`drawLines()` """ painter.save() painter.setRenderHint(QPainter.Antialiasing, False) x0 = xMap.transform(self.__data.baseline) y0 = yMap.transform(self.__data.baseline) o = self.orientation() series = self.data() for i in range(from_, to + 1): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if o == Qt.Horizontal: painter.drawLine(QLineF(xi, y0, xi, yi)) else: painter.drawLine(QLineF(x0, yi, xi, yi)) painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw dots :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawSteps()`, :py:meth:`drawLines()` """ doFill = ( self.__data.brush.style() != Qt.NoBrush and self.__data.brush.color().alpha() > 0 ) polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) painter.drawPoints(polyline) if doFill: self.fillCurve(painter, xMap, yMap, canvasRect, polyline) def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw steps :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawDots()`, :py:meth:`drawLines()` """ size = 2 * (to - from_) + 1 if QT_API == "pyside6": polygon = QPolygonF() polygon.resize(size) elif QT_API == "pyqt6": polygon = QPolygonF([QPointF(0, 0)] * size) else: polygon = QPolygonF(size) inverted = self.orientation() == Qt.Vertical if self.__data.attributes & self.Inverted: inverted = not inverted series = self.data() ip = 0 for i in range(from_, to + 1): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if ip > 0: p0 = polygon[ip - 2] if inverted: polygon[ip - 1] = QPointF(p0.x(), yi) else: polygon[ip - 1] = QPointF(xi, p0.y()) polygon[ip] = QPointF(xi, yi) ip += 2 painter.drawPolyline(polygon) if self.__data.brush.style() != Qt.NoBrush: self.fillCurve(painter, xMap, yMap, canvasRect, polygon) def setCurveAttribute(self, attribute, on=True): """ Specify an attribute for drawing the curve Supported curve attributes: * `QwtPlotCurve.Inverted` :param int attribute: Curve attribute :param bool on: On/Off .. seealso:: :py:meth:`testCurveAttribute()` """ if (self.__data.attributes & attribute) == on: return if on: self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute self.itemChanged() def testCurveAttribute(self, attribute): """ :return: True, if attribute is enabled .. seealso:: :py:meth:`setCurveAttribute()` """ return self.__data.attributes & attribute def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): """ Fill the area between the curve and the baseline with the curve brush :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param QPolygonF polygon: Polygon - will be modified ! .. seealso:: :py:meth:`setBrush()`, :py:meth:`setBaseline()`, :py:meth:`setStyle()` """ if self.__data.brush.style() == Qt.NoBrush: return self.closePolyline(painter, xMap, yMap, polygon) if polygon.count() <= 2: return brush = self.__data.brush if not brush.color().isValid(): brush.setColor(self.__data.pen.color()) painter.save() painter.setPen(Qt.NoPen) painter.setBrush(brush) painter.drawPolygon(polygon) painter.restore() def closePolyline(self, painter, xMap, yMap, polygon): """ Complete a polygon to be a closed polygon including the area between the original polygon and the baseline. :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QPolygonF polygon: Polygon to be completed """ if polygon.size() < 2: return baseline = self.__data.baseline if self.orientation() == Qt.Horizontal: if yMap.transformation(): baseline = yMap.transformation().bounded(baseline) refY = yMap.transform(baseline) polygon.append(QPointF(polygon.last().x(), refY)) polygon.append(QPointF(polygon.first().x(), refY)) else: if xMap.transformation(): baseline = xMap.transformation().bounded(baseline) refX = xMap.transform(baseline) polygon.append(QPointF(refX, polygon.last().y())) polygon.append(QPointF(refX, polygon.first().y())) def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): """ Draw symbols :param QPainter painter: Painter :param qwt.symbol.QwtSymbol symbol: Curve symbol :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: :py:meth:`setSymbol()`, :py:meth:`drawSeries()`, :py:meth:`drawCurve()` """ chunkSize = 500 for i in range(from_, to + 1, chunkSize): n = min([chunkSize, to - i + 1]) points = series_to_polyline(xMap, yMap, self.data(), i, i + n - 1) if points.size() > 0: symbol.drawSymbols(painter, points) def setBaseline(self, value): """ Set the value of the baseline The baseline is needed for filling the curve with a brush or the Sticks drawing style. The interpretation of the baseline depends on the `orientation()`. With `Qt.Horizontal`, the baseline is interpreted as a horizontal line at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical line at x = baseline(). The default value is 0.0. :param float value: Value of the baseline .. seealso:: :py:meth:`baseline()`, :py:meth:`setBrush()`, :py:meth:`setStyle()` """ if self.__data.baseline != value: self.__data.baseline = value self.itemChanged() def baseline(self): """ :return: Value of the baseline .. seealso:: :py:meth:`setBaseline()` """ return self.__data.baseline def closestPoint(self, pos): """ Find the closest curve point for a specific position :param QPoint pos: Position, where to look for the closest curve point :return: tuple `(index, dist)` `dist` is the distance between the position and the closest curve point. `index` is the index of the closest curve point, or -1 if none can be found ( f.e when the curve has no points ). .. note:: `closestPoint()` implements a dumb algorithm, that iterates over all points """ numSamples = self.dataSize() if self.plot() is None or numSamples <= 0: return -1 series = self.data() xMap = self.plot().canvasMap(self.xAxis()) yMap = self.plot().canvasMap(self.yAxis()) index = -1 dmin = 1.0e10 for i in range(numSamples): sample = series.sample(i) cx = xMap.transform(sample.x()) - pos.x() cy = yMap.transform(sample.y()) - pos.y() f = qwtSqr(cx) + qwtSqr(cy) if f < dmin: index = i dmin = f dist = math.sqrt(dmin) return index, dist def legendIcon(self, index, size): """ :param int index: Index of the legend entry (ignored as there is only one) :param QSizeF size: Icon size :return: Icon representing the curve on the legend .. seealso:: :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() graphic = QwtGraphic() graphic.setDefaultSize(size) graphic.setRenderHint(QwtGraphic.RenderPensUnscaled, True) painter = QPainter(graphic) painter.setRenderHint( QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased) ) if self.__data.legendAttributes == 0 or ( self.__data.legendAttributes & QwtPlotCurve.LegendShowBrush ): brush = self.__data.brush if brush.style() == Qt.NoBrush and self.__data.legendAttributes == 0: if self.style() != QwtPlotCurve.NoCurve: brush = QBrush(self.pen().color()) elif ( self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol ): brush = QBrush(self.__data.symbol.pen().color()) if brush.style() != Qt.NoBrush: r = QRectF(0, 0, size.width(), size.height()) painter.fillRect(r, brush) if self.__data.legendAttributes & QwtPlotCurve.LegendShowLine: if self.pen() != Qt.NoPen: painter.setPen(self.pen()) y = size.height() // 2 painter.drawLine(QLineF(0, y, size.width(), y)) if self.__data.legendAttributes & QwtPlotCurve.LegendShowSymbol: if self.__data.symbol: r = QRectF(0, 0, size.width(), size.height()) self.__data.symbol.drawSymbol(painter, r) return graphic def setData(self, *args, **kwargs): """ Initialize data with a series data object or an array of points. .. py:method:: setData(data): :param data: Series data (e.g. `QwtPointArrayData` instance) :type data: .plot_series.QwtSeriesData .. py:method:: setData(xData, yData, [size=None], [finite=True]): Initialize data with `x` and `y` arrays. This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5. Same as `setSamples(x, y, [size=None], [finite=True])` :param x: List/array of x values :param y: List/array of y values :param size: size of xData and yData :type size: int or None :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements .. seealso:: :py:meth:`setSamples()` """ if len(args) == 1 and not kwargs: super(QwtPlotCurve, self).setData(*args) elif len(args) in (2, 3, 4): self.setSamples(*args, **kwargs) else: raise TypeError( "%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def setSamples(self, *args, **kwargs): """ Initialize data with an array of points. .. py:method:: setSamples(data): :param data: Series data (e.g. `QwtPointArrayData` instance) :type data: .plot_series.QwtSeriesData .. py:method:: setSamples(samples): Same as `setData(QwtPointArrayData(samples))` :param samples: List/array of points .. py:method:: setSamples(xData, yData, [size=None], [finite=True]): Same as `setData(QwtPointArrayData(xData, yData, [size=None]))` :param xData: List/array of x values :param yData: List/array of y values :param size: size of xData and yData :type size: int or None :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements .. seealso:: :py:class:`.plot_series.QwtPointArrayData` """ if len(args) == 1 and not kwargs: (samples,) = args if isinstance(samples, QwtSeriesData): self.setData(samples) else: self.setData(QwtPointArrayData(samples)) elif len(args) >= 2: xData, yData = args[:2] try: size = kwargs.pop("size") except KeyError: size = None try: finite = kwargs.pop("finite") except KeyError: finite = None if kwargs: raise TypeError( "%s().setSamples(): unknown %s keyword " "argument(s)" % (self.__class__.__name__, ", ".join(list(kwargs.keys()))) ) for arg in args[2:]: if isinstance(arg, bool): finite = arg elif isinstance(arg, int): size = arg self.setData(QwtPointArrayData(xData, yData, size=size, finite=finite)) else: raise TypeError( "%s().setSamples() takes 1, 2 or 3 argument(s) " "(%s given)" % (self.__class__.__name__, len(args)) ) PythonQwt-0.12.7/qwt/plot_directpainter.py000066400000000000000000000236651465265754400206740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotDirectPainter -------------------- .. autoclass:: QwtPlotDirectPainter :members: """ from qtpy.QtCore import QEvent, QObject, Qt from qtpy.QtGui import QPainter, QRegion from qwt.plot import QwtPlotItem from qwt.plot_canvas import QwtPlotCanvas def qwtRenderItem(painter, canvasRect, seriesItem, from_, to): # TODO: A minor performance improvement is possible with caching the maps plot = seriesItem.plot() xMap = plot.canvasMap(seriesItem.xAxis()) yMap = plot.canvasMap(seriesItem.yAxis()) painter.setRenderHint( QPainter.Antialiasing, seriesItem.testRenderHint(QwtPlotItem.RenderAntialiased) ) seriesItem.drawSeries(painter, xMap, yMap, canvasRect, from_, to) def qwtHasBackingStore(canvas): return ( canvas.testPaintAttribute(QwtPlotCanvas.BackingStore) and canvas.backingStore() is not None and not canvas.backingStore().isNull() ) class QwtPlotDirectPainter_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.attributes = 0 self.hasClipping = False self.seriesItem = None # QwtPlotSeriesItem self.clipRegion = QRegion() self.painter = QPainter() self.from_ = None self.to = None class QwtPlotDirectPainter(QObject): """ Painter object trying to paint incrementally Often applications want to display samples while they are collected. When there are too many samples complete replots will be expensive to be processed in a collection cycle. `QwtPlotDirectPainter` offers an API to paint subsets (f.e all additions points) without erasing/repainting the plot canvas. On certain environments it might be important to calculate a proper clip region before painting. F.e. for Qt Embedded only the clipped part of the backing store will be copied to a (maybe unaccelerated) frame buffer. .. warning:: Incremental painting will only help when no replot is triggered by another operation (like changing scales) and nothing needs to be erased. Paint attributes: * `QwtPlotDirectPainter.AtomicPainter`: Initializing a `QPainter` is an expensive operation. When `AtomicPainter` is set each call of `drawSeries()` opens/closes a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to use the same `QPainter` as long as possible. * `QwtPlotDirectPainter.FullRepaint`: When `FullRepaint` is set the plot canvas is explicitly repainted after the samples have been rendered. * `QwtPlotDirectPainter.CopyBackingStore`: When `QwtPlotCanvas.BackingStore` is enabled the painter has to paint to the backing store and the widget. In certain situations/environments it might be faster to paint to the backing store only and then copy the backing store to the canvas. This flag can also be useful for settings, where Qt fills the the clip region with the widget background. """ # enum Attribute AtomicPainter = 0x01 FullRepaint = 0x02 CopyBackingStore = 0x04 def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotDirectPainter_PrivateData() def setAttribute(self, attribute, on=True): """ Change an attribute :param int attribute: Attribute to change :param bool on: On/Off .. seealso:: :py:meth:`testAttribute()` """ if self.testAttribute(attribute) != on: self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute if attribute == self.AtomicPainter and on: self.reset() def testAttribute(self, attribute): """ :param int attribute: Attribute to be tested :return: True, when attribute is enabled .. seealso:: :py:meth:`setAttribute()` """ return self.__data.attributes & attribute def setClipping(self, enable): """ En/Disables clipping :param bool enable: Enables clipping is true, disable it otherwise .. seealso:: :py:meth:`hasClipping()`, :py:meth:`clipRegion()`, :py:meth:`setClipRegion()` """ self.__data.hasClipping = enable def hasClipping(self): """ :return: Return true, when clipping is enabled .. seealso:: :py:meth:`setClipping()`, :py:meth:`clipRegion()`, :py:meth:`setClipRegion()` """ return self.__data.hasClipping def setClipRegion(self, region): """ Assign a clip region and enable clipping Depending on the environment setting a proper clip region might improve the performance heavily. F.e. on Qt embedded only the clipped part of the backing store will be copied to a (maybe unaccelerated) frame buffer device. :param QRegion region: Clip region .. seealso:: :py:meth:`hasClipping()`, :py:meth:`setClipping()`, :py:meth:`clipRegion()` """ self.__data.clipRegion = region self.__data.hasClipping = True def clipRegion(self): """ :return: Return Currently set clip region. .. seealso:: :py:meth:`hasClipping()`, :py:meth:`setClipping()`, :py:meth:`setClipRegion()` """ return self.__data.clipRegion def drawSeries(self, seriesItem, from_, to): """ Draw a set of points of a seriesItem. When observing a measurement while it is running, new points have to be added to an existing seriesItem. drawSeries() can be used to display them avoiding a complete redraw of the canvas. Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)` will result in faster painting, if the paint engine of the canvas widget supports this feature. :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point. """ if seriesItem is None or seriesItem.plot() is None: return canvas = seriesItem.plot().canvas() canvasRect = canvas.contentsRect() if canvas and qwtHasBackingStore(canvas): painter = QPainter(canvas.backingStore()) if self.__data.hasClipping: painter.setClipRegion(self.__data.clipRegion) qwtRenderItem(painter, canvasRect, seriesItem, from_, to) painter.end() if self.testAttribute(self.FullRepaint): canvas.repaint() return if canvas.testAttribute(Qt.WA_WState_InPaintEvent): if not self.__data.painter.isActive(): self.reset() self.__data.painter.begin(canvas) canvas.installEventFilter(self) if self.__data.hasClipping: self.__data.painter.setClipRegion( QRegion(canvasRect) & self.__data.clipRegion ) elif not self.__data.painter.hasClipping(): self.__data.painter.setClipRect(canvasRect) qwtRenderItem(self.__data.painter, canvasRect, seriesItem, from_, to) if self.__data.attributes & self.AtomicPainter: self.reset() elif self.__data.hasClipping: self.__data.painter.setClipping(False) else: self.reset() self.__data.seriesItem = seriesItem self.__data.from_ = from_ self.__data.to = to clipRegion = QRegion(canvasRect) if self.__data.hasClipping: clipRegion &= self.__data.clipRegion canvas.installEventFilter(self) canvas.repaint(clipRegion) canvas.removeEventFilter(self) self.__data.seriesItem = None def reset(self): """Close the internal QPainter""" if self.__data.painter.isActive(): w = self.__data.painter.device() # XXX: cast to QWidget if w: w.removeEventFilter(self) self.__data.painter.end() def eventFilter(self, obj_, event): if event.type() == QEvent.Paint: self.reset() if self.__data.seriesItem: pe = event # XXX: cast to QPaintEvent canvas = self.__data.seriesItem.plot().canvas() painter = QPainter(canvas) painter.setClipRegion(pe.region()) doCopyCache = self.testAttribute(self.CopyBackingStore) if doCopyCache: plotCanvas = canvas # XXX: cast to QwtPlotCanvas if plotCanvas: doCopyCache = qwtHasBackingStore(plotCanvas) if doCopyCache: painter.drawPixmap( plotCanvas.rect().topLeft(), plotCanvas.backingStore() ) if not doCopyCache: qwtRenderItem( painter, canvas.contentsRect(), self.__data.seriesItem, self.__data.from_, self.__data.to, ) return True return False PythonQwt-0.12.7/qwt/plot_grid.py000066400000000000000000000403371465265754400167570ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotGrid ----------- .. autoclass:: QwtPlotGrid :members: """ from qtpy.QtCore import QLineF, QObject, Qt from qtpy.QtGui import QPen from qwt._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual from qwt.plot import QwtPlotItem from qwt.qthelpers import qcolor_from_str from qwt.scale_div import QwtScaleDiv class QwtPlotGrid_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.xEnabled = True self.yEnabled = True self.xMinEnabled = False self.yMinEnabled = False self.xScaleDiv = QwtScaleDiv() self.yScaleDiv = QwtScaleDiv() self.majorPen = QPen() self.minorPen = QPen() class QwtPlotGrid(QwtPlotItem): """ A class which draws a coordinate grid The `QwtPlotGrid` class can be used to draw a coordinate grid. A coordinate grid consists of major and minor vertical and horizontal grid lines. The locations of the grid lines are determined by the X and Y scale divisions which can be assigned with `setXDiv()` and `setYDiv()`. The `draw()` member draws the grid within a bounding rectangle. """ def __init__(self, title="Grid"): QwtPlotItem.__init__(self, title) self.__data = QwtPlotGrid_PrivateData() self.setItemInterest(QwtPlotItem.ScaleInterest, True) self.setZ(10.0) @classmethod def make( cls, plot=None, z=None, enablemajor=None, enableminor=None, color=None, width=None, style=None, mincolor=None, minwidth=None, minstyle=None, ): """ Create and setup a new `QwtPlotGrid` object (convenience function). :param plot: Plot to attach the curve to :type plot: qwt.plot.QwtPlot or None :param z: Z-value :type z: float or None :param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines :type enablemajor: bool or None :param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines :type enableminor: bool or None :param color: Pen color for both major and minor grid lines (default: Qt.gray) :type color: QColor or str or None :param width: Pen width for both major and minor grid lines (default: 1.0) :type width: float or None :param style: Pen style for both major and minor grid lines (default: Qt.DotLine) :type style: Qt.PenStyle or None :param mincolor: Pen color for minor grid lines only (default: Qt.gray) :type mincolor: QColor or str or None :param minwidth: Pen width for minor grid lines only (default: 1.0) :type minwidth: float or None :param minstyle: Pen style for minor grid lines only (default: Qt.DotLine) :type minstyle: Qt.PenStyle or None .. seealso:: :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()` """ item = cls() if z is not None: item.setZ(z) color = qcolor_from_str(color, Qt.gray) width = 1.0 if width is None else float(width) style = Qt.DotLine if style is None else style item.setPen(QPen(color, width, style)) if mincolor is not None or minwidth is not None or minstyle is not None: mincolor = qcolor_from_str(mincolor, Qt.gray) minwidth = 1.0 if width is None else minwidth minstyle = Qt.DotLine if style is None else minstyle item.setMinorPen(QPen(mincolor, minwidth, minstyle)) if enablemajor is not None: if isinstance(enablemajor, tuple) and len(enablemajor) == 2: item.enableX(enablemajor[0]) item.enableY(enablemajor[1]) else: raise TypeError( "Invalid enablemajor %r (expecting tuple of two booleans)" % enablemajor ) if enableminor is not None: if isinstance(enableminor, tuple) and len(enableminor) == 2: item.enableXMin(enableminor[0]) item.enableYMin(enableminor[1]) else: raise TypeError( "Invalid enableminor %r (expecting tuple of two booleans)" % enableminor ) if plot is not None: item.attach(plot) return item def rtti(self): """ :return: Return `QwtPlotItem.Rtti_PlotGrid` """ return QwtPlotItem.Rtti_PlotGrid def enableX(self, on): """ Enable or disable vertical grid lines :param bool on: Enable (true) or disable .. seealso:: :py:meth:`enableXMin()` """ if self.__data.xEnabled != on: self.__data.xEnabled = on self.legendChanged() self.itemChanged() def enableY(self, on): """ Enable or disable horizontal grid lines :param bool on: Enable (true) or disable .. seealso:: :py:meth:`enableYMin()` """ if self.__data.yEnabled != on: self.__data.yEnabled = on self.legendChanged() self.itemChanged() def enableXMin(self, on): """ Enable or disable minor vertical grid lines. :param bool on: Enable (true) or disable .. seealso:: :py:meth:`enableX()` """ if self.__data.xMinEnabled != on: self.__data.xMinEnabled = on self.legendChanged() self.itemChanged() def enableYMin(self, on): """ Enable or disable minor horizontal grid lines. :param bool on: Enable (true) or disable .. seealso:: :py:meth:`enableY()` """ if self.__data.yMinEnabled != on: self.__data.yMinEnabled = on self.legendChanged() self.itemChanged() def setXDiv(self, scaleDiv): """ Assign an x axis scale division :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.xScaleDiv != scaleDiv: self.__data.xScaleDiv = scaleDiv self.itemChanged() def setYDiv(self, scaleDiv): """ Assign an y axis scale division :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.yScaleDiv != scaleDiv: self.__data.yScaleDiv = scaleDiv self.itemChanged() def setPen(self, *args): """ Build and/or assign a pen for both major and minor grid lines .. py:method:: setPen(color, width, style) :noindex: Build and assign a pen for both major and minor grid lines In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setPen(pen) :noindex: Assign a pen for both major and minor grid lines :param QPen pen: New pen .. seealso:: :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 3: color, width, style = args self.setPen(QPen(color, width, style)) elif len(args) == 1: (pen,) = args if self.__data.majorPen != pen or self.__data.minorPen != pen: self.__data.majorPen = pen self.__data.minorPen = pen self.legendChanged() self.itemChanged() else: raise TypeError( "%s().setPen() takes 1 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def setMajorPen(self, *args): """ Build and/or assign a pen for both major grid lines .. py:method:: setMajorPen(color, width, style) :noindex: Build and assign a pen for both major grid lines In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setMajorPen(pen) :noindex: Assign a pen for the major grid lines :param QPen pen: New pen .. seealso:: :py:meth:`majorPen()`, :py:meth:`setMinorPen()`, :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 3: color, width, style = args self.setMajorPen(QPen(color, width, style)) elif len(args) == 1: (pen,) = args if self.__data.majorPen != pen: self.__data.majorPen = pen self.legendChanged() self.itemChanged() else: raise TypeError( "%s().setMajorPen() takes 1 or 3 argument(s) (%s " "given)" % (self.__class__.__name__, len(args)) ) def setMinorPen(self, *args): """ Build and/or assign a pen for both minor grid lines .. py:method:: setMinorPen(color, width, style) :noindex: Build and assign a pen for both minor grid lines In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setMinorPen(pen) :noindex: Assign a pen for the minor grid lines :param QPen pen: New pen .. seealso:: :py:meth:`minorPen()`, :py:meth:`setMajorPen()`, :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 3: color, width, style = args self.setMinorPen(QPen(color, width, style)) elif len(args) == 1: (pen,) = args if self.__data.minorPen != pen: self.__data.minorPen = pen self.legendChanged() self.itemChanged() else: raise TypeError( "%s().setMinorPen() takes 1 or 3 argument(s) (%s " "given)" % (self.__class__.__name__, len(args)) ) def draw(self, painter, xMap, yMap, canvasRect): """ Draw the grid The grid is drawn into the bounding rectangle such that grid lines begin and end at the rectangle's borders. The X and Y maps are used to map the scale divisions into the drawing region screen. :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: X axis map :param qwt.scale_map.QwtScaleMap yMap: Y axis :param QRectF canvasRect: Contents rectangle of the plot canvas """ minorPen = QPen(self.__data.minorPen) minorPen.setCapStyle(Qt.FlatCap) painter.setPen(minorPen) if self.__data.xEnabled and self.__data.xMinEnabled: self.drawLines( painter, canvasRect, Qt.Vertical, xMap, self.__data.xScaleDiv.ticks(QwtScaleDiv.MinorTick), ) self.drawLines( painter, canvasRect, Qt.Vertical, xMap, self.__data.xScaleDiv.ticks(QwtScaleDiv.MediumTick), ) if self.__data.yEnabled and self.__data.yMinEnabled: self.drawLines( painter, canvasRect, Qt.Horizontal, yMap, self.__data.yScaleDiv.ticks(QwtScaleDiv.MinorTick), ) self.drawLines( painter, canvasRect, Qt.Horizontal, yMap, self.__data.yScaleDiv.ticks(QwtScaleDiv.MediumTick), ) majorPen = QPen(self.__data.majorPen) majorPen.setCapStyle(Qt.FlatCap) painter.setPen(majorPen) if self.__data.xEnabled: self.drawLines( painter, canvasRect, Qt.Vertical, xMap, self.__data.xScaleDiv.ticks(QwtScaleDiv.MajorTick), ) if self.__data.yEnabled: self.drawLines( painter, canvasRect, Qt.Horizontal, yMap, self.__data.yScaleDiv.ticks(QwtScaleDiv.MajorTick), ) def drawLines(self, painter, canvasRect, orientation, scaleMap, values): x1 = canvasRect.left() x2 = canvasRect.right() - 1.0 y1 = canvasRect.top() y2 = canvasRect.bottom() - 1.0 for val in values: value = scaleMap.transform(val) if orientation == Qt.Horizontal: if qwtFuzzyGreaterOrEqual(value, y1) and qwtFuzzyLessOrEqual(value, y2): painter.drawLine(QLineF(x1, value, x2, value)) else: if qwtFuzzyGreaterOrEqual(value, x1) and qwtFuzzyLessOrEqual(value, x2): painter.drawLine(QLineF(value, y1, value, y2)) def majorPen(self): """ :return: the pen for the major grid lines .. seealso:: :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`, :py:meth:`setPen()` """ return self.__data.majorPen def minorPen(self): """ :return: the pen for the minor grid lines .. seealso:: :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`, :py:meth:`setPen()` """ return self.__data.minorPen def xEnabled(self): """ :return: True if vertical grid lines are enabled .. seealso:: :py:meth:`enableX()` """ return self.__data.xEnabled def yEnabled(self): """ :return: True if horizontal grid lines are enabled .. seealso:: :py:meth:`enableY()` """ return self.__data.yEnabled def xMinEnabled(self): """ :return: True if minor vertical grid lines are enabled .. seealso:: :py:meth:`enableXMin()` """ return self.__data.xMinEnabled def yMinEnabled(self): """ :return: True if minor horizontal grid lines are enabled .. seealso:: :py:meth:`enableYMin()` """ return self.__data.yMinEnabled def xScaleDiv(self): """ :return: the scale division of the x axis """ return self.__data.xScaleDiv def yScaleDiv(self): """ :return: the scale division of the y axis """ return self.__data.yScaleDiv def updateScaleDiv(self, xScaleDiv, yScaleDiv): """ Update the grid to changes of the axes scale division :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis .. seealso:: :py:meth:`updateAxes()` """ self.setXDiv(xScaleDiv) self.setYDiv(yScaleDiv) PythonQwt-0.12.7/qwt/plot_layout.py000066400000000000000000001321471465265754400173500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotLayout ------------- .. autoclass:: QwtPlotLayout :members: """ import math from qtpy.QtCore import QObject, QRectF, QSize, Qt from qtpy.QtGui import QFont, QRegion from qwt.plot import QwtPlot from qwt.scale_draw import QwtAbstractScaleDraw from qwt.scale_widget import QwtScaleWidget from qwt.text import QwtText QWIDGETSIZE_MAX = (1 << 24) - 1 class LegendData(object): def __init__(self): self.frameWidth = None self.hScrollExtent = None self.vScrollExtent = None self.hint = QSize() class TitleData(object): def __init__(self): self.text = QwtText() self.frameWidth = None class FooterData(object): def __init__(self): self.text = QwtText() self.frameWidth = None class ScaleData(object): def __init__(self): self.isEnabled = None self.scaleWidget = QwtScaleWidget() self.scaleFont = QFont() self.start = None self.end = None self.baseLineOffset = None self.tickOffset = None self.dimWithoutTitle = None class CanvasData(object): def __init__(self): self.contentsMargins = [0 for _i in QwtPlot.AXES] class QwtPlotLayout_LayoutData(object): def __init__(self): self.legend = LegendData() self.title = TitleData() self.footer = FooterData() self.scale = [ScaleData() for _i in QwtPlot.AXES] self.canvas = CanvasData() def init(self, plot, rect): """Extract all layout relevant data from the plot components""" # legend legend = plot.legend() if legend: self.legend.frameWidth = legend.frameWidth() self.legend.hScrollExtent = legend.scrollExtent(Qt.Horizontal) self.legend.vScrollExtent = legend.scrollExtent(Qt.Vertical) hint = legend.sizeHint() w = min([hint.width(), math.floor(rect.width())]) h = legend.heightForWidth(w) if h <= 0: h = hint.height() self.legend.hint = QSize(w, h) # title self.title.frameWidth = 0 self.title.text = QwtText() if plot.titleLabel(): label = plot.titleLabel() self.title.text = label.text() if not self.title.text.testPaintAttribute(QwtText.PaintUsingTextFont): self.title.text.setFont(label.font()) self.title.frameWidth = plot.titleLabel().frameWidth() # footer self.footer.frameWidth = 0 self.footer.text = QwtText() if plot.footerLabel(): label = plot.footerLabel() self.footer.text = label.text() if not self.footer.text.testPaintAttribute(QwtText.PaintUsingTextFont): self.footer.text.setFont(label.font()) self.footer.frameWidth = plot.footerLabel().frameWidth() # scales for axis in QwtPlot.AXES: if plot.axisEnabled(axis): scaleWidget = plot.axisWidget(axis) self.scale[axis].isEnabled = True self.scale[axis].scaleWidget = scaleWidget self.scale[axis].scaleFont = scaleWidget.font() self.scale[axis].start = scaleWidget.startBorderDist() self.scale[axis].end = scaleWidget.endBorderDist() self.scale[axis].baseLineOffset = scaleWidget.margin() self.scale[axis].tickOffset = scaleWidget.margin() if scaleWidget.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks): self.scale[ axis ].tickOffset += scaleWidget.scaleDraw().maxTickLength() self.scale[axis].dimWithoutTitle = scaleWidget.dimForLength( QWIDGETSIZE_MAX, self.scale[axis].scaleFont ) if not scaleWidget.title().isEmpty(): self.scale[axis].dimWithoutTitle -= scaleWidget.titleHeightForWidth( QWIDGETSIZE_MAX ) else: self.scale[axis].isEnabled = False self.scale[axis].start = 0 self.scale[axis].end = 0 self.scale[axis].baseLineOffset = 0 self.scale[axis].tickOffset = 0.0 self.scale[axis].dimWithoutTitle = 0 layout = plot.canvas().layout() if layout is not None: mgn = layout.contentsMargins() self.canvas.contentsMargins = [ mgn.left(), mgn.top(), mgn.right(), mgn.bottom(), ] class QwtPlotLayout_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.spacing = 5 self.titleRect = QRectF() self.footerRect = QRectF() self.legendRect = QRectF() self.scaleRect = [QRectF() for _i in QwtPlot.AXES] self.canvasRect = QRectF() self.layoutData = QwtPlotLayout_LayoutData() self.legendPos = None self.legendRatio = None self.canvasMargin = [0] * len(QwtPlot.AXES) self.alignCanvasToScales = [False] * len(QwtPlot.AXES) class QwtPlotLayout(object): """ Layout engine for QwtPlot. It is used by the `QwtPlot` widget to organize its internal widgets or by `QwtPlot.print()` to render its content to a QPaintDevice like a QPrinter, QPixmap/QImage or QSvgRenderer. .. seealso:: :py:meth:`qwt.plot.QwtPlot.setPlotLayout()` Valid options: * `QwtPlotLayout.AlignScales`: Unused * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets. * `QwtPlotLayout.IgnoreFrames`: Ignore all frames. * `QwtPlotLayout.IgnoreLegend`: Ignore the legend. * `QwtPlotLayout.IgnoreTitle`: Ignore the title. * `QwtPlotLayout.IgnoreFooter`: Ignore the footer. """ # enum Option AlignScales = 0x01 IgnoreScrollbars = 0x02 IgnoreFrames = 0x04 IgnoreLegend = 0x08 IgnoreTitle = 0x10 IgnoreFooter = 0x20 def __init__(self): self.__data = QwtPlotLayout_PrivateData() self.setLegendPosition(QwtPlot.BottomLegend) self.setCanvasMargin(4) self.setAlignCanvasToScales(False) self.invalidate() def setCanvasMargin(self, margin, axis=-1): """ Change a margin of the canvas. The margin is the space above/below the scale ticks. A negative margin will be set to -1, excluding the borders of the scales. :param int margin: New margin :param int axisId: Axis index .. seealso:: :py:meth:`canvasMargin()` .. warning:: The margin will have no effect when `alignCanvasToScale()` is True """ if margin < 1: margin = -1 if axis == -1: for axis in QwtPlot.AXES: self.__data.canvasMargin[axis] = margin elif axis in QwtPlot.AXES: self.__data.canvasMargin[axis] = margin def canvasMargin(self, axisId): """ :param int axisId: Axis index :return: Margin around the scale tick borders .. seealso:: :py:meth:`setCanvasMargin()` """ if axisId not in QwtPlot.AXES: return 0 return self.__data.canvasMargin[axisId] def setAlignCanvasToScales(self, *args): """ Change the align-canvas-to-axis-scales setting. .. py:method:: setAlignCanvasToScales(on): Set the align-canvas-to-axis-scales flag for all axes :param bool on: True/False .. py:method:: setAlignCanvasToScales(axisId, on): Change the align-canvas-to-axis-scales setting. The canvas may: - extend beyond the axis scale ends to maximize its size, - align with the axis scale ends to control its size. The axisId parameter is somehow confusing as it identifies a border of the plot and not the axes, that are aligned. F.e when `QwtPlot.yLeft` is set, the left end of the the x-axes (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned. :param int axisId: Axis index :param bool on: True/False .. seealso:: :py:meth:`setAlignCanvasToScale()`, :py:meth:`alignCanvasToScale()` """ if len(args) == 1: (on,) = args for axis in QwtPlot.AXES: self.__data.alignCanvasToScales[axis] = on elif len(args) == 2: axisId, on = args if axisId in QwtPlot.AXES: self.__data.alignCanvasToScales[axisId] = on else: raise TypeError( "%s().setAlignCanvasToScales() takes 1 or 2 " "argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def alignCanvasToScale(self, axisId): """ Return the align-canvas-to-axis-scales setting. The canvas may: - extend beyond the axis scale ends to maximize its size - align with the axis scale ends to control its size. :param int axisId: Axis index :return: align-canvas-to-axis-scales setting .. seealso:: :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()` """ if axisId not in QwtPlot.AXES: return False return self.__data.alignCanvasToScales[axisId] def setSpacing(self, spacing): """ Change the spacing of the plot. The spacing is the distance between the plot components. :param int spacing: New spacing .. seealso:: :py:meth:`setCanvasMargin()`, :py:meth:`spacing()` """ self.__data.spacing = max([0, spacing]) def spacing(self): """ :return: Spacing .. seealso:: :py:meth:`margin()`, :py:meth:`setSpacing()` """ return self.__data.spacing def setLegendPosition(self, *args): """ Specify the position of the legend .. py:method:: setLegendPosition(pos, [ratio=0.]): Specify the position of the legend :param QwtPlot.LegendPosition pos: Legend position :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes The legend will be shrunk if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. Valid position values: * `QwtPlot.LeftLegend`, * `QwtPlot.RightLegend`, * `QwtPlot.TopLegend`, * `QwtPlot.BottomLegend` .. seealso:: :py:meth:`setLegendPosition()` """ if len(args) == 2: pos, ratio = args if ratio > 1.0: ratio = 1.0 if pos in (QwtPlot.TopLegend, QwtPlot.BottomLegend): if ratio <= 0.0: ratio = 0.33 self.__data.legendRatio = ratio self.__data.legendPos = pos elif pos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): if ratio <= 0.0: ratio = 0.5 self.__data.legendRatio = ratio self.__data.legendPos = pos elif len(args) == 1: (pos,) = args self.setLegendPosition(pos, 0.0) else: raise TypeError( "%s().setLegendPosition() takes 1 or 2 argument(s)" "(%s given)" % (self.__class__.__name__, len(args)) ) def legendPosition(self): """ :return: Position of the legend .. seealso:: :py:meth:`legendPosition()` """ return self.__data.legendPos def setLegendRatio(self, ratio): """ Specify the relative size of the legend in the plot :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes The legend will be shrunk if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5. .. seealso:: :py:meth:`legendRatio()` """ self.setLegendPosition(self.legendPosition(), ratio) def legendRatio(self): """ :return: The relative size of the legend in the plot. .. seealso:: :py:meth:`setLegendRatio()` """ return self.__data.legendRatio def setTitleRect(self, rect): """ Set the geometry for the title This method is intended to be used from derived layouts overloading `activate()` :param QRectF rect: Rectangle .. seealso:: :py:meth:`titleRect()`, :py:meth:`activate()` """ self.__data.titleRect = rect def titleRect(self): """ :return: Geometry for the title .. seealso:: :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.titleRect def setFooterRect(self, rect): """ Set the geometry for the footer This method is intended to be used from derived layouts overloading `activate()` :param QRectF rect: Rectangle .. seealso:: :py:meth:`footerRect()`, :py:meth:`activate()` """ self.__data.footerRect = rect def footerRect(self): """ :return: Geometry for the footer .. seealso:: :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.footerRect def setLegendRect(self, rect): """ Set the geometry for the legend This method is intended to be used from derived layouts overloading `activate()` :param QRectF rect: Rectangle for the legend .. seealso:: :py:meth:`footerRect()`, :py:meth:`activate()` """ self.__data.legendRect = rect def legendRect(self): """ :return: Geometry for the legend .. seealso:: :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.legendRect def setScaleRect(self, axis, rect): """ Set the geometry for an axis This method is intended to be used from derived layouts overloading `activate()` :param int axisId: Axis index :param QRectF rect: Rectangle for the scale .. seealso:: :py:meth:`scaleRect()`, :py:meth:`activate()` """ if axis in QwtPlot.AXES: self.__data.scaleRect[axis] = rect def scaleRect(self, axis): """ :param int axisId: Axis index :return: Geometry for the scale .. seealso:: :py:meth:`invalidate()`, :py:meth:`activate()` """ if axis not in QwtPlot.AXES: return QRectF() return self.__data.scaleRect[axis] def setCanvasRect(self, rect): """ Set the geometry for the canvas This method is intended to be used from derived layouts overloading `activate()` :param QRectF rect: Rectangle .. seealso:: :py:meth:`canvasRect()`, :py:meth:`activate()` """ self.__data.canvasRect = rect def canvasRect(self): """ :return: Geometry for the canvas .. seealso:: :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.canvasRect def invalidate(self): """ Invalidate the geometry of all components. .. seealso:: :py:meth:`activate()` """ self.__data.titleRect = QRectF() self.__data.footerRect = QRectF() self.__data.legendRect = QRectF() self.__data.canvasRect = QRectF() for axis in QwtPlot.AXES: self.__data.scaleRect[axis] = QRectF() def minimumSizeHint(self, plot): """ :param qwt.plot.QwtPlot plot: Plot widget :return: Minimum size hint .. seealso:: :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()` """ class _ScaleData(object): def __init__(self): self.w = 0 self.h = 0 self.minLeft = 0 self.minRight = 0 self.tickOffset = 0 scaleData = [_ScaleData() for _i in QwtPlot.AXES] canvasBorder = [0 for _i in QwtPlot.AXES] layout = plot.canvas().layout() if layout is None: left, top, right, bottom = 0, 0, 0, 0 else: mgn = layout.contentsMargins() left, top, right, bottom = ( mgn.left(), mgn.top(), mgn.right(), mgn.bottom(), ) for axis in QwtPlot.AXES: if plot.axisEnabled(axis): scl = plot.axisWidget(axis) sd = scaleData[axis] hint = scl.minimumSizeHint() sd.w = hint.width() sd.h = hint.height() sd.minLeft, sd.minLeft = scl.getBorderDistHint() sd.tickOffset = scl.margin() if scl.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks): sd.tickOffset += math.ceil(scl.scaleDraw().maxTickLength()) canvasBorder[axis] = left + self.__data.canvasMargin[axis] + 1 for axis in QwtPlot.AXES: sd = scaleData[axis] if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop): if ( sd.minLeft > canvasBorder[QwtPlot.yLeft] and scaleData[QwtPlot.yLeft].w ): shiftLeft = sd.minLeft - canvasBorder[QwtPlot.yLeft] if shiftLeft > scaleData[QwtPlot.yLeft].w: shiftLeft = scaleData[QwtPlot.yLeft].w sd.w -= shiftLeft if ( sd.minRight > canvasBorder[QwtPlot.yRight] and scaleData[QwtPlot.yRight].w ): shiftRight = sd.minRight - canvasBorder[QwtPlot.yRight] if shiftRight > scaleData[QwtPlot.yRight].w: shiftRight = scaleData[QwtPlot.yRight].w sd.w -= shiftRight if sd.h and axis in (QwtPlot.yLeft, QwtPlot.yRight): if ( sd.minLeft > canvasBorder[QwtPlot.xBottom] and scaleData[QwtPlot.xBottom].h ): shiftBottom = sd.minLeft - canvasBorder[QwtPlot.xBottom] if shiftBottom > scaleData[QwtPlot.xBottom].tickOffset: shiftBottom = scaleData[QwtPlot.xBottom].tickOffset sd.h -= shiftBottom if ( sd.minLeft > canvasBorder[QwtPlot.xTop] and scaleData[QwtPlot.xTop].h ): shiftTop = sd.minRight - canvasBorder[QwtPlot.xTop] if shiftTop > scaleData[QwtPlot.xTop].tickOffset: shiftTop = scaleData[QwtPlot.xTop].tickOffset sd.h -= shiftTop canvas = plot.canvas() minCanvasSize = canvas.minimumSize() w = scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w cw = ( max([scaleData[QwtPlot.xBottom].w, scaleData[QwtPlot.xTop].w]) + left + 1 + right + 1 ) w += max([cw, minCanvasSize.width()]) h = scaleData[QwtPlot.xBottom].h + scaleData[QwtPlot.xTop].h ch = ( max([scaleData[QwtPlot.yLeft].h, scaleData[QwtPlot.yRight].h]) + top + 1 + bottom + 1 ) h += max([ch, minCanvasSize.height()]) for label in [plot.titleLabel(), plot.footerLabel()]: if label and not label.text().isEmpty(): centerOnCanvas = not plot.axisEnabled( QwtPlot.yLeft ) and plot.axisEnabled(QwtPlot.yRight) labelW = w if centerOnCanvas: labelW -= scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w labelH = label.heightForWidth(labelW) if labelH > labelW: w = labelW = labelH if centerOnCanvas: w += scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w labelH = label.heightForWidth(labelW) h += labelH + self.__data.spacing legend = plot.legend() if legend and not legend.isEmpty(): if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): legendW = legend.sizeHint().width() legendH = legend.heightForWidth(legendW) if legend.frameWidth() > 0: w += self.__data.spacing if legendH > h: legendW += legend.scrollExtent(Qt.Horizontal) if self.__data.legendRatio < 1.0: legendW = min([legendW, int(w / (1.0 - self.__data.legendRatio))]) w += legendW + self.__data.spacing else: legendW = min([legend.sizeHint().width(), w]) legendH = legend.heightForWidth(legendW) if legend.frameWidth() > 0: h += self.__data.spacing if self.__data.legendRatio < 1.0: legendH = min([legendH, int(h / (1.0 - self.__data.legendRatio))]) h += legendH + self.__data.spacing return QSize(int(w), int(h)) def layoutLegend(self, options, rect): """ Find the geometry for the legend :param options: Options how to layout the legend :param QRectF rect: Rectangle where to place the legend :return: Geometry for the legend """ hint = self.__data.layoutData.legend.hint if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): dim = min([hint.width(), int(rect.width() * self.__data.legendRatio)]) if not (options & self.IgnoreScrollbars): if hint.height() > rect.height(): dim += self.__data.layoutData.legend.hScrollExtent else: dim = min([hint.height(), int(rect.height() * self.__data.legendRatio)]) dim = max([dim, self.__data.layoutData.legend.vScrollExtent]) legendRect = QRectF(rect) if self.__data.legendPos == QwtPlot.LeftLegend: legendRect.setWidth(dim) elif self.__data.legendPos == QwtPlot.RightLegend: legendRect.setX(rect.right() - dim) legendRect.setWidth(dim) elif self.__data.legendPos == QwtPlot.TopLegend: legendRect.setHeight(dim) elif self.__data.legendPos == QwtPlot.BottomLegend: legendRect.setY(rect.bottom() - dim) legendRect.setHeight(dim) return legendRect def alignLegend(self, canvasRect, legendRect): """ Align the legend to the canvas :param QRectF canvasRect: Geometry of the canvas :param QRectF legendRect: Maximum geometry for the legend :return: Geometry for the aligned legend """ alignedRect = legendRect if self.__data.legendPos in (QwtPlot.BottomLegend, QwtPlot.TopLegend): if self.__data.layoutData.legend.hint.width() < canvasRect.width(): alignedRect.setX(canvasRect.x()) alignedRect.setWidth(canvasRect.width()) else: if self.__data.layoutData.legend.hint.height() < canvasRect.height(): alignedRect.setY(canvasRect.y()) alignedRect.setHeight(canvasRect.height()) return alignedRect def expandLineBreaks(self, options, rect): """ Expand all line breaks in text labels, and calculate the height of their widgets in orientation of the text. :param options: Options how to layout the legend :param QRectF rect: Bounding rectangle for title, footer, axes and canvas. :return: tuple `(dimTitle, dimFooter, dimAxes)` Returns: * `dimTitle`: Expanded height of the title widget * `dimFooter`: Expanded height of the footer widget * `dimAxes`: Expanded heights of the axis in axis orientation. """ dimTitle = dimFooter = 0 dimAxes = [0 for axis in QwtPlot.AXES] backboneOffset = [0 for _i in QwtPlot.AXES] for axis in QwtPlot.AXES: if not (options & self.IgnoreFrames): backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[ axis ] if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] done = False while not done: done = True # the size for the 4 axis depend on each other. Expanding # the height of a horizontal axis will shrink the height # for the vertical axis, shrinking the height of a vertical # axis will result in a line break what will expand the # width and results in shrinking the width of a horizontal # axis what might result in a line break of a horizontal # axis ... . So we loop as long until no size changes. if not ( (options & self.IgnoreTitle) or self.__data.layoutData.title.text.isEmpty() ): w = rect.width() if ( self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled ): w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight] d = math.ceil(self.__data.layoutData.title.text.heightForWidth(w)) if not (options & self.IgnoreFrames): d += 2 * self.__data.layoutData.title.frameWidth if d > dimTitle: dimTitle = d done = False if not ( (options & self.IgnoreFooter) or self.__data.layoutData.footer.text.isEmpty() ): w = rect.width() if ( self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled ): w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight] d = math.ceil(self.__data.layoutData.footer.text.heightForWidth(w)) if not (options & self.IgnoreFrames): d += 2 * self.__data.layoutData.footer.frameWidth if d > dimFooter: dimFooter = d done = False for axis in QwtPlot.AXES: scaleData = self.__data.layoutData.scale[axis] if scaleData.isEnabled: if axis in (QwtPlot.xTop, QwtPlot.xBottom): length = ( rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight] ) length -= scaleData.start + scaleData.end if dimAxes[QwtPlot.yRight] > 0: length -= 1 length += min( [ dimAxes[QwtPlot.yLeft], scaleData.start - backboneOffset[QwtPlot.yLeft], ] ) length += min( [ dimAxes[QwtPlot.yRight], scaleData.end - backboneOffset[QwtPlot.yRight], ] ) else: length = ( rect.height() - dimAxes[QwtPlot.xTop] - dimAxes[QwtPlot.xBottom] ) length -= scaleData.start + scaleData.end length -= 1 if dimAxes[QwtPlot.xBottom] <= 0: length -= 1 if dimAxes[QwtPlot.xTop] <= 0: length -= 1 if dimAxes[QwtPlot.xBottom] > 0: length += min( [ self.__data.layoutData.scale[ QwtPlot.xBottom ].tickOffset, float( scaleData.start - backboneOffset[QwtPlot.xBottom] ), ] ) if dimAxes[QwtPlot.xTop] > 0: length += min( [ self.__data.layoutData.scale[ QwtPlot.xTop ].tickOffset, float(scaleData.end - backboneOffset[QwtPlot.xTop]), ] ) if dimTitle > 0: length -= dimTitle + self.__data.spacing d = scaleData.dimWithoutTitle if not scaleData.scaleWidget.title().isEmpty(): d += scaleData.scaleWidget.titleHeightForWidth( math.floor(length) ) if d > dimAxes[axis]: dimAxes[axis] = d done = False return dimTitle, dimFooter, dimAxes def alignScales(self, options, canvasRect, scaleRect): """ Align the ticks of the axis to the canvas borders using the empty corners. :param options: Options how to layout the legend :param QRectF canvasRect: Geometry of the canvas ( IN/OUT ) :param QRectF scaleRect: Geometry of the scales ( IN/OUT ) """ backboneOffset = [0 for _i in QwtPlot.AXES] for axis in QwtPlot.AXES: backboneOffset[axis] = 0 if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] if not options & self.IgnoreFrames: backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[ axis ] for axis in QwtPlot.AXES: if not scaleRect[axis].isValid(): continue startDist = self.__data.layoutData.scale[axis].start endDist = self.__data.layoutData.scale[axis].end axisRect = scaleRect[axis] if axis in (QwtPlot.xTop, QwtPlot.xBottom): leftScaleRect = scaleRect[QwtPlot.yLeft] leftOffset = backboneOffset[QwtPlot.yLeft] - startDist if leftScaleRect.isValid(): dx = leftOffset + leftScaleRect.width() if self.__data.alignCanvasToScales[QwtPlot.yLeft] and dx < 0.0: cLeft = canvasRect.left() canvasRect.setLeft(max([cLeft, axisRect.left() - dx])) else: minLeft = leftScaleRect.left() left = axisRect.left() + leftOffset axisRect.setLeft(max([left, minLeft])) else: if ( self.__data.alignCanvasToScales[QwtPlot.yLeft] and leftOffset < 0 ): canvasRect.setLeft( max([canvasRect.left(), axisRect.left() - leftOffset]) ) else: if leftOffset > 0: axisRect.setLeft(axisRect.left() + leftOffset) rightScaleRect = scaleRect[QwtPlot.yRight] rightOffset = backboneOffset[QwtPlot.yRight] - endDist + 1 if rightScaleRect.isValid(): dx = rightOffset + rightScaleRect.width() if self.__data.alignCanvasToScales[QwtPlot.yRight] and dx < 0: cRight = canvasRect.right() canvasRect.setRight(min([cRight, axisRect.right() + dx])) maxRight = rightScaleRect.right() right = axisRect.right() - rightOffset axisRect.setRight(min([right, maxRight])) else: if ( self.__data.alignCanvasToScales[QwtPlot.yRight] and rightOffset < 0 ): canvasRect.setRight( min([canvasRect.right(), axisRect.right() + rightOffset]) ) else: if rightOffset > 0: axisRect.setRight(axisRect.right() - rightOffset) else: bottomScaleRect = scaleRect[QwtPlot.xBottom] bottomOffset = backboneOffset[QwtPlot.xBottom] - endDist + 1 if bottomScaleRect.isValid(): dy = bottomOffset + bottomScaleRect.height() if self.__data.alignCanvasToScales[QwtPlot.xBottom] and dy < 0: cBottom = canvasRect.bottom() canvasRect.setBottom(min([cBottom, axisRect.bottom() + dy])) else: maxBottom = ( bottomScaleRect.top() + self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset ) bottom = axisRect.bottom() - bottomOffset axisRect.setBottom(min([bottom, maxBottom])) else: if ( self.__data.alignCanvasToScales[QwtPlot.xBottom] and bottomOffset < 0 ): canvasRect.setBottom( min([canvasRect.bottom(), axisRect.bottom() + bottomOffset]) ) else: if bottomOffset > 0: axisRect.setBottom(axisRect.bottom() - bottomOffset) topScaleRect = scaleRect[QwtPlot.xTop] topOffset = backboneOffset[QwtPlot.xTop] - startDist if topScaleRect.isValid(): dy = topOffset + topScaleRect.height() if self.__data.alignCanvasToScales[QwtPlot.xTop] and dy < 0: cTop = canvasRect.top() canvasRect.setTop(max([cTop, axisRect.top() - dy])) else: minTop = ( topScaleRect.bottom() - self.__data.layoutData.scale[QwtPlot.xTop].tickOffset ) top = axisRect.top() + topOffset axisRect.setTop(max([top, minTop])) else: if self.__data.alignCanvasToScales[QwtPlot.xTop] and topOffset < 0: canvasRect.setTop( max([canvasRect.top(), axisRect.top() - topOffset]) ) else: if topOffset > 0: axisRect.setTop(axisRect.top() + topOffset) for axis in QwtPlot.AXES: sRect = scaleRect[axis] if not sRect.isValid(): continue if axis in (QwtPlot.xBottom, QwtPlot.xTop): if self.__data.alignCanvasToScales[QwtPlot.yLeft]: y = canvasRect.left() - self.__data.layoutData.scale[axis].start if not options & self.IgnoreFrames: y += self.__data.layoutData.canvas.contentsMargins[ QwtPlot.yLeft ] sRect.setLeft(y) if self.__data.alignCanvasToScales[QwtPlot.yRight]: y = canvasRect.right() - 1 + self.__data.layoutData.scale[axis].end if not options & self.IgnoreFrames: y -= self.__data.layoutData.canvas.contentsMargins[ QwtPlot.yRight ] sRect.setRight(y) if self.__data.alignCanvasToScales[axis]: if axis == QwtPlot.xTop: sRect.setBottom(canvasRect.top()) else: sRect.setTop(canvasRect.bottom()) else: if self.__data.alignCanvasToScales[QwtPlot.xTop]: x = canvasRect.top() - self.__data.layoutData.scale[axis].start if not options & self.IgnoreFrames: x += self.__data.layoutData.canvas.contentsMargins[QwtPlot.xTop] sRect.setTop(x) if self.__data.alignCanvasToScales[QwtPlot.xBottom]: x = canvasRect.bottom() - 1 + self.__data.layoutData.scale[axis].end if not options & self.IgnoreFrames: x -= self.__data.layoutData.canvas.contentsMargins[ QwtPlot.xBottom ] sRect.setBottom(x) if self.__data.alignCanvasToScales[axis]: if axis == QwtPlot.yLeft: sRect.setRight(canvasRect.left()) else: sRect.setLeft(canvasRect.right()) def activate(self, plot, plotRect, options=0x00): """ Recalculate the geometry of all components. :param qwt.plot.QwtPlot plot: Plot to be layout :param QRectF plotRect: Rectangle where to place the components :param options: Layout options """ self.invalidate() rect = QRectF(plotRect) self.__data.layoutData.init(plot, rect) if ( not (options & self.IgnoreLegend) and plot.legend() and not plot.legend().isEmpty() ): self.__data.legendRect = self.layoutLegend(options, rect) region = QRegion(rect.toRect()) rect = QRectF( region.subtracted( QRegion(self.__data.legendRect.toRect()) ).boundingRect() ) if self.__data.legendPos == QwtPlot.LeftLegend: rect.setLeft(rect.left() + self.__data.spacing) elif self.__data.legendPos == QwtPlot.RightLegend: rect.setRight(rect.right() - self.__data.spacing) elif self.__data.legendPos == QwtPlot.TopLegend: rect.setTop(rect.top() + self.__data.spacing) elif self.__data.legendPos == QwtPlot.BottomLegend: rect.setBottom(rect.bottom() - self.__data.spacing) # +---+-----------+---+ # | Title | # +---+-----------+---+ # | | Axis | | # +---+-----------+---+ # | A | | A | # | x | Canvas | x | # | i | | i | # | s | | s | # +---+-----------+---+ # | | Axis | | # +---+-----------+---+ # | Footer | # +---+-----------+---+ # title, footer and axes include text labels. The height of each # label depends on its line breaks, that depend on the width # for the label. A line break in a horizontal text will reduce # the available width for vertical texts and vice versa. # expandLineBreaks finds the height/width for title, footer and axes # including all line breaks. dimTitle, dimFooter, dimAxes = self.expandLineBreaks(options, rect) if dimTitle > 0: self.__data.titleRect.setRect( rect.left(), rect.top(), rect.width(), dimTitle ) rect.setTop(self.__data.titleRect.bottom() + self.__data.spacing) if ( self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled ): self.__data.titleRect.setX(rect.left() + dimAxes[QwtPlot.yLeft]) self.__data.titleRect.setWidth( rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight] ) if dimFooter > 0: self.__data.footerRect.setRect( rect.left(), rect.bottom() - dimFooter, rect.width(), dimFooter ) rect.setBottom(self.__data.footerRect.top() - self.__data.spacing) if ( self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled ): self.__data.footerRect.setX(rect.left() + dimAxes[QwtPlot.yLeft]) self.__data.footerRect.setWidth( rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight] ) self.__data.canvasRect.setRect( rect.x() + dimAxes[QwtPlot.yLeft], rect.y() + dimAxes[QwtPlot.xTop], rect.width() - dimAxes[QwtPlot.yRight] - dimAxes[QwtPlot.yLeft], rect.height() - dimAxes[QwtPlot.xBottom] - dimAxes[QwtPlot.xTop], ) for axis in QwtPlot.AXES: if dimAxes[axis]: dim = dimAxes[axis] scaleRect = self.__data.scaleRect[axis] scaleRect.setRect(*self.__data.canvasRect.getRect()) if axis == QwtPlot.yLeft: scaleRect.setX(self.__data.canvasRect.left() - dim) scaleRect.setWidth(dim) elif axis == QwtPlot.yRight: scaleRect.setX(self.__data.canvasRect.right()) scaleRect.setWidth(dim) elif axis == QwtPlot.xBottom: scaleRect.setY(self.__data.canvasRect.bottom()) scaleRect.setHeight(dim) elif axis == QwtPlot.xTop: scaleRect.setY(self.__data.canvasRect.top() - dim) scaleRect.setHeight(dim) scaleRect = scaleRect.normalized() # +---+-----------+---+ # | <- Axis -> | # +-^-+-----------+-^-+ # | | | | | | # | | | | # | A | | A | # | x | Canvas | x | # | i | | i | # | s | | s | # | | | | # | | | | | | # +-V-+-----------+-V-+ # | <- Axis -> | # +---+-----------+---+ # The ticks of the axes - not the labels above - should # be aligned to the canvas. So we try to use the empty # corners to extend the axes, so that the label texts # left/right of the min/max ticks are moved into them. self.alignScales(options, self.__data.canvasRect, self.__data.scaleRect) if not self.__data.legendRect.isEmpty(): self.__data.legendRect = self.alignLegend( self.__data.canvasRect, self.__data.legendRect ) PythonQwt-0.12.7/qwt/plot_marker.py000066400000000000000000000514441465265754400173140ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotMarker ------------- .. autoclass:: QwtPlotMarker :members: """ from qtpy.QtCore import QLineF, QObject, QPointF, QRect, QRectF, QSizeF, Qt from qtpy.QtGui import QPainter, QPen from qwt.graphic import QwtGraphic from qwt.plot import QwtPlot, QwtPlotItem from qwt.qthelpers import qcolor_from_str from qwt.symbol import QwtSymbol from qwt.text import QwtText class QwtPlotMarker_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.labelAlignment = Qt.AlignCenter self.labelOrientation = Qt.Horizontal self.spacing = 2 self.symbol = None self.style = QwtPlotMarker.NoLine self.xValue = 0.0 self.yValue = 0.0 self.label = QwtText() self.pen = QPen() class QwtPlotMarker(QwtPlotItem): """ A class for drawing markers A marker can be a horizontal line, a vertical line, a symbol, a label or any combination of them, which can be drawn around a center point inside a bounding rectangle. The `setSymbol()` member assigns a symbol to the marker. The symbol is drawn at the specified point. With `setLabel()`, a label can be assigned to the marker. The `setLabelAlignment()` member specifies where the label is drawn. All the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation) are valid. The interpretation of the alignment depends on the marker's line style. The alignment refers to the center point of the marker, which means, for example, that the label would be printed left above the center point if the alignment was set to `Qt.AlignLeft | Qt.AlignTop`. Line styles: * `QwtPlotMarker.NoLine`: No line * `QwtPlotMarker.HLine`: A horizontal line * `QwtPlotMarker.VLine`: A vertical line * `QwtPlotMarker.Cross`: A crosshair """ # enum LineStyle NoLine, HLine, VLine, Cross = list(range(4)) def __init__(self, title=None): if title is None: title = "" if not isinstance(title, QwtText): title = QwtText(title) QwtPlotItem.__init__(self, title) self.__data = QwtPlotMarker_PrivateData() self.setZ(30.0) @classmethod def make( cls, xvalue=None, yvalue=None, title=None, label=None, symbol=None, plot=None, z=None, x_axis=None, y_axis=None, align=None, orientation=None, spacing=None, linestyle=None, color=None, width=None, style=None, antialiased=False, ): """ Create and setup a new `QwtPlotMarker` object (convenience function). :param xvalue: x position (optional, default: None) :type xvalue: float or None :param yvalue: y position (optional, default: None) :type yvalue: float or None :param title: Marker title :type title: qwt.text.QwtText or str or None :param label: Label text :type label: qwt.text.QwtText or str or None :param symbol: New symbol :type symbol: qwt.symbol.QwtSymbol or None :param plot: Plot to attach the curve to :type plot: qwt.plot.QwtPlot or None :param z: Z-value :type z: float or None :param int x_axis: curve X-axis (default: QwtPlot.yLeft) :param int y_axis: curve Y-axis (default: QwtPlot.xBottom) :param align: Alignment of the label :type align: Qt.Alignment or None :param orientation: Orientation of the label :type orientation: Qt.Orientation or None :param spacing: Spacing (distance between the position and the label) :type spacing: int or None :param int linestyle: Line style :param color: Pen color :type color: QColor or str or None :param float width: Pen width :param Qt.PenStyle style: Pen style :param bool antialiased: if True, enable antialiasing rendering .. seealso:: :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()` """ item = cls(title) if z is not None: item.setZ(z) if symbol is not None: item.setSymbol(symbol) if xvalue is not None: item.setXValue(xvalue) if yvalue is not None: item.setYValue(yvalue) if label is not None: item.setLabel(label) x_axis = QwtPlot.xBottom if x_axis is None else x_axis y_axis = QwtPlot.yLeft if y_axis is None else y_axis item.setAxes(x_axis, y_axis) if align is not None: item.setLabelAlignment(align) if orientation is not None: item.setLabelOrientation(orientation) if spacing is not None: item.setSpacing(spacing) color = qcolor_from_str(color, Qt.black) width = 1.0 if width is None else width style = Qt.SolidLine if style is None else style item.setLinePen(QPen(color, width, style)) item.setRenderHint(cls.RenderAntialiased, antialiased) if linestyle is not None: item.setLineStyle(linestyle) if plot is not None: item.attach(plot) return item def rtti(self): """:return: `QwtPlotItem.Rtti_PlotMarker`""" return QwtPlotItem.Rtti_PlotMarker def value(self): """:return: Value""" return QPointF(self.__data.xValue, self.__data.yValue) def xValue(self): """:return: x Value""" return self.__data.xValue def yValue(self): """:return: y Value""" return self.__data.yValue def setValue(self, *args): """ Set Value .. py:method:: setValue(pos): :param QPointF pos: Position .. py:method:: setValue(x, y): :param float x: x position :param float y: y position """ if len(args) == 1: (pos,) = args self.setValue(pos.x(), pos.y()) elif len(args) == 2: x, y = args if x != self.__data.xValue or y != self.__data.yValue: self.__data.xValue = x self.__data.yValue = y self.itemChanged() else: raise TypeError( "%s() takes 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def setXValue(self, x): """ Set X Value :param float x: x position """ self.setValue(x, self.__data.yValue) def setYValue(self, y): """ Set Y Value :param float y: y position """ self.setValue(self.__data.xValue, y) def draw(self, painter, xMap, yMap, canvasRect): """ Draw the marker :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: x Scale Map :param qwt.scale_map.QwtScaleMap yMap: y Scale Map :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates """ pos = QPointF( xMap.transform(self.__data.xValue), yMap.transform(self.__data.yValue) ) self.drawLines(painter, canvasRect, pos) if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: sz = self.__data.symbol.size() width, height = int(sz.width()), int(sz.height()) clipRect = QRectF(canvasRect.adjusted(-width, -height, width, height)) if clipRect.contains(pos): self.__data.symbol.drawSymbols(painter, [pos]) self.drawLabel(painter, canvasRect, pos) def drawLines(self, painter, canvasRect, pos): """ Draw the lines marker :param QPainter painter: Painter :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates :param QPointF pos: Position of the marker, translated into widget coordinates .. seealso:: :py:meth:`drawLabel()`, :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` """ if self.__data.style == self.NoLine: return painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = pos.y() painter.drawLine(QLineF(canvasRect.left(), y, canvasRect.right() - 1.0, y)) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = pos.x() painter.drawLine(QLineF(x, canvasRect.top(), x, canvasRect.bottom() - 1.0)) def drawLabel(self, painter, canvasRect, pos): """ Align and draw the text label of the marker :param QPainter painter: Painter :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates :param QPointF pos: Position of the marker, translated into widget coordinates .. seealso:: :py:meth:`drawLabel()`, :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` """ if self.__data.label.isEmpty(): return align = self.__data.labelAlignment alignPos = QPointF(pos) symbolOff = QSizeF(0, 0) if self.__data.style == QwtPlotMarker.VLine: # In VLine-style the y-position is pointless and # the alignment flags are relative to the canvas if bool(self.__data.labelAlignment & Qt.AlignTop): alignPos.setY(canvasRect.top()) align &= ~Qt.AlignTop align |= Qt.AlignBottom elif bool(self.__data.labelAlignment & Qt.AlignBottom): # In HLine-style the x-position is pointless and # the alignment flags are relative to the canvas alignPos.setY(canvasRect.bottom() - 1) align &= ~Qt.AlignBottom align |= Qt.AlignTop else: alignPos.setY(canvasRect.center().y()) elif self.__data.style == QwtPlotMarker.HLine: if bool(self.__data.labelAlignment & Qt.AlignLeft): alignPos.setX(canvasRect.left()) align &= ~Qt.AlignLeft align |= Qt.AlignRight elif bool(self.__data.labelAlignment & Qt.AlignRight): alignPos.setX(canvasRect.right() - 1) align &= ~Qt.AlignRight align |= Qt.AlignLeft else: alignPos.setX(canvasRect.center().x()) else: if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: symbolOff = QSizeF(self.__data.symbol.size()) + QSizeF(1, 1) symbolOff /= 2 pw2 = self.__data.pen.widthF() / 2.0 if pw2 == 0.0: pw2 = 0.5 spacing = self.__data.spacing xOff = max([pw2, symbolOff.width()]) yOff = max([pw2, symbolOff.height()]) textSize = self.__data.label.textSize(painter.font()) if align & Qt.AlignLeft: alignPos.setX(alignPos.x() - (xOff + spacing)) if self.__data.labelOrientation == Qt.Vertical: alignPos.setX(alignPos.x() - textSize.height()) else: alignPos.setX(alignPos.x() - textSize.width()) elif align & Qt.AlignRight: alignPos.setX(alignPos.x() + xOff + spacing) else: if self.__data.labelOrientation == Qt.Vertical: alignPos.setX(alignPos.x() - textSize.height() / 2) else: alignPos.setX(alignPos.x() - textSize.width() / 2) if align & Qt.AlignTop: alignPos.setY(alignPos.y() - (yOff + spacing)) if self.__data.labelOrientation != Qt.Vertical: alignPos.setY(alignPos.y() - textSize.height()) elif align & Qt.AlignBottom: alignPos.setY(alignPos.y() + yOff + spacing) if self.__data.labelOrientation == Qt.Vertical: alignPos.setY(alignPos.y() + textSize.width()) else: if self.__data.labelOrientation == Qt.Vertical: alignPos.setY(alignPos.y() + textSize.width() / 2) else: alignPos.setY(alignPos.y() - textSize.height() / 2) painter.translate(alignPos.x(), alignPos.y()) if self.__data.labelOrientation == Qt.Vertical: painter.rotate(-90.0) textRect = QRectF(0, 0, textSize.width(), textSize.height()) self.__data.label.draw(painter, textRect) def setLineStyle(self, style): """ Set the line style :param int style: Line style Line styles: * `QwtPlotMarker.NoLine`: No line * `QwtPlotMarker.HLine`: A horizontal line * `QwtPlotMarker.VLine`: A vertical line * `QwtPlotMarker.Cross`: A crosshair .. seealso:: :py:meth:`lineStyle()` """ if style != self.__data.style: self.__data.style = style self.legendChanged() self.itemChanged() def lineStyle(self): """ :return: the line style .. seealso:: :py:meth:`setLineStyle()` """ return self.__data.style def setSymbol(self, symbol): """ Assign a symbol :param qwt.symbol.QwtSymbol symbol: New symbol .. seealso:: :py:meth:`symbol()` """ if symbol != self.__data.symbol: self.__data.symbol = symbol if symbol is not None: self.setLegendIconSize(symbol.boundingRect().size()) self.legendChanged() self.itemChanged() def symbol(self): """ :return: the symbol .. seealso:: :py:meth:`setSymbol()` """ return self.__data.symbol def setLabel(self, label): """ Set the label :param label: Label text :type label: qwt.text.QwtText or str .. seealso:: :py:meth:`label()` """ if not isinstance(label, QwtText): label = QwtText(label) if label != self.__data.label: self.__data.label = label self.itemChanged() def label(self): """ :return: the label .. seealso:: :py:meth:`setLabel()` """ return self.__data.label def setLabelAlignment(self, align): """ Set the alignment of the label In case of `QwtPlotMarker.HLine` the alignment is relative to the y position of the marker, but the horizontal flags correspond to the canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is relative to the x position of the marker, but the vertical flags correspond to the canvas rectangle. In all other styles the alignment is relative to the marker's position. :param Qt.Alignment align: Alignment .. seealso:: :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()` """ if align != self.__data.labelAlignment: self.__data.labelAlignment = align self.itemChanged() def labelAlignment(self): """ :return: the label alignment .. seealso:: :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()` """ return self.__data.labelAlignment def setLabelOrientation(self, orientation): """ Set the orientation of the label When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees (from bottom to top). :param Qt.Orientation orientation: Orientation of the label .. seealso:: :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()` """ if orientation != self.__data.labelOrientation: self.__data.labelOrientation = orientation self.itemChanged() def labelOrientation(self): """ :return: the label orientation .. seealso:: :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()` """ return self.__data.labelOrientation def setSpacing(self, spacing): """ Set the spacing When the label is not centered on the marker position, the spacing is the distance between the position and the label. :param int spacing: Spacing .. seealso:: :py:meth:`spacing()`, :py:meth:`setLabelAlignment()` """ if spacing < 0: spacing = 0 if spacing != self.__data.spacing: self.__data.spacing = spacing self.itemChanged() def spacing(self): """ :return: the spacing .. seealso:: :py:meth:`setSpacing()` """ return self.__data.spacing def setLinePen(self, *args): """ Build and/or assigna a line pen, depending on the arguments. .. py:method:: setLinePen(color, width, style) :noindex: Build and assign a line pen In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setLinePen(pen) :noindex: Specify a pen for the line. :param QPen pen: New pen .. seealso:: :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 1 and isinstance(args[0], QPen): (pen,) = args elif len(args) in (1, 2, 3): color = args[0] width = 0.0 style = Qt.SolidLine if len(args) > 1: width = args[1] if len(args) > 2: style = args[2] pen = QPen(color, width, style) self.setLinePen(pen) else: raise TypeError( "%s().setLinePen() takes 1, 2 or 3 argument(s) " "(%s given)" % (self.__class__.__name__, len(args)) ) if pen != self.__data.pen: self.__data.pen = pen self.legendChanged() self.itemChanged() def linePen(self): """ :return: the line pen .. seealso:: :py:meth:`setLinePen()` """ return self.__data.pen def boundingRect(self): if self.__data.style == QwtPlotMarker.HLine: return QRectF(self.__data.xValue, self.__data.yValue, -1.0, 0.0) elif self.__data.style == QwtPlotMarker.VLine: return QRectF(self.__data.xValue, self.__data.yValue, 0.0, -1.0) else: return QRectF(self.__data.xValue, self.__data.yValue, 0.0, 0.0) def legendIcon(self, index, size): """ :param int index: Index of the legend entry (ignored as there is only one) :param QSizeF size: Icon size :return: Icon representing the marker on the legend .. seealso:: :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() icon = QwtGraphic() icon.setDefaultSize(size) icon.setRenderHint(QwtGraphic.RenderPensUnscaled, True) painter = QPainter(icon) painter.setRenderHint( QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased) ) if self.__data.style != QwtPlotMarker.NoLine: painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = 0.5 * size.height() painter.drawLine(QLineF(0.0, y, size.width(), y)) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = 0.5 * size.width() painter.drawLine(QLineF(x, 0.0, x, size.height())) if self.__data.symbol: r = QRect(0, 0, size.width(), size.height()) self.__data.symbol.drawSymbol(painter, r) return icon PythonQwt-0.12.7/qwt/plot_renderer.py000066400000000000000000000651011465265754400176340ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtPlotRenderer --------------- .. autoclass:: QwtPlotRenderer :members: """ import math import os.path as osp from qtpy.compat import getsavefilename from qtpy.QtCore import QObject, QRect, QRectF, QSizeF, Qt from qtpy.QtGui import ( QColor, QImage, QImageWriter, QPageSize, QPaintDevice, QPainter, QPainterPath, QPalette, QPen, QTransform, ) from qtpy.QtPrintSupport import QPrinter from qtpy.QtSvg import QSvgGenerator from qtpy.QtWidgets import QFileDialog from qwt.painter import QwtPainter from qwt.plot import QwtPlot from qwt.plot_layout import QwtPlotLayout from qwt.scale_draw import QwtScaleDraw from qwt.scale_map import QwtScaleMap def qwtCanvasClip(canvas, canvasRect): """ The clip region is calculated in integers To avoid too much rounding errors better calculate it in target device resolution """ x1 = math.ceil(canvasRect.left()) x2 = math.floor(canvasRect.right()) y1 = math.ceil(canvasRect.top()) y2 = math.floor(canvasRect.bottom()) r = QRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1) return canvas.borderPath(r) class QwtPlotRenderer_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.discardFlags = QwtPlotRenderer.DiscardNone self.layoutFlags = QwtPlotRenderer.DefaultLayout class QwtPlotRenderer(QObject): """ Renderer for exporting a plot to a document, a printer or anything else, that is supported by QPainter/QPaintDevice Discard flags: * `QwtPlotRenderer.DiscardNone`: Render all components of the plot * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas .. note:: The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using style sheets, where the frame is part of the background Layout flags: * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to. """ # enum DiscardFlag DiscardNone = 0x00 DiscardBackground = 0x01 DiscardTitle = 0x02 DiscardLegend = 0x04 DiscardCanvasBackground = 0x08 DiscardFooter = 0x10 DiscardCanvasFrame = 0x20 # enum LayoutFlag DefaultLayout = 0x00 FrameWithScales = 0x01 def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotRenderer_PrivateData() def setDiscardFlag(self, flag, on=True): """ Change a flag, indicating what to discard from rendering :param int flag: Flag to change :param bool on: On/Off .. seealso:: :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`, :py:meth:`discardFlags()` """ if on: self.__data.discardFlags |= flag else: self.__data.discardFlags &= ~flag def testDiscardFlag(self, flag): """ :param int flag: Flag to be tested :return: True, if flag is enabled. .. seealso:: :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`, :py:meth:`discardFlags()` """ return self.__data.discardFlags & flag def setDiscardFlags(self, flags): """ Set the flags, indicating what to discard from rendering :param int flags: Flags .. seealso:: :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`, :py:meth:`discardFlags()` """ self.__data.discardFlags = flags def discardFlags(self): """ :return: Flags, indicating what to discard from rendering .. seealso:: :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`, :py:meth:`testDiscardFlag()` """ return self.__data.discardFlags def setLayoutFlag(self, flag, on=True): """ Change a layout flag :param int flag: Flag to change .. seealso:: :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`, :py:meth:`layoutFlags()` """ if on: self.__data.layoutFlags |= flag else: self.__data.layoutFlags &= ~flag def testLayoutFlag(self, flag): """ :param int flag: Flag to be tested :return: True, if flag is enabled. .. seealso:: :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`, :py:meth:`layoutFlags()` """ return self.__data.layoutFlags & flag def setLayoutFlags(self, flags): """ Set the layout flags :param int flags: Flags .. seealso:: :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`, :py:meth:`layoutFlags()` """ self.__data.layoutFlags = flags def layoutFlags(self): """ :return: Layout flags .. seealso:: :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()` """ return self.__data.layoutFlags def renderDocument( self, plot, filename, sizeMM=(300, 200), resolution=85, format_=None ): """ Render a plot to a file The format of the document will be auto-detected from the suffix of the file name. :param qwt.plot.QwtPlot plot: Plot widget :param str fileName: Path of the file, where the document will be stored :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) """ if isinstance(sizeMM, tuple): sizeMM = QSizeF(*sizeMM) if format_ is None: ext = osp.splitext(filename)[1] if not ext: raise TypeError("Unable to determine target format from filename") format_ = ext[1:] if plot is None or sizeMM.isEmpty() or resolution <= 0: return title = plot.title().text() if not title: title = "Plot Document" mmToInch = 1.0 / 25.4 size = sizeMM * mmToInch * resolution documentRect = QRectF(0.0, 0.0, size.width(), size.height()) fmt = format_.lower() if fmt in ("pdf", "ps"): printer = QPrinter() if fmt == "pdf": try: printer.setOutputFormat(QPrinter.PdfFormat) except AttributeError: # PyQt6 on Linux printer.setPrinterName("") else: printer.setOutputFormat(QPrinter.PostScriptFormat) try: printer.setColorMode(QPrinter.Color) except AttributeError: # PyQt6 on Linux pass printer.setFullPage(True) printer.setPageSize(QPageSize(sizeMM, QPageSize.Millimeter)) printer.setDocName(title) printer.setOutputFileName(filename) printer.setResolution(resolution) painter = QPainter(printer) self.render(plot, painter, documentRect) painter.end() elif fmt == "svg": generator = QSvgGenerator() generator.setTitle(title) generator.setFileName(filename) generator.setResolution(resolution) generator.setViewBox(documentRect) painter = QPainter(generator) self.render(plot, painter, documentRect) painter.end() elif fmt in QImageWriter.supportedImageFormats(): imageRect = documentRect.toRect() dotsPerMeter = int(round(resolution * mmToInch * 1000.0)) image = QImage(imageRect.size(), QImage.Format_ARGB32) image.setDotsPerMeterX(dotsPerMeter) image.setDotsPerMeterY(dotsPerMeter) image.fill(QColor(Qt.white).rgb()) painter = QPainter(image) self.render(plot, painter, imageRect) painter.end() image.save(filename, fmt) else: raise TypeError("Unsupported file format '%s'" % fmt) def renderTo(self, plot, dest): """ Render a plot to a file Supported formats are: - pdf: Portable Document Format PDF - ps: Postcript - svg: Scalable Vector Graphics SVG - all image formats supported by Qt, see QImageWriter.supportedImageFormats() Scalable vector graphic formats like PDF or SVG are superior to raster graphics formats. :param qwt.plot.QwtPlot plot: Plot widget :param dest: QPaintDevice, QPrinter or QSvgGenerator instance .. seealso:: :py:meth:`render()`, :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ if isinstance(dest, QPaintDevice): w = dest.width() h = dest.height() rect = QRectF(0, 0, w, h) elif isinstance(dest, QPrinter): w = dest.width() h = dest.height() rect = QRectF(0, 0, w, h) aspect = rect.width() / rect.height() if aspect < 1.0: rect.setHeight(aspect * rect.width()) elif isinstance(dest, QSvgGenerator): rect = dest.viewBoxF() if rect.isEmpty(): rect.setRect(0, 0, dest.width(), dest.height()) if rect.isEmpty(): rect.setRect(0, 0, 800, 600) else: raise TypeError("Unsupported destination type %s" % type(dest)) p = QPainter(dest) self.render(plot, p, rect) def render(self, plot, painter, plotRect): """ Paint the contents of a QwtPlot instance into a given rectangle. :param qwt.plot.QwtPlot plot: Plot to be rendered :param QPainter painter: Painter :param str format: Format for the document :param QRectF plotRect: Bounding rectangle .. seealso:: :py:meth:`renderDocument()`, :py:meth:`renderTo()`, :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ if ( painter == 0 or not painter.isActive() or not plotRect.isValid() or plot.size().isNull() ): return if not self.__data.discardFlags & self.DiscardBackground: QwtPainter.drawBackground(painter, plotRect, plot) # The layout engine uses the same methods as they are used # by the Qt layout system. Therefore we need to calculate the # layout in screen coordinates and paint with a scaled painter. transform = QTransform() transform.scale( float(painter.device().logicalDpiX()) / plot.logicalDpiX(), float(painter.device().logicalDpiY()) / plot.logicalDpiY(), ) invtrans, _ok = transform.inverted() layoutRect = invtrans.mapRect(plotRect) if not (self.__data.discardFlags & self.DiscardBackground): mg = plot.contentsMargins() layoutRect.adjust(mg.left(), mg.top(), -mg.right(), -mg.bottom()) layout = plot.plotLayout() baseLineDists = canvasMargins = [None] * len(QwtPlot.AXES) for axisId in QwtPlot.AXES: canvasMargins[axisId] = layout.canvasMargin(axisId) if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) if scaleWidget: mgn = scaleWidget.contentsMargins() baseLineDists[axisId] = max( [mgn.left(), mgn.top(), mgn.right(), mgn.bottom()] ) scaleWidget.setMargin(0) if not plot.axisEnabled(axisId): # When we have a scale the frame is painted on # the position of the backbone - otherwise we # need to introduce a margin around the canvas if axisId == QwtPlot.yLeft: layoutRect.adjust(1, 0, 0, 0) elif axisId == QwtPlot.yRight: layoutRect.adjust(0, 0, -1, 0) elif axisId == QwtPlot.xTop: layoutRect.adjust(0, 1, 0, 0) elif axisId == QwtPlot.xBottom: layoutRect.adjust(0, 0, 0, -1) # Calculate the layout for the document. layoutOptions = QwtPlotLayout.IgnoreScrollbars if ( self.__data.layoutFlags & self.FrameWithScales or self.__data.discardFlags & self.DiscardCanvasFrame ): layoutOptions |= QwtPlotLayout.IgnoreFrames if self.__data.discardFlags & self.DiscardLegend: layoutOptions |= QwtPlotLayout.IgnoreLegend if self.__data.discardFlags & self.DiscardTitle: layoutOptions |= QwtPlotLayout.IgnoreTitle if self.__data.discardFlags & self.DiscardFooter: layoutOptions |= QwtPlotLayout.IgnoreFooter layout.activate(plot, layoutRect, layoutOptions) maps = self.buildCanvasMaps(plot, layout.canvasRect()) if self.updateCanvasMargins(plot, layout.canvasRect(), maps): # recalculate maps and layout, when the margins # have been changed layout.activate(plot, layoutRect, layoutOptions) maps = self.buildCanvasMaps(plot, layout.canvasRect()) painter.save() painter.setWorldTransform(transform, True) self.renderCanvas(plot, painter, layout.canvasRect(), maps) if ( not self.__data.discardFlags & self.DiscardTitle ) and plot.titleLabel().text(): self.renderTitle(plot, painter, layout.titleRect()) if ( not self.__data.discardFlags & self.DiscardFooter ) and plot.titleLabel().text(): self.renderFooter(plot, painter, layout.footerRect()) if ( not self.__data.discardFlags & self.DiscardLegend ) and plot.titleLabel().text(): self.renderLegend(plot, painter, layout.legendRect()) for axisId in QwtPlot.AXES: scaleWidget = plot.axisWidget(axisId) if scaleWidget: mgn = scaleWidget.contentsMargins() baseDist = max([mgn.left(), mgn.top(), mgn.right(), mgn.bottom()]) startDist, endDist = scaleWidget.getBorderDistHint() self.renderScale( plot, painter, axisId, startDist, endDist, baseDist, layout.scaleRect(axisId), ) painter.restore() for axisId in QwtPlot.AXES: if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) if scaleWidget: scaleWidget.setMargin(baseLineDists[axisId]) layout.setCanvasMargin(canvasMargins[axisId]) layout.invalidate() def renderTitle(self, plot, painter, rect): """ Render the title into a given rectangle. :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ painter.setFont(plot.titleLabel().font()) color = plot.titleLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.titleLabel().text().draw(painter, rect) def renderFooter(self, plot, painter, rect): """ Render the footer into a given rectangle. :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ painter.setFont(plot.footerLabel().font()) color = plot.footerLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.footerLabel().text().draw(painter, rect) def renderLegend(self, plot, painter, rect): """ Render the legend into a given rectangle. :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ if plot.legend(): fillBackground = not self.__data.discardFlags & self.DiscardBackground plot.legend().renderLegend(painter, rect, fillBackground) def renderScale(self, plot, painter, axisId, startDist, endDist, baseDist, rect): """ Paint a scale into a given rectangle. Paint the scale into a given rectangle. :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param int axisId: Axis :param int startDist: Start border distance :param int endDist: End border distance :param int baseDist: Base distance :param QRectF rect: Bounding rectangle """ if not plot.axisEnabled(axisId): return scaleWidget = plot.axisWidget(axisId) if scaleWidget.isColorBarEnabled() and scaleWidget.colorBarWidth() > 0: scaleWidget.drawColorBar(painter, scaleWidget.colorBarRect(rect)) baseDist += scaleWidget.colorBarWidth() + scaleWidget.spacing() painter.save() if axisId == QwtPlot.yLeft: x = rect.right() - 1.0 - baseDist y = rect.y() + startDist w = rect.height() - startDist - endDist align = QwtScaleDraw.LeftScale elif axisId == QwtPlot.yRight: x = rect.left() + baseDist y = rect.y() + startDist w = rect.height() - startDist - endDist align = QwtScaleDraw.RightScale elif axisId == QwtPlot.xTop: x = rect.left() + startDist y = rect.bottom() - 1.0 - baseDist w = rect.width() - startDist - endDist align = QwtScaleDraw.TopScale else: # QwtPlot.xBottom x = rect.left() + startDist y = rect.top() + baseDist w = rect.width() - startDist - endDist align = QwtScaleDraw.BottomScale scaleWidget.drawTitle(painter, align, rect) painter.setFont(scaleWidget.font()) sd = scaleWidget.scaleDraw() sdPos = sd.pos() sdLength = sd.length() sd.move(x, y) sd.setLength(w) palette = scaleWidget.palette() palette.setCurrentColorGroup(QPalette.Active) sd.draw(painter, palette) sd.move(sdPos) sd.setLength(sdLength) painter.restore() def renderCanvas(self, plot, painter, canvasRect, maps): """ Render the canvas into a given rectangle. :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates """ canvas = plot.canvas() r = canvasRect.adjusted(0.0, 0.0, -1.0, 1.0) if self.__data.layoutFlags & self.FrameWithScales: painter.save() r.adjust(-1.0, -1.0, 1.0, 1.0) painter.setPen(QPen(Qt.black)) if not (self.__data.discardFlags & self.DiscardCanvasBackground): bgBrush = canvas.palette().brush(plot.backgroundRole()) painter.setBrush(bgBrush) painter.drawRect(r) painter.restore() painter.save() painter.setClipRect(canvasRect) plot.drawItems(painter, canvasRect, maps) painter.restore() elif canvas.testAttribute(Qt.WA_StyledBackground): clipPath = QPainterPath() painter.save() if not self.__data.discardFlags & self.DiscardCanvasBackground: QwtPainter.drawBackground(painter, r, canvas) clipPath = qwtCanvasClip(canvas, canvasRect) painter.restore() painter.save() if clipPath.isEmpty(): painter.setClipRect(canvasRect) else: painter.setClipPath(clipPath) plot.drawItems(painter, canvasRect, maps) painter.restore() else: clipPath = QPainterPath() frameWidth = 0 if not self.__data.discardFlags & self.DiscardCanvasFrame: frameWidth = canvas.frameWidth() clipPath = qwtCanvasClip(canvas, canvasRect) innerRect = canvasRect.adjusted( frameWidth, frameWidth, -frameWidth, -frameWidth ) painter.save() if clipPath.isEmpty(): painter.setClipRect(innerRect) else: painter.setClipPath(clipPath) if not self.__data.discardFlags & self.DiscardCanvasBackground: QwtPainter.drawBackground(painter, innerRect, canvas) plot.drawItems(painter, innerRect, maps) painter.restore() if frameWidth > 0: painter.save() frameStyle = canvas.frameShadow() | canvas.frameShape() radius = canvas.borderRadius() if radius > 0.0: QwtPainter.drawRoundedFrame( painter, canvasRect, radius, radius, canvas.palette(), frameWidth, frameStyle, ) else: midLineWidth = canvas.midLineWidth() QwtPainter.drawFrame( painter, canvasRect, canvas.palette(), canvas.foregroundRole(), frameWidth, midLineWidth, frameStyle, ) painter.restore() def buildCanvasMaps(self, plot, canvasRect): """ Calculated the scale maps for rendering the canvas :param qwt.plot.QwtPlot plot: Plot widget :param QRectF canvasRect: Target rectangle :return: Calculated scale maps """ maps = [] for axisId in QwtPlot.AXES: map_ = QwtScaleMap() map_.setTransformation(plot.axisScaleEngine(axisId).transformation()) sd = plot.axisScaleDiv(axisId) map_.setScaleInterval(sd.lowerBound(), sd.upperBound()) if plot.axisEnabled(axisId): s = plot.axisWidget(axisId) scaleRect = plot.plotLayout().scaleRect(axisId) if axisId in (QwtPlot.xTop, QwtPlot.xBottom): from_ = scaleRect.left() + s.startBorderDist() to = scaleRect.right() - s.endBorderDist() else: from_ = scaleRect.bottom() - s.endBorderDist() to = scaleRect.top() + s.startBorderDist() else: margin = 0 if not plot.plotLayout().alignCanvasToScale(axisId): margin = plot.plotLayout().canvasMargin(axisId) if axisId in (QwtPlot.yLeft, QwtPlot.yRight): from_ = canvasRect.bottom() - margin to = canvasRect.top() + margin else: from_ = canvasRect.left() + margin to = canvasRect.right() - margin map_.setPaintInterval(from_, to) maps.append(map_) return maps def updateCanvasMargins(self, plot, canvasRect, maps): margins = plot.getCanvasMarginsHint(maps, canvasRect) marginsChanged = False for axisId in QwtPlot.AXES: if margins[axisId] >= 0.0: m = math.ceil(margins[axisId]) plot.plotLayout().setCanvasMargin(m, axisId) marginsChanged = True return marginsChanged def exportTo(self, plot, documentname, sizeMM=None, resolution=85): """ Execute a file dialog and render the plot to the selected file :param qwt.plot.QwtPlot plot: Plot widget :param str documentName: Default document name :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) :return: True, when exporting was successful .. seealso:: :py:meth:`renderDocument()` """ if plot is None: return if sizeMM is None: sizeMM = QSizeF(300, 200) filename = documentname imageFormats = QImageWriter.supportedImageFormats() filter_ = [ "PDF documents (*.pdf)", "SVG documents (*.svg)", "Postscript documents (*.ps)", ] if imageFormats: imageFilter = "Images" imageFilter += " (" for idx, fmt in enumerate(imageFormats): if idx > 0: imageFilter += " " imageFilter += "*." + str(fmt) imageFilter += ")" filter_ += [imageFilter] filename, _s = getsavefilename( plot, "Export File Name", filename, ";;".join(filter_), options=QFileDialog.DontConfirmOverwrite, ) if not filename: return False self.renderDocument(plot, filename, sizeMM, resolution) return True return True PythonQwt-0.12.7/qwt/plot_series.py000066400000000000000000000246361465265754400173300ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ Plotting series item -------------------- QwtPlotSeriesItem ~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPlotSeriesItem :members: QwtSeriesData ~~~~~~~~~~~~~ .. autoclass:: QwtSeriesData :members: QwtPointArrayData ~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPointArrayData :members: QwtSeriesStore ~~~~~~~~~~~~~~ .. autoclass:: QwtSeriesStore :members: """ import numpy as np from qtpy.QtCore import QPointF, QRectF, Qt from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.text import QwtText class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData): def __init__(self): QwtPlotItem_PrivateData.__init__(self) self.orientation = Qt.Horizontal class QwtPlotSeriesItem(QwtPlotItem): """ Base class for plot items representing a series of samples """ def __init__(self, title): if not isinstance(title, QwtText): title = QwtText(title) QwtPlotItem.__init__(self, title) self.__data = QwtPlotSeriesItem_PrivateData() self.setItemInterest(QwtPlotItem.ScaleInterest, True) def setOrientation(self, orientation): """ Set the orientation of the item. Default is `Qt.Horizontal`. The `orientation()` might be used in specific way by a plot item. F.e. a QwtPlotCurve uses it to identify how to display the curve int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style. .. seealso:: :py:meth`orientation()` """ if self.__data.orientation != orientation: self.__data.orientation = orientation self.legendChanged() self.itemChanged() def orientation(self): """ :return: Orientation of the plot item .. seealso:: :py:meth`setOrientation()` """ return self.__data.orientation def draw(self, painter, xMap, yMap, canvasRect): """ Draw the complete series :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas """ self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw a subset of the samples :param QPainter painter: Painter :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. .. seealso:: This method is implemented in `qwt.plot_curve.QwtPlotCurve` """ raise NotImplementedError def boundingRect(self): return self.dataRect() # dataRect method is implemented in QwtSeriesStore def updateScaleDiv(self, xScaleDiv, yScaleDiv): rect = QRectF( xScaleDiv.lowerBound(), yScaleDiv.lowerBound(), xScaleDiv.range(), yScaleDiv.range(), ) self.setRectOfInterest( rect ) # setRectOfInterest method is implemented in QwtSeriesData def dataChanged(self): self.itemChanged() class QwtSeriesData(object): """ Abstract interface for iterating over samples `PythonQwt` offers several implementations of the QwtSeriesData API, but in situations, where data of an application specific format needs to be displayed, without having to copy it, it is recommended to implement an individual data access. A subclass of `QwtSeriesData` must implement: - size(): Should return number of data points. - sample() Should return values x and y values of the sample at specific position as QPointF object. - boundingRect() Should return the bounding rectangle of the data series. It is used for autoscaling and might help certain algorithms for displaying the data. The member `_boundingRect` is intended for caching the calculated rectangle. """ def __init__(self): self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) def setRectOfInterest(self, rect): """ Set a the "rect of interest" QwtPlotSeriesItem defines the current area of the plot canvas as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ). It can be used to implement different levels of details. The default implementation does nothing. :param QRectF rect: Rectangle of interest """ pass def size(self): """ :return: Number of samples """ pass def sample(self, i): """ Return a sample :param int i: Index :return: Sample at position i """ pass def boundingRect(self): """ Calculate the bounding rect of all samples The bounding rect is necessary for autoscaling and can be used for a couple of painting optimizations. :return: Bounding rectangle """ pass class QwtPointArrayData(QwtSeriesData): """ Interface for iterating over two array objects .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) :param x: Array of x values :type x: list or tuple or numpy.array :param y: Array of y values :type y: list or tuple or numpy.array :param int size: Size of the x and y arrays :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements """ def __init__(self, x=None, y=None, size=None, finite=None): QwtSeriesData.__init__(self) if x is None and y is not None: x = np.arange(len(y)) elif y is None and x is not None: y = x x = np.arange(len(y)) elif x is None and y is None: x = np.array([]) y = np.array([]) if isinstance(x, (tuple, list)): x = np.array(x) if isinstance(y, (tuple, list)): y = np.array(y) if size is not None: x = np.resize(x, (size,)) y = np.resize(y, (size,)) if len(x) != len(y): minlen = min(len(x), len(y)) x = np.resize(x, (minlen,)) y = np.resize(y, (minlen,)) if finite if finite is not None else True: indexes = np.logical_and(np.isfinite(x), np.isfinite(y)) self.__x = x[indexes] self.__y = y[indexes] else: self.__x = x self.__y = y def boundingRect(self): """ Calculate the bounding rectangle The bounding rectangle is calculated once by iterating over all points and is stored for all following requests. :return: Bounding rectangle """ xmin = self.__x.min() xmax = self.__x.max() ymin = self.__y.min() ymax = self.__y.max() return QRectF(xmin, ymin, xmax - xmin, ymax - ymin) def size(self): """ :return: Size of the data set """ return min([self.__x.size, self.__y.size]) def sample(self, index): """ :param int index: Index :return: Sample at position `index` """ return QPointF(self.__x[index], self.__y[index]) def xData(self): """ :return: Array of the x-values """ return self.__x def yData(self): """ :return: Array of the y-values """ return self.__y class QwtSeriesStore(object): """ Class storing a `QwtSeriesData` object `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for all plot items iterating over a series of samples. """ def __init__(self): self.__series = None def setData(self, series): """ Assign a series of samples :param qwt.plot_series.QwtSeriesData series: Data .. warning:: The item takes ownership of the data object, deleting it when its not used anymore. """ if self.__series != series: self.__series = series self.dataChanged() def dataChanged(self): raise NotImplementedError def data(self): """ :return: the series data """ return self.__series def sample(self, index): """ :param int index: Index :return: Sample at position index """ if self.__series: return self.__series.sample(index) else: return def dataSize(self): """ :return: Number of samples of the series .. seealso:: :py:meth:`setData()`, :py:meth:`qwt.plot_series.QwtSeriesData.size()` """ if self.__series is None: return 0 return self.__series.size() def dataRect(self): """ :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored .. seealso:: :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()` """ if self.__series is None or self.dataSize() == 0: return QRectF(1.0, 1.0, -2.0, -2.0) return self.__series.boundingRect() def setRectOfInterest(self, rect): """ Set a the "rect of interest" for the series :param QRectF rect: Rectangle of interest .. seealso:: :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()` """ if self.__series: self.__series.setRectOfInterest(rect) def swapData(self, series): """ Replace a series without deleting the previous one :param qwt.plot_series.QwtSeriesData series: New series :return: Previously assigned series """ swappedSeries = self.__series self.__series = series return swappedSeries PythonQwt-0.12.7/qwt/qthelpers.py000066400000000000000000000025751465265754400170050ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """Qt helpers""" import os from qtpy import QtCore as QC from qtpy import QtGui as QG from qtpy import QtWidgets as QW QT_API = os.environ["QT_API"] def qcolor_from_str(color, default): """Return QColor object from str :param color: Input color :type color: QColor or str or None :param QColor default: Default color (returned if color is None) If color is already a QColor instance, simply return color. If color is None, return default color. If color is neither an str nor a QColor instance nor None, raise TypeError. """ if color is None: return default elif isinstance(color, str): try: return getattr(QC.Qt, color) except AttributeError: raise ValueError("Unknown Qt color %r" % color) else: try: return QG.QColor(color) except TypeError: raise TypeError("Invalid color %r" % color) def take_screenshot(widget, path, size=None, quit=True): """Take screenshot of widget""" if size is not None: widget.resize(*size) widget.show() QW.QApplication.processEvents() pixmap = widget.grab() pixmap.save(path) if quit: QC.QTimer.singleShot(0, QW.QApplication.instance().quit) PythonQwt-0.12.7/qwt/scale_div.py000066400000000000000000000220741465265754400167230ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtScaleDiv ----------- .. autoclass:: QwtScaleDiv :members: """ import copy from qwt.interval import QwtInterval class QwtScaleDiv(object): """ A class representing a scale division A Qwt scale is defined by its boundaries and 3 list for the positions of the major, medium and minor ticks. The `upperLimit()` might be smaller than the `lowerLimit()` to indicate inverted scales. Scale divisions can be calculated from a `QwtScaleEngine`. .. seealso:: :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`, :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()` Scale tick types: * `QwtScaleDiv.NoTick`: No ticks * `QwtScaleDiv.MinorTick`: Minor ticks * `QwtScaleDiv.MediumTick`: Medium ticks * `QwtScaleDiv.MajorTick`: Major ticks * `QwtScaleDiv.NTickTypes`: Number of valid tick types .. py:class:: QwtScaleDiv() Basic constructor. Lower bound = Upper bound = 0. .. py:class:: QwtScaleDiv(interval, ticks) :noindex: :param qwt.interval.QwtInterval interval: Interval :param list ticks: list of major, medium and minor ticks .. py:class:: QwtScaleDiv(lowerBound, upperBound) :noindex: :param float lowerBound: First boundary :param float upperBound: Second boundary .. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks) :noindex: :param float lowerBound: First boundary :param float upperBound: Second boundary :param list ticks: list of major, medium and minor ticks .. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks) :noindex: :param float lowerBound: First boundary :param float upperBound: Second boundary :param list minorTicks: list of minor ticks :param list mediumTicks: list of medium ticks :param list majorTicks: list of major ticks .. note:: lowerBound might be greater than upperBound for inverted scales """ # enum TickType NoTick = -1 MinorTick, MediumTick, MajorTick, NTickTypes = list(range(4)) def __init__(self, *args): self.__ticks = None if len(args) == 2 and isinstance(args[1], (tuple, list)): interval, ticks = args self.__lowerBound = interval.minValue() self.__upperBound = interval.maxValue() self.__ticks = ticks[:] elif len(args) == 2: self.__lowerBound, self.__upperBound = args elif len(args) == 3: self.__lowerBound, self.__upperBound, ticks = args self.__ticks = ticks[:] elif len(args) == 5: ( self.__lowerBound, self.__upperBound, minorTicks, mediumTicks, majorTicks, ) = args self.__ticks = [0] * self.NTickTypes self.__ticks[self.MinorTick] = minorTicks self.__ticks[self.MediumTick] = mediumTicks self.__ticks[self.MajorTick] = majorTicks elif len(args) == 0: self.__lowerBound, self.__upperBound = 0.0, 0.0 else: raise TypeError( "%s() takes 0, 2, 3 or 5 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def setInterval(self, *args): """ Change the interval .. py:method:: setInterval(lowerBound, upperBound) :noindex: :param float lowerBound: First boundary :param float upperBound: Second boundary .. py:method:: setInterval(interval) :noindex: :param qwt.interval.QwtInterval interval: Interval .. note:: lowerBound might be greater than upperBound for inverted scales """ if len(args) == 2: self.__lowerBound, self.__upperBound = args elif len(args) == 1: (interval,) = args self.__lowerBound = interval.minValue() self.__upperBound = interval.maxValue() else: raise TypeError( "%s().setInterval() takes 1 or 2 argument(s) (%s " "given)" % (self.__class__.__name__, len(args)) ) def interval(self): """ :return: Interval """ return QwtInterval(self.__lowerBound, self.__upperBound) def setLowerBound(self, lowerBound): """ Set the first boundary :param float lowerBound: First boundary .. seealso:: :py:meth:`lowerBound()`, :py:meth:`setUpperBound()` """ self.__lowerBound = lowerBound def lowerBound(self): """ :return: the first boundary .. seealso:: :py:meth:`upperBound()` """ return self.__lowerBound def setUpperBound(self, upperBound): """ Set the second boundary :param float lowerBound: Second boundary .. seealso:: :py:meth:`upperBound()`, :py:meth:`setLowerBound()` """ self.__upperBound = upperBound def upperBound(self): """ :return: the second boundary .. seealso:: :py:meth:`lowerBound()` """ return self.__upperBound def range(self): """ :return: upperBound() - lowerBound() """ return self.__upperBound - self.__lowerBound def __eq__(self, other): if self.__ticks is None: return False if ( self.__lowerBound != other.__lowerBound or self.__upperBound != other.__upperBound ): return False return self.__ticks == other.__ticks def __ne__(self, other): return not self.__eq__(other) def isEmpty(self): """ Check if the scale division is empty( lowerBound() == upperBound() ) """ return self.__lowerBound == self.__upperBound def isIncreasing(self): """ Check if the scale division is increasing( lowerBound() <= upperBound() ) """ return self.__lowerBound <= self.__upperBound def contains(self, value): """ Return if a value is between lowerBound() and upperBound() :param float value: Value :return: True/False """ min_ = min([self.__lowerBound, self.__upperBound]) max_ = max([self.__lowerBound, self.__upperBound]) return value >= min_ and value <= max_ def invert(self): """ Invert the scale division .. seealso:: :py:meth:`inverted()` """ (self.__lowerBound, self.__upperBound) = self.__upperBound, self.__lowerBound for index in range(self.NTickTypes): self.__ticks[index].reverse() def inverted(self): """ :return: A scale division with inverted boundaries and ticks .. seealso:: :py:meth:`invert()` """ other = copy.deepcopy(self) other.invert() return other def bounded(self, lowerBound, upperBound): """ Return a scale division with an interval [lowerBound, upperBound] where all ticks outside this interval are removed :param float lowerBound: First boundary :param float lowerBound: Second boundary :return: Scale division with all ticks inside of the given interval .. note:: lowerBound might be greater than upperBound for inverted scales """ min_ = min([self.__lowerBound, self.__upperBound]) max_ = max([self.__lowerBound, self.__upperBound]) sd = QwtScaleDiv() sd.setInterval(lowerBound, upperBound) for tickType in range(self.NTickTypes): sd.setTicks( tickType, [ tick for tick in self.__ticks[tickType] if tick >= min_ and tick <= max_ ], ) return sd def setTicks(self, tickType, ticks): """ Assign ticks :param int type: MinorTick, MediumTick or MajorTick :param list ticks: Values of the tick positions """ if tickType in range(self.NTickTypes): self.__ticks[tickType] = ticks def ticks(self, tickType): """ Return a list of ticks :param int type: MinorTick, MediumTick or MajorTick :return: Tick list """ if self.__ticks is not None and tickType in range(self.NTickTypes): return self.__ticks[tickType] else: return [] PythonQwt-0.12.7/qwt/scale_draw.py000066400000000000000000001076301465265754400171000ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtAbstractScaleDraw -------------------- .. autoclass:: QwtAbstractScaleDraw :members: QwtScaleDraw ------------ .. autoclass:: QwtScaleDraw :members: """ import math from qtpy.QtCore import ( QLineF, QObject, QPoint, QPointF, QRect, QRectF, Qt, qFuzzyCompare, ) from qtpy.QtGui import QFontMetrics, QPalette, QTransform from qwt._math import qwtRadians from qwt.scale_div import QwtScaleDiv from qwt.scale_map import QwtScaleMap from qwt.text import QwtText class QwtAbstractScaleDraw_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.spacing = 4 self.penWidth = 0 self.minExtent = 0.0 self.components = ( QwtAbstractScaleDraw.Backbone | QwtAbstractScaleDraw.Ticks | QwtAbstractScaleDraw.Labels ) self.tick_length = { QwtScaleDiv.MinorTick: 4.0, QwtScaleDiv.MediumTick: 6.0, QwtScaleDiv.MajorTick: 8.0, } self.tick_lighter_factor = { QwtScaleDiv.MinorTick: 100, QwtScaleDiv.MediumTick: 100, QwtScaleDiv.MajorTick: 100, } self.map = QwtScaleMap() self.scaleDiv = QwtScaleDiv() self.labelCache = {} class QwtAbstractScaleDraw(object): """ A abstract base class for drawing scales `QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales. After a scale division has been specified as a `QwtScaleDiv` object using `setScaleDiv()`, the scale can be drawn with the `draw()` member. Scale components: * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located * `QwtAbstractScaleDraw.Ticks`: Ticks * `QwtAbstractScaleDraw.Labels`: Labels .. py:class:: QwtAbstractScaleDraw() The range of the scale is initialized to [0, 100], The spacing (distance between ticks and labels) is set to 4, the tick lengths are set to 4,6 and 8 pixels """ # enum ScaleComponent Backbone = 0x01 Ticks = 0x02 Labels = 0x04 def __init__(self): self.__data = QwtAbstractScaleDraw_PrivateData() def extent(self, font): """ Calculate the extent The extent is the distance from the baseline to the outermost pixel of the scale draw in opposite to its orientation. It is at least minimumExtent() pixels. :param QFont font: Font used for drawing the tick labels :return: Number of pixels .. seealso:: :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()` """ return 0.0 def drawTick(self, painter, value, len_): """ Draw a tick :param QPainter painter: Painter :param float value: Value of the tick :param float len: Length of the tick .. seealso:: :py:meth:`drawBackbone()`, :py:meth:`drawLabel()` """ pass def drawBackbone(self, painter): """ Draws the baseline of the scale :param QPainter painter: Painter .. seealso:: :py:meth:`drawTick()`, :py:meth:`drawLabel()` """ pass def drawLabel(self, painter, value): """ Draws the label for a major scale tick :param QPainter painter: Painter :param float value: Value .. seealso:: :py:meth:`drawTick()`, :py:meth:`drawBackbone()` """ pass def enableComponent(self, component, enable): """ En/Disable a component of the scale :param int component: Scale component :param bool enable: On/Off .. seealso:: :py:meth:`hasComponent()` """ if enable: self.__data.components |= component else: self.__data.components &= ~component def hasComponent(self, component): """ Check if a component is enabled :param int component: Component type :return: True, when component is enabled .. seealso:: :py:meth:`enableComponent()` """ return self.__data.components & component def setScaleDiv(self, scaleDiv): """ Change the scale division :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division """ self.__data.scaleDiv = scaleDiv self.__data.map.setScaleInterval(scaleDiv.lowerBound(), scaleDiv.upperBound()) self.invalidateCache() def setTransformation(self, transformation): """ Change the transformation of the scale :param qwt.transform.QwtTransform transformation: New scale transformation """ self.__data.map.setTransformation(transformation) def scaleMap(self): """ :return: Map how to translate between scale and pixel values """ return self.__data.map def scaleDiv(self): """ :return: scale division """ return self.__data.scaleDiv def setPenWidth(self, width): """ Specify the width of the scale pen :param int width: Pen width .. seealso:: :py:meth:`penWidth()` """ if width < 0: width = 0 if width != self.__data.penWidth: self.__data.penWidth = width def penWidth(self): """ :return: Scale pen width .. seealso:: :py:meth:`setPenWidth()` """ return self.__data.penWidth def draw(self, painter, palette): """ Draw the scale :param QPainter painter: The painter :param QPalette palette: Palette, text color is used for the labels, foreground color for ticks and backbone """ painter.save() pen = painter.pen() pen.setWidth(self.__data.penWidth) pen.setCosmetic(False) painter.setPen(pen) if self.hasComponent(QwtAbstractScaleDraw.Labels): painter.save() painter.setPen(palette.color(QPalette.Text)) majorTicks = self.__data.scaleDiv.ticks(QwtScaleDiv.MajorTick) for v in majorTicks: if self.__data.scaleDiv.contains(v): self.drawLabel(painter, v) painter.restore() if self.hasComponent(QwtAbstractScaleDraw.Ticks): painter.save() pen = painter.pen() pen.setCapStyle(Qt.FlatCap) default_color = palette.color(QPalette.WindowText) for tickType in range(QwtScaleDiv.NTickTypes): tickLen = self.__data.tick_length[tickType] if tickLen <= 0.0: continue factor = self.__data.tick_lighter_factor[tickType] pen.setColor(default_color.lighter(factor)) painter.setPen(pen) ticks = self.__data.scaleDiv.ticks(tickType) for v in ticks: if self.__data.scaleDiv.contains(v): self.drawTick(painter, v, tickLen) painter.restore() if self.hasComponent(QwtAbstractScaleDraw.Backbone): painter.save() pen = painter.pen() pen.setColor(palette.color(QPalette.WindowText)) pen.setCapStyle(Qt.FlatCap) painter.setPen(pen) self.drawBackbone(painter) painter.restore() painter.restore() def setSpacing(self, spacing): """ Set the spacing between tick and labels The spacing is the distance between ticks and labels. The default spacing is 4 pixels. :param float spacing: Spacing .. seealso:: :py:meth:`spacing()` """ if spacing < 0: spacing = 0 self.__data.spacing = spacing def spacing(self): """ Get the spacing The spacing is the distance between ticks and labels. The default spacing is 4 pixels. :return: Spacing .. seealso:: :py:meth:`setSpacing()` """ return self.__data.spacing def setMinimumExtent(self, minExtent): """ Set a minimum for the extent The extent is calculated from the components of the scale draw. In situations, where the labels are changing and the layout depends on the extent (f.e scrolling a scale), setting an upper limit as minimum extent will avoid jumps of the layout. :param float minExtent: Minimum extent .. seealso:: :py:meth:`extent()`, :py:meth:`minimumExtent()` """ if minExtent < 0.0: minExtent = 0.0 self.__data.minExtent = minExtent def minimumExtent(self): """ Get the minimum extent :return: Minimum extent .. seealso:: :py:meth:`extent()`, :py:meth:`setMinimumExtent()` """ return self.__data.minExtent def setTickLength(self, tick_type, length): """ Set the length of the ticks :param int tick_type: Tick type :param float length: New length .. warning:: the length is limited to [0..1000] """ if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) self.__data.tick_length[tick_type] = min([1000.0, max([0.0, length])]) def tickLength(self, tick_type): """ :param int tick_type: Tick type :return: Length of the ticks .. seealso:: :py:meth:`setTickLength()`, :py:meth:`maxTickLength()` """ if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) return self.__data.tick_length[tick_type] def maxTickLength(self): """ :return: Length of the longest tick Useful for layout calculations .. seealso:: :py:meth:`tickLength()`, :py:meth:`setTickLength()` """ return max([0.0] + list(self.__data.tick_length.values())) def setTickLighterFactor(self, tick_type, factor): """ Set the color lighter factor of the ticks :param int tick_type: Tick type :param int factor: New factor """ if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) self.__data.tick_lighter_factor[tick_type] = min([0, factor]) def tickLighterFactor(self, tick_type): """ :param int tick_type: Tick type :return: Color lighter factor of the ticks .. seealso:: :py:meth:`setTickLighterFactor()` """ if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) return self.__data.tick_lighter_factor[tick_type] def label(self, value): """ Convert a value into its representing label The value is converted to a plain text using `QLocale().toString(value)`. This method is often overloaded by applications to have individual labels. :param float value: Value :return: Label string """ # Adding a space before the value is a way to add a margin on the left # of the scale. This helps to avoid truncating the first digit of the # tick labels while keeping a tight layout. return " %g" % value def tickLabel(self, font, value): """ Convert a value into its representing label and cache it. The conversion between value and label is called very often in the layout and painting code. Unfortunately the calculation of the label sizes might be slow (really slow for rich text in Qt4), so it's necessary to cache the labels. :param QFont font: Font :param float value: Value :return: Tuple (tick label, text size) """ lbl = self.__data.labelCache.get(value) if lbl is None: lbl = QwtText(self.label(value)) lbl.setRenderFlags(0) lbl.setLayoutAttribute(QwtText.MinimumLayout) self.__data.labelCache[value] = lbl return lbl, lbl.textSize(font) def invalidateCache(self): """ Invalidate the cache used by `tickLabel()` The cache is invalidated, when a new `QwtScaleDiv` is set. If the labels need to be changed. while the same `QwtScaleDiv` is set, `invalidateCache()` needs to be called manually. """ self.__data.labelCache.clear() class QwtScaleDraw_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.len = 0 self.alignment = QwtScaleDraw.BottomScale self.labelAlignment = 0 self.labelRotation = 0.0 self.labelAutoSize = True self.pos = QPointF() class QwtScaleDraw(QwtAbstractScaleDraw): """ A class for drawing scales QwtScaleDraw can be used to draw linear or logarithmic scales. A scale has a position, an alignment and a length, which can be specified . The labels can be rotated and aligned to the ticks using `setLabelRotation()` and `setLabelAlignment()`. After a scale division has been specified as a QwtScaleDiv object using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`, the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member. Alignment of the scale draw: * `QwtScaleDraw.BottomScale`: The scale is below * `QwtScaleDraw.TopScale`: The scale is above * `QwtScaleDraw.LeftScale`: The scale is left * `QwtScaleDraw.RightScale`: The scale is right .. py:class:: QwtScaleDraw() The range of the scale is initialized to [0, 100], The position is at (0, 0) with a length of 100. The orientation is `QwtAbstractScaleDraw.Bottom`. """ # enum Alignment BottomScale, TopScale, LeftScale, RightScale = list(range(4)) Flags = ( Qt.AlignHCenter | Qt.AlignBottom, # BottomScale Qt.AlignHCenter | Qt.AlignTop, # TopScale Qt.AlignLeft | Qt.AlignVCenter, # LeftScale Qt.AlignRight | Qt.AlignVCenter, # RightScale ) def __init__(self): QwtAbstractScaleDraw.__init__(self) self.__data = QwtScaleDraw_PrivateData() self.setLength(100) self._max_label_sizes = {} def alignment(self): """ :return: Alignment of the scale .. seealso:: :py:meth:`setAlignment()` """ return self.__data.alignment def setAlignment(self, align): """ Set the alignment of the scale :param int align: Alignment of the scale Alignment of the scale draw: * `QwtScaleDraw.BottomScale`: The scale is below * `QwtScaleDraw.TopScale`: The scale is above * `QwtScaleDraw.LeftScale`: The scale is left * `QwtScaleDraw.RightScale`: The scale is right The default alignment is `QwtScaleDraw.BottomScale` .. seealso:: :py:meth:`alignment()` """ self.__data.alignment = align def orientation(self): """ Return the orientation TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales, LeftScale, RightScale are vertical (`Qt.Vertical`) scales. :return: Orientation of the scale .. seealso:: :py:meth:`alignment()` """ if self.__data.alignment in (self.TopScale, self.BottomScale): return Qt.Horizontal elif self.__data.alignment in (self.LeftScale, self.RightScale): return Qt.Vertical def getBorderDistHint(self, font): """ Determine the minimum border distance This member function returns the minimum space needed to draw the mark labels at the scale's endpoints. :param QFont font: Font :return: tuple `(start, end)` Returned tuple: * start: Start border distance * end: End border distance """ start, end = 0, 1.0 if not self.hasComponent(QwtAbstractScaleDraw.Labels): return start, end ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if len(ticks) == 0: return start, end minTick = ticks[0] minPos = self.scaleMap().transform(minTick) maxTick = minTick maxPos = minPos for tick in ticks: tickPos = self.scaleMap().transform(tick) if tickPos < minPos: minTick = tick minPos = tickPos if tickPos > self.scaleMap().transform(maxTick): maxTick = tick maxPos = tickPos s = 0.0 e = 0.0 if self.orientation() == Qt.Vertical: s = -self.labelRect(font, minTick).top() s -= abs(minPos - round(self.scaleMap().p2())) e = self.labelRect(font, maxTick).bottom() e -= abs(maxPos - self.scaleMap().p1()) else: s = -self.labelRect(font, minTick).left() s -= abs(minPos - self.scaleMap().p1()) e = self.labelRect(font, maxTick).right() e -= abs(maxPos - self.scaleMap().p2()) return max(math.ceil(s), 0), max(math.ceil(e), 0) def minLabelDist(self, font): """ Determine the minimum distance between two labels, that is necessary that the texts don't overlap. :param QFont font: Font :return: The maximum width of a label .. seealso:: :py:meth:`getBorderDistHint()` """ if not self.hasComponent(QwtAbstractScaleDraw.Labels): return 0 ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 fm = QFontMetrics(font) vertical = self.orientation() == Qt.Vertical bRect1 = QRectF() bRect2 = self.labelRect(font, ticks[0]) if vertical: bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width()) maxDist = 0.0 for tick in ticks: bRect1 = bRect2 bRect2 = self.labelRect(font, tick) if vertical: bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width()) dist = fm.leading() if bRect1.right() > 0: dist += bRect1.right() if bRect2.left() < 0: dist += -bRect2.left() if dist > maxDist: maxDist = dist angle = qwtRadians(self.labelRotation()) if vertical: angle += math.pi / 2 sinA = math.sin(angle) if qFuzzyCompare(sinA + 1.0, 1.0): return math.ceil(maxDist) fmHeight = fm.ascent() - 2 labelDist = fmHeight / math.sin(angle) * math.cos(angle) if labelDist < 0: labelDist = -labelDist if labelDist > maxDist: labelDist = maxDist if labelDist < fmHeight: labelDist = fmHeight return math.ceil(labelDist) def extent(self, font): """ Calculate the width/height that is needed for a vertical/horizontal scale. The extent is calculated from the pen width of the backbone, the major tick length, the spacing and the maximum width/height of the labels. :param QFont font: Font used for painting the labels :return: Extent .. seealso:: :py:meth:`minLength()` """ d = 0.0 if self.hasComponent(QwtAbstractScaleDraw.Labels): if self.orientation() == Qt.Vertical: d = self.maxLabelWidth(font) else: d = self.maxLabelHeight(font) if d > 0: d += self.spacing() if self.hasComponent(QwtAbstractScaleDraw.Ticks): d += self.maxTickLength() if self.hasComponent(QwtAbstractScaleDraw.Backbone): pw = max([1, self.penWidth()]) d += pw return max([d, self.minimumExtent()]) def minLength(self, font): """ Calculate the minimum length that is needed to draw the scale :param QFont font: Font used for painting the labels :return: Minimum length that is needed to draw the scale .. seealso:: :py:meth:`extent()` """ startDist, endDist = self.getBorderDistHint(font) sd = self.scaleDiv() minorCount = len(sd.ticks(QwtScaleDiv.MinorTick)) + len( sd.ticks(QwtScaleDiv.MediumTick) ) majorCount = len(sd.ticks(QwtScaleDiv.MajorTick)) lengthForLabels = 0 if self.hasComponent(QwtAbstractScaleDraw.Labels): lengthForLabels = self.minLabelDist(font) * majorCount lengthForTicks = 0 if self.hasComponent(QwtAbstractScaleDraw.Ticks): pw = max([1, self.penWidth()]) lengthForTicks = math.ceil((majorCount + minorCount) * (pw + 1.0)) return startDist + endDist + max([lengthForLabels, lengthForTicks]) def labelPosition(self, value): """ Find the position, where to paint a label The position has a distance that depends on the length of the ticks in direction of the `alignment()`. :param float value: Value :return: Position, where to paint a label """ tval = self.scaleMap().transform(value) dist = self.spacing() if self.hasComponent(QwtAbstractScaleDraw.Backbone): dist += max([1, self.penWidth()]) if self.hasComponent(QwtAbstractScaleDraw.Ticks): dist += self.tickLength(QwtScaleDiv.MajorTick) px = 0 py = 0 if self.alignment() == self.RightScale: px = self.__data.pos.x() + dist py = tval elif self.alignment() == self.LeftScale: px = self.__data.pos.x() - dist py = tval elif self.alignment() == self.BottomScale: px = tval py = self.__data.pos.y() + dist elif self.alignment() == self.TopScale: px = tval py = self.__data.pos.y() - dist return QPointF(px, py) def drawTick(self, painter, value, len_): """ Draw a tick :param QPainter painter: Painter :param float value: Value of the tick :param float len: Length of the tick .. seealso:: :py:meth:`drawBackbone()`, :py:meth:`drawLabel()` """ if len_ <= 0: return pos = self.__data.pos tval = self.scaleMap().transform(value) pw = self.penWidth() a = 0 if self.alignment() == self.LeftScale: x1 = pos.x() + a x2 = pos.x() + a - pw - len_ painter.drawLine(QLineF(x1, tval, x2, tval)) elif self.alignment() == self.RightScale: x1 = pos.x() x2 = pos.x() + pw + len_ painter.drawLine(QLineF(x1, tval, x2, tval)) elif self.alignment() == self.BottomScale: y1 = pos.y() y2 = pos.y() + pw + len_ painter.drawLine(QLineF(tval, y1, tval, y2)) elif self.alignment() == self.TopScale: y1 = pos.y() + a y2 = pos.y() - pw - len_ + a painter.drawLine(QLineF(tval, y1, tval, y2)) def drawBackbone(self, painter): """ Draws the baseline of the scale :param QPainter painter: Painter .. seealso:: :py:meth:`drawTick()`, :py:meth:`drawLabel()` """ pos = self.__data.pos len_ = self.__data.len off = 0.5 * self.penWidth() if self.alignment() == self.LeftScale: x = pos.x() - off painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_)) elif self.alignment() == self.RightScale: x = pos.x() + off painter.drawLine(QLineF(x, pos.y(), x, pos.y() + len_)) elif self.alignment() == self.TopScale: y = pos.y() - off painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y)) elif self.alignment() == self.BottomScale: y = pos.y() + off painter.drawLine(QLineF(pos.x(), y, pos.x() + len_, y)) def move(self, *args): """ Move the position of the scale The meaning of the parameter pos depends on the alignment: * `QwtScaleDraw.LeftScale`: The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the left of the backbone. * `QwtScaleDraw.RightScale`: The origin is the topmost point of the backbone. The backbone is a vertical line. Scale marks and labels are drawn at the right of the backbone. * `QwtScaleDraw.TopScale`: The origin is the leftmost point of the backbone. The backbone is a horizontal line. Scale marks and labels are drawn above the backbone. * `QwtScaleDraw.BottomScale`: The origin is the leftmost point of the backbone. The backbone is a horizontal line Scale marks and labels are drawn below the backbone. .. py:method:: move(x, y) :noindex: :param float x: X coordinate :param float y: Y coordinate .. py:method:: move(pos) :noindex: :param QPointF pos: position .. seealso:: :py:meth:`pos()`, :py:meth:`setLength()` """ if len(args) == 2: x, y = args self.move(QPointF(x, y)) elif len(args) == 1: (pos,) = args self.__data.pos = pos self.updateMap() else: raise TypeError( "%s().move() takes 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def pos(self): """ :return: Origin of the scale .. seealso:: :py:meth:`pos()`, :py:meth:`setLength()` """ return self.__data.pos def setLength(self, length): """ Set the length of the backbone. The length doesn't include the space needed for overlapping labels. :param float length: Length of the backbone .. seealso:: :py:meth:`move()`, :py:meth:`minLabelDist()` """ if length >= 0 and length < 10: length = 10 if length < 0 and length > -10: length = -10 self.__data.len = length self.updateMap() def length(self): """ :return: the length of the backbone .. seealso:: :py:meth:`setLength()`, :py:meth:`pos()` """ return self.__data.len def drawLabel(self, painter, value): """ Draws the label for a major scale tick :param QPainter painter: Painter :param float value: Value .. seealso:: :py:meth:`drawTick()`, :py:meth:`drawBackbone()`, :py:meth:`boundingLabelRect()` """ lbl, labelSize = self.tickLabel(painter.font(), value) if lbl is None or lbl.isEmpty(): return pos = self.labelPosition(value) transform = self.labelTransformation(pos, labelSize) painter.save() painter.setWorldTransform(transform, True) lbl.draw(painter, QRect(QPoint(0, 0), labelSize.toSize())) painter.restore() def boundingLabelRect(self, font, value): """ Find the bounding rectangle for the label. The coordinates of the rectangle are absolute (calculated from `pos()`) in direction of the tick. :param QFont font: Font used for painting :param float value: Value :return: Bounding rectangle .. seealso:: :py:meth:`labelRect()` """ lbl, labelSize = self.tickLabel(font, value) if lbl.isEmpty(): return QRect() pos = self.labelPosition(value) transform = self.labelTransformation(pos, labelSize) return transform.mapRect(QRect(QPoint(0, 0), labelSize.toSize())) def labelTransformation(self, pos, size): """ Calculate the transformation that is needed to paint a label depending on its alignment and rotation. :param QPointF pos: Position where to paint the label :param QSizeF size: Size of the label :return: Transformation matrix .. seealso:: :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()` """ transform = QTransform() transform.translate(pos.x(), pos.y()) transform.rotate(self.labelRotation()) flags = self.labelAlignment() if flags == 0: flags = self.Flags[self.alignment()] if flags & Qt.AlignLeft: x = -size.width() elif flags & Qt.AlignRight: x = 0.0 else: x = -(0.5 * size.width()) if flags & Qt.AlignTop: y = -size.height() elif flags & Qt.AlignBottom: y = 0 else: y = -(0.5 * size.height()) transform.translate(x, y) return transform def labelRect(self, font, value): """ Find the bounding rectangle for the label. The coordinates of the rectangle are relative to spacing + tick length from the backbone in direction of the tick. :param QFont font: Font used for painting :param float value: Value :return: Bounding rectangle that is needed to draw a label """ lbl, labelSize = self.tickLabel(font, value) if not lbl or lbl.isEmpty(): return QRectF(0.0, 0.0, 0.0, 0.0) pos = self.labelPosition(value) transform = self.labelTransformation(pos, labelSize) br = transform.mapRect(QRectF(QPointF(0, 0), labelSize)) br.translate(-pos.x(), -pos.y()) return br def labelSize(self, font, value): """ Calculate the size that is needed to draw a label :param QFont font: Label font :param float value: Value :return: Size that is needed to draw a label """ return self.labelRect(font, value).size() def setLabelRotation(self, rotation): """ Rotate all labels. When changing the rotation, it might be necessary to adjust the label flags too. Finding a useful combination is often the result of try and error. :param float rotation: Angle in degrees. When changing the label rotation, the label flags often needs to be adjusted too. .. seealso:: :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`, :py:meth:`labelAlignment()` """ self.__data.labelRotation = rotation def labelRotation(self): """ :return: the label rotation .. seealso:: :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()` """ return self.__data.labelRotation def setLabelAlignment(self, alignment): """ Change the label flags Labels are aligned to the point tick length + spacing away from the backbone. The alignment is relative to the orientation of the label text. In case of an flags of 0 the label will be aligned depending on the orientation of the scale: * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop` * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom` * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter` * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter` Changing the alignment is often necessary for rotated labels. :param Qt.Alignment alignment Or'd `Qt.AlignmentFlags` .. seealso:: :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`, :py:meth:`labelAlignment()` .. warning:: The various alignments might be confusing. The alignment of the label is not the alignment of the scale and is not the alignment of the flags (`QwtText.flags()`) returned from `QwtAbstractScaleDraw.label()`. """ self.__data.labelAlignment = alignment def labelAlignment(self): """ :return: the label flags .. seealso:: :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()` """ return self.__data.labelAlignment def setLabelAutoSize(self, state): """ Set label automatic size option state When drawing text labels, if automatic size mode is enabled (default behavior), the axes are drawn in order to optimize layout space and depends on text label individual sizes. Otherwise, width and height won't change when axis range is changing. This option is not implemented in Qwt C++ library: this may be used either as an optimization (updating plot layout is faster when this option is enabled) or as an appearance preference (with Qwt default behavior, the size of axes may change when zooming and/or panning plot canvas which in some cases may not be desired). :param bool state: On/off .. seealso:: :py:meth:`labelAutoSize()` """ self.__data.labelAutoSize = state def labelAutoSize(self): """ :return: True if automatic size option is enabled for labels .. seealso:: :py:meth:`setLabelAutoSize()` """ return self.__data.labelAutoSize def _get_max_label_size(self, font): key = (font.toString(), self.labelRotation()) size = self._max_label_sizes.get(key) if size is None: size = self.labelSize(font, -999999) # -999999 is the biggest label size.setWidth(math.ceil(size.width())) size.setHeight(math.ceil(size.height())) return self._max_label_sizes.setdefault(key, size) else: return size def maxLabelWidth(self, font): """ :param QFont font: Font :return: the maximum width of a label """ ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 if self.labelAutoSize(): vmax = sorted( [v for v in ticks if self.scaleDiv().contains(v)], key=lambda obj: len("%g" % obj), )[-1] return math.ceil(self.labelSize(font, vmax).width()) ## Original implementation (closer to Qwt's C++ code, but slower): # return math.ceil(max([self.labelSize(font, v).width() # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).width() def maxLabelHeight(self, font): """ :param QFont font: Font :return: the maximum height of a label """ ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 if self.labelAutoSize(): vmax = sorted( [v for v in ticks if self.scaleDiv().contains(v)], key=lambda obj: len("%g" % obj), )[-1] return math.ceil(self.labelSize(font, vmax).height()) ## Original implementation (closer to Qwt's C++ code, but slower): # return math.ceil(max([self.labelSize(font, v).height() # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).height() def updateMap(self): pos = self.__data.pos len_ = self.__data.len sm = self.scaleMap() if self.orientation() == Qt.Vertical: sm.setPaintInterval(pos.y() + len_, pos.y()) else: sm.setPaintInterval(pos.x(), pos.x() + len_) PythonQwt-0.12.7/qwt/scale_engine.py000066400000000000000000000705641465265754400174150ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtScaleEngine -------------- .. autoclass:: QwtScaleEngine :members: QwtLinearScaleEngine -------------------- .. autoclass:: QwtLinearScaleEngine :members: QwtLogScaleEngine ----------------- .. autoclass:: QwtLogScaleEngine :members: """ import math import sys import numpy as np from qtpy.QtCore import qFuzzyCompare from qwt._math import qwtFuzzyCompare from qwt.interval import QwtInterval from qwt.scale_div import QwtScaleDiv from qwt.transform import QwtLogTransform, QwtTransform DBL_MAX = sys.float_info.max LOG_MIN = 1.0e-100 LOG_MAX = 1.0e100 def qwtLogInterval(base, interval): return QwtInterval( math.log(interval.minValue(), base), math.log(interval.maxValue(), base) ) def qwtPowInterval(base, interval): return QwtInterval( math.pow(base, interval.minValue()), math.pow(base, interval.maxValue()) ) def qwtStepSize(intervalSize, maxSteps, base): """this version often doesn't find the best ticks: f.e for 15: 5, 10""" minStep = divideInterval(intervalSize, maxSteps, base) if minStep != 0.0: # # ticks per interval numTicks = math.ceil(abs(intervalSize / minStep)) - 1 # Do the minor steps fit into the interval? if ( qwtFuzzyCompare( (numTicks + 1) * abs(minStep), abs(intervalSize), intervalSize ) > 0 ): # The minor steps doesn't fit into the interval return 0.5 * intervalSize return minStep EPS = 1.0e-6 def ceilEps(value, intervalSize): """ Ceil a value, relative to an interval :param float value: Value to be ceiled :param float intervalSize: Interval size :return: Rounded value .. seealso:: :py:func:`qwt.scale_engine.floorEps()` """ eps = EPS * intervalSize value = (value - eps) / intervalSize return math.ceil(value) * intervalSize def floorEps(value, intervalSize): """ Floor a value, relative to an interval :param float value: Value to be floored :param float intervalSize: Interval size :return: Rounded value .. seealso:: :py:func:`qwt.scale_engine.ceilEps()` """ eps = EPS * intervalSize value = (value + eps) / intervalSize return math.floor(value) * intervalSize def divideEps(intervalSize, numSteps): """ Divide an interval into steps `stepSize = (intervalSize - intervalSize * 10**-6) / numSteps` :param float intervalSize: Interval size :param float numSteps: Number of steps :return: Step size """ if numSteps == 0.0 or intervalSize == 0.0: return 0.0 return (intervalSize - (EPS * intervalSize)) / numSteps def divideInterval(intervalSize, numSteps, base): """ Calculate a step size for a given interval :param float intervalSize: Interval size :param float numSteps: Number of steps :param int base: Base for the division (usually 10) :return: Calculated step size """ if numSteps <= 0: return 0.0 v = divideEps(intervalSize, numSteps) if v == 0.0: return 0.0 lx = math.log(abs(v), base) p = math.floor(lx) fraction = math.pow(base, lx - p) n = base while n > 1 and fraction <= n // 2: n //= 2 stepSize = n * math.pow(base, p) if v < 0: stepSize = -stepSize return stepSize class QwtScaleEngine_PrivateData(object): def __init__(self): self.attributes = QwtScaleEngine.NoAttribute self.lowerMargin = 0.0 self.upperMargin = 0.0 self.referenceValue = 0.0 self.base = 10 self.transform = None # QwtTransform class QwtScaleEngine(object): """ Base class for scale engines. A scale engine tries to find "reasonable" ranges and step sizes for scales. The layout of the scale can be varied with `setAttribute()`. `PythonQwt` offers implementations for logarithmic and linear scales. Layout attributes: * `QwtScaleEngine.NoAttribute`: No attributes * `QwtScaleEngine.IncludeReference`: Build a scale which includes the `reference()` value * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the `reference()` value * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to be equal the outmost included values plus the specified margins (see `setMargins()`). If this attribute is *not* set, the endpoints of the scale will be integer multiples of the step size. * `QwtScaleEngine.Inverted`: Turn the scale upside down """ # enum Attribute NoAttribute = 0x00 IncludeReference = 0x01 Symmetric = 0x02 Floating = 0x04 Inverted = 0x08 def __init__(self, base=10): self.__data = QwtScaleEngine_PrivateData() self.setBase(base) def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval :param int maxNumSteps: Max. number of steps :param float x1: First limit of the interval (In/Out) :param float x2: Second limit of the interval (In/Out) :param float stepSize: Step size :return: tuple (x1, x2, stepSize) """ pass def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division :param float x1: First interval limit :param float x2: Second interval limit :param int maxMajorSteps: Maximum for the number of major steps :param int maxMinorSteps: Maximum number of minor steps :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one :return: Calculated scale division """ pass def setTransformation(self, transform): """ Assign a transformation :param qwt.transform.QwtTransform transform: Transformation The transformation object is used as factory for clones that are returned by `transformation()` The scale engine takes ownership of the transformation. .. seealso:: :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()` """ assert transform is None or isinstance(transform, QwtTransform) if transform != self.__data.transform: self.__data.transform = transform def transformation(self): """ Create and return a clone of the transformation of the engine. When the engine has no special transformation None is returned, indicating no transformation. :return: A clone of the transfomation .. seealso:: :py:meth:`setTransformation()` """ if self.__data.transform: return self.__data.transform.copy() def lowerMargin(self): """ :return: the margin at the lower end of the scale The default margin is 0. .. seealso:: :py:meth:`setMargins()` """ return self.__data.lowerMargin def upperMargin(self): """ :return: the margin at the upper end of the scale The default margin is 0. .. seealso:: :py:meth:`setMargins()` """ return self.__data.upperMargin def setMargins(self, lower, upper): """ Specify margins at the scale's endpoints :param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value :param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value :return: A clone of the transfomation Margins can be used to leave a minimum amount of space between the enclosed intervals and the boundaries of the scale. .. warning:: `QwtLogScaleEngine` measures the margins in decades. .. seealso:: :py:meth:`upperMargin()`, :py:meth:`lowerMargin()` """ self.__data.lowerMargin = max([lower, 0.0]) self.__data.upperMargin = max([upper, 0.0]) def divideInterval(self, intervalSize, numSteps): """ Calculate a step size for a given interval :param float intervalSize: Interval size :param float numSteps: Number of steps :return: Step size """ return divideInterval(intervalSize, numSteps, self.__data.base) def contains(self, interval, value): """ Check if an interval "contains" a value :param float intervalSize: Interval size :param float value: Value :return: True, when the value is inside the interval """ if not interval.isValid(): return False eps = abs(1.0e-6 * interval.width()) if interval.minValue() - value > eps or value - interval.maxValue() > eps: return False else: return True def strip(self, ticks, interval): """ Remove ticks from a list, that are not inside an interval :param list ticks: Tick list :param qwt.interval.QwtInterval interval: Interval :return: Stripped tick list """ if not interval.isValid() or not ticks: return [] if self.contains(interval, ticks[0]) and self.contains(interval, ticks[-1]): return ticks return [tick for tick in ticks if self.contains(interval, tick)] def buildInterval(self, value): """ Build an interval around a value In case of v == 0.0 the interval is [-0.5, 0.5], otherwide it is [0.5 * v, 1.5 * v] :param float value: Initial value :return: Calculated interval """ if value == 0.0: delta = 0.5 else: delta = abs(0.5 * value) if DBL_MAX - delta < value: return QwtInterval(DBL_MAX - delta, DBL_MAX) if -DBL_MAX + delta > value: return QwtInterval(-DBL_MAX, -DBL_MAX + delta) return QwtInterval(value - delta, value + delta) def setAttribute(self, attribute, on=True): """ Change a scale attribute :param int attribute: Attribute to change :param bool on: On/Off :return: Calculated interval .. seealso:: :py:meth:`testAttribute()` """ if on: self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute def testAttribute(self, attribute): """ :param int attribute: Attribute to be tested :return: True, if attribute is enabled .. seealso:: :py:meth:`setAttribute()` """ return self.__data.attributes & attribute def setAttributes(self, attributes): """ Change the scale attribute :param attributes: Set scale attributes .. seealso:: :py:meth:`attributes()` """ self.__data.attributes = attributes def attributes(self): """ :return: Scale attributes .. seealso:: :py:meth:`setAttributes()`, :py:meth:`testAttribute()` """ return self.__data.attributes def setReference(self, r): """ Specify a reference point :param float r: new reference value The reference point is needed if options `IncludeReference` or `Symmetric` are active. Its default value is 0.0. """ self.__data.referenceValue = r def reference(self): """ :return: the reference value .. seealso:: :py:meth:`setReference()`, :py:meth:`setAttribute()` """ return self.__data.referenceValue def setBase(self, base): """ Set the base of the scale engine While a base of 10 is what 99.9% of all applications need certain scales might need a different base: f.e 2 The default setting is 10 :param int base: Base of the engine .. seealso:: :py:meth:`base()` """ self.__data.base = max([base, 2]) def base(self): """ :return: Base of the scale engine .. seealso:: :py:meth:`setBase()` """ return self.__data.base class QwtLinearScaleEngine(QwtScaleEngine): r""" A scale engine for linear scales The step size will fit into the pattern \f$\left\{ 1,2,5\right\} \cdot 10^{n}\f$, where n is an integer. """ def __init__(self, base=10): super(QwtLinearScaleEngine, self).__init__(base) def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval :param int maxNumSteps: Max. number of steps :param float x1: First limit of the interval (In/Out) :param float x2: Second limit of the interval (In/Out) :param float stepSize: Step size :return: tuple (x1, x2, stepSize) .. seealso:: :py:meth:`setAttribute()` """ interval = QwtInterval(x1, x2) interval = interval.normalized() interval.setMinValue(interval.minValue() - self.lowerMargin()) interval.setMaxValue(interval.maxValue() + self.upperMargin()) if self.testAttribute(QwtScaleEngine.Symmetric): interval = interval.symmetrize(self.reference()) if self.testAttribute(QwtScaleEngine.IncludeReference): interval = interval.extend(self.reference()) if interval.width() == 0.0: interval = self.buildInterval(interval.minValue()) stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]), self.base()) if not self.testAttribute(QwtScaleEngine.Floating): interval = self.align(interval, stepSize) x1 = interval.minValue() x2 = interval.maxValue() if self.testAttribute(QwtScaleEngine.Inverted): x1, x2 = x2, x1 stepSize = -stepSize return x1, x2, stepSize def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division for an interval :param float x1: First interval limit :param float x2: Second interval limit :param int maxMajorSteps: Maximum for the number of major steps :param int maxMinorSteps: Maximum number of minor steps :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one :return: Calculated scale division """ interval = QwtInterval(x1, x2).normalized() if interval.width() <= 0: return QwtScaleDiv() stepSize = abs(stepSize) if stepSize == 0.0: if maxMajorSteps < 1: maxMajorSteps = 1 stepSize = divideInterval(interval.width(), maxMajorSteps, self.base()) scaleDiv = QwtScaleDiv() if stepSize != 0.0: ticks = self.buildTicks(interval, stepSize, maxMinorSteps) scaleDiv = QwtScaleDiv(interval, ticks) if x1 > x2: scaleDiv.invert() return scaleDiv def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize) if maxMinorSteps > 0: self.buildMinorTicks(ticks, maxMinorSteps, stepSize) for i in range(QwtScaleDiv.NTickTypes): ticks[i] = self.strip(ticks[i], interval) for j in range(len(ticks[i])): if qwtFuzzyCompare(ticks[i][j], 0.0, stepSize) == 0: ticks[i][j] = 0.0 return ticks def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ numTicks = min([round(interval.width() / stepSize) + 1, 10000]) if np.isnan(numTicks): numTicks = 0 ticks = [interval.minValue()] for i in range(1, int(numTicks - 1)): ticks += [interval.minValue() + i * stepSize] ticks += [interval.maxValue()] return ticks def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): """ Calculate minor ticks for an interval :param list ticks: Major ticks (returned) :param int maxMinorSteps: Maximum number of minor steps :param float stepSize: Step size """ minStep = qwtStepSize(stepSize, maxMinorSteps, self.base()) if minStep == 0.0: return numTicks = int(math.ceil(abs(stepSize / minStep)) - 1) medIndex = -1 if numTicks % 2: medIndex = numTicks / 2 for val in ticks[QwtScaleDiv.MajorTick]: for k in range(numTicks): val += minStep alignedValue = val if qwtFuzzyCompare(val, 0.0, stepSize) == 0: alignedValue = 0.0 if k == medIndex: ticks[QwtScaleDiv.MediumTick] += [alignedValue] else: ticks[QwtScaleDiv.MinorTick] += [alignedValue] def align(self, interval, stepSize): """ Align an interval to a step size The limits of an interval are aligned that both are integer multiples of the step size. :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ x1 = interval.minValue() x2 = interval.maxValue() eps = 0.000000000001 if -DBL_MAX + stepSize <= x1: x = floorEps(x1, stepSize) if abs(x) <= eps or not qFuzzyCompare(x1, x): x1 = x if DBL_MAX - stepSize >= x2: x = ceilEps(x2, stepSize) if abs(x) <= eps or not qFuzzyCompare(x2, x): x2 = x return QwtInterval(x1, x2) class QwtLogScaleEngine(QwtScaleEngine): """ A scale engine for logarithmic scales The step size is measured in *decades* and the major step size will be adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number including zero. .. warning:: The step size as well as the margins are measured in *decades*. """ def __init__(self, base=10): super(QwtLogScaleEngine, self).__init__(base) self.setTransformation(QwtLogTransform()) def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval :param int maxNumSteps: Max. number of steps :param float x1: First limit of the interval (In/Out) :param float x2: Second limit of the interval (In/Out) :param float stepSize: Step size :return: tuple (x1, x2, stepSize) .. seealso:: :py:meth:`setAttribute()` """ if x1 > x2: x1, x2 = x2, x1 logBase = self.base() interval = QwtInterval( x1 / math.pow(logBase, self.lowerMargin()), x2 * math.pow(logBase, self.upperMargin()), ) interval = interval.limited(LOG_MIN, LOG_MAX) if interval.maxValue() / interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() linearScaler.setAttributes(self.attributes()) linearScaler.setReference(self.reference()) linearScaler.setMargins(self.lowerMargin(), self.upperMargin()) x1, x2, stepSize = linearScaler.autoScale(maxNumSteps, x1, x2, stepSize) linearInterval = QwtInterval(x1, x2).normalized() linearInterval = linearInterval.limited(LOG_MIN, LOG_MAX) if linearInterval.maxValue() / linearInterval.minValue() < logBase: if stepSize < 0.0: stepSize = -math.log(abs(stepSize), logBase) else: stepSize = math.log(stepSize, logBase) return x1, x2, stepSize logRef = 1.0 if self.reference() > LOG_MIN / 2: logRef = min([self.reference(), LOG_MAX / 2]) if self.testAttribute(QwtScaleEngine.Symmetric): delta = max([interval.maxValue() / logRef, logRef / interval.minValue()]) interval.setInterval(logRef / delta, logRef * delta) if self.testAttribute(QwtScaleEngine.IncludeReference): interval = interval.extend(logRef) interval = interval.limited(LOG_MIN, LOG_MAX) if interval.width() == 0.0: interval = self.buildInterval(interval.minValue()) stepSize = self.divideInterval( qwtLogInterval(logBase, interval).width(), max([maxNumSteps, 1]) ) if stepSize < 1.0: stepSize = 1.0 if not self.testAttribute(QwtScaleEngine.Floating): interval = self.align(interval, stepSize) x1 = interval.minValue() x2 = interval.maxValue() if self.testAttribute(QwtScaleEngine.Inverted): x1, x2 = x2, x1 stepSize = -stepSize return x1, x2, stepSize def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division for an interval :param float x1: First interval limit :param float x2: Second interval limit :param int maxMajorSteps: Maximum for the number of major steps :param int maxMinorSteps: Maximum number of minor steps :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one :return: Calculated scale division """ interval = QwtInterval(x1, x2).normalized() interval = interval.limited(LOG_MIN, LOG_MAX) if interval.width() <= 0: return QwtScaleDiv() logBase = self.base() if interval.maxValue() / interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() linearScaler.setAttributes(self.attributes()) linearScaler.setReference(self.reference()) linearScaler.setMargins(self.lowerMargin(), self.upperMargin()) return linearScaler.divideScale( x1, x2, maxMajorSteps, maxMinorSteps, stepSize ) stepSize = abs(stepSize) if stepSize == 0.0: if maxMajorSteps < 1: maxMajorSteps = 1 stepSize = self.divideInterval( qwtLogInterval(logBase, interval).width(), maxMajorSteps ) if stepSize < 1.0: stepSize = 1.0 scaleDiv = QwtScaleDiv() if stepSize != 0.0: ticks = self.buildTicks(interval, stepSize, maxMinorSteps) scaleDiv = QwtScaleDiv(interval, ticks) if x1 > x2: scaleDiv.invert() return scaleDiv def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize) if maxMinorSteps > 0: self.buildMinorTicks(ticks, maxMinorSteps, stepSize) for i in range(QwtScaleDiv.NTickTypes): ticks[i] = self.strip(ticks[i], interval) return ticks def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ width = qwtLogInterval(self.base(), interval).width() numTicks = min([int(round(width / stepSize)) + 1, 10000]) lxmin = math.log(interval.minValue()) lxmax = math.log(interval.maxValue()) lstep = (lxmax - lxmin) / float(numTicks - 1) ticks = [interval.minValue()] for i in range(1, numTicks - 1): ticks += [math.exp(lxmin + float(i) * lstep)] ticks += [interval.maxValue()] return ticks def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): """ Calculate minor ticks for an interval :param list ticks: Major ticks (returned) :param int maxMinorSteps: Maximum number of minor steps :param float stepSize: Step size """ logBase = self.base() if stepSize < 1.1: minStep = self.divideInterval(stepSize, maxMinorSteps + 1) if minStep == 0.0: return numSteps = int(round(stepSize / minStep)) mediumTickIndex = -1 if numSteps > 2 and numSteps % 2 == 0: mediumTickIndex = numSteps / 2 for v in ticks[QwtScaleDiv.MajorTick]: s = logBase / numSteps if s >= 1.0: if not qFuzzyCompare(s, 1.0): ticks[QwtScaleDiv.MinorTick] += [v * s] for j in range(2, numSteps): ticks[QwtScaleDiv.MinorTick] += [v * j * s] else: for j in range(1, numSteps): tick = v + j * v * (logBase - 1) / numSteps if j == mediumTickIndex: ticks[QwtScaleDiv.MediumTick] += [tick] else: ticks[QwtScaleDiv.MinorTick] += [tick] else: minStep = self.divideInterval(stepSize, maxMinorSteps) if minStep == 0.0: return if minStep < 1.0: minStep = 1.0 numTicks = int(round(stepSize / minStep)) - 1 if qwtFuzzyCompare((numTicks + 1) * minStep, stepSize, stepSize) > 0: numTicks = 0 if numTicks < 1: return mediumTickIndex = -1 if numTicks > 2 and numTicks % 2: mediumTickIndex = numTicks / 2 minFactor = max([math.pow(logBase, minStep), float(logBase)]) for tick in ticks[QwtScaleDiv.MajorTick]: for j in range(numTicks): tick *= minFactor if j == mediumTickIndex: ticks[QwtScaleDiv.MediumTick] += [tick] else: ticks[QwtScaleDiv.MinorTick] += [tick] def align(self, interval, stepSize): """ Align an interval to a step size The limits of an interval are aligned that both are integer multiples of the step size. :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ intv = qwtLogInterval(self.base(), interval) x1 = floorEps(intv.minValue(), stepSize) if qwtFuzzyCompare(interval.minValue(), x1, stepSize) == 0: x1 = interval.minValue() x2 = ceilEps(intv.maxValue(), stepSize) if qwtFuzzyCompare(interval.maxValue(), x2, stepSize) == 0: x2 = interval.maxValue() return qwtPowInterval(self.base(), QwtInterval(x1, x2)) PythonQwt-0.12.7/qwt/scale_map.py000066400000000000000000000217361465265754400167220ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtScaleMap ----------- .. autoclass:: QwtScaleMap :members: """ from qtpy.QtCore import QPointF, QRectF from qwt._math import qwtFuzzyCompare class QwtScaleMap(object): """ A scale map `QwtScaleMap` offers transformations from the coordinate system of a scale into the linear coordinate system of a paint device and vice versa. The scale and paint device intervals are both set to [0,1]. .. py:class:: QwtScaleMap([other=None]) Constructor (eventually, copy constructor) :param qwt.scale_map.QwtScaleMap other: Other scale map .. py:class:: QwtScaleMap(p1, p2, s1, s2) :noindex: Constructor (was provided by `PyQwt` but not by `Qwt`) :param int p1: First border of the paint interval :param int p2: Second border of the paint interval :param float s1: First border of the scale interval :param float s2: Second border of the scale interval """ def __init__(self, *args): self.__transform = None # QwtTransform self.__s1 = 0.0 self.__s2 = 1.0 self.__p1 = 0.0 self.__p2 = 1.0 other = None if len(args) == 1: (other,) = args elif len(args) == 4: p1, p2, s1, s2 = args self.__s1 = s1 self.__s2 = s2 self.__p1 = p1 self.__p2 = p2 elif len(args) != 0: raise TypeError( "%s() takes 0, 1, or 4 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) if other is None: self.__cnv = 1.0 self.__ts1 = 0.0 else: self.__s1 = other.__s1 self.__s2 = other.__s2 self.__p1 = other.__p1 self.__p2 = other.__p2 self.__cnv = other.__cnv self.__ts1 = other.__ts1 if other.__transform: self.__transform = other.__transform.copy() def __eq__(self, other): return ( self.__s1 == other.__s1 and self.__s2 == other.__s2 and self.__p1 == other.__p1 and self.__p2 == other.__p2 and self.__cnv == other.__cnv and self.__ts1 == other.__ts1 ) def s1(self): """ :return: First border of the scale interval """ return self.__s1 def s2(self): """ :return: Second border of the scale interval """ return self.__s2 def p1(self): """ :return: First border of the paint interval """ return self.__p1 def p2(self): """ :return: Second border of the paint interval """ return self.__p2 def pDist(self): """ :return: `abs(p2() - p1())` """ return abs(self.__p2 - self.__p1) def sDist(self): """ :return: `abs(s2() - s1())` """ return abs(self.__s2 - self.__s1) def transform_scalar(self, s): """ Transform a point related to the scale interval into an point related to the interval of the paint device :param float s: Value relative to the coordinates of the scale :return: Transformed value .. seealso:: :py:meth:`invTransform_scalar()` """ if self.__transform: s = self.__transform.transform(s) return self.__p1 + (s - self.__ts1) * self.__cnv def invTransform_scalar(self, p): """ Transform an paint device value into a value in the interval of the scale. :param float p: Value relative to the coordinates of the paint device :return: Transformed value .. seealso:: :py:meth:`transform_scalar()` """ if self.__cnv == 0: s = self.__ts1 # avoid divide by zero else: s = self.__ts1 + (p - self.__p1) / self.__cnv if self.__transform: s = self.__transform.invTransform(s) return s def isInverting(self): """ :return: True, when ( p1() < p2() ) != ( s1() < s2() ) """ return (self.__p1 < self.__p2) != (self.__s1 < self.__s2) def setTransformation(self, transform): """ Initialize the map with a transformation :param qwt.transform.QwtTransform transform: Transformation """ if self.__transform != transform: self.__transform = transform self.setScaleInterval(self.__s1, self.__s2) def transformation(self): """ :return: the transformation """ return self.__transform def setScaleInterval(self, s1, s2): """ Specify the borders of the scale interval :param float s1: first border :param float s2: second border .. warning:: Scales might be aligned to transformation depending boundaries """ self.__s1 = s1 self.__s2 = s2 if self.__transform: self.__s1 = self.__transform.bounded(self.__s1) self.__s2 = self.__transform.bounded(self.__s2) self.updateFactor() def setPaintInterval(self, p1, p2): """ Specify the borders of the paint device interval :param float p1: first border :param float p2: second border """ self.__p1 = p1 self.__p2 = p2 self.updateFactor() def updateFactor(self): self.__ts1 = self.__s1 ts2 = self.__s2 if self.__transform: self.__ts1 = self.__transform.transform(self.__ts1) ts2 = self.__transform.transform(ts2) self.__cnv = 1.0 if self.__ts1 != ts2: self.__cnv = (self.__p2 - self.__p1) / (ts2 - self.__ts1) def transform(self, *args): """ Transform a rectangle from scale to paint coordinates. Transfom a scalar: :param float scalar: Scalar Transfom a rectangle: :param qwt.scale_map.QwtScaleMap xMap: X map :param qwt.scale_map.QwtScaleMap yMap: Y map :param QRectF rect: Rectangle in paint coordinates Transfom a point: :param qwt.scale_map.QwtScaleMap xMap: X map :param qwt.scale_map.QwtScaleMap yMap: Y map :param QPointF pos: Position in scale coordinates .. seealso:: :py:meth:`invTransform()` """ if len(args) == 1: # Scalar transform return self.transform_scalar(args[0]) elif len(args) == 3 and isinstance(args[2], QPointF): xMap, yMap, pos = args return QPointF(xMap.transform(pos.x()), yMap.transform(pos.y())) elif len(args) == 3 and isinstance(args[2], QRectF): xMap, yMap, rect = args x1 = xMap.transform(rect.left()) x2 = xMap.transform(rect.right()) y1 = yMap.transform(rect.top()) y2 = yMap.transform(rect.bottom()) if x2 < x1: x1, x2 = x2, x1 if y2 < y1: y1, y2 = y2, y1 if qwtFuzzyCompare(x1, 0.0, x2 - x1) == 0: x1 = 0.0 if qwtFuzzyCompare(x2, 0.0, x2 - x1) == 0: x2 = 0.0 if qwtFuzzyCompare(y1, 0.0, y2 - y1) == 0: y1 = 0.0 if qwtFuzzyCompare(y2, 0.0, y2 - y1) == 0: y2 = 0.0 return QRectF(x1, y1, x2 - x1 + 1, y2 - y1 + 1) else: raise TypeError( "%s().transform() takes 1 or 3 argument(s) (%s " "given)" % (self.__class__.__name__, len(args)) ) def invTransform(self, *args): """Transform from paint to scale coordinates Scalar: scalemap.invTransform(scalar) Point (QPointF): scalemap.invTransform(xMap, yMap, pos) Rectangle (QRectF): scalemap.invTransform(xMap, yMap, rect) """ if len(args) == 1: # Scalar transform return self.invTransform_scalar(args[0]) elif isinstance(args[2], QPointF): xMap, yMap, pos = args return QPointF(xMap.invTransform(pos.x()), yMap.invTransform(pos.y())) elif isinstance(args[2], QRectF): xMap, yMap, rect = args x1 = xMap.invTransform(rect.left()) x2 = xMap.invTransform(rect.right() - 1) y1 = yMap.invTransform(rect.top()) y2 = yMap.invTransform(rect.bottom() - 1) r = QRectF(x1, y1, x2 - x1, y2 - y1) return r.normalized() PythonQwt-0.12.7/qwt/scale_widget.py000066400000000000000000000647651465265754400174410ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtScaleWidget -------------- .. autoclass:: QwtScaleWidget :members: """ import math from qtpy.QtCore import QObject, QRectF, QSize, Qt, Signal from qtpy.QtGui import QPainter, QPalette from qtpy.QtWidgets import QSizePolicy, QStyle, QStyleOption, QWidget from qwt.color_map import QwtColorMap, QwtLinearColorMap from qwt.interval import QwtInterval from qwt.painter import QwtPainter from qwt.scale_draw import QwtScaleDraw from qwt.scale_engine import QwtLinearScaleEngine from qwt.text import QwtText class ColorBar(object): def __init__(self): self.isEnabled = None self.width = None self.interval = QwtInterval() self.colorMap = QwtColorMap() class QwtScaleWidget_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.scaleDraw = None self.borderDist = [None] * 2 self.minBorderDist = [None] * 2 self.scaleLength = None self.margin = None self.titleOffset = None self.spacing = None self.title = QwtText() self.layoutFlags = None self.colorBar = ColorBar() class QwtScaleWidget(QWidget): """ A Widget which contains a scale This Widget can be used to decorate composite widgets with a scale. Layout flags: * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top. .. py:class:: QwtScaleWidget([parent=None]) Alignment default is `QwtScaleDraw.LeftScale`. :param parent: Parent widget :type parent: QWidget or None .. py:class:: QwtScaleWidget(align, parent) :noindex: :param int align: Alignment :param QWidget parent: Parent widget """ scaleDivChanged = Signal() # enum LayoutFlag TitleInverted = 1 def __init__(self, *args): self.__data = None align = QwtScaleDraw.LeftScale if len(args) == 0: parent = None elif len(args) == 1: (parent,) = args elif len(args) == 2: align, parent = args else: raise TypeError( "%s() takes 0, 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) super(QwtScaleWidget, self).__init__(parent) self.initScale(align) def initScale(self, align): """ Initialize the scale :param int align: Alignment """ self.__data = QwtScaleWidget_PrivateData() self.__data.layoutFlags = 0 if align == QwtScaleDraw.RightScale: self.__data.layoutFlags |= self.TitleInverted self.__data.borderDist = [0, 0] self.__data.minBorderDist = [0, 0] self.__data.margin = 4 self.__data.titleOffset = 0 self.__data.spacing = 2 self.__data.scaleDraw = QwtScaleDraw() self.__data.scaleDraw.setAlignment(align) self.__data.scaleDraw.setLength(10) self.__data.scaleDraw.setScaleDiv( QwtLinearScaleEngine().divideScale(0.0, 100.0, 10, 5) ) self.__data.colorBar.colorMap = QwtLinearColorMap() self.__data.colorBar.isEnabled = False self.__data.colorBar.width = 10 flags = Qt.AlignmentFlag(Qt.AlignHCenter | Qt.TextExpandTabs | Qt.TextWordWrap) self.__data.title.setRenderFlags(flags) self.__data.title.setFont(self.font()) policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) if self.__data.scaleDraw.orientation() == Qt.Vertical: policy.transpose() self.setSizePolicy(policy) self.setAttribute(Qt.WA_WState_OwnSizePolicy, False) def setLayoutFlag(self, flag, on=True): """ Toggle an layout flag :param int flag: Layout flag :param bool on: True/False .. seealso:: :py:meth:`testLayoutFlag()` """ if (self.__data.layoutFlags & flag != 0) != on: if on: self.__data.layoutFlags |= flag else: self.__data.layoutFlags &= ~flag self.update() def testLayoutFlag(self, flag): """ Test a layout flag :param int flag: Layout flag :return: True/False .. seealso:: :py:meth:`setLayoutFlag()` """ return self.__data.layoutFlags & flag def setTitle(self, title): """ Give title new text contents :param title: New title :type title: qwt.text.QwtText or str .. seealso:: :py:meth:`title()` """ if isinstance(title, QwtText): flags = title.renderFlags() & (~int(Qt.AlignTop | Qt.AlignBottom)) title.setRenderFlags(flags) if title != self.__data.title: self.__data.title = title self.layoutScale() else: if self.__data.title.text() != title: self.__data.title.setText(title) self.layoutScale() def setAlignment(self, alignment): """ Change the alignment :param int alignment: New alignment Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw` .. seealso:: :py:meth:`alignment()` """ if self.__data.scaleDraw: self.__data.scaleDraw.setAlignment(alignment) if not self.testAttribute(Qt.WA_WState_OwnSizePolicy): policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) if self.__data.scaleDraw.orientation() == Qt.Vertical: policy.transpose() self.setSizePolicy(policy) self.setAttribute(Qt.WA_WState_OwnSizePolicy, False) self.layoutScale() def alignment(self): """ :return: position .. seealso:: :py:meth:`setAlignment()` """ if not self.scaleDraw(): return QwtScaleDraw.LeftScale return self.scaleDraw().alignment() def setBorderDist(self, dist1, dist2): """ Specify distances of the scale's endpoints from the widget's borders. The actual borders will never be less than minimum border distance. :param int dist1: Left or top Distance :param int dist2: Right or bottom distance .. seealso:: :py:meth:`borderDist()` """ if dist1 != self.__data.borderDist[0] or dist2 != self.__data.borderDist[1]: self.__data.borderDist = [dist1, dist2] self.layoutScale() def setMargin(self, margin): """ Specify the margin to the colorBar/base line. :param int margin: Margin .. seealso:: :py:meth:`margin()` """ margin = max([0, margin]) if margin != self.__data.margin: self.__data.margin = margin self.layoutScale() def setSpacing(self, spacing): """ Specify the distance between color bar, scale and title :param int spacing: Spacing .. seealso:: :py:meth:`spacing()` """ spacing = max([0, spacing]) if spacing != self.__data.spacing: self.__data.spacing = spacing self.layoutScale() def setLabelAlignment(self, alignment): """ Change the alignment for the labels. :param int spacing: Spacing .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`, :py:meth:`setLabelRotation()` """ self.__data.scaleDraw.setLabelAlignment(alignment) self.layoutScale() def setLabelRotation(self, rotation): """ Change the rotation for the labels. :param float rotation: Rotation .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`, :py:meth:`setLabelFlags()` """ self.__data.scaleDraw.setLabelRotation(rotation) self.layoutScale() def setLabelAutoSize(self, state): """ Set the automatic size option for labels (default: on). :param bool state: On/off .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ self.__data.scaleDraw.setLabelAutoSize(state) self.layoutScale() def setScaleDraw(self, scaleDraw): """ Set a scale draw scaleDraw has to be created with new and will be deleted in class destructor or the next call of `setScaleDraw()`. scaleDraw will be initialized with the attributes of the previous scaleDraw object. :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object .. seealso:: :py:meth:`scaleDraw()` """ if scaleDraw is None or scaleDraw == self.__data.scaleDraw: return sd = self.__data.scaleDraw if sd is not None: scaleDraw.setAlignment(sd.alignment()) scaleDraw.setScaleDiv(sd.scaleDiv()) transform = None if sd.scaleMap().transformation(): transform = sd.scaleMap().transformation().copy() scaleDraw.setTransformation(transform) self.__data.scaleDraw = scaleDraw self.layoutScale() def scaleDraw(self): """ :return: scaleDraw of this scale .. seealso:: :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()` """ return self.__data.scaleDraw def title(self): """ :return: title .. seealso:: :py:meth:`setTitle` """ return self.__data.title def startBorderDist(self): """ :return: start border distance .. seealso:: :py:meth:`setBorderDist` """ return self.__data.borderDist[0] def endBorderDist(self): """ :return: end border distance .. seealso:: :py:meth:`setBorderDist` """ return self.__data.borderDist[1] def margin(self): """ :return: margin .. seealso:: :py:meth:`setMargin` """ return self.__data.margin def spacing(self): """ :return: distance between scale and title .. seealso:: :py:meth:`setSpacing` """ return self.__data.spacing def paintEvent(self, event): painter = QPainter(self) painter.setClipRegion(event.region()) opt = QStyleOption() opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self) self.draw(painter) def draw(self, painter): """ Draw the scale :param QPainter painter: Painter """ self.__data.scaleDraw.draw(painter, self.palette()) if ( self.__data.colorBar.isEnabled and self.__data.colorBar.width > 0 and self.__data.colorBar.interval.isValid() ): self.drawColorBar(painter, self.colorBarRect(self.contentsRect())) r = QRectF(self.contentsRect()) if self.__data.scaleDraw.orientation() == Qt.Horizontal: r.setLeft(r.left() + self.__data.borderDist[0]) r.setWidth(r.width() - self.__data.borderDist[1]) else: r.setTop(r.top() + self.__data.borderDist[0]) r.setHeight(r.height() - self.__data.borderDist[1]) if not self.__data.title.isEmpty(): self.drawTitle(painter, self.__data.scaleDraw.alignment(), r) def colorBarRect(self, rect): """ Calculate the the rectangle for the color bar :param QRectF rect: Bounding rectangle for all components of the scale :return: Rectangle for the color bar """ cr = QRectF(rect) if self.__data.scaleDraw.orientation() == Qt.Horizontal: cr.setLeft(cr.left() + self.__data.borderDist[0]) cr.setWidth(cr.width() - self.__data.borderDist[1] + 1) else: cr.setTop(cr.top() + self.__data.borderDist[0]) cr.setHeight(cr.height() - self.__data.borderDist[1] + 1) sda = self.__data.scaleDraw.alignment() if sda == QwtScaleDraw.LeftScale: cr.setLeft(cr.right() - self.__data.margin - self.__data.colorBar.width) cr.setWidth(self.__data.colorBar.width) elif sda == QwtScaleDraw.RightScale: cr.setLeft(cr.left() + self.__data.margin) cr.setWidth(self.__data.colorBar.width) elif sda == QwtScaleDraw.BottomScale: cr.setTop(cr.top() + self.__data.margin) cr.setHeight(self.__data.colorBar.width) elif sda == QwtScaleDraw.TopScale: cr.setTop(cr.bottom() - self.__data.margin - self.__data.colorBar.width) cr.setHeight(self.__data.colorBar.width) return cr def resizeEvent(self, event): self.layoutScale(False) def layoutScale(self, update_geometry=True): """ Recalculate the scale's geometry and layout based on the current geometry and fonts. :param bool update_geometry: Notify the layout system and call update to redraw the scale """ bd0, bd1 = self.getBorderDistHint() if self.__data.borderDist[0] > bd0: bd0 = self.__data.borderDist[0] if self.__data.borderDist[1] > bd1: bd1 = self.__data.borderDist[1] colorBarWidth = 0 if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid(): colorBarWidth = self.__data.colorBar.width + self.__data.spacing r = self.contentsRect() if self.__data.scaleDraw.orientation() == Qt.Vertical: y = r.top() + bd0 length = r.height() - (bd0 + bd1) if self.__data.scaleDraw.alignment() == QwtScaleDraw.LeftScale: x = r.right() - 1.0 - self.__data.margin - colorBarWidth else: x = r.left() + self.__data.margin + colorBarWidth else: x = r.left() + bd0 length = r.width() - (bd0 + bd1) if self.__data.scaleDraw.alignment() == QwtScaleDraw.BottomScale: y = r.top() + self.__data.margin + colorBarWidth else: y = r.bottom() - 1.0 - self.__data.margin - colorBarWidth self.__data.scaleDraw.move(x, y) self.__data.scaleDraw.setLength(length) extent = math.ceil(self.__data.scaleDraw.extent(self.font())) self.__data.titleOffset = ( self.__data.margin + self.__data.spacing + colorBarWidth + extent ) if update_geometry: self.updateGeometry() # The following was removed because it caused a high CPU usage # in guiqwt.ImageWidget. The origin of these lines was an # attempt to transpose PythonQwt from Qwt 6.1.2 to Qwt 6.1.5. # --> Begin of removed lines <-------------------------------------- # # for some reason updateGeometry does not send a LayoutRequest # # event when the parent is not visible and has no layout # widget = self.parentWidget() # if widget and not widget.isVisible() and widget.layout() is None: # if widget.testAttribute(Qt.WA_WState_Polished): # QApplication.postEvent( # self.parentWidget(), QEvent(QEvent.LayoutRequest) # ) # --> End of removed lines <---------------------------------------- self.update() def drawColorBar(self, painter, rect): """ Draw the color bar of the scale widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle for the color bar .. seealso:: :py:meth:`setColorBarEnabled()` """ if not self.__data.colorBar.interval.isValid(): return sd = self.__data.scaleDraw QwtPainter.drawColorBar( painter, self.__data.colorBar.colorMap, self.__data.colorBar.interval.normalized(), sd.scaleMap(), sd.orientation(), rect, ) def drawTitle(self, painter, align, rect): """ Rotate and paint a title according to its position into a given rectangle. :param QPainter painter: Painter :param int align: Alignment :param QRectF rect: Bounding rectangle """ r = rect flags = self.__data.title.renderFlags() & ( ~int(Qt.AlignTop | Qt.AlignBottom | Qt.AlignVCenter) ) if align == QwtScaleDraw.LeftScale: angle = -90.0 flags |= Qt.AlignTop r.setRect( r.left(), r.bottom(), r.height(), r.width() - self.__data.titleOffset ) elif align == QwtScaleDraw.RightScale: angle = -90.0 flags |= Qt.AlignTop r.setRect( r.left() + self.__data.titleOffset, r.bottom(), r.height(), r.width() - self.__data.titleOffset, ) elif align == QwtScaleDraw.BottomScale: angle = 0.0 flags |= Qt.AlignBottom r.setTop(r.top() + self.__data.titleOffset) else: angle = 0.0 flags |= Qt.AlignTop r.setBottom(r.bottom() - self.__data.titleOffset) if self.__data.layoutFlags & self.TitleInverted: if align in (QwtScaleDraw.LeftScale, QwtScaleDraw.RightScale): angle = -angle r.setRect(r.x() + r.height(), r.y() - r.width(), r.width(), r.height()) painter.save() painter.setFont(self.font()) painter.setPen(self.palette().color(QPalette.Text)) painter.translate(r.x(), r.y()) if angle != 0.0: painter.rotate(angle) title = self.__data.title title.setRenderFlags(flags) title.draw(painter, QRectF(0.0, 0.0, r.width(), r.height())) painter.restore() def scaleChange(self): """ Notify a change of the scale This method can be overloaded by derived classes. The default implementation updates the geometry and repaints the widget. """ self.layoutScale() def sizeHint(self): return self.minimumSizeHint() def minimumSizeHint(self): o = self.__data.scaleDraw.orientation() length = 0 mbd1, mbd2 = self.getBorderDistHint() length += max([0, self.__data.borderDist[0] - mbd1]) length += max([0, self.__data.borderDist[1] - mbd2]) length += self.__data.scaleDraw.minLength(self.font()) dim = self.dimForLength(length, self.font()) if length < dim: length = dim dim = self.dimForLength(length, self.font()) size = QSize(length + 2, dim) if o == Qt.Vertical: size.transpose() if self.layout() is None: left, top, right, bottom = 0, 0, 0, 0 else: mgn = self.layout().contentsMargins() left, top, right, bottom = ( mgn.left(), mgn.top(), mgn.right(), mgn.bottom(), ) return size + QSize(left + right, top + bottom) def titleHeightForWidth(self, width): """ Find the height of the title for a given width. :param int width: Width :return: Height """ return math.ceil(self.__data.title.heightForWidth(width, self.font())) def dimForLength(self, length, scaleFont): """ Find the minimum dimension for a given length. dim is the height, length the width seen in direction of the title. :param int length: width for horizontal, height for vertical scales :param QFont scaleFont: Font of the scale :return: height for horizontal, width for vertical scales """ extent = math.ceil(self.__data.scaleDraw.extent(scaleFont)) dim = self.__data.margin + extent + 1 if not self.__data.title.isEmpty(): dim += self.titleHeightForWidth(length) + self.__data.spacing if self.__data.colorBar.isEnabled and self.__data.colorBar.interval.isValid(): dim += self.__data.colorBar.width + self.__data.spacing return dim def getBorderDistHint(self): """ Calculate a hint for the border distances. This member function calculates the distance of the scale's endpoints from the widget borders which is required for the mark labels to fit into the widget. The maximum of this distance an the minimum border distance is returned. :param int start: Return parameter for the border width at the beginning of the scale :param int end: Return parameter for the border width at the end of the scale .. warning:: The minimum border distance depends on the font. .. seealso:: :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`, :py:meth:`setBorderDist()` """ start, end = self.__data.scaleDraw.getBorderDistHint(self.font()) if start < self.__data.minBorderDist[0]: start = self.__data.minBorderDist[0] if end < self.__data.minBorderDist[1]: end = self.__data.minBorderDist[1] return start, end def setMinBorderDist(self, start, end): """ Set a minimum value for the distances of the scale's endpoints from the widget borders. This is useful to avoid that the scales are "jumping", when the tick labels or their positions change often. :param int start: Minimum for the start border :param int end: Minimum for the end border .. seealso:: :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()` """ self.__data.minBorderDist = [start, end] def getMinBorderDist(self): """ Get the minimum value for the distances of the scale's endpoints from the widget borders. :param int start: Return parameter for the border width at the beginning of the scale :param int end: Return parameter for the border width at the end of the scale .. seealso:: :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()` """ return self.__data.minBorderDist def setScaleDiv(self, scaleDiv): """ Assign a scale division The scale division determines where to set the tick marks. :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division .. seealso:: For more information about scale divisions, see :py:class:`qwt.scale_div.QwtScaleDiv`. """ sd = self.__data.scaleDraw if sd.scaleDiv() != scaleDiv: sd.setScaleDiv(scaleDiv) self.layoutScale() self.scaleDivChanged.emit() def setTransformation(self, transformation): """ Set the transformation :param qwt.transform.Transform transformation: Transformation .. seealso:: :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, :py:class:`qwt.scale_map.QwtScaleMap` """ self.__data.scaleDraw.setTransformation(transformation) self.layoutScale() def setColorBarEnabled(self, on): """ En/disable a color bar associated to the scale :param bool on: On/Off .. seealso:: :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()` """ if on != self.__data.colorBar.isEnabled: self.__data.colorBar.isEnabled = on self.layoutScale() def isColorBarEnabled(self): """ :return: True, when the color bar is enabled .. seealso:: :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()` """ return self.__data.colorBar.isEnabled def setColorBarWidth(self, width): """ Set the width of the color bar :param int width: Width .. seealso:: :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()` """ if width != self.__data.colorBar.width: self.__data.colorBar.width = width if self.isColorBarEnabled(): self.layoutScale() def colorBarWidth(self): """ :return: Width of the color bar .. seealso:: :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()` """ return self.__data.colorBar.width def colorBarInterval(self): """ :return: Value interval for the color bar .. seealso:: :py:meth:`setColorMap()`, :py:meth:`colorMap()` """ return self.__data.colorBar.interval def setColorMap(self, interval, colorMap): """ Set the color map and value interval, that are used for displaying the color bar. :param qwt.interval.QwtInterval interval: Value interval :param qwt.color_map.QwtColorMap colorMap: Color map .. seealso:: :py:meth:`colorMap()`, :py:meth:`colorBarInterval()` """ self.__data.colorBar.interval = interval if colorMap != self.__data.colorBar.colorMap: self.__data.colorBar.colorMap = colorMap if self.isColorBarEnabled(): self.layoutScale() def colorMap(self): """ :return: Color map .. seealso:: :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()` """ return self.__data.colorBar.colorMap PythonQwt-0.12.7/qwt/symbol.py000066400000000000000000001144021465265754400162740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ QwtSymbol --------- .. autoclass:: QwtSymbol :members: """ import math from qtpy.QtCore import ( QLineF, QObject, QPoint, QPointF, QRect, QRectF, QSize, QSizeF, Qt, ) from qtpy.QtGui import ( QBrush, QPainter, QPen, QPixmap, QPolygonF, QTransform, ) from qtpy.QtSvg import QSvgRenderer from qwt.graphic import QwtGraphic class QwtTriangle(object): # enum Type Left, Right, Up, Down = list(range(4)) def qwtPathGraphic(path, pen, brush): graphic = QwtGraphic() graphic.setRenderHint(QwtGraphic.RenderPensUnscaled) painter = QPainter(graphic) painter.setPen(pen) painter.setBrush(brush) painter.drawPath(path) painter.end() return graphic def qwtScaleBoundingRect(graphic, size): scaledSize = QSize(size) if scaledSize.isEmpty(): scaledSize = graphic.defaultSize() sz = graphic.controlPointRect().size() sx = 1.0 if sz.width() > 0.0: sx = scaledSize.width() / sz.width() sy = 1.0 if sz.height() > 0.0: sy = scaledSize.height() / sz.height() return graphic.scaledBoundingRect(sx, sy) def qwtDrawPixmapSymbols(painter, points, symbol): size = symbol.size() if size.isEmpty(): size = symbol.pixmap().size() transform = QTransform(painter.transform()) if transform.isScaling(): r = QRect(0, 0, size.width(), size.height()) size = transform.mapRect(r).size() pm = QPixmap(symbol.pixmap()) if pm.size() != size: pm = pm.scaled(size) pinPoint = QPointF(0.5 * size.width(), 0.5 * size.height()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() painter.resetTransform() for pos in points: pos = QPointF(transform.map(pos)) - pinPoint painter.drawPixmap(QRect(pos.toPoint(), pm.size()), pm) def qwtDrawSvgSymbols(painter, points, renderer, symbol): if renderer is None or not renderer.isValid(): return viewBox = QRectF(renderer.viewBoxF()) if viewBox.isEmpty(): return sz = QSizeF(symbol.size()) if not sz.isValid(): sz = viewBox.size() sx = sz.width() / viewBox.width() sy = sz.height() / viewBox.height() pinPoint = QPointF(viewBox.center()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() dx = sx * (pinPoint.x() - viewBox.left()) dy = sy * (pinPoint.y() - viewBox.top()) for pos in points: x = pos.x() - dx y = pos.y() - dy renderer.render(painter, QRectF(x, y, sz.width(), sz.height())) def qwtDrawGraphicSymbols(painter, points, graphic, symbol): pointRect = QRectF(graphic.controlPointRect()) if pointRect.isEmpty(): return sx = 1.0 sy = 1.0 sz = symbol.size() if sz.isValid(): sx = sz.width() / pointRect.width() sy = sz.height() / pointRect.height() pinPoint = QPointF(pointRect.center()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() transform = QTransform(painter.transform()) for pos in points: tr = QTransform(transform) tr.translate(pos.x(), pos.y()) tr.scale(sx, sy) tr.translate(-pinPoint.x(), -pinPoint.y()) painter.setTransform(tr) graphic.render(painter) painter.setTransform(transform) def qwtDrawEllipseSymbols(painter, points, symbol): painter.setBrush(symbol.brush()) painter.setPen(symbol.pen()) size = symbol.size() sw = size.width() sh = size.height() sw2 = 0.5 * size.width() sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() r = QRectF(x - sw2, y - sh2, sw, sh) painter.drawEllipse(r) def qwtDrawRectSymbols(painter, points, symbol): size = symbol.size() pen = QPen(symbol.pen()) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) painter.setRenderHint(QPainter.Antialiasing, False) sw = size.width() sh = size.height() sw2 = 0.5 * size.width() sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() r = QRectF(x - sw2, y - sh2, sw, sh) painter.drawRect(r) def qwtDrawDiamondSymbols(painter, points, symbol): size = symbol.size() pen = QPen(symbol.pen()) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) for pos in points: x1 = pos.x() - 0.5 * size.width() y1 = pos.y() - 0.5 * size.height() x2 = x1 + size.width() y2 = y1 + size.height() polygon = QPolygonF() polygon.append(QPointF(pos.x(), y1)) polygon.append(QPointF(x1, pos.y())) polygon.append(QPointF(pos.x(), y2)) polygon.append(QPointF(x2, pos.y())) painter.drawPolygon(polygon) def qwtDrawTriangleSymbols(painter, type, points, symbol): size = symbol.size() pen = QPen(symbol.pen()) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) sw2 = 0.5 * size.width() sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() x1 = x - sw2 x2 = x1 + size.width() y1 = y - sh2 y2 = y1 + size.height() if type == QwtTriangle.Left: triangle = [QPointF(x2, y1), QPointF(x1, y), QPointF(x2, y2)] elif type == QwtTriangle.Right: triangle = [QPointF(x1, y1), QPointF(x2, y), QPointF(x1, y2)] elif type == QwtTriangle.Up: triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)] elif type == QwtTriangle.Down: triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)] else: raise TypeError("Unknown triangle type %s" % type) painter.drawPolygon(QPolygonF(triangle)) def qwtDrawLineSymbols(painter, orientations, points, symbol): size = symbol.size() pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing, False) sw = size.width() sh = size.height() sw2 = 0.5 * size.width() sh2 = 0.5 * size.height() for pos in points: if orientations & Qt.Horizontal: x = round(pos.x()) - sw2 y = round(pos.y()) painter.drawLine(QLineF(x, y, x + sw, y)) if orientations & Qt.Vertical: x = round(pos.x()) y = round(pos.y()) - sh2 painter.drawLine(QLineF(x, y, x, y + sh)) def qwtDrawXCrossSymbols(painter, points, symbol): size = symbol.size() pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) painter.setPen(pen) sw = size.width() sh = size.height() sw2 = 0.5 * size.width() sh2 = 0.5 * size.height() for pos in points: x1 = pos.x() - sw2 x2 = x1 + sw y1 = pos.y() - sh2 y2 = y1 + sh painter.drawLine(QLineF(x1, y1, x2, y2)) painter.drawLine(QLineF(x2, y1, x1, y2)) def qwtDrawStar1Symbols(painter, points, symbol): size = symbol.size() painter.setPen(symbol.pen()) sqrt1_2 = math.sqrt(0.5) r = QRectF(0, 0, size.width(), size.height()) for pos in points: r.moveCenter(pos) c = QPointF(r.center()) d1 = r.width() / 2.0 * (1.0 - sqrt1_2) painter.drawLine( QLineF(r.left() + d1, r.top() + d1, r.right() - d1, r.bottom() - d1) ) painter.drawLine( QLineF(r.left() + d1, r.bottom() - d1, r.right() - d1, r.top() + d1) ) painter.drawLine(QLineF(c.x(), r.top(), c.x(), r.bottom())) painter.drawLine(QLineF(r.left(), c.y(), r.right(), c.y())) def qwtDrawStar2Symbols(painter, points, symbol): pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) cos30 = math.cos(30 * math.pi / 180.0) dy = 0.25 * symbol.size().height() dx = 0.5 * symbol.size().width() * cos30 / 3.0 for pos in points: x = pos.x() y = pos.y() x1 = x - 3 * dx y1 = y - 2 * dy x2 = x1 + 1 * dx x3 = x1 + 2 * dx x4 = x1 + 3 * dx x5 = x1 + 4 * dx x6 = x1 + 5 * dx x7 = x1 + 6 * dx y2 = y1 + 1 * dy y3 = y1 + 2 * dy y4 = y1 + 3 * dy y5 = y1 + 4 * dy star = [ QPointF(x4, y1), QPointF(x5, y2), QPointF(x7, y2), QPointF(x6, y3), QPointF(x7, y4), QPointF(x5, y4), QPointF(x4, y5), QPointF(x3, y4), QPointF(x1, y4), QPointF(x2, y3), QPointF(x1, y2), QPointF(x3, y2), ] painter.drawPolygon(QPolygonF(star)) def qwtDrawHexagonSymbols(painter, points, symbol): painter.setBrush(symbol.brush()) painter.setPen(symbol.pen()) cos30 = math.cos(30 * math.pi / 180.0) dx = 0.5 * (symbol.size().width() - cos30) dy = 0.25 * symbol.size().height() for pos in points: x = pos.x() y = pos.y() x1 = x - dx y1 = y - 2 * dy x2 = x1 + 1 * dx x3 = x1 + 2 * dx y2 = y1 + 1 * dy y3 = y1 + 3 * dy y4 = y1 + 4 * dy hexa = [ QPointF(x2, y1), QPointF(x3, y2), QPointF(x3, y3), QPointF(x2, y4), QPointF(x1, y3), QPointF(x1, y2), ] painter.drawPolygon(QPolygonF(hexa)) class QwtSymbol_PrivateData(QObject): def __init__(self, st, br, pn, sz): QObject.__init__(self) self.style = st self.size = sz self.brush = br self.pen = pn self.isPinPointEnabled = False self.pinPoint = None class Path(object): def __init__(self): self.path = None # QPainterPath() self.graphic = QwtGraphic() self.path = Path() self.pixmap = None class Graphic(object): def __init__(self): self.graphic = QwtGraphic() self.graphic = Graphic() class SVG(object): def __init__(self): self.renderer = QSvgRenderer() self.svg = SVG() class PaintCache(object): def __init__(self): self.policy = 0 self.pixmap = None # QPixmap() self.cache = PaintCache() class QwtSymbol(object): """ A class for drawing symbols Symbol styles: * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn. * `QwtSymbol.Ellipse`: Ellipse or circle * `QwtSymbol.Rect`: Rectangle * `QwtSymbol.Diamond`: Diamond * `QwtSymbol.Triangle`: Triangle pointing upwards * `QwtSymbol.DTriangle`: Triangle pointing downwards * `QwtSymbol.UTriangle`: Triangle pointing upwards * `QwtSymbol.LTriangle`: Triangle pointing left * `QwtSymbol.RTriangle`: Triangle pointing right * `QwtSymbol.Cross`: Cross (+) * `QwtSymbol.XCross`: Diagonal cross (X) * `QwtSymbol.HLine`: Horizontal line * `QwtSymbol.VLine`: Vertical line * `QwtSymbol.Star1`: X combined with + * `QwtSymbol.Star2`: Six-pointed star * `QwtSymbol.Hexagon`: Hexagon * `QwtSymbol.Path`: The symbol is represented by a painter path, where the origin (0, 0) of the path coordinate system is mapped to the position of the symbol ..seealso:: :py:meth:`setPath()`, :py:meth:`path()` * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap. The pixmap is centered or aligned to its pin point. ..seealso:: :py:meth:`setPinPoint()` * `QwtSymbol.Graphic`: The symbol is represented by a graphic. The graphic is centered or aligned to its pin point. ..seealso:: :py:meth:`setPinPoint()` * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic. The graphic is centered or aligned to its pin point. ..seealso:: :py:meth:`setPinPoint()` * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved for derived classes of `QwtSymbol` that overload `drawSymbols()` with additional application specific symbol types. Cache policies: Depending on the render engine and the complexity of the symbol shape it might be faster to render the symbol to a pixmap and to paint this pixmap. F.e. the raster paint engine is a pure software renderer where in cache mode a draw operation usually ends in raster operation with the the backing store, that are usually faster, than the algorithms for rendering polygons. But the opposite can be expected for graphic pipelines that can make use of hardware acceleration. The default setting is AutoCache ..seealso:: :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()` .. note:: The policy has no effect, when the symbol is painted to a vector graphics format (PDF, SVG). .. warning:: Since Qt 4.8 raster is the default backend on X11 Valid cache policies: * `QwtSymbol.NoCache`: Don't use a pixmap cache * `QwtSymbol.Cache`: Always use a pixmap cache * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered with the software renderer (`QPaintEngine.Raster`) .. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol]) The symbol is constructed with gray interior, black outline with zero width, no size and style 'NoSymbol'. :param int style: Symbol Style .. py:class:: QwtSymbol(style, brush, pen, size) :noindex: :param int style: Symbol Style :param QBrush brush: Brush to fill the interior :param QPen pen: Outline pen :param QSize size: Size .. py:class:: QwtSymbol(path, brush, pen) :noindex: :param QPainterPath path: Painter path :param QBrush brush: Brush to fill the interior :param QPen pen: Outline pen .. seealso:: :py:meth:`setPath()`, :py:meth:`setBrush()`, :py:meth:`setPen()`, :py:meth:`setSize()` """ # enum Style Style = int NoSymbol = -1 ( Ellipse, Rect, Diamond, Triangle, DTriangle, UTriangle, LTriangle, RTriangle, Cross, XCross, HLine, VLine, Star1, Star2, Hexagon, Path, Pixmap, Graphic, SvgDocument, ) = list(range(19)) UserStyle = 1000 # enum CachePolicy NoCache, Cache, AutoCache = list(range(3)) def __init__(self, *args): if len(args) in (0, 1): if args: (style,) = args else: style = QwtSymbol.NoSymbol self.__data = QwtSymbol_PrivateData( style, QBrush(Qt.gray), QPen(Qt.black, 0), QSize() ) elif len(args) == 4: style, brush, pen, size = args self.__data = QwtSymbol_PrivateData(style, brush, pen, size) elif len(args) == 3: path, brush, pen = args self.__data = QwtSymbol_PrivateData(QwtSymbol.Path, brush, pen, QSize()) self.setPath(path) else: raise TypeError( "%s() takes 1, 3, or 4 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) @classmethod def make( cls, style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None, ): """ Create and setup a new `QwtSymbol` object (convenience function). :param style: Symbol Style :type style: int or None :param brush: Brush to fill the interior :type brush: QBrush or None :param pen: Outline pen :type pen: QPen or None :param size: Size :type size: QSize or None :param path: Painter path :type path: QPainterPath or None :param path: Painter path :type path: QPainterPath or None :param pixmap: Pixmap as symbol :type pixmap: QPixmap or None :param graphic: Graphic :type graphic: qwt.graphic.QwtGraphic or None :param svgdocument: SVG icon as symbol .. seealso:: :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()` """ style = QwtSymbol.NoSymbol if style is None else style brush = QBrush(Qt.gray) if brush is None else QBrush(brush) pen = QPen(Qt.black, 0) if pen is None else QPen(pen) size = QSize() if size is None else size if not isinstance(size, QSize): if isinstance(size, tuple) and len(size) == 2: size = QSize(size[0], size[1]) else: raise TypeError("Invalid size %r" % size) item = cls(style, brush, pen, size) if path is not None: item.setPath(path) elif pixmap is not None: item.setPixmap(pixmap) elif graphic is not None: item.setGraphic(graphic) elif svgdocument is not None: item.setSvgDocument(svgdocument) if pinpoint is not None: item.setPinPoint(pinpoint) return item def setCachePolicy(self, policy): """ Change the cache policy The default policy is AutoCache :param int policy: Cache policy .. seealso:: :py:meth:`cachePolicy()` """ if self.__data.cache.policy != policy: self.__data.cache.policy = policy self.invalidateCache() def cachePolicy(self): """ :return: Cache policy .. seealso:: :py:meth:`setCachePolicy()` """ return self.__data.cache.policy def setPath(self, path): """ Set a painter path as symbol The symbol is represented by a painter path, where the origin (0, 0) of the path coordinate system is mapped to the position of the symbol. When the symbol has valid size the painter path gets scaled to fit into the size. Otherwise the symbol size depends on the bounding rectangle of the path. The following code defines a symbol drawing an arrow:: from qtpy.QtGui import QApplication, QPen, QPainterPath, QTransform from qtpy.QtCore import Qt, QPointF from qwt import QwtPlot, QwtPlotCurve, QwtSymbol import numpy as np app = QApplication([]) # --- Construct custom symbol --- path = QPainterPath() path.moveTo(0, 8) path.lineTo(0, 5) path.lineTo(-3, 5) path.lineTo(0, 0) path.lineTo(3, 5) path.lineTo(0, 5) transform = QTransform() transform.rotate(-30.0) path = transform.map(path) pen = QPen(Qt.black, 2 ); pen.setJoinStyle(Qt.MiterJoin) symbol = QwtSymbol() symbol.setPen(pen) symbol.setBrush(Qt.red) symbol.setPath(path) symbol.setPinPoint(QPointF(0., 0.)) symbol.setSize(10, 14) # --- Test it within a simple plot --- curve = QwtPlotCurve() curve_pen = QPen(Qt.blue) curve_pen.setStyle(Qt.DotLine) curve.setPen(curve_pen) curve.setSymbol(symbol) x = np.linspace(0, 10, 10) curve.setData(x, np.sin(x)) plot = QwtPlot() curve.attach(plot) plot.resize(600, 300) plot.replot() plot.show() app.exec_() .. image:: /_static/symbol_path_example.png :param QPainterPath path: Painter path .. seealso:: :py:meth:`path()`, :py:meth:`setSize()` """ self.__data.style = QwtSymbol.Path self.__data.path.path = path self.__data.path.graphic.reset() def path(self): """ :return: Painter path for displaying the symbol .. seealso:: :py:meth:`setPath()` """ return self.__data.path.path def setPixmap(self, pixmap): """ Set a pixmap as symbol :param QPixmap pixmap: Pixmap .. seealso:: :py:meth:`pixmap()`, :py:meth:`setGraphic()` .. note:: The `style()` is set to `QwtSymbol.Pixmap` .. note:: `brush()` and `pen()` have no effect """ self.__data.style = QwtSymbol.Pixmap self.__data.pixmap = pixmap def pixmap(self): """ :return: Assigned pixmap .. seealso:: :py:meth:`setPixmap()` """ if self.__data.pixmap is None: return QPixmap() return self.__data.pixmap def setGraphic(self, graphic): """ Set a graphic as symbol :param qwt.graphic.QwtGraphic graphic: Graphic .. seealso:: :py:meth:`graphic()`, :py:meth:`setPixmap()` .. note:: The `style()` is set to `QwtSymbol.Graphic` .. note:: `brush()` and `pen()` have no effect """ self.__data.style = QwtSymbol.Graphic self.__data.graphic.graphic = graphic def graphic(self): """ :return: Assigned graphic .. seealso:: :py:meth:`setGraphic()` """ return self.__data.graphic.graphic def setSvgDocument(self, svgDocument): """ Set a SVG icon as symbol :param svgDocument: SVG icon .. seealso:: :py:meth:`setGraphic()`, :py:meth:`setPixmap()` .. note:: The `style()` is set to `QwtSymbol.SvgDocument` .. note:: `brush()` and `pen()` have no effect """ self.__data.style = QwtSymbol.SvgDocument if self.__data.svg.renderer is None: self.__data.svg.renderer = QSvgRenderer() self.__data.svg.renderer.load(svgDocument) def setSize(self, *args): """ Specify the symbol's size .. py:method:: setSize(width, [height=-1]) :noindex: :param int width: Width :param int height: Height .. py:method:: setSize(size) :noindex: :param QSize size: Size .. seealso:: :py:meth:`size()` """ if len(args) == 2: width, height = args if width >= 0 and height < 0: height = width self.setSize(QSize(width, height)) elif len(args) == 1: if isinstance(args[0], QSize): (size,) = args if size.isValid() and size != self.__data.size: self.__data.size = size self.invalidateCache() else: (width,) = args self.setSize(width, -1) else: raise TypeError( "%s().setSize() takes 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def size(self): """ :return: Size .. seealso:: :py:meth:`setSize()` """ return self.__data.size def setBrush(self, brush): """ Assign a brush The brush is used to draw the interior of the symbol. :param QBrush brush: Brush .. seealso:: :py:meth:`brush()` """ if brush != self.__data.brush: self.__data.brush = brush self.invalidateCache() if self.__data.style == QwtSymbol.Path: self.__data.path.graphic.reset() def brush(self): """ :return: Brush .. seealso:: :py:meth:`setBrush()` """ return self.__data.brush def setPen(self, *args): """ Build and/or assign a pen, depending on the arguments. .. py:method:: setPen(color, width, style) :noindex: Build and assign a pen In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic (see `QPen.isCosmetic()`). This method signature has been introduced to hide this incompatibility. :param QColor color: Pen color :param float width: Pen width :param Qt.PenStyle style: Pen style .. py:method:: setPen(pen) :noindex: Assign a pen :param QPen pen: New pen .. seealso:: :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 3: color, width, style = args self.setPen(QPen(color, width, style)) elif len(args) == 1: (pen,) = args if pen != self.__data.pen: self.__data.pen = pen self.invalidateCache() if self.__data.style == QwtSymbol.Path: self.__data.path.graphic.reset() else: raise TypeError( "%s().setPen() takes 1 or 3 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) def pen(self): """ :return: Pen .. seealso:: :py:meth:`setPen()`, :py:meth:`brush()` """ return self.__data.pen def setColor(self, color): """ Set the color of the symbol Change the color of the brush for symbol types with a filled area. For all other symbol types the color will be assigned to the pen. :param QColor color: Color .. seealso:: :py:meth:`setPen()`, :py:meth:`setBrush()`, :py:meth:`brush()`, :py:meth:`pen()` """ if self.__data.style in ( QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Diamond, QwtSymbol.Triangle, QwtSymbol.UTriangle, QwtSymbol.DTriangle, QwtSymbol.RTriangle, QwtSymbol.LTriangle, QwtSymbol.Star2, QwtSymbol.Hexagon, ): if self.__data.brush.color() != color: self.__data.brush.setColor(color) self.invalidateCache() elif self.__data.style in ( QwtSymbol.Cross, QwtSymbol.XCross, QwtSymbol.HLine, QwtSymbol.VLine, QwtSymbol.Star1, ): if self.__data.pen.color() != color: self.__data.pen.setColor(color) self.invalidateCache() else: if self.__data.brush.color() != color or self.__data.pen.color() != color: self.invalidateCache() self.__data.brush.setColor(color) self.__data.pen.setColor(color) def setPinPoint(self, pos, enable=True): """ Set and enable a pin point The position of a complex symbol is not always aligned to its center ( f.e an arrow, where the peak points to a position ). The pin point defines the position inside of a Pixmap, Graphic, SvgDocument or PainterPath symbol where the represented point has to be aligned to. :param QPointF pos: Position :enable bool enable: En/Disable the pin point alignment .. seealso:: :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()` """ if self.__data.pinPoint != pos: self.__data.pinPoint = pos if self.__data.isPinPointEnabled: self.invalidateCache() self.setPinPointEnabled(enable) def pinPoint(self): """ :return: Pin point .. seealso:: :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` """ return self.__data.pinPoint def setPinPointEnabled(self, on): """ En/Disable the pin point alignment :param bool on: Enabled, when on is true .. seealso:: :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()` """ if self.__data.isPinPointEnabled != on: self.__data.isPinPointEnabled = on self.invalidateCache() def isPinPointEnabled(self): """ :return: True, when the pin point translation is enabled .. seealso:: :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` """ return self.__data.isPinPointEnabled def drawSymbols(self, painter, points): """ Render an array of symbols Painting several symbols is more effective than drawing symbols one by one, as a couple of layout calculations and setting of pen/brush can be done once for the complete array. :param QPainter painter: Painter :param QPolygonF points: Positions of the symbols in screen coordinates """ painter.save() self.renderSymbols(painter, points) painter.restore() def drawSymbol(self, painter, point_or_rect): """ Draw the symbol into a rectangle The symbol is painted centered and scaled into the target rectangle. It is always painted uncached and the pin point is ignored. This method is primarily intended for drawing a symbol to the legend. :param QPainter painter: Painter :param point_or_rect: Position or target rectangle of the symbol in screen coordinates :type point_or_rect: QPointF or QPoint or QRectF """ if isinstance(point_or_rect, (QPointF, QPoint)): # drawSymbol( QPainter *, const QPointF & ) self.drawSymbols(painter, [point_or_rect]) return # drawSymbol( QPainter *, const QRectF & ) rect = point_or_rect assert isinstance(rect, QRectF) if self.__data.style == QwtSymbol.NoSymbol: return if self.__data.style == QwtSymbol.Graphic: self.__data.graphic.graphic.render(painter, rect, Qt.KeepAspectRatio) elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( self.__data.path.path, self.__data.pen, self.__data.brush ) self.__data.path.graphic.render(painter, rect, Qt.KeepAspectRatio) return elif self.__data.style == QwtSymbol.SvgDocument: if self.__data.svg.renderer is not None: scaledRect = QRectF() sz = QSizeF(self.__data.svg.renderer.viewBoxF().size()) if not sz.isEmpty(): sz.scale(rect.size(), Qt.KeepAspectRatio) scaledRect.setSize(sz) scaledRect.moveCenter(rect.center()) else: scaledRect = rect self.__data.svg.renderer.render(painter, scaledRect) else: br = QRect(self.boundingRect()) ratio = min([rect.width() / br.width(), rect.height() / br.height()]) painter.save() painter.translate(rect.center()) painter.scale(ratio, ratio) isPinPointEnabled = self.__data.isPinPointEnabled self.__data.isPinPointEnabled = False pos = QPointF() self.renderSymbols(painter, pos, 1) self.__data.isPinPointEnabled = isPinPointEnabled painter.restore() def renderSymbols(self, painter, points): """ Render the symbol to series of points :param QPainter painter: Painter :param point_or_rect: Positions of the symbols """ if self.__data.style == QwtSymbol.Ellipse: qwtDrawEllipseSymbols(painter, points, self) elif self.__data.style == QwtSymbol.Rect: qwtDrawRectSymbols(painter, points, self) elif self.__data.style == QwtSymbol.Diamond: qwtDrawDiamondSymbols(painter, points, self) elif self.__data.style == QwtSymbol.Cross: qwtDrawLineSymbols(painter, Qt.Horizontal | Qt.Vertical, points, self) elif self.__data.style == QwtSymbol.XCross: qwtDrawXCrossSymbols(painter, points, self) elif self.__data.style in (QwtSymbol.Triangle, QwtSymbol.UTriangle): qwtDrawTriangleSymbols(painter, QwtTriangle.Up, points, self) elif self.__data.style == QwtSymbol.DTriangle: qwtDrawTriangleSymbols(painter, QwtTriangle.Down, points, self) elif self.__data.style == QwtSymbol.RTriangle: qwtDrawTriangleSymbols(painter, QwtTriangle.Right, points, self) elif self.__data.style == QwtSymbol.LTriangle: qwtDrawTriangleSymbols(painter, QwtTriangle.Left, points, self) elif self.__data.style == QwtSymbol.HLine: qwtDrawLineSymbols(painter, Qt.Horizontal, points, self) elif self.__data.style == QwtSymbol.VLine: qwtDrawLineSymbols(painter, Qt.Vertical, points, self) elif self.__data.style == QwtSymbol.Star1: qwtDrawStar1Symbols(painter, points, self) elif self.__data.style == QwtSymbol.Star2: qwtDrawStar2Symbols(painter, points, self) elif self.__data.style == QwtSymbol.Hexagon: qwtDrawHexagonSymbols(painter, points, self) elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( self.__data.path.path, self.__data.pen, self.__data.brush ) qwtDrawGraphicSymbols(painter, points, self.__data.path.graphic, self) elif self.__data.style == QwtSymbol.Pixmap: qwtDrawPixmapSymbols(painter, points, self) elif self.__data.style == QwtSymbol.Graphic: qwtDrawGraphicSymbols(painter, points, self.__data.graphic.graphic, self) elif self.__data.style == QwtSymbol.SvgDocument: qwtDrawSvgSymbols(painter, points, self.__data.svg.renderer, self) def boundingRect(self): """ Calculate the bounding rectangle for a symbol at position (0,0). :return: Bounding rectangle """ rect = QRectF() pinPointTranslation = False if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Hexagon): pw = 0.0 if self.__data.pen.style() != Qt.NoPen: pw = max([self.__data.pen.widthF(), 1.0]) rect.setSize(QSizeF(self.__data.size) + QSizeF(pw, pw)) rect.moveCenter(QPointF(0.0, 0.0)) elif self.__data.style in ( QwtSymbol.XCross, QwtSymbol.Diamond, QwtSymbol.Triangle, QwtSymbol.UTriangle, QwtSymbol.DTriangle, QwtSymbol.RTriangle, QwtSymbol.LTriangle, QwtSymbol.Star1, QwtSymbol.Star2, ): pw = 0.0 if self.__data.pen.style() != Qt.NoPen: pw = max([self.__data.pen.widthF(), 1.0]) rect.setSize(QSizeF(self.__data.size) + QSizeF(2 * pw, 2 * pw)) rect.moveCenter(QPointF(0.0, 0.0)) elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( self.__data.path.path, self.__data.pen, self.__data.brush ) rect = qwtScaleBoundingRect(self.__data.path.graphic, self.__data.size) pinPointTranslation = True elif self.__data.style == QwtSymbol.Pixmap: if self.__data.size.isEmpty(): rect.setSize(QSizeF(self.pixmap().size())) else: rect.setSize(QSizeF(self.__data.size)) pinPointTranslation = True elif self.__data.style == QwtSymbol.Graphic: rect = qwtScaleBoundingRect(self.__data.graphic.graphic, self.__data.size) pinPointTranslation = True elif self.__data.style == QwtSymbol.SvgDocument: if self.__data.svg.renderer is not None: rect = self.__data.svg.renderer.viewBoxF() if self.__data.size.isValid() and not rect.isEmpty(): sz = QSizeF(rect.size()) sx = self.__data.size.width() / sz.width() sy = self.__data.size.height() / sz.height() transform = QTransform() transform.scale(sx, sy) rect = transform.mapRect(rect) pinPointTranslation = True else: rect.setSize(QSizeF(self.__data.size)) rect.moveCenter(QPointF(0.0, 0.0)) if pinPointTranslation: pinPoint = QPointF(0.0, 0.0) if self.__data.isPinPointEnabled: pinPoint = rect.center() - self.__data.pinPoint rect.moveCenter(pinPoint) r = QRect() r.setLeft(math.floor(rect.left())) r.setTop(math.floor(rect.top())) r.setRight(math.floor(rect.right())) r.setBottom(math.floor(rect.bottom())) if self.__data.style != QwtSymbol.Pixmap: r.adjust(-1, -1, 1, 1) return r def invalidateCache(self): """ Invalidate the cached symbol pixmap The symbol invalidates its cache, whenever an attribute is changed that has an effect ob how to display a symbol. In case of derived classes with individual styles (>= `QwtSymbol.UserStyle`) it might be necessary to call invalidateCache() for attributes that are relevant for this style. .. seealso:: :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()` """ if self.__data.cache.pixmap is not None: self.__data.cache.pixmap = None def setStyle(self, style): """ Specify the symbol style :param int style: Style .. seealso:: :py:meth:`style()` """ if self.__data.style != style: self.__data.style = style self.invalidateCache() def style(self): """ :return: Current symbol style .. seealso:: :py:meth:`setStyle()` """ return self.__data.style PythonQwt-0.12.7/qwt/tests/000077500000000000000000000000001465265754400155555ustar00rootroot00000000000000PythonQwt-0.12.7/qwt/tests/__init__.py000066400000000000000000000021161465265754400176660ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """ PythonQwt test package ====================== """ from qtpy import QtCore as QC from qtpy import QtWidgets as QW from qwt.tests.utils import ( QT_API, TestEnvironment, TestLauncher, run_all_tests, take_screenshot, ) def run(wait=True): """Run PythonQwt tests or test launcher""" app = QW.QApplication([]) launcher = TestLauncher() launcher.show() test_env = TestEnvironment() if test_env.screenshots: print("Running PythonQwt tests and taking screenshots automatically:") QC.QTimer.singleShot(100, lambda: take_screenshot(launcher)) elif test_env.unattended: print("Running PythonQwt tests in unattended mode:") QC.QTimer.singleShot(0, QW.QApplication.instance().quit) if QT_API == "pyside6": app.exec() else: app.exec_() launcher.close() if test_env.unattended: run_all_tests(wait=wait) if __name__ == "__main__": run() PythonQwt-0.12.7/qwt/tests/comparative_benchmarks.py000066400000000000000000000034351465265754400226430ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """ PyQwt5 vs. PythonQwt ==================== """ import os import os.path as osp import subprocess import sys import time def get_winpython_exe(rootpath, pymajor=None, pyminor=None): """Return WinPython exe list from rootpath""" exelist = [] for name1 in os.listdir(rootpath): winroot = osp.join(rootpath, name1) if osp.isdir(winroot): for name2 in os.listdir(winroot): pypath = osp.join(winroot, name2, "python.exe") if osp.isfile(pypath): pymaj, pymin = name2[len("python-") :].split(".")[:2] if pymajor is None or pymajor == int(pymaj): if pyminor is None or int(pymin) >= pyminor: exelist.append(pypath) return exelist def run_script(filename, args=None, wait=True, executable=None): """Run Python script""" os.environ["PYTHONPATH"] = os.pathsep.join(sys.path) if executable is None: executable = sys.executable command = [executable, '"' + filename + '"'] if args is not None: command.append(args) print(" ".join(command)) proc = subprocess.Popen(" ".join(command), shell=True) if wait: proc.wait() def main(): for name in ( "curvebenchmark1.py", "curvebenchmark2.py", ): for executable in get_winpython_exe(r"C:\Apps", pymajor=3, pyminor=6): filename = osp.join(osp.dirname(osp.abspath(__file__)), name) run_script(filename, wait=False, executable=executable) time.sleep(4) if __name__ == "__main__": # print(get_winpython_exe(r"C:\Apps", pymajor=3)) main() PythonQwt-0.12.7/qwt/tests/conftest.py000066400000000000000000000012761465265754400177620ustar00rootroot00000000000000# -*- coding: utf-8 -*- """pytest configuration for PythonQwt package tests.""" import os import qtpy import qwt from qwt.tests.utils import TestEnvironment # Set the unattended environment variable to 1 to avoid any user interaction os.environ[TestEnvironment.UNATTENDED_ENV] = "1" def pytest_report_header(config): """Add additional information to the pytest report header.""" qtbindings_version = qtpy.PYSIDE_VERSION if qtbindings_version is None: qtbindings_version = qtpy.PYQT_VERSION return [ f"PythonQwt {qwt.__version__} [closest Qwt version: {qwt.QWT_VERSION_STR}]", f"{qtpy.API_NAME} {qtbindings_version} [Qt version: {qtpy.QT_VERSION}]", ] PythonQwt-0.12.7/qwt/tests/data/000077500000000000000000000000001465265754400164665ustar00rootroot00000000000000PythonQwt-0.12.7/qwt/tests/data/PythonQwt.svg000066400000000000000000000356001465265754400211700ustar00rootroot00000000000000 image/svg+xml PythonQwt-0.12.7/qwt/tests/data/bodedemo.png000066400000000000000000000575361465265754400207720ustar00rootroot00000000000000‰PNG  IHDRnFÓ¿Õ pHYsÄÄ•+ IDATxœì}|[eùÿßéº 6Æ€Q–¶ Âxè2ÕL¿ ŠP¨¬¢_AÇWýÙnX­_+Š)l ‚‚’á$3 ²*²h™.(ƒÁ`n@Ö6å¡ Æ`…m]óûãäá$ÍÃ9INÏIr½_¯¼–žë>×¹sîæôÚõ¹¯û¶íܹ3Š ‚ ‚`yjÌî€ ‚ ‚  ÜAAÊ ÜAAÊ ÜAAÊ ÜAAÊ ÜAAÊ ÜA*’7nwˆÙ}¡THà&‚ ‚P&ÔšÝAk!à]Ž/Nr´ÒÓ݌ݴ>U&‘@í¾°òƒ«›ÓÔþB9![™‘òÀˆ<M#ßø8[–Ñæ”PÀZDt´“ï«eÄu#¡ ¬^ÕK_8Lòò®–µ9“Ac$@G»°Ã…‹ ñøÒÑÚCw³=µÍø}€2%B$´šå«ú‡ÃÉÃŽÆ&ş̌Y¾£‚E‘ÀMÆ‘p8LØÓNŸ«“n ®­Chµ*hsÑÙÓÆ¸üÝ­¦ÝÌ`zhºèô·‘ò›ÇßÂëöô­&Ô܆3´ÅÏ1+µ:!¼Ô‰Õá°ò öBO7ÍýHÆQ( ÜÊ‘q,Žún„€·_ìot8¸ŠÀ"§a}Dú’?¸ŒOЦÂáêLd×"¡Ë=ñ¬YwAêvGóí3ipá>"0sC/aÀѺ ²!´¥é‘P€Õ«|™ƒ:A°Rœ ã‚æE­8?‡é4¯7B*ƒýáÄ{GÃÌq½¶£µ‡n•$jw6ÓâR5è@KQhü34ÖËÿ²Ù@o8ù£«35³jw6ÓÖÝC§«qÜ»&Z‘Œ[Å’*“8Z{XV¿šå«‚„êLP$D`õ*zƒªù5®¦e´¥§ƒ"!¼ËUÿ[u¸hmìKNæN¤üÇ^;>'E"HÏjêK®ÏàÀÕš¡ïDV³ª7ÞNiëp5Ѳh>Ë3÷7oŸK‰Ž±P2½3ÌÏYÖ¦ô/äuWá÷ÉŒùvàhmaY³3õ³D"„V/gU0}¾U-‹šUä -ýÖ{/²¢é³ÄäFÕia_;nŸÒ¶5‡\ xYÞ›6G G#M-‹´Í‘r¶Ñ/=îgòþÎÍTÒoô D(*eX’ßÔgÌØçF®ëûÈ /g!ó½²ãl+5k}.äþŸÏ†tù:èÁøÔûlÖð=ìŒÍ©M‡L×([$p+gÂ>Ú•¿0*2ÿ± ûÚiO??ÛDæp˜`¸`¿jîEÈ‹;}.N8Xºù3zú¢6ù\a‚¾vúÐ2a;L8ÆC==M|±m¸w‘æxaƒê¿èަù…mƒý)S;:>¿: KoÆEÍÆ?LØç¡]}_óݧ`oÖ@FË8hîw¿ )ñY´2دþO€Ê8Lؤ¿ÓOa#¨•[ hÉÚç7áð…U¿¿ƒ¨‰/]Êßô?7JöÐF‹ßï§§§WâC¤ájÍö»)´.KJ=vg3Ý=бšØÝ;?~-{j–,%ØÒB{ì¿®V–©ÿ·¬çó׫³vaz7„¨Ÿ?§ÝŽÝî¤-‹îæhHþñ·7·àòÅåÁØ\»ÁԪʖÄÛq.jÅLN–_jÙv™¼ã0¨±ßº~² F¨¸Ï¢g[wªgwÒÜâ—1墕´`-ñÏio¦Û¯þ(A@Ê‘ænüiß‘ßi²°B,K_²ßøåTÏ-Ï’<òãlóÓÓàe¹/86£JF°½/VUªã¹*ì»9†=S*Š­tÆž}!o©¾(k$p«f¦<ÔRªè2J®1Sÿ Tm5Ê6zÐÓÒ¯žø\vœÉ§Zf߉j<öfºÛ”·êóã²ÈàzUȺ óA\´´5<4/PÖðJ4÷à‰7w8piZ#.^¨üÔ7É=Æöz“Ícó‚Ò\æœÚú­ïw!óçLs-Ÿ¥Ðÿ†ÄÖ`[ßK_isÝ óèH ¬\Úæj•ý÷-ÍA®gŒ†çFižÚ°7·ÑÝÜF$bÆõô÷Ó*IÃøV‡hnsj.hüÏG©ž‡j™—Æúį¹sA#R6[ÞˆT*qœ ’RDØÇêPˆäóÙ…þ¸ÍE§ß?E‡ âé(PBS:I[O'­ÇXSX™ÏâÕ£eŽåÚïl„ðv´Óîñ †K´AÈ›:iÝÑÚSà9A+v»“ææ6ÚºÓ¤H5šŸ •ö;.XɸU)özÕÿŸóI®¡õɶ+ÜÔ„û7¡;û‹ì‹Î'Åwƾ‡ðz¡­Í 8YÔê ûëô$…\ Ï|8ÛèiíKV …}´{ë“‹õ}~I®ÛI3‰DܰšU*Ù'¸>D[Ný/uÒzc½;ùîSj{½ã ¹ß tÞ‹L—É;æI ]:#X•²XkÏ"æÛíØ3MÆ×@ú¤öô ÆÒ ÌçkËfÖ}ßrÿè‡1íKüHòÒ±~AfYÕžš‰N¢ã¹PôwsœîƒPÖHÆ­ZIû_äro(剄x;èD`fƒjý± «³b#lÈX¶fWþ$N‰O–nÏ<·BO_ô¢öËv…Ý­ ®î¹z2r­‹ŠK}Ø›—¥L\'èI~=Ÿ?䥣ÃK(¢´°Ûí8›Ѥò{²!¯'eÎâ'à\¤ê_UP¢¸#c{½híw)~Œþ,é8” 4™K‘´ Í«Ó¤J¿Rß7½Ï #Ÿ*ÂAíxC•ÿ¡ÀòÔù°ªï¼¦çB¡ßÍàúä3 Æí>å‹dܪ'm=­ôŪ—”íuƶr´«VëMdŒ’ë\åðžižS)ú¢›Tß„}xÚÓ:¯2íóirøR—yÈ47N7vš»;éWMû–˜ßM³]ß燃x25p¨&³«ÈÒg¾Ï±+àj]–Zˆ¤ñ¹ õ»™Xºõ9Ê:nãv„²D2nÕŒ½™îž:[]Œ™–ápàrµÒ{2Ù›»éiu©þ×éÀÕÚ“}9gÛØö9Úëè‹nìÍtû3ùvàpµÒ™’M³Óœ¶^@Qk·¥ üaJvAµ´‚ÖÏ?s­®,mZ;ééÎüGÕár¥.âpÑÚÓ:‡*Þ—#-»»OŬ{¦§ß¥ø]0ò³€òûÝéJõípÑÙšq–TùPâû6ö¹¡T>všñeÜz:iu92úƱ‹emçÎQ³;!”/¹YrÊ<%í«°[ôd¡MA(‚ y.ådÜ!…U*]¢˜¢A*y.ÖA7AP“¾ uIf¯ ‚PÖÈsA°¸ ‚ŠÈ†^Õj%ª:¡¬‘ç‚`%ªvŽÛŠ+Xºt)Ó9$o[]Dcÿæ;.~Ä–ö?èꢫË:ý±¡ôçû]Úýdj_HŠõc‹B¦™-ñ¦«4÷9ÚEÔ6æý~2/ÄÞñ2º?â'û÷ÚÌÏUªïi©úSˆ]ìܹTÓ5*ªÜ9d…Ù]¡D»R‚7€­«ä×À¿‚ 䥸À-„׽ІôÊèH€ŽørQéE'…Ú F¤RA*[W"ÃfHÐ&BYòºq»=Öí‹XÓßïÇ߉jKÂBmÆ#›ÅШzŒ«O½çki_l›l6½ÇÍĨ>ã׈±ÖÒ®Tcýü ‡bBçÛÒ||‘±Öf×k³â÷Z°Î6?~†½h#è ;Hlh1³Gl{¶‚mã@ÕH¥+VŒ•DE*„Ê¡¾~ë×ßNCÕìÝûC¦Ný6ûöM(íED*Ó(¹T ÐÑÞOK\æŒèh數§›f ´Ãr™µÆ_Â,]š:à™9AÊ—}(Ì£:xì±Î<³ŸuëfvI„’ïïvúßù¼ ö«ª…{}rÄBmã€H¥C¤RmmD*5Æo9ÉgéÇ. ³nƒ®®dàfd¬µÙËK*ýQºˆòÎ4³eÃVÖÐE”;X^„—¥K—f}éffCêÖn‘úеU“q+$pÓÖF7cü–Óó±Ûv~úÓ&¶n…O|¢+®x\[çÆkmöÒnÿ`+rÜ˜ã­Ø˜ëÄqb+kðqnʱVp9Ë4ÙÇr&wÐKêXÖÒÅy€hþ+ãyÛhc6‡å9_MòÞÆÏÕOæñÉ|=#éc ΄ÄÙH½”Jƒlã€dÜA({Ž>ú-:h/[·Î`ýúz,0¹W‚5h`]Øhe->¶òºÉ}ŠsMta£ §ý,MÉH峫ùC,è:+èÂÆ9lÎå,àü˜ŸøK±lå0 ç“h½&c@\(ññ9 €s‹ÌÈéÂ>Ÿ&G˜þxUÁ`?aG3‹±¸Y ɸik#7cü–SF}|áÂí¬[7+q|ÇŽ)ìØq Ç¿C[µbë*¨0AÆZ›ÝX©t6÷ÅÞÇbòf\¾K¾Ö$Úµå’ùÎäŽétI✭Yûsïç±ÄÏu‰@J›=•%‰lZO0#våqaÆöñàë~¤ùü×YŽsiÈÙ—$PÝ»ôìa:¹?_1$— ãkwãN,Ýa§¹»Ö­spçï5¯c‚‰Ä¥¸¤¼¸„.n¹”˜yWp>·ñ:Ëñ²”¸\·•5ìàG‰à).5ÆÛÇ>‡&à.丄-ýZù¥Ù¤LyM)›6{òzq{òóŒ•3“2e\šÔr~¼kicKVßé׈ߓ¸ôôñI¿¿céê* ¡‘Œ› e:ãÇ…hWrI¡Ìؚȭe6gŒe€NŒ ‡q/ œËVÆf¼NŒI­¯rRšç‹H2à¸-!Iæ Ú”¬Tö ,Ÿ=~½Óbïžá"vpB–+¦gÛ´¯H©ÛhÓ4-y3aIúYJWbþÝ6šò´$p³"•jk#R©1~ËI>‹¯«ÛÍá‡óì³u)Ç­TY*c­ÍnŒT ©.žaš›˜„ïKÈyéóµI}R\è|Õœ³éM‘kµØ“íšh ýóB|[œðõØ»µ)A`îóãRêqx‰Æ²mÉŸ³WÖncFžÏŸãÖÆŠ„¿lò²"•ŠT*eŽÛ½™––§¹è¢‹ÇØÞ|ó'44\É®]“Ks1Y€·Œ+•ªIJ™¥Ì±ÒdºÔ—”J¯ànÍáK¹¤M-ötÒ¥J…±’¨¾óµö%~¤=ŸTš¿o"•*HÆM„²&¾~[&¬”u¬Åcœ› L+8ø[y]•‘› vd ɞƕ¨XgÃò'ü!ÍÖËb5ðÇX•gnû?Øšµ`âu–'æ°©ƒ®lÙ6­çk'.½& A²ß¿ø5ãô6ŽÏÑ7¡j·+V¤¼¬ŠH¥ÚÚˆTjŒßr’ÏâÇÓç·©Û—ûÀúøÉOB|îsÍyÛ‡B3™1ã<=4kmöJJe¬‹·[q\­„H¥"• BYQ_¿‹õëo§¡áJÍçÜpöl9œoœ_ÜÅE*Ó©TA2n‚ ”áð }ï¯~õ<¾ó Gõ¶A½A$p³"•jk#R©1~­(©¨mÛ¶y9á„ÿÇþý5ºÇÚí¾¿ÿ·¹;b2ÖÚì"•ã׊cËnÅqµU#•fÚ-A¤RA(N<ñ5¼Þµ,[ö1žy戂ý,_þ Û·Šï/ÌH¥‚`"•*Tͼéƒmåm¯AHÒÝý0ÿø8ÿüÅlÛVÜV8Ë–ÃÀÀõÜ{ï"‘ƒKÔCA„ñC¤R‹!R©¶6"•ã×J’ŠÛ½™;¯aÞ¼ƒ8é¤ÿ7&h+t¬‹’Le¯Ò¢Û‰T:þ~­8Ö¹ì¹Î+‡=Ǧj¤Òt¤ªT¬ÉÿüÏFþû¿_äÀ÷ñ…/|’7ß< ä×èî~˜ÑQßøÆGJî[c©TA2n‚ ˜ŽÓá–[þÈÈÈU,\æ¶ÛN㢋.6$hèèø(##5|ò“Ïé;1Ú•œç&‚`¸Y ‘Jµµ©Ô¿ã%©Lž<Âùçoá†Ö°v­ûî[ÃOÅäÉßåóŸ¿¿ÿ½1ï5Šëoû,¾øÅsñÅÏh;¡ªy¬õØE*5ƯÇ:—ÝŠãj%D*©T §¾~§6ÈI'½Æ¹çnåŒ3"<üð±‰×þ3ô¾­Zu/>x¿üåûò7–ªRA0 ‘Jª¦ªTã™1c˜NØÁ '¼†Ã±§sÓNdïÞ üë_3éímà{ßûo‚ÁYfw5AKËEüâ÷3eÊ>nº©ÈA ¦¼¤ÒH€··ÛÛí%dv @¤RmmD*5Æo®s'OaÖ¬œqÆ\ðííÿà±ÇâÞ{ËcÝÁk¯ý”-[näÚkæƒìcçθá†ùÌ›÷eî¸ãJ.¼ðÓ\{mSÆ Íì±¾ì² 8é¤×¸òÊõ¹JUiÑíD*¿Vë\v+Ž«•(#©4B £þ?mN 䎪žîfìx©T¨FjkG™6mÓ¦íeêÔ½zè»|ð¦OWþÌŒÃØl0wî«pÀ/¿|/¿|áð!¼üòAôõM§¯o:Û·Oç…eÇŽ)fÄ¢¸òÊõ|êSÏrÖYŸeÏ$ÁJˆTªP>O¦ÈzÚfÆ~žÙ€#ÜÏ ¸ B!ØlQl6˜0a”šš(&D©©‰ÆÞ=V[;Ê„ £L˜·ÃĉûÇjkG‰Fá€F˜8q”‰÷3qâ(££6¦MÛÃĉ£Lš´ŸI“öó~ø0“&ígòä&MÚÏ®]“ihØÅŒ$^/½t'Ÿ<Ä”)û˜2e¸­[gðÁn§¶v”·ÞšÌ[oMbãÆ£8üðavíšÌ›oÀ®]“8˜;¦ðŸÿÌàµ×¦°cÇ^}u ¯¼ražVâúëðÏÚyóÍkhnnaíÚÙ© dŽ› &S>Ô§Di} DÀ™!rÓº8ßÜ}‹QÞlfWTÉÔÖÂÈLÞÉžƒI´©­…);^e×ô#m÷ Ò7q&6¢L¬2²/ÊaC¼=Óξ}J›‰aZd€×¨gâDÇß³§Ÿ&7$ÚìÛ‡¾2ÀÛõõ)ç4á:{ʹû^¢oâÑ)çüæk¼3ãpFFHôgò›o°{Ê!)ç<áÞ=Pun”šè(&Õ$ÚT³‡=&3²/ÊÄØç=ð]ìŸvPÊ=™üúëì>ø0jc¿Q##pô¾!^šX‡(“&FÙ7ÊAC¯²çè#mjká€È˼}äQLš8ÊȾ(5¶(õï¾Â+Á¾}ÉÏ5õ•WÙ[ûG”Ïd#ʤÁ!Þ9âp&ÖFÝ¥vB”Ã;š|¥¶öï‡Ãö¾É®ftT¹'µF™°ómö<…šˆŽ*þ¦Œ¾Ëž “€(j”c5ûG°ÕÚ°¡$§'Œîg?5RcƒÑQàí½L˜6‘ý#@4Ê„ 6ö½ö.¶i“˜< ö¼3 Q8dô]vŽN‚(4e”·wÁÈ«{8ô˜Éì|F÷á‡À+ÏîeøÉqx”—#QFGà˜CöòäË“Ç,[·À¾×öqÒé“xj£‘axïq6&Îáúõ“Y0߯ŸWÃÞwk8×µŸ_qûÞµq±;Êoï…w÷ÓúðÝ5 #£|þÒQ&4ŒpûÏáŠËG¹ÿ&åxÛÿÛwù(L¥£}?Ý?…=#|¯s?FGéê"ñ‚ÌïÕ?gj“­­Övz®•ïýG>ÒÈ|—5k||ï{/ræ™M¶¡0ŸF½Ïö¹8Wk{#ƺÐkUÒûlŸ»\Ǻ÷‚BùH¥!/ntúÛp*ðºWÑÐÓMs)·¸TzúnNe̬¿Ñ‘(5µ¶”cÑ‘(¶´c£û f"`‹ýy·ÙÝ¥fRz»(5Óý­6íº{µ›¸nzÿ&Æ>ˆÍ6% °MH»îþ(Ô(í¢QåEP7B-ábANí„T_ûF“×Lôm[m ÑXÈ¥†èÈØvѽ£0±F±ØjˆîÙ“'Œig›÷§¼F÷F±Mª‰Ý÷Økï(Lª!µÅ>›è¾Q˜¨øK´Û…Iñc±ã#­UÎM\c¨Q®›h*b¬5¶Ï×®ïu6›|¯9w<Æ:—=×yK—.M¼ª•ò‘J¥ªTª“É ©NœßvÁ§V)A¡ĤÒßNâÇ?þ ?>3w{AJ†H¥ å#•b§¹»¯Ûþ‚6Aʈ=ûá‘•×ý[àw-ðh:ÿlZ—®¿þýüìgdÛ¶ÃøÚ×>Æàà4Óú"BuQfR©“6¿¿ß?Q¤PYˆTª­H¥Æøµ¢¤’b‹¼gÜ;Þá°×Ûàèƒ îS1üýï³p:—pÿý' ÝÆu×=DmíhÖö2ÖÚì"•ã׊cËnÅqµe$•–‘J¡Ì9öP¸ûSpÖ¯`xßø\3KUé•W®çßèåöÛÿ‹ïÿCìß_fÿ'„2@¤Ryº‚Pž<ÿ†²ìIù»5\ýŽ:ªƒwÞ©eÏžñƒüÕì. ‚P¡Hàf1D*ÕÖF¤RcüZQRÉ9¦»öÀÁ“ êSAäÙ«ôê«]ÔÖþû÷×vñ£=ÂA핱Öh©Ô¿Vë\v+Ž«•©T¤RA(_þ~tþIYïÍ‚|ç;A¾ùÍ¿s×]ïåšk>ÀÀÀÁfwIÊ–‚¥ÒH€Žva´ªîO±¹T‹üç±™HU•‡Ö-°A(#2dÜ EçÎ W_íâê«]|å+X¿þv~øXn¸á 6n,|M8AôÂÛÓO·"ÚÛ½ÔûÛp!°„"ðóÏõÏ5Äf IDATJ´Wé‡>fÙ²õÌû*ϸí¶ÓŠîš T:…J¥!¯OP‘:g:hïoÁßæŒI¡ý´Ä%ÐH€Žö^šzºi&‡Íä”[ÕH¥‚ T ã-•–ˆGuðè£Þóž7X²ä_ŒŽþ€n˜Ï7ÎgëÖfwO,K®iOÙ‚:çëÝn‚€«36Sm°?6-†½žÆøû\6“©©´\©T[‘JñkEIÅRRižªÒldëÓ /Ê7¿y6&üÏ?<°’¼›}l[Q~8W¤RmÈ÷ºx{®óÒ§=å Ðáé£uQ›²€§‹ §ƒ@EþLi;@_ü}.›ÉˆT*R© ”/Kß³¦Ã²‡ÌîIÉøØÇ¶ÑÒò gõ?û™“›ov²kWùe¡Ô$•†¼¸=¨*BCx•´ÍL“?ÕÒiº4š.«šˆdÜA(_̨*Ïs3ˆ‡:ŽË.»€~ð2¦O—þþë¹ûîßqƆ^W*’™ 8²>û9´ž .8û|šaúãƒý„ Ì$Íd$p³"•jk#R©1~­(©XJ*-BúÔ×7o}ël¦Oÿk×G[Û?yúé›ioÿS¦ì+Øo¡}©Tò½.Þ^Ò{ho¦»ÓEÐãÆívãöôÑÚÏšÙiîî„„ :Ë}ä²™K©TI) voëÒ©T*€ _[»{|®W¢ªÒB9ùäWùâÿÍ¿ø/î»ïDn¾ÙIo¯U¦L ‚±¼o…!7AÊ—2­*-”gž9‚¥KÏaêÔïðÀÇó…/ü›­[½tvþ3†Íîž 〶ÀÍÑJß_ó«‡V‡±¯TD*ÕÖF¤RcüZQR©V©4+WÎcûö 9÷ÜÏpè¡ï²eË¿á#yÞ>‰Tª ù^o·â¸Z mR©£Uç6íøÂÖ‘J3­ý"RiõqÀ8眣8å”éL›6ÑìîÅr@-œa‡uÛ‹vFyá…ݬ[7ijÏîÊÒ¨Kù×$©4^øgŸý]ô ¿øÅûøÅ/Þ'ë ƒH¥ U³oú`ËÞ¥ÕG}ýüèGóp8¦˜Ý¡” ïç¡%q5þa\|q=¿üe˜_ÿºø`p¼¹ï¾¹ï¾¹êª…\vÙ<ðÀJ^ye*7Þ8Ÿßþöd¢Q›Ù]¡HòH¥NeÁ:Ý•vš»ýø-’m+'D*ÕÖFoŠýª«j$h4QScãòËá#9²d>Ç[>{õÕ©\sÍ8þø¯ò­oÍ)§¼ÂþýWq×]>üá ê“H¥Ú©´x»ÇÕJȼ"•VÍÍvÚÛg›Ý ¡ŒØ¹sŸúÔcŒŽª‘—JóñÙÏ>ÉÿüÏFŽ=öuV¬x?÷ß"/¼Pšl¥ Mz@W­²iqRiÈ‹Û_,ÄA«6_„L¼ï}‡˜Ý¡Ì8ä‰8Sxá…Ýfw¥düêW§ò«_Jcã›\pÁsüéO¿"9˜»î:•;ï|/û÷ËB‚µ©Ö`Mæoi$С,BçöRÐáQ¯ðÆ×ÛÿK(‘JµµÑ›b?õÔIù/XmLuàt.dáÂ…,tΡnªÙ2‰©uÌq:™S7ÖtðÁi,%Þ«´X õÛ×73ÎàØcÛùÎwþ› سçG\{íÃY«RE*Õ†ÕÆºsE*µ6š¤ÒH ƒv_XuÄËÁ`W§Ÿ6g¼Špuâo³þÌ6‘J«‹žž÷qê©Ó©8œ§3+1Õm˜í‡›T©›ÃÂ9u%ñW7g!sêJÔ¯\}«sà`ˆ¡á)Ì:}uC›Y·y¨Œ“¼×ÃÛ'Tć)èžLuà<}ÉYCl^·™¡,m†6¯#ýã/]º‘wÜïrcÑ¢g¹âŠÇ™7ï•Dvî™gŽ0»[‚HUi Ri„ ½a­=t7Û yÝx‚€£•EN;Í-.|ž ô Ái‰m!!;þˆ…ủ¥k†6lÕQW 1T*…nh3ë6+ÁÛ¬Óç°;þ¹‡Â„b¡Íð°þ\§:œœ>K]ðQ€3Aö{¢tªêàsw˜Ðº0PÇœ…sH6›ÊÔ©»Ù½;LhÝnæ,œ£­+e>Ç-«WŸÄêÕ'qÔQoóÙÏ>ɪU~6o®£··_ÿúT^ý@³»(U©tþ0€ƒ¦ùJ8æ\àÛlf€p?ƒc­‚FD*ÕÖFoŠÝáÈwµ©8œ Y¸PÓÆT‡C †6ÉØè¦®%F¢¤±O¢ou8©šhÝœ9Ô ogs¦h«n .Ì(#ÂTêê¦0¼ýqÖ­[ ˜bÙ;v­cݺuEeÛ2ße¼æÔ‘¸þãÛ‡•þ:äR}§:æpúé§súéê`ÎXÊM>{ùåƒøéO›˜;÷ËüøÇä˜cv20àå||úÓOÕ'‘JÇ߯H¥•EÕ¬ãV.HভÞ/|8 §žšëjJ#¥æC ^`˜íÛÓ¢¶„D©’á2SŸ¢¤–›ZÒí+¡¡!¨«cJ]SûÙÍTêæœÎœ©Ûy<.,PÚœ ʆ‡¦PG]]Æš%²—¥º'u³bc4D8výÝá0C³æP7e³êÂYïÇîpˆuáB>lá”óóbéÒsXºôÎ;o+—^ú$ßøÆßÙ¸ñhî¾ûyä]~%p¿¸URB$Å0µŽº) ÈnjƒZ>U#*)OØÄœ)ÞI°_R$Ò)Sq´n–’I›2‹Ó.Ì›©ËnÂaUt÷Ë0ÃÃCl^—„•îž(Á‰`‘ÄuÓìù˜êÀ“Qëæ,LBfÖ¬™Í%—¸q:—ð·¿5òï‰D®ãškþÌœ9¥œ)B6ª&p[±bEÊ˪HÆM[›ÒK¥yˆI†‰Wz“@÷`ˆ¡!e.ØÂ…±À`h;Û‡aŒlwïNÍ~éò5Çg²R4åCÄ›X04´Y‘8ã¯XÖ-áa2©›³p̱T¦âpħ±Ü“8)dz\7»Ã„Ô÷ _Ú²BªJ 9WÝ~ÿþ~ùË÷qÖYŸÃé\Âo€×»–'ž¸…‡zŒ#|» ëJÆÍ¿’q«,tH¥a|ín|)‡|´»}ÙN°å²å•nÚÚ”^*ÍÃÐfÖ­Ëp<žeJ ,¦N±,Wj&+`L)S¦@ìÌ©uuJuãPjð Ç×T‡ƒYu»Ùüx˜º9s˜3§.C02ÕeÇ"%ÆdÌ|RìTÇœ„¼<´9SÑGiïI–^0U_Êpܨä?惃Óðx>€ÇóÞûÞ—ùÌgžâÉ'oá©§ŽäÎ;ßËo~3—ÑQ[^?…جø¾’ÇZo; ÜŒ¡j2n‚`ñLÛÔ©:eÆøéñ<]|®œ’*¬+ÃJÐ3<Ìð˜±_II±$ÔÍIT–o¼è -÷$È%²xHÑè@´+YY*ŒaãÆ£èèø(GÕÁµ×žÉ?¸}û®âž{ü|üãÿ1»{‚PhÜbû•j~Éþ¤Å 7mmÆ]*ÍGb~—Âî¡!% K ,âÄ–·PO¸K‚ñyhÅøÊÞÉX`S€¤˜´Â‚\Õ£¥¼'™¤ÕDuïðvÒëD̦³0úÓ±|éKŸ`„ïsÿý'ò¥/=Îo\Ã?þ±–÷¿@÷5$ã6~çZ9ãVSžŒ&ϼ!¼nÁì 2ࢳ ‚7Y€·º»oú:nÙ«IsË„ñó2¬_¦ j@É©'Í«ýÆ×CËz-¾¦:œœ^7Äã¡!ꜧ3k·j]³¸á"ªHS;•¶>šŠXÁA|µLU¥¹>h¸'dXÇ-ãg‹÷3ÛÚ}Ù³o…¯ãf4‡ò.­­Oñ™Ïß<~ýëSÙ¶í0³»&”²¯‚,"TÑh¾ BâËèe7CCÃÌš5…Y³ê«#ŒlóâÆ A&Õèkw8ÌPÝN_8 f»ª?ñ©tkÄ)•£ÙÉ0笔÷%Ð[‡*€ËVÄP ùo=ìÜy7Ý4Ÿ›nšÏ±Ç¾Nkë&V¯^Åž=µø|óðùNáµ×t.¤(UF©t¬LÚéeCùÔã=­\Ö϶Y‘JµµÑ›b¯«Kÿs^Çœ… Y¸Ð‰£È í»Ãa%‹S7'ËBµyÈ% êfˆÍ¡x•¤z{«Xß²-´kÉ9g»õj³:ïI¢ "^ý;§.¶ÔÇBfË æ!…_,ͽùl¬ýùç㪫rê©_â+_9cŽÙÉöí7òÐC¿æ’K61aÂh^¿"•s®•¥RAã^¥IâÒi94 £ÝGX¤RÁ‚Ì{07Üð_ØlùÛD ÷*-9ãÞ·4Ù¹ä{ Ž¡Ðë|ýëO¥©Ôp>úÑç¹à‚ç¸âŠá÷ÏÁç›Çþp‚ÙÝ,€H¥ J¥} DÀ)’ eÂÓOïâž{úX¼¸Ñ˜ h–M`ÜûV¨ìlÞ|s?ýé³»Q•<üð±<üð±|å+§¥åi¾øÅ³råjn¾ÙÉÿx<ûÛ,³»(¦¢s9™48Âô§oH:Ø_Öj« R©¶6zSì]]ðóŸ¿Àõ×ÿ‡ááýù/.T-O<±“%KþÅÐО’ùùL›=ݶjÕ\>ùÉK8úèŽ?¾Ž«¯~„¾¾å\sÍŸ™7ïKJj2ÖÅÛ­8®VB§T !¯OR«G#:Úñ…G+=ÝÍX-—©tX¤Òê¤¶ÖÆìÙÓ˜6Mjs*†û? Ý { Ê£Qxþù·yýõ½9u)ÿŠTj o²xñ&Z[7ñ⋇ðØc ø|§00p°Ù] F¤Rݹœm¸‚‚ñ¸Ó qкÌzA”ÏÎ ‚ñŒŒDyöÙ]fwC(%5Sà?Ãðª•& FÐß?=±SÃÉ'¿Ê¥—>Åúõ·ó ‡âóÂÝwŸÂððD³»)è_RM[@;'(•¦Juiú»i¶bÔVFˆTª­M!R©ÕIE›]Ó˜îÚOÖÕ§‚½J‹nWÊ-¯.ºè¾ùͳih¸’ï}ï¿9í´AÖ¬ñqÿý÷ÐÒòtþ΀Œuñv+>¯­„n©´RªRA¨ þµ¾øø÷Kf÷D°Ÿüä/ÞÄE=ÃÊ•ó¸óÎ÷ò—¿¼Çìn ERþRi<ç µG•èÒ¹*GžŒ[¯Û»#@DWç":ܸÝ^BºÎA(UÆÍPd¯Ò²à÷¿?OÚÍĉÿÇCÇ¢EÏòÆ×pÓMÐÔÔgv÷¡(d“y‹!R©¶6"•ã׊’Š¥¤Ò‘±Öf/õ^¥££6î¾û¾üåsÌ1Kyæ™#ðxþÌöíËéèxŒ¹s_Íí d¬‹·Ë^¥¹Ñ¶W©îJÑx•©uã©T*ˆ_7ÃCÏÃÝOåo[ RUZ46¾É'>ñ¾ô¥Ѩ{î™ËÊ•óؾý³»&ä b¥Ò·'ˆÖâmU¥aín_1½A0Žñ’J…Š ¯o:7ßìäæ›Ì›÷ —\ò4ëÖÝÉ#ÃãÏdåÊyìÜy€ÙÝ*ŽØZ¸á0½"4Ç"·È@L¾w40Sƒ‹I¥ñ¹q©/o|¢\$@GâxeΟ©T[‘JñkEIÅRR©T•Ýn<¥R-lÚt$ßþöY8K¹å–Ó9ùäWyñŬYãã3Ÿy ›M_ýžŒuñv+>¯KƒæeIްou,† ±ÚVÌõš”M‹U•*k‹Ÿ¶1¹Â4[È‹{UCÁ‹ýŠT*Ä·>Ó&÷ÿbvO„ áÜs·²xñ&ß䥗¦±rå<~ÿ{Ù3ÕLÊ_*…” RH“Os`±Œ["è ;hˆçg6à÷“¾ó– UˆT• %fíÚÙ\zé§X¸ðó'rùåÿæí·Ìm·ý|`»ÙÝÊ;ÍÝékájÚÀ¢[ГA& ‘ú”¦lvŸ uåI¦WuJVÞg~ÿ¹”í‹m£¶s¼ßë¯bÎÕÚ>ßý/z¬wíáÔNÎÙ¾ßWËX—ª}¡ïW­šË\BOO¡ÐL.¿ü Þzë:º»æ}ï{IÆÚ€>gz_I8Ûüøýñ—¾Í L“J#Ú¹ÂÌѦÒÅ6èÅíAUqÂë^EƒŽ(UH¥‚PA\p|þ}páoŒ½ŽT• 1Ž>ú­Äž©¸Ûn;ßÿþžþ0³»V±tu!•&*7IÝS=±ø-Œ©êÌeÓvQ[^i»N­.%ÄÞÜ¿9_›\>ýƒ(Ò(ýIcd€> ÁÈN ‚PHU©0μôÒ4®»îL®»îLN<ñ5Î? =t7;vÈÊ•óX¹rCCSÍ  :ýþ´€(B`¹ÆN?Ýñ¹óXP—Ëf.–”J³“.¦K§åiáb}ê=_KûbÛd³é=n&Fõ©¿FŒµ–vEµ,Àkø¹fŽu6›UÆú¹ççÚk›8î¸6žzê<Ž9f'Ïßj>ÿù'˜M_boÐH`Aé´(¶þAÀŽ"Æ÷ µç°i&ÿr ަùº§|•YUiå#R©¶6"•ã׊’Šæ1n†ŽµìUZt»j•Jóñ⋇rõÕ.æÎý2—]v!Ó§¿Ëßþö þþ÷_ðå/‡øÉOöŒ[Ÿ¬,•êG™ßèkÇívÇÖ†M;O|Ñt&²_¹l%ÂÕYPM@aR)JjoЛA*- íg"• B…ñäÿÂ¥xê³{"%£©©Å‹7ñÑ>ÏÖ­3kÄŽÚÌîÚ¸SÔ¼„N©T)Bðù|¬5³ q\Y¨.Lai¿ñ W%Š ÀxT–Ê7aœéím¤·W©gŒo|×]~ûÛ“ùÕ¯NeíÚÙ&÷PÈzSy}{’fC·TjonÁ…²Ÿ¨²{D;Þ)-%Yà¤ôh¯>1‘Jµµ©Ô¿V”T,%•ˆŒµ6{5K¥ZüÆ7¾Ÿ0áûÜÿ‰´´<ÃÛoÿ˜Ÿÿü÷|øÃ/–¬O•%•šK$°œÄîž„ñµ{ ¡¬Sëv»q§nÈ®‰‚àMTDÄ)‰4ŽH¥‚Paܳîß¿yÚ¸kHÆM°S§îå’KžfñâMÌ™3Ä-·œÎÌ&*—¿ÆÚ)?©4žms¨ö\* Ï,|zYa ðÛÙ¾­Ð³AJŒ,Â+T!»wOâöÛÿ‹Ûoÿ/Ž<òm.¸à9nºi ‡úNb>Ü–-‡›ÝÍ*%¶Gb9em¸¾8c+qÄÖq+á¼!e§]/% (†H¥ÚÚˆTjŒ_+J*–’J¥ª´èv"•ç÷•Wâ¶ÛNgþü/raÿþî¿ÿ7<ý´Ÿ+¯\ÏÑG¿U²kii'RiñeÓúõ.¹›J©4ÿ$c‘xA0ÿ[lðýGÍî‰ XŠ÷¾÷e.½ôI.¹äi¶lQ*S}¾Sžhv×t‘ÐY_6K¥®”=×}øÛˆÅWúc¦… ?Ïg|;'sÇ¿çÙgoäÿþo³gïÐìW¤RÕB»"!orŽß…‚àÍ•ú+ÍvFiË+‘J¡‚˜S÷^'ßlÜ5D*ª”O|K.ÙÄ%—<Í?ÿiçßÿ>š•+çñÊ+[ÊO*Mnw•²è®ª…£µG÷Fóº·¼Š§þ:]éÇ]tú­´Aùly%BˆT*†ñÜs‡óýï˜ãÿ*×_¿€††]<ùä-üå/wqùåÿæ€FÌ/Àëb"z• ÍÑJ¿îÝ dâtP@à¦àlóã÷«_Ö/H(D*ÕÖF¤Rcü–“|&RiõŒu6›Œµ1çækÿÄGså•ã–[:¸új  ðàƒwü†‹.zF³Ÿrz^El Ù ÅAc=öDÍ€²s‚ ¬*Í…T• ‚`ÑïƒíúïRþ©TÆpá…ϱxñ&š›ŸeåÊyÜu×{yä‘cJæ¿|¥RþE ÄdSE,xÞ‚3n‚ –ã­½0m’Ù½„ªä¾ûNäâ‹/âÀ¿Ë_þò>ó™'Ù±ÃÃ7®¡©©ÏìùM ˆ'¾†šæÛ!2@ŒÇ¼Êü6†—2çÍAkõ³mVF¤RmmD*5Æo9ÉgïÚÕ]Îs“½J‹n'RéøûﱩáW¿:•¾¾ ™=»gŸ=çÏôõ-ç»ß]Ç©§¾œó|+Žk¡Ø›»Sj\J-@hu¬H¡±Þèxsòâö ^Pn¼©T*Í_E«àÙ×Ìî‰ i44¼É…>Çå—?Amíhbí¸pøMç§tå%›– ðj ¸žP›S²n‚ Œ?FW–Ê7A(˜þþéÜpÃÜpÜ|ò«,^¼‰¿þõN6o®ãÁãž{æñÚkSrú(Ï`-¹,H‚"’\2ÇÍbˆTª­H¥Æø-'ù,›TzéW¬·$ˆŒµ6»H¥ÆøµâX?óÌìÛwdz”«®ZÈìÙ¯óì³7ò§?ýŠûï‚É“+ey‘^wZÐôàv¶·{ɤÒ×'ˆ²>Iw³nÍv¼©T*ÿÅpÏ&Xý¬1þ%ã&†röÙ/pÉ%›øøÇÿÃc5²rå<üþ9@9V•*;'´+¥¤ôt׳Úí!èêÄ¿`=nO° xuJ¥ù—)d§{A„’ ‹ð BYóç?¿‡?ÿù=47?ËâÅ›X¹rul.Ü…&÷N/6ô†­Ëš±«ókÎE´:‚øz7iÖ—ì*­TêêÔ9Ž+V¬HyY‘Jµµ©Ô¿V”TôJ¥ç\,U¥Fœ+R©6d¬‹·Ç'qÑE3uê·ùë_Ú:e)â;'4RŸ-42~ÞÊA¤RA¨@®ú0ìÛ?̽L¸ åGùI¥¡´Evc?»:ñ·ÍT-Îkè¼!¼nwæ u‘n7î}·AJÂxT•Æç¹ ‚ h¢ôÀ(´Z)X0~ÞØëi„‚Ò~B‘Jµµ©Ô¿V”TôJ¥§}ØzsÜd¬µÙE*5ƯÇ:—ÝŠãZ±ýH Ó»A¹=ʺ·€«E1g{•fHíEt´ûË^¥‚ ˜Å§çÂ'À%«ñ/U¥‚`å'•f©*”¦”]ô¢©ª4qáA<î,sH Hû ‚ ”©*ÁBØ›»ñ7'nóûi+Òg‰àuÑYk¸Y‘Jµµ©Ô¿V”TôJ¥s­¸ÉXk³‹TjŒ_+Žu.{®óÊau£)TZfˆT*È)G¯›áÔ[Œñ/R© ˜F9J¥F s^gIÒ|‚ † R© ŽìUj1D*ÕÖF¤RcüZQRÑ+•x¤õ7kmv‘JñkűÎe·â¸Z‰üRiÈ«”­Ž©ˆÈ†5eÔLz¸H¥‚PaL°Á²È>§øIDAT³_ão4Æ¿H¥‚`"•*è”JË—ôÁ®æ‰‚P±ìBýt8°Þ1»7‚ %'¿TêlÃï÷ãïnÆ›ãæÏù²^¶­œ©T[‘JñkEIEï˜4jà<7Ù«´èv"•Ž¿_+Žu.»ÇU;ñ¦ }eØ™* Ù«T¤RA¨,¶~ÎõÁ¶×Íî‰ %¤<¤Òøê…’ºYÕH¥‚ T FV–Ê7A(_B^Üž¾Ô »>Á˜ )—-ŽVzt­k‰m:Ÿ¿e©´”_þ4Ÿ‘Jµµ©Ô¿V”TôŽ©ã0ë- "c­Í.R©1~­8Ö¹ì†ÜÃH€Oz,B`¹ÆÎØT¯Nðtˆäµ™K©´”Ÿ5«JÓ©T*”û? w<¿ßRzß’qÓ(\* áu¯¢¡§…þöU4Ä3n‘í½4¥üÜO‹¿ g.[Þkyœq+Z*•wA(3d^A¨Xr­‘9¨‹èð@§Ÿf{ï{#õ)ÑUbS[Îh¬Ð¸ÉNs·Ÿæü Í\€7„×ÝA =ï БMvÍe«D*ÕÖF¤RcüZQRÑ;¦Î¤ªÔˆsE*Õ†Œuñö\ç-]º4ë+!o;¾ÆNÚ2¥°ûcó×bØëiÔb3™«J3H¨®NüïL†³½n©Ù‘:I0–*ìoñ+79䎪!–nÌeÓH¥‚P¡üä,xs\ów³{"B Ñ/•fŸðïêôÓ63MþTË£ä°tŒ!-ŽÒCéϸ…¼¸3Í{ z4gÁœm~üþN\é†ÈzÃfÆ~žÙ€#ÜÏ`>› B£«JãóÜA°8Šü˜\g¶Z{üª œ"&QË£¹lÅ È·AG+=~?þžVAn¯6Qgà!°*²Å/è÷ã÷÷ÐêâÑxáìdÖ”óÛRY±bEÎWuJVÞg~ÿ¹”í‹m£¶s¼ßë¯bÎÕÚ>ßý/åXŸ÷=Ì?{ò˜ã•ø¾ZƺTíËù}¥u!ïKŽ}>MŽ0ýñ Ð`?aG3óÙŠ%´_MóÅÐÞL‹ ®×”üÒ)•&S{®NªfœXï$Y tОÈQ¦Ë¢ñ*Õ±·UE…ªÍ`[°H¥‚P¡\z |äXøl ô¾¥ªTL£««Øx3Å jÉ2½¢3—­˜n({À«ã(e ™¶kÔvU•d'6q/¬>ÔÜ_K‰Dœ™ 8èOþ hÈgAˆ#U¥‚ dÄI›?=,ÊUjÐÊÎE´:‚øVXälÆ °*¸h uJ¥NŒ™˜–FÑ©D3ôfë`DZ¸XŸzÏ×Ò¾Ø6Ùlz›‰Q}*Ưc­¥])ÇúsÍÖ Üd¬µÙõÚä{m̹ã1Ö¹ìV×Òb§¹»WØG»Û»ÝGXGq‚þªÒ˜$Ú˜.•ÆSŠš/ž)e)U¥‚ ÉiGíçÃé·•Þ·H¥‚`ÅK¥•N©4„7¶oWØãμ£BЃ;YßšQ¯M.´»ñ%VV¢P¯Û;q~<0ËeAˆñÖ^˜6Éì^‚ ‚) ð*˨^)Y3ESVléA_.[e R©¶6"•ã׊’ŠÞ1íX"R©çŠTª ëâíVWíÄöx×½¯i„@‡¶Í \€·ü©T*”)aèë0õÇ¥÷-R© ˜Fz@gMÙÔô½Js9Ïf/MæA¨P†÷ÁäZ˜`ƒýUùÿRA¨X¬¬/º¥Ò7WÐ&‹H¥ÚÚˆTjŒ_+J*µQK‚È^¥E·©tüýZq¬sÙ­8®º‰WŒj~i­ ^€×ÑÚCwi6ì2‘J¡‚ /……¿„íošÝAJDyT•fØË]†H¥ e¶€šz›+A*£2n2ÇM„œ´h¯ŠÒ/ÀkQ–.]šò²*"•jk#R©1~­(©XJ*-kmv‘JñkűÎe·â¸Z‰‚àE¤RA¬ÊšV¸áŸ°v[iýJÆML£<¤RãÑ/•ÚçÓäðáóµãöej U¥‚ ˜ŒÅ2n‚ ¥BªJ-†H¥ÚÚˆTjŒ_+J*–’J¥ª´èv"•Ž¿_+Žu.»ÇÕJHU©H¥‚Pyt^z ®[ovOA("•*¼åU¹U• ‚PEYUŸç&‚`USUZ.ˆTª­H¥Æøµ¢¤RÐX¿µ¦YgŽ›Œµ6»H¥ÆøµâXç²[q\­„T•ŠT*•Çåïƒ ð…ß—Ö¯T• ‚i¤tÕ*›ê¬* ám÷ªRA¬ŠT• BER­Ášš‚ç¸ Æ R©¶6"•ã׊’Š¥ªJ DÆZ›]¤RcüZq¬sÙ­8®VB¿TZ¦dÚòJ¤RA¨PÔÃuƒ3ï(­_‘JÁ4¤ªTAÿ¼eJú`ËÞ¥‚PÁX,ã&‚P*J*•†¼nÜn/¡R:­2D*ÕÖF¤RcüZQR©Ô¿å4ÖÙlò½6æ\‘J­M‘RirAÞ$åQœ U¥‚PÁLŸ Û—Á!×”Ö¯H¥‚`"•*è–J#ÚeÏ+A¬ŒÅ2n‚ ¥BƒT!ÐáÆíV^Ùƒ6­=~üem³2"•jk#R©1~­(©4ÖQ`÷^8hRžžéDö*-ºH¥ãï׊cËnÅqµ¤ÒLr((Z7õ«Ýx‚å·w©H¥‚PáD®çÏað-³{"B ©T¡ˆâ„Fd»RA,‹r©ìU*‚ÉhÜfÒàÈt<ˆÇ­dÛ¾ÕRMZD*ÕÖF¤RcüZQR)x¬-4ÏMÆZ›]¤RcüZq¬sÙs·bÅŠÄ«ZÑ]Uš¿8AªJA°þ,üäoð—KçSªJÁ4D*UÐ]UjoîÆßÿ)Ûü7A“±PÆM¡T¹¯“6¿ìÕé*M§Œ@^µrŠU¤RmmD*5Ư%KI¥RUZt;‘JÇ߯Ç:—ÝŠãj%ªf¯ÒtD*„ Ç{.lÝ7l0»'‚ ”‘JJºå• ‚eªRA* Ü,†H¥ÚÚˆTjŒ_+J*–’J DÆZ›]¤RcüZq¬sÙ­8®VB¤R‘J¡2ùßÓáÔ#áK”ΧT• ‚iˆTª »ªT¡,°PÆM³H_ýBÙõ)±ÑS$@G»00f9³\6©ÔbˆTª­H¥Æøµ¢¤"R©1~Ëi¬³Ùä{m̹%•Fèsu&V¿èißòÅH`¹ÆÎØêàéÐb3‘JE*„ÊÄ5 ~øaXxgé|ŠT*¦Q©4äÅíAÉžEt´÷ÒÏÀEt´÷Ó’ÏV‚ÏR "• ‚P™X(ã&Biȵ«– .2ÐŽ&f&ޤï»ÞÇ@„Xp–Åfò>í"•Z ‘Jµµ©Ô¿V”TD*5Æo9u6›|¯9×ÊRéÒ¥K³¾ò °ÜÆÕÒŒ`°?6-†½žÆøû\6“©©4S”.R© T0uSà™¯ÀזΧH¥‚`ÅI¥J‘B_kÝñÊ„tùS-’ÃfrÆ­j¤ÒôÁ¶ò¶W‚ ” eÜA0“ A[‚tù3&FrØLF¤R‹!R©¶6"•ã׊’JÁc½g?Ø€Ir_\²WiÑíD*¿Vë\öÒÞÃA›}>MŽ0ýƒ±Ÿû ;”ùo¹l&S5Ri:RU*UÀÐ×ᤛàµa³{"B‘$•†¼¸=Á1‡‰@N½Î[úZm¹læQ5R© UH\.-Uà&sÜ¡¼p¶á÷·åj@›ßOæ¹læ!R©Å©T[‘JñkEI¥¨±¶È<7kmv‘JñkűÎe·â¸Z ‘JE*„ÊeÝÿÀ÷þ Áí¥ñ'7A0’,À[HÆM„ÊÅ"7A„RabàÂëî ²ñW„@‡·;õå ÅÍ:ǽ„2x-wD*ÕÖF¤RcüZQR±”T*U¥E·©tüýZq¬sÙ­8®V©4äu£y8hMYÌ.B £þ?mcJ7Òl!/îU ôtÇV@Ö‰H¥‚Püìãðä+pËãf÷D„"©TÁ”ªRg›[¯{•ö“"è ;hŠ/¢2³G¸ŸA((p¡ (uÆMæ¸ ‚©¨Ï¯Ö Î’sÜ‚ž 2)mÃ×L¬X±"ç+Ž:%+ï3¿ÿ\ÊöŶQÛ‹9^‰ïõŽW1çjmŸïþ6Ö»öàúÄä1m*å}µŒu©Ú—óûJëBÞúö&­P •J#Ú}áØO鲨’qkȱï—r>Êyƒ^ÜT àå??"• BðÕù0{´­-?ɸ ‚ituUo–MM­‘ÎíÍÝø›‹9¿—Ï£l91³ýIcd€> ¡ØN ‚P¹¼µ¦M2»‚ %Ã’RivÒ¥QkløZJÒÓÂVð©÷|-í‹m“ͦ÷¸™Õ§bü1ÖZÚ6ÖYDÆZ›]¯M¾×Æœ;cËnÅqµ&.À›AêŒèX]Ow¬¤T‘Jcò¨T• ‚ “³ßMð‘_—ÆŸH¥‚`"•**•f#¹ÐîÆçhU0{=AîÄ~°êM]í4wwâu»q'l…m‚ T ɸ ‚ ” S¤Rg›¿_õJdÍ” ]“¶xЖ8SeO·U"•jk#R©1~­(©ˆTjŒßrël6ù^s®H¥ÖFö*©T*—™Ó ôE°__"• ‚iˆTªPfÅ ‚ :°HÆM¡THàf1D*ÕÖF¤RcüZQR)j¬ßÞ S'-÷õ5#{•ÝN¤Òñ÷kűÎe·â¸Z ‘JE*„Êfç7aÖrxsÙ=¡2í¢P˜RUjêm®A¨"âri)7™ã&¦R­Áššª ÜÒÛª\úÞoVð©÷|-í‹m“ͦ÷¸™Õ§bü1ÖZÚ:ÖÎs‹’¡BÙ`3`üä{]¼ÝŠÏk+!R©H¥‚PÙ+z¬ßÚÓJ¸XUš%Ý g–Ð¥Î\ѨòZ>Þ¯lä{]¼ÝŠÏk+!R©H¥‚PÙÜñIèí‡_ µ¡Üçs×*÷`ùV8áÚÔZ}íØý—ªÒòB¤Rɸ ‚PÙ™q[¾U•õJ+2ˆÛÎÝ÷Æ¢˜3/Ê“í‰g¢ʼ¬ksmª¬[ïR`v‰ŠƒÙird6Ù²þWlƒ[ã÷®PpßZX‹r?–÷eè¨ÁÙ6A$p³"•jk#R©1~­(©XZ*]6[Ô¤e™â¶+¶&ç[Í=!£›$ª9nM+R“b… +šb×6S¢,’e×ÇÁÜ"lg.‡[gÃÎSÍL¿wK”`øŠóJÿTÈ÷ºx{®óV¬X‘xU+U#•fd‘J¡ 8÷8øêpž¯x_…H¥g.‡ÞO(ò!jIrJ¥ñà,“4¹d ÜŠF?é˜-•f:'ËçÔj#ÓýH;oùVøÄS¤g‘JË ‘Jª&ã¶téÒ”— UÂx',Y+ˆqÑ'`Û•@æ±gs“ö%æðs!)îÕ<½…itŒŸ,Y*M”Z*=¶FaMìCŸ¹<ù`ù×µÉ%= ±=½…±÷u­ª¯Kù4§ô,åAÕnå‚H¥ÚÚˆTjŒ_+J*––J3ñô¸UUí¹t«*Ës[LÆ‹ÙÆÄmisܮȒ¹zlYlÉ‹L~n‹Íÿ*qÕh>ËÄ>ÃÖ,K <ö,œ{kêý‰gÊ ¶-K½¯·Î†&•$ºæVض€uëÆ"ßëâíV|^[‰ª‘JÓ‘ªRA¨fM‡¿]Z×RËìUZQˆTúÿÛ»›ØFÎ:Žã¿%ÛM·ewûF[âØŒ8€P%GŒ|Fp²2ê"ù°Bœ¸Ø¬dɽq­E¤% ®+äC¤Yy/½W4(ƒà‚8€Ü8(Ðn¶Ý6Ùݼpxìxì8Þ8vÖóòýHÖffOçŸgòßç™yžpa¨Ô Ç @´m}*½ß”n¾9éšÀÈH܆¡ÒÓ•a¨ô|ÎÄ!•‘cýø@ú‘#%¯I¿ÿ±ôêóƒ+3ÈØ×*EÔЮG?Äëu0TÊP)ßKIwÞ’~þžôÛ?Mº6†ÀP©qqÒ€§æÒk‹Òo~(ý.'}¼c ¿)m~òä÷÷Üã ¼ºJÅš’¤¬ÊNAéÉÖh$ • C¥§+ÃPéùœ7ˆC*ç럾+ýj]úÇ=iáÒÚO¤~&ýúÒ/¿o–Ézë éÍYiöŠtåÒ)Nz2b}ºãã]ŸÏ{£5Tê©~«¦TÙ‘ã8rÊR¥T—7Îoñ”1TÊP)IJ]“¾õšôÕÍýpÉ«fßΞôÝéòEéâ”)ûîߥé‹ÒƒG×½]iÿÀ”ßylþÝÝ“íK[ÿî<–ö¥ÇûfûѾôpß¼oÏ÷z|`öív;8”byÅÎ8TêÕU*®*³´¨\¢½ÝÔõ÷º1T ’´qß¼Nrñ ÒK¿^º,]]1sÃ}ñRç5=%]™–žFzå9“è={Qº4e’¼KSfޱ«ÓÒ3SfûÒ”toGJ\5ço¿>Ø–¾þŠ4uAšjíûË¿¥tÂÔe¯•ØýqSúΗMBwph½uOúöëíƒCéÏÿ’¾ùZ+ñkíûë‡Ò¯vïûÛÿ¤¯½Ü9ßá¡ôÏ{ÒW^èÞç}"½~ÅÔå°•L~ô¹ôâåî}™ŸÃ¡|u<0ù¶2ÐGûæóª³ïÓ‡Òó—º÷ÝÛ•®õÌÇ÷ÑŽôòåN¹CIÿùLúÒsÝû>|pü¡”ÿ|fö=©Ü??~¾>7¿~Û»Ò Ïvïûô‘ùÝðÿLv›ß ¿½ó3hÛ?4±÷þÝ=óûâ÷Ù#ósòë7oa¿ºÝÛ•^|¶ûs}¼cöù}¼sü³ÞÛéÄzÐ÷èW—¾ŸIÛîÞñŸÉcßϤ]?½§³Ii6áßÞЦ×iNaÛ7©ÿ2X |úöƹUÙùîksUµ—•l÷À…Pì{Ü‚ö„J{7Hçöý§)?j™“Ž »’ΫN£œ÷é±>Ÿ÷>X:>ÖXÏ$e©ÙÙö6µ!)9ü™ƒ‡@„™¡ÑŽÞ¡Óp!qÑ”˜SÆj¨¹ÕÚÞjªa%53ÑJ&ö÷¸­›çƒXDZŽb£ÅÚUÕ®hERæq‹ý=n ÊÒ*8Ž “®Æ˜0T $n!ë{Ü„7€ q 7€ q 7€ˆVâæÕU²mÙ¶-ۮʩ¬«ª]RÝëó^Ï0±—D|£ˆ˜FÛ ñºí#˜ÎߘÆ>B‰›§ú­šReGŽãÈ)K•R]ý¯áƒËºU[öÑò¾abO|£ˆ˜FÛÉñ®í#˜ÎßøÆ>:‰›·®Õ†¥d{娙¤¬FS[g(›.8rœ²²ç^iŒÅ0±ñ"bm'Æwȶ`:S|cûè$n’¤”fþí mž˜~SÁGâ Äm?ÚÅ7ž±Nâ–˜SÆj¨Ù¾3q«©†•”¹oÑS½dË®º§(‹Ð&ö¢ƒky´ ŠoŒca{{ûpÒ•WÕ£Gг*;¥%™?ÞEÕRe9…ôÊšG“+þç’­¼–sŠA"b§=ñbmƒã{òµápöøÆ3öKÜ¢+:C¥Gâ$n!Aâ ô¼zÉ,4ÍÓÃ"ŽÄ @ÈyZ_mH’²óqx¦ @œ‘¸7o]&oó-8 Eâ Ô¼õU³f¡•Ñ·ˆ¸‹“®€¸óO¢i)¿´¨\B’WW©Xk-$}òäš[MSÂÊÌõL¸;Úy ˆèq0Qnµ\IÙr+¹’¤DN‹ålkcE•¾¸Z[‘$K™žî¶ÑÎ ÁDâ`r¼º–ÛÙ••×Bºµ¶¬mË.Õå¥ êäX˪{=ïw×ZÉYÏâÒ£žŠÄ ÀÄÝŸ¦~CFz¾a5´ºÞa¹k­ì,;ß5ÜyæóºU“ܵ^tÆ7p|¨óÈLRVëËFsËwÀÓæ†ùêäi@†8¯WW©²b¸v–”·¤•J‰Þ8Bâ 4,ÿ|GÓ€d5êômVr樗ÎôÐ%4—±Ô¯—&‰Ä ÀÄ$fS­¯êêL;AÊw#[g¤z§oå¼d$n&'½ ¼e¾ÜØìß³Õ¹_Íß³ÖY-¡ï=lg>/󸘠„r‹KR©¨Z­(»&I–òåŒV+5ÍŸomKfú¶“îaþ¼ ˆ7–PnÑQ®goÎéÝãÓždàj Ã71—‘Uk¨±º./7×êÑðpL‰€Ð9š$5Ûwª3Iä´XnÊöõÈuMÜ @â dÚ«% šäŒÒ9Na¼ç€1º°½½}8éJLÒÝ»w']0À7tÿþýIW#èq“ù…ÁsûöíIW!PHÜZÈä@Ð1@H¸„‰@H¸„‰[踪Ú%ÕǺ>Ïyœ@7ڀё¸§zÉ–]ª?…µýø£Lž«ªmËö¿žÊµ@\0ȸyëZ•%«±ªu/wÎËå¤UpÆ|{ÀQO&oK(¡Œtk]^.ç[»¡ZóºY Ñ««T,ÊΖ}Ûwäæ J÷–u«²+·TŸ;iÁë„r‹e5{³µõ¬—*ÚÈ/Éñ%Š}yu•ŠU¹N»^@ô½3==ðøÛžú\îš©rë:ÐÛ®Ûm>­‚ãè¨SÎßJ• 嗜κªmˆ'îqëqáÂà×@îÕR×ÍÅ51§Œjºãú XÊ/´.©‰Y¥ŽmohÓëS6=¯¬jnéCzëZmdu½_Ø{,1§Œµ¢5÷xQ ²Fº4T+vîq«¨Ý;&o×þ6ï»?®XS£ë˜¿ý§U(¤i«@LÑãÖcwwPÚ`îÚŠ´²"Û?Þ±æªõÿ¿3JZRsijÙjª1ðØŠ*]BÊŽë{!ðöîîïî¾ÇítÌgß^ðDN‹å¦ìŠÝ=$*Ú*G$ncãjm%«r×0…«ª½&·qèbKÍÆˆÕó›Iʘö~çÊ]ÓŠ²*Ÿ”í¥ fxUj ±V5_–h«@ü0T:.îšV²ó=Ð%Ç1tѺ¨Ï?ñêìN™QÒêl{õåÎωY¥ä«—»Ö9–^PÞZѲo^¯^ešà<Í$eù‡FýmÒ­ªäo€3IYVR3´U –èq OõåY™…žý Íe,Õ–ëZHÏyNsŸLMR{èepÞ–ÖBÞR±b›ÿ¹;å®g†W¬|^Y­•-”;Ç”Íú†WÚ:e×Z»¬¼–rCVÀé%rº™_U±Ýæým2=¯TÅ×[׃„D[bèÂöööá¤+1IwïÞÕ7tÿþýIWŧwêâ)˜§'‡¡R€ q îq $–²ÇÑãô¸Iº}ûö¤«ðD±ªôÚµk“®xž*5þÉÐe¡gÛn"IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/cartesian.png000066400000000000000000001436261465265754400211610ustar00rootroot00000000000000‰PNG  IHDR±7W pHYsÄÄ•+ IDATxœìw|TUú¸ŸIB•®ÔP ‚(=QŠuAWEY±­…µ ;;.Š`ÅEýÉWtYAÖŽŠBˆºÒ¤…Š ôBrNfÒ§Ü6¹ïÃ'Ÿ’™sνï½ç½o9ïñíÛ·Ï@AA¡âœ€ ‚ ‚ îG AAA*D AAA*$Áé‚ Ñ‘3c$#¦d«ÿ¤¤1-5ÉÑñ‚ •1ÁqrÈÉZÈô©óÉÌÎüÚïÇß²'C%“”˜èØè*?rþc“r²¦3nê²K‘[ÏîÉ L¹dM̘ÌÒþâÇCîcPR"r¶A¨ŸTUÉÉb¸1df—ÿ±”´i˜íD¶ßKÃŒ‘#Ð]ºÂ3îàù7“ÒeéÌù¶çºÊbÂÈŠäægèø± ´èi8–¢ROzIsr²˜ÂC­)rþc“f1RHŸŠ.ädÍ`úÔ)"·²ðeüØ*ºl8gg2e4Ÿ–Š{M AœF ApˆœS‹<´÷Ž&&&‘:vƒfŒdºã3ŸDŽÆ@§‡q’ÊþÝu¾M#g!ó³ÿMI  ‰IIMJ¦û„él³}p1Fb©cÓ`°6 33¡»«£'‚ 8‹‚àYL/Ì!R†”™"8p,©'ßç̘À¸ùÅrºñã÷·¤çAA9ÝEÓTüCÇs_ó錛šIvv7zû‘ÜDæ>E§¦½Ž9Y̘>•ù™Ù~Üï'¥ç}¤°òô–¾Nà¾Tåá N™ðÏØ“m˜s\ê;)CKŽ­$‘5„²¦cjð9Á?¥'C ¤DZ}ÈŸ/ïØŠÊ¤Hz•?…¡-Ë8ÊRÏwøç04ùKS®«ŠØ²-‡’'=‘¤ÔT’J9Ö±EŽ+(Ý(È_þµœÌBS3yèHX1ÙûSÒõC~ƒ†úÉÔÈ\@VjR êàÄ1„{ ‚`b8‚älcKÐSº‡¦ü·oÕŠ8˜l²³³É“ÉÖ2rñ³§Œ`DØcœÁÈS‚·n,›Ììdn äu—™CMv6,4°ÜÜióŽ+›Ì)#ØBÑÄ’ÇÙù/óœMvf6c2ç\„ûùàO”&³¬ .~¢³3‹>ĆI(ç0Rù”J×U¨ã<üþZöìΠä$kÙIîégÊÉÁgÏ_HÎÀ“i:ä°0(táï™\¸->>u-'‡6°³TyŒÁ–?ÙÅò¯²3Ç0²E×z$6o …#ÍdAV*IIC÷Œ Ö#û8‚lßZŠb ?)CÓ?mÓ¦McÚø4†úÍœ:ƒœ Û¨Éc§1>ø‹)iª½iÓ˜6-•$²˜¤¼SÒÆö—èŒ9@Î ¦>hù:~Za[ãǧ‘﵂ {þÂò?ÑùÏaƸÀ9ñ§èñŽ'­ð¤d3eIJ"ú|Ed1!ø‰6%p¾ŠÈÒ$ŠžÃPä£R£L»®Ê"q CRJþ:;;“Ì)c1b0ƒGN(l#1¹'…#ÊžÏBÝv‘”'?=“C¼–m:ÎâÇWÆ¢ ¯õPhÖ"pŽ qâ̾gA01!†HJKêÀ¤@ÙÄÄ$–öU ÐCæ´P?f-äÿû‡2Hç$&Ñ=HÏ_˜Sì!<›ù ³ÈÊQj@ÅÞÁè+øÁÂ"²¦yöS’ªÇ›HÒ ¡A^™,ÈŠàóÅ(!³`™BZj’)å3C9‡‘ʧá\Wå”:ñCSJyØÕMd2eÄHõP[ÄÐj;øºÕ©j&\Ë@TÇ,"ö (i' ™´Ð¬ñèp⢼gA°IU'8éáËû‹'÷X0Ÿ-[(–s^-š…õ™³-(‘'{ #O)õsÙ[·ÃÀî¤Yø‘=e côÇý~R†*•Óc”Ç•HR÷Ȭ¨æäI"8ÿEΉ¿Í‚ÿ˜Øœàd-ÛrÈ!¼Ï—°æŠÉ¬Üþ£!¤s¡|Š·ÎuUÁ›80•±SÉÉÉbáÂlŸY¬’R6S¦g105©Èqét¥í ‚Ì0ª–dƵîq“d<‚Ó¬hÙ¼0·?©{KL-UJΉc÷“Å‚`?q'8©5™!¹Ï²˜0r#ÆL!33;â‡7óI"u|Cýþ’ÊV¹ÍÊ=<Ž+¢óïUÜzÝ)“80•Ô±ÅÒh‚Iêø}ö¦ge°R,q‰öZŽMŠ<°9‚ E‘ˆƒ 8‚ ÷:w3§2cPR©i93F2½ùXm›Z¤výÐñƒHNL$±´³QRd±dpÝ÷2¿ÄÀ±I rrrؾp:S§d–[.È"5©ô§‘œöW€ðÏjð9ÉÞJy>ñ–ÍI$¼ÏSA¦zbý›‰™ò ûº*¬ Œ\ÐûJKÕJlF ?¥„’ŠVÊ3&ð§”îEƒ=Q\Ë…M„uœQ¯Pˆ’âÆNžŽ!œk\Ý3‚ ØDÁ!’Rƒ½£ÙL1’ YA 8'‹ #ÊEão¡Þ(î-ŒÌw]ÜC;nBV‘Gƒœœ,fLÉÈ9êAnä„ \ðD’¢§?x¸!&Ö˜}\åöùO”¯ÉÔY… :³&Œ)²þ {RŸ¯ˆ" X3™Z¸*5‡…[³ChÀ•O4×U9dgŽaÄH%¯À'sÈš1.(GÞÏÐA[d‘4¥&âk٢㴜œ“;pþB­œ9³ïALG"‚à*-‚šæ*¢,nQo\Ù9Ç¡’˜Üÿ]'=“1#tϪ}êø¡l9YU%;s #J˜èÉád¿ø‡RRΊR³+tÂ;ÿÈÀû†2_Ÿ“)cQb¨~†Ž×‹ÏÃý|$価ó ]†Ôj•™×U¹d—'/µE‘Ë.1™žþ)EËÊú{’\ìÒ õZ¶í8ͦ,úSH»/øZLràL¾gA0‰8‚“$&‘:v<ãÓRðÏ«öûñ§ %müxU#?)U}®ÈgRHa9¡ÄŒ?´d¹TðßÇ“64…)ß~?))C’œͺ34¥ŒÏ McüØ ”¼ÙÇ᜜“1ïµþl±ª;á~¾¢á[¢š?%4 ʱ®|̺®ÊÏø4†¦øKý¾>¯%7’K,Q JïÝPH8ײÕÇi ~üþ†¦WÇVâ”9p &ß3‚ ˜‹oß¾}†ÓƒAË)².#h‡gA!$$â ‚ x€fL ʵ)¾(ZA¨1A„ÊO‘¢ƒönABF A¡Ò“³p~P•V©Ê#‚ >Ã0¢^ã‘‘AïÞ½£jcÚ4¸ñF8r¤äßzô€3 Q£¨ºL"y<þ8<óLé¿õVxýu¨RÅÄ ¦cÆ=.ÄÌ™3‡Ñ£G;:Ž‚HM…×^+ýï÷ßÿúĉ ,jì¾Çÿø†Ù³Kþ­jUxûm¸þzÛ†ã9dN÷fÊÛ”é6ÚÁ|ú)\}µ2.º-‚}û`Ò$5üðüéO°w¯£¢%y0þþwؼ~û yDýnÒ$e]y)jÖT˜­ZÙ7N!< .¹Dy ÿö7%»ò¸ñF˜<úôQФ¸ñ(‚ý8q¸â ]gþèÙæÎ•ùÃÍìÚgŸ­Ò’þïÿÊ_Ãpø°úlNŽJIÓéi‚ 8‹cI?‡ÖI¯¼R¾ÑÊc=`€Z‘–fýø„ÈùôSe4Ôª¥¢ ñòËê³sæÀgŸY>z(¼ï¦¤@÷î*êðî»ÖŒO„б=UÉ0Ôš€{ï ![ãÆªî?ȦS”%ïY³`ùrhÒnº)üvo½U³fÁêÕÑQ0 k{ 'ä½e‹Zã”÷Üþ÷¯½Z¶TQ‡Ï?7|•+e>a‚*»}õÕ¥WQªˆP¯¯¾*©¬f!sº·0SÞ¶o—•Ë–Aƒ*¥%RSÕë¨ÔÁ^Ê’·^ÈvçáE4õë+å\XÁÈfAÞ yÿû߇Ë&MÂÿ~B‚rFZ0-„‡U2?p 0Ÿë¨r¸  ®‰uëT !zdN÷fÊÛöT%j¼é¦È.Ú´Që"rsÕ&c‚ólÞ¬¼…qq0|xäíè ŸÞ{Oí*Bå'??0—ëˆr$Ü|³ªÆ4gŽD-ÝÂûï«*Š))*=9ëVÄ©$ÎbkªÒ±cðá‡ê}$©,ÁèÍÅÞzKB—vSš¼ß~[Éášk aÃÈÛîÖMÕîÞ³¾ü2ŠA ¦"amoa·¼çÌmÛTÑŒhcõêÁuש÷ò€VÈÜ0T$ àŽ;¢kë–[ÔëŒpð`tm 2§{˜­ªôñÇj?†N`éÒèÚ:qš7WÊÌ›§J¶ ÎPP òV·lQû7”¶Ëk8<ÿ¼*é:xp`giA¬%==½Äï쪪tóÍ*âðØcðÔSѵõÓOpÁÊ‘“Uª˜2D!–-S%×ëÖUº:Ò,M÷îðã*"}à æŒQ„ð°5UiêTõªóØ£!!† Sïß{/úö„ÈÉÈPFC‹pÑEÑ·§7úâ âÁzF]äÇ.ŽW^d¨xS°PHNV¥YwïVå¾ç˜]½7Ã[¨1¯MABÇ–T¥ü|•¯æz•@Õüå}8zÔܶ…Ò –÷ÿ«^¯ºÊÜ>Z·V© JÝn7 amoa—¼úI­E8ýthßÞܶµSI ,„†™2ÏË D’ÌJMÖüõ¯êuæLIQޙӽEÌ¥*-\¨Êkúýæä°Óºµ ƒ:$éJv¡å›b~?—_®^%$í<ÖövÉ[ßÛW^i®Wžé¯¿†Ã‡Ím»2b¦ÌçÌ?þPúÞlƒ°eK8÷\¥óçÎ5·m/!sº·ˆ¹T¥¯¾R¯ýû›¯ àÐÁ¾ûNí Ú¾=œq†ùíkÃA_?‚ T.tñƒK/5¿í¦M¡G‰–9Ä^ôÚ4³#ÑšþýÕ«ÎdÁ>lIUÒ“öe—™Ñ[It>ü矫©`-ZÞ:ÇÔÌÜä`Î?_mè´~=¬[gMBhHXÛ[Ø!ïíÛaùr¨Y3ºMßÊcÀõ*ùðc–Ì #°®äÊ+Mi²úYBÊíFŽÌéÞ"¦R•öìÅ‹U ç>}Ìè­$íÚA›6°w/ÌŸoMB€Þ½{SPPÆ:âc6ññpÉ%êý·ßZÓ‡ÖövÈ[ßÓ}ú˜Sã¿4ôšº/¾§RE˜%óE‹”Qؼ¹ª¢h\uêÀêÕ°y³5}TvdN÷1•ªôÝwÊ‘’5jX×~x• ö°x±Ú ´E UQÉ*´áðÍ7Öõ!‚ýhÃÁŠ4%ÍYg©jo{÷‚Öõ#øì3õjźM•*(ÕwßYÓ‡ ¥cyªÒ¬YêÕŒ…ËCrí###£pQãWX§ pÝÌž 'NX×P>ÖöVËÛ0º¡_?K»*LW’" åc–̃uƒ•èëF¢Ñ‘!sº·0SÞ>Ã0 ÓZ+…ÓO‡M› +˼M`JãÄ 8í4µ§À† ª_Á:’“•L?û,`´YÅ™g*™þø£Z÷ ‚õ¤§§3zôhKÚ^µJUhÜvì°Öù0güéOjÃЕ+­ëGP)J‰‰*»à? zuëúZ½ZÉ´Q#µÑœ•× ,MUÊÎVFCíÚй³•=ABôí«ÞK kÙ½[å±V©¢²ÕGAˆ}¾ÿ^½þùÏÖ?ðõì©tЪU’o5z±òEYk4€*õÚ´)üö›2"A°KS•ô¯/ºH-tµ)ßi&¬Æ0”ÑpÊ)Ö÷÷ç?«WÙÎ9$¬í-¬–·vXU0#˜*UsˆìõS6fÈ\ë^½6ÍJ|¾€ãJ¢BèÈœî-b¦ª’~гC9üå/~·§O/²ys;.¾Øžþôå5ožTFq ©Àá-¬”·a@f¦zoõÚ7.ß)EÊ&Z™ççÖ­X¹à=m8èëI™Ó½EÌTUÒ7sJŠ•½hÚ:tP»„þðƒ=}z Ã(_«öå(N“&ª2Êáðl™=} BLóÃúõÎÔ­N¤$«V©2݉‰ö­EÓðY³¤È‚U,Y¢ªW~ºZ—fúÙ"#Cé&A¬Ç²T¥œظQå–vìhF/¡¡+-ÈÆ0ÖðóϪ kóæ*ÇÔ.´‚Ï’3HX;†Ø:•á£gEÕ„•òž7O½öêe߂֖-Õ^?¨¢BI¢•¹®ndG𒿬³ aCµÎA6 ™Ó½EL¤*iåн»=ë4ÚpÚÎÖ CÑ}ûÚ[Å¢gOõª¯+Á^$¬+üÀ˜[fó§wÒéE+VÊ{î\õzá…–uQ*ºx†”ï,he®Ï«Õåuƒñù” ²ùk¸Èœî-LMU ¶BÌ|¯oâæÍ³-i¿¬÷½z)CeÑ"Uή~½ò^z±¡]ýöè¡þ?¾ I;}ä½¼wßû­<{ýhH“!-`'‡Êý|zzz¹?VSë}OÛu~ôœ¥JÎË«ò¼?ræÏ7ˆ‹SëìCÓ¦e:}ä½¼¯Ìï5¦ìã‘‘QšéÚUå<~÷} à4½{«”–?†íí»2sü84h ÖlÛ¦r”íÂ0ÔZ‡ß~ƒµkUÚ`¥Ýã‚»øaL?F“ηi=€Óo2þw”.Ì™3Çô}tÿÚµU>¼Ñè½{Õ^?ññê½áb‰hîño¾Q)Jݺٟ öÓOpÁjÜš5ööËÈœî-Ì”·%©J‡Ãòåj‚NN6£‡ð(îYÌ!+Kɶ];{P!ií¡\°ÀÞ¾ k»Ÿ­lÝÌM¿~ýè×o4³ØÀ¤[ú1&‚BVÉ[ß»\`¯ÑP¿>tê¤*³IÊcI¢‘¹.‡jǾ>ÅéÒEm8·v­Zt/„†ÌéÞÂõU•²²Ti¶ V-+z(Ù0Ì´r°«¼nqÄp„²hÁ7¿åÛoõO:}9ƒ[ßù–´N-€®vwÁÎô¯×9ˆn0—à ýì¦JéøñGûû¯aIU%}óvïnFëᓜ 5kª²»v93†ÊˆÞ—£iÓ•Žô¯¯')µk?¥å9 •«ä­uƒ.v`7²aXÙD*ó`ñbˆ‹sN®Z7üô“3ýÇ"2§{ 3åmIª’Ó†CÕªJ ²Û°9俨ÿñöŽŒ¡kWHH€•+áСŠ?/˜‡„µ½…ò>~\=`‚3)¬ ôBB‚Zwà€3cp+‘Ê|Þ<((PQ$'2 Á’ˆCèÈœî-\ªd«ÿüóÍn=tt:Õæ°p!;íÛ«†NP£†J+(<€‚P=Hû6²…ÑV±b…r@œu–ZoàµjAR’J¥•òæ sN¥°BàYcáB¥A°ÓS•¶mƒ;•b°k÷ÈÒÐÆ•æ •ÃE9âLJR¯’¶ k{ +ä½p¡zíáðš ½„D£‹©Ìõלt`7kM›ª(Ò¯¿:7ŽXBætoáêT%­ºt±wƒ°âtë¦M­Z»w;7ŽÊ‚Þ±¹W/gCœÚpÐ×™`ÖöVÈ[ß³N¥)i´á »Ð%™<XßàTj²F_W¢BCætoáêT%]ÃÙiåPµjÀ³%¥÷¢#//°¾ÁîÝ^‹£¯+»k… ‚úžíÒÅÙqô꥜Z‹©òÒBä,X Ò¾:wV{s8‰®¬$†ƒ X‹é©JZ9hϰ“¤¤¨W‰ÈEÇ’%jgÐ3ÏTá`'CœíÚ©ŠY[¶¨Íà{°¶·0[Þ‡ÁêÕjarÇŽ¦66õêÁyçÁ‰’òL$2Ÿ;W½j]ë$zƒ¬ ™Ó½…kS• C=d‚; í—ˆCtèó§Ï§“!΄åÝ‚Àµ&X„µ½…Ùò^²Dé‡sÏUEœFž~ð"“¹N÷rƒáе«z]¾\…BùÈœî-\›ª´iìÛÙ¿³pitï®v']ºTåb ‘¡•«ÓiJ’ÃAbƒE‹Ô«~¸s=—‰á9¹¹´ ]þÜI4¿ŽUkA°SS•ôƒ\×®Î.ŒÖÔª¥ÂâRß9R #P¶P+[§CœÚpÐ#‚õ8-sÁ^Ì–·NÑ÷®ÓèÝŸ~ï´&\™/Y¢Jt·kç\‰îâèLIWª™Ó½…kS•ܲø-B]°ÀÙqÄ*ëÖÁž=и1œq†úÓ!Níµå`NË\°³å­ïU·Dš6UóÙ¡CðóÏNÆ„+sÂêÔnÑ¥¡¯/‰FWŒÌéÞµ©JK—ªW7¬oÐhÏ’löºš’®DâÚ´ ,þýw§G#By>¬jë'$¨EÉnAëq*EF°np b8‚õ˜–ªdÃA/^uÚòã²£d$håìUr:Ä:©÷Ë–9:Ïà´Ì{1SÞ+V¨”ÇsÎêÕMk6jô¾RÌ”·¾Gݔ ÃA¢ÑŠpdž »v©B(:…Õ œzªzþ8tÖ¯wz4îFætoáÊT%­ܲ0:Q‘±w¯2¶ªUsW ãÑQ.AÜ‰Ö n›CÚ·W›–mÙ99N&¶Ðº´{w÷é{íTÝ Ö`Zª’¾IÞܧ4´á ¹¬á¡+QuíªvâÖ¸!Ä©¯3Qöà™ Ö’žž^äÇ,–/W¯úÎ-ÄÇè÷¢»Çu$ZëV7!†ChÈœî-Ì”w‚ôîÝ›W^QïÝh8è4Qá¡ÏWqåà†ç¹çB\¬Y£êv»aS©ÊŒd.XËèÑ£‹üß ã!?_囃»Fkºw‡o¿Uƒ;=g çw³á ŸA´Á*”ŽÌéÞ•©Jú&u£áСƒªÂ³nìÞíôhb‡ÒÖ7¸…5àì³Õ8Y»"îdÝ:eØ·l õë;=š’è…½âT ƒU Û„÷ìËŒ¬k1Åpøê«ylØUª¨Í`ÜF•*±²\häç«Í‘ ¤WÉ-!Nñ,Ù‡[d.؃YòÖ÷¦£ 矯rô—,Q;!{™Pež•¥6;*‡œÛhÝZ­]Ù¹S-à_í IDATJGætoẪJuëö*,·œ ï&$—5å)·„8õÈÞ`J°·È\°³ä­ÜÄpp?¡ÈÜ0b餯7Ic-™Ó½…ëR•öìi¸[94n¬r–Å´¡Pžáà–gÓ¦jß½{¥»Õ¸Eæ‚=˜!ï½{aÛ6UÈàÌ3M”Eˆá Eæ7ª#Áé§Û0¨ÑÏ".™Ó½…«R• #psºuœFDhì߯Ö8$$¸¯öz0>Ÿä² ‚[ÑzáÜsÕž n¥];¨UKm·c‡Ó£q7º`†^TîVÎ=W½®^ 'N8;A¨lDm8lݪ46„&MÌ’u$'«W=ù ¥“•¥^»vU»FÇM!Nm8ˆgÉZÜ$sÁzÌw¬8”âãeE½¬B‘y°áàfêÔ¿_UÊZ·ÎéѸ™Ó½…«R•bE9@ÀpˆCùèó£ÏWqÜâÃÁÜ$sÁzÌw,éý ìeÃ!™ÇŠá®™Ó½…«R•‚ÃÑn§sgå]Z½Zmb#”ÎÂ…êUï}áfÄpwòË/ê5 í$ÑÑV¡$¹¹°t©zïÆßŠ£ŸIdM£ ˜KÔ†C,)‡5Ô¢)ÚÝeaá,¯’›BœíÛ«×5k$—ÕJÜ$sÁz¢•·atC,8•ô\·h‘ÚÜÌ‹T$óåËÕ~mÚ@½z6 * ´n§RéÈœî-\•ª¤­y}“º­ ôñ“å(»ØÅ6¶‘C{ÙKÎj­mÛÔn›õêÁYg•þ7…8k׆–-•B[¿ÞéÑT^Ü$sÁz¢•÷¶mjíÛi§© qB¥ý€ªL œ>¼ù¦½!éßø¹Ìe‹ø™ŸYÏz¶²•#)ñÙhBZÓšs8‡®tå. =í‰3§zn¹èó’œìîªÁ´o¯*¢¬\ mÛ:=A‚J±2tï¬òøÏ>Ûúþ Ö°†øÅ,f5«ÙÈFv°ƒ<òJ|¾&5iNsÎäLÎå\ºÑ^ô¢)M­,EuC,pöÙjé àèQ•q BôDe8lØ òO;-—zõJ)¿ãBô¤geÄÁÀ` K˜Æ4>çs~¡l—G=êQ…*å(‡9̶“ÿæ2·ðs iÈ¥\Ê_ù+—r)Õ©nÉØ+JSòr“·âœs૯”giÐ §GS9q›Ìk‰6¬­½¼çœcÂ`l"99`8Üpƒ5}ä’Ë×|Í fð_±‹]¥~®:Õ9…Sˆ#Ž\r9ÊQŽp„_Oþû’/ ?Û–¶ô§?ƒÄùœÈ,µŠîñX3ªWWû‡üú+¬]ëîÒâN sº·0SÞQ«V©×.]bÃhå…¨]6oV)9›×ööð.ïò6o³–µ…¿¯JUzЃît§hG;ZÑŠºÔ-1Éç’Ë6¶±žõüÌÏüÈüÀì`“Oþ«C®á†3œÎt6ïå)·M6:MNG¿óq›ÌkéÝ»7sæÌ‰øû±– 9oÑ"óÛþ™Ÿ™ÈD>äCþàÂߟÆiô¡]éʹœK[ÚÒœæ%C:}i3›ù•_YÊR²¹ÌeÍÉcË™œÉÍÜÌßù; O¹•w8 æ×ªU¡cÇðŽÝIÚ·W†ÃªUb8GætoášT%ý KÊA×ìž=[=$_qEômnd#cÃd&sŒcœÊ© >ùïB.¤¡WÕ¨Æ'ÿ]Â%€R«YÍÿøñËXÆ['ÿ]È…<ÌÃü…¿DìiÒäç”f,TTÒèëO²‚ 8‹¾c%…Ô¾5>,[¦"é¥íaßñÏó<ßñ]áïÛÓž! áJ®¤Bš·}ø¨K]:œü7˜Áä‘Ç<æñ Ÿð!²žõ<Ê£ü“r=×3ŠQ´%úüÍŋՂ÷N¢?/vÒ¾=̘!••ÁL¢Jš×Ê!!áW3Æbf•ÞÛÊVnáÚІ·x‹cãb.æ>a;x“7éK߆²ðáãÎáa)Kù…_¸›»9…S˜Ë\.ã2’If³¢êgíZU¦¶U«ò#1n«Æ Ó!Ö®•ÊJVá6™ Ö¼ #àTŠ…ŠJš:u”¡sü¸ª  ™d’B ýèÇw|GuªóþQ8?Îãt¤cÔΞ*TáOü‰—y™ílçs>§?ýÉ#wy—ö´gÃØÄ¦ Û*Oæ±T¢;q*•ÌéÞÂ5U•ôÍ8p`3ÆbÑ®s8žà ÚІwy—|òÆ0V±Š¯ùš+¹’*T1oÀÅhO{^á¶³x†4d‹èG?.ã²"iRáªrp[ˆ³V-eì?7:=šÊ‰Ûd.XK4òÎÉQˆSO…† M” DëTÚÈF2Þôfó¨Cžæi¶³×yNX—/O<—s9ŸñëXÇ­ÜŠïó>miKi¤ì ŒÊ“y()¬nD ‡²‘9Ý[¸b¸üü€W)–ÀAàÁ8+KyÇÂá ¾ íxЧ8Æ13˜µ¬e2“i‡½qù:ÔáAd›xš§©IM¾â+Îã<ã±Â´©PÑÊ2Ö¼J¸EABd¤§§ù‰”`½+•4Áº!Žsœgx†ö´çüÔà ž ‡åQêSßüÁ–ٜɿù7ëYÏu\ÇqŽó/ÐŽv|ÌÇa·k £5mÚ¨ÊJë׫ô3A¢'bÃaóf8vLÕ¿^¶,¶B^Í›«Tœ?þÝC½—½ cýé϶pç1y|ÄG´ÁÙˆË)œÂ£<ÊF6r7‘GÏð ]èÂBB«„ªÜâÃÁZÜ(sÁ\F]øÓ§OŸˆÛ‰Åõ šH¢ÑËXFI…Κk¸†õ¬'tjQËš†ˆ?S˜BYt£9ä0ˆA\ÍÕìfw‘Ï–uïÜ [·ªT®6±•\@µjª²RAJeÈœî-\‘ª¼C¬…¼|¾ðBÒ³™MG:ò>ïSƒŒe,KXBOzZ;Ð0iLcÞå]æ2—³9›Õ¬¦=x’'É'¿ÜïææªE>ŸZ$Xn”·ÖâF™ Ö¼cq}ƒ¦CU9hÍ•nUð/þE2ɬ`­hÅ7|Ç|H3šÙ3àéF7~â'&0êTç#>â<Îc&3 ?S–̵ŽìÚUyïc ­¤ê^QdN÷®HUŠe¯„’Î'ŸtÒù3f+[I&™å,ç !º‚T–Ò‹^,e)÷r/ùä3šÑü™?³ƒe~gÅ ÈËSò¬]ÛÆÁš„(Ap±¬ªVUƃa¨JBe±›Ý\ÎåŒbyä1œáüÂ/ô£Ÿ}ƒ “8⸇{XÍjzÑ‹]ìâR.åaæeW•ˆÕ4%èA0—¨#眛!/íU/Ëpøƒ?èOþÉ?10x˜‡™Ï|Îâ,û5¨Á8Æñ5_Ó˜ÆdAº0y¥~^Ÿ‡nÝ*nÛòÖ)«W«°´`.n”¹`ÑÈ;8‹è9°,Ý Ó~f2“úÔç3>ã Þp<-)Tüø™Ãžæiâˆãyž§ýøä‡OJý|8ºÁèëP¢ÑE‘9Ý[Hª’ hÃañbµÐ;˜Õ¬&‰$f2“4à¾áYžuu”¡,.æb–²”RØÉN.â"þÍ¿K|.8]n”wݺд)= [¶8=šÊ‡e.XG¤òÞ³GýÔ® ÍÜ•­2ú¹´à¦0… ¹-l!‰$–³œþô·w€&O<ò(s˜CC2‡9ÜÓã–±¬Èç £òq(ŠÌéÞÂñT¥à:ݱêUjÜZ´€#GŠN(³˜Ewº³‘t KXâêðs(4¥)ßñ÷pyäq;·3’‘EÖ=h%ŠáàVDA‚³ë…X«¨¤ÑÈÁ©Jó8×s=¹är;·3y´ …3ƒ4‰ ¹e,ã.`+[éE/>ã³Â¿oÞ ¿ÿ®Jë¶jåà@£àì³Õ믿–t ‚>;wÂþýРªÓ«!/½ÎA?4Of2—r)ûÙÏßø X@+bt¶,F L`oó6ñÄó"/r ×K.‡«0n|öñJ·HX|>™dÒ–¶Êz‚e>˜ÁLÜ0 Ô¦;x¦ù?( vIc-‰ÌéÞÂ5©Jmct.50xˆ‡Ç8|ÝT錺‹þì𨜡ÎÁDòÖžŽ¯Ê Ö;ƒ¾ôåbó©;..`ÌŠgIìeÝ:Uq¯ukµ‘Z,r€\ÌÅüÒæcâjæÄ–fœò[k§‡å§,N ®ÛÞâ-F0ÃáQE†‚`aGލ:ù ¯R¬…¼žæi^àâ‰ç¦¤ö@é5»½À’%JÙwèhЦZ+V°‚¿ðr°Ìï¸YÞ²ÎÜ,sÁ|"‘w¬;”Žr”þô'‹,ZÆ5'¹k‘È[Gùbq}Cy\ÅUÌenayÒ^ݪE÷s¨Ì—¹Ö ×$ÁÇ|L<ñ¼À ŒaŒ£‹Ÿ/°@Z¢Ñ ™Ó½…£©J±¼øm*SI%€‰Läj®¦K5©¬X¹¥?'Wj´rèÖ ZЂoù–&4a6³¹žë‹l Hª’ 8ƒ¾çb-âP@·q_ð hÀ,fq:§n†éÅhtAAÀ`êÚ®à &3>æaÞå]g¢Á"Ž8±òšÍl†1 ƒçxŽ[¹Pá˳φ¼<øùg‡éÁ†ÀœÁ×|]¸ÏCiy­n–·(kp³Ìó‰DÞ±qx„Gx÷¨IM¾â+Ú¡6¡èÒEýÝ+†C°ÌýT'©¢{\ÇuL`@¡¡Kˆn(ŠÌéÞÂÑT¥Ò”ƒÛC^+YÉ@’G#AiEþîUÏÒÞ½°~=T«(WÐ|ÆgT¥*¯ñ/ñR‘ï¹YÞ:½aœ8áìX*n–¹`>áÊÛ0bÓpx“7Ãâˆãc>.RrõÌ3¡Nرrr¤M˼¸CIs7wó(’O>CÂbb'KÖ¿EætoáhªR¬)‡ìä2.c?ûÄ ^⥻~jÃÁkët(ºC‡ÀzMoz3™É<ȃLgºÍ£‹ŒZµÔB¸¼|Lb)¤°ƒô§?‡móP'9ë,õºaäÇÖÒ=K9Ý[˜)ï„p>¼kWé^%7†¼ nã6~â'ZЂOø„Ô(õ³;+e÷Ë/j£¥¬ÒQV8:˜‡xˆu¬ã]ÞeÈ"Ë•ò¦Møþ{ñ,™‰Ûe.DÏèÑ£‹ü?ã!–"Ñ¿ó;Wr%9ÈU\ÅsÞà zÑ‹rÄ 2Ë´º‰8‚½GÜÌ Np5W³‘t¥+ïñ^‰ÔÕ`‚£ÑFìm_«W+Z«Vå§5 Ÿò)u©Ë fð$OÚ7ÈÑQÑ ‚9Á¸-ä5‹YŒb“™LG:VøíYòJºÒîݰy³Š®/Œ.jTc:ÓiF3°€Á;Û3ÈÑ×§(ópÛ=.XK¸òÖºÁí‡QŒâ{¾§1ËBkü~hÐ@m¶y³=ct -óPJš¶´åC>ćtÒù„O,aôèRÁ–9Ýk8VU©,¯’›B^›Ù̆P@ò(ƒÒ÷´gÉ !iH;«]À+¢ø”O©JU>oú9“˜dí£@_Ÿ¢ÌÃM÷¸`=áÊ»,§’›ø€Ç8â‰gÓH$±Âïø|ÞYç e^ÑÚ·â\Ê¥…é^ÃƯ¸×c#N¥2§{ W¤*¹‘\rÄ þà.á’°B§^QšPÖ7§+]y“7¸‹»\[ŠÏïWÆÐ–-pì˜Ó£„ÊM~¾Zp ª„©YÉJnã6^æezÑ+äïê9rÉ+Fæ>"Ñ £Å qƒü¿q˜ÃÖ .JÄp„è©T©J÷r/‹YLkZó„µP«cGˆW5ž»sÎ3•pÂÑÁÜÌÍ\¹ýJŽsœÁ f/{Í\”$$Àg¨œdý@#D‡[îqÁ‘÷¶mpü¸ZxzÊ)*BôÃìŽ0Œa…%XCÅ+U÷2228~–/WÿG7øðñïІ6¬d%Ã^bãP7 Ÿ]d8™Ó½†#©JÃA/0Ò¸!äõ!ò&oR…*ü—ÿÒ€a}¿F 8÷\uœ^X ­•`¨áè`þÛì¿t£Ùds#7ºZAˆgÉÜp öŽ¼Ý¼0ÚÀàîàW~¥=íyƒ7Ê] ]^Y Ý»woV®„Ü\åx©_?¼ïסó15¨Áû¼Ï¿ù·5¿_íϱe‹:N/#sº·p$UiÛ6•öÑ´©ªBä&Ö±ŽÛ¹€ L aÄXƒðŠgé·ß”¤µ˜ÎtN!üHóæÐ¨üþ{å_ C  =í †Œ`+L™9T©§Ÿ®„7:=AˆMB6ÊŠ6€³!¯\rÂqˆ! á-¯¬sÐÊ¡Kå} —ŒŒ üøy‡wµ×ÃBš8ÂèÃÁ\$¬í-‘wyºÁI~ægRIàMÞäl"+ùäó¤+³nÈÈÈ(Ô á¬o(ÎP†r ·pŒc aˆëÖ;èu8^FËœî-IU*O98òÅ(–²”Ö´f"ÃCãåÊQ‘z•´¼2TRÉ#k¹–0i„Ñ#ÊÁ\$¬í-"IUr“áp”£\˵ã7s3CU{^¨º×»wïˆF—Æ+¼Â9œÃÖ0‚ÑÎD´nðºSIætoáHª’¾ÉÜT5ãK¾dH ÿò_êR7ªöÎ;ªVU ¤4i.Ä,åð/ЉNld#÷pOô š„(A°‡õëÕ«›Ö8<À¬d%gq¯ðJÔíé…•٩”›«Fû|* 5©ÉøÕ¨ÆÛ¼ÍG|dÎ M@¢Ñ‚¦N„¼v±‹›¹€gx&âu ÁT­ªŒèܥ÷¢5‚å]j|ȇԤ&“™Ìø #Œž-”çsÞà ªR•©Lh]Cq‚ ‡‚‚¨›s%ï½·„¼<µIZíÚÑ·wçñ"/p;·³•­Ñ7jâTRÈœî-MU*Íp°;äe`p ·ð¿Ñ‡>Œd¤imWvÏRNŽz˜®[WUΈ„âònK[Æ2€á g [¢fÔÄÇd¤$kôHXÛ[„*ïìle<´hÕ«[;¦Pv(=˳t¦³)í6kMšÀ•÷³ @…Â-Ñ]wr'—qûØÇ Ü@Î[]qPÈœî-lOUÊÏT pCªÒ[¼Å—|I=ê1™Éaí×P•=—UW—.ÊKhÃNú³ŸýÜÈ¢ Áè{+R'„™ÜÊ­ìaq÷qŸ©íWöâZ7˜‘ªñáã]Þ¥˜ÃWTàóû•ciÛ68rÄéÑBìÒ÷Ö­jƒŸ&MJ/ÅjgÈk=빟ûx×iA SÛ¯ìÊÁŒõ ¥ÉÛ‡ILâ4NcsÏøÈ;0 1ÌCÂÚÞ"Tyëõ np(MbŸó9õ¨Ç{¼gªC *ñŒŒ UýÈ̈@#ñ6oð(²’•æv&UªH4dN÷¶§*UTnÏ®W>ùÜÈáWs5×r­é}œ{.T«¦&”?þ0½ylj¶¢”-ïÆ4f“x˜‡YÚÈ;1Ée5 kÇ?0¦_?úþ gj„iå¡ÊÛ-¥X7±©Ð¡ô*¯Òœæ¦÷¡çÌÊ>r²³O!.:u2¿ýþôçn!—\†1Œ<òÌï$ ´nð²á sº·°=UÉ-^¥—x‰ø¦4åu^·¤*UgeS†ð–Ec8”Çp#7’K.7r#'8aMG! fôõ+•š­[ÙÔ7o¿ý–o¿ý–wn…IÏLµtIªtCÜÌÍâƒÌu\gI?:J»t©Jß­Lèc:çë6xÇ8üøYÊRžåYk: ‰F Bä„e8”åU²#äµ–µ<Îã€Zãp*§ZÖ—~¨®l;HoÚ¤¢(§ž ­ZEÞNEòÏxšÓœ…,,\4íúaF ‡è‘°v Ðbo¦õü·EkØ‘ánª’“‡Wy• 2hHC^çõ¨öò)† Õ¼yäˆ*Ù]™0³DwYÔ¡NaDúižf)K­ë¬D7Èœî5KU*Ë«duÈ+Ÿ|nâ&rÉå&n¢?ý-í¯²úx’“£[]‘¼ëR—óoF3šU¬Š¼³(hÙREvì€ÃîÚ¼4æ°vì±uë&8ÃÑ*°Pä­K±œ~z˜ÀF6ò0jÍ[CZÚ_eMW²:­ù3æNîä'¸…[KY’ˆƒÌé^ÃÔT¥`+¤¬÷+V¨ÒgžYög¬|? üÈ4£ãgy¿ ´Â¢EίUï§OW¾Ç¤$ëûª‘QƒÛ¸ãçªW‘O¾íÇ;o^FáÍÔ©‹Âú®¼—÷1ý~ëTž´¾7 ¡EŸIOO/÷§¢¾>úh!'N@óæ•eÿ1PÀà}ƒ9®áf4Œ¨pÞëëO?ÝnûñZù^ññKÂþn¸ï_àNçt–±Œ1ŒqäxµtÕª\[û•÷ò>–ßbTÀ‰†Qµªa€a8PúgæÌ™SQ3³ÁØ`Ô0jŸŸZÖO0ùù†Q»¶:æ;méÒþô'uLŸ}];¡Ê{Ÿ±ÏH4 Œ—Œ—¢ë4B.¿\ó´iŽt_i°òÌf¾ñ|ß¾ÆÿÙq sæÌ1þùÏ–û™™3Õ½Õ§OÄÝDśƛFC£¡±ÛØmKŸß¯Ž99Ù–îláÀÃðù #!¡À8vÌž>¿3¾300ªU_Œ_ìé4ˆÜ\ÈWÇm×1» ™Ó½…™ò®0U)'G•bmÔ¨ìÝ$­ yÜÆmå(×qWp…%ý'..P’®²„¤ Ì G‡*ïºÔe"xŒÇØÈÆè:ŽíYÚhו kÇ ?0¦ßh6Ýúo‰¼Tu(òvrat9Œb¯ð §qš-ývíªÒ<—-Sz±2°x±*œÑ©“jÕìéó".âvnç8Çù;/ŒHÛEÕªj½Ša¨M ½ˆÌéÞÂÖªJº\™Êá]Þå{¾§! mß 9Y½VÃaíZÞ:œ IDAT8xPíðÚ¸±}ý^Îå e(G8ÂÜa_çHÙ=ÁK˜c4„Š6ìÞüÍÀànîæÀ®æjÛú®SÚ¶UFʶuk)ZÇig/ðÍhÆOüÄk¼foçˆn„H©ÐpeÇèRs ¢d»x€UÆÍ.’¦²-‚3cÿM¸òÇ8ЀYÌb2“£@è‡QÑaÅ=.˜Ìs™l˜tKÐ^ýÁf¡ÈÛ)§Ò fð?þGmjó¯YVE©,*›nX¸P½Ö©co©¨ºÔ-,«þ°™Í¶öïuÃAætoa¦¼M‰8XòÁö±K¹Ô²ºÜ塽/ ªpf¬£•ÃùçGßV¸ònHC^æeàv³;úA„ˆ×•ƒYHX;è‘V¸‡CðO$чPäŠSÉlö³Ÿ»¹€çyžDíëü$Z7üô“í][‚Ö Ã†µµ½ï à*®â0‡¹‹»lHëÂ^Õ 2§{ GR•ì GÉ—Le*5©É¼a»G )=¿ÿ^9òãÍŒ8DÂõ\O_úò;¿îðj~¿Z³²ysåÉI§1ŒÀ¼h§nxˆ‡ØÁzÐƒá ·¯ã *Sëΰe‹Z¿ØÖ~»PûþÔ¡_ðÓ˜f[¿úºõò^‚ ¦f†@s˜;¹€tÒiE;•EÏWyDn®ZÌçó}GC$òöáãu^§ÕxŸ÷ùŽï¢HT©¢ös((PƃÖöÉ{Ç8z´ü¢fó#?2‘‰$ÀD&Ú6D¦Ó¡ƒZ\»z58àÈL#Ø¡4w®3÷xSšò<Ï*Ó`?ûmé×ëi¬2§{ ÛR• #`—·Á™!§xŠÍl¦ÁÓÚ„àt¥Xfùråmo×N-î‹–Hå}gñ0œáãXôƒ ¯‡¤Í@ÂÚÞ¢"yë{É®ßòÈ+,®0’‘œË¹öt\ ÕªAÇŽJ?ƺSI붤$gïñ;¸ƒîtg; u„Õ´n­^7n„|{‹:¹™Ó½…m©Jüû÷+Òi6¬M^ÉJ^äE|øx‹·¨Bë;-m8,Xàè0¢FçâÚ]5£4F1Šv´c=ë 7ÿ±¯{–ÁlìNaÏxV°‚V´âq·§Ór¨,Ñh3×¾ECqLd">|¼Æk,f±å}Öª¥Ò‘WeçAr ‡`¯’¯œef„@ îâ.Np‚[¹•óqx&ºuS¯Ë–A^ž³c‰­Ì2¢‘wUªVÒxŽçØ€õOó’Ë=ÖöÉÛNÃ!‡þÉ?xרIMë;­½V,–HÕ Nßãçq÷r/wr§-{;xY78-oÁ^lKUÒÊA‡ôÊÂŒÈ|@œÊ©…ùŽNÓ ªrìüü³Ó£‰³#ÑÊ»}¸žëÉ%—TR-¯¤!©JÑ#amoá¦T¥û¹ŸÃæ¯ü•˹ÜúC 2ëÖÁ¾}д)$&ºã’'iF3²IL²¼?/G£Ý oÁ>lKUÒ7ÓYg™Ö_©ìg?# À‹¼HXÛaĺ‚øã¥ ªV…óÎsz4þÅ¿¨C¾äK>åSKûò²r+°ËpøŽïø/ÿ¥&5mß´<Î>[¥ðîØ»i.nJaÕÔ¢V¡œæaËKw‹n„ð Ép¨(md4£ÙÉNzÒ“¸!ª¶ÌFç~Æj.«wçÎÊx03B^Mh³< À½ÜËQŽFÝfYèëwãFžÂGÂÚÞ ©JÇ9^¸gÃã±X³Û0JÍ̈ƒ™!¯žôdÃÈ%×R¯¢^§ãÅ´HXÛ[”'o;Ò”äAs˜¿ñ7.æbë:Š‚à4ÖXÛ`éRU)°];‘÷ÝãñÍhÆ"ñïXÒGƪ,ëþýj= —p›¼k±%UiÓ&õÚª•2Ê#’Èaó ð,ÏRŸúa·aÚ[ÿãÎŽ#\6m‚Ý»Õî®UÆ ³CœÏó<5©É§|Ê×|mjÛ/粚„µ½EyòÖQ;«FÏe.ò!ըƋ¼hM'&и±šW‚•+Mxh‡Rp$Úm÷x-jñ/j¡ô>ö™Þ‡Ïç]Ýà6y ÖbKª’Õ^¥gy–ml£ ]¸…[¬éÄ$ôäkÁéñž¾u)fÐŒfŒf4 Jç¸é}è‡IU„è°R7ä“Ï=ܨ¨ƒ¿ù˜H¬:•ôxݘÂÌu\GOz²‡=…©kfãUÃA"¥LÃA?`…¢ d“]èIz…Wˆ'>¬ïÛM°rˆ¥çœø½[ïñÎtæ6nc"¹Ÿûù’/Mmß«ºÁ­ò¬Á–T%«¼J™dòQ“š®Ù!º"|¾ÀÃw¬(ˆ#GTÕŒ¸8èÖÍéÑ„Æe\Æ%\Â>ö¦.™EÓ¦P­šZóqð ©M ‚gÈËS>Ÿr¨˜É3<ÃoüFzpW™Û¸Etê¤ h¬];‹kƒ£ ñîöòOQ‡:|uòŸ™hX¢Ñ‚®qÅ«j$Ÿ|îå^ÒH#‘ľç´áðÃÎŽ#T²²àÄ èØQU0+Cœ/ññÄ3‘‰üÂ/¦µçÝ´HXÛ[”%ï-[Ô&ŠÍ›+CÜ,Ö³ž—yPû7¸m?Ÿ²¨Z5à˜‰§Òüùêµøú7ßã iXèLºûÈ#Ï´¶½šÆêfy æcyU¥‚‚@U%3S•Þã=–²”´(¬¨+ô8™Q+†ƒ§ÙiJ`mˆóÎáNîã> Ì[T"†CäHXÛ[”%o«Ò”F2’<ò¸‰›èFŒ„HO¢uC¬,ÖãìQ,KØí÷øÝÜÍYœÅZÖòo˜Ön˖ʱ”“¹¹¦5ëzÜ.oÁ\,OUÚ±CÝ@ ª7­] I BtX‘Â:›Ù|Â'Ô¢Ïñœy Û„~…ˆÃ±c°x±J5s{E¥âT¥*c (ñæä†U©¢ŒÃP5AʧTÃA+‡Pkÿ‡yžçÙÅ.’Iæ® y€n¡F èÒEM.z7f·b¯RÏžæ·ouˆ³ IjO¤è‡MBGÂÚÞ¢,y›½‡C>ù…?ŽbMhbNÃ6¢3?ýäþà–,ãÇÕÆoõêý[,ÜãWp}èÃ^öò$OšÖ®£Ñ± oÁ<,OUÒV¡z•* la /ñã3ù«Å‰•t¥õëaϵ ØìŒ`Oˆó.îâ,ÎâW~5-,­•ƒá#amoQ–¼Ãu*UÄ{¼Çr–Óœæ<Àæ4j3)]yèüü³Ó£))Í¡ ÷¸/ñ>|¼Æk¬c)ízÑ© òÌÃòT¥pÖ7„Âc<Æ1Ž1„!1Q~µ,bÅpЋߺww÷ÆoåQ•ªü‹ª¢Æ~öGݦ‚f¦*æ0ñØ=>VѺAϽnEë.+"ÑvÑ™ÎÜÄMœà„i{}hCØKAˆ”rS•B5Ê ,a ïó>U¨“ù«ÁnIkåe•r°+Äy%WÒ‡>ìaÏðLÔíiå­ ¡#amoQ–¼Ít*e,;ØA2É\˵Ñ7è :]iÞõS«œvZtíïdgaDq,c‰+»2xLЫ—z7O= »‘ Ô&¦ ™g–ü{,ÝãÍhÆHFðP@tž /®qˆ%y Ñ3©J_ð³™M}êVTŠu´‚pkHz÷nX³FmJÔµ«Ó£‰ž$’ÊPŽsœ‡y8êö$$-‘¬¢MÍhs˜+¸‚ ¹0úÁ9Lûöj±ñ¶m°y³Ó£)íPêÑ#vSXƒyiJS²Èb*S£jKô‚ „N ÃáØ1UÏ8!Amò ¥…@Np¢p¯†'x‚úÔn¤.As£ŽZ‚V矯6'²»CœÏð Õ¨ÆøYdEÕ–(ˆÈ°¶·(MÞáF¢Ëb%+™Ä$â‰/Œ(Æ:qqô·¦+efª× ˰Óbí¯E-žâ)ár‰|†ÓNƒSNQµ½{Í¡»‰5y ÑaiªÒæÍ*ÔÚ²eèÛÑ—y›·YÃÎà îäΨêRRÔëܹî IkƒF8V`wˆ³­H%P^¦h6…Ã!2$¬í-J“·Y¥XÓH£€îàÚÒ6ºÆ\„~ w«SI«,Ã!ïñ›¸‰ó8l²y•W#nÇç T ôŠnˆEy ‘ciª’åör°p{øçxŽªXäúv€víàÔSÕ&ynœ`´rÐNeá¡ È ƒ/ø"âvÄp„È0C7Ìf6_ðµ©]¨#* ú\{öÝÄŽªLw͚й³Ó£1xâ ‹®<Ã3Qm çÅ’¬‚ % ‡HÂÑÅC /ò"»ØE7º1˜ÁQ Ðmø|o¾ÛÄÁƒjWÐøxkwŒv"ÄYz<Ê£€òXæYY+)ÉÖöV¤*PÀ(FjcÇF4Štx®¤[7µ¶l͵ÖÌMh‡Rj§äÒˆÕ{ü2.£7½ÙË^žçùˆÛñÚéX•·–¦*EŽìf7/ò"ÿâ_1»Ù[yèÃu[.ë?ªô©.] vmëúq*ÄywáÇÏ*V1™Éµá5å`Ööå¥*Eº©ä4¦±ˆE4¡ ÷säƒs)Õª¹·,«~f(+M b÷÷á+¬Ðõ ¯°mµã5§R¬Ê[ˆ [R•"Íc}’'9Ä!.çrúÐ'Š¡¹}þÝf°ëñTÖù Õ ÷sx‚'8ÊѰÛhÞ\Ed¶oW…A¨˜‚µÿ DqÈ#¯0bøÿÙ;óø(Šì'7áᾈ ¢ˆ ¢€¨!«®‚¬¬"êª ¨+¨È-I”€ ¨ÈOEAP¼pUäð/A0!á>$£=3I&ÉôL÷tÏt}ýäÓm¦»ê1/Õ¯«Þ«÷ÒI§µôÎB¨ÏÞ5kÌ•£<êD¦{wSÅ0Œ+¹’;¹“ xЧ|jCý»ÞµKGÁ$’D×P¥ìds#ŒiLÓE@+rÙeP§ŽxÀää˜-‹µkÅÑ艃™.Î;¹“˹œ=ìa6³5ß!jq€ëEHR=Ò­m/Êë{ß>8{5Ùg´2—¹ìd'miË é$¥õP_Ì­Æzô¨¨;W]UùuÁ>Æ3È ‚²ßù]óývó8»¾%Ú0,TIQü UšÈDŠ)æ^î¥ítÒj„‡»6[eìåçÃ÷ß‹´€U¹£õÀL§û¤t*S}Ú 'Õ´#ÝÚö¢¼¾ýñDç‘G:éLa Dø+žeéÜY„,ýú+ó}Ÿ®®¨“˜.]Ää¡2‚}ŒŸÇy e( c«ù~5o÷n(ñm ]Pìú–hðP¥ãÇáäIQ´~}m ýÄO,e)ÑD;D(£®,­^mªN6n„¢"±¿!.ÎliŒ%…®çzrÉõi3œêM³ËÊ’Dâ ééée~ÜñgcôLfrˆC\ÅUô¥¯’Z—˜ñ‚®(ÖYTúê+qìÑÃ\9Á$&K,ËYÎ×hsûÄÆB“&ÂŽîÝk€IPfâྪ¤¥²äºuëœ3üGx„DuЪ\½8®YczjLm bXÍvq:p8½/ñ9h‹“혭s‰ñ¤¦¦:º—{øº1ú‡˜Á ¦3=$“e”Gµ ê »Ù¨¶¡º‰C(ŒñÆ4vžÃÍ5ì”®;ô-ñÃB•|]U*J.b5«‰#ŽñŒ×K6KsÙeÙÙÖxȨFªgOãû²‚‹³¸ƒ;(¤P³‡K†*iÇ :—ŽÊB•Ú´ÑÖNä‘çL™iԉ×_š+À°u«XMïܹêkCeŒ?Á4¤!ßò-Ÿð‰¦{ídBEßï0,TÉ—? Šs²0šÑÔ£žnÂY™°0×ê¾Ù4rsÅþ†ˆc+F[ÉL&œpþÃØÎv¯ï“‰D¾,*íf7¯ò*~å×6®ºJ¼¨oÛš+‹º tíµ:uX«¤6µ¼Æ3^SÍi$’êñèqвnËøhLcF0BOÙ,O¯^âh¶KZõ@uí*ö§ߟ5\œçs>ð¥”2‘‰^ßçB˜Y0`KCy}û2qH#"Џ‹»hO{¥³6QQ®äf{ÔþU/HU„ÒÆ0ZÒ’­le1‹½¾ÏN‡PÒ·¤z UÒÇZB‰sf?‰IÔć<}AŒ:qX½Zä97 Õ8"L ¬åâœÄ$bˆq—ò† ÄëäI‘@R=VÒ¹ÄxÜõ}æŒHÇ!ê xƒZ¤1‚[$Ë(ú,6sâ (®þSRª¿>”Æx4Ñ<ÍÓ¤’J!…^Ýg§”¬¡¤oIõª¤–Ö­½»y‹øƒ?hMk†0D7¡‚…óχÄD8|X¤ß3‹U«ÄÑãj4§¹ÓÓåíþ‡Ã^+K‰?ìÞ-މ‰bòà ™H)¥ e(­ñÒ „êÄaåJ󼚻v ÝÕ¯/öäÙ»¹›K¸„,²x×½ºGÚ‰¤zœ‡’—ðÆãP@©¤0`Û"‰4B>Kãp¸^Ö¿øÂ²³á?DAºªŠûè‰Õ\œ£Mq¬b_á]ܘ²gèÕt.1w}k SúŽïXÆ2b‰õ¹Šo°sÙeи±ðÔlÛfŽ Ÿ.Ž))bO^u„Ú'œÉLÄ~¸<òª½§E 19Þ¿_xÚB™PÓ·¤j UÚ·Oä/nÜXl쪎9Ì!‡ÚÓžô‹ìçŠVùÛßÄQ}Hµßë¯÷~5Ð_¬æâ¬G=F1 €qŒó*Ÿ\Òz`5KŒÅ]ßZ'ªço#hB½E ÂÂ\¡¬+Wš#ÃgŸ‰£j£ª#ÇxúpWqˆC¼À Õ^-[Šsu!5T E}K*ÇP%-•òÈc S1“Ë匥gOáyX·N |ÿªQºá†À÷m%F2’†4ä{¾çc>®özõï<+ËX¹$’`G‹mXÍj¾â+âˆsæÓ·+ê3ÙŒE¥ÂBX»¶¬vÄÃù®2ƒ£úrÞÒ6H$Uã|ãW‰7•^â%s˜.t¡7½míòª__äÇ.) |ZÖ¢"Wåêo \¿VÔw-j•Ù¨_JÕ»Õe,«6¬¨s‰qøª¤ 8ÇàhFO¼Qâê û×_>ìeýzÈχK/…fͼ»'TÇxOzr=×s’“<ÇsÕ^oÛªú–xÆP%uâPq8Îqçà›Â8lïòºé&q\¾<°ýnÚ$2]t‘öŠ®þ`U}c‰$ò+¿²”¥U^+W•´aUKŒÁ—P¥Oø„ïùžF4²]jnO4j;BAAà•Ô0%- J¡<Ƨ2‹ž8Påµv± ¡¬oIE UòÖ8Lg:¹ä’B =¨¦†½M¸ùfqüì³ÀfÐX±BÕ‰‹Ý‰&Ú¹a“(¢¨ÒkÕ‰VV–¬å ‘T…7Þh÷Z*™h»ÔÜ•¡Ú†@/*©‡¿ÿ=°ýZ•«¸Š¾ôå4§¡K•aƒDâ+š<8ÀK¼PfðÙÝåÕ¡4i99MËúÉ'âØ»wàúkëû^î¥-mÙÉN° ÒëjÕ+‚æWw ¬¬s‰þ¨ú>qBÔ:‰…† +¿~)KùßhIK†24@RZuâðé§[ ØµKdrª[®¾ÚûûB}ŒOf2ÌaYdUz]&¡®oIYL UšÂNsš¾ô¥œ¿·»Ë+, n¹Eœ\ý¾\]عS‡¸8èÖ-0}ªXYßD8½Oó4Tz­] „XYçýQõ­f–IJI ÷s?¥”:=Óåq8ìaì o‰ ÝC•ÔÁQYfžìä?ü‡pÂy†g*|.]^"XÍ`±l™±}<6@t´9›ß‚Aß½éMg:sˆCüÿçñ;½KôCÕwu‡¹Ìe{hO{úÓ?0Â))bQéçŸÖ|ú©8^½cÕ‚]Æx*©DÅ–ð;¿{¼Æ¶Á.ú–tUªnâN:%”p?÷s>çëÖy¨qÛmâøþûÆöóÁb£]J Ô®ml_ÁЇÓë0éœàD…kì`$P'žlƒ{†šgxÆÖ…@«"&ƵíëÝwű_?cû fH`8ÃQPœ{sÊ#÷¿I$•SíÄáü·y›H"yЧ<6"]^‚[n¨(Qðgï^ãúQÃw×GU‹¾{ғ븎ãçyž¯ð¹œ8xO°è\â;ééée~ ê‰Ã˼ÌЉNôAÔWÅ?ÿ)Žï¼c\G—_нŠ}ûj¿ßNc|,c©A –±Œù±Âçv˜8ØIßõ­(Š2`€¢€¢,X T ŸÒOAA® ¯ø¡¤}ûŠïò…Œiÿ~Ñ~T”¢?nL¡Ä:e‚‚R[©­QŽ”ùìÌñ]†‡+JQ‘IJ$%55M©UKŒ‘cÇÊ~vB9¡ÔWê+((+”æDœ>­(5kŠïr×.cú˜;W´ß«—1퇣”Q Ê Ê >{ï=ñ]öîm‚`‰Å)ãq(Ǻ™Í|ÀÄã,î#©š;ïÇÅ‹i_]±úûßEžnIÕ\Çuü¿qŠSLgz™Ïbb iS() ̆v‰$˜8s&–¼<¨S§â³æE^ä(GéF7nDCyb›R£†Ë `”×aÉq¼ë.cÚ5Æ0†ZÔâs>gÊ|fƒDâ+UNÔø¿á §Í*mDº¼\ôî-öüø#lß®ûo½%Žf‡`Ó·º×a6³9À2ŸIáÁ¦s‰¬[·ŽãÇÅl¡| ‡cc&3WQ-IõÜ}·8.\¨1¸œ¦íÚk§»ñ4à1¨†­Ú…¬¬Àî 4vÓ·ÝÑ5«ÒéÓ"KOd$4s›|Çw,g95©ÉXÆVÙˆÜï"6ÖϺh‘¾moÝ*Ò½Ö­øjÑ¯äJnåVÎp¦‚×AN¼#Øt.ñäädrsãŠûžçyNr’žô¤;Ý.[°Ò«4n,RÜþðƒ¾m«¶æÖ[µgSR±ã‚'ˆ'žµ¬e kœ¿ž¶¼<±w$±£¾íŒ®Y•ÔÍo‰‰bS•Šêmx”GiD#Ý:´÷Ý'Ž Bq±~íΟ/Žýû‹0‰÷¤#6{¾Ê«ìcŸó÷î+K‰Ä…»ÇAåG˜Å,ÀåÉ“xGd$üë_â|Þ<ýÚUakî½W¿ví@qe¼ ½àpÈE%‰¤2Â<åéÞÀ¾à jS›'x¢ÚF¤Ë«,×]mÚˆÌJŸ}¦O›®‰ÃèÓ¦¯£¾/ã2úÑ È Ãù{i¼#u.ñuëÖ9=î¶á9ž#°€¤$a¶o‡ .0[:‰Ä|öî…- A8|â!^åUîà–²Ôlñ‚ž©SaüxHN{|!7WLòòàÛo¡sg]E´…ÒšÖìe/ïó>þÞöí…M0"µºD¬8=­’g&¥ÑŒ–“h×n¾ aúôê¯÷Ä–-bÒP£<òˆ¾òÙ• L ‚ÞäMv°C†+I$åp÷Dg“Í<æáÀAi¦Ê*<ôH÷¹n¬_ï[³f‰ICrÒ ÑD—ñ:$´*Ä¢Ri©‰‚I$#,7WÔø®Ñ'üÀ4¦1ó°¦F¤Ë«rÒÒÄñ¥—D8ŒVƈ=[ .r€[`×÷yœÇ@RJ)i¤É‰ƒ»Î%ÚX¹ò@L&3™"ŠÀ.â"“% ââ`Äq>fŒö½GÂLQƒ§žªúZo‘c\x£Id+[YQë]6„³gaÿ~³%Ó©o{¡kV%1¬©ámÇ8b‰ÕÔˆÜ_9:‰JžgϺ&Þ²b¬Z%*Q­º_@ }Od"QD±„%Ķ:„n,«„‚Î%ÞÝ€ø¤\æ3Ÿ0ÂH%Õd©B‹Ç‡úõE˜ð‡j»75U¤sýÛß„ÇAä^uŸgi´J3ºÝ»Í”ʤ¾í…®Y•b’öó ¿Ðœæ<ȃº5.L*Šÿ¼õ¬YSýõgθB“&Nô}„Ä3‰$2„!((|—´‰DE ¿$}D %Ü˽\€Ü¤'uëº<Òÿþ·÷u~ø^~Y$u˜1Ã0ñlË}ÜGkZ³ƒ8Z‰ƒ\T’H\„dµZ Àxƃö’ÄÒåU5\àò6ÜwŸwâñÇ…ñ¾øb9ÒXù´*úVÿÞHzÆ¡*BEçïØ²%€ï’–A„sÿ›D_† ƒŽE(Œ7{Øòó]Ùú}Ú·×O9Æ‘D:½kÛ“DA¸P´ RßöB׬J (ÌEâﱃD­[ã……Ð¥ üü3Üt|ò‰X1òÄâÅ"íjx¸pc_)S¦Æ<Áóû–@ó½4jš-‘Dâ9K6h»èEúª1\íC3j¦1¶_ÈÐ ºó¯é)¥ÄßÏø‚Q0tøpÏ×)ŠHåúá‡Ð¶-üô“ØŸ(ÑŸJhG;¶¿Ö†ÍaÈxýu³¥’H¬AI™L`‚œ4Ht4,]*ÜÓŸ}&&gÏV¼nÉW­†™3å¤ÁhF3šMN@t!‡‰Š®Ip’ÃÒŒy$¥¯bÕªU¬J‡ÔaKÉÑØJq±HC!²å>g¦‰1\r‰=‘miþüŠ×””ˆÊÐ~5k»ïÊIƒ‘„.¼l­²Ø•)Ó*I$*aÍ’ ¹Ÿû}nDº¼¼ã‚ à£DjÕ%K„›yÙ2ñ²ºmÜy'  ®9R¸¢­H(é»1y8l8´±¬¡¸ NBIç!KÎ&ÖìjM+µXB+ZïÊÒQ]À¬³(©Q?çf*þ’––æw²oÙ·™ý?55_EaÔsÊ:e]@ûö–PëûøqEéØQß;Š’‘¡(‡‰Ÿ™3%<\ü¾Q£CÊáúwïAõg/Qìõ¬²±Ìÿ?¨,Éö¾‰•ÒRP”®)«´õ¯Aõ‡Hßf÷oå¾/ìzTE©·®¯rZ9оÄÊ}û­¢Ôª%žÿMš(ÊG)J^ž¢üþ»¢ ê²C†(Ji©¾}I0÷¦¤)((×)×)a—ŵ2{"#‘˜ÎÅ­Î-Éfµ"4Se±%%pûí°y34iþ ãÇ‹pŒ† E:â¿þ‚„±ûxN& )Mr‘ä ]ò†TR!3 €F±2S€DÒ±U=ŽeÆ1‡9&KúdgÃ-·@^žÓËÊ‚[o!ÝíÚÁk¯‰¬”sçŠÐn‰±ç8Ïó<´ÜMv»Ï1 ¢z:@xfÖ°†µ¬5SœgêTX½ZTEÿúkhÓ¦â5‰‰"qlìi6l€I²”@Õ$\MÖ»ÈR'9YìjÝ oç ?ðËYNx¦PFݺ¹†ˆ)‘ªm «Ïò,ùä›)NHS\,’Ä9Ý»‹d2Ñ’}Þr ¼÷ž8ê)¨dë†D'žçyNž²9¼;¬à‘¡¨ïýû…ë³F½Ó Ê5Ê5J©¢ÑÂè©ó_~Q”ˆñ}ñEõׯ]+®u8„ [R•g{õRzõê¥ôr[ò‚””: ¹ (ʈ³ “Rb=Bñ¹®¯¿.ž? îûTAA™¦L3[$]°¢¾§O?÷]7!«Õ1z´¸þ¼ó%?ßxù‚_õ}D9¢ÔVj+ü|™ŠrÉ%ŠÜ*‘4n,2˜œ9Vƒø“-ÙÀV±Êl±BE¹ê‹‹aèPHI©þžäd5ÊuoI‰ñr/W3fÕ¹:Š¿md#Ÿó9µÏÖ'oo‡B:' •T" ’DäM3ÅhšÆ4N"džÞää@Zš8_´H„¬VÇ3ÏÀ…аV²d Ïñ§8E‡¬Â'' "Kƒê’¾/+€§x ™±AOÞ{6n„zõ`Ú4ïïKM…fÍÄžˆE‹Œ“Ï®<…("poÎJK¡NS„‡ËšD¢Ú…Yñ\Ã5㳘eªL¡È„ ¢¦Õm·ÁM7ywOT¼ñ†8Ÿ9“rû»$þrˆCÌf6Ý3râ ‘”A]Yê’9€F4â{¾çS>5W¨¢¤Äµ¢”‘!ª¨{K­Z®¥´4QK¢_ñkXCqôÊ@ݺÇM–J"±‰‰¢¾Òž=z6€™Ì$¹H/~ÿÞzK|ÏÏ=§íÞnÝÄd£ @zôæYžå4§éMoJ2'©©©z4# BUßêÄaf ãˆ,3Òë Îß}WTHoÙRTÇÕÊ=÷@Û¶"ëÆ‚~‹#&!v?Áά@÷î²Z´ÝÕ线DEAóæ¢eRÎu\Ïõœà/ò¢Ù¢ù…•ô‘!BQ‡ ó|(•‘!æs¼ñ†°’ŠhÕ÷^öò ¯ð4O“™)~ß²¥ô8H$NÔ‰Cf&<ȃ4¥)[ØÂÇ|l®`!€¢ˆLJ'Bd¤ö6ÂÃE €3ä^=XÍj6²‘zÔc#œÆÁ™IF"‘”± é¤ð/pŒc&JìÚ%•ÂÂ`ìXßÚhÛú÷‡¢"²$ñŸiL£BþÉ?¹œË¶!)I§‰CeeÌ%¡I¨êÛÝ8Ô †Óë0‰I”Rj¢dæã¯ÎW¯†ß~5þõ/ßÛ¹ãQÛaçNøXÎçüÂÝÛð$OR‡:de‰Ï ÿ0O0‰)„ês]ÜmÃ5\C )œä$3˜a®`~`}¿ø¢ðæÜs cƈãüùpâ„.¢…ZôC¯ó:p.êBÁit›8$''ëÑŒ$HU}»€¡ ¥-ø•_yŸ÷ÍÌø«óYçö>ü°ç¼ÜÞ!ŠÃ¼ô’_"Ùž¬à[¾¥! y„G×ßþM7µ5Q2‰„ês]ÔZõåéžà%^â‡L‘É_¬ ï“']a§O<á_[:Àu׉Âqê†i‰ -úÎ ƒB éO.áŽßk:/C•$'îÆAQ šh&2^‡bŠM“-˜Ù½V¬/ý>è{Bl,¬]+öLH´SJ©3“ÒXÆR ±·ÁÝ-‘Hå•:Ó™[¸…|ò™††ôp’2¼õ–x!íÞ.½ÔÿöÔE¥W_6\¢L2yƒ7#Œ4ÒÄïÜì‚Ã!C•$>ªúŽ3ê¼<8zTün I"‰ílg1‹ÍÐDüÑù¼yâ!~ÇÞ忮ޏ8¸ë.q>w®ÿíÙ‘e,c [hJS†3©ûOvîüÚd %&TŸëzP~âbÃ(À˼Ì~ö› •˜­oE×E4 C‡êÓæÍ7‹´Ý;wÊjÒåñVßOó4Ås7wÓáy.¿÷M¿P¥MÓHII?Ö"Óé†.N—צi¤¤ ciˆ(Ûá¨h ¢ˆ"‘`2“mêuØÄ·“'»Æ·—”ÀÂ…â|Èý$R=‹ÁÙ³úµkJ)uþMO`5¨¸Â0b#÷1eŠÅØd†€’±‰iÎ1ÂäÉï„̳\omFDÀ Aâ\†+¹±i“U^ÅûùŸüÉ›¼I8áÎýoPÑ­O¨Ò¦i¤¤BºZ±tNtiXbYr–2,uµÙRèŽ'q7ws°“,`)r™JN™½ÒÏU#^ÅüÁ0/ûÅ/¿EyÎ;OT€Ö‹+®€‹/ž¡+ôk×¼Ïûle+‰$2˜ÁÎßge a»f¬Z%ª¦§ÊE ÐÅqm7š5ž¸ƒ…gNE å˜Ã² ’< ±Ýj!ÏýË¿}oå¹ÿ~qüేÂöhx?O'JÄ ÚÐÆù{&9Lye5½ÒÇpµÿI‚€uë^gÚ 5ô˜ŸN/³…ÑO‡"œ³ïgx†BlV},¡?º¹þ7! veyõ‚ñÖ[âø¯ Ž^8®•¥7ßÔ¯ÝP§˜bçßò&Ëbgnmy¾Ë­ÝÚK=K‚„þÌã²Ú¨áõ¸¶áᢸsϨzLr6‘}°5™‹\.ÏiÒ¿Âäpà÷ }ýCЭ¤Æð¹OîäNÚÑŽl²™‹ýëÝ32äädBëVÕzóóáÃŹ?)X+ã®»ÄbùrÈ•E\½â-Þb;Û9óÈÀ2ŸeæÔàüKÜõIŽ|“´çÅñj\ÛO‹J ¼a„ñþÃ.v^0¯Éaé°T§ínr.!‚¬ZGŽ@»v"’Þ¨^uáʶälbÍ.ñ~®†*Uö~þO¡ 0˜Á´¤lP¿<9K‡UŒsÎÉbÐcÂ97Hz/V§N“±±!€'}oš6ˆyIéŒ Q÷ReÆ!œpg០28ÍiBc¼ìdÌÛE¯{«G\±BL:w«@zÓ´©*,tMP$•s–³Î¿áTR‰¤l¾ÌíÂ%ÔÔ-£’L®d4Œk»¢Ú†Ý»Ëþ¾-m¹—{)¦Ø9¾¬ˆ•l÷âsyFÔŽ¹í6±ß᫯àPpfËÕ/ßÏ7³™e,#†˜ Þ†ÒR—ÇA]XÐ"CBÿ9¬ê_^0€$¨O›«¯¥©¬ß4†«-ð*ñŠúÎai&°+•÷ÉA)d¥¯²ÄÉ_TãàîŽV¹ÛèHG6³™9Ìáq¨lÀãG„®$'G2mÐ<<ß+]/Y"ŽwÜ¡¯ŒîÜy§HËúÞ{®Ð%‰gÞà ²È¢-m¹›»+|þÍŽ:ä|9ôí{ÈZPF‰lbÚ yäõÏp£(_ËÁILâ-Þb1‹Ïxg6ëCŽEl÷™3®âFÙ†øxøÛßÄâÕûïÃCÓOpDB‚jÃ=¿Ÿ«©¹æašÓ¼ÌÝû÷‹$ B­sN*ÿC•ZÑš3åÜÙ­i%—-BúÏYåÜL·jU:½hÍàù¡1i—qؽ[Ì´ÝqàpƱNa y&ƈšääH¦¥¤’9x>s¼ˆQËχÏ>çFNúõ+V«VÁ±cÆõìP@€H·Nx…kÎä×ઇ“ššzî·I®E!I²É9®ß¯Sj›¥ª‰CI f0¥”:7L[ ëØî/¾)Ï/» Ú´©þz_0@ß·síÖ„V´>nê ?-û~þ ß°‚Ô¤&cS¡ Oµ}t˜8\MÖ»X³IÌr–.bµ46’ ¥V-1³.,4Ês#7Ò•®å(³˜xMa“¦Iˆ•ž3gD˜R‹ÆIÖ ôì)Ò¾~ú©qý;s˜Ã^ör9—Ó~>ÏÍ…Ü“‘DGrÔ- o—Œya´k;SÙþ7•ñŒ'Š(–²”_ø%`r| Žý=x¶õ¤wo±©}Ý:‡+yñ~®zF2’†T,´dÌÄ𠏤yƒHIIAD2È K¡ŒÙ…cŒ¦ªp%çÊís<ÇqŽN0³Ø´žÕÀ®sc\ýVEp5›Å?ÿi¼xÿøGÙ>%eÉ#©LDº½0}5n»Í…%8Ò„~ÒejíÐŇqmgÔÕñÊ& $0Œa€ëeÌÊ0Ác^TŸ|"ÎÕç¶QÄʼnE¥ÒR;/*%ÐNz¥ïçkX×|Iq<Á[ð4q@‘H$eèß_Q@Q/®üšJeœ2.p‚ gÏ*J\œø·o7¾¿ìlÑWl¬¢œ>m|ÁF†’¡  tV:+¥J©Çk–-ßá-·¸~—–– %ëSZ*ž1 ('Oz¾æ€r@©©ÔTPP6*+`°zµøþ.¼00ý½òJÅçšDPª”*]”. Êder¥× (¾Ã×^sýNŸpIQYf%wT¯Ã,fq1M6fÝ:8qÚ¶… .0¾¿„èØQf:W·LrŽ\r™Ît@T>wà9…Iù<݉¤,GõáJiÌFÁáu4ª·¡OŸÀôwë­â¸zuÙÂ}XÎr¾å[ЀGy´Òë<Ù]&¡º")K¨ë»:ãЕ®ÜÂ-œæ4Ó˜¹ÌD‹Î—/Gõ¡úö-Û·Dð<Ïs‚$“L¯*Ê5–7¡>Æ%‘:¯olÃ(FQ—º|ÅW¬aM@äò…@ë[Q\Ù”eš5ƒ+¯„‚1y°3îú.¥Ô9±Ç8jS»Òû ÚãP¶8”$ô u}{c@T‘x…WØÃc…2-:_±B{÷6H¨}}ü±0P8Ìa^àç‡ÊPÿÖÕ¿ýPã’ŠHW7¶!žxF1 ÕÙ¬ù@ ´¾ÿøC|oõëC—.ë÷–[ÄQµKvÅ]ßïó>?ó3ÍiÎCTž«¶¸rr„·M­œ:M$’P›P%€Ë¹œ;¹“B yš§,øóOرêÕ ¬q¸ì2±ºtàüúkàúµ2jÊàÞô¦+]«¼Öã8‰DRomÃFЈF|Ã7|Šmwæ–Aõßt“Èv(þþwq\±B.*Sìô6Lb1ÄTzíž="ca‹åú½ U’h&Ôõ­Î¬³³ÅŒ»*Ôœøó™Ïv/œIx«ó•+Åñ†k¸ñFqnß .²Éæ^\ž±ÊPøë/q®®¨†ú—TDê¼z¼8Ô¢ã¯C)¥Uß`Ö÷矋£ú"(:v„FÄÊù¶míÛJ¨ú^ÈBv°ƒ6´a «¼§²%ª$ÑL¨ë;&F¬^—”ˆwUœÏùÜÇ}”PÂ$&F@ðVçª;ø† ¦nºI¿ø"ð}[tÒ9ËYîà.ã²*¯=rDì«[Wü@èqIE¤Î«ÇÛ‰À0†Ñ‚üÆo¼Ã;Æ æÔw~>|ýµXàùÛßÖ-aa®E%µ(©INN¦€ÒI 4"‰¬òžò!¬*2TI"ñ€‘Jª,üƒØ€¶v­8´qèÕKx96m‚S§ß¿UØÎv°€p½ ¡«Ì8H$’²¸Û…êÂ^bˆ!Q=4Š(2X:ë²f œ= :‰=F8¨^»2‡9äC;Úq'wV{½¡éâ´vз:PÔŽªH$‘á `" ”Ê<¼Ñù† bòpÙeдi„*Gݺb_Eq±kcGRI¥”R2 ¹°Úë=;ŒqIY¤Î«'>^ËχÇ«¿þ~îç.`';ùÿ1^@ Rßjšl3<Ñ))ÂÛñõ×öM˺rÃJ¦0éäé>–ØPƒtqÚ ;èû¼óÄш8ÖZÔâS>eŒÌ$¼Ñ¹ÙÆ\ž»®,ma KYJ4Ñ^‡Îyš8ØaŒKÊ"uîZlCLf2 ÂOc·Ö@ê[}›á‰hЮ¸ aýzsd0›ï¯ùžÃ¦ ]èƒw…4d¨’D¢-¡J iè,Ù>–±–MÁg$jžì”ódPûþòKód0“ñŒà!¯îQ½j2£’DR=ZmC?úÑ‘Žìc³™mœ`eÏؾj×l¦½òô:WÆÆŽõŽp„çx€gy¶ÒB åQmƒ:YV‘¡JÍØAßZÀãæc¾ã;шÇxÌëûJJ`÷nq.³*I$Õã‹7ÚÃùÒö/°ŸýHf=Åõ¾þzse©Q®¾Zœ¯Yc®,DMÍ=€\Îå^ßWY˜ÈP%‰ØAßááв¥8×b bˆq¦À|Ч(¤ÐéOu:WƒúÒn&ªúòK{T -¦˜1ŒDV¯ZÔòúÞ={Dª¦MËzŠì0Æ%e‘:÷­‰3TºÒ•¾ôå gœ¹ôÍ$úÞ¹Sâ#6ZO*u5_}I·ªL¡æqØÂÞᢈ"ƒ ŸÛQÿ¦[¶¬XT"‘TŽ¿¡J jþ¨ã÷)žâ4*ZœìlñS§´oo¶4 UÛð<Ïs€t¢·s»ÏíTÂ*C•$𱓾õ0MiÊ(F0ŠQ¦m†óO:ÏÍ…ß~™*:w6A¨j¸ür±÷⯿D­‰P@Aá žÄŠe•, yú7ݺuÅÏì4Æ%©sïiÚT¬\8§ýxßW=†{ÙËó<¯Ÿ€^`¤¾ÝCX­¸(¡†±†Ò>‡`:ÓxŽç*$Ëð%TÉPƒtqÚ ;é[ˆ Ccóßñïù/X€ñ¤óM›ÄÞNÊV¶ е«8••¥å,g kˆ'ž‰Lô«­Ê2*½Æ¸D uî=aaЪ•8÷uŸ@aÎì{Ó˜ÆAú-›·©o5H}A·]»Š Í/¿@^žÙÒèC*©ä‘GozÓî>÷%TÉÓ¢ÈP%‰¤Jôð8Ô¦6Ïð cK!…~Jf>V7à’mÓ&såЃbŠÍh@„6ÄïW{UM$IÕø›uO¥=¸…[È#/d²ïYÝ6Ô¬ :ˆ"~ßo¶4þ³•­Ìcá„;½þPm¡JÍØIßz€ ä.!“L^æeÿ žt¾q£8ªéí¬ˆ*[(LÞà g¶Œ‡yØïöªÚg§1.HkCOÛ0i„Î\æ²mþ7èFéûøqøýw‘t¡S'CºÐÕ6¨v,˜ÃJ)e(Ci‹ç¢Þ껸XìOq8Äþ7OÈP%‰fì¤o=CÎÕ€§yš#ø˜ªÉÊ뼨ȵRcå‰CçÎ"¬`Ë‘E(X9ÉI&1 /îÙ2|¥ª pvãÔ¹6TÛ G˜‹¹˜! ¡„gÁ.£1Jßß~+Ž:‰´§VEÍöì‡/ù’å,§uH'½Òë¼Õ÷ž=bòТ…ØÇã ª$‘TAË–bæ½{·Lþr#7Ò“žœàD•ƒÜêüü3ÀEAýúfKS9î.é~0[ß™ÊTqˆ.t¡ýünOQªß'‘H*G¯ýo*i¤Q›Ú,g9_ð…>š€êݵZÖò¨)Ä¿ùF؇`¤„çq@¤ènHC¿Û¬.+ÈP%‰ØIß11"Ç}I‰pßù‹Ïó,<0ññWñs;q‰@ê\êÄAo4@c;‹Â=Îã£ÃJU¥oõ9kuÛЬ$&ÂÉ“°u«ÙÒøÆ¼Á¯üJ"‰<Ê£U^ë­¾«KÅ 2TIâvÓ·ÞâR.eƒ(¡Ä¹ÙÕê”×¹:qP_Ê­ŒjÀ‚uŸÃxÆSH!wr']Ñç ¯Î8ØmŒK¤Îµân2ld$­hÅV¶2Ÿùú4Z F軸¾ûNœ“møæsåð…SœrfÖ›ÊTjPujCoõí'Z†*I$Õ ¦$Ókâ0™ÉÔ¦6ŸðIPº¥Õ—pµ§•Q Ø·ßBi©¹²he›XÂjPƒiLÓ­]5.[†)I$¾'Â4Ïœõô †žåY&2‘œÐ§áñÛo¢®EëÖШ‘ÙÒTO0ožÊTs˜Îtftk×Û C•$š±›¾õö8€pKO`·´¿¸ë<'Gl Š‹{¬NË–¢`Ó±c°c‡ÙÒxO)¥Œd$ ê€$’¨[ÛÕyì6Æ%Rç¾ Ž=6H«ÜÁt£‡9Ìd&ë×p9ŒÐ·ºrÕUº7mê¢R°y2Ét |‘½ _•¡JS±›¾0#AIle+s™«oã:ã®sõ!Û¥‹ÈXduŽà4oò&?ðÍhÆÆèÚ¶j*+ðc·1.‘:÷#•8˜Å,@¼îd§~»a„¾Õç«•3í¹sé¥ ;wŠ}_ÁÂ(FQH!÷p]ðÎí/C•$’b„qá–žÉL@ô:Îq};05Ý^0ݪÛÄ!<çFÉgy–šÔÔµ}u,‹¿I$¾cD+À\Á@RL1£¥oã¢>_ƒÅ6DF•WŠó`± ëXLJ|H,±Î°6½8qŽ…5„—¾2d¨’D3vÓ·jvíÒoœJ_úÒîå(©¤êÛ¸Ž¸ë\}ÀZ=k†;Á6qÈ ƒ}ì£3¹›»uo_8¸{ÒÓÓËüHì…Ýžëz`”7Ä3 &5ù/ÿ5dœÞú>|X|±±b%?XpßguŠ)vfOÇ8šÓÜë{½Ñ·{˜’£Šè'‡¢èý*$‘„Šuê@^ž˜×«§oû¿ò+è€[ØB{ÚëÛŽŠï¢¨HTõ”ÊÓŠ@íÚ"­nn®ø7X•?ù“v´£ˆ"¾å[:ÓY×öÏœÆ="BœGDx¾.==ÔTëNf%³Y»zô/ŸFdm›ÊTÆ3ž ¹ßøH"õïD'>ùúôädñ½ ÿý/ôí+ôøÕWfKS5¯ð ó0-iÉ6¶U›II+ï¿·ß½{ÃÇW~ U’HªÁá0veéR.åA¤„F0ëÎå·l³gŦè`™4€¨Çѱ£˜Z½ÜciïCXe¨’D3vÔ·{¸’<Ã3Ô§>kXÃû¼oL'~ êùÆtä#ªÎƒÕ8t>·xÿý÷æÊQ…:ãW'1‰¦T±;ͼ1vãvGê\;áá®ì3FynánæfNrR×ìjz껤ÄåÉ FÛ ¦µê>‡-láu^'œpf3Û«ô«åñFßžö¾yB†*I$^`d¨’ʆБŽächþnP«‚Kžnw܃wvÍ`ò'q#aX?Þ‰DR=° /ò"QD±…lÄzÕʶmƒS§Døc“&fK£+OJ)å!¢”RF0‚v´3¬¯€N¤‹Ó^ØQßF{ wƱª/‘Vaݺu:YYP³&\r‰Ùi§uk±±ýðaWœ¿UÈ&› 2˜ÍlC7AÊP%‰'¤Î}#¶¡ mÍhåQJ(ñ»M=õ­.(uÖKV@På¶âþ·…,ä[¾¥ MüʼX¾Ïž…ìl±§³U«ªÛ’¡JÍØQß0]è QL1ðˆe6J''';ÃW}°áp¸V–¬f ã1Îp†þô§'= íKýnÓ¦òkì8ÆíŽÔ¹o¨¶ÁèňqŒ£%-ÙÌf^åU¿ÛÓSßÁ쉑8#"Bìq0b¯Š¯ç¸3öy}¯ú…Ú>*)®½ú$Orƒt¥«s¡'Ué[«'Z†*I$P D ]ÒMiÊ fðq˜Ãë;ÔŒ¸þ- W:Á äA2È ­ôí '‡Ì^é¬ZµŠU«V10ÌËXŠ:wp7Á¾Á]"±îv!Ð/œÿäŸô¡'9Ép†Ô#*•Tš7‡&MàøñÀîe\Ãæ1(¢˜Ç<Âüj®¾Ïtâ ]œöÂÎú6kâðГžå(#°~CÍ8€9¤G1Š}ì£ ]ø7ÿÖ¿ƒ„þÌsµë’`W–sâ Å8ØyŒÛ©s߉ÞØÓ§Ÿ‘ǃ—y™ÚÔæc>f)K½ºÏ_}+Jhí}± è Òyäñ¢"¸5 H¿êª|däÏý÷yîpüãˆ~¿äKæ1H%’7xƒp ï÷õ¿AëV$œû½j¢¢ÄT"==½ÒŸµk×þÈskK;îß¹º¨ôþûN¶ Cw àá£MU{¯;¾ô»w¯˜$Õ©SìÜãa]øs®n^¶lO@úÀ2ÉäR.eã ëK UòtMùP¥jÿf‰Dâ5ï¼£( (ÿø‡y2¼¨¼¨  4Qš(G•£†ö•Ÿ¯(ááŠ&ÎC…³g%:ZèòØ1cû:¡œPZ*-” %C—6³—<¨ôêÕëÜσʒì (öê¥<»Ñõ«{îÿÞyó¼ë#--MY%;p×]b|½ñ†9ý—*¥JO¥§‚‚ÒOégx| þ½7Ü`xWeùrñïêÖÍø¾Ö+ë”p%\Ù¬l6¾C”–*J\œø78àÝ=2TI¢;ë[]U tö wþÍ¿¹†k8ÀåQCûú屉¸U«|bc í* DFÂe—‰s53ˆQŒb»ÙMG:ò$OêÒfBÿ9ν «VÍ¡‚û§›˜6h ž[ä’וÀÞcÜ®Hû‡™a¬ B–æ1šÔä>à]Þ­òzõ­†ò¨+ô¡‚úïÙ²Ed4ŠÓœæ>î`,cé@ã:£r}=*’fÔªyז̪$ÑŒõ­‡]» 4ði³#Œù̧5XÌb>äCÃúRCr²>Õ+­D bY¿à æ2—(¢XÀ"‰4®3@dVJ%sð|æ”Mhš8ØyŒÛ©sÿ0{âЊV<Çs€H¢q€Ê7\ø«ïP84j‰‰b¿Ê¶mÆõ3šÑüÅ_´§=“˜d\Gç¨Lßêßëùç{Ÿ4CfU’H4P·.4hgΈ¢)fq>ç3i<ȃä !ý¨ÆáŠ+ iÞTTƒgÔÄá8ÇÈ@RI¥=íéÈI哆Ü\8rD¤¢mÚÔ`1$rþùâhæÄ`ÃH!…£eC ɲ¤(ð“Ø&’¶ÁèE¥U¬âe^&‚±ˆ(¢ŒéÈ Ôè ok8€Ìª$ñ»ëÛ áJó0×s=G8b˜Pœáá›uoÛlTã`T¨ÒC<äÌ¢4šÑÆtâΦõ¬vÍäVË!…aKsœ«­[C˜O}»q;"uîîv!Ð)YÝqà`>ó‰#ŽOù”7xÃãuþè{çN±Ѩ´hás3–E]TR'Gz’K®sAi“¸œËõïÄ•éÛÝãà-2TI¢»ë[`fOÂc ¨C>áæ2W×öOž„íÛÅ~€;êÚ¶hÛVõÛ³êì°y›·YÂb‰e‹ˆ eU¯ã¶ïÁõ3§‚fã`÷1nG¤Îý£~}ˆ‹ƒ¼<8¸2;iA ^áF2’Ttƒø£ou±åÊ+C³&Œº¨dÄÄáaf/{¹Š«Ç8ý;¨„ÊômšÇA"±îûÌ&^æe@ˆ?Ño6³ùœ“¡}{ˆŽÖ­YËÏ͇ô4»Ùí¬üù<Ïs>–r B5ZV•$‰÷8Ö W¸‹»èOòÉg(¢H·¶CuƒŠ~õË/P¤ßׯÛçþ‹%–·x+0 JÕà‹m¡JÍØ]ßVñ8¨ÜÃ=ÜÅ]œá wqg9«K»êËô•W†®Îõ^Y*¦˜{¸‡“œ¤7½ÊP}ö­Æ!Tõ-©©sÿ±ÒÄàU^¥-ø‘y†gÊ|æ¾UC¨NêÖº,(€­[õi3“Lç‚Ò‹¼ð%OúV'ÒÅi/ì®o«€Wx…Dù‘uËР¾Lwêº:W Ÿ^û¦0… l  Mxƒ7p` ?¾–ŒJºú–TŽÔ¹ÿXmQ)žxÞâ-8˜ÌdÖ²Öù™¯ú.-©J!t*F{BOÛPDwq'9É?øƒì£ñ¤ï#GD*ÖÚµ½OÅ 2TI"ÑŒûÄÁÌMpîÄÇ;¼C8áLg:«Xåw›î‡PEÏ ÒëYOi¼É›4¤¡ÿê„ú"sÁæÊ!‘„2V\TJ&™qŒCAánîæGüjïÏ?Å>Ž„hÜX'!-ˆž™•ÒHã[¾¥9Í™Ë\Ë,(¹ïoвWE†*I4cw}ÇÅAÆ"ϳ™)YËs5W“FšÓ@ìcŸÏmåæÂŽíÚ…®Î[·né}ûįဂÂXÆÒ‹^ú é'Ç‹"?5kzŸŠ5Tõ-©©sÿQ';v˜+GyÒIçj®fû¸ŸûQP|Öw¨‡)©¨ûü]TúœÏ™ÊTÂc1‹©O}ÿ…óOúV'¸Z”d¨’D3Rß®f—´Ê8Æq=×s˜ÃÜÍÝã[éKucôå—‹¬J¡ªs‡ÃQJ)÷r/{ÙKºð4Oë' ¨›øµø U}K*GêÜÜC•¬âˆ ‚wx‡ºÔe9Ë™ÉLŸõížQ)”éÐAôáIž¤„n;{ÑVÀ¦¸Øåîz¥}*àO!¸ L`=ëiJS³˜pÂõN#žÆ·¯iºe¨’D3Rß®¶}»¹rTFz8ÓïÝÅ]ìB[Ñ õ%Z}©e»-á9äp'w¢ 0ŽqÜÌÍÆè'êÄA‹qe}K<#u®VÜ íN\˵:ÊíÜ®)œõ?ÄÞ¾V­„g%Ôñ5³Òû¼ÏsqhJS&n™H$‘¼È‹¼É›^ݧNì¦"9HXüïÂÓRÇ8Fú8«u`„ñBzIùñ­FKø² $C•$š‘ú©-›7§vï6[šÊ‰#Žøˆ:Ôá=ÞójeÜÓæ·P×¹–XÖx…,¤5øˆh@c…óƒC‡DŸøxh AÌP×·¤"Rçú ¾ˆY5ŒUåáó/0„!|ÇwÕÞc—ŒJ*5kÂÅÿ{ç'Uyîñïlc齃”EY¤Ww)ŠˆAM®šÑË5¦zqÍÕÏ%jŒ×|ÅAAE‘&diÊ*–ê²;÷‡—™íSΜs†ó|÷³Ÿ3¸3ï¼ÎoÎyÎû´WœƒëÖ•ÿÜóœg,cÙÅ.ºÐ…—xÉ5û5@ÉóÛ,l[8(Šqs\0é¤óoáÃÇD&ò>ï—û|¯…£!ô\Öøˆ‡y€Wx….t‰ñÌ¢#ã (Jø»°s§{£Ñ†ñŒçîá縉›ØËÞ2Ÿ›Ÿ¸yVÛP’û¹Ÿ…,¤>õ™ÉLªP%ö“‹‚H"ÑMURÂFõܺ—Ci g8“˜ÀÏø«)û*XšWéR×<Ø8”U ½‘ÜÊ­øñó(2†1öM0BŒ×3ã••UäWñ—ú9nÕ«ËF‹?þèîh´Ñûyžg ÙÏ~†2”<òJ}þæÍpî´n~N|<J4ú9žc2“I&™÷yŸ–´´enáPVªR8Ýö IÌGCœCõÌ çö´áaf+[y…WÆ0V°‚V´*òœýû!'ªU+zA¹Ô5oÞ\v?tvïãÌ÷|Ï0†q’“ŒaLÄûcØM8 ‡‰'ù·.¼Å¥~ŽÛIÛ¶°oŸœů%nÁèL2Ó™N&™lb·r+³™]b?Sÿå•4%CE ‡ÙÌæA`*SéK_›fÅÏïplCq4UIQ"$Þ>|La ÈAr7p„#Ež\èÎzߘ\ ]Ü@ç8CÊ^öқ޼ʫ$ÄÉ¥3¯’¢(‘/u†:Ôa.s©K]æ3ŸñŒ/ÑHÃ+¿§S'i²u+œ*Ö˜p«ÃüøyŒÇø?sf’arþ¼¤T´m IDATÒAdƒjª’6ª·oÆ …f2“Žtä¾a8Ë´i57ÍŽJ^м´…Ã9Î1’‘l`Wp³˜E*©ÎL0"]8xAo¥(ª¹uăS©¸ÞmhÇ|H*©Lej‰Ž½XûP¹2tè……°~}à¿og;×s=g9ËÜÉóßÎM2‚õÞ½[ÍšIx¸hW%%lTo¡U+HN†ï¿‡“'žMèÔ¤&ñ-hÁ V0šÑüÈ@হ¸WÉ š/‚;ÏyÆ1Ž%,¡XÀWwP*N~>ìÚ%à G{Ao¥(ª¹uÄá4½3ÉdÓH 'y’gyÚ†å9^[8@À‘flÃ^ö2ˆAå(Cʦ¸ªƒRiëmºD‰Žx»¢¸¤¤@˜ÏÍ=»K£)M™Ï|êQùÌç6nã<çË\8xà…C¿»¸‹™Ì¤&5™Ï|W¼•Ç®]âUjÞ<2¯’¢(‘ ‡²Á^æeâ!^á6mGDÛ¶P£†Ãt€à}~p€k¹–rÈ ƒiL+Qâv¢MaÕT%%lTïñl ÒIg ¨A ¦3qûâûï¡fÍ’y^мIù=~nß‘Åë¼Ne*3—¹t¦³ÓÓ ›hŒƒôVŠ¢š[GË–’?ü »óº‘òôþ¿àoü €»¹›Ékd/:” eùjuƒÌ6¶Ñ‘ŽÌe.U‰¯L°ÞÆ6¤§G6–¦*)a£z07e[¶8;HéF·‹¿é«÷н‡_±¨«W47âí5Û©D%f3›>ôqvRbÂÑ‘¯è­PÍ­#8íÖvÝéý ò8SH!SWo¼×QÉСƒ¤%g“À¦ß‘N: YHâ§/m°Þ®ˆ8(ŠW17eñ–ªL_ú2‡9$­Îà@÷yœç¼Ã³²ŸB Ù×ãCWeð0˜ÁÏ*r¢Y8(Š漋Çh´áÑ ?¬–PÑ ž‘3«t€¤Ž[Áï£Ùš‘,f1 ièô´"&ZÛ ©JJبÞÚµ“c<€  ûªñlîñãÇ9Î]üû¥®y>ùÜÁ¬îþíVÝÁõ\ïð¬¢CS•”pPÍ­Åí ‡PõþÃÙ,6v†„BþÒõf^à…ÏÌ]ìe/ýèÇ™KøÅêИÆÏ*|ŒÞGŽÈ~EUªHW¥HÐT%%lTïæ¦lûviׯøý°kµ„]«uÿ†éLg#8‰´‹º”5?ÃF1Š·x‹ÊÝ%çl÷ÚÚ8<±(ÑT%%TskqûÂ!T½7¬÷Qx>†W*§Ïxþ‡ÿ)±ÏÃ¥ÈV¶Ò‡>lg;M{ì`ûêø¬7z;”"\hª’¢DA­ZШœ9{÷:=›Èùî;ñBÔ® Ÿ·z4`! éK_ö³ßééÅŒƒdƒ˜Ë\jS›ÅþM³f²Ñ¹ñŽG†£Geð¦Mž¢x³pˆçëvŒ¾¾{}&3>åQîåÞK:¥u9ËéCö²—L2y«ç@àóˆW¢mÅ šª¤D€ê]”xî¬d0Ã= «¯ _ði¤±žõô¤'S×Luv‚1`ÛÈ ƒ/ù’æ4gËÈ ãb`<ˆàhCñB÷PÐsÜ{¨æÖqpcô2T½ƒmÃ&0iT¢ÿ䟌`'piÛ¨(x›·ÀrÉeÃXÄ"z·¯IjªlžväˆÓ3 £·± &Í:4UI Õ»(æܺÕÙyDƒÙØÆÜ4·¡ ËYN&™äýÝïe3œ› ÅÌe.½èÅnvÓ•®¬`Wr%PúÒñF´íöô÷ª¹µT¯.Ѿ³gáÛožMIBÕÛ,®ºJŽ£Í"Q‡:Ìg>™d²ƒ1š¥½PÀŸø?å§ä“ÏxÆóP…*$'C—.ò¼µkg$½]³pP/s),‚½J†4`1‹¹Û8ËYF3šßóû¸OP@Y g8yä1ŠQ,e)Mhrñ9Åw GÌwñÊ+‡¢x™x· yyr£™”;þ{_ú²’•´£[ØB7º1›ÙÎMÔŽp„¸'y’ø;g2“I"éâs.Ûàš…ƒ†8½…ê]”x7~À»^¼Ow*©¼ÁLØ9D™Ä$2rìŸh”ìc×s=ñ>|<ÎãÌ`F‰ |ÌâiÝ:Ùy91ûŠDjô÷ª¹õ¸Ù6„¢÷Úµb:t€ÔÔ¢K#¬à&n"æ~îÇGÑ<Ïx^8,Y²„sç`çN)оüòÈÇÒT%%lT®C(ìÜ)»%7jTz!­“Ó&³ˆE4¡ ËXF:ðïÄMgø€ö´g‹¨O}æ3ŸGy´„a)oÓFR 6ov`²`¾‹‘.ô÷ª¹õ¸Ù6„¢wñÖâÔ 3˜Á$&‘H"Ïð d°‘Î4vœã¿ç÷ô£9äI&_ó5ƒTêóã¹þ­ÿþdgK÷Ç´4¨T)ò±4UIQ¢¤IÉg=tH~ã sìÙ³üBÚ `ëÊPŽsœqŒc£øì™häàÅyæ’Ë`³Žu\˵å¾.ž ÄéÓ’Sœ,BQg0 wŒ7Ì¡W¯²Ÿ“@ðKYJ+Z±Žut¥+Ydñ#?Ú3ÑXÉJºÐ…IL‡?òG–°„æ4/ó5W\5jHÅýqØlÐ|£MaÕT%%lTï¢ø|îö,UDð¡,Œæõ©Ïæ0…)T£³˜E[Úò,Ï’O¾ ³  ˜ÂÚÒ–wx‡*TáYže ŠÔ3”…ù,V®ŒñDcÀ¶m’^ж­ä&G‚žãÞC5·c¶l‘sÒM„¢wE‡`2Éd=ë¹›») €ÇxŒÎtf1‹£œ©µáãÏU\Å6¶‘FKYÊÏr–gx†Ö´æ^ ‘D~ËoYÏzúÐ'äqâÕ©Ô¿ÿ¨kß šª¤(¯!éóç­å‚;*…Âe\Ƈ|È,fц6ìd'7s3ÝèÆ fP€}ÍË )dóÈ$“a c¸ŒË˜Æ4°€4ÂËÙéÚaãFÙÜ/žˆtá0qâÄ"¿Š¢DO¼ÚãQïÚ5üÈå ±‰M<ÁT¥*s˜C:0–±¶×?œä$çï´¤%ó0'8Á5\Ã×|Í_ùk‰æÏN%S³êB°,4UI Õ»$æ&-ÞŠi·l‘œø´4ñŒ•EyšßÈlf3Ïñ iÈ:Ö1šÑ´¥-Ïð ‡9ƒ™ ¹äò<ÏÓŽv c_ñu©ËÓ<Í7|Ã-ÜRjtET©"D â¯g·ùFãUÒsÜ{¨æ±Á­ ‡Šôþê+9†’¦T©¤òGþH6ÙL`É$ó.ïÒ‰N d Ó™ÓôÖílç!¢)My9À:Ó™9Ìa‹èHÇŠ)…àú7·¥Ÿ•Ç'Ÿ|Îöí’Zéþ>MURÂFõ.‰[CE˜pkyiJP±æ)¤ð~ÃNv^ôîìd'ó0 hÀp†3•©à@Ôs>Ä!ÞäMF2’†4ä7ü†íl§ MxЧØÍnþ‹ÿ"•ÔŠ+‡x-¶Â«¤ç¸÷PÍcƒq*mtY£¡Šô.¾ñ[¤4¦1“™L6ÙÜÇ}T¡ Ÿñ·p hÀ]ÜÅG|ÄYÎFõ>~ülg;Oñ=èq±öî'È$“™Ìd-kưˆœI†æÍ¡aCÙ=z÷l+Mšô#?Z¶ÇX4DX:§(J0-[J.èþýrA)Ï{ï&ÌÂ!R¯RqªR•û¹Ÿû¸ÙÌæE^d! ™{á =íÉ ƒ^ô¢íH#†4$‘Ä"cPÀ!±‹]lbëXÇ2– uûð1˜Áü’_2ŠQ·…C¯^ðÒKñ•Ëzú4ìÚ%iVÑôéVÅÌÞl¼øý¡;•B¥-xžçyœÇy×x‰—ØÌf¦^øI"‰Œ ?ÝèF:é´ µ©]âFÿG~$‡v°ƒMlb+XÆ2ö±ïâsªR•1Œáî¡ýO û^½àÃ%*ÓºµeCǫҔÀ¢…Ã’%KÔ[á!Tï’$$HÔaíZ‰:\}µÓ3 c*ò*…«y"‰Œºð³Ÿý¼ÏûÌbŸó9›/ü¼ÌËE^Sj¤’JIä‘Ç)N•:v )\ÍÕŒd$7s3M)eó 03ž[·ŠÑoÓRR"GÓV¼‡^×cƒ¹Q3•Êkym'åé½w/8uêXc\›Ú<ÀÜÏý¬g=3˜Áæ\t -cY‘çûðQ“š¤B!…œâg(½ð¬.u¹Žë¸‰›Æ0ª¥k½ ÌÂaåJ7.&oa9sç~ ´ˆº£X´pЋ·P½K§}ûøZ8œ:›6‰wºk×òŸæhį/üœá «XÅ V°Žud“Íöp˜Ãœ¼ðLmjÓ‚¤“N':]ôHU¦rÄó •öí%¤»sgüD‘ŒW)Zãпí¬ä1ôº7†Zµ 7W"Ò;=#¡<½ƒ£ ±ZèøðÑåÂÏ_ø ‡9Ì|ÁjV³ d“Íw|Ç)NqŒcE^›H"iL+Zq%WÒ•®dA:”ˆ\Ç‚xì¬tòd zÛšª¤(–Ñ¡ƒã¥@zíZ)þíÚUÒ¬ì 2•éwá'˜|ò9Á ÎqŽB I%•ZÔ"ÉÁKTR’|6_|!↛JȘï^ÇÈêþE±ŸOlòer~ºeáP¦0Úª4¥P¨G=F^ø æ g8ÉIÎqŽD©LejP#äÖÚ±Àt \»òóe³M·c•S ´«’ªw阅æMÎÎ#TÂ1±Ö<™dêR—&4¡ͨG=G ãY2Ÿ•Û1Åùæ»)zŽ{Õs¶msv.Áz;&mº+UºníºgRX»u³öüÖ®JJبÞcnâÖ¬qvÁäç<"áz•TsIïJL”Åà©SNÏ&€YœZ¹pP½½‡jnnq*ëmòó{ôŃÆž.]êì<‚ñû‹ÚMUR—cŒƒ›_-ž®ôt¨[×éÙÄÕªIªAA|õ•Ó³ ‹ˆƒ¢(±¡[79ºÉ6O¹Ö7D†ùÜV¬pO ZNŽÔXÖ­ ÍšY;¶¦*)a£zWLûöÍ~Žsz6‚ñ†DbTsÁ|vn IŸ=+) ÑuT*Žêí=Ts{0 ³àwŠ`½—-“£."£iSIAËËsÇX˜vë&]²4UIqÕ»bRR7rNƒ1‘¿©æBß¾r4Ÿ¥ÓlØ ½º¯¼ÒÚnª·÷PÍíÁÔ¬^í¬wÚèýãªFGޱ nIW2 ‰ÖT%E‰ŒpC§¿?p³{õÕÎÎ%ž ^8œ?ïì\@n> àÅTÅÝ4j$êÓ§eO§Y³FRX¯¸Â]­Ãã ·-ŒmèÕËú±5UI Õ;4zö”£rY·m“Íß4€Ë/ÿõª¹Ð¤ ´n-Fßt¬p’U«ähu'ÕÛ{¨æöÑ£‡Íͽͮ:”¢Ã|~K—Š£ÎIüþ’¶AS•GQ½CÃ,Ì ì$Æ8ôëÙ® ªy€~ýäøÙgŽN|·ÌˆU¨ÞÞC5·s¾:iŒÞŸ.ÿÖ…Ct´k'…Èû÷ˆœN²g9uêȮѠ©JŠ\y¥lóí·pô¨³s1ÎsÓ«DŽ1°N×9äåÁ–-Ò"ÖtñRÅý˜ô'# 5æ:¦ëÆèðùöÕét%³ íÙ32GaEhª’6ªwh$%rÏŽ:¯R¤ Õ<€1°Ë–Én¡N±v­„¤;t€*U¬[õöª¹}˜ˆÃ×_Ëþ:N°dÉ6n„ãÇá²Ë¤+n‰F›ûàúMUREõ«®’£“}ÿ÷쑞εkCÇŽ‘¡šhÝZŠ­[›‡ñVšï˜•¨ÞÞC5·:u Mi§ìTûÎþýû_Œ6h$Ú £qÔ9EpÄÁ ©JŠ'˜›ºåË›ƒñ~ôë'ýþ•èðùÂIÏ’Ùí5#ù9(Šæ¼uÒ©d®_æz¦DG§Nâ Û³G~àüùØ:•@S•”P½CLJ•+ë´ðé§r80ò1Tó¢CûÉ'ÎÍÁÜp”j–ObÈñ¼»7²±Uoۋ± Æ`7Ÿ~º„Å‹å±.¬!!!Pç”Sióf8uJ"ã þ»¦*)Ž¢z‡NóæÐ¸1äæÂ7ߨÿþ~¿5 Õ¼(æ³\²Ä™:‡œØ»jÔ€ôôbÜû.ã'.Šj|ÕÛ{¨æöbü_~éÌû׮ݟÜ\±Q­[;3‡KcŒÝµ›/¾cñH´¦*)JœàóvãtÂ@ìØ!7˜uëJ­b ­[KAáÑ£²{³Ý˜ïRffñô³åLºóSNÍb°ýÓR%D:w–®{ÙÙpèýïonl¯¹&6w¼Ê5×Èqñbg² ŒmèÝ;vï¡©JJبÞáaN`ã °Š80ºúÕ¼(>_À@8‘®djfÌ¢TØË»ã'BÖÆ4n|ÕÛ{¨æö’œèzãD Ü´iÒ#Ü\ÇkèÐêÕ“¨°û9˜ïRñ…ƒ¥©JÁƒEú¸ÿþ¿VÇßã`Ü0·?6'ðÂ…§mŸÃÂ…òïAƒ¢GÏñ’Ígj±wï¿ÿ%»vAÕª›ûy‘ç˜T¥hÆ7øü~§7ÇV”K›„š5¥õÞáÃ’6d……Ru䈄ÃÛ´±ç}½Â¾}Ф‰ì¡pì˜xíàÔ)ù>ÔÎT¯m¸“—Jñp ÎZxq1YYYLœ81š©*ŠRóæÁ°aЧ½J.[&E¼mÛ¶mö½¯WxñE¸ç¸å˜6;÷}ï=¸õV<8à4Œšª¤„ê))δe]¿^ -[BZZtc©æ%iÜÚ·‡Ó§í팲j•ìøÚ¹³Y44gÌ”…,\h~³LwOlÑ z{ÕÜ~z÷–´Çիűd‹.ôN¸öZûÞÓK "ÇE‹äZmfñÙ·oÉ¿Yy~kW%%lTïðq¢EÛ‚r<8úâ7Õ¼tŒøøcûÞ3Ú]ÀCAõöª¹ýÔª%›rž;'-»íÂ\¯ÌõK±–V­ÄY—›ØSÁL¥¹ßF»*)Jœanò–.µï=ÍÂáºëì{O¯a½{Ë…zõj8q"öï——'Þ‡„„@o4¨æ¥Ó¯Ÿ¤¢­^mOKųgíöÊw õæw #ﮤz{ÕÜÌylW4ú“O¤þ­}ûcA©ŽŠÕØíTZºTtíÙSê©JŠ£¨ÞáSµªœÐ~¿=Q‡O>‘ÎP»vôã©æ¥Sµª,ü~{ ÄŠ’ÖЩSl‹ìUo;ƒùØ—/·§ÎaÞ<9Ž[+öoæagáŠå‰5môª©JЇo kæÌ‘ã 7Äþ½¼ÎСrœ??öï¼/‡¢(ñO½zâ8{VRˆb‰ß}$ÍuK‰ Õ«K‘ra¡=5p¦àÝÛ ©JJبޑaæ~à&vøpkÆTÍËÆàyóbßAÃ|wÇx[hÕÛ{¨æÎalƒñÇŠõëaÿ~hÖ ŽU½c±¿sçÆö}‚  R¥²wŒÖT%ÅQTïÈèÝ*W–<–ùðë×Ã÷ßË;[3¦j^6mÛʹ¹úƒX—'aïÄÄØvTÕÛ‹¨æÎa±NwüðC9¨Þ±Æ.§’Ypöí+÷¥¡©JЇ¤¦nøbºœ5KŽÃ‡G߆U ãYúàƒØ½ÇâÅMÊÈ€5b÷>Š¢ØKÿþÒ gåÊØæÃÛ0lXìÞC ž.N¥#Gb»‡“ÙìÍ®öºšª¤„ê9vtZ07¯V¥)j^7Ý$ÇY³äæ>ØÙ^Wõöª¹sT«ȇՎ¿{÷š5ÒÐaÐ ÕÛ|>¸ñFy+§Rpjòõ×—ý_ …ȪY‰¹iýÉO¬W5¯cßyÇú±ƒC‚ îÕÛ{¨æÎÒ¾=\v™t=Z³ÆÚ±„Ï?—: cTo{HL ؆÷Þ³~üÙ³åXQÝŠ¦*)Ž¢zGLjr4¡c«øî;)Àª\ÙúݪyÅ\{-Ô¬)ѫӕfΔ£‰jÄÕÛ{¨æÎâóÎo«mÃ{ïIãúë媷Œ-Ç·ß¶6]éàAÙû£R¥@ýdYhª’¢Ä1ÈÅ{Ó&ÈζnÜÿ[Ž#FHœb/))0j”<~÷]ëÆÍÉãšj_× EQìÇ,¦O·v\s=ºõVkÇUBcÀhØví²6š4s¦,D ’ºF»ÐT%%lTïèHI „‹MÞ©¼ý¶dznLƒj·Ý&Ç7ߴγdÒÏ®»Nº¯Øêí=Tsçé×êÖ…o¾-[¬óÛoaéR‰D›B]P½í$) n¹E¿ù¦uãšf(u+šª¤8Šê=æ"bfLÿ»IDATU>üºuRxU§ŽõiJ š‡ÊÀи1ìÜiÝfpÆ8˜p·¨ÞÞC5wžää@ÔÁ*ÛðÆr9²¨ãAõ¶—Ÿÿ\Žo½ùùÑwè,Z$5Á ²°Rï$ËFR%d®»N6ñZ¿^òáÛµ‹n¼×^“ã˜1ÑPœ!1n¿þúWø×¿¤£F4oajj x¬ÈÊÊŠí(ŠR!ãÆÁÔ©rƒ™•]§œÂBxùeyln\gèÞ]ìüÖ­Ò9ËÔ:FÊ´ir2D¢Tv¢©JJبÞÑ“šð P¤œ=X8Üygtc•…j:ÿñrœ>Nœˆn¬`oa¬w‹ž8qâÅßÄöÍסç¸;80¿retc}ú)ìÙM›–¬R½íÅç Øç^ˆ~ÿ|äEÒŸ~*^ÇfÍìÙ-ZQwp÷Ýr|ûmÈË‹lŒœi¬˜¿ü¥usS"§aCÉ4(,„ü#òq^|QŽcÇ:ÓAQS•”°Q½­!!Æ—Çÿ÷‘ñÅή[7ôe$¨æáñ“Ÿ@“&’Ï:o^dcLž,ǻv¢z{ÕÜ=´kW_ §NÁë¯G6ÆsωÓbôhIU*Žêí ÿùŸr|á‰J‡ËÉ“H´¹MUREõ¶Ž_üBê>þ8²ö{O>)Ç ¤Ý^¬PÍÃ#%%` žz*ü×ïÞ-­z“’àW¿²vn¡ z{ÕÜ]Ü{¯Ÿ~:üTÖÜ\˜2E?ø`éÏQ½!#23¥þÍd „ÃÔ©òÚÌÌðR“5UIQ.êÕ“ÅÀ¤Iá½vÕ*ñfW©¸IUÜÄ ²Ñß’%òÿû¿rüéO%r¡(Š·¸ùfhÙRŠ›MPyöYñLW]‹Ù)‘âóÁÿ(Ÿ~Z¢J¡’Ÿ/û ì¡hª’6ª·µüö·’‡úúë²ñO(øýò:€ûîƒ b7?PÍ#¡fMxè!yüÈ#¡×:ìÙ#E‘>Ÿ¼Î To»‹ääÀ5þ/ =ê° Êùøãe?OõvŽaàW/8xþö·Ð_÷Ê+ðý÷жmh›¾c¥Þ>¿ßªýME‰”_ýJúþsæTüüwߕ¨Zµd³±:ub?G%|òòàòËáÀxõÕÐz©ßz+¼÷žèkvw‚¬¬,&NœèÜÅãœ;W\!x^x!´´Å;îV7Þ³fÅ~ŽJd|ò  •*Av64o^þóOœïÂbÆŽµgž¥¡©JŠâ{Lº#Ì ³g—ÿÜ£G%Êâ‰ÒEƒ{©^=‚vß}â ,ùóeÑP©<ñDìç§(Š{©T)¶øÈ#rÓX‹É¢!%EÒ`÷2h´R=wNº^UäÂÿÓŸDÿž=Źä$šª¤„êm=Mšnï¸Cv .ÂBéžtø°GM˜`ÏüTóȹã1'OJ‡“²R D$þüghÝÚ¾9Gõöª¹;;®¹Ž—} KÞ÷ßn(ÿüg‰t–‡êí<Ï?/)­ jJãÃ¥}kB‚T'Dp箩JŠr RP×^ ‹KHòË/‹F Å31uª\lÖ¬‘} ÷““#ô>,7o¼Q´Åªé’±e‹tÝøüsÉqvMURwðí·rýÈÍ•=^|±èž=HûÖìlÙhñbç¯JhLŸ·Ü"_½äfŸ«VAïÞpþ¼d&¸á’¬©JŠâeè´4ؾZµ’\ÆÓ§e¿†=dÑ’"]4ÄÍšÉfL©©¢qÏž’Vpê”ü÷´4Y44o.ÚªÑWÅТ…tVJN–Æ W]«WKóÕWÅÑ”-Q†÷ß×ëG<1z´,@¢Ó?ÿ¹ØÿÇ¥Ýz¯^²h5J"In@#Šâ2rr`èPظ±äßj×–Âè!C쟗=K—J7ŒÃ‡Kþ­m[©qqË‚P#Šâ.æÍƒ1cJß8¬{w)†.m³7ÅÝøý’ªô‡?”^ë0v¬,+U²}j¥¢ Eq!gÏÊΟ¯¼;vÈVõ£FIÿgíëß<(ž¤3`ß>©e¸ýviÝZµªÓ³SÅÍ|÷4Ř=[e¤§Ãwʆq))NÏN‰†•+¥~ñb8sF² x@¢Á©iNóÿÿL6ƒ÷5IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/cpudemo.png000066400000000000000000000730411465265754400206350ustar00rootroot00000000000000‰PNG  IHDR4V\k pHYsÄÄ•+ IDATxœìÝkpcéyØùÿ9^›}Ÿ²ÙÏŒF£ËÌÈ’ØV‹2mDZƎål˜kj‹Ùò&µ_ö )ŬðÃÖî~ÈÖn˜°"‘»›x«’ìf:i‹cÚQ"{FöJC«ÝRS#ÍUÓ÷A“ ^š7÷s߸¼  ùüªº$à¼9ă÷}ÞçQ"‘ˆ‹B!ĦÖzB!„%B!Ž< h„BqäI@#„Bˆ#ÏSë!.<9ÈÀx({«‡¡‰~º61ÍXp˜©ì­@ß(#½Õ¢B* h„8ÑÂL° 1ÑßUìÛ¯PLíãñBQ ²ä$„Bˆ#Ofh„8Ñ:è™ ·ÖÃBˆ’€Fˆnz,Èp6¹fknMxz’ׯ]g*Úx@ @àr7ßè¿ÂÍÂå*€©a‚¹DÂ\žp˜é׿ɵ©§ôtóÚ«½tåŸróX o”o\zo^›"ú"¿ø oÛ4ÖÂ¥¯@£#½H–'‡4B;S oDûVèl  ÁÍW¯”v¡ð$ƒãLþB„¦B O]§ot„r”Cã äo5ñ‰îoeƒ«Ðõ›„{sAK˜›×7ž!Ð}E‚!N h„Û…'¹–f›Žpxš×¿yÜrÕ•¢IÁa&¿¹Ìz†øF„™ÈL!ÆƸ´mgÖvç®tÏÎò„®s3Ü›Wø&ñL€î+ÎqÒH@#ı³÷¶í=ÍĮ́„¸~sšKWÚéêè ££‹þ‘w2M¿^°$ÕÃký]Ù™“º^í#0• v¦¸1ÝO×–Ën@zÆóÐõ›az{;6·çµg{„Ç›ìrBl×u•ž‚›¡ña†ƒ›—t™ð£™NÚ v\ârÁÍ™G;\³³}ÛÒQ×Õ‘…®ß$ LߨÕz®Ê¶q!N" h„;è¢tˆ¾@`û¡Pˆ©áƦ«>¨ŒÂ`+4ÎëÓÓÜ(HD–xFˆ“I!ÄÎ:ºèabb‚ÑÑQ†úzžº±wDÓq©`&4Ë\‘s/_*u¨‹Wû6F25\°”ÖsuÏ<!Äñ$b»é1ǘg–:::èê}•îÀÆ)Îö훺Á¦Õ¨®WÙˆ=¦¸69Mæp˜é±ÂœžòfV:®to ®²#¢ïU g„8©$)X±£PhŠá]Òˆ=¼–ͼí(ÜyDác2ÉɽßèãzvÛvh|˜ñm£otïN›t\¡;0NayÝÈæ&!N.™¡Bl×~•¾ž¶¥Ðôô 1:R€tô22ÚG϶s 2ÔØ2« ÐÓÇÐ.5hŠë ÷µžM÷Hí!N6%‰¸µ„B”mzŒàðæÙ Ypâä’!ÄfòZÁr˜$ qâI@#„8z6U–Ú3B h„GPøæõ‚JÆR{F!94B!„8a†fš±à “[«˜‡' 3¥ÓƒcL—zL!„b h¦Ç‚wl€—é¸{yh‚‰‰ &†`xp2_`k÷cB!„{«h@ÓÕ?ÁÄÄ=[„or= _X´½“@® z±cB!„%¨bRðe6·j™a£¹n±cB!„ÅU§õÁÜlÁŽ ã—K9¶ƒo}ë[{>Ý׿þuÚÚÚÊ£B±ƒååe^{í5öõxUUqgÇcŠ¢àº»ïÍÑ4 Û¶w=þÍo~“'žxb_ã:nªдw`vãvø3@ç^Çvðõ¯½èS•ð!„¥š››£µµ•öö²ÖØóÏ?Ïúúz­‡Qª¸ä´u©p™©Ø1!„¢vÂápÑYQªÐt\¡;b6—é;7K(ÐIû^Ç„Bˆ»}ûö¾—›DõTtÉiz,H¾WÜ@ñ@£#½tÐAïÈcÁ A ÓH®7۷رú‰Dòÿ Ã@Ó4Z[[óÿZZZj=D!„p÷î]šššjòÜÓÓ_ã™g~ʹs²÷w/Ç®Rð·¾õ­CI ¾uë=uƒÈÊ1Ãà´¢pÚqhu]ÞWtã‹x<1<žªÃëõðüóÏñÒK/ðì³ÏVt,B!ªç·û·yúé§«þ¼33ŸâÃEq¸pá!/½ô}¼^}Ó9ÿâ_ü ɡɪNRð‹Åøþ÷Ä;ïüø¦áò|ü1ÿÐØø…JiïŸ;G$òµMUÕ8ßâƒnÿ‘Ï}î _ýj~¿¿º/B!ľÍÏÏãõz‹žcšÌξÀ“O> ©©rÁÅíÛWilŒ¢ª6««|ï{ÿ€Oú:À{{ŽãDš¸®Ëw¾ó&ï½÷!««¿…®ÿ \WÃï¿Ë|Ó=0ô=¯á8-¤R_$•ú"ŠbñÖ[ñÎ;ߤ«ë ¿ù›£ ¯B!ÄAÍÍí½ÔsãÆß!=Ç;¿DCCœööÛ\¼øÓ§ïûyççŸÅ¶½øýIüþ~‚[·¾ÄÇ¿Ä/þ⛺þq$Í~x‹ï|çMÖÖ®‹ýÃMÇtý­^Ö‡3j6ŸÚuAQŠ^Óu=$“/’L¾È[oý7oþc^}õwùÌg^8¬—!„¢fgg‹îpZY¹D*uŠS§–°m/|ž>ª:<õÔ]ž{î§46FËzÞÛ·¿„ߟÚvSSÛöò£ý]ÚÛïpx›¯¦ÛÚʨgˆ‰þý´¶Ÿf,xÎÑz1AVšÿù?ÿï¼³ÂÜ\ÿ®ç(n+·œy®ªûÛ ¶¾þˬ¯wó'ò§Á£GŸâW~eœ¦¦Ò‚šååK¤Ó-»._ež#ÂÂÂ3|ï{põj/¨$a&‡ah‚‰|ü2ÍØà#ÂtÕí¦ h²þðÿ ~ØÆÚÚkEÏ‹[Ïq·áW-ãϦ÷’Nÿ€……oó{¿÷»¸–BˆÃrÿþý]šHä"Ñè…]EqhlŒaÛ>nÞü¿ú«XÒsÞ¾ý¥mÉ¿;ihˆó›¿ Ï ßäz¨‡×6MÆtÑ?ÒE&Øàz÷(#¹é–é1‚×:3»š§ÇÌëôüwôÍü«ÌLÏ@qzšè§kË PÏЙɟìlNßeÆÇ3G}£Œ\z=Ý@_Ás8òM%*ÿŸÿç¿!ú"‰ÄK{ž›J}žpëO`mMQ2ËNû°²ò«èú»üûÿgü½¿÷[ûº†BˆÃaš& \¾¼sCžû÷¿ˆ¦Y{^GÓ R©V<øEžyægEÏDž ;W‘äbÏo=n½òÊÎ:®Ðgx0¤l>È•îã×oîÍ›¾1E {”Žð$ƒÃ3ôNd—–¦ƒÞ‘!f7-9ef€fúF™èí€ð$ƒcLOô“‰¡BŒÏ¾ÆÄDöØÁž¡‚Û¯3Ý›;wC+ޝýë›þ•ëßü›ÿH(Ô]R0`—qT•ÇZ¸ŒÇ_æ½÷Úù·ÿöÛ¹žBˆÊ˜››ÃãÙù{<~š¥¥NüþDI×jlŒqûö/‘Lž*zÞÝ»_DÓ̲ÇZYôŽŒÒÇ8Á Á``pÉlEÿŽÞ×è ]çf`šSº¯äž‚B¹tÑ¿SÎMn(7ËÒq…îÀ7¦s'è{5û¸ŽK\Þv{çÖG~†æ þÓúKîÜy‘Dâ“e=ÎqÏpË]ä"€m—xüeîß_ãÍ7ßâ«_•œ!„¨sss»6ŽÌ%ý–ÃçKñÓŸþ_ùʵÇãgXY¹T±­ß»ÎÀ”¤ƒÞ‘ z³·Â“ƒ Œqi¢Ÿ.º¸Ú3̵›az/Ý`*ÐÍh@/#C³‡ƒ;,%˜›%ÄÃÁM)Çô`´p‚šÛ·ïðF½ìÇÆÍOr¯y–=]±ñ,/ÿ*7oþ ííñÙÏ~ªb×B±?>Üñ~]ofnîyšš"e]ÏëÕI$Ú…^$xÛñû÷¿€ªÖgϨŽÞ×è¿Æ£0tu@×Õ†¯Ýdòrv¹)wbWfi2¹5Ãc\Ø)k9—KS9G~Éi¿þè¾ÍÂÂþ’qS©/°p­ æç‡?þã×+~]!„å»uëÖŽ Áü2в¿À£±1ÊG}]oÞt:ÝÂÜܳ44Ä÷uÝŠ O286½ù¾éÌLL~e©ë*=¡qƧ –ަÇœ,X jï$ïÍX°Õõ*})®œžcr‡e¤rœÈš?ýÓïþ]\w/ß²žÀE!lÛ<éóí;)x+×ÕH¥zxãïóÊ+¿V‘k !„ØŸû÷ïÓܼ9ð°m/ü2ÍÍkû¾®×›âí·“/yã 샟+{ ëÐt\¡{f€`°ðέ}»¸ÚS\ݘeéºÊåá‚ã¹;ôŽÐ¼Ú``8ÈTvf&“(\pn Ñ^äÄ4±XŒ>xŸDâ7tÛ=Ïmx²BãÊY_ïáæÍÿ_ûµn|>_…¯.„¢Éd’õõu.]º´éþ?~ñÀËB>_šhô³³Ÿ¦³ó瘦‡_“©Lš×›æ§?}…;w®ÐØx´:fO¿>N¨çjE“zêD-9½ÿþû¸î˹–ãœFuB‡ÐHÃu½(J'<à™gž©øõ…B÷àÁÔ--nnßþRE“v}¾kkO¢ª{ç«7]ýLÔz[œ¨š>z@4¨Øõ ÷ îWxv&'y÷Þ»u(×BQÜíÛ·7%ÏÏ?‡m{*¾­º©i½äO¢¸#?C³[ëƒÅÅÅm÷Ý¿hô*¶½½ƒé~¬'>Á½SÁuI¥*sÍÃpëÖ_ïø:„B®Ÿÿüçœ:u*ÿ·ý£~'Z´óv-,..ÒÐÐPëaÔ…#Ðlmw°[€‰D€'±íÊ%òF£_`ùòõŠmÛ.dÛ-˜¦A*•¢±±±â×B±³õõut]Ï·=H&ÏJ.»ž¨®³ä”L&1Œ½»—–Ãqðbbºã´H”Ö'D!De,..nÊŸ‰ÅÎ㺇“^ *çÄ4©T ÛÞ¹üA$Œ§*¾Ë)Ç0ZH&“‡rm!„;[XXØ´´‰\ªÛ–bÉ hÒé4º^ù¥›x²¼Æ–å0M™¡Bˆj{ðà^¯7{uõ2^oåz÷‰Ãqb×uÑõ³¿n4z…Ãzuý–uô¶ó !ÄQöàÁƒ|î¢m{I&Ïàñ5•ØË‰ hTUÅç[9”k‡Bƒ‡r]¿)Ÿ”&„¢:fffòM)ãñ ûnD)ªëÄ4ÍÍÍx½uÐÅ´ ^o|[c4!„‡ge%óÅ7—^ÀuOÌGå‘vb~JG1 ñùâ;¶®Bq8P 6z¬®>-ËMGĉ hšššPÕ£ШªÌÐ!D5ÍÏÏoÚá´¶Ö×[Ù©âpœ¨€ÆëÕд£±kHÓbx<^)ª'„8V"ºÎ×þøY×+[¬R…ãx^'ìêÄ4O?ÝISÓÝZ£$MMw .×zBQQ1ÃÀ«ª|÷ãk=”Ý¿?ÿE2SP¯Æ%;ò[hvku°“çŸpç·ÄbŸ;ÄUÆÙ³wøä'+Ó\!êEÂ49ÝØÈŸ}ü1÷ŸÀ¯iµRžëº„Ãa.]ºÀúzûaÕM‡àÈ4¥örèììDUÿE±pÝú}éŠb ióttü­ZE!**ašØŽƒGUy3âwž}¶ÖCÊ[XXØT*ceå²äÏ!'jÉ à“Ÿ|‘––;µFQ­­wxá…—j= !ö-óF.)ˆÚŠ.p¡©‰?ºu«ÖÃÙdqq1¿ÃÉqTb±‹x½õ™ë#¶;qÍ—¿üyΟ³ÖÃ(êܹ7ùò—±ÖÃbßÖÒiþ÷wÞáa4Z롈:³n(€hšÆÿ73Së!å…Ãáü§xü¼ôo:bN\@ãóùøìg?˹s7j=”;w_üœTGZÜ0hôxø·~X롈:³šJáÍ­;×ØÈµÛ·k<¢ ÷îÝË'Çã'¹ Þ4cÁA&Ã{ÝW_NäO«»û §N]êk+ž¢Xœ:õ#¾üå/Öz(BHÒ²ðkG£¼¿´Tëáˆ:²¦ëx²WUчÏÍÕxT¡P(_Ìtuõi4ͬñˆD9Nd@ðë¿þUïÖz›<ýôwùßøj­‡!ÄEtMUióùø¿e–FX×õü ÀiŸ?º[z9;kk‡1,LÓdee%_ƒF êíazŒ`0¸ñol:w€±‚ûówçfx¦'  ǘÞåÒûub×5ž{.Àââ ©ÔY\üJ­‡ÃOLñòËm<óÌӵжšNãU< ®ÏÍÑÝÞ^ëa‰:°nx ¶j7x<,$¼·´ÄK.}ì÷>äÏ>þ˜ˆ®sõ©§¸òÔS|úܹMÒ~-,, eÇ¥ëÍF#ÍÍ‘_·–Þx£øGü+¯Xû»px’ÁáúF'èí˜fl Ìäà03}£LôvdÎcz¢Ÿ.BŒ_ëftb‚Žý=sQÕ h“ Œ @ßèHöØz¬‡¡ü‹?\ÝÝ_`eå{¤R~¶ ϸ³¶¶wyî¹®^ýõšAˆJZÓu<Ù‡óMMüë÷ß—€FÕuÎn©€Þâõ2q÷nÑ€fâömÞœ™álCçùñÂ×çæ°‡Ïž;G÷¥K¼xám>߾Ƶ°°€ãdÒ2¶÷u™$Äìd"“.úûð$×C=¼6’ýpï¸Bw`œÓýtuèûFï¡3Pµ€fš±q.M0ÒáÉAƸ4ÑOa&¿¹qŒé1‚ƒ“ŒŽÞ‹.ô·ÿöo (ÍÀúzõƒš¶¶÷xñžö5 fÄñI§óßšµì'Ãw<ào=óL-‡%jÌ´m ÇÉÿNä´ø|ÌD£Ü__çÙ¶¶mû×ï¿ÏÍ…Î64™ß©óAQ(ãçï¿aÛüÓž:[[ËÛÒÒR¾Ãöúúe?¾í{f/½Œ Í2•½«gh‚~f 1ÅppjÓé=‡3Šmª¸ä 3û­ãJ7ñÙÌðM®‡tç¾¼µwÍ’üªàw~ç˸î÷¸?RÕå§'ž˜â¹çV$˜ÇNÔ0ò‰Ÿ›šø·nñ@E–ÄÑ”´í]7=^¿s‡Ôµy~þŸ¿ý6w×Ö8“ fvÒæ÷Óæ÷3ŸHðãùù}4óóóù%§L‡ítÙ×8^ g`€ð#f€ÎÜá®~&&ú3ÿzŒàðW‡ š«,[U) éâjÏ0ÃÙY™ö›× õ¼Vð‚/siSô2ã0tíÑ”Úê`©ÌW¯~ަ¦[hÚŸðàÁßÄu¯·¢Ø<÷Ü›|êS ¼ôÒKeUˆz·‹q¡¡Tá7qÛæ_MO”Yšk!•Â0 R©íɶ>àgóó¼÷ð!Oewý³wßeU×iözw|ÌVŠeñÑüªªÐlÛâ•YoËL>uÐ;2”©,lZ§«#/^äâÅ‹@æ—?•J‘N§I¥RØvMk ±ñ 466æ«M qÒ$- ÇÝ}a¡Åë%büþt?ù$/;Çs§NUq„ÇÇr:GQXI§i?3^k¦¹i÷Ûa°]—5½¼Ù‰DUU±¬F £•ÆÆÃ©F,Wõ¶mnñÚ~°Èz\ýñûý°±‹„iÍ“hòxðª*S ¼5?|þüy>þ<Ï·µ•;qR=J$ÐT•U]?M¤ ÓaQ…d²¬ÇäšLA½½~{E½:±­„‡#fYPd†&Ç«ªœÏÖq]—VWùÙò2–ãðÚ³Ïò+O=uØC=òæ’I¼ªÊr™3µÕõ}åÆ”Ã¯i„÷ÐÄãOJBð&?9!DE­T .•¢(œñû¹ØØÈÅÆF¾óðá!îxYH&iñx˜Çk=”’D«°ää×4æË h’É$Žã°¶ö hÚI/¨wtÌÐL3fj÷s÷P»ê€Bˆú±¾¥Jp¹<ªŠîºÄM“–2jœ41ÓÄq]Z¼^ÂÙ†z3MNí³×R©üšVö’S. ‰F;ðû£‡42qØd†FQQëø®‹û¬'rR¬¤Ó¨Š‚_ÓXL×ÿ¬‚㺤m{[§JS ¿u»TÑhÓ¼€ëª’Cs„mÏ¡ ô•Ù2Ìäàã¡ ŽJqdÅ ãÀy¶ë²Jñ¬ì~ÚÕªa`g=šŽS÷3ZÅ .Vš¬FÉ[·WWW1ÍKÙGŠ£êÈ'¤Õ¢ò–uàeŸ¢ŠÅè~âxt=> É$dXÑõúhl»jႬ¦ÓätÁ’•B¦¡d£çà%Ëb¦IS®Sª†»n'¦xT IDAT l»´¥>Qßv—§ ǘèèedbˆž-gÉ.'!ÄV•^Vȵ@8®â¦‰á8´z½<,qyÍtb–µí}nÐ4˜¡you•ä–ë*ŠÂú–äýŠ[VUghJmR¹¾¾Žã4!jaš±à •Ú_´%\™qBL1œ"×E{E÷ßn•WVVª<!Äãh4_-¸"L“y¡Šßì«i6•Â2 tEÁ6M>š›ãâI¬uÛ0Ho sB««ûþÛ÷í;wð8é‚ (N3»¼Ì¹.;¥lÛ47]»ÂéôžïÇìì,–Õ€m»Ø•ú½­¢••:;;+wÁ]v6çì=™1ÍXð£#T{Îcû_‰Ž^F&zÉïdÚØtm{@mIë!êGÜ4iª`?¡‡™2*¾5+ºž¯Íâ‹éôžÍÚ.3&^Ue5Ærݲ—ýÄã¬g·îR"¦YÖµvRÍÆ”…E!jYœ*Çb1à<2C“• –ÁÉ~ùÚ“k…p4!Dm¹®KÒqh­àWƒªòX×ó‰ªÇÍ|*•]EáãD‚ÛÚŠ>fÕ0v-P§) k†Á…»Lç|oqÿËAÞ Õ·I9T©Jp!5û~ìÐØv›Ô )צ™œ}£#ôv„™ÎäÛ§‡¡‰«ÜoÊÁÝ\¦rJ˜ÇÝ-°É½€ÊJqô¤çP‚XÖu.–X£å(y”JÑ $5K˜Z(V nÍ\:Íl2ɹãUV+°Ë)eÛ5ÙCä¸.Ãàé"Õ¦3mNË€æ7Þ(zü•W^Ùç•§çòÐ#]ÀôÁ1.MôÓ;2Äì–Y®Â”•ð$ƒcLÂÄÈŽMxrñPÁ=™àes`b<ûd¶FqXË .°lÇ2 YH§ó»•5ùlÁ¼bïãÜ;œr×ÝVEx/™-¤·_vë ’–…[£¶¥=ÞL@sJú8•cúSô0”ûðïºJÃܘî§kÇ€ 7äx†® Oˆl h¶3!Æat„ގ›•âÈ:Ìe…¹tšO³­Û)Û&eÛ´,‡hŠÂb:ÍS»>nÉ4iÙ%ñ* se ˺Îx|{îLîzªÊªa¸ëy5Sò«jÑW©T UU1Œæc9C³ÿ˜lªC×Ngfw<1ÌÌô2ÑÛA./ç0l hÂܼb[žÌôÁá)®ß Ó›_cê¢Bæf„©CÚ!Ò¨i<<†‰Á+†±m&Æq]u}×€&iY¶¶KNH¹M*§–—÷œUÓ…˜irêÉÞ1Û.µŠkEù5Å"^2™DUU,« M;xòó‰’í‰æ˜ ír^n6§ ù)[~Dzƒê¹ºy©½“À¡Eq”%-ëPò$5Ge´8*Vt}Û¬…WUyP¤MIJŠ~Ue©Äv1Óä£h”Ó%*±æÑDt½ª5hr|ªÊJ‘%§T6ø³¬&E–œJÖu•¦¸–+ “ Z®æ‡‚îí˜áQ®ÖÌômEz+eËoXfÚˆ©™¢z9s³»îIBÈ4‡Ñ GStÇ!qk„³ÓÌAÓ‰Á«º^4ES Ç)i¶ìN"QZ[E!zÀ­Û1Û®jcÊ%û/ºËëL&“8Ž×…c¸‰îejÖ1>@0$8fνÁ¶B½•²eÞ²ƒ+ÝÆC¹L…t_‘-MBˆÅö˜=8…L7êæææCz†ê›Ý!¹×¯ª½ªÊòƒÉ¤mWµ1åV»å­¯¯ãºÇgÖï¤+ø Ëîô1:Ò[Fí0“ƒŒ‡jSAXZQb‡8CÓ iÌ£Äà]ßuyΧi<ˆÅøâ™3ÛŽ-¥Óœß£hžOU÷L¢~{mmÇÙ¡¯§(¬`É)mÛ (5k,àWUvÙé´¾¾Ž¢´àº2EsùŽoÒËIˆú·,|%ädìGƒª²Xãºãì¹ÜSªbí 5‡;l½ŽZV>ɵ˜½¶*§l›‰’« ûTu×þQ¥HÙvM»$ù5m×€&’Ùx,ÍqP‹ÒBˆc(á8h‡lhŠÂòs9âgføÑêjE®µ[Ž dfÖ c[ÇòU]/)˜Ûkëöíh´¬o5»sJßç.³Z4¾lqÀÄb1§µm¦Ä!Ø>Cg 8^ƒ¡!Ž*ݶÁuõƒËuœLO§2/VÂ?½}Çuy˜H7MþæOèzŠ´/€lbp:ÍÓ»º"¦‰]Â'oîgÝ¥ÞÛkk%ínÚ:ž˜eáßÇ \ÊqjR%8GpÝ»n' l» U=^%N*™¡BXêSn¢(̰óó{ë뼉”|¾é8üO|df>Ú¼^®//óÇhsétÑÛqXØ2ËòX×KUEÙq§SÚ¶¹ŸHlj·P×Ýwq½”m×4 PU•µ-ï§ëºù€æ8¶=8‰ ~«s=š„¢<Él~ÇajÔ4BL þ£™p]~ººJ°³³h9ÿ¨iòOnßæœÏ·é›ß)¯—£Qòß<ýtÙc0]—èÍ6ýšÆýxœ_*ØÕN&Kž!q\—µºLßÅöõsraßµh’–…Sã}ѹ­Û…?­>N-Ò˜ò˜!Ä¥lûPÚjÔ4Âèéô ‘@QÎ54Öu†oÝâûïxî|:ÍðíÛ\ØÌä´x<NͨªÖ;êá÷LqÄU# 9h „÷ÖÖP²3-šÆy¿Ÿ,-ñ¿üüçÜÅòçÝ‹Çù—÷îq~—Ô9Ík†Á?»u«¬q¬–Pí׫ªÄm›D6ˆ°³3 ¾¿¦Þ2›eº.·¢QZ÷QƧ(%÷ˆÚ*Zâz9;uÝÎõq2Méãt\T7 ™Ëôr N’ëUEx’ÁÜýÁ±Í}¤„u/eÛ8UÈ“P…¥"[’‹ùéú:m[>ÌO{½øU•ÿçáCÆ>äN4Ê¿{ø3{39š†üÏ~Xr@÷x‡¦”;QØè÷´feí ó«ê¶𻱨¾óœ¼šÆò>ß÷uèIcÊB~MÛö~¤R)\×Ųš$)ø˜¨^šé1‚Ã041±¥ø^˜ÉoŽsyh‚‘®ìyƒ“e÷BÔR¼ 94Ž¢ðX× ”ÙÓ)”HàîRÃÆ£ªœõù¸ŸHða4Zr}–œÜ¬É?¿s‡ßþù=ÏŸ-1Æ%Óá™–"¦YVb­OUYL§7Õíy{mmßu‚¼»$—"^£Æ”…|;T;N&“X–ôq:Nª6‡™¼6EÏЕ„Ã7¹ ÐÙž½ÝÞI 4ËÜÖó„u«ZßÂ}ŠÂÃ}äÑ|æ—›vÓêñ”ÌäÇ•­urKÞËNæS©’ªôú5{Ù¥°U]/»“¹¦ªù Är~‹íØ ±>UݵÒ^b‡Ø£Tù®Û¯a£“¡9.ª3C“ Z¸$8œ¹«gh‚þ|ts™K›¦cfx†®¦hJ­¼Z¡XBˆ½-Æb8†îî·]Õq¸‰°Zæ Í_/.Ò¬ª‡:>Ųxsf†×ž|r×sl×e1‘à‚ÏÇ^)šër7auu•û««¸–µçc ¦Ihi ¥±‘»É$¶a `YÐ6 f––h)s–g-æŒÇSóN–eZZâRvwY8Æ4ý8Ž½Ï¼¬z Ÿuöh“ Œ ‡¡‰Wy48Àx}£Œ”Ò‚{n–Ð÷ F:È.?qu¢Ÿ®ì±¼ŽK\.r©­­¶’ÖBT_¶÷ܹS ¹Ü—Ò‹Õ‡uÛqЩ-CN‹ÇÃtš˜eíšx»fš%çÂx…uÇ!nÛ<6ͽ›Rnáº.ë¦ |x–DQâ–UV@cºî®K}Õæ¸.Ñ‚À%¢(-5‘¨´â¦Ç惙œ®t]¿¹‘Ø»§‚Y˜®«ô0Åi2KL…§…1Sò5…õ aÛn¸°Á«ieåsÜJ$¨Vm{UQx·`ÇÔVk–UV.Œ,Kº^ò§ª²hš¸ÀÏ“É}/7å¸dÚ[”#eÛ{.õUÓJÁïM"‘Àu›¥1å1Rä¿LÞ d–‡†z6Žt\éÎ!¥æº´wÈ.#m(È›Ùvl딢ž%§jy*0–|þ{ñ8­E èUR›¦ñ×Eƶjš¸e¼O.ðH×I»nÙï¯OQxlšß¾ú/œ?Àc·ÊõÒ2Ëx 1Ë*«eÃaS…´ãäû8YV‹,9í¤«Ÿ‰‰!zÐ7ZX3®¾í¨½ªJÜ4y7ãåÖÖüý ƒ¤ãlÊa©¶&‡‘ŸÉ&ÏFÙÅñêQܶ9Sâû·¬š7¦,äº.)ÛÆJ¥p°m?>_é%Žš7<(zü•gž)ñJa&‡™ée¢·ƒ\Ížç…'cºJ EšiÆŠFa9= Él'ŽmgJÆ×ú[øi‡ï®¬l hîî² UM ªÊ²e±h<áó±Xæ§zä’ hJ•pœºš¡q³KNF¾Ó1oLY©:|“ë¡^Ù#ÍdëyWèŒscºŸ®* X\b88C_2œ¥ÕµaYº®×d`<ÄøëÓôÖ shko' p„8|vvgS<'nÛ5ï¦|Úãa*á‹­­Äm›˜ir¶Èvîjióxx'åÊ©SÛ>]K6Ú$“It}çv™ªªÒÒÖ†U'}œr4E!fÛè± }œJÖÞI€ÙO®ÝªM‘€&[)x‡6]W{`jŠ©Óô¿ÚM`K‘JøÑLá éŽ-Ä “ hbñ8:ÐZ'Ö¾l5Ûö:°r|ªŠ uµÛg¿¼ªÊŠa7Œ¢5~4M#B4E!aÛ‰Š")wÕÕÏĶ­Í[îËÿß.ú' ˜jWù¿ÈO³‹«ÙljxŒ­äÓ¼ž©¬—/Ñ‘K’†’Bœ†a ª*ñD¢®¾ã¶hí~­‡±M»ßÏé: ²ö+÷³^‰ÅpœÝwišÆZ$R³Â†»Ñ…¸i¢ë:–uêøïr:aŠþÖÕ?DÏÔ0S;d-C€¾W»ßÌîE¿|I–›„8!rM2¦±Î>´ÄáR…ù¥%´"Ëz‡h"Q³‚‹»Q[×QÓl•>NÇÌ_ºèŸ¥s0×î +ÐÇèH¶#vïUZBÔÃ0˜ýïi9ýgøuê`G‘¨ž¥•¼E¶ ç–#ëqW—«ë8ù>NR%ø8)a´ƒÞ‘ $fBä†A"ñI|ÍÓX»ìtǓ㺬¬­qªH@ãñxˆÅ㜩ÀÆÖuT×Å0¤Óöq³g@“«9³3©,ÄId®ëÃv5œ]j‘ˆãISVÖ×9wþüîçhÉd’ uÐ8ºŽëºXV³ÌÐ3ES¼Ã“ƒE‚!ÄI•J¥p]/¶åÇ’€æDQ ݶQ‹ìÚRÓuQʨ*\-–®c9¶Ý$34ÇL‘š07¯‡è¥óÚãdsg²{Ô{†j?;³[eàH$Rå‘qr,/gv°èf+fbn׊±âø±b1tÛÞógn9f"^g³4éxÕp0MšfÖz8&ŸuJ¨ÜÃÕ®¸ù‚3]WéaŠ©k“¼ÚÕ[ÓÝMÒú@ˆê‹Ål4Í´Nƒþq­‡#ª)•Â*a÷’NCK}µp \¥E©¯XâàÊ«*”­¼ëm!ĉJ¢X8ÎiìD¢ÖÃUd'“ØŽS´•ƒ Ø€cÖß ˆ“JaÓB6äÇHÉM{g€\!ÄÉ–L‚ªÚØÎiìTªÖÃUdfX³È, (®‹]‡K‘N2‰í6×zâ h²Ý¶³ALÇ¥ËäÛ äÚHu`!N¤Ì cŸÂI&k=QEz$‚êñ]v²]ê5 I¥°$ 9–ŠäÐt‰aB\¿¦·7›7“kNº¯Hu`!N tZEQÀŃ•”©û“DFQ<žâ34® Š‚U‡Á®NcÓŒVfÆ…¨{´>˜`£Uý£}Ì Œg{7õñjôBÔ]WE±±òÁp’˜ñøÞ  ¨*f4®ãàš&¶ÛŒêÖ×î+qpåuKëèeDúq¢¹®‹izqQAu0SõÓt1±¸ÈÂô4Ï~íkµÊ&ÿâ/8ý‰OÐöôÓµʸ®‹™L¢µµ¡ï5C£iuÐØºŽ¢(8Æ)Æ”ÇNѯVÓcA‚Á Á±éܙۅ÷ !N”L•àf\@qÁuZ°ëd7Ë£þøüšðˆ·¥OC«wîÔz8yKg¿­Ôêj­‡r`V*Žƒª(xÇuwü缚–9¿ŽØº®‹kµ‚RmÄÁì½øÝš=—‰nàò%:r[º³…õj™,•…¨.Ã0°ís€(8ÖYl½¶K +~ˆë8(ªŠæ÷“^[ÃŒÇñÖ¸Jmtf×qòc"»û稲’IÜl×ëP\ÇÁ±mTM«Âèöfëz&1ØnMšã¦H@S´ä–Ÿ ÐÙÎÆìMíIë!ª+³äÔŠ¢*¸Öil£výd\Ç!üãÓpúô¦û£qî…j4ªŒÇgæ÷™]?F,†ïÔ©šŽé ôh´hSÊ­EÁÖuÔ¦¦CUé¬L%» <ëµލ°¢uh®tM1ÌWž¡ûJL¿ž©E#…õ„8qLÓIJšp<6(`Ûg°õÛ5ÏÂÛoo›ÐX»s§¦¾¾NjyA£õ€f}Å“ùذÍs¸Ö.êOC²·N3‘@UüàxpÈ,™Šã£è’SGïC³Ar¹À=C#ôv„™üfæ)¬'ÄɓɡiÄÅBQ°Úòåð«ÍL&Yþàümm›î÷øý¤VV0“Éš}˜®Üº…R°,ãº.Æú:tÝ¿šF4ŠêñàXmDîÿ>»®ÝH[àÿÞ®‹üª3‘ÀUZAqpJh°)Ž–=sh6×è wd©F#ÄÉ”YrjÄ%‚¢:8níšùéiTÏîÆâqæùç«8¢,×eùƒh8s&—êñ\^æ\õGS1F<Ž·¹+uPÑ|Ë;žgë±ÓO¡xê«ýA¦Ð_3Š"­)£- ¦ 3µó¹z†˜èï:¬1 !êX*e㺠Žâ¢¸®ëÇHV¿¦Gzu•õ?Þ´¤SHóûY¹s§&Mäþ}”-¹&šÏGjy砘şýŒæ'ž ¥½üþÅŸýŒæ‹i©À¬mš8¶¢ª8æŠ-×(ª…mžGÓ\lÃ8ðsWŠ•J¡(O¢àJ@s íoqj˜`p )­'ÄÉš¨ª‚ëº(Š‚ª‚¯þιýÍëÝõ¸§¡ÔãÇ5©…òø½÷ð46nºOóz3;Ê´ø“ŸXXØ×8VnÝâñ»ïîë±[YÉd>H³ô§PŠm{VLl33;eÖÑÖm+·9Ë’Ó±³e†¦‹þ‰ úw>7#<ÉàÀ8!¦¸6ù*]ÒÏIˆ%™—ÜÇ«¸Uhâóó$?Þ6;ã: Xév¼M2w( ñG8ýÜsUy#Ýžü«(;Z[Kº–cšX†±ïŠ»®e ‡+²]¼p vºÔÝ—’ÅÄ1O£jZÍ–#·r'»•¼EQ‘pæø)†¦£—oô€}Ö›#dS‘áð$ƒ¹– 2ó#D]K$6OÖ+(˜Éêös _¿¾m µúËDîẙñh>+·«»k壶-7*§Bzm ÍëÝWQ>[×qLÕëÍ5d&“™À°‹¨Å5ÐÔSû3‘Àµm\§ ²)]™¥9VöµäÔqéræÿd ë•lkû„ÌL~sœËCLLL01ÓRXˆ:•Je> 6¾ï«¸vŽ]Rò‘û÷1‰–›RK_Eõ®aÆ?€§±‘äâbÕSÓdíÞ½mý\»!ó¿¹N%J¯®¢¨*zÉ1âñü¬PäÁƒ²¿íz‰®ëâ:>»¥x¥]ÅÆuPTÝtÜ6ãq³-ßö@òhŽ—*nŸflà:Ý£™¶ yá›\èÌ廵w(7PBTM:­nY¾PqÝSU –þs4ŸoÛý©µnÅBÑR¤W¿¼q@Q*2CQе{÷¶-íØÆVnÿŒø ¨šF²ŒÄàøü<šßcše¿¿¹™ _s3kwï–õد·¾žÙ²mžJ^h«›öF<Žëº8Vk>ÿGægŽ—*4a&‡ah„Sn2ý¢6ÌðH¦h„¨Ké´‚[ø§C±pìÓU h’Ë˨;4 Õ»†ª%0S+“âù|¬U©·Óã÷ÞÛT÷ÆJ>ÃúƒßGQÓX©§3;ÊX>J,.f* «jfÆ¥ F4šÏQT•øÜÁ¾&êÙ€Æ6ÏRZ6Ž‹ë¶ÕMƒJ=ÉìвNåg—$ 9^öµðÞèƒPR¥à鱯/1±ÓNï¹ÙLÓËœŽK\.r­R[D£Ñ’ÎB”'™tq²»D2lŽyšt|µy—ʱbÄb™ob#òE IDATÙÎæÅ#ú\GÅÅÎ|J¹éÈgðŸù!ŠÏÇú£G¤ Ô"»¢*¹¸ˆ‘HàkmŶmŒøK$çÿkTï®Õ‚™ìÄ&3Cc”°•ÙÖõÌõN±m’kkh%&Ä?Möm\EaåÎ|çÏïûõ¥××Q4 K?ãª({埸`[Í8¦ŽžNÍ+ª†øÒЦa›Í€‰ ØŽsäkËg݆òšð$ߥV Îö ,LŸ2;4A{'f NÄ Ð¹ËÕ¶önÚJz9 qx\×E×ýlúŠ®˜¸ölãá¡?¿±ËïäÒo£ôæQ<1ôµ_Æ懙Û@|nŽSO?}hc[ýè£| =ÒMjé·Q½™mÚŠšÆJwä—£ÌDïÁŸ‰l,_¹.z4Jéá èkkùÎÛÔDäþ}žúò—÷xÔ.\+•Â×Ö†nGQö®;亮݂¢ªØ†§¡aÏ]!ù%3»%3~7[‹æ7 ›í¯°@ o”´e{keáiÆ‚×èÍ.?…!·ÄÔ•¿ÜÖ%(!D=°, ×=XùEµpÌêäÐä;V0Ÿ»Å·’¿OQulã<¶þšÕç#r÷nÑ€&™á©«WË—™HŸ›ÃÛÜLzù7IG~ջѰ3ó5áÚ Ä0c±½š‚תz½¤ËÜéd¬¯£¨=¸Î"š…äÂMO>Yöë³ÒéüÏÛÖÛQÔR–‘³ Õ›™mªi@ãºñ8þÓ§qífTïr¦IeíF$ÁþfÛz†˜é­L§Ž+tBÌæ–wçf IÓK!êR¦íA+®boLÒ(&®]\‰ÔãÇÛ–RK¿…¢m¯u¢àbD?dv;Åçæp¬í;s¬tšÙ¿üKfðâá03ñeɌǹ÷úëx››I.þ.éÈWPwêä¬8Øæ\Ç))&>?Ÿ­ª×› pJd%“ ($ÿW¤ÿÌÓ+ ë÷7‹f%“ù¾T¶q±h šœLwEQpjÜþÀˆÇQ4 ×ñe¶l+™åRÉ¡9^Ê/¬WqôŽ 1  ‡¡‰ KBˆŠÊ4gqÙ Å·+qø»YÒ++›v8Y©gqŒ ¨³3ùqy×Ð#Ý4^ø/Ùq*$æçiíÜXÐ^ùðCÿô§¨>_~«uze…ßùÏüÎïì=žåeBþçøÚÚH=þf쳨žÝr”ÌX5ÔÊÊžÅþRKK™×êzP=*F4RôüB¹-Û¸ŒÄ €Š·¹™õ»wyê—~©äëäX©T&5ÉnÁu=¨ÊÞsŠbb›gñ@ÍÛXÙâ~®Óˆ¢dÂÙ¶}ÜT· š¶f×"B”+Ð4ã*Îæ.ªƒQz½¸}± +ÞT7µüʮˊâฬäsxšî¡z<¬ß»Gkg'ÉÇ ¿õ¶in«è«54`ë:w¿ým>ñ»¿»ëxâ³³<ššÂÛÚJjåÒk#³´³++} ÿié=¶n[©¶®£ùýDîþcÎüÕ÷m¬dO ÝÃÍx×öeªâªfì³x[ßÃu]’Ótñâž×Ø:'Óé„`ÕÄ5ÛÀqjÞ ÒL$Àq2K~ó2Ð/G=Á[QE¦ibÛM¸[‹ª)‡ßÏɈF7%pÚzVêiÏî¥õÅD_ÏÌHxššˆÎÌðhjŠ™7ßDÑ´]óXT¯EÓøèßý;s{läî]ÂõWx[Z°‹è«{3 jiìôe´– ‚ólf©DQòÅáö¢¯¯ãÚçP°QÔ4éõL2°¢ªDC¡’®QȈÅ2ɽæpKüØPLl»-³›¨Æ¾¾Ž¢ª¸NÓ¦e&Yr:^$ B”,3CÓˆ«l.¬¦( fB;Ôç6Ö×7%§–ÿ&ŠZ|·ê]ÏäÑd[!xˆÏÎâmmEÑ6×L¾@äîÿš¿­h¾ÖVný‡ÿ°)X~ÿ}ò<Ù`(1÷÷Q´ 5…­·gú ew í&½²’Ù…cœÅÀ6Ú¡ÄÜÈVæ \@õı’ÏâØ­xššˆÜ»WÒ5 éëë(Žq¡äÇ(Š®Eiªy?§ôڪǓ¡Ù¨t-34Ç‹4Bˆ’åì-ÅÕT¬ôáÕxLÓÇ\-Ç<™øL‘|•Šƒ‘m… 54lkK™;‰ðßGQÓÄBƒUð·µqïOþ=añæMV>ü0¿ì“^ý5³ ¥”$Ùì|®à_±žN‰ÅE4¯Ûx Eµ°ô'AQJn G"¸<™ŸMQ3öRf–¶I•Q­87VUÓ°Ò—Jz­ ­æíŒHÕëÅu7Ï0¹®ÌÒ#Ð!J–Ng§é·­.©Øº?ÓÑø¤þÿöÎë¡ÙW•A=&Üþ [²­b1L°2Ä(MóP")¸MšAN§° ÍG:m]@ú^ƒÙö<ì5Òq¦¦héîÆ„¸3a·Ü®è8K:ýè »`9õìKÊ-%VlîÜÖ+ya>ˆ¼;‹ÕnS×>„U \¼46ÚÛ…²,2““t:´b?•ÂA¶Sõ=Xv:*Ù‹—¼^ö þü|”ïâ.ÊrÑÞ.Bo/±Mò{ßãŽ7¾±¢ë @gçz»±[oV|µ…ÑÛ2×Ë&W²  ÃžM5Å i6 Ê©¾ˆ2° ¬é´)¨¬ª¬n'tçÖÄ ñææ kL8ÓG*Rª]Œ! ¹´nÿê’Ïç¯ý Z'°bKsS¬x’Ì퇱[¯k:U/6fÜäBow^ ¸R”ò2iÝÞåÉ`qBpàÄn½‰Û1z7Þüó­K¶ðS©HÙ×Û³ÄP#«Ë“Øuíûd&'IìÜYvÎA:õ@ò{¢ýj0 L7áös R©¼®ƒm(K šf¥„AS¼”úò¹!N_èçØÙ÷Î,o… Ž ¬©”AZT€ ¶úÕ©ÙVŠ73“_”¼Ù‡ 镊ÍâL¿i‰AãLýAú¾Â"x€Õ2ÅÜÕÐsèß-9Ÿ¶‘¹õn¬–êòP jº#åß"•NÎÔCèí]0 Œ…öv£b~¶_T1¢’íÎlBîBPÅ“‘.Ï®¿Š:¿üreM6\¤ƒT½ü+§¼|£ÌõÆO¥ò¡Píw¡ƒ¦Y©)‡fàð 0Êðg.×y:‚ lf20…<4*@‡ÝkVžë$“­1aGö-»:²\t°ƒÐÝ€ŸzÎä[‹39¬Ø3/ZòYêÚÏ ìÚrB”!pöå“s y.R×®a·´º{ÉWäX.ÛͽL¥Sfj cö°¼†G©£[2‡¢ÞNV;™LTqåoÇP]%›R>:Ø‘ïç´äJ¶!ÄZäeRQ“U¡9X]Rð…KˆI#[DZ(è£É¶?X+ƒ&sëVKKTö\c±­BãÍ>ˆö{H¨¢p‘²BPšù«?€7ó¡Û[µ‡hé íïˆÆ+`œd&&°[[ 2ý@´ø*Û%t{1Æ”5h"›;(¹R>ÞÌ÷G]§]·¢$ã\+tï Ú{µ?ˆ®u£´hr%Û:ì„Å*×Hév3!UN‚ TŒãXúÙPV€ ;×ÎC31ÝÒBà(xþJȵB˜ý—XñÊCc–&p¾ù^R7¢ê¼™•BoWT}³¬{¸77‡É†fÂÌ¡¼'( UíÁ²í¢¡ªn2‰Ñû _K<‰;ó`Tº¬sccegëÍ΢b1B·¯Â¦”‹P:艮gƒ<4¹’mvHMSÓ/ÃåKÙÚ'i")[ ×µ0Ê*ðî¥G¸3U&V@®å²müô}XVá¥ÁXÑñªºeÌŠÍâͽ¡æPÓ²ÑÐÞ(ËZá!q“Ù$^c8û—žOiP{JzU´ï£=/k|1.•ÆŸ¿Ÿx"ÁlÍ*½ÙY,Û&t÷T©AÊòÑAwÖóš¬GKÅb݆²—êሇ¦¹XUÙvÿ‘‡¤‰¤ l!\·¢RdʬIûov6_ádîÂŽ®ª„BM,+>¶¿ PÊ%pÒ¶=¾¢Ò)“U½}+Ê‹0wàÎ<[tì\ɶv÷5>”•ÁI¡«ëi¼¹9æÆÆè:x°è˜Þü<–݆{°[*/Ù^˜3˜0±!7?Ù’íÐݺXªÿ#MóP{ÈiðgŽŠ9#[ ÏK€µ\%8BY ¾þQlof&jpèí‰+UzW6ÊvX--+ÂGéë×±[[³ ÁË0á.B×-Ø_ ¢Ü¡_Ü›µB¸tkkãÖO”œoJ¡Íµyß”Òè°kC šÅ%Û¡Û‹)°ä‰AÓ<ÔT¶-ÂÖ#j{ЉQ… Pø©ú4鉉lë~ %º6Êr ݽ(+†öæ=;«€œ¹}›–înÜé»V(!+¸½Äþü<­Û·¯ÛŸ›ËvÄ.­¢¬”Éêò\Ä››#}ãí{÷®Ø/pœ¨È_y®Ê1(z6D-xqɶŸ>´"HBNÍEÂzBOƒ§9¾Ñ 4‚ ¬'A õN(ö¦®l‚Lýû99Ù–nòn¨VØm“¢T%«$Þ܉;#­\hÍ9´2ßÃr ^bm?•*hÐDM-÷P.ÕUÅæp“o¦uûEì–n=ù$ýïxÇŠý‚t:kÐìÀTÚe{ c¶á§ª×íY-‹K¶ƒÌ]¨"ùW†f0•…ÒOèås Ê£¹pš¡¡sR²-[ˆÈCÓ^ÒC:‰ºŸ×™šŠ*œÒ÷®®\zaPQ'mcð³•NN2‰1£ãhw÷Ê‘åz{1Zãéå$“À0¥õb”åú;ݽح­8•‹s^•Ðí­Zû'±ÀlL?§….Û˜°³ð5HƒÊ¦¡„A3ÎùO媙Žqvd„‘‘FFÎr¬à§Ï‰I#[ß÷ uGÑp†R>Fï¬kyn.!ØèVB¯À"ß°(B/ê íd+›2(¥½}˜ž(e…˜0²·o›03ƒ û*òd) ÞÜ¢ÇãÜþÖ·Vìd2­—ô…ª õî 1hr%ÛQNRñà’4ÍA‰Ó5®ŒFÿ|ôè¢j¦^Ž~ôO 3zá—lhûƒb­æJt²¡z’É$aІ‰9‘VÊ2ŒòÑAnjœx$îÓSSh­ñ3{°ày•ÁOßIÛŽ©›7ñ}Ÿ¹ñqTœßÅ›EY] Û Æ²u¥1Ì(0zz¨°bð…Ó å7 rjäø†æÓ‚°vd2e~ø•£ë”ûz¡ã ý`bMS²½€…ö£J§ùk×"†»·äu*ËA»½Ð¡ñS)ÚvîÌos§¦Pì©~uVwæ0‰]Ÿ%ÖÑÁô³Ï²óµ¯Í&({½‡U5+õúò¼º…#Ëá&“(¥ÐÞ>ÊÝ 95ÒœR„ŠÈdeWKeðꔣèÏÎFM ÝýMú mý ™7°[Z¢Å·DÉuTn½”/÷ÎáÎÌ{ ªá–ŠOâN¿eá¶Íôw¿…ž,‹Ðí…b£ QhŒÞ†^Gµ`/™ÄŠÅ^J-u"®×<ˆR° åД^,•o®>É»Þì,CàÞU—ñ6ÊvÜ~ÚÚmRÉ$­;w¤ï2 ½J… ö.mRiLV%øÀ …áŠæBˆ?÷zâ]Oïìdò©§hß³„îþê»l¯<:ë¡Y/ÜÙY¬xê%s’ Iíå-ÈÊ_§ËçŠþ+ 3sù\vÛÐIίÇAØ 8ŽÊ'YE)‚:µ?ÈäZ¤_Ñ4‚z‹QV†Ðí%ÖÖFg_©ÙV–+´wQ¨\EO­Æ‡²çq¦ßºhn3Ï=‡1&ê ¥VçY1ÆÊ‡œÖc²]¶ÃÌ(«ø=Mó°â—çò¥\RÌ § ´78~Ѝøi”áψ°ž l\ׯ«L6……Ÿ*­R[)ÎÄv¬ÀíE•¨PiXTaC'vkkVͶ|…’Á½o‘þH.A8ôï¨IOÙ´·' /Ux^{ÁCK°|L°Ì`ÅjÿyÉUðé{Ë&É64* tgÕlËç¿(Ë!ôîÀ˜¨ëv‚¬¢2w²úžÑ!þì-Ý_þòî@Õa©Äõv®“A“+Ù2÷V®ƒ¦ñYö‹³ŸýÀhVL¯˜“æÚ•¨íÁ&P –Ö‚°>x^X¥=J݃ön¯Ê q³§ƒô=Í'¨·e9„Î@NͶ‚kU:ëEéŽ<3wÝ5¥ÔûX­A£b³¸S?²`иê¢Ð¬”·¬SÙ¶7Ôs'vl¢¢cÄ i|–ù{é;ýë§ÎÉYÔ…[”‚aK†!¡éŠJ†K¡|´Þ¾êj–Ì­[XÖ.Œî¨XÆ¿‰*ö¡ƒm“(©f»ä8 ¹J'„Žƒ¬Ú›¥,n#ÈD¥òÚ­-ÉxåÀ!Æ$ЙêKÊk!ÒäéESqB³T:5>+‚£Q»`t˜CçXZÇ4Îù“'èçØ#¢ ,[ß÷Ѻ³ì‚«T€ ºVÝþÀ™šÂ˜þú$¤nf”'ÌÜK5Kj”×r^2IJEª¾î¾:>^r°ýÅÛ0T;,­»ÐkÝq;[²­Ã>ªñX5ù“¶%Xéî=Ê™SW:}¸Àé¡‚Ma¸‡Ð›*¿ï*p“IŒ>H5ÏxhšƒõùÅ¿ÊØà)FFFáì1þx®,|œóæà©hÛÈ)8}²Xɸ AÔÇ©²wX£l‚tñ¤Ïñ¿íÛ`ŧ0:ÁüØGÉÜzï’}Âô½M]®]˜;оv{7½¡²|L¸«¬ZpÉ8µk߸33èàžê<^BS°>MïQÎ,Ê"îí;¸Ð6aü1.Žös §Ð·ÿýÒRA6‘‡¦2ƒÆR?(¸mîå$é[¯Ãn”€•å`µLâÍ |þãøs¯ HßÓ”¶ë‹ìgÛÝw£½:•l¯%ÊÇèeTŽ}þó¼ðéO×ÖÈ2[²º÷ÕôüHØ©±ÙŸîøÕ±e*Ãé[R>ÆUqѦ!†¨grX>Úí.¸éÊ;± º­X»åé›?ÅÜ•_Fû;ê¦Ò´X¡{ŒMôlúû¥” ·—ôФ®]#Ìdhݱƒ—>ûYÜ©êÂS~:Rñ(«…c1h›õO ?ÏLJGÁÐðÂÇýYçè™SœbˆthŽJoAØD¸~¢|§í%„) vÃôÓOãÍ;>³fóÛ²‹Ð½jH€ÝŒÉösŠ%*á¦ÿá°ìÒ^¦X"Áüè(þì,™7À²P–AYƒÆè´¿+^›ÂôÖrl^ÖÇ 8ÎHÉ Aº,ÂæÄó`U®ë¡Ð)› •bê™.”ê5±†3Ü¢¨€Ðé#ÖþÝžIe¨îB»iÈ4A*Ej|¼¨wf1v[îÔñmÛ n×Þ^j5KD\¯ñÙRœ‚ ¬ /HT%Tf?e3ùÔSøsï•Dß5"*…î† 9)壃èEUNÉï|UEîÊâDóåhou Óulï)lbЂP­5:l¯*OCaáL¸Ì¾Ø…1{6¿è[ƒ¢b³Äº.oô4*Gù˜pg>a\{3/¼@¬££.Ã;“cÅV—xJbpÃ"Í)A(IhÝQ]£Be“º2ƒ1GQuíØ,,Å ¨E„R>¡¿íFnò¹ç°–Æ´D1«$5þ‹€Yµ·JÂN‹xhA(ISE•€2ÀkÐA¿´0°²jÁ® Æ|æbËrg¼©·‘¹þ³U ëL¼íî_õ³–«t1hA(‰ïk´‰SÍ»«e…„îগãÖƒRÌjfž–U6¹SoÇ›9BàÜCúúÏU4¢?÷FüÙèØl]f(MãÒðõ 䌯IDAT!'Q„µÅqT®¡BŒN`ÙÒfVX†2xs6sWž&¾(w&H=€;ý¬ø4¡s©«¿DG_ñßøÐëŹõ(*>YŸ©!!§F¦á šå­ÄÀ„ú©W÷3¯b³Øuzcš ™[.VÜäõc´¿‹ôbÅJû•=öw0ÿò¿¦óÎ__9މ‘;‰ÕR›æL)4¾hDä;¡$®kQAKJA¨ˆ¨.X"¬7ÿò¯að²(;A1÷âi0Kß¿çÇN¡bÉ5™£–J§†D AJâº6ÆP]ÈIŠ¡b$ö¼"ßú uå$*6G1¥<”=Ãì ¿… "A½ÌbtûšÉHØ©1iø“ k‹ãXùЀ ¬ä;„;·Þv ì2áI¥±Zn2÷ò¿¥¥ç‹éW­™wF*ñЂP’ŒkU›,EQÊÇ»ðfÞ„7ÿúòÆÌ"¬ØÞÌ­™1bÐ42â¡¡$×J7„б<§?õê%IÀ¡ÂU+W‚„œñЂP’´ÿŒP7”òÑÞžê™uFŒšÆC AJ’qZÁ'¼P'T€Ý6ºÑ³(‹T:5bЂPÏm«®í 4òÄ7bЂPÏK Ä ¶’ܘHR° % ‚DÕJÁBósox=ºpµ‘«â|3vÏ:Ϩ~ˆAÓ˜4¼AS¬ÕA*%~¡ø^+ÄBŒµ`!âµÁ(¿‘ú_xªðÒe2ü·¶ã|ë¬óÌê‡V m Ã@ð¿–ù4?×y‚)ÕµÑS[‚¬u 4¼A#½œaí0ÆêvÉ¡–p<ó··ã/¸ÝÂð“ÞW7A'įP‚ רòN}›ãÎÿaFuðnïüÖ]Ó9 µ#94‚ %Œi—!Ï[ý§é2™¢Æ €FaÃ÷Ï­ãÌJÓa\ÎÎÿ÷¢a²B(4¿•þ$7T·Õ6Þê=E‡qê:¯¹_à=Þ7ê:æVE AŠâû`°QJÂMBÄG2Ÿã–ÕSv¿9•à½îæY¨ßç^d»žç·çŸ{Âs&õI&Ô¶üß¡²x‡÷xÝæôŠpœ·øOó~÷+us+# Eq] ˆòá'Ü‹Ä*ê½>§ oЧWvÑ^oÆãaï2·­nnXÛùÔÿäÁà…’Çüræ³tš4ZòŸÝT= ù_êS÷ùe>ôêÄÇæGý'ë2æVF AŠ5¦cFˆB6ïw¿ÆM«»âcB,Þî=±†³ªŒ÷¾I°(wæ¦Õïdþ‚·x_pÿ÷¸Çýï1mu¬Øæ›·ù«¿¦Ÿr¿ŒÆÇfÂêæ'ÅK³jÄ ¡(®g×é]Tht>à~ WÏ›)ÄM«‡÷ÇÞàF?í^àæ²0Ù„ÚÆ?s¿ÀÑea±×/ñ¨÷5&sÕL˃o×Áø¸KßäíþãùsXÄ 8|{UãnuÄ ¡(?&á&½zšñþ~I>I¥Ø ú·P¿Ý¯HAï„êâïüç‹ì0süZz„ÛjÁ µüé±°Ñ ÏÔ<§e>CRu.ù,©:y¿{¡æ11hA(AÆ‹Á&kMÙa\b &{–0-=šù9ç‹dTKù Tí<â^ªóŒ*çΗ™°ŠbSª“öÿž_Ìü¿=ÿûÜ® ¤6¥ºjNär/’0.î2#Ë!NIñº2¹=Bq^‡F„µÃñ« 1¬5]&Ã'æÿ€í&Åã±C\ˆ¿š¿ÝIR­ÌuØLœÊüú/ðÍø=|%~?OÇn:¶b¼"¼Æ÷/qÃÚ^ÓñÕÊ^=ͽáuž·÷Õyv¥y“ÿmâ&$P¥ßݧU'ƒÁ·¹©º1Ë xÃJ“Þ%Æ=Ç‚ïñDŠÈ½z’wy—¸Yä^Ωº_婨¡ŠÇƒF„¢8Ž‚ …ÈÖšýzгóÀuk;)ÕÆ+ë¼>x€—íÝ|)þOÅî⪵sƒgº”÷¸q_x—ì;8Þààe®Z;ùRË<»‹1kwÑãfÅ"»žü¼ó7̩ĪÆ”Í;¼Çy>ñpfUp¿R0±·7ÔÊRte"q½BæÐŒÕÎûݯTeМÌü³%æ“¢•>=Á}áU¾k÷U<®Ñð( ÂÚáxm›¢Êé¾pœÿú®/z³VLg×ùâCÎßb”âšÚÎã±C\Žß˳¼(ìÖ3s¿’ŸwRuä½I]ÆáΗùi¾ÂŒj§“‚m.1Ƭ=|¹å5®Z»Ötß<ÏGÓŸ-¹¨¦T)Õ@>{óNï›(àbü•|-þJž±ï¬9¤VNeÎ3[Ä»‘R­ùÅ=†f²ˆò®êÛ|$ó×7­¾Üòž°ñ¢}ÇZM€g>Ç´ÕY~Ç ÐXü ÿ Õò`Ñ}~%óçÜ\Y¨0*@—Éðé¹ßâg: §DÕÕ1çª=Ky”*˜Ÿ¦•÷¹_åß·ÿTÉÃ÷è$CÞ׸¡ÊW3ªW†W8¨o—ôÜ +ixƒF„µÃsÛP:mÿˆÿ4oõ¾Å?öçC]ÿ¢~ Ç2Þæ=Ňœ¿åV^ —87²Æ…a xžäÍã±»ù“ÖÁ57Þá=AŸžä–*?÷ L}ÆŒjgFµ0.:yqUœ¯Å_EÂx…ÇU6Ï[ûùVìΪ<÷†×y—÷14óuZ&&­Nq¿QÔ ù©ÿÅ=‘¿Îb„XÜR= Ïýg>Üùá‚«W…Wé3Ü,Fª…By4³ª{õ5úõ-F­=+¶'ŒËkÂ1~Úý3UäyùÄ8ê}³mï.¹ß@ð¯~ùåŠÇmvÄ ¡(¾—Xá¡Ù­gøùÌçóFÃÍå‘m§ÐuÎóxŸ{‘w{•¬P)‡FE¥ÆÙ©ÝÞà7SÄ—ZàwÛ~¬îsαݤøYç \·vÔ}ìŒj%“÷ì„ úßFQ Ò(~È<ƒA1auq!v?ߌZ‘œ#ä`Œð¿Ë›ƒo3!!V]Ã[qv˜iîÆx&vpɶߞÿ}Æ-kÌ,¾®qk'ÿuþ÷ø—à{ï’í:_á~Þ¸b Dô{½‹üç¶£@ôÿÇýá˼9x†û‚q4Š«c‰âp9&UÁóìÖ3¿ƒ]z–¸Å=á5>p †+jNÄ ¡(~Xјò×Ó²$Ñòºµƒ?žûǺ>Z·ó~Èýoõž*z¨…9•`N%x“ÿ,oóžâ‰‡ùJüþŠŽý¾`”oÅú+Ú÷céó̯‘×j1vù{”]‰ÛŒÇ{½K¼×»D ,¾{5ߌßÃÛ¼'y0x‘›PYLª.Â2UAµâª8ïò/ç …áçÎâÐ’VÃuk;ÿ)õ?ùÍö÷òdìnî oóêðjÞ஥²È¦T'úßãƒê ¼.x‰Ýfe óV‚k«0h}lÞéýŸl{ےχ܋¼Û¿DšVn©nŒÚ\² ‰4‚ %ôÛ–4?ë|‘.“Y²ˆXÌÓÆïÌÿîüðªÏù±ôŸs8¶¦eÍ“ª‹IÕÅ/dþšwzßäã‰w2¾¬:*a<î_æMþw8â?KFµÐBÀ™Ä{¸\¢²å‡ý§¹;¼YU˜l=pT ׳9D‘0Ü·y«ÿ4óª+kœ•cZuòzÿv´Í`ó‡sg¹nm_Ò– ZnZ=üjæ<¿Ûúc|¹å~†¼¯ã©ú-mÊ”6hnY=¼Ý{‚I«‹ëj{]¤›&Ô6~ØÿÚúfæT‚׆/q<óYbèŠrq¶"bЂP¶¡âQ~Æ÷£¼Í{ªàBíª8Æå·RÈÇ*¨@)ÆJ Ó«'+=¬–›V;ô<Ÿ˜ÿ$ÿ·åüyëC¼1ø?ä=ëë„XøÊ憵ÂBs2ýçH^‹œžÌûuö.s¦ý=l×ó¼:¼²jÍ–fÇ ênÌäXËÐY©ÄàµdlÂÍÀ&èå4ÎùsðÔ###Œœ‚Ó'Ï3¾ÑÓ„-μkƒÒ<ì}“{õuf+ôœ$U¯ ÆøÍÔñfÿÛô˜TÑ}»MšÏÌžfV%pÖY#¦ܲºqT ÿ.õ¿ùHæ¯Å˜ib6^^R(ÇÆ{hÆãâh?GögÿÞ€þÑ+\z7r^‚°ÅI¹}úô¾´D¡·ÕÂ=ÉÌ_¢€Q{7-OÅúóÉ·}z‚OÌrÝR× ׬ Ý|R(4›Ÿ7h8HßëeŒ«ã0° ‹ÆûB²è6³°‚•ba9T¶{J-ÇK¡tácØ…]âØR1ÚrçÕÊÂ2…·ë˜ïN¬•ªñ¼¥¯×Æ.qÞU«,TÑë-s¯,…Uãw¤- KÞnl –8ÖVXaßo‰ó†qÛ/~¯BÛÂ.2¯RsÞ–nãŒ÷»LÆj«6šW‰|érŽtY ФÕÁçâoàQ÷â¦Ož­o³üœ u'×ÓIÕX"]&§xUÇ&mIαñÿ^»’ÍÉÒÛÇÁ"»BùÖË[!¤Ü“U*ù«Ì±ªTÒX™ÿŒQE²Ê\ò¼eÙT©ÿeVñZRüZö(~Þrs®m@áÛEÇ®Ý}.u½¥æ”;²è¶"ÆY~{ßa¢Ýás¼’öÝõý™hw]ŽÜz‘ÿwࡺŽ+kÉt,ÆŒU[–† }å0&ZsŠ`i.qÞž°øËÌVcã šýèçÊÂßãWеúªÈ`ö¿¿ò¨‚ ¬/·{{iì@“°ÕجÏk¥kâV`ã `eˆiyªzJ}ÉŸøÄ'j~äX9VŽ•cåX9v3+,e㫜zâHÿ(W®eÿ¾v…Ñþì/y ‚ ›ÀCÓËÑ3§874ÄéЕ 'AA*F%“I©FkrÄ¥Y9r¯*GîUåȽª¹WB­l|ÈIAa•ˆA#‚ BÃ# ‚  äЂ ‚Ððˆ‡FA„†G AA1hAAhxÄ A¡áÙJÁ‚ õfœó'O0<ºø³~Ž=ÃÑÞËœ:Í€þcœ=ÓÊ䋿œ£aæ.ëƒ4Bs3~ž“'†]þùà)FŽÔí4—Ï q:Z!³‹f݆®‘Å ú §F޳pµ«[Ћ_k©sn uþ®7†ŽŒp?’K-5AƒFhb^<5BnM‹>?͹à Ÿ ‚ 4Bs2~žOåü󃧖.ÇG9|Žs2±f¦—£gF8ºÑÓaK"М\»²2Ì´˜ã/"Yôy>$S ‡è?v–G¯œÈ{‚`”áC ³lÌB¡¯%¡¥a c‡Î³I¨¡Þ¡­òç`©×kåµ>ÂÕR÷­Öë*{ïVÇcç† ^+—Ï1”½à/ß*¯©à˜ËÆ]Dÿ±³œÙø¦ lz¤ÊIh~.œfhhˆs——oèå¡#ý¹¸”Û>þG£öyˆÞñóœÌ-4ƒ§add„³Ç¢cŽpj07f?ÇÎŽd÷‰Æñó':1Ì(ƒœadä,Çú³ó:yžñåÓæÊáFFN1˜Ûé¡!>ÎGŽe”á8¶äÏŸ;×Nãr×ZÙ¸•_WÕ÷®æk]4§jÆ­×wUæ¡äÑ£½@/}³^áZ™³×Dþü‹æ¹Øà[õ¸•^W ÷®æ9 p8w©ÕÜ×:}W«{ÆA1h„¦e€ãù7ä•\83j-d.q™q[pÏðPïÊㆆNr¾ÒWøË—ò!„ƒ}‹Û€ÜÔÆ®Öêg£æCk9Ûº,{]kzï*dàxÞ[²º×¢ïªÌ˜U?c‚ ’C#45K“T—æD™ã „ € \:€±Ñhûà£Ùræ£28¼8·a!wdiÄJƯŽ-œïôЊü¡8[éÞõ®â!B aË«n:½li8Ì ¸\Î~8È‚ç?§²2ió§ÎóÈ@ñºžÞ¾ƒ &”^˜Ö$xÔÐT~ïšòϘž¡4rš’ñó' $/¥ÿÀþì¿…r .ä-:   ì_H X¾aýÂ#KX”¿±<45~•¼ïã`_É…rÁKåA‰k­7vïqùÜŠ¼«µ³ø3&BiÄ š– §‡Z²b\æ\Î;ÓŒ.J¶xäX~ñ„¥‰™ãçOrrqBâ܎\Xªw!û“‹-Ú·÷(Í&òŒŸX¶€sþdÊe,\Ó(˲g/f8Ÿô|ì‘Rn…¤\Í—½Öz³÷n½©ä¡4rš’Þ£åØÅ _8ÍвSA]Þ‡8Ò?Ìè(, 7EŒŸ`hxñ'Ë´EŽsöØ'†Gí›Õ49z†‘£ÙPB\5{ï=Ê™³D.+îC ›ÑaN,¾Øåš/E¯õ‘5¸„ ºw@ÙgL„’¨d2i6z‚°á,;kŽÞ?ÕÒˆ K±H±É¾Ï|/§¦øž¡~HÈI€Ë—Þý—»gA„M„œËä홼PšÐ4äÃmÂ)ÜA„þ?2j4Ò¨Š2¡IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/curvebenchmark1.png000066400000000000000000001200401465265754400222510ustar00rootroot00000000000000‰PNG  IHDRèô!Jz pHYsÄÄ•+ IDATxœìÝ{œU7þï9U}Ÿ[’I2 “ “D *$>¸ê/Ë&¬q‘G̲»îþ ênvÁ€ »1»OžõY\#.¨K‰âþ0‚ŠFLÄ ÷‚Èm&·™Ì}¦§ïÝUçœßsï®®®™é™žêù¼ÿÈkRSÝ}º¦_§?ýíobáp˜Ê‘iš™LF)Uê”cÌëõêº^ê@q”m°Ëd2³fÍ✗z ¥!¥ìííEp(Á®,ëÓ36µç\)ÇK=ëÿæ!N—z ÓÑøà¸¾“é2“ÉTTT0ÆJ;š"ŠD"¥BéUUU•z%¦”ŠÅb86pˆÆÇ­(ú#‚;€C5i¥T9¥v€~Œ±2û©èpˆÆÇ­(pÆdæ6“¸‚;€ ¸¸‚û}7û>¸ëäˆ 'w}Ð×ïæ}ö‹òpcø-Ì8c î÷]]9ì–ýcz ý·T^}_ãØ7Þ[Ù¾›}>ßµŒÚvr×§o_õx:N§§kR´åÆñÙpoúé­Ë'4ì"É9ÈÃèdç‹2†1ü¶¸Š}4pˆpÜò=Ö”·2<˜3”ãà¾ÿ–ÊÕÛ.}4:èQúZùLÑîM§Óf䦓OüäàڕˈˆhÙʵ6æÛ8ʾ›}ܵëæþšüp°®Ómª©çÞää®^û¼ý²Áºþ¾ß¡Ð?Úþ[*++¯hÔ¶Æû¶ þ¡¥ëÞˆoŸõ÷DŸ¼iÙžI1LÂÑÀ!Âq#*ñq+·ƒ 0“9 î÷}í¡5w¾gýЖõ÷ôOàõœ¡7„ý·T^}ß}·ŒØÚxßÕ×?D‡¶­*ùì¿%»rïàVÃ7špåÈ‘U+†+âGŽŸ´Ù8ÒÁÛ^›N§ÓæàíŸˆæ— ÕéWÝ~Ynô¼É›wÑíߨGË·>ýøghí]o¦Óé{7œÜõÁkÜõfºÿöŸÉ}À XO4}ôÆ‘›÷=vhÍЇ“5‡Ž6Žiã(¹Óþ‡Èóši´¼ÉÔ½ Š4pˆpÜJ~ÜÊî`Ìd΂{ã¾Ç­ù؆ÜJËþ[†Êð^ºmõÐô|hÛÑD£Ñèá;iÛî§e7=ùè´æÎÃÑhôžõÔxßÕ׿uçáþÞºÞÙ­FÜ(û-p24=8ôóò«l6f[{×ç7m¸ö3tðh#ѾÇ Ï\»7>ðxvr¼Éò«ò||³Ýpï½ÆótÆæÒåÃê·N6ŽuãHƒÓGo<´mËÀ[¾õk&ç&Óáe@4á£CTÄ#á¸á`Ì8Î{ÜGNýƒöÿò!ºñ#ýeøõ¹‘úåÀì¾æÎ[×-[~iîûDã¾ÇÝøOý_¸.Ûð±5ÎnED4T,Zψâÿ¤X¶ríÐÏ'±Ùèä.ûkFß…3Ë·>ýøg¸v2:e¬4=4ôó²å—Žuc¶Á¿éúÜØÿçËûšÉ¹ÉtxLðhàqc6· lÌæòƒ 0c8î–S3Ñš‘t³{j?Ü ?²hïØ†{Óƒ2\;ÉÑ}䟱ñä[cÝèä~Çñ𾛩}Lðhàq£“à¸9ÜèdX.:˜3†³à¾lÃÇÖzlŸUr?4"’:ŒàDD7Ÿæ:-Ǭ¿':øÕëC×Oò{Áò?ýøÐɧGNIµÜ˜ÏP‡Ì†k?C|¥ÿ¤Ô‘m3 >Or]¶r­ýƒÇÈiCß´8ßhiÄËcœ¯™ASù2 šðÑÀ!*âFK8nãÛhɽ`FpXq_vÓ?ÝxhTŸãþ[®¾¯qýGn¤‡V—ùÕªµÁ÷õ·Þ¹æ¡¡5iï»Åv™ƒÁ[í¿eø¬©e+׬)f~\òàí— ­û²|ëÓSƒÊµôøÀÊ–³ô¯ãó]{ä®7ûÒ7Üûæ]Ô¿ux£½ Ÿ¿kí×ú|¾›÷m¸vÕÀ=ú|—ýäãNò’Ë6|lèüµÆ£gµ9ߘÏÐËcl¯™!Sñ2°0Á£CTÄùà¸á`̺Ó×ß=¼òêÕ••ƒn|4ºŒèžÃw^½zuå6"Zsçá'óÏíëo½sÍêë+¢ÞsÓ“­ì¿Ñš;ßääV¹ôúÁ›Ðš;?YÄw‚ ÷¦Ó÷:Üœgßakïz3'Ñ/ßútzkÎýlýèŸGÞbCG¿ý· ®Q·ºrÛš;?yÓ2ZvÓ“ÞRÙÿ‡¾ñÑèÀ¹Ž7f9´mà6ôòXïø53dŠ^“p4pˆŠ¸1 ŽÛ =˜3 ‡ÃDÇ«ªªJ=˜bŠD"µµµSþ°ûnö}eenp/…®®®RÿM÷ßRùµ•‡K¼ðs$)õq°C4>8nET⃉DB¡PiÀmÆråT(Ç­2àÈȾ€¢A«LÙš­2ÓB¹ô3L"¢ñÁq+ ´Ê8‡V`---¥ÃdAŽÔC€"èÿŽW§pËþ¬e`¨‹V@ppw@ppw@ppw@ppw@ppw@ppwÐK=€òÓ¼gë–ÝMDDÔ°ùþ]›ê'åQÞ½ñŽý?®Û±÷¶µ“ò 3æmpÖÒÒR[[[êaØ1¡º`ªmÞÙ`—Á'30•çynC}îÝ ¿Lâ @1Œ­Ché'¶Ý°¶¾´óW‘æíææƒ/>òð3§›šš¶44¬ûĶÛÖŽ¸CÌÛ0]]]UUU„V( Í{¶np÷Á’åΡ¢Í¶×Là 3˜·aÜÜ¡ä´êWܶè‘;>ÐÔDD ë6o»mäÔÜ|pÏ#?s`ð›Í††uµCÖï©¡¡aéè=Fchþ·h{›¡#Vm¡Y{¾7à\g8ÄŽšÃš›ÍÜDý³ó'nØ´¶ž²óô;6Ž>ß³dóöÚÛv廋¦³ÍDÃÀ¼ ã…àe®i÷–-#þw`÷–Ó4XÉ)¦PSÓ¦-ÎŽ>ùhôMMôâ ›,ßlçÿÁ$žu‚SÖÇ¥~qj7àJõ‹–öÏ`ÃsXîäLMMšî8ðLÁ/%§Ó¼=ÐOdÑTƒyÆ=î0ã4=ób3ÑÁ»‡—ª¹ Û²ïi&jÞóðÀ|>Ô¹÷þ¡ŽL Cs´UÛãð^£%³ÿ;.õïûÀÀ NŸãù]¥V¿xô´:â\ÑìÙ¹i÷–»Rý¦]{ïj _·c`‚Þ{ÛÚi5oõÎ5|à}ÙÁó6Œ ‚;”¹œyÐP™¥aó ý‡õk¯|oxæÅæ©yà¿67Q}ýÚÛvlB_º(ÿý;4‰gý`¦λë>qÛàì|Ãð‰žÏÛœÏ9æí‘K‚åvÏŒZe Ü-®N冿@þ 3ëd£þmg›iÓð švßqGÿ.¹kò:’ý½¯å Nã_ÔwÄ7Í.3œ¶‰FNÎ#KÚ#f¹Ñçy޶všÌÛÍ{¶Žˆí;¬:j0oø âÏÚÛîß±¹aô7¬MMî(Ý¢eegD'x1Îóöp#&QÃæû§ûUÁUPq‡j¸ØaSç®_»i×ÚMDÍÍÍÍ/>òðî£ÏŸÊ'·4x†SÿiSC˜õßqñ¾à*#:ÁûsûÐ䜵Ë »¦*ý¼=òìX»Ùó6Œ *î0S 7´ï¾óîƒCç57Üs÷Ö­{šéàÝ[·Þ=Ø"Y¿vÓ ƒgå;%©~ÑÒ{<›çT£Éjpú¢¹ÀÀtÒ|ðîá–’ÁŽ’á~öï韜G^C:§*àùá¼ÄóvóˆÔÞ°n‡mMó6Œ *îà.à öhØ|ÿ®ñ]|iím÷o>½ewQÓ;¶dß+ÑÀ÷«9k¨7ä=Íh¨»2Oig À28Kgý7k_‹ÕÐ,³× +â2Ä“.÷Ì¢†u;¶ Mkõ›¶m~¦rÞ}Ç–Q;7žÔ¿ï »û—jš¨×íØQÊy»yÏ#V¢ÌGVõó6Œ*î0ƒÕoÚuÿý;6¯ÕÙаnÝæO¼¯žê¯Ú¼.çW›wÜ¿+¿âPßrÙƒkdÎÒYÿ·áåÏ0ÿ€»4ôO«÷ï}îhÿäá¾¾R`ºsOpgöÍ놩Ð*eË=Á½@«Œi™Œpr*”%×÷B«ÊÆ@fGÅÊk‚{Á÷þàŽ“S ,¹'¸Ûö¸h•Ap€2äžà® ¬ãž!%ˆzܠ饀S…‚{&C¤I²ß À•\Sq'U`U™ #©H ¸@9rMpW¶ÁÈÈ0D’!¸@rMp·¯¸i¦Pq€rU&Á]RÚT$$CÅÊ’{‚»í:î‚¥„dR¼N€+¹&¸+e·Î£`)¡H)’ ÁÊk‚»}Åݤ¤$$–ƒ€ò4M×qß¹sgÎ6»Š»d)!™R w€Ò²šÀ ¦ipß¾}ûÐσï¶­2”& EJGp(%« ¼°êšê¾pß䌠L¸§UF ›_JJ ÑåTw÷Aj(È5Áh•IKÁ”D« ”'×w¢we’”¤Pq€r4M{Üs1&Håý­b)1, å©L*îŠ2d”¤–ƒ€2T&Á]²þV¦DzÊ0e\ÜIÛßg”©zÜ L¹&¸“mpW,C†’‚¡UÊ’k‚;³ïq—i2˜’Œ*îP†\Üó¯)CD*-M&)‰Š;”!-iÛã®2Êàèq€r墊»}pO« W‚)´Ê@9rOp·¯¸“A†&MN¨¸@9rMpç¶=îŒ ™áJ2Ræ” `ʸ&¸ÛWÜ92£I“¡âeiÊNNmÞ³uËî¦áÿ¯Û±÷¶µc¸=g¶«Ê)Óš¦"TÜŠk¢8Å”®*3‘¹Þ>¸s2MCW¦A¶Ë½ÀøLvX¯®®éë O⸟kZeìƒ;#!Óº=în„ÔPДVÜܱñå©Üìܹӿ¶NNe¦L”É ­2“`"8Å”÷úM»ön"¢þfÉ;¶.¾צúQ{lß¾Ýò–ýï…Ze¤™òHÁ•*Ð*£iðùîI$ÃØf´‰NàET]SÓFmf¨´ÊÔoúÄ:j:Û<¶[îLÈ”ÇIÅ]Ó^Ñõ_í±€ˆÆ;R;Ìd®éqטÝo9“fÒ+W…NNe,Ad{_ÓÏT÷æ=[ï>8øãÃhÝUc\À¾Ç]#if¼ÒÔÙ_`•ˆâîc0á ŠbªzÜë-:³i\«ŠiLÙDrI‘öIÉ .É‚;ÀXLx€¢˜²“S×Þ¶wïm¸=·­¥wS+ØãÎXŒl‹÷0ÚD'p(Š2éqט’¿4uV¸âEp×qOp/Ðã® Ã/…F¬`;‚;¸{‚{¡Š»a¥Ðx¡“S‹RáX¦×wûêŒDÆ/…^°âÎXcÚi¦×wsè+:S2M îÖ)(SܱÀÔ¨©©.õJÆ5Á]*ʿԣ)™Ò/¥Î wÎúìÛå`Ú ‡ûJ=€’qMp7‰òµ¸0fÄ„ÔY¡PîcIûâ=À4äšà.†þ±`˜D&SçÌ.¸3N*¿AÄ‚;¸‰k‚»m™Ü0™”Âcß*ÃX8N^A w€i¥¦º¦ÔC˜î\Üí+î‘ÁBx VÜ£¤DDF±ãî —zÓk‚»MÅ1Ó 2ô€V(¸GHCp×qMpDùÛ`Œ S’…¤,Xqïë%esž+Àôäšàn0²ëq'’ZH˜^­PŽ›$*îà:z©`mçÎY[lzÜ3ÒŒ$ 9i•é$3C Á`’äNàPÓ4¸oß¾}èçþ÷¡HPšYí,(e*R…+î­*iÚï`Br'ð"ª©®÷áL0C¹¦UF ÊXþÊdIS‘òz¥ôrËh?H±ž.&LE‚¥&e”0™Ú`&sOpW$yžàNIS’òú¤ôÙŸœj²N#íAp×qMp—*oÅ]°”PŒ4¯4|šmÅ]°.™ð E%'e”“Ã5Á](’6Á]óø”ôq²«¸ïe1$wp×w»Š;¥„$¦y¥á×m+î‹ð^](’,û[çq¯ww1 Pd® îB‘dyƒ»¤1¯”>û“SuŠz;˜$¬ƒû/|¾ûŠ2Z˜bÕ55¥ÀärMpW’džÅ×%K ¡4î#á·>~– ¶¨|­2Jù -4îÔ—z“Ë5ÁÝ®ÇRRWú”é×ó¯*ÃX$EÞÙ­)òwc‰¢ x¦é˜rIIBY—Ã¥L A“” Ø|a,Sž9gãB’$‹VÆ|Dñ" ˜\SqWŠ)i‘¶‰HÉ„,hÉ€ÍÉ©Œ…#ŠÏêÑ” ),*ëJ錥qQU€i«º¦ºÔC(×w)I寸KÁ‚\2å!"ʳ"$cá^¥‚ñj!˜R–ë¸g”ªà¼³HC§žZÚÆ•S`ærSpy*îR&¥ÉBdè¤ ""a¹cán%|ñ9B0)-‚;c¦RUŒµoÔàN-(È5Á]ȼ­2¤ÒÂd\pò˜Dùz] w2“Gç+ARZïŸÑÛȺë(Ú `ªÔ ‹Êk‚»’¤”õª2R¥¤ÉCZFgAʴܱp7̾ „àJY|ð 3âÁÀ}Â袀rçšà.$³LÛDD”¯äi¦¢|wƒuĤÖcÌ—&³l—÷u“B« LC® îJ’”Öw¥ÒÂàž´Î=‚Q¾wƒwdRúyc®4™eñÞK¬K‰‚'§êúoƒÁãð`ZÀVÀ½\Ü¥`*Ϙˆ2ÒàUZR'ÍæäTÁºd\?›œ'M®¬Öq×Iu0¡X«ýH4툮?1–±Àt³`À½ÜÜ%"_»!3ÜÏ“ºÎL"E†ånŠõ¨?™/LëwFfLùMÞ\h,z¾Ï“dš^9uçÎY[¤`’Y'rR†z€ÇuW*2YZ·Zɳ>Þ©¡Zir),§ îq×p‘&€|r'p(ŠiÜ·oß>ôsÿ{€’Lª<¥teˆŒæ×b½Æ$Ryò½Î¢úyŸW+LnY•×ÑtŠ{ætÛ§r¥Ë÷`ÆËÀ‹¨ºº¦¯Ïº×¥¦º:܇…e œ¹¦UF¦d¾¸lHChÝ+¤"‘§ÞKñàÙLlá\areõ€Ë ?ŸäÌ ²¾Dk?Æ‘DÑ`êåKíD„ÔeÏ5Á]I&òT܉LaêoØë‘"p°T ™‰ ‚ÊÐ-+ŠЍ€ýÂ2Ö)Hg,2æç0^® îBpRù.‰*ÌŒî׺½^!ˆ„ÕŠ1ŒESJ F+Y™¦u“:ר²Ãì!¯ýRîoi¯FÉ` ¥÷ÁVÀ½\Ü¥à2op7…é zÃ^’ФU5±pDi¾èlYGÒÔ-ƒ»ÆUM‡jS.žê%™$BÅÀpUp/×w%™ÊÓVΘ0 Ï›öy ¡Hª¤Õ>á>EZ_mj3M1«àÎduÔߢ2ŒÙw‰‚;L-×w!ò.ÂÈ™0…ÏçÏ<†”$¤Å©¥Œ…{”4zæG2aZ/ÄΙªUžbIûV‰8‚;L-×w%˜ÌÜ¥0<$¿nHEÒòâJ,ÜÉd¬£>¼€ ÃcYq×™ò$«; ~Þf$œ1"“uƒk‚»Z¾ë•r.…á‹cÊ×'I«Š;±ÞNMt¶Õ×Í“ÂÔ“¹»hD'NÕfâ~ƒŸ³K*N<]ø:M0uªqÖ)”;×w!¸²*“gÒÞž@¯ðõJŤ°îIv>™ÑZŒy‹f))½Œ[w©Þx-õøkµ‰ÖבÈÈ ³[2Æd⋽ô9;ë´¦ùÜÊ5Á]INd‘¶‰HãRþD(­{ãB’²ª¸gx{&¡%jj#3ãáÌ¢x¯3êˆÕyÏswÙŒ„s3™!“£U h.öRS]3ÑÂušÀµ\Ü…©‘UÚ&"K3ˆÓÌ›”’)eq&“ušQ;÷‚óJ˜^nÕ*ãaª-¶ÐÜ Ø®ÑÎ5‘Êd½ã{"0náüWN({® îRæíq×™2…?L’žP’ aqrªâ=ª—úÌ]Ô¤éãÖ­2áKæ¾—¤‹ç ç" ˜` ¹&¸+Sc<_Å]I#&„'!IÓ"¸õj¢{·:ï IDATñÜú&¦O³î’ˆ4ÿìº6O¯ôØ,å®s‘‰Wî0u\Ü¥Ôóö¸3%3¡ÞPÌð$¤d¦´¸rªN­S…W.~› ÃÇ™ÊÙÅ0ˆª+ƒ•}uŠl–r׸¦+¬ãSÇ=ÁÝÔxžŠ»ÎIšÁN_<£G¥dÒªUÆK1ÖŒ×Ѣט4}Ï¢³³CZÏâ%8Ï[q×H=^³¸>+”Jµ³óV±j$¸—{‚»ÐÈêŒR"Ò™’f¨‹¥SÞˆ”dJ‹“Sý,)Úªû° N’4ýšÅ]F]ó+SmËÏj†M«Œ‡Ët«×Ç,r 4úœ·êpÕH€iÈ5Á]åR0D¤3Rf°ƒ’RO É¥²h• r#Õ2g^­’K¥4¹÷þV™Ä‚PS_CÁÓüL¾‘x™Ê´…ÜzQù©Áù9ÎK8˜b® îJj–—;%")Á>&¥ÇP’I‘Ü‹¥Ë´Ï_Rr©”¯±ì;,™!J]è#¼8óØw®äÙ*FŠÈ¢´?5üþÛƒÁÏ”êÑ`"ªk&º=ÌLz©`mçÎY[¤©ç«¸{ˆ”YÁTeÆ'¥d‚rƒ{¸O²dkÝRMÉ¥R‰ žsrªÉ’¦¢@§«rÑâ.«ó^<ÕËuÌŽ*¦³>¥æŽýÉ…Ìwª.@iåNà¥/ŒÕè`<¦ipß¾}ûÐÏýïJjVKÁyqdªÊô’Lä´Ê0î%•Ž^°¤ƒøòß«v¯žÓ*cRÒTTòF—Ôëg$_‘¯Ç]rF¼s~Ÿ¢Z)Upg̤œÏ'ÓAî^DÕ55H½0c¹¦UF åU“ˆL“ÈË<šª1}\J&Uv÷9cá.®2bÉ¢FF ǘ è9­2%„¤Ùž®•‹BÇ“>fýÆÀX:­ˆ…ö2ÅX W„L3V²F€RAj€™Ì5Á] YUÜ3 "¯¦ëj–ôr!˜Ê)E¬#,)Rµ`Ñ[Œ-;„ϢÇ' E »§´·:ùÙ‚»yøÉæ%ÃOÖ«Ú¤iÇ5íí)@ÉÕ8KäWœTagKRâëÈâšàNBϳªŒaùu=¤æ(ŸWIžÛ*“fmé;_?a\rÿ›šôyrîEЏ´â(µ/ãÔº¨K2Ë¥Ü%ÒŒÚjê“i–æy¯®:ÙÌ 9:95sX`†OƒD0©\Ü¥°®¸ JD>¿˜}&ÂZÛ„àÄrZex‡ˆ¨3 s/ð§‰YµÊˆ¸)Ù¬8-X,Ãg–Ÿ'iyñTƒE3’:Ô ʰÎ"=¹1«$Ó b,a¿çñ®Y Eäšà®¤n¹ªŒÉ“¦"oМóÒ ß‘ÓR0•ÓC’ÉD·Òë*Ô…]B¬ô2/'"uoRÆ„ êjuY@µ7]zVŒYÔ3,’‘Ô³tŒJ“wíéð‘è“dÙÌ3Ò þ{“ŦfLQSí¨í»<8|²[á`æpOpW·ª¸7yæ¬^Òc\JN9Á]—-¡¤w^€Ô…g¤\ðèFÿMG0Í„,X«VœQ½óë£)-fuiÒþà®Õ˜.|KFN®þeé{H±~fÕ<­Eµå>œiöš&kHS²³BçÎ $ Þ5Y2II~ÞvÇ´‡D7)Bp7ÙêmÓöí¢ŽšjgÍë3ªïœpOp§<«Ê˜1! õÌ>Ùí “åw&ͤ¨Xt’hAïkü &„"“¥FÝL ÁCÁ×çÎb)‰– ¯ê²x81 ¶8®’Ý5úè{˜2IÖšH“Wi«Óg‡pÞÙ%Yܤož²±ÝÈVo›¶o­zÞç¬yÝa+<Ìî îŠ[÷¸Ë¸)I†ºfõR@TJÉyÎrïœÌ„¬Z(“B\ü&“*’¦"“ª¸2%MÎB1ùŽØÒ9*Õ8?Ä-.žjЍi°¥• ×úxiVZLñÖL‚Œ(7…Ý ëhe*™fÉÒ]( ŠÅ5Á]‘u»‘IÁRÞÞ@U]WJ¡3žSqg²WŸSïé”ò’WõWU b*">rS¥…É¥žzçñUJõ[’TVgÄMƒ/‰ªHdAPË> vj˜²5£tŸG »Š»É[Úˆ2qU ELÜ8:F\Ô6àœk‚;Ͻj¥3q!Izc²®.¤U)És[e4&óÔW8«*.k¡¨È î’ҦɅ¿ž_þü;Y¼yÙ|=“{ÙQCÄŒŒ¾L¼Õ“XÒJsQRa¶Oº'@ÊnU™(?M°LŒ›†}+<À´6ŽŽ›¶ez‡­ð0s¸&¸«<ÁÝ S0ÒãjÁ‚^#…ÆyvžÖ˜’<È޼B©+Äz a*æ¨NÅ !4Ộ]þӕϱtæ’”dlt;  ™03Zí¬âr‘ b%is—]©^_ª+¤±ˆÍ^)~&¦LT—¶…y€e:´ÂW;[’Òa+<Ìã îïÞ¸qëž)=å‘ãduåT3%“,.çÏúf+ÉYN»®I΃lÙËOòóW˜Wh¸)™!GUÜÂÔ¤ï2mîKŸSí³Vĸ"Ê^7FRÊ4tßâãR[ÔGDÅ^R×÷kÚaû}ëKu†Ý5³[ÖÆTgÍ.Jõú•*Õ^`*Á>õ¦ù5Gû°$%ŒËø+îM»·lìw÷Á"(ƸnUqÏȤLÈŒZ° à›-¥ÎszÜuF5F-÷>áÐÇÁkjªûkªkfÎ\§ÃIec|Á}ÀÁ»GLú£¸c#Mdêß¾}ûÐÏýï\ ë+§Š43¹Þ—+êxs³ÏYìÅÃÈKÞ7˜x¯¹Ö÷oèË_estÅ™Âô^d¾û'¬uûå{W=¾#c°L¦-ë; Î3fºòœ/ š©Këçò=…VíµjAí¨i:îFÉ‹ÙWȃº‰-I&.òre™ïX¡§{Û.d~Ó¯ÿÞâ{4ócõÌ®)¨ç­DQ)WLÁÊÀTNàT]]3T{®©®žšË9ŒàYÞdæ¤vï‘Kã?9uãÆÙ³þº;ÖaL–4!,ó©T!xà\RÕÕ©š¥4ž³Ü»‡)ÝK¿cWŠ+õgŸåñ¤”£„aÜ”¦g­ùÁŸ{ž”ËÅ{OQÆdF¦3ë®87Œÿ?ô'–…ÚS ndò~·œágΑLj¿wþ9oi‘Ô%·½Öi•¦¢±‹4yaXËéÂ$*4ÙÞ³*Yòd7ý»Ë,fƈñü]Iý|¾ …n˜š!¸Y &ð Ù1â0µÛ´Å;HluðÈk-îͺ+]3E:•,;ó¦CÝYÉ~x`ÔÚÖ©ÞU÷¦óçØ£½ÞcQÆ{ü#~fÞ²}™´–Ù“ˆG“Â,–+B³Ï$£•¥E ÷ôÎæmΟcR½è¢Ôi‘Ô_Ï·O”Ÿª¬]0+OSBžµÜ-¢èK1opQ[&²Y©†±$÷ì?E’óçC2’·œ'JP›Žæªp£"M;>5³ þM °­„p ¸v5ò±§öR-¤èpåÊâFíi¾h½Ãc2R;Úu`úsÍ•S½dšDŒewÆ ij5þGjM½³•Դ슻a¥+2W¦.מ~Úܰ! æÁdnÅ]x—¬úÀ5æ5?ÔŸQï:’N{ }W¤kB™Õbudz‰h%Óbùò$2Ï×ÅIrÇÙ]G-ÁÔÑnæ­ÓÇÔÙD†ÌI^:ëD2ÉÓé&ËÝâæÑx”.Tšj-")Éó¶Áx<ÿý˜ž—,®u8ΩÖŽö¦˜ùjW¾m¿ç<-õ–I±±œTPtR1Æ”pSI×÷q>_30cì/ŸøBŠãX<žŠ}­S‡9r:D^NWó,êéã3Í¿» wM™‚Ȥœnmn¡ëêŸOÍ_ê#Éùèç¤X:Ctnvø}Oô×]GD|0¹P£îJפ4u-X¥?ýôŸÚü®ˆ‘òš,ë"MäÑ•2k͵¯,9™ŒÖèzÞ`jÇã,¿ÿÿèúsöûÄŒ#±(µüfõ\Ýîú¯œŸk–¬ï¼ k%»š cqÅz:´·J5€)|ÁçÛUêQ Ù’1ñÓ:ÇÁ‹[éw˜#§C丩Y,ÈÞ4ÿðõ‚K¹&¸«ŒŠ„JemçÜ”† _¸zµXºT*‘½ªŒÁ↢ø¬ÖËv¿ØÜ« ¤äjô]iš”ÂclÚäûÏÿÜhnü] žIù(çÒE^MJáû“+>ÿÌ©H­Ï›oÅ”—«—ÄÆŽNÞ©ÿÎás y"]g.l9úGµzšÈ´Ü'™>—ˆkus©ÙG’Q_Òh·ÜÍ0[â¡wUºxÎÙDš%“'-wãüTšŸûÀ{âždê5‡ã,Óóx0ô1û}2™cñnogóú^R6Í<1í3‚Òo…”ñj±‡é”¦½ü²R dÄÉžÏOÁ&•àçOëÏ—z0#Œ#aØt×8Œ¹ã‹à+ýÅ ˆÊj­ä)àðïâðHŽï+Ž"Ë^Û¢œ±õlˈk‚»H‘ ";Isn ©7u.¹ür±t©$ųV•1ŒÞ ÑÜ*]ÿÝïÌk®!¢ÊÊz!8±Q™[Ó¤º±~=ëèø³?\ø ?f$ýš–ý9ÁË‘/ÔÒËÓËÒ±ùu¼f¼½•Qûe”8îM›/8|Žs¼éæŽ÷œ«Øpœˆsë¨L·%ã^sΑS‹'cAÙ§ÏŽ +ÒUsáüƒ5uÇ“I-‘® îÑ¿©(“Ifmgš¦öjëýw’<«âžÊô™Šº2ýåötš"‘¥¹Á]çJ ¬«KîsóïzЫ2©€¦ewæx8éâòËg›%ãóƒy–HïÑÞêÉP]Í’ŽCK¼ÑÉd,ιJD®Ê4¼§9Á:óÔ23ª'ñ¿±øõçŽ'úªH³®ïú¼Ñ¾®…g.=Ö<ïÙd\'­{ÜMïCê‡ú= oïiY ±¼ý9 n ?™»±žŒ’Þ_.zC{Ýãùi¾›s­;ÜY«­\Ýݪºùïòí–N¾iõ7¾õ¡>û«WM")g<ç;¡È´íüÖõ³óíÄ” l¬B¡kõB¥ô°þô›iŠà<ï5Èúù|wù|¥¹Ž&ÌdVãk¶)îê7 ó“z&®Ý‘tV±ux$'~ZÂÄ9¬úOóZµÃ¿Ó¯žÊâSJ9qMpïl«DéLv,Ó4Sšžçšê‡‚»6ú9¥CÒ¬7Oô÷­[ƒŸÿòRijŠ£î‡+’\ÕÕÿ¸ö »ßo¦BžœNW\‘±aê}ݘ[©g/=Ù/šx¥/ίk÷4½ñÁ:_úk¿4?Ù¬h÷šTMo«Íðo)ÏÅ]¾h¸cÑŸŸ£Þc5fÚâ~úIyª÷Tm[à#-¤8·þza"|¾]šöŠý>ó=gO?úþÎuhv©7éûÒwÚ¨FŒeŸ30–$ý¹°ï¿ìw ‹ýá&þzšúôßÚï™ð}+ìÝ]´ñÁŒ42¿NÙ²-Óáâ¦k¢“ymBªÃú´Ã#9-®6å°ê?­s»ÓÏŸë4ÿ”2¹&¸·vÔ EI‹à.…©÷ÔÖ*Ë÷HºÏT,ôêãškžzJïìd}:!8ñÑÁ]S$VˆOßzë¦{ZD&äѳ;a|ŒöѾï=ð—ü•áñ„6YÞCµ?ï¸äÚª'[_Ðó6f|=mg/ª ý3IêП÷€óñûw´û¾e³çLí¹±÷¼?6ßnšv4Æ^ÿgçW”Öþ» ÞìóÝS„WJú Tsµ}ö»qy¸ó÷ {Nê½âv»ñæ”êËÛ­ru“@`‹®?UÚ1ø|_·Y×µ¼Ì¯SÖ2¾Bcq‹MnäÍÛ~ˆrº6Îd~üp8‡l"ï´¨O;LÚÎ’{ytÔL‹¿K‘¸&¸s^'¥ÒÙ9•kB }Å»D´t©¦–UqO¤b†$ÿ²+ˆèƃ=”¨½¬V î:W$µÛoQfË–å_Ì̼9-ì>F^‘PUU-Úà©M¤ˆXÎ ¬D”4ÎEz*ê¯Ý;+ôGMIj×äî“%9îÑÿxÙÓW\úýó+^ëE$¾T::gÑ#áÕß=i&憼i›ˆjuH\´ä+ç=Ú–ŒVjºÅ²• µß¤v^zú«—Üò L\Å™b9«è÷~/ئi‡ Ž?ç§2ì©…·Î­Ñå,‰¿ÔÓxë¶Á÷«/^]ûzÍãù~îÌñ ^uÑ<~êÃõ¼m0ó©Î³ï»nv{×yO_bÿ8FkÃôþè·’y¤Ýݶz{«ÚÖ|´ëtmÆÈÛöñáÓ´ûåµ÷²Ãâãü‰g|»|¾oaÜãÒ.9ßÄ~¥”òø»0½h²´çÉbt |¾¯z<zUhÞGÿX¬ñŒçÇ„gÜûƒŽaú™#'~öçøjöoåôšDÎò½Mäx^±KwÎ’ŸÃc2©ÑÊaÙØiWOþ,;êÓÅ=‹£<Ö,š—b½Â]Ü „¢L:»»@ãR mõjADUUJzVÅ=‘ˆš‚….¹æóŸü뿦jjTÃê05ÎG…r+ièÉ$mÛ ¢Ìç>'Ì ß“Õ #Q…4¾ð…€yÍ5ŧ£’bdÑãË<‘®Ù_ºü©O.y©£Ù×Û[ð ÆÒ'z;*Ï^¼çáOµŸZ7?˜ÝÍ?pü3>gÍ êŠŽ UfNÈkÑ«c²óŠ.X(¯½ëè¥?jOǪ½ÞìÈ›ö>ü„I›¾ñ£äü‰•—.K—Ô—»yìÐwÏ™z躂ãÏÕøÜ«Çý´IR\˾¤”)Ou7ÏM¬É§Ø ©Óõÿ'Òá¿3kÆÄhwþ¯~Ãþ‹®·¼àTªB—ÞÞu—=Ðyr^:cQÉ’ö~ÏWµlLO¤›¾ùæÓžJO”±ž|û$’?k;\õù>Ù~fe0Øi¹çm~þ,ÿû½º÷Ê®æP_Ì¢£¦Në9¾-ñ´ç›^ïl†¤ëOê“ðÅ)ñ|ËÁ%ç÷ù;yöŸcc}~ÙÞ¶ùÈ×ÖóœMDD¦üQÇ/æ;©µš»‹?Vg<žŸŸõÝÓè½Ïò·fà&¯÷;ö÷`èϽ*U‹:5¾O°EqÞ÷Íý 3Îî/ÕJËat§&^&_ô/îr1?W’© ç•üé|ä/lÆàð˜Lj¾wxVýíN*(}>túMˆÃO)ÓàœábDÞiðw)Ö‡×÷YµuR±d:»r¬iR ½?¸‘"~‘¥3S²ó§–56òoÌѪUBÊœàÎHú?ýSzÖ,õÕ¯úR·ÞÊL¯wt »Ábi"™”/½¤ýZÿÈìø‹1A}}g"‘XׇÅÊKÞõ@뉅iÃ.Jöcž¶pû¼}WžÙãóVE¯Öteùµx…W˜Æ¬Ë–]?çªë‰«¬šì{Ó¯t¤¿ç™÷µ,]=ÿ#F¼&àÏî oNߟùEMà/?ðÞ/ÿý/¿ZqùS]1ÞÎn¨ðö²¯¯ùj+K„>^ð)ŒÄùiÆžkýøfõƒw·÷ñÎøY;„BÝÝgVÈm{û¶ô'êÞ¦{+Uö´au¤CPðòcß"þ¡w¶Ÿ°fóg¹Õ§>gÒe+ÅÏ>üÓó«BA»³lMýKOˆÞ¸ï.ÇOE, ?ü•ÏЍVïÿÍ·S…÷äÉ—ß÷ïú\ßéÔ…¬›×ÛüŸô¨úæ¼þqj?U/sÎZNh/ôý_2?>¤ÑãÉÛ…rÎw»/tÝdtÉ_PÑõÆÿó•on]ä;‘ïþ;ôßKÑ% Vi½[:¹RyV@b,µÈßþìã_8ýô%šrº¶Ò˜x<0f}ñàÁ1$õÀ§ö<š©0,øg¬Mé<¡ÿ›ª|§Íù¸Íéïž9å9´Ÿwxo)4"“Èú¼— ªP?{ûÞúyžæ™Ù-3޾m²þ¤^ÈsÊú FF›@0ñÔes#c®]+¼Ã 0Mꉡ΄À8á/!&¹sÃÙ œ¾6¦Ar·ùüéðHNƒ'Q´Ï® îuKæ EF&7¸+iz†‚;“=;¸÷ Aÿüïï|衪óªUR˜×F5ÝêœÌ¤gÉùÅ/¦zzøw~PÍMæ×Fçd¢#­¨åDÅ·¾•üûk¨îh‹exkÏéÜÑVÓ™pý¿ß·ox¼íØ5UçìÑ´› IDAT†f©¬ˆDÛ.\ñ-ï§¿½øŠµÇϤ©Ý´ør¿Ò#¹ô?_÷?®ÌÇSÕVÀÖŽ×ú’šO=þìg+Ö}ÌLUsú× ³éUºâÿ;ýã]Õs?ýð¥¿éíõµ†gí¶(h<»øÖÞ¥_{FÒãy¬à³ÒâÙü«çµŸoÿöÞ]Ït´…ÚÃÙ±i^E*Ù~ù³ï:Í:ù¯þñ¸ï=×z4•µb{Ç‹½Iî«òË®^~ŽmÍ¡Žn‹cÒÚù뎨æ¿òß; væOê+òÆYÃó«cWÓ~Ží]ÞÓ­ÙUj"ªä4ë¿ôÇŸßuÉBýd”(Ͳ3Úc'"QOísûèŸ-ºùJûr;jªƒÉÙÇ—}ûŽ;ßhñþü=óÿ»¥·³:­NÜ'®íV´åôRãá¿{ᪿfO[6ôçâü´ÏwøÑ]œüßøî?tŸ[HžSYûÔ{¥O[|o<6WÕ¾òð'ÿ]âlšµ&FÕ˜›ûÞ ÇôÐsϼÿYúéÊWÛN.‘¾c¹×}¥³3Ø©¿ðÏïynñÜyJS&³¾.U»yë«ß¿ð‡+>ßg´ùe÷Xü¿ÞÜ»ògÿq䙿^4˺¸{Þüáë vÝÚ0Û·löŸì?“¡Žôo²ö9Í6?zT3ßûÍ«º¸FUjá÷. ešêŒ¿Øzfο¼ç»QúÔŸ¿ýì§Þeøÿ<÷áÚØ÷ÆéÿûåWŒ# ßNžE¿íõ¯ ¾˜ñþ@Ëi^"¢ÆðïÐ?¹ñ'?Ÿóχ²F¥­ï<ÃÿÐr|ɽ}àÈÆ>w|^GÔº=ùîÛO-û¯+oyÿ…—¾mP—ö+›±Å‚•chàf,lúÿîÇ_^ =žoŸžÀö'»O}oÏÉë.ù£ÃQv6ÝgŽ=ÖøÊâ-ŸúýÑ›~ûÛ«ßÿÛž—º½ŸÈ½Ÿ†Ù=gÿÉ5ïù›¿žuFYìÐ/âyì-³ï—í]Û?":ïÿûŽÅo{ýÕе³_ÿùÊüá˜î¼h&6»Ñø.ä鸹Åáiywùæd“Œ'žìúpFŽ"()nC¿×sr™~x°É÷Û‡&µìðÎ~Å1©Cu»YþAŒ|=ؾV‹9žñ)Öœ²àÞ¼çÎÝKwìÝ»wïÞtÇÖ=c½pËâ^¡XÚÈ^ZQãJ™ž¡ÿzô6ºÇÝ”QS°K/×GnTRãÚ¨,ëaä峇þûàƒ‰Xgu`ôáéîíÈH¶tùÿ ¢/~1½çñ¿M¦<ÉŒÅS™««*3úç¿ñGíU÷þ#]’Â2ïŃúÕy¥—¼_öÜ{SÅ÷/üæ™ö–Ú„|#kA ÎÈÛ«x ñàƒÉó¯ÔDµ¶gïfª3‘¾P÷Ëÿò®w‰ÿõ¿R<åÍ]¶r¾_ôÍòÏþºç+~ìõ¿ø·øl¤s~°bT“ɱS4Gµ7¶_Çâ/Y÷À]÷\Ô¬¯(xu!":’øè/_´ëÊÞõÿ}ýG¼ïüE³kFu‡÷¦Ÿ=+hÉŠÇüŽ#GÞ?ëÑêÖ›ÿ¡­Ûûv˨µSFS$¼8|Ë ±ïÝtS0rîòºYÕL?ÕÛ6÷pÙÉÿ¢få×ÏÄùÉó×%5µ7=•'žùÍÏ.úìþ{>bÿQð‰eVÍé:óÔ7oýóû/¿`mŒË>í¥ÜÛ>ÕXýÖú¹å‘e‡¿Óö¼uö×YûØßüð+Ÿÿûµ×õòã署õÞ3q¢ÕdRY}¶óä%WýË.ŸýÊ¡•OdÒm2»?çl×½G_]øã¥]o¾c¾ÿv‡½mþ¿}1üÀÞ·Ÿ}2ügõ[Î>Ôɲ/Õ•ú홣<¾âÛÙü`òÍoWWǤÕIusº{›®üäGRóî¶¾yeíëÏ3«æµ~zûg?ôë¾¶œ×ç³îDÏÕ¥¯úϯ]Ö|í´)ÚÈâ´fΦ<ßúáÍ¿~¢òØ»¿¼¼ñ­yg{ÉÚgÉÜ–s/mêlÝñ¯kkŽ\³ïÛ¾RëËþtf/ô(uÅ;ª¾±øÅ<5«ª‘së«"t§>÷ÌÃïþÁd¼pnñ ÓR³zǓϾХ/¶Ùgnõ˯îýäkw~ uøžºê(cË4M²‰Nà4ŽkjN‹Ëpæç°êowäˆ(c“Œ‹Ñ*“?ʨQûMÃ|?¾Çq|rªM‡ÕˆPhsg#ˆM ´I¢6FŽÁé*Îörxoã=÷`¢]=#c»™³ïRÆþúrþÄ‹õhª‚{ó‹Ï45,®'"¢úÅ MgÇ:ï_x¡”Ò¢UF犔oè¿Áì¥L˜&¿ì²QõuiêwtF³jæÜÔ. Œ>Ê=‘ÿŸ½ûŒªJÿþœrïôÌLzO ô@i‚¢€¨ˆŠ]EÝ]Ûî⢫?Û.k]]uuõUtí®Ë êÚֆЂŠtHH'=™zÛ9ïAH&w&CŠdð|þ É™;÷Þ “ï=óÜçT¨ Ž9chÛ?Ïpt((é$rr·9°µ…Cå'¶«®Ræ½³ÂöJÉÞfiÃæƒM7ÔžÿDû‡Ô]a{é¾ÑóÒ‡ 3n}m}SEARrUÄ–+jla°{ûôSOÕ¦LÑ}kü*­Ø1LrÔš“¾vÉe—©_¬ú*rœ¤Ãù­†T~Yþïk½Û¿ºì™Ù/d^nÈô¸;| QÓúé¾}Γç¹}ëóÚë’ŠGž¿s rå}V«B£IzÇá*Oýú»‹¯½gج.Ç­iÙIf—7l]Wã£OÈÑË~zeüÊÅŒ«¯ñªÐaX²WûšÜ÷UÞ~Ì1ú°µ›¬!û‡ÉRµîä†Ö}9ó׬}±rzãÝ «÷Ù÷Ô›4ßX¿äýwÙîùö'_,š$oo†- ×Ä8ø|ï¥UXò.ºüòE§ZkNÿaWÒ†í7›íÀÖÊ­cZ²8ÿÍG?¾ïõú}î Þ¡×J«þ­Ã¡N_²nÃ-ßÞ¼pú5ü?–5{Ë}äëÍî@ÍO†¿’Tóé5˺{òÕŽŸíiˆüd``vIå7 nºüÌ{gUþíß#·„†Ä> ¨ÆìSÿý¿ÿ·åÝ'¯ü±ü©3¿yæ÷gJ–ÿ‹–“YY·sRÖŠ;˜0ÕX>ã³ï½Ÿ–™,ž5Ô¡Û‚öËkÞøà#8ÔmÒ“ôǪÛðá'>pÙ‚ÙÓε÷ûqIÞÈ9þ𿝑ÓûcóKW._úòM•Ï_½­–\ß‚cMÌ·ÙÔzÜç[ñdéÎÁ‹~ùnqUë-Çl×gþí†k^ôäí—,m=‡Tož’•Ñam`Ÿñ•XÚ˜ÚåÃþñâŠñ#ã¾»¸a{m«¾³ý°¯·Ý³­ÜÁJþŽOnþàŒ·>(X_Bç§kàïY]­YÚeœúÐ?nYÞ$Méò(`k¨ðÝ• o|ö‰\G’§Úor G­²&ŒÁ“³ŽŸ+_¸ð³Îö^ÏÆ{SßÀ{¨- {Þ52Fôñ§úg»`hb!]ü×?ggë×ûþùÏ—«+ Ãø“5k¤ÐWkƒS^>añ›9þÞ+tîÜý1ôï_? ÿØ´iœrJú¿×ÈJþ2bU¢·ä(@|hQÛ?W—‹À#O¤:5h×ÌÆž¼§¾2ëÓ¾(ù´¹àÑw?>æÿÆ<ñºËÎþÛßÞ_žj+/÷\ˆÆŒK/°z<|û—¾ÆæU‹oxð£~Uó٣ƚµwÌ_\l6N¥«›U¿Ev¶m¹Eý¬®Á>ó†ë—¤ùvï¸{÷UwìºfxÕÔ£wt8¤Ö†ÊA=€‹/Vo^~C½ñØÇÿ}sᜅ퇥»•à¾ümÛ}ðÖ[¬«|>É»¾3F¥¥¨²W~úIJ{«6®.ºuëÌÙuÏüÕqÃi‹Î}êÍ[. øêüž/=é-U è­nhI©:“–T”qìÚ¯?8f×7²)뿸sƦ&ÌZÿÕWdÒ$#@­­¨¥…B0rzðƒïÆ|ÖÍ{–·îÜyìÆê¬ì ¨4 ÞþâÆÅöÒÙó¾Ÿòæø%ø¼‰F]Ý35µÙµnj¶e[ýØ£yË× þròƒÕÕØyýw•Ø5_2kõšû|³NOr»¹ªÂËϽµè7,ü˜[þçkÿ´­½‚*¨õÅOfUm„¨Š¨*Y¼zf’üM¸²8E‹ìZó°νä®ï}#ƒ.Íή–†«’KuhžV^û×UcG=8~¼ŸNO8Qꃣ /œÿô¦“›Î\_rõƒ‹/|õÛKÓ-9’µýž¼ôÎ?g.B?~zÓsÏKJòžºåŠê_ß÷þž>sþyª ¸¾ùýH)x²á›A®¾¯æìÉŠ–¯~7òÌ?[K§NÕkjЦM´ôó®»ÿ¿¹ö÷EƒGÍ›ùíÁqL³¿tëÿpëœÞucrÃжݙZªJCòNjo Ô ‘Ây®äGöOÚèüø‚w?ú«ë…Gé¼G§ž²ñÅ«¾,:sJZÛ¼™øÞÝ`½ð|z‹‹_ü×Í @å•éÓ2ß¾}ܲ×^{Ξ­€ßÞÞøÇÂ1Žš§þÈJ~K›*¾òÇ36Œ”œþhÃg×Oª@Uv¦]ºeÈ®Ào[ñà¡«í÷>9eö«ï½Æ¶c)6ÆïÌÊbÛÖVä\|ñ®Ï&Ô<¼©4”6äÖ×þûõ¯wXÅ«ËìÖ=-tDK¨6{ÜGÍ•JéôìôÒp¸Åbq;ûÿ­ÿhD¡>Õç:mŒwäo®¸øšû/zfݰ}˜«äRV<&#O’$Þ”|ƒR’¿ûüãê®XRqñ…Î?üuöâwÖ¼&ÍŸ¯IüŒzôžˆb·ükóŸþlmæçâcŒ'å:Ô¨sˆ²ã‘;0.r í¸=îOcÃ=ÿx!Ê®‚Gç>p„…·?ðO„Z{Ó­£@?m=ú!õü`ãÜšÛãiW(ßnßâÖþ×8ú–cž­v?‹qÂã<'Ñö'öƒâ<ð8÷¡K?Wp¯(;8Ù•›Wh6dåÊ•¦=ð÷€1дÈbq‚¹Ýê8ðϬì4‚€s@â;V;wàjW=R]8†êpWYV-Äá­5oœ±tUk ؤ. ”Ýb ½ü²´p¡fùiÞ¿º~csÍÞ¿ýåËÕW7 Íüífâ(Ûüñç¼°î_‘Ó»»ñ¢»­š~aîE©u­|Ò´iûs|j*ÿÕ9·9lÏ=|éŸj2ï¾ì2¥­ˆ¿²f«_ũփ;Q•¬o©©AO|oÌÉUþa»"wôèo_cI¥ãÒ.«ÈðÔ}³¹`Êô{/k;ü¶§˜\¦ —ž[QúØ‚ÚwZÆ.©i©O›6Ú€ÌL}êT€w¿š™‘²ñŠ™•w½‘ëpðwÞ¡yÇ…)ض{’~½¹I®Óž¸À㪟:Ú4cþ|íßw=ñç×Ùy§­h¶`öúúñ#ÖÜt~íWŸñ£Z?=vMݯ6äa{{cÞ'½á9»í’÷æÒRÜÐúfõèÛJ¸×f{vìÙoÌprÌY=!ì íŠk0À`M[Zá{ºÆûÛÕC'í9ãwöçþUüÖß7•xW|~Œ¯©A[×}9úÄE'¿IcHc¨¦Ù2(kÍ[g|ûرÇSUÃ˖ݵîµN4`ô9³2‡{oÇÀЂk¾ÿ“›}\ãÊûIö—O,ÛþÆî̉©É_´½Üa€ßojýë®æ¥7{zú|«íñÌüñ‡š]ãnXýÓÙØZúYÞÐù¼8õ䥫ǜ?2§êŒ¥/¶:}¿_zcÛ‹rfSÓY¯|Ü€Ó^üüÅËGš½}syå¿æµÎÊ]˜çóÖ}8ä#MM«Ê¿Üç=ªbÜsöû&y.¡7æ=uëp÷›_¶ í›S 5oúßôñìîô±ƒfžÀêêpº·eËÓÖÜ)·Ö§–TɹG~û¼=Ï›wì•»¿|ná¶“¸rtSÓsv‡{mËÕ¯¬¼ð¬»{ÿFXs½ñžè:dµøRWŒx×sñöêŽØÄá§ï´ÏF1v5Æ!´ÿQœGÚ½sâq»oÄ·ÿQŒ#Šñ¤qïÒÁW=Îs£b¾ýQD„ÔöÿltûÀç%óxÜÝètÔþœÄ}ÛáEûçíðº¸=íûÇw<Ÿ4âÚ8Æ>´ßBŒ#m¿…ˆ}hÿ¼q¾.ÔáÀãü%ìÉ›ÃÏU*“›?ðÀ×å¥ÝÚ†Á‘Á:÷Š L1·;¼¾ãLÊ!{w,¨ÀDÓÍ‚;Å?³ønýÀa‹üœ.È`_ÝÁZUŽƒšÞ!¸ëJ’ÍzïmÈÏwŸq†ãÙgåãŽsZ½õ-­ÖöÃFdŸ’“|ëyÿ’[gTÿ9cÑ9»ËòÒ†uîMŽÞùÜ?®ØíHÝ×Üìjÿ§´èȘ„ŽÙñôäÉ®eËìÏ?/Gs ÔáZ+’%§oõjù,Çïœ9Ó5ºþÚ$»ž›2¹ý0ŸŽ4TRW‡~øœZ\oOÙ×Ôb8X+MS$}ùåö™3]§_tfŽ[›2ºÃÍ‘……lÔûŒÓ&/;ÿÆIž²©EN›þÌc-t?4ïì”O>8kLýœ¢Mƒ‡DV]W7[mY•[üäºëlƒK–§¤7cuTĘ©G-Íq°y\=dˆë©§ä-/]çqèùéÇ´S_›áÍÛãúï¯×VÝþò}÷Yrgü¨sp9^¨3ò¬\:qѯ.¸dZÍ®†>U½gÇg'M®˜[ô‘ÇsðE/,dŽÎYòþ¼Æ^ù»·¼áKÓÔFÉß´pñެ¹sŸ¿÷oÒð÷?/OKK;ø»Å¶­EnÈýé‹ÊKoÚê»wøãµŽÌ;k:¼vÇŒ^’íÒžvÖõ×[¯ªZyôÞZÐ:mDdYŽ“‘Ù²xà„“Ov,­ú­3gOUmäo $AMå”!SÿkûöÉU%KÇþï¡¡ã¶Ù•“ ÈÌä³N™4ÂRjJQ3µ†bG•Å¿qDQÒýÏ\š;ΔËç•›÷‡¡C™Õ 6w:¹ÛÍÝn~rñk3†5k#o9åúy‹2fyþPVÙ¡ZÌãá5•sÒÆ¿}ʨßí-¿eÕä¢ùÆ1é…»›k¶ÖR7"sð®Ì;NjÚ´b[ËÝÓÿdÝnTÈÈ¢í‡í®Hsþ®h錭­wï\÷Ò9GÕœ0hÓˆéžAƒXf&w8¸Ý·„ù§\¨û6œû×ù·Ýóð༠Gð…<^?ÕIþ&h-wŸ•Zß›¹`iaáþß1«•N»còô-îs.Ø^yWNÃg“®¸±¢éš³R’“;|.YV^˜>ìÛ+Ï̸xÏM9Ï—Ê÷ÏwSÄ ^8Õ¦»Ýã^?ÿò=׆'°#4:þ^/Ÿ_ü_›1|Ä™G?û÷‹üŸ{Â!sý±tÚŸ~í½^>f^úT9éèpŽc¼CyÕh:qÈ÷ .ܲÏþãм´díŠóç¾zÔüùùL–!'‡œæš}ú¹3³w ÎÍJŸ5ïÙÕ›—dþeWÒ(U¡GÔ~6–fŒ}'{Åíð³é7ð~+Î öoýÙ1ÚºW ѧÅ6cDûfŽQ‡õ¶O³©ýâº7±c›”¨‰(d6.bßú®ø*¢»KÇ™fÔñGQS`OvLŠûÍÏJİXK·ûåïp€ñUňà½Py…bü+ªhMx"<Æ«n<©©Ÿ³diùÁºÈöŸºÆ‹3Ä¡C©ôëCƒÝžvà;N‡—”n;ØhSÍÐ;–x aÕÕûïÞ]&¥Ó CÄÑTY‰À0Ia­ã51Ò¬vå…7=M÷<´l™òÎ;ôõo´{‚þ¿1òÏdåýÆ™LOOÑ΀|ÏYCF—L¿Íx|É¥IiuaVijWúdf/©\ôÏòKn˜7O{ÿ UrøC៎‡ƒv‹Ã·åͲÚZtûí¡Ò¥¿³Lß™lá#Š&¶æ×°”¸øbûWØ=÷ùÂÞ£U[¨:ÔáõMwÍÎ"°wßécþœôÜ£7Ýýé7Å“N«j*ä<%âS“mM猖VºÕºAIûç qÙÑ…3Îóøâ™Û²ÜWG<¤±nÔ€£ßbÇâgïºûøKÿüé×ù£~`þâöcRSÒ l7N]<á_ýx÷ãR0J±D¶?ø”,·Ö0sòûŽ…_üõÝÌ¥j`XçS7%÷ÑÉCüUw½rç»_îzêîIéÚø¼.JlÀ˜¤¯¹¯|rÁÄ¡³ÔÈ£hùgOƒ;<ä¶3&O#§{ †—9xäË]œöÒ)S÷ݵuóƒ·­®{)½åÒ9ù͹®9íÇ ÏY\˜ßr>;÷¥ÿ^°ð’Ú3v¬;ý™Ú†È 3Ÿ3pô®sò/º®ñ¸kÏÜØ8;Úþ#6¨€|†cÝŸ'ÃÁóƹ+Í÷XÇGŒÏÀ§;™´a߇Çý®¼.wIŽÅ]@#Ë÷ ÏsÚ áÕÙÇ\ó—Ç_(ß`§ »ñ¤ÎÃjëÆýêÉEg?üÜë®Âÿn¯3y÷Ÿúþ„ô3Ï{õ¸ÿ¾ÿ¶ÿå>"PœÚ¹é¾4̲e¬÷M¯ÑþH-ùÖëÆº¿ìº5Úáu6yà±gü©ð†“Gÿb}ÃÑgýyÂä²/×>ùÓ‡3?ž¾÷[íãB¬..Ñ+‚£WMÄR#¾ßÍâç8ž(–x›åÅ»å¨#;]ÌÙÜè‹>®‰öÊÆÿB<à{¯lœ%à±ÊÝQ<Ã"Ÿ(ÚȸófÄ/ÿ1zPF{Hä.ÄyOmôa‘ûõ ê®Æ»¬rŒÿV=¸Sõg›q?fúš*ÊÜætH €:ì]_WPNËÁn0«#¨-ß_aüã„PÝ$¸#+Ælóæý‡ TFvæ€°Žˆ]yâ Ö­“ˆ¬jZ‡3f¡Ù6«¶00›¬_êý'<³jç'þ{\É-º’ÙqKŸNçæd÷÷×Ë·]3ÑÍžz»xÛU{?¹ÑíMõÙð ˆgojNIÎÙ†7nIÛwÞ‡—þëä,ŽÖPÐÖ~Œ¦¸­ÎÀ-'¬^5ÿ£ã.Γ’¶óéiÜò˜öÂa¶ÀŽOá²2 IDATÿæã›ÞþôÔOZæ…·Áoµ¸ËöUüáŽóJÞ¹7yÞ:ËÖÿµ(éâ‘ÛΛ»jVŠ1SM‡64-§¶ôÆQŸZÚPqq¶fœÜyXE€"Ë®óÅõ•¿- ÏIGà¤îâ:è|'UOÞzUå×#ß_öë÷ói;ë[Û) Òý1ûØï²¹ò¨·NX|ú®BbÞ=Ëú WYñÍ㕙꽹¸0~ñ£Ù6²y>ÿ³÷˜‹ïØX¶èÉù£ •!y‘ëò”‡‰Á*—=縘e§Ž{zWƒ:ñJ3P¨ýxÚ_ïÏ.Þñ«ì߀4“»9Ïlñ9’Š—ßþ‡‡í£oÛÓbçÜÖy˜Ù]YêÚ [¬pm¶_OXðÍM¯¾´õÕ[eªÃr~ÛyL£vÓ‰wý¿Éhìy'¿Y¿æªcHæ¯Úȵ]0ÒÎúÏ¢ Åw¬ÜÙ|ÙG#†2†{"ûÌȸnx–¶jíu?nýÓÒ‘Ê@kYÙèúŽÛö|ê©SÎ~ùÍÏž[|ÙŽÙ‹³M‘몱nöæ«'>ýÕÜ‚IÏí­Ï46,õ/cÆ´ÞúÆUW®¹ràø°fî K{äxíï§oxfîm×üœÑ»ÍŽsŒ×e6î“ÅFF{#»ñ¤hó³1IV`5}xïë7ðþ«ÝK×½¥ì£µ"Añ…ÔNÕ,Ñž'ތعa_ŠËÑF¢ŽO£‹KûÄ#ÒE‹P±þCvÌLÑ^Ù8ÛSB?ô7‰xbô-Ç9Û1µ¢UüMWâÝóöOÚ»÷Â5F_µ€Œ±åž<éÏ6ãž»äá¶ùóçÏŸÜøÀ’n¼ï3†€t"nwüß%ËVÐÔ¸¿ÓË—_B5C,åÇÈFß±qÿ|•A[t³s¨èIêêÕ2¼ý6%TÕ;^x]9v«qgØ3gõ^åúë³gïûÕ·'à …›²)o8Bí; ZKüŽ‚ñ·üáçìQóÓŠxˆ…ñ ¬›ûäŠùW¿lL™²åƒ{¬NŸ¦t¨Ê=Ùæn*{ÖróÍuëÜ7¯’«Ü~w/„²lkz-é¦ëœÖI^¯’éììÛøýWFù‡¯N©³5©à›ÚÖ$““Ò‰+t×9ì’Ód¦þmL^ê±ii¡‘ßœ{é¦)õ{™…å‡5´º“ò¾ßuqMIýz5¨Ôê‘ÿó<ÚœA^i^üð¿?ܪš£bOöÞP0rSu-nÏÀõG]b¿ãÖų_ýÄ­¼Àù¡MAIêE©ÚG¿ïÕNFQñšk_ýÓüá×Ï(üô'\¤Ï‰VÛj·em:!­lËÛwMÜFqäÇ mJÃ$äüºdÐkÿ[wâÏ·Ÿm:ÌÀ§=õ‹ÉCŒ<î Í8ö$¶mÅÜdà+v³·’9²‘ÓäàU®žluÿzȤäeÃv°O$žÓqˆ¥2$y¼÷-=õÏ“Ï?ÿ™Š"í5Ê"˯˧*I®œòÈ?v«]t.?TÐÝǰ¯ÿ ‹¼nù£&hqŒ¸ó®÷*š´×a[d:Ìbåդ̬+nþòW„ ’#/ÞÀêyƒÔ×N.H)Ô¡}œ<ÁÇ.´€‚8Øù§Avʤe•½þ¤ÑõÂx¿wCºø:ÒuxHwþ6ÇØŸ¾[:*ÎÓóå¥".¾Â‰n¤À§1âU‰úÊÆÙú=î{»×¾·Ó•h#û,âÄýÿ¥¶£¾ëS”ÊLþÝÚünr׃M0†>Ø æ½÷¨ªî \çoRl§ßþnß_~I 5 Üed'„W~ÛeeØê j¦Á]ÃHVÏ»ñõ×¥Ïß`IÕ:^¤» í2Ï{~æ=ú¬é'ÜØº}»£nh’KÏôF¦]ŸÂy‡‰aŘ4tö†ÛvÝ^óõ¬tOKЬHËZPäh¹m÷¥ŸN»äÍwos¹‘Ü~ŒEʰ;•Ý+Æ4¬[“4rT“rIÀ²§Qœ)+6‹£uÓæ'^¾ê…½­& ´q«OŽ¿¬ùÚ+¯Í¼¦¢ÕÕy@³š;nö›ëwÝýÐ2_Zø=ȬîhSãË+XöÒE¹,-dÞÓ½Û8Oªe£®Ê7R‚±2´O2|ò'ÿ ~2: Qy£>eôÒw”Ö‡äÔgD Os†¾ˆö«ÒCŽà³iFdÿ6Éá‡Çàx{Þ÷’ž¾›êÝÖÛ§…Á4FvŒVñ·9ÚÆ#¾ß¹?‡¾tTœ)'þ-G;؈£‹QÊÜÈã4FL±Gç=q.cÐ{KÞwÒóꑈŸE;'}79Ýi~¦ap˜.¨zò¤?gpï)ÆaÖÔ´ÿh¯¼Ò6gFEಶÿ«‰1@Xßߢqïç5˜ê܈ î;æõ;+àÛo‰äÐLƒ»ªLCŒüòþû-3³¶aI˜¼÷x†8%þú—ÅVÿ=ü§Ñ®Ñ|Ë)^óz»þÓ–%/Ï®~ÞüÞ ¶Nµ9Ú‚œlhhx¥à¡¹³xòžO펰„;Ô¦{äl‡M'!Vè. Ÿ“ßM±Úö´„#c±¦:-ÎÖÎË}å¶ksZ…dV ¸mü©Y?,ûlëùiù­Ióøeб‚?•Ø l€ÿ|³09oScÀi:Ì휚ãÛ¾í Jßµ&—´M*R•?-IåKª.™ÿ¬{þŽ”T%ÕÙ3ÛtlzaëÓ›ÿ}~¬¢\ÿQÄ#׸nù0ÛÿéË‚-5švªé§<"5·é­/IÞ? ¤›ŸI]ÍËP²ý…kò‡¬«ò›Ÿ`,3¬¥¤<ð÷Œ cBïÆOòØÍf† ¦ì³‚ïýû©Ï cØÛŒÞ¢E¤Z–äÍ€g=--M†µÕ‰Ërʬñ¬A1)Èé¹ôàSAÿg±Ç$ÙÎÎç›äü³¤IŒE5.ä+k³¦ý³ÄŸmÌœ›\ÉôÆr¢üDæÜ¼Ô'±ülÍchÿÞß½ÕR£5GøÛmãÚ¤Dmµç„÷!DÉŸÄyµÿ–ã^A6z_ù¾ËˆñE¦8{ÞBÏ–¾+Éèñ°^OÃÝg{s|-ãßÓž_*wcË=yÒD î†1ÑKJ0Üq‡åüó5úd›­Ãt—ĵµÈë¯ ’ÎÈ K©` ”ilÜH°Ät³TRK0}^V†çæo¥²jè6å"…. ÿ·ÄoœûÃ1¶«W©ØššFÁËFtÞZ‹6ïXÊ‹÷þÝ7àÝFDÎ.sž‰tylúÃooüݵ¸ä„’±v»æ–;ÜÚì)´[YrMѾÖÍ6Û•Uÿw³œW EvŒá,Éæ –ŸâL¶l¬Ã[(C¦s„÷¯Go×äwKsÒSŒ›IÉu·U„¥äÿ){õÔ´ür¦e›ŽI¶Ÿ–b¼µ»øù’Ó]i•¡°I$âܶϘæ¸ëîkv>5³*ÃÉÓ¤ÈO²¤ù¹)äQ+°@ç[{L[jõ¿ÿ%Æ$÷œÔtõ–bzÉHp Ù‘wÙ€G½ü}±æ3YV¶½ ~éhž+…oëÑGÁØ@Ã{LšvÚxäýY£«‘¢aLèë´*ƒÆº9[8B´ #݈¼«ÝD‡ïÇ»Â|ôÅ™†»Ñþ/Nño9΃û.#Æ9Ùg´ŠáÌ>L½=ÎÝq†æ>,+‰ÿ„G¿²í O/2«D îœ#„YI Þ·=ñ„eåÊp«Š(*uxƒ0¬öPs3úê+:½¨”Pƒ3KĦdꤘ¶gófòí·„af˜½Äš&SkhoÓ†]»Zgý-•TC—ÛÀÜëúÀ«uikŸaýKµVaçgEuI8gø/§&}ÓŽÜÃ6Ú ‚ùëï™AÑK§ ¯c·3OR‡‰m‡s˜Sæî’œÎãµ›ox‚9-GþZËjs„¬ ¿Ù1Å™ýY­bÞ¿? MJ³Â–-ÆÇƒ$M‡uOsÈW°éEíton«Íj›<ÆÄêBÔwòÜi Ø0/I ÿéø!p!\-ÿï“BR§+$½xË ù¾îÅýo±ÂزŒc³@×lH™±hÔëŸdËÜ´T¶¾r_ÚV‹-V=W½t:!^0YÇ´çZS&äêT©ßcƒ“µÅÇ8Hž¾°óO9÷†B÷wùDŒeû|ßwG{Œó nX ÆënrV쑵lúÑéÍÏùyvLèk1×=øu÷"oŒ9òö¢m<2ãö8ptoñùÞÝrœg2ÖìiŸeÄx?^ˆïeíÓ›SãÝp¯7Z‰¢ïªJA|G{äæö„ îØ%%øª«lm‹ù˜Cx‡ fÆÁêÒJKñúõdpÑ6JtÎ#c±dµ yE{6o&7†¹Ùy@×-’5¸×Ø5Í[¨¬FĦP˜ã“œw]7 É—g´Î•S¿©×â=«ŸdŸí/ÈÜ™Ún#óÝÂ5ëKZÿñÛ­å^§ÌìŽ!Õ… ]JJ±ºõ¶Ò ik?ÆYÙÕÈysž¦ÛÚˆòáC×¥fmm GNÉïßV‹ Ž|•ãzS7HïVîrT2¸jM’âMÓ]vó;,9O–Jr¬ÝòÃåI)«l^~c“òpÚÎ?}:–½Ô¨³uĨϷñ0Ö0V8àĆ¿ Ìå9ZÔŒ˜dL,¢0ãÓ'3Ò Ë8>æ³ôÐ}¶(•9=äQ®Äúœ._n5tOŠQl]šÔŸÕã1S$”¤™45j/]¹t( ¬‰÷¾Õó›ã«&§ÇQ¤‡ !"ãöý” yó4T[òi@‡ò€Ú´ÒRüÕW49}‘ Ä"K¥m²`îͪþôS:8£әɋlèVÙ®™›F¾ûnŸ²›Ê‘›ªfƒ[Ïû0÷Žà=/èø’ëÝé[šóéóÎRÕ3Æ¥p×j@æ3U[4&‰÷ñK«Ï”v~·ÄAÁE;TH<݃ ¼6›.?ã†gÙœ¿¬e¹8MŠlP“äʵیu³¿/?=%§RÓMš¸mѱ+ý£‚!_Ö+½\¹+[&y °ùÇL;¤ëQï¨Uìó?{Λëôhv[ÔŒhW~Wtœ2vîûMŠùEÈaW¥Èð«w¦ У,穆Ó'?71»ë =U=‡ó¨÷ö„aŒ ^Šc ä÷›wZL EÚ‚$îb̼Xë¦Ïñù6ȱ‡ =Ô½šòÞÕ>Nuo®º%¾èmã‘ß8â¬?‰sª¸âßrÜ} £¦°Ãžã}Y{ýœº^o´Ò¯ÅwGÈÁšI¤àÎBØøî;òàƒAÖ­ ¹’;/œd`‰•–⯾"ØQF Cº[%;Åàr¶~û-ž9¸œcf˜wàvɦ´[ȦMMŽ*IÒ;7Nöê'É‹ÑIo>~c1 þH¼©e!5²­x4†1q4FR‘BéÐ(F Â({Æ ‡}Õû<l‘Ê8´ê»6Ã׉çÿ›ÍA2ŒÈ>6[‘ÝʶVe~Úr”;·…Âh»Ô¨XsR6¥Ž-WcÞlÚ ^˜ìM…QÕ/ñX¥&!#3}Ôž/ì·“»,c£ SÕ‹/ÂÚÎyšÂúé-z>Í›~BS¹Q{X½êL^²Ó§ËqvgzHQ®lmÝÇ@û~káˆÑ>Nu/ZÅÝ^=®Rø£êOz¦×·ÜîNŽ&Þ—µÏÎvüâü½=ì×B½¢woQHD‰Ü1ÂFéw©©èÚµªäèÜ Æàˆõ9úhÃG*1eEN;dAœZÂeedRn`Ý4¸#î­*òØé'Ÿ´Ž´QYG(2]IÚ§験þ6öNvÍ÷º;£ž±®;QPËF HÆv)jB­áƒœ ¿÷­E{ v&™õ(l5÷l»ñ/uwkÙiÿ;–‚Þ©‡‰pH°§2÷pºÒ‹Õ¤‰{›æI+Øë, I–¨=FºÇeŒH `Ü;M:ø¤=DG¹·h;J“eHŽY•V/ŸB¶¨ÇrxéxPQ>&†IÛÍöB,/c¤ÒbI}±!ªþÐÿ1†îÍU÷n5mÏGüsÀ}·å8ÏäÏV+Õ q¾¬ýüWúÈs'ò8%Tp70& ýôšIëÖé™Ì¸sà¶o'“&éK¥ ÓÈ´-[lA˜’Œ 6,©M3L‚»„\²E³«Vòí·áB·$EΦÆðdìüzy ùÛ†'C²3ËGÉ!„0·vÚ@©<²¸åà>h3ѱÒì­ÓR·¶š]]ø5B3Kv|OÎ(}Ü! é&¥Ò.žç"°¯2«^/Kr£$ˆv9Êu¨ód€7zG÷0–—8¹§UUKíDÙ¼hï{Ùb©ëê%'rw~ì6Û‡DÇŽÄà骖šÐñ…)p/7y„þ©?ϰBwg”ã,ø‰–eã¿Zˆ³’§ïæ€ãßr¼g²—3Äù²Á7A ýS"wÎ Â:jjúÎ;úñÇsÝè¼â)į®FÇLTÂN…&“N¥2VE Ë÷ßû†%Uá(3îV’$[ô¤f7/+Á$26)ƒ‘Ô%xVëC=þÝ‘¬Jò!¬ÖŽô9é€)m€[?q¬“Ov¾ìTöøÌn{ j’ÃZ™y;jô?æ9ˆÍìVHĽ^ÍÆ^¹r[¦ÄÝf d¶¡òpk®2ƒÍè¢äºöiö”q%jkj€}r¶ƒv}`pÄy¬Ý c”¡Ï¥lXoïfïÈÕfæ×õcbKfS 0KéTÝ$¿Ýk¿Ø^ïÎwvo®:Σˆ–eã¿Zˆ»Aa_ÍÇ¿å8Ïdßu®ì¹¸_Öþ{Â)‘‚;cãý3îÒºuÁ“æêº¢uê¿npàˆÛl0cà^=3•.‘È´M‰KB´$#¿_©/ÇX3˜É©°H^ÙÂ2š‡í:Ê+s ‘¸•š¬’ôE磤º¡OìzªÕî9„(i#Ãá[K‰>`òјËÇþ'ÊBºIGE³¤Úkåÿ|óŸ³3ˆ_ÓNì<†s›àsîN®ÏÄyÔÏ0Ò‘0gÌd °¬ŒtF¤Ñ1Æ0V4”#˜ò}“µœæ€`ðÿéz/—ôôÆF„Ã×w¾)"‚Í›Ãe¹·—U„„ÐóÜÖ»SøÝ›«Ž³è6Z–íõÊ–¾ûX#þ-÷ð†Ýþ ΗµçŸ‚pH)¸Ȱý3îëÖ}½(GâÈdÆÇh÷¶wkOòPÂ-$²ñ•’‚°”†jk[üåˆê†ar*ì¶dYb6Á–þ‚ ]¦Ì"™ôZ1Œ£€þÆMy7ºþæ±q·qhsÀŠrEŒšoÎm>žYuŠß•TÒLz\è†]v5¯ôXã¿OÚ ¼•!KÊÎŒäou†cÜ™bçY¡6f5K·q2<ÏŽœ,VU:ç^ÄztmP‹÷ßþ‰±\Eù}—à c(cÃCü„#^ïN÷i-u¼·Fɲñ_-öÂñø·ÜÃvûƒ8÷­?h ‘)¸3F11xKùþ{ž–ömz9âLïÔ]çÀ1 æfTQ¶$B¸Fw­f$£ÚÚf¥ÅtÆ]’Òe‰ûòw§ûhØ-Qnµ˜¿obm±¥¸b^ú³Y€$ž×‡ÛŽ1Ž52²«4Ý$p#pÙ’}šýÉS-6ª-޶€NœÖ½)ö7›mä ž—¨wÑ,¯{œFq6€[I÷º)Zß´>ìˆßÿÑáÞAèwzwÚ8Îz†~~£aœE5}W¼ÿ–ûùÍ ½¨?h ‘)¸sŽ1bÀ>ºv­~≛È&CïT*Ã8âÀQs3®¬4h %\¶DÖ·H`— Ýkk›”L5ÓwÉ’i¡¼¡5c Ùb÷åI„[¢wM›¿2?­>qÆ2zåx°ksÇ[9ÎkÁØd¾ŸàdoºïÙŠæ  ¦m#!MJ²V»‡×„Y´&îŒey;õñ½°ß¸  u¹ì¨Š‹ÒR€÷ÍŃ B4}7£]ôúÕBßoˆ²Îúó‡Âɤfº?XµjUçorF0QC¡ú”uß„î½wùõHtlç›JÀûƒ;ð$ŠX:å]N)€¦ØQKm34b’˘ɩ°¢4BC‹«ï`Íc)á’d> ¬ësÇ ú?þ:ï7,ÔëgÕ0ŽžJè«™ÎM.0É$6mïqUÀFÄX GÑ夤zK¾Ï ãºx>îHaÔî´ÆŠ8—»\ÐTf#2_utî$B¿gúnÊíñô«Üãq»ûnº:ÚUA¯_-ô]ñFü[îÓ3)¿dý4¸¯\¹òÀ×ÿp‚1 ¶T⪪и‘»È.À“:¯xj0ÄCÍ͸¢ÂP %̉Թb[’4M"¥¥Íy6L5fV*c…dCK³MÁ%ª/S& I©Ð©8gÿój Ç9ßlG/¯8 ÀX¾¨¥ÐŽÔ|P; Í1²-程blDgö$O=ÉÁ ŠýtšvªaLéá>›b,¿µµ¢Ëaný(M~³¨vAèÏÌßÀÍô«Ô}Ü!$Z–?ãºÝžÃ»ÜOüZ"µ BI¬RЉÜ·[›7oÙ´ÀX5qGÈh«q×^Š’ÎÁ1®*+ó²Ic†É5ŒÌ¼v~?§¨6Üê’1È(j5›¦-8’ƒ¼O>I4Œ£sI˜“¹j™æÉVcRbÔɀ˖ìs&s§1<ös…BêzÔ¾ò?̆æq»7æêK‚ ‰%Z–=„ÂñÃݪ%þ -QT#}$‘‚;pŠújÚ Ügòl šéŒ; 57·*°/MB@%“w1SUU…ò¬„jŒ›~ø`wp­ù@C­²ģΧkÚ‚á¨a€ÑEßîî‘õYƒA–ͪç]ǽV¡$Xp'˜å 6oÞF²qw")¬w*qa!l ÚÚG˜û݃Ôi¹SЀqŸRÎÄ„êܬÆs»AóA ú$…Çè“(36 Ô“CŒF×Îçr®aÒÝÉrDZ4C[{ §ãT­asý£þ€s®Oã<ëpïˆ ¿,}7£]ĵÐϛނð3H¤àŽ€"Ÿ{6‘ME` ¤3ÓR0PUeý°4Þê”(‹l :£…7©)@¨ÎÍgÜ‘ÊYk.öÏñéº öz:Àšpøöî]l†1!ç&Ë?qîÁ¸±«: Rqñ,Ìúp€@àuÆ~!í á$¢xœÉ{áy㋼}ÚÚ/ÚUAüW ÔcQ4I„>’HÁ@"„©¨Eu7Ù‚êMû¯3†Öƒ-•uƒûrýWAB"w”®¢ÖMdÓ$c*K²uÆ]mªÏ³…4&p³ÙtGJÓÐ Io î&áT[¬¨1Ü¢ðÞ?¨Ÿe{×DḠBb=AH¤àޱŒ07Ù4gòÒIVMfÜFX€¿!ƒ†tC0-18¬ÔÜ{“E•(50Ü­–f¨³`¹YíTOŸ@džî,ïpïˆ Â~î׸‹IhA~Q*¸ƒD0cZp#ÙXÌm¼t ·ª`^*£H¸5•é(¤EÙšÁÇj ´Ø‚„PFyñºfP›½%Ôœ†-M*OààιÛ’K4G¡ßèùrB¿¨Iè#£[¥ =‘HÁ Š1gj¸„”äBÊ¢qn6ãNŒ€UyBkQê[tˆ(õ¨:9äÁ”d>ã®3Éjõ77#–ÕHìànfa],›*‚ ôO¢9º ‰Ü1’1áaµ¥Ø(&dWk]>•4èÔ½mÆÝ_˜¦:‚Œµ(ÓäGˆ¨~\ã ¦Ê6ïóh0Y¶}ù’µEKäRÎíŒ1“µWAA„þ/‘‚;Å2Æ\UÅF1Æ»jÂ)¦ '1†1Ñëï½M'Í@C3ßšÁ0"j×Z/% cóRV‹#Ô Ž¤_çÅž cŽ¢IDAT95î‚ $€Þ-^?"[. ‚ð ”HI” cŽTmœ1ã]ÕÜF‰(2¸s†1Ô¨ã@Ôw†QTÔ()^B9¥6ÓaÙ¨Cibé’Ð:ÕÓ'Ÿï&nN¡ßˆ±hï¯mÅÅå‡ ‰Üe,a̱Â'²|ð§T¥ÁA‘c8Ç*ná¨hЈRßb0„$Õ@-XsÌ%%¸ƒCvªµI–€a$vpAèWh)Ðþàȸü¡')¸#, ’f ˆ•S5ŒcjPÜÛJeÐÂ)–‚z”›Sǘ¨¦¸0å”Ú£<­C²ëÕ,–Ñ©,GAA~‰Ü)•1â—.Çx'/Pž„wšqŒ‰áÇuÙz‘Ñ Ó † U …ƒI”p‚¦Ã0qS›^aE’f\wA„î Az"¡‚;±b šÆ1ÞÅK‡•ØdŒ:õ_çŒ`l„QsŽ?™J=J© ã˜PUBJHq ˜D îØ+YY$K˜1“…œA„8‰††‚ =‘XÁ]ƈk:Âx'ìP `¥!dR›Ž11Ôœîw9mÆ1Œ©æ ¿â „â4Fh2µ°z $‹ÊÁ¼×» ‚Ð bÝSA„CÒOk?V­ZÕù›µ4Ùm”eìSD "7çCC¾T>–Æ0˜Í¹3F0U½!{@±„ØÁ¬q$7±  HVÀ<Ü ‚ ˜¾›úE­{*‚Ðsý4¸¯\¹òÀ×þ`bá`¼“—'5´¥’]`tx,çcPȰKr½Á˜5ƒáIÏÙ}ªSÂ@ˆË4¸KÜ#ÉÀ™XuÜ©,GAˆ`ú.‚ ô\"•Ê`l%˜ƒ±¾&L÷˜0ÔiÆ€`b`Mwú픆7?FÎ(¥ÚÀ@V($ „›¯œ*q·L‡|Ô¢#d>FAèÏÏ?CQ$‚@âæí ­î‚ *¸ƒL4MÃ帶 É)uIˆsY¾‚Řk: I„G)•A2¡L 'ØOb,"«plq7JÄŒ» B"j}ÜA8"$RpÇ SUÑ›ó9©ämtb£óŒ;F"\Ó¡Uwa™E[î”`V\Xòë<ÖóªœÈÞVs‰‹®2‚ ‚ Âá‘HÁ€=®Ë\µ€ÓšTN;F2ÁL×Q³ê ƒ(Á !<¬$Ù§rãY5F-^¿ŒAî4»/‚ ‚ ?D îœ  jånÛÇyª?ÌMê×1–᪎}š K #ó%Q1²`ÊüŠ‹H~=æóê\¦ÞD» ‚ ‚pØ$Rpo›q× ¥j§µÀ“C*˜,wJ°D0hme2¥!ó%Q1²bÂýJ¦Åšq7¸ Þ°€›]'‚ ‚ ÂÏ ±‚;¥W€»²YÉ :˜Ü-J°„0× â3(¦óir„¬„‚_K¦R v»Vpk6Ž¢­®*‚ ‚ }+±‚;0ÂÕ™ÈUÕ`¤ÃìnQBeŒ¹ªË>F å›—Ê l%„·jù 1kÜr€[3î‚ ýXÂI„_” î#¡êpÔÖódZÊF‚yX·Á„lÞÃcÁ<` JCzÌàȆ˜qAèWâl ïË9 ‚pDH´àÎH°Ú…lÈÍ Oî<aa‡­!0ŒÍkÜ q A„† ó<`wpqÎÍ[ ‚ ýYK¯.ç$‚p¸D]uèðZµj•é÷ NÃÕ ò7JvFxJç1¨mÆ=ìÒp˜Dx”®2ØFr$IáØ¥2ˆ;‰!àýöt ‚ ôÑÞÀA„ê§ItåÊ•¾nÿ7Ààˆ Tס|G½l5d#­óc1¶ Á°CG %@y”®2ØN8ø0O¦ ‹9ãŽÁ)Û@ÙyFAhí •`ÁÝàb«ä®ó"ÌMÛAb;ÆRóAW$ÑnN%`Át¦R©‹à.s•€ÎÄ„» ÂÏD4hAè,Á‚;ã€@¡µ`8Ý€L‚;ÁŒ@a€´pŒàNÁF\Å’]w¯#ÝjÞ^Aèuq6h“Ç-ú¸ ‚p$H°ànp„Qj!lovan^ãÎ%Œ@Su0üæÍ× ³RŒ©DÒxÌZÄv=f¸Aú­æÑÇ]„#A‚wÆBª^ »ß‰tóR Ý0H’é¦XH[p·è±ƒ;çv€žh7ò ‚ ‚ G’ î‚U¾/Ô” 2œ›ÜxJ¸Œhº†˜ßÂçæÁƒE&’ÞUw»î‚ ‚ Âa”`ÁqD@“k–0·šŽÙ?ãÎtÂ2‚h¥2’ÌKA,™‡û6œÛ¬bÆ]AA8¬,¸¬Ð†%›j`¾$*#P™NY[©ŒypçœPF‚DÒy”ršŸ8,Àu5î‚ ý‹Ç-šÏ‚ð ’`ÁqDæ1ôt¤›ÕÉá2P‘.Ax´RIÀjˆÈFôYyÎmMÜœ*‚Ðψ¥XAøEI°àÎ9JcJ¡«y93k)?•ÊhX§¤¢ÝœÚÜ‘Â2C]wY”Ê‚ ô˜[L ‚ ô@¢w†0Òòìõàbˆ›ÿ ëâ×yôMq*`=D$Èóiehœ>¹G».‚ð‹×r˜&È=ÑÇ]„#A‚wÆ1BZŽ¥Û5Ì“MÇ´¯kT±H£è£ÖCHb¨‹àœK$欼 ‚Ðo57‹>î‚  ,¸sŽÖÓI=µè”§DE( …$) Ç î±0¡ yƒšv$€›AA„¾•`ÁqŒˆžŠeªÉ<-Ê(B ¬È–`Ìà:0å]θЄ;W‚ ‚ ‘$ÁÂ(爎5†dºl*´M¥H•äÎc HB!L9ƶ®ž‹wAAá0J°àÎ8BØ0lµ© ñ(]eÚfÜRˆ5Ìbθ$Ä”£®ƒ»h)#‚ ‚ Ný4®Zµ*ÊO0&zØÖ”4ZpçœÜ&r¸‹wެ4ˆ) ÔEpçDïP#‚ ü$úø!ð¸=¢G» B„~ÜW®\yàëö'˜êKs*²D/•!€ÙÉ¢°˜ËYHD ‹›SB"¸ ‚ Ä#Úø!©]¡³~Ü£âS½Ù¡!kìRÐUìVXÌwƒ#Y "˜wqsj ð,çYÝÜgAá°r{<-ÍâJ@„„—`Á¡Tkʵ»Àˆ>ãbajS ë Ž$)Dâî†1¾›{,‚ n"µ ‚pdH´›S&’Ö˜eu€}Æl„‰MëºT††]Þœ*‚ ‚ ‡S‚wJq²WkÊmHÜu@”‡©Uã1?R`Yecè²Æ]Aè9·'ê'¥ÝÜ ÛÓ»AèÏ,¸cD©¤ûÓÛºªG­oaW°Uç\б5ƒc*+á"¸ ‚ ô¹–æ–^Þ ¸‡U„_’ î CMã·Çfp L!½«wŒ©*aQ*#‚ ‚ ôw Ü@L÷:wÆeH(Œ-:9Æ0[U‚9å"¸ ‚ ‚ ýZ¢w € æÔb¸ãƒ‚e;¸sNˆ¬R"¸ ‚ ‚ ý\ÂwÊ1»Šx¬’ Ž(V‘lêbÆXtŠG/—AA„þ ñ‚;ÂË æÉ11T"³7°ç„[5 ˆ91/‚ ‚ ‡]âwÀÜBTÊSb b€(VÄÇjà «!sÄc®Ó$‚ ‚ ‡]âwCb™ÌcÙTh›q§*–8B±ƒ;«.Äê)‚ ‚ ‡]‚w„$Câé`éòæTŠU$Ä îÀ X @wAA¡ŸK°à 1R‘Üep—Id@v÷Î…©-O¹víÚ¶‡Úü÷ ‹F+ïÅÊën3îy¹\QD§÷Í¢‘VRÖÓ¯p0¼£€>½«à¾1Ìoó£?œ½ã»ùˆ©íwè F–µÆâçŸ:θ§Èór9/¢Xéxsj>–—±,¸lòŽpúT±‘,5šÑZN‡":¥í”ò¼±\æ©L‡;ì–gcy#–; FÁ~÷ù—o>[ø—'qöÌžV'È¢‹ÖJüªÛŽy^®”yt¹95?TJe:Ð@ŸöëæÔ©>lßÙÔǪbY4ƺ­­”år™§2¯t:Z³,b%åƒØÑ€pú´o‘õÔ§~Ú÷QòhŒEÊÒ‘î;6KÑy÷<ÆÊ"Z©bõBûk08}ªXfÍRc,R‘þ©ÛŽE[i¦,uüf¥,5Š"VwF^Å2ëëly,²®¥2)ЬÑ‹èüÍJyŒ•¹w* b™õ7­=Öú—Î_›Y䩹2–²îÁ]© À~™œì2zÐAÅnË|?¿ïÿÒÃŒ{4Z͈”vËS³Ì£ÕÜöÃââÒ°›Pa•ˬeÄÏ]Ke"ŠhöV*“E+k¼• îEÄ/]Ke"ŠâPjfÑ9¸éPYd­²ã·«°ï&z+ª™œP{  î)Y¶ÜÃŒ{™7SÑyU™<5Ë㞊V3¢ËŒ{*#¥ªúpU.¸—+ÝgܳF”ÑèZ*‡Ýn`€QP¹àÞc©LÑ*R©ûª2‚;£®rÁ½ŒX‰˜ì¼S(¢ÌRçP^Æ{EtÙFAÅ‚{JyD«—R™¼L+)ë²Wj*• *Ü#²ˆ”Òán»•EËÝ»²Œh…uÜu#º ÊÜÜܶ۳ìÿ"ºÌ£GDd¢LËÝfÜ#edJeh§€>hp¿víZûñæ¿)ûé§ë]Ÿže¢ˆ•îSé 3Ó““K‹‹ûÞ"€š¨X©L«uäõëÿèº[–5ò|xýìæMóÿû?/[}mM;þò»ù¡´¬R¶éFvkêÂõ?’S|«ž«vfø z7ã^Onœ_ýŒÆ[äAøðƒ7Åß~?§ÌØì‰Ëroæ¿ÿ6Žÿ~ý¢s5ÖŸWÊ@yÉ †Ëro2€ îõ6uáÎà ±úÍËÇ|4Øùï6êú¦>øpx ©8—å^Í?øüþ˳×ïL…«ñ ðJ(/™ÁpYîÕ€p¥2ÅÔ…?œ  ögêØñöãùï¿^CjÃe¹ÏnÎÞ‹w׿·\‰WÊxÉ šËr76€ î°+ß~¿1Hmþœ Þ©g7ÏßøöâS[®FØ/†b¸à^kó.ß|¶þð/Oâìµhý˜úÝïÛ·Ì×¾±„ÝqYîÚvƒ¾«±ö¼RËKf \–»6à<{õêÕÑ£GÝJFÄæÕCÝC²;›ûnÓÒ«íÍú³'Ûu£Ër—¶tbÄÆõèj¬7¯”½3€„|4€/,,Œ‡à£¬Ü•Ê@îP‚;T€à ¸@îP‚;T@9ìÀ(›pyöþˈMßà±Í&FŽœ2ãL]¸s÷âñˆˆ—÷?0Ïþº:èÇÙë}€Ñe§†wèlêÂëg#"^Þÿë³g7W¿ øøÅ»¾ç`ÄÀ©›ìÕ«WGv3`´=»y~uÀˆˆ³×õªÁNõ-,,Œ‡wèÉ©OW'm""Î^7èT†œÜ¡런FD<¹qùÁü0@ï àÔˆàÝÌ?¸¼:ꟽ¾^,ù¹‘  àÔ‹àÍ?ø|u‚³×?=uêß×—(˜½ùl¸í  8u#¸Ckþ®FN]øÏÕ‘ß®#ÍN YUF—Ue Jw¨Á*@p€ Ü w¨Á*@p€ ({ÙéÇlµZïº)p ,//>|xll¬—»÷üñÈ‘#}· xÓ?þñƒ{÷RsíðŽ¤”zÜS;T€à ¸@î½{<›¹ý¢g bw€m=žÍ¶v”Þœæß}²<»å7~qûÌZ7Ì>~s·‘考@pØÉé[ÏSÛWWN »=m3wßis^Ü>sîÞ–ÿñêGRJ)=Šs›ß>œ‹G£×;u%¸ìÁ–ùøõYèdzٙ۷gßœƒÞ¼ïÚ®›6Í`·7nIͱ¥Ÿ^^}F{Æý­3>~ëìÛžëÅí3oNžojÆôŸ<tiãä¿xzúätDDLŸ<ýô›ç«‡øìÞ¥Gwg:uQ·¶mÓ3ìHp؃™»í©øç·¾>×NO¯~óqJ)=ºôôêo¿XÜ_¯Ïܯ¦áM›6ž»y¿M¡y͉+_=º´ö ÀYyýŒÏoÅÕéìËöãÿ~ó°[Ú¹“·Ïœ‹GoÏŸôÛ-_ÿíÅZšÿú³Î©»cÛ¶é:Üv²:ýS6]Ÿ.ž¾út5ËFDœ¾õ§™ˆˆ™/ÅÚÔtl<˜¹{w&^<üâé¥ÿZÆ'ÎrúÞ—cËÆÝY?ã‰ß~´åq;^¿u®ˆ8qå«·ÞDÄãÙ髽5‹þü›§íÇ'~ûѦŸüy-ußÛþ-AǶ½Ý3t$¸ìdKûÖ`ùx6ë0AÓ'OGÄÚ\ù½s›ÒÿóožF{ÃôÕÕP¼9жçÚÑ‹¿}뻯UæÌ>ÞøUÚ»¬[Ÿ†ŸùøR¬¿%èÝÛ=@G‚;Àî=þò^tž ß”ÄÛe53Ó—¥­o 6‡ã{ë\;:qå«öŽk•9ëû·çÈc-¯OŸ<½eãzü®lÓ3ìHpؽͱõñ—oÝKº–ì?ž‰x<»q/æôÉÓ§ONÏüéÖé{Ÿ­o|q{öö‹Õ’õIëm±©°¤gÛž+:ßœú–ç?Y¿#5ž³vŸê‰óŸœ~úÅñz›ê–"øÞ¼Ý3»<ÀA#¸ìdKû–•ÊO\ùó­Xûé—qéí§œûúÖó»31óñGí£LñÉŸ¯œˆW¾zÔÞ8ýÅÉó'"bæn»ndËÛfþtëô½s»-*Ùö\»uâÊWb­‚¦}çêÆ‘§¯ÆÚ/»+Ûô d¯^½:zôh‡=~øá‡_ÿú×ûÖ €Êz<›}vò¹%ÍØ…¿ÿýïÃöÂÂÂøøx˜q€JÜ Êa7 6fî&‹‘ð®tŸqϲlÚPž÷ZÓ}Æýý÷ß¿sçÎÒÒRM¶˜˜˜¸ti»µÄ¶Ó}U`X¬*U"¸@îP‚;T€à ¸@îP‚;T€à ¸@”±°°0ìfd?üððÛtñÿv_׆Ì%IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/curvebenchmark2.png000066400000000000000000003671111465265754400222660ustar00rootroot00000000000000‰PNG  IHDRè ?zßj pHYsÄÄ•+ IDATxœìÝy@åÿðÏ{p‰œáj^™f‡¤©e&f¥’úÕòSQ •°È‹0ýY’™i™©ùÍ´Ô”ŒRñ«–æ©àµžr³;ÇÎïåfP®]߯¿fgg‡g|ÏÇgžy†ÉÌÌ$G$I’ Š¢ÔuCêÃ0Z­–çùºnT‡-ìAððð`Y¶®R7Ìfó­[·P¸8ŒÂÂÎ!û§ïÙªˆX–U%//¯®R{,L&S]7¤^À·aKOàH Ïg‚ ¸ºº2 S·­©FÙÙÙuÝ„º× AƒºnBíQ%77÷ž:dðmXX¾îà û¤Eq¤ªîA Ã8Ø%£»oÃß8’{w0 €Aá`P¸ØîÅvMÒõŽ=WjŹØÞ:‹I»l¯¬–W…wàžS•Â=yi_·SvWéížâÖwirÕw§Ÿª²]“t:Ý€/o[w.vìô·™L&“i (¬¢UWÞ™À%¦ßB[ßU³«I¹/¹ä]ê—¬º²Z~\Þ­^wqàø6üÛ¨*]¸ïžâÖ%¼Ã–œ"[h¾ãœC—˜L¦mãJ¯:÷óæÄ€v­ˆˆ¨U»€Ä¤dk+o³k’®wlì$KŸ|Ia_ÒO_¼®¸O½üGÎÅöð%%NïXÔ¯¿«ðÝjèè¿Ýî)nnnƒVݶ.yiHÑ/z *¬”TWÞ™~‹söLluW;{wwàø6ùÛ¨·*Y¸'/¿ª[̱ÅýŠ×ô[l9Öt¶Ÿ±wOqë»té”Rk“—ö´Š…w)î“Û=¥lÏ}%>Uò¡»îÚ«”(é?y朕¥%NO`2™LÛÆ%N[Xšw,î§pzÇò¥wÑGN- é‹vQëÐß¶£€§L&Ó’Às±½œ\pÊdùü¸ò?ð.ô[œ““³etéUÉ»¾?Ô­ø?'Ý%%[[y›ò¿>ËÞ¬üy$«~¤ö~ãwuàø6úÛ¨·*W¸'ïúþP·å»ÂvO)î†ßÒ!¼KñùóPxRÿœœœœc1þÙnj5qÏ–ÑÔ-æXNNÎâ~”¼´ï Ó1Ç,œT¹O•úPÙ"£&$'%/·~àA+Ë XðV Qà€q”˜”L´kÛ—4n@ ­ür[Ùʽè#­xÐÊŠª¡À%Kïäpª¦Cë’_õésÉ6V–VôëÛ2úPxHaù¥þçQî#õá7NT•Ç·QáÊÒàÛ¨{•ã^úÜ\d÷öU4º¿¥¾_ÿÑ´j{áé·[ÌÔ~DD­Zw("OÞõý¡Ñ3-WÄ[ìV¹O÷æõ[\ªó¿F´jP¼|îÌI++³‹¢ñ5·ï¢rZ‡þ¶mÜ—jb¤Œšä¤CÅË­Zw°±²¬¢__¿þ£-¿)«å>R~ã•?p|®,Ëο €ú¡ò…»ê¹“¨[©’´[åö”œtˆV *¼ÈÝ%üPÅŸ "K[ñÇjåÚxéÎïâ2ª+U•êŸ/ _ºÓ¾Ò—˜ŠFÊ|9 †K÷Ò¿Æäs§m¬¬Ì.îàÏ£d7µû¯üãÛ¨peeökGß@ýP¹Â½UàÀn‡¾ß¥V¹*U’V²'"]r›kNNeûËú-.º3vôªA5|²nýüàâ›O““ oIU]iMñ™ÀãèË,7¥–6S¢´kRÉM®­ÚØþ¡Õ£ôÒŠ¯´¨®TUê/áÿ<ŠÔæoœ¨*Žo£Â•ªì÷Û¨{•ìqo5qæèC· DÝ=¥ïÒä~ýGÓªÂÙeJ_ûVWt¢î75¦Ûªâ9i’—N±9EѧvO)¹­­U»nݪ³~-š2qzÇây_Z‡þ¶,Tж™UW–a™ F§prÁ)Ë€ôÀ%§emÉJÛßZðåN7iWà€ ÷¨ÓuÜBÝbŽí©ÆSuà“iI%W[Ù¶DÀ‚Så*úÖ¡¿™BËí'ðö…Û–K"°‚ŸxçvO)š°‹[x·˜c{&¶¢V÷l™âfùEÞ’Sx/‚ÚÊ2…þ~ŠÿúUúÏ£X-ýÆïîÀñmT¸² {ú6ê-&33“ˆòòò4hPשNÙÙÙÞÞÞµþcwMÒ}Ô®|á^ÒÒÒjñwº{ŠÛüvÇêxîìììúñgŒo£´:þ6²³³]\\êægT«ª<9êH¥‡Ê@¥”÷Pm0TÆaÕîP™z¡Þ ©ðmX`¨ 8 •°Ì•+Wêº 5=îuݨ–«è<Ýó®£Â¯À÷Æb¨ €@á`P¸Øîv…;€@á`P¸Øîv…;€@á`P¸Øîv…;€àëºuΰ)4du QŸÈa5²gòìWû.‘¸0(*Þ²XÝpAnC½†Âê3ƒ!qcÌú )))…+üýý[öêÕã‰à€šÉÒjeØSQúž!Šr»0Ê­ÄxqЗÙ]@ØŽH²¼Ú¼ÆN4UWª¶ƒµšrÛ`H<¸q}Âmg¯>ÃÃÊO]Èm¸C*õVâÂШø’Ü#¢”””øÕ«£b6ˆˆ ›Bƒ,&–ú`ÉêÛ××®Òñn%’ Rˆ¨OKÜ._ R/oÛÒ¸°¨{FE@XdËRÊêuwÌUU?»¨-Õ“Û‰C¢V—={ÅG…Üv„Èm¸(Ü¡~2l Š/̼>‘q;,â"Gõñ¯Û†UVâÆ ãŸÈp)…ˆü›[Þ/<½,ÚfShPPPHˆ²¨ô) >ªÎO~v¨ÚrÛ²“¢sW\䨢×íùŒÜ†ªÃP¨— ³ˆ¨OdÉÅE¿€à°€'z,ÜxÙÖ‡ý‚cw×lû*”¸¿hôâð²ñ_꺱EÊê Õe_V}leÀQþñ«Sˆ(~bX@=¿ @Dõ#±-ª3·KG¸_@ðð>« ;_.\6PÉXOä6T w¨ïnO9"ò  (£ñQA¥nó!õÁà†ÄM×'Ä]¼ô÷ïÓkøµÑòj÷&•ù°e´}x˜•Úº$ÿU†½TMñI­Ô½LÖ¶,:7à v£Üí;%ì?*.¼ÙƘõ–èõï3êöÐU õÛ6¨³Ü‹µ¶‹”K¢’ ·¡ŠP¸C}WØ‘áß§e¯Cžð»³xÊu—¥¤Ä§DQ³aeö˜¸°xˢ˥*5sJJJ ¬z°™ÿE•x™œÊ¼¼#~Íý‰Ðw"euHH©Wñ«C.PQwLùTOI‰O ‰¿tûM£·oPG¹]8žHeP rªcÜ¡^ò Þç¶))ññ«£BB‚‚Bn2%FãŠÇ ö‰,¯žž%7‘ÿ(˨ÃRƒoSêÐ>‘…í›ÖÇ}¸x´}\¤õÑöÅ­6ì±d«ÛJ–}yGüžèUب — w±€ú)%á ¨tKŸ¢L/.¾~“¡žåvñØy"ÿ^O”-Ü‘ÛP(Ü¡ž Û§z'jJüêÐMUŠ·’Ðô^86Æ/ 86®lí~a}hTIÖýÀÍDD)  "òó ‹­pzËfÖ7°ôî‡x™—à_¶*/RÜ=î?jHQ¦÷(š£%á ¡>åvé)ÁÊž¨ •úË/8,68Ì`H*tSᖆą¡e§ ò /÷¤ŒÄ…Å ñóó Rt'‘µ[’üšµ,<ˆKVZUSÜ‹‡uÚ¥ `çJ´¯ŽYXÿC⦅¡¡› uÛ†RU»ŸH›}2Èm¨ ô¸C=–’R®¶öïSôL;¿'zù¯N)ì/ܰO䎰r; ‹uÁÒ“ž²:*duÉ;-Ëmë>*á¶^wë ±v›QñpL+];…,E)]æe™mU&²,`Yv²jœ† º•£"ãbKžžá[fêkS}ùÇî°ì±ÔîúŒŠ¢v§P©¹(ã×o2øõÕ§O™–Xb5e‹{ƒâ÷« §,|.lQJ—yyÇJ¦?Cþ€£ó Ž+“êDþþ}úŒþ„!·ÁA1W®\ñöö®ëf8šrϬ½Ÿxwq¸G!·¡ÞJKKkР¡Ç † )+Ÿ²:¦j³Îß™’™‚Õ'ÛÛPÿ¡p¨%·¹ÖÂ) $þËÝ· •ƒÜ†z…;@M)} ¨êÃ^«¢Ôì}"kçò.€CBnC=gcÜ£££#""ŽòÍ7Ü»W_×ͨ§œœœêº e!À*Ãv€Ûß÷÷Þ[a7­€bp€ja7IúÆíúöÕÖu+ ÊàÕÂn w„>€B€T »)Üîe(Üì w;€ÂÀ p°(Üì w;€ÂÀ p°vS¸Ër]·î ZØMáÞ³gþÍ›uݨ:8@µ°›Â}Ö¬‘‘YuÝ ¨28@µàëºꢣ£Ë¬4hËÊ•óD‘4š:iT  †ÔÓÂ=""¢xÙr˜>}a×®š›ZÁ²LŠR+m°cvS¸ß¸q`þüüºnTYÚõ?*pY®­¶Ø±zzsjttt™5‹O~å•c‚à¬ÕÖI‹ RÊøÿÍŸöòˆã¶ÜlÆ0w€ ÕÓÂ=""¢xÙrØ»÷™† Tíõ\ùOØÛ«‚—$ •¨Ý •ùè£ùQQî66HJÂì¿õÑg ß·àyYб Öš`¯ì¦p߲ūY3«ï†‡ß3æ&=ù¤)'§öZZµÂÍv€ÿ},ÏTP€°Ín w«o­\iÌÉ9têT+"zûíwBB²j¯YP‘†®Vï=µx¯îû<¦#Àl³›Â݆ߢ¢fY–G^¥Ñ¤^¼èÇà DÑÚ;….™àp„|ìÜ™ÿüóPËrBB¯ôôF-Z`v€zC’¬½Sà‘Œ¨€#î“';'%½<`ÀÏD4hÐö¸8çºn”b½p·ø?'Úçç:#Àl«§ÓAV‰FC6xìÜù$=kfL/P0Ö wK€_oî"µg¯"Àlq„w‹çž“‰ˆaêºP†õÂÝBω##ÀlsœÂꩊ wÎ,r †¶T…;Ô,³PqáÎ’Õ)#À…;Ô,³©¢Â]6qTÁ6€Âj–lª 77‹¼‚ vS¸9‚ávéÌi«`²àÍ¢™8’1ZÀ»)Ü£¢’F¦ØŸ­›®ØpÞ,H _á=¬÷8»)ÜçÌ™>w®ÑÆgÏÚͱÜS^éÿ­íטMñ zÜlª§`ŠŽŽ.³¦I“k¢H’D¼Z“ß}7cÏ6)‰žzª`ûv'W×Úh$”W>À8gÛðX³PÀèƒs¾ýÙ`M=-Ü#""Š—-瀰°Ø±c9ÕÐÿê+czú‘¤¤W‰hÒ¤ÈÈõëÝk«¥p›ò¾uÓà±oY ðÌ´Cf†•ö1óBBæ!À¬±›á%/¿ü`p°^õ­„qÞ¼Âóĸq_ò|ê¥Kvs\ï¡öÞ6|î{F$ÍkC×"Àl°›|<ØÅÚ[;sK–L¶,'$ôJO÷mÞSÐÔÛrÖÞêÜ™[¹t¬Èj$âíÁn w&OvNJzéå—·ÑàÁ?ÆÅY-ñ öÙxrêäÉÎçÿ}¶@vÍÄ7¾D€ØPOǸW‰FC6xþôSo"ú÷_…e­ví@í³Q¸k4ë’õN4kâw‹tÀ*Gèq·xᙈXÇ9 ¡6À$"«•ˆg͘ÇÀGèq€úLmNÐn2™H'‹yÜlCá5ËÆP"bDQ ­Y!<9À6îP³dÑfE.&EKŒ"mލ¸çaH8Ô,³ÍÂEAÑJ /›0TÀîP³ÌRcÜfÄð² CelÁP¨Y¶{Ü“ –cÍèq°ÍqzÜ““çX‰íÂ]ÊEV+¢Ç "vSìædg3ÖÞ}÷Ý[C‡fÑÓOäæÖb³ "§Ž›løÆµ™&F+1ü¼à¶ØMá>|øüÙ³3UßZµÊ˜–väÌ™æD4aÂì ²j·i`‹¯çežëœÈkdŽ{¦÷8€ õtŒ{ttt™5“&-éÓçmE!¦\¯Ío¿‰ ¼cY~ã/vì¹tÉ£yss-´Ê(à>^©))fkóìögº‹¤y²Ûkw¥!À¬©§…{DDDñ²å0gÎìŽÙò¡OD:qqqæÏŸADüñdZš/B ®”ðÔ+>_°àÿ‹\ഒŸKj°Án†Ê>üÚûﻫ¾êü÷ßÁƒo%¢ÁƒŒ‹s®Ý¦€-B¾›O¿ö€‰Õ‰¬fíªÑpì¦pß°ÁS¯WK«¥¾ôR_":q‚iÖŒ«Õ–€MM)6üÅ~¬Àë%–Ÿ:IB€Ø`7…{… ‰H«­ëv@’­yÍFAÐj%Ž'ó¸Øâ8…;ÔO¬$Úx×l^+q¼$`w[P¸@Íb$[]éŠI0iµ«±ýœ&@á5‹‘mVä&Á¨ÕÉ,/£ÇÀ&îP³›cÜe“ j´2ÇË"ƸØ‚Âj'Ûã.’F+³¼l³¾îP³X³­Š\1 ’F's¼‚¡269Ná~þ¼ã €#amqI£•ÞŒw›¤Ø=;cРl"êÛ7??¿®[¥p6 ÷´kF‘ÓÊô"À¾¶~aShÈê”’×}"w„TÏ®W¯6^»v,9y òÎÚµêÏÖ€ª»Û·1TfõjãCBi93Çß×(%$$ `M­îDwW¬¯X‘5~¼zšïÛ'.X0òüæ›Ëvîwé’GóæfÕ7l0ÿý·4dˆ®Kå›pï¹›g¬?€iß>±[ª™×™¾±÷u†IC€Xc7Ce8¾bEê[:±qq,ËüñdZš¯µÐ>üÖ?÷ë÷Æ„ i{ödÕT[ Ö,ÙpcŽ^á´fV““醰¡V{Ü㣂â‰ÈJÏMtt´Ï.^l»Ûç̲wwNkæø6÷ËÍš!À¬ªƒ¡2~ÁÃûPÊ%CÕ>5wî'sçºÚØ`À3iµV72D±ÐhÔÑÚµ¯<Ù¡P%wà¬Ùl#ÀyÉÄp:…ãl<`@µ’:t`¬½ËIÃiÍ,oãÖÂwÏ ~ú»“7û"ÀàÞT[=î†M¡ ‹×ÇSŸUœà.«v‹¾}ݯ_Ï?~ů¿:¹ºª_€ÛÜu€óŠÕŠœˆxYä8^á8F²Õ‰Þ·¯{æÄðq¬G€À=«¶zÜýšµ,¾³©:çp¿={þž… *鮜Wl=•—–×(,ÏVôäT&+«'w »Š?ÀaÔÚP™€°;Âjë‡Ù°?÷ ”‘Áxzb`€Ê¸Û·]¸kÍ&^Ã3ËØ|À*¥%g{™8ܳìf÷jžþñǧˆ¨kWöøqL%P8²U‘ķáˆãlîááéWNX2"ÀàžuîÛ·+ù„„"ú÷ßVƒÛš£ª ¯TP¸k4 q,k½p·øc­i÷,Ç)Ü/_®àX~ÿ] ý?˲¯ïÍAƒöìÛg7“êØ/‰x²>XF£:-16{Ü øEW!W'±ü }÷ ÀàÞä…{|¼ðñÇÓ-Ë“'n6gX6â™ÀÑÅ‹Â}÷©=}ª›¡2ûÍ­‹¦€á-#Øð7^1ç9{Íús§óàpor„½cGnåÊq–座¦ú6kf¶¶q£F觨U6 ÷Žmdi]4,Ç0²ÙF€3iiÙ:‰ÑhëqNÌn ÷”«oMê|øðСC7ÑàÁ?ÆÅ9ÙØÏµkvsÈŽAR¬îã_çL¤sÕä3C"Ùp&==¼Ò’ ÔXKê5»©b'M2$%©wÃhµ´eKÃÀÀ@"úë/¾E «ÂŽ‹Ëxæ5o®½r}6µA$Mr’zµ­%AP´Îš|–'+Ùð_¿»x6Ó[ m@WB€À½Én ÷ÈÈ￟gcƒÍD¤×[ “@[·ÞºrŇˆâã{ÀT{# <‰øO䨿'‚¢uÑç’–x³Õ‰bèÜAƒà®Hóݺp¸7ÕÓyp£££Ë¬éÜùx~¾"¤ÕÞá>·o7}ðÁ,Ëò#í×ï·}û1¡@õ*àÛò$Õ7EÑjøÑÈ6z܃‚˜F¬”Æx ¤ ~i îMvS¸¿ñ†ÇÝïäÃ}fÏnKD§O‹=äR¼þûï…~ [þ IDATï¾;sæL‹+W¼Nœ8´xq®õ}@ÕH /Õ‹r)_Y-Ëç±3o½p'¢ÖîÙ9M ŒvÕF8Ü›ì¦p¯.25hPr«,Ó† ¦… C½¼Ò5qùò7¶n%£±îšàX$†7 ²ê[r(°Z…Ïa´’w"bÓÓrï÷x­–L%G€À½äž+ÜËã8ruUNŸî`yyöl–eõúºm€ãYlTŸÀQÊ3™x¬Íf´²íwMVzFS/ÕÊ%›!ÀàžROoN½—/³îîl³gOΈ è©§ŒÛ·k\] ' ~÷ÝS§¾ŸÝÀË+}Á‚È?vœ¯ ÎI,/›Ô‹r¹@4qZA›¥è%^mTîúÜôÓÊ{ï÷ éqŠÊèß?ˆs Ô·9vŒyï=áÖ­DôöÛ3^|±äi ­[Ó’%Í~ÿýƒÍ›øaËÇ»‹Ékàv6 w©@xmŽ&›ÕˆþxºeyòäÏÍæôË—UŽë¡‡øï¿lY6õ›7÷yâ‰Â _~‘V¬øwÛ¶Dÿçš5˜” ÚH¬F´Òã~å’IäµùNœNàH¶àM³®ÉM¼¥‹œ&?ǹ|€zi=ëb>úó¯pp`ŽP¸wìÈ®\9β|à@÷ÔTßfÍÌå76ŒÍÈèñúëë‰èá‡O­[wͲÞl¦¸8ã¼y3Ú¶ý—ˆ–.}cùrdóy|§O;Â÷P;$Ž—õTõt—DN+8pÚ|‰øŒ›žªþl—ŒJIäEN³zÕØòîá|‹ñRL†æù5uªËáÃC†ÝDDƒÿguBõë=ºwŽˆ–/÷îÛ·ðVV–%­–nÞôµ¼LKófYâ­ÜÝ´{w¶ŸŸþƒÎ’£(êÛ@i2ËV¦ƒls¿Yâµ2§0¢Dü²XõgŸ2ii鬯ŸÙU`uO=É©¸@äIyI.pp`ŽP¸kµ´e‹G``?"úë/¾E [S ÆQ—.·eö̙ΠÎÞ¶m½ýöÒ>Péï!¢„å£r®]óÞµë‘îÝW žSmÇà¸$–—­L£&‘ÓIŒÀ*ñ-î³²‹´ôk&ï +sÚ†®Béw,~ù\³LMÃíË^A€€s„ÂÝbà@…ˆôú;éEéÒ…3Çÿ‹/–ÑĉíúöuRÝlóæü… C]]s‰èý÷çJRêÙ³ŽóÔ‰ÕÈV†Ê˜M¢Äiy.×™ÏIC¢útïÆËéYnÞM/’Äi%ãm…»%ÀOýÕuß©§ûuààÀì&¶† ˼û‡áýý·Ø­›HD£Få”™Ÿ¯deqD”›«Þ[CDþþÜ/¿ýtbÿþ^zIeZ-Í›ç:iÒÐü|çGuëÑCý‚,À½¬|€Kœ¦ KT pÆ$ȼN“Ã0æ‰áÅYõîTÓ•ôœînMÅÔ㜦™¯Á,_/àNc ò=œýÅäAó´6|Éȶۿv{4v©žîÅË–sÀ’%“¹ãªˆüü¸?ÿ|dÔ¨Õ–—ûöuýæ›Âé~…4šÂ•ýæòåo<ùä#GºEGwˆðºó8¢ò.³œ«^Vp“ k5N™fFÊ—ˆ7[™|¦¡˜vÕ¯iÓ+—dNKFvßþ²ÎI²ÉWç|"Ÿñ´àß¾2­ÕgÉ#g8Ø#»*³nÝŒ9sÞÍÆçŽ0gÎl"êÓ'aÁ‚‹š¢Ž°0ý¼y:Ôˆ¦LYþÎ;‚ê &..oòä˜'Ÿüƒˆ¾þúµ¯¿öÌÁµV€Š˜Yþ~?õ~Fž×¦Kœ˜+1¼dT*ã.¦]oÝøÆe'3Ç_LnY>ÀåŽs–S9ß¹.ÛðVM“IK_†»d7…ûîÝ 4¸«yw†¶lih2'¢‘#ÛYÒ×Ò£÷öÛmBCÿKDƒw8ÐEuNN”–æmY–e.5µ›ÛÝ´àž`fyVV¯ÈYQ ^£¹!²f“Èhd£Ê¬2LNŽÀê]<5™nœÄê<™ò.äêí–ªoôP†ê* ð"g’Sà`—ì¦p¯Ðµk‹³³îJD/¿\v¥§'×´©LD¾¾êÿ ¢É“7o¿nÝ"0à§O?½xW-¸7ÈomžGV0)^wK!³QbyÙ¤2T†IO¿Å{û:QÀ«{I˹h„2xzrZ­3ÂÍÀ6g¯\QýA–?u¤£¤ã§þöÈA ÷èèô¾}MD”s³Fž<©¼óÎù×^›JD œýí7õ]øúÒüù/žCDÍšu|í5Ï»j4À½ÁÌqŠ•y9I`4œ”ê,š$‰áórÕ ÷´´›äÓTQØ–ÿ(<ÇÜ>óŒ%Àudäï“ÎÜ—’ ^‘[ü¯ý_Hky¿»'ì‘#îk֘Μ9e0øÑàÁ 'LȲ¶åŋʰaÙD4wîmÏ»þøã¼·ßž3hÐ"Z´hBd¤údz²˜ððÔ×__DDÿþ{ñûï3«ó0”™å¬õ¸+&áÙÆÎ9:}ŽÄðË–f—߆IK»aöi–ÇÈMÏ›²Må\g6yÜë¢ÜüÏ®ªþ K€7v¿œ!yfŸ?ƒ{ä…{|¼fYž6íSQÌ0TŽëÖ-æõ×3'NœHD¹¹;gÍJ³¬7›ÉdRš6-ÌúFn˜ÍŠê)&66¿ÿU“'ND;v<;yr“8G£pœµ'+±¢ÀhY7"F%†—åœòΦ§_3ù´¸j–ï3Ïñr~ùטÅ.ÙéÞ^¾¦«6¼‰ûµÎmâÐX8Ø#G(Ü;t`W¯eY>xð‰´4??•çáÅÅ C†|Ñ¿ÿv"Š‹¿s§ËÕ« ±,«÷ÝÉÉ­ˆhÒ¤¸±c%Ú@÷ôtóœ±,;;ç·hqãÆ Gøj”™ã+=î:ÅÄhYWŽFY>?Ï©|€ç]LÏÐ{·¼J:?£e]ø¼ò®5 ´Ù)þm¯Øpƨäò®òMöÈbkêT—ƒ‡ñ ½úê¶åËõª›i4”—W2]Lv¶³¾hÃçžÓŒݦ_¿ÿQÏž­>×ÀرÎ<çäɉhâÄe½{‹á‰Ù0sY™UF«¬†.œî”•é"1|ð@•³’Éžîæí•—ED ϰ²\>À5fqï¦n´oékº¦úƒ,.çpy:—C?wC€€=r„Â]§£­[öîDD‰‰ÚûïWªÔ›ojþy¸eN˜áÿ7gÉ0ÉN\žzÊHD>ju†°dbb¼^zi/eg¿ðñÇxx@%p,ce¨ŒÆ,°zÊÍh{óZ#‰Õ¸¹¨Óòõô o·üìãÇ;3–LT>ÀµŠ0ãŠÛåÎÍœ3¯‘¢2w°%À³n4¼TÐ\—«G€€=r„ÂÝâÕW"ruµ:×»³³òÍ7ž;vÌ#¢¶mŸŒˆð-~+%…BB ?>—ˆfμxô¨ú%]Y¦?4=ýô"Ú¿Ÿÿ믂ê=‡dæXÆJ»Æ,0:™—½¥W‰åÅ|µÍRÓ®ûúvljøî@ ™ÕhÌR™Ÿr™'©±œmjA©z?Õ!-îâ”{­y63öÈq ÷ÊhÜXY¾¼!MêZzý‡fO™27$$Žˆ- y粓[|ñ…©sç­_~9†ˆ~ûí‰×_×Õ|“Ude1,Ξm² ñ¨çže%õY`œä¼l!ÛEfx³Ú<îì­ôÔ¦Þ>¾I×B~$gQC·íêó§¾9G m£¦ü<²“åfŒÁP~'–werÓ½½ü½’à`î­Â]•,SN=ôÐß–—íÛÿ#IŠêdð§NIƒm¶,7o~é‘Gþ=uª¶¿ÀkטÁƒÓœœb[µš7lXjRÆh@}§pŒ­w½t+ǧ ÛUfyɨR¸ërÒŒÞÞÔüds…Ñšy¹¤o¥0ÀÛþmbtn íu9—?ù¢ÊŒ–×KÆŒFžÎùùp°GvS¸ÿ}ÞÝï$+‹y÷Ý"Z»¶¤0ç8 Ö¾ýöçYYîD4aÂ/½dÖ«ÝàúòËN3f|jY^¼xJnî};ÖvìΛúÁûïÏ ]¸0$"¢¾€¥ð,c¶~sª“p½À=?Ë]fy³ ²™K~šÙÇš¥\ËÖ3:¥tán ð÷߉­Û})÷%{^’›k®« •±¸N2eù¹ëóŒp°GvS¸oÞ|zëÖª?µQ¤àà[­[/$¢;-[–VüVp°~àÀ6-Z\#¢víŸ6­êúöeGòày™ˆ¾ù&ü›o¬ÞÆZCd™ÒÒ”gžÙkyÙ£Ç~“I2m]oÍÏÇÕX¨c ÏZ›R£¬^0äz˜ Üd–3›Êî&/ n×óú¼û²uä$k¡L€ô3‘îÝÏBº&éozùå%©î–×I¦ N­HÙ߬w-¿MB€ÀÝSŸ€¥ÎEGG—Y³paè¨Q{ Ž»Ã}ÆÅI={nž6íS"Ú¾ý9Wׂ‘#gç›Yûõs?{6›ˆ´õìãÇ™‡J"¢'¼32r7¾ÓÖÜŽ£gžÑNš´tëÖ—‰(44öÑGy½^ý~Ü£GŰ0™HzúieöìÚþ?ܳÊ8ÃI²,«¸N1qÎFÅÝ•Èl®l,[ß³œ·_.]÷»Øì2§5Š8oÞ}¥ü‰Gô£¿äÍ ‹¿:ؤ™t>^«Ö°ãÇ™ÑJã‘ÁzfO÷içS‡[Yp¸{õ´Ç=¢ËšÔTžgî¸j'¢Œ ³¿JñË<_ü|¾kטW_½éîKD¯¿~#)Ie%mÜ(ݸqâÏ?;ÑÞ½½‡U¿‡µFÉ2ee5tvÎoÙòBrrk³Y½?æÔ)%"âÆÊ•/üï÷ge퉊ʨåvÀ=«|€+Ù%Õ×*§Ïå<°Œ›ÌræróLZÚMòi)ȗܳÚ±.‚Æ,” ðéSnŒVÃg8ß¼y¾E3îªÊÍ©7J©×sŠÜʉ2Ïé£oVç1WNa€ëó[6F€À¨§…{yï¿¿àý÷mMpíZÇ2~¼îóÏÈhæÌù-[êx °@Ÿ7/kâÄyï¾û!-ZôÆŒùª{HH0½óÎ<Ër@@âCþóÏZíq7›é×_… †¤§{%&ìÜx옠z¥õ‹/ ÂÂævíú§F#®\9ú»ïܲ³k³¥¥hžÔƸ‹¢H-—%»¹Ë&w™ãA¥p¿!ù´Õe'æºÑ錓¨UÄ2>øÅU&V×´ÉùN­MißÜ)M¥pOH0½3u^ãt¿&/ÝìÕµåŸuà]½õp¸vS¸ÏšÕº[7«!Ñ·¯‰ˆ‚‚rËO³y³fß>¾IeÕ*—©S·Qjê¥K ‡Ä˜Í”šª<õÔ>ËË€€DA T´gOíüù³,ËGŽ®þŠ“æ’&Cï5áÕÜš:Xë,žy¾¡”Î#ÀàØMánC|¼)&æmËò´iŸŠbFñØÇ©S³ßÿ­/¾¹gOï6m¶.Z”£º‡±cõ½{? ÑHDÔ A¯9s¬vn<ñ{äH'"zôÑT_ßZ½Ìj±|yö¼yﺹåÑÒ¥—.UŸamÆü×_ÿzÿþÑãÆ}¹n][µG€Ô Þ¬Z¸Ë‚@ZVÎöñIÕëÉÌò¬ÙT&ÀW|5&þ·>zü"F}ÀH¯ÉÕ*·Ý_4v¬¾Mk‘Ó¾ëÜÄt=ÝÅK“Yj›%À59¢$óq‹B*ðå="‚àpG(ÜÛ·g׬yݲœ˜šêãçg&¢ÔTV–³ÿóŸo,oÍœs옼|¹HD¿ýVv'cÆxÏ™“CDaa¾eß+o^¾ü–¢0D4pàÂaÃj»ÃF–)/:u:MD]»þi6›µ[d†\]sW®ûÃ/ ú­ÙÌ2˜U êc¥pó$Ñ2¦|ŸTMCQæ8E2[ ðùìáŽ)žy>—!…Ì·MÁÞµ“F`u™‹>ÈiK]®ÒE±™r©ì0÷øxóߦ°N½;ýœÞÐ+á‡Ôš9V«,þP»¿µŠÎz=Üì¯ ¼ñØ p¸#îS§ºüþû믿¾Žˆ† ùaéÒ‹>>fQtýê«1–—QQ‘W®˜¯^ý–ˆæÎ½øßÿ–t·dd0Ï>›šºšˆž}6ûâEõ§r|ÿ}Á'ŸL³,¿ýöÿ99]ùçŸZý9ކ ÓL›öÙÍ›¾D4qâÒ—_&­Ú´gC†¸,[6qÛ¶ £¼òÊÖ#’j³¥)¼YuŒ»˜'¬ÖœoúnÓ«'’;™9Þíp³òîÄ\8ëÎëÙ ‘4?~_2{FóÍš<Ó:1™ßþͶ4¦_uo–}ªlû÷ߌûO\>ïìÚälŽ›‡ݬ“šò~:ëuÃÜhþŒ™¶<ótCÒÒ^üÅ¡p×ëé‡Ü{ôèOD¿ÿ®oݺdrú7œ. 9òëž=?}ºƒN—öÙg¡Dô¿ÿ=ú(küø-z‹ˆ-?}z9Rv’ûöí¹mÛ^², ~G¶mß¾¶¼—œ,»ºævêt‚ˆFII±öŒü—_ÞºråX"zúé_7nlS«­(…ádÕwc®ÉÄèdÉlxü€¾·™cy¥ä†ÑÂöuÏ>ÝÁ5UÿÜ{?;kÓÒN~£Qñf}”Õé#«}®õ¹+íN52&|›:Rv²öí¹ÿ%>näœÿä|WOMž±N¼1ý†Ü(Uñq)ȳàòEîªÐ´_×Ýp(æ…»ÅСDDîî%#óó†ë2`À¶èèˆÅ‹§hµ&Ë@–5¿ôR‘#…ƒÔ/^TüÞ²¸+7W|üqqíÚħŸ.HK+ Ö ôGŽ ž0!ŽˆžzêÀ×_ÔÖÁ•8rDZ³æµ7Ñwß½zé’©@­J»vI?üðM›ö©›[~¾ú—5ŽaeN­Ç½ _X­1ŸS†ñ™Ü–SäÂÍJüü¶è ˆÅ‹§°™®Ê#Œ–²Òxî¶oæ}UàtýäšË»ÿ.ç•­n-ËøõKíóyç ¼$ê½Z¸ÖÁäèGŽHïMˆJç¼ÒݼÞø…oßæŸ†ræ5¹É˜—¾B€@1Ç)ÜËsvVüüĸAƒ¶<üð_¡¡±CsË “%K& m}´°kç©§4Ó¦-¶,O›öé‘#-~ø¡çêÕ}.üÏ#”ÜõÏq4{¶óÞ½/Ñãs>ê\ëÇDmÚ0Ë—O°,oÜ8ÄÝ]ã䤲ٰa.11ï8ЈFŒXxÕ¹ @D¤hzá.Ь6'GsÓ—É÷q1s,#nVàÞ[mw$44¶SÖ™›¬¯Ž²F{Óмt€Ÿøó!‰Ó¸e%·zlùññ}ÖìV>À»?.›x§µW›’³‡›± ÷6m˜Ýëû¥:ùÜtó=¾§³_óÑÈk\“,û‡o½‹€bŽ\¸‹"ýû¯kÆ™DԨѧžÚ×¼¹òÐCgˆè»ï"vì( ôI“œï»ïÑ&MÒ‰èÀasæÌi×.‰ˆž~ú×1cÖlÚT8íã?ÿÐŒ©›6=GDnnÛß{¯úsÿòeVRŸf Ð³ÏºÆÅM6l½õÖ§Ï<£–úD?ý”ß·ï/3f|BDÍ›_úñÇ–ÕÞT€JRõwSž`bu™é®N>ää¡QX†‘ ËñâOø¥×àᛟzjßiGÚ¶={5Ù[d4ËcK&õš4ÉÙM£yíëÏme?yöVüèYFÞùæ+[unNιuà§~ë˜êæ“ÑÀóäN6<¨óö RË›f߯šëp(æÈ…»FCŠÂ¾ùæ2"ÊÍumßþ//öÌ…ˆ¶msÕjo»Kÿ½÷¼ÃÂtDôÁNÛ·¿P¼~ëÖç~¸ðD²bEÞŒsºt9FDqq!»véÓÒl}ׯWáëU Ë:ôVãÆ®+WZ=£|ö™1.î¶ÑÞ½}>ÿ\ýGdd˜{õJØ¿¿}ôѬ&M2ÒÓíõwýÓOüÞ½eï7»"«Þœ*äˆ"«-ÈòjΙº)ijŒTøà¤â÷tɈø º}ûôî:Æ5-½¡Àh¥Û°ÚÔ[–9Mdö¦1÷ß¾=¨x}™ïÐâA«Ï#jàERFx﮿e¸ye¹ú<Þöïìuüª¾éÍÆ¾=:ìG€@1{Í‚JjÓ&{üøD´eË O>™áï¯þȤÜ\æ…²ßFDcƘEQóŸÿ|“˜´£qã›—/~K 2çÏßoY6õ—/{{{«ßZ”’b~þù¼©S/—UþI®ªÂÃsœœ~:y²…(ò{öœ[³FýcŠ¢ð¼déqçy‰aÔg÷>Üeöì¹§Ow ¢ –wîœëåUÛ·aݽœ¦_¿¼Í›÷ÅÅyõÕLÕgƒ@ý§pê³Ê¹¢ÈiÅ|Ÿff³—›"s,+—lf pFPNëøÉ'3œµO?- ‚“ÀjÆ’ÍrsCŠQæ5—ôü8³(Y p!S'ðÎ.DMþøçC‡ª?õ©´¼<æèQslìdËËØØ7þYýŒ2q¢þ½÷>:räQ"š<ùó Ô¯ËþúkAo""†Q~ýµI…m¨‡""²FŒøxË–þ»v=õÄ«?ü0ÛööxF @%ÔA€Ëœ™WÄòëÅ\Qd5bãff³«BË •)p³‘Ý{왘˜ðSÞÞæ¬lW‰ÑóKöå®O“xíÀÙ»ž¼~ºI“«Ï>ûËŠWÇ|¥l€3Ü$­N­I#‹éŒ“¡Ò5^ÓžwÑÕäìcviÈÜ`lø®g.û6¿©óu6å#À Ø÷¸§¬ ²X˜X ²fРôË—«öÅhtÖhD"Ú¼yðáÃ¥§K«W'Q¿~¡CyÅ[ž9£X:扨wïßNꘖæ½råØÃ‡ËÉquq)ÙaLL£¯¾šAD­[·<ØCõç®X¡Lœ¸ GýD4cÆ':Ý…C‡*xƪ‹‹’•Å<ø„ååîÝýDQ=Ðÿø#¿}ûS–ñ?íÚ%ýþ»Ê¹ˆ._6¿òÊÖS§:Ѳeo¶is¥øa„öBèâE144Öòr֬޷Úç”’B&䌙½oŸÍ¦@Dµà²YQíq—ó DN'ñ¾Í¥‘‹¬p%cÜ‹\¯1…ï8|ø±Ô[ú¤¤ÿ)'°Ú¤¿K¦Y9sFqÑäšyž’Ëcy–‰•ÓK IDAT_ÁO9ä_&À7$.áíI <Ïf§9íVù&Õt€{Ëé&'/Aãã)fØð&ܵLï&¼“O3Ý8«Ž,ˆ*<ÔdάY3"#mýýæM•.yYæÆû’ˆÆŽ]¹nÝAÈùé§g‰èÔ©6C†4,Þ, €ŸoYŽ‹ yá…Ÿ ?"ÒhÄG9ž’Rø-¥¥ÑÌ™7&NŒ"¢‹ÿY¿^%ô‰ˆa8KÅlqôh»-*èI¸u‹iÔ(ïÍ7—­X1>22jõêQDê£z’’Ìÿ÷o>ü}öÙÔ[·LªÓ„ âö–)tfÌøÄÃCkyay™™ÌÌ™ÙÁÁY‹ç׫­–23™¥K'Z^ÆÄ„›LꙞ’BS¦\ Š˜>}ø§ŸžÙ³§TZ­¸Ì)<©îF‰Óæ97ja–2…eXsÉ<î–×ÊÂöý×­AdŽïåî$Ьö»µ%Åt@_¥“yžÒ΂ç‚^Øa0øý{¥-W — pcF®¤Ón½1/ÏëTºÆ+û¼J†×t€{K©ÎÞÚ¦Íó½Ä4Î_“D·æŒ›«rƒE€@±;+ÜÂvXDö)½ºúúp¢K±¬y晽™™êO‡&¢O>ÉèÙS&¢—^Ê6 Ó+3“Ñéò,Ü£ÇþŸ~zÁÍ­°ô÷ð¸¼'!¡ðŽ™·ÞrÅ>>x–ˆnÜxlåʱƒm!¢<¹{÷Ó=Vx"‰Í8pŨQ«‰èÇŸ›6­™jcrs¥“'œ;÷ý”ÿÁƒ7wî|êÏ?+øž=<”ôtýŒŸüûo[δƒeÕµKîƒæX–-z«I­ê4aþ)<òÈËsš.\hyâ„úÅ"80§S§ù6t=w.>22Ýv;k“ÑHZ-·jÕèààMÏ?ÿó¾}Oq'Ë*[ΟŸ3bĺž=_±âõðpµGÖ ÕæÔ3uà"O¼"•p¹À$qš𯑝Kí¹¨ðJñ÷âך…Ö®?ýô‚eŠ0-Ï ¬ö¡öçJ8'+f ×ïÕ½'=W~9nР-ùœssKeÜ…Í1ë4M[®ÿ¦ë½r ™eT&ÀU1Àßm«ûª‚w/Èrób|›äyJé6ü>ñªâä—Ï6r7fÚw€¿¼éùgàÕæ®zÜFÅ«¿uwÑQŠeÍ”)Ÿwï®Q}:ôºu¦'þ¹~Ý“ˆú÷_}Á³Ïþ²oß“ýúUpù/5•mÒ¤ 22jÁ‚éÉÉ­vî|ŽHý6üŽu;w>g¹Œ»lÙÄöíÕ3îÌyܸ/-ÏiÚ´)¸C‡”³gU~׫V1=¶}òäϽ¼Ò¿þzĶmN—.Õ— ²z=ÐO>|ýÔ©ŸùùL&âÊ]²VºpAnÑâ¢åe“&× d“©¶[KDqqÙíÛ3mÚp›7W<( ÎÕf€›X^Cbù—L&‰×¤Þç~vOË9“gÇq/pbz¶ÛáiÓ>-(p!"7gEb5×=J¸#š5¼IÓë²¹ÓÌðù‘‘Qé’WâÞ€2®“ ÌzžºR%ËÉóú•½0Àj§?·àÙ†UðeoF Q¡·bÿø˜÷”Ó]=Ì^|Æ-Æ£kKõÞå3gä&âÕûýMZäxÊéöàÖO=òY{ïàÕâÎoN *›ú}"oïÀ©NÌœé¢úÖž=Â'Ÿ¼eYž>}ÑxëÊ•ÂãJJrûóÏ®DÔ¤É5—òý÷-zë•W~ܹSý²i1óõëºÙ³çQïÞ¿uï~@QTþï/Ë´v­iݺáóçÏ$¢„„žß}G¢Ú É—_vš6m±ÙÌQtt„ ø´i£r¥õÌòõ½Yü²aÃÔL•YMIN¶õç'DÄedx¾üòÇûR¯7rœÊÉ C,ËFFF;×:/Ïeܸ/›4IËÉ©íé ââò>œ’ÒôäÉV›7ÿ»eK妢°[ññò¨Q9Ó¦e ˜)ÂîÔA€çñZŽT2Íl,8mîý®tˇR–8E*à:Å4/f–‹K^£&ääZðûÑçDVóT÷’.m“‰“ ðŒ‹Ë¯çÏ3–ÏmàÚçùø2Ι$rb„ǵFíl'/)Ce¨Œ%À9~ô3Ÿ©ž[2*à¯FÏí|ØôØ‹-~´à[V¥“‡ß徿RÉgߦ ÕÖó–ñ{Ä÷tÓ·<Ä ûðÔÿjŒbÛœàõÜ®UÇÿÎûD^w °r ¶¼÷ž·µ·Ú·g×­aY>t¨[jª÷}÷™‰H’ˆa”¯¿IDýõð¨Q«ÝÝù3g":q‚ñò*鉉ÉíÚõ›;ûQ§N S§~Ö¬Ùe" H|ë­e6v=ð-Xà;fÌ"R”¾‘‘^ªíquÕ$%µ›4i ÅÆ†þôS¿=*è°IKc¼½M11áD´~ýðÿmË0*6G:]¾ÜÌÒã~õjS†a5jç”ädñþûS,7æîÚh0¨?æƒãÌëÖØ±#ˆˆfÍúH§.^¬à6¬ê2~|Ö”)†fÍt;wªŸjxžÅl2éˆè矟7ü$I¥Ã†ˆFìÐáôóÏÿüðÃùúÞLOwóö®ÕÁž&­[§,Yò¦‹Kž¯ïÍ… §¬Z%ظêšÍœ>]KßsMؽ;Ñ¢³aaÃzô˜rùÊD¿=«•—D<•+Ü“ ó¼ÐPKD>”ªðÄÉR™×)¦çÏ5jµè¡{‘ù§Ó§%©¤´Š‰ÉåÍ‚¢a>ÿ|BëÖg-ž£o°sËóe\o.PôÔö•³.'tùÎ ¥k*ác p?³á›³ÿyœý_å|ÿ×=.hZžâ;ÊrÖ܇n¥’þþCJ›„4w!K5À¯¹l`ý\òÒH–ÍĦ[™˜¡þ¸ë­\ã÷¯[[çÓùxŸnùWã†×à5 nïî¼p÷W÷åß S[[3¦NuIHx}Ô¨5D4dȶeËt–õ<ÿÿìe`TG÷ðϵõݸ{ ñ@p‚»C±+^4-ÒBR H‹·¸w Š—BB’wÙl²¾{õýpÓ& 5žöéÿ}Χ»d¸:ó›3Ç‚‚Ô|rjY™Ó_¬ Æ¥R DHNf.\Ç/^üÕ¡CcÕj+()qÙºuò°a5&Š‚Ï?×÷èq?&>Ô7<$Ý¡ÃݱcÀ€;uz”ôƒÜÞžS*…&ì€Ï>[ggWɲ–§ŠéÓ¥11+NŸ 3fì˜9ÓòKJ¢,XÏ0ÄÆv ËHMµð­iS(4;wNëÜùve¥]RRh@ÀûòkHÀ ´¾¾Çîß**rܰ¡êÆ EQ0™þþХ˭fÍžÓ4ŠXz\Š"ž‚Ãì[5ðÉw£Àb„ñ‹/VUDˆ>Š2 #hãÅ=9™0$K kÖ,ánÂ=›Þ¯peB…¬w£lí3?R¦@•‚Ây€£…lªk[UQ׎w'À[¸Æ¥;¼Šð1æ¼ àC:•„½A’U&WVŠí»¶±\á üyq¡Ì½ºý<8VÉÙ·ö‹À[OwÎÖ9ðveö#Àƒå)yœ×ÏÚîÁÆ”wü…:⪼·ê’íÿþŸ–ÿüß.>9uë0÷÷|/VD"¸pÁºuëpçŽÈϯƂa0 ……Â=®ÀÇœ4iOr2•‘aá‘#"ÐU«¾à׬YÒ¹ómŸpt,6ìÂ… 5¶“;MmÛÿæ›ÙpëVÔ„ 2‹÷ƒaèùóƒ~ú©lß>#!!ÔÙù7öÎÐj±®\é³fmÅ0À26ΜÑöïñĉ0dÈéS§,öé#š?#¼{÷ä²2Ï  ÷€ œ«kqNŽÏåË}éáQø6Zý99{Vˆ„†Âž=o¢ Ñœ Ÿ{ —k7mŠÞ»×B §ÉÖÖ¦§O[À±cÝ¿%‘0·GQÎÊJ”*šÛ´yDÔß\]Álg,øúüùA‡ݰa>ËZNÃÚ¿ßœ¢VË?õ÷?öé§ÿuÄܳÇ4l˜fþ|ME…å&B’Œ»{M’Æ_¿zõV{dJ 7a‚nüxÝ;*ÁýOþvùÎÒr ÚØPq§XëÓ ít~²â3ü•—x¯Î?™A¸yË”I“öˆ_Mi kÅë&ºFD Ms8'—kÍœH2âê\Ì9=eÊ÷h¹/«4ê¸ó÷Äó :zÄ¡-¸§ôï8QDåúù¼ ÷Ñä¼ àOcK*EöieÈÃgÞÕbûì$Ë{¬úÚ)KîMÒ„~÷+ ;CômŸ^½Ã[ûàSÓÑ!ÀËóm<+WÚy«rßp/qž‘ß®êÜA~÷ÿ+ò?€ÿÿ ÿ-‰,]>úˆkë7#^"á°–-ŸÀ‹4ëtä¨Q*°³“eg¿áþüùòׯ?èÔé!¼z•’rãF7HJ »q£CTTÍ~ýšéÝû*ìâRÒ´éëôt /A OŸ+¼Åýر„BóoÂT.çôz¤iÓ8wnpy¹#ËZ'……ÜŒÛOsæl6h‹ÛÑUT0‰ÑÖV[¶DWUYÎaEQ&;ÛwäÈ£‰aøð“..¥¯^Õ¿×·UòùM9ž[Œ‹D8G}ùå⬬FðòehHHzr²eO+Ç!¯_7++õ‹a..ožèáCª}{S‡Æï¾ûÃYö ß|cÚ´i¶«k±••zçÎOvíâø)D.ç‚0àâÅ‹–.ýòܹÁ|m½ †$A&ãNž={^»pa †YNã8²ÙÖ5—TVàbÆ%“é*\P;Rn¶©BQLî]ï|Äs¥õ½TÿÈp<ñwܢ‹²Ï­!¼‘.Ý"À=…­ÄÖY ¾8˜dÖŽˆÊ"ÀeÊbÒÎ~Êã+ÞYÙÕ";Û<‹o÷dçFÁ¼*…ÍK.ÔN_ùüÚ‘žï8’‡ë¬ÜWRŸá-´é¯Åq¸ñ¥ø•K`é$çFÚ¬ à+îæ½Ú\0ÇK–÷àÚ÷î…>}útÇŽ?\­@«err|øãü|O£aY8!êêÕÞéé™ÍX¿~ºîݵ[·¾q¹ `2±£G€²2§~ý~ä8 â8`ÎÖVŧ±¶nýX«}«ÁÆdBÖ¯7Œ©»ví÷fÌp¼|¹wxxâ”)ß¾7&ÆÂ(q&“ ¤ÄÜÜŠt:M£¨¥±Å0Øž=“>ýô›­[gwA¸ÚéaêT“ÓÙÄD–EÏœÉ?vì]Ñ23Q‹Þž¿" hmµSpu-¾ß²‰€ã£QüâEDNŽTªG o›¢ ´”åCÎÀÛ;W¥âþ´ñïO IBÿþº+’ño¿µ0›=*¨¬|×”0l˜¶iÓ}‡$%,Z¤}òä°§§’Ëxø°ñ!Ÿõèñ¯¬w¡PÚRAië÷Œ¦YñÅè¶4ÀpRkqç¾|É3"¬Nu®¸¿uƒã"ÜTà8K±8&=eOéx€ÓB¡„ÕÖ¸ˆ5ÒݶדgD{­Úš´Ð%Äb<Ì.)_ìyòJ°Ù52D›ü{nC–é8é°nçÖ|:<Ñ.ܹ,Ã"À¥¥Qf}áû…»7m¢¬¤ “åÊëNÆ"p–tQ軉Ó5[š±pŽë™¶sÇšè—"”Ýl´U'À¹ÒgöKO訹3&oûÛîIç®dv‚O¤¯áeëð÷Bò²›hØPO2ŸÔ ÿÀ›¥Å;4K†«õ;~pÇÇÿÞ"?.Æs¢rD8“ø?€ÿ§å½üÿ²ânoÏ’¤ìÙ³æ°ví¢]»¦ªÕ5ÛXº_¸ÐµK—šbÓ&½ÝÕgÏB yó˹¹^|É rV×prõ*ÛªU<Ü»ç\Xh™ÕÕ´F£à+ºÜ¹Ó±k×;wîX®é[+&“ØÞ^ AA©:Å 6 7n˜NžúäI+ˆíôä eÑÓj2Ñ(ñõÍ€yó6RÔ¯Úœ8a ¥CB˜’mAÇÌ™Û`Рó¾¾Ù 5+eËtË–-kÖì¹½½rÿþq7*,†'¾M0 Xùê«ÅÇxùrß¹s7Yû8N äÎÓ#I@õ²eã¯_LHx´aC Ìl‘Ùµk*””¸\¾ÜE ‹F,eíí•;wN€Ü\oN*Y¸%š†¾}+q|÷çŸûúëìÓ§Û(’™‰)j™¬f™îã““˜hù£¢êjkhÚ4¡¬Ì‰$…o9%ÇqHjjPy¹#˾qªTU! æçñ?·oŸ¾{·åÏ “&U R5ztùÈ‘Uï5|a”÷5ÅÆvÚ¾}†Édb1g2 +*Äb£Ÿ_&Ã`(úVΙ³¹¼ÜQ¥²5k+†½çÍÌÍfظQøâÅ»âFÒöé³íÎ6Z­ôÞ½¬Þ¼¯/Ìvvòœœ‘‘°w¯åXÕÌL´¬¬jåÊeàì\ºnÝ‚ Þe³IMÅ**Þs^]R–›kZ»vŽÓ~x¼OŸ37þû¸mÏÚÑNëk3M±8ê‹0Ͷ Ë¡ÎÖ|#ài‰afD¸zʺZ€{@ƒáœ™« pcfqøéDûvîró¼ž?oÆÚÒ"“±À%¬Á$áÜÚ”¯Sˆ%6ŒTWÓU"ó˜µ%ºuS•UøàÚo̵ŽšÒL_æ bò©aÙ®áL†E€‹´¤µ ‘¹±ÁÆ—”îd,½˷¼yaºQjmËþÊPÌ<<À0Ía×ög0sö·îÝØœùÞ¾någo¸¿!c¤ò(Ã`‡c;Àt¥ /DÛ$­Ü£yáåÛî«Í7Z5i“L&`M½TÙ?À éCåtOv QTiÞðǯ[¿J ,\íîd.û÷Ü»$7¼Gùfþàµòoø¿oøC¢TŠÖ¬Y;ßNL —J¥ááiàíwá›)äÙ3zõê%üqûö÷Ú·¿‡¢,xyå5j”]QQó–Ž¡h:îÎ6ðìY³‘#-÷cB¯—FFÆÀœ9›¯^íÞ£ÇoŒN ¡Ð”›ë ´»y³+ËZ°¸cX[#´ss+€gÏš„åP™û÷ÉÍ›gß¼Ùòò¼š4y][aÏùs‰Gܾݪº:½ºÚZ§“€§g~JJˆ\ÎýòêX•Ê–?Öh,‹”—ÿ±Þ‚¢¬ZmµmÛÌÆ©T¶(Ê1 Z-"‘Ìf¡N'›;wc÷î?;:–Ÿ>=tíZwž†B! Üœ€Þ½¯6köœ¦i‹F,<+«QLL èõR_ßâ²2 ·º|9Õ±ã¹+–·ióèáöŸ|âù›`6sB¡iòäÝ,‹&%…­^ý¹EΚLˆµµÖÉ© „B³µuµHd~GÁŽCødèÚÇ1½^œÐ”ÿyíZOŽyõ Ûºµþü±`ÞÁájn®WF†_`à™èhÍo>ÅïšÆ´yÏ8ÖTŠr,˜êß’ ál¬VY»}¹sšƒÏÑ8A‹æ\Ü»ŸÃÀC–—gÕˆ[;?ôëf/ŸÍ+‹W˜T¬ î7"³ÝÇP;ÒÚl9TÆ•*”ù¼F{±¹X°I!³¦• ~ãAnjƔÃ6N&ÖÛÚÑÊ×Éß#Àå Ýœ8gÛ¶™&[¸+Yœ„†™ÍBœbfÌßþ6€»› Fê ¯<§0i¸îùÛÞH—áÊuþxU’S³–6ñïà“~àÝáÆ I÷ÙÚ·à&tÖÛ¾°tÍçøjÐΚÛúôÿB€gýÔ¨mðÃ/Ư 3%½àM™„çm›Ýo¨õ€Ûç(Cü“}^qÈÿþçä?ðÿËŠ»Á€Ð))Á°|ùŠ;¦[YáÛ·»@y¹¶qã7‹ú€dÇŽéüqq±ë¹sƒyµÛÊJýìYD“&5#øÑ#rîܯùãÐЗ©‹ ”º}û ˜0a߀Woßþý;Pt:Yxx"Œq¢[··~Øñã«V-Û°a>LŸ¾cüxˆ¨(bÍš¥¼ŸëÞ½öiiþaa Ð4|û-·cÇtw÷B?¿ÌÍ›ç ÇÛ ~øaçï_Ó­YùöÛÙgÏ~ðâEÄøñûíí+püû˜Ìf!‚p§N ÓédÂñé>F#‚ã ¿4Òh‡PTÍû¡iœãW¯P0›Eñääøê«Åjµ‚`F,˸¸”ÄÇG@óæÏJJ¬- Î7Ì­Z=á ‚jÖìù¹s¿ñ]Çé§O[6köüƒÎòå5 Ãp(ʉÅFHI Æqºöay©ªB&N$nݪù'ŽC îÙÄbŽ ¨Q£~8xðã%KÖìÞ=Aè1cʪ«w88HŠ‹©_. Qè/ IDATwþzÿsÍš%qqäït_nÜH¶k§ûüs×°z–h8!IÁµk=e2·ÚPD" iœ÷ÉÚØT‘¤ .•jÇA8ƒAâæVTRâb0H„µ˜š99Ы—6*J³oßï5@õïOääx/ZôUrrHffÁñãÚ0 RQaÿâEÿóÌ™!CMÇøî;Áر‡øX2X¹rÙ„ Ê©S ¦N-èׯ¢vv7›—’Nboßî¼lÙÊsç×s^ÕÊØ±Õ§RR‚T*¥2!&Ʋ½­¡lßÎtîl:|ø­“Šr&“höìoFñž=“®_ïa6ÿû¸ífÏ1nÔÖWS0†â0„nKgÏ¡†Õ©*@uˆD…£fý°cÇt+;bûN7ëK  Cé7ŠU@"`IFÈB€Ëå* ¥¯ ð'0¤`ªlWi Q‰Ú©óꇹk4”]`p°ïš´Ó&7Ù¥ùÓcb<ê Š‚]XnçýíØïŽv¸*onÒ'Ylimª*·Ì»¤ÄUhmH ¡2TAYâ 7<œ½kȼ3Œ!3V¿ àk/õ߸q^»–3q?o:×"À'ŒÞ÷'¾ªdé·ÄláVV,sSÕ¸'U”¤Ñ(8Þp˜1–Ö{§Ü\µØ³ó)5£ _ç5¼Aëí(¥Ô£lë­.%îÁµYïàæŸ…áMG÷8"¡ÞfçZpOž5é–\‚“6~Ú ‹=QÙMw}ﲇ$(šú ³jÔøÑí#ý©WÿÀ?Íÿ&\ŸÆ$M*Ûcñ<"È)­Uá`íH¹¶j§~ø€OÉú¾§ìÚ"tm·Üÿb€w¬øgúýc~Ÿÿ÷M¿_$ÎÕ•úä“ï M›G3gn „†2õ·X´ÈêêթÇŸ€-[N›¶sïÞ‰pçNÇ!C.=|XÓ[»vÄĬæ¯_aaU.•â7ovݳg80îÖ­ö!!¿j¶{·`äÈ_íˆd2öÑ£6°yóœë×{`˜…PØ»W3{ö7eeN°té—ûöY¤‰Ð¼>9f3B!˜Í •êàèÑ‘Z­ÜlF,‚ƒeŠ"xkGll§êjk‹v£ýüóÕ|ÔfLL o3~·(Ë¢¥¥Î´ã•T‹FÞ­Ìûžš–¾Š?\¸0e‘ßãlýðÃ’ÔÔ»gÏvaÙ3ݺ•GE)—/O6L5p`Iía WUe#“éHR ZîZ, ÆÈåZ Í8NóŸµa3åŒF±L¦CŽïõÞžJ…Àë×è˜1…ÑÑ íñbòæÍ¿Œ{ø° kןy¿,Y²æÛoësöàA‚e9§ ¸¸sç´O>ùîÈ‘Ñ4]Ó½ ÑÝ»'ó+(X½úóþýϦ¦¥¦µn}~ôèšù@(ä(ŠÈÈð?thì±cac±kéõHz:Ío [¶D_ºô» (‹Ý±cÐ… ñ“&YlÃÛî\é3`ÀÅ-[¢ÒbL깸{0B˜µõ#Œq†âp„þe‡##ð:Ue\]©¸{-HLس÷µ™3·wÀCC™O¦P†!u,¢‹Y 8ÒÈ gÌØµeóÂiÓvíÝ;ÑÀáRZ[àÚpFãv8ÿ\'ì\…ÛfÔ_KH¥¸½¶„q!hŸv>CåÛÄéõ³º ,Ü—zmpµ¿:ü‹-ßÎõð?dfLAiÃ÷`CV‚̘‚ßÎéL µö´…¢}Y eÅ·äÇŽSgíºz­7«…©ªöBõ ½%Ñ©$WÖ¨U£õ~àÓq“ÇîV¥ÙžÈñ‡>¢c&cÆ>é¡ÓÉEá¤YõÞX› ¢€w\a*ËÇ=›˜/=9’,ßÿܶyòy ëg}Þ+Aàs›Vz¢Ñ%¾G€ÛSÊõ ¥¶ú†¯;•ľ àÔ±ÂH߬ÛÆL€>Õ"À7(øÃ¤CEÂåú‡…SkÏÀÜ£ºàî¢'NŒP2öd#Á?ðv¦ñ>‘·Ã»øS®æü†§bYh†>,oãf~ÙNô<iä¯e±™;[äN¾ ½áÒ­ñüã’>è{vçÎiŸLyÀ¿\µôL‹ß4mî•Ã}åŽý§Nœ¤ºt¼u{Ug?$ó¯üoTÜ OÍêËËÆÇËiÒÒ䉬¬ÔíÚ=HN¦-jÃR)wé’Uß¾ÝàôidÝºÏø€é… ×ïÚ5¡ÿšõÁD` _“&90jÔ™ãÇ-âÐ43hÐù®]oògð÷Ï(/GùU5EA«VW¯> Üêᦧ×ÜH:ˆ7´ýõ‚ž=¯XPÔjèÙó¿dïßÿM3 <½7n˜wíšÂ[ý5…§g._”€eA(4Ï»éÖ­.?þØoÙ²•8NóËÖæÍŸ¥¤„Ô&˜#gm]žpåJ[[APݺíKI ìÖmO‡pø0^w› s›Í÷>l5rä×4 …fÞ]+—kåû+IÇ¡üãÿªÓÉæÍÛøñÇïÝk SsZ’¸º@dd|hèKÞ0Ððy ­ª²™>}8;—æ––þªc›kTPA¸¶möèqýÈ‘ÑB¡ǹÜÜ7-/]"Ö¯S7ÓhŠbYH©TŸ•ÕH*Õ7ü(, "ÂôôèÖíFa¡;IⵋÃ?”fdøÏšµõáö^^¹µn;ŽC8®ÆùÈ»Ë ÍæÍs  EË—¯à›EFÆ7köìÌâ—÷Œ-_¾":zËüùæÏßÀ¿Æ?|£FL™"¬;h4H|<–‘!8}z¨¿Æöí3hÚ8dÈ‘¸¸¹¹Þ=6¬ú—/»@E…ŠÖ”$­üµMÐ`@d2=ï^Ð륇4 ‘4›ajRù*LÆÀ¯¹ßºµªS§êí‡VEGûÑGÇÂÃO¶q£$&¾ù.ß~K¤¤¼ù¹oŸ@¥BnÜè––Ö„ÿ—åËWh4oÖâ/’~~Ô7ûô1 (+™Š‹]-—kk‰‡ àë›íàPñÝwŸ„†¾$IÁW_-æÿ´fÍ’ÌL†ï3…¤§gþþýãu:вüùùç_-ý««yh7þç™3C„aˆ}Ó¬I“_mûPXˆ;&0ÕgÎ iÝúñÏ?wúT–œŒmÚ$0×Y11 ‡aŒF£¸v­gNŽвµÓÕß* àÎ> à]ýég(G™V¿lºDjwàG’¨ÀÙ¹´àt š!P´Ž÷M*嬧#OŸCÖ­[¸sç4\#ctuÞ.’2 ’Ÿo ÿôÓïÇ 9! èV%°U¦×Ÿnišq6¡ŽšŒ ÿUçÏà­ŒËâànº\Ä›·ãÀW›g\3¾T„¿8ŸVïÌ v”R'¥Žýᥭý‹EB!g67HØ-~’_*q{ê0uãöy6U¬œ²6«Þ ð’³ÝJm½]õ•uî¤(;Q0B¥·59‰ÆyøCï;ñà\M^éq*•mŽ[hYà~†4›àj•ÊŽø˜¨ÃI÷ À½ERÏÃ+–GFƧm˜šçVõÓó†o„åfY7i‘×¥ç-ÛæC/ÞðþúK[ÞéØñÎó½Í|Ñìßð¡æÓ;OgYô÷ØÞô5‹GsóX ‘ö:Ö¡Ý}MószNj¥S5øÝ‡¬¼ªPÈœuIõÞž6S>7$ ƒ-‹YÉÿ÷†ù"†øòè¼}îœz+À#Ì/ž ›90&*E¸7ôÓþûÁÀÛ‹âÓ=Z&êdwPÕS÷Ž\B½w¼ùã ¿qxkôð0Ø1•3ÀûõÑ­­Z„ˆ¸-[¢ÝŽ…áIõîhWþÝ®OBC_š)á;>Þiª™ÝâÅ‘ƒ+OÂßð^úŸZW<Œs*.¡=ñ×þ·)î…§Öðæ·ÖþVÍ:UøŸ¿$Ž2{ö·`2‰Âà yKŒÀ A ܺ….]úU›6࣎͛·óôé7þ¸Ï?·?rÄ23;;Ì`@víüê5²,réRÿ ÀèÑG´Zë={ŒÍ›Ó=z˜ÛµS÷èqõæÍ®6Ì?wnð°a¨¨@õzÄÖÖpþü þ¢W®ôaY|Õ*]¿~Ôùóo1†AŸ>‚Y³vòæê3vvè€ÕËã¹z•ÈÎF[´À·onÑ"’’Â’“ýù¢‡TT8lØ0?:z ©²mÛL¸zµ·V+ ®š‡TUÙøûg (›“ãíáQ#™¾øb•‡Gž¿¿yÃe»vªÈHuI 2|¸©eKnùr*%ÅñäÉáÎÎ¥³fmí×ïǼÊã€ã–ÅXôzdÙ2Q·n7øåÌ™³A¸†ãÖlFXåß•]%Ã`µzõ*ðÉ“Vééè† X|<† œ@@<ø±»{¡@@’¤ CeFFa³f•G’UOŸ–¶hQÕ¢EÕ±cæÆéà`¤!ߟ@§“á8ÍçÀ† ósr˜gϰ­[ ½ž>R¿°Ða0¥ñò‚°0¼G dd 6’“1€â+ •”¸ ÀíÞMÍžmŽŠ‚‰Ì€z†A$CÝ•Û?Âܹä£GHÇŽ­[ßÉÈð?ujÇÑÎÎ5¶I[[в~~L¯^xPñÙ3ºe˲íÛuš[·.3ÇàíÍ-[ÆlÞlrv. KZ¾|…·w®V+gY˜5Ë8z´éùsvüxÛGÚ\¼8àÇû»êõÒU«¾ðð(0™DÂæå¡gÏ,‹ò·Ç‚C‡Æò÷pèÐXá22Ð;4 f³0/Ï ìí• ƒiµBoonâD6(Ho2Áüù¦ðpnÙ2AP“&íY»vÑìÙßnÞ<‡e1??vøpA“&ÆsçLUîî þþæ=r† Q{x -[âÑÑ‚/Ôö/ôïO>9 ƒ \›6L›6̃ï9]ìíòWníÇ0(nÐÖ×Ú ÉáofG‘HX[U†¸B¨%1a]€s‹cý+C¥€#í¥²1cØZ€—kí¤Œ®.ÀËK˨x±M@HȨÌDvb¬«Fd“•XØàîd+­2äÌ3Î ÙJ×½iÙ»îmÌ¢åªåËWŒõÃõ[ëòœšdž{VàkÅ©³E V/ÉVJÔ¾"ëW±:W¯•©Ù•VÎêf.]ZÜZ2aÞ±¥*ë|íèEsgmª8aGiœìÝÈœºwÐU'ŠÃ…Bs^¶—­·ê¼O¿+ñÏ"ËËÍ.n¾ºWunCV™9a¦4½²ÒŽ„øœ¢Ímñ‡uÞHšQ¡p²ùÜ£Gm®‹Æ›ƒ™ÏÜ—zUáäuèÁÊ~•wO™$O:ŸÒàM®-^¤¥åB½yiõšßðIʽ•áƒJKq<$P“bÍT5øîI±÷]»UlaʹÛÖ¯ä!’¼·gQŽC(ÿ;J)ekjÛó£Ó^…5ûM€OÑ}_²×eïÞ‰^XÞÑâQàÄ[Þ]ú(Á»“áò‹ÜlÆÛM,ÝåíÅ5x¸:Îf«+w¬H ® õk¡yhàVž »†WVÙ7{·Gã,œý3ÁcÂC—-[éë‘ Õ`àÐ’}j2ŠÀJ 3¥ÔøQÝÈÝ1“ß p™QçA¨œíí”Oú-‹Q}þ6€OŸ°ƒøõãÞ/ÀG“ÇÏtšXUe{«Ïñ•ûÿ:Àÿ.ŽðÑÝl_O~«>wOßìü¿Aq€Õ«©iÓöÀ… ·lYºp¡å½NëÊ!Ì÷ßO/(ð€ôô€ fŽù+‹HãÆ5d|øÐШ‘èÖ­Ý»›¬€ôt4+ õô„6móã6;Û€‹%F6;¥(†Oú€®]oººwéBÍž?uj5Ž GúîÝkß«×O••ºC‡%%êÅ‹©½{•ðè&ˆºt $\]Û.Y"€'OpÐh yszÇŽÔEE:µºCŸ>?@TÔãÇbÂqÈ•+}HRÀk={^€ŒŠzvï¾r%sî`gm]Íïm0HŠ7eá||röï¿|ù ©´ºkWÝË—¬Á`Ü¶ÍÆÃ£ ¶;>ÖA8åΟ‡ùóÍqqÀq¸ZmÎÎ¥(ÊŠÅF³YH‚p'O( 2u¦MÛuß`0äç#4ÍܽËY8uªnüø²¶mI‘ËËóâC;Ž)2Ó§—Þ¾=}zÉ AÊ‹)†’DP”BN,6úúf3 FMSÃÀ´ij—’âb×ÊJ»Æ_\–›‹Ð4—™É°,Ê;¦œÊL&ÃÐÛ¶‰Ÿ<1OŸ®êß¿äî]Æl¦A&«¶²R€Ñ(‹r93t¨vÄå•+ôÝ»îßâßÉÒ¥_Ò4Î/8AQøòKÍ Aê ´Æðã¹¹Þ,‹æäøDD¼Xµê‹àà7·¢]»˜»wŸÏ›W\ûz?ýô^‰=úÈݻڵ{°cGYxxâýûQß~;[ ÐÇÄp,‚pþÚµž‡€ÄÄðŠ ‡ÚRÄû÷ÇqzÆŒÒØØÇ“&¡Æð¥lmUF£X ÐXY©íì*U*s»vÆi=z8a‚A>E!+«‘\®Õé¸M›¨›7ÉO>©ìß¿øÁ (67ÁqZ$2º€Db@¾þºôÞ½êèè²ÂB—ýûÇ …æÖ­w`ùò MµZù˜1‡]\JÄb½£c9A˜§N­ Hþ¼Ù;Ë?®vu-^¾|…^/•H ÎÎ¥^^yF£˜$,Ë]¿Ž¼|iêÑCãç— Í›?›9sÿùôz)E‡ôêe>räÅ÷ߣü jñâ¯8aYtÅŠå&ì›8qïªU_°,:b„16öÁС„Phæ{u~¾§^/•É4-[>ŽÞR]mÝ¥KñÕ«4Ëj?¦8Áqš$'NŒ‹b±A ›4I Í11¦)S¾‹kqûvçâbû’Á ‘H ^^9Ë—¯xõ*nßî|òäð  Ô“'‡/[¶R"©îÚÕœ–Æéõ¦øx#ŽÓ|Í¢œ c Ui)RZŠDG«]¼¿$àœ„£ܨ®@0$*|C'™•‡7“ÙêÕ”¶JAa‚zç0´ÞΖŽ´w²ƒ:—7«’sÚº/ÍÌ7b’ÁMÆQœ-§ðSjÅÖˆJYஊj3¯?ê¼~ýÂìlß•›^XE¶³þ€GO,D96Iäºÿø{÷Ú·X§ö±w.N«ð‚ä %j¯ÈL´½½Æ?¿¹’pÈŒO®p¬¸\kc²MÔ§ÏÏëÖ}–¢ñ³e~e5ÅYúÇ’~JR ð°°$³“Àµ:¿.ÀÛÉ_dÚ…Ñ4®×ÿ à(Çþn€#R©¾Ô›óW§Öxs·Œ i]rH]€gy†IrêÜ^W¦¶µ_»nÑ´i;‡ 8£¶© Óqb„“°lCùüßð˜å1µ?sbHHPrC€«ž§:J Ô66ªÌ[¶'Ü>Îíù‹ÿ;cܽ=Þì±[Ðü_½Eê5³²²¶xl±YŸ>¢‰ƒ`Ïž­kÖxÕ·t6<ƒ§'»r¥ÙÎN"yæL™@`ùBãÇ£nnù×®uwq)ؽÛ<¦´ÔÙÕõñåË!ÎÎ×´Zd×®¹à㓳oß4ŠB8ÉÌôã8d×.¶sgS¯^rooâþ}ý„ Ö*•/¶MO'#"Ø=dQQ¦?ÔVV¢wï¶Hªbc«»t‘M˜Ð^¿&½½‰/P++ëGAx'Ã`ÆÐ4’ QQ÷•J¯U«´7Ú]¹rAЪ*oï\‰ÌÏŸ7ûæ›O`ëÖY‰‰á‡íÜùö¸qæÍÛ(™h/.vut,W«­ø§~þ¹ûÎÓÌf!¿7› }é҃ݻNœHCQœ±²RÅ0˜µu5be»vNž,uu•õëÇ\¹2¦NݵcG4Ë"(Ê&%…¡([Xzýóû÷ýƒƒcóóY†‘ôï ÂÂ’)Š`âã#ؼ<”âÇ0F$2ét2>ƃ¦qáÌfá¸qø@ÿ­[gY[W‹D¦;¦›L"†ÁΜ‚ œPhægÇœ€ଭ«óò¼Ìf¢º€òrG cXåÕñ{÷ÚK¥z¥Ràïÿã½{äò 7·¢^½~š?ƒ½½Òh3 Æk½|Ù©ôüíÛ^ÁEŠð:nãÆ¯€eѲ2'{{¥›[Ë¢>>™wît”J›ŸïãæVtèÐØ””às绹 pqúô¶¶*•ʶM›Gr¹ÖÉ©lÉ’5Æ6ì”Db˜2åûÏ>[7nÜíÛg˜ÍBkëÊ7ºzyåðe:ÀÅ¥ÄlJ$†˜˜˜Ý»'ÛÙU2 íàPrãF7gçB’Dy=’wË (¥Ph ?~ÿÌ™Ûd2?¬øõ?@||rL&Ÿ1¢RÙâ8µdÉÞ[çÏÊ_8âf}Å%qñÅÝÊUFpoÚôé#° ‰ ëœÃ±z‰êBÎìßÌ ê\¨s€?œ)ø%z¢$_cBÅÜ/EÙÇìe™Ð`ªø„ #FT—§þT(ðèÒ=~ýú…ÕÕv¦—ö‘Î…i5_Ãÿ÷Z€+/ƒ­¯d‹ü²®víÕë'Ÿœ+Jí«R àG>Ú±þ‘wX¿MªRi’’ØMÛDUB»øØüãÇï×ǵÖ¥ÁZÚi’d„6µtç‚Ç<Š­^¾œáÞÂ=3KàWàþÕ„—.{Õ*mhè<à®Ùå^®(ÊÖøK gYôm¿÷´¥=]áf[yéÒƒ~ý¦œ8‘æÇ¼.°o„‰˜º7¸¸5Ö¥ðÏÏßçê*³VWèmeóænœ:u×®3ÏÝø¨uu§‹j®PdÇz«3Ëìäýû_òóËlÕ4®ÌÃã"j.­PuÏÂsûÍ=Äb#MãE¬÷XpßÔnøð“o8 Íßw/l RéÀkÒùMµÍ»nm]Ͳh-À ]ÅíXCs ˜ÚÝ¿Uåîà\žïïÿ£·÷Cà}{]ž;uS]€s"$×±I0ž$•žo×î°@pÑÕJiOW$hu¾{çd'ã^Ue#•j:ù=1ÆTU äåy´H7ÀCC_:®ý IDATÊËi?Z²dM·n7j¾páúñãö¿u pFÞÈ+³™6î§´HNæâRò\ßéŒÛà‰«öÖxU•ͨæ§ÓDA?=æî^ÈqÈ©¸QyŸÁÍ~R(4µGn@å©[M†f&qp¨°¶®ŽãÜ:—_++sT(4 ®ÖXõî}5$$ùÑ“6‘t|`“Wïx^×&Õ\>•ùº¢Gêk‘n)E°,jà‰á‡äŽÍ4O­­4 E%†éÍfâ#Ë·Üú"WàÅg\Wª—€‹Kà žž¹‘ŲB‚E"“¯o6V騴wÂÕë½ëÜl’¤`±ñëýM?cŒ¦ñǪÖs­7ÖÜ͵È"ÀÛ·»×ÚûqÇŽw†==räQQvòôðzgYtºèеfÃ*´òª*[_Ÿœ—-C‡äDEÙ? ð¿Í➟]{ìîám©Éâ·È»O\wµÚBVD¯^DUUõ‘#ŠôÍêþéƒÏžq›7òò íÛ[0Ò«ÕÕ‡ D"od‰L$‰¡h<\¼Ø“ n¶l‰ëtSÌ:Ã`cÇH€Œ‹kœ2fÌáùó7$¯Ã)•ö66ùC‡ºOŸ^¬×Oç8êTA®_¿ï 'ÇmÖ,.- åïA¯G:wVܺ Ÿ}6¿¨ˆá7!’H ,‹=jîÞV««E"8q¢jÆŒRøþû$//–ã'§2~œ †9òé§TÚ»¸”0 Æ×,â'?¿L³Y8`ÀÅÚuïþ³\®up¨ |åáQ RÙŠD&>¢I¡Ð𯫶s‚ ÜÂ…ëEY>H&Óq"“éBC_¦¤#LJÞ@»v<=óàÀqÉ¿='§2 c‚Z´h-_™jË–h¾Þÿ?n½cÇt~“‡]»¦ eÏžýEY cj=Îü‚™ ¨‡ÛRÁ/Ú´y˜“ãÃWaâ8äéÓ–E0 gü64|gœ&¥m?N,%±{íçä-Ç9ѽ±° KcD]€'Àpæ~¯Lä@6Špãò'ˆÏ´ˆ¼ôEFm3c¥Þˆ×ó7He"½¡àÇŽ ºx±§L£*•ºëtSbb.ð¿VÕበ…@@6Gž›ï ƒƒSÆ<°dþàNNeòJS¡Â{èp÷¸¸/õúéà?¥tjLf À/_´èSw«â*¡p©ôzD#¶‘SºÅ‹gÕœ ({]I•Àšø¬Y¬Ä™«ÄìÎýøsÇŽ“¾ÿ>É[ÆH^È|꼬¬iBÞ0:»ûGŽÄq3>@ߨâÕ sÔ8 ÐàÆ0 ö]ÙÔǻոMUª4¤{“›ô®]SÝýrìJË*ì]…Bª.À_’~~U©ª`›œO7·”»EQŽš"‘Ë•+ëj>Üñ¤ÔG¿ÜÉ©ÌEòª ù*[;`óæÕ;v,UUµ‰†6*Måm<À-ZÛsȵ.·´Z{¾ÿk4ŠÄ‚°ÃÆìÝ;‘a0à .ÀI’‚~=œ¬Ø}­´©Ñ()+s Íß¿¦MhæQ%kîi•ÿÕ§™ÅîÏžµ±·7`‘…‡úV¦W”:ØÙUÊZœ¥scžÿЬ.À ØÑÓ±°0ön'¡Ð|çnÇ>>·¬Z¨T¶unbEלŒrøI§“ñ‰R­Jão7îË+Ç¿pMã÷ïG™rxœëŽCž?oV ðC‡Æf_ôÝ\1·±ð1Ÿ"<ÄÿÆ}›Nz³B¡á>á†z‰L.Ê—¦9Y66:?¿‚ª<û$·V>ùÂÕ¼qã×{¥N»æçz¸¸”8;—Þ~Ò+^Ñrf«õz)ð~½¬p­V^Xè~‘pízÏß pÞ}q(pÆàªKEÐ4î×øµL¯ØÿB]€ã8íáQpÛ¡ÇG®Wd2†1¾²ìÔ';ò“Z€Ç-FiŽŒºÇiµÚ*¢Í¥Žeפ÷gìmÈ(î¾€4ž-‰âOEÔ‚Å_×üY|óÚoôäq«Z€ïünZ>剢ìÝP”E1¶!Àòwï®QYigc£ÊÉñ9?ØÈ¨t–Eÿ4Àÿ.ÅÝÝÓ·ö¸° ÷/Ÿ¯¤„qsÀÇW®Zeyó¹Z±XÍôÝbkËM˜@ZÜ‚“ j³ÄL&Mã<8† 9c4 ÈE‹d‡)Z·Æ9qs+úä“ï&MÚò¨ZmURârñâ‘È$yÛdRRË"‚~õ•dñb1Ms(Ê"Û‰¿ 1ߢEÜôéß?^ãùÝ¿›7oØ1‡àûï§À/q)¼MB­® éÑj‘ ““ýàæÍö¥ìÔIÄ0‚ “&I¿øBöð¡pÑ¢ ùómÂÂRøò‹ýû_*-utqqŒÔJ¥ÖsæX,1ÅYYÌf¡ƒƒrâĽ&“(7×{áÂõYVætôèHáÌf‘F£ÈÉñ1™D’«We-Zø„†úôîmŸŸïúÑGÇ $$ÙÁ¡ü›o 2²×‚'OZoßn‹ãÖ4mݼ9:fÌ)~R J:ôè‹èöíòo¿•s¢Ñ(NöÓO½¦NÝ¥Ñ(øˆp­VÎqˆÉ„=yBܹ#òòÅï<åâRb0HN½eûöÓ¦í‹A¤vvÜÀx¯‚pÑÑ[–.ýòÀq'OŸ9s[i©sJJð®]SÏžý /ÏËÊJÚ¤ Ö³'€Ô¦Ûò3JHHòÌ™Û:t¸KÓ¸PˆmØà}ü¸µ§§ÜÊJýòe($$4-*rã8„a0áÚ´!ââ$4 k7{¶° À¦qÀ0¦ À­MwaïÞEß}ç:z´ˆeQeIR¢×K뜆٢(Š¢èòå;wNãSj¾ùæÓF²†?YQápýz+WúlÙÍw€Ï?_mgW©×KùŸS§ÊP#IMãÕÕ¶B¡™á.*rC®GOooï®]ý vRñòÊCQ¶¨È 23ý ÉС¢îÝ»¯Xá‡ãˆ^/åEQ„N'›3góåË}YQဠXd¤s³fNÎÎBáHRÅÅ®ƒ$;Û·wï««WβhÛ¶5¡Ï8Îôí{¹v”õéseêÔ]¶½|¹oZZ“eËjò½²³}/^^&2|$4ÿùè/­Vž”6jÔ¯_7ö÷ÇgÎä(ÊA(´‘J ³YÈ+îVVj’:;‹p\`eEœ>­ðõÅù€.­Ö‘$üJ‰ãe#"lÄbûŠ _ºôKþ£TÚ+•öùùžeeN ƒi4ö,‹bÎg*€Hdrv.íØñNBBS>ȇ//^D°,ÊO<(ʺ¸”Œw€¢ˆ´´&_|±J ËË7mšË—‘‰ŠâL&ŸU ƒ ¤¯oö¬Y[yMâÝŕ߼€3(ÎÒ5PâþúõAk.¯x“Däàhƒ]ñ&ê¥Ô;"Äp–‚_’Àç£À¢7–{à:L^Qñ&÷”3Sf¬†é<À ¸µX§«øØ±‡ 9/Vš+­œê\éc¿øÔW“&í)ä\ï™Û—”¸TœwX¬èe¿611ÃI™¾ÂÖ¥ÀSð`—ê¢Z€þùj\ j±M]€k¥ÖÂjjÉ’5µçÊÅX”TRà*ÂÎ Q|îæÍöÙI¹±ÌÆ­!À³?_Sõüùú÷¿ô!³!Ìð¢Lön€/]ð¥RTVæÔ©S¬”ÓÇIšçê¼<×.@šGwê;|øI‡²|weÞ¤E=€?.oD¦Ì\åîQ¨V[Ínõ¹›± k[à»ÎL½ß¾à"‘ÉQ†f üŒf¢àŠCà æj÷_|ÇŒñ3ö¿ à³¢·ÖSv¶³,½ HWEÀ† Q±ì]cb‹5Æ®QcרHŒ{Á޻أ‚ŠŠˆ4‘ÞÛ¶)ß!«AM‚‰|™÷‡ÏÎ2ÎÎì̾sçÜ{Ïù•éwï´«²@$Rwp‹m{êXé€Oø¦<«ïª{Õ:II±KÊ-£R™¶ú°Àq®Nâ«(a“÷~oéœú[i©L/ð»wý–ž›kö¾ÀÆF±sýL¼ž>ù¨Àƒºœûo,5âõf!µZB#—„Çù?}Þ°ªÀïÚ<‰˜g!ÓwÞÕv…W~Ã:Wøóa¢»NÅeR‚к—›ÅÊ8{Ûp \•-ÎÍ55jçÙ‚® M}ŠÀKËdŸ"ð¥sçYbÙÙfÍÞ÷2B¢øûŸTgå€Õ­ûú/ ü#=k”ä7iЬ¢³õý^׿BÿþäåËíàå˺AA—NžTôìùO M£ìxŒ Kv$=Ú7$d¼FC³sÒ) IJr(,4‹U~~wËË%‡ œ=[xý:îçgºvmEÒ=µZ”“cªÓéO Â0Ha¡ahèHvÙÃã9\¸Ð¹uë[S§Vi£FLÿþS.] €®]ÏnÙ2"èH×?®\º„õÕùó—,Y2ÿ›o~0`Ofæññ4Š@Å WWº¼ùí7O// ÆŽÝ6hЕªÛž=R’dg‰‰ÇŒA¦LÁׯ—)•Ò–-‘:uÞ°ÓûØžG8thÀ”)?Mš${þýþ{±““€Y¼X[¶@‹÷ÆŽÝ6`À¡ï¿_Ѳå33û¾}+ÂoÞÞ‚@­Fh¬­‡±y¾îÝkÑ®ÝõåËQ ÄbÍŒkØ9:óæ-½t)m˦¤ØåÓ´)…À0€aÛ¦/.606ÎkÖ¬"FïÞÇ~ýu܃‚âbÄÀ@mh8l÷îáìŸ._îˆã‹/D¦ ÀlùòÙìý–-+:zÜáÃrðô,e£\kÖÌ I\«%.^ìûö ñ÷µfs-Ó4ètvš„‹K\l¬Û¾}¢ˆ<817—Àˆ))¶Ó§¯€Ž/oÚ4ÉÑ‘Zº´"M½zН¾‚Û·ñ¬,tåÊRý£Hq±B>|H3 ˆ±1Œ»Íа°´Tvò¤Y›T(ÄNŸîÞ¸ñcˆu{óÆ69Ù¼Yüõ×(ŽÃ¨QÒS§66ôŒ¤F£cýÎ>…6lˆöè!€ü||úôµ45Í7n«BQÄ>6XXdj4Bþý+Bž"‘º¼\òê•kq±A«V·gÌX­ZÝž2å§é«WK uk@Qš Š›˜äj4ÂÍ÷ìÁ Ð-\¨€´4ôÙ3´K­•Õð~ýŽøû‡¿|Yo×®žž9ì󞯯<3ó•Uúˆ»V­úîàÁôŽ ž?G4 5Ò²cŸØÈ¢@ [½Ú|Ò$Ññã*77C=„BhÛ–ÔÏ÷gCn+WŠÍÌD664>lÄf¨˜>‰‹C؇™Ü\aZ·&† €¿¿‹“SB“&¯_o——gÌ>-XðƒRY`d„^¾,25e¼½»ÛؤõèqjÒ¤MõêÆÅ9÷î}èU«ÌçÎý>'ÇÔÒ2cùòÙ3g ‡%6nN™ò¦M›ÛÚ¦R&«ÌͳØ>·Í›'®Xñ}¿~’.]tjµØÏ/¿OŸcl]¹ï¿_ÁÎÉþGø»ס8ý{òuVàfM²a’[L,ðÐ]#?Qà“¬6!% à ]ÓO°ØµnIU÷ié79cñ£–ãçª祗Œ»r |ëСƒ"Ÿ—Æ<~®¨Và¹_¼xa ÜÊ4½:wèõo ü‹¸7o­ŸÐ”–ªŸæô×xôóòzÖ¢Å=vqþü…W¯r眮Þ¼A 4ô)LT*1;B °ÐÃ(•J ýú)*Rà8ÊNjÝZçâǶ§ Y³û††È°aº]»T99¦-ZÜ€V­n§¦Ú¢è{Ä(­Õ»w_±â{6† C‡îýöÛ YYºŒ‰qã¶®_?>lÂZpœDQZÿ×·¯îĉöì äúõcV­únð`Ž^• ”ÊÂ^½N@XXð;-Ùü£úÔ醆̮]åJ%wîXÞ½+HJ„BD_NbÀ€C>>‘2³}»ÊÉé_—@€Ü½ë·jÕw:òî]?cãÊ™"sò¤`äÈýõëÇ@§Nƒ‚ÎÅÆVl§sg;6†åùs¶“÷Ñ#oaô%$0 JKeŽ çh4ÂÅ‹²š2eC@€ X¶,ÉÞ>9,,¸S§‹eeuÂÃɨ(å“'Fk×"ÔÐÁƒýµü÷“NÓ4ÚªÕmšFU*q»v×õ«uìx¹E‹ŠF MCJŠ]›67ÀÑ1Q¡(**B'MÒ˜›ÿáiÚô;~:;ÛÌ×7‚ þPa@$‚€ÃýÈ‚%Iâl!6?Rp0DE)·nuŠŒ4µ±a=2ºyS¥¼yS±ÿÐI“6íÚ5"0ðÒÏ?“0q¢Z6{ôÐy{S(ÊèƒÐVVé ó.íÒ?Í›;¸»¿°´Ìxù²9Iâì@cã<‰¤\_Æ‚aA˜âbƒo¿Ý`e•þì™§~ÿcbê÷î-øý`¢0¹¼¤[·3*•Ã(e^¾,e¥66t—.$Ü»§6lo—.çÛµ ¿t)çÆ QT”âÙ3ÅŽè¹sv'Nȯ\ù./¯´cGðð Ç)›´øxç·o­}|"Q”nÔˆŠ‰)ÕWÞ ÙóÂÀïÏ'I9à ¬ôYìíi{{ša‚вÏá–:AÞý ÂÃí6n4'ɾÞÞÆóç/Ñwm/Y2ß‚17gP0 nÝ2:ztR§N—íí>l÷ä‰$*Jùè‘IûöÔÉ“VûöM[¼xåO?Õ>œ@Q˜2¥âKxðÀüÚ5I|,ð¤É ·¤}Î].å”Ú&ÝÌhXIà­pÿñÁzpXX¬VH߸V!—êu@/ð\–¡R&x_àE"%^Šœ:Ú£Iý‡Í ÖX$›5u­t°*¼•ռѶ¨sïÀønºç²8¥'|‚À—¯­Îô—;6¬›SѶ¸8Ò¢¥)7v7«´"“lÜ€~)ŒøÞS,V!Œm6fþ2®â;©*p§„âR™äuáÇJ6¨Ÿó\$R«AT³¿/kö  éäÉU*q@»+úÕ* <Þ žø¹0+Ë, Zó7õû; wooêþý†‘‘>påJÀš5ß·nÍaí!:Z׳g ¼zÖµk¡>-›¦šmÊØÚ¦J¥eì°§C‡(•$Yqwu¥e2)ÛC”šj;kÖÊ5käìêÕ‹ µ •–¹º¾Ò§IÉÈ5kf°]0C‡îõö~df– ë×O ojZq ÚÛ#‡ èÛ÷(8;dzi³@§°36~?L"ÑmÚ4 &MÚäïãæMŽ#MME]]_³—Ôš53\]_a؇J››ôì)Ù¿0ûNa¡áþ£Gs‚+,7·Xö”……wî|I_Áû}z÷ÖîÞ=íŠ:thÀ•+õëWÅúõô;í—-››˜èصëY;»¶.lÆOóòŒßË/‹H$åFFù£GïP* 9p`„¯o„A±‰‰ËŠýz&:¥RÙµëÙk×Ú7iòpذ\½¯1Œö÷?}ºûwß­º{×ïøñÞçÎÀ‹ -ZôË/ eäòö”iµ„¥e†XÌÑ&24ž=ÛΞíªÑ9‡f±OII³g/OO·Â0Š$+ÿÐ]]ßÍLW(D"&2ÒEíÚµúÔ)E»vRŽM (ƒ LNŽé‰½Ø1—ïßxæÌ‘%'Ct4æâbMÓhY™ôàÁ*•Aæ½î=’Äcbê_¼ØiäÈP#£üÞ½¿~]wáÂÅOŸ6[²„~ï³è#výúëWíÛ_£i´ºlööXt´lֱܸ±"__üq¨››uõji¥ÿÂ0èúõSMMs0Œú=×'Ç–Ù]f{œÙApœ¡Pcc“P1¸RW¦Ÿµm[ù† åì33Ëš536mz>00`._6xòÄpժʵ-,˜›7%2__ŽO·¶f MB_¥%-꾁 ÷  Äb05ÅvíÁþiǎѨX\u35N œF1 ô ªøÁ•} F{ö\½À"2§8Ÿ]dnâ(IÑ‚Ê wB&ÄimVª°ŒkŽÒe¦‚–òÝÝg=lyÓPZAÅj¬ÀuÜŒÎÖ |ÇŽÑ­'„X–¾I³ <Þ½»õãkÃDÄÐA•È!ø…ÍÅ¥Å9”ÅûO)r—œ\ ¸(!/µª$ð‘!VLnÛ6Eiß. ¥ nml+lj*úVl£ÈÊÈl“´¡¾­Áë”dcw¨ž?%p•©[ƒ²hs›Æ}úÓD['H\9Nzz¤¦6šµ(÷‰6Óâ­Ø†Sà=ºž ð~Ý ÞË´T[ó¬Ä̱’À7Ø~›dí T¬Nžyzoïšø©ó=X=Þ·:¿×§¦;8$¹§÷ |{Ö´w@Õƒ ™—𔤦èbç2BÆW]¦‘0ƒà–ê;"‘ÚT—s]Ú®f¾C6zà‹ƒN% ÷¥Íª¸¦Q×°#} ¨¤'"¯ªçyõf‡‘#Cë(ß^ÎPI IDAT|@àV“Óœî' ÐüløÍçøÖ üº¼móð«Y*e÷¼Sáÿê~LÒç«G[åEÖÌÛDƒÿ?ÿ“YešM?Ç2½ÙßÞÖêÕd«V·`Ù²9iinÁÁ/}ü×;–9}º#üüó×þþ{6mª¸æPBkjšÓ»÷q¶€[hfðàýJ}Ä.\0ºqc¸—×3Ÿ'+VÈš4©x_ ‰¤Œ­w“‘a©PéoOýû‹ô1ƒâbƒðpv®Ã²esGÚYPP°ÉÉa:uºÄfªbKá…µZÄ6Üõ—¾Z ry9›:ÆÒ2ƒaP­–ã‚óò¢ž<©Ï†7ÜÝ£µZÃ>~yÌŸ&'·;|¸¿‡Gôþýùœ«)•Eaì4†A?näíÍ‘ÁôøqÁàÁG:v¼ ãÆmmÙòNLÌ;q\¿nœ˜øMpð '§&lÚÙ9ž’ËÂ&Þž6mÝ™3ݦM[§Ñ½¼¬—/w{öŒÙ°¡rˆ¨~}úÜ98°òóÉ–½z5ÿñÇsæ8-Zd®_&ƒo¾ù™}ݨQTýú1Ó§o ¼tí·ßŠôÉ+‘JËØ©œoÞÔ)(PÖ©Ãñ¤Õ"‰‰Žì ?¿»¯^¹j¸ú†¡(ÌÜ<«Q£(?¿»ÕU*å䇰S§uëV»[*%#ÃòÖ­ÖìX|’¬|mH$ 0eeÒ¸8—˜˜ú‰‰ŽeeRýÁJ$ÔêÕ3Ùìï ü``PlhزOŸ›£¯^5ÕoD `š7ÿmΜ--3Ø„»œ% õ´mû© nQÌÌ€Í÷ N†q\á ƒbÅh‘Hª®Iâb±*0ð’RY@Zλˆ©)3~¡]êîÝÃ]\â "õÕæÿ>k׊îÜé>jÔÎ}û†4iòððáwÓ—4Z¾|ñС{‡ Ù·ví¼ýû9Ú Ÿ‡¿+p ÅfÐXÖL¦Zµºí¤{*d4)Y0EÚ ¤¤ 0ÉT*#J´6! ìÆ WÄ]-” *¤ÏÏFÚ9påALKëî¬ÀµÄ÷V+XkŠ…_}õë+IPuj™Àü£W·ëÚ#íÄãÂaopSR¤3T+ðmíUÉí¾Û+/ËÇ-tï \`YªTå…®Ó ÜF–'4®$ðR‘’(*K¿nutVß,qG:QÖоÒÁzyQ‘…õ¬ ’´š*2tÎzškX>Æ' œ°6e0´ôj÷Ÿ÷ AâÊâDõ8žgXß1;:Û»¡mƒ$xÙRkN·Žø-ÞQl•fc(Ñ8ƾ.¯£_‡ø¨y;Ïßï2mÚº†kœ}ê}&׫ÿ²:' ­ëdÇ(ºË1uHB`ìkWõ`µZ$ñ4L‹~Ú°8:/RÒ´:k(a/Û“&mÚÛzh–ȼfþ«ÙWk43,:eŽì¬Nà…†¶‹• _'Õuîß“<ù# æãßÿ¯ ü‘Ì»‹æ|ýܘ—¢z¥¨¬:Ÿ0îõ°A))›k»ìÿRàÿdýHKC€$aêT‚üwㆿƒCÔþýA‚¿Or2joŸÎŽÜ€^½NÄŽ;µ¡õô|¶~ýÔ®²)«`÷îáJeEÑú_3g{öØÇÇcíÛ¿»ÐPÊʤ¾á«ÕúËkÚ44=½Å AŽé×°áóºu“Ù÷ÇÛºgÏ0CÊMËdÈ;~là™ÃŽ LË–wØ$l¤||¨/؈û“'^§NuïÒ…ã`ïÝÃ}}£ÙóÎÎñYYæô‡š¿sö¬q§NgÎl9zÔ m[9ç:ååô³gžÓ¦­€Î/º¸8Ž€MÏždXXO6ÔÚµÓ##}ÝÜÞ]¢ ³~½ìúuùˆ"v;H$å"‘Zß9 0íÚ]6l ¶§C‡«ãëK±ÄŸNß¾ØñãBÿ?ü@F–ÍšµŠ}½oßš¶zð@6gN“§OEŽŽïÚ ì¬¶ß *ªQV–9§8( „BMƒ/ÀÙ9ÞÈ(Ÿ³9ŠBZšMb¢cÿþ‡¯\ °²Jÿ “­«ƒa€ ´*•xýú©gÏvU©Äœ7eÊʤpÉ’ù……†99¦ú# Þ¼Ù†}]Z*‹ŽöX¿ž7X½ZÆVdiÙ’a>YêÔyÓºu% ÿåÃ5kælÛ6öÌ™n_}µ-$¤Úé.(JçæšL˜°E§ºjú(ŠÂm驆ª¼G© ÞxÔk7#MîÌU?ÐT…ÀïÍf˜¬©$ð,¹¤¬øû±Óv *{âö†°‡*×î½{¸Ôž¬[’8Ü3ÍFèѰìi¾•˧œ—OøKqƒ¼xM`ÓF™‰/ GNMuiPí‘pñEavašÀ–Sà}§ºÌÚ¾øB7Sμžöe¦Ò¢:·¸õ¯¼@¡¬_)14=:W'ð­“kæS¹ÚÐ&-â)ÖàOHqêßÿð•ðš¸F(,×HÖo›zê\zôŽÜ\ C+5zmm+7‚Õj$=ÝŠí‘75ÍIO·z¿ÐññãÆþþΟ߲|¹ElYœcÇúôésL¥ªøÁPãîþ‚ý\GÇDšF]\â®_o·mÛX‚ÐêûÂN ~œÍ|”’b·bŬ={8®÷¦MÉk×Z°ÃׯŸêíýèÓ/>}-[p7·jú—؉˜óæ-­_ÿ%;ί§Ná½z2d,Xðƒ§çSý÷÷±²¢33Íõ3Pá½qœèœôkÆÇ;PcׯðáxýúÎÖÖÁÁÇ.\wü¸5ªì/šfŠŠì7éïŽãdj*Ç7‰aŒƒC[â*>ÞÙÖ6•sDBƒÐ/Ž»Í޾ƌibB/[6—}ݼùoþþáÇíÄbtñâ…l׿H¤^°à}Àfþ|âÖ­Þ³g/¿~½]‹÷wïÎâü ¹sÉÐЯ._îË—ÏfëæÍk¬êgݺ°k—í ~ý5dåʺ~~m86)Ø•+=zœ¢i”s:?Ž3­ZÝž4i“AñÖ­ãô#8qq¡W­¢ÜÝ?K¤¡CÑÍ›..{9p =`@Ňþ(ŠQ7Yja.ómýØÉ)¡¤LF€öëI!ï œDp­¤{…áWñ§> Nê@T9š.–HF›fY„?Äñ;8F2Z”#⮓H±r݃çMà~r3\«£ï–®*ðü2Ùäɵ.o6Ÿ(ð³L×^ÇNXG¥½¦í¹¾zÒÀ’CcóÆS‚7ir]¿x_à–Ι&dnÔª%N¿ÑvËá •.°ÒÉÊ Üº«ÜR©2ǪÛ´)y(²—°óôÌÃáD¨º@bõÑ“Âò)O1µ‘¤%Ú¤:8ä¼Ô 9~üQ]c4ÿå³¶cÚ_3(È(RŠ8.Õ» òP¹>Ï$3W…ŠË0é—&ð猇;åÔõÅÙk‚öÕ ¼ÜEÒH•ÓFÝ$íA¶•/ð¿ÆŸøó+ü†ÿ—^kîQQè®]Ú7oÌ  À0<Üó—_¾€mÛÆ.X°<0°Ú3ý~þY 3fçæVÛuµ}»Áµkã@,ÖtïnÙ£GÅõîêJ»¸ÄëWss‹utL€;F››g‘$ýѧj²2©—×ðñ‰ÌÊ2ǰ?œàà`ô§Ÿ//ša˜øxghÓææÉ“=‚нU«áõëºì¬ÓG¼‹Šûö 10(nÚôÁ¬Y+…ŠˢeKòÔ©ìLÊ ¶ìÚ5ÒÛ›ãxÓÒкuSØ5[¶L¸y³MÕ¡x¡}ø°ÉèÑ;`É’ù—.utpà¸j»t!Ïœé¼yóD˜6mÝË—õêÕãØ‡Ü\„$±±n7o¶yýº®RY ¿Ë¶lIš˜˜O™òSv¶Ù”)?›µlY“eá,0¾|YÚ·oàãÇ„¬š:¼ ÙÙflr“\“<ÎD­%%ò3gºÀÕ«òó8Gìé®^ ÒçŸ={¥>­ÐßgÔ(ü矿a_«TâÓ§{tíÊq›3F³yódýbHÈÄ1c*Â8çΉD#¶nÝóãV;r×DàÊÁòåÛ[´xýÕ±cF5u,¶¶LHˆ|ß>¹·7× ¤Rjõê™ì܃ŋ*Eå嫵lI³ÕŽXŠâ† ÿ‘ê¤ÿ×DE¡Š¡4óݼÅ…†×ïyüòË׉¯]ÐÎ_²â}“€3¸ }…â×ðf Ði‘*ƒ@Å2™€Ö>ÕåöÙ”7Ú)Óq7Üi‰ WkÎ'·˜þüúív˜V‹Ë+6UU཮lÜ8¹4ƒJÛ|¢ÀÑ}ú!Gl ÓÊ-$œß"Y²kKÚ¸Ù®¯æ9bªË¹ú°ÃûÎr7erÚ4Iù À£Òœ Õy¦C£lŽfdY8TÞ€´4ÔºnF®À´P’Å”¾ˆ–xÔ¬ÀŸzÚeDoΨWþòXLïê-òxûR}wß‹âÔ×%vÕ |¥øûEk¬Ñ·Ébû/Sà‰"G§Ô„fèýX‹zÕ ma‘Ényð iûöá‘‘¿Ï‹ñÀÀkl•²;FÛÚ¦ÆÆrìjVJçÛ·‰Šj¿ÕfÙ¹ÓX&ë3`@„LÖ'4´&û¿XllèÀÀÝK0ŒQ(ŠD"õ¬Y+‹Š E!gw˜V qq.Çï€aÃö¼zåªVsßh¯]Óvér}ܸ=Fÿð| 0ögéܬ­Ûµ ß³g˜³óë°°lÎÕœéqãh˜ƒº¹ÅÏž]fmýþ˜1˜2Eü믲V­>äkkääIƒ}û¬BB”¨ðùhßž`Ë]@Q‘")É™sPã¤IÌÉ“ƒØñZóç/±´T6nüÿæýž3gCbh@Y/ûq®£Ã-•NÎ0šë§4M-Óà”“T¾\„r‘€Ö•S©;¯ùZÌÚ‰èWÃä„J훚ìò•‹Un¡Õ ÒŠ±.•þËDËxçÉ“7RYÅ™bËO8Y&õL²tˆ­ãÆ)pÚÙÙ@¤¾¦}+ºÜqñŠõ&L®O§È÷nl‘«BÅa‡öì~©^àÉvFš\w“ÜÎÖ&yIÀ5ê™xá T¼YZTš‘uÍ ¼ÀZé‘û\Ô"ÉÒê¶O©Nà©Ê:’Œ—íl5uJS1+ª:Ÿ–u[m13UdÛ¼ü7ø"~Å&À\‘uܼ÷‡žlhßøÅãD©cL\}^àŸ^àzjMýsgdÅŠŠ†»Z-:y2 "¶oӦ͙­[ßÍ yýZÛ ÎÎHt4wMªœdÏÃC‡úÀ7ßüܺõñíÛ«=µ!!åЯ_ÙÓ§XçÔ)yxøŒ€€§ î±·/b oÝ:ÎÜ<‹¦©ltoßZ÷ëw$#ÃR$Rë#1ï£Vƒ©i>[£ÁÚúíÕ«ô³OÞ¾eJJäìµ]»FxxD÷ëw46Ö-,,x×®IsçVŒV<}Z0sæV6»ÜܹË&LØ|íÇþÔ«G¿~]gË– зïQöñã#ÇðÉ!ryɉ½àÕ+ׄooŽ/Üߟ¼~½Õ¬Y+ OŸc99¦®®߉J…H$ª©S×ïÝ;”¢°ü|#}61`æLù‰Š™3åUÒQü (¢P¥§[5nü8.Î%'Ç´R1šGÇD±X5sæj £ÜÝ£«{z¬S‡ˆ‹cÚ´é›[Ü­wDä/³~½ÉĉÞÑÑΞ•´iÃ=¾ùF¹i“Í“'?ïØa>|ø_·TMúñí·ÄÍ›æÍ[zõj‡6mîìÜ™[Ýš—.‰öìYçç—˜•5,4TùOîäÿ+;#*@):LYGFøÈ¤j-BT8‰àI^–´ K‹ã ¤VP%â®eDFk*N±°Èôé‰RÜ wTa Ô”áQ·FäÖ Iè4é»Á¦z/¼°l¨lpºëºµÓ%Ei…JÙ§ |«ç¸~ëü&i^ÀówhvùRÙ‹¾Þ¾Q ‚\¸Ñ¹’ÀóqcKEÚîБã—öë{„Sà½F^1Öåe‡Îð¹Ø¿nnÂÒ¾ê±W™‹Í³ÅG%5+ðsSw&Z¸Y‡¹|@àó|ß<_œÞÑ–NMÐ:}@à“ܸ÷Ä—+ðsÎAM§?X(^üa?uhXljpϾ/ðÏ /p=µ¦áîãC÷ë'rvN¥²¨M›§ì p¼Ó 'ZÖû©Êt A-øùnýûŽûˆÀwâ£Z.¹BŒçþ¹á®§Ö4Ü`üx“C‡  1Q]Täðí·`áÂÅ3gþÔ«WEÏÍ޽Ĝ9ëØ2“ææYË–Í åES¯U·®„`~íZûÝ»'ŒË5D’†eËÌ€6mnN˜°róæÊ)H­¬h´ZšM²a÷vv)õñŸ(Ã@pðQý ǽ}‹ºº&mß>ÊË%÷ï7+.®p\t4"——°½½3f¬iÔ(ÚÆFzø°bÇ…Ó»é=â8°-òE‹ùúF>y±?-ZW®´dǸ_¸ÐÙÃãyµ©¶ÿ< Ãtêt‘-Õ´jÕwmÛÞ*/çx jÖŒŒˆðb§òøøD’$îäıš¯/ùèQÓüüаAXXÿÀÀºnî02¢Ø{`5`ÀÑôtŽne†A23-~û­y§""|SSm™¿Pû˜çÏ 3Ó§‹7m’·ióñkû_éþÇšÉÇ&$&ª“ ¾ývClއV¸°C<ÊÍ%&YI¥È*GÜ]ë£h•ê¼߈o $Jb±Y¡‰T¢-­Ó(ª @ ‚tѶªÀ5„Têg±o¦7uBæsŒqg.p%ÍK²ê31â&ªx¼Ðy°Ãþ‡%M> ð Ý=‘g¹ß™¤Vÿ ?hޣǩˆÇ¼Àÿ x³Ô¦†;°åܤRfÔ(òöíÖ€aMK›5«ø]µnMîÚ5T¿þž=#üü¸Ÿ/CB óòÀ²e¡ûöÉ8ó†¢( l‚v(/—à\zÑé€ P6¤=}úÚ¤$ Ã?ú>\»ví46µyr²ý¢E‹Gâèisp Ÿ?wýþû`k›êíýØÐ°b'¼¼˜ôt+vRù¾}CîÝómÞœ¬:©<=uu}íïÏÍÍ3rr8öçåK¬Aƒ8±XuøpÿE‹ݿ߬ºŽ¿¿€D‚ÆÆºùúF\ »|¹C½zçåÑ#ÌÝ=–¯ï¬Ó ^¿æ>}ûöøú> 6lßÛ·þÆ}AÕƒ æÌY;¾y³Í½{Ú·çø*I’7îWýâW_m++ûj`òðü;0Št‹”TÊOÀoßn­4)Ö"D%“Ž‘L9HÀIœ›IPZ¼rÄ]*±®¸íИ;/Ãq—Zʤºúocbê#ÒB©" Ž›¹Ú«‰ –×xìãÌ©£~“DÖ¤Àíë #À·ýök9ÇMKòªGLˆËy©ö,ì9¸:ça&/Ÿ9Æ¦ŠŠqƒÌ"Ž’-¬ÀÕ6¢bCƒ×Žu?‡Àü‚ÇdoÏídòÛxfj¢;q:‡0åÎÃó9¨e w='šß¾Ý,ø¡sçÃ!!]Yvvôرª-" ]»Û„§'wŽÃÚµpâ„£cµßÊY€S§zìÜùí·ßrLD@§£7~ k×Nwvާ(êSÊØ>~œtûë¯O´mû(""›3>òâÚ¬Ù3v¾fd¤Ï‹õss+&ÖDD  ÄŒ» :uº~ó&GØ©MòáC÷qã¶ÀÁƒCCGÄqS’Hµš8p`ЃMÇŒÙÞ¬Ù}€ëS+,dP”vvŽ?}º{y¹¤qã¨Ç9ŽÖÝŠwhÓæ&˜›gI¥evvܧÆÏO¾¿Á;›üü:>üe bóô¤çÌÁQ”þúëÃÆ¸p» 0b„náÂ%ìt´‚å¢E Gú,åxx¾ŽÒT¦9)Œ2¸}»%N!:”¨$pÁ1 ŽÞè;ñ§ŸMñ7¥)*·êRÁh õŒŸŒ ­Ð‰s´üƉ®T"„‡ûKÌ3…¤ª©?ÇhΘõ¥ÝÙ·ÛQ;4ÅУ°fþÊÞ½å³;­Œn—€¼ªÀ“2P/žøy}Cü|ÇyxÕ-°/" EtYBæô¯ºò݃€¦­Šo÷ˆ?ݽÜü#Ï237OÉ*3–òçáùÔʆ{b"Ú¸q¢TZÆ.6múàíÛw­ó‰gÏv€ ÜçÌù»sÒ‡ QtêÔ¶o߸aƒuݺ:'IÐÇÀôékããQô“:þlm‰ÇAAOŸbŽŽÜý:S·nùlÛ6:uºX·îk}Åì&M˜š°ñ騨F'OvéÜ™#0pá‚ k×ðÎ/€X¬Z´hñÎGacC„…¯[7-=ÝêÕ+×ìi•Ë‘ ^L™ò“X¬Z¿~jA‚sfý«W˜M:›9K­åç§§WøªWY²D8`@µÙ£þEzôPäç·oßõÙ3ÔÒ’ûb‰˜sçòll2§OßåàvófÖ§´xxj) Ž#^ŠíL%6N”J˨2¡T8…`…ž¹ÿ“[RžIÐa•†;* tžÉÈE(œ#f¡0‘ÊɱT¶ÿX¥i±˜*¯Ã¥Y’„‹Vý‡h÷ ‚æé›†5+ð­)£úÊŽÄ)…6šªoðXP¤ó3¹k¨)ôšèSu ¬ÀK¥òÔlPd&j¬…xè´ôìSàiJ› 1u^à<<Ÿƒ/´á¾ü=ÞÿÖ- ( LLä=zœ€Ι³vðà?t¶n СCÍüŒ† ÀO?º¸p]8^q÷_¹r–³s<Ãü‰NÊÖ­?”šê·ß°Nn³“S÷í’—g”™Iþþ'¸ÂfŠ´±I2äÈ™3w/OOêÖ­&uê¼€€€+gÎôàœéÿàÞ®];¢–-›‹¢5°‘Éh…¢D¿hbR¢Vs¬V·.•mâìß¹ó­–07ÏÃæK IDAT´´¬©]ø§AèØñ#—··øÍ­·w¿äd§'G÷7Om„Sà †£4u})õ„Á¬Lä=zœRÅÛiQa%“Ž20`AÚ£Rq.AkÄU¢ét(Ž%`˜0“D´4Åq—˜ËäT‰Ö ®šmlLŠ)•\ÁѼÆqÈc Ò¬æ5]YǧÆnÞ¹ÔT•ÓÛ÷x&iQUà‡¯õ÷¶{Ô:ñÖsŸFxŠÖ†¥Ø%'Å–×ûÂþ¨¡w¯ôŒ;óçáù|A3BÞgöìÙú×zõ/X•Ý­ Pܱcyr²/ÅÇ7¶³Ã>˼• ºuSED@óæÌøñyS§W]‡¸GDøÞ½ë§ÕFFù5–ŪU+ªgÏV‰‰ŽK–ÌŸ2å§5kfXYUœµ-`ôèî))vûö ).6Àq23³òÜY°¶¦ì€¤$W×xŽjÑ‚7®yjª-[cuãÆ)AA5vC†PM›vß¿ÿÆàÁû/^(™7kÆ1„éÍT©,ÌȰKÝ_ž N«HŒ Ôƒë,ÝÚu<ÖXW^.4±È'1HD¿/p ÅBsä5Šú‰ËD´dUå(Ê€Å#H”TÇÐ\‰…Æ`JÕ`ÛÚö*Jè<±’£uÅ |šñ:í#BkNÅÖ¼À˺KEhÝí§«$ðäPûCKÌ4]mû8õñyޱ¬ÀÍšg+Ë \òâî)ýú}á7´<ôx@HÈø´C¼Àyxjž/4â^•[·°'O²oÞl‰‰6¿üâzáB'1bWŸ>»BBÊ>ÓçŽU2räÈÎ6ŒˆH5™D÷Ü9á©S?úû'¤¥Ú³‡{P£…SV& ¯PÍž½ÜÕ5ÖØ˜ï}äá©õܺ…ih¥¨V>·SmŽu¸x±C"$&¨$p ÁDòQ4)S*ÕBZ#•qÆÖ"‚à©jž^ˆ$s¬ÃÈdr(Q«l×;“ËÅ´êê]Ž[^…À;Þ¿z§Ã­ŸEà>·#­f¥ÏÀ%ð~ªx?gq®ª÷Äsx®ÚDYæ@&|}™8Ï™/4â^•[·è¯¿ÞľÎÎ6³¶~«ÿ“¥eFJÊ_Ù&EÄÅ¡œõ· 1%ˆ¬ñãCØÅåËg,Yr¶_¿Ên¥( ‘ ~`/^ؾý࿲C\´k§4¨mNŽ©LV:zôŽöí¯5mJ°Ñ©-èÁƒGët˜1c¡aaVVIÕ-ë<Ë(C3ÕÊJ'C(XøÍ¢n~'´ Â=Ü‚D4)86ã”NnʽZ¹@F–éL¿Š¡J„jT\‹îL§·qØÆ œ‡ç¿N­l¸ÀÓ§h`àE¸|¹£NYYBÜ»—˜>}“‡Çs°³KYºtAh(wçhýú¢ììØ·ÏxútŽìì,cÇ©S`Ó¦‰»6là˜õÿ…ãà@'%Ù”•IçÏ_RP Œu­_Ÿ‡ðððü£`B§uù…EõëÓÏä/Õ±LV˜V8…ãÉ`E¥‘h«i¸ëP‚Ö ˜¢†Æ6Ù8©Á¸ÆÁ@¾Nʨ5Ö ^0%¸ ×n¯ZRPÄ œ‡ç¿N-k¸ïÛ§€ 1Q³zõLpq‰[°`nh¨Š]ÁÏÝt„0t¨÷âŦós·m3¸sg,dp°y·n5Y‹îŸÇáС K˼mÛÆº»Çõé#ôòª}a'žÚ˹s‰ã´Î²Nʽ­M¾sžëâú {M=½Ù°’ÀŽÐ̳ßúÒÅ hQî´$F0„.,Á KJ#q¯VÇÍ@ -fXÒjš$ļÀyxxj;µ¦áþü9Ý¥Ëiý¢X¬š:u”–ÊH’ŒŒüCX= €  8:‡Ã‡™Y:x°Éßßà¿B‡òðpAZÚú­[-'Mªv@?ÏçàùsÚÎ)cH ðNS½§M]_¿nL@ЕJg0 H¦±ikG©0VÝäTt ZZBHHœÖbî¹@!kK틌FÇH¸«p|ùðçááÑSkî#F sç®|ó¦¬];ÝÈ(Ê”Ÿ€ ´«VM9~\ýù>zãÆ2èÖ­,*ª³´¤§M#ÝÝkñ!ðððÔRFŒ@®Ýì€Ó¤–Ó;º+¬‹§Lù ´€‰©Jg0¥è²•±y:¢F«*ƒˆ–!TÅR¡„;â.4”IÔ%Nç‚@­Ó`µoœŒ^à<<<,µ¦ánaAŸ<©jÑâ)><íÕ+÷Ü\ÈÉ1=w®««ëŸ>’„éÓK W¯’ÄÄj{7m*zñâ¬^{ölýkÎ{ÀºuØŽ£ /ϸmÛ»W¯šwê„}úö_¾Ä^¿V>ü´omøð-۶͘5«ò(I†AÊʤÅPT¤rßDxxxxx*à¸@ˆ¡ )$´€¢Ië‚wìpîJ@ó+m÷6ÿƒÀq¥(F]ŠËó¡ŒæŒ¸¿|‰iA€è¨Òb - Z{9ÆW^ Ç¡ärmIa¹+®Skqœ8Om§Ö •yŸ'O0—Ø^½N°‹?þ8óüù?7ÆÝÄ„NI±Ð/fdX*Ü_ÅŠÙ€cÇúìÞ=éÛoùh ÏŸF(Ä1†d4š¶}Ü\^ôêu´Dã8BÑUÄH @KQ޶¶‰ ­a è²r` ‚ÖJ•ÜMòàQ¤”,Í/´'´eo ìxóððÔvjeÃÝË‹ºs§Qr²ýöícž<ñúõ×q>>®ëÀÔ”5*¿ÿ£°eË„»w{ŽÃ°4HÑ­›'ìÛ·nãF;»¿¿û<<<<ÿ9Š3$P”¼GÙ³Ûm’“í·¿ó$½ŠÀ1JQ€éÄE #i®†»©)ƒIpDGå—$(…´¦ï`]ú›É©’¹€T»y*xóððÔvjSÃ]¥B–,)€íÛÕ7ªœœRRì† Ù÷ê•ï°aïäž™Iúùi ImJŠ®º­}ÿ½±··<{ö]X˜¯¾å?p V®4trBjîhxxxxþK „€Ñ…ãÍ6H\n]ìä”ìo?lÏžJ'Q ¡)g×GeÂbÐê(‚{þ’T)ÆH2>µ.ŒVdÀ’‘É Ð’Wé."m¹Â¼g•ááááa©M ÷~ýŠŠ­q{òd42ÒgÉ’ù/^407O:vì]ÝÛ[¶}{8}º•——1]}©ŠqãİjÇ´T=*´o_mÚë×çÔÜÑððððü‡˜=W…3¤o»¨H£¸³SfFFú,]5ïù JO~C 45pH(jR†êt´;] C(©3©[ÎÐBÐ "îÕT˜T ¥É…B*&ŽO)ÃÃÃSë©5 ÷ƒQGÇ›óç/€©S׸º>kÔ(ŠýÓìÙKÂõì눉mÖì>¸º¾Z²dÑöí«TÞÈ‘%£G/€Œ ㈈İ0Íß: žÿ¢6öq†ਃ[¬wãGÕ ÜÀ¸£Hµ t¦ Jé ÕÜw„ ©%ÊuZCÑÁÝp7 ˜ÆP-Ö•§e•ñçáá©íÔš†{NãèϾnÚôÁ‹îQQØÅåËçûûWXÛLJÝëïT‡NH@E¢Ìo¾ù™]\¹rÆ•+Ÿ±ÒÏÿ%99Œ­C2$¥“5}ðì‘wuÏ-2F)RUZs@uZBÎÝ"G„ŒÒ©ÅjV! på‹IH@AZ,fÊ3‰D§êÒç/pžÚN­i¸Û¶Mºy³ ¬Zõ]ݺZ_ßÈyóVyyÅÔ©ãÖ§OEXÝÅ…îÙ“êÔé*ôìyÆËKæëû×KÍ99ѯ_Û>‘ó¾[êÕèE%cMeç*J¤œÔJŒ¹î `¤V'Õ’j9ÁhGÏ*+ðrLRLj$ºò»OZòçáá©íÔ‹I$Ì™3ؤIûnݪóèÑ„£G"QéîÝ7n¤<=ÿÐ4Ÿ=ÛäÌ%ôèѬwï¿5N¶otér5#ÃxàÀÃùù¾HÿæyxxxþkH$̾CÞŠLLð,ö¼å)+ñ\ƒZMÏØtÑÌ£É,më$ÊO'³óìPe*NjP1wÃÿcïÎ㢪×?€?gæÌ( à>€w\3-íjb..‘¦fŠû‚ZbeÒ͸7ºÝÈ~™&¦¡F´h¹–[Z*¹&©i™•©! nˆ¬³Ÿß†q83,30œ™Ïû^Ì™3‡ï|æñ{žó=¬Q_âo4–5aˆ#©ð²`ëÖÉŠúúiueJCYæ­¾¯ÍC€€¸‰fƈڵ“ìÜÙ”ˆÖ¬ñS*‰ˆfÌÐYUí¼‘#¥DTmÕ~þ¼„ˆvï¶·VLÇŽìO?±D4thĦMvŸ[BÔr– þl8Êe?P¤Õ>K묪v"’È¥R“¡Up©ÒÛ‹5j%6®:•z±R£þdÐýÆb/-có¾J;²zï&&}±·±4>±9ÄNL…»síÛWùw$ÍfÜY9+5L¬T©ñV´ á÷é3dr£N—Û¨%½Ta'À³rƒ}ŠJ”œæ_¯/G€€Ø5Òkì­¶¬]+‰ˆØ4iÒ—D´téÂ=Füñ‡´k׺OŸIÏœ!"*(($˜øá}ü±ï´i3‰3 —œü÷È‘Ž®/ àÞl¸á"«ÕÊ:v¸tÜWáW”Ƕšq—K¥œ!GÔE(1–I½…{ÜýƒF/§(Ò“‘µ¹ªÌÇûîéÚÁÏX(åŒã§¶E€€Ø5ÒÂ=..Îü5ÿ ‘p:]e‚ët2©T`Š…ˆnß6Mœ¨9uŠÔlØÀªT½G‰„Ö¯÷£òú>È‘Cx[n$V§•Óµ¶·5ù—ä)ÚîZ½”52ÛüãþÒ¹!ƒõ.ÜåJ™Ì¤÷5È Z£Aj³p—H¨ÏfWöh¤^& À@ôDÓ*3{6wäÈèO>™IDÏ?ÿáÛ:w^±woåÿýß"úì³Ç|ÐæTzÍ-[v—ˆ†-ýùg½ãGð4|€V¯•ß½Ð)«5h¼#o-Ð*³ô}%Ëîïy^iô–›´¶ wÖ[&7êäz¥IÏX{óè¿f(òóJM^pp¢)܉hûvï~ø/y{zÿ}ṓ¯¾’ÏžúØc?уþÿ¿uë:7úÁE.#¢¤¤1¯½vý·ß„§ùÀŽíÛ½õŒ,ïN³²KåµfZÈîpÖ…ûW_Ééw\j2N.54U˜´û ßëT¢”ÉM:™Î‡ôƒíV™>(ºUr;ˆ½mRHààÄT¸RR’?ýç?MmÜßšzô0îÙ3Ìüpß¾ˆnÝê~Û$½ž–/\¿~"õéóÓÂ… }t·ÎGðXddX¥œʺ\—R ©@áÞ£‡ñ׳=dœžÓÉ9½¯Â¤mßU¸×‘õ–ËM:™® §7šXáYy>À§ÏOõ1”R8¸1î5Ñ¥‹qØ0=z7M˜°¹S§€°°º_À*“‘ÉÄùòïÜ T(0aPF «×›èZ»Ûz&òLþþV;tébìÞCÊš º»¾Ú²§íÑG¸p—ûÈdœ^z7ˆ3L2áÂp® ãm,5Ê¥ppîV¸ÑâÅA£Fõ&¢Aƒ.[fój$­–5ª„ˆºv¥Ÿ.µµ[bbîäÉ[ˆhÓ¦ñŸ}öü‹/úÖÃÜŸža:¢kmî”Q3£ÀŒ;MjÆr†²»-4:_%£!¥RðPF)+çt>¹m$z½†löC&&æþïƒÿ6eŠ‹ ¾ppnX¸Ѹqr"š<Ùfã# ¢Ÿ:u18qÿ̙̅ Â?ŠÉ“}GêND›6ýߊÁ¡¡Î-€'0JXM‰Œ»t·€ñÕ îü ˜|½%º& FËÉ…gÓgF3rNx—1ênÊíxïðšPI¶Ü€˜ ÷¿ÿ6\JDS§i4êèQöþû}öÙµDÔ¶íµ·ÞzåË/µ¶vž8QID Í:tpè›x¬¿ÿ6ê9Ù­[g³ý[^-Ò˼‰hƒ‘*¤,g ={Wï£$-)æ_ŽeÕ/Ê}q™¯Ô óm^`'À‡>àC%>A>pp¢)Ü‹‹™‘#iõêÑD4lØÿ]âÈÑúô1lÝú˜ùáC;u¾Üµ´”}TCDÆiÞ}÷¶#ßÀ3ñÎI™æ7\“‹¹ZáµzY%ËrÖ /Öù(8á½OÃö=ÊIWRê/1j 5~v|ì Ö—-ÌÌ‘!ÀÀ ˆ¦p_·Ž^z)±wï“D“Ô¶íïGŽÔýÎJ2­X‘ö3ÍŸ¿*+kà¤IÂ?Š™3‹çÏ'¢¬¬gÏ^Ú¸Ñæ¼âÜ(•rzæN[có›9År>"’(XéeFy±ÞGN­22½ùÎm9éŠî6“ue;>eîò&ìݧ&}7 šÂ]¥bΜée~˜žÞ³cǺ¯óHD“&5[´èD¤VݺÕzqÞ¥Koï|G ½óÎËû÷#÷j‡p“DjÔInu.ð½U(i.\¸ó3îRƒ²T§p&Áv";©…œtÅe~¬AÛ©›·à>|€ÏxþSÒy#ÀÀˆ¦pŒ4ݺÕgÑ¢%D4zôîY³ Zµr¨p'¢ðp =óŒ‚a„wèÐÁtùrðéÓñ×®óÀ6ø×rrƒFzÆÛ¯UY®¢ÛZ³R– R—VËè$6àXVFz­É›5ê$6.`-ð3KÄ"ÀÀˆ¦p'¢/¿l¦TN!¢ˆˆ¾üró†ù¦))²'ž8@D‘‘Ûþúkä¼y·ñ;¾ü²™I¢Ð•) ;ÈJóØ–Â3îIJ,¨¸™NGv w’Ë圮D«”éu¥páN®—Èvî…7 ¦Â].§… ›ÑäÉÂ+ûòîÜáF޼KDƕ޸á謼ZÍž>-ÿnk² IDAT!¢‘#‡|õU€­;¶€r91 ™\ª/í$ñ-ËW´žqÏ+’²ŒA‘ÓZWf²W¸é™VDzF«°Y¸ónd|ÔíÛ!ÀÀ ˆ©p¯¡˜ýë9"Z¶lÜÃ{9~ÀìlzñÅ®^ÕèõŽ ÀC™$,g0d3ÔZyÇÔL¸p|„Œ%C`³b“A_j²7Gc`dZ#7hY/›…;egÓ+þïìÒ@€€p·Â}ëVù˜1ÛFŽÜID<òãüù+SSmÞT¯&~þY;{vî#üXXøéèÑù%%6ÚáÀ.“”%“ñ†žZÉsï¾´u«|ø¨],Êô^FƒÁ cí¸ž‘ë5™A'SØÜ‡ð~ËÈ푉7P÷ëUbbbÝ^Ø©“qÅŠ¾æ‡Ç?ò¯q¶vÞ¹Ó8u*-_^6ož—«›(:Zúí·;^œ0acBBÑŠÑqqMê66O`+À9)[j0ä3-%·MíÔÉøáýeœ^£óæôz );t°à:Fž{×G­×‘­øF€€Ûi¤3îqÌOž,íÐAJDhóó ‚/ìÞÝØ§|Ò¤MD4{ö'­[·êß_xÏ””ü””?‰H£I;¶PpŸìlIppNÇŽù‡{/_v´iÀ½Ù ðE²eáÝ;L€I¸pïÞÝØ+Ì‹%C©ÖËdÐë¥ ;®cdRY©Ò ýr›p,#ÀÀý4Ò½ªìlÉ´iò?þPÑ;ïÌ|ôQ›½ûn`ß¾Q×®O|ôQ à>eeÌk¯µNKëOD‰‰q;ïÿì3@W©LM^{í-"2¥ ®=Ú Mó…ðæ­sn{ß,‘çq6zÜß}7ÐHÒ»EÍȤ‘5îqçÜÄJŒŒAnÔ´Ê@€€‡MáþÅÜÿþ÷Jóæ·‰høðo‡ß³g;Æ3DôÌ36/l:{V2tè óÃ>}Ž_½jÜsÝ:ßߟúØc¿(º¨¨ #ê˜ð@|€Kä&“^âWPÄÜÞwº¥­ ËYƤ5Ê„W•áÜ aõF£Â¨i×9B4…{ÌÖ­Ì¿øâ©…O¡ÖDŸ>ÆÜÜöË–½DDýÕ91qñ´iÂ]’ C©©þï¼£¾s§xÜ8áù{°ƒpNÆ0zN‘£õ1–„EØ\RÝȰz­DbÔr2áXæ\CJ“É 7ê·ï‹!šÂ="Âäç×aüø­DÔ»÷/K–Üðñ±yÑRM|ýµ÷¾}/ѨQGRSÙÐP{GëÒ‘uÄxöM•AÃê~–—(›Ù p±:-+ÑkMr›ë¸ýµ·–¼Œz£Ü¨›·@‰ÑHW•´zuà–-ƒˆhñâÐþý]ÕK.g¾üÒ—ˆNœ°·08nõêÀý}MZ¶¦ ²7ù­gdFDbÐ’íÂ].gX/Ç䜶ÃýX(<…hfÜyãÆI‰Èñª˜_ «` E6¯Lå%¬AG2†öîœjdådÒÉM:™:×ÀSˆ¬p±’ɤƒw~ž¤¹ÀZfF†5襬^ËØ^ ˆL29éu FË(íÕ÷î…;4†e¥ƒwQÛÒîŒ;Ãj´,«×IìVä&VÆèõ FÇÉ0ãžBd…{qqõM24~|S|ë–C°€³I*É1´VäR Í÷‚ÒqìÝ"/¹^k {3îœLÆèu ÒÚï¨p'b*Ü·l)ìÚ•%¢6m¼.\ÐÚÚmØ0ýÌ™¯Ñ+¯<;hPõ…~I :æê×–-…Ç÷±¥w|Êòo}mí6l˜Þ$e¼¼‹ZíÇìθËäœV''Ùí¨p'¢)ÜÿøCú¢""úë¯öÆ /#ðÍ7²¿›8ñ+"ŠˆØ;iÒ§Ÿ}&|õúuCÇŽR"êÜYöå—õ6pOÇøØ‰[›ÜéÒüüûŸ¶ÜpN*1˜8…NÛV}ÕN€ÿ%—˜Êd¤Û¶«¬>ÇЈ4ØrÙ›c¢S3*‡ÇïŽ «Åë·n5½ñFÿµJ•=gÎúíÛ§Œ­·Ú­];SRRóÃ_íùè£Â+ø>ñ„dçÎ!DT\ìÝ£Ç:ôîµ~ªrN€3û8NÏ´’Ý|hèïÛ·Ël¸AÂ8£R¯É)lj3À¿h—¥4i”¤Yû™¡mO ùmŸ>?ñßx#nûöµ½{ã|+€0Ç<¥Ç4NÏÈóâwŒßö©uÕN®ýK¡7q NØÌN€{Ÿ-eK rÒ½úzÂöí)pð¢i•éÛ×øØcþ½z%¢¶ms¾þ:Ë֞˗ví:”ˆÚ´µv­ðm>† 3¤¤Œ.-õæ®Y3ï‘Gúõ‚ðÛ&ëKe†[lürª·|y '•ëŒÂ >ÆOp>À9–‘iõr“î£OžG€€‡hÐ÷´„iDdcæ&11ÑþË- 2DBDiiò6mì|Î/"zþy;ûlÙr»cÇ+×®5?¬V·>¼Úáx.ÇüäßͲ¿–ûä‡ ±Ó×ÂÈYFbT4l¥­}¶l¹ýÓ¤¾²–zŽ˜Vm: ÀÀCÔWánÑ©ŽJNŠT©"“vGšŸJˆ INŠTÝ󒸸8ÁCY~üóŸ&"jÓÆ ½Œýú5ùî; ½øbAƒÐ P®ž¼u°ô¶Ôà£É+ °w&“„å8ƒÂ¨•zÛœGïׯI³ÞŠ›—4z‰|éÒ š¾1‘«¯Â½2æžšžšp5›H%¼Cƒ 6ªvKõ๔5j†8¥Í©t"2IY2äF­¬‰½?™—¾L/Å"îàADÓã¢&QȼLw ~ö¦Û‰È$•§Wµ¬½Â]ª)õez ºÛÀƒ4Táž½9fizÅ—ëÓ(¼_V'øýw)ݹƒ[&4'ø­;2¥©¬Ú“²d2ÈMZY{³éR…LiÐ`ÆûÒС[\¼8ÿêÕD4tèë'h4Î39ÀY"-•y{Ùp¯¦…ÞÒ%S6ë9©­.^œ_PrŇ-a•8xÑîÝ»›æÍ“¶h‘OD-ZÜÞ³§@p·;e>xdæÌOˆèé§·±eÃv 7$[¶4MMFD3f|:xð¦µkm–øà>ÀŸ·«è¶ßë$Øp߀"‰Î¤d4„§Ù ð Ó¾”s:…¯žC4…;MÚìÇ%DtçNñý÷{ îÓºµéÂ…Næ‡/vnÙR [F£¡¦MKÌ}|Jôz›M5à ©S›­L–ËLò7WzWà2’j Ò^¼j/ÀYoƒÌ¤çd <‡˜ w"jÞ¼štîÕËØ¡C“¹s×ÑÂ…ËŠÐÁƒUwûÇ?L}ûbbVÑöí£·m›ùì³X  ùI•Rgû¶©|€_½"Ñ›ä&£TÛ ð ›§È8}‘ÖžCd…{M$%µm;‚ˆ||Æ}üq ­ÝÞ{/P*MDëÖ}°~½oÓ¦˜°¨O,Kƒ©Y3;»$%±Š‰Ö¤àt+’[ÛÚí½÷IÞ‡5r‹TpðnX¸K$ô >DôòËMe¶Wø•Jé7šÑ_ø‡„`Q€zƲŒÁ`gƈ$j,— ÎÞS¥Rš2ÓWÎè‚Û{!ÀÀsˆ¬pß¹“^ziÙÉ“"6l?Úì%å’WZÚßaY™AωX{w‘ùÈeœÞþZïnFLð‹/ÞÙ´éÇðð´—_¾¶iS¾«‡5õâ‹w6½þùØ„û.aY…^£—Tsg%Žee¤'îàIìΩµ“˜˜hµeß>éÍ›™{÷'¢‘#wz{kGÒ(•èkh\løªA€32V¡×è¥ÕÝU.—1zîœ ž¤‘îqqqæ¯ùÏ€“'M“&}fÞøÌ3›xzÄá[x€«8à«0–¤ŠjZ×årL,fÜÀƒˆ¦UfÊæ?ÿù¿ââ¦Dtðà mÛžt¼j/*bˆèÌ›7çÇÕ*À¥2VaФÕTäÅK†üR̸€MájZ³FÛ¶mÎܹ[ž}vó?8zŸ¼Ó§5÷ß/#¢ØØ+o¾™çŒ1€€Z¸„/ÜeJ;ûœ>­ö¤weñïKàà9DS¸Q¿~M³²´?qꔬE › =Þ½Ë<ûl!EEæÙÎó§ŸnzåJ["úùçngÎ\Û¿ ŠÔ—šø‘#e©¦°Tf?Àžè«d5sžÿžCL…;/<¼š¹ö1cî´„ˆÆû÷ðáÁ}¾ûN6cÆŽfÍÊW6X¸pÉÁƒZ玬Ô$ÀÛ†žöUÉ|4öܯy!‰pð â+ÜíÛ³G¦VŸš7oM™²~àÀo7n¸÷ñÇõ7¿r%”øÖ[o<ñ%\‰ðž½ÏÈLz¥ŸÆ~€gÝ &#‘ÄÝ ÷€SV–Êü0;;ØÖݵwíÒuìx‰ˆBBnŽé߯V–p%>À% k2prÆ~€wÿç9“^òï7– ÀÀs¸[áÞ§±m[¿_\ADÿþ÷Û&“zØ0á3³:Ènß.!¢={¼Ÿ>°AG Uðþí÷ÃY“áF^kû~冞áèù…Màà9Ü­p'¢Õ«ƒš4CDÃÔO?­>ÐU*Sý ª·zuÜ»»Äh2H[Tà,Ëp&ÿ–6¯sp?nX¸³,½òJS"úÏ|è{–¥ða> ‰¡U¨wõ.‘Ä ?ÅlAä@#"‘³,§'E n‰Ê0(ÜÀ£ ò ‘*X–Ó3^önÀT3îàa<=òrsƒ\=¨ÄȤ,éeõ3î¹L wð(žyz=Í›WmÛšþøCm~ø÷ßíCC=ôß0Îå`€¯Y­™Ëj¿?lX@pK´p‹‹3]ÛÏ€ñã ÇŒYNDC†$Œýæ¡CÞU÷ àæÏÏ3fײeÏoÝ:öĉQo¾)upÌ@øs½6·üåVÇn?Œƒ°än³û÷³ç.|Ÿˆžyf݃ܺUø' 64¨wLÌá«WlÙâ• \‹ðÉÓ7‘ÂMG€Xi¤3îuæãCùù•çVóó›ùøØÜ9*JÅ/\ÀÕûÈÀ®ò—‰pkî6MÑ·¯!00pÑ¢w‰èÍ7_/)éapõ  z|€¿·üeÎÀlûöi8€w+܉hÍš@£q"ݹ3kýúWjjÍš@Ò–z” C€XqÃÂ].§øx_"zóM//œB ¹œæ¿è¯s¦7C€XqÃÂDŒeÉd"…½;§x&îЈpR)Ãq(ܪBá Ë’ÉÄÉmÞ9Àc¡p€ÆD&#̸Aá ËÇaÆ *·-Ü9Žqõ Ö8©”ã3îU¹aá^VƼòJÑ!û,(*.Fù eeÌ+¯i‡ï{áo8€7,ܧN-^³ÿž=ß;¶ØÕÀšš:µ 8dÍþÌ!=Ã’àVÜ­p?tˆå¸¬×^{‹a¸^Xü󎬫ÕC€ØÇ\»v-((ÈÕèFbb¢«‡Ð¸ÄÅŹz5‚°RÛÏÍÍõõõ%"qLf8øù”˜˜(ö#¸|ŽÁåpü.@c8‚Ëàø\>gÁ‘—7¤Æð³Â¯Þ‚ËÐŽàò8~—ÀYG¨ókÝ­UÀ-¡pqô¸ƒã?³ø:~ŒN£GÁÿnÇágèø1:E~Œæw̸ˆ w@á èqh¼Ðã &(ÜD…;€ pî"ÀºzP¯²7ÇD§fT>ßæºáˆOúÒëC’“"U*¢øY֜տ–µ•¾tDBZù×ê(óO¿n)B€;ÜANpîîTuSñ§¦ŽªÜ–½yIj»øÝIaDéKGÄl¶üDAB?F"üZÖJvVfÅÏ+{sLô’Í}“"Uømô øK©¸S ÀÀÙŽVaa±»wܔ}üp†:„ÿÛR…¨3®f»dd¢"ðc„ÚRE&U|Hª‚Ûÿ‹‡ßFÛàNwg8fÜÝ_ZÂþ þ‰ì í‚+ÿQœ™•Ma˜±©üZÖMvV&©VüÒá·Ñýá/Å©ð'ãøµ¬§8 w÷¦ŠLÚIDü š„˜œtDöÕʾ>Up;× DäðkYWÙ›—¤f„Ç'©¿ž)N…?çÀ¯e]9)ÀÑ*ã)T‘S §£ Q›¿ÎÎÊtÝ@Ü~-k#}it*E%—Ïoá·Ñ“à/Å ð'ãløµ¬ §8 w€ZÉ̪ )Ëó\õ*}鈄Ì(«©-ü6Ô þdÀ%œà(ÜÝZö春é_®O£ð~èEs„ªï@ó%$ÙWÍ–@íàײքB¿n)Î…?§À¯e­99À™k×®9{”ÐHX®ŠkHjÇògg±ôªy3~ž5"ôcįe-ÝóC$ªü}Äo£{Ã_JÝ!ÀîN ðÜÜ\___BáИ™ w´Êˆ w@á (ÜD…;€ pî"ÀºzYöæ˜èÔ "‹;xl€Fn3îv¨"“’£ÔDD©K6gQúF>ô)<¡Ðx!ÀÁ ¡p°O™ND”‘º1=})ƒbuT2îó ÐÈ!ÀÁÝ0×®] rõ0·ô¥#øÀ'"¢ðøÝH}q@€ƒøåææúúúfÜj$,–Ÿ´!" GèˆÜ w€¨8ÃJD”–³9Û•ƒ€šC€ƒAáPìÍ1|ê‡ÇW4K.AòˆÜ wû²7/á—! ›P±DAôÒt׎ ªwƒÂÀŽÊ5Ë#U‘‹øäÇ W€F n«Ê4^XU@LP¸ˆ w@á (ÜD…;€ pî"€Â@P¸ˆ w@á ¬«à–²7ÇD§f‘:*9)RU/ß%}鈄4þËðøÝ±aõòMÜBĹvíZPP«‡`GvvúÆ%ë3322Ê7¨ÕêvöëV?Ñê°ÊO›å»TDwyšß“äÙÙéÇ7;œ™f~ã¤V‡œ2Áò}W~ Ôãg €Ã,ŠV3µZMí¦,š¦rmx9'´ïañvï9&Bê"77×××—Ð*^úÒ˜è脴ʪˆ222ÒRS–lÎ&"ÊÞ3‚·4ÝU£¼Göæ%æy›E6R9ûøá " ïÇ'~vV&Y<$"¢ôÑ ©ii–oœ22ÒR¢-ßhXl|xùs©Çû¨¡ŒŒŒŒ´„è蘥|ž×œ3“ßI¡m)}i•¤”ChƒCP¸Cc–½9&!­¼p OÞÍKŽ W»v`ö¤o¬ö€(ûj©CøçË?*ZP‡GU¼ïä¨ðŠ­ië->ã*?ÒÉ?]ìPGUÄZ|y˜g¤¥F»,¿œÚüm–íDmpzÜ¡+F"¢ðøXsˆ*,26¬o¿¥³\50{ÒU40N±þ°è¡äe¤FHµ~XyöôÞó¨ªÈ~á©iBa¢Ôi©D”v,=6 ]“ ª°Ø¤x*oIKXÚÏmßN íòÚ-Û‰Úàî ™YÙtOG»*,66Ì*UÓFX]õ“¾yãúÃævµ:|à¢ØŠ€5wª£’o\R>¹¯VGMYdÑFnu ¾Ã¾ò(V*?lA­©°Ø¤{޽y}ÅgõÇ‹*rJxjBáCĦ²ˆ½'Àø‹›,“·ò Ÿj’ßU¡]~<¾lWGÅ<œpOÕo¡ u…ÂÄ¡|^CÞn`¿ }kvS•¹ÊÈHˈN»j}1QFjt´åN© ÑWï½þèÞƒddÐñ ‘‚v?T‘I»#©Ê5NV«òž!¨ÕáSUÝO¢&Âô ˆ*¸_•V5½)##-#!ípµ×sº8´Íeû¢HÕñÃvƉІºA;4bªÈ)á÷lÈÈHKKMˆŽ1¢üJ&UdÒî䨊†÷ðøò.øÝ±a”¾´"÷Ë»ã“Í]…ë­¯‚ /o¸¬<¿Oå$·¹%sw²¹)S@ùõJ¶;ù½îé•´~h_FFæ±ãU/âRõX>¨Ì¬Z^âàRª{3ÕâZQëøÎH^šn'ù]Ú–e{uo¡ u‚µ°ØÝÉ‚W¢f¤¥FÇØ[…À<‹¢ŽšÀ·½¨ÂúUDÿá{K_uH_>c-þ¥q5»"Ë_’žžMD*UXlRµKxµ ¶½?4õÀòojõ°Š°Ø{¯âréE\õÌ|­(…O‰­ˆï •Ó*ÇìäŸKC»e;@]¡U;UdlRdlvvúñãÇ®NK«<{š‘º1=ÒÆ•LæYëk‰ømW³‰ƒÕ|ö’2³²)²_8•_š‘šÀ¦¼Y¥¶¹l}êWð'{ëúªÂb§„§•_ĵ~ó„°{ö³8Ù &•Õ6‘ez[Ni[D\•Kž,„¹.´+.I­z‰«0„6Ô fÜATª°ÈÈØØ$‹S¦ !,69>J}ïŒFFZ¦¼œ£²RwÂõ¡. mó»HK(__¾²êÏHn5íÞK¨l©:%Tq‘å”Å$Í=+¥/ÉšpïF‹·*gu-žÊΘòºÝœÞ6ÎÚkj!†v-!´¡N0ãZFZBtLÌR¾Q‘ˆ(;Ý|Õ©£&Ü›ÂiÇÒÍ½ë• í©K–VnÎÎNß¼4ÆFw|¶Åê»áýˆҗš¿¹J¥ ‹œPq1‘­ë˜TÁíÊ¿ëUý÷µhpÏHŽYº¹bì–ï\`ZÊü/Žj>Óìô¥1•©Ï·>Vö³§­/OÀ*álÉ2ù]ڪȤÝ÷ª¼|–¿PÖª±¡ u‚whô22Ò¢«ÜÍB^qýªï@u*¿`¯yÇðøÝ±±ÉQ™Ñ©|õïëÕQ÷~ë6xuňÍon«‰ÑÜ`icv§|Ž¥"¨­V‘‘–š–jµ±rt•œ½1@½©zé‘:<¾r[U䢨Ã|z§&Dß³£:*¹|7áäwuh×Bê3îЈ…Å&'ÇG…«ïéWT«ÕáQñÉI•7ÓPE&Y-=£6oç_ÏËÃã¦Ü;W¢¯|¹:<*9©â“¡_Tx•—GÅ›ŸsÅL¿àÊå÷‚­j«‡÷h‚Ð{þî•+ á#D¤<Г“îí‰äÓûžô-?Ë›I $¿+C»6ÚPW̵kׂ‚‚\= °¼sªƒÍŠ pØš|G›7qÚÐøåææúúúfÜœÎÜŸ™‘ºÄÞJóÎRÙû)ÐBö!´ADP¸8›*rQÃ} T~T¹Vj¡ âÂÀù,?ìßàÕ1•§[)<¾aÎð¸„6ˆ…zÜãââŽ^ë_È0_Ëd狊\=(€FÇËËËÕC°Æøÿý!ìU9Áà IDATÌ-Ød?ÀÅ×ãÞß`´øà<­VÆq® ÔNú;¸m$€£DS¸c¶@¤àN!šÂý¢…pœ˜ w…Â@P¸ˆ w@á (ÜD…;€ pî" ¦Â=ç—Wêà8Ñî9¿äì_°ßÕ£€ZC€8…h ÷sL[>Mò‡„L® ÔÆþû'œìêQˆëêKLL´Ú2’Fz-ðR¶ ÉgRºdPP½ª>dù—ŒÀÍ4ÒÂ=..Îü5ÿ°Ã{ÇåCô­ÚÁÇuã€jT ðý öY>¤E®€;M«Ì䃓Ñ" Fp§MáND¶Z$‹®5ðH VàŽSánË—ä_Ì·ÜRœUìªÁ@Í!ÀjÎ ÷1ÛÆì˜¼Ãý)¤ø´F<€ ÀjÎ w"šqrÆŽÉ;ò.æ§<2f×8Ž•p®ÔàùóSH·kœ„u“&§sŸ|ìuzVê#Ÿ¯úä©݃[øùðñ1¸zHP3NÎøü‘O†®êâëê±4^îS¸§u[÷÷ÏÅÌÝyéTæÂÂÓ,‹Â@RH‰úù™´Ø4«~w°ä&…{Ê)A{&èCýøS®&=n¯ |‡Œoˆ/À>w(Ü·<¹eÜ®qÒP?þጓ3Jn•¸vHP|€›;dàv4Ò;§ÖÊkŸ°Z… ©ª©«5‡¨9w˜qÇÚa"…¨9w(ÜÜž˜ ÷u]×¹zPplj¦p_×uÝÄý]= ¨58€S4Ò‹S­¶Ì>žì«z_w­Ñ×.ÔDÕŸ¸b“6M\2wÒH ÷¸¸8ó×üg@Ê#Ï<ûçH­¶„¼8«óÎçt hÐñ€ Uü«!_=óÇ3‚;#ÀjN4­2öMYÓå[ŽÈ÷c Çr~ɱÜRt¥¨¡ÆÕ˜¸¢­w8@͉¦poÒ¦‰­É‘ëGî_°ßœõÉí“›c`€Æ¢Ú7×îp;DS¸‘ÉÉ'Ÿûâœæ¶&Y<ãÀ É] Y7Ô€ËØp¾vOnŸ<ýÄtFÂ4äÀDDL…»}ý§öÏü!sœf\‹-švkJz"£«Ç50ùàä/†|1yÐØAR©”?åjÔb²@ø¯@/8€}îP¸5ø«é'¦Ë•rþá䃓ËvHP|€›;dàv¸Cá>fë«¶HÜé@à5ç…»Â_áê!@] ÀjÎ w·‡Â@P¸ˆ€˜ ÷ƒ¯tõ .àŽMá~ð•ƒþüŸÊù7ìh¼àNÁºz­¶êz¨ä¹’f7ZÅ[=uêƒS=æô y{ó–ÂÌBêìW*ª¸ÿszîÌx›°6æ-…™…~íàiágþšÿ <ØÚØZo’qV;O¾)b“öÅV¤ò#¢Û~8?{~CŽ̪xÁ¥[;óÞq¾vG€Ø!šV™þêþt` øìø½ãoœ¼aÔê?l»2úâF‚s¯…;=îã÷Ž?ºøèõôë¶ýpÎ…9Ä4àÈDE4…{9=lµHò:Žô+¹Y6áë¯Z jÚ´?™fl`Gµ>~ïøÍG~1Ræ#k°QˆŽh w"²Õ"ÉûíÓ~!ú´×£Ï°¨èf``Ÿýÿ°í‡ó®=Ÿ¾$ýzúõ€èˆ©p·ãöv›âM’òS® Jvqà;dd>28€}îP¸Ñÿ‹9æHäåÇï¯Í׺tDP#|€›;dàv4ÒUeje⾉¬×=oħµ«5‡¨9w˜q· } 8@͹CáàöP¸ˆ w@á îP¸_?Žvˆ æÄT¸gÊÜ~î‹sW\±ÜRx¹°AF5‚pœh ÷¬CY'Þ?!øÔ°‡^uZ“§á.÷_î÷¿ØSm€›kw8€¢)ÜO¾þý„…A’¿.>;f똢¬b“ѸÜùè¢Ñ—%—xx`ˉ÷OŒÝ>ÖÖ³c¶Žák÷åþË,hȈK#½óEbb¢Õ–ÜÅû;؃©ÇDÁ—(T5Æý{öêó)‘.ÃD"y},U ð‡>lÿ%c¶ŽYî¿|ÌÖ1õ6(wÐH ÷¸¸8ó×ügÀáf#5 Ö·ºfë%… ¹ÁmgÿwöC¥…m¥ #b¬`¡j€ó}2ÁÛz ?×þõد‰(tphý@”DÓ*3vûX[-’D´Ü¹â1Uœr5jP²4Õ8ß!ƒ°O4…;Ùj‘L}(Õ²-rÌÖ1šMC ª‡pœ˜ w[¢NGYmñiåãŠ@í ÀjÎ w·‡Â@P¸ˆ w@á îP¸gÊrõ .à5ç…ûÅí3¾Í0?4j…™….Ô æÜ¡p?üÜçtÅ:"2j«BVùµósõ  z|€óµ;À>¶¡¾Qöæ˜èÔÊY ßæ´£Ú0ê½oq¾Ü*ÕÊG§óçéÁ>Vû‰?2 a€åý]½¬‰ÌiƒpOõà;&ï0éM{æì‰¹#¸€°p'r8ë?lûáÀ´ÚzÖ·™Ôd¢±-xE}IDtæO2,wè6½ÛÆ¡'ì›À?Ì=—«+ÖµéÛ¦îðŽøükóm=;â“´^ùÔ#mí€ µÊ|ØöÃ9æØzÖ¨5æ^-“2Ü©¦Ÿ}}ÃÝôt""£ÑrŸf› |{àÆ¡‰(÷\îÞ¹{ú  Ú_²jaÞ‹æž™ªàÔÀ3îi #ÒˆÈÆÌMbb¢×þûv'ù a J²~ʨ3® Y´¥{FÅ)×A!¤8HëÞ­¾=pUÿ Z OÎ~¨³É4R¯¯ó;ðŽøœ sd>Âm-|€ó2æg½>›ø_ßo=ÇpSN­Ë{¹+ÜU‘I»#‰ˆo–Lˆ INŠTݳG\\œà+ùσ1K£.<òŒîÅ*;l¸!æVÌš#ù‡£6Œ*¹UB̈́Ǒá£ÈÕè}¼4 CDÿQ*;šL]î› ŽøšNklõÉðn~ȸ`áND2/™Qw^áß­ïÀ ¸ UF9%œ2®f×îUs.ÌIí´’• <5-}šÕŸ–>‚É=—ûGôž´óó'ÿo@ÇŸ¾¦ÑøpW»x®:ø‡m?|ªV¾wîÞé'Ì=3žF4=î2™Éš(ºR´wîÞÞ?N§ŠS®×Ó¯;it`“³œïA€€Çj¨Â={sÌÒôŠ/×§Qx¿Ú¯N`«E²†N¯:mÙÙºwëÀû9 €G@€4 Õã® ng¾²ÉÉK×”O+ëÓ¯2o¬ P8@ãÐ`§†ÅîÞÛPßLPÛ¾mwÏØÝö‹QüCMžæÖ/·hÔý.@ã×X|ħ#ø‡|€‡†‡ºtP M4=îŽkÖ¦ÓÓŽþ÷(iò4©½Rú¢Àøî» Ì ÷Œ=Ö7ìàLÂKÅtÝ1$<¤ðbaj÷Ôþ÷‚üK9SÊÔÿ@X­¼ÓÓvNÚ™Ú+unÆÜú@£ã…{ö±ìó›Î›jò4ÅYŶvnÐFW¢kÐNzX*=,en2ÌUÔî®Q«üÇÑ?‚7ÈÐw(ܾ50s¦¡LO§P}C}÷Ôäi¶¿º½¥wËöoµßRº¥lu1î®Á8_»W੽Re-2÷Ìxw(܉(bM„Acä8Z×#µ×¦ù§NI«î£¿«O핹,’*N¹æüšÓà#€{D¬‰ÈÜŸùÛ'¿ÙéᜫÁV•©wŒ—’ˆ;ñÍ«^DDGÈh¸g‡/˜›1÷ìßå;ŽîXr«¤¡G U zgÐZõÚ¡k†ÚÚpóC8x&7™q×äiôùw9b&õ>¿rΩýûï‘ÑxÏ>ª*«WÙº±64¾&¦ ÆÜ3S€ÄU¸ýàvm¡6µWªÔ¿)UœrÕ—è«îæÝÜûPÜ!Ë-™û2ëa˜`Í~€ó³épûDS¸ý]HxˆàSÛÆl³<…±&B0÷ÕO¨}C|Ïo,ŸÎYÙjeè`, PïœàæÚž©‘ö¸'&&Zm9ðDÇÂÉÝZþx¤êΓÒ&Ymñná-xØžÏõÌN¾nÒW¶Zñ|vwV~˜¡'2`àU ððû&Ü'¸s­üÌê3‡âýöÉos3ç2,§‘îqqqæ¯ùÏ€ö{/ùGv¾m¾1GÍýc¨ÂdàzÌÎòñ;@DD ÝÖ{Ë›Ê<2P€_M»j«p¯•žÏõ\áÿ~÷9=Ye凗®X‡!šV™ûÏÚ¥6š<Î÷óÎʼ>ªÉß¾°°¤d;1Œöó¾ŸëŠt–»éŠu6µb«Ç½VV¶Z9ïæ þÿð·ìwG€€çMá~ß„ûlµHÖÜÊV+‡|Љˆz>×Ó7Ä÷Îù;üöÙçf¯ë¶Îý«CWË›`þÀ9œàs3ç²JK4…;9x¦u×´]s3çJdåo¹çs=e^2ó³ó®Îã£uèêYggš'œÇ)nîA€€gSáî .‘],Û"‰ÈêÆÚ_‹Yºê³Ïµ iáïçéƒE‚…j|ÞÕy«BWM=6Uá§hØ¡4w(Ü/~sÑj 't «¶H{zåiË-ÙG²-S­¼ucÁ¢î«r²n_/*:&•:}¨`ÉY¾:tõ¢¼w>ĺßÀ¸Cážs6ç÷Ï7?,¹QR|­¸ên÷O½ÿîÍ»×O\ç¦>”ÚªW+ó³«CWËÏÏåü•ü)×ú3P-Ü\»W ðYggi™›ppoîP¸÷{½ßõ× :•Ü(Ù¾Á7ÄWpÏo Ôë8Ž[ûÐÚÛz\ö¹L GDË–Ï:;‹ñWò»Í»:¯ôFIƒÀcñÎ×îÕ8_»§>”úÔ–§X¯òÎ>ÀÍ2ó®Î+A€€›r‡Âˆ†& å &"Jüe׋Ïcm®Oï?ÔŸ8:yâÙîÏNö™Ì2ó2ç­]mÞ'寖Âwçš4ôú‰ë§“NoßðìŸÏÚÙsà[¿íDÇÑýÕþæUÜnÊM w""¥Œˆ~]<èm…âm…‚ˆîšMtéËœ„›V2-91ùdñI"Ò0Z¹¯|AÁ‚ƒ¯$¢”RÆí'xO¾+®Ôãø<Õ#ÿ~äxâþGþýˆýÝRJ{z¢Qo´ìwç|¹ÿrB€€»s“½äF‰±XKD‘G.¿ûщÝ%%DTõ^M©¥¶œÔ’*N¹fZ>ûØ ýòÑ/QùQªª¦]š2Zëè¿qòÆùMç-·äü’ãäwàaø™ù×_1÷Ìâ;düÕþ‚Î×îãv³Õiƒ7à…{iNé†ð ?%UœrÕߘm?°àÀS[ž’”/ý;ð­F­Ñr‡ôuéÝ;v_Q¼¢ølqÉÁ2Z!ìÕ°Ìý™æèOnŸÔ-ÈéoÀsðÎwÈTàæ™ªžò@ÊòËËSH±õààÜ¡pß5}—e[äФ¡¡êní·³l‹$¢€Îæ¯SHy¨ïC ¥bAÁ‚e¡Ë8_õȈ(bMDæþÌô-VµOt*ꊜ½ÃàVu䬷k\f³LsÏŒ >ÀÏo:ŸÜ>yú‰éÖ>À£ˆ)¶.l» ¸}üÞñV[¼‚¼ªîVx¥Ðê<é7ø/V4_1n×8¥wùª2 ”ܲ¹(AÈÇ#~œÿÝá„ð‰!AOûøDúø¡v°«¾ÜÜ!³ `AÉM›±&bÌ®¾ÿéë(ð]9Ñî¶]¸´ë’#Gxèù‡2÷gæÿÏ?ܱ) Sù„Í”ÃSÖXoÞsý€õÞA‹dQZ»U'2_ˆ:ø÷—Ÿ`Ë¥]—†§ wð æF—M›ú/î¯ð/_¸p~EÈj|ú‰é^^p)›ë»Vbb¢Õ–ûè>Ù.ÓÉѦ”Ð^DÔþìö.3ºEwï‘ÂOÑnpàϿݎK]۪ǒ’Ò@¢ÓV¯-Ë-óiãSZ\~áÔÝëweÞ2Çàfªx‡';8åÈk"þ×qmøÌnmÂÚXnWø)fõAà“NnÞ½¹àkù/¹QÂ7É À@Œiágþšÿ ø]õ»öI­±Y•¥^jéÒþ«I9££N YÜe|Ê!Òjø§®¿ÝìaŸÏÂ#çg,Óè©Ê¹Öá)Ãå¾òÿ,:¬{gð–‘[Â^ âVª8ß'ÓééNySĦ™Ÿ8›röü¦ó]Æw±|jË“[¢ŒoxRþÜ•ç_Ëøý¿ˆø(âà«à F¢i•ž2ÜÁI"Ú±©õ}~TqÊÕò¶Øë¬oÙS"÷¡YgŸù0x7gj[õår_9 Y4俉›ýôÐýãî÷kåÇä3L.N°ÉYÞqÿ6am|تa~gÍ=3Uñ>õèÔo¼oÂ}ªþ*ÇÐðDS¸‘­É?¿üÓj‹I_õæKtô¿Gû/îïX~n4bMDin)ÿõÊ6+‡­¦ð%ª8åZ’cóŠÓÃïnÕ´Õ~ü{÷ß…™…d ²¹€9)ÀÍ2Uœï)pÛ«ÊlyrËÚ]kÏ$ŸÉ=—[‡wàZb*Üm)¾VüËG¿˜æ_Ì\̱MŸ6Vm‘æVȧ¾zjû„íæíÛ'l÷PV=ÂÆ¡·<¹¥ë£]½d^SMÝûâÞü¬|ç¼T/.´,àa¯†ýÒó—©G§î»7ÿ"DÆ ÷‡_~¸ ³Àh0QþÅü“w4U5­ºÛ“7®»f¹åöÙÛüªª‰û'æ]È£Š³± +ÐýÒâÁÙG³›‡–Z¶3¯Õâœ¯Ý ðu]×Q ÜÜ!ƒ1r‡Âˆ½3ˆLí½cö[³Ùï.ºí÷ß~?¾ýcYnyÌžÙ{¼[TÎÊ4iÓÄ[í]v§ìó%Ÿ2ö)ï1Upÿ´û,ø1áG":wÈ7ÄW5]’ôΠ‚Ì‚ã ÇwLÞ1ãä Á}ø7×îU|âþ‰I-’,Ûi¬ðÎßW"å&…;I$"êíÛ[‘¢P¤(ˆˆªÜ6;rwäówˆhÏì=êájŸV>–ÏÞ;klj1yDJYÊ[š„ªß¢Åƒ-ˆ¨ßë=Ëî”uX?à_¯4i2”ˆøNPcÎ~ð`ÊÁg?hgŸÈÝ‘|í.àßÎúvƒnì·³¾µõr>ÀùÚÝ7Ä·çs=5x€ã&…{þÅ|ƒÎ@D9ƒrŽ=v¬dc ‘ÀNÔ¼—Šˆ>ÙÑ2ü…ÞmÛúRÅj›"6IZ2¤ ©û¦ë|L͵·õ½.ÿ—ÜǸ/¶kYÙÛeeoq ÕÇ›ð|‡LÜå8sÏŒ-‘»#wÍØåßÁ¿óØÎ–Ûù™ãmÌ=3¶Š;ô8í=wÈ9ChXîP¸])Ú1y‡L.£ŠS®º"­sNß"¢±½2}úç… ÅD¤ÑÐêv«û/îO>D§\Ër5U_»wÎÞCq‡”~RVÉ-(X°´é±»·ºÕÓ›ð|€ó2ÕøžÙ{†çÏ>šmÙïÎ8ß!Ãxé­Òª¯åÜ7Ä÷¾‚½ü¼»¹s@,Ü¡p?ðÒ˶ÈAï 2ê…ïÓ´göys"š°gÜ™e?Ju婾4üÀKÌ»¥-LSø)ª¾Ü/Ôï¯mµ +o¬š4ôÚñkUw€ªU€«‡«ƒ ‚ùžM~ùôJÕW - Ƹ¹Cbä…û˜mÖ’òw´¶òóŠŸÕÃÕÊæåëDîŽ4¯Öylçá)ÃKsˈhÇÄÝ¢ºId‹Þ8ö›±ßþMD¿þûõ×;ŒtÎ}¼knçÔV[ŒZGï& à*µ ps‡LÕÿ¼ïçTàm|€ó»!À@¤Ü¡p¯!ÿöÖm‘­nmþ:ð¾@eS™±ÌÐëòæîËçy?;§ê:=Ý)ð¾ÀÖýÚ Æ­§·î\·ó¯ˆˆ#®¾oöà3~3îóÃïç}ÏHqßVpsÕøð”á«T«ºEuSG¨Àøð”áëî[wýÄõ¡ICëwÄBàà 1îÎL\þþráåBË-yåY>Ôk%.M;@»x±vö3¶Ž“s'‡®ÙOÍz{õ2ö"¢B¦À‘ÕJÈ s{ðÑÿý¼ïUýUVLÿÀ3Õw€{ãØ×ï 9öÆ1ûǹyêæÉª›§n:2˜:C€€ƒDF­qUÈ*GŽ0äƒ!ÛžÞfД/Ýx$þˆT!5?»c♌$æ‰/Ç~òÒEÓT=Âñ·ÿþùï†\ÇÒä'3ÿd&åOrdHupåÀ•vCÚµ®çÿÝÿñžpõ’gzM÷òþD.·Ú-çל€-Î psí^5À»EuÛ7µ“¹g¦*>À¯Ÿ¸ž\Áï¦/Ñ;2¤:à¼ÇÜ뺮SõWuÜ•3 œ°E€€-¢)ÜW…|skŽð56óÌÌœ_oÑ‘ø#Þ-¼ýÚùñÛ×vYÛ-ª›”%ª8åZV °Ú€T&=±ô„wo~·‡c¾úÃUGÆSç>;wù»Ë?|s)7ò¾.|17B£‹WZ_‰õÛ'¿YÝe0ï|¸ÂªU1·b<ÈÌ33ùÚ]0Àù™ò¿m3Àù×ø…mºOüþ¶ 9¿ä˜tjp°¥‘î‰ø-q…KüüBd²oì¿°ZÍû´!¢Ï½•Ïý{ÐÃM›‘¨×‹½N-?eÞçÔòSroë9l"b¤Ì#ñäþy‡ˆnžºyæ£3톴sp<µ5âÓi ÓJ:ÈÞ ï34ônßÔ'ÉXõÿâàåƒ-ï2øÙßù¶ómà¡€gªàó®ÎsÊ‘gž™¹aÐ +ùgÌ?ÍÜ×f€ï™½‡\à ?EŸ×7µÖn˨-R¥´ênp°…uõ„ÅÅÅ™¿æ£?ÑïÕyWç Gªîü[êoÝ£º[n1êŒ$°œ#Q~F!ÝG½6›7¹‹÷?üf’¬”$=ŸëÙ²gËKEWHAßE"• „iï…½‰èÇC7‰ãÍÜ8c¾‚R×ÒÌ9ðFk-maZßÿô]Áʸ#·ÿ\óçÈ—G2‡‰†[ïVðwAäîÈÍ#6÷ú÷#‡^:0lýH—ÌÄqŸfNU5ÀW…¬šwužes‹™`€ &0‰?2ðµ'V)»Mïæ÷òw>À7El¿w|y€ }#>À‰èë1_k‹µ÷O¬Ó›sà·_üeõ/lücxÊpƒÆÀ*­?ˆÍþÈ¿9ðÒ'¿x²ê>à™éŒ{U1·blµHêŠu–Ó-¹çrùó¤FõµP‡ldä Í93óÌS[Ô%•·ùhÖF*—š ¦v|ãë^¯Æ ,Ìc eGÍeLf&“™IDT\hkg§»üý宓»ªCÕ×Ï^$Ôå».Êe^L©õºéï¤çžË}`Ï„­‘ßløÏÀ^ÿ íФ韻 V0€†æ¬÷ná}ÿ³ßò=3†2ƒù©6amú/Úðû&Ügg$~¡~§³ŠýBÿŸ½ó ˆâêúø¹3ÛYz¨¨Ø–Øcï%£1&Qc4&šž'QS½÷®(6ìˆ Šˆˆ(½÷¾°Ë¶id‰!åÝÿ§aö0sgwç·gÎ=÷Ë?~1Bà½Wö¾üýåÞ+{{ ñ¾%»àS.L93åHe=lülªÓM©2&™dÀ¿Èq€æR$».êªUhñŸÊäÊË .Ë]åÀÒ죃¢›Ü. IDAT f!ãBÌÝÍ%n ¼žsN“Â´Ž„:êï½ù¦nÄpžÖ}<./­.Ô ž+'œ® Y½Z°$L¼»ýî´Ûi]»Æ¹Çm«Ú¦Ù§1Îü±sÄå—¯uÚ“7÷íwh·9¿¬:Ÿ$ë[n¤&™d’I¿éÙǾ{c€3c pC†Œ1Àî}Ø­²Ûý›xÄŠˆoãg{ô¾4÷ïÂпTàaKÂVä­HÚ“t°×ARÊ39€¾·ÓÞsxx°×A 7SªŒI&™ðïrÜŸ¡ ¯ƒ0‚¯¼{bÎ ¡ðåÂâ¸bŒþˆ#Ì=ÌGî}*§Ä­Ÿ›aûÊ;W€ ¡ÑëúÖ­;ңς¡º¼ºÐ7B}dÐfR¯!^Y²þÒë2–^©Yˆœh'ÐÕêD"Þdžú²zVÏ–ör­u1gõ,!"8®¥¢L2É$“~‚¾Ò*´‘+"//¸<ëÖ,¼Sd.z!€{ òè¢èôuЉ'xÏ‚Ž3dþ^€ëëôð;NˆVÏšn’I&5ÖÄqDLÏ O …'@¯ÒÝ8´8®8xì©{þvLJúÌ>”vÕß_'jH©Ë¯Ã{»ìõä$O¦\©Zñ)”ÅÊv3Ú©ËÔ@«éëË®»õu36ûKúFè뱯;u·,P:ô‡#sc6‰ESŒcþGyåçW|;ª8¦¸×½^ï=~y TÆ”*c’I&ýãä?Ù?mÛ-ÿÉþ†=ºZø©±§¬|¬´5Ú#4þ—&Ç2àÚ*­ñ)0Àã~Žƒ¿àãOŽßä´)èë iW§*7øwß8>ìx§yfÞœYr§¤…‡j’I&ý3õqÜ+“+YšeÅØ›««Õ@ "ÎÏáõºõu…½ §Æ,¤‹Ûij4³v-É^E•÷`ð¤™d’I&ý]jàµ9µà›œ7½ózÙý²3SÎ,*[´ÙusMVÍÀï6>ˆ÷ï€7övÜkßѾIVI€oóÙ¶X±˜ÖÒ8g¦……Îwõ½«%q%3oÎl\Ç ðùió÷wßßfR›·ß*Š-263É$“þê¿à¸;6®É<*µßúòVäÊH7{·GºG”œª]6þhñ–ù÷Ëï«ßWë–èž$C²,.‘y#½}Eâ'GŸtéá‚·3/dnmµUâåxʵåïÇ;wwÖKõ,Å–ô.¹çw/Q’hl6é̤ó³Ï§Ë”XÒ׿<õ;Òê<˜reL2ɤ”š¸™“ø€5>þòãÊÇ•­†·JÜ–ó~LòdCÎŒAùáù>¯^/Š.ÂcðNc€/,^7À]z¸D)uéábåmÅÛ Ž„¡.ƒ=ˆU1¹ŒžsjߘSvŸö‰®Ô¦”?(÷ìI©$©'R =·ÿ¤p„©±²/eóZ¾_ôþû ¬’ãl¹Áƒýmü—1KÍlÛÚºôpá˜jBȹôp˹QKH^ÊPM2É$“Z@€»õuëv§›ŸªX¥ÈUûæ® ߸˜cÄÇV>Vý~8ä9ÄóÎ÷w°ï~rôÉ^+zÕdÕ` ðì‹ hýžy>ó[ÅlE®b³ëfOVxq\±e~ŒK—¢¸"Þ¬}“L2éÿ¡þËŽ{}™¦ï—}g„ÏPd+:Ï œµŽDç-8£$`QÙ¢¼ëyØòp¿ÃV>V@"ðïg`«Ê¬õ.ÍËÚ9ÛÅm®Lv›$'ŸŸ<öÈXJ©€÷¼raŠÎÛÊø¼Í!ûÒ*´55†?ÓCÒs®æðZfžÏôï«© -8ÍŠ?Pý?SÆ¿…·¸ý·ŒÄ$“Ljy© Uàû{ì_Vò‘^¥/ˆ*0dÈ4[F4¼WB'3¸ðYÿáí]ƒÌÍš¦3z¦Iöd^xÞ³‡*2{íFzHzfh¦];;^˘U1#÷Œ”Y i5ý¾êljÇfJÆŒ66sxÌ™ÉgŠo—p®ÿÒþK?ZºÙn3Ô£Mª Çq › Æ®Šm® ºI&™ôß“…§øÂ’…ß þ‡4|ÛðÆÏxÊñ‡® !QWܤlËØ#c/Í;ÕcY þ–F-ðª>Xo»þõØ×¯ÌèyZ§b€_š{é5!òÓȰ…aöìŸ=†šL7ɤ¿HÌq¿ý˨Q‹‚ _òX^¶( ­Uh­}¬i-eÓS‘w+o{Þö„Ö·iaC$ ¾¬Á‹¼n°Ç –á &½&ëb–Ïk>e²q¤8èQ5ˆ\…D}I=h ”ðÖÙÇ—%¦×Õ4 y+ •W>q¡ãsÒTh5=ðûç^;¿åþí Y¥cÚܵ–E  Ô´ìzç#>ŽP×P!÷ ½øú'µй‡s›ImêTJŽ€v“ÛÕl­i+Vð¢8P•ª0úcWÅ"¢$ÎTÉØ$“þ¼þ%WQà7WÞìøvÇ‚›Éû“4ø•w®À€wœÛñZÊ5B@8:f…6tYÂßÓqÏë·ßɾ’mÈ™i¢?ðû[îg†f:ttÐñu'ßÞzûËw¶Ý÷S!äùÆO;•vKáî?Ù?ådŠaÞà_#ÀM2é¯Ñ¸gï{gÖ/-4ÿufò™²§TŒ×¯VC[1£²©»zêªù÷æùö9K>u€Ìs™˜ãXm§µEÇåÈÝgtöÎ,û×"¨¡Tt‡h&”á¬8T‚"VDìj·KàlxÊÕæi,÷þî•É•´–Žüåî¡Wƒ}¿éwçni¹‘ ÞX‰ aK‚ïߨ5±»—öÝÓÏsÿ@ï/$’ÅRiËovxtø‘HÈ €Þ+{ßú1ÉÄÆÜÛi¯÷Ho§Ö˹^;¸²mˆªç8æ©§ŒŠ‡¿óÍly!Õ—Ô«JU§Æ‡ÄÊD;ZÛßýeØÏbq*ÑôK»«Ý®&{4•š–¦I&ý+õϸN¥ÃϹ–³tkGçnÎÜcÇ¡>‡².g Û<ìáÞ‡Ã; €òÄrCƒU ðÉ¡“-<,~Àã~Ž;1âDÐ×Ay7žq7sîÍÙÞz;ð\‘©¸Ù¯mØâ°ö³Ú—Ä•0cÛÞÖàòb€ÿ–{ýL€W&W&ï¿lÓÆæäè“^ƒ¼ž}u€ûóÛÕû£úâz+¾åOðàvvLJ§µô’š%´šÇÅÇ_ºuTøÒðØU±¶mmÍþ§4”¹õ7 Ã>ãµ4Ü$“^HÌqïµìÖƒï~y1œ5„÷\Xrá£qÝ!ïB"vU¬áÏâÛźÔ—k,½-ÛNoËê¾.oÝ…¼Þsf Ž+«ŒÓG§_”Jßì°ŽP'©³nov7íA› ºmAtGŠY@ T:èçAsÎUWkàÜôsoð–èêöA·+ï\Ñ<,¿¼þUÿÝ÷½q+ú“"k”7︳›{#×µ§«*_ż>õ^Ò=Í y“$²›þ‹ÔZª­Ö² Lj9™˜ˆxÛztëVÃ[ék5€ çòžWV‹†ô16SW¨“ö$ÐñqÄ?§Í)$#–GØ´µ‰žÖÁ?Q;¶CÜ™“.$„ʦsê uÿïúcôz¼ÝÌvŒ–'mô/TÓUXÿèH˜Iÿïõ7ðÔÚœŒ±c×U©ÊÚÏúþ¶ûî®ÒõtI\‰{;¶Á™R›Sû\€+rrÿGµŸÕ¾,ñ9Þ°àQ»Žîʽ‘ÛÜ W p}^vW¦¯Óëëø«`€§O ›áÛsyÏ;?Ý1sj°€ Àërë²o¾wqÎÅqÇ›ÖýÄ2Ü$“^H*â~û—oÃù_ ÿöÏ¡e#á=½Ö÷Z [àÆºwš×‰Ë@ñíâ[_ß2s6‘L}1;ëB XÒ²® 0`Ø¿aó\öçß´d˜ † º#N"ú~Õ·2¹Ò¹¿›S¤W†ª8Ù¢v ù«hÑf6fÐ.ª]àû­-è§\ÉäÉîõ:qAGG//mœ–‹åˆl‚HoÞq׳VV5Y5÷<2½ÝûI±'¸7ÏÛ”(3£gžq‚‚è7Z&^ûë¸ <›½8us²õ¶Ž;"¹5ä³ÙƒÀ>ÍCçnε9µýGHí¤µyµÏø\ZR”šò›ä—{5×ÁÂ!£—Ý›>vïÓ›AUM÷¬Ð,U©Ê{ˈuVë6ÿrÏÈÔ¯Ît~·sÑmþRôà´šþuòTÛ¶¶Y²ôÊí7bx^X^Ø’0eÒ¹»3¯¥ à&ýôÇý3ï7·poüj¯e|{ÿœšK‘€âÛÅ 0š=ûóÙ[5[@ì YslÈ1@H Úq>Wþ(9-Óýs ¤¶R· ßo:¾Õ/;eé4©½R «Ô€X(€¾(¦\o‡jŽóÂóOŠø÷Sä*Œ“}%Ûk˜—V)$H6kLaÄVù;ý.3ÀiÂçÑZÚ!С2¹’°"E‡ŠjP›œ3J¾üëàS£O±zH´`ÜÑÇùA˳ÿØc2G™ØÑÎiؤì…ï>®#Ÿ×c GêñT „I3;Êqee.dV ñè%8îU)UMwqËí Ø…ÑŸ¸-1çZËðüt‘"2ê˨Ww¼J«ëéî%ׂ}yæsÑ:ã÷$ýTºÌ^VãN:sΊþg{/‹ÓnüçÇÿû…Ùw´J„gfœýyÏøÃ§¦®ýlÀT3³÷ŒŠe†f6Î(/ÕTýsë'ð|‚â„2áÉÑ'1ô¥¶RœØ`Ò¿Kÿ4€ßúúÖ׊9†œ»É1Àß¼÷æ«Êe¿ÿõ3ü‹1ÀíìŽ9Îè‰D ÔkiD@ IÃjT pC†Ì³Î!®ÖÁ§õèÖ9Wršsã 2ܱ«ã¡^x›×|WÀ®ª—ž{íÜù×ÎóF—1À§_Ÿ¾½õv]n…·xœc pFÏ_D’¤¦JÃ{Ïþ1½,€‡¾ú-|ž¸#Ñ­O¦+<¸ÄFbSi#s”Im¤:1Í¿H€ŸqvVè ×Þ®Í=w™nÒ?A|qêÆ)ü7aË«üAù­¯o!àÉ”«¶F ,ÍÖ—×ã¼F–ÔWÕÅ!&Ã^Â< IPê&Ø9¨/xö#+¹B±´¾¢{åN—wðË>c}ÞÍW[­€èo¢E"W<ŒÇÓùÎ¥wKemÔàqÕ½õ§^ó·½5ˆ?ë„raÞõ<Ÿ±>´–2lÀ©‡ãâÿk¹Æ–JJ8N]œJî• ¾è¸÷ïì‹Ù: ÎçÒÛ'•9É Ià¨ðV¡Sw§‚…2÷˜xGkŸKG€°A³Cýý }#´ñ¯—º\ßp$@´šÞ°+fݽ¸˜¢”ö[ÛD ê§ãÓ Åt[ÔíÊ{Wh{ÚºÄl¼ŸûÌ…ã—gL1>‘Ï8ŸÊÇ•.B+©­.ûšÓÃÇí'ÿùñóÊP:º±8àh ­Uh¯­òö€#‰m´i­ÑÙ¡QÝt–(ãlFi|éÕ…Wÿ¢qþU$=µ«(º(î§8c3H %ÂÎÌÿpÕý‹wMð77ß$n¶ÙợÉãfŠ&ýú'gÈ48GsàùáùæƒÍUŪʔ§¼á&××éeñQõ%õî}ÝKï—ztv”XKÔjK¯†ö¨à›œ6Á︭,¬¼SΕœÞ+{§‡¤?û Ͻ–»h^mþõüVÃ[ñZb€;uq‚''Èfž}1Û|4Þ0w376Ã/XîQÌ:uwR( Ó ^Ïxüºøœk9,Íâ*@MdøÀ5ß%¶µŸÙ>?’'Mžœ¥ØQº“…Q…f.fRë¿*áçÙÖû,™‹pB¬±þc—ÚJ-=-Efü³4&€ÿcõ_蜿>Þ =—÷D¥Ð}Ôï›~”˜íþ™"@£A.½\ØZ r»£?ÿÆÌ W6xêÛ|û} Ñsº*4+Ì\ÿp¨›oÕVkß |tðB ‘PÒÑý j-WàšÞ'{:íYX¼!,ç›æ»¤ÛÁFž€Mz¸ôr¡5ôœÙN8åÔLžœïê´êЇnžöˆà’®·‰ï¢ü±p DõŸ_V/2›y£_]®Þßs?~Ÿ ™ƒŒRQ·WEïørPè¬î§'®é‚§:Œ"2akB‡7:0:†µ­‹¹ …. ¯_7>Qö¥lëÖÖÈAE¨øOTÆ“_‘gÿäà±YOä”Êó¯76ãh.ÿF>­¡]„.÷wÝ/Úõé[ÜWûÒs, eœÍ8ôù­à¯'ð½h.M'ã¶ç)ÇR^Ê%ü~ÕÔ]š{ oE…}ÆÛX›žõÙ€eÝŽ†Ö„Õ¬û‚»TÛ”þ ÅlkµÍðç®¶M«5ÿÕòŸ‹±žÛÈóߥæ®.Wc€G}5nû2çîÎ÷>4˜\«ÐŽQlòìñ`s:ªn«ÄVb÷~î¥ ¥Ø|Aî‚ vD¢îvç8¥¦ÚµJñŸê³:¦ãœŽÏ¾À;¿Ûy?:Îë˜q&ƒ×¼Û’n;Ûìôä1?m¾Qüà Àã7Äøå@ûYí#?4<~4¸JbWñ°Bj/ˆ‚-ðèï¢gœz—RQ¼E` Y³+fÞƒÝxkøÀ€À ˜êÒÃ¥.¯®¹öU/ª¸™³Y‰OIú™ô¢[üY=€G}uuáUÃC׿à¡ÀÎ/Yl)ˆxÒhÁð¿LàÿÇ}äž‘Möàœ-©³Y^xÞío¤†þñNþü/û¬š¼gÞEi|iÄŠ—^.ØþÌä3Z…Çìk³ký'ùgÍÈååÕQ0ÅêÂìíŽÀ>¹1i¢¾õÓéVèt+à©§ó³;ä^Ï¥,)Hô@SÆí¦Ù953G³¸ゾ –eàÀy‡ ’‰·ÒœŒ-=_ñ̾˜  ôƒòå\Wžž‘ÕFΘ IDATH`#Õ1Õ[Ãߪ›Å“ÍIˆJEnz„8¤çr;GBÂ[F”]~ûri|icã&|¾Í„çfž‹*ÚÛë@}'§\!©D8†#„ĉSf÷ÞܯìVô͇\yÖSø`õ¬[_·ìËÙ‚¡8an«WŽ*ÇÄ{M4>@* µ´”¤i)5r½OPUò™©<ÍÌÕÏIT5V]~aE²@yxÀaÞ,Íê•z‘¹H.E.rÊLºÉ«À±  i ˆc¹ä6vÇ?èí•:´ó9µ|²È¬6·¶:µÚ`ö`çƒ{î½èhÿ¤XŠ-½Wziî% }RB²4Ï 8ÇqYW²HI·m­èn§Ù`?kC§dqSc©­”¡п«í.MµÆ¸ìÚ_*ãb ÷·5-þlå^ËmdŠû9.iwÒKÙ‹¨Iç„M MˆþÛÕÀ-¼,0Àß/zkà2÷~îc9Üï0ð<èë xð´“i®Ó]ErQMfÇ€§Âêw~¸3€»óOea, pDà*|äq÷º?>öøÙ—`øŸî,ö±¸¿õ~ǹü¾>xÊÑ”+s®¤M)/å¸c€;>nOÇ=ŠÅk‘¯ñ¶Å—ÚKóµö:…Nf'Ê4/à…7 ÷÷Ü/µ–z˜`€s ÷µçu¥šwñ®àn}Ü>˜pÔ­¯[AO)xpZG[Ù´–f´ "yªÊ´À…ráäR–b›;8¥¦ROEêzîIdíßp¡\xÕL__ÊPüiú&€¿ýÿ/8îÍI§Ð“Ò-È 8¡àᯕó•½%ci5sxåá¬[Y«$« ÆèIžÆ€ïdžÏìðFûÖ·Ë¬ñM¡(€«ï_þ&[.È}o]¢ª¼›ñyqg’€b3ßÛ!•¡imÀ¨¢Kc) •£öºñÑ @HÈêG.pì Þ­yîºWw¿¾<A«Ù­þríÂcfÛÞ¶2¹’Õ1P¦)ÓÉu’ @ýS@4w1·°×ç×p:±YáÂ7E T锺ó³ÎпÁ~/ž!Žå‚Èàus©ƒ‡&ïÚ7e²™å,ÒLW§£54A®È5eL«“ÔÉ’ƒý`î:¤nxƒÊÊP)eö2ެ}uj¢´wµQ-Hðè©,Tjm• ¦NœëÔ³hÈ c³³SÏ* ”÷T§U›5)&ó#òÏL>ƒ¡/¶ëkùVM± ³“©+Ôb«zNÎæ´©®´Ñ‡rÕÆéøËQõ”üJÞF Ú“óå[7O,Ï/ÀBð˜`Œþ;Üýõns¿<ÜyI0E©+ÔEÑEGg_žôÞ²;óçœìlnq–|j®¦6§– RLZ ¥¬¯TáXuèJmÏ#„š>—ŠÌD2;Y±Ÿí¯6ë¹øÚOKÛXY.ÿåU/ ª|\YžXnø3vUìÝ_ïâmcWãÊ‚+<‡@°Þ~=FÜÏq‰ÛŸ_`äe+/<ïÂðv¦„øõñ¼1Úÿž4å ðcƒ½òã+Iû’"VD Û2l×ý+"¦‡MolÜàou¨I½!œ{8ÜjøáÄYˆ:)Î-È]°ÉiÎ{l" pU±ªâV…{÷ĉy2jËðá[‡~^Øû³ÞÆ«±0À¥¶Ò“+Nzô>=ñ4oŽ;xere\ç8¼!±’›a€ÅÉÝë]û¸V$Whjn×pX2ñ¸ÈLDJHì§N Y­¨.¯®.ÿ©¨P€«ÊTJ(‹”fü¹Ôई¼òn·òåÖ~ÖB3žùḶF»æ̈́ͭñůΨ.!Y]NW£kÀï? àg§ŸÅ^;ï'n8 ñ(  ¹& p†fÖÛ¬×Tkd2hÑ*&€7«ÿ²ã4îpÑYßù±ôq…Ga庹„Žq"'Ò?9^d!Â÷Ϲéç\{»¦‡dô-tb˜w?ßá$ÀÂÍ"åxŠ@Š@  úePa4Ï‚!‡N¥÷JE¬É<ç‘\û/*€ašýÖ[¶²<÷Ú¹Éç'sPÑõÔüÐ ¯$Ëy>°Åa}¿ì‹·Ó‚ãÆvŽgê§ÿªþvv8õÐgžÏ‘3GD+DÀjYuùo@©Í­­xXÁºQ/ì•$ìú…ën`Ô:¡T¨WêÏÏ:Ÿv¯lƒÃF¦­m9 µQ™”gˆª§=c’vãûáóFŸ¾Ù÷AÜ´²dšÐÕèpZ‰¥ÎÑÌžãÐÑÉ“/&éÐÀNÿ¸ß5A:…Nf/ã8„—9ÕÝ·}¶–or;%8Å©«BÀ]—N+³¶g¬±™¦Js ÷úÇF=§S$BÈÌÑ,?"W·}ÿËZòEÜ‚O"Þj%·ØM<…u$@R;©ÌA¦3Ó[ŠucoT LÉ›økŽñõ*}uFuöÄ6n„Û.%ÅõFÖöÙ€{: õ]ìå£)‰Ý]s¦´»"Ô½á‘+#ì|`øóÑÁGƳ´LH€BªrÕÍå}õ )ôÐzéÖ|ÆÞÌ~êG”“,ò4+¶Ô’"q)E׳Õ5˰B3¡EjuÌG½w=˜Ü•¼<€¹¤~ e:ý­ !ÆfT=2)£?vUlü†x‘¬áƒ‹ß߸róN¿¼N­¦Í]Ì×Û¯ú).ü\fzWçœ h@ûôçbü4þŒþ¤d¶²Œ³Þ¸pwSÂí­ JAÙÊê^äNü—ŠC¸ÈB´T¿T_§[ˆ“š%lŠÃþ&ž<ídš}àP@P•Rå9°¡ !8Îy.ÀйˆJJí;ØWg<ÇA4üÒÛ—|6ûÄý×\v ¸"W‘°!!õDꨣxÄ1ÀcVÇlÛ¿Íw¼ïµÅ׬ý¬€ª§Œnæ`fY¢T)Eò߸dxi|éû 2;Ù‹‚¼&«¦Þ\__VÏQ ¦àG’P“]S|»¿j p]µîÑGúZ}sÕK0ÀErÑ€U·Z m¥©Ôð¦Êü€ïí²Wl%æ}NƒFW—©­†+dö²æªjb€#„\‹èju”†‚Fý.{ífŽüO)-pZG;DP*Š7SßpŽåB`"°ÍÆÁg4Ì;÷·°+2qF¹»L-ð¸Ÿâ·'RŠ÷™°enðÚ…Ò?û#ø_vÜÅ"D üôÏqœn™.ð›ÀèÚSŠaɳ6Ïréá²\·Ü`lÈw¬èT‘—˜§~³¶Dœ+ &ŠÆˆX°le9æðü´”z"5?2ßg´ñyYš%DDŒDPía‰ëÕ4p‡š¬š×g „Ž™ä9ããëþ|˹a¹m§µE€ƒ wüFì xÖÇ„ÎÕÕêD21T$Þ˜~¡J™ñ?íî°£¿&£¦0¦ã8±¥Dõ5.m—!2¨W£e„2aV[û‹C ž¶þêÜ1í<ÆÃ ,?×Vjk2k.ìé)rÏ¢Sòx×`€W!àDŒƒ³‚àX’F_²‡%;üw©YN#$ô,Ízö,‰+ábè\¯U‰Hk>pØøÙT§U“,Åêáp§x¶KHž'Z$@”šÂè[öè0H¬±hâX.âÓ~_KîSù(¨jÝrͼ§æ[ñä©^©£6g.ƾ~ÆêMãV>®D9m¥õé4ÊÕÁÄ@JC1æö–„ëŸ 2ÂäÑý6J?Ô67h\f!òÓô?:ø(|Y3-tž©Ò{¥Æ;)…¯·jh—"ϼó½ÔÜo^=KÔ<µR™ ¡TH©)ZÄØÈëÛ%@·Ût»8½qÜH¯ÒW§Vߣ£‹•+«=¬úZ|bÒ7µkRWø÷(iWRAäoóÛ½·W$ódô’BR[­ ™riqØùðüä7:ÝíwB(¬DHW¥ÛÛe/FÿN¿šj â‹& ¤‚ú²z±\¿:æôž™ Ÿ»1kàŠÙwú§ÂŸuyuy×K[¼·á^äÊÈç^EMæïZ®®RË]äg3®lKüöñ⵩|¸s¢¿ÌñôÄÑ+Fw~¯s—÷ºD¬ˆX£xmØ–a8gÆ îvYˆÎL:c`W–X0; üA9"}{ÃT5øÑWŽÂï8K³„ !ÄÒ,o6Kc>ñÔÄø_õZÑ+ùÿl8x¥=â¾¼ÒciÀç5a€ß:üpßÃ¥÷J'žžX~¿8š3¸­¿­í§ÈVضµ5ø‹àz¥þø°£ I}y=)z±"¹àˆD®5jD"E®W%û àÀ•3vØøìô³Å·‹wúï¤Ô¾“ ÷ìaëuÚ­Ÿ[s¹:àŠ\…¥·eeZ¥¾N/ð|·ÿ ÀYšµ÷»O²°šÈp¡™ÐçJ¥¦h\œã¸Bp€JEA#€Ç­›}õG‚ TÅO­nI€s4WtÌUU¬›ñ\ìoWÓ¢Áz¼Á{ p–ewwš 5i5¼l€‡- ‹ß/ ö‹7ó@Ѳà8‹ôßßüüT3m­–ã8W3[©k]µÔ…ç²8À$Ä©ì) H9@fVžþ Ïùaèšì¥ƒ_ ͘ëDä£Cº-éïnÌ}÷<7§m†"E e¡]BiGšÇ¿'I’ …™p{Ï;íÌ·¦.õzÏ™”\Ù|ð’ ˆºÂ:D ¢[—L}°ËW±—ë§íDõOM #@Êb%)"9@D;ëó-]*ÌÚ4™DFQjʳ†–Ð~©„gŠdÉ2W`(† }½>bó” ƒÄeŸ±öÛðê"ò®ç%lLh|œÈO#·¼síØöÄ»óºì“ˆÓžYw??â·™PFÇ<>òøì´ßï^~û2Þ¨I¯A$B$’H-tψsüeE·l£EOMOsÀ d¡THWgÍÜfz„˜m;ãó*ó•,Ã:Û{˽jëÌôõZbS®Èxbxw‡ÝMfÀKbyÒyK[«==ù4Fÿvïíš §wDr‘¶Jûà\FÖ;èA¯hƒúL¨rÀ±4»·ËÞÍ~;#§·Ïïêïiõó“Â81ÿ‹Á´ŽHº:݉«óftÿ52luTÄêOÏÝ.O}êÉÖÒg¦žÁè¿·á^ÔWQ¿§õcðÈ༰§V)5ä<-™LU¬BºñyÿM;Šgœ.}vùÞŠÄËöü÷I‘­Àß`¿a%q%W_Å2¼—XIn]§JãJþ0ðÁ®ÇÇgi¶4¾ÔP5|ÐÚA{÷æ†åŽØ1‚wê¿àRºÚÞ¡£Cujµ…'Ïš™Æ2>ŒhŸÎîm=¶uåãJÂÖ ê ºŽéšÞ:@6»nn2ÈÚ¬Z¨Í«s`Lð˜``Ûõ‹Óއ¹V<ˆQW¨eö2@h*4R{)ï?ló0  ZÇ€ûÀ~ûú:‰ì?@ıܱÇwľ{"âÝ7ß=üÉÛ“nTõº¬è@µY?G ƒ8=§Wê3ßèâfk«Fº}Éé“~œ‡~rÔÉ[ÿ»e|Ò&]Í€‰[-#¡„eÖ\¹ƒßH–j¸ ™^é!§}Þc¹^8íí³æÿXûÍOÙª¯Ôõÿ¶ÿ­¯o °˜i–#ËäÚò„§RƒS=_ñÄî÷¤¢ž~Ifóx" ˆ@„ˆ$·÷ì»)þÌDZ—VƧ©¹ò²f«Òª’`Vl¥³ñrWGº• îU™©¥Ÿ^uÊqp,BJo{‡â Ò ò“Ȥ¿%5jª4ÀÖJK—F¶I“ù/÷ü8†Ã‘7Yî¤Îéú*¥®¯Jå6ïzÞéɧ›Ä ж-»S:9tüà¢h†–¿ê0VøÒð›+oâí»?ܽúÞUþB_5t=ä€Ã?ÏÁÙºª%åæžÇºÈË…ýÔňÀé­€4Ò6jÒ¶áÁNñ—{*h¹Öª\(ÖÝ7ð˜1\côoqßRrû9Ü,Åžž|zƒ×¶°÷{Fþ:þÊ#Vè¤ÕÚé¿Ó`Æè–bÁ­­³z|y⫲×7ZLXT´WU¡Çã£5t-Çy;ôq;Uê²—ÅÿT!ù_Lܯ eÔôuz½J8H- 'zÿü­xä¤q÷iâ©_DüU?3õÌÕÅ×OIy8«ãƒé'„Ââg>P1ZæôäÓô'nK¼4ï’±YUz^W:ºsšºþ+ñ©×O«ð}¬£þSµeŒeîbŽ>r÷Èk­?)»_ÖmÑokŠŒ^žTþ³bŠ×p¯+ï^i7£Ý„Ãh mãoÓ$…·&£&>×¾&£Ùh¸ÜY~oܽ‚¨‚Žs;j¨?à£öŒú Í=—÷|¸ÿaÓãÀ€ãùs±"b¢âWÏAžÞ¼``ÀøñáÇ—ä|oZD FoÍ2,þba€‚Y©wºRM<ù6¾À9š«Zd‹Ýq58îàIô¿#BFË·®¦4­¥ñ‰=ƒ>tÓÐÓá§ß ,¾Ë)ƒ'7w3O:ÚÁw¼/¥¦tJ>÷š@„@€^ÝpŽc9RH>7åÚp¨¬(5ÕÄÅlx¯ž8°~'¸ñK¼Ï8ÔÐGÖp À©œ–f1‹x,T>ŠúÕ_àÇZÀoªŒà„€¨‚*BD47¡dX£U;À’7žÝ`ö'¾Å}‹¦FC÷$ÖÆ pà`݈YŒŽ1¬½Æã£5´ºRýAæO *UaàÀ5«dtLム[†½vÞG”&zQ€#µ;َճƋn_T-è¸/…õËí9!)&$V’†ï.éëùY·<07ܸ†(<.O*Çž_«a­Ü‚Ü’6>Nó«ÑÖ¹ÖæZiÕ €€Ô©@³0í—iæ}Íçë矷&£Æs'öï;νy¡ûÖIøT=µÁnƒÁòÔØSw~¼VÞVç]ôÓ I.beöìðÓñL‡E}53j&^‰upÝÁµ7×®%56+¸YP›W‹Óñ£nDii׬ŒT–bï®?§×Ö›!ïÜ {ëÞµy}‚*êˉ¾EÒ·S顾¢xÚË‘•ô„¸L>­õ\](wmhãWžX¾Í«¡bTÜڸݻñvÒ®$wad:œÊÆLái6§7C î*±eAGjí*5 ßw®nAןqZAYô·Ñ£öŒÂ|Ì}ÚwÍAÒ2Êøbƒ¾*¸YÀ"€H³+Òéaºôï ¯RBí;Ú³['æ”û0´þâÕˆ_–$i¶V›¾Ñ~cÔ§ G~tðèzÀ³¢!Žd¥¾µ*džŸ3¨®Æž¾« !!w‘Sõ‡ѳÐÞWäÙú€^¥_ŽÑ¿Þv=¶ Š„üÔ<ßG .S7Ì/›ëÜB…”dY£[·Év­¼y{õ¸à‘]N*DAÀQYUýÞ(»ã׺ÞþÕz@Mš;&ïK6|Ó8†KØšpsåÍÇGß^{Äb}=4ó|fãJÍq4ÀÕyj4RI¦¿O½PÂq€çRñŠDˆeX\ˆ€Fbû´ê±'U­óx0'B”™WjíXæìx.hœ{²±âìî¸[Y Üâ¾E¯Ôƒ@]ªCliW›]›7ámXB@°[ìi¨²Yç:¼Ò±<ž]•Ïi*5ë­Þç† Ó88e¯t;ó‰ßñCÉ êté5\θEÖkÖÚOté?oƒYb†bÞÑ37 — Þ\/IÑ‘ ¿F å!•,7¨ý2«9Ë6/uÂIËÝ;—‘ÿÎpñ«ãD#Æž¿!y»LظÇ$D~ižm[[Àè¿ûË݈†)ÔªÔª­®[ñ¶ºD¡ÎÂVjuºí(»d-©Óñ¸ ¡ZàÜÜͼºu»vv½?íÝØ  Àÿ:žüÞ¦{™±z¥¾(¦ÈP|RO¤æ†ånVŒ´vΙ1VÀµLPTPû™íã7Ä·ŸÙ>.À/Í¿ô!ûK̪˜iW§ñ|rèäŽû¯î?åâÞšàÖ 89òdîõÜ‘{Gâ<ŒMœ0°¦Õاqîî==º,±Ì¹»³¹GC¹w pààÿ,ì€)‹”ðâßmtÄ‘W$@Ðई$F\m<#Xöè2pÀ1vòRøå·/ú`ǃ>Ÿõá}O0À«Ó«]º¹ä\Íá®qBK€s,§zWó žpŽc½I €7KÛðú²ú=ÜEîØµ¡r%/Àxå „€¡D,T›Û4|eõÛZm;=ù4p€'Là ÀY†ýöèI–a9–ÃÿøŽHäRcÆ'±nˆ.óœ¥XŸj–b¥vü ýà,ÍNtdi_/¼T€ë•úÙ×°,‹—p/À´RÆ2¬Ðü‰ãþàð}ì¡Aܯq'†0xí`8T‹¬ñÚxðMž| yÖ¥CÃʪ¾D€s,WçjÎèÃÝ÷‡ÕbŽ{aðû¼pkí/àÛEÁÏYTò2¤«ÕÏŽ›=ãú àv÷ÊÝ«ç®~_òþhjtËŠä }à8®ó;Ý^qs¸îU\§LUJÖu Ã/å]ÏË ËER¬[[Z;¨q!áëKJŒûŒñ!„XHÀƒÃ[­hýòVD·{­K³ì7À©±§ nt|³#hÚñ'ÆG~ ,C­dÛúMPÃo…{Ë4¬­ž|~2$Œ™1ffÏ4  !ÓΠ¼ëy–^–,°@YSŠÁŠZ§ZÐ’Zü°îá ™K†\ê~ôTòÑ3q±½î>¨$7»T>â4PV­¬€ñ­ÄéE" Ú¦ã /nÝ-bhvÂ|ÓtÌðXï7ÆOY¨Üá³#iWRøGá€çà8„¬ªµ^…ÔÇÇÈìe„€ÀScI²šX– d¡@½L±ü (+•Óæ_|û" Uæ¹^þbR-ÝÖp)GR A`ß®¢(ÎCd† 0²°"©âÞÆ†²\B¹¥Y›¶ÎHL#¡z‘¤ç/PS\ÆPLÂÖ†©ÌÛ«oo²ÛT—WÖ¾Ö×V°P mHI ÂFé§ÒáÉD* –a9†C‚©'lß †€;8?—‡ÿj¿ñ憉wN¼~7ä˜i˜6é´¡æ»}…ÐлŽåQCK…5ÎvŽä¡Bc®†~æ¶íJà ™0§ZôM˰ÔÔ ™_ Ç¢Ò¯ú”}á'†œH=œºÉ¡ŒaK \óé [N®¾½­dÅöÒwz»/™~!L éK‡iOÏÛ^"ÌQ"§nN,Ãâ‹•%Ñèºæ8€ØÕ±E·Š2B2@j#eôLÃ/ɬ¨Z—t°©€Ç@mnC4Zd&à8„œ•L«ýˆk/ëuVë°#r~Æy–c²ëŽ.ûœ´FûÅÈŽ« 3¯æm´ÙhH=T•© sýígµÇW½w¶pß¹ZË>5C]|…çÙªÒ…¥ 9ŽÃl5Lw²BÚ©“’ÕÉrC?«ªéR]%ÞÑ©¶Ý»% {´¯KeW[x´jå×!ÿ†~*|*¼Ô IDATˆ¬}­ åJôm«8 ªl@öÅì¢[Eg_ O ëÊùi†ÏºÐ€ÅŸµïc9ÐîM%;|wT>¬<1ô>Èýí÷ iS¯LEâHt`qXÈù¬ã?Ü{ó±Ud Mî}XWߢ³ö±6D€XµÒÖ<Ö§Eiº!Ô-¡¿àê 5øÑÁG—f-ÛÅ9y-îñŠG–4@§ÔÉ]äø÷ž|ÄŽð;.” ûåy|ìqÿïú—%6Ì€?àÝ—t_/^nëk{bø‰Æ#lðKs/ÖMƳÁ8Ÿ›à+ɽ½ÄJâ1Ð'¯ eÂß–j¤Ãušß©âQE¯í6¾6*lÛ4\,8 ˜‘ÚßÔ±kbOŽ:Yt§ÌI˜ƒÍžp\Œ$@Ú€#]°±êöøŒj9c€Û4l'Ì'%dìêØÆ×ØàÀ0î6DJHüHÆ pØ0k1Þc?àló«‡l|¼j^€S*ª[H7©­ÔPrÞðõ6 ÅId2à ›äXš%Å$&‰à€ÀN)5ÇÖ/ï4¤Na€tz,Ãb ü€_}¯a=›²Py°×ÁÌó™0tÃP¼ÓpD A‡`V6“à"3Ñ}%! Y=¼Gr?ö1Çq„ €»;ìÖ+õÐfBȽ’û\€À¡!3ƒÉ¡ =y)p`8BãG;²^bðd96£«1À­ôf`(+Ä pØ7~:¤ Žûs§'ŸŽþ65‡æ8"E‘O÷ý1€·”ã^{3ÛÛ§ºyxgç·÷Å"e2lI –¸ÖõÚÊ·V¦)Ó>Ö5ML°z€aÛÜÅ<ùPò 5ƒäNrA¹Àþ‚½Ïu`[r·CRŽ¥ˆä"KOK69n2Ì­T&WÖå×I\ÄPíU›üeæ×AßMÑ)GSHI!´Ægg´Xò(têkñ¬‘¹èò;—ÛNo @²Ú -UGÕS 9[Þ¸PùÛ¶§ÃÌ«ÀY±ícíY¨Ë¯Ë¾˜m°Q* oÅÀøqã»Oëþ•ð+`)?\²b½c; ‹„5צJö6ýŽõ.ŸUP,Ðõõ¤ˆ$€ –EŽEþç3V©¿¨lcï ·lÃÈ™ʲ,! ðÍ9ð—!u¥úÂêØ5º/¿×~ùmåÊ-·®I"Íêµ¢jɇ?"‘¥§%Þ0BD G°Ë–º¹‚HD;¢ÔëÁ£ƒÛNi @p´‚ÖéÊŠË (ºh_ྌ³ -Nâ×Ç»õq÷gGÇuÌn­ß E·‹÷?Œo­‚Èܽ…kK•!„wÏH‰*Žã6ÚmÌšNØ–ˆ@†–é IŠ«ê\Ë Í( $íNÚÙfgõãjˆù:FU¬âWZ¸îw3Î7dÐzLkk_kÈëãÞ5µh¤:D]îë÷û§}ÁødêZg|þb²/,k#`jë4w¤¢rQqµb³&ˆLÍ%Ýøø"ħŽ#  &ºL»>íòû—;8Àë†PÍݵw Ï× ®´ñþ+ßþq[Ø'½sSÝnäXøºÚ÷òÔèÑ£lÍëz‚Ñ3bKqCÅ7 àÊ•Yˆ`@_§Œ×WqgX=†¤¦‘²‚Ó‘¤§l÷ÞŽ3o}yK]©X‚@:F©Û ;ƒ7 ûºî;óZhJTËÒ~£æŠjqkÆN›pôø®é!g&Üs–ÇndX†°É¾á÷l£ýF0¹ŠAÐÉ“X2ëâÏ ºj †faáiÁqÜ/.[ŽÍ ­é_;¿S•\ÎZ©¤ÈA£²±@)(œ ÊÈ|ÔA*Emj’e¶viòÓ·,O¼éNM`YR$)âôR ñì½g`åÚÿÿ½§lßôÞIBzï]‘"QéUiR"ê±ËQíÐĆˆ€"U$€ÔÐ!Hïe³Ùl›rÿ^ÜËH¬‡ãóœÿÿù¾ÚÍÞÙÝ™ùÌ5W (®69¼½rh}úúö³ÛÈ|>“í7C\wJOO•AJx¤tSO€Î¼8ó“>Ÿ°üË¥K(’òýüï\Ý~•ª”7óy}â/Wî¸âÙƒoK嵋÷¨TåEžm¦1Ôȼ†Œf¯µª®K¶y9©B:€ÿƒúŸ¸)ÄÄžQ“ñ,ÿBlŸXfE5Vc€÷¹¹Ëê,wŽÚ2J+NýCo9¡åçØ,0sqfd—HWw\eW%uiàÒ‚}Æ`cDÀO¾r•gzÕ¥*Ý£m ð¾/õ=d‹l5©Õûmßglà‡ß<ü²mBÊÈ”­S·2'ˆä”´S#@rêýS²SÖGú‚ ñýãkó|V8€ÏR}…²e…™…OKσbïc{¬Š^Õ$À™ÕÜ"XoÕCÁšv³Ø‡l5€ŽÜù-;•ž=òœÏ¦À‹<øžÇö¬ÆlÍã(r~õ0~à©£S ¸„ÀÔÀ°¶aì6¦I€Ž »âk®§È € Ã6à·N@lá Z|¸˜ñ¼I€›BMzG³Ò©F8Ué¨Ï7D÷Œ6‡›u~º¤ËàNkrà@XcŽ0›‚M èòó¶+BZùÒºÀh]K˜‘ú{`Ðë;[On  êBÕˆµ›B[‡î}ÒWFyàg(Psµæà‹ñ ç üà}.^ÇÛ®Ú˜#¦I€èÑ/—P¢zU[Ž þÍøo.o»ÜvZÛÉ&xàÄjÏ™£Ìö=½ï7@ŠeÁ¾MÖ¾4péWw€Ý£š¸Ú«¾Ã[8àxÎjÅ€£{´Àu€ST™« AÙ#¿ßæ}üÀp’ÈRËÞMyÀoœã¹6}ÉT¡-BÙÆ6 pªR{Œ@af!;ÿ4ÀÿÊ÷„Øë3¶s þóàW)ݱ{€ò°e‘Ý"ó¿J—öûG¿#7Î>1;£(Ãïœy—¯ú³ûãݵe„#_ ÿŠsÖ^&"Ñ á‹ózÞ]áÐÒÚ’ópã:Žà.—@Àé8O¿èò6á¡Ùm\yIj×zû‚‰ì>ŒPÎaå\œPhðÅ /®l»¢¹Ö$¯éúhWö8uTª9ܬzUö}¾|áxÛômeÇËj¯Ör@x‡ð”‘)¾ÛhJYN$%ÕI”z~ §]ºdvRdåõ^ŸÈÇLº˜–÷îkmÏØ®x}Ó@dƒ@yZQE%/TgW×—Õú硽Oí=±æ(®T_k0_0–ûbÖ¬öüܲQäÓS¹ÿñËÊÌua·—{üÊ+¶¼Ý €âQ“ÀjV½hwIN§BAîJy8Œ1eo8¶î‚ïòÀS™UÔKIN®I~µèXѲ¸7ŽŠƒªŽîûnýë_._ξIæ‹C*wq?Ï‹¯=¢Š’'hõ^<¹ºü«÷"²V©ªXu¡JrI–H YÔ×·vRPï3€Ópø­mWªOÖåמøZ2A<:¹B öj­«Úuðùƒ{ŸÙ{lÅ1àzA¶"¨‡î䆿ÎvÞjÁ•W>¾ðØ?ìÿÕ¬o¶|0¦OÐ)J‘õ`«µo,¨+_å,DrKKƒ—z 5®2^1ʪº¼çгwPu@ÅÅ¥Ã7|ÅPàƒö¸*\cöqœ!æÜÇåLì[é¦{³eâ’¨“ˆ6öB;¨/ñ€˜œ„*|µZ\ÙRBw·—Ë3دÌÁÜfƒƒ÷¸›×ÈO僢üT9%È:´wç_ë8;°bH«$ „@øÐ €/±ÚߌzËÝ*/Âm>r²òó«6Û Ù©l{ï^}›¸¥s“ÝÆ‚JñÝÓ\¢†”¿ýÒŽã{Ž_vl¢MÔ(õØØåyYȲßSDu‹ô—\Q5€/¬ZøGþ¼mêƒÅ®N^rO {é—¾"bEc€ŸþàôìŸîÖûëe¯üiïO¯î¸ºeÜð:Þ/ίŽghýÝwÍÝÅ>ûòì¿·ßdŽ0Ë.ù‹Á_Tž©làìN€œë›ø½›ïÅWU•€Ëä@Úþö[K:KIvÊZCps„yüÅã:‹N+þ›8zÌw†œxûĊОz)ÄDUºyìæ¼ïó4€h_–ì–åNCÁ‹)ĤÊjù©rà:À’vb0¥”*”×ñåï†q:N4ùüâŠWaŸW4ïï­70›òàË¿zxûŒí¶\C™ð’ŸK–«s+NVäïÍ·]±Už©Ôž¿'_¸`ꘓ÷=¾o𠬧çÄŸ&*²²,p»;ÿùùsv~¿ð{À ⋎ç!ËB—Q…jß÷Ô> à-'¶<Œ®^»·6¯öè’£ìµæ!ëÇr•»ý.¡¹)Ô„k¶uC€IuÎr§³Ê ÀŒ lWüüÊÏ–,a[͉\»“í8ãDŽº4`éÛIoó¾èXѲÀe*U;Íï óùÌ#¯Ñ2LìxdÖÃôëûF€€×ó+cW¸pº3)Á-ƒüüúÏ?,ü<ó™Îr§ðˆÎq'p<ϯJX%;e àûŸÙ¯\gÕ=ù¯ã©J×ß¹¾æRðËÛ.?Kßöæm_ ú@'ù;m—‡._·Úmw‹QrKË—É’œa˘qn†")ËC—ûz®³ìPAaÿÅLXðɇ&ûÇÕ°¥³êG\ÕPJ7ŽØˆ†'‰*ÔYáA²Ó„í4 àœŽ ¬÷*% )À^`·ù»ì`Îþ:;ó¹Ì‡ÀÉ„øk¾›òUìã–,¥Ͱeˆfñôǧ7ß³™\UÔïr}#äö<±gyðrY’õzERÖ]_z´T¸hý ­ȲeªWýÓÿË<îù× 1± M-yùÔxeÃÎJL{ÙÓx™ì”}V;`aÕÂw[ýöÌÞÄ!‰Gn¼ÿ„/’ø`ñƒ'ßmª£'Ϊc4q©ð Þ#ÙGž0´=0²òL9¥”éà–õWêæXÜÏ?+e曃›%53˜ IÛänÏ•]râÐD^á9Ž3 C?™jô D½îÎú÷œy÷¬3ÿˆÎÚÞ&„èJŒêË] à+Êó¿Xz6ûpMi­ÀŽH•*9¤]v°ûÛ€bó(Ÿ‡Æä àŸÀë@áÚí(ïÓö«%~®™)ôjí±ÅƒK.×o>wý˜ûëò] IÓàÁsà9Â)’ ÀYíPšUzjÕIv³Þü¶* ÄdF„zÀê”Õ,T ŽZF[­5u²Ïô Û3è¹ô”Ô}•¾½³=€Ã++Åf[«ð! w˜X^aÅÆ,²N¥ *TÊp¼ð·îßõÕŸÎŽjõzÅs[× ÷zu¯ÛŸ~éë'÷ý½ïï<Û6@/ì@§êjí,ý €À¾ÕŠ¡:À(PJû”Ðñ$Ò™6:-`ñ^©L@?ó„{ö©Wú|Âçª^-êYf·{žãeIÀnŸì¥ö«OƒRaÑ)„&“‰¢8)€ÏovV9A‘ùõý÷'¾4©ã?‚Ï—Ý={©eO!@ËÃûâvåPxj!-+T•¾nÑ[we¬œôкã \|u«°¼í“ ¶Ltéy¯ÝÈöUUµU\_ö[ÿéw“ür«;õ[Öãíº]ýÁºÝD$žSEÙas0‡‚ª-Tn??° JZ߯æâ9™`ïÒ½ª¢Jí%Ï[Íþ1ºæúIQÉãÖ IËýnÚîÛï¾Ð"<`Ôq Pyž£°â'YäBþ)+‘VU¥Û×OÛÚeüÛfÇøR[(f]}¸5蟩”1P‚¶>]ZþÔÞþ¯sËÞûzÁ·*qÛ\Hº7€9ÐW…LTßíúï)¢ºúŸ¸×îý ¾hå Ð6¡À7ÝìsÉQØóí6¬ýuö¶éÛvÎÝÉëyG‘£Ù f&ü8 >ë÷YÙ‰2Å«°ìˆ­S·6ø¦Ñ›Ðà뇮¯:_åªv¥ú’:¼¾°ž|ô¶ÑÔi‚ –k¾ÉÖáŽw”Ÿ*ÏÙš`YÈ2pwµ;¥h³Î¤S$…eŒ¤nJ=³öŒ dI~‹‰@X…å¦Q›*NW0”q:.km{{ž] lø¤íÀä@Y÷ãc?–g•kÿýøw‚*”pD0 ‹±ØlÒ†Ë|Ðá à“öObpà¥u¥u Èý!÷è’£§+¥Žº‚ºôOÒsl"ø7¿ùjøW¢ŸÈv¸Öä[4Š„'«0‡yÁEaVìˆ #BÛ„êÍzÞìæyž%µŸûì\Í•–ËÜü¹vCBˆ`–…,c­Ä˲ÊN¬/ôi1¶€Ì—2Y‘('p†lWl¢ºEЊÓ„^Ï¿ù֙Θ1s‹æëê$‡”::À©O°ÆXM¡¦;}¸yÂf^ÏGtþÅðñ3uª¤‚ƒ`ÞŠ}ËQä`/µ]~”íÑ$§?n›#˜ÂÅ«|Öÿ³}OísW¹ÙnyŽ,~¯­/Cæ`—lcIqÛÝ:xæÎDA¥êã¶WX¢,ÓOO÷upÐ[õÝëFdר- \ê,w‚âãîç©qTIÕûé'šì‚Q•TB‰íŠíÓ~Ÿ,Ü"¸Ïó}ˆ,ø0H1¾&¡:«nEØŠcK©ŠÚ6tÊ¡)JpˆhƒÐeaG…ƒ…ÇÏ®;{dÉê«æ ƒV’$HXû0G¹À´SÓ}VY `^Ñ<ÞÀ_Ýs•…ôËÜËòg!Š¢<‹ÅT¡œÀ)’òÅ_¸l.ÑÝ£‡¼=Äe|åË–ýi€ÿU†{L\¢ö¸° ·©%Oü‚¯t”:®î¸>ÝæË!_¶ÖÄ´ ]£&G3Ï7Ñ9ñ&þð´}¦³;4^ÆB$¬BYÏ9Ì&w먫 ³¿ÙåX›ëÈutWY+°Á×”R€ÔìóS)d71- {UiÞ*ÀAçÏrÅZóZðOðWe•sñ¨¢ø ož´è#yü…¬Â¬S‰¾¸LXÛ°“ àóÑŸ ©Bu^uÅ™b“Ó¡7¹ý\v*€øÛãÏ|r¦è@€â%¼ž¼j0°£mðcƒMÔäççßÌŸåüIVÅ¥ºÓƤM\3ñ¶Wo Ø§¡¾ù?3ÎÍà8nOëÝÁ5δMçÿcèœ-—|Ôüü÷kox UûC9U–HÁ¦º÷šâUx¼ €`¦o\ÄB®rá% €Ÿì5èåá·àï__Zï©ôx‡'·šôÑg{g½ñò×Kf~“{×4' ÌÑ;$Çs‚IP¼ŠÁí`à|ZJ=”¢>Þu&þ sqýã@ar¹e&(h‘b@¸Až’@l*(éØ¿Ç}ËgO>0…ýÜw<²}Ãág¶ýW¥Òb]ÎÓ÷§½±¨ûÊ“ÆúIí–Ro½Zmɺ’b©ªêbÏ$ö™œ¢‚‚xp 0sÕ©¡÷~3€é@áÔ±wÙ1†xUQeU ƒÇãè¶<@t;_]Ôˆ #&,špGv; ÉÖwæ z?ª¨T¦Ü¿. &!4ó ýú²ÿ±s/Þ{§ªÓSBVÏ›ïsq ¸,·ùàè…1m~<ß5kB»¬¯ÇÝÝêOj+V»}¸8jçÙ+ƒšØ2eýmý8~~Aéà  =ïöPÐ Ó mó#^œ÷ͬ¸¶ ÇQåú'DöˆÍ"A…§ªª¢þEÿŸ¸!èæÆmÿ €«ŠZT©M¢³ÂùÝýßÙrmR7 .´M(n8ÀQpðÖ{ÁFÑ&ÆÝGUZ¼¿¸è`ÑWëÙ+³¨®\öÊŠ¢¨’Ê Üþöo²5edŠ=ßîçk.ÉÞýñîÒ7lµ)(%¨6¯¶ìDÙÕsÁ(h°𺂺¯GÍÝ#zÆáñ à,’ |iÐÒôÓ¡Bv˳¯ÌÍ¢ðŒš BHaf¡ì‘‡¼3dUë¹ÑÝ£Ù2¸íµÛ”/àtU)Ué˜íc0€Gu‹úvê·Wv\±DYZNh àîOïÖ~Æfíù÷žæpóÖé[ßmñî˜mcªÎUiõÄ à¾=I s„ùà?îüÊí,sÆô‰ J B€»mFJù7ó'¼zð![ä”CS´#Ÿ`bÂÀ„UÑ«<õžy…Så&/æÔcSE³8ûòlpURA©ªªÚ†Ô¿™ÿw†h1¶xå¹ÊÝ‹±_á®uwÝüþÀæAjój‡1€à{ó·ü«¨üT9'p]î*„¹s5€¿gÈî¶»9+ÌSYÖÄ}Çî»h3Ì87ƒp_Û ‚¥KUªZ9è9²øÂº — ¼¾ T.˜;Û`1L˜cZOnÀYáô‚×¥8Ëœ„#q·Å aNþpí œåNÕ«ºë$¯Ý«3ëÌ¡f^À®x(T¥ªöëB“Ò&„ àäz¯«Æ¥*jDLj fä×h5¥•¿íË™az/¯]Á|í¯<¾¶õZÖ&¡ÿU„’9ùsz<Ñ£Çc]Á. ¥”JN‰Í´zöô´‘ߎÀ |PJЇ}÷Ø<¥'«$‡$˜„¯ è4¿S¿z³O±aÄ[;pÑ"J^ÕYéÔYum¦¶ H ·kø‘¥GZ;úð°Ð%åTSNm9¡å½îfP-Ï*7¸|ÐöÊÑq»Ç=GWž®¼ºýªâV ¾þB¢U¼Û¶|AåèþD÷÷ºÏH½'U•Uööݺ>Ò5iXÒ€×0€³;ù? ð¿2U¦atµaÔõ+8-øÔû§ú¿òeïŽYTè–H›ÄôëRÜJÕù*C¹QW%|uOÌcݯDÛíÕ-«%"U+.Uû¼b6’{v‡øëy‰ƒ9çqz¤÷5*/…±6äö7o'„xN…„È2UÔücg–þPynOÒÅöÖøBx¶«¶”‘)¥{ª8‚îsnY–¯@ BÔr³!7†wšì+¸ûÓ»³ÞÉ?6?÷ÑÜ7Mo²wèóBmàvÕ…ª®‹º^þæ2¡V§#B³cXŧ%Ú’aËÐùëŒÿn<^Ï·6tõà¼/Ï‚úCŽê!„Sar˜Ò@™G4×ZÚ½iuuÔ QºÞ?gß(8¿8¿¤ô$;N’Y@]a´gÛ=‹=¸V„$D}×âŸ;TQìòLäÈImî¿¿T 8m¿·åe¶î*7Çq¾¬ô—K@U„ƒëìLËÛî_³1xY¸"]þæ2#rDVIVxXfž¾ný™švŽ IDATïî{¢]D†-CUT>X7rØ”×%½Ø¿ë GkL–˜øA̓¨B‰Í À˪/©Q44·wݱ~ÆsO¨ÎjöîÒ:ÄYïU—0 `•BøEYu~:ŽøN:UQSïMõÖI’¦ðhÏûQl Œ‚h‡¼=„íjí¨êd^oä¬Ý)%ŒÁFÅ£ˆfq~ÞœÎÓÚs^Ùìoh?6mÐÊAÛçm_¾\Ð?΀Þåà´(.kÙÒ×@Ç}?.wO®~SÎ]?M×oÍô´×§wxýÛ>!vOx]~`í7 g7s<§:Lu€*¬moˆ8ôÑ”{'´•ÐÜh wV8uVT/ðxL†Ï;w`½ÃWcÄJ¬X!¯ç#eÈà¥'­phêºàú‡+Ø mKƒ—‚à±Ë³îx¦Wðã™)k.¥§&ôx¢G@r(L*IòãXB-–>ÈÒƒR‚"»EŽˆ«-ÒTöìbþIü›ù³Ò"½¿ÞläjêÚHùj¬ðÌclŸÜ¾äöª‹UúýG§ö¼¿mâš½ÁOýLTJÜn~ëË÷߉ŠÅÏ0üó᪤r¶úNnûÅéÖk?Ì}Ò#dü®±Ÿôùdó¸Íúªº¿Îk¾éì]ßú:˜{¶uÔÅO/‚"yXr¿uïùh×KïgEÞ³åuŠU`vg€´îCV¡”º?;¡äá¯+NÅÿWÎ \3äz^©^ªºXõÙj¯_‚_pšïûhà1é¨LÁÆ.?à:ÀU´6æˆF‘åN`×|iª¬†µËù6çù©e!­C´þ! à'ß9ya¿Íd¬:_Åšâ…¢Â]ãf9hðO|:åД. »°¯ ” &ž84ñ½ñ(¥Ã>ÆæD6 ð´ÑiNÉÞ”­·ê¶¤L¹7À‚òîªq]ÉÓUœ©h>¼¹6*µI€»mîÕí>™qfÆhï,ÄëM ·"˜„x’g 31« NjkfÓz€LÆÇµWk­”4, €pœ±µY¸ÔSïɰe`×>ˆR¸¯€hÀ}Á‡*m”¤=e¯8]D !þ þì,›zdjc€KuR³ÀjG‰C4‰Öh+Á 4 p½¥ Éw%[¢,hðV3¿ë8«#5[Nh©€%²T¸*\îùúžÆ¯/¯—,n²Gf… ‚A`0çôJŠW±Ø=NÂg¥“Óù¶‚\vËôFcð{:€P¬v àÞz¯zÍÍÌÆ#dÔd°7ÜcÉú ³ÚÙ¢|Ħ¥ý_éO)ý~Á÷4€_ï̺4 ¿pÝ#B‚ Ö‡K+º àŽ"‡‰MÈbEº‰ÀïXýnç×{Ë‚pÍÓ›$H˜À`¾¹¼ÈSо/öè1n÷8pÌÎ}‚}ú̳3hïþX÷˜£NtZgÑ]?­XŸ¢¤aI àÚ'ÿï.NéÑW+h*Ì×Êœþ´†1üÔû§Þëþ^öKÙïôç9Ãsê¯Ì7ú³j<LëPr¤תžËýÄR“û³Û¹ Í¡6ó}xnpMP*58µæ;¼NY·æâã+.<1?ù‡WûßÝ*Ì¿¾¸ž|…|ex@Y¬~@ 3 A œÉõºB­n/J^›˜WvÏ•ŽóÅ~ì€5…šŠ2‹jój„Û­<ˆ¨ð’Ê;E¢ê•XK­•`¶~;é[–¨¿'±Cm‡QÃF íh¯£6ÙÔíÑn s}ý[ã†ïYq*kAÀ¨taË… [ëg”6:-¦gŒÛæb;,üB6™BŸx¶ÀiâB‚Û/¬^èßÌ,9VÒbl‹’Óåb:—,)îÕé= ü°µÃî|ß—"–ÿc>•)«[Mê%°™õ‰g|WŽm3¶ÕæÕÊåÞVŸŸÉ’üðˆ±sûÜû·ÏD…%ùåµÖ> YP–U¦uŸ•j=DVOm¿ôë¨~ýÆ'·©ÿW’À.'#6ŒXT¹°ûƒÚþý»8‘[Eý9üôÌO  ÞȬR[œßªæÍÞIiÖÉÌ÷oÓ+@ÉI+Qx_ÇAPiz{ç+Ef>}à›im“ÒI±çÙ ˆWZäí‰ã—-@!ÌÍŸËr„T¯ÊÛ“çêÀSjˆun à:/ì<;w6[V°§€8æZs{üªDC–ê¡„`IàÑ"Î+š ærM†-ƒÕÚ·œÐ’]Úõ”>–7ç.z ÿðþ~ž¥ kò`ñƒ±bÙ›¥BÜ^¯J+­Æå­dF‘²É”š˜Ô:¤Ó¼ŽÆJ§±Ê €ÚëëL†õ €HhD§UV]gƒA‰žºyªðš„—^¸onï{ »¿GøØNQÝ£úßá>ñ§ÖSXà°;ü¨Ÿßh¿_ð§%„]ŸH¼*~Õ=_Ýã{BÀê^¾Î¼ýʸ_~ źkm²«Hn €h¾qÛý)¯ì·rìàwvêëŒTU1X{#{bÀ•4Ýw©àqî³s„Øþñ*oŠüx›gªîül_H·|Ù¾M§ÛÂÎ0©^º°þB@ó`†€*ª‚R²JÜŠ†ºlA­s„¹ð`aLÏ´ŒöîÝ!hÉõ6¢É¾<¼ïóÚÏjïëê4ïœO3,¢ÊõH%S¿—û×»‰± üù²¨Se•Iþ_†;vuæ)JB°à¾ã÷±eõeõ—¾¹ädPø}Rª¡WYÆ»@HCg«…bS/üÝuÞ±Ìú¾jîî\:§4kïøÁ׸KÆwXj”<Ž0ݱ>ºÛí’xOÊ® ¾@dÿ/j§´Šì¬KÚ}5qÇ•þ²H©hGlÁnÐY¼O›wþóó„P:÷ìôÙË»vôã_¿ì6QzeÇ^äC¿ÏªªR8Y¨œT)=õÞ~+ïüö¸©Ÿl±8y/®¿¨³êQP"—Ñèý `€ôO|ÝH=µžšK5µ%6Ç“‹áöÑÀÑîw×ü4*¯RJÙUÜXÀEÔ—ô/Ü®‡G¹ðváó }P¾axîª*§ãæ—Î0øíÁ-ƶ`™…ìmÓ?ô}‡Êó•œÀ‰ùVjM¤­tÎŽ·q&þ4‘% eñ"Ï©€‰:Cë+F^O£™(M¢|.×ãàaVAaxö§_NžÐyùøK'÷|+S_ŸJÕšK5„'ÎÊ:ªÉB½!®ÃÖÀ/$º×3½Túú»%KžW89¸ò€%Æ¢õÑÍ"sÞ0Y¢,ÓÏNgívQ/†]¨¶ï9-è,ýÒï»kÙ”ó]þ5sªær 'pŠÇ (.Ë¥³À_  ´N^Õç«ÁAWf`vÔS \ý?µÆXçæÏõíaE%„žˆõÞƒê¥L)û˜5ÿöx:-–£ eÐ0|ýð ?Nèûj_íËÜÌw>¯h^LŸ˜†G“«ÌÅqœpº$6«´°UÐ'q®ïn7>ê–Ãü6+„d—FÿWå¸ÿg®óÓ"Ø2aË-úž7è÷œªÔ™ (¨Í¯ 9“Y›W[}±š­ºðå7Ý?åY¾R¸*«Çï*ŒBQf{‰œã5s!mBÎ}v®·ºÿè²£šŽ¼ÙÍjw0@¡ª*U('qϹ*}sý4€ÇôŒé×ìJLϘã+®ál ðÈN‘WoËÝ•Þ>¼ñ>iàL¡õ¬ˆS²_oLyÀƒÓ‚kM‘E‡Š"»Fôml“­"uº9ž;ôš¯é?8Æìœw{ERx‘¯hVg4\Üp‘-ÓNxb÷úh~wó>Ï÷1ÆÌ' Ú˜žß8¦_8zÛhBˆ6ï†äúh!ÿÿä»’¿ÕÀ‰5¾i² à¢Y¬ óHu’άcÉL7<·¶6DÒèí¹v[ž½Ô$À G„ò(J©íªoÙ­8Q_Ò©Twý«ÞpÂU!`÷«×L?pªRÍLž<ùÀäçùçHöŸ-ËN)¥X¶‚ï¦îVÜ×'ž€×ñ §üÞpÂN ª¬ªŠªÝ5¸ª¨R­I•UNà´3®I€ƒ@”eªÐ£Ë|¹ · à °FÙpç®ñ5]õœ'ñýrÿ4ÀÿÊT™îoez¸ûo/þ5)åƒöô^Ü;k_VÊêC¤aβ9¾£·Tú}Hë†~ê¡ÓNMÓ†kNPõ6^ ªUG|ë÷xƇ¾Òe ulì‡Ë­qm¼ð¼Âyí'µºóå¾Wmy¶8UHp׸Y+ƒ¡œº/ò.õ °ÐçWÆÿ\PÒ>ìín…kºgÌi[YÓÎÂeœxúöÃ]X¡Å¸Õ—l¤êJA”á ¥åݤŸSÔì}r/KïÐvê¡cK>h;zZãõ÷¿üÝeñD]}oCŠ~óvˆp„Rª7ðçÏ™ñh—Û箟õíñÙ÷M?!*¨*UÙÃ{Ü‚ðõxÑd 5Ùó쌭h›“+û&n™è{Æâ£SZÜÛB« ‘½:5â”—H`3ss…C ”¢ÿûUµÈs‘£ºô\ÜSÛšôuéÚy £&Ã|mf]še 6Fu½mtÃ\[Á(ÔvŒ¿mê‡WïhYÖ)ê‡U/œùÇVíBƒrªCókT•­qU»ˆK Y®&ùíI!L¸áM"¯ç¥ ÀÅ®ÁÇ y1ã.÷‹õ»6œ+¡‡?>ªÿØ êËøÇÿÒïb 1-(_ =üöàv³Ú5^Ò:DUÔ;¥ )‹Vþ½·ŽÄ9åç) úâÄ)²¢(*€ÚOE´wû´"•‡Áª·ê©J½9~õ.Åakß§åÅ-åmÃ;±á±ã©óü &pñ_18­ƒÃ“Þ{e%ï5Yø´†ßgÈ»C>qfFÚXßí §IKËq—¼m>=µó™^s§‡?õT³6é¦õÌ#Åù »E‹×¹‡0Ý0g×eáxÎQ#‚Âëï–#ªœc¿4ýÌtm+Wš›?÷¡šŒÞÏìèõì¶;–ï]¤w`föLÍÉ”:’•caÕBÿ$ÿ†/i“GŠˆ„Rj Ð=ryÖ´ÑÍNÿ|Qæ¹Y&7P•‚Cÿ¡Ífï×av‡¿á·àcwŽ}jðÁU «½5èÖ|ÇÕà«âW5 pUVíf™¹Þ­ÑÖêv}¬ÑVÖm ÞzrëNøúL×Î Ü„H‡·Î{ýÚ Ÿy¤ówó:žRs¾¦íýmúõ~¦·Ö®„¼à§‚Ð{º)N…‚B¥T ᯛVÀÏ||&ãêC;çíÔKJxÑ¡¢’Úÿ6Rþ×Å.ZÄY—žJÿ(hÚ(ðœP‡ÎÁFü ){C¸»Ú­÷M¢fG6 pÑ(¶‹®ãu¼`òµôÑNUêuèXU(€.· à¢Ñ—±C82àµé§gïX€kõ‘¸pO­Ç\a4¯Òä¨KpÍo ·xë½Zoò†ÒÎñ\1ªÐèÑì¥[p¨§ÊjÃiJNª <8¨’ªÝ1€ó:ž\ l¦ÜÜ"xRæ¤ÆçuÞ7× ·àÆ0ãôsÏ \6P•U-7‰¼Ãì÷l^ò§þWîÿ–:N¤z)¬}so¸N¸ÂÛ‡ÿÊüêSm§µeƒµU:Åé/e›S{qö—rlÒ™ @h«Píxm=¹õÀåµ(‰½ÈÖV†õhEÞÇ¢è3IuÎÙ/:ý¾ Ó—ýÄ«Ô$XìïØ»{»³i£Ó²¿ÎM `¨0ø.*-‹wç5÷n™Uz¨‡LwÛ·-[nŽ08´ªkgÞ¸®‰Me}5(àˆ2mN9ÿÅ «GßĆ¢*-"»‹M–”þQº6r¬¡Š%§'Ë¥µrÒ“öš+f¾•„FÇ_mnmX»0Ö,öŠûTŠ˜’—€ˆ‘A€ì•Àö¤Þ‰ ’а¼b•9̓‚1£×·1éôí–¨;s\Ž8„6ë’ÑE‹¦Y"n†ÎÌl_Ý›)ØÄ ÏžFu¼še°@0T¥!r¢Ç¤Å¸R–héåWú¡ÑuÏÇÃXæ%“1ĨJªÛCTÚë÷›/͘o¬µ³Úy=oµ?T.»üZ¾!â¦Ýg7³D[©º"äœóÑ1¡›z=òjš¨FÿÊïÂrJ©ØPT¥‚Y°dW9dw@©_Ÿ¼-,„£¼Ÿš¨5µðm»N 2¥ ÁÕæBÿÒU£×è§&zë½Ï™]õ-ן¹:(ñ­&¾ú‚4Ú 5ï8)s’V[&J©¢çz,9ôóÄ´þY3­ŸßÓÆ—ÖÄÑÒPƒVþ.“ŽPì•)ž7eëù)·¯Y_Ròwë¦5– ­©õÕþ:‡Î0}»ƒ&cHÃeIœŽ£uu’ª†X½AŒy0Ÿ†f —™ÃÍsóç²⌚ ß v€–ëü§Eej 3κ8 @ë)­o*Së0»CßôÐ÷}›¬¼ü_¨_xyVù_ðåa˧š¦÷¿Ž3 àœõfƒŒŽRGfL¦£ÌÁ¦á÷Ün®[3¾¾¬þº!™ø9ywYÔ!­BÎ~zvÇâ_>Øó_öxÂÀ„ý—öët à„#.3GÑÎ à]uy-äÕ»?»»ærS»K8¿×ßWv÷[úC¯É®‰ Œí[t (¬]XãeÀ“+åJÂÍhnà²[6ì¨ t®œ2_úÇùk“SoÀIé<ç#û5Ó?No ðú²z3µƒŒæ0óMã3™Àýâüª/•VçT["- 0MÀUE F…%ÊR_vsWcý!€Žd³D5c½1À)¨Qv²[µˆ.¾¬pEGtŠhFV<Àl÷›ÎëxÙ(SJM!&©¾‘g¤)ý~€ëus ‹è_™ìb‡ä†ìM>€« ”R¨Lk¶þ¯øáÞïå~oE¿Å[c­]2º”-éÔ{ìÑ“vn¶ÍbFþ´Š.þ¥—2ŸËÀ+ÜbÏâÅžÅ:˜"LìœOúòX|qÚ„}/wèu°o÷c£ÃLïäwwsŸí©£R¾UëÉ­ï|Ï—è+ÛW(€òÅ8Røšø•Ó à üÜ‚¹‚R‚¢{EW^¬P›òZÐÆ¸Ÿ(\Üp±å„–U—ª¸šË@á‘dP{$Û6½²w”Gà©¡ð§Â6÷·aÓ+â"b+Ÿªtýx³M 6·6ihRÙ±2A•µ’GílÐSõ×]îÉZì @Ò°¤63Ú4^ÖbL‹“ïŸ m ngA\ZÊØ§Oo¼´¥•/ ëàÌÄ6Ãó^[ÔŒù¯Æÿ0žAÇqú½!Øs ¬Re;帙փÙ%žƒ1ç*fnMö±4b#)èOzÅyq­GįkÜîq×7vÏ€ªTöÈvžôZÿi?Žï°óò€+U­@úÇé¾bÔÇõVsÙôÇ^8µ±:T§ÆÞp]ôÔz ÿÔ '-/9œJýâŒgϬώ “[Z Ox=rÇ¢ŠSzENõÙ›?e?§ºu@p‹`­¶‰P¢ÊªIV†/ì8VöþÝøâwÿØsX­KRoMiŠ.PÇZŽŒÚ2*¢kD“k¬±V½Ÿ^®ÌîòêíF¯îC@Œô†õª¬JIÇ‹-ß;¨–Æv/×|äAU¶*74¼f0ƒ>SFM†)üߎ¦V! úL­§´NékF®AŸ©áãÿÍjà+cWNØ7a䦑lä¿£_x¯g{M?ÒðÀ9눣Äëôš‚M½Kz›‚M®*!ÀUEÍÑåžPéÍšxÛûÚÞùÒ}_èˆ,>€î/ì“ÖÇ7ŽƒBê)¯çµdz à§?8ÝúþÖY«²çî£À£ºFYÂKíyöø~ñ¿¹ßþÀ“Ò“8’]”YÔ~Vû+Û¯4^¦ÜQꈊŒ‚æqoàŠGÙÕ×ã¶¹µ©RÀÁÆ.ô°·Îk »~ZÝ*€÷~iݤ“ô~z-%£1ÀƒàµzI‘<’6Ч¡À xuª¤ ¬­ÂMÒN)}%÷mÁ on—ô§ÅnŽ0{9‘ÄnÑÊyŠ<09ÐMtª¤5Ò: 1€{ë½ ÊîþDwER´èGc€ó~ø›Û[ŒkQ_^¯÷û-¯ÞÑï8Tèá†êË@k¼Œ\4‹ÜõÐk‡0¡G¸®&]·»ÏØà½‘%¸²DYŠù‡$ÑìpKÕœÀƒã ^¼áÄ‹ìybå æqÏrµ‹Ø\¼)¸}J7ÛM§§"+ŠGQeUrŠn±¼ClÝÌÎö°¤fÑ*ö~®wóáÍÙÊýÏî×’ùþ}uy¸K»™× ¬1M„/ O8Tá ¬jÛª–üõ—-/ðœÈÉ. à|'GøäÕKwGÄ ÞàíV¼Šì•çäÍ`œµ=w×ÕX€]›Tr¤$ow^“öýµþk<îL‚ƒ 戺‡u±¯ÆÆº ß§íf´»´ù[À†$kz·å»íf4aâ˜#Ì-'´üfâ7$»<øýÁJ“™6 ³Ö¬ÑVG±ï˜æ |T÷¨Á«wšÓ¡Íø¢G…§*%Ä-ó€!k†$Ü‘p ;Ÿº«ÝÆ0ã´“Ó„wöѰ&—Q•2è`Ó=Tï;ŒûaÜM‹Y§¹›Ôan‡›†ìD÷üµýÿ„·â±{Œ’²¨tþÔÓ¼…ÛVËÎí¾éÁú6t}´k꽩ý_é?0¾É_ùÿô'Ts©¦Àb»bë”Ñéè’£ŠG9óÑ™à¿bµ¿ àætÐ…þB"»eýa½")Z%Ù¯H¸h'b»ÖÓÈC„?ýÑé»kîÞÿÜþÞÏùæÅ0€' L¨8[¡ ÐqÉZyÀÿ€»ª\V8ÌáfÂYnÂÔö¼Epõ%[Õ…ªàÁZNNCýÀo•Ày=?¿ôf5YÅñÿ€ÿ7îåYåå§+̹0o¢Gx÷¬#ŸL]˜þszÔãQ€v3Ûi™”»ïÛ=n÷¸_ z&ý¿öî<.Šúÿø{öääTN9Ô4ż55óÈ,-ÉD-»¬¬üjZ¿.¯L­Ì45µCÍ+S³<ó@E<†ÍŒú?põ@¯>Õ]­!ÛÖ¶\èsœ;:s˶Ñk gò’YȸËÍ5çþ¨SÞTYQ™T)åFôvyµ‹ï“¾üZ*°å¡Ï=ëýqoÁ‘”P[™ç2÷ÏÚÿIθ)W¦œYrÆÆÕf¹ëò˜Œ˜Þ÷ξR>¶a€ômµþÏ{ÿŒÿµÒ©9 üú׫ p†˜²ð2 #©IeŸ¥½åOC¬ Ã/™dˆðvÏ·ûÝé÷Ç<~øýÃÜ?q~ýÏë®q®%9%2 Y×׺Ê,d/'¿,à.¡.§?y¾íè¶égÒM߈p•“ÊáÚ½‚ô+³Ùå<ýtº·Âg˜O¯ Üú”Fø/¸] è¢`¤LYÐ-Œ÷\n)ßóêml½ÊÏà4ž×ähr[)Ô «–V|÷ ñÎ+‘J¸Ç¦Íàæ‚ç‰¦pÏ¿•¿Ö~÷7"*L/|)þ¥Ãó÷óÙk·3íÕ´#AGHÉ‘D.áGRê–j7µÞôâÁ&üšÀÍùåyÃ#;7;;7Ût47#aø½éµìÈ­$’[Ü”Üä<µ‡Zi«$ #-¶Ët²`­þl5¤°QxðÖétæ|ÿêP¿ø‚À$Í_ãY–þ¸·t²L9œâ÷¤”w1!æ›±'ßb H" xiÓ%×öÎDd“tî‰ÂßæÄKd­|9ùeþe«ÐVI;“|‡ú]Ê|b˜oÿ{E¦Åxqvqùy–±;Ð6Û>»¼ë $3ÜIã3Øçìê³nÝY–Úï èmùæ) ’Ù°®TfœÉpïéž}9›ˆþ³ —x´Jyr «´ E…_Þeš2…µÂ«WëÿÚíÁʼuïjFÝý&xŠîe_ζ}6dB¿Ž´xór—°¬â¢`ʾÂUKGK÷÷ìËYžÇnÙIZäï ]ý>åÚ꽫©jr‡V E~i´…[ÄÈã?n´…‘Šïâ£\%7¼¯Ë«]'jć>§|ŽT¨.À¹Õ‚øïµ ×¸ÇÝK¼ÇM$EÎUí‚SÎq¸ïóiŸõC~¬¬ à\Õn8†U0À%’¬„¤¤¯Á-1|€ë´ºaÊaJ¥àl!|€Ç¯ï2«Ë?sÿéõ¿òA®\€{>î™”baoáìÈÍKÍÕî¦î;Ô÷â/}ýGúsëeáܶmŽÞ¦ ­€¿½µþ¸÷|Ü3é’öÚžk&uHÚ)p?1à¶^¶ç4:FÂÞˆÉ8Ihã+' §ƒ4ÕPî=ÀÛö®­®TçÑËCpº˜ò¿’}'øŽ}[ûœ«9.„ïª4‚¯8O4…ûÅ ù%⬜¬Vú¬ŒI ój-sÖm˜±aÀ/øC‘«äÜýÎiN·¤ Ò2RVÀ_`µ°³àÆÌ’«ä܉™R«R V© ŒíÓkU.*y¾B«Ôì,98¬hOÿj&KRÚ(å–r‡¶ZÛ¼ñåјïbßÚse]QQߊWå 3 Ýz¸qgܯéºù.ž¼¥Ûÿ±-[²RéåŸ.<qìy Wôö»$‘¥•ÌBöÌÁòQ‡æšvkZi~)ýšÛ÷ÓQƼ¬Ó‘ÑÇ Ç„_ڽخ¬XÖ²[ü˜Þi®Æ¹IRˆ­ô>­šË8ŸáÒÉåÆ¿,±j·Ò›²]C’ˆ•ëõÎ=¸tqI;žæÔÞ‰Xfÿ¨“ûK|ã©ÅÒUè#aììƒ'¿’õļ¿žûìèÌí——»™iŠ’z*H-ðèéáŰÞ‚}]ê»ØW®e}]\ܶb÷´ÅÚ+[®Ž >õ÷ÿÙ/. ëzªðÌ0½“c½æG‚Êðg[y‚u¡s'ek ž¼ãËgHfüÔï§ß<˜þ™ pMŽÆ=¨Ò“||€û ñá= â|ÇøÏÿa<ŽÖàÚBm¸’Ñit5¹¶Î¸s'çãç;…8 °á¼ÝÄv{ŸŽø0âðågܹ¿qàÆ?Á.š «cùQ0ÀÏ®:ûÒÅ—öFíå45ÄxÖå,ï¶rŸ¡>—7^®ö(jˆ ð”ã)Δaëe{õ«‚ÓAòžŸ–ßÉZ.UHù%r ñ•õC¿¹š\TÖˆ3p®rQuzéxI^IqV±àÀñûØæ^›Ò¼Ò g‚r®å<òÎ6#pžh ÷°·,úq7ñîÐõCwMÜ•]Tøß±Œ°·Âέ:Çÿë·Aߎ;0ŽˆZ sù´øÓO‹?5Ý[AZ?,Ra£tféÁ÷½þÇõ‹.Qi‘,?ÿB~þ";£6,Ë*ÔŠÒ¼R™D¦Kµ%R¥©ìY‡ªW/b¤LAzÁðÍÃG­jw#Ç/»°V×Vg\´Y;[§MñâC,.vÓ·›>ÜöaeÉIÞvLÛ‹.:„:Ñ·„51縥gX%)È`ô^ïE½Wx¬àVÙâÐë?‡l^/—î™ç3»½Ù-vyl±´øÎ©Žq+{y{¼¦»=’­8äºn|†øÈ¬dò\m •X¤ù(c»ªç}LÅjVUáDKúétÞY—²ˆ¨÷Ï}Ûßi?;v¶ë ª8¢Fª”Oæ†B¾pö…» wµsÞîSOöö*•D.yêÿzÇ\‹V­9×%«0ØäÿlV|VàØ@›V*g+w+ÙK¿]š~-ûËââ'„ÆSˆš`€ßK¼—ø{¢`€OMœú‘jae{3 p®v¯:À§Ýœ¶PõQe{ã\¡VÿK§P+„xTÄøÐuCc×½£P+§Âà<îû¸A3:þàpÄåcܹww8›fao¡Óêø%œH(À‹zì{»ï¬À/½iˆp¯Þ^Ò+—oýs+âÕE q®/ÕKì¤J©®D'8Ý;àjõ©ãzVÏ žK€‡´1úZtʱÁ10\€[»Z;ÆY»Y[9Y9<ê‹Ð<‰¦p7üÃݵ›«Ï¯>^_Åþàú«O¿õxt6E CDç¿=Ï_`òã~€£—Î.iù ñ¼¯¨¬°Œ¿À*³”U¶7‰D¢¹§±°·ÈOµ¶T•õÈdŸhÿ$U³È‚^«ç/Ý]7´²Y¢ Ò ÜÃÝ·'1í?ê38zðœ§çø°Þ¤¼¼é²ÿHÿÔ?îQ›”6£¯¯`vl…ÉÂ2Îfø ñ¹¶ûµv-.øjsá?qŒÉ>ƒ|N/;8&0_—oû÷A4Ìcu;Iœ•ÞÛ 7õ+¬wâî¸õq‹øüX*eYi•1B[¢×Vè†k×”Ã)-Û·dYjûäG;=¶PÎÜeÙ <ظÛð70Ñ g_(H¸¾¡(T ‰\¯}-º$Gà´“cˆ£µ«uzlú³ÛžziïÕï ]s‹º˜Ô÷M€`€oì½q⩉_îÈ/æÂ87¹¼ê½ñ®¹§ ï'¯lú?#µ ðà Á{瞊x?âð¼ûgÜ7]öéýÏë'’ZÝ.Ò•è‡dð~m÷µÖQ­“v$ N;ÈøÕÝWÏuÖºvq½—d¶e­¸oݯuj‹Ôœ«9c·ð^p» k„T*— F_ ðá¿,³wLê‰T‰R4ˆZ#ýž-2Àm9ñɉÂÛå¥ð wî%Þ;½üô¥…ƒÞí¿vÛ¶øÿm‰S³, ⯞H,dQ Q'¨É; ^^ÉOÉ磙!&*!ê›óz½ÞÊɪøN±Dn‘’U¦r‘ÞMTëY·ª§–ç'äç ]7”[Ùˆª•êæ_7}‡úêË$½çý•ðñ_“ÿBÆÜbYK¿~×_ôw"–ia—þÄk¿ÝÝ#!Q…ôO;žÖnR;n•l_Iò¡¿eáé¿YTr÷êÝ®¯vM9–2æÅí;g}|È6zó½-èu.f(ÜoºùY¤¶¨ì±ÿ%öoóÜwýß÷ºeO!ëÔÛ§o»÷tϺ˜¥#Ý¥ßeÄ=‘û‘Nמ­ø§ˆéLÃüÚxÌJƇ>§Í@†ä–òôØôQÛGqOÇì#8ÀèÔ0À®¸wRtòäâ»å 8Wm›+À¹½UàVNV¥·t²,ºSýObmüž˜ÛÑðŒ;àž==;¹¤ÈmäÄÿ9â<ýLúØ/†\úéR«ÎcvùW{¨=/zú?í/xR¼n¸/-(mk¡mݯuâA7üñ®öPëœÔëô‚gÜàõÑH ÷9¸-/||c䯲b©ÝÔë{¬øõÀ»½}Õ>êcS÷ôŸß“;n@O®’w™m<pÍÉUrîD5gÿŒý}¿ìkÚL"‘Þ.T¹ªn•ݲÑ:líæt±?óõXáy+gtG§ðv¡{„{Âo ¬„~{;´Ç»¡‡ÎÐ麱¬}ÒÎ$¿á~—ö^g‰Í½ihÞ +×Î,k«×W8ùÔùµÎÛÇmo3  ýq8xúÝÙ—&-d-,¨âÙ*g•V£µt°t·‘÷lï˜þÛ.–Ý´Úÿ+ø]R[þ#ü㌷±’z­ó?Û_þïïÝßãÛæXPäûä±J½g£¼^CÁÏפYQVúœG?ÀÃPY€sµ;à>C|ì&íÞÛkAùýš à…· -…Þ.4\ÿ¨æªðàgƒÏÌ?þ^ø‘÷pÿÄxÒî$§ô‹©¥¥vgúùæ¯gÞ±Y8#s†àH>À•vÊñ¿¯9øÚAçŽfì˸…Eè«‚Ÿ ¾}J`…>ÀóSòe½Ã ÓÂW`µùF\#-ÜM¹<%ù@_sÞ³ç_oþew49/î^ø'ý¾ÿ/[ÉyáúLáiãnÿc<ýe¥eÞƒ½½{›6c‰µñ´É¿•¯pQØî;fÓÒÆ½µ»ÞO¯w6C¹©rVÝó×üw¯ûu¬¹Ž¢¶nãns¢à„W_/nRí&  EL…;ù u'¢ìøíÏîZÛ9êXÀìïÆEõŸÞვž¹ÆËkV¥0ÝxúÞ){[>¹ñÉøã‰HJ’ö×Û+?SR±É¬‘ cãjcÛÚ¶ãG‡“x¬ü:øOlL–(ͱp„®Lת[«„m 6JÙŸ'—õ{©ßÕ±WKÇ”ê‚u®]][ukuç¯$FÂäåd:ú9êýõºÆŸ8:&H¾‡ˆÚ}–fma­"•ºâÀqÍ=Mä‘ÜIšQÛGÅ®ˆí6»›€ˆˆäVr.ô¹§ao‡±B¨œU k…c°cèÏ—><0qÂ잃†mT(zã~Mñ›ryʺîë2ÏgŽØ2¢Ý¤v;'íœt`’Ï…uí¦®ªm€o´Õ0Œðž{=7Ü+ÜÎÛ®²Éãë€ðàgƒ|v¤û;Ý‹²ÊTpžv<-Í'-ïf^Yq™B-ð¾|€;?æä«­—¦ídY¹Jž×RöLiéÍC7#?üyÚo8}ZÒBñÇ›áiÓÜ®+HZñF÷^îÛÆnëÝ‘X*ÛF#þoDæùÌ=nDªa{{ÃëÔ£¶:üþa—.5š˜¶ZŽÁŽFÓ‡¹„ ìY“£Q9«”¶Ê'{?6ñWçPg•³Êð6&¯+[®øçœJ<Îü·õ¿«»¯ŽÙ=fÅ´í¿oÏÈj7ªP0À+k,·”¤Lt˜x‚„‡ËóÎH‡Öëåog›a| ‡ðsßœë6­Ã0r«ò˜åü÷‰¿3IŒÂVQZPÚvL[Ó=ðîÔÎé^Òß^–y>Ó´Y£ pïÁÞ[Æmvµ+-(5K€'¦¿†¯l¹R^HDO¾´kròÐõïXµ¢`ߣ󆯄ÖjW­º¶â/¡Þ>“}#Zðâ#Ý¿ÀJD:V{©Ó%Í{ÖÆxØÃ0w¯Üu q²vH7ÕÛ¯Œ¹’UZêkŽiÅSޤLüwbÂö¿±3ÿHzàêøÿî|¨ÑD—–ú õÙ9i焟†+Ô I^iŸW:¾=¹´thY…½þ׌;3 o²,3aßwq«þçß÷E†¹Ã²&6]JD=ÿ׳þýçNúkJn%×j´=Þë86Ð3Ò3ãL†émL FW¶\¹±ÿFßœ5“NNÚ3eϰ‡9µsòà]Ï_î²¼Úhü;«ß1ïnÈ0À•Îo¤˜1vøèò¾&GïEÍøèßG+msJóJ§§M¿°ö‚éø?ùùÉ©ISÿ»àLp€fB4…ûíS·oì¿Ñªk+"*Ê,z9ùåU>«:e·ÈL}fqû¾#­ðÌ»§¾<%¸ãZ ¶ÅÊjªi›‚´þú ÌJÿcü­n™6cYÖ1ıý‹í‰¨ãËÕžê‚Ûf›ÜÊ+Òk¥ïÊéiÓ‡-}ÂîDÊeÚΉYOhµR¢Ë›.?½ãé#~œž5ýF´¼Åçÿ×Þþ¹Rã3=ç÷\í¿š$D ­}rŠïÈé –êtX¶ÑÝ6¤×êù¥˜¹èœø Ä… ð«’A€_øþBQvѨí£ö½²¯²VàK–F߈–Y_:6 p®}x¿eý®þ=§…O þ$4àSÞ‹¾½Üey‡—:˜îðà ÁëíæF~y7I`¨Lc€xDS¸g]ÌâBŸˆì|í”¶Êïõè™üÇ””ùn _³=qÉÉ%†9»â¬á«¾ úV0 97Þ$"MŽ]YYdY™ñÒÁDTšWj8,rØúa»_ØmÚŒa.ô9_îhã.°oÝ\Û{mzÚtîq¿eýÒN¦©\ÊW#ê0¥Ã?F%D‘ÌB}#úÜês¦{¸—tÏ¥³Kúéô*iíì]ö«4ç/-“ßGIMÏ86õO…‡ IDATPð(Á?ôÖ¡Qkžrjç¤ö(¿ß¦¶îÕ×+Ë¥Òe†šX€§ŸNo9."ýtzîõ\suϼà€h ÷v“Úñ3ÏeÆ.½›x7Üæßåù“öôûTòÉûzb˜S:ð«lìzvï¸ýã*»Íˆ»ÀJD…w$ÿmïRV&0{£µ›õ®‰»ø§K[.zUàļ鬣;Öö+ã3ÄÇði¿eýøe5N/9Í…>Gf!ë0Yà—ܵ½×z¼ÓÃÎÛNGºžÒžlû#òV$’®½ÖúiË4y‚•µÈîãÃs·ð+¿úgàß}[m€ÿiøÉÁ•Ž1 pVÇŠ=ÀÓN¤Ý4ö̲3ž}<ÍÕ½‡ `v¢)ܳ/góm7\ÆhÕþNç¿9ÏŸV‘È%ü yýWèì[oR(Vܸºó*µ…Ÿ}üñ±¦Í6 ÿ§ü¹è×ß)š™=óaZmñ'‡º¿ÓÝ蟩À=^Ýçtß2d‹çãžößmûhVάÝ({ºŒU›ažG€j ¸ÒV86P0À¹ª_ŒÉˆa€sc`ªp®j{€Þ3úCæÃY9³Ì8é ˆŽh ÷äÉÉ’¹ÇÚ"mLFÌšÇÖ\bÛ¤ûßö¸éñþ—ï0ù\*WÉ•j%Ù´L“J¤Ò"2:RïÁÞ†Ã"ŸÜøä­Ãc‰Èo¸Ÿÿ"*n©êjcÓÕÆ&K"šsó¯›ý–ö»´ùÒ+ŠñÙ¯Ùusñ €£2™Ê´TK0À½qÈÆÃfÊS¶ÞÆ·ä\“£q r¯dgµð%ŽKIÕ^|€¯í´vR줵ÖzöÍw0;ÑÔ ¦wŠ][‘OD*gÕÑyGý†úÝ.m¹çí]›í6—R‘œäÄ]`=0Žˆ6 hU\üiqñ§¦{c$Æ'6:Ïì,ø¾¬ŽÝýÒn"Råh~,,ü±°ÐÅsÅÀC-$a#~q|áñ†î4ÑîD4ò—‘w²ˆèЛ‡’$ÛÚïÞûõˆÞCÇ 73|f{}; IÏ{ž¿ÀúäæáüpÉ:ã/°Ê,¤‰Ïýî¯×ËÅvžÚ¶µíb»Å³rfM>ü¬ÅäßÇÞ¼÷n{‡çQµÀ#4ò—‘\íÎøô´éïÛ/ÝñÌŽÖO´æÚð.WÉùAõÁ¸ßp¿6ÃÞ0¼aIDøŸpdÂÏÞÓi‹z¬¡; FL…;µŽlCDúŸõÅ‹Û~Ù–ˆØÉ­Ã·øYfƒÆñÃ"¥–LTBÔ‰E‹nÔÄÝËwù ¬2¥Ìÿ)ÿÏì¨×4„ ß_˜•3‹{<áÈ„½Ñ{õe"»hMÀÈ_Fœ}°´ ´(«È£§yôô¨,À¹ÚÝ\î7ÜM€È ÷Œøt"ÊkŸ×ou¿í­¶?þÆHß± ¯Ý‘ÞØùªD’JÄ-B!WÉ»ÌîR“=_üñ¢ÀV i‹,/ZšWª´QÖëB»Ú>pdÂÅ B ð0wô—©¿eõ[Öoÿ¬ý¿ÿÕÿ)ÿWR^ÙóÒ®Ü ‰©p?:ï¨DÁÑП†žÙxFå®rβnœÌ07ROº³z…àŠBR…Ôtãõ½× Ÿzó?·®!ûû•¾+¹è×—¤L°z€y¦Au}½kCwš—£óŽ*ÔŠ/ïºnhìŠX•³*79×mâp"R9 Ä/Ç\~qýE84q"Z´h‘Ñ–Äí‰ µÂ)Ä™ˆŠ²ŠJóJ={{¶Ý´bØg—a?û+ß•$/È3Òs•Ï*nNß»7ïúz·~¢5È2m9=múr×å´o’®T×bâÐÓ§©¤¤~ÇФUà]^íB>|óð½•Únë†ý8¬Vû7 ðCo²óµãGÉá¼×ü^ç2ú-ëW—ƒhLiá>gÎþ1÷;@f!ëòj—Ý'OrY–ujç¤#bˆØÚOk(UHŸ?ùü*ŸUt|†‚äƒ;ÓQ¢JvÓç“>ÿ±Vo¿mID}&HLìNeÎo䜈†©O€Œ °óµ«úfÍ>ŸôÙÿêþ9Ú9EËŠjûFh†Ê´Іlåh5nÿ¸+?_9ÜnVO×.SûN-{¾Lz²¦§Û9––Üšv¶[åB¥r¡’X%ô¸ ¬ C*mÎÞ9û÷øù‰`ÁQ€ÆC0À×v\ùEäÄ“O/=]Ûr~qÃÅÞoô®¢à3³fþŸÕÿŽw)ÑîüâD¤+ÕQþ­üîÅZÖ“=ÉžÔéuJꓟŸÜá¡79†8ÑÍ¢äÂ]……» ɤò/É)I;™Æ]`µõ²]é»R§AÕP;‚nãa32{$ß)®ì…Uø‹q/~âøIe¯5 ðéiÓàЈ¦p/É-‰]Ë=Ö•ê¾ þ.xBðÓ_.ùïË…_öß׿¬oɉoÃù&à›ŽÑM÷vçÂþk«®®«|V ¾iQf‘á°ÈéiÓ¿ þÆl‡Ð<ø¨£ÞY÷Î Wäþ©¶né`Y>èQšÑîþOù¤Ü‹Í ¢Ò¼R–e Ó ‰(ÿšÎ-ÜíÎ…;\³Ž/w\{¼}ÜŽñÿŒ—«ä¦{SX+øa‘¹ôù“Ïÿ9ýOfjÅ…ï/ðOúóÈ­#ÍzXMà\]nà©GS+ ðo¾©I€sµ;š ÑîDÔkA/mQ)ý5ïH×/ûæk´KŽß{èé-;žyÉËá[…Â^¯g¤Lôh.ú‡fÿ›½r¥ÀĽ¶ml ŸZ:Xöþ¸·i3•‹*3.“‹þìÛeao‡9wr~‡дõZЋ«ÝÌ;ùEdYqÙW®_=òùá? ¿yè&׆p®j¯lšÈ:øÏCF€@ ¦Âˆ<#܉èO»£;œÙt9ù© N?œ_V6½ÍÌÒÒ÷KJˆHf!S¨DdUlÁÜ`˜ Qõj´ð¯ï—}3ã2Y–QK ýv,µ|óMiZšY  Yèµ ×…5ÛU.*ïÞ—7]xý·QDÔýÝî|.ÀKrJÜüÝj¾çªü‡Î?„½æá^Ïþ4¸F:de’w\¥ È V’Ö‹^¼ðâ3÷>ÜÐêË;MïÄ·ù&à›g?û>ÑúfŽ&":-0]LÍÝK¼GDe +¯/é[´¨×ãvô\81åHÊW®_½xáEKËÞ“Å.5 p¥­’,‰ÒÍð¦÷ïµðk1)E³ß ;h`b:ã¾cÜÇvDä?Â?p| 7åsÎéÿýò׿ÜêsüÖQ¿â‡KV+÷F®àvî+#aÊ$gäÝK£¢ônn¨ÛjeǸ!“B¼z87~Æ4Àe2~ÐcMTàOnzrοɆãÝDJ4…û¹•çB&…ص±#¢–µŒü,²¬¸Œû§^ ziîj¸Ç!Bøa‘R}#úøGÇM÷–})Ûðiæ¹LÁLÏ»™Ç_`U{¨3ã2ãל.À½zSœ«ÝÍàܘ8ˆh w÷w.ô‰H"“‘sÇ·u˜Ò{ ³ª0øGf!ëöV7Ó½I’ÃssËr4ûgí˜aÚL[¤5öfØ©/NÕë0šŸ‡à™ç2àÐ|ˆ¦pçKªî—„‘¾-¬ZZqÑŸ—9þÐxÁת½Ô[náëKØ‘_8÷BݺÐl=¤çªöšxáíB84¢)Ü/®¿hކƄêµz"JˆlÝÞÆ¦½ÖdäºÌRñaýšcš)—§˜·ÍÁC ðmc¶UVµ“A€sU;šÑî-üZì›¶ÏpKÒŽ¤úì0ó\fêñT"j>cgaáÎÂB+pÓ©k˜khL(£‘\}"ÉKíå¥ö:";°¸; ¦R€‡Æ„ž\0¦Šf\€×á;TíÐ4ˆ¦pw supOý3‘{º¦ý¯¾^uÞ[In U¡”&¿û·§^/XŒÞ.<øúA©Bx4(.?..?n¸v„T<Ÿ@ƒãœ¯ÝÍà¡1¡RÛ·øñzÇÓ¯ÙýZç·h<ÄT€²r·%¢¯¾oýáØ“ç,kòª?ý×tcæùãÚí}í¬ZZ]þé²i3½VÏ]`e$Œ£¿Ãþ°em¬ó¸ÔJÐø ®v_Ó~ÍÓ;Ÿ–«„—L2Rm€‡Æ„Và®a®¯ï ãÇ»ˆW#]€iÑ¢E‚ÛÝ»8ÑMm«ßµ$"ù’+« Î,=:#”ºÊgÕäøÉë.Þ1ÚG/ç¡1¡×÷^'*4j–“˜Ã_`U¶°èöaÄæþ›[-¯Ã4•xÐø #ÓŽ¸ wS{ª¸i³Jܘa€»†¹F|±¹ÿæ±ûÆÖð(¡FZ¸Ï™3‡lø;àüŠ3ôqßçæ{¦ù­ÿŠþ#“H*­ðÂИХŽKgdÍ ¢™xòy™eޱÍÀ6t0Ûh##gòoåÛxØpOÓN¤¹vseëtDÍDe¾¦ýšqqãRŽ¤ì›¶¯ÿŠþ¦/4 ðU>«ž¯U€› ðZ@c#¦¡2kÚ¯ y>„î_rM;‘&Ј¡ééÓ—:.%¢â_žúÎÕn¹RYçwláÛbËà-ù·ò‰(ýL‰&GÓs~Ï:ï  ÙâFȨ=Õ5 p®j·t¨ÑxÈÊøéŧàЈ¦p?<÷ðÓ;ŸVÚ–WáAレZZ ¶”È$\³\{‹t†Ig"’±uùÂä-ƒ·”äIu%…½ÊdH˜4"œv¨).Àù2ÕxIn‰‹w«ú¿/àGçÕäh">X¤ @\DS¸wžÕÙhX¤·`KîT Ùwý~F³@£aLÊì²Â2£-UÌKÐar‡²B‰s‡;Jå¥rDz‹¥zhVjàÓÓ§Ï—ÿ¯²½Õ6ÀÏw>bñ„Úô ‘Má^Ãk¦gWžå/°Ž?ô 7fÆTÚ¿i÷ïñO7ôÜÀ¯¹m„»Àªr±¾´Å3ýÊ·……›KKÇÕh> Ú¸D&á=šªm€O»9í;¹Ü˜QMán:)«¯Ò~R{þ7#e¦§O?6ÿ˜i3¯H¯ãwpÑŸþwRÿýg9(Î.æ/°†L Ù2xKaºñÌ3Pµ:8W»Wàzn¨I€scfà v¢)ÜÛ>Ývs¿ÍüS]‰îÊ–+¦Í¤f™‘È$Ýßí.¸Ã‰§&ˆ ì=øÃý³Ï”:q›â;ņÃ"'_˜¼¡ç†º@3õ|]×uýWôwjç$ØMh wÛ6¶½ö:µæ éJt+ó°šl%ß.o¬ëV4^-Û·L9ŸÑ²}ËzîÇ0À¹13Uøj¿Õƒ× vt¨çû481îºÝßïüCDŸ_Vüå—,1$‘VûBSÎ ‡EN<5ñôâÓ•5¾ºëªÊM•ê˜Z6¸¬lp™¶¯V`2*Ç™}g?f¦Îjà>C|^8ðB}Þ ‘Má®×êWx®èóiºÉõú¾ë5y¡élD¤P+Œ¶<þñã‚/ç.°¶ìز̥ìèõ£e£Ê´ZÌ Ps\€s#d}€÷]Ü÷휷 Ç»ˆ”h ÷ƒ¯4ÙªK+—N.¦ÍÎ,=cøt•ϪÐé¡u~Óœk9üÖ€QZö䧈~€ÚiðçÆÌ À@ìDS¸?±ô £-–Ž+z„Æ„òkvü:póó'Ÿ—YÖ}@º¾To8,Ò„ÂŽ„:ï  yªC€sK¨"À ‰¦p¯)†øõö4Oùn“Ýòå&“ÅI>lºÑÖÛv]×uÜãÒ wöFïpëf<÷œ«Úk¸Þ*Õ À³â³àÐ4ÒéQ-Zd´åàk#¿ˆ4Ü¢¹«!2éHD™Di«$¢{e¥é 1 )•Ú¤Mu w㟞ÿæ¼ÌBFmŒw%UH‡þ8t]×u–ŸÊœ²+úÈ‘¾ÎGÐ Ô0À-ì-L_ËxIn‰‹KnN®àþ…Üàƒ× Þ½wÂTí z´pŸ3gÿ˜ûðø¢Ç¿rûªç¹òë­™ç2 Ò È¯µék¹S59nüfڥ׈hÆã6[n³w e\É+K`ú|Úg÷‘S¦{³÷·ÿ ünø÷s5ï½ã[M= ©ª,À_I}…Ûȸ÷@oÓ×r®´UÎw™?ƒfîß0ÀÏsþnÂ]nÞS\€oê»é=ÍÜÜ\î z¢*#UJ£¢N½tŠˆ2Ïe_0ôÏ®<Ë_`pü9~¸¤ {‹ˆ#¶ ÜBD%w‹#ßf23‰S“Ÿu|Ññç?»8`Yvn.÷ß›%%æ<6€& ð¯Ü¾¢š¸D&á=šâ¼êªîø³‡Ÿ] ¼+qMáNDr•¼óW]ˆ¥µ¯­=÷ï¹7-ß$"iÅCh?©=?,’‘2ÓÓ§›Lpo®a®.¡.DŒOÚa›ˆ›ˆ¦°$ö¦Õh¹ ¬öþöÜ%ׇsdMœ\%JˆZÞjùþYûÇ/ØÆ0À¹Ú½ê?ùÙÉ‘«GTöŽphzÄT¸‘"MNDŠ…¯Î×Wç+!‰³¾Â"|R‹ ë1Id’îïvÜÕùoÎëJuÄÐy»^y y ¬³3+­ðÞ.ä‡ErÑ¿}Üvs@³q/ñÞ­bÇ{‰÷*kPÛòÃÕÝ¿©lophzÄT¸gžËŒû.Žæ•ÿ^)s*‹*’Sí«‰@›Üë¹üV÷nÌŒ)Û6¶†Oíýíû|Ré5Y¨ 7B擜qü˜™š¨:À]Ã\ùA¦àÐôˆ¦pÏ¿•¿Öþžó{ÒýK®W¶\©óÞJ Jùa‘j7›ˆ#Žt¼&/T{©ëü¦ÍàÜó8W»#À ™h¤³Ê˜º¸áâøCãÓ2³¹§r•Üÿ)˜º·FœÚ9>u sµ°·8R˜^ÏN€).Àù§å^W‚^÷Έ‡h臽f´E"3gçíýí͸7à!ÀÌB4…»æn§N?ñÉ óöj`¢)ÜO~q2ÿV¾á–Üë‹ê^|Úðé×^_wžÙ¹&ûוèêÓ=¨ À,DS¸÷ZÐkËà-Eå+]Þt¹0£Ð´YçYÛ-æÿØ{ë‹q/ .…w3Ïð©¶H»Æ~swˆî8_»×$À¿öú`D4…;M¾0yÿkg‰¥Ë›.ßüç¦k˜«`³Y9³¸èv\¡úû¯•‹›.‰ª¹«¹¸þ"÷XWª[é»rÀªµóÍÙä “¹Ú½&ÎUíJ[¥`Ã×iàÐ|<²YeR¶ÆL]{íÁóȹ»fß­T½a?öüJÇ$ÿ¹~Ôæ8¢eD;Y²4mÆÅ½B[Ì興•HXkkÃ-kyþ»óDDC“þ—8=mz­»Ð\˜'À'_˜¼Ò{¥GO!? ©¢™ÒVY’[âìÙ2'W`8 xÀ¨€•¾+àÐ|<Òé ë–õ†nü™Ç sO;í~'ñ µ§‚eU¬^ITb؆;U3hå÷6³þ›EDtþŸs§~Ëúí{yõ½üÉ•§UO‘?óš”êÕ?€&ªþ~yÓ倻'®ÅÊóoåÛxضyp®™G9³*Ûàf˜‘9£^}1 •¹¼érú¹tFʼ7mӀ뚼0"©Q›³_Ÿå/°NŽ›Ì—4¥-Ò&lO †ºí]]íÌ:[²çï ž¸2}rÖrcf´EZÓ6†ÎzÄxàØÀH»k•µhzé÷ƒó‡$¢JÎÜ,Z´¨Š×¦H»ùÏͰÊ/°N¾09q{"ÏÝÛþÅöRåƒj~Vά£óŽÒã•>XË]`ý)“±L¶lõ½cðsÁÉúŒl1ý!ðèÔ?À|]> p¿á~FÍ<üƒp£f|€ÑŸ×?\ÛÃ#&55ÕÑÑÑìû5é=iÕ²ÑîFÿDF«°hÑ¢9sæœZu*äùÔtÙ`kÕyëò£’Ô³JJz—˜¾ÊEi›˜—b£´!¢˜ów¼ÙôWkÇÿëÕ]W}†øQD¦å÷š7>k;ºí>•"Ybù¿ŽXDÉÒÒ<× R€›¥odàœ?cþl;º­G/síàÑ«:À³²²Ôj5=¼3îí]Ù?=¹vþÍ¢šå>ÇŒ¡OD†¡ODý–õ‹[GœÍø"%ÆGáÍh††d_Î~¨ûoÿbû‡º€f `ªpOÙóù‰û7¤ÈðZÎN| 9ù@²á–Ìó™æêT Ð8<ª›SÝ=Zów6ÕiV±NÓ;ý6ê7וôxw´íè¶æî%˜0S€‘W_/B€ÔÕ#›U&lö®]³ë·‹‘¿ŒüvòŸÚ^>GçU¨A”dÒˆ%b*l8±è ö1igìì×g©«ðJ~Í›yœ«ÝSޤ”¸)¡›SýŸ g¿>ÛñåŽõë €ˆfŒ;gàâÅúⲕe}WöU¨©”ôzç—žfu[úÊí«.³»˜î'iG…’Ïä=Îqg*ÀC4ò—‘g,ºSÔåUX&8@uDV¸Ÿúþ”\-¿z/~a|þ?ùºÇt¬{…5Q;Ïì¼´åR.ú7>¶1*!Jª0^¤‰ˆ|Ÿôå—ö8½ü†÷`o×0œnxˆŽÎ;úËÔ_ nwçøWn_Õ$À÷LÞƒ€æã‘.ÀTOGç•{ªjÅÈ#õ›C¸É­Èd÷™Ù3—8,¡‚÷óÏä/i±„ˆô4Átoܲ|úKï¸vÉ —Aô#iK„•SÌâ¸óåô2ý6ê7Ç`G•‹Ê´à2 YTB”\%¯lo\€Œ ðì0*àav Í÷Äí‰ µ¢ÃäÜÓ‘¿Œ¬b~1™…Œˆt: £Ñ0Éô‹LŒ Ð믈¹üg¹üg¢2=kþµ¨š9.Àù2Õ¸V£uvo `TÀ¿ü×ur7sv qÍw™…¬Ë«]nlñìã)Ø’»À:ŸÈÚÏzZÂ4FʼE…D¥F͸ ¬R¥ôç§|^?ò étVÄHL[@}pn¸¥ê—«ää0ŸÕÍ`¤Œ`3.À}7hžÍ2)Ñœqo3 MMš]q–¿À:ùÒ”¥-—+Ð,ýL:u؆aüpI0»:øÌì™5 pnÌŒY; Ðx‰¦p¯ìf&#¦t093{æ±ÇL›Y·²69+gÖ®‰»êßI0…0 Ñî%¹%±Ëc ·Üúû–i3‰ÜøˆzÌíaÚÌÚÕÚhˆԯƒ `¢)ÜýŸò/H/H\v†{ºcÜŽ~-¶KP\€óµ; néÍ©‹-2ÝØkA¯]s‡|qâçWý_hWêf£{ô=€*Uàÿ¼÷OìòØ”#)!“BLÏš@µiá>gÎþ±áï€ÇôºÐqí¾Þ^oŽî@D^z½¿^/ðúÚËŠÏ"žåj®²ïµ ×>p ðèmÞwÌŠÏr Ád¾Ðô‰f¨ çàØícöœ`%ùyá¡kyy¸Ö©pÏ8›aø4ù@òµ½×ÌÔG°cÜŽž '*m•FãÝk Í–˜ ÷ãv„L ñèÝkA¯‚ô‚»Wî 42™;ìÄ¢¦­¬­öMÛÇ=N‹K‹]Ûõõ®fî.Ü÷<ù@2šÑîçVžãBŸ{ÚkA¯²â2Óf§—žfu²ÿ+·¯ºÌîbÚÌÆÃÆ=Â}ß´}eú²‹{.ŽüeäCê6<¤çªv84¢)ÜÝ#܆E:wt6mÖyfç¥-—rÑÿ]Ðú¨„(©B*¸Ã ñA–ö–yº¼'žT»©ÕnjÙ^ë,´ÚÔCœ[Bµêß7}ªvhVDS¸×üÆ£òõöˆ^ŠË·¶_¢T~ÆP‰i³äÉY—³¬\¬þ|üÏü„üü„ü’÷Jt¾˜¨ÀÌjà\Õn¸“.ÀÃç†O£™; GIDATš5É<]Ñîµ"³‘ÂRÇ0†Ñ°¬µ^ïcØ (³ˆ»Àª´U:wqþã?XKÊê.Ü'³i5Z7Sò>ÀƒÆ½ÙõM~¼;@“× wîT -õ°..|W£yeŒÚä\Ëá/°ú ñqp?ÿíùGÝQ¨ˆ ð™Ù3çK?0ïnÈ0ÀƒÆ!À ùhj…ûÙgù ¬S¯M]Úr©é4Däæjø4h|C[ãâ%Ã/ôˆ0ÐÔ ÷S:‹œ™=óØ‚c5y¡{„ûCëTPµ¦V¸KäÆGÔcné Ô  jM­ph’ši᮹«1ÚràÕ Ò¨84[Í´pϺ”•v"úmзáï‡7` †àÐl5ÓÂÝ=ÂýȇG¸èÿ»íêqûÇY´°hèN@õ üÛ oàÐ|4µÂÝtÞßãl9fï˜#ÑêËøÃ?òvœca±[&«t™>xÈjà«|WÛ?ÎÚÕúáw  Q5t„-Z´¨n/Œ]ûXÔcR¥”{ºÜeù´”i¿]nœw3ÏÙÃÚæFÓJEDžZí‹%%u{_à˜7À+kœw3Oí©ÖßíA®qu{;Ñi¤…ûœ9søÇµúºÌyÙ´›ÓHI+ýWN¿-‘ _Uà.°Z»Zo¸%âã= nêàR¥t¹Ëòè¸4âÃ484Mm¨ ÅdĬð\¡%í+S^Q-V)?V2w£6×÷]ç/°r—\ï%ÞkˆÎÀ\€/s^}#Zf!|j ÍV,܉ˆa"’È% 1 1z/½¶‡Ö°g/OÃa‘cö޹²åÊ£î%˜àÜÅÎ¥²ph¶éP™úà.°.°-]ñÙŒ„(©Rª³´$]…6R ©Ñ«º¿ÛýÑu„p.³‘-énêøñî†àÐl5µ3î±Ëcù ¬/'¿¼Âs…é4Ð87f`¨©î_îh8,2&#æÄÇ'°?PCp€ª5µÂ‘߇ŠK¨¢€¨ZS+Üš$î"€Â@P¸ˆ@S+ÜMç;þÑñé Ô  jM­p]«+y°ØÒr—åÝÞêÖ€ý€B€T­©î¡1¡+Q|–5gô1âkY['>2ÿ`ùcïIü'‰oc‡Ÿ”zB€›¼žÌà(Ü›>üPÕÍý5ïI¶¥lýdmë¹»–…ø|HÌVÃß Hèc$ÂײVRnݸÿy¥l™úÉÖîËF»ãÛØ<à'¥nàf7s8†Ê ›½k×®¹‘†›RŽÿsÍÛ“ûÙr÷ô¾v3¥Az&*#Ô–ûèe÷Iº{´&o#@åàf7s8θ7}çá®ÑàOdshíñàâ·R( glê_˺I¹uƒ¼{ÝÿÒáÛØôá'Ŭð#cøZÖY…{Óæ>zÙ®ÑDÄ] ™ã‰Kƒõ‘róÁ¸>wÖ ×‘Ãײ®R¶~²öZäÜeî„ocs€Ÿ³ÂŒyàkYWf p •i.ÜG?I¸4X?îžÞüã”[7®#M¾–µqâó©kiÒªòó[ø66'øI1üȘ¾–µa¶GáP+7n=)Ãë\Չχ̿1ÉèÔ¾µ‚hæ pîMZÊÖ˜ÏOܸá E†c,Z}¸wïÅßB’r“¿±j_ËZ }|›<ü¤˜~dÌ_ËZ3s€3©©©ŽŽŽæî%4†³‡â’Ú1üì ¦^å7ãó¬¡_ËZªð!=ø>âÛØ´á'¥îàf73xVV–Z­&î_¸c¨ € pî"€Â@P¸ˆ w@á ²†î@c–²5fêÚkD+xl€FMθTÁ}ô²U“¼‰ˆ®­ýdk ØÌ…>EÎEè4^ph‚P¸TÍ}ô²¹‘DD×Ön>qâsnbïI«°Î3@#‡‡¦†IMMuttlèn4n'>Â>EÎÝ…Ô8ˆ_VV–Z­&œq¨‘°ÙÜI"¢È¹}Ñ@€C‚ î_a%":8?fkJCvjM w€ê¤láR?rîýÁ’Ÿ ùDM w€ª¥lý„›† rîì°°±÷§(˜úù‰†íTM w€*<˜ó·|`¤ûè·¸äÇW€F Mf•h¼0« €˜ pî"€Â@P¸ˆ w@á (ÜD@V“F………z½þaw YÑjµVVVJ¥²&«/Ü [´hQï^€±ôôôîÕ•Á¹v€‡„eÙ¶Äw@á (ÜD…;@Íí™Ê„/Ijï"ƒÂ@О©L ]JVó¯²OZ^ᨧî©d£ñÇSÞžÍãÐ,õXœxt¦¯á–ĆêJEƒV±ƒÞÞ£v³«Lvo²qË®ºÿ8iI¸ß– ¿‡×% œq¨“ 'œïŸkÞ3• _²dªñzöåMl28OÍo¼Úøí’–„^MÇfùq¯àϸ›¼ã“w|¯¤%áf¨ w€Êpg¸++XïŸ.ö›uŒâÊO"߯`ˆ¢c—ÊGÖð­Z5ˆ’vmáÏOûÓcõ¶=TacíÜG_ÿ ã’Hø½ˆÈwæQ“¿üCùß#=VæNŽ nä?ÁÓí5è›é'UBáP™÷ϳ&'º÷Leª8AND~A=ˆ¨ü\y…ÓÕ‰—Ž=8í7ëqÁ÷ªß™ïüíQÙÆ=S¯ŽÚ]§¢Ûô“€*¡p¨½=ÛVSÕ'È *q~XÍî¨ÕåƒU¢v³ÿ$¸_ç?&ïe>UŒ’©O*… öü‚zðã=öl3¹—´¼²1ˆhÏÔ#Kü‚zôòôÆâ«Üߘ´dê’$nÉýq,‚;$"“óßÕ|/ªüæÔ¤%á÷·&-YP~‚‰ª%S=ÓO¦nûh6P¸T¦Â÷ #»}gþ°˜ÊÿuE™¾dpüâÄUƒˆhЈ~/~[Æü0Ó—|gÝÍoôÛ4Ä—ˆ­âÇTØ!oЋ{¬\ÛA%‚ïUEsÿûƒWüf…”Ï)¸‘%S¯Óí¦Ÿ T…IMMutt¬¢E~~¾ƒƒÃ#ë€hí™Ê,2žú *·oß®ºØÎÊÊR«Õ„3Â@d Ý€&cÐ*“‘ÀÃRýw†aA?š!‰¤¦C`ª?ã®R©–-[–››[¿.@¶¶¶QQBs‰ ©~Vh(˜U@LP¸ˆ w@á (ÜD…;€ pî"€Â@P¸ˆ€Œˆ²²²ºP&??¿¡ûÕø©Ët)™'IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/curvedemo1.png000066400000000000000000000331241465265754400212510ustar00rootroot00000000000000‰PNG  IHDR,XWDLh pHYsÄÄ•+ IDATxœíÝ{˜å¡?ðwE+Šº#VÁ Ùõ,FE]mÔZë¥& ¬Òžà­–x7j÷I­ÛšzZëy<'ölÍC{Ì>l½üˆç·H»À&ö§x…(Q±FVvG+ŠØ‚Ž(ŠŠîïIB6×ÉdfÞË|?°¹¼óNÞùÎû¾sIšFGG гí ØÚÒ¥K÷ÎÿnUl =!e!e!e!€¥æÍ›WôÈÞe_7gÎó+`;ÍÍÍ¥¢'  !KŽzñBIjmª³m’Áö~oZQEQâΡCkTµpG ‘8Ì^ŠÙ\áì’EQ)O¶‚c¨ñmª¿­yÅMÕ†!„Ôß6ÎÖì–âŽDÜ„ÈÑ®P*j—$OtMÔ#“ê³É`áž~O'ÛÛËQO™~¨ráwÞ™ë(’Á\W|6÷¾dP-¹t9šV¡¨Úk¢O0è‘$I &³Eæ^0´ÐSº"Ùê$ R~+Û34Í.:_bñJi[É<µ¡íƒæX?w§?æ³½9}a—+œV”Dàœ@?6$„ä@Ìß“ÛÓ'ƒíC=êÞ?íí華åT-üŠC!„ÈQij]Iä¬ÂÇí 9ã5ú¸rK)­v*ÓÖ§(qÌ×EÔÿôFe’{\QÒaêŠÊ$lÏ.2ÎøÆÆ°ŒT¨½`4ZþsÈ-B‰ûc¾`R.Z)¦}ñBEù¨©IçÝ(ŠÒ9Pºë'DÝÂ’êÆÜéÎ>(gḨnyí¡Tjh„â$”âáW !ò`? w» I…ÚÛ‡z”ˆ›âhu’˜O &s}œÖU(­¶ËÛá ¤¥Í•ÿúfõOB^WjhDθ²õqtx]Ù(RaÇ G+ >s‹ îN?É “±+UöÄ|„är¨þS”ê~¿;¢(qá6—{¢ÓHŽÉ !Es¡Šñ¨Ux9®p|O¤æ«Jˆ+-¥Bµ™P²Rõ|˜64‡¸ !!DQ>%Mõ5Œõä·my8ãjkQÿ_°?vw‡3>_¦°»r´:S¡…E™(2i(œ8:¼¤¸¨–@"N|êŒ0• qG”tØ•ÎÍŸÆ,¦ÂRÊT»ú'1ØŸòwº V-ûH•¬Wr æòv±+EÊ}˜Uéihž•¿bFŽo¦]’Ô?\átÂAÔ)•ä“b®p:pG‡×ÕO: ‡ZîH:ìó¾r#±ê…ßr !‡¨³Ä|Qþ߇s ˆHíò{g¨] ¾d(åòö9j,E}¼¸Úå¤ à&„¬š?®¸‰<¬éíjy«¾ÆW’$cVÊA´|˜6Ö¤ÞY_t?!³—­5KÒGŠbp¡É ÔÛÆÊ–‘ J5Ç¿ÙW²Pm9êé"}FWÔ†f€zÙZQÜ„ê %©YÇ&9ó÷(L$y8ãïŒhy%SÕ†FÒªgGG›ì3›[•žPmkN[¹lOÈÓ™JòX=§ò'B^L#BÁ& ¯Ù)‡!e"˜)ºž†ÓÙÔ¤6´xW–ŠBBˆ¢|$êAm(T¸Ãfo‹á(pF¼ëiBÊBÊBÊBÊBÊB F˜K^$ÈyBà .¸/ÄV whQ]Š2¶ÑýµNÜatN(Ò5òÕ1ÔÂE`¸à¾C!läËE/¸à¾C!$h°%Fç„öP†P†P†P†P†P†P†!„HR3.Ö¥…­+fÀzù[û.Ù¥=¡Y8ê[ÄûNk¾Ø%„G‚Óâ®Âb?„jü¬Œ¿?$ÀpÔ¤½­©h‹9¡Ií|Ãp½áŠôëùÝŸ{“¯Ã!æ|Dâ÷„&É÷®¥}]áfÍEß"Ư;@Œ•ÿýY3 '6 ¡õ÷ «9ä"B2i`R±âGÕ˜7–¨d”4áîdZLÚý™T¬ø!T‰üV¢»c„I“[ æÌ¶ŽšDm^ÈÑyKÝLšÜš=gF2Jø8ÍÍéyK›@ÅÇïyK›@(ÓB;Ì1ÄÀÝyK»ÑytÔŒKÀ<ùêh,1. b™žžs é;¾Wå o¯÷-6dÖœ°Y’ª<ËZÛT©mõ1c‰ÕŸÕýF´\Ve‰êÛ™jkëZ =ÃÑüyjï­ùëÕO©WyV÷¡»>Ö³øóɸR[7Rë?vS[S眰‘˪· °#ßÊõ6–y×R Iÿekº'º—ÖË_y[Ws72V²!K¯EÛpJÇW¤ÛÍfõÜhûà®}%©™J)ÜEÁQÛHR3!£Dâ©Î ƒÚдŽSØåV& g°8†$°¢óÞÖ·5®Õ„µó] „Ž&bõ7n³ì>Íõoå'~ùc¹ÆQÔñ†¸«4Ã/¶Æš3œ…4Ö<(ŠÒ9PÚ¢nêIu«îtg”‡3$æSwèí¡Tjh„â$mÃMW¸[-©¥ÍU¶4G«“Ä|R0™ëã´Ö¼´¶.o‡ƒ–6Wþ?Ù:x;„âèðºRC#òp&W+G‡×•2!U×ËÝÎôæ‚T¶„škªáÓ*dŸòBIŠ(JPQ‚6;¢(qáÆ—{¢ÓHŽÉ !„¸ÂÙ阢(JÅœhU\šš¯J;†*5¯P[“8}Þþ…ƒõ¼EïçfXCs‚§æél9êÉoäòpÆÕÖ¢þ¿`'íîg|¾LnŸN!ŽVgªxBT{NXIiir4• qG”tØ•–Ë•^¡æej[•<ØŸòwº ê}DÛz9=$J]‹âª¬iýl’CnneR÷Žù?Õæ)|¤6G‡7Ó.Iê®p:á êÜJòI1W88ˆ£Ãëê'…2w$öŒy_…qh*Ô.…!„øãé¶ •(-­•äÞ—«ÓÈPÊåí+XHÙš«×¶jÅ\átÂM)¨ƒ?®¸‰<\£„|åãþXoÑZT*Aóç6– Í›¦ÑÑQBÈÒ¥K 3g¥úTT¶%Ôݤ‘-” J½m7³$ƒÒ@§¦á µ5Z¥†#‡ÍÍͤ$n| G+µá3õ@#ÝmZÎhœä±P[cUihÇ¥Ü G«0pÄâŽ(ã¨ÎHhÜÜX¨­e—òÑÖ$öžT¢¶2!Ô¸ÿµ…ìCKC ÙÊ„ x9d=„¢N ˆšõO¨Š7P±‰z»AÁšéÚyˆöÁtÁ°«e7„úÚF° T"RC³B›`4„¢Øš0ÂFˆ4P;0„À‹»Aaö¶,†C°Cv€]ms!4¤m„¨@ub44s!°„€2¶BhàÍÓøÞ‘ÖgEë'YïpQm†£õ®' mfC+kgõœ¶©kßÁNµ)âtÔÃ~CBë‰MÙúíØØÏ mÃzšÍÃ`Ã`“2¿­š[4å·a Çé .¯zýÙlh-Ÿ9Åšùõæ}9\u…ÊÔ_ø(-™ÓÖWšbÍ þŽ™²ÍÃrÛTª0á9{àn‡ËrC›þEO5•e]w[°|­#ñSÂÂ-Œ‹†ÉOد*SømhÂX[›Òr·YóRϺX 4´!L<:Êæ 3‚÷c¤…ÐÐ 2+„h›@C77õЉ‹I¨BjD‘B#BÊBa,Ê„&ŒH „Ô!„¢ÁX”;!e!e˜B@B(Ly„Ò‡©Í!„”!„âÀX”S!0"µ3„Pèù…P†P†²¢‘i!Æ¢\C(C¹‡nw!Cp¢ÂžBÊB¾a,*„-‘ÚBÈ1tƒb@(C™ƒ©Ý „Œbù7ÖÁX!‹%ˆþÐ>BvUÉ!ºA‘ „LCh!ëÔ"ŠC9P4EÄXT0!704BÈ5‡èƒr B@B@B@B@B@B@B@B@ÿ!”£OT¦]‹FiY û¬©õEQÅdå¨GÊÊ~ÈF}ÜEåÞŠ¥5·†õ.Ѭ­³h1^¢¾ zDÉ! a2ØÞïM+Š¢(JÜ94bâ¢D"à0¬8 k^Êåwöw™»]˃ýÄï'ýƒZ–Rý³5ø“çƒ!$„8[³íãŽDÜ„ÈÑ®P*j—$÷ÿ<õHÁ¤úl2(y¢›soÚÓ åö±rÔS}¿­îå¨Ç³oÎ^RZiñšj^TÛ5Q'ô¨ Ê™{ÁÐBOiýÇTª`MK+ÑÖÝã -óÂâ´­iÅOk°Ÿx»;©l Ë”¶§¥®\Í{üŵMeÚú%îùºH_~‰¹Ç%&¡.µÙE¦ÃߨVX~$N _X®„škZ±ty°Ÿx;îN*ß—–m©´¢$®8$÷$”Üà xQú¬í 9ïÌuÔ/÷üH™êíY)%vÕþP8À`‰;¢(Š¢tõ÷Þõü­·žqÁû]ûߤºUwº³ÏÉÃóåw©¡¢¶°¶A+Ü­–ÔÒæ*[š£ÕIb>)˜ÌõqZkîîTS¸§¶.o‡ƒ–6Wþ?Ù:x;„âèðºRC#òp&W+G‡×•2!U×ËÝÎôæ‚T¶„škZé#Êf•Vþ¹ŽË#™áâ=ëhu’Ø¿uÜté|w§ã‡ÿˆ7y°_gJ’/FRÚæ…„ÈQO~ž\Úq•yÖ}ëÆw'Ož¶}Þ·|påƒÏ}ðAëÍF6+“Ø ¡õä7ry8ãjk!„ò~z­ûº“Ô‡_z<¼îΟ¾´`«v´:S%ƒšsÂJJK“£Á¨Lˆ;¢¤Ã.u^Rz…š»»ÃŸ/£y÷-ö§üî‚:dѶ^Ž@ …Rc×¢¸„*kZ~ò`ÊÏe!¢î4×Ã˃ýe¦pEÏÊÑ]0\®~ÎÝuñçÃw÷ÜõæØ çæ¤e ä{!ttx3ÙˆÔÞïí 8!ŽÀÇãW.»kfvËptÜêr¸ã«¾¾—sosGÒáüûªE/»;¯Þ¡•”æh%Ù÷åë42”ÊmAUj®>îûʪkï÷¦#îÂ:´‡œñ:úw$î/Z‹Ê%”ýÜJVMì'{uDº¹´´ì,Ø'Iž‡¶gÿtf׫kÈYÜ–>ëh}ý©·ß~Aît¿š¿p×)ÕsGâÙ÷”)OM£££„¥K—>:gÎJõ)oùòMË—¿‹ufÿN¥Þ¶t"pï­OpÀ7þíß¾M¡NÉ 4Щi|”«-7G䵯šÑî¿ÿÕ þñ»ß}¯èqçÿÜyçw]®Ã­¯’±š››IIÜØë ËY¼ø•ërcQ’;Ðè ä®»Î?~ï`ð¯ÖWIÎhœäåkË í«f¸¾¾—ººN)}<‘¸ôæ›ÿú·¿m³¾Jà 'ܸq»ß¿ríÚ«*½ {õñÇßúÓŸ.²²V`¸'žx{áÂûû¿_é§ž[¶lNK‹de­ŒÅkO¸xñ†ë®›Qå~ÿ‰—]æ¼ì²–U ÌP©Ì[¿Þá…ñ÷ÞÛiY•¬ÁEÇŒE˺ð–¶¶‰‘È‹ÖT 'ËʦMvtL«þ²×_Ÿæ™(ÊçÖÔʬ‡PKUW\á|øáŒÙõ“ôõ½ÜÕu²–W.^<««kµÙõ±’8!lk›øÅ_½ùæGfW ÷õ×£‹¿²`¦^pÁÔÁÁ7GGÍ®”u˜á³Ï¾{È!ûMŸ>QãëgÎt¬^ûcø£½T ÖÐL‡pÑ¢—çϯ£mfÏnY¹ÒÚˆÀÑh:h×þúY³«V!„æÛ¾ý³§Ÿ~gΜcµ¿åì³Z¿~ë§Ÿî6¯V`¸•+åOñÄÛFFY½Zž9Ó°oŸ;å”I[¶|òþû_:ÃPW®™=Û˜ ¡J€ŠŒ !áÿ)C!4¼mp[ƒþþ÷Ÿ}¶»ñà…xŸz°ÂTê½ÖÖƒ'No`™S¦xàßÈd¶X&4Èð]-AbFÛ\ÌÍ3º©‰x<ža%„³.Äû>R0_|ñճϾ{ÞyG^2×ÇH™áÛoïØ¹óËãŽ;Äð’O;mò[o}´mÛg†— :{¼×ó&BhøqÑB8FÊ“&„ßpè¡ûoØðO3 7!4oI8ßG Ƽž§ôC¸k×îµk·œ{®ñóï'‘„ñ ﵴ|¼B¨Ÿ©Ý !d¯½šÜî©üÎÚ-°dɆÓN‹™ýÅÿü§Ó° ê+9üð 'Ž_³f³…g2Û÷»fÎ\æt.^½Z¾à‚©6\388÷ž{<‰Ä›Ÿ|ò¥ 5Ä£=ñÄßÿç<êŸ×]wÒk¯ýóùç·˜±, vµÄ̳…Ë—o2ïw (‡Ð‚!ŠêškfÜwßcËüüó¯¾ÿýþë®[¹cÇ¿þõw6o¾añâYsçNÏïS~ô£xàoÆ.Ô(ùËÈòåo,^<«ðÁûïï¼úê3gÔ]¼Õ×äó÷Øc›Œ-ö?ÿóù7Þø ©ÉØR÷ B³'ëy—\rìÓOoþàƒ]– >>{vËsÏ]uûígqÆ¥/˜7ïÄ¥K_5p‰FI$Þ|à¿ýéO=>yò„ÿøÔÛn{ÊØÅ{§huóæÐ×÷’~öÙîßÿ~ýÏ~vºe¡BYVvïþú_þÅÈ ê«0¶3|ãÖ¯ÿºëª}_X[ÛDI¿n)<Ýžzjóþ^¶ì’²ÏÞxcûóÏ¿›Nù[+Ötƒª3ÏW_ÛP‘êüßwßìk®Ñ¤Ôâco…::¦½þúö·ßޡ㽃ƒo67ï[öܯô‡ð¼ó޾þúÁ·ÞúHÇ{iuƒ*Ýa,öêyçsÌ1Õûƽ÷ÞkîÜé=”ѱPCèþÀO>ù°‹.:öþûuîA¨Lótw†Vvƒ¤ÁáèŸþtÑøgo¤5!TsΔ͛?Ö1ÊÒxn°,Š#Òի厇~úÓoÝsÏúM›>¬÷££$‘à/„Ë–m<ñÄCÍø²•J á '|ó [ïºkm]ïzãÆÛ«¥EjdÑ ºöÚK–Ô×.\¸þª«Ž?ø`÷¤žqÆ~¸khˆÂO—6>îˆÇçø|Ëë}ײeƒÁo5²Ü¿·Ï×öÇ?¾V×»,îIãfn½õŒ+6ÕõÝžK–lèéq5¸Üé‘6Þ6´:ÃÆC8ujó 7œò³Ÿ=©ý-©Ô{K–¼¢{à`”ùóO^´¨Žs‹½ÒÙÙrĘW¥R}ðÁ‹¯¼r…Æßqdz“'Oðù¦7¾ÜFì·ßÞ—\rì#¼®ñõwÞùÜ/~qæ^{5t!=•ë¹×¯ß:eÊA‡Öè¹ò N–eEãA©wúIDATÿÏ?ÿꢋM$.mp¡›1ãÐýöÛGûÄÛoúŽ;Î6µJ¥ á´iÍW_=ãW¿zºæ+ï»oÃG}þ“ŸÐ¢äi¿zfçÎ/£Ñ—n¹¥ÑÞû€öñx¦ýßÿûFƒåÔÅÀ tµJÏ9ç¡5k4]šcí3ÃÞÞu7Þxêþûïmv•Šsž°»ûÔµk·¤RïUyM2ùÖªUòÝwŸoÈwúéG|üñçZÒN¬‘xeRSyä‘K.½ô±ê/»þúÁŸüä´éÓ­;°QÝ¿þkÛã¿¥(5~¶y÷î¯ó›u·Ýv¦5µ*dØÉú?þñÂ*_R²qãö_þòéx|ŽQ‹3„–™á–-Ÿ ŒÌŸ’!K<÷Ü£eYÑwòJ‡Í›?Þ±ãóãÿ¦QvtL;ꨫӊF_š8q¼×[ÖEËUl==OX|<&ϰNš4ág?;ý§?ý¥O}úéîóÏxíÚ«ŒZ–Qj†ð©§6ßtSòp¸P+OÜ›qîÿ÷ù‘È ›7\úÔsϽûç?‡Ãç»ÄÆ]wÝI‹W‘nÚôáüù«^}uÛM7µ[Y«<#/[»öÚ##Ê“Oÿ.çñÇ/~íµë \Qöګ骫Ž/ĶmŸÝ}÷ 'Ÿ|ÿo›úéO]矌 µrDjÒEe'‡;w~éó-_¹ÒgøâwØaûŸyæ‘¥—I½öÚ¶yó®¸b…Û=íñÇ©F2øÚÑÒÓ÷ßýîƒ=öݧ×Ìvíµ'-Y²g¹zõ›—_¾âŒ3øä“/–/ÿþŠ?8ë¬#]⡇îÚi“-øfþ]»¾Z»ö]3¾UyúôC®¼ÒùË_Ž9÷Ýï>øÔSW¾,£HÓé÷/¿|Å‚«¿ÿýyá…ysçÒ<\oð Øç·¿=¿«k°¯¯ƒrå•þùÏϨ÷rg+͘qè>ûŒ[½Z~á…­<ð·SO4oÞ‰?|±© 7ïÄXlƒÙî™z³Ø|ê…>úÌ3嘆t]{íª_üâLº`TwÖYGnßþÙÆ(Ê®ÞÞu~¸«§çtŠ×N2þhìe—·bŦ•+å§žzûì³§h¹ýœ®»ï>Á‚ÕsçNî¹ZsïéÌ™Ó.|ñƒv™÷ðÄü t}Ô;uê=[·þxáÂõGyÀ~ÐfÞ² qóÍ®oLì³Ï^==§ï{FN1dÊ)‘¼xâÄH pJW—¹_Îaˆ“N:lݺY¼Ð©S›W¯–¯¸ÂiÞ"V®‰D¾g^ùãÇ»÷ÞY³gÇ÷Ùg¯Ç«ö¥5Œ˜;wúqÇB循êL á—_~52ÒõoŒ3£p1ÌžÝòÈ#óBøôÓï´·›~³XggËøñãN;­Ž{…éb0Ĥ›z¿ñq'Ž?à · òÂì_M´æÛCÆkòx¦™:¨¶ú¿EaOãÆ5}ï{S ³~½„î›P„ó:Ã??~ÜÔ©Íf†C©™=Û±r¥)!¤ø¥ BHͤIŽ<òc¿p^…±(_BšÌ‘êøvC  !¤iöì–•+ þQKtƒÜAi:þøoîØñyÙ;t£òÕæÐ„2Ã;Cô„ÜA)3vZØà·!eçž{ôÚµïîÚõ•!¥¡äBH_ggëÀÀ°!E!„í´ÃŸzjs#…|ùå×Ë–m¼òJoP“ „Lh¼3¼ÿþ W_=èú€•B&4>-¼ÿþW¯¾úD£êVB™pÌ1í¿ÿ>¯¿^ÇïêZ·nËAíkå¯yBV42"E7È5„ºG¤»ví^¾|Óe—±õÍó BÈŠÓN›üöÛ;þñOë}c,ö7¿ÿ3ªÖ@¢¯3ÄqQÞ!„ ÑÂçŸß2qâø¶¶‰&U ,€2dæLÇà <:ZÇ[Ð !dK]á§ŸîþË_†éþ˜ 4!dK]'*Ð Š!dK]=!NŠ!dË!‡ì×Ò"¥RïÕ|å3ϼ3yò„ÖÖƒ-¨˜ !dÎM7ºxqµñV¡BÈœ‹/n>}âUWý¥Êk>þø‹DâMö´@YtóÍßš;wú ',Ù¶í³²/@7(„Q]ÔºzõÜ3Îx ™|«ôY BÈ®£Ž:pxøú{ï}ù¿þk]áãkÖl>ú胦MÃ. !d]<>g÷î¯/¿|Eþtƒ‚A9ð‹_œù£0}ú¢­[w*ÊçO>ùöœ9ÇÒ®Ɣ߬ÃÍšå8å”IçžûÐ…¶^s ºA¡ 'äÆäÉ6nœÿÉ'_öôœN».`$ô„œéëóЮ =!e!e!e!e!e!e!e!ea9rÔã‰ðÛ¹ŒÐ²:‚­2WlB9ꑲ²››©…WYŠ5䨧p‰ˆ«ÑlÂd°½ß›VEQ”¸sȀߦ¶ªp‹—RËïìïBòLb“Bœ­õ?îHÄMˆí ¥R¡vIòD×D=R0©>› Jžhþ‡«÷t>¹¿õ”釪."G=ž`0÷ºÜÒåhZ…¢j¯ÙSr0™-2÷‚¡…žÒ)¬Bá*—V¢­»ÇZ8æ…Å%ÈQ' Ž-TÛŠÙgpK‘H•g•`°Â3îN¿Ï'ň?®DÜ„B¾péK„V¿4Œ¸Ý$9ó÷(S†û !$lêQ7!DŽzº¢ê‹ë+<”ÆÒGH*Ó–V!É ä v¦ÛzCθ’p’ GѺ”ž’j«%%_WXýOo´»`‰rÔÓÞíH´.lÏ.RŽzÚƒI¥»ÖGïŽÄ¤`R‰´¨'ƒ¥%¤BC=Š!$”z£ÝîÖ…š>À2ª74©ÖÖüá,„¤ò§_½Ùܑܯ!ù ¶ãüÓ~ß@2â&1g„aB‘‡3$“b¹ùGq8 %PGáe i#.o‡#·\Ò;L:$ä“H\‰¸+¯E™¥”V;[r›ËÕ–ýúæÜ^WhhD&W¸Ïd Ùûâ¶r+˜­@w¸·+*÷åÖ«´W¸[]õ–6W¥°Òꕨ³šå‹}†£„uCŽûcÉ’':ý±dr æï,Œ§+œ…)ŠR\Í…×.ÄQEé(ÖXJ…j›Äèóö/¬ç-u}€veÊQO~Û–‡3®¶ì*µçø†»;œñù2¹]9!„8Z©âyP™)SõÂË’—ˆ¹¼$ŒÊ„¸#J:ìÊ ËåSa)eª]ý“ìOù;ݵÊ>Re 8=$J]¯âö¼ºêºCÃQ=ÞL»$©¸Â鄃d§T>)æ §qtx]ý¤£p¸äŽ¤Ãž1ï+7¥©YxQ!}„¤BíRˆBˆ?®$IräÞ?2”ryû5–¢>^\írR… pB VÍWÜD®QBþ3‰ûc½EN¥´}€¶×4::JYºtiá£sæÌ¡TŸ¤H¤Êœ°¡Éz2(õ¶Y±•ÈQOþ€P•Ê tj¾YVmkUoÍFÛšžææfR7{ô„¨ÇÙ”åጿSÓ±¦ª ú „YîˆbÑaG ‘¨ý‡ÿ¬«6˜Æf&TO¨÷T>Mâ„°zÆ;½ U”»½­8!ûìbÌ (C(C(C(C(C(C(C(C(C(Ãek@×—™„¹¢m샻+­MÂ\ ÚlsBÊBÊBÊBÊBÊBÊBÊBÊBÊBÊBÊBÊBÊX¼‹¬Wó2ÜÚb„Ð,ÜmÖ‚ýÀGlBë8 ›5ha—â‡Ó€Yv ¡I^™1ä‘"ó¦a£X›ÚÙCœ¢  !  !  sB»`s:!´Cb†£”!„”!„”éŸrw24¢Js£¡¤?„<^šúàJtSáè(˜Õ‚NÑ6öÁjMÔzB´ € GG(C(C(ÃÑÑp É&(64BXŽ!Ù­†Æp€2„€2 G³¬ŸXÿ=¨@˜œä#„„ÐØâqå-lîÚL !¶$›@C7Ȭ²¹Ëᡇ3”!„”!„”!„”!„”!„”!„”!„”!„”!„”!„”á. ¡àZj!„¢ÁÕÜÁp€2„€2„€2„€2„€2„€2„€2„€2„€2„€2„€2„€2„€2„€2ÜÊĨ*wâf%Á „,ª3ܶ+ G(C(C(C(C(C(Ã) þà,…`BÎàL½x0  !  !  !  !  !  !  ! Ì–!”£OT¦] :´¬»?øaDªu¡–õHYÙíǨ-IŽzòeÖ,6”ò‚ÉÆ^½VcÖ×É`ÁŠ%ƒùÿ´âµZD|„0¨ ›§¤©’Áö~oZQEQâΡƒïò;û»jnêrÔ#ùH\ÉŠ“ÓRhòúVáŽÄý±Þ¨L‘£½$qºâµZL|„4ODŠ•Òë'­õ?at…R©P»$y¢k¢žÂ=¶'º9÷¦=ýI®;‘£ž2]K[w3´p즵ç½jÙò`? §#îÜóîHÄ]Ømªÿ—£O4”$)˜” ê•ïUJ«T^Éú­ãš¨Ç z¤ü’ º¨¡…žÒµ.׋•û4Ü‘¸3ÔMF»ú½Ýîj+ž]Írå­eáŸ×hhqB’Ëa¹†qwúc¾1›#Ðv¹ÂiEIÎ ôøcêÞ99ó÷¦¨¯IÛ‡zÔ½wÚ[£«sGâÄW°…&ƒí!g\Q%Îø‚I"ö§òÁ¨*êT%âvì©IÄün­U*·¾¥ë˜Ê´õ)JÜóuõ?j¦>®(é0 uEåÒu©ÁÝ&!_¿·/à ¤âŠçW³ÌgíÊ> ÄC#EVkh1ñBµaÊQÜEQ¥s üœÄÝ©n¡ÙM]%gḨî€ÛC©ÔÐ!ÄH(‰@¹,¹»Ã™Þ|·6œq…»Ý„âèðºÔÍßÕÖ¢e5ro,¨IdÂÝîòU*§Ìú–®£ËÛá ¤¥Í•ÿO¶ÞG®æ©¡‘²ë¢ªði8Zcר܊çW³´|G«“Ä|R0©v›EVmh!qÂü®±Zó¸#Š÷ÇJç$ê:&ƒ„â §•¼ˆ»ø]c9}Þþ…ƒ•žmu¦úë=Dâîg’$9É£¾*Yß ëh¼dÐGâqgHí¨õ¬¸ºÉïBÆüy£–† !,œTä¨'ßûÉÙü޹ 'qw‡3>_fO'¤n=Ž sÂÜ;=$J}¯<ØŸòwºÕAZûž^8 & ê ö§ÊÙáÍ s,[¥Ò:UXß2ëXU¶æeÖ¥Ú§‘=ãîõ]V|Ï*–”/GƒQ™wDI‡]™á5{þœIþzBºrC Š›zk4†£Ã›i—$õW8pu–$ù¤˜+œNÄÑáuõ“ŽÂ¡•;’{Ƽ¯ì8´zp°è½þ¸â&„8‰4ÙSñLJ»%÷*—ßïªT÷ÐPâ¨\¥‘¡”ËÛçûž’õU/^ÇrR¡v)”{«›R¼.òpÅ÷ªÇeDu{ÚƒI%â.]q2Ü[ø¡•|V¤° çŒ/ÙógÍ6OÓèè(!déÒ¥…Ι3‡R}L“ J½mbÆždPè¬92;’Óu´ææfR7>†£Õi™9¨‡ yÜ:åáŒÆI¿ëhs"„PË^wDS_ G ¡±æü®£F¢§!„¤ö©|¨×ÓBb¿3¼ö$äÞVœÚí ¯m‰··$„šNåƒÄÛۊ§òA BîmE!Rg¢îmE!Ø„0©+‚P†P†P†P†‚Õ„9µ`„¬&ê% º1¢Æ@ÛLÈK@uc(„…;H´ðÄ»T7†BHr ƒ¶±ñ.Õ­‚My ¨nl…Pm4ŒØD½T7†BXØ6È¡Àº" …°¨mÐT` …ÀžBÊBÊBÊBÊBÊBÊB[Ã,@m ·ö±!4_7FâÖ>êÄ¡õ‘àîÆHÜÚG—ø!4#5“ÌבbÜÚgÆÞÖšÏDü"!ÒTJ˜[ûÌØÛZÓж¡ªO¥x¹1R°[ûÌ€X0g¶EMŠD¥©G7Fòž:k˜=g?„æE¢ÒT 7FÒbÒÞÖì9³ø!4)ÂL¥„aÒÞÖ‚†?„fàk*Å×yKÝÌØÛZÓСŒ§®wç-ÙaÍgµ·Ëêò9D„ž€2=!´ÉC$¼œ·´'=!ă/ºbok ÃQ¾®´9݇ uïm׺X:'DÛpGßÞV¤kk- 3„úæhûÀmŠÚé<0£ûÒ´ _9¢ƒÛ5Òy`¦ÊŸZÞŽ¶áBƒ‚‰q›¢(œ'DÛ𢑽-®­ÕÎê¢mì€ëkk­gõÑQ~Û†zSq„ñ–-Býx¡¥!ä·m0‰Ýã…¸€»\÷lÚúnF˜,ÔÕã…¶aÍÉ€×=-}¬j6Ýã…¦‡ñ=}•É€I_— êå ,7tõ½-õã…Æ‡»=}¥É€yß×$Æå |5t•}õšBîöôÖOĸ\»†fvßgÊp”Ùµ-eýd@¤Ë8jhÂð¾Ï”2»¶E¨LŠ–Èþ§T/ MØÞ÷™2'dvm‹°° g¡úpÔÐÔ½TgÊœ°ðÿŒ7èÆQC³–º"¦Ÿ¢`|ýÁ(hhÝl}²€!e!e!e!e¡X>=5!„" þ ЄPÜ]N y¡8øºœòBqpt95BÁÑåÔP!ãw @u¡:®!„”!„”!„”!„”!„”!„”!„”!„”!„”!„ ÁtÛBÈü@·=áç²Ù‚è¶!ô„”!„l1ãºq!CLún`BÈÖ~ƬP†rgE…rgE…ó„<ÁYD!¡'  !ä Î" !äÎ"Š !äÎ"Š !  !  !  ! ¬üÉúææf‹ë`[ezÂyóæY_Û*Ó.]ºÔúzØæ„”!„”!„”íE0  êÿД —µtrIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/curvedemo2.png000066400000000000000000000213151465265754400212510ustar00rootroot00000000000000‰PNG  IHDR€àº³K³ pHYsÄÄ•+ IDATxœíÝ?–ÛF¶à¢×!îÉô f Ný‚—P+èhâŽ'“Iœz o=Áp˜ð`ÿ¨[…ï;}tØ´,U‹Eüx/ …ÍétJÀ²~É=X?þøã×îQÞ¡Àª¨€  `È@Àì~ÿý÷Á3¿Žþ¾üãŸó¢kšc÷øpøL)}||Í7 TMóŸó'Çè§oJi¿;>ßß¿µßJbàEFté»ÝîºoÛ nŸ—ÄÀ‹0\Ô¦oû iŽÛí.¥ïqÛpû@ À0¢‹ÞKÏ´‰;ˆá$‰» `x^·’x”† HbàQ¦$‰;Ùˆfñññu¸ïïߺ0PÃŒÄÀ%– ‰ ‹’Ä@KC’˜;5ÿ=n¿ /L§,ÂúûŸÿûú«e¹75ÿ=ÞþM”F !(ˆ¹bûe×f°R¸&b‘ÄŒj£W;º&Óðßÿüßÿûí_“üQ@Ks®-…ep&àÿûí_NSŸvVGødy)‰Åð:iGWC FtMPÝ·`¢¥] C¡B÷œÖ4-íèÒ `øIðôí“ÄhGMÃw£'}Û%Á#YWìf«]®É8þA ®¨c[®µZÚÑ%šæv„¹X³ëé[â:ÿÁîZíÖZvת[›ÁöÌ*ˆ4kWGí;Jkzm´£SQ?¾fÕ*Nß>I¼*ëlG—Xú `Vê¡}6ŠXŠuI¼«Z=øI Jâ)¸Ž#k`®öôH–kU§úvt´ý°¬ŸWÌêHߎ‚¸zU¶£«)î' àWвBO§o5]èQw&qÓ·ÛŸŽzçÏM5íèÑ’·h*`Öb’›+TœÁ­+I¼ß¿¥Ÿ·iŠ9Ù¶rE·£ïÏÝâ~@Ì*<œ£Mê3¸užÄ‡Ãg?ƒÛôUþ¤¸vt…ûðJŽM”åþi9HÜóÿk…çYú˵úœ¤oŠhG?×j.ë³EKLå®§ïÍÄ¥Õ;ü=ƒ“…ÓeŠÜŽŽÿá`Z˜š Ò÷¼~}4qÛ¥XkîôtéÛ>>>Åp‰Bµ£ë[]u§)ØBhâè¦bN®65§Òï<·Û N®_*Pövô„¹çÃÄCTÀTEKynÝyßnÖ`Oñ„æÎ•\íèµµš/À”톢)ˆƒ»ÔŽv!ï$0å {ºÐSQGÖoGg/y+#€Éà• ’¾ÌAAV¨½£[ÑÆó„éXYÀ|¤ï(ˆc*=íR³´§C4`ú.°óåšÙÞ’ºÍÀŽJL(È’+rÑšf ‚þsR³°'>™Åÿ0„uК¦2˜Ðâg›EËSSÌrMÓøéKFÕÄutYçPÍ¿Ì,¬&àEÅôõY!#1…š±vH¢ïþùPÜÌñ‰3‚ê bZÕ”¿I šhŠK_¢QS ÌîŒÕ¢Ó·èÁ×GAL|˜(Š0]è°Ä5©©ÿœ0 ¸™¬Å-¹º¤èÏu»T'IL>3°]ú¸‡IÂ’´¦‰c®Ö‘£u=_¥/¹lMw7ûcTeýç¤MF•¥oû¡³²ªzy âAâV–.Ü$€™Ñ¥4ªæ¤/Õx¢ nšãvûXdJ\ú0KS#Ö•‚¸iŽ)¥.qÛoof°ÄJ}ýç$€™ÏhÐÖ¾ºÐÕ8/ˆ‡´ß¿µ‰Û¦oêåqGâr¿yØBhúLÊ2(ˆ‡Ï6ƒÛ'Ûô•¸ ¨²üM \†4ߟOdçY»žôõ¹³>?Ä›ïO6é˜$./Ђfv«Zråsg}þªq¿¾¥¯)¾w8|¦”’ ˆy–f +I_ê0ÚUvž›ã~ÿv8|ÚÇcnµöŸ“fýì:›±ºÐe¹ÿ÷~ææ>v[Ÿµ˜1¬Í4„1ë1w'SGz1y›Ò˜'IÜ;Ù «Vsoû †“+†00÷ÄUš{?K1¼˜åcxÑËœ«† YÏ)ZŸµ˜þë8÷éaqð*a|S7ÿ½ª7_ [Ÿµ¤eö³Ô‚æa®›¯™©#½°YûÒKï„¥¨Œ0†K–©†u¤0ÓKi+J#q_ä3èÚˆájLþR `ž'Œï'wWnÖî‹áLøRf`G¢rI\xÅL1|ÿú¬¦ t+‚¢MòR.·ËE•ñj>Í{aåfZ×s¾>k¿K)m·?®TnŽí¯Ý3¡úÏè\0 ã¹ ª^E0¹hDg‘'€u¡c’¸°Z®JZž ˜q¦³ÿ|N/FóÄÍBš84¢–-€h"Æ0­€åïàîC-è%ª€ErFV¢OûÑ nÉàä `‰“0^˜.4 èçnw¿¿6ƒ1¬½˜@0¹H\˜UÞþóyîöµOŽf°"xn±Øgÿì„qÞ¼nPò^ÿÍ—ÚÑ2xV™Ø&;‰ 5m5ßcÐŽ^r{¬€+Ô–«&/aœ‹O¢[,]žËݾA;ÚÉๅ `G¢%Iܰ¼¸ÓC­æ{œg°FôL~Í=€ï1WÊÒÆäåu—ÁÛ/»ýþ-¥”ÒgW7Íq»]cÇxrá*`#qCQòViŽþóä%ï¨A;úG §¦9v¿ò¢ìГ0Èû‚¾§WW½bûe—6?лÜUO"D8ü]>wû¾gð¦÷ŒôHÄfý’Wù„ÛtÒ·L«ùÛ/»tú)ƒ™D”v hå-yGÆÓvžd°ÀS‰ÀòxVÊ_˜Ûýç8%o_ÿ¼o׎–Á“ÈÀšu+ã„î¹Ãá3¥¯©½B©9¦MJ_r©|ØÁËPþFæ]°*ó]È;¡Ãá3ý¼+Öv»K_Ö»ä„ð€#P¨ëáTDÉ{S³ŽÜc)U¬sÀNýÎMù[oŠšD[]uS» å¥M¡GoeÈýb0 qësuÕMwn-ƒŸ·t¡§¦ü…týç:ZÍ÷Üé•vôšÏ%‡ `¡ ”®‚“£Þ©ûÌQôO½0-èµPþDºteµš¯xô–ÀÚÑÀSª z_¹p›Ábø¸ÿñ_)0 %oѼ ÈâÑò·cuô"0³ÆÀ×/=ºŸ ¾)hûÈ?!‰["o* }]Ðîs$š0®˜ªüíhG_Q@ó ‰ Ü镵W×ÉàQqXá;9a\o²˜°üíÓŽ>7€û‰ž#q«á-ÀÜæ+;ÚÑe0¯ÆÀM3•¿}2¸:€}ê…Ä­€·ËX üíÓŽn…Û š9cà¦ÊßÎà~ëºN½ @)ð‰ ÜiòKîWͦÙωÀ¼NÍGO¨•®Ä­’$fË_ `]èWc€˜ `"q;)óÀ5ÆuÐûa _zĹ2XúNxˆò7£2˜'c ¯iþºè¶-÷û·|áœVûÞ$q+ÖÎï^ÔÏà6}ûϰ°b˜‡c``»Ý¥”šæøþþ­«}Û'É¢¼V<§[éDI,z¯è—¼Ê_`Tå³ôÍÎÍ  >€òŠóUWMs”Áy•Tw‰”¿ÀƒôÝnwÝùàœÃZ½ÂXô²rÞ<äýýÛ`îêUþf§]<å/p®Ÿ»ínÃÄ•Áy•ÀÝe‘¹ËyôSa-è¤÷3å滛üÜ$} Rj @Ÿè-N‘Üß–oÍ5ŸòH¢·Xåµ èHßrY“”¿+¦÷CKô–®Ô¶X-Ñ[‡²[ЫaÐj­vÎÓ‘¾Õ(µ¦#Œa%Doe àÕ–ÖFôV©ìtZq ·„1TOúÖªà 8­2}%.ÉBèÕ½u+;€×fpÌu^§~î\!ѻŷ ÓjŽGâVBú®DñðÒ·ýé+¡>¢wUŠàê ZXÑ»B5´ +v)}¥2ÔDú®S ÜFQ}h)Ë%µÎùzÿÖ¥ïÇÇWé»*ZÐA]I_Á PõRI×´ktÉP“~Õ›w$dTI·*( oþüŒ°f _:Upé„+TLô2PO—Þ…¾'}%4”Hô2ª†UÐ}…f°dåQB—BúrI=p¡î_r%¤¡MsÜnw¢—ëª àâºÐ2*Ð4Ç”Òv»ëÛ4ÇÃ!%ÑËeµµ  òPúŠj«Þ.wÛ'‡Ï$}¹ª¶.¥¨P“~§”‡OÛZqSU-è"<±Ï†´fT)7×àýý[Joíãív—’èå6¼(QÊäLªŒºeVûý[÷d»+Óˆ(Im-è¸,xî@éð õo¢Ð¥ïv»ô¢á ðBä(T eQú±Æj¿O©· z»Ý5ÍQÌMx O§¯Ø† F£·u´¢—{ÔÀm:Bt¹µ³ {Â¥Wr^Tgñ⇀ Ÿ!`D/s«9€ó˜ød1&Û„¹›D/³©6€ó¶æ^9 vÃvH…%)yYXµœËsûlô¿•»°$%/¹TÀ ·æîüë$.D ä%¯ÊxI—Ò÷¼.q™…ÐRòDͼ䩟¾ \ˆIÉK(5pk.t›¸O‘‘…ÐW(y‰©þžƒŠ ä%²Ê¸íB¿¾!Æù›Ô•’—"TÀϹ§À•¾ÄaVGÉKApJ·”¥/„¢ä¥DõðyúÅ낤/Ä¡ä¥\õpçõUÊnmDd«úh¨ä¥«àIîN¸ª£„¥ä¥«àôrK_ÈKÉK}ÖÀ¯¾ÄWñBh%/µÀ×8é ¹(y©ÞŠøÑ.´Â²Pò²+ à‡H_JTú¼½¬ÊºøÎ"¸ô£”EîN¨iŽ)¥ív—{ ܶ®¾‡ô¥P%®Ã½ÓjšãfsJ)NŸþ‹%W° ¹;‡.}SJ›ÍIÇ·º¾Ô…VøÂëšæxý /z¡³ºu%}oP€V{ö±ÿ–éÎGÊÝl·»ÓiÓÁÄ'€/¦o{ìh;9É¢¸e»Ýõ3¸}œ~®zEï¬Ú îç 7­1€».ôÍ“¾ígÉ.ƒ!¸I¶=E?ƒÛg‡Ï$w´Ýîþ|O¿}äwXc·®§úË€;½¿;Ò~ÿÖ~{8|Š^¸d¥|³Dp6Òõ™»ôm|h„.Mù[Š•ð=œM›««ºôœÎ02O_ãl Œ½SBwÞ·MÜþ:,–ä¨U |ƒy ëw(j·_ïª}³pÔ*…†ªÌ±úþ;J\¸Ÿ¾A3‡5sSÞ9j•Bß`Sœ×Ë_¹[4G­R`à;¹ KÀ7hæP=¹[G­R`X)¹ y `xXw“ŸÜy’è…0<¦Û'¼¸žË]EßàT }ý»t´·ÉŠŸÁrwmµJ!€¡Nr‚À7XOÈ%1Ë_¹‹£V)ð æ1}ý{dE#zi9j•BÃc¢U½r %€oÐÌá\„Y!w¹$Âüäøó˜sg…Üå&G­R`(à zå.”Nß ™Ã¹%g…’—G9j•BCDrª'€!ûs·Ý:Å[• ÜIC~Ö»ý1cîÜ$€op*…sÎ ­f&ç¨U  È]@ß`=!çžžSån»#f)·cbaŽZ¥À7˜Çœ{tVÌQï¶,}9ç¨U  s™»Ï,}¡h¿ä@t¾çñüùžšæØ]”ÒðÛ÷÷oçWM~–×äd”‰Q ð š9œûí#5û”Rjšãv»ë¢wá¥U&'£LŒR`xF—»]úŸÝµ¤¸I úÍε³¢Ÿ¸íã¶Ï¼XúšœŒ21J¡†g¼¿Ûïߺo÷û7K¢€‡`¸Wïï×.}û½h ÜOÃmç««ZmâÊ`à øë ×ìʪæfÿÓe¸m/œ¾&'£LŒR`q~ïà7œg­Úxˆ¾Á®ª«rç…¼AfEa‰Q |ƒy¼7KÞ¾ ³"È0ˆÆÄ(…fÕÜÈEß ™S«‡JÞ ³"È0ˆÆÄ(…¾Á<®Ì+¹Û 2+‚ ƒhLŒR`VA«ˆFß ™SºIJÞ ³"È0ˆÆÄ(…¦NJ^ 8Lmæ(y&7€ÛÍuí.Ä”¼@Y"p½›Í)¥t:mòf°S)ñ-_ò™A†A4&F)"pú‘¾p…’(ZÐîl6§¼E°õ„e?ËdVј¥À§ÓF š8%oYdDcb”"b·‰{:m’EX¤””¼“‹À­v>Çiæd6wƒÌŠ Ã £q8È 2ŒU‰Ój¾$Ȭ2 ¢11J7€Y¡°%/Àäâp.JaÔ-~É;dVј¥ˆÀ¬’X-LÅ•¼“À,JÉ ÐŠÀAÎaFé*+yƒÌŠ Ã £q˜:(yFÅ à ù‚ # óûEöŸ©¬ä2+‚ ƒhLŒRlN§SJé?þè?ûü3Óx(F·éGâvߟýßVSî<§iþ“΢6nLpÛí® Ý.zS/}å.¬ÖàÓ9—ü’{ýùž{)¥0ÈiðîjÓ÷ããkõédVÑäMsÜlNíWÿÓ9çâVÀAÎaFLïïßRzë¾­>w;AfEaMœ‰‘ý†îÁÅ `"k×Xí÷oý'›æèt¤ïuZÐ7Fïïßé»Ýîº÷ØJ:NAfEaMÞ‰±ÝîN§Mû%}¯‹ÀÔ¿¸¨}kuo°Á·Àjm·»vŽ7iAs—~ôvçzo0ï7€û `n^^d#.½“°÷½s‹»+È Ï ÃX’ô½)Ȭ2 ¢‰01"Œ!>-hþ"zæ ÍE¢`aZÐ7Æ|º5Ò:¶qžDYdDabDC|ZÐë¥êXÆh :n̬¤/@^q8H#È0&¤çüº ³"È0ˆ&ÂĈ0†ø,ÂZU/@xD/@4¸r¢ &« k&}"°ÇŠˆ^€à¬‚¾!È0îg‘ó‚ÌŠ à š#ÂâÓ‚®‡ª &-èj‰^€âhAßdWHßå™A†A4&F„1ħ]0Ñ P-èzˆ^€ÒiAßd‹œ#2+‚ ƒh"LŒcˆO\Œ~Õ›¾…ÀeÐs¨ŒŽ¢iŽÛíîüÑ ¥8ÃVA‡Ð4ÇöA÷îmŸ9>ÛoE/DÖ¾a7›Óé´I½72´¬‚Žk»Ýµoàöt?}E/a³9¥^ÃMVAß°Ø0Fk_éÓÚ&'e‰01"Œ!>-èXÎ{Ñ@|Msl+à”Òé´ñþe`´·^¡.}à¶ÛÝé´i¿¤/wŠÀA:‹ £ë<zÑ´¶ÉÉ=¶ÛÝ¿»éabDC|ZÐQ4ÍñpøìNú¶éáÍ À‹¬‚ŽëýýÛáðÓ’+Ñ P7-èÆ`Iâ[Ïää!A^‘È0†øâðÚ¸â`Upfmù+}Öf<€u–qgó9ÈËaŒŠðŠD™—†·þí#÷RJ‹ Cù[œõLNä‰0Œcˆ/nWOó`ÍpV>¬œ8òPþ¬‡½ £¾X½´'šÏA^Ã`T„W$Â(Èĸ4 -èEué{ùÛ¿%ƒý)Jd/è(m>»Ï(@}´ —óÄ©ßþ]¾³ 2+‚ ƒN„W$Â(ÈÄxl#×PO®‚뎂̊ àá‰0 21. C zQ6Ÿ·ÛÝé´é;õˆÈC z ¯\w´Ý©Çõ˜ ³"È0èDxE"Œ€‚LŒòö‚®FÍg&'€bÛ úð¼lzÀ(qÌè‰m7¨½ %}¸Â*èyÕ”¾AfEaЉðŠD™ö‚^”ò€ŽôB¤/7iAO âN}édV¯H„1P‰¡=—.}ÛªÞß¿í÷oɶ‘ü =‹.h›æØ¥/\§=.ƒ»ô­²ü 2+‚ ƒN„W$Â(Èİô¼ú‰[eú0-<þ:¬Ñ5YÐ'€'Ð%îáð9xFYý*« ¸ntô¯™Sív×4Ç~Üþ¨ƒk»€ Y=~úÖ·ÿF'Ȭ2 :^‘c   ÃF˱%}6âXˆÜà&-èY´Ü•Âu2+‚ ƒN„W$Â(ÈÄxl#Žß>f … 2+‚ ƒN„W$Â(Èĸ4 -è¹TY0-hîdV¯H„1P‰a/è Á\"€— ƒ'ô·½m>ày¹$iBMslšãfsjäÀK¬‚^HEp„Y±Ùœº_ "ÂĈ0 21¬‚ÎF<‰¶öÍ= €ÉX½œÒ‹à¼³b»ÝN›œ#à‚‡‹c   ÃF9ÕQgŸm·_îöGö‰d dbhAgæ’¤Il·»ö+÷@^¥Í½Ì FE˜Æ@@A&†Û†ÐVÀut¤¸“ÛF¡ €ô¢Š®}Í FE˜Æ@@A&†½ cQ¬œ^ZÑE0SÀÙ(‚ÖÌFZ›ŒŠ01"Œ€‚L qÄb_€•³ :›ýþ-÷cV0*ÂĈ0 21lÄKw;ÛÃá³­†Ûgl²HAúwe6uá qÒ­Ú:Øíå)Ôfsj¿Ìax”t6]wG®à5„YA_¨;4›œŒ 21ÜŽ0¢~âOßdVð³Pwh69dbXQ¿k×4G‹¢)N›ÁîÐ OÐ‚Îæ¼ó¼ß¿½¿ Ãfí½™#¤¯Éɨ Ã^б Òwpü ›Áp.{úB¡pç¹ÛÝ&Y‘Ka^'€³¹T7|||ÃÕ³ :¨þ~ÑA2ج ,““QA&†UÐåQ TÌ*èèâİYAX&'£‚L q”-BGÚ¬ ,““QA&†tñ┼N º0cج ,““QA&†ÛV¨Kß~ƒ€hÜŽ°6:ÒåÒ‚.Û’i³‚°LNF™ö‚®Ù †ó€{àzèHDWÅ¥J¥° ºZýôµL #« ×%ÂæY\btͦíH›„er2*ÈİÇÚéHäò@ ºiŽKŒˆéH,¯iŽ—"u<€7›“ ®Ï‹é Í8gr2*ûÄhšãfsÚlN£ÿu¼ý?ÿó{JétÚl·»†Èòt¤fÕ¦oûøtJÉ*hZ:Òy] àÓi³ä8XÞ£éì͸ÄädTÞ‰±Ýî®'鯣Ïj>¯G›Ámú¶¿êHL¢—Á#§Ç+`é»6:ÒsØnw—"Õ9`¾³4À’lÄÁˆ~úî÷oýoíõiz$÷³4÷œî. wu8ÀT0㺎ôáð™Rjšc·žPùK„sIDAT4VA3*øÄ_ ­¥ðç~ÿö·½æ3Aýö‘{„ô·ý1}Ä=d `nÛïߺÇÝéaW+‘µQE¾ªV šºó¾ÿ>ìR/Œ­”&ŽàF–×mùÖ*`®é&î÷»¦9î÷oí‰á¤ &-húú›0G&€¹f»Ý5ͱßÀiŸé_1Ü †ìÚý§âg°47té;º º¿}GúÑ—ÖšfaZÐ ´Ü~…=¬f b š°¹ÛÀL©k‡ä 1Àe˜é)ˆn²4³;?%,‰UÝ ZÌìÄ笂æ^¯/4µdš™XM‰´ Éf½ b VnGH,£qÆñ,É9`îõçû,þ λr‰'Ì49aV˜{Í}€½†X sS»cy³O©„½ #€‰EAÌCúÛîŸN›¼ƒ‡8̽^hê 1Š|ã98§&41P+Ì]ºÓl¹Î±9C̨ö¦7ýo3"€¹mpš-ã1NAÌ9¡K¡œæ1AN³9C ”NÌcBÝÝÚÝr `nëŸf‹“¾7{J$€¹KÀÜ=§  "€©‚(‚¦Z b 2LåÄ@L˜µP¡`ÖEA !€Y©ëq»ÙHíwÓ‹X ”B³j— â”ÞR/t¿o…-ƒéØŠR:ÛÛòpøl4ͱÛzSúRÃ_úñáð¹ß¿uÿIúÓÀ0¢Mâý>÷8€zpÓügáq@pM“{@]FÎÿþûïËVe¤þã?–¬ŠUЀ 0dðKrÒ÷ÿ¯ ù8ÊddÃIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/data.png000066400000000000000000000371041465265754400201120ustar00rootroot00000000000000‰PNG  IHDRâù]ø=û pHYsÄÄ•+ IDATxœíÝÍŠâlÜçñŸÃ¬§îuÛUäf3Œ EsÏBZè…Ç0¥7Î)my. l\??w¥ø/e'€kF  DbJô_ËN€òlæ}M×ÎßÖàYO½v¹ ®¸æ¶«±† ûð8ëÅ4ø~u'Z>v޶3/ØqÛ]­¶›_úùòG¶mžµ,Kw?þÕ÷N[e„´£ãd²,uKL[˜èôZ²,•š—À¥ˆkm«·WÛ÷Œýú¦m¯—ÿµþ­ÍcGþ»Ñ廓{¡¶Z‡:Ü'T%øoWšÿ\hm¿dÛ¶ìéPk««Á¿:wÓwã”5?l[ëéPkk ç§Αs§+”-ÛV¡yYWçÏ뼟UÑßg ÑF\gÛ7â°d¿êm{ÊN×zYùw°]½¨”8\I͇F¶šzÖÖëi‘Xöâ—qÑÛè—Yu}Qmõžöæå²wÛ›ùÔ¸)éjòÔSÇ-©µ;z|š¨{x}­é¼ ᣭN.iý» éŠQÙ¼„§z¿Ïº¢jº¶üÕÒÝnWëµ"N®žÖZ¿7êt$m~§+ o·Úüú©—µmÜX²ºúñÝ VñUY¾j°}õéGhg"ÿ~¬Á³þýúK?_Öršk-uÿê1P—¹Ý¬ôëŬR¶dY¶M¼‰Ukþ*zkð]Ç[wtß•Öîvûª~™m¡¾ÏÙhÞwƒ»¥ÁóÓ¡ ÖŸÿ¡ÿÐê?i—´žªHOW“åcLÚ¿èÖ’BîÜ¢å9¦éÊw‰îèûÀÒÚÝy°Ùd»Ñê׋^ÍôY–ºæ±Oq®LþÕc§-m7šÿœÎ«;ÑSð|H•')?7ò}ÕÚèw Ë’u÷ ¿é-1¯¿ëoäç:ÇâËj®Ÿ¯þ¾ ÎoáN?¾«×9þ…Ö£ï¼>êŸRp^5 %âºòUKwuÿxï•òVOw»‡}¬_VÚj«Õ‹û+ëzU…GiYi<jêûÁI’-{½Ðt8–SÛÝÖ·c'ëßFÉÛca=|K}#a/†N×^@•­õb¨±Yž™k8 ¶ëA8í_ý1Þ} OaçÞ,{þÑß­ôåÖ2žú«CÊ|7:fmF0?þ»þ[†¤ûл·;Y·_â7O}L‹Õþzgþ\éã}Âûï`¯µ˜u–Ї‚óªiÄ5å«–îÞ«ã–x$寞¾×!†Ø ýZyÁÞz¸×mxJ´ú¹8¤ÅêN¼vIïÎàÐÆ×öU‘šVÿÅ3ÜýÚ¯oû€·ÑÜìš{HãRÏfÛi’÷LÊ}*ôþ!µ¿=èðIÆÒöïÿÖïî‡ÓÒ÷ÿ¡ÞS ½Ý‰W-[êܪÔ-=|‹Ëß,Ç´}BºRørëåÛÓN羚;yöÚ•ÝMÖ/™nì°žw2Ï¡lçyêÏu÷¿]éåp€, ž½*ßçC{ù¹òÚRw0ñµÇ›»tnÂOù¬‚óªĵ¨–¾ï(XÚÌ{Òv¾¾õÂý1uõ£Q‚Úü2ª¯ºúñØÙ—dÛ¾}yA·#³Àè¶UßX¤þC7ÓøÛß®{H㵿É;=åê5n7nðì<>é±güÚõ~„%*§¢óªÄu¬–ÞG­¨RW&¾€á~Dt`ô•è¬[ùÂuû«ÌŠÅ?ùªnÿüÕ6ôÆ"ƒÛ/Þýþø—›Æ,BKgI,9µÀþ¥?·Æq´tûÝÝ·sq2oL²TÓǦÄêjò¼Lgžç˜&¤—¾Ã͆óϼáðj ƹâk&¹ûzh³ìÜß½íäM–4Æó÷ˆ¶¿´éÛÊ“Ÿ˜µ íozØ[ÙïúµßÐ)ñ¶å&Ó~ý¥ßî{òVKŸ ß1-B`蜛—fúo6Îs™=Or|n»£ÞSG=IÛíVo¿ô²X~ëß=vNûulW/Fîjðü]ßÚmµ7󳕊/’W CÕtÝøª¥ý:–Ë¥–f£JîÉ=:zt÷—T¢ê|7ÚÚÖzYm[‚cnÍ’®Yîõà<¡ôÇW¥lNX²Õ›Ù•8…Îc`lëx¥C­áv_Ú8¼î´G{öÁvÿ^7 »ÁìP g¯½‹åÝ×èü_ÿVÞËX9éYÓ——f5®½ÐÏùÆw)ßn7ZÍÇçíe{jž$ÙÌ5Ïvá¶:½ï¾f¢Ðžî§äµuëaw •ö³ŠÎ«¢D\3¾jé°Ò’YšÍ]=E[½zÝ÷bµS Ám, ž%G³txج Ò_»§ÝÅ¡ýÐ^ Õ?JcZ=>$wŠK{¡éñ–öÓ2¯3ß cÉw1ò»ý«+•Y½-­5''Œ#Î"û1MJWªë­½Ð0ìÀX]M|yéƒ?núÖS C sÖ Í‡¦•ó<ÏÀ¶Í| îÚIŸ×ßã¿…¯´‘ßæö¹Î·âóªi(×Jš±¶þ^ÉéòßîééùY“®èÌdÉê4yëñè,£óuJ Óy\êyÐ5ÒgÉêNüS?¦ÕîéñéY“AWVÈÛ­Á³žŸ"æFtÊñwf1‡ I¡%†vOOσã1Ý!é8IÖczötY²¬®'/šâÝô…ËR·;ÐsßÕå:ÏSúr¯A7â» &NøÒ‘3¯;zžtý›Z]M¢ò~V‘yÕ@­ÏÏÏ]Ù‰Êržeý3uÏÒ©Àµ DŒëphƒóžÚnæ¾á.ù;™m¿î„%b\‡„^¡¡ó g±]ilÌöd¢„ %b\‡/·êZÁö*Ú!O ÂÒ¾Ml¢nX£1Äht‰øææ¦ì$À…´$í"·Ôj9ïvækÁ÷  ”ˆ œÀÛÚÿsìvR«ù”„@ àÞàsgv”‚«†@ Œ÷¯ìœÒ±[EMµtu0³4ŠŒw;ó±S%½ÛµöÙ{å#8³Æ¾|»}àMû<ÊD p‚°ÒUž@´8Q0èF·S¢”‚«­‚x£y¬s®` ”|ëˆ!LÕS©ªio~Kg]Á @¡Ü ;¥. »J•ˆ;K-—E,È@ãTªDœÖl6‹}}4](%À5‹š"‘*k ‹Zb-PÁ1«îsÒªe P%;Úˆˆàj%ÏMâˆà*Ѿ_•Zؾ´g ôüÔS;çþX¸ ª¦«ÇœÄãxB¨€K .C¥ñ¹ˆË WKðxˆ«­R㈗â.‹Xv:@1\'òºë;Ë"R .%b¸nÐÝÖ%vrKTK—‡1\¡VË Æ‚pY(Àr:oíUÔ(ˆåëƒ@ £VàêÃm6žÙµ(—Œ6b„ÏÆ´Ûí(}ÕF0„ËF €«C𭪦¤>¼Åþ 1€ÌòWCÓ¶ ˆä’={“Ixí”d mijÙÌ÷x4•” ÉÜà鯞N7EbØ6Ti«/ÈÌ<šÂVø ¾‡Õ~.Å=Áÿ“¶G9Q"pI»“–=ä¢YäwõÑF @‰Ä. ¬=˜ji@¢j@NÙç2v‚±WMJ$JÄ.Ê]í‡ \%,Q.JÄróÖ³%°yˆdæ`wÕÿXâ°¢ˆB ÓÎ÷wté˜:Ïê£í¾L´ÈÈ¿~mòUfЪ6§6Ãk»gêÑK#(DXç:UMÔÔ£¸$1€Ü˜±©©¨Å¸$1€ŒÌö`§¢³€Ìœ…‚Áx·Ÿ×Øì´Åð¦zbÖ³K"73»ãâ¢Î73 sNV[øÒ–¸,1€B¸Ë#¢ê‚SºÏáRÄpõvTª•ˆ@ åoDzî|ÓãËkD žÍf¾Ç£Ñ¨¤”@ùÌs^p¥-¸ªZŸŸŸ=2777e'ár¸•ÅEnîóîÄÁmÌ×9]‹ä]^ÇcŽK9G ⟂ÕG €£„[}b…`±ù²0óY݈ aœªé`0¦³VU5¢×4 (Œ ÂUE‰¸J¨Ç;òØÛÿPUbJD  DbgŤ@6⺠ÝÀŵÿP1@Rpì·;ÜÉüG0.ÀEPe]'QcŽ ÆE P"qÓѶŒZ¡M²j¸„™µTDXu(Ó2¢ù(W ·Ÿ§!ÿ*ÅY| Mé–6ɪðŒðòý¸—޶A~”ˆœÍñª?»C'-çµäÒ-ºÊâ»Vk·ÏçÊ,v¾mý7J´¼(8'ÐF-J¾"ªeò·{LÍ ¼ó½ŽÓ4¢D<›Í|G£QI)2jLñ/¬´»‹x>LÔ¶´_F\•³ùZRÇ*Öççgcsîææ¦ì$dã6Ä„]˜“.ØQ¯7æBŸR\VQÝÒ»ç?­Â.âÞ…Û­êtÞã–š£¾òqÕ6²Ëþ³¶Þ1“‚müy€´¨špVQ‹Ò·½sÿ°*—ãÝ(ùž¥Y¡Pâ&£1J,‰ívN©Øk;>ÒþöeÎÛËóç{°#l;./çÓˆ6âÆãŒG¥…µ/ìþžµá¥c¯PÚÖ8'÷˜9ÇÆ¹¡Šn>®úæxåE n5JW’5Û£_—Ì6d‚qyÒu®«i÷†J¢jÀ™Wê‘üA6l{÷“Uà/žå¦¨Pâ"UáÊâ_× ¸ tí½­–YZ¦¸|撇僧á\^΃ªi k?nù^÷—¶Z!Ï¡äÿ¥P"P0éê¸J:X]šˆ1€ 8¾nÏéð¹ŒQ%Þp&çñµÍT4JÄQhø@œ/98m‘Þä\ÙëǨ…õ£OA pqtòis³ƒ²"7uG ៮ÔSE0΃@\n÷DÜ/ÖM\xäE $ Ÿwšð9ˆTmÈUãRÆâçÅð%@Á`ì_ØéQ"$2‡)yíúæjZæ4JËY4¢D<›Í|G£QI)ÁU£çÉ ²îp%3ðšÏ¹ÛJþÒ2¿‰$­ÏÏÏÆæÒÍÍMþ7ŸzQͳFXÔ{’ööúµNƒSÖÚly?·¦kÉã”JsZ×,[*ã|yçuÐò°)øZ؇2oxª¦©0 Z1Ä€D»]t);X¦Ç{6b@„´kJ3œéè¬U±€œŽ{ÞF¿µ .‡NXE"¸°¸ž¶a¯{Ï¡ Á)-£Žƒ¤¹‰Ê†ªé¼hr»§¹ÐSõY IA•¥-ó P"ª¦”"©{…¿Úh.JÄ2¹\ÅVH'ÍC pAIm½îëN[±· “9—1ÁÍBÕ4€ ¦Áun[ò÷À¥ÓO]Ð5;q®užg µ4¿ ÿLMþ6cƲ¢9¨šn VR/Ç `æÐ&ª©«ŒŸB6b¬žö/»w¼P_ÅWMoW²%I]M–ê„o¨Õx¨…í¶;Yê1ü -ØSšÙµÐLâ­V?º›,õÔ‘´™«?^éù©§vÄ;¼üŽKÂÇ]/h3F}[5½}Ó«méöËþñ—[Yö»> ýP kc[•c®îã¯êš6ãrÑ&|š ôš¾ÓW_ñ÷þn¥ND‘x=ík½ÿ;ªt<›Íb?q4åIè1z<ÖF,…·ó»E}ˆ?Þ÷mÃ{í¯º‹Ü¸­ÞÓR½ý£íj¬át¬Ûç'õAûl@Íìö·¼Ç@Ý[5ýåV–ùxûWR¾µÝû¡®l½S ÀàTSKÁ6c ®.0|É©Šö«ª ³Í¨»bqû›,£Tûñ.Ûº•Ówk«Õ¸¯þ|ã¼¶]iìþ-i»zÑZ]ÝÓƒUG_‚’øÇ;hFýÜY«­ÞÓDó~_}IÎ8∡Kí¯º[OÕw{jÅŽ9É º^»1AõÓúüülì™{ss“ÿÍn£STI'îõ¼sMGí3MZÜñaŸ{M%¶°¼ÊúýOÙ>Ï{¥ZŸ²N'ó4—N;ÄMWF~/C“ô˜â¨:z"F Pkܧ îÄjƒêN4ø0ÿT€ˆ0Ô ¸1P6šÐ@œÖé]`õ%8U+ÐI‹[hJÄçF·Îò÷ åL[ÙjíösLW`ê@  ÂÂçŽfчzpn˜8NIÄa®µdEƒ*ì’uã]:ìÖ`ŒãˆÔ†Œ ÊUæÖb˜‰`§µf³™ïñh4*)%Î˽€y›Á ÆS«/…I³|HÜJIy—…)jõ¥´é¨{•|Ôq+zE¤SW_Js®U踔“œà2‡NµgÔjL×®¼Õ—ü7MþªjÉ|¹ÁrQ5  ̶F.àUÞ‰Žã•„@  F‚m¨PÚ]h#‹žì¨/ÀzÕ㔊ãˆ\°6J'M[0ÁÙE Ð`Ǽ¸ø_–Ó©.XB–81€† º ‡*Jü";z·Ç ³P–´cLXƵ×Òn×âTŽ@ †ÃÏ 4 ½uËâ`oÁò= 8­K(‚!š{ÿ˜ígCÕt1ZE§ºdå¬cb475WŒØåxKUFå;mÃÑÄÌ ^IÒðùEuŠ‹Øš*ê#ôš®»°?››(׎ŸDÉ̼ÎG JÄÅ£Í@c%U®}iˆ9ù«™kÌ…:œNÕ4LTM DàMB œ ªó8-1€«@‡­"‘±§hD žÍf¾Ç£Ñ¨¤”Mëóó³±·2777ùÞhN÷èÞBo§£f0?e8QØçÆ}VpßQïO“†¸÷ÖEÔq“²}§¬ï‰;ON}_KU’+lßQïO“ް×.ý+‰ûžiÞ—§ƒ¤t…¯,Ÿ÷ž¸mòä×Tõâ™> ½ªéã÷4c§ª£ ¤Ñ‚uøç@Õ4êŽLÈ$ª-¸AõÓˆªiÈ&iªE\‚7•åuç=%b”‹’,J³»º©«ÃYØËû뾈%®¸ÔÒµd1ê%ª]÷^´s¢.–®‹×ïuœ3k%‚¿ƒVÈ¿f!£9¸â5âáãûÏÑv6ZóˆQ>J‚8*ê)ûqk^›2¸ê®­n«)Ðp醙㽛Ž@ŒjÈrÃA jÎln¥ ºMþÙˆ%ØùþömËVÖàèk ×E«l¯­Úç”´ö»io±w¬v×Íc¶Mý1³€r.Ü­Ön¯×¼‹w³ìbî˃Cš‡@\”3 »`3¥eÝy7UÍCÕ4Ê×Ô_*Ä+!›Õ¡@ˆ4œ7)„7Q„[Â"×AӺLj4F|`uª…@œFUÛo«š®<šò=®º§œ¹šûuTÝs¬8±µ6ó¾¦kI݉–i3Wºv^tŸ«€Ùlæ{<JJ pFqW$÷µ¦×Ù¥6äÅyÞ˾ã\Mî…‹z‰ Ä[ýý#I–ß;Òv¥±„%i=ÕøöYO½vÑiLDà.8ƒ“÷J“{á¢^bª¦?ônKÒ¾¶¥íÛ«lI²z^NÔ•d¿¾i{D¢$”¸PyQ¥Úàyëõ–özN§Ùw³—ßC5$·[·ú"éÉÊÒÝWµõE·–$û]&âù‡!ÏΔ7x†-¿Ç§25¹\ˆÍ`ëVSKÖíy¥åºÆžh¦¦^µ"¹ëÛšóïž îYá¾f>·¿¤×¶IówÜã´ß-Íkç.Ä}Ÿ´é”Òï#)O’Þö™IéÍúYy§ÍǸtçPíÒa\Ç­ãnü©á½Çÿz=JaÕ>Ná¢~zþçÒãºI^ôa»Òx¸pzL««Éò»þއZØ’5¨Æð% ²Ü0 `^)š…"P´ø^Ó›¹ú‡ ìrÚŽ¥+¾T…‹eÒU«¥ëvšx ̪Jó_Þããvü2{M£<þ)J›t*Çb¯-¸;YúÚŠÛßdI _¢ ¹\u ‚e»Šs5lÈ𡹋t$Oèa ô=8“eû«î Lj¦ÕòþÇýs5]óqaÑœÇnwÝ¿¤ªâ˜ AœªiwºÒs4?TCLg­ý„a¶åLCÍ8bÀ%íŠPª˜ñ¾S–½Ð¯ùüV«ŸN®Æ#nJGà[šòJTþך26õ‘0Žx£yªuèk]M–:ëBˆGC¥NÛºqÄj4ãˆãº…}˜«N²Ž#>ú¼ÖþcÒ’uì®ïùˆï‘fL«ûšt¾qÄi— <ü¯ðôǽ/,ݱi5ŽC’°ô§7øŒ4c©•bûêß?Î9‡Ç»üÇÒí¥[·ï\×ãuª†ýonWw©&ô8¬Kì²z~ê¹4¼Õj<Ôû¥;r†N½Üžô977ÿœ3|êv Ÿ¤Ãù;z¢ˆ:.—H ®—ä =$u—Z>œ’í›^mKn£ó—[YûáQ…T_¤}ß›àìé/ð3.25`Í?ãÊŽƒ”Ü/]ÿN2’„òÄâ¸ji×¹«§µ=ôw+urGâ`•ªù¿¹ñ|ðšêBÜw`Û£}$ý¯ïM›†¤÷¥HÒ>óäÑÑ5uþŽ®Ýnˆ;z\.V#í´[<Ÿ±4üåV–Þ½Çû!R·!›º6ÉngÞŧ,EŸÏtߵǧÊ1í>ó|FÖã y”9ýø™\à8¤Ý÷Ñv>#×ÿŠx®ÂÒë]#ümtÖº´ø6bçØ%/Q?¹&ôèÜw%ÙZøÇ5Sí VUgu†ûö]šNs¸®æýŒ¸ ó™Ò÷ö“Ó´£˜\ùq¸XÕ5K^ºÍî|ÒÁaMuûnÍ֙ΛܣþN›Yký[g Åíoz°l½»“W¼Ë>Ë„!Ul»ˆ×žÏ±ï´Ÿ•æ3R§3ǾÏPM™èäô7å{ÄÉ{Þ·Ëñ'ý_×@µ üóž÷/ò\FuÚˆÕVïi¢y¿¯¾$§#Ø©C¤²TïåGœâ3“~ØQcF}ãS|FÖµs}ÏeÌ«¸}†íû(;"ò(ÍøâÐïÙòÿºû”Ç!ò³R‡V0]1Ÿú|Ò¾åÿŒ<ã±#3¨ÎÍTÏ!dYä Ä›ßû¾ÔgŸâ2º]:¿`•\X€9Ãgø.zÿÏrm Ò¦ïqô+äù¼ûŽ ð§îÛü WQ&x£ï‘¦œâ3"÷}ÆÏˆüÁ1«(=ÕÞ¤êIDATž7”Ì;ýCæ’ïqëè¤áKLq‰Úö P1f縰çæÖÖäo#îNôÔ# £¡êTªSZPÁ Ö ä>çü‹ž ­~RMqYW‘sMg™;øsM§)5&¶+úï´ß-ê}§¤=íëiçnŽÛgž}¤š <æ3’æÓËšŸi¶‰KsÔkyÓIá§‹”íÔ©’z¥Ù ¨ÇéŽn®×wŒÇzÄ@”:JiÒOÒh#N3¥eP+08]“Š ¸×zÊR"š IÅ\™¨Q^ç­¦£8ì5ÚˆÓ§=íw3ÓTÇ6â¤6Û4éO»Mž6⨴#•ümÄÁEÕPÏà ÆÁ)GCÞQËïyŒ1./é—Cé}:ºŒÌ½Èoøw='ôpxˆz•6âTêÚõ¸Rþ5ŠÃ~·aCgvÏñbKÄÛÕ8&×@\©ªÎ¥.‚z³Õùܬ1çgåŒQõÏ9ͱ@±bñVo¯¶$©;yÖÀ’d ô¼\j9é4  iŽKºþ²Ÿÿž©üÀÍ}zýÄâ½Û’ÔÕ}§­¯wÆK{u%­_VÚ†¾HPÅ+W°«ÖôùŒQ]Ù:kÙïúˆ{ TÕ5T÷^Ãw¼ ð`ìN±(…—|i#Fv©W_úrkIú£¿[©S±)¦g³™ïñh4:ÞˆÒ€ÁU~B¶y­¸¬pAv1ø‹n-Iö>ø~½“´Öû‡$ýÕ©€eó ¼8z|㪄õ|n¯kúZ¹(^L Þ· Û¶^ß¶êõîÕÕZëiÿ0 &Ë ¡š¹DÁWåwÀB³e›Yk»Òx¸-9=¨Ÿz•Ä7ÿü¾zN–™’Î1³VØ~“^/j¯<3A:kX–íÒ¦3Mš¥ðñYˆ«éZñQÕôïi_ÓýßÝÉR Ê(Y]-Mù¥ã$^G.Ék+¾žE Êr--4±½¦Íöà«Ê\t³)3¿8N¸8wŒq|ç-œ“Ù+½¹ù}ÔF¼]5\Ø1o±4x~R¯ÊÃ{™«¦£ªƒïM³¯ &VMˆóVùšÛJ§WM›û jº±²T»Ä½¯ Í8ôÞÍŽ÷}¼æÃVø®!Øo«Õx¨è¸\íEÄ)_'‡¿N ¾"fýçq¾ˆ/-ºMÞ<>Íø®‰z´Õ{Zªç>ÜÌÕ¯õ*`r"©ÛÖUò:lÝò`!:ÿ›*Ó—›ßaMá^ðƒý”aÜ0¹XM(ñ&‰/›ã†(œ{#txï(oæý„5ˆëÓY £- ‘õv{N;ïãü?¿°`œ%8‡UQT÷8ñFQµÏW1| Ù„«‡zÒ pB\o^œC°‰ Kò–ª|œb«¦| çA>¢öÌ }º’WøêLI«6!¿¬ywª[å}ˆï›|먨’Í9ª“ Âh ³Ä|õ¬µ0ƒpõ‚q ×tsæ™>B•€H;ã_vÎð'®/UR§¡f™†/]-J¨j$*Á<TMãbàÒ¤5Wƒ"ÖUs{´·ÏU³ZZJœY«f³™ïñh4*)%€ª1¬‹@_oÉÃVÄó(O°—´óÔô˜U’0×t½ÝüóóGÒ<Ñ®4ó_j®é¼Ÿ•gžã¼ó`©ÎsM'}Ö)ù—frã²o(íßUP¥´\‚ó}£æ ®ÞzÑa¨šF2³ÇõýÊÔŠÿå -«z‡-1%"ªºí¦FtÖ J<=ò WÇÇí?ýëñ[ D Ô AˆàLÈâL®’r–2ˆ *eP1ª©.sÓá*€Q$1%"ŸuV€œè5„ë¨Â´àÓ L†WýY´ÂP"vd FÜ5‡½^Òþ…êƒ@ …h‰•šŠR‰:Òjv ¦„ àLÒ—¶Üì–Ôƈ×ì@ 's«Sš¶”» üM0F´ë Ä”OCþáê˜%[)¹”UeJ0F´æb‚€0M‘Âj'ÜZ‹úi~ ŽÃìMÍÅ NÖ¬AÍcö”®÷±ºî@ ‘üÕÉéîíüïñîóë(ªmWÛ’°«zÌf3ßãÑhTRJÀ Æu\Žåh}~~6ö ¹¹¹IÞÈÈ#í„î-®»mðqÒçdy=ì³’Òšæ{·©êd&fºò¤1ë÷ Û^ŠOCÔ>O=Fqªz¼+¬ùê8ÿ“NŸð}ÿ8^ãé‘ti¬zž4¢D Å9×<¬zš*kÐFÜ7Úˆ5æÝVàñ)‚Á¼ØªnJÄÕ¿P{çjw ºÅ‰"ãz•QMM§°+?Ñ ˆA`¸ Ú¦¯Ž€ë=Ñĵ»ÔÏ–@|A¨n–šrŒê”çÈ(XòmE,VG ˆàDa%_ÔWXÍE±µè5 ¹E_ ›R‘sœ`ìÃbf#ñl6ó=F%¥ˆQ·&äÖjímĨ«Ýźд>??{¦ÜÜÜœ§î…Ô=:ÁÇqï‹Û&Íw·9ÇÙqÎ}UUØw3Ÿ‹úÛÜVò?Ÿôž¨Ï¾†ü¾J^°=>5ÂoºÜ¶ã¢NN±pyòåRyÙˆ1P\!¯B°4Lp,Ÿwcu Ê[Œƒ@ ¹y{ü ;oe8ÇÇ;&a³f)ä¹Ë@zMÀIœžÒôš®²]àï`³ÁegÒ "× u\çEç) Á¢J¶æbå_O ÄptН¿²ŽÐxÑ7JnòE“ãC 4TT[¯[%í-¡èõªŽ›¢´ôšFsÑ– ´g»¹†q0{×K ý§D h8³ô{„Ýji§|ù:jq”´êÞçÀsê¨F;ª¦W§J÷┈8Uù¥8YtÕs¹ã‰)®ˆ»ÄáñÜÒe­˜U| Þ®4.dK’ºš,Õ ßP«ñP Ûÿlw²ÔcøÈaX!+8õeˆ·Zý\èn²ÔSGÒf®þx¥ç§žÚï ð^P•Iàâªqý+¶xû¦WÛÒí—ýã/·²ìw}ú¡F k.Ž-€ ¸@ñ¾úŠ¿ôw+u"ŠÄëi_ëýß•,sq€ZºÔY-oWc  ¼–ÏOê}¼Ë67jÕ]äÚê=-Õ3÷7ëöùI½@ОÍf±iFÙ¥ªÆ*@(ÇÙq»÷¤e/øì­,½{·õGÒmªýýPw1Õû‡lP&Ш¢ì+0™‹Ò‡-PkpqÄNU´'XU 4kâ!„[-êTpÿæ¼)ZTõtY?Ûbqû›,Û)ÕJÒÇ»lëVNß­­Vã¾úóóÚv¥±û·¤íêEkuu_µ6b «*6J¡d—]ÝÕVpg­¶zOÍû}õ%9ãˆ#†.µ¿ên=Ußí©;暃{µëÖúüülìΌ¹¹Ì¥ù%m“vÒy~±çÜW¸ùõÚ÷ÿNóY¸ a‡ûøThù&ð¿ç´Ž[œnñ’.}y/ §`ŠK¸¸]iÓ)^·V ¨V#ÿ ÄpFÞ´‰ñy§D\°>ù}ÈË[úP v˜+«/õ@Ô’× +mïgg[ï=\KŠp«ÑK@ g³ üí•x£†Å0Ê b8Ùi%.†_Ž7Ž»:ÄuRµ³§Ž¸âW(tò%£ø—µàŒ¸_®*7›(¼&#ý¥°÷gïF‰¸ ”È€†‰*qU£W.\îqrÿrlÎ׌1®UÕ8›° 0A¸zò“â®b8o…O¾âæS'*¤j*å´Ž?8·âè _«*öᯪ²Q§ÔeÎÊUÉ&àñÿôÍöfßVÊZ3BÕtY˜™½\Á¼çX TÎÅÜ[Â\«˜_eóOEê oÊLoZSóõôˆg³™ïñh4*)%×þ¼˜€ËçÝ ¹üíÅ­Cp>¥lÅ2ˆ—\>Oòµ<Ëð!Ÿ`fÍӴ룱 " ÁŸ½¹$¢xÃ/øÙ2§Ûi¼ãä¸Çv‡íý%bÿëiÐF\ür€+uÜÈß}ƒ6â*H»(‡»ôÇŽ@ ¥ÙÉ\6Ñû;¸”"¹LÇ夰š‹]H[qºãF €9¥(3ðšï`§--k+Õ9ˆ/…a/"… …Ù>~q‚Ç$ÝØî<—ùFôš€úó‹ žÔÅk¥âãcâuÎÚÛ›üïIB €Z Ïì=>Îw'øWc‡ñdb¨‚îå…åyt-„7ùJðùìƒ`ÄP)ÁÉ"‚Ï£LIÝ}òL@ ò`ì7Î þ4:m¶&d‘¥"é)û ½¦ËB/êòpeàã}‰pÛwÆäÇÃͲNìA‰.àÔ…P¶¤RsþÞîb(”áo\TGTé5ü8ù{GŸV»I ¾4}ª§¨ãAóŽ{ãîvÅ/8¬Ò¤KFÖK mÄP˜ÓJ¾ÜËÕÁéÓR"€  "¬îÂfÐ Þh¥Ùæ€T‚«aEuÎJÚÆ@ …‰ê1Kûp½¥9vW6Åål6ó=F%¥‚ÂÚ Âð´>??{FÜÜÜ”?·×…ÛXäö ¦'u½ã¹¶ÅUI{jd½ËÝ'UÓ”ˆ@ @‰Ä”ˆ6b$"/χ¼ôòëy -†sm$‘—élæ}õ}…W\þÅçmsñöM¯¶¥Û/ûÇ_neÙïú(5Q5ÒîééÑ»÷m½“Üü#osØh>|ÕÃóD]óiò2‡­V/ku'!¥3ò3/¿Úßd¹O“—©t—Z.¿k)>ÿò¶9X’t§¯f5þè/·s¹lÿþ‘¬[}9äevû<{}Û÷?]½hí^ÄÈÏl¾ÜÊrk$ió[kuußyyª¸üKÈÛ†-ú`Ž…e \&æMƒuÌäm>aã ÉËìÌ< Œ}%?³ñýÖÉˬ6ó¾|—JsL{lþE¿Ö°@ @½4§j€"P"1%j΄B™K¬Ð¡iu¶Õj<Ô–Rw.2'ß÷u´ÊA blWc «| ·çiŽ P´Í¼ÁA8§vOO“w§ç°½ÐÏÕ7ò¥"1Ú½'-{ûµ+Im47– ü—`ãéÏ Âteü~®/·ûçXw%"—b ô½#I_ä^ÿ¥®~ôÚ’Úúꮋv ýÚ—”­Á÷}©°­Þý’äöB¿Bb™$ßê.wYû·o¯‡Rn÷Þ+k¶{O‡éLS}®¯#Øw¯ÔÚîéé©§öv¥—£×;úîÄõ‹³êOhut﮼~X\=l!_=ñûyÚ‡LgÝ]”‡@ TÎ>(ÚxÁÔXRíObô0W):¶žöÕïý1åçnÿº¡ÞÒÃqÝ·/ šûñ‚Ÿ·CQû‹úýLÁåé€ÐF T”蜀’Ø,šR»÷CÝ…Ù~꬗¼Óvû=åç~¼ÛgJQVñ7Iß/¡i¸81PQNÉÑ–tJÙ/½æ+@vô¸\ê1¤CÓúe¥ï?Ò}îfž'=çöL ߯ctÊúx÷wFJ@Õ4PU™ª Ú_uhýŒ|¯°¼ŽQÙ>·ã5â ËIøöºŸ¤*í(^•vZßÏà¥Å\À¸,1PUížþÝwl²Cù;oµ÷ÖñØáuv²_ß|½«·«±Æf£©Ñ&ÜýÑS;íçv5ÙÆz:×a³íJãñJÛvO^ÿ®_û×½Ž`êþP¦¡»ïòúyí{Roßôjû7Kü~ƶ‡êuc‘vàÒ¨š*Ì™Ùk_ÅÒ^UÒ“ö%ÖõZ²_õ¶íù‚ž½ª¿0·ö_Nû¹Ç¥žoÇ.Öšö­¬Ááõå½3ŽØ|=_U{[½§‰ÞûS­í…†ý…duÕµ$Ûöo™ôý$ù{a‡xÔúüüÜ•EðO”Qý)9/Ë?&™).Qª¦Æêèqâýý9†ç EJ@ šÌhǵCÛéµÚ®4f1 TUÓ”ˆ1%"P"1%"P"1*d£yÜJ9òÛ®4î÷Õï÷é=_1âXÍ÷'®û/zJÁ°÷æ *îçÓº¯Ì–u+4]qûôç“?íçøL‚tóñ{+nŸ[­~.t7Yj¹\ê©÷Áï©Bĉ, ž“wù<Пé%ï&×úm^Œ)ùòëèqù”mŽßTŒ|Z.õ<ø£éáÂVÔg¢yø½ãCïvüò‘(sMgÑîéiò®þô—6½GuB–YsæÐÝj5Þ??ìk¡®&Ë{ýÝ6êÃ, wZ˶mß^¥Á@ÝÅ«·Ùv¥ñp±_ÊÍOw£yÿE·æÜºÛ•ÆÃwýXÞë÷áµývƒ;-NʬÁ³žÜ7ùömî?EV}{µxß? ¤'i¿osõ}éQH~2%aãñ{Ký{óøó(<þ§þ—õù=U%â¬:÷êîœÝeÖÌ;ø¹6ûÉ黇»ûGu"·ñí^]ûUo[ÉYµFzøöÕØ`£ùЫnZNî´εQG÷][‹_ÞÞ·o¯²»÷!?6[‹÷ûCštX%Ç©ÊÒàyŸæè¥äÂl~-">/i¿Fz&Ýýª=aù‰«Àï-'àþq÷™?ÿGÿ›ßS¥\E ¾ùçŸØ§1Úµ† Ùú£è%\³l+I}Èùo~k\6nó[kuuïþŠŒ‹–³òÎïÃüíÕV÷>ìçfið}ÿ|û«îÜ4m~iawõ#õí¸­ÅÐkÛû}¿Ô2¬ø‘¸_#={uóUóÏ?7±ÿNÃï-ÒöM¯æ>Úßô`ªÛQIWQ5ýÿ>? Ú³S ôgð¬e¯-· öôm=Nïo͵V÷þQ ÞÓûÖQý¢[Kz—ök·õ{ó¨Î—7½j ³ÞöfZ£Õ¬¦›: Áw".*¬ýÚhŸŸÿ¯ =ó{‹õñ.[å(¿T&ªá*JÄgeÞïÿNu›e[S»§ݵÖúöößõqxð!ws©­o–Ö¿7N[WžõV}ûN«£Ççt´ ü©ûÅUâ÷–QW³J~™gÝg\8‹ýª-‡eÓ¾ÜÊ2«»6¿ ¨ÛzwY‰ÛFëÜwÃ.ßW½¸½JUgío²Ö/úù*=|ËxYðµÍeK¯Óɦ«õ4dxÄ)û5óÍÇï-ã>¾k`é“´]Íc†(ñ{ªŠ«¨š>Óö¹Ø?òõ¼l÷ôïàUC÷õnרêèûÀÒpÚ×zß+1zÛG=…ÞÕ:¥Ïñp¨þBr«‡›¶{úÑ]húg 3ßž;kÙö§}ç‚%½û4?ÆÇÒó3ì÷8?¹Ño"~oé~þ|Òþ;÷ž&zï»é“d ôÜ ÿ<~OÕÁ2ˆH)dˆF¥÷ Ô¿‹kBÕ4"mæÆpÍo­­e­q»ä~:ãwq½¨šF ³fW“e/{”‹î¨3~׊ªiJDÕ4%úÿÂÎäëzÿJIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/errorbar.png000066400000000000000000000326001465265754400210130ustar00rootroot00000000000000‰PNG  IHDRn¼g¶)ª pHYsÄÄ•+ IDATxœíÝ_jÛÌÛÆñÛ/¿óž×Mñ&R(ï!4Ѓì!ñ¯!¨“=ä à‡ìÁP¨7aÚºÇÝß[¶$K¶þÏ\£ïBå:‘e]’|{F þþý»1xïÿ\/Š¡pAá ⮀’µ½ÞßÙËjûhtódWC§K}BátlýzowQå“klÓù­]v±@X>_ÛÃ"뙑Ffï¿ücŸ/‡F‰ @…€€­lµ2[=ÜÙb4¶›n­ÄˆñÔæ·Õ¿&œžW²•¶îk}Gá8EËZãF7öôxµm][/íùëƒ-Vf¶ZØËÙ;Ö7anÂ5¼´ÛÇ©Ùõƒm{Röðü‘ŸN íêqnW®…àµã‹þy÷¯}ý¶°ÕjlÓùgû}òù]ëÒzm˿ڷÅÊVûyl4þd_>_Ùå°øë-áòy÷üvžã›/öùêr>ÙúõÙ¾~ÿi«Õ*öW#ÞÛ§/Ÿíjÿâç^»jKÙ¥}¾Ù"šñâ?[Þ^æµ^Úë¿ßì{|ÝŒF6þôÝ^Y¶Ýûžþc·—Ãd+Ÿ™ÆS{LŠä±{Ý›ørFoéÕþýöÝñu>Ùèý'ûçöƒýˆw]š™-ìzŽàv]¿-”[ª4g^;ñè‚––× 7À©…=\gœUŸsÐêåÎîNÌ-óùõ«Ýß½Ä>÷¿m«ÅÊßíæé1óܯò¯·²Å˃-~–ÿϯèƒ5õÚ«•­ök:·¬°s¯]ÆðÝ{³ýXØË[»¼´üu³ZÙbu—x§—me‹‡;û9Ù*ªØ¢gv+VÍce‹—;ûi‡ùç^¨±Úžï÷ãó‡Œ'UÍ­”–×"Æq‚¶¶×¯‡ÆÑxjOó¹ÍçO6G¿³²—»g[V™ýøf7¿¹=ÝŒÿ¿ø/6¿‘o¦ûß›?M-ñ«ß^m]åµËx{a££ÿ\Ús¬hOŸöË·_5‹oöZbáÒEÛþÿ¿ÿؽÇvòØÏýjßöEÛÈnžvë|>·§§©GfQ×e"¯ñtÿ{ó}Ëf‘ÜŠÎ+KËë-n€SåºGã©ýs{Öbm¿O=¿|¶‡Õáµ¾ìŸÚåç-¢ÎX+T™×»ø°nxõÅÆ/‡sÉ¢ù]Þ>&ßßðÒ®¾Œí%{üŽ¯Ý°åv¨qnìsÔ'7¼´c³ÅÂÌle߬í*u‚ÖaÙR]…£›þ³íÞ[>ßÛCº[þëV¬“ÇÚ–ÏwÇ-k~ÅZ¯VöýÇÒÞ}xk—á ‡—vûX¼‰¬jn…µ½.€@Q¸J.Þž.dRϯÿ<<]ØÛøïßY¼ñçïµUç^/á­]Œ3ÜÎo{ÔzùÃþýï»ýüi©s¦N(õÚg$ š­ÄºY½ØÝõK柮~ý1K®¹Ø² í瑽Dïéý»ý9Y—ß›¥ ·æòÚ塺<¸ühc[ì ÒÕ˃=Dok4²ñ—Ýyx…TÌ­èÜÛ^@ (Ü´âý»¡™-íùþ!]¿t.Q$ØØ>^š%šƒqi·OS»øúíPLFVÛóð¬Ð¹i~äà…°ÄIù«_öÇ,·k[hÕ8;hýþ¯Rÿõú-öá?¶›§Ïöa8´áòÙ®;ëÛZÚ¿ñËÇ·7ñuû-S3gMu’ÇðÒ®/íÊÌÖëµýùñ¯}{Y.Íøoi·é~Ç”.rëtÛÂÅ @È.?ÇN(_Ø·×åþ$ùåóÃᯨª²µ-ÿ]8º±Ïéù.¶þ–nkÑz×r´ÿ±M£æ¦Ë‡‹V/öõy™( Ö륽>ßÛ}™«Îi;å³Ýß?Ûr½ëp8´Ë«Ïöitø•ÑÅÛã¿[üg˼·Y6·SóŠëlÛÂB‹àTÎp ÝQahWÿÜØ÷ÝÕ“«—»;:•kd7OÕ^kõrgǧ†lüe×z•hUÉ?¬Qy¯3ÛôŸøû¼´Û§û­›ÅƒÝeD1ºiráÚÍÃÌlµZØCÖ13íËn¨Œá‡O6zYí/8üÍØ¦Ór¹œ×ü6ï¯Z_@ˆhqB7¼²Ç§'›ŽG©!1F6ߨ4gœ¬BF©yŽÆ6}z<œCuykOÓññïÜŒ­#Æv3}²§Ç[;:/?Z77cÒ:²ñøÆ¾|høºÖ6óxûÑnÆ9ïåfº]‰å¸Ù ’XŒò¹š×)m® Pƒ¿ÿn\/ΣŠ@…€ 7^]U:›Íl2™Ø›7o ÿÍ`0°Í†ÓôÊ Êý~[«˜ü´‘Ÿ>2ÔF~ÚªäçUáVl5Y«-*æº\¥ä§üô‘¡†ü/Û›ÌçˆUC•ý®Rò…Û lŸ¼B~ÚÈOjØlŽŠ<¿UÙÿä 7šùµ‘Ÿ6òÓG†€;t•L¾p£™_ùi#?}d¸CW)äŸ6òÓG†€;t•L¾p£™_ùi#?}d¸CW)äŸ6òÓG†€;Uö?ù;'Ð5_nˆþ‘oq£™_ùi#?}d¸Seÿ“oq£™_ùi#?}dX/÷{†6®*˜|áF3¿6òÓF~úÈpG®«t6›ÕžÍüÚÈOùé#CÀ¹«J'“Iâq…üÅUXÔCW)€ÊØÿô‘!àŽ\Wihæ×ÁUXáaÿÓG†€;\U 0ùÂf~Àö?}d¸Ã½JtŠýOîÐU 0ùÂf~Àö?}d¸CW)€N±ÿé#CÀºJ&_¸ÑÌÚ`PþŽ>ÌØÿô‘!àð¢²øÆs—u‹ÓØFô‘!àŽÃ®Ò¥=_ßÛ뺙¹¡[y?ßÄ [åz2f6(|¬¦—$ µ[Ü–Ï×ö°03ÙMýå)m0ñÑÕ Ø£>kv gý¢lúÈPOV¡¶?–“¥”*û_í·ËÛ¹ÍçS×QEl¤Õ*Ú²~HcÿÓG†ZâÇãMì'ëyø¯Êþ×é9n³Ù¬ÐïÅ+Ð~Oo×Çfsü;Ñ®Zd>ñy•±±m«Û¹¿¯ó›šÓL3Í´ÓqUæsêØ>$‹¶¸äñšãmÈÓn“ÉääóQaßÈÎM§7ʦ㚚O|xL»™Žö?_–‡iöA×ÓqÕö©óóÏ;ºoìP¼µ±lL7?]¥†áªÒžÈZMƒ­puÿabÿÓG†~ª{|åø¬¡Êþ'?ŽêËÛ¿ãÿ?à(q Æ–|áFAQ]¼ÒO¯Å¬µ:¿ìýÀö  ý´=<b?çÅk³9þªì bfw×ö2º±§Ç+ÖqA4óW“µ±dm>ñ~øã¿eÝ÷ûŸ>2<ípÎYWó$ž‹‹Î+=\ÂLuTɪvávy;·ùmݹ K‰+“â­n9ÿœ,øÎ> ’_n·ÿýPÎkuÉúûxñ†~’¿8!ïRgl¥WÍ©â,*ÂN­Îãn`ƒßðúŠýOÖ—WxŠ#_±ãð©y4•iÙ^<6£òªd%_¸qÀ)îtÑVNº€‹þ%~!o}dXÏþØ—õœeÁ––ìù(öºÉ¡CŽ—‡‚\ƒ“®Rhh²h‹£€ÐW§Š¶¬ß‹‹^Éÿ¯·Lñ"ñxŒ°²ó:þ¿6ÏùC1\UÚmmq›Í&õ­±ù+PÜ Ù;ìúȰ˜èøÿ9çxØÜÃO›«=ïÜeø§J>ò…-;§uQ´%E¦Ãëg^ÁºÿÿíMìúÈ0Loè*EB÷EÛÁ©.ÔS'òÆÿ|¡x÷™sçÖA“|‹e6—E[\úµã焤 ‡ýOÖwîî3>ƒÉÙOt•ÂÌü)ÚâË8A6ï÷vÿr€ÑáÃö…zȰº²wŸq…âÍ_t•›¢$èƒÄUœ9Ïû„aBôÉ·¸ñ âÀ—¢ ýÁþ§ ëÉ;77ÝÓà+øÉɽJë˜ÍfµçáÓŽá’oE›â‰¼(χm õáiåVÏù»TŸw}§Æxƒr]¥“É$ñ¸‰B®T®Æ2Ôþò\w™ë¾åSçh ®ÎÎqU© å†+Ñ ³¡œT @O߇çà‚1wè*…4òw‹õ¯¯ïªyö!?–A]¥bØØ«ãÛž”÷?lõ9Ã:Ç_V›Ëü8×GW©¨¾8ÛêZ Ë@? „®RGT—Û'lÝc;Ö×× Õ»H#®óãJÿzè*¤¾üe´ùV³ZÝÚ¸w!’ú´ý†Š µ‘Ÿ6àÁ7“æpÐPV(­m¾ Õ­[ò…›ò†ÂA£ÙüÒóÚlŽŠ<‡â”÷?lõ-ÃÐÞohï§oªä'_¸Qühk"?¶wX÷úúša(ïÛ·÷A!YŽÜU¥³ÙÌåË;A};”À9ÛÃÐ ÝqZ¸M&“Äã*…ÔÚÈOùéSË0ª ÚXä6çݵüT%?ºJ;Ä·½cM® NíÛ²¾P3ܶ?Qk¼Yxï×§÷Ã1¸<¹®RšDÑ€ÐÉ·¸©ì¤ç¾í Ç?EžS×t~|ãëëY_¨n2~ÌÂ{¿¾½ŽÁåpU)ä´™Žö±ÿé )ÃýdÇËÑ¥òë#ºJ=U¤€`ßkW7᫲‹olwÖÛ``ý*ïÜà‰vÈ·¸)}@³k;?¥íCëWjó1?>ëŠã^¥òq§òI[ùÑêÖ ß÷?œ§šaÖb—Ùåëþ½/TóÃ]¥cçr‡æz _ò:B£ºŒãA1§ ٬璷dPô¶ÐUÚ"Ÿ—Ím®#íc×R†ñ}>ý®Ây—I!å×Gt•zJa]©»nŠŽt^å[Ÿâ(ê]cÛÖZ†ñÓ$²>C|¿íÍ»îßÓêvN•õ"ß✒øžI@l6ŠA¾póõ8ÔÛ«4Íe~ñÛà ÖŸ>µ 7›2-AÛ¡w‹‡ËÍÛ*ù©,g×€rÚÎ/> gÖ(ꨇýO_hö­@ð=?ß—Ï5ºJ=Ak›΢ê-ppüõÇÚf8½8a6›Õž'=jk*¿ºÇŽ'Õ°ÿé#Cm ù1®f¾*ù9-Ü&“Iâq•Bη –Ö¶rXOÚÈO_HöñøÛ§÷"àEo1Š:ø‹¡Aš#Ž›Oͯ}ü¶WWðæ½£¨×çÓþ‡jÈPùicÞ•]—|öWÓvÑ´ÿ–×ê«ôE¯¾P2ìëg¥÷K«Û1®*uˆo=þÊÛ1 F¾pk«`ŠbŒÿ{ŽB Œ® ÞC‘vÅb»>Ö¡¾2 á=T¥úÞU—»it•:ÂX]Ýüڌ߃MË{>ì¨'¤ Cz/E©½g†I¢«Ô1µh‘/Ü\Wî®__«õ·¿â”üjaýéSϰ¯%Dóãø{À½Jòe9Ô°Þ´‘Ÿ>2ÔF~Úè**à[t‹V·êä 7—¡÷½‰¾ .ó#·ú8èêSÎ0~  ìèçð{ùÏ©SÎM^Uº~µû»[™™Ùئó[»ÌþE{½¿³—UòÇÓ¹ÝfÿAãøðÕF~ÚÈOj !¿>ÈÛнJ×öúõÅÞOçöxifËg»¾µ§Ç+æÌ¤ËBÍ´¶…‘¼Mé– v_= RÍqWéú‡}_ìâíîñÛ ­~ÙŸn—«°º¡—k6Xþ/ëλŸØiµ‘Ÿ>õ ûþ…K=¿¾kpÞ÷ö.ѼöÓ~¯Í.sšÜ×¶ØMwÝúÖÅN›^±´¶5‡u¨üô‘¡6õüúÞëÑLWéŸ_»sÛv†ïì}îŸíêqnW»Gë×{»{¸·‹§G»Ê(òf³Y¡…ŠØöô¹×=jŽ·C›[ógºÛéøí®Ò¥ r_–™i¦™ÎÚ—ú>,Óõ¦·­”èO}Xþ.§ ··6²_‡ÇëßöÓÌ. ¬ÄáÕ¿<د?fY'ÄM&““vñ ÏM§ƒ/;—þAl+ŠÿE4=ˆ½~•ù3ÔÅëF‘æeíÃ:Qš>·ý3íÿtœËê2³æOŽÁ‡/×e¸^þ:ÓUj˜œá@¶]£é®Säí̾ƙÿ”ýš€½.òC{ÈOŸZ†o“Ôò;g³Iþäý(o»J~Ç…Ûðƒ}­¶­ffÛ®ÓÑ…m¯UXÛëýµ]?/·Ï­_í>š6³õë7[ØØ> ^a:¨9ÎOÝ¿GóNerüÿ‡o?üZÁ‚-ŽÁçe\œ0´«Ç©=__Ûµ™mÇqË døÎÞ/ì:º2áä˜oíH73B ùi#?}d¨-”üÝ¥ýR%¿Áß¿½I|6›Ùd2±7oÞtöš‡sž²žÛ÷”÷·±é¬jÞðOâœFB¼“u.*‘u æsô˜ü-¯Ú´ßp þ´‘#¸Ã1¸ù­«¦ÕAÆZ]}l ùé#Cmä§­J~ò…[Û…Sú2ë._»|[‡ñK´qžoù¡<• é&ÍÚúèÛ1¸J~9wN@ÜaŠÆœq·,¨j󜵾œ'ßâV·*os<˜ÆšiK_¾U…Šüô)d¨°Œ®„¸n’­nÛŸß§]¥äc~}kª¯ÃÇüPŽR†JËÚ•×IÞ±w0¯€£«´É{â9^vj.>‚·ä[ÜB«¾ûÆ÷ü|_>×X?ú|Ï‹Nó=¿2ν—o3Yå½È·¸±3kó5¿¾Žâ]–¯ù¡82Ô¦šß©Ãk‘wÊá¹™{•bozÀ'ò…­"ÚòSXFWX7ú|Î/Ïçùœß)Ѩ ñŸ.ÿÞr]¥³Ù¬ö<ÚÚ¡Uw5>é.=ÏçüP j )¿è˜;°Ó'„öžËrZ¸M&“Äã& ¹¦…´€ ¾4õ[|Ø{¶„$ºJÏÎÿð“õéçPŽïgÆt;õ¢Ï÷ ùò|šïù••¾ÍdúÝ…¶=0oCBÛ|ÚNØ7ä§ µ…š_¨ï+M®«Ôw}ÙpÀ'\”®2‘&¾?ß Ò—ÍE¾ÅÖ1m ùÑ]šu¢ µ‘Ÿ6ºJÀ7½n±žµ‘Ÿ>2ÔÖ·üB+T€hYh À7|yF¶‡ùÂRm*ùqÐȦ’ò‘¡6òÓFWiM|ÓëëZùéó)CŠò|ʯ+!m't•-â" },FpÛÅ–|áÆ‡¨6òÓF~úÈP[HùÜ>ëqè*­nR7XßÚÈOŸ/r ®¦ë+z¿aTn À ´läÁ ‡LhOÑCj(­mUÉ·¸…ÔLÜGä§üôù¡Ë Šu§®ÒŠh¢w‡u®üôù”¡OË¢¢ë,¤ ÅäºJg³™Ë—*¡»àŠÓÂm2™$W)äøðÔF~ÚÈOŸë éñ¨Çu~¨§J~½ï*å á–úz¡©¾õü@†êúš_(Ý¥ À t¤¯K€[ò…[j[½Rh#?}.3¤Ç£>öAm\Uêp¨Fy݇ÒT_‡r~Ø"Cm}Î/„c0]¥ ʶ€Kò…[ÕŸƒ†ÈAùék+ìûNf݃ÒlÓû‘ðë`ÔFW©ƒ¿G=êë?„¦ú:Ôóªë{~êÇ`¹xÚ¢ÏËôçOÖçÑá³õüE yóúN¾Å­J•Í•LþPý–”%¤÷RTßshºÈ0ºÓȶ`c›iû 6ºJ!'„üBxUõù½‡¢í O}0QtÔÇ>¨Ý]ÊU¥/m2~Ì4?l—ä ·²;=ݤ~ å ­ü¯Ž¾½ßµ™áþxÛÚ+€}P[•üä/N ÓF~ÚÈO_SV©6¶;ëm00Ê»jØ·6›Íþ\J¥uBW)@Àä ·2ÍŒt“ú'¤fþ>v—ö齆ª© 7›ãŸ³¯½ÿÛMé¿Åûà1¥u"×U:›Íjσ"Lùi#?}]dHGh{Ø¢îR%rðN&“Äã& 9€â¤ûÖ5KŽäFá”Ó›®RºIý¤öí蜾u—öå}†¬í ÓÇ\жf±fSY/ À 9ä§üôu›áfÿšl;Í`=&©­¹®R@M™û'–½,{3BQÞöšß°É|®È½NÐâV¤™‘nR©4g1DV›Øÿ b?–ø AHùõj#¿| ëFîªÒ&PŒi 3¿¼1¼këÂ̯_ÚÊ0š-_œÛÅz=¦tu)]¥Tƒ¾Í&¹½¥wÇèÚ:´€ªzÑUjÆ·_…ZXgmm!ÞT;¤÷ÒWd¨ü²©\áOW)䍿—½¯¿¡¶çÇ’ÂTóÃA›ÒMÚ>Ö­6îUšâ{¥ P†|áV¤8㉿T‹ë*÷elòï}¡šÈPùåSè.e^È )¿ýAÂñrt)¤üúª­ é&íëW]¥14àRºxÄþmP•|áæs(Î )¿£Áw-Y°mm€^!CmäwšïÝ¥t•BN˜ùmìô€ á3¿~i#Cz<ºÃ:ÖÆ¼;4ЖS›ÔñsÉ[_|—ÍpŽÓÂm6›ÕžGÙyÃ/ä§üô‘¡6ò;/º–ëªÊ29-Ü&“Iâq•BηPNßòóñÀQGH說šÎn±žµqU©qЀŸØM/Ü|½RÅŸ6òÓG†Úȯ_¯.åªRÈéc~¾8êèc~¡i2Cz<ºÇºÖÖû®RðÛ% .ùÂ-¤Ö‹>"?mä§ µ‘_q>v—öº«Ô§ P\_[¡BÙ^ûš_HšÊ7XßÚzßUjÆF ¿±}ê/ÜBi¹è+òÓF~úÈPù•ã[/]o»J} åõ¹*„í¶Ïù…¢‰ é&u‡u®-˜®ÒªŸg§VÀ`P}¾@“8Ѐ{ª_ž½,ÜΉî9ý@ùi#?}u3dp‹õ_žO_ž«äWÿ^¥ëW»¿{±•™™m:¿µËÚ3ÍwêM†vÈ>è{^êÛ¬ò²c«© ÙÜ`½ksÐUº¶×¯/ö~:·ù|nó©ÙÃý«­ëÍ4W¼hÛdü¤ð[pO±f¨W¸­Ø÷ÕÈ.Þ°Ñê—ý©¿\'ñ‘Å䧯N†äïTãË—gGW•¾·wÃøãŸö»&·èb‚øÏ9ñV·² 7|Ùy\ðí²ô*úœ_(šÈíÀÖ½¶*ùÕ;Çíϯݹm;ÃwöþįÏf³Z/×”øyEL3ír:âËò0Ít™é8–‡i¦«lÃÑc–§Èt½Âíí…ì×áñú·ý4³‹œ_ŸL&'g/ì2Ž 68Ó0=}P9LÇŸgÚítœËÓõô`p<þ•Òtt0ñey˜în¤È>¼—>N³VŸŽƒ]-Cºˆ,2Ý@Wiºk4ÝuÚ<ÝŽ%¤å}€ôEÞ‡ Š¾ç‚º² ¸Åú×V%¿z…Ûðƒ}­ìWt5Ÿ_¶]ØÛ“T]ü 2~Ò¿GñËsÍq܆võ8µçëk»6³í8nWÖfƒ[ºi3ý´ä/ 䧯J†Jr¡cÔV%¿úðÚ¥ÝÎçv[F…±‘†ƒ,_FÀjË‹cu2$÷È@[÷]¥-ic;ÜlÚ™/Ð¥Ö]êeáV†ÊŠF6òÓF~úÊfHæ~!Ó%Çrz?ЬײóÎ{½²ä 7š‰µ‘ß–Ú7¾ù髚!ÙûêË;îvq<®’_ç¸hÙÖeÉ{ ïŸÛÿÎ`ÿŒ/5²|‹›Z ’ÈOùé+“!yû‡Lš‘®É6‰ÿkoÓU 9äw Ø]J~úªdHîþ ‹:vw®)ð›m­fºJRê_DÐÌr4A¾ÅM©uÇÈOùé+šaÖ}uáû ¶*Þ%­è&IDATùÉ·¸qÑF~Ijƒñ*,#N#CmäWLÖj 6f6°ÃååæÑDÍ̼]ɪÁ²¯7uÏi‹Ûl6«=•– d#?m䧯H†t“ú‹}°ºíj;Üÿ<«xk{Ý:ºWiu“É$ñ¸J!Ç«üŽ)u—ú¾|8 µ‘_}Ñ1×Õk—%Ž@éÊç‹>äÏqóyåâ<òÓF~úÎeH7©ßØOÛlÚƒ­þ¼€rÈ/›Ê`¼ä§ µ‘_»Ú>sU)@M>Äò…›ï-8ü´‘Ÿ¾SÒMê?öAmt•BùåSè.%?}d¨üÚÓÅ1˜®R€€Én>·Fà<ò+Æ×õäër¡¸¼ é&ÕÀ>¨®RÈ!¿Ó|_?¾/Î#Cmä×®¶»Ké*˜|áF3±6ò+ÎÇuåã2¡œ¬ é&ÕÁ>¨®RÈ!¿ó|^G>/Š!Cmä×¾6»Ké*˜|áF3±6ò+Ç·õåÛò ¼t†t“jaìVÓë›®RÈ!¿b|]O¾.Š#Cmä×¶Ös•ùþ¯…å(l6›¹|y)N ·Éd’x\¥ |ãF~åù´Î|ZTÏnR=ìƒÝkrW™]¥pŠüŠóq]ù¸L(‡ µ‘_wÚX×r]¥€n”9z00£ü$ßâÆ5Úȯœ¶o¿R–/Ë&DYR±)aìVÓÇà*ó‘oq£™Xùi#?YQEŸ›Mr:ص1/@Àä 7š‰µ‘_y>u—ú° ¨«Iu±v¯Éc0]¥C~ÚÈÏ?åº<‹hЕê'öAm\U 8‹V@]¥pŠüªñ¥»Ôõ룼xf›ØOú9h 37š:s¯RÈ!?mä§e.›úAñ¦‰}PW•t¨ë/;òç¸qŸ6mäWÇÆÌ»ƒÆùuØÆj&?Uù,ÙnQVx›‚{ìƒîl6›FºJ¹W)¤Ÿ6òÜbÔÆU¥@dvÏ ˆœºSBžýM¯2þ˜S߀cQ«[—-Ÿò-nœH«üêq}u)ùiÙo/Ï‘¤&öAmrðÎf³Úó ™Xùi#?]ydª…¼´Éu•N&“Äã& 9@¾S'TSåuÝ]JW)œ"¿ú\v—’Ÿºíˆn›Í†¢Mû 6¹®Ò&p°ÑF~çU¹÷ä`p~Ý6q!ùùç\$U?è‰ÚOìƒÚ€衼b¾‰ã>ðætÙó!_¸ñá¤üê9ußÉôóm¿>ü6$‡ôHO§ }P÷*…òkFÖ}'»¸÷$ù©ÙÔæt)ÐöAÿ”9æÊ]U  ºø Ãs²lМ&nU„|‹ÍÄÚȯ¸:]Ymu…‘ŸÎ… ùi£«rÈOùéIgF†ÚÈÏOE 2ºJ€ïß»Aí|wi•ûVÊ颻T¾Åfbmä׌S÷žló9ùiØŸ™yóx2TF~Úè*…ò«'¾þ©Ÿ®_šÈPùù§Ì˜n À ôЩŸƒ:h‘Â"_¸qPÒF~Í8Ük2=o»ÈOG^O†ÚÈO]¥C~çm6åÇÝ*ÒT_e¾y¯]d¨üüT´»TîªÒÙlæòå h§.J Éiá6™L«rƒÁ€ƒ’0òk_›ë˜üô‘¡6òÓV%?ºJáùµ§‹uK~þjsPøƒüüUì”±®RÕú\N?7pʾ⃋|‹WÔh#¿¶EÚí¬gòÓG†ÚÈOC“÷ –oqãÛ¤6ò«®èªkó¸N~~*sQj#?¿»]¥rq3¸SöKtÞáš®R8E~íã^¥8… µ‘Ÿ’f²’oq£Aùi#?ÿ”» µ‘Ÿÿâݥ鸢º»LŒò-nÎ+sÓc€¿ä 7>ˆ´‘Ÿ6òóK•;%¡6òÓÐä—gùÂfbmä×6ZÝÈOj#¿þ‘/ÜúB¾p£™Xùi#?T½¡<j#?Mõzd_Uº~µû»[™™Ùئó[»ÌþE{½¿³—UòÇÓ¹ÝfÿAãh&ÖF~ÝŠ®njjL7òÓG†Úȯ2 ·µ½~}±÷Ó¹=^šÙòÙ®ï_íéñʆ93é²P$Umm ç¸«týþ¯Fvñv÷øí…V¿ìO·ËUÍÄÚȯ{M^¤@~úÈPùiiâø›3ï{{—h^ûi¿×f—9Mn‹‡k[ì¦Oµ¾Íf³B ïÆ97uýý}¦ýšŽóayú2Í:k:Ž}i¦ýŸÎSäoÿw}}½ûõ‘Ý<=ÚÕŸ_»sÛv†ïì}îK íêqnW»Gë×{»{¸·‹§G»Ê(ò&“ÉÉŽ »øcši¦›ŸŽo>,ÓÕ§£,£Ç®—‡i¦™>?mí»Éÿ+ò·ÿ›Ïç–ta#ûux¸þm?ÍìÂÎ^}±ñ˃ýúc–{B\ÊT°ðù¹‘W¼•E~úÈPùù':´æÅ’<þFÿžÏ0ú“œá@¶]£é®S°Áj#?mäçVÅ7j#¿0 ƒÂûóqá6ü`ŸF«m«™™ÙŸ_¶]ØöZ…µ½Þ_ÛõórûÜúÕî£i3[¿~³…í#W˜ÞKwµAÞ€Žø17½ç9g\œ0´«Ç©=__Ûöì·±Mç9C ßÙûŃ]GW&œó­4k#?mä§ µ‘Ÿ–ý9©±ÿ‹¦±ß9•éàïß¿Þ$>›Íl2™Ø›7o\/ Ð ‰o~ü¥¤/Jà‡¼sÜNµ´í'z>c¿Žþ¨üúG¾pè ùÂmäç/ZÝÜëbÝ“¯6òëùÂfbmäœ×æ~Â>¨üú‡«JZvªq4ë¹¼š\¾Åfbmäç7ºKÝéêN d«üúG¾Åfbmä¸Å>¨üt4•|‹€vÑêþ/Üø0ÑF~Ý`Pæ>¯3ê&-7߯È>(ü´UÉO¾p£™XùiáC¢ƒÁÀÙºeÔF~Úªä'_¸hí‰l›ÝOÖs`@áÆMù¡Ïö]¢–,ØâÛÞGص‘Ÿ¶*ù9½ªt6›Õž-ÚÈOÇf³Ùwé‘[8ÈRùi«’ŸÓÂm2™$7QÈ€ª4Œllw¹Â``É69}EW)œ"?MäÖ.Ö2Yj#?mr]¥M ™Xùi‰ºKQ^Ö¦^tUfí'MÅÀ>¨ü´qU)€Úš¬«ù† kµ°ªd‘/Üøö¯üô$ï¤0åÄ¿mR?Y¿Ó²ÓF~Ú€rÈOOÞÆå ²¡êbÿ`ÔF~Úä®* %=Xlâ¹n%‰õ¹Ùì»’ù,G¾ÅoøÚÈOSV]ÑÕ€±j6›¼ ’E[Só-‹¼´‘Ÿ6®*…òó×ññ¤ø†Ï’â\ï®_õŸ6®*Ð:>&꣕@Uò-nÜ~Gùù+KTkÿΘe®”]¾&6[¶}öAmä§­J~ò-nl°ÚÈOY5ccyOÖ§/ËjÈOW•èDV«[Ô`¥úArª•°©·D)€ºä 7š‰µ‘Ÿ–ø-¯Ú.A\t]vŧmž}Pùi£«rÈOÏf³9™­JÙ|ë"ø¶<(‡ü´ÑU  ¶¢Ç‘¬c÷­qß"ËŸºèºì Å,€¦8-Üf³YíyÐL¬üÂïJÅ1·uöAmä§­J~N ·Éd’x\¥cƒÕF~ቊ7>P¶|í"øº\(†ü´1/¯ô½õ­ïï@óä 7ŒÚÈ/Lño‘dìw«ùh#?mUò“/Ü|> â<ò Wß‹7ß»H#¾/N#?mt•ðJ_?TúX¨è†|áÆRù…/*Þú˜µBáÚÇ\BB~Úªä'?Ž›Âùȯ_úp¥iÑ.ÒSÇë¬çÚZm¡ç:òÓFW)/õå|·ß?È·¸õá|Èȯ?ú48o‘mÚ—Íž}Pùiã^¥C~ýòùn*W‘¦©-/’ÈO]¥d„T¼…ô^øM¾p〩üú'äóÝ[?BË oÈOðBùõSH¹«v‘FT—[ä§®R2B8ßMyÙh’/Ü8pj#?˜éoÊ­êë¾ïÈO]¥C~ý¦|¾›ziD}ùûŽü´UÉÏé8n³ÙÌåËð€âønjË N ·Éd’x\¥cðAmä§£Í[4EÅ›Úö ´¬yÔÖ9’ÈOðBù!Í÷Ö¬PºH#¡¼¾"?mr]¥t´ýùï2õµÁ÷¢@øä[Ü8j#?mMç×E±6œîö-"k9›˜¯ ìƒÚÈO[•üä[Ü|üVŽâÈO[ùùp¾[ú`Ú6ÚûéòÓÆ¼‚â¢5 >“/Ü8Èj#?mMä—ÕÅØÄønUº.㯵IýÔ]_…ö~ú†ü´1/䟶6óKÏ{{€Ûþ´ýa•õ®BÝRÙµ‘Ÿ6®*”øùniu‡å¨SûÑÈÀù7š‰µ‘Ÿ¶¶ó+ÒuYa®'~ú‡}PùiãªRÈ!?m]å—×u9°ä˜oÙ-s-,OÆ©~~²j#?mt•U¯ë²ìorŠ/Ñê @o4ÔUº´çë{{]73·28Ðj#?míæ·;‡­ôß%;U7›äÏ©9î[î,ÙqZ û 6òÓæ¤«tù|m 3³‘ÝÔY¡Dû†ü´5™ßñ¬v&Øùâ-ïNÕ–#vë­¯£.Ä÷Ô'ä§Íɼ—·s›Ï§6®;#ðÄ¡u.û1¸ÂU¥pŠü´µ>žZ¬ë2ñºV½ër³É¾¸ ç·­hgm¹ùúƒ}Pùikµ«týzow/«Ý£‘Ý<=ÚÕ°Ü‹Íf³B¿—¾JìÔtÔ­Qô÷™ök:·åaÚ¿m`?–ÛÑoŸþÛ¨àbûä=2Í´¯ÓÑñ­Ôßþýû÷xï-miÏ×ßì¢B17›Íl2™Ø›7oê/ ƒ]E–QG¤~/YºeUæÛö< It•Â)òÓÖD~›M±Âh[¨mÎmeæÛwìƒÚÈO[•üä ·"pø‹ü´‘Ÿ>2ÔF~Úªä×àp fvwm/£{z¼²=¦ÈP»p»¼Ûü¶‰E©&ï$[h ?mä§ µ‘Ÿ¶*ùÑU §ÈOùé#Cmä§­J~ò…@_Èn\Q£ü´‘Ÿ>2ÔF~Ú¸ªrÈOùé#Cmä§®R€€Én4k#?mä§ µ‘Ÿ6ºJ!‡ü´‘Ÿ>2ÔF~Úè*˜|áF3±6òÓF~úÈPùi£«rÈOùé#Cmä§ÍɽJë˜Íf._@ŠÓÂm2™$W)ä¸O›6òÓF~úÈPùiã^¥C~ÚÈOj#?m\U 0ùÂ+j´‘Ÿ6òÓG†ÚÈOW•Bùi#?}d¨ü´ÑU 0ùÂfbmä§üô‘¡6òÓV%?§Ã4fbmä§-¤üN?³ž å­‡”a‘Ÿ6ºJ&ßâÆàƒÚÈO[Hùò6J )Ã>"?m À 9ä§üô‘¡6òÓ&w¯RÈÓ×sÎà”Áß¿½;ܽyóÆõ"p¬ìÅVnúÀË­ÊÍæB6™Lü,ÜʘÍf6™Lx=^×ãõ‚xM^×ãõx½Sä/Nè 7t•Â)òÓF~úÈPùi£« `n"(ÜDÈŸãд¸ˆ pAá ‚ @…€ˆÿ¹^€JÖ¯v÷b+33Ût~k—n—¥,íùúÁûÇ#»yz´«¡ÃEB5Ëg»~øI~Š–Ïvý°Û G7öôxeD("ñÈñSÇÒž¯¿ÙE:¯’5`ᶶׯ/ö~:·ÇKÛ|î_9è(Yÿ¶Ÿã©Ío·›æúõÞî¾¾Ú2Ô²~µû‡…™\/ ÊZ>ÛõƒÙt>çK¯œ¥=ß>ׯ÷vw÷lïhÀðÚòùÚ¶ß“Fv“x¦|M£×UºþaßW#»x»{üöÂF«_öÇéB¡”á•=Þ1ÃwïÍÈPÌÒžï¾Û§§©]/ JZÛë·…§|Ðë:|?|â«“€ËÛ¹ÍçÇË 5^áfffïí]¢ýi¿×®–u­ÿ4]ØÛó¿ /¬íõþÁlJ÷Œ¤ÝÅÏo×v}½ýy^º^(wiÇ+{¹{¶¥™­|·Õø#E¸´r5^WéŸ_»~àá;{ïhQЀõ«}}YÙxúH7©ˆå󽼟ڜO M»cèÍ?s{Ú®ÛôÙ>ÒÕ&ãòã¶Ýæ¿ëk[˜ÙxJr²*Ô4z-no/’ÍÂëßöÓÑ¢ ®í¹vód·wD¬í÷O3[<ìZkla+{¹£ÕFKìþåGÛÂþ#? ëW»øi7Ÿoív>·ùtl‹‡{{¥×IS…šF¯ÅÍÌ¢fÄË}Mº™þÛ^YúóæÉéo2´«Ç¹]íç\%½½°‘}OCcçØÀo~ÙÊÞÛ—TáýëݪÊÕ4z-nÃöi´Ún¤fÛ˜ó£ÄP´Î쎡ßl›hÖ¯ßlÁ—_o/lo!]þg ÛGz-4U¨iÿþÝt±lÍŠÆ8nrâãGÅŒ(äÑâ¦)~ e09‰c(ù)8 ²“;±\M#Z¸ôÏÿ"† îIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/eventfilter.png000066400000000000000000000217571465265754400215370ustar00rootroot00000000000000‰PNG  IHDR ën=E pHYsÄÄ•+ IDATxœíÝÁj"[Ûöñ+ßäí¾Yì„: š€çZèÄ#HÒph9x^ µñ„ÐО„$mÆ}¾-S˵j­»üÿ {—šÖÕ—ÕåíZ«Výýûw"€þëQ(€T Õÿuݰ`Ø©ª=˜nµ{Ýž—Ü6È …°­q_7W=R®4"]–ól>"ùÁÿF¨òí»¾–K¢À¡£P<3îßèª7šÞ¨4«6Ö·¬þ͕⇽ýûF´¯4jº¿=ßk±`ýýÅáaް­Ò¹n£HÑ}MAâîJ#RÑ›`JPÓ})ŠîÕ¨¯÷zúwè¬U€èQ£’Îo#»nFª’ÊçßTéµJ ~ uY¦êÃá¢P2µØÕÔîõýÓ¿úñs ÑH’Ujßuy^zó»’¤A[Õù8zEèReIÕÿ÷§£×9A ÊYü\ï½öô¹Žûýx|Òh”|Ñ@Apª³o_u^^îtkØÿW?ãöÏ~¿r¦o_?ëÏ÷Û¯7“µv8b¡«>9°QÛ8ÖI ¥N>Ye<Öðßú™lË<—sMcüÀû x„BÈѨw¥«Å{4è]éIÓ̤M¢4]ið¼zÜûíkK/ÏÉü×6F#Ú=''d¦NÞi4©­ÿ§Ú†…E%}> Ô‹2ø¥áeyö9ÖïÇ×W Î>ÏŠ„í2ØÌ‹žOœ¯ÿõ÷r<ªv+N’€UÌQ<0zü­ñ¬[þ>9F^i(Š¢Ùϥʪ“øPª4î§Ý7T‰ÿÌà§úãM_9P¥Ö˜ÏOŸ'ùòƒŸ}MŸj¬þćaPSã~úgîñÿ¿AûW+{m¿úÏ ÿÖkPÑ·ó’´÷ ’Æv^‡¤@gŸ×}Â/æT¯sæ©wÕÑp£÷ð…£Õ$0üõú!Ôô5(•õ%ñÁôøûí§äëk¿~(•/ouy^~Õ_*ëüÛŠ† ÿMt™ª}»Ó¥Rù\·K:?.Ùþé¼Iÿ~|-N*_¦¤;djÔÓUµªjõjá”É ö}}OÀB.}»Œ³,©ü5™I¢øŒaèÈÓÉñëÉ—Š4H;‘µñŸ§×£ž®ª½•¿7z~‘´Ôe>í…gÔxø[ÿþzÔÓ“–æ*¤¼np¦7_²K纽|¿ýë,äñôGc/ ;T¾”ß¶åÝ ¶ëï‚о}¿Ô›)Ks9YL¼ôI§zêðôg¬wŸð…p°†êÜ´5¹nÇLù‹*L{ Fú=ü”˜+PÑ—,ûå3X/( ÀÒ§ÄwÔw?ÜÖw½û?EBEµû¯ú\*©4쨺´dáÂ뎞õö»úPŽt¹Óâe}­ôF’Fzüùóuì¿öu>~ÿ± ²õ~.¯N?Q†À&æ(>üÒ0ùy_þò:aoÔÓÎp¡‡êwntóÑ™|ÁÉ´HÐRwúª×Õ@í›þk»Æ³ž‰MÚÿŽÒç³ù¸þë0È҄¬2ØFùkbòç@?ûÃùäÏÅI‘)="Ìp`[)§Å ÚU ´ýµJŸÏôâóñj_Å7Óóì/ïkzš½îhÐÖÕŠOè`ƒó¿ §õO•^W£žÚWK¿ºYû×7ê³Î‚Þâ)›oæD”÷–ÁîJ:ÿ^ÓcÜ–^[˱Hj÷¯g4¼—g>À7ô(¾)MÏ"¨K÷ÉÇïÕ¨U¼ù@•JMßÖžÒ7S¾Ô}£²x¶BPQ£–r:Fé\·Ñª× Tjj|-oÖþµ¦k*,ü±xí„å¶ì#ƒ}ˆÛR –þг\–×PØ) Gÿþ¸nð= …HE¡RQ(€T Cuª7o/°2îë¦ZUµZUµÚÑpÓÇ€k …a§ªjuÕB*Ó+¦6f˜iHí›Å«Ì­~ X²¶P(_FТĥ[cãßzš_¦ýøDÁlùÒµSv˜£pªÅ¥ËŸôg¼ÉcÀŠí–p~y^\¶vv9Õw[áîîîÝ—»¾¾Ö?ÿü££VK’4i6Ùf»°Û’tÔjyÓžCÙNfïC{Øf;«íØßëkmbƒ•‡êTê$¹ 鸯›«g}‹×%÷usõ¨³û[kÍc[¬¨zww§ëëkýgƒ‚lfÓBa‡¡‡åá„äpúǀÛ ¥Ï: FzŽg(¾®pK8€ü™)˜›?2wƒÜÝ w7ÈÝf ưòGæn»äî¹ûÏL¡òg¦P {*dî¹»Aîn»ÿÌ tOåÌÝ w7ÈÝ r÷Ÿwë(p­üá]×zð™»Aîn»äî?ï …4tOåÌÝ w7ÈÝ r÷Ÿ™BäÏL¡@÷TþÈÜ rwƒÜÝ wÿ™)èžÊ™»Aîn»äî?3…ÈŸ™Bî©ü‘¹äî¹»Aîþã2Ó(žpéÀÃåwQP“Ù¾þÐíé¢^“$.7mz™iï\¶6;hv»½…»ëõ&Å g6õØ×ãíI½I±€½bè©,f¾\$Ìï[îeð˜ÅÜ‹ÀRîËEBÒC·7ïi°ÀRî‡Ê»…´%œ™›?S™‡Í•E‚E¦r/rwƒÜýç]¡p½4fµp‡¡¤"s7ÈÝ rwƒÜýg¦P {*¦2[ªÏf}[g*÷±”ûQØšŸå°ì¢^35™ÑRî‡Ê»¡`kakz†CÊc@‘…-MVìï–ŠØ`¦Gî©ü™Ìjµœ·á·“|hÏ!lÔÑß¿'[ýÉaGÕ_Re0Ð@R¥é²<»¿­Ä¼„¡:ÕŸ:IÎaø€»»;]__ë?\ó6Í­Ÿlkrii|Üߥk+¥Ù®GaÜ×MûIµ¯—ºŒ"EŠíõÇš5,üî=mõ"‹v©†°2wƒÜÝ w7ÈÝÛ /Ï%‡Ê_TÑHÏó‰ËC ËCÇÌØü‘¹äî¹»AîþÛ®P8>Q ~ g·‡¿4PE_Ê’JŸu$І—g‚§<ð×v…Bé\·ŠíªªÕªªí'Õîã9 %ß6¤ùcRãö\;v(Ð=å™»Aîn»äî¿í\*_*Š.ÓÔe)íÑmÐ=•?2wƒÜÝ w7ÈÝf–pù3S(Ð=•?³™‡Í×ÿ‡öþfs7Îjî“Ù>> ›ómK¬æ~H¶_G!'¬£€ ›êv{ wÕë5ÖT@áÄEÁÃÒþ~Q¯±¦6’í: €V ’¦÷ü¦¼g¹H²`¦P {*¦2O),2•{XÊ}6S‹„‡nÏÔ„¥ÜÕög=d$íú͙̌»Aîn»äî?ï …ë¥1“´Âd¡¤2•yØšNZ,S¹ˆ¥Ü–.Röwk“-å~¨8ëÅ2›MÎWà¬Ѫ³¬ pkÓ³¼zv2;HÖëÍ7÷E“ľN‘€,0ô€Tæ3[&‹ó¹e5÷¸8°Z$XÍý˜)˜›?2wƒÜÝ w7ÈÝf …,Y®hi»´À¡03GaÒlî½òŒ˜½ù¶•ê6¶g‘yü¼¹¯{ r_´ª¸±–{’…Üójw–Çö$ ™K~¶ÝL¡ÅŽôðð:[8ÞÎê`±Oyµ=«ƒ¹¯Gî‹–Ûž¼ßZî’tqáÿi¼ye.elOÞϾ¾ƒzH{3¤Åo[>*jÛ}GÛÝ(bÛ}ÿwºmÏŽÏÇvïzÒVbÌ»¢òy‡zŶïýBsþŸÌ¹þG¼+ÚîÆ¾÷÷É÷÷÷Š3Ÿs·Üv_yW(¤-áœw·‹¯]T›ìä´]Ó…—öxºXQsxèéâ¢f²í’ß™¿÷µÏ¶OÂæÞN,ê¾³ÜvWrè²tÔj™˜‹°Šå¶#f …}V[ëþ!øüíJÊ·íû®pÉ}3ä¾(¯-Ÿ¿ÑÇö)ŸÛ~Ð×zðñ4”MÑöwìyè!FînXm{Ú‡àÞgúïqèaþœ9µ= V÷)ß¶oz­‡ƒ.P` €²(P|› 9ô€Í¹äî¹»Aîþ3S(Xé6*2wƒÜÝ w7ÈÝf `casñÿ@Mfûù„ý1S(Ð=•?“™‡Mu»½ùÏt®‚­¿‡ÉÜ Àbî“°©‡noþc±X°˜û¡a2#ŠcV$¬R¯×˜ÜˆB‰‹„eõ±‘ÂMfÖZS$E“V$H2Û³yW(ÜÝÝ-üÄèžÊ™»Aîn»äî?®õ€Tdî¹»Aîn»ÿ¼ëQ¶¶¦ó{e¦P {*æ2O)¬Md4—{AXÊý(lé"¥0¶6™ÑR³P<˹ 4X5iÑR‘·6=ëÁ»9 ÀÎÂ×zÀAˆ‹®õ€,1ô€Tdî¹»Aîn»ÿÌ ÌŒÍ™»Aîn»äî¿Ý††UÛƒévPÓýí¹J’4îëæª§‘$©¢Ft©òN/\ؾGaØQµ-5¢HQ)Š‹ÕÿÑÓicvCjßô5Þ±¡tOåÌÝ w7ÈÝ r÷ß–…ÂXýŸU+z Æ¿õ8 tr<»}|¢`ô¬—)Ñ=å™»Aîn»äî¿í …Y1ðô³ªjuúÓ&áTŸJÉÛOú³k—ÈÝv…Â˳F’ξÇà  Ú Í•>étÍS-_Ûa“k=°Ív‘·ãÛ¾´çP¶“ÙûжÙÎjû£¶[pi>?!zª3½C—Ç}Ý\=ë[üظ¯›«GÝßê¼´öYWbÁ%l…up@XGÛÈö2ÓÇ' Þ '$æ%¼yly(X°]¡Pú¬³`¤ÇßÓj`Üÿ©A\ Ì{Žg/¾`¯¼›£fÒlRyæÌ\æaëõ”HÃÌå^Ör? [óS"—ï·ÄZî‡h»ËLçˆËLc+\f„ËLcÙ^f3…3cóGæn»äî¹ûÏL¡ÀVþÈÜ rwƒÜÝ wÿ™)@þÌ tOåÌÝ w7ÈÝ r÷Ÿ™Bî©ü‘¹äî¹»Aîþón®õ€?¼ëQàZþ s7ÈÝ rwƒÜýç]¡†î©ü‘¹äî¹»Aîþ3S(€ü™)èžÊ™»Aîn»äî?3…ÝSù#s7ÈÝ rwƒÜýg¦Pù3S(Ð=•?2wƒÜÝ w7ÈÝ\fÅ.x¸ü. j²¼¯K\nÛô2ÓÞ-¸ì$lªÛí-ÜU¯7)P8“°©‡¥}]’&õ&ÅöŠ¡¤2—ùŠ"AÒô¾ß¼|e.÷‚ w7ÈÝf fÆæÏTæ)E‚E¦r/K¹§õ&HÒC··rHÂW–r?TÞ =p­üá]×zð™»Aîn»äî?ï …4tOåÏTæaKõzÍu+öÂTîb)÷£°¥‹”ýý¢^35™ÑRî‡Ê»¡`kakz†ƒ4Ÿ¯0/ 8M…-MfûûC·7/, °ÁL¡0i6©£ß¶€u–ö÷‡nÏlÏüe¦P {*¦2O),2•{XÊ}6ß 1kÅ‚¥ÜÕÎzد´ë;036dî¹»Aîn»ÿ¼+®—ÆLÒ =†ÊTæak:i±Lå^ EÉÝÚ„Æ¢ä^df º§òg.ó”bÁÚYær/K¹…-]Ôkº(@ql)÷CåÝа“°¥z½ùæ> hâ^ƒÉÒþn©76˜éQ {*f3”aËd‘`6wã¬æGaËd‘`5÷Cb¦P {*dî¹»Aîn»ÿÌ fæ(LšÍL*ÏI3\¸}Ô Wþžo–Û-í¿íye.‘ûâk°¯/Ë£íäþ¹»á[ÛÍ ûÞ‘â7âáá–îÿ¯ó7å=“fø¦ÝÓû÷Ûö¬þñæÑö,-÷Ió¿³× ÷þzû”Öö}·;ÏÜ}Ï\²›»õc»ä_ÛzèaÕAÿááV~k´À÷¶§}ÐZPĶ[øû¬k»ÏûºDÛ]¢íûe¦PØçÌØ"ô³y­üf#»þ‡°‹}·YànûTÞÇGŽíS>·Ý»¡_®õ`õCKÚgÛCMr>vî­íÞ?‹¹O‹œÿæóbØï¿ÓýæþÞA¯mo†šìïÙÞåsîï±|lwÅ»BÁ—k=ø:–µÉNNÛ5½¬ôÏ)_×ö‹ ¿Ç>‹ÚvÉß}]šŽ+¯+öÙöIØÜë y¶}ŸŠ~|tå ‡ŽZ¡..V‹òýÀ™gÛ÷Ý[ÔÜ÷.p7ÈݼŽí¾ó¹íGÿþͳÇêÃîîît}}­ÿdгœa¿A>X%Ñöwì¹GAZ¬ø­å^„¶Çßp-·]ʦ(Þw‚T¬Üiûj—zðÓx7ô§8x×§žlƒ¶ç/ÙVÚžŸäþ’¼mÁrÛ“÷ù®H¹ÓöݘéQøçŸXê3gY-„’‹ zòb:wÃ,çžEB^,çnݦ= fæ(°#åÌÝ w7ÈÝ r÷Ÿ™Bø°Éi8öwdÄL¡ÀŒäü™Ì´‡m¶³Úþ¨\šNj|ªÝë6žÉ8îëæêYßâ Œã¾n®u–œìø,¸„­°Žë(`9\fzE‘0·<Ô°<,زPXS$”>ë,é9ž½øò¬ÑÂü…íìÒm‚í¹äî¹»AîþÛn…á¯é ½+U{¯w³Âáü¶¡Nµªª¤é: ³ù ;`flþÈÜ rwƒÜÝ wÿmW(”/E—ë~A—Q¤u¿ügf gº§òGæn»äî¹ûÏL¡@÷TþÈÜ rwƒÜÝ wÿq™iOØ\ú?"Ó$l¾Ùæ4Iì›™BaÒlRyæÌdæaSÝnoá®zÝÖš &s/k¹O¦–öuIšÔm­©`-÷CÄÐR™Ë|E‘ iz_hgÔ\îa)÷´"Á"K¹*3…°VJ‘š‡noaHØ•w…Â&×z@>ÈÜ rwƒÜÝ wÿy7Gáziíé¸X {*dî¹»Aîn»ÿ¼ëQ¶¶T¯×\·ÈÅQØÒEÊþ~Q¯™šÌÿ™)èžÊŸ¹ÌgÅB\0ÄÛõzÍÜYÈŸµÜãb!.âmkE‚µÜÑŽ—™Î—™ÆV¸Ì4—™Æ6r¸Ì4(:3…ÝSù#s7ÈÝ rwƒÜýg¦P`flþÈÜ rwƒÜÝ wÿ™)@þÌ tOåÌÝ w7ÈÝ r÷Ÿ™Bî©ü‘¹äî¹»AîþóneÆ;NƒÀÞõ(\__/üÄèžÊ™»Aîn»äî?ï …4tOåÌÝ w7ÈÝ r÷Ÿ™BäÏL¡@÷TþÈÜ rwƒÜÝ wÿ™)èžÊ™»Aîn»äî?3…ÈŸ™Bî©ü‘¹äî¹»Aîþã2Ó(žpéÀÃåwQ`“ÄþÎ¥¦ñ›^fÚ»—€„Mu»½…»êõ&Å '.ûû¤Þ¤XÀÞ1ô€Tæ2_Q$HšÞ·ÜËà1s¹„ÅÜ–ö÷‡no¡‡Á‹¹3…3cóg*ó”"Á"S¹ˆ¥Ü'aóM‘³V,XÊýPy7ôÀµð‡w= \ëÁdî¹»Aîn»ÿ¼+ÒÐ=•?S™‡-Õë5×­Ø S¹ˆ¥Ü–.Rö÷‹zÍÔ„FK¹*3…ð®”b¡^¯qÖ i¹X°V$Àïæ(¤™4›Tž93™yØšž¹tŸ%&s/k¹ÇÁ¤n{k¹"\àmºàC •™B™±ù#s7ÈÝ rwƒÜý—ÍÐø¯›«žF’¤ŠÑ¥Ê[>CìŸÃ¡‡±ú?z:mDŠ¢HQCjßô5Þÿ €Œí¿PÿÖã(ÐÉñìöñ‰‚ѳ^v|Zº§òGæn»äî¹û/£9 §úTJÞ~ÒŸ»8}&dî¹»Aîn»ÿö¿ŽÂËólnÂLé“N×üú{×v¸Þp ìßþ …ãz~½=þ£'I')¿¾i!î'ÎÀ¯•IDATÚ.ða­Ì8j(χ–‡"¶“UïB|f…µçÎúùi»›ç§íù?wÖÏOÛݨéþv¶Ì<¹gg![Ž3ÙªSý©“dÆÒúœ×<æqÂXý=6"EQ¤¨!µoú»nVÑŒÿè©Ò˜fEº¯I½qμ™÷uÓ,ßIîYvTmKÙ>ÅE¹gh¨ÎÕk¶÷5©wÕÑP¹ï×°SUuáË_l]Îëß …ño=ŽÄ—<>Q0zÖËÚ?„+ëöòµv/}:•âœy26TçêQg÷ U’w“{†Æêÿ¨ÒXñ•Ü3öšméó™‚ønrß«òe¤(Z:¦Hës~ç=ð·P$êÓÂe'Ÿô‡23Sã?OÒÂeÁy²1Vÿ¦-5–ºçÈ=³âÓϪªÕéOg˜ürÏFY_*£y/Âø÷£F•/‰bÜó±.çôÇü£ðò<+™)}Ò©£¦Œq_?z#U·Ó®XÞƒÌ ;Wê6­ˆ%÷ì̲­}t[Òl¢£/Ñ¥Êäž©ò—éwÜ_Õª’*ÙÎOîùX—ó;ï¿= Ç'¯]SÒt,ÝQSÃt Qµ{ÍG"x22ÖŸ'Iƒöì[m[Ô»š}»%÷Œ%¾9•¿¨¢~‘{¶Æ}Ý´ŸTûz©Ë(RÔ¨hоQ,rÏ˺œßyü-$½í~ZîÁ~LÏ|xªÝëöM?8ïÁþ•t~Í'NÇÕî£×"ܳq|¢àM¶‰±YrÏÆË³Fo ´‘žçÈ=ërNÌßB¡ôYgAbGzyÖhaìû±¦Hà=pƒÜ³3Ëöñ÷l®wÿ§ñ‘ܳs|¢ ¤á/ TÑ—²È=/ër~ç=ðüê‘Ésü9·6ÉóÉ‚yáÀ{½Uç<“{v’Ù.ÏOîÙY8Ö{V†ªéÉuBÖæœþ˜ç…péçŠO“Çh…óIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/image.png000066400000000000000000001606001465265754400202610ustar00rootroot00000000000000‰PNG  IHDRF@Yl³ì pHYsÄÄ•+ IDATxœìyx$Gyÿ?-í®Ã‘`À²ÚCÌaHÐÂf“áHâ€1‡¼c/Fà†€ÁH¶›ËÛ Ù•›Ã`.aËÖZÜG¸6V&s…Cì®L°Y~€WÒôï™j½óÎ[Õ=:ö¬ïóôÓ5ÕÝUoW}§ÞoÝìÛ·/%""""""""‚¶ƒm@DDDDDDDÄ¡‚(Œ""""""""êˆÂ("""""""¢ŽUÛ€ˆˆ˜©08Y —z†êî8¸EDDD¥ˆÂ(be13Aß(ÓžÃåqz»¤ARè4¡T¢¼å<6wuåODDDÄ¡…8•q 1=Íä`}ýÌ,sÒ3ýT*•Ú62µÌ©GDDDùˆÂ(beÑÑÍÐø8ãÃ=”Dty`œññ#s´¨ ¥†ÇÇf §´?=Êö¨]"""")DaqÀÐAW÷Ê"frgTF‡â£ˆC3Lô÷1:]ûUêæ¼uÛÙ:6Éô4@‰òÀyôvuÀÌ#[™tç–ÃN3#lݱ›ééi‘~‰R©“M[6ÓÝÕ¸ªgfj‚íc£Yzµs§É./0.‡µf¦˜Ø>ÆŽÉé…uS¥åMçÑ[hÁôZÖ—À»èÊÂÌ SÛ·2&ó¤D©¼‰-›»©ÝRc09H%[çTf`¼—£a€."""b)ˆÂ(âÃôh}1Lö±»\bzAÁÔŽLÒ¿~á)®[÷L2Ýx 0Íôô4Óƒ“ì‘‹½§FèkZ!=m\_‡o!ùô4“Ó}LîQ"ÊÄ­ì ”Ö¯ Ÿî]¼>Íôä4ƒ“;è">ı<ˆSi‡ ´(Êâw싘K”{êkzÆ@.ë™s ž§‘¢¨¼pͰ¼ Ã#B ”†³ô³©±É1&‚«©g˜d!×›6„Í [ò,e63e:ÍhßStÐ=¤l/Ôlg<ŽEDDDBF‡¤hÐ(¥†kŽ~ \2¯íꢷ»ká1øŽ.º·”›OœÚ)J™Þ®ð£óòüR›Ý”\G…HÙ±ËPFÓ£ôU*T*} ð—zÎ ôLmSce¶d6vеY.fŸ$.UŠˆˆˆXÄ©´ˆCë×f`æ£nn«sNtmìsi†™©]lß¹ƒÝ»QkÄY{w/ü(­'gB«ñüéQú*£æyÓ{n…œ·•Je¶œ×KWÎôWÐÆŽut²°Ti÷ÞrŒˆˆˆˆÈEFG¦é´õÒÁD©‡á¡îø2LjˆˆˆÃQE1˜™¢¨LÏðf6ttÐ15BE-²îX'Æ[¦÷7ÎÓpþ:­ØØ¹.Ê®ˆˆˆˆå@\cqd¢´¾&ŠPSRk×7¬ÑËVMϰK>6æÐµqa‘õô([G¦ÞZ=33ÅÄH?ýáÕ×­¡k³Xc5ÉØ„ËS/â.³ÑZY=¹“©å~µvDDDÄŽ8b±²ð9Xa’åýVZã‹Píän¶”G³ÅÐÓ£}„N‡.z‡{Ø]¿—éÉAúŒo¡•zc¹×HºÏëa‡Ëst¾&Kô /¥T¢\îaKðñûEÀåY.5Þ%Jåô;Œ:ºî¡é¡=ý;""""ÂD²oß¾ô`q(aj¤’$•z^qä#ŽE½˜¡¿¤aÎÌÔHû†â¢æˆˆˆˆ£ qQÄQéi¹§¥òÀ²­Šˆˆˆˆ8<…QÄÑ‹µë)—JìžžnX^*•ÍÎFDDDDùˆkŒ""""""""êˆkŒ""""Ž:L1RéÏùèqDÄщ8•qaá©ËËúÚ­ˆˆ#qÄ("""â(BWï8ããØo÷ŠˆˆˆÂ("""""""¢ŽÃj*mÛ¶mœ{î¹ {…÷œ7s!ri0{½¹¯ã–ú»È9¯ã.á5…ì[Ì9R’EŸç‹{=oâ¼®Ðu­/jG(¾È9oæB.à²àµye~0ù–6ÔC‘kò⋜s!oæ2.^›W/úøk¹”KxM¡ºo•/‹åW+<¸Œ×p!—æœs¡÷˜Ãûö±mÛ¶à9çž{nn:Í8¬„‘Ã~Öxõó6öñ²÷9½/zÌJÓÅù® åñf^MÂ\a»ó⊠¨¨°œ‰/îR.$¥ê=·Hú¾<ŠÚQ$O_À+2ù$‘W­„óöyyX<«‰ìj¡´—“okrJ®±’’ð€¹`Ýûö¾<[¹¾Õ8ë·kŸB¨h'¢ø‰ˆX a45Beá u³”7Ä„„Q¨1/ê|´ Ñá"=l}n(K@…Ž ·‚VPhßJ¸HúrÓq¡¼­½/ÎúÝ ŠŠn•o:¬Óô¥Ýjº­ˆø!a´\|sû?Šˆ£_}y„Î Ý—eCȾˆˆˆ‹•FS#Ta`||Ù¾ìFïá%¼„+Ö“Ï™ø6™¦„åtÚD½MõÞušç³•môv`Ë-Œ–Ã¥$¼’!yUÃñªXÖf9}®ÕŠÏ>ë>Ba‡÷ð^Ì»½åE!žùâC\KI2î¤$f~ç^Í ƒ¼Š¶úè]ˆï–íy<óq®¨0òqO‡ûa}AÎY|åkå§yçËCLJìwûws6/áJÓ6ËÆˆˆˆF3LŒMRX>Qp'ÇvƒüÞÏ~ÂNª䜉Üëc2ö¥ÊóœCÂ\е*ޤsµPT uH) —s>Uª qmT3g#í 9Ç”$sV‹ÝdzÖýùÊæy\Íʵq‘·…xâltá¼´Û¨òV^Ióf:œÇµ¢|8¦^r­ +.%á]¼”´>•æÛ4Oª´‘fñ² uþ­ðÍ'˜tœ¾×>…ÊÅ÷].È$ÓWatFñ#"Ž$¬ìSi3»Ø1]b÷X…J¥¶LùOß¶m[psø Ïg?kØÏ®æføý¼YV3Ëj®âEYø½¼8 _ÉK™cs¬â]œ“…Gècžvæiçí¼‚*mÌÓίÌÌ·pA¾D,l½ˆ‹³ðë¸$k"/à-™z%C´3OUÎgk=§yú©[0Ç9¼+ ŸÍ»³ð‹yoÝúY^ÄU¬f–5ìç,>P¿óý¼€«Íðóù Çpgðœòþ,ü"®b ûYÍlC¾/åÊ&;ýî^Îg+mTi£Ê«x[våò:.ÉÊêb.ʜ¥¼6 Ërvå?O;[9ŸyÚ³úÒõ8ËjÞÍÙYXÖ»ãÃ~ÖðÎòréNŽa?k óÍ…¯âEYXæëì ñÍÝW•6ÞÆ«ê¥ÖÆ[¸ +“Kx]æ<ßR^Ë¥ |ÓåïêÅÇ·ÕÌf|suíêÝñ¡(ߞσç¬f–³ø@Sú2_Íÿsxí̳Š9“oíÌ7ðíBÞÜÄ·„4+7Yž®œ]™;¾UiËêežö¬¾\=βš9VñnÎnjgŠðÍ…‹ ýÅ¢ö¸¾Ø¢(ŠˆhÀÊ~dj„Êànz†‡èî@L«õ.jÉ=•öÂc¿ØÔKu¿¯c [¸6‹³zÀy£@ú·ÞûÂíõ^y‘s­t]ž/æ½¼Ÿ4Ùfmò>e9øF7B½÷¼o¨7íâœ#IIx9ï̦>ôq¹éë|q¡sõuE‹v4º|®çt*\o–i^ù[#4·Šr¦(§$ø¦·Á‹wEG4-žé²9빞JK|³¸&ëö\ÍUœeŽ 剎›§½¥ë€†ãEùæîíZÎ` ×6•,›Ñ¯]üý¾Û²ö0""byq_w²ÎuGº6RfS½t-anm–ÕMq®aîæ†l*Í'†,§åâ«´58 ™¶Þ»äoé |yhi _ÍóH”sóÙîHÒÎ,'åörº@;vÇœèr6¤$¼“—!§Òt™Ès¥=>ÁåsbEÄRa¤EÀ3ø8³F¹…„ûÝŠre§9%óhSe©í±¶6ª™(**¾tx±|[m”œOY¿u=~ˆ3I™kªg›G?çzvq<=l2l“6XùZüÒüƒf‘”Ç9×>é¼}vEb˜¡ïf†ºW`Œ­þRy`œ^Ÿ,rNÄ’±²ÂhízJì`ï ,|¨¼ÄúµKKV/¾^ª“ÒÎÁç˜|éû•>×7ºI:¬ï!ä¬ò„‘ÏI¹°@>Ñ!Ã<톓j´Ô²Ù²Ãe²œ”/Îrby"I—|õDRìÈr³Òt4do!Î…F/—"Æõâk‹×t]éºwå$÷Íéwr: Jµém“%j$Ÿ5[½Ì㚌³Ê)â`aŠ‘Ê뇇èî˜a¢¿Ñé2»©Œ2™»6K¦Q ¿ÁÝô ‡Ïíêe|x=ý}#L-ræ%"++Œ:6°©4ÊŽ]3tww031Æ$ ,Ql;ad5È_ä$Nâ ^'a9= a #¹ù„„¶Åjµ3rÎÊ­9j£ÊsåZ¶4Ùf9®ÃÒöHX ´¼'í¬¬²O 9'þbÞ˜ݞ%<-ä‰/í \œI–³ 9+í¼¿Ìßów|É[¦>¡E®ÎMšs:MWfÒFYÞ×$W^Î;¹’—4p®¨0/*ެýöq;¹‚óA:éR~ÀIü–—°gFºîOçz®áY¢Îÿ›«ùOîÇ=¹–ðgœÁùÜ‹”ÝŒq#÷á þFÙÛ ×|œó‰$y½»YbŸç)œÄÌvÊ‹8Xè¢wÜÉŽº‡ÆéfŠ‘Ê Ó”Ù2>NoKi„131Ædy ãE|cG7[ÊÆ&6Óµ#W+=•ÖA÷Ð{*}TFJô /]åê©4Ù ?‘¯0K¸çn é¬\ØÁr º§¯Cò·F.<Æé´×ŸJóÙÛjOÞ‚OàY½^Ÿ@q÷ïÂòþßÇ ™§Ú”¾OhêüeÞ¾#é°dïÞšv+*Žä¾Ì×›&„,! Gó4g|Â[sÎ]«¯w#’sR„Zœ“ù^ÉKø¥…‘Œ·8Wt¤RÛ³šÕl¡‹v¦â¼“?p9{9…'p:³ e]åL°£þ¢fœD7Û9•*s‚kUnãZÉûÙDÊ¿ñB¾Â×8•'¨ºqe(íóñ^óNrJsM rŸ°rÛ“ø2³¾éðÑÚHÍŽMà SWS#TÆÖ/ÓStõžNFGké•z\^¾£2»÷®gg¥Â 1’ïê(0Þ‹H#”× »v@ÏyÎ3ÖóC§¿°^·ksc[w1ÓίÀ£.z ©ëâ #Ÿ³òMMIg%{æÒ è8×ÐZŽJÃ笴ÒŽË×7µ„ÞJ£ÐT† »²™§½!=hž ±”¶/䤴ã #«w/m×öùÄQ!®éº‘uçx渣Gƒ\z2¢<“×øŽ ;ÞåqÍâ]H9ÔÖ­â J|ÝLð;>ÅCùF]jºº¨ÕÍjNã‰T ÎÕêsÎàZ•„ãx÷£yª¬§ÌøeSíú<мó¹'Òœ VØ'Œò¸¦í:…ѱ÷86x|ßûŒØ6l*1ºcAL휤´iØN¼Øéû×äL3ºg ãã½uñ±•‰ zêËS#Œ±ÞñîŸ63AÃ4Ø##9yÍLÐß·©î^ºfv±cº“-Yžt C['60Ô}+#õuE™]ØÄVvÍt˜¦‹h‡í'AtOÙíwñXË¿75âÖètVµ†µ6­“k’¢HŸ+áEzAÛµ™ø§˜"I;+ËaɼuY=SÙ8‡¦2´(IH³óuz )ÏãC\ÅYYœO…zñ–Àñ‰!/{ñºG/Ãî>CÂèFºø+nl²SÞƒoDÑ"škR ¹rÓ‚Ëâ›´ÑR2übÞËx~“·¹ä\H\FnQÊq\Ì8•»°»³º>Z$9g‰_)À«´q2Ÿã<]ð®Z=5fÁÝY ̰ T]mj;‹ˆð<‘¤G‘|œ“iîä¯y,ÿî­Ëøµ _cr$>¡Öѽ…òèX]L±s²Ä¦aK ñÒJôl®+¦®”™dÏ­à†éêeÈ#°®ë¢·@¿›FäÕ±ŽN·þöÖ=L—7ª™”ºÏëaGßv&ØÍdy€ÆY¹ÖuN³3dkÄ¢qX £YV{…Ñ_ò­¦WÀéÆÝ5¶zÊL7œ²1µD‘Û´CðõªCNS  OqJÃïV§:¤ Ú®0ÒŽA†e¯Ø¥ãÖÉô¤ãÿ0Ïe®n›Er³ÏËI9[æX•…}S>‡%ó”es"71‹1¾U·Vi1äêLÞ{Õ†2u èˆ‘o»Š³hc®0²8g9û-ä°:›.»‹9†ÍÜιü1ÿÁ=ŒúÝϵ|ßgQOæ$>Ï?2_ŸJ«ååþóuatÿMM(ÕÄ ûG)-¾Y-†tØq-Ĺ”„¿âFæh~£¶¶¥(1dA˃Œíš¡{ÝN&K›0uѲ`-ëK°§ÕË:ºØCe°‚›L[–§Æ:º9¯§Ÿ¾ÑN ®UŠX–ÂhN™­{ƒV#n #¹—×ÎÓÞä¤\C¦TžÃréæMUXÎÊ×£_J/^BŠ9‚âö²q×bH–‡ƒ‘@îÝtˆeOhÓ‚(oªC‹'¶ %Œ¬º”\‘õ«’¬/É5]F. wN®-†orÓë¬8ë>|\³ø¶Š9`?áVÌ ¼»“ðS.ãá¼^q®Ê*zx g`O—΋2[(¯´A~Àn¾Æƒ9WtBb(sEGŒ¬©ÛЫ%òøÖŠ0:е±ÌàØ.&:}Óh°ø©4‰[Ùã¹>ßÈÞÚÔ§äFØ8¾q‘‰Õ13ÁÖÑNÊåIG62ŸÏ?`8¤…‘&–pkŒtcœòÊ ÜÒà¬dƒ®{ìÚѹßÚIù¦^ò”•¾lzÔèd>Ç—ø»&‘V¾ž¼¼G Ý(ûœ‚C®L¤`”é¸sœ gp-âÌ Üñ¡'%Å [£GÚa¹úÔ½wY.ÿŃy?j*G«.åo½ÈZ–‹K[ò̉qi »rÕ|ÓBÁ·½€«ùÏ Š$ŸXjEi¾­æw|ˆiÞB?d8†K8–‡ð]Úx(o0¸f‰q—öø:_äﳸ”*ðk>Èõ|€ãèá)<²~¤f‡U—eߴضD’Å9yOßåœÀ-MœÓœˆèÚHyp°¶øÙûØÖb§Ò¦v2I™Võ‡~·ÑÚõ”JPø­4k×SÚ½—º„è›abë(ãôvm„Ê #¥¸›aïîë7·hkD!ÒÂH;¡$GŒ´ðx?ʦҴxp=p7­¡’5J$”k¨eìÍ'ˆòzòmTùç=rŽk9„‘Ûçõ–ã–÷çòÑ£Dî*€kxV6•–çDC¶I1H¡Ñ#¶°½Ò†ðSæ„m¡z•{Ç-É9툵ãל³î_óLÂâmTùg"§Ò´(Ò¼²âtXß·Î` gñÎÒz)¦Ü›ÿâ8ä7Ï,ad-èÿ:ål䨊{ë=yOàɬ¢JsTëœ[Ës¸?s¤õ+l¾ér-Â7ßèd‘§Ö\—ˆKFG—têbc&Ñëp–ÓŒöU DÏðPëytm¤sÐ=y½NGÓ#šR×G¿:ݺ¢.zÊT+àF¾fv±ƒMœ×­iaäCHùœ•^\í®“=vö&èÑ"¯²É'¬^ºÛ¯ª?ºï›ê #KxH»-A$µÅåâÊF®Ñ’ŽÞ§í’éúl󗘑¯¯—1*"ŒŠÖ­Fç,adYºïBœóqÍ·®(kybÜTZ~ÝJa$¸æœã—³'E.¾¶_) ë̇M¡nŒ%ŒB£”2}™¯¬Ó(Œ4fØ»Ê[Vb*©´ðɪ‘ÿÉk™†N¯ñ=I6Aßö)º{»0G¿äT0µ}¼ÓŠKÅÊ~Dv…0—}R²yûÆ«²Æ)´é†ÍÚŠ:©PcržÖö$¾Ú`©tfîƒ­ÖæŽÉÑ¿}Ç|çå—¢ÿqï-\×$Ü,AäH²l}#=!gå6ÇÉ y—Ö1·ßCgoò\ù;wE¶¢\³„€ÜÎä#A¾Y<óñ«(€\æqXsìoØ¡ø¦eLþ4Ÿ…¥ˆq‹o÷ÜöhrFn!{òÚš#3»Ø1]fã¼Ä¦£{ åÉ1&f œ<3ÁØd™-ñ9ýÃa9bd½ÇÈm÷ã̽[9êázëîZÙóM©M…¸!}}}^#•×s×=vé¾Á&ÚëS®¹t½w=Õ¡ïs±#FzÄBO¸2qiºó]¼;&G’¶s*³,Œå $Ýcö¹?KÔ:§âÂ2Þ7­f ^Ù“8ŽÛ^ðh‰y_²^ª4>QæÂ’kòZwެ Ç;i[×Fy6mÌæòn•àœk2œ7b¤¿•–':d½8ιûØEs,¬ÝJ¹'çÑÅ,ó̲0Jé=Êã\³Ìj@n/¹æÂ¾Î–äÚZf²<úÚ‘£Nøä`jû(Óå#üó]ôì¤ÒWaOÁo¥ÙåqpqX £9V54pV3#µƒk(çYxêLOeøDB¨çjÈòû~ù#H>1%7-Œ¤³’¶èX;m)€ô½9Ñc9÷3ÒqÒ.µ×ŽÔrª>'fõìõu:M}ßšGúþœ²Ä¶KG–«ä—Ûk$9lqÍâ\ž—<Éã›ÞV|ž0ZU_GdñMsMrSî¥`´¸æŽIþ扡çBB)Ä7Ï,ÎÉ6ƪß(ŒÑÕ;ÎøÊ¤ÜÂtÙ€š.[ô9KÆa9•º¾ã½ÓÖzßf9ãÅ8*ö9,í€þš-‰$ßôV‘i0ßù– M›éûHH9• ÓAiG¥G–PjU$Y=zÍ·ý/÷òòÈš Åûx¦íÉè¢\“œ;ƒkMîGŠð X4}|{ ßòŠ<Í=K€‡x—ǵ"|+«_r?/òÚ$¹EDD¬Ë#Ù0h§{,ÿKÕ$°0šázäV½ˆ“‚pÏÎDÚÖж‹.¬§ˆòzñÚQ„„ˆ´ßÝ»åxeïZöÎ]yÊrÕNê<ý[–â¨,'•×£÷M¥Yõìò¾¿¥*ì’÷áîß]cÕ³‹wǤcÓv»óCB(4šàGcœNRŸÀ)ævÃbI +Kü™@’vËÿœäœ¶_Þ¿Ëû&Nd®v\”åkm:] ]¶>žÉßZÔæm’k÷âWTt¥-¡:ŽˆˆXy–ÂÈ­?p°e׸èx'~ÚXXËákC›ÌÇjÈtcì³W:+ípB#2¾c>çàòµl—‚P–LE:#-Œ\Þ>'¥ëAÛåƒÏiI¡Í:W¦%ósaíd¥èñÕ«Û$ßt^²ìC\³xæã]¨Ì­­UqÔŠ0²ÊÑâœUßZ¹°õ?±„Å3‹wÖZÆ[íƒOùøçâHj¥ž#"",Ka䜗Õèÿ–?æîü¦)ÞDΙ[½B×€‡¯¼Ì'B*!¥‹ùlÉiå #··‘%>ÜÞ•…+7餴Ýz{:Ÿb;§z§†¯LÃ¥f‹£kEÝɱ†;½|ËFRI¾Éò]Œ *Ê=€-\ÇÇyF!þi¡a‰rK˜è eo!¤ãB‚DîuÝÈò²ÂºÇ¾$Ÿã’qVžú> qŒ»^rN‹"Kû6}yÈ+[ŸhXŽÍšZ•¿-û¥øqçè²Ò›"\+Ê©"Ðu!ã|ܱDwž`²òˆˆˆ8x8,o9·?p—–œŽ Ë8ßyÖ9E—FH@<š›ÎYŒ£jõ\=…²X‡$·SøL!GUÔ‘Yõâ«ý;Ä™Ð9óÆ ÷ŠŽüÙôýéû,‚Pù%¤œ&vÖ\[ Ç,‘®¹ak•gn;ï7¥-ï©(4òê¦h=áÕï¸Û²p(""båpHùà†„´©‘Xø©4Ù`ý÷i8¯“ŸgÇB Ìs1 ’¯i“Çåy7q"Iýåx.þþìή¹ãš®ó9%™‡…”…é!Ë+ÍPžŸádö·\bù°…å òŽqr UtéiÞYœùÇ5\s¦ Û¶Üg3‰¨‰PÝ%¤ü?k¸þ¸w¿>âããœN'ÄA€ïóì kò:WèÿfÙ:–wÜ:ÏÇ5€?â÷Þc+Ɉˆˆâ8¬GŒòzR¡†f7÷/Ü­tC•çhJuçpþ§éÜPzÖ¹y}RëúVî¥èù!,¦n}NGÆùòX®ßwp¬÷^B¶äÝÿRy˜Ç—„”ñã¦ãÇñ«&^†„••_H¨XµÎÉûŸX×åÅ%\,þå‰ÜPý[|*ÚÎEDD,/ É¢ IDATKaÂ~Žijpœ£:ŽÛ¹/ÿÝp~^/m)â)Ô‡ŽÈÍÙñò“,þVþ4 ß‹ÿmHËrTyΪ(òœ/ͧòÙ–òÉC‘Þ»ï˜Ï …Ò¨ý.ž§þ}nãx~ Ô„x‘kV¶·|ÍÖ1ÃÚ¦øëõ a᥃¡üCiúìHH)ñ3¦y?â/xßõrPßgä•­Å3ù;OT„„ˆ<ÞȽª÷\׬O¶X|+ÂÅVP¤>õÞw¾õÛ⚃|é§+»ÅÞGDDÄòàF¾7_Ka ¢ßsWîÆos•<þ=ƉܔÛÀ-Fi„D »<ü“ÖßÞ"ßž|;Çqþ‡c¹ƒ;ø“ç NÊÙ²£ÈÛ¡CoŠöm§ðn »)OŸÓµPTx?2>¥ùëì²|]>³¬aµzÛë:ø¾9²ßºWëÞ}•íiŒóqžQ¨|_z;ïg£©¾ÿQQ^¯.ŠðMÆíÇݸ¿màN¹}DDÄÁÃa9•úØåÝùMç1äùÚ™=X¬Yð½Å–Ö›¿ra}ηøËìZßg´³ÒÇtï;´ùΑñ¾´}N à“8Çá ›Œ}Ü“{ñ+~ͽ¸¿hp6²!³„QÈ û•å t£ìö¾M:©.nÌ®•ñZ”És|ŽSÛéëQkQ³X§$ãžÁ'¹žJÓýëò± E¨¾'Ÿ8JI²p•¶†x)Ntz)µi WÖξßð'ÜßmÑ<ò ¶‡ò=¾Ï Ùõ!ñmqm±B| ×±S3žøœ¬éqå¡ó•¢Ü•·eŸã¶/$Öæi÷rðDnfŠÇ4]–@²8à kž9žÈ{vaÍ7™ŸÛÿŠãêkízÈp+€™ ú'’ˆì {hœn¦© 2M™-ããôJ°‹Þqçõ›ŽL#Ïü1&Ë[ï(prG7[ÊÆ&6ÓÕݱû‡•µ5çøÌ^v—¯+²™‰~ú¶N°a¨mÎa;bäë…Çí PèæÖaŠ M`‘¤ƒ EÖèŠv$ßâ/½bdžvö°€ã¹Ý;²£{ãÖÈ“>ß /¦Ç>Á3½¿.' Ÿ²ÄDH$ùê]öä­‘%¹Ýƒ}¹£N’GÖ1™äåRĸFˆs×ð¬&îY#Fš_š?ò¼—äˆQ蜼ÑH'ÿ>1H!„8çã—o!žÏ/sù”ßê-©6Ð0%25²Ì£SŒôí`Óðe#ïJe'Ê”zÖ³³iô¡Ÿ‰‰‘lbÁNkÄÈ—Ù´Q¶L©4ByͰkôlîj´»)ý…Ñ‘®Í=°c—e اGZÜüÖÌý¾ÑóžVÚÖœãÝ ‰aªŽu0½‡[ V¸£©*ƒ»é¢»ˆZ  ù&Qâs ²ñq ™ ·3Ï£ù¾]_Óãkô–Òƒwû@r=s÷ÛA÷¢eš:ìΑçiÛ\/U^êÅ»4]“íÂyâÈŠoÕQI›}u,Å­·3ëÁë²py»t\в|,;}¶ü’ûeçHžYÓÁâX×´òª¬§„”¿aGv­1Ò÷jqMÓÿÉ[Ë6KØáY¿|\[Œ8Ò£D) #’2,ËÁ `ù_ÖååòréXmÅ‘„cmþ~ Ä¾}ûŒØ6l*1ºc3ݵ^ýÔÎIJ›†›zø5§ØÇè´~yÀšº™a¢Æéî˜bDå]}¦Fc½ãÝj$ešÑ=[ï­û·­LlÐþ-'™ úëSKµë¦i4¤9¯™ úû¶3ÕÝK×Ì.vLw²%˳ƒî¡aèïcëĆºoedp’òÀø‚]ØÄVvÍtÓÝ‘wŸµ2šÌFZf˜© •í}£tŒ3ÔU»¶Ò7ºñ^º|÷´â¶©³ÌìÝ ¥MƇ”02‡*UÌeaݘý‚µÙ'? Y…F¬cº·h‰¯"ŽJ†}ŽA6¤°Ð3—÷h9jhFÚ¹YvI›¤S #Ÿç¨6sCÓh…Ï „O9Ç4Ô±L×ç¤Ü^ž/”;ç6î›}ïÌg§C'?7¸ ;X#JZ(Yâ¨HʲMIx6×p§Eø¿±‘jýåF|ò¸ærpéêò˜Í‹õÈFZ$uq#;øë\!îKÚ–<ÎùÄ«l7ä½ø:l’k3¬£ƒ½&׊ ¸£ Ý[(ŽÕã;'Kl¶zÖÂ)ÄÔH£äÎXuõÖœJ £])3Éž[ÁPm9éL‹ëºèíЫŽE^ëèd{g ëÖ=L—7Ò˜lÝçõ°£o;쮉š®Æãë:§Ù©mµì›ÙÅŽé=物ÁÞn˜a’2.ºk#eÙ9ÕK×ZÏ=Mí\Y[iáøÌ[G§) ™Õu„ÑÂPegߨ²¤j€:ù9‰NÒ9a¤‡²ZE–#°=ç@dX -Œœ(’=oŸ “bÅg›VÖÝ8œ3’ŽIOoäõê¯ã4æhžbsykXu*”C2NÖ qRÚ)[öý)·B]\…DÔ»´Íãåßù&ãߨÄøªYrE„¡ÖÙá9T™mŽk’gZýˆñ`þ‹û³›ŸQjø_è2viZ|ûIÊ0š§c£Ñu)6j¤ó—÷¥ûD’krÄ(s÷g˜k°Ù÷Ùx$À*‚.6–Û5C÷ºL–6aꢖ1ÃÞÝÀô •IÝWa9º”‡µ¬/ÁžV/ëèfh`•Á Î {t«õtÏëé§o´“‚k•Lܺ‡iä(@i½m÷ï»§•¶µ0¦é…žao9¯°0 U.nÄÈjÛ¨òSþ€óC’º³²¦6´ó ؇T«ÎJ÷vaatèø“ü-UªM½wÝÐ:̱Ê;Ò ¯“iiÑæì°œ•vR²t|kDä½j' –D$“¬;íÜeÝ:ç/ªK3ÏF™žäš„àçBBÜ•X¬²â5×äýYqrTÄ•‘ƒ.KËF7bd•©õ?q¾QJkÍ\Q‘äƒO¹ûvçXÂÈ­ r#Fºü¤à”öYœÓeQCׯ2ƒc»˜èôM£AëSiz„iŠ‘Êë½ÔãVöxòÎEWomŠ êSr#l߸ÈÄꘙ`ëh'åò$ƒ#³Ç-cízJ>¹W_ŸS+.uÿÖ= ¬°­…P[˜½»g˜¡@E¯èâk7TYô>å;9¬Ía¬f–U̱›ûgOó€LÙ#°ßç„,ü•}“ÇÑÎ<çk|•'ÑÎ<Ÿãä¬ñç´¬Qü(ÏÍš²ws6Pk0‡xe–çE\œ5lý\ž5t/á=Yãø\>š5’§2‘…ŸÌ²tÊükæ60Å<µÇ›Åw²GœOàûÙùâÇÙãÏ`: ߟÝ̱ŠYVÓÉfYݯϗéœÀ÷³¼ÍM™=ã›YøñLfö?…ÏgáÍÜÀ®#%áL>’9„³ywV>¯d(³ÿb.ÊÊórú³r~/ÉÂ(Ïɧ;«£Ïó”¬N¿Î²ð.›…e½ÿ€‡fœù là ïæþ¬f–=t²‡Î†xþÖ0­ëâÀCi§ööwxTïìqpö|ž§d÷r›³ð‡ù§Œ{WòÒ¬LÞÆ«2òÞ˜¥÷ ÞÐPÎUÚ²òwõ"ëËÁÕã<í<–]YýžÈÍ÷ʲóÈOšø3ËêŒW@a¾¹¼ßÏ]¼³çoØÁøzfÿÉ|. WØžqìŸøp~W4üåÿTþåÿÚ…?Ês3¾MpjV/_àÉYÝMòø,<ņ,|3'f|ñÍ…C£_G¥pêÚHyz”ÑÉ2[¼Î¬&tÆÇímE}-ÀÔN&)³±Õ|ôûvÖ®§Ô0“ƒµë)íÞ«£Ï0±u”Î^z{(Oª÷Ͱww‰õE2éØÀ¦Ò$ƒY3LŒL0SŸ:s¶Ëû÷ÝÓJÛš‹b¢ Ù·oßÒ_çl¯à;T¸mÛ6Î=÷\6ûˆx=bô=À#¸9s,¾Å×î÷Wø;Næ3Ù”ˆkÌÚ¨f{'È\ÜjfͰ>W_§ÓuÂíi|€/ñw™ Ò^i·»÷ÑÙ[8¡©÷îi°FÀ1Ò=v=•ægJ’9¶*mMa·ŸeunØ¥é»ÎÅ;Ü5Ö–¶]VøF[,X£„îüGp³9ê£9÷užÀ“ù iÆöq*Ä9vÜõqns<ƒOð/üCÓÿÁÇ5÷2Èïò0“k.üüˆòà&ÎY#FV}èúsu¨ëÙâ™3UÚ2¡ [×É|]Òi³5 ­ï3Ä·ë8ÝäžDiß׳öðhÀÔH…AVp4¡Õ£š“]˜…+‰‹ZIË—ŽLC§'Ï0Ñ¿ÎsÇê~·S”ÕÔ•ú¢æÚúé j—4?¦^ÈF·{f‚þ¾Q¦Íû·îé@غZÚ%C(­ 0j²j‰C• Â语iNíü]Ss3'ð—|«ahÜ·µ3Ï9 €§ñÉÌ8£“/l91ë¸%¸\œsV_à¤ûäÔŠvVÅði:)YFàÿÞ•žv)2­¦…ˆå@¤³ÐH‡ Êsx2mCÞSt–SÖå ËÇ*CwæòHÅ·³ú|ÓÓjíÌóeþ>Kç>ÕÀÍ K@Ûî¸%¸Ú™çT&øOnFú?âîɽcë¦úL3ÇááÜÂ-uÁhMY|³„‘æœ"²î5OÜqKàä‰mKÐËÀÿá\Ý{ Sàá›Ì×ÌHnX#|.¬ù¥Éã›U²îÞË‹¨2ŸÝ»+‡9Ve\³8'mù›²wI¾Ye"E{Q¾Y£”ŽWŸæ© üò7s.OTøøæê*¥öæô*mY{!Órÿaw­u) c'ñã+›¢k/ÔÑ£©í£L—ˆºÈ‡.zvRÉ{¢NLS¼²<®inÙ`qm)ÂèHC]½ãõ.ã¡„åógËùØRÎ98 l=,GŒÖ°¿)N;ËQé°¯¿Ó>Gàœ”¼Fæ Pa;×SièÅ[vëtÊü+_á‰Mʇ"âÈjèu£¯§Ðœ“:‹ðn^Eº¥ƒ‘õ¥‰tR–ƒ Ùk9(Ÿãü:OÈžZÔ¶†„‘OÈjq¡…QžHÒõ*ËËWw/ã ÞÃ?g#Ïå£Yó´7”SšûE„‘Ã~Ö4•[®MõV¥ö§{Q¥Ot·*Šd]ºßZ„§$M£DŽcnïÂÏä=}™¿çI|Ùk“õ;""âÀâ°Fr* š{ªî«éµDŽFrZD:)ßõ>ÈÆO "·ùÆQžÍ¼è½ëüôïÏñäìÑk×K/"Žtã/ÖÃò í œ0Ò¢¨ˆ@ò‰N픵ý /Âô #íxõýê4þž/bM¥é°O=•ëàD["È'ÈCõ*ïÓÿN^F•…·‚K|”æ áíá–0’öH»äˆ‘U¶>®ùÄŧ3OãèQŠÿ“5Vº²L´ tp\‘¶K)§ÐÜù>þ|7•f•‰GDDx–Âh1#F–°ðõ„C=vŸÃù;笮žÚð99éà­‘.i¯Î[:£(’¶ê½ÏQAsOÞK>Á”ç¤t}ºûô/Ž›­Le„DQž}Ÿá ö$#ø&9õ>ÂGy.å¹<Ÿdçè'C\Óœ³îCsM‹K·¾È'Œ4×´0’vh¾1²êÂ'Ž|u«_Ã`…CõªëÊý’÷-íOháîx+œÓea•QDDÄÁÁ!-ŒäÂB‰Ð#'ž|Ž 0hF!§¡…‰ƒnôä°»´Ù5®ÿÌû¸Š³8“÷óAñr¿Ð=èü3 •´Ë…[HybÉ…_Ê•Œðr³m婬œÒ°œ”CÒ©…F ZqR) Ÿà™<ƒ{ËD¸´)Ä99-4‰!‹’ Úß=¸{=m¼ƒsšêhe³8âše ;áäsüy\Ó|9“p5Ï+,ÌõfÙ¢ëÍÕ‘ŸR Éü\y‡x–’° §²ÝË7ËÆˆˆˆ‹CZé……N(É£¥8+«ñ[ù6i‡¶E7®Îñ„lŸ§÷ò¢lzC;Ußý8Hg*«A¶lÎsXÐü~ç †éeÞpb–Ã’õ&Å‘´Õ9&-†œ >1$ÃÖýê|Nã:Èá›á2ìãšLÇMÝjÎ…¦´¬ú”‚HžóvÎcž…Õò>刑O iÞ}Œ3x6×°™¸–-^¾é£<žÉ°µ½Ÿ0çE’qE¹æûÿZ¼“bHoE€§$<‹kHë;mOF‡ia䃞JËsVn¯‹nüÏæ ®ä¥¼›³9‡w˜½u–qVƒïJw®tRòzç¨äˆ¶Ûúí ×uø„‘´SÛ¬m×÷¡ïÉ"V8Oi›­ºrååÊÎm®Ì¤XÒyùâBåá³MB‹pi»Å9†\ãfM»Yéù ïM‹$}on*$ä¬úp ñÀYœÅU`ŒùÂVƒ/§7ŠltC,”tîòúyÚyWðN^4:Ò¼ûfgÔª0’áPãžç¸Îg+o£?·ô|¶Jge•£NG "Ÿí¾{´Êæj^Àóù@°L-îö­p ðrNO%ZbGß‹+§Þʯȸv.à Ӌþ2—ÏV_¾!!FòwHÉß/ã ÞÁ9 ÷çŽ-´êÚº/½Ë·¸&ÅTž0¸ŠqWyËÂ*§ˆˆˆ‹ÃRÝ…ß~§ïŽ;øwŸ¸€æÅÛò¼"ÎN;'yŽç°Ÿ5\Îùì÷Øæ»‡wp/çœÅ2Q¥¯Ñ¶i´"”ôÞroa€¹§¡óÒJžãsF2ýPØ—g¨<^Ê» ¾©+]§Öz8ý;§¹&G'RÞÌ«3$áF{B(Oýž»˜e"-ßRÞÎyì/Xß>Nj®9±¨Eµ»O9R=E÷çðà÷f™XÜ\4|ãªÌÀx¯ç%zö÷.û­ËˆˆÃ‡¥0:†;ƒÇåÔ†CÈaé0ÔÖ}XçéE»†U6t–s³®cU“ã,–°ž*Š"=ÙVE“ÞûD‹tTV\È!ÉÛº?_\+(Ê7NHyƒ¼•†x%¯æÍMÇ}{_½[÷"ËS_çÞ_dÙ–w!®ÝÉ1Þc!{Ca_囆Uo­p8dS‘{´°²ÂÈ}Í|œ¡ú—Ð+ý >Ò…PÄцÃRYë[Ç}$äÄÜ ÝZuxÚ™»8ëº×r)—ðæIy —q)¶UÇ/EI;óâóœÚ븄7ñZó˜/)„´P*êlZ?yNhW3À[Ìx ~lP¬,–o­}ÿ’{¯çMY=H8J7t_æZQ­› ysö¿ÐÇ+J4ßÞÂ&ŸŠ\»,˜ÙÅŽé›ÖÖ¯]Oiz·ÂÒ¿^q„àˆFy¼„ülCÞµ§™ñ%oÈÂEz«îûUóúúx•!{–*Œ4ÛP_ÄT)C+" ,æº×ñFð-ÄÅÅòm1\?ß\=øø–‡Årm±<ôÕS‘ÿÅbêx¥øf]›Ç§¥æW ¬kPA»Ù;]e49Xa²Ž£GGŽ*a¤a5@oäu¼ž7ñFÞÀżÞ{íÒ7æ¦QzñÂùÉE¹ Þ\ :Zi,—[iä9üVFO–rÍRmY,…k«ê«€|h…ooH.*”çRøöZÞÄ%õÿÊky“yÎrñp%ø:¶޶rNZù¯ûÞõžï¨Ýº§¾¶¨ŽŽutzSè {hœîú¯™‰~úûY?<ÄAú8{DÄÁa)Œ¬5F²1ÑΪÈP·uŽìÅËã¯K/i8ïâäõæôìÝ_œ^Äë’7§‘ÜËöÞÌ…\Àe-M]I8‡T¤mÕq´2Õs)¯mpš¾5D¾<ЬÓɳ¥ÈïбWñ6ÞÊ+½çû„Q«S/ú[\noqÍ:Os Èøv ¯ã5ÔÒ¹´>¥v!—2Ÿc×Rùf­1jUäÈßoá.à2ó˜zúºU¾-fj3ô{€·2È«‚çË—Àæ¡åÈ®]O‰= ¿gö²X_àÒŽî-”GÙçÝ"ŽpÒÂÈײœ‘{y+ç"‡ª‹.’´Ž­3\˜¾¹!Ï7%¯Å-…µÖ½.©õòß”¾¾aariCº®ÿJÞÊlA»ujŽª•^çbP‘ÅÁpYÃŽ^ÇáJVZ:\Ô†"÷*‹môÑÊTZ^ù„±FßÞ”¸µZÍ‹Ñ^Ÿ\œý–|»0¹” ¹4{ €ƒ-òÙæ³µ(ß|#FEù¦ãúys-Ô½æA^^y\ Ù-ú}Zî©»bÐSgzj-"âèFPÍLôÓ§ŸÕ¬£Ô3ÌÐ §yóµÆCie5üÖ¹íÌgÇÒ·fñ—&ÖÏ]hÔBñ5É%¤$\–¾€ËÒ×ðªd°é\笴=!GeÅ-Uå5ú>§!7+^ "+oK Iײ«ˆ  Ý{Q8¾Yâ!$4\ørÎç¼W3ØðÎ'É·Ë’ H=o·ò{Mr —¦5!uYú^¼¹á8,¬/’%YÄn+ßÓgE…‘¯^B<óÅûxâË7”F^ZEyÖ*ßVTul`SitaÔçÖ=L—ÖS[‹]<¿s€ñÞ®ÚcýÛ×1T_T431Æ$e⣈#†0²ß]¡1=ÚGe(õõ\ „„Ñ˸‚÷ñÂBNI7ò<¨ £ezµ” IDAT*mô§—gqoIšœ”ƒ%Àä‹ç’·0˜Öžfzk:À+’!.§€sÙZÿIÂ}õ÷øm´ì}!ïã*^ļ¬þ’ËbõzCbCþ¶>!ñv^Á+©9xýY™ŸL:m™V+/ÛlE$…µ2}?WÕ_jA #߬ºÓS&íÌs~º5û=˜¼ ')-øK•6.H.ãÍiMÀ¿%½€þämMÂÈ*5mcÞùPaÔ ßÞÅ9¼œ‘\1ããš•¿Lg¹¸f݃ûýϼ÷ñB¯-°Ò#Ft 0R©Pjï1ò´ßë蜤âV^ßyqä QMPÌþá'ÜK¦G髌ЧBÂèCœ ìÏmܵƒ²œ•vTCÉ+¨ŠÁÉs}BIæ[¥þäm ¥µ5+—§ý¸ËܧÎæ ñõ¬Ö—C+ _}b!䀠QìÈ—V:;ÎãíÙ˜›K§J[ƒˆÒ¢Hæ—÷Ií [I:N—À‡y.ySiEDQ× qMÛåÉù¤uaî¸ãÊÏ]/ËÚºëW%ƒ¼5`(}%ç& \v£“E?iañÍa–Õ&ÿó„Q1 Båż»á‚EÄ%Äõï—|bÉÇ7_š.¾öqèƒ=•ÖEïø8½Mñ‹­ýçEDÙÂhŠ‘ÁI DO‘§:ºïÎÒäàPo"o*-ä˜|N@~gë Îæ¥\I#Yº[“sIë¤|³pHYé§$œ—¼­éù ×8a¤Ï•¬ˆPr(*ŒZqR!g$ãœØqå)ÓÑo­ÎsTúƒª.?ë{u!'f¥ºÿžÅ×ð,,îöE¸&ë­/­ñm[ÒGŠývoi»®s+Ÿó“Ëy{úŠZºéy BÜâf‘Mçí[|mqP–ïrpÍ…5—ß®ß`Ý ï,žµ:ºdݧ.YGZétGDd4Ž-fZ¬£›¡ñ Lôo_VÃB £3¸–q6›ÂA ߇'ucõŽäœl¤ÈA7°²–°b•6ÎIÞÁ;Ó—gçͱ*³ë*^Äó¸º%Çåòrðõâ%|NJÞOžcrq.^–˼Œ^†½eTÔIIgd…}ÂIÛ»gu*Ü úÐ>®ë:Ôõ)ñ®ä¥TëãlztÈ*CŸ«ÒVC)™(z W2/¸úpˆo‹FÏôo]‡æŸx>È~»ÿªã.¥ŠðPœO0å ¤ÓgœÍæOÖ凮^ÆÇ72R‹ûGò¨‹Þ¡ÅJøº‡Ü€kèI Oò4Rf›œTH iÑ"§8®L^Bêy”Úú·´ÉçÝèÐÙÉ\ÉKÆ£3ùsÆèQžÃ’(òȾÏIɰÕèk§ Ž ŸÍTë+§\y…¾önåïË·½žnžã*ê°d9Èð§y*¾§W3ÛP׺Þ}œÓ#ƒÖcû2}ËV}®ÎïåŒPMÚxçðîôlÎJ®òÚ#ÿ!Î=OðIžÁ læ>ÕT>¾[{kTO×aeÎ%>ñh•“õ°¸îÒ–<“q>AžÇ·Oðtô®}õydcª&’z:­$•z†Z·=YZxÀgŠ‘Ê “âꆧ†o¿ ³ׯ‘ªˆ"8¤×÷Á÷$4;+ËIY=d7µòüôƒYïÚ-Àv׺´õšš£²`ïO_șɇÂI_WD 9„¾ln Ÿ ²T¨7ížä³+3-05|ŽJ;¦;®·UÌ±Š¹¦ßíÌgá3Ó4äå¾¼Q|ÎjžvÞË‹ÎýpúO̱ŠÑÃ<íu‹6w'2¬7‡YV×K§¶Ésdœ>&7§o›§½as÷÷^Òä|CΚÝjã6W'í*wŸ•>NH.Y¿Oâ‹M|“<\#JYsMóLoú³3€×»2°Ê)Ä·”„wqNƒø`úü¬ÔBuâšä›ä“Dy|“a—Åu·ñ¬{5ç|›Å3]Ž–·¸æöº5Ç|¼;™Ïyùç8–Sþ{9üP¢gs]¢t¬£³éwí}K5LÕž¤«T¨ô2íŽMmgtºÌknnf;䱎 l*M²sj…o+â°G k²0Ùô΢lèòà<¾éF…¬øIþ–T5.¡© × Ÿ§JÚ¼NÊM—é9%TÄAYù:<—óÎj=ùÍŒgSiÖ¢ìÐphe‘¯÷^dË•‹“iŸÅUTEoÚÅK²Ç笜;t=y·—á"SlEzñß`ø¦ëÚ™Ôa7:yzz=KÎàÙ\,ðMŽˆ¸)HY6z$ÄÇ·*m¼˜w3oôFÓçpZr]è’¶1o*×Áâ›NEêØÝ¿¯ÞžÉs‚º®4_óD…ÏÍw‹s׬i7ý?ú'QSiºý8r„Ïr¡æ‹v›£B@ö&…[÷0Í$ƒ•ɆèòJšqD Ð˜íôh•þ}Eyo¾Ö ˆëm¹cyNjžöÌéÈÆi,9*mœÁµ¼€«¹šç5¥+QçÀ4,§%íp¨ÒƳ’k¸6=ƒëÒ-<3™:©ÐTÇãØÉ¿³‘oð·là›f9ic #ßô™›*sá*mæ—áÛ¨2O»×QYvÉ4|ÎÊIÒYéx¶îÏ'Œò–F’kº®µ¸MHyzú©,9r$_*êÊÌá>¾…’ó“Q>–öp}z:ÏH>F¡i5‡ÅL¥YSœ>aäãš¼VòFæañÎ*O=}–Ç5+ìu!®éòiEÉ6²åσ.˜ÚY{±¤oÅöôü_)‰ï^ŠhÅ'³§Gé«ì¨-j[Aƒ$|o¾–Ib5³<†o1Åcš”%*\#4O;OK? ÀDòÌì])®q2'%•å@}¢ÈrTn:Àáãi7''ŸÉlÓÂH:ZËa9¸»OYsž“rÛ•‰5½ãÒúgòÞß0â!GDtYYéøD‘oÄHNyX"I;)ý[—Ë£¹‰oó(/ß'|‚ÄÝ«¬;‰‰ä™Ì a¤ËÖÇ7i‹.CmÃûøç†<çi§’\ÏxzZö[ #Í9k¤ÓÅ9„FŒ´ã×åíîÙ…]}j1þžœ-ò–üq¿]Y»²Ò£½Vj›B¢HY\“›%’Ë.¦x̲ £#V I¬]O‰ Ÿ1™ÚÉ$Ðе‘2ƒìœê¥«KÛLO©±‰ÍtÕEÕÌÄ»6ôƧâ"‚( ŒÊôôìftt˜f´¯ÂŽòÁŒ”#C:þ&N$­ãÌGrsëÓÉÒ½SçZ·éQ# V^; ë¡?#ù8ŸHŸ ,,޵Éyç4OeHAÅFg,a${ï²ä(ÀsøUæ²cVYX "+ÎrVV^§!óùʲùOõ{xßàfœ²Õ‚ÁFŽ3ON¿À§“§RUëŒ$¿¤`X ß^Àûù@ýíÝgð1æê¼røtú4žœ|ÎË9ëž,®ëS/"öñÍãNJÎýÿœ1’bHŽþjQÔ ß|ü²FŒ,®Y¢NоšÈn~}«®Ç#ò=F}ö ¿¶£›ózvÐ×Wa \Óa]ô”© VjOž5«½å{O¥þ•€RêgqآЈѺî!Æ7,<9=9™wÉŠÂ÷£c¸³ÉA¹Ýš&o›øBrsõFKÆ; •kµ#•ð‰2=Bä’Î±Š§$ŸåséÉ|!}2OL¾’“=z}?¾^|Þ7Ó|½wKD¸F_‹J猜#sbÃÙ¦ëEÛ¦ËÓ稤cZÅ\'ÃEÖi§œWŸòFÖè´¸ùŒk›~#KcUýáó„” žI7çÙ\Ã(Ïnºu&©ï‰ ë ¡kxv“CÕ¢Èr!çêÍk'f=–—Ûƒù¯¾Iæ]ëò“ö8|%yb.߬ñÍ3 k„¤Jäù \“õuRR½úrú÷M\+¹ò_ü‡4ðÈñ¯(·,Žiž}•'ùæÙ²þ’k¾­߬Íâ‹ßk:®Ÿbó[ù:Z152Bö ÙÔN&K›Ø§Ê"–€_˜Qû–Ά‰~úò¾2»‚pF7«˜ã§<˜3J9!{Ñ_KOUœ)ásRy=>ËI¹ý5<€g2ÑÔì>!ù*_KŸ,¬?’½÷¢½x)’d¼%èÜ=º2’É‘×ûu½s=r&{é§3FµÞ›.ÚÀ‡œT‡åIºGoVX#{XßÜh»g]ÇnJQò¬+½€Mþ÷vkÇ/-ŒÜ¨ÈbÄ‘æž|êѽtø×´Ìã’M‚WÞ“äšKÏâ›ümréQ"Í'·ÈZ–ù&¾Á¼‰ •Q.±¾I~É‘#ß(åOø3’ÀTš+ƒˆV Ÿ< |7"¢ ÂÈ?Ù4¬y€±ª¾†HÃ5BΩh'¥æÇ¤ßàß’Yƒ+ÒOò4žÎ§8빆g59+Ÿ“r -ÜôÔÇ7ÓÇñèä?HI˜cUƒƒÒ=eé°`aQ­ÌKÛ-…¢t2=ý$v Òf)@µ`³FËœ]º-‘"MhªÃŠ×K§ زEÛìãš~ùøVDŒw²‡Özù&ï9""âà`eß=?³—ÝåÆë§™™è§oë–ø>$)Œœ£ú%Ç“²°ØÑê½·3Ï é÷øvò¨lâ š¿wä깇œ–n”-a¤·üs¢·}sz"'$·êŇzðÚQIa¨ËÍ¡…§Î´på'mèæªõ—Ùùœ“ÎGÛåsVZÔ„Ä‘%’|ÂH÷àŽÀà›Óòþµ×åçÊÐ-°DxHˆ[œ³ÊXÚò >Žþx¬ãÓ†ä›ìJ›Õ¡Þò\)ÂeúEGŒ$çBÂH‹Ì¿âFæë ìn¯m²D‘.'Í5ËF‹o!¤ÅæÜ/¸‰hŸ,á…QDÄÁ…FÍÓgS#'!p ££ùmÙŽu9/ã*KIG%{Û–“ú‹ôGYœlØäo–×ZŽ©¨(r{ÙÛvqÖ¨Q•6üßNÿhvV¡§†îůø5÷æWÇ=ØgÚf #¹—å£ÏÑ#Fòžl9coy‰£Vzó¾i"ÂÈ-Œœ(²8÷à´¶@ù»ÉÚD¸Û·Qåóü#Oæ læ†ì ìE9çãš!¾9ügúHþ"ùAÆ3Í5=Bè°Ta¤;'ŽgräMçíÊ^ŠÒ"âH#ÄTÍ—"¼ t_>º.#""è·ÒföîÆûúvj/p mÇrGæðÚ¨ro~ÍqüŠ6ªÜ—Û²†h={³êüd!ÃdÁ)=–]Y£õ$¾ÚÔXµQåYŒeñ/âªìø+x{¾˜‹²†m+çgá«xPkô®cK–îgyjæ¤&y,©½7çéC©ÒÆOx`æ ö²>s^·qß,þ×Ü;KÿŽÍœ› ïãžÙµ¿æÞYümÜ7‹ßËú,þÇ<(kÚ¿Ë#²ðteá¯ó„,üNáãt“’p-gdÍ¿|Ùàåôgá7ðÆ,|>[³ò|!ï¯WUÊ®ËÊÿd>—Õ×ùZæ¬60•Õéù% ÿ9?ÍÕ:f2þÜ—Û²ð½ùuvŽãرÜaòÍïâïÇ/3Ž­cf!ßô§Ù5Òg§¶š)gpmV/æ½Y|?—g网7dámœ—qì}üs“0rõâøæê+%áFºxdò†s«´ñSþ<ãà ë2ŽÝÎñ7$ÇBÜû5÷6y+ùü˜Ùp §Jßæ/™bCÿ5ž˜Ùÿiž–ݯ{2%ɾG˜’°•ó3[/梬<_ÁÛ³°û_'¤ ÿ÷§òÙ¬¾žÀ׳zìâÆ,ü0¾×Ä7͇ã¹=ã˜ääØrt*"""dß¾}Á®ñ’FŒ$êßWëg±ÉlÛ¶sÏ=—5Çþ)PkìîÆïø woh8¬)€*m¬O÷fé}?yUÚšže5UÚ˜e5'ñEÆÙL•¶ì×ó´7…÷³& ÏÓž}(SŸû±Ú{YyŸd?k²¼d¾s¬Êlû^ú0JÉÏHI2[}#FµòøîÊÿËÊÊAéž°Ûëé€6ªÙcÅ.ìö«™¥jöh{;óMávæ³eºðö›ñVœ/]—¯~$ßÙæ[ûQdÄHŠã»ò{~ËÝL®iÞÍÓžñíGɃ¸æêY×ý?ð%n »3>žYñšŸî ȧòé†ü4ß]·¤àÉO31#ÿCŽwPPÿÇ=¸¿Íxö;îÆ]êÿM‹o!®%¤ õ¦ëS¿ ÁÇ9‹Sš:^óV¦«ù®ÿîùßqá¼£„”OòôܶðÉûÞ“µ‡Ë‹•]c”aŠ‘¾Qè^´(’pÎK:û6š¿‰$¡ã~œü9ó ʆÚÞ®°ë©4ÄåM·è<}SÚÉjûÀä¿øqú ¦Ó°>Ùm:b-ŒÜ1Ð0~›*W6¾i”Vz¸yÓ>;-›}ŽÖšþ°¦Ð|Ó$:_ ×tXŠp=MäòKi\dW?yååòv¶X|ÓœÑ|sðMÉëôˆ”Œsiùê/tÌMI;d2/‹k¾ÿšyåŸ×‰°ø–ûIÈVF„ŽŠo¥ED`a´ðeä¡eú@MHÝ•ßó[î–—Χ#½µá|×ø†zqŸå)œÌç²ëòœ•FžX³¶oñÁÍ ŽÌA:Ÿs“°„QBãû‡dÃ,óӢȕ¥+7-ètܧx:§²=X>AHºþòR+Âh ³ìWŸV #É9‡Ÿ'â¶fA$íÕeQ¤l|ðÙ§7-2þ<ù1?IÈÏÓk“¯ r¿ÿˆßóîÂï¹+k¸3Ëo±ÂÈâ[JÂwy'r“÷>|⨡QT i΄ø&ϹÿÇo¹›™¦Ë¯{£ŠˆX~¬ð£åEÐè°e\U~Ç]ÌÆKžûó¤³@Ój¿Ïf)°•ŒwÛ£øv“Óº2 ÀLº.è¨BBÊr„¡QK€é±»í©|º©‘·XV}øê)´ùįå¼äïYV59Ëósûû¦·™÷g¿¼Æºÿæ5!ÛCÂj©ÈãOLüOz/¯Š¬’våñí!|ß{<”¿uïEQDôúεDOÉóòDhN+‹Ü<Šð9«ÁHH¹gZ{ÉáíÉqÌç8ÊP^›¹kê¦B X‘c¡sþ7½÷H^Þ¨Ì6æ©ÒNJ º;×…å}†„”Ï΢״Ÿ*rO¸äºÎ——.?ßy¾|Š\Wôš<´R/n„R_ß*?,»-¡•wKåÔr ŠP×áPœ>&ùqð FŒ¦éŸ`fQÉÌ0Ñ?ÂÔ2µÃþeq Ÿå)¹ç,gž7s¢·q¼oòßMq¡Q% EÞ¥6Пå©Kº¾1­žÓj üIú~ÜsÙì:ð¿é½ Ÿ»Ræ‡ûDﺾàa¶`S~ãZ¤c§ïÓŸP‡Þ«·¢Ï‹Ë|nlí»ƒGå«´"§Tf ME {‰C;µ†*«íÎö]>Á.Ü>béu ìÊ­.OÊlž·“} Ó4.†K7±] …‘—¦r-Ä5Ëy9~ÐÖàSÙÖ#›×!Ø´/#ˆ„;šk7nº¼zž5©);$:ŠÊjÙ F¯Ø#¶›žyx€öì¼Ƕ#x¨…W0ëp™­Lm[ð|úúì\;´«ï¢äX_Ó÷êóöÞ¢Ô*뤴c*rR:mš9«2[ˆ–’šo‡,[áYh»…Op×yV†wßByW&õ^ÂÖAÇa÷oNžÎÞeÕ´ø«EEPTFÙøÜÊîQGGekîC·¸YYG%Ç«ñ¯ßì=2«ú_“7^+¼ÓÇ¡ôÁ¶Æ°IZ?þM²i×´¡ñFEcÛ<:§ó2!åBŽÎk£Æ\Õèðò[$õsµ“Ii±ö Æ7Vþ³°œ³éâZˆsÛsgK­G^ž–á\LCs÷™¤[Ê`—Y;õ/ölÜæÝª=×ÿ/T§B…±Eáàë  ê˜Ãæ27®˜Fâ¨6Oi:§ p] ['¥U³ãz‚Sx?ðŽälìÔâ‹’{ÂHí>Ó¼8t/>V$@³³Òµy¯ÕÆÛ<'e–Wƒ×÷†U™Ú{H ‰0„ø—@º+CìGo±M›w0È-}\ÔâF!a^ÔbT¶Õà.ʰ~"Ká–ðgÆ31RÔÂH;¨¼“úoîc]¦fEÛZlÈ?øk ¯¡õÀLd_£HRžaÚt¾M­Ñù¡k«¡V¢PKÂxú؆{¹iÙ±~ì=‘rRž²_Év W‘4„R¨Æ¬m±iªóOZ{ä~í¤ôïu+‘¤sgF÷ñ>¶á,gBvížd}*=‡ê‰$OÙ#+DBiãå¥@Ò«Ÿåk PkCúwZxká©[@<®½?¹›{Òmùe:•m’{Ѿyyâš>Öüj£–‰¢P‹¥å_,_ËòMÒE‹Eï96íÄ·Ÿ³-}4ÿïô¾aT‰¡ FaT|½2ckVgþûàgIw±˜ÍØš72^Í·œò"·p—žóQ¦s¨3Æ(e-Þ@;5’FÑö<ÿM ˜É,r 0—câu«¤€´Mí0(nä>íø­S•ûmk˜Ø í¸/ÆvÉ`_çxµ «¶/$Žlë‘ç°äœ×zªÍ{ÎJìã9)k£N3'Ý"R¶•ÈsTº…RºÑtº[»­0×ü’pH˜ëgèô 9Mk³Ç7OÀ[‘é £׬טÀò ¡ô·yå‰p!žI8–¯^êJ‰N'k’fÚfù'ø¼t°¶T¨Paìm1ê]4›Y]=@‡X=8ö¨lkÒPšùZðF6€{†' XÌü†ûécSÐMàìÌÎÆié}ó(…xBm5Öb=þŒe‚³òj©ò4[ëB²]ìÏ^ÜØä˜B5wë¬>’ü˜;Ó€¼³²ŽªHy5^OhXg%ëJás\ZØRã!ä¨BöËot{¶—E²ßžŸð>LGZß™lOå&ôDR¬Å2Ô2hߣÓ@ŽÏeÇ0/cY5.ák|EéqR €*#ŒîJ;ÐoðµÇ;O8xb¼›=Ù›\±dER,¿CÓ<“ß‹h´q´´ÝfÚ‰‡~ÃÇù!?b‡ ßäÙ*T;D„Q/÷ßÝ@ÇýµÙTf.˜Á“³ºè¹û~z§Þ\F¡™¯Û§Ãa°ñÛ?Ä‹ü‰ï1‰¯ÑÁK4iã ¯V<~=²Œúà 5^ X—üjë1guÇg礠”ûäÙK-3%áS|“Ë]'å #ë 5^ËYxU^Ê٨ö€Ö5í¸ðZ‘tëÑá|•öÆw[Þ½l¾iÇ/ç´3Ò-JúýŒ+tR:Òá—Xµ)Fbg(Ï|aî¾  8Š£¹ÙœÏ9Ì rN‡E|‘…ÈWŽÂ5û¾˜ó„Ž÷'’ïr{ºKS^ ß¼4 ¥¿—W’õ¯—7 ¯ÅÈŠ§"ÎiA¤Å\Ób[sM„“÷ßð8w»ð’“:\ £ Æaô4K{:˜f¿ÁŸ8‰É@OÏRž†1™ä1ÃîðÛËŸcO²;°N£žš/ÈÿÍÜÁ7øŸæS4 IYÆÓÆ;©w¥Á:¬cjñÇsgqBÓ3uw,s©Ñ<ðZ;±T‡µ=–}Ì)§$LO¾Í¢ô“|/ýDV‹µÙ½uVúœ-ôCݺ%)V{·Aïµð±÷Jzu™½»HìœÞ‘…e¬‘g¯F:H¡°@öž­Z(ê{Å©k„Þg¹æqÌÆÙ"Ä7 {|‹qΆCÂÜã}§—ž:¿lºi»å^+’b|³ñôžkmªP¡ÂØ ÄWiOòT/LÕê§÷)ž5“ZÄŽ°=pr¯gnäzö1…øZ|„ýùÍKö2TrÐlÀ–ÜËÓöËø3ë°v£è˱ÌáÜÆóóNÃÂZY1ô5>ÇÁ¹’B5v¯@ÙÅŽÊî­“Òa»yÎèb¾È‘\¼î9*‰‡Žvæž0Ò©H Å‘ç°,nLöjêFól¶ùâ }®H0é´ñòø,Nàx¾‚Ì®.¸€c˜Åü\¼mwc‘òâ§mÚ;¹Ó} ¥Pˆ‡ÒÜæ‰àWq0‡ðuWˆ”é2µðò(dcL uÑêçìÇõ\ߘøÔK±¥B… c‡èàëi°xq].bkµüÇ’[ºêówL[!:ÆpM²?s-?á-l¾Å,8+Žmuǰ6ìÊ \Ä,ÞÍ!lÅÚ$Y1‚-èt!¯ WëÜÅAÎW©5æ€Ñ+䨼½‡¢Á°Þ¹ ð„ä…ÓQ\¥–„!G¥ã¨ãî9/=={bNª(þlk‘ ÖbÎ…Ãç0‡ã˜Ë œÍœÌgO\ÔÇ ~ª¯½n‹ÙçÅɦƒEŒo:Ê»Æeèµ÷BÝnV0yϳˆñN§—¼ÏŠðÍ6~ßäS,¤ƒ¶¥B… c‡h‹ÑÔ=f0eq==]ÌÊV’LaÆc(‹eÉr^â) ƒ rŰ.Èìq¨ÀoÞ6¤“£Ù#çÀò-'r§sRîÜœ À œ„¿’g9¨ÝÞ^pPr%W¥gÇe•„cÎÊ—Ýb-FÚiÛøX!i3ŸXX\™”¥ 'Œtx8"É &‰¿…ç@m¼å(! r­HxÇx6ÂH‡cÜ  ×<û%¬E¤æ¥î¦,õß¼ãJU¨0¶ˆ¬•LœÎ¼î̘bÎO™Á‚îy”ú ­w³GiMµK“ϱœg¸ŸMxXÎáJ–7²ö•ëõ°ôšX¡5¯ôfÇcœÉ—3[B…™.¤õæ­Q%ëB]ÄLw)±~Ë›ö¡M#vŸ}Öø¦Ü´-vm+½Ïì¦Y‰CŽÄ¦£¤qh+³þ™µ\x ÷v{™UrÇ¡”ÓÏ ñ-Ä¿ÐZ[ÞØÁIœ™;>S8‘3r‚@Rë<Ž rÍ®æYâ›åÞç’K‡Ì7{Îã×%äš·,ML(kX!Z†kEëì…xw(W¤Ê„R²oXÅ2¹B…WJŒ1šÈôyÝLÒã{Yta“çt3o*°d!³±`ÞÈ|ɶœ <ÆÝü‰Ýx{CÌgVKµú¢}™s§p:§6”8ª“8¨åî µxèý—8—Tu¥Ål÷â§ÏÍL°°Ñx‡3“9[,BµÙ¢Ú½Ý'¤ÇÙ$¦f­Ã¡Ö/nejá­ØKƒÐy¯-f³ ‡g) gp"'q¦ko(n) Çó` úì"›cábcŒBçcy8›ó Ñ•f¯—m­Ñ8H:IKQY¾ÅÞ ëò)”.£Ûb4ºer… ¯ £% ;#ë¡uÄŽí½Ÿ»{¦°ízãõÖgÊ~Éö2«°!_â\píë(eÅSèÜiœÌ)œî¾ÛŽCu<­ÄÁ…» /Çïul/:.ëØ¼s^kQÞôü8¬Vß: áÜäK¥R®H4µŽq@„øiœÚ8>•Ôá›Ä1$ʼg  ß¾”œËyIOËrMì-{Ü*ÇBç6¾ú¿ÚŠè‰ñ/tÎè £Q.“+Tx5 p‚Çá/;™I¹œó•ÛpfòeW ÈY¹..¢'v½Œƒ8•Ó²ð)œ ªPµŽ=ö¾38™9cȶÆàû(BQº~'s²Jï~qì@Ö⦷”±÷ ÕÎ2°Ýje0T¾ÅΟÊ)ÏN5i›øv:§p2§µü¾²×C × œOgrRÖ]ØÊoc|+ó¿nõ}±ë±òéÄô,ÎL¾<Ê-F0Zer… ¯$Ë–- ü³{Y4{õ‰¯íâ±%±d!s1³fßÈú üñIE3]C}ÒÇ5×\³u[*T¨PaeG §&§Þvä²£ ËKwµËä þ/¢ÄÐÑ4ÃcI¬·>SX:xܘÿhýÀíE "JApg·dFÙ†²Í÷±k#q_™ã¢óÇsgs\©û¡|‹F+]1v\kšZ™F£Û§L­\f. ¾•97œîÊV~_t-t.v^C¸F g'+–oöXškõýió§ —µ¥è¼àœôøzwwÒZ ]ˋȶX&W¨ð‘¯ÒÖcý)#ñŠz3í l3nëx™U²Í~ÑqÇ»_¥Ù/…ì—$±/Òô—)Þ,Á^A–䮿¿Jó¾HÓ_ÈYM_ Ù/†b_öØMõ8>=‡Ux¹ðk¡Ðj¡/Ò¼¯…NâÌÜ×B’ i“£:EuqÀà `Þ6/†ò•PˆMëý®¶ Ñ…Ý\Dl5ý‰=¶ÎŇ®…jÚâ¬ì³çq 2‘]蹡¸…ÒECÆ~ e °.˜Cç$\_׫–;ï9t{îtNáDÎ>×s!»bû2iþø¢2­=^ÞÄø¦ÃÞ±7jåñ~{6Ç‘0½ÇÚÛÇÞp1_à.àèôB.N¾ÝS¶ÅÏ˳ 8Š”þ–9!_òÎI™Õº•2ô»"þyáØ˧PxÇ#ŠQ*“+Tx5¡Ô‹ï]ÂÌ©CéN›ÈôysXØÙI'PÿŠmøŸ…¶â¨Šœ>g†®mêkv9…Ðû‡²ÅìñâàÅ1”&‚#ÒK¸<9ʱ}ÌØuܼÉOhtMÁ‰ÔG'sZ6ÕA+©º?d¯w‘P.ßd_”ÏrNsJsMßcEÒp7ý/lÏÅÒÀBÂnEµ"€B“T†–“Ñ8ƒ“ùrcn¨áò./Ž‚ËÓÃrÇG£S&W¨ðjBD-aá¬ÆÒ‹çÒé~Vð¹>S™ÙÝÍÌ¡ÛØ„˜£úr WåÎþ¡M;¤H‘{´£Ò6ÉVvaÓ„”/r1—ðù–˜¶Ë†-¼V#¯`—}'”’_bâ(æ3c²ß$4/b*iga›tiHx8N,79þfú™œ-EÂȲå]h !›6ç¼g%¤ËyÌ㘠çZYÒ"´÷ì|6ý:ßH>Kw›vïåÛá\Æ%|ÞM9y·]NåË| ñ%XžkVˆ­g7œ»šƒ8«š9ß8ü4ß å)7G#_&W¨ðjB‰ W>ÄÕ ®Íu¥•uHž`ÑÊ[©[œ˜~¶Ïˆ­í”r‡ÑF숫}¦>ŽÙa1å…NÊsT¡M;I»ùÌ¢¦ÒH„“¶ÏÚp"gp&'ñ¾Ìqœ{~h=±Ð14·`yŽKï=”FCå›Ç9½˜? þ?¬ZŒ*T{D„Q/‹n¬‹¢Ž9ÝL»wpÍ´‰[oË”®zFy;y™%[Ó*ë¤Ê•˜Ã´Ïó ymþ8âõ>ä¬bŽk(Îê'ɇÙ>ý)0è¬ZuRúüí™´»i’’põü;Ùªí(ïwžÃ ={·ç¬ä|+]w¦;°}r'?à#|˜Ÿ(×ÞÌ7k!žÙ¼çÞÞXàU·¨ …sÖžç¼Vsžý^œmÚtëÑŽé¸3Ù¾kPÜ*bÑrE6Û:NÞï½Ôñ¸æÍm&÷Kxïôqg^ì?Ï¥|Cš&µ¼kU$É"Æ·Uy‰»“÷³mzË7k:ßuïÆmÜÂ'›„Š'|<ÑhEœœ™Ã9Ìå8.àf1?ǯ~Æe6Ø ­1!'qúb;sWÚÀ¶ÉÏÕ¿±Î½JU¨0¶xE~•æµI· ÷ÒGó€j¯Æ.çS’ìœÀA²×-K¯0‹9L»iµˆÝƒµû³Ò6Û4±O÷'SÙ:]ÂÒ»¹/yŸki™»ìÅÙ j´q5Ÿa a›8›–6c5xí <±äÕèm ^ŽïK§¹üšÊýÑ£¢<¶ùm¹fµ@î1¤E‘垶˳árÍRÈþ¬HÒœ ÅCì³ïôòt[îá~5¡Çxú"©æsNxö]>Aþ×´˜‘ž’p—4¾Œl¶Ñá–ozoùäçô3§q}ä[‹ÒÈqôpƒ–—©P¡‚‹ˆ0Š, ÒX_‡1š15&Œ¬cš w)luA/…ª@ '[à‹“’°ç¤ÄûÒûùUòž¨ òf!1 IDATxˆkr¿M_›66lù&°¼ð쉵^‰ñmü2Š–_­ £J U¨0òˆ|•VdMO·,Ñç{Yta}âÇ)Ûn=&3¦†Ö<ëc<¿â½¹óE_y_y5A[+´[E- Þºi»òÝÜ—^á4µ[_M ×~lÀVéM_ÅÖBó¾B³qi£Æ§ùVæL?ÇךÒă—¦Ö1…Z޼/†¼/‡¼/-·±¥Ë7ïËÆÐ;b_  •o!Îyw•®8ò¾N³œ+óÕZŒkÂ7Ë?﫳ׯÑÏŽüÀµÛÆMs+$¾-ßÊp­èë´ç4/~©ZÏÞ•<’×ü KÏâò¦B… ÃG´+mâô½éèšËâ¹ÔÇ]/fn6v{O›‰ä¥ ±µÔ„”Mx´±šRxŒ‡Wc‡Á–©Jù֡󶉡¢Züøí¯ÒB…¿·X‹‘£¿Éfi5’øÚ®Ý¢!食!¿•ôèb?úÉ¿º˜/dùãµyðZlË‘nÕçd[lË—Äó7黨8y¬‘êƒv¼ƒße.=äp½ÖÝ2\-­ ¶•¨ŒC´Ç!¾]ÍghSŸµ‡ZŒìÞ¶dZ®…Z,„o‚w§¿æÑd“¦ü´-F–s?áà 08K®é´ñZ'Cöy|»„#ø,_ ò-Ôb¤¹e9§ã´¿æ7Ôù&ã—gc6âqú*áS¡Â˜£`ŒQ}’Çi ¿H`Ê Ì»õut ß6“{ÎJk)ƒÍîV IA«”v ²9,] Y»¬x‰‰#=îCjÌâ`eߊ0²ADƸœ\ñÇxHH\õ¦¿´tšët‰Ù¦Ÿ­Ë¶YÇdÍêMç+ nýî~ó ñÍ C’&Z0êwèô{lX;ÿP‹AìàqΊ£ÿB-2öÙúÝ·'’ y[úG Ï7O‰XÔù#ÏÖé*BRs.$`õ34RŽäBæsTv\†o²×´õ5}NžùÛtÞžüž~Ã5*TXñ(5øzêÌnºW¢)°cÂèϼ• y¢I‰²_ýH!$÷éÖi5\¥¯Q䤊ÒÜÉÏèˆ:©P-Þ:)íþÂdÞ“lÈŸèá-ü9™Âi¥¿ç‰dÃ\|õW?ÒJ¤ÓÍsÖÚIíË \Ë ·¯ÓIÃKײ5÷XÞsR) ¿O7Êñ澍ٯÉü¥0o5×´Òq´ÂÒŠq˹˜ø.Ë»6j|†orûÅxHy\“p+ÂÈk¡Œ #ù¯ÙýÜÅÿãƒ9AyÎ%¤È7¸œC³Ñs:}4¼ôÔ•Ÿ²çìõX+% –až¯„Q… c‹ø"²sq׎ÍPfÙ‘GLMæ/ô“ïÊBNÎéV íøcµwíL=g+ÌbÔsVÿÒnº>´0òÇB³ƒˆ9qLöœn%’´“¯6¾¡»„obOúin1²6Yûäþ/p1—p_ç³Å5ÃŽ´Œ“ò¾ LNþ’sù‚õèÍu•F^÷™ÎIcB"lØòÎC‘¯OÚä›×rêV³ñô¶×–&“X?}Š Ó?ñçdJ–Fúÿ'Ç–÷0­ÁÐü—qbW(½Cvi¾Y!âXˆ_EœKIx"}{ö¹^ £ V>¬ÔŸë‡f¾–Ä:)lJ‡­”8º¦®E„»2¼£²Îʞ󜌭ÁÛ/Ô›]—¿¹çuM.6 ×sR¶öhx¨ ‹ "+†ô&…LÙnÐf?­Øk‚‰éÓ¹û½÷Ç„™>þ6Ó]G%álšz)X¶õH罇ø¤Ï¯Éó)Þôû[Ù<î Dz|»ž}Js/Ä­V8§ùäqÍò°¨…JÎýŠ÷mÖqÒéáíC\;ŒËrçl~”á:,ÇKÓɼ!ùk”oºÕ(¶U¨Paô0¼®´Å÷²dæÔ>ÆÈk1’Ñ«5 tíš»2¼pÙª•|+­G!ÇekôÃi1JIøŸäõ¬>—KKý[é>óZš´C²Ž×Ë‹²ŽÊ¦¯uPeÅ‘W«:­S¹NòwL> 4ϼ8hÎ ïRòã\Úhî>³-Fea‘C ¥sHµÂ7+PìoC-3/°«óOÖbÿ`õ\\oJÿÊ_“74Ù-÷Ú4Õïkc°•H¶=éàZfd‹IÛôñPFˆ·"Æuˤæ‘WáÈ}‹ *Œ ^‘ÿÀЀÇm<ÇÚÁV¡2µ÷"§rÚV”Ä•ç¬ÞÇý-;«Xm?VS׿Ó×Bµ÷XmÝÆkwnmrØ­:ªƒ¸€ë˜1,gey ðšæÙ?Y=ØâS+­D^ËÄPxˆkûp£Ë¹2âÈòÄr+Äá‘å”lË’5²ke¹¶%¹¼ÓÇ6-¬X³¼óþÛ:ãey6@;ϤõõÖNžåYÖmâ“æbÕbT¡ÂØcH-FKîm|«6FK‚è•-üVãjªð“BD ÑmÙ½ò픤P“šj‘Hj¥_F %¤ü’­HS ÚrÈ1Øp‘‘Ú¶Žÿ?’ÕY#}uÒÿáïÉ:¹4Ô÷Êo='+[JÂm쮪?`Ò¡ž(°‚ÈÖÀË8¬¿¦oÊž)J§ƒ F«ò"zŠJ¦o±G—þú¶-ž8²ñ¶éãÁ¾û&ö$ɦ ‹£˜X—½mŒñ­|˙呾æå±ü_åð®¦/NCHÛ:Ž¥eqâ›å£ Fk°Œñ£V„OµVZ… #a}®?VK‚„„‘8 ]Z1”¨‚U í¬†+ˆ4¼k™-V+iaäÅI®ë´’çëpÈA…âCH„îñœTH4éM°fò|.µç¾+fß.Ü^˜!xÂÀæ…½/$ôµ¿§oÈžjQÒ×—³J°% LkA+|+Šwÿ¼4MHÙ‹› Ëß"x×…c‚?c×í{6ãÑÜyg+ŒÊˆ! 麽‘}Jq-Ä-~ .ÂSþÉêîuûÛ2åQ… FCú\¬¡ *]ø¥$¬Ê‹¤ä?%×5Î2…NA4"IÂú\Bʃl×õÑŠC 9Œ~ÚÇèc9ãIœóÉÆGž/-#e6ý¾ÛÙ™Oð½¦øYVž£’}lóÑêÉ? NJB;ý™…Â7Ù[NAñZg­8½V8æ‰Ùn¦Xîr­ìH!a²I¸$û%ÿÁëÒóúôyžKÖŠÚðÓçØ/Ïß™;€úÄ¢ùï⊡²`(yY£×òï'í{$\¡B…±Ã0g¾ÖXq³`{…—vR²÷ ©2…˜}Ž>7Tçå O¸ØÂ~$¶"›BÎlíô9þ'y}á³C6—E+÷–É_{]ë爃²Ý¨ö]E¶è®Ú¡æ’g{Y¥ŸÍû›VùVFŒÛwØ®Y#­ð9Å;†PZ‡þûE|“íoéX#YÍwýû˜=*TX1xEÎ|m Ž„ÁZüˬÊ*¼ä\ÞoíµP5ÔªH4x…û<Ì£lÒô›ÐsÊ8‘mÞu©ÅÛ8=Û>GZ‹†‹ø×ð)ñIvåÖBGf¯‹ÅϦëuG%:Ú{ú yžk#¡†ù½ðÏ>+$pbü §ØÉ-ÜÆ.MyVÄ­2"*ôû;9Ö¢È^_+]– qï¹ó8¿f³è;¬mÞ±FQzÇ®—)S$,Û‹¼6W>Ù{ÊØT¡B…ÑE´+mZ,^<… 桇õ.šÍ¬.šÎ4B3_‡À^ÒÜ}RèÈý±šŸEȹy÷YÄj«¡Â=!åaÞt¥y¿óœVQ:dƒNïÞµÓçr_¨yqÙ#èf–»Oˆ£Uqaχ~_æž$ëZL³˜èôòž²«¾…â_–‡ºÙ9P–“ö\LüxÈ>ÏrMÿ.$Ä-g#úœ{bq*Š_xy:'›´­•<Ç€º¯ÞÕŸnè™*TD_÷òÔ““™dÄÏÄ­·eÊÎ|]„ÿkËP üdö+Ey._­™{÷›2ïiØft~ˆÍ›ÎÛ{C]6±ûm¡Q~>Y³tBö ±<*ú·ÿ¾¨;*ïþxwPóçáöwEÝ:e» b¿+ËUݪå£Õ<+âH\5󭈯¡k) ¿åî³R>Æø»Ÿ9T„òÞ;WT)[•Ýëú9•0ªPalF™T_÷Åsª–¡^Ý8¶3_‡Š‹Øµ˜# (}ßPà9”"qâ=§LAz·çäŠî 9ÆQ`߯nSnÌIGÊÞWö¼÷Ìй¡ò¬ Bùì+Ë²ç­ ¡M„¸´PÆxhãTæÊp¥èšÎ¿'Ó·4ÝâFhoÌr/[+ÿá *Œ<¢_¥M9‡ŽÅsYÌbævÚ÷§0ã¨é3_ÛOþ›rV°èíeVå5üoi™`Ÿaß{WÈùy9{-%a æ7lZ*Þ§âeá96;ÁܳÉÚ¬“þë¥Ï°4™T2U‹W,m<ìÍ ÜÈ>Ù±—‡ö|Bš­j®¯y÷ës0øyùãh§?÷ ¹îźì¼REœ+Ã)A,ýR:¹…[Ù5wo+ùèå«ìõar^óQCÏÝS†3vÛ˜Çy˜wç®Å¿ ÊüŸËü÷uøMÉ3¹Ù¬äú‹¼6+Ÿ¼ßD|*T¨0<Ì|]ŸäqN‡=ßÁœî§÷)žì˜Cww7ÝÝÝ,˜]."4d©,bNèµü»i2º²N«È‘<Ñ ßú[–²Î›%76³„èsggÖ¿Ñ÷Çœ¤“tm|›éÁßÚßÅeœÖzIoáÌÊÚÁËñ85Ñfì·±­Õûµ eyKÛ›é,̯Ð3B3v‡fŸ×œñÞz–ìÿšÔg&_/}¦É–GÙ¤?­pª Be—¿NßšûåK5^Ç?ÝY¿õ}eXR¡B…ÑC©yŒ¦Îì¦{(S`OœÎ<õ»‰“&CÏRž†a­±¦×M’}+É[B£Œ³jÅQY„ÄDh“– {NÛ!­ºÕHO¤'ï‘ç^f«4>ß¶ÎÌGO'of½ô&§KùcòVש… î¡ä!±`¯{÷JÚü!}‡û<›Fb§z"Bý ï}Þ¬ÐeΕá\™´ˆ¡ˆs±¥JìÌñškb‡¾fmÔé)Ç!îè°µ½¡`ã:è4¾ÝøßÍÎÇÊÁää/ ˜t³|²"\þ£ö¿Z„jÙ FŨw³gu5[w0§{žš=‹®˜2cAKë¥õ>õ$LÙvØã’bÂè_¬Æêü#W ó¶ˆjµ+¤C)ì·âbóœÅoÏIé´Ð]ÓöxµüØšOeÖ‹9ªX¡JטPÐGóBßÿ–¤‡þ2^šHZ§$¼Äk²³e„‘×*5­—±ôð ã·7³ˆÝ›žê Ìc½L,þ!»Ê #Ë¥Þd=&¦O3%ý O$f×7ãQ`KWÄ…â^†wžýûp=7°¯_o{<Ý8{ŽýŸêí¬Éêü£I„‹­z_•ªPaäïJ[²ÎL &²õ¶Sè¹ûþ¬[¬wÑl:;;ÛlÙþ²ÞE\ØÕCÇÞáqIóçÏn‚—x í ÐFymæŒþÅj¬Éó´Qcke÷ü7f÷<É[2Çô;Þ™€­²âë.:²ð윅of¯,|%‡õBóBŽÎl;•Ó€závƒ6ÌUY·'ÝYAùq~˜…·åRîg*[ðpvþü!soáÉ,üFþ–…×b5Ú Õø´3@;¯åÅ,ü^b€ö&¡³ÿÊ~+Ï©ÑÆ›øë 0k”ÕoOŸ`cÏlÛ’‡2‡¶?Ïœ– %a/nÎî?”+²ð1\Ýw:§ ò€£²´½šƒ²° !åG|,Ë‹Ÿ³]&4ä=´QkrTK™œåµæÃ2ÖÊÂÿæu¼Žò"¯¥þƒEù&áçy½ûü¥LÎøö{6Ê΋mÔø9Ûeqù>;eá›Ø;‹Ãš¥ÁùÌÎÒáNÏî9’n:K>¤$ìȲðvü<Ë;ÉÇ”„ø}–ï“Yš…ßÀß³ðšü#ãÒëøwvþµ¼˜ñKø¦¹¦ù¦ykù¬óN~GJÂü›÷ð`fgw‘’°wp»’°7fqþ,_Ïžuó³ôÿ)À…¥í•â ÑòñŒcwó,ü0[dÂàíÉïi£ÆS¬ŸåïßyC>¶«ÕÜÚÈøÖÎ@)©\¡B…ÑC²lÙ²@Õ³—E–¡Ž9ÝL»·“¹‹ë¡e­He×G«Â~²Å&‹ùóçsä‘G²þšƒ]J²ÕâÅ©I$ÇãèÏöOãè§ÆÑÏxúhg ·×á ,wÃí 0ånØ>CÞ+ay¯„µ½'¯µB×~mAŸ’°/°Œ5r5p]s ”$V¦à7ɦÔh£ŸqÔh£ñ¹pãÙ‘õ=k´±œ Ù¾ñ Ð Û{ûOû°+·æÎ[úÇCé–¼#ù]æÀ%º•BÇý9Ö` –¹¨ˆo’7:Ò¦<Ô¼³yo¹aùâ” ·Q rNóÚrÍrÎrMâj ¬Á ¼@}’ÐÕùgÆ5ISÛJ$aW·G“Mry«ó¼FÛóSneWúäOçô½Ë™ÀõìÀn|'ãµæ¸Øó«ô½Y¼7Jg€vú—ûïx-cÏóúFúü#û_ìÔX 7†¯-ûxVV¨PadQ<Áã”ìa•ÏÄILv~ácdD‘F{VÜä·6j<ÇÚîy[¸ÇºØbB#ÖCè V”Ôhc~áZ'NC‡ÎÅ6]#/s¿l¿Kêcv6KmöØÆ[ÂzB¨ëf¯FK€|²ÊCE›%¿nrð–š }ퟬ^È£¡r-Ä»"¾y\³i®Ó~nŒò­ˆgú\+ü’ãçX ke*â­m5Ú4} iÕòmè?6\Îék¡Š—æÍ¦Éo¢Ühg€gY7 ì=U‹Q… c‹Q^DväE*Öq¼‰gH”3’BL×äË8ª2‚ÈHE…›'*îæýÔŸˆО{Ÿ.má]£Í­Á{-FqD1›¬}[¤s2µézJÂN|€[ø¤ú¦+î°BŽÉ:#_9—’49)'ÔÎ@N°I-’*áS¡ÂØ#"Œdæk½Oñ$P8Áã’{ësuÍ¢³kðt«ƒ¶-Æ©ye ¸+Í #¯fï9ª"¡T!Q$NÊ:+Cž“²â@¿·5Ë‹³·µ’Ÿ–k’·rlE¸pFÒF§§) Ï4JÎ7ó4iCˆëxT¨PaìFõAÖ]]]ܲd:Ó²ó½,º°> {ʶ[Ç?»Ÿ:“î!}çG¬Åh)“y =…ÂHÂö\«Ž*ä¬<à‰ë :¸‹ŸSwð¶Ö]£-]·1ø‘WëÕÏØ£P-^‹ Á´ô>îJ>tTÜBûEÅ‘†µ·Uad»'¼øët²¢A0N9ª^&±^ãÏ‰Š ^Ë'ÆËˆ#{Þ{-B ÝŸ.n`ïœ)Óbâ"Ë9›‡^‹‘ˆ%ÛbdóCøö@²%ïI`~Áb¶ òÍã˜1Ña…î ®¥‹ý¹…NvgQ“0úYú¡º]ɽÔùªÿŸ:-%ü¦ðõ9‹áE6V¨PaôíJ›8}o:ºæ²xngcöj=v{`÷X+#OmÈ ܵ؉ #í´ŠÆ U …jì²—ðOø0Z¤uPRk§FúY0Øb¤í°ÎJ×ÒhçÞd¦¥÷«ÁßÀÞf±ƒ¼PôìñòU;+vRòŒŸ¦Ûðä.úi¡Ÿi””ž0JI˜Ì_ÀᛵAÛ¨9e…QhŒ’DZ²­”!.ùø- FÆ+Œ¼4±œ‘kV†„¸pËæ¯>ç‰#Í9ÛG IžoÒmÛÍY*–â–¶-D’ÇrÜÎ?N?š]Ó"\¿Q§Øô6þ@ªZ¼Ç9ÿóJU¨0¶(cTŸùzÚÂNæêA¦Ì`Á¼¢å@Fòu–ÀÖÞe/ç­“ÒŽI×îËÔÞ½š¼…uþ!qdIlŒ‡Ü/N\l—s6Ξ}r?ÀlÈÛø#ÐÃïy{TiÛÄa-N¶£#½‹¥?ãGÉî Yûœ˜8Ò6Ú½+Œ¬£²¦Z®‹Ès ÏYy|Óœ³ü°-FžðŽ;²ÄK‹ß¼ÖI‰—DZx ×´€ôì²ö DtkÄ„‘µO8wwò~¶Mïÿ'¡Ö¢ßB‚#Ä3o–sÿ™ü47¶Hx&aÝRâšÎÇ *Œ FwæëQÂxú²°-ØcS6å7M™76Ô½6”î m ¯Ie…ˆ~ÎÜÉùH®€”&zÙ[g%ñŒ9* ýì>Æ—v¦Ú1 >šþ˜Û“³k‚}¹oò©&çWFÙMÞ~ßâ>Å-t²ÝYœ;$?b Ñ•!6êÚ»DEÂèw¼“xwÖû^f• Sõ„‘ vKoãæ¤3;¾†ý3‡Vä°,¬@€Áî1ÝR5Ž~nN÷Ê‹#§ÞÎ@&äBï×Ï\…—sy⡈kw¤E]¹çôyO0Y„ø¦´Ø¥ã!÷Špô8ç‰p+À=¾½Ì*Mv¾ÄªA{u^hžI¥á{ÉNìœÖ'?”ÉzBÅVđج¹¦óF -C7¤õeBvO‘6&ÆÔR8çýw,×Àç[+¨Z+­B…‘Gô«´I“SadÿèRŒwjðRˆÝö|€»\‡Fž“²Î(ä Ôm¦ÓËÚn¹fÓÀ¦n1º—m˜Æ}lÍî9€m IDATæýÁ”ó…pnW¾›ñmôÛÜì³ßàšw1¾é°Äà`®àJ©Ïº®þJã-pò;ý_޵LÞEà® ßl¸•ªPaäc4uæ:ÏeñÝ÷Ó;}ì[[„Æ|ˆÿ"q¦ôjòžð)#’ʈ#ˆ‹"9ë}}{f_UIM4ä(CvØgz¶ ¬0‚âÏ©u¡c²{§7åž?@;_çhî& ÕÞ­ ²¢H N€kÓØ/éÊÀŠ` 9)-ˆt<=n¥$lÇbˆð­H…D’èEb<Æ3ŸÏ.åsÔTúظÇ´’߯8¯ãï¥F!¾Y®Å8w Ÿ¤ŸÁ—}ÒsB<&Š<¾ét°|³Icßä:jJÀÚJN¨•¨FÿÉOs|²|³iU¡B…RcŒèéb–ž¡1CÙµÒFXÞt.䨠yp¬ma±µô¢Øe•WØk[mí[®¥4uæ‰;wýž",gBÎf(¿ºì¯Iöç€ôÚì™eœT+Î*v¿¤•þª/Ö•áÅS0奓'Š8gáK¯•Æ%’gZàè|Ôq¶œ»å~Ý éÙkãFá•E¨…Òã›ÍÃÚéJöcFz]&Š®âÀÂîR.6% u…øöéäÔèo⚤qÈ~ý¼ñ1>ÂÁá[%Œ*T[Œò’ £ƒX‹ÑìÌÎÜ-vCB#&’ŠZ‹Í·2®ÅZŒÊrÎãšþÍÁÉ9®é4Ö¿ñ8õÿÎíì’=ÏŠp*T;(a$-DÒ TŸÃh%úJ?ƒm1Ò…ñî,w…®°@ 9…Pí^ïíû¶³ÎJÿN‹¨„”«ùLÖ•æ9ƃŠ9)ßa7vçVvæ±{“X(rXV,]‘Ì!\ Àaéå\œ|!ÚZc÷’6nât¼® pêî³v #ᖜە[!À7oï #+.bB$öÄ@ÇEÒP⛲€™ÔÈ·Nê{%¬»<®yœ÷x'(Ób¤ó@Ÿóxó-ȾrÔyvhz_MwóÞËïP^z\»8ýbÖ2¥Çûi!åñËž“wOçÛ,â“€?¾HÒ§B… c‡]icÓ]CQWšÝ”H 9+kƒÀôúí˜<ª±Ë>ä˜böÄ kñÚö"$q«ÑÆa\.àˆôæ'³rÎ-ä°´ÍÚËu‰û‚4?ØÔ:+m„CÒ{¿Ø‚MçßÄö×½”…É£ÙþFÃæÀ…éѹ{ì‡ÖO Ya¤m°"¼(Ý*T¨°bÐÖ|êIžê]ñ†´‚ ,n7±7XÎxú²½·£?Û{› ˆÊœFEbBoêMòöC¹"gMã›öÞ¦S‡6ܯ÷v³öèM:½0ùb>2]àvs”qRZ4´QËDѬdðeI=o:oCù/üÎÌàÚ¦êfO7åôïíq®Y›½-ĹB;Šù.×,ïBœ‹ñ,Ä7 È5Ë3ý Í5˹ƒ¸:g£ÅÌô"—g!!«$iQ4‹:ß.åóY¾éü“Íãœå‡p py$ÝkE[… Fªt™Ê´X¼¸‡®Y µÖë£Y¬<ƒ¯¡^ÐÈUHWšœ“}¬fªÝ{…fLiذ¼W m]3×­óµZW³Í^Xïm¸ B-F¡°W» ÐÎÉQ^À1éÌMŽmªYÛ^lÖi!Ûyé±Ù}ú3} ‡Æ†xöÚ½Àxý®Æv¥Y{u8–W×dß*ßlþzSÒùq%Wq0è_ Ÿ ƹj×Ô™ÝÌÁ¬‹¶"&ŒbáP!_ä<ádÞ£JÈm¾î]ól.㤼ã"´ê¬B×ap•ös“/qlzsÒs9;9.ø,k»¤ßÜô¸ìü±ÉÜÌ ô¤Ž­ˆ!ÏI–ý"MÛ ‰${\ĵÐóžíšW:Ρ÷{öÆöž+Œ¾Æg9ŒË9ˆ«¹ŒÃšìŽñʦÐQVœó9šÎKfó¥tǦçqN2§©ËK#Í5€³Ó²ku¾5Ïex‘Ý¡÷¯T¨w³gu5¦­‹Ux{Y4{]=ù³sº™¹2·¨Pahj\mìÇ…f¾Ž £‹˜ÉY˜ëk±sC ës¬#*+z¾Ä<Îçh×i¨ÂHÛmãà]óÎK·ÚêbèøôŽOÏáÌäËM¿>ÖvŸ•ž˜…O¾’9©”„c™Ë¹ÌáŽa6ç5ÙXÆ1ÙcÏQ]Ì9‚‹ð£6\Fh”PÞóCÎU~sgs6ÇeDZÊòl(Â(tÍã›KJÃÌã˜ÜsD„§$œ“Ìá¸t.@¶¾…¸àÌô¤Üµã“¯Í‹Ë8#m—µ5‹Ôç,+0êeÑ…]LžÓͼ©À’…tÎ^](¼B^͈ ¾û¯ÒB3_Ç_Ã19£ñ¬<ßÒu[ôˆÅË©•BõÞÏÝ=SØv½Æñzë3¥g)OÃJ3©o… +¯ÈyŒ´0jE”-Ô‹^™ûC¢(Ô:Ræ½eΗ½ÏÚsb¡‚ZŸ?‘º:ƒ³úúéÉI¤$œ’žžÓa''§5Bµ¨Óie!ΘÓѼ Ý·"øÖê1„q«¼n룾7&~†Ë7„-÷œžœÄÉéÙù"®ð­y†õ˜ŠÍàWîB­š+“™”SAõp¦”Ñâ¹Èˆ‹ªõ¨Â« ¯Ha$ /z8S9…SWœ1(j¥ðpj#+õÔ:8{DÞ©¿NóâqjR?>5=NINm„Š[Æ ?{8ðœÕÊÆ§"xiEòIÃ[DV0”OÒ½xh¾5ÝŸ ÞâÛ ×@øæqí”ÆÛÏä¤áCh8@ÝŠòÂ(4ÜüuÔzÍfV6@h 3ÌcúÓKóKbNœÄäàS'2}^7ÓõóæÎfýó˜^5/Ux•à)Œb…ÊYœ%jþE×ËÖ Ë´T´zîDΠ¿„e¯—…vVE­¡ëÚQÄé îÍ;${Oq¢Æ¸\jÅïÝãñÊò©+#ßNæ4J¶¨]+s]ÐJWZ¾ÙÿøÂ¨ ßïk}¬žÇ·Ð½¡ë±2ÌÎ"C«‹ÈNœ>îéöìúLaéàaïS< ¬_êy{ÓÑ5—¥U¿[…W^uÂHЪS)4;{_ì·­ŒSªkË™PÊ9ĺgú—+3>&ö¾2ã±`p­´2öÙãc·Ïc6­ ‹¢ü(“—Ãá[ž •oCåZa4¾Cýsúãù ýÎõVò¿h ¡wßpø&©£‘ƒí:³]k*üßAùªÉJ„Ø”…_bž;Ÿð16ÁcÑd{ áUí©¹êMìštïŽoš`O‡õdxe&q,;É£7iŸ}_h‚GŽÏYœèL^ñܦ§Ngùµä…î>;³›&Ü Mèh'Þ+â”ǧ2“=†&µ¼³zœ³|“´²ñí,NÌñMx¦÷vrÇ¢ID‹¸çñ)4ÉcY¾Íå¸×ô$•z½4 7³)qEGÏdx“:z³9’ ß׊pòö6ü"¯ÉÙm9çñ-$2Ú¨q‡òY¾–ý^Z857ôÌškÖFï=±…¢Û¨q1_à.a ³™»[áœ@Ê/o6 +T¨°â±R £23_Ûïf:‘®4¯P/Zµ[¯ƒ$µt)H­#°¹E‘0 9Áƒ¹"[ªÈqÙ÷„ÒÅBÛÛÉÍt³'×1ƒ=¹ÉuR^Ü #™lOî9‚‹¨5ºô:]žCõì 9+Œ£?gc™uÈ4&°¼é\BÊ-|’ÐWŽ6ýí¹P+{< ‰Ù{<Ó6x¼Q¤[X<Þ•J¡¸[{‹¾ra£ó#$ÀR>ÃÕô+ÎÉ@±ÁŠ!^.ÆŠoóD¸æ v§yÿ‡¢ñ‡ãµu¸F*Œ-Vja›ù:T{v¨{¬¨–n *¹W¯•d 6ëм÷xƒ‘‹„SÌÑÆ´M#ÏùkèZ¸vV¡šµþ}?ã²%¬£wyidíÑNC;%»éwË`YëØ¬óŠ #/=ôqLxzyj²y«Ó%”FúØÚhóß{—,"IߣíôÎñÍËKï+G},×=aÊ¿k9€¹*ë¶ ýµØ J}¯÷N½·°­`*âœ@‹p/}*aT¡ÂØb¥F!ŒWƒ«!_ ïÈø;¹NÊA@ÎQÄœ·u Ö¡Y›…Õ6ü‚ûx_o–+–o^ g,ç¬(ñÍæ™¶Ë{ÿeÎÁ\á¶Y‘d¯k®•G–K:­íöKÆ mg€[Ù=û'ŒôýÏôÞ¦_çd’ÇëØ—ý¸ž½¹‰o3½‰‹!Q÷ÁlÉÕf¾Y[ZFú•V—©P¡‚'Œ–,¤sî“õE ‡9Õ|LÝÏT ¯©0÷D…vPú9wR)I®°õjðž=ú÷ž=ÖIxWnmšÉW?C®Á`Ë„„‡+Œ~ÎvlýA'¥Wëçka$×>Í7®4[kÙY$ެH÷†81OµÚbô+Þ-”Þfy¦ó.ô -À%?C|³ÓakÇ!|=×ùh¹åµ…Æ i®yïÓ(#ŒäË2Ûbd[ýô³wã; àá‘´öÄ‘'&c\ ‰ržÛ»WŸü‚­IFPUb¨B…‘ÇŠF½‹˜=w10eDç #ÏÑØZ»%Rˆz5uq>í d,ÐTs!æ,C-FÖYÙóVÅjð¡Z¼†.œ·àAbK`°ï #IF i®%NîGêÖÙ«Å[a´+ßåvÌ9+ÏqIX`'ìÓiÊ[›ÇVœzÂHsÇ ù­ž(ŠÙ4¾Y®YªT”á›'ŒlB-F)ƒÓ>è<†Á×ú}ò\I3 ‡ìôPÄ7;ÎÈ £X÷š 69¤ÎË *ŒVÀZiKX8ën¶]0‡Žz¢·ö”„·ä!wý"»Zho[$b›WÀYµ(X14@;ßã¹u BkZéµ­ìºjÞy½ykž BïÑ6ˆmOÈ]ç‚ñ÷ ÿXí=ä¤Ú¨q+»fÏTôò[oSù%ónwU0áλùut­³¢u÷<ÎÙõÐl X®y| ¥óUìrÍòÎ[·¯Îé\¾IXsÍ[{ÏãœæZ¨âP$ÜF‚o–k¿ìzj‚­x Ç%oµØ¦L…¢B… ÃÃ( £^Íž sÊuŸÍŸ??º 6æñ¬PÙ„ßfáÍx”ßòNÆÑÏæ<’8[ñ@vÏ4îËÔ‡øYV°}Œeáݹ5 ïË ™c:odEÓøj–ÚNãT î¤ÎãØ¬ û*_ÈŠÙop`¾‰½³ðwÙ•ÚÙq';dÅî]tdÅì}LËœÅl•„ͳð£l–9¡ß²Ivþq6ÎÂr¾ñ<Êf®0úïͽWÕÏøýŒãNvà£üڹݲ¸ÜÈ>ìËuÔhãjÊÖ%‘ìç2'{穜–…¿Ä¼,m?Ï¥Yø3|3sN{qsæ¬vã¶ì·ãGYþ~Å™ÓÚ†_dØŠ²û7ç‘ìü¦<ÖÄ«?ð¶(ß$¬Ÿ£ù¦ß+öX¾íÆmYxnÌâxWgqÿ"gá9œ Ôû霒ñí|fgaIgÝ’%ù"aɯÚù1Íxµ˜fùþ ¶Éšo¿æÝ™ yŒM³°p pù&ühÞÊóhÏñ|1̉p±ùVvÏârûfa‚) óÅŒoòÔÿS€c9Ïý_È7²¼Ø››²<´3ÀGùqv¾ƒ»²°ä{;¼‡såœæ”QšW•0ªPal‘,[¶,Þ'T½‹f3««§q4… æ1é–Næ2‡î™S%,켑õ‡1Æhþüùyä‘,[ss õ/r¤›ÀvHlöÖZ£-sîc|îüíî9!ò\Öï’°µMì uu@ø 5VÐ<ÖCjÊOðv6âñ\K…mÑî{Ø€í¹™yZ wqÒF-«KX_×ç½sú¹r^ÎíÄ÷ø/>”=3!Í®kûR6å1~ÏÛ£]^‡ì½tל³œmkä«Í{'öœå”å¢ÇÕ×4÷µöÿbÿS1‡Ýü…ž¦´Ôá?ò¶ß¼î(͹»ùáǹ¼·œó8£Ï…Âõïõ;väü?>ØÔòçµúÅø¦9–²ÿ¿½s’ìªïûgf áýMíh׃ÀFæ)#GLˆËå “m`‚+£Ì²ÎŠ)ƒÿ€J{ab펃\@É’G°VKƒx¸R‰ ã!@ÞØ"ÈÀ°»³.@È »³Óù£ûwç׿þso÷<{ö÷©êêÛ÷qîïœóëóûÞsν÷Þ\3À_Ÿ.Úà Ö–5›c446E}L¯Ydö° ßÄ ¨qr²ÎÄ*^Ǽ“%ÀF?Ç ¾ÉpG#®ç%èchŸ7Ó` è.—ÆZ7ÙV6G@cm´ÁÓq,3ÈÇy)/â“nÒûV VÖm«FÂ;Û,“ò!`ó«íÑs<Žq-¯e&D­Ðtm ­2Ô!èà$Ö›ûa÷OÕç^Nqªõžq[—r^-N¥äx¯ÜeYêLçA×…,Kzöx¯n½2¾ë¹–¸þf}*µ^ûŸí‰JÕ¥ô¥„‘ ËLÊU|NÒû4WÍ[ý—[½*’†.±m€• ïÖ®½ú›'Œ´Ïý"_àïx*Oã¾ÉpVEPl.ë8ùÚ¾•yõ=F‚Œ©›˜“\B£Õ(I##Ë:°Ëþ²4FºáóVY¯BÊ.ûI‰£eùg̱”¸z×Ì+°Ä†Ú¢eÙË N²¯ó4.åëEzRÞ:ï:8è;ÒtªqÄœ‰”=žm:HÙoù|œ—ðÏù+Fù$Ÿæ—²ÂHÛ.½’'[§Ï“Aù›'tE j’2ñĤö5ù¶ËÚos= Ú.O -3È8Æ9ãož *L)®}MÛ ‡¿¼:´·>g}EÊUÊ\ÊØŠ¡2ž²KÿÎù›àõYŸvpžo±V&q{åÂ(6—¾|ŽQ®ÇHF¬ôS‚4¾rÅ. ™üÿŠ=Õ³`I]ÅÛàRöI]ÑÛýl°* 6¶'Åö|@3H°û,/l+K-ȼ€• ñ9T5Xy X—òÍb_¯Ç(W·ºLužµ×ùòzä|r¼×#)ërbÈ£ª÷ü/ÕK”FÖçtåzŒ¬°Ö‚ÈŠû¿µåžk^û`}ÎÚ–ó·\e®—RðD¸ço!Œ‚`sÙ€»ÒÖ}'ˆ½ÛgßöÛvu§Ö¥‚i*HUG~æ (ú¬Çy‘°rÃkõ¼y1zpŸIŠ´{Ø_*„d-Kï ^+ï£ýÊ!]ÏÂ"{’%!>t1–îSöñÄ™îa°b¯ì“ò9üåˆ;wý¬LŒÛ:¯â?2?Nû½»L–S¾æÙ#Th¹‹‚”Ïi_Óua—µý>“¬SY¯ýrˆÓ¥~Sî!œ‚`=ÙÀ£&꫘X¤Ð4Ò¸=Èi°Òû¡ÝxJ:ÒCd¯Ø» PeªìJ^7ð¿Ä§Í”áÎ@‘š÷Q58Ø<Ø+s F^ÑÂHÛ®ó2@ƒW2KÃÏÆ2q$§Ë/‚ÍaK #{5$BÉkH¤‘¼ˆ³ü˜G\uÊ>²®›dQ¯I°AÄ6àŸçù<“¯¸ÇP« úÊ\ 9Ö–¡ÍGê\åŒqOǾ¶,ªà $»m€_âÙ<‡/ó <À×¹4)(lÀ³éȾ;9ÏÏãÑeaÅvUÿ²ç”ßú<½¢ÏTçU\ͽIŸKùVŸËõÙe½WÊriý-ÏlõR¦Ev¯¢"õŸNÕUÎå#½“ÿÀãŠuâGEû”J+„Ql.};Ç(Õ¬ÿ„‹º F9ñc×—5œ)ªŠÙç¹|ÁmðËÖuðrCä‡<Ä;¶}‹a~ž¯uØamzuóí•OUº©G»ýgønr[ʧηDaªTmoS¯m{Ÿê¦üöSo«{LY=öòêw‹i;rÛ.ãþŽ}S¿mz9RÿiëK©m¿ÀnÚcR¢HûS7eÁÚÓ—Âò½eÒK˦áÛ ©ÆÚn÷–Þ?×@VÝ^vþ\£[fwÊöÕÒHÈí§·á±nºe¢%µÍž#·Ý/·N§µx¾VÕ¿¼4º;¹cEˆŸáñmëO±7{^k›wN{¼¥¬lË|êoxFéqå¥ÜÙÂ(6¾F©€pg;ö+ p²¾ì\Ý’kÀr‚â‹\^ùøœàéF,¥l“^#€Ó %÷óìù ^–´¿ 9Q›_åé\Ê7Kë/ç4ÚúÞ±ž_ØôÊx ßà«übÒ¶2[ʶå°u›¼òùY¾ÀC<¾íØGð“Òs„0 ‚Í¥/…QŽŸ²»ç²ÖòœÏá‹]5ðUC7û<š$·]Ê×+¥÷/ùXéyÖŠ²ò·ó=¼c¼4%Û½ãsB©Ê9ךýÔ×ýšÕnâßæÉÛžÞzëVãkü<Ã|«t_ê¢Ç(¶[zòu¯lFñÖç,ëå°¿åüz¹—´=äâ®öß lž¿Î¥<•o°—S¥ûêõ¹²©ZÇeC=½¤ÙO4}°;Íx˜Çð=žT¬ßË h½q«¢ëPèð]ž„~jºÞW‹ ýÛ¦ÁÆÓ—=F¹.z=”Ve©,€­¦‘êFÜh¾Äs»>ÞªI zÛ½´Ç?tœwŸº*Î - ÐXõPš74èmóŽñ¶W\fÊšB)í'U¯ä»ñ7ï¸Ôïªè¡´^{¨<*K3·¯çåLÛ¾CFÔþ_.«tÞ\Ö¯®ài¥Ç@z(­J/QôÁÆÐ×=Fž8ú %T`µ+%ºz!5A/Ûñ\¾À9g{JÜØô<¼+Sý;•öø^ñÂÔæWKç´y^ÆG¡ÈIo”‚\=ƒ§´^[ºÔ²k)[§Òc¤·-›íÚ&O¸¤‚XÊßrërçê†ýÔ9Kz®LJ@ëö)'–Å‚L‰rýy"ªgOµ?æô2îg åO)QžóÍ^ȉY[/ßd˜A–‹—Ä6ÔfRn?æ4èìÕÕåÂ'6—¾F¶Aêöj«,p¥~W\©«mO¤¤öÕÛõ±Þº2[rç+ûT±µŠPKÙTO¸zõ©?plð±u*Ï J×;Î;û¼tôwUz)ã\]¦Öwës)_í%Ý”˜ò¶çòdÉý§ËêÒþ^M{cÏÁæ±¥…QêÉש‡ B³«úGüãb]7ïTÊ5zšT ¬Jª‘—u_ày<‹/'­Ó[ÔÇéW*ès‰HÙ°Úgð¤‚ÜÇx9cÜ“ PU‚:ä{óª|ìC*å¼úöU3Ð|Àã9õ7I7õŒ¨nüÏK5HÊwSãjî-­/ëcÞƒ*õz9.….OíkòÛ>µÜ.[¿¼Ÿgð¾ØvNëWUýÉ’úO§ÄL·ÿ )³Gòã¢}²ç—ÿêjë=‚Õ±¥…QêÉשƫÁ?ä‘,;Á©—@• ^½’ Dúó|>ÛzÃXû“™m Òƒ“4½ÄÉ9õ²µ!Œ¼×nTR/ç# ´ÞÒå³,ˆåU·AItûDtI_¯Ûβ«°ÒI¾·œ³'ç_©óäüÏKMh¾+­s[ÊBOé²,³ÑÚ‘;Ÿç{ÖßžÉW°Ãk^ž«úWŽ\Tõ7[&Ë òÍr¢üÅïrõlÑñÞ´ X¶´0J!Wù© %ëeOYÖ¶xÁ=—\ ²Á©ª *Iö\e¤Ê·›@eß§å½f€F[ïZYÉy½ó{»ì]czß2ß«R>V,èuZ¦^‰¢ßç–ò5)c èÚ.n*}Ïÿrâ»ê“ÆSõZ†çg¶Üm½i_“|ëžH¯¼Þ8Ù^µmCA°ôå]içÙÁyv¸Aç1<ìn·Á*ܼß^°* P¶A·ó•Ïgy¡Rmàèæ³£U*úw·ixçÏåã#\ÝU Ê ½\&ˆr¢¥ìcýæñÓ6ÒÛS>èùgk5oH ¡”ïÙ@{¯N¦ê‰ßnýÍó% ÃçVûù Ï®$Žú¼Ý©A–ùc]‹"MJUý䆿ª–Âãø~×%§Ó·~Xæwž¯"Žrüƒ¼¦ÃÏÊÄÇjý èX'Ï÷)ó5oÛ Ë|ޏ~VEŒWñ¹¼”/÷?Ï·lÝÿ,ß)-½*vA°~ôu‘×›°ÈžÖ5ç@G£Õ` £Áª"’l°ÒçÔvxØ«VO É6Y~ŸlJ“ž"ùä¼rå9ȲPí¾){l IÊ*¢h€û©3h†ÒRWò^]–(¹z‡ö^"©ÛA–³¾¢¯â¥¬mýý9­¿è Wu^’öÙ^¹'ŠYæµÌpŽt/‘^†¦ ‘òIùšýÖå"ˆ@²vé²Î 4ÛcyŸa°õ Ñ”8ò’ç÷U|NÎ"~–ó5[&¶\äœ'¹„ój›þÿË·þA°ñô¥0Zªø\l¬0’åªbÉÀ²«·²Ð®ƒt(¤$=®äYR±MÒ­DušúÜe¨j/R™ Ò¿=;sbH×14År*0Ù %"SÖëtSÁ4çoÖ?rbÜö,¤ü,'ŠrXûµ¿Ùo©oíkR&"Žl¾­ ÊùÛNõ޳2›R~gERˉ£n}N×oJ IšVŒÛÿ©”—ö5ù¶ûA°yô¥0:ËîbÙª§ò ài Zîê=Õííí›Ge)%|¬¸d™óRFù붆WDØ#Énºç‰ôn{Žº©Óë¹%•O=TÖ`  ¶>´¯é@ïåÝ– ”÷¥„‘õ9>/æìPCi©žK+sâÈÚlE’ö7¯ÇHçIÊÌó9±ç~.c‰ö!´FA°µØÒÂ(õäë%v¶5VØ`e…‘mJSCÝ,‹tch…‘nÔ½`e¯è½¼•Ù%Á°Š6XÙ#¼ô:/Hu{Ÿ«OhŸã¡{Žt°’ý¤,åÊ]/K>=›l9YKùšþ-öx½Câ‹Ý$}n»œªË”Ïi‘d·þ"‚¼ŠhÓ¬¼¼7mcJå|.7”kÓ³~–GÞÇŠ!É»ì¡ËGÒõ|ÎæÍû¤|-‚gK £çØU,Û u9_äó\ÞÖ€ëFM¬²9Fe½GÚ†”8J]!ëFV®â ð1^ίòß‹†T÷Ùeo/ˆVnà?ÓH)ïJ=¨fø7ü[n- ¶SÂ#¤ sB¾Î£ì'Wð¶.R¢h€Ïæ+|™g%ýÍ–»×«`}N¯ïVŒ÷âo·r×ñ§Å1º>mYéò{e9åk)ÛÅ9×ßìy¬¯iq£}ì/ù~¿ÈöXæÄ‡õ¹2“|êú”ÿ¡N¯ÁÊ\A)+ís:O/às|žË;þÖ_ƒ Ø<¶•0˜ç…Å}P6`Ù å&Û{䨔@²¤D‘|tƒª¯2_Á‡9ÏÊäW}uê ½TÐåâÙf¿S‚ÁF4ð®âu°ºžÛlý®*Žt½ê%å¥ëK‚”Σ.)/˜¤Ç­Ì&ùþÏSáÝF6zu”ò5«õ·T^Yæõ¼Ÿ%V†½»ÎlPÖ>çýR¾¦íÛÕVré‰áU…‘ˆ"ë¹Þ£^üM.Zt½Ú9Fº—H×»Øe…‘øðg¸¢ãa›©:ÈÓÜ7Þ•k϶F^£mv-Œ$0¥®èí¾¹À ¤€í)1dGùèÀ$Ý ”Òx÷"Œì9SÁ*°l¯QnX-Õ;cVª¥ tYØ<êà¢Å§Í‡Í§WoUü-%Œ<_Ó뼞£TúUêÒó7±ÙÞu&åbŤ¡óíOŸOù[·ÂHÛ¡ëÊë¡ÔûØíÖ=ñáùš'ˆ´½¹»Îä8)ÔÖ×V+ŒB ÁÚ³í„Ñ(Ÿä¼Ø T^À²È›ë ¬*$¤$0é«LaeŽq-cÜÓ¤<1d…‘ V¶Œ¬mö;'RË \ò¹•xïí)ñaËSÊKK€’²²I‹!,½%ëtè2zÇù_\•ô·t©åç¸yÂHïëõÉw®NÅgt>ÿ„ßæõ¼¿Ã׬hÑéÙ^ækö;7”–ó5»,þu/¯l=«S”{bÜKßó;[Rž½ž¯éùDRvöÿ"¾ö>Á'xq‡Mú\Õ„QëÅÆ£ùij‡çšËÃãchÉéÛõiLþ’—ºÔ º'Œô'uk¿(ô¹5©Fß *±Içã>È2Kçóz­l°,³ËÚh¿««*½G4ø ÞÇ çÝc½àdëÒŠ#k—ì§Šìoƒ•¤äX½¬¿>ÎKÌMç+6–‰#¯ž¼Ç>”ݩ業ëЊ!ëkoäηòh}M§‘šÃæùZN öv}[ƹçg5îb0!‚<ŸL¥më0WÚÏ<_³ÃfžŸkŸûŸü ÎÑ.Âí!„Ql.ë/Œæ§©†Éz‘5JÒë1’å^‚• U†ÒlÀÒx©4º×È ±[®:SÂH–aenƒ—[>ÖFkŸ^.GöÛ›ƒ”ê­IªTz¢HçAÊ[÷0H¹ eókÓô°þ¦íÌùœ­;[¯ž0ÏùZÊïl^$Ÿ^½‹¯ÙgB‰Ðù”g/϶,o(Í~—‰£”Hò„QJ$y~fë4çkö¿Ò`e\û]Ê×S½“¶>tÁæ±ÎÂh‘ÙcsŒN®(‚Î#Ý\ÍG¸—«KU*på–=A• ¶QÕC<²¿>Vö]f;¸Ž×q»T­0²ëµ-e ¬×(W VU×{ù-näÝ`‘ V:HKtÀÒûˆÍ²¯,çì•úÐùµe ¼‚ò^îÚèÕc™Ïå„yJ0•ùšµÝ ð÷p#oâ?å¨ËL,LÙ¦}­[^¥ÇH/{¾&u5Hó.ÇëøÓb»'ÀeØ­ªÏUñ5-.­¯Yß×öʲÎçâ^®î( kS›Çú £Åû8¾0 ÇjÔ7WNÖ™X¥JÊ ¥ÝE³T¿š×ü7¥§[J¶ñ—@¥möù üW–[Ï—ñ”'Œ¼åª¤ÄA•€å‰ù}#œÜæH[6’O8¼ 娜½66ßš»ù×É¡4k«^.H9±äù_Êç<Ûuž p€#,ÓÙCÖ sru1TEA^i[¬])Ÿk>ú¡Søäz‰r¢ÈÖŸ“Úït VÉ1©ÿˆ]–ö)åo©² ‚`ãX³·.΢V«µ>‡˜]NŸd¸ê`z½N}r”¹ÃÓÌ'Ò8räHö#ìçα‹³ìf?÷p–Ýœc5îæ»8Ç.^Í]Åúk9V¬çÎbù:îà»Xb'ÿŽÿÖz±ÅN~“÷ó>nä=E€z3G‹å›˜*šÁ·ñ΢1{o/ì|'o+ê)n*–òæbùÞTL}?o`Í·ßÆ¯¯Ú¸ƒëØÉ»8ÇŒ³‹sìæ,Ǹ¶•“sÜÅ«‹õwSc7gÙÍYîa?»9Ë.Îqû‹}d½ì/ëïâÕÅþ:ý;/l¸ëÙÅ9v²Ä­ÜPØ,öïà|‘/ß¼›·Áã¼­(«·óŽbù­üAQ¶RÎRþR/¿ÍŸËR_Kìän-êô:î`‰õ.þp–ݼŠz±\ãîV‰´ûUÎßdñ·³ìÎú›øØ ÜÊ; ûeùMÜRäë GŠrx ï.–ß/ÊJüm€À[‹²•r–ò·õ¢ëKêQê÷®+ê÷¼¶ðñ‡Ýœ¥Î«ÚüÇúàúÛ.εí/þfýYü\û¿¶sçy¿Yäë=ÜXü§Žp°X~7o)„‰ö·wðöŽÿ¯ø›÷×õòÞßQ¶=y-(êýþ¼X®âoeâ:„S¬/gΜI¾¯–b~ÑDk(mžé択zŽ9›ßüf>ü¸øWV×s;·q½{Eë]í¦®ê!ýà>{u/ë½!ºÔ¾¹tßü‘[’ bÙU»W.^ƒ÷ÛëÉéöÊ^–pÿÀTr{7Ë^/Pyøèì-°ËÞ·.‹ë¸ƒÛy[®úwÊßl}uësU—S>µÌ SÜÄïðŸÜsèý˱çs)»ëy·»åš+û\½—ßâÜ’õ¹œ/Éo;äU帜ÏÙaÙœ¿ý:·q×gËåõü—Žõ–ïœùE{ÁÚ²¾Ci{ö2ÌqN-ÂHqÚ0{÷¬.ÙŸrQrÛûø¢?× w¸d_TlZÝðé! }Œn4% ŽÒhÝ•VÅvï»[´­©`•ZN}ñnJ†5¼à`ƒ®ü–}e¸£Ì»>•7¯ „÷óz~š)·œPðüËþ.ó¯Ô~öœÖ׬Ìg{ ‡Y6Èú|vÞ[·~–ò¹‹2%×­¿ ÐhÍW[j['ùµË9ŸÓx¾&Ëö²ojH6e¿þÖí“gµic™gºvŒ½G§[ÍmÃAÐ笯0º‚«†g8~ß"ccC,ÎcŽ}L®òOçÍ1R vYŸ ^öwj×èé+K{¬4¼UƒRY>»ÅÚ[&$ÊÄ’^®².e¿(;ç£Jz6z¿sePkoU?óÖå|ÍëÕ±vër<ŸÓû뀟³ÑË‹—7ÇÈÚl÷âw¹uÞz‹.cëkrŒ.7o{ÊF/^þ={6’ùéÍ'ª 3¾ág‚­Å:ß•6ÄØÔ$'k¨Í 3~tbÕw¨å„ÑAŽðGl[·±$ßUE ÐÑêu¹ôdù]LrïrÏ—[ö~WÅk¨S yÕ ö‡ü.om͇Ém»Úz]7ÓÛž[Nåšþt3ùáŠ\T½ˆ(Ïß ðNÞÆïòÎÒs”Ù[–WK7Âȳß.Oq7ñ®®Å“]—³=ço)ÿªâc²ü;ÜÌqpË £‘‰:õ‰fQ\èlÀG˜¨×™XÃsÂè™L6ÇezÙÕÕehGV(•¥ûV~ŸKÉ´SërëËÈ5Ôe"" ~ÿ,g÷É+)3OdVI«,øVY˜·dÂ{§Íeë»õ¥nüM/ë²kÖÃùÊiu#~zFÖæÜzùÝwK•ü¯Ó-zwŽª¾ŸZ'íÓVFA¬ÐW¯‘‰†U‡Òº¥Ê±Ý¤Ÿj4×ú5?ÁÈl:ó°Èì `á0µ9µú@““u&¶` QóL˜ñ£[Öþöìe˜“+¿OqØ»i­†>,9Õ‡ÿ…4ýÓ.Á…Nß #—={æ8§a¤¸4VsE¶'„Q¬óL¯¨"vs[üÈ+Úèî­!ò‚ .@b(-ècìÓ‘7yvÃŒì~8ldÿ8Ãs3,0DZÙýŒÄó†‚ 6œFÁ–FÏ×fÔh>¯p”Éú~N:ÀÌjnNó‰Ïs4×ï›a¦8~”Éú{*¼ô¶˜óS:I½ä]óŸ’Þ¢«¸¢CÓ(»mÃmCc\3:Ãá9X8~‹c1×(‚`£‰¡´`K32Q/†˜š"¦N½^§^åÍä 3œ¼²N½>I3‰9×jÜÌAêõ£Œ,0só,2«gqöµ3,0Êd½¾²ßÜaj‡Vöëdž]tE» Yœåˆ¢ÑÉ–ýuŽ6 hcÏÞÖº…“œîØA¬7!Œ‚íËð8ûGö zF¹flâ’}­U…™çîVOÒðøþ–ðbìš•‰Ñw§&ÿ,žâDkqŸy Öâ}NjާÑ+WäÜÐØTÇäì¡Â¨æKlƒ ‚%„Qˆ)æq³g/òg©ZÉ¿5}î°wwB+‚ ØxbŽQ´XÉh„‰z göܱYö¨IÖ§O¶Oú‚ 6”J ¶<{V&­÷‰º23 ]B1;(ylS ­Lïd¥×j—Ä-iAN£`˳2!yã÷­ãŒähì ÞIDAT¡1¶î[˜9ÀtÛDëæS¶§“O^áJ™£}ü¾¶»×gqHO*Rs™F¯i¿%ÿôÉ…æÂð^2S•‚ ‚u"†Ò‚­ÏÈGÇOp`f…™Ôf@žc´Ö MQk y9óŒR==#WŽÂÜ,ç¾Å±¶g#­Ø-øÏO:–ºå?‚ ØΜ9ÓØl#‚`{ÐþpÉn_»ò0Ëæƒ(cNvÁÆCiA°fŒ0ÑëË`Û^>»?DQÁ&Â(Ö’¶—ÁhŸ[”bq–C½¾|6‚ XSþ?­Ñ‚Û§¸LâIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/loadtest.png000066400000000000000000003730601465265754400210240ustar00rootroot00000000000000‰PNG  IHDR@R²H•Ç pHYsÄÄ•+ IDATxœìÝw`TUÖðóÊÔdÒ@HBB =”@¤ˆRDDÁ+Ê',XpeuE×ÅUqeUXqYYÁTÄŽ)†¡…ÐB ™´IO&Éô׿?¦f&ÁR&Éùý5s3ï½{3sæ¹ïÞûˆêêjhxžgYV’¤Ö®Hë B.—Ó4ÝÚA!„B!„º]í¶ƒƒeÙÐÐP’$[»"­CŪª*ìÀB!„B!„P;àèàh—ã•:lï$)I’Ùln튴û 3†aZ»"- ÞÚiiØðÖ®HKÆ·vEZ6¼µ+ÒÒ°á­]‘–† o튴œƒP“s„˲A´nmšÁ`hí*´¾   Ö®BË‘$Éd2u¨&ÛaÃ[»"- ÞÚiiØðÖ®HKÆ·vEZ6¼µ+ÒÒ°á­]‘–co2v`!Ô„c”$IjO½W¨"¢ !l lxGƒ ïh°á 6¼£Á†w4ØðŽ£6¡æÖq'Ù!„B!„B¡6;°B!„B!„_Ã,„B!„B!ä×°ËeÏ2Åø 7< nl¯°[¶çæ…Mr¸[ø+B!„B!„Pr+XÙ'iÜVì½¥í]¡™´1ûÖ*ר­nÙže …bÆæZe76<ùâÀŸ†a˜Ÿ`†£7©ÎÂÆ™òshy¯Ûªvñù'»ßh7¹ÎÂ&9Ü-üµiaðáØðú ›äp·ðצ… w†cÃë+l’ÃÝÂ_›6Ü Ž ¯¯°Iw mZ¶á¡z5¸kï Mâªþß¾…wÛOOùˆa˜Ÿ{ÝØýMZrB<Ä'$§]Í®¯°–=Ëã7lXf£åîàrÛr•¹ÆXùnrcÃø›!íÅÎq^{m‚_µí]¡Ñhæl©U–½q‰óþæ8¾¨ë,lœÉëû—ÆßVµo6Ü6^_aã`Ã[6Ü6^_aã`Ã[6Ü6¼=7!ts ìÀÊÞøî–Qk3ÖOv•L^opwŸ·ë cï ͤWx”foœ4g œ\•èêßëø³»«¼[¹7ºíöØÇ=BêÒõ7)ô”öâÕ Ã0?-N{ñIGÕ׸­/ðí‚rnrù=xñý=Ðkù¡ŸCò{—†ùhÊ ãg\zï2cß~±ïoÃäõF£ñÛEžEÙ{¾;9ÊÕI7êäÕìú kñ}ûì{«çã‘]ç&-÷ŽcñáØpl86Ž Ç†cñáØpl¸_5!ts ëÀÊÞóÝÉQLñí‘Þ»Â5,ëÛþ«]á{rÕÕûŒF£1c-¬úp/Ä/Ýÿí"µ6Ãh4®Ÿ Ù'ÍÉ\›aA朆m屑÷×YsȾšæzÜ«ÏÀ›zK~ïù)Sf,†´«Ù{~Ú ‹gLgáæŸ¼{°œ›ôê3°žN1ç—ñ”>šÒ˜æÜšþ½Üouæì›zr¾}ß.:¹j‰ãÛ¿î‡Ï&þðŽ`ÃŽ ¯]è Ž džcÃëÙŽ džcÛ¼•uè° G94| ,ϯ§½?oE÷Ù‡eM¾olùÙý£Ö>; ¾Wßï‘ì=ß\ô’}€fü”F5l+W§úäõƒÁšE|B²ëñë—nRØ]8çÖÞEÃôZ~è§Å›g4Ç Âºd_=ézß«ÿM ½9ß¾É÷-²¿Sõ~<|6ñ‡wØplxíBoØpl86^Ï&ØpoØplx³Á†Ck8BÈCÃ;°ê ]€Q]3£¶§ì«'aËǘËÄU' °w|»6k‘¡šžƒ¡\3ë,¬“Çx-÷jYžƒ¸lÊGŒsáæÍÜ…åù6fßȼIaCvш‡{7-ûŽcÃŽ ¯]Ø]`ñá·Pl86¼9aÃŽ ¯]Ø]`Ãý¿á! ëÀŠŸòÀ¨“ßí©«ë¤G×L»¢¹—ƒ7Úm=y½Ñ9TsËœfþ®è5íA×"íÙWK·×YX×ÌÁ)3Ãæ·ì‹·{N'üÎíYæ^ >>!ùæmž•®‘wuÖÉã“ÐȇSK¾ãØpÀ†cÃkÖ Ž lø­Á†cÛ6°áØðÚ…uj» G94pVüÒ—¬5?xïŠI³'ß·¶8îFè9³nÎï‰ÉÏ®µÅuÃì+nz»çV{W¸WÝ‹O5ª)ûqö,S(Îÿ9º‹z-?ôØ'îÍ€Ÿ-ïUo¡ûÝŠ—Þ»l_°jÊG—ß{©»ðæ¦<ÿ^òæ …bÙž)3:ö¨P øæÁÿÖyЦ?å×ú‡ÙW«"ÖYX×'áÖ>.-ñŽ×ØplxíÂú`ñဠoH °áØplxs†6¼c4!änè '¯7f$LJÔhœ‹¾5ƬÏX;)1Q³ F­ÍØ_ìO~ví¨Ä9š-°è[ãú¥û¿½ª±o0jmÆÒ†lu_ÿ9ÎM`ÔÚŒýMøM1å#†ù¨Åõ¼Ö-ù½Ë>=[½–b–ûìgJíµ{n1åwŽØx{W8ïO›¨Y5jmÆþ¥ñ¿tÿ·+4ö7zÑ·FÇZeuz9¹Êñþ¸> “üñpi¡wŽ Ç†cñáØplxmØpl86°á¿Þ¼ GÝQ]] f³9((¨µ+Ó” Cxxx‹vÏ2Å[ ¾X­¡¢¢¢ßÓ½+4ï&dì¯ó¤Ñb C‹Œ±á-{ØÚ°á-Þ²‡­ Þ‚°á-{ØÚ°á-Þ²‡­ Þ‚Z¹áƒ!  uŽP{ÔðEÜB!„B!„j žBˆÄs> B!„B!„j8…°ÝjÙ)„~¡5†%ûlxGƒ ïh°á 6¼£Á†w4Øðާ"Ô´p !B!„B!„òkDaaakס¹à¬Ö®B!„B!„Ðm±ß¤¡Ãwô´Wø¶"„B!„B¨MsÎÁ)„!„B!„BȯaB!„B!„òkØ…B!„B!„üv`!„B!„B!¿†X!„B!„BȯaB!„B!„òkØ…B!„B!„üv`!„B!„B!¿†X!„B!„BȯaB!„B!„òkØ…B!„B!„üv`!„B!„B!¿†X!„B!„Bȯѭ]Ôºt;—/Ùª€¸…›6Ìj–£¤­›¾&ÕþpÂꔕÉÍr„š ÆB^0(ò…q/Œ „¼`P4%¢°°0<<¼µ«Ñ~x|<ÛÀÇ]ÛzcÉñgcQOÛ\aã»;wD5cØ"Õ!ãB§K;±cûá\­Vë(‰‹›°`ÕÊdb\t\1(tº´;ŽÎMuÅÄÅM·`Þ\¨À èÐ:b\Ôâñó£Ö>1.:´Ž¡àͽ[Œ‹Ž«#…ë¥i;½~_xì´=EEEEPPà§۹|ºÃº´V¯ËZWWðªz>ງµ0a¬=xt¹àñ´Ö+uiëê;Õ@òÊÕì´[w´vË‘¿iq‘¶cÉš­©î³ hµ©k–Ôj!ƪO; {L¤zÆhµ©[kGº‰vžêÏ£0.ÐM´ó¸¨ÆªO{ ÝÎåÓ}~_xêAXWÚŽß &]¾â¢íw—ó©ó5;—OŸ>}É’›t_xTêšVÿ*A¨MöLX½)%%%%eÓê…qŽ²ÚŸŒ ä÷š4(â&,tEʦ…œ¥©Ûwê\/Á @mAÓž,nÖ}€qÚ†¦ ˜°:¥6ÏQ%Èï5aP¤­sÍCœ°pÓ¦ºB¢C®Õ¢ænH™ÛÚ•€´cÎ9² ¼ƒÉcT¦vë’é[½ŸÞúÀÄäy ãR·j õXÚÊd?í‰ZPûŒ ωJž»`ÂVǓܸ§La\ º´Ë ¨}Úˆš;vÂÖÔº~±cP z´Ë¸pìð¦ÝW¨^í8.~ƪK{ ÷Y"n᪕7‰“vØÕÒ|–‰ª5+vUk·Û'XÄMðúlÚ'¼ºf_ÄÅMWë^‡¸¸¸Øqõ~¼ÝÑtë#v½¸¾"n2_ÝùJçoøvO¨±Úa\$¯ÜPß.´ù:w0.P]Ú_PxÇ„nçvçÃ;­Ã @õhqálךTˆ[¸zÜá5µ~ÐxÀ¸@õh¯qÑ ¨.í/(\{ª£+ÌK{ ìÀò#Ú­K–x¡ðœñêXQg“krëö:ÏëØq óa7mZ=!®Î½‚G Ô;ãÀ{:®÷ÓF‰=ÎQ©ÜÝÍ_ŠP=Úd\¸fÀÄíÝ…qnO› GÕµ¹ÇNø~ì1(Ðík#qáÙ}õ;-¸@·¯ÄE]5÷¹ŽÆºMm!(ì¥ÚÔ­ÎÞ+û³:¢¢}v`ù‘8ïXqruÞÆ-œg¿î•<Öy‡Ã'tžéÃ'ÒÒt:ˆŠJ^¹áwç‘Çö¨ÿöú~l{=E¨e´‹¸ð\Üäwþ"ô;ÚxP$¯t$}ŽœO›ºuI;]gµ¤6·Ð}…Эk£qá:Q8O®;áÔ¾éB·®­…Ó„…ÎDÕ}+œö§ú“è(w¬x,lë2èµ´›½,_sÝh·®YcI}m‡÷ÐÉ:—“kÄ"‹Q=bí#j 6ºË=º¯V×5HãÝ’6`¯þÊRíÁ‘º}ç¼äZ¯Ã @·ª-Æ…óêFC¯l`\ [ÕãÂGTòÜU ;v¡=|B7ϨñÚzP8:â܋µ{/¯Û΃G`µÉ+7­^W{ü¢V›º¯j£ŽÌ/âÂ= ná¦Æ/ ‡Pð‹ @ÈÏ´Z\¸~/¥®™nç>ah·.™>½ŽéRµÿ:_Dõˆm…£"T‹_…{R GT´Ç™‚õÂXm€» õ¦—²çnHž  Óét'v¸vû½•Ûr tP»Ëعžœ}‘:‹„µž6šÇJÖÝŽ6žk=Þ,z0.PSðï H[·¼`^íB¾Ïèz ÔDü;.nÆj"þºëvôXYë’ž/Psóï ps¶ºIT´ë ÀXm{úíÖµëÒ\ý«:]ÚÎuË—ïÔAÚºåË×9'âF%Ïç\·­¾%ã\¶Úüzºk›k,×äá›ÍF¨ü=.t½WqVßôg Æj~Ú­K–¯Û鬗.mçZ×`ßÛó`P ¦âÇq5wCJm›\KýØ×öµ‹qšŠÇ@nêšéË×áùµ$ÿ Wíœ+^éÜ7ˆŠ[8Ï+*ÚuPà¬æã¾í«CÜÂMæ6jWÉ+7-Ì]²U  M]³Ä{¯ŽÑ‹©ÞÛÅÕ»¨‚«·žcG·­ó3ïõÔëµ>7uOãõ¾-îMo&Š:‚Žºk=î³ë]¯++[G mêÖ5©[}Žî»4E‡×‘â¢Á0.:¼u¾®µ0.:¶É+WOÈ]“ªõY/«Ž›€´ï ÀXmDÔÜ ›6­^8¡Ö¬Û¸¸ .QcNðùÓÂÕ›6Ô¿ÞŽ«7õX“vu'kÁý™÷zÚhî›¶ËhB-ã!/þÉóìõjÈÑ1(PÓò߸¸¨iùo\D^U×ùbõ¦:F³c\ &ä¿A¼ræ՞pÞ;*Ú{P………ááá­] Ô \ó›nM†[=¢ÏÀ,„üÆB^0(ò…q/Œ „¼`P4•ŠŠŠ   ÀXYò<ÇB Ú­kw¶À œ÷Ѝc¶B~ã!/ù¸@ÈÆB^0(šv`u`QsWµ\@¹ƒÉw™9„üÆB^0(ò…q/Œ „¼`P45jåÊ•jµºµ«ZGЀÁò´Ÿ3ªª2~N“¿w@P³ÇãnlVo[Ü¿Y‚PÁ¸@È B¾0.ò…q Š&a±X ´‰5°Þ~ûí—_~Ùjµ¶vEPÇ¥R©Z» Þ0.Pë @ÈÆB¾0.ò‚A¯›Ç®…B!„B!„ÚìÀB!„B!„B~ ;°B!„B!„_£[»u{ûí·[» ùŒ „¼`P ä ã!_yÁ @m‘Ÿv`½üòË®ÇZÙa\ äƒ!_ù¸@È j‹ÚäB’Ì—Ë·µv-ò/¤V+ûòËÖ®B~$Ÿ$·Éå­] „ü &QùÂ$ !/˜D!ÿÔ&;°hzRùJk×!ÿ"ûñGÕ_þÒÚµ@Èì¡éW”ÊÖ®Bþ“(„|a…L¢j“X!H­] „üŒ(‚„q›@yÁ$ ¡:`…Pm˜D!ÿä§k`ýÞ,\¾…ê?¹y\‚Ðb5AÈOÜ<(ðT:&L¢ò…IB^0‰Bm‘Ÿv`Ý|I¹¢2 ¸–­B­ïæqQ]Á…0-[!„ZÛ̓B¨!¤°–­B~“(„|a…L¢P[Ô&§Þ 2YO2Õ’•)Ù¬8Ô!7á%±Dk×!ÿ‚IB¾0‰BÈ &QÈ?µÉ,Žjí äoHŽ!AlíZ äG8ÏyÃ$ !o˜D!ä“(äŸÚd,‰ë"TÁñ$à ¹1mò,‡P3Â$ !_˜D!ä“(äŸüt ¬›/)G²fÊO+ŽP3ú¥y†’\pu(7 –d<[ Ž“(„|a…L¢P[ä§Ê›/)GË)uËV!?pó¸0s <®k‚:”›C<[ Ž“(„|a…L¢P[Ô&ÇR$ÇàY!7šci¼ã-B¬Ióxª@¨L¢ò…IB^0‰Bþ©mv`Q<@lkW!?¢`Ì<ÐÀb\ ä`¡(,÷ÐAÈ “(„|a…L¢òÓ)„uÍÈeäöG$Á±0š®B­¨Ž¸`Y;âBÁXX,+9Kj÷|ƒÂ}ª0Ò„œ†ÀSêX0‰BÈ&QyÁ$ µE-Ö¥Û¹|ÉV­ûù„Õ)+“ë}µïŒ\‚`%ÉPð,AeRx3U¡qÛqá‘i)lVd^UXd2+±$x¶@m&QùÂ$ !/˜D¡ö­Í¬å¹XƒœY 80µb}òž— •‚…!œ /¢Ís±›ŒR°õbuò ˜D!ä “(„¼`…ü_‹ŽÀJ]3=Õ1Ì€AÝì”`ªš¸~µ†ÛŠ #s„¨s ¡‘ŒŒªië‡P‹»­ `Àu©Ð¢ ‚ªE–š¶zµ L¢ò…IB^0‰Bí[‹u`EÍÝ2ìss×,Þ´anT­WÔµæ¨×èE%%U\µç€Æ€€YfóWÊ&­6BÍêvã‚1±® P‰–2‚7³Á®?‹bÀÌ™æ]»š¶Ò5§Û –óȽäT+pàQ0+ à+³O¨MÁ$ !_˜D!ä“(ÔþµÂ]£æ.˜°uM¾ v8y.#çÉfW”£DEJ C‚;÷"Éš>L6I€BmRãâÂbb]3ÕU¢Å&Sr&÷H_R«¥ŽN^GmOã‚‚å8pž-,*RÅ2,)¸r¯’ñÏçY¹„¹jCn?(œ¹—… ,’\䬂;(rl¤Â 6+æ^¨MÁ$ !_˜D!ä“(Ô´Ô¨±®åusO«­4ö‡ €À“,ç¾Th 2Ô@0D•ºiª‹P‹¸í¸°U;r/¾Æb!XJAÜ7Ð1_È•Š¯²)#›¦¾5»Û 3oЀ@m&dgݹWžR«ÁÊ€g Ô†`…/L¢ò‚IêZl ¬ä•))+üjßååXÖq©!õ 8žx³ë¯Øò•D¨…ñÎLË ·ZèŽR‹5DTk«écµÍþ”ºx‘>q¢j‰P ²9s/+ËØ™È2‚èúkN0f⌼cEÒ Š:Hûé…„š&QùÂ$ !/˜D!ÿ×f:°Xg¦Å°e Oð%8/„UIòVaµUÛKôDMê¹9Iê ¢º%+ŒP ,޼ÊTm³RjŽ–‹VG QZZC›eV½ã4Ã2Rá­çædY˜ð¶S¨]±9/ZVÅò2‘³ñŽÜËJF%d³™xç=‘SP+÷Ò“d5ãQ{ƒIB¾0‰BÈ &QÈÿùi§©ïŒ\^tä^V[#'8Ž–IŽ3 IæÜ-Ã;²+ $‘ç¹¹Jµˆ “é×f®8BÍ¨Ž¸°:~ØÊ-¬,€§å”3÷’näÜã¹JÐ;^#“X¸rÕsó€{ïå“’¬ÜÌG¨¹ø…+Ó2ò65'— ¬räR9$Ÿ J°˜œ7Ù)ÈRÕÊ´©T AüŠ¿IP[†IB¾0‰BÈ &Q¨-òÓ,ß¹¢ä8£X¬•¼Š8™Œrä^ÕTz!C‚cR¹$“UjÉ| ˜ñ† ¨Mó Á•{é­œL%Ð2Áæˆ”Š“yÚ x%Í‹U†á@Ö©ð¢çKË)ë%S§–©=BÍÀ7(^²?5pV%§¤DŽ•({I^5Õ³‘‘6 çX÷„‘K—ƒIð8[ȵd•ðö:¨MÃ$ !_˜D!ä“(Ôµ™)„8Î( _Í0ÏÒéȽjàŒ¡F.€£»WE@¦HPÔe׿©J"ªZ¸Î57‘qÄ_cbhOÓÀ8âB)/¯KO–VòF‹ Yž"JJ\›Û¬’¥g… vÅ&8.yVÅ3´È°Î3]^ ÄÊå‚Íâ¼ÀhQƒ2ÅËåÚœ0H5Ž~Gí &QùÂ$ !/˜D!ÿ×f:°Ò™{‰Ž¡NFRŽÞ_ž9gÈ `™f › અ¨òXÁ2›ƒóÝ-Bm›Í‘i #W ´Ì•{qÙ¹z±r•`²€­Òj&2¤!Ü÷oRbÖò–¯5B͇G"ea9ÏPÇ8ÇçòLW>WÁ[-6‚PÚ ñªåb•{02O™+ƒ[¾Ö5/L¢ª&QÕ†Iòm§Ë9Ö#c“ñœŒ¤¹Eèô×»q¬0 ·H`Ì" âo®Íå„DD#gä’dAo¯5=™i f3'WH2Š`q¨Ë»Dò29o1@µÞj!Õç¢Ëö^rm®-ÖâF,(–½ê#Ôô\— Mœ¤¬¤Èr¤#Óʈ@úªŒ·Ù$Ì X¤Áæ¬K÷vŒJB$ÀÔØ%H+H҈˗"ÿƒIB¾0‰BÈ &QÈÿùéX¾Kʹ.˜9F!p ŠÒÛŸ) ºüñañçÉ`+X…B‚²Ñò¾î™ê2± ˆ¼¦†7¢>Š€Éœ0·üÏ£Œ`qŽ/jI¾qA8g¡ƒÅÄ)Ô"M‘GId¶S¬œ»¡‹ªK-** ?fˆ)ý;׿A¢™h2I¨Oàð† üÜEö\P¡hÄÞjß àHÇyÍ"‘rÞJ œ«$'HÀŸ¥ÉØ" ¬V!€ÂT'vÉûº6¯V˺AAÙO!4¢>ÓƒœÙØ¡ IDAT8a3oq•ੵÞeR–xñd$4&÷ª ò sIý¼ŠþÕfÈjÄÞj߸ 8ÇGœ°Zu°$s”V«\°ux;L“6#˜K­=út>{Á± †!$)—Œ ¿R Jêw˵á8‰å2Ž[ç¹Ëäcîf{ö†o>klº5¾AÁÎÑï@kå‘{tV@éªÛt†¤ÀÌZÔ(§R2"—€à¥šÙ ,k/ö‹lL}lSH€ÇÙâUI½KE_¶êß¡&†IB¾0‰BÈ &Q¨-jÜ´uÓ§/ß©kâºÜ%sŽu§m¼M%r2š½M„pæ.žQÒ2 †bOsW‘"IØ·ÒRE¥¬Æp²qG‘xµµÖò¥YÂT4º9¨=j¸pæ^´Í**)QFQ †ëezy'uŸ…Œ²YÀRi°QªA‰ú®–<°Ù€)5T!ù1ùé…84{-_O„Õäç{òª.^–n·U¨ýh… àH™ýCÊhÁJ GÑP„Ú&^Í!ÆFÉ Š5¨¾ªø|ˆž, gCƒ†Œ®©È352Uª ‘ôÖZ%Y‹·“Fµ`…Iò…I&QÈ &Q˜D¡:4~ ,íÖ%ÓíÖ¥5a…êC;/Êä,Ë(ENnϽª9­‘ Fô/æ8¥LÆ@¥µÌÆ=ÃF©$tä/Àz]°…½ÞˆCD5GB˜‚÷, ÊÂ<Ç o-œcù9c”(#h€‚R›E àŠ‰rŠf°TUYe!C6­˜g<~Ê 5TpIPtÙ¹Æä^Ú´üBº{@v®»ˆeÃø ÚŠwäAµ´pPØ3-°Rrš·"o/±TsFâ¼þAŠcZ5Æj5Ã]Ü9{æ‘Êë: ˆ.Lž–gqèj‚ 82?¬ÖìmˆP† : o˜Da…|a…Iò‚I&QÈKS,➺ÆWÍÙELÑŽ™´´Œ•ÈËhJ€ªÊ<› õøÈªd2L=ËQKûn©Ô” èj$¨,Š¢”¥®’ä …bSÇ¢5I‚ÇÝ£ËáX> rÀ=›7NÍJ`£“Ì5„Z½€ÿÝ—!ÿÕ"q!ãeœUR’Œ”ñ,Ôh-&Y`iÊHQAÊ80ÕF¦,·üØU¥¿t¡Êokèê°n|V®k‡tZšlÇß Õ&Å€¡’ÇÏÒSùÚÀÞáz­«¤úPf&Ý?Ê”Ó-zï^źuÍ´sÔZ$(8Êyñ–“œ8–¢@ÏTÚˆºày†–@µÁ¢ä¸£C–•õ¨(¨)ƒBj$-GG¸ó§$¹©žIî¤5×÷Ý£óË¡W>[ÔYî¹ðÃÅXuT¡Th£|7o Õj—!çà &F¦>žª".•@M~©$fºj”—3\;L[ýSrúÿ`Þ<¯å}~$²ÈjütOÄ“Sì%µ켮ýÆ];èzMæî̲ð¤ÇJ>5Š"8ÇÓÇÓGŽØV­ºåÖ PµNWß=:ùìǰÒÖ˹ÊYYgny稅´BP¸k°Ñr’gIAähªªÊ£±åò¬M&€j†Wq̤®}¥ê³…  s¥YBª©š¢BƵÓWl¯Ó<ʲR­#ZŽÔ‰ä/y\Ÿ8ǧýZuq´9Äž'£â‚È2Qqeb„Áš§¨îÞñO`™Zý‰Å·-›!#e?–Ós:»°¹æÀ™÷hHc®¢I&QÈ&Q˜D!/˜Da…êp[#°ÒÖyÄR-©k|‡9êv.oðÈ—=ØK\å2Aâä+£) Œ5¥6ŽèûW=ÁËå2xÐ3 }¡*Ô¬"i=äWjÍ)šc#Ôœë&ˉó6Èá^ñ:ô ýkH}ÈU¢g/T”•©ü‚]ö’ÜâÏòÊér½2¯ÒÝ” ÕÈbz§‘jè ¬kõ¢ªJqO­:”o¾j%ŒÌ¿< »QÊ­¸s_ò NÂ[ž%QCÍÕƒo¦Î›ïl¦û¹–Œ ™+÷â­¢‚hÒ^RS^n•|ö÷)‚‚PpVŒ «P¦ÉÿaR‡1%:¨..5)‚ ’¯q ÚëÙDœþûã^‡.øáä±;s?Ýã* (ɵÅEÈEŒŽ¹élÚùò¨Þ¹Tlé9Dz) Iê{§WücÛïµÌIt߈·â§ãÆozþ1T{é¬l¸nó>WÉÅ ©ÆJ¦dÛ!h”ÜÇ^7Å$Õ*âù¬À4×IË8nžåLs8ðg-öL lrÅó°,M@YµYͰ û%‰6 &”<³FQ!è+W™YK%¯ wÿ&?ÉGž·ýÃyúDž~ô嚟Ü×nÔ˜ºšŠb*Œ×+!QR< ¨¼{ME¦¾Èõ²‡+U'KèkƆ^N49o“U Ä’ªZ—1Óóˆ\³~c±yîëFý¢¯µ„Ä-é!J)¨uó ‚Ð5Ûm­sÌÔ\ScnàÕ`…IT}0‰ª &Q¿“¨v “(L¢êÓ1“¨Æ/â>}útï`š°zõ„ú6Ñí\»5vuJJJJÊjXsëCe´£×V!y«Jâ•öÜËÌ2,5ÀôgQ)h $ÒÀ2²×ßèf­ S©PU“c¶‘JC8-¹F°G„•ž=ÑM wzÈ$¼t4>Lc“ˆÇÕúâÈŠ u¡ñ¬½DÏ(Ìé¢/ a%Ç t dOŸÑå]ÈUeæ½ï(1þ™$ËëkN)gYbœa|ì²9]ÊŽ¥õì‘Ëé a•ረÓ{iFbhhµç|,uœ$¬d¥>`ŽpÇž–Y|Á"VZÜ·5!ˆZ›/Ms>7J3j0ATÖW/ÙüEä0Ï’ëÕ´ÀÅBÉ#YE‹º[¥e÷Æõb½ž—‹îQÙ¬óÝq‘ˆãuK¤2 ¢à÷_w3­rgî¥Ì"-š²—0«\ýQ'Ñ´R°XN.¯ü:ÖHUTSReQj¸NÆîV÷¢ U»û=’ùÞ^ê~ýø¹Ñ3¯þì*‰¬É“º×äÊ{^JuÔº«î— +PÇ\?èŸ;ð§¦íE°\+„ìçëÿý`³ÕtQ’â¸È-}ùð7ÅYÃu×­:cßù…¹ï`M<ð[×iYSúѳ¤gÊVYMPìžseÊ qÞÅé‘›ùÂfÃΞ›XJjê­mù:c·á¢ÍSEߥ1—n\\Yk|AöØEË>nà>}UïIw=æ V`kE •™Yús†ÏF Eež' Ú^P°Îål2™(Ù€ìË7T˜95˦?l’Àf“Ó`)%g#ßzCa©©Rh  ÂdcÕ]Ë:Ñ®¯ÚÌð{r|íó±:jå“Ê÷kÊ$G^’OjBÌùÝjÊ®–:¾<Ó«­1Õ×ÃÍŹVÇöë dIgtã¯å*p„Éç%Ær²Þsñ½åÔãçÍ–Ëêª)BTÎ8^Æh[xê`ïN6gnt(ß4ñ¤qÏàP¯ûW PǵJ›•\¡WÍW}¦eF\°ì2ºWL­!ˆþ´æåBÇ)Ø Ä…’­ö~*œ™}Í?^R«±[ò* ,°¿Ðó¬˜dQåT6ôâª÷©àL¹ûW\ë]·3uÍÖø[0gŠbÁíf¢˜DaU‹?$QuÆFŸmðνae‡I&Q›c€I&Qµ5EÕ$k`M°GIJÊÊä䕎‡Þq¥;qXQÑqÚü[ 'ûb  ¤%‘Õ’JFIÀKå6†~­l9pA J’¶pŒ,úÀvÞª dÀÂç[m²ª#l!× çþ¾®èà»1!–(F,¶—ÇE–WçÜuZp0{™½$,Ô`.ï®/é,SeÛK:uÖUæ&Ô”FjBK \Ü_QóÃîMey—úiÀ…ݺÿ{»QÇ`õ+¶èÝÇè¾]³?U«NŸþaæ²eñò¡ö’.…•ÙÃæ«åüÁ^’W½íÚ…‡JäÇr—ºö“™7XÜÝwÿ¹Ö‘ù¦×*ܘ;…|·kóÌ‘eÎ! (féÜåýƒ_¬§ £ól'”A]/|i/aÉܲïÁ¬G|÷2÷ÕÃ9³S3Ÿs•ô K½R¡;_ý «d`䥔]ýÜ;®’óæ'òÄ úIW‰Þrôðù¥÷µ —£Åwþrã^×SÌ7øî¬ü™ra»½Dk© I×÷p|0ª•÷Æé™ƒ®­x¢ê²%Ú+[µ;õ¨Y¼æzJVeÀ˜ÅPßW6^‹Ä…Lp$ß*Á*Wr™Ld€7±¬\õø¿R!WòV m ¯ï¦¹ …ÚXPc¶ª« áB…ÄrPt¡È *âáÊ1W¿Iôù5‚h<4ö»YÏ _:Îå1LNi§ÀMìŽl)Áx©:Ê\]|æì_¾ýpÈ] /N=>úàG‡àÐs;kv¬èš”õ[¶WCl¥ÕŠÈØÿz!óµí`έ³•Eþ«Gô;>çÐ¥ êá‹wç|ãÚjTé¢ùCF^sgTbN<1ùûg¾ðÚ¿ùÔUþݺ¾úGWIêw¤DÌNœ¶ï5ÇwBæŒç~á†îŠš·ï/?@ÑÑìΟý[»ìƒƒw»?êgy=³çLß7‚¯2ý:ïý}˶–\wDYþ¢µ;»ÏÍí;Ãõšëo~±#yùäóîÜëô[?äÑ£¾xÃUbÈ«8øê÷GÞtç¸.{Vï:;à Ï’##–-Zþ¢#(ŽÏxUÑ=³÷,WvñþÕÆÅ/f|°ß½ Çé;Ÿ+¯#ƒÜ³ì³òL÷OÂf£ÇLјáûÊÆk‘ `- Mñ4-±4 f^T±ÌkD©ä­r 8R&˜húÍš«U ·ˆŒE3gL!­(ϾŸó½ƒÊ¹Ü-¬’%ÀÄ8¾sÒ»w—òs﹘ýí¹L{IQP'EME'Saá¸vCÓ5P¯Õ˜Š‹•àj…˜QU]³íèŠôS\T°Ä_;w;.¸× r™{ÃòÈñ£÷êfzP©ê_¼å›s' r{ÉÕàHeyÖì㹟Ÿw|¡¥”T )9;ãXñŽËY®ý<™«Rì»ÿÅæJe}®ûfpvžuù½Ô>Ž3‹ôÙ/cSú:6õ|u‰Î£ :|űÿ–|$—ü0½Žúw%kÝÙ¬-gÏ»JÞëÖýzùWÝ?ì¿êõXú×ÿ¶º3¨g®'¤ç½Tí±.Fµeczf–¾Ž»ýýtÁ«iîCÛ¸?—ý/?Yîøæ*ßÒIü‡Ë®tlY…lIYíN M<1/ËTÇ©`ãé+åfw&g%ˆ‰ª†º—óh$L¢0‰òƒ$ªL6Õ¤žXisŸ/0‰Â$Ê“(L¢0‰ò€I”]Ë'Qï?‹[¸iÃܨúþš¼Ò7çˆíá~yn’koí; דŒ’ìËq*()$°›DØd¤@Y›ì‹/,ßïŠV’ÐrË(rr ÿÞÖ-XÅ YaµÈ§¿ðA©é³é;ó2g”0ïO~ ö}$´¢è!™ªf@ÿâ}ï, {ò¡Å¢ùăÙá×GL<ºýí²Ä‘QIWÞÏ ²ÄÄŸMK£³/³³Ÿµí¹ž1Yá! âÀå¿wë­êÆO0\Õgê¹cûè"âÑȾA{Þ[÷³+‚ÿû[nàùã(ýøJ=÷Ä+?ôó°8¾ß ÓG¾øcøÏ…˘]¹²;’¯Úˆ_?5bÀ§ ÉìþC®PÌØ©û>~þß]û/¹4×Ö9¦²ü„‘»6¾Ö)–ì>ñˈœ—üߟC·mž;ò˜BÉ]=xwטÜC¬WwÌ}vùŽþþŠ‚.ãk§á@xÙÓÄoŸÿU89tìûOÿøÞÃcgþz¢B~nÏþ!)ªo6IH¼H”äÄ>05ÝJv¡CFÍÎH¯±öùØûÇ·M½š þäž·ßÂq!]-á=BŒÅ•ö‹‡¤…aJËf‹æ R´€œeL!!5e5ÂÊ ‹df+£V½9üþ|YLÚÛGf›¼Ë/½C†(صšŒ3OmŠ=vQ’‘Ú%ÿ ÍÜ<0pÌ4ÛWÇúþE¾á»âÈ‚.W¢@öçáOí »n¾\H œ>1ˆ yÑúÒwþBç—S(ùÞTvØÀ{8yÜkŽœ•í{\¾;åìÄqû#{ü¿wºé¥ô}¨pr##4W¸Ñ‡9ýÁ;bFuÒÿö‰?Év~¾#ºË„­¿,6ý“¾z-5å—^!CÂ,ï /»2ãÀ™/œú"QÙ?&bIŽrÛ‰ç(¢ûEFízúõ÷÷o˜òNúÎÙZ½™¯-ïÒÃt¯rþßþóÝŠÂ÷ Ô¯çܱÔD^²sÃ×ó(åú:`ü~ñ7ÿ{?â*˜—î)¹twò¾=²]Ë¿ý?p¶|±ÖúQÄž!ËtKÿ+ü¶¶¯ÎøË¨Ç»‡91–¤Ê .e =UU¦§¿SÒÿÙˆŒtjçÆ7–?ú䣹?í|â?êÓ|æˆçÏÜ5÷ÎÑgj·œ7ï‹Â'+¦PØo†,bÏ_ÞýÛ__|Úøã“–Iï\Ks9ã¡“ÿ!C’l´òô·Ÿ7¹Ëµ\%k•Dɤ ‰Ë¿tôÎ lïÇOÍ{ ‚÷Ù¸çBÿ)ª¹=Y»æ»O•ü¶ilvöºÞg¿…ШñŸ/þEUvdšÅpúoݾ±þû=GËgk$›ôÜkï[úÑðÞCþsϪm>-rA—ÅDÏ9²¹*~¶êމ{»M¸zG’Чj܆£g漪ηz)ôÍï¼§ñ3Z8(Xš²/ÞlQP¡ JŒŒ† Tœu‹å‹oB´*)`(¹œ·årÖÓŸUjÔ¬… ËðÄQ×Mû¯)Œ¾®=dìÓ{~—µûï=ðð†š©OÇ zÞôNE˜ò%Šéq)á¦)ßNäfäwN’T©Í%Y}Óè´lòò•ÏŽÎÎQ0Q%ÁaÂð]Æ9EhœGÂOZµçbf£÷ÜÏOé?àø«'“^_üÀÑœ!9û 9¦¼±íÁ¿=~eç•SC$šÖç~ÖcuhزE挒çbŠ­ëó·Oœ4ôRÏäi¹ù}rîN¼?^÷|M|ÿS=–Î>úIS鞘1].½yiÿðëwîS“;¦xÛ°ûÞyê—um•©âó÷U÷Uu<èÌÞ×þôøÀã/,é\fÒôí=±g¿sÝËØyŸF%¦o.þç{gWXþ:étù?óî1#ý»ÄõO®ùìogR^ž»ý-? ›uøÃÊ7îÏÜ~#bƋdzkT¡ÁVC¨µ¼SQÚ©ÁËø Üé™~2sºò×ô’¤ûÃä»K¾}6I¶mK¯AÅ×KcÇÎöÛº<´ëô[úªn¥eþ•ì9?}ëoŸV_è’uçàc}â'1†ù9æTVwýµâÐ^6Z©â˜j¥&X”2äªÃ™£g‹s˜=#þ0ûò—56ù[#zªËk¿Níÿþ»+t½ÿ8—ZJ¾u>kt¯˜q½~|ýÑ¥gïûž¼œAÈ6>ýúëç>Œºúå_ë: I‚…Ȫë[ïšõ€•¸ƒ™x&kpön®,(uꌕç?µ„Æ<¯ _Ôÿøà· n˜Daå?ITà¸ýƒFS»ÿñý3ïÞÿõ/I%˜Da…I&Q˜Daå¯ITãq¿µ-tùîÛlDõˆ­ë%®É·^ìa&£$íu²¢ˆ2Mê? I_+'Ád"h……aä0$q¬’„+gYgÆb€;ÇÎ –oÝúFvèý&«EuÇ!M¯–‡å|×O9+"·D³b÷Úu}F/¾|µÛëq=þ¾øêÌråKGü¨ 97âŒoªÇŒ‘žùÇÒ7D„?û1æ…½•¼ðÜê+ùºþôÅìWn¹^®¹êµï€£6gÜx~ÜüKºKóŸ^ú@EV¯Ï^²†íºëÞß8Ejb ôé–Å“ãßèxìÊ鮣÷\zì¤^¾òÅM ¿eŽë>:õè¾e1#‰¥+Wñ¼”CuÉ!bÕªtS‰ÿ·àŽã‚Ã;i”M\ø¯Kÿžš4ôßcîübcÐäG>ÈÉ‹Ðg÷zà‰ï Vq*ý‘y‘_ŸÌˆ™ûYi¾fôÈòÊôþôÙcû®îMú¦(èª0oÊ"#Å=—gô}ì*ñÊ¥råÌ9«îª! N’÷Í_ôQñô¬1_ed^#þ¤/f&°[ïÌÞ~•™>¤7ÿw5‹4ÖZéˆsãïÎ,=÷Ÿ!“ÊÜ=õþùmúÇôijÏO_¹îÓ_O_éyßWúrå¨aúê´¯zhâÞc>kG Yï!Ï>®êsýÜu}—µ=ûèJt‘¶š0u°¾ø|ÏAê7‚B»YûöbÆÿ<¾_õÕ>ŸÞg|HÝ)§ïÖ/ë.f<³4LWXûªîøõ®ié¥'ß{â©».~³­Çˆ?κ)Ë’û>ÿßì‘“·mœÖuôk5¥]M¥±šHmX„~ç'¯$F?xüëKEÄ×÷ÏÛÍP?—äÆß›ô¥­Ò"EEÿ&ý  q¹W+Ä…\`H-i-%Dó°;ãÓ3r‘d6–S* ¦¸J°ù¤ŒeD ÝvÝ[Éý(SX,ÖÐ ~¯SGä^Jì3ëÅœ’â¨Þ Ÿ7ªXôÀ¦×~M~$Z{L}_¨ÐgÇ ™¹ÒR9;ì¹%+¾ØÖ»·ñ~elü$Îúa§ ]ÉÐ"õâK'å!G½a„…¦_|:åÊ»å'c—ÿ}ñ˜š“Qã"þôÒßÒß}»âç1}ÎTéwùæâaéŒîÉÞû¡ç‚„ªóU½ôÌÐdñQ±àË[­O¸|UŸ4ô›{¦5…ÿÙ¿5ýƒHmEqÞs–›ŽÝ˜t2ã²²§òÌc™ñ£f>múþljš#ç ŠõÕá”M_=>a\Ö`ú×gÿ•Tzôê°1QW®ûëž{bùÒ—¹E„21òÕèqcN¼Ö-ñ…w–pœYóÖ»Wx))¡tYÂF˜ašàß5nWÎÂ1Ëî}ê—3§R:…Æ_øÇ©‹,K‰î}áJ~öæN‡+gçvúo_CVÒ½¯%¬ç¨sÿÒ^?oºñÜ]ϽʲÇýp,Qí2[ÖWybHàëßýgâì„Î3º¼{ôb=Føòü]‰•³æ<ÏSuôbâŽ#›SùWrÀï×’—÷é*¿¿+ïªgç.´£ä³k¿Ýû×{*>œ~O²Lz,ô¯åZÏ IDAT‹?õhBqNããÿ¯“Ñünï3QæêMÛ-Íé)äü6dì³éã:6òÄ¥b6‰ß­"ÃÄyEŠ‘G3²Ãî$¾F({aõ=5ÄÈA¥'Ÿ™ó ìˆ^ÏÍ5Åb:ÿÃA>ܨ“ Lnxß‹I–{êþ;™ hþÛõ„«¥R'¿EžþNÏ*~}f꫎¼œ7u’áô˜‘ëæœYZ4(¡(œ°FÐÌÔ^ÐåT¨©€¦‰^ÔÞe›ïJÝ6ôBqÐÉdç û}ôñú¬Šçç,~ݾ£¥=W‰ð§>}Hè @¸¢TqG˜’p2Ó2,b€Äm‰:"–r¡«ú Ñq›#¢E˜2ôcI3@®>,æv–¥îÝgß(üíéG¶K5—¨®b×® Ã`—ç1øÏgÚ¤iJ-CæH#ïžlå³/…w‘ VõV˜ÚïPÄ×w'öÆŒ€iIŸž¯D ™?ñSçNúÜîû¶™Ãîí*~5Ã>ÔP2p¯.xúÌâ„!1±"€*rÆÏét^4|È“b÷î÷܆2‹©lÒŒ;`@íÓ†ã–Gq3 „ÛÕ§Çý"D*t•3ÿÊYÌ2u­Û*5—ÛŽ …ÈTìPœÎ(½_²DÆEu¹^¨þ#…Œ±ÙBƒ Gßž*Ézîc¹‚³R HHÚ‰-ëRÅ6“1L Õa1LÌò“Ý¢uI¶Àø¿O'þ<îQFÊÓ rï•àÜ’'`Èüþ¯tí=L£Îª(މIìÝéâ™å'£ä¹óõ±ƒ :ypØ”D>E"Éè1]`ÔãIòg¯ªÏ>s°óÔa “cC“§ØÇ/ë·ú›¤5«@®õŸtš]r€|õ¥Ì~÷hNq= ¯1 €±κ4éøOë_–½SxõE˜¾aAù؇øÜÙß Ë%zuæþxp À’QŽÿ“ðPH4Hú}Ÿœ³´p⃣6=)É$Ô—‚R†UuâF,ê#‡£¦«¾ ¯QwŠ»»‡’ „a™ÿÑ­OÚäç“Æu_> –û¾€0tÁÕÜÌE?dó®KÅ söÿùô„U]ާ¼ ýë}bÇÄ/l¦?øÓ¼“%䃯¼üÞÄ/RŸß 9(ù©ºÞpqZÚ{gæþ“ûùâ‚΂0nçK£“§ævpçÊ¡"ˆ*€û¿Í‡÷ª‘…uúpšÒÐIŠ¡“V –•b†þ1Qâ½ÑI0'Égç\Üþp€?”ì?=hR’¢ áÆÆ÷>1s »ÅOgãÜvP02òkÅûyEÙ–N÷öŒ‰"d+#¿}ÀËfÙs¯î]»[•ÄníW,õ|ˆX }zö- ø/5Lç@g€(Âbés哹‰—û0%aãºôùÒ&DFö€´fþ¡€D“ 7,:–Ó}`ùñ¼˜X¸sШg”Ê'~üd–üûyˆ%úEÇj¨£K积Š~…²×sDv £Þ;²óWÆQ öˆ¿àY€£eÖ¼3¶ÏÝy¤OŸg¸ Ñ„lŒ1 ^Šùý>&h¢*Nõ/(‡µ èwzR˨=å|rǵ"HTƒìá˺…ý¸9«â¾1ËìûéñðSˆqýúÿ „š0U0qüut¿§³Ì—;þG7 óPx0ºÛkl(Ù}ÄëA\´ G+iX2`.e ”:JÝ;wZ—÷ÏiO jºŠ]AÝõ…{k¿ w»~šñ0»o©u|ç`H§»Ž;üž·u[¬ðçQƒfIVsðÖH"B9“žY5"HöøpG‚Ó³/ÜÙ×þ0¢Öø¡üIì´¯³DENµ7öe‘[}÷K³² õ±Ï‘Ú2:ž?>³rj—a B÷„îãÊÁ r¦.É“A€Ø»Ìòþ4õ€ž#`"À³ç‹¬CÆÆ‘?E÷÷ˆ‚…¤Ô·ø mL¢0‰jæ$*iØÿˆÝ»O˜ŽI&Q˜Da…I&Q~›D5ÅX •[àž†ë9¸±Aä¤Tu6kÙŒÕD…†w–pæàQ…’á95ÈéP)\”+84@‚’‘ÀJ(¬ ãb7„ ÍžzbnttMßnŽiÉJ¡—ýÖúä˜Þ–˜Î‹íO‡‡1mÎ#u½Ä(…ÔE”àŸgï‹íùA9n‚«c ƒ¸/ˆPÚq¹‰©’4%ãti¨oºÉk “ë,›Fƒªõtt„‡‘ã•Õkäñšêx{ !$v±ýsæüŒ …ã#ø“ÍPÝCþºç®H÷Q!uq=î¯N¨>ß™v´´GàÓ}U’RÐDˆŽudR÷r³|RWn`g÷Ízzý‹4VQd Cø"ÌÅ]¥ž%AL©N¿ÙùLÞ jN+ÅXw­Bvõ üfDç_hpO”¢V„ˆ û~çñÊbJ‹§×ÚLŠ ØÀCt%ï÷x&OÒ¼ÕB‰—ÃíÅ…ÄäVHûæŸS‚M¢ ‹ŒḴ ¹‚±A :u S‹–½l¶‚³ªBUÐ31¢³P^¥ÜÀÔÝ:À°áxù¤Ä—Öd$?æXÃBÒhþŸ½;Œã¬ïÇÿ™{/­d]±lI¶•8v.B”„8  „#"@€šr˜\ ¦MC1…ºmšÿ u9üýR0-ºâËÑ hš 8Îar8‡Ä‡¬ce[÷±»³sÏï½f%[Ö±;»z¿þÒ>Ú}4³oÍgŸ™y†˜5ý×¾}ÓÔ#›îrvÕáÏÜqÑO:§”èÊf"ÚðÖËšb'7Ýôgö)ù†­×Ñe·\جôÏÕY•¹±ï³+®¿îà/´÷¼‹ò\»óöì‡>wë^y@Á É–‹>óö«v½fê¹ëÿèªdËåÿãÜsì‘k>s‰- µ¿ý·ËýˆDq–õ”¹<|Íú¦¾‡Z°•œáûÑëoýèáïlø?™s°ý¾uó«ÿ9öž¤[l_À\»oN÷_ßø³¿Q{ì¬[_ÛuŸÿ;š>èü—¸þç_Þðêÿ»ðöÌúÙð…÷¦ ¯s»¦ã‹R]æ†#†5´ýsýøkÙÏŸ~¸þÑœûÙÀºæúñZù–¬ÊL¯ýò]*¼ …&°#Ü3Ÿ~æ}ñ„jjT‘yub¿Êû%S#"¿À«ÑË–*H™D$²äSíhPBAR‰èÖ×®¤M;×ð¯Ö­»iÕšä’|Îþ_;™øï«/¾qµóOòS—Õýðò^Ð2Ô<2MD’ÍYöí±Ïø^ÿ6Óùì­Ô.½n`*LkW8¼×™S­~Ï­‡2Óߦ½¡>gv€Kë„‘æñu—ݺÆ)=ÖW³ªßŒÔ¾ñ2Õ™yárÆÜvòÃ+?q‹Ï—l¹wUÅeúM¹¡ÈÚçWJ™)?ÿÏúà·×‡.«súvíêÐ û™€y]½3sA`¯‹ÿì ¸¨.ýª»«O°Ñf{N…ÄË$ÿü‚œ[hÿ>¤=Oþ,ýfóÍõáz_f®„¯®¯þØú¹Þ[çŸ.nà²ɽ¹‘{¥u÷Eát Gô¤ûfsÎG¹Žì Bsý‡åªÌʉ>tcCF¯(¢PD¡ˆrC…" E” Š(QDe]Dj«ñúMéyä"ýéÙåæN`é«úÉ+áäM ¸êŠ‘¡[/Xô©¶îÌ‹¦Ø´öÊ3¢dpVu²eBg‘ TŽV‘m¶^j¾ýÎoشׄ>îz‹fãÕúŸ\t4qækX¹á²w?<­J¶œ–ù›/ûãÛZ™ ­O¶ ǤKÞØu|,Si­iüìe+LŸï£sù£NÊ«š9¦ÚxKºeprý%k•ƪ·¦[|Ú×%:[„¿L>”¨Î½”óa«_k¶‘Ý"Šwö›7/`‘"‘/·…«Îv¢¬`¯š÷›±Äúßs—`šm{í¼—YL Î…d©?ÿ\$p<"3"ªª©–lµó†QI“…ªU¬ü”¸â°O—µUDÄUø‰¡õ‰¡6]Û¸šˆÂçMëNã§U&ØàÞ:¯ùé_°_øŒ]éü kùËÛßý]Íà þâuDÔr]ã:ãä?ýGóÍMC•h#¢.°†.xå°µé†ôBƯºá¦èëÿâ:—¦÷]w¹~øÄúMé–µ¼þºÄïV—Ö­L76Ü7ö³2}¡tÕÅç¹æ26}ý–Ê»?î»)3ûìåŸg}¥~Õß|xžKä8 (÷uÉÄ<¿FdÅ øÊ]âu9_6¬µkÍ‹ç¿NŠiÁ¡Pöž¾÷ r&qDjUdÞtò•øÈ¹‹³_±× ^¡R(uk¶ÚI]ñ™q)XÍÛDtm6\jÚÓ/>·!øšf÷îÿMÆ{ªõëV9û윹†•Oòo’‰]× É+[>yï;Z?w¡SI4ŽEûjn{}_f¦Ï›V6þþ’êw ®ÿŸ3k;)Ÿl殨6Ò-o;=qpݺÖÊÌI·û´©M¼eS[„6Eæ_Úê×sJ¥[yñÃý3ÎÑ9'3ì*ˆ®ª9[Q_+Øgùí9°ôU_¢VÌYÂFÓ\k/`™E„"j&(¢ÎŠ(QÎz@…"*ETò!Š(/Q…º„ÛwïØµyóf"¢¶³OFGD3M/'14þÜþÈí·È61D_-ù/’|zÜvj£„MI¢) ÎÇqRáyqÜï7‚ç¿v}ü??vIí„I!{†ñÂD"ç}›èÁæ[N9#ÇQ£â­ïŸ埧?þSѪu ‰ÌœµÖ­¢uQ3Ý}Î5BDWðßæ´ƒzVKcà‹µü§5ßÇ­¬FÓ¼ÁýÊù2Ô?sµÔ%¾¹X ‡ó·Ð\ølåÀà™wLÉL@$ Ö$[=ÁŸði ©¶ŠˆˆãLâƒ}C®¨s ÷Q®Žcƒ•ú$ÓâœDºêÁï}·é¢çkoÜ÷¦vm­ò×9«§?ýù¾ýþë?DD$Iã\Í¿=¾E=Õ›þ—Ö'®»þÌ£+>”©]Z?y­nÜÌÔÍ雃ýŸà 7Y-ý+¯æ±ìÛÁ ð–·¸_9/ÖÆ Ö=‘ÝÂDêy® GË c¡¡P$æôéCÃo Ê61$м*Qý¡×(—ù*4çCHØ“16!H•’sp¯vZaÃL\ Ô…šåÞúøš^R?aC3ì­ïM$²nk¢O›?=p*ùð¢)㮽ýÛ¢L©Ïq£<ý|ýÅ·PæU×­°.­ÛæVZ¶_Î7reí-ÞÚÜ[Ë_®ù)koqƒ9ÿÚÈe›ážqö‹u‰Ÿ "j(¢–=Q3@µ¼¡ˆšЍ2S°,JND7§“Gs§—sæYdèÑÝÜ0")ã'bHä‰Îøø•’!òα;Åb,—+¨I¶Ä’:,>”¹Ø–YËPèÜ ãúóõþw’FDÔØ0Æ #sIªÏjX<Ã2ŸNŒ%Öˆ>=ÇÛ ãfÃÈ9p²Þc+ýs¾ÃåPº” ÉVoz´¿A—Ù HT$[­õ_…«o ÆÖÇü¦\Yï$e\ª¥‰šJcÒß✡mƒæ÷¿ýšÑѹÜ%¥öo?ãûåÿ›œËF|—_¨|à äË8jzýĉ¯H·ˆï¸™Þ1×cÔjÞì’?ÜÁŒë3>ÊЂB¡ŠLßþ-Ãëž÷+&ùI`Èà©TRx_¥ÏùßìW¬Ë(‚¸¢ÂùÜ®ˆËL 4í÷Õ²™"ÿ~[>PËÓö×ƺs•‘FD Í+`¼ÉÈ|ƒ¸ˆ£G›‚÷° eí-7¢s< úføÙÈþ>BoY_²•‹™í%PvPDå/E ˆrCµì¡ˆrCUf 9€µ QŸÈ­ƒüDD¤ÙB•O4ƒ~g£š Y¼$XU©–„ôW…D‹]qazQ†ñÃxƒû f¡ÇLCð'þÕ5†ì[½©ynÚxã|ÿ¬|¢ª~iñ–eN"•š¾€Op*"Î/ФÕñGƒFܺÀ9¨.³ ^˜q+u²î”¿ÆTY“fSæÚfý}ï›ûû*/=—>›}ô×okÂ☵nç†1Z[Ïý$""R%àÍõzP5“{ I¥S¦(‹R—Ü{_3uÁ–E!Ì;OUë²á«™ ˆ+ÙÌÕLo0Œ7äV–Ä gE‘êC+ú+2솥øÔ[Ö•Šrå,`NTFªY7ª½DKÝÇAe¤ Ä­˜Tï´$X¿­…¶,Õ8µ—^]šd«¸™—ºPÚwžûIKCÒìÑ•ͦÐÒµ—ÅÚc1I¨áœ£å>ÝàDKö±!˹¤Žçε“•L¥aÓì-®´¬+•¹\t°$PDäCà‚" ¼Ï£XùSÊ©D‰a_õê~F“gj£hœŸ³™€35ƒf°,ó³d «“ƒ¿!ÿZ•B ÒmAÿ€%0S.¤‘Çi•F0S{±LuЊSó™Wø€¯RV%ˆHÔmÞ7÷sAƉ€O7?÷³[H*\%øˆº@~‡ø ä¡ˆȇ" ÀE”"`åO)§YÌ);è õM§n|£[¤éZ€%†[•¬´4ÄÉC†]LO0°Ñ¬¨É,ÑA€Bš!¬dVTŽL¦ÃÎs•‘tã‚ÓkœÛ~¨œÏœæ â‰srà[W]óÄïcBµ”º&åÕíÆé!ŸÖ´zÚ¦ÕDD’n ÁX,À.Yiùt•¤x€ ¤ÖùÃR8fÎqBP/CE€ Š((E%ó)Ó- X•kO‡„šT ÃÚ“A†$Ûi1 ž NˆìÔ¡Âxi•dÇ ÜbÊ“ÊH>³Z?¬sn[«1R"Z#‘j§îh£ ~fZ—ÙÌ| 5M5uÊpL¬*B–˜¨[õ4&›ë>!ÕbBf,È%çÀ dê,–ä·–ê8\)UÆ1”'QùPD¸ ˆï+™,Íb¦¸©psŒã6&[ “!i4HdÛÎNE7Ä@x:‘uêb•µ~G²†c‡Pž4Vª¸ v¢/ØÒ”nÑÇ…ÊQ.(¢ •Ì%„ºÉBýël†³[’-†ÉùCQÅÌLÍ`›>_@WÍœÉd†Ó«j ÚW€BÑYñLT\ËôÑš¦T‹ÀÊj‚ÏTZ–/àSbŠ™¾Á®¨H¯îÅ”>É0ýƪ¾uv3ç- Sç+Š™~ŽŸl™øU3û…!™t\å E@>Q.(¢ÀûJfË0YnåP C–µ2Ýâ«#3ÐËQ@ò›Š™3ô«Ù5¦ù2™`À¯ÇõªÊìZk×Z©ã¥+?‚eŒ² kâ¥ö¢mÈ\0¨›é]^á¢àוìÉZ,kµm@éCE€ Š((EÀŠtlÛº·'ó¸mGçöÖYŸ?¥Ùœ…apëÒí–ÅKþ¸n„ÒÙÅ*N ]Ω½âñŽÅù ßBsaøÄºéÓÜ¥Mév“—üZÌej/.ì˜rÜ·*{Q±GY„î,¾…†ÂgÙÃÒŠ¦¬³H$ËTxÐ4Ò»¼'ÊœPmdzÕÏyà%(¢ò¡ˆpA寠g`=BgdzL(D‚uQºÅ4ÉgZfæ|xŸXÅp¤š˜¬JÉBr¡¥•£CÂE™ë;LAôÅãV0swg!ìó›r,œi^´PTXìP(t¥¹—³h›2 Ú™–/&X. â~ÏPJPDäCà‚" Ê[ÉÌe«T)Q…yEºÅ²I´ÈÎ\”Î 5>Î6³ª1€ò¦ŠR:\qycºÅ„€.SE¦ÒWø|V¢ö‚eA²ÕáJ©©"3;‰h™ A Z™3Ûý¼8¿L`¹@E€ Š(𾂞յssÍk`بªn`'üÖÆôìp¼-Š1ZfÂóuCƒûÚB)YH.‚¬Xgú76¥sa A¿q†*3¹ðUø|–†ñJÆBB!U£ l“ߢT*Dž“ma iéçøx^‘˜ 1‹Ô_€B@E€ Š((oK5€•unË–=»ÛÛww¶§µs[óžÝí9/ÉŸF.› ÔYVæ2u²D‰·.s–¯$Ô‰ ‰’€G-z.8K¬¦q«)“ [ý¦¬WeR¨ôûl…_ï$àE‹ QŽÕP“•uö;c'>œ5Õ¨_‘©ÊžéÀKPDäCà‚" –¡¥Àʤg†_ÝÙ¶wg„(7NÙÓÈeKÆ,Θ•dOeÕ^¶å9Ûd«Ò-¢U%2ÄZØÇ€G-~.L¥=9Õ˜õÁç7lÖÁʰO´5±¹/ZôPøãÌd%5Mej/±"23—ÌûDK™ ‹éÀ£PDäCà‚" –¡’™«Íh5íPv C>‘#ž«M·øìK•y¯(Om­Óf(œÓ$Š~+È:x(VùE[+ý…î@1DÛŒ°™s#g‘!Eä‚|æà¡ÏgkJf°P(¢ò¡ˆpAÞW¨^¤cÛ®îÔ÷wQÛçyEnˆXÆÎÙÇT„ü"C¼PŸnáí°@ÄÔ¬]ho cá¹`âL8ç; Õ ’¥†Vd*-ß Ÿ@zU¡,8ñ…˜œÚ«†BªÈøÌ¹î~ÞÖò15 î.@A ˆȇ" ÀE,…šÄ½±imzB¹9Ì(7ÓÕ¹ºmçä„%ŸÈÅõ€× IDATÕQæžÈ&ìc D,<†a×ääÂòù|¶bÕdJ+ü<bæ…R°àPèD5vNí%°¤ŠLÀâ(µ·<m( (¢ò¡ˆpAË@ÁîBغ½³sûœŸ}un2Z‰Ä·\ÏátAd(» ³mOdY8ËJÅ‚sñ-w.L¿(ÚÕfÍÂë÷qd2!ÌË %a¡¡øV"ázŽÄéªÈ³ 2Ÿm<ù-LߥE@>Q.(¢ ülkñ1þj!Ö®ËjbZ¬KŠÖ'€b«ð‹"i\] ³W xƬiÆwX¦Ư LÍÔ^1$´ ö‚å E@>Q.(¢ÀkJxú5¶jµ@ä³js›g¿Ã2VÅ "iÊÌé`û|Œm±!Ô^°L‰l•.PÀ—Si1D¼X¬Š(€|(¢\PD×”ð–IÉÙär'_$Ö¶™btÀL^âɰYß@X–ÆæKøtK€…LÒ…¼]ccþX¾PDäCà‚" ¼Æ£ÿŽgšÔM·YžH³s.JWÕOÙöEKÖ/€bšS.‘'ÃæäBÛ²Å5M)@y˜K(DÝ6x j9•Ö§Tõ"Ô^P¦PDäCà‚" J‘G°ò§”˷ƾ˜#ÆÎ­½åÜ9(QsÉÅņ!„ìÆÄ7¿¹´=(’¹„B\c›s+­{ei{P<(¢ò¡ˆpA¥¨„/! Y• Qr"9Hª  W¹XtLÈ"» €(¢ò¡ˆpA^SÂÿ£Æ,éþ,Û4‰E.2L†A$\PDäCà‚" ¼¦¤?¦ÈÁ öÈ…]ÀL 7Q.ØU€×0ƒƒƒµµµç~bQÍe†9€Å’}A¸—!P0@>ä rà‚Pä;ß\ŒŽŽ†Ãa"¢ÁÁAµÄ}ík_›÷oør,¼Ì>—'” Ï®ä".¼\ÿ®â.¼„”îJÆÂ½¶ð¹<¡T”ë6 ¿ð¹<¡Txv%£ˆ*³…—Ò]ÉX¸×>—'äŒF£ÑhgÉ€§a <­4æÀò¬{ï½×³W5£oóã徕 Ï®CÏvŒÐ·rçåuˆ¾Í—ûV*¼¼Ñ·ùñrßJ…gסg;Fè[¹óò:Dßæg}KÏ…3°ÀÓ0€ž†,ð4Ì^„9° 4` < XàiÀOÃx_씨HǶ­{{2Ûvtno-^wÝ»6ßß¼gw{cª!ÓÍ¢wÐÕ7/¬Àî]›wv9?·lI÷ÍC+­´xa›æC(æÑ+äbyd³º óèr±ˆ<²Y]‹yô ¹X,Ù¦.Å‹%PüÍš¹˜äb±›fA(æ¡XÅ߬Y‹ùXì\àÂ2Ѻ½³³sG[vSäàž–æä¡±¹¥§?R”žÍØ7/hlßJscÓZJ®Ϭ4X8„b>‹r‡\ÌrQî‹ù@.ÊB1E¹C.æc±s3°æ¯kçæä¹pÅלÕÚ¦ÌHfï@„Z½4àï襖M©uã长qÞÙ¦³óôöõÔ D.‹§6ë,<½}=µ‘‹Åâ©Í: Oo_O­@äbQxj›ÎÂÓ×S+¡X,žÚ¬³ðôöõÔ \”\`k~Ûww¶QòD¸Ûš=x2h¤?sÅkcÓÚâud&^Z‘Žûöö´íØÝH_iç¥m:Oo_­@äbqxl³ÎÈÓÛ×c+¹XÛ¬3òôöõØ D.ǶéŒ<½q=¶ŠÅá±Í:#Oo_­ÀEÊ.!\¨Æö;ÛÈ“'ƒ66·¤Ž ô¯#gWìؽkë^Ú²Ç.‘•æqÅÞ¦³+‘íëˆ\,>lÖY”ÈöõÀ D.Ÿ6ë,Jdûz`"‹ÌÛt%²q=°ŠÅçÍ:‹Ù¾X‹– `•·ÞÌÇ4û$=HêÞµygï×X4VZyÃö='äbÂö='äbÂö='äb¹ÁÆ='„bÂö=§Å̰æ%Ò±mWwêÇû»¨íÆb_P:ƒÆë7¥çC‹ô§gIóO¬À™‚ä啿qžØ¦çâåí땈\,*¯lÖ³òòöõÊ D.•W6ëYyyûze"‹Ç+Ûô¬¼¼q½²ŠEå•ÍzV^Þ¾^Y‹œ fpp°¶¶v±{YöR÷©$òÆ„h9¢–ô$Ý\ÌNÎÔ7¬ÀœneuÍ+­y`›æB(Ü3"äb¡¼±Y³  îr±PÞØ¬Y‹÷Œ¹XolÓ,Å‚{F„P,”76käbÁ=#šo.FGGÃá0a ¼)=€…KÀÓ0€ž†,ð4 `€§a < XàiÀOã‹ÝX,‘Žm[÷öµlÙ³»½qæ&€å¹pA(ò!ù „¢øpVÙhlß½gK QÏÞû:"DÔ½/™%jÛ,Á2…\¸ ù €|È€ BQ|ÜöíÛ@±»‹"|Ù;.<ó“'iâ|á…wþè$µlÙ³ómábw  h „ r¹pA(ŠC–eI’ˆˆ¬­­-v`ñtïÚ¼³+ý¨mGçöÖ"öÀ „ r¹pA( ntt4.!,C­Ûw´¥~nÛ,!y €|È@>äÀ¡( `•î]™áà®Û:"Åì €G .@>ä rà‚P°ÊK¤c[2Lm;’£Â©éå–1äÀ¡È‡\äC.\Š¢ÂV9‰tÜ—¼ BÛŽí­­w¤î°uWwqûPLÈ€ B¹È‡\¸ E†¬²騶5&"jl¿;(œ×Ërà‚PäC.ò!.Eñá.„àE¸ !” `€§a < XàiÀOÃx°ÀÓ0€ž†,ð4 `€§a < Xài|±;Å騶uoµlÙ³»½qIÞ¥{׿]ÉÛvtno]’7X4È€ BP˜Ì’Þ\¸ K‹¬­­-v7ÊGÖ¶>&™ÞΚ.ç)©?ƉAÖß–Œ¤—›yZ‘ƒ Űür‘|V¤{ß}÷wõô8[ZÚ6ÝyG{kf‰ÈÅòµLCA‘î]Y¡hii»óîí­ÙËC(–‘åš‚¤ôG}ÆÅEº;öÝà,QARÊr1{.Îù䢥¥¥íλ··žïÇ×}2åŒÌÍxÉ9O¿"Ê™È`NJ2Ý»¶æ\ŒéîØwò$,êÙ{_Çõ¹ùA.༔d(¨u{çžæ]÷99 ––¶;7ÑνÉîäU{œ]i¦àÜf¿Zp–ç#)¥\sq¾ H[¡ˆtl˾Ú1ÓÕˆe œUZ·ïÙ±¥%÷ŒÆžž®[ w¯Lœ~žS¼\¤ê¤¾–7¶¶oß>ö“:y Ðм³hlß¾Û9 ¿s÷îíÔŸ ÊbßN`v(™Î¢±im~ãy^Wpþ¼ €"(™Pd.†$jÙ²gig˜óœU2¦g—mlmßÝÚN‰D"Ó§zœsž6÷¼¹™æ’ÓÖ¥ßÑõ0ÏœN¿¢œÙåÂ˹8ï9r‹ÁË¡˜If w†ñ+„æ¥ÔR0CçÒ§`¥ß/+ yç*")0¥Ÿ‹ó„\À¹”M(²gš?Û’Ê(8«d.ÈÝ{ß®îô™‘HwÇ®mÛ:"Ô½kÛ¶]©Ks[ÛïHÍÒ6Û¡ºô¾žþYN9¿ tç~úUú(âÙ®˜ç"3Q"uíLõ-;%îW °(< ·H÷®ôéî3î6 ˜ŸJÁÌ2;ž½ûº#Ù3*Î4Ö‹¤À\”|.ÎrçT¡ˆd^µ´í8ë8X…g`-®›s§§mÙ²gwû¼Õº}Ï–Þ­{{ˆzºvnu/•È9Ÿ1o6Ü–YO†J_<˲3H›ú„»ºÍõô«sÜ^–ƒå‘‹Æö»·pNç¡ow»Þ¹XÞ–G(hÆûQÏz¸¡Xf–M òïÚž™ ŹzÖ$·Ÿ-3Ll‚¤”5ä‚Ò¹˜ÓsR‹ò…PPúé¸/«ªr÷ÕU^•S(pV‰hlß½gÏŽ-m9×á¶´´µm¹óúFj¼qK[Þ¯¶ìس{ök`Ó£Î]OÌpoäàÊ|Â]ÝOžûéWég–AvÀ<œ‹™º–|ûN÷·u䑇C‘«e–<$—ƒPÀ”L Îöäö¿¥¥m¦")0w%Ÿ‹9C.`ŽŠÒÄ ÖÖÖ»Pécá…¹=ûóŽ”xrà‚P>s¤@q!.ÅÒ ‡Ã„3°–³Ö;¶$Ç”{öÞ×Q€[¢uïJå8óÍ=¼¹pA( ‚¹@R Ø „¢0€µŒ5¶ß]¸ˆe¢sŽË Š ¹pA( š‚¹@RÀ „béqÛ·oÅîGø²×ˆÝ¿>4A4qè×ÝâÍï¸,¼$ï“5soÛŽòÒ%y€E‚\¸ …JÁ\ )àÈ€ B±DdY–$‰Jb¬{ï½÷ž{îI$Åî,_~¿¿Ø]pC. ¸ €|È@>äÀ¡Èwö\`,( ÀOÃx_ìÌìÞ{ï-v<¹pA(ò!ù „J‘G°î¹çžôψ@rà‚PäC.ò!.”¢’¼„eûEñÇÅ°==ÂOZì^xH?ËþX‹Ý oAE€ Š(ð¦’Àâù}¾/»Þ"üêWþ¿ú«b÷ÀCäù/û|Å ˆȇ" ÀExSI`1ŒId»cYd#&à .(¢f€" Š(ð&Îu®«põÀKΞ Æ4 Ö8{(°«€å E@>Q.(¢ ytëìSÊM1cÕ¤¶GÅwö\LŽêUja;Plg…9ÅØÕ…í€ ˆȇ" ÀE”¢’¼„ð8wDc°“Èq숭$pª/@†yœ³5¦Ø½ðQùPD¸ ˆo*É,"+v¼†ÕU–¬b÷ÀCt" { 7Qn(¢\PD7•äC‹ùGr1ºÁfpÈP2Kr/°„PDäCà‚" ¼É£s`}J9V‹sí8À:ÇT‹†ÊÙ&&\„eåì¡ÐXÍÄÞ–QùPD¸ ˆ‚RäÑåÙ§”ã¢#\ °ð€³ç"®«<˜×–•³‡Bå¢&ö°ü ˆȇ" ÀE”¢’Q.(¢Àû 5€騶«;õãý]Ôvãy^‘«éSÉFŽ:£êÑôoöpœŒ3>˫ߗ0Eµ”…‡"U{É ”mÑÒf&'VŠ“’@í%E@>Q.(¢`(Ô%„MkÓÊÍëæž eŠ*’?Ê2‘i°šž9T8Í £2Åé.@A,8ʤS{S²Ì5Nb¦37Љ¿Ð+ߘP| ‹Ó_€%·àPÄ …¨‚ˆd¢@œL=aej¯¾i. „ÊöPBPDäCà‚" –‚ÍÕº½³sûœŸ?½œ¦9‡ Uv\¶I7XÓˆ§k0¯Ê–­ëÄa(% ÎEêà¡2žÙ€ÎŠL<³›1OôÆ™ 5žÀ¤&P: ÙtB‘PÙ l‹¦‘02_Hz &$[ª®öPJPDäCà‚" Ê_&qŸ‹ìéåœ)å çPa‚ÆT“L5ìÌ9½¢}rÊ$NJÞ?'|¯ª~Á06´ÓK,?zªöŠO$d6 ó"ËäÂwúä4¦ie…n¹Eþç¶.½´}XRù¡H˜Fò¡œ €jò–®éFú9½¢]9e&85y·µ÷ƒ_PÕM†AeE@>Q.(¢ •Ì$îºéÔ^š~Z1É08Öӿ­ä&£:£¨cɇwˆç÷¾“f¤*­éñ„ÌuN2³&k¨Ÿì™ä«¢“Jò!÷â‹üÁƒEè%@)©Ú+¡éAÅ,M5­ôoOVrÕ1=j83’â¸ý¼Gä,"QùPD¸ ˆï+™,-Ui©Ú°j0†Î™©ƒ‡ “ð±FBaÊd²eœ™໲_βã 3YÈ€);uUlRIp­„Ó M1•q!”wv3šj>Ò“ýrvx˜b¸í”%u¨0¡j~Í,]1œÚ+Á0QV”˜‘úB2ΜÈ©½ÆYv’Á‰ñPnPDäCà‚" ¼Ï£ƒ¦ùWä–S{%”aUdtlg²'Y2§NuÅ‘ígú²_î÷œaÔXì–¸ãKh†\$œo ʈ¬ Aƒ¹Tíe?yܺPýæ¸óÁÖèåW²_|Ç;Œk¯M|÷»KÜq€¥’Št¥5”€. ¦¦pN-u’e/’c©›ìXóçTZ÷ûU†ù|'R†" Š(QPŠ<:€•E®e;{91føYSΩ½&¹gUÒUž19JEÛ®d'¦³ØÃöWP7L€’–Ÿ 3]{'tÁoò‚©8I}ª¯'|¡7¬ ™ˆHUuj_Ì^àЗx)VS˜Þ,üP¨†|8­'|º³tÍæ’-}“ܺAU`Ywæ=QEûp%KY{ ±‡¨ Ü^JŠ(€|(¢\PDA)*™Kmrö(ª1©ªœ¡ñ ëÔ^Sôôô©ªh’3ÜëgèˆÅpÜáôË§í ›™(pŸ–š¥:¹0¦b*ï7xžT'ã/õõ]°Nã}F4FDæ´£fpÌ™3é—+ [>«B ¬(¦s00jh~Cå-UKíéú¦¨ezD49u€Qö3W±s\úåÌ´=eãìw(7(¢ò¡ˆpAÞW2X ›ª½¬i]åM]`9gô×PŸ›î jª`SœˆFQˆ^‘™‰¬¸x¼’ôüÅ”6Å©´Ìé˜*L^H×^ú‰ÞÑš‹4ÑoÆd"RÆq6xȾR:ó„µ5)1Rø^,œBJÖtÉP9SWSç÷êJ£W2²É‘Â0>…®zE~q"s2²ÁÅÇ* ßk€¥…" `(¢r¡ˆï+¬Ô¹îEUE0tåœZŠc"ãGWéšHŒBD*Ë6E1ÓÖïÒ/›!b˜y^‘˲£ ]Ø_°ø˜T¥eÆãº(ÙÇhN.B‘“Ö † rœˆ&Ç2x®ñªáÿ})ýr¿%×'NÏûÝÙÒ´t`ñ¥Æt[2¬¥é¬SõLˆE0Åf‰(®RP¶_?öÒtæ;Qc1›ï¤£,Åô¥à=(¢ò¡ˆpAÞçÑ9°ò§”K*$ŠëªdêÇ'‡¥éHÿÍÕ>ÏV&ˆ(ažal>Ø,nÈ\©¬SDaöUÉ|Ý<ú#ߪ›—ò¿gµD®ñ…BÊÏ“º ä˜.,žce§¥aª§f­¨—H–‰hrHösÁþ5WÆžýyúåakÚ ÁŠÅìPhý ½îšéÝß/¼¨ IDAT¥;Þ—iJÖ‚’4¥ÌC~(tÖÙ¯É6+ ÖÔÓ-'ÃRÐx†g×N1ÕD”H˜AÆ®ö|@Ü~ùd@X}ŠÂì%’9þl–‚Wèæ÷ 9Ý‚]Š(€|(¢\PDA)òèVþ”r,çÜÔ“åd-*†ÈñNË’~zð­—©¯ðü4%äS\ˆŽ=óæ•[`¥Nx ö±ÖS 4ŸÚk”édâgµØ/øùÿQ¦Íció“Ÿ Nw>âL"a*mÁia ÑT.¸üUýÏ*Q"Š%l>HM×=ó‚³Uel»—]Sûò€ÿÚKλ7ºnkú¡'å«îÈ´‰7¼I[·ž~ö£ùþ‰ç'?:“:ûø sšËª½ê$z[µYey"Škr€B"×y¨a+™N”¦‚Âǧ ë’†ùôGeÔA†²ö_±øùÃÊôì/Xd(¢ò¡ˆpA¥h~—vïÚ¼y[Gd‘ûrVœ:×W ÅoéÏ›DD̸bQ­úFCõñ‚FDÓÓ§ƒ9­l‚µXv ùª Ö¦¦Ÿšß»WÙF ‘3}é1ó‘ÎûÏrTŒ\¤j/^IX>Î8N׈húèð¸Xhúµ) œ’ "ylZáüW\5¾Rî#E!"uhz’©ê­évpo­½Ú?ÎTOõ÷g7N÷M¼xØ^è_壡ÐY!ùƒÊ ¼™`M]çx"š & X¯œ¨bMUáD"šÐ¦ª1qúùªqv€uö†ÓlóÔh_lž¥ÒX•=Lä´35ÜNr ˆBùPD¡ˆQ(¢`óŸ«gïÖÍI»º±C³áS‡ QÓTŸ¥‹ÉÚkRï‰2Ì5—žÖuŸ D4–V f]õ51ö7DD¤Cã‘JY;:·f˜I¥jÉÈn ›ÃÕ ö1àVè\èÎô ¢ª˜g oêD40¤ÈVP?ý¨%r¼¦‘<1‘‚UW~ÿ¿¤;¢O¾LDÃÑ)®òL¸yø¹ùÔ^=Ýýƒüêà‰ÞL“¦U£|wäE²Ò"¢'ò†ÂXF²EžÔƒQæùñÛ9]Uyˆ¦¢“U±ã½·=6v4‘JdsÚ×c¨óxëI†át¶¿:çêž*s´:€Š(QEŠ(pA…" \c÷®N®–rˆ˜ã+iyA7U¿eýâçÓþêäéæxÕt_mŸÀµ„M":ãZ†­úéDŸ4¹ºÉY¦FtW ðe™ì„ÊþŽ~5¿¿.S€µÇC·éúGªæsü EŠ(ȇ" E¸ ˆB3XÐXÝ»²²”£kgþiŽ‘Žms>òž,É–ôÁCQ0m]45çl"ŠN ):³ákãŒ!Š‚ED«*ÿÂÄŠøx˜ålj¨¬'®³V|m}@O¿EL>ø¼B'õ/»Þúøø·^œbýü£é–qí…Ñ¡ðP”ëx ÙÒ{úG}#üȸ¯o,ó§Œú¯;ÍwD¹¹Î¡¥g`&&¤[rú0òýWLTý×ìÆUÜ #‰Ýs\x>1\3`þ}v ÃL1ÌRàǹçc¡›–háWÈ\éÚËHXcól²ejd$!ôwo3%FÒDdGUMòu‹ÿ T«g"D4yz(&…©Á¨Ê| ¤ž£'˜–ñ_<ézë_>õDÕM½?x0Ý<Ó«´Ô‹–JQçÚt­ûù‘Æõ½ÜÚ¡çœiSȶïØ<úO?>×_–benÄ;úßOFÿôo³¹¢ç¥g„×E¾ÿPºåÅÝ]Ñ1õÌ¥yéýè_ÇÖ\›ÓdÇ u©vZÑMwÈO/Õ^VÈP$+-"RD3 ›4çˆhx2Pµ^ýçœm)OD1ƒ|†ºsüEÉ3":=:Žkò˜©Í|'ʈ^÷¼òË“ºë­ö_xê×ÁÌq ãS±•±SkF£GG:sú²S#«§FŒŸJ?íƒcþ§Îð¯Fçz81–ºMÖ$1['rc>Û?|嫉ŸÉJvãC«¸ßŒçL!q^šÄpç@Î̓¦&²d·µ>çÚcó¹W@…"j6(¢f‚"ê\PD•)Q(¢f³<‹¨ùOâ¾yófw˜Úvìh›í%‘Žûö®ÝÑÙÙÙÙ¹ƒvžÿ©ïŒÚJ‚e$ü¶áKÖ^qmPÕ¸Ëb_Õe¿ÄÛDd³Óš*üõ×W%¦ªý(MLŒ+lÈ7]ËÛé3Øë«‡ž9¸Êd;\o³÷¿ôø…ÕŠÍœqÞ100~ºat40}&Ù2®ýt¤ï…^ÿ‘¾o:-Ñ¿dÙ‘Ùþœ!®¹OÞšüùPô£‡ãÏÂ+TÖ™Êq\{ìð³õ«ÇÆIÔÉØ7º£ÌkWLfŸOD¦<ÃN"ÁŽ߯0™ìõ¨Ÿ|A¶ÆäÌmMfНXÛoßšz´ßM”`†›­ÿ.'Œ÷b¯În9:ù9™^´³ŠEË’«ÆäÝ/ž•æz”÷¢¹âŽ<Ï ”^(´Ôô Š X¶BŒ™œ¾a4®4íÙÆlR‘'"Åâ|ºÂþý×%yjBª ¢Ñé°¢J“+‡køô¿Ú#Uµ·ô>ö_y«ÇƵ#TV ÛN]ÒÏVTÅûWM ¿2äüó|v2±fòhmütoÂyý¿ ×>¹ùÕ“81ù3ÑvÖ}ñ;F¸ÝçëÍOs¯ÄêáÕyþÓÑă¿ß¿¾FIÕFöÇÞüTôÁ׬pݿڤŽU* öOÇý¤dêªõ¨×¼ ?Í̘:Å0—ò÷ :»à81_´•ÜåŒÍ¹2ûÖ ãcgrþØö Èôð`öYëZÙrl®WÝ» ¢§G2ßâ&4wßžæ¸W•ùß‚ùˆe ,´E…"*‡Š(Ž{Z៙óÂÝPD%¡ˆB•õrQD(¢PDåZŒ"jQæÀjK¦¤³s{këvçGw®"ô´47QcsKOÿùÆ)9YùxÛÒ*XÛ/p6öˆ¢ò_ÞFzXâl"byYW…æGî7¢+*B*ÉFB&Ó ::èìû7Tè§öÿãš*YcN‘jN¶·4ŒLž|ãz‚ûOÜ•l©^1Y=~¦NðŸH¶ÔÔEÆz7N 5T¬"¢ëáÑ©_þvÏpßK—0Án"Ò˜ÁU«¿G¡õOŸádõ—•æß>ÁoXù»äÀÿøåmwÝõC|m²å‚úÁ±¯Ûßïôä'[ú&üê MžŸèýlz9Gú^©\¿üÞÄuý±G^ÍœÀ\Sõó¾Ûe é3^óÙöm—V:ÿXÿ0}}ŸrÐ^ùÂÀO“-Û{’ݰÿ؇ò—ÿTïWœ|oב?K·l¨îzy4òüäíé–Ë^ê|àÒ¨þé–çã—ì³FùO¤[ÆåÇÿðÐtæXPÚã§oúÍñw¤š?n¬ÖÄ?1ïO¶ôÈ×UTV=;~ ‘óÁ˜ô½+Ü4®îO¿Ê`&ËÍ®j5é‘c‰[¯¦2L¼aJzmþ3ç¯ ¹L§øö› Q 2¢ X1MýûW†•DŸ‘ "^Q I|¸’×ÃR :ED4OøCÒÆZsÔÖt":õ©ù™ŽÝð²ód¼ŠˆÈ4¯Š>¾ñç'…u/üÔÙ—¯QOÕ„*ÖÄ©–6F_šlŒŸ©l>ýôKDôð¶ûT½qã—Þþtíõû¿ý(=úgSûGW^{ìw'\ˆ24)5¬ý·+¾xä«÷Q¼w´Znø×¦nºäÉ÷ÿEžŒ2þ¾ø¦“?K¿êõCœúð•׽𩍬“âU­¿ø“Ÿ¸–ÿý+Æ?~{åW>—néúܾÎú÷v5ÜúÐWÿ GÞýg¿Ñ_û@ãýÕ¯‰èÔã'ê~ô½ž»¾µÿM™úÓúë#ënË߯DìîøæCwí=sÔIYÿÇïëXÝÞ»áÝéçýÛŸìkÝöÖç3µ×þþ—'Oñ¯ÿÉ×Ó-Ó}£û¿ò‹Çþ6Sã¦=¸ãg.û£ì–Ç®ùì©ïxöKN(ž|÷Wõ«¬Oº{ñ];¢ŸüÒ¡o=œy®?½áÃúÈ äƒwýhäHæ+ £(ü o¿æÝùÏœ¿‚„BK<”%ç ž·5ž%¢¸aù5õ«Ì0ë3"GD:+¦ÚÌ?ÂkñIˆˆÆe+¤ÊïxÍ ñꩾärž_yò±Ã«ªÇ4†ˆbªó?çÙÕ«íþÞ[^<ñÿž;’l9®‘¦FkbƒŒs4ìxÅÊÐxOEìôi_ ½2jš˜œúñ×›GŸý½$¢QùZÝê×Qhß ™9ƒÒÚËzòñï^´*ùp¿Ïééþl_û[L1ÙòJeƒoäØ{ŸìýçhgF¯<óÌ»Ÿ8½ïð±ôr>ÑÛó¶Êüår >‘ÿ¥7s3¸®«|Ïáot]ììYL¢–`øG¿¹±sƒóò¯¶ë™c?|æùtË76T¯>:ò­W2_ìÿs}ãGŸý¯ï%2ÔŸ¼m{¶ï/&³æÅ˜”¿óì‘cã3ÜÕèïþ0ð•îÌ[+&½«WûsC|jÄùÏÿ©~¹¦¢ò¦Ë±»F…;c#“™2f0w‹Í°« úÎ^‰g*¹üÙ_õîé™§ó˜'Q(¢ÿ§ÁÊû]oèù¯çÆo×ÿèË÷误n1.9ûÉc?ù\Øúÿ¶Ü¥>Ð+¼¡õåA…9ø_Ÿºæ²llÕ>~åËœzãÛúî¾·òÒ;¯ûlÿ{ßîßxÝßùÛêšµìê7ÿtp°þ䯶~æ/Wüøûï_{Ý’Oeÿ›V®émº2ñʾöÏoÛ÷­¿û²ÄŸ².œzÍÍ<=R;üiæwÿñ5ó©×ÞøÍOÿê¼ñ¶ÿŸ½;Œ¢¼ÿþ™sÏlî„Àæä ÷¡`  " FTªÅzPµÔƒVj[¼hëÑRµTûÃZ­xůG5^hT‰`ET”ÂrB ×îÎÎõûc7»›Ý! ÙÙÍûõWv²;ûdfß™Ï>óÌ3omh7½½À\}Ï%ÛõôªßÞúíà›¾æ™ÞR«çN¾çï¿:kDéûkw OJmmm±4tìúìôi—>§¥iªÄeæ}ôÖî|mZÊÔÿ9‡&I^šuùãÿzúgJÍ:tÿIsøÆ×‹·uõ_nK¢5Ç;u~ýÖ×'ÿôË=}¥ÃçpöÓã š•–$>ç·§ì®”S°G4©’³Û} OŒîxã‡ñ‡Þ?½ÑÞ:û²Wß{u Ç¥qþÍÝ1L=ïæô‹ë<ù'6' üðK“f¼;êáÍ^¾ñ/ç?ÿƤúê«ÓÁîXþΟrsú?^™ä¾etEcöí(¸ðì6›O9åãíÉ›«f$yFL¾âÁOžž›Zð}rj±¶îŸ³vÜ~çBÔ‚'ݹ)-{úO²nI2™Ý»“îN2k"}RkJJÓþ&õ§f‡»‘ˆ„6dµüá¤óê„üê{?š7ýÌwŸ|chÊ8“ïþÍI›¿¸vuÁú¯u­Yü¯Ô­¶Oã}nýð߉«^¥MÞ•ý­“„ßœtíÛiÛÚ¾ÙͿϿÿù†1lʯ<·½”þ;¾î÷?N|§Ê7qôûoËbÑé})¬½R|³òË™ÓßÍ2ùç÷ l\_9ü’ÝgI“ô­¹÷)eô|ñšÏ#Yo»ÑuÿÔ÷îîjyã”+eŒûmv÷¯èãPøxÎ?y³ÛÄ¥&%©š. I g‘=OºŸy1õU™#"‰EÅ»£yÇßø§&Y‰|n†µIî“ÆÿÒ¹­õÝï¿Ø·­æÃ–aC/ϾÿÝsÞ¿tUÓ.¬Ÿç¹¥õ¾†Üü)‹M 7Uf¼_<Ça¾w¼|~]æ$ÁvÈڶáÕ|õvö›osoš²}‡IrîKNkfš_ڼɔZ|ÑeŸzj6å_°ž_ûÁ»Ê™)#G}òûO'Ýy£-ùÂwŒÛ±¶y¥™|úâ{®ü¶âÛÏ&Œßú·Ú§rgqN¼ñªÍm›÷Ýœ¿×ó·º53gMØRX2§¶nXíoŽ?o°ë–¦Á#?˽aþÇÿÙZÿvþÔì-ØòîIÛN;¬©vêÞ§'ž{ßµoü}ÏÀ)Á2¸nmCòpKöØ1_¼sǯ¯ýÉwïËÜßš4|èÌ›í÷=ºó çøïýë_¾\¾Ë}׬ÏüµîõÜó7¾4þoW¯xêž/*o/[sᓯLœ·îáƒwŸ·uÍYçÿê“íM–ÔdOsªç@úžêÏÆ^)(YI’ôyJáÆO·Î5¿µqߤó2ŠÅ7÷ýßM“„§Ÿ2fï¶úü±LH{ï±ìK^ûüO‡Ö»ÍuãοdßÛŸž[þÞ‡ÿ—ýÃic×ðK×Ð_”ñŽØ?}õÔ!ùÓ‡¼zçOnxtþÚ—Ùo6s6áÑëî¼sÓÃY–ßþü ®ôQËðššsh[ùéó.ô0§ò)3¿øaìö7åýŽª³Ï_úÕîÔü[,WüdlÊÂãLCŠ(QÆ)¢ìÓß3…{óÏ/_ÿÀy/¼1iŠ(Q(¢PD¡ˆBeÔ"ªû“¸ß+\u¡Ûl8s :{JðâÛþ˜ œ^³mØ#›£5©ñp­ÈRk+Ûܒ$ѸñÓÌ,}û¥$dJîf6m^²X^~÷öÔóZ=nË©£ÔêF«˜¶s×K#Ìó²j÷%ýòÍÓ6׬6åšo¾øã¶¢ÂK_ÞûÝ[˜o{ô¢W“’S6|÷æOª_ÿ³»?ܸ*+å“/ÿ<µmÑP3C·Þ¼üÛº÷ØÿûÌüß~rÛšÉËîx™ˆdîñÍ?Þ2ýò-®-—_wÃ… ? ùÏ[hJÕÇkoÌŸÌܰt™¢è;¸ìLÕòçíç ÿ)ËrrFæ³-ÂÌEßòÿΞ4áÿM=ÏþÌ£Ž3/{hÇάÆíC.üéËÍùlãe r^øts~ÙSõuIS&8¸ñ¡_?uÅÚïÞMôâÇw:Ñ‚³ËÉÑÞþæüÂ)ë¿c~»å€ù‚‹–ÞÄìú”=÷ò«žašd?oê {6oýžùuã^I•ì‡nú“ç¶n7Tù£•’5^I9§þäM3ÎØZ¿é±qg^²õͳϻü’Õž;gæ5_Í]ºò‰·>ÿ¶ðÜç˜O™Øx¸ú…K.™ùÎúŸ4ï5™Sø`6ûå–aÛ6mk̾¿p˜kŸ+ÇÛ”fMnÜûUáëÝŽÔžáC¤¯Ïqø»Wþ3wØŒ”\[3Ÿ¾cxù/g~ãúzóõ7Që¥ žá–Sß:}ÎÆúOÿòÓkOÿúŧsOþżónðùصÿù÷üÉg>ýèœSîhªÐZ_”S“–ÕXñÏߎϻø“¶ìa^8oÁ›÷ú¾ÚÁçLzÖ{Э;óÞÓÿNÔ½Ú+¹U‰­a=õ¬Mk›xÚàë$Q“H%Áë“Í&"Ê™aQÝl+ø$ÍÂÑÀÑ™©ï”_Ln·'Õ¡ÌR\Ö¼]µ[Æ›÷«ûö:‡.º¥åÆ«.\}Ç[%—åÕlc«T·ç»`©ûPÎü´›ÿò™§‡m9Ï\0x–ìy8ÝáÚ7aõš-ŸŠ)£O¹Û£-LKÝøõu•ß>pàÓ‚%¼fjÓ§ÎéY¿¾ížÜÛðúÔGþ#5°Ϙúâ×ëô/\W?ò—W úêÐ#·]?¡Dû‰¶ëÙçŸüðoÅß|×8i¿ÏeZWì~ìÝòåÔ4ìÍzÑ’Öõ?Îw|ºùs¡ù‹+¶>å‚ëZ_~ufÒG›ÈÉŸòܺÊÕÏ]Y:ý‡±ü[7ý}RýÇßMœêüöûéw½ýÊ?]rÃíòUŒy|Îïó¦OýìƒïŽ¿õ¾Å²ÜfÎÿÓß.¼xýöý÷?~çüázŠ.¤ÞýÐŽ__úý[­/¾Z02Ï=ƒýîôù?~òäÏÖþ£åÕõœY¯L³jþÈ0d=xxÊÇ•ûÒòß|²bæÐim2÷Á¿Ÿ<ûŸ¯mÏm|eÜ5?xVóŽsÖ^÷ÇôϾÙQ³¥rÐÅw-›¶u`ÖØ¥?û·uø¬çÞýÏOïüÝM×K´ˆ§zPÉÔ\óÙ“k²²Æ£~öØ¿†}¹±1=»~„Ó¼¿I3ñ¦?ü痃ŷ.þ>uíS?ùáñgÿððågÏOKÕÞ]ã:øÒÊŸ¿Þø«?Ü8ó¤¶3˜w/û&k}ùкMß_rëåóÎÙXäõÞñÀ ·JG½T IDATýu»uØš?ýóúsç¿yRAæ_ÿëÎLñäg˜ë¦Üÿß[~7ýÜK7Ô]äz½zö/(ÿe÷ ˽þ¿t{™Úg½õÜ3§Í¾èø>Û1…çjØm Ì·yÎÈÜQKÛÊ´ú8³IñÑøÂñn3û-÷¥Ì§Z¥&"*U²:Y|^¿Û+œmõµRGe77´êéÓ_~m#7gÄž=¿Ìzs]þ¶;´é'ïøfRýÖ÷Բ̶L*®¿±øQšGiIÉ£îš1 èµ‹¦Þxεo|ñYezêàÿýù³÷¯rßÀÜzέßÖm<ݾîàüÚô oþaÒ9wL"ú›Ìmú{Í×3ÌmÙtúÍ¿÷5oŸþÊú’eí¸ùÂpó†qö;_zlæüâÌó³øøë=üTõÙ¯NpÞE·H$úøë]¦S?z¼ÊvÉäŸÏ\*“òn ûÍZ×Á—Oßù ËMe‹Ü$ç[3.{êû÷ιkvÃÃsg—ú©Ï<üÔ)?)Þ»#»åÇçgü<½¥í¡_8'žÝøVõ›úE…êŽ÷ÆM»É¶qzæS“7lÙ뛤¼iaÇÒÌ—äh9 oÞžvóŒ>yÔþ[—Ïnb&©ÿôú‹.>jËeóÎr·~õÊJF‹KT¥ÚŒá_OúÙÄÚÏÎ;•âUþžmÅßÕªæŸØM'ÝWxaÃ[ןýÓeݾ±èìYÍŸO¼ò¢O7lççèõŒ›´"¥züÅ¥ú×¼›]&NçG׿s©ý;çx悺ßoÈål¬³øšÜ&GÞÁMçÏJf­©7?,c»öæŒ1¿Ùùæ° '¦h¹•»øºg²Ÿºèì—èëäÉˉiýî+÷–ºI¯=ÿ6aØßß4skåš´qï_±Uö=²¡bÌe3ÿõúãëSƧº÷¦·Õ7Øríóîÿ;uVáé_¿º¥¾í¥i?µxø¼ý?,¼dš—9xýŽü7|4vN§ŸÄcB…"ÊpEÔ¾ ÷^yõŒoþoó¤/@…" EŠ(Q(¢ ZDõ`ÖñqæQû%â®]µDyǹ¥løîûOÿ} Ê3¼ÀêO=tÈYæ•%9s Ì ½òŸw¦þFn“-D4¢°ÄÆË­6ÛÜ>ˆä¶lË€¦+Æ^ôöàòæÅ”Bã‹.ôªcg !">)õmËgö |"¢÷jmäògï’QÉI—˜ÍËÜѾ’aDçeDïö=miç Ð^vžïj¨7Ë¿_xÝÝ[÷Ë/ Òˆ,y´cÆEé_5:Nw5‘6hйDçRó~wëþYç&¢‚Quí“_–{‘F9f"×Á î’Ým‚µÃm•N”ç¤I Ï›>ß\žîÎ)rfoÛmÒ$å“ y½©"Ê^hÑ=›þ!šdg7QqÉ„tß?mi8ÍÛÚ’f%¢Ãiùé­Ò’Oæ¹&y^JD3þ8—ùÍôŸ$%é;]ãÆómòhyñÕD4îò‘›;`èÄ$ë {“󥌚þõK>uе—7Œ%¢¼’±iïWŽW*u–Í›:€ˆN¹r’xÓwÖ/¯ÿ óì‰víZIAjÉYþ1ä7ŽXþâ¤ˈH#ˆ¾9Ëñ¹4eßûìïKDº]ß:bvÒgrîîï¥EWÑ´‡çm™õÉÿöû9Û+ÔßÿŠˆæ®Zx`Ú%ÅJí¨í/ŽEô!™ò/>XL´ø”ÀvR/#N''½qíW_tÃ²új]Ðy²nqŒ·UN<”.Ÿ|Õ0t"Zçœky.£Éš^tF®Nº…Ô‰[ÿ}òÀaÕgÞ2iz:‘zå’9´$zo¨Djñ„…ßÕn½êƒ‡};·é 9ŠÔ‹ÞýÍç¥Ë²?©fú¼bè†çg^ü¿Çù‡~½àâtqŒýÛÛÿ2ó™Ê±_•‘NÄŽ)¹¶³®Í©þËe•_ÿza¦HÕ‰¦WÜ6¥äìÚÌQ§- ‘f!:ï“{•Œ!MBZúÃstÒ'Ì2M˜µ\u/Õ67^8ÕI¤“7‰.šµr¹hÜH:o$ÑÏö½ûù˜Y“4ÒÌDÅ?¾Òò—¶ÉdŽóÓÙ==…$°/˜ܹg»;ýœÂ|'#è>}FxHæùk¯AyÌÌ›5Ïù¸[R´ƒD4¬pø§<›$eÚ-²›ˆœŒ»Í–2ìÛ–ÿf˜´(mzö°g½jNÎP"Êå“.ÿÐ6¾ÕE4”ˆ®Z¿cÐèŸìÌ/pÉ”D§9åz³ù§¯þsžøò¨ÍTÀŒÈ¼;‰ûø†Ë7.Ëû-ãð·óäíûø|ë;“3Ÿk9…4"{îàÙDD7}¼ßS¡htþ¥þkw.6ìzÙ1…¦¶ì$l"Óå#G_¡&9>¹ë[âï+änäÞ¾dÇ?Oý~Û­$\úkѯ>þCùSoô¯'÷Òk/ÔˆŠFü5©Mi–dæT"ºkʈë~hû&sìŸmò¨Ì DtqÞÀ;|©ì “ïtÈyZ-:eò4=ÉÇÚʸ»ži×íƒ2]çÚù×9×½Ï5 ÐuÀ­çtÜÅg|b< ¦ùÃë=32‹I§qé§B¾“fßëÊ4=é±ÑoN3oîiK.Ïa²Ì“‰hј©·:Ù!\yR À)N§ ÷ÿ˜ÕáTzeýZK_›©s9gûÿØÛ5yù·Íûa÷˜‘ùþk¤žM™S.Ÿ±õàÙÙI£AѦ fMnÍ.9“T*8}Ô¼ÈOÓH"*<™fÝDôÕϸiE¤QÎóèÿvÍÖT7ËYóÚ-(¢PDà"jÒÄŸiƒÍ%š‹" EŠ(Q(¢PD¶ˆê9°ºªvWè2ÜðÁ]"²ú¡/¸ñüW­ %Ûœ©™"C_|ð±É,)²•ˆD>ÕDĪ_‹&™ô$"bÉ,éäIeÌ6îK%¢é«R&l?{CY^^ÓðË’Íêÿ5ž«§uçg^ãxRÆ3s.ú¶…Û¶¯E$"“ž­éô×/Ï-(|Žá7Áuù˜fm­ƒ˜T>pºI:4nÒY›?¯OþІÉe ç§1ì˜âÃc áiì ³Ê ™üIÓáÁþ%Œ:>Ûû× .ßì0>öÿz›çŠw†¯Š Û&=;øóHëÆÑÖ¯2ùÀ_šk¿n¸E7«IYZ`žAt Mœ5@ºYÏÇßÙ–CÛÉÄј¶½ô×8¤zWããíÄ\Ú5:és³VjUÊkÃíOPלœùO¡ eÜ/S´E#ì/…=…s·Væ×ux™ž•jÝÅ·ÀžöHœ”ô§>*¼z– ]ªmÐ×^¾ÉL^KŠ9-'KÔ¥õ›E“ä%»™ˆÒ¦Y5÷;¾í&ÙcIµQáø¬LõÀ!óó6©Ù:0ˆ&þr&}r`ÖøÛG7m.¹"0‡…ž”DDL¾³nÒÙÓ›ÞŸ~càPíøù‚!ÏTZ÷x[äÑð3Gå¶î˜~ÚÍú÷ÔÅ“ˆhÔìÁyÞZeSæÖ¡ûnL2yÃ˾yçQ”I+.8üsNýî5¯`µ Ïñ/òó³'n«Û´iÊOÇû—Œ~÷ŸX3£õý“>•ˆÄ¢œŒ7ÿ5zóS$ŠGØN¡ëÀ'Íݹ¶ä‰ÅŒè¾o˜2çŠoþXh ¶åò9s¿îà¼K‚Kt³UmtMz¾K÷_/~ñiwv áIU÷[þ²<÷ÒÀ‰)/ývø÷ÿ7øâÐö~ËüöÂëØN®¸Õ”ºáˆ0<Ÿ–þbÈÓw…?Güâݬ;Ü·H·Z §võã5`VXe&Š“~{c^= …O`p_^÷å…mVÆaµç¤§K"óý¡$ÞbR}DdxÉDô­& &©D$²d–ô–:›[°ÛH"¢9 wÓôùü÷™…§ Ì÷¯9ǸÀÿ®žÿN6mPàŸäµ£2Ÿ}EvQ}Þf"J2霦_ÜúsKÎ)g©Ï^ÁnßÈÉ»šTøà¤6}4hޜ͡éoƒNÍê0;ÀÈLá@:óqá¨9ùÒch+YTWÆé£¤ÀÌ £uI¶÷ÉqWÏ6›ýKÏÛ|nnÇP„ó“M¡)?j{d¨}Tf m“Ùÿ7ÌÂXÕÉY™ 2=ÿ`Û‹§ç\2$3øªiÛÙ–<½K…Ä·ä~)»Ã-´?³ûÞv5ú‰ÞÈ<8Ô‘eÍ•pÇд+‡võÞ:–Ã…’›éäÏNÖ– q—pDŸ¸[ÌëðQÎ$=ÛÞÕøã†6¦HtÙ´œ>ê½ @…"ŠET$Q(¢PDE@…"Š(¡‹¨¾êÀrN™œGÎUœ]®ë–î¸ì™ïþ›piIé"CsF¿+š%]Ì‹æÕ©`Ü>ѤpZšÉ!™ñЬÕ*q4€ˆtµd¤zöÂå§Ûô|ûUo‘§ü%M¾~°-p¢‰SDzîœQç¿ÛÔ’â_²×ÍÏõ³ J˜ÁÚ¿ýKö·šFœ^õãÁP¥•ï¼aTªj6_Ñ•?j‡{`Ǥ)³‚Kv:¢ÀëL93¸ÄìûY¦§²Høÿ¡‰2#×rÍDd]o2Ëmz 6òètH “¨ŠBàãxØËób£Å¢Ø¬ÿÚYmÏ]9"ãJv½“þB§ÃûæÒ¶¼9»özŽ[”¤3/:$º_ ~ü›ZR ‡Ô žÐœÚQ’GËŽ¹Eˆh ÿçÛ ‡-qZoÍà¯ó™¯ÒªêÔÈWv—"ݱ$Óó`o­Ž_OsaÖ½ëvï;wW“›±ŠD¶t«I—¶óÛÍ>)#…ˆˆãTâ»wZwRf poà29Ö–,fŠƒH¾ýÿþ‘;䫌iãÞTÏÈðÞÙáduóu7M}äѺ)—™L\ú¿>^$í© þKÛ)NÙ÷aêe¡Ú¥äšI²2ƒÉìÒ7ý¶›N:U [R7`"çi ±n³ ³fE¾²[´âáÚí·…/á­"ÕlêÓ³eÒÓPxMÌÞ½Ûë÷ŸnsëÄ(ò’‰²6õŽ2'ùR«G?ÜÊzS²)pr/£ÙË:˜6ÑšéÔ,÷fµå_1"ëj³wr´¾×ã ¸$—®³å]·kÿá&å¾I?"º©ýsìt7•5l6…^59U˵ ºVZ–æœÂŽgæØÊ3øÑ> …-¦ªÝ¯",Q"gœ½5ÓÓé3¡O ˆêЍ~ET'PDõo(¢:"*ÁôYù'¢ëÒàÑŽÓËæYdèÃ+gä0y5ÆBÄÈí3óLŠÈÎÝy5Fx“ Ù¬éþ%­“`ßg5i¼=t °î~%ƒ_ç¥cS”)éê)–Ô…ä#"ʳε*Šº$Õ¬åØö±ÌuÁ€±Ä*-_tq`›¢ÌP”'îìÚ<Ý[§1ÇÛ]ñ«G¹0éÒiÖå˜ݬM$Jr&]Êú~³Enu¤¾x‹C>hQÝÉY¤4š2èPz²rØR¡­ÛlêãŒmhèÊ]R2þðsó+«-g.1ì½ä2‡N ì±çžrh½gÚ˜àñœtNWÏQKQ³K:Ÿ\Î46Ê>PB!‰ÌÎí/üÊâUÉBC Ou &/oN6þ7[¼Z+Ëx15)ð¹Mms3V{³ÅœÁ†Šü5º{]O]8ZLQ”Âtu %•ÈGD9yVͪœ¡„¾A áèÃ\Ûí,CaG‹•–.ƒž¡(3”ðï#tª]û•îÍј#½Ѝèõ£ˆQ‘PDõ{(¢"¡ˆJ0}ÙÕ#&¢"7 Aô*d!""‰HRÌ¢j³Ž1’ÊÆ›-¥}‰Çk³¤ÕÛEM\•¢œª(§F¾ÁÈ­oÏ!X<èC6šžÃljVNïîŸM”¤_õÞÚ Á™HâwÕ7góΚBÄYD‘|™ü6›Ò¦eNª»Yk/[Õ6­}°n“%]ÙoMÑ«¹¡k›å /ìúûz·l àf?|-â·éñ VØ‹sÃ(%%Ç~I&Ú¿‹W‡Ê6Iõ-LíQE·hJáüG²øTYÐÝ¢ààO¥ÉnÅœÞd°¡«™NU”S;VÚ–»¿ÐsÈ"µÏîáÓ›4Ö-ŠÉ\ Ò²H Ç+nŸ¦–¤“ì³Ûù$ÖB'àh1d˜tƒÏ@ÿ„" Š(€(¢Àøâ§K§Aõy?ÚvI*\"IV³ [»øVã¼f–ĤÀŠ"eÙSë’Rôœñ©×´q^︰b€.‘SzaƒwÛ_û}$Æd3q6­Õ”Xâa-ºÏaÕݦô@í%§eÚê³)\çkí)ßÂ…Ç~À‰aòé å©’Õ¬½4V?ØjÒ¹ÀÙr³¬p¢æ6³v-pH&Ïí2'3ÉŠN'àh1NÓÆy»rÑÀ " Š(€(¢Àø Ú=¥œDäÙoNTÇH¢„¡Oc¼>ÎÂéŒ505ƒOaY®ÕÂ’. òwþÚ-¿^ ’uKŸþ'@g¹0°rœ/Y±…j/–I³im”øÌ{y«¯-ÉFm­Iç0ÙYi›v6ó)ܨ ®t2Yµ¤3 -üH2³‘@D¢¬óæÃmÎÆ"`–ÆÂ¶YX«.øO,[Å$Y ‹ŒS|÷PDDCEÄ#ƒv`EO)çÓ˜=ºÍlßÙÜ~ãY#Ÿì³²Äpý•–Oæñ°•!EOó§Çf-VLZ‹Êœ “$}©“\°&5)ù@“µÙ8a.1&Yɶë­rzà¶gV›y…xâ90¦¥¯ÿ¬Up ö‚x×ɤ¼²îl®7ûr5ë4ˆˆÈ$k‚­µÕÊÚÎ_i™e™5™Ú¬ŒµýTa¦Åº?ÉähU»8!(€‘¡ˆˆ†" Š(ˆGqó)“5j°jÉ{íBzû†ÕÛ2é%ŠÂs¶ÃV"½ýT¡]™bÒ[Üb“ĘÌjšØ¸Ï–¸m­1yZÒM$éíw´‘ Ó,»ÙÐ| é¹é™Þý­bJ Z p‚‰²–EÝêP«Yh_¢Zíj«±™'MªÌ2·•,z`Iš]ÜŸlJnÃt<˜PDDCE_Üt`ù4¦‰kräµr\±‰¢2dj°ézà "+¢ÕÑì º˜¢ MåÈíùCHL>Ö”´+;ãÐN[Qnp‰Ü(´2öÐs3×êu³¡©F3 ÓÓåƒj/H@&Y£-L^nûÙrQÕ,œ¹ÍFÖöJˢʟb ;Z¤§h ©\²ÓæBbB E@Q`|½„0úŠ\Ycx­Þž¥Yù ä ,“´…UZª"šímn þUš–žJ´OCí‰ :>VTgå\Ÿ6jLp ÓDmœ=x®P-b›ÇÃY‚åXò4³vø‡tĹèPˆ²Æei;mYgYy"‰²ªŠiö°£…IS<\²Í£QûÁ!]Ó¥Òèúp£5€>‡" Š(€(¢ ´+úŠ\YcÒ•]év=½m¢¹¬²æäF·ÊˆíÏÔu³ÙÞâUÃΛYÓIVYBõñ/:g>,'MlÛ™>Ñé?°ø8µÈnά½TÑbò¶x¸ÐÉC&+ÃAÍnfo€¸×Ùô —b©K²;ÓÛüËEUUù›G¥Àpx²2ª‡wX½*µÇÂLÄiºÝ§ŽÿPDDCEÄ£¸¹„PVY«½®Pg8½È¿DQ9‹½Å«†¦fÐU³Ù*Kj‡ÉÜ '§¤÷i[úŠÌŠûZÄf'åç¶/X·äáC•–f¶š½­^!4}ƒž”$œ!Z#WÿLŠjQî,Ôó¸ÀÙBQQe>ÙêUƒÏ±îæ­I ¡ÝÍ2. Ä„" Š(€(¢Àøâ¦KQYn@}:Cš6 ¸Äœäö*¡Ž^ެ&‹êU;týútž%SŸ¶ ¯ÈœÉÓ"%S“ž•\"¸Ûn‰ÇE@4QPDñÅÍMU¹¤üÃsp‰¢pf›7¼ÒÈn2©>¥Ã%KwNP&ö]CúÂY’íÞŸ”\"ó¢ÉÓ&‰¡“‡dµYåV_ÇS…–dá”ÉΜ$A×›Õ‚¼ƒ¡ºJTU/ë°úäà+϶‰f«,wxa–®MÀ t 1¡ˆˆ†" Š(0>ƒÎ=¥œ¢p¶w›6 X|©/Z%Y‚Ûòœ4ŸO^£KDšV¤ëƒN|“N¸NrÁš2ínÍÈ N%ªp&³Ôê3‡N26«En“S’Ã_¨híçâWt(Mi`sòÛ4j?Zˆºâæl6Y òl ç‹ì Ÿ¬¡HÓé:Ä?QÑPDD@ñ¨Ï:°\K—ׄ—.¯\ZrÄgGO)G:gIU®0¸\Óx“¥MVìÁìˆb 'ìîP{µµUôÎ_Ðûzš Å,f6ïåFæ—«¼ÉâkUì¡Ú‹sX¬ª»Í<0|U­ï¿ß Íè}= …YÓ÷›RsÃF‘˜4ÕË[lª<äÙ9ÑÍ iz[øª*Ú:<0QÑPDD@‰¯OG`=BGdzŒÝN‚6$¸DU“YÕÔÐxx³˜Âp$©˜¬âIOrá³™4Ô CB×w¨‚hnkÓl¡»; ³Eu·Zm­ÀˆzŠ$­·ÛÇ ¡{9‹ºêæm6=´Ä΋–³J¸ß3ÄQÑPDD@‰-næÀÒ%J6Q’:&¸DÓ“¨‘º(ÒÍœ®†Uc‰MM™Òþ¤ÑÎàM¬²›’B•–˜j6kÝ†Ú ú“.íO6å&…f'5Õ#˜lZhd»…<&΢cè/PDDCE_ŸŽÀªZ1·ŠˆºÕ1¬¤¤å°‡,Zqpv8^E_èˆÂó™&†8÷µ…xÒ“\ØX1So°çs¡ 6‹²’C¹0'™Íš—uà; Äž„BTRrØ\‹Fí©yέ ùä >ÇÌó^c#¦—Ú ÐPDDCE$¶ÕvnѢիʜβU•eÁ_­X’·zU™³ÃK¢§‘ ç¶YÓ‰4-t™:i¢‰×.4Ê×$dŠ ‰N’€Aõz.8ML£F-7” ]-ª[N ¥Àšl1ë^>ßIÀˆz=¢Ûv0rµ°ÑïŒîxGØT£“à™”ð™~ŒE@4QPDA?t¢:°BééäW KËWÔ¹ˆ:Æ)|¹pþ˜µ1j2éMaµ—®™ENWÙ”àQKb5cÀ z?ª%Y?Üä {‹‡m IDAT`¶¨6ìäa’Ã,ê>1 ¹#êõPXÚ˜Ãɔ۪½Fóˆœ] ]2o5ŸÈØXLß…" Š(€(¢ Š›9°J•U·‡/aÈ,rÄsÁ%f=U b)9êÕ‰©´¤Yµ;:,E‹æ±†<S,¢î“-}Ý8€Xh)Uj‡9‹ yEÎÆ‡NšÍºO kÜz E@4QPDñõÕGÏU±deuûkª¨tÚq^‘k'–Ñ;c’ì‘!^È .áu‡@Ĥô´µ}£ç¹`ÚG‡ï$”)˜4Éžª´Ì©fäNB<èq(Úìdg:Ô^éd—DÆÊ‡Æº[x]È̤÷¸¹}E@4QPDA?ÐW“¸;s ‚ÊuaF¹Î®Î•u½CNX2‹ i\&…î`å‰tÂ1âDÏs¡(zz‡\hf³Y÷jé¡“‡¦T OŠ˜‚ùG!ô82QºÞ¡öX’DƪqÔ~´°)<Ùtˆ(¢¢¡ˆˆ€" ú>» aÉÒÊÊ¥]~vøÕ¹þhy<E<‡“‘¡ð‚L×Í<‘¦a”/Ä‹çâ¡È\¨QÔ}”6 ¯ÅÌ‘ÊØ1//Ä…ž†â!'â9&N–DÆV™u]áÉ¢aúˆ(¢¢¡ˆˆ€" _Ÿu`õ>Æ’&0Äê™aˆ˜"mDÌÚkIQ$—i U¬VžQÓóðú)±øÆÆ†j/ˆŠP{Aÿ…" Š(€(¢Àhâxú56e@dÖ2:.fDŒ~‡~,…Dò‘=4§ƒn63ºÆÚQ{A?%²)²@Vs‡J‹!âÅXµ öPDDCEMw`©äŸM®ãä‹Äê:‹æ‚Ê›xRtkØ7–%†Ñù8n Ð&•d!êPAÄ蘿ú/QÑPDD@FcÐÇÍ?IÖYžÈ§w¸(]’®Õõ!'¬]±Ô¥\0"OŠnë ߢEÓ”$†®„B”u…'›¯C¥u­$ Aí E@4QPDA<2hVô”rÑòõa1zÇÚËë=vâTWr1¬˜a"A_èyðÁÛ2€éJ(Ä|]åÈÖ±Òº×ë=±-ˆQÑPDD@ñ(Ž/!´kÉ ‘"9ðKq( ǹèuŒ]#‡ €PDDCEMÿf5®Ûp"èªJ,r¢2 "E@4QPDÑÄõR!ÂT£0¨½:¡ 3H@$Qp¨£avïÞ‘‘qì'ÆTWf˜è-á„r}¡ˆ†\DC." ÑŽ7 ‡ƒˆh÷îÝRœ»ë®»ºýÛ¾+O°•wå ñ°9†+OÔ¿+¶+#ñ»‘±r£­¼+Oˆ‰º°ò¾_yWž/ »‘QD%ØÊãHünd¬Üh+ïÊ¢íÞ½»¥¥¥¥¥£dÀÐІs`Ö½÷ÞkØ«šÑ¶î1rÛâ…a·¡aFh[¢3ò6DÛºÇÈm‹FÞ†h[÷¹mñ°Ûа #´-Ñy¢mÝÓ¶çÀÂ,04t`€¡¡ s`€a,ˆèÀCC:°ÀÐІÆÇºqÊU±dqyMèqéòÊ¥%±kN@õʹkòV¯*s¶/53æ Œh›6`õʹ+ª?- ¶Í@-¾aŸFC(ºÑ*ä¢d·F@.ºÑ*ä¢d·F@.ºÑ*䢷dŸF@(ºÑ*„¢d·F@.ºÑªÞÌ:°º/æŸÐpퟋ¢E¡e®ŠûË –W®*!ª^9wIExÐbÝ6¢˜o@×®Úö¸*–,¾¿bʪ2§a6ZœB(zÐ6"#l@äâˆýn ƒ\trqÄ~·†A.º¹èm±ß§aŠî@(N€ØïÖ0ÈEwôv.p a‚(YZYY¹¼4|‘kúš¢<ÿÁ™WTSçŠIË:m›8ËVµ§Ù™[@þíc˜=‡Ptr‘è‹î@.rÑÈEBC(º¡HtÈEwôv.0«ûªVÌõ…‹}¿æä†z2kw¹¨ÄHþÆÙ€®]µT4½}Ûz£œqöé‘zÿj"½ÅP»õ ½ µ‘‹Þb¨Ýz†Þ¿†Ú€ÈE¯0Ô>=Cï\Cm@„¢·j·¡÷¯¡6`¯äXÝã,[UYFDþp+–äp0¨«.tÅ«3· v 錑6 «âþòšÒ嫜dðfpFÚ§Gbèýk° ˆ\ôƒíÖNzÿl"½Ã`»µS†Þ¿Û€ÈE/0Ø>픡w®Á6 BÑ; ¶[;eèýk° ØK¹À%„=å,[XJ† êÌ+ þìÚU»†]¬7`õÊÅå´hu C:N6šÁÅzŸYœì_l@ä¢÷`·Aœì_l@ä¢÷`·Aœì_l@䢗`ŸAœì\l@„¢÷`·Aœì_lÀ^Ë:°[í®ÐÇ4|øU¯œ»¢vQD_46ZbÃþ=&ä¢Âþ=&ä¢Âþ=&䢿ÁÎ=&„¢Âþ=¦ÞÌ:°ºÅU±deuûkª¨tZ¬/(í„sÊôà|h®ºà,i†`ˆ ØYŒ¼Ñ ÎûôXŒ¼²‘‹^e”ÝzTFÞ¿FÙ€ÈE¯2Ên=*#ï_£l@ä¢÷eŸ•‘w®Q6 BÑ«Œ²[ÊÈû×(°—sÁìÞ½;##£·[™ðÚïSIdŒ Ñ:4ˆŠ‚àâX6²³¶`vhVXÓŒ±ÑâöiGE[F„\ô”1vkä¢Ç-#B.zÊ»5 rÑã–!=bŒ}¡èqˈŠž2Æn ƒ\ô¸eDÝÍECCƒÃá t`€1;°p !:°ÀÐІ†,04t`€¡¡ X`h|¬½ÅU±dqy QÑ¢Õ«Êœ/è_ €@4ä r¡ˆ=ŒÀJβU«Õ”ß_á"¢êçýY¢ÒåÈôSÈ@„ r ¹ˆ€PÄ·téR«Õëf@¯pŒ:gð¾gÖí C›ÝƒoXñÔ"*Z´zÅYŽX7 f €@4ä r¡ˆ ·Ûm2™ˆˆÙ½{wFFF¬Û½§zåÜUÁG¥Ë+—–İ5Æ€\D@(¢!Ñ €EŸkhhp8„KPÉÒå¥í?—.G–ˆ €(@4ä r¡ˆt`%œê•¡îàªK*\±l €A  €hÈ@4ä B;èÀJ,®Š%þ0•.÷÷ ·O/Ð! €hÈ@4ä BSèÀJ$®ŠûýwA(]¾´¤dAû¯¬Žm»b ¹ˆ€PDC.¢!ŠCVÂpU,Y 9Ë–ù…qÐ! €hÈ@4ä B{¸ !îBñX`hèÀCC:°ÀÐІ†,04t`€¡¡ X`hèÀCCë@_rU,Y\^CDDE‹V¯*sƬ%Õ+箨òÿXº¼riIÌ€\DB(¢!Ñ €ʼnÅìÞ½;###Ö͈WaÏ8øP„Z{Ä,žÒþÇ>ôGøÛ‚‘ˆZËU½áùõëj«jjÚ•N_¸ ¬ÄýòXGzrÑy.:ZÄ‘‹Ä„PtаD =¡HXÈÅÑ®êŠç׬«­ ÖRáÏD.rÑY.Žr´2r‘˜Š#,\®êçï_úÊÈ߸áÂÌU±dnÀÊ꘷åþ`Wð²#|x]ÖÕQé4x\»j)ìa‡gºªWñ@RýüâåUa½WDTSSU¾bqøf(Yº¼4ð»òçc½u /õÓ\„;òÓ‹þ ¡8 „¢ßêϹpU,™»xEyUM‡Z* rÑoõç\rÑ?õ×P¸*–,^¼¢ÃWîà7nWû’ .!ì/ªŸ?f˜ˆ\u5DT”çÿ} \íÛŸê?ª¢ÒEíý¿®Š•‹ËýÙ«ZS± ¤ýýK–./­ZQEDU+VN3|:$ >Ï…ÿ]Z !S± ÅÑÏ©"k}œ‹ê•ÁËOJ-[Pæìì-‘ ˆµ>ÌEÉÒÊÊ¥ï”Uë =¹€êÃP„ºÊ¨tÑê¥eNrU¯\ìEÕŠçCŸþ„ :°N(g٪ʲX7‚ˆˆª×·_ÿº0jèad>jÊÏ-|x|ƒ;>ÛY6­´¼ª³oì% U•×QÕúê¥%qŸ'è’~›‹À›óü"rÑÿôóPBÑ/õ×\„ŽE‹–-=ÊË‹~©¿æ"‚«bM{1U´hAø‡¹èúg(üÝ`DD¥Óü/q–L+¥ÀWîÚ]. ^H˜`¡@Ö‰uÑj‡«b—å/Z-*(Rü3Ç•Nïð„ˆßSQQQÁô#Ö9¡4u28ñøÿEùjô’¥«:¼KØ1&2Íβ…¥åþ.áDÈtMÿÌEà=ý_LŠ-Ÿ¾nőά ýOE׆PôCý3ÁwëäPÔÚ‹~¨æ"òÍŸ–PQ9A.úŸ~ŠW8Ú9}JøãÄ :°b¦¦|ñâ°GUå‹k©½Ë5zÐ`MMUÍ⪺ŽS½u|BM mXPÖižŽš¦ö|DL'ñ°;:6³¨¨tá²èu9󊈦Gz*Ásì¾ZVæÜ°î(OD. (ÁCPµbnû˜ÿ±"ªy„KÜ\fC!¢"ÚU±rMyUèbÂè/MÈ„KÜ\ttäáW·G. ]â†"4¬ŠjÊÏ]WT:½ Ö߀N®_L¤P`w©Y·ÁE>õAéòÕ••••«Ûç^«ZSá ÿ¯]´hu¥ßêÕËK‹Ž´â`1qqmij:\Žù°çjjj×opE-vN™hxí®èß$P.»¯ŽñTäŽ"BÑ‰ššªŽwü@(àè%¡«BjªÊÛ{¯ü: rG—(¹èàh€£J˜P8ËV­^lMMM•ÿˆÑùUˆ‰ t`ÅLQdVÚ;o‹-( ]ÐJDÄ…Õ6ë6TW»\Dät–,]uÌKfÃæ8ŒâÛàxȇÝR²4õ@ÔkªÊÇüÞ`l œ‹ã输À¡%Ú¡BÌ_=I"ç¢]ià;SØßˆ`ÀQõ‡\sø@¸D…«úùu!ºa½j5å‹ç.IèC.!Œk €A=8T@ÿ„" Š(€(¢ ´ëèSÊ51ÓHîÛÄÞÑsq¸AN‘ú¶A±vôP¨MŒžÖ· 0QÑPDD@ñ(./!ü‘Ûêcpèà‡­º×ƒ¡¾!êœîcbÝ cA E@Q`LqÙE$s±n€Ñ°²Ä’ëVˆL¤áh E@$QPD1ÅeC>ótÄÈ K˜Á DbHË£À „" Š(€(¢À˜ :Öѧ”c}mœApcªEEât.B¿rôPøXŸŠ£ô?(¢¢¡ˆˆ€" â‘A?”GŸRŽk9ÀYû¶Apô\´ÉO æ5~å衸G èPDDCEÄ£¸ȱ²BD„£ @/ûxÜñ Œ‡cy‡ €PDDCES|v`qŠLÄ0¾X7À@LR›B<ù €7Ç 2ùÜC E@4QPD1ôÂήÈõ‰þŸXFö1$%õqÃb¨“\ø|$ra’Ü>ŸOo_ð¢C:TµðŒè#‰Á¡úQÑPDD@ñ¨Ï:°\K—ׄ—.¯\ZrÄgG_‘Ë0>]Š!ÅGÄ0-‚žq‚š Ð'zœ‹°JËäõÈ$08yñ­§¡ð1Œ¨î°ÖÊ‘è#À{®A\C E@QøútÖÑ#t,^"»ÿ'QP}:±L«ÐK ˆ¡åÂë%{ f¥M"×êãÓz«i±Ñ“P„DnA0ùtËŽÿPDDCE$¶¸™+|²‘Ó|:ÉÔÃöAø©B³ê–“ÜŠ“‡Ð¯…OÖà8“O—ä6ÀPDDCE_ŸŽÀªZ1·ŠˆºÕ1,Q³@ý?›8µY#^=ÔË툅å¢Y± «ÚÖÄ$é-’¥wÛÐçz ‰‚§ Ý&ÎqXóñjï6 &PDDCE$¶>ëÀr–­ª,#"ÿµ¹+–ä­^UæìðŒÎæ ‘©98zÑÌé *‘|8|@£Í6¯­í9"s¯6à„êi.¤V_0ͽÍRÚ|ÉÁ_kší‚ Ú^{­w p"õ4>9¬ö¹,Ÿ*SØ"¢y6Ûsmm8T@\A E@QøbpBgÙÂÒòu.¢Žq ŸF.œ?f²|ˆ¸À «Kê¡Ú‹e÷ñü:†ñê:q©{¹p·ú‚Wª[4·W0Ë­¡‘¾lM ÿñÇ$Ë$àâuˆ?Ý …O–©ýhá¶°ŸäcÕ`íµe×ñ¼—aÌ:f$…¸„" Š(€(¢ QÅÍXŠÜüÙÌO%ŸÔ\²µ±ƒ  ikk¯´$I!^bÍR›ü-»c‡ÎräöĦq± +¡¯3cñ©n5ŠZ–å5òhLg/HX(¢¢¡ˆˆ€" Œ¯¯:°\KVV·ÿ¸¦ŠJ§ç¹>¹Éÿøۈ™‘ä–ào½ì7m¤x˜Æ#¼Àzœ oK`¶QÆãq“ÕÇ™¼Í¡OËW;=ª¨£ö‚8ÒóP´×^n†±¹uQ“=j(;¼¬©¼Ô^WPDDCEô}u ¡3· 8¡\·nîéñ6Q’ÿG·›HUXŸ:UØÌm¶#1‡¬½Ó\€>Ñã\xj/¥Éífl>ÎÄ4‡n Óö¿Z,Ê!¯9§wÚ pÂõ8mŠ—(‰ˆÜDÖ6FPeª½v6sV+y$†p´€8‚" Š(€(¢ è³9°J–VV.íò³£§—óù§ %¶Ñ­“¬°ªÒü­Â|ïÖtYÞOè†xÒã\´Ÿ<ô6zܬUfE¦-t˜Q·×¶16­ÑƒIM ~ô4n5 ÄÚܺ¨*%ô…¤VaìnM’eÂÑâ Š(€h(¢" ˆ‚ăIÜ»"|z¹À”rJàT¡‡J*©2«è¡1½¢¾£I%Nª÷ß?Çf›/I·(Êô>m4À  ¹½öj;äq³V™™ÖP.Ì{w4³jö¦‘}öl÷Ãk#Göe›N¨èPxTÅÿÐí!«¤òšì“•àsjE=¹Iõp’ÿnkóm¶[$iº¢@A E@QâfwY Ô^>y¯W%EáÝüm2w¸Ef¼ÒAÿCŽÛÌóô}#ú˜Ò^i57zܼMæLjØd Y‡kó)-‡½þ‡Ü×_ó6Ä •}ÈÛ^{y|²Í« šORµàow$si­r‹˜‘t3Ç}ÀôD@/B E@Q`|qÓåk¯´$ß~Ia™SÛO2ŒÇÌ*/ãñö/idšvñUá/gÙF†9Ü— èª;PWµöz8«Ì‹š'°„©¯ob’Û»§1p˜ñIúî÷kÂ_ÎîßO­¸í$oû©Bä³øA“½J öò0L‹™ux½­Jû’FfÇ®µW#Ëf00þ?{çEµ6àwzÙ’M6½'jB UŠ¥H“¢‚½ vìŸØ¯z½zmW½*¶«bÁkèÒ{ =”ÞÛ&Ûf§Ï÷#›Ý¼b€Hð<¿²ofÎÌ&óîyvΙ÷œo ‰B :‚$ h’(ĹÏ9zӴ㹪îw/ŸX+ј¢”áïQp¼è€.’ê·+ +i½;Ç]‡a’ÇóóY>qâ,r’¼ðù¿ˆu‚L™T’&ZÜË8QtBï!ÑœæðoC29ÚzwÓÔ©jv¶ï­·Îò‰#g‹ŽI0-·*ò Mi²Hø]ªÇ{ ‚§e‘€|®i]Çq†ýŒ¾“ º3H¢ˆŽ ‰B Ú$ Ñ9Go`u|"W7ü=ŠàkP9\S(Šð»W‘[!"‘˜æ¯QJFÞèjÕ`!^j/Z0Ñ­é˜ZÀ½>…â4’ÒD¦Ôï()´ö`IUo$IÊ^q°uƒ5u„ïÇÞ5g@œ:&…¤Í/]ŠUXBWdƒhŽ”4)…‹‚â¯{"ÑÆáZõt!Þh´¼¢[ƒ$ è’(¢H¢Ý‘nó¡þER›$‰PeÃýîå„Ý®:$Zÿí^ƒ<#ˆÃÝ]F£5vñ9#g]òç…êôH$§’$Hþ¼p*)‰J‘IVu{@s 0Ë*UWv}†P…ž AœWˆš0Эʜ*‘º$·ôt%NHuÕÑš(´ 0 Ö?O?LÝ1—á4ÐìwÄù’(¢#H¢ÿbEy IDATˆv ‰Bœût›XÞâ^ºK‘HM¡pÂ÷W•öºJL²Dà E€£Öت‚áõ†€Ò±Y¢{#úMKsy$š×H*à^JAq½½§LsšG±ÁçÅMûŒLewð; nÈŒ¯®ëÏ8{Èà)AVU"4Ej™k\¬JÑj1£ú ÃX²Ž ƒ“‘UÂÛÒõg@œ]D!'IÑ$QˆsŸîs«e®» nI¤T… ¿KX¹ãx¬"Ó€‰ C0À¹ô_»Ó˜`X'ŸÈÅñz sŸÞ;@ ÎæÁC\¯¿—] 5» Ãt¢5¢tL ÷÷k‚Ӫה@¤ÈʘÔ=$žìÄÂÀçÓL˜Æm[I§vo⩸J(³â½­ç31õW´eªˆ ®Ñõ ‰B :‚$ h’(Dwä½Õ±¤NøõÄ Av3ªJ¤?Å(Uõ•Ž’¤ |B%a†ü=¢oy_o™ðn¦Œ|¨úŽèŒ{Õc¥˜·W«ˆÁßÑ?‹®üN´†@tŽŽyA(þKóù4>Ä üÌç£51ªß1e#‰‹nðÖø Ò ½"öð7!I˜aãIáGʸìÞølÅ•}[…¬Ë‚1zä…rJ|õQgß"ñÇè˜ Ö2ûH‹æ"Z¹WY5ˆØiN€Wx0ÓDξ˜[@ó§’ÓDõÏ÷Uªzï˜ÎœXI´ê-5ø•yXtýöNÄIÑ$QD;D!º#{„pûKӦݱ¢ü ŸËÿ„ Z溓¢*rºB‘¤€9DÂ¥qªÄ’” .W•¨bUÊÕ¸ŽãeÍ{Yp£¾rºvtîè6Cå}mÊ—ækë\"ÁõÏrD % Š Õ¸š0[©9©4·¢‡–•:°0giië «¤ñàaãtßâüáOH §špŠÔ|¸¦( €ñ¢~´À†k’HÐÐ(»xIm¬Úosàe¸¿7tYðDg}‰§“ªÔ`3&_›H¾&£å¤m@…$ Ñ$QH¢í@…$ q:_«ðÃ[¦5óÒö3xB¿Ù2THѲ,±ºB7»W“RèÆ°!}ª…¥(|µ¢Š¥„ ÙÔ€•ã?€8ÊCùx'aM aŒÚ:hÕjÃ0ÔÇ ÚÓÕy¡øË7Ð’¨1„Na¤¦@Y(è&¥jƒN¤,€ÐØè£L¶Ìe_2—¹·€Ú ·“©¶&ÖîíŒ{n/­ ãLÅÁ,‡©õ¤­ÈƒhC'E³i€ IUÄtµ9"4)&7¶ß1—P$‰¤Àénâ%åàŠÙ375/Ç@0‹’J U©‡nÂ0BÁKÃÚ<ýQhÓêÃPAD{D!‰BtI’(D;D!‰B´ãLq_û´?¯Îæ-b‚ô?IKRŠ&qºJ‘„ %¢fôê÷µ.s¥€GpÈ ±(}™­ÁRWµ(wÐPO°5qüü}Òc‘–l­ÕêÑu°¥T†HZ>Í›ÊˈDgdîTàùkÔßÝ qîÒ%yA©þÁCJñ fP8¥Êà,<”¹&g¨Îà”"€Ôä’(¶Nø.šs:Ðu'ÜNÒÖ«æ$·o§¾ø¢ã´&Ów ÑêëFÍÎÒBsZ¸£0iÚ—Gö‰÷w ä/¿0/½t–Gt]’ Ñ2xHÒ¸"âš"$8¤³¨Aü%˜ªJ$ M.U”Í™‹kêËœUàÀæ4,bQ9ô§8þöoT$MZŽkÁÕ£Kë g©\A·.üp0™¯0*D¢ãîg„kyuÝ$Qg$QÝ$Qg$QÝ$Qg$QÝ‘ÎÕÀ¾$'g Àö—¦=\f¹ðÃ[¦}ã—æ,~§Õ±¤Eú8`hU•8C¥š#ÕžÊ8ÿiÄa9 ©€¬ÔK2¾û’eT£beÐèÈcxðT¥‡šó ¥ó8"þ}e…,_i¦ÖRð#:ž_¬<Õ÷÷@•U¿(6²$\¥ˆ}Vm0xˆÝµ:8}Ýôs’%ðœ®Ìó‹áÝÓxß~$üN}[GfF¨÷‚^óE™i“–œ~ûˆ³ÃŸ¤æ¯6ÊÊ>•ÅpÅêjÒT’wOÔ}´"€êòH§½5Ùa²b‡êÀYZcÐ!R´…=¼/Ðàö¥ßÏý\vY»•|¼)¦Òç~Uä 7G´c%ѽÇ[Ø&ï§¼Úð쫪ßwë:´Ì%&·n%7m|ð¿[M¢Mwµþ…Ííy –SÀw¸˜5Ëßý‡GtBRŠ5ˆ$«2®é I@cc­É…h-Ve‘¢ IR9Ešn4í©° ^‡ ç ge…ÅhpÇñÑA–+eÙd´™0R¨àå:þc‰Ò+ÕµkªJôÚ\%á%‘jÕ ßC¤Öê‘._ Ó—àoSXÌóï œ6þ+N}WGΉ Ø<¯y¦¢\iëÌø'¢K@…$ Ñ$QH¢í@…$ qNkÖö—ZåRÖ>ÝqšcùŠ;NyäíhŽiJ3Z“)’0Àí¬,ý ¦Ò4¥€ I"4†zVœt@iC¡WÁuor$¯á¶í¡Hy¤Ý¡O8^9èÄ9rC âÔ×XkÜDiÙÊæHqÕG%udƒ-i¾•znh¹ÂMœj…9Pýkld&µ9‡ºeG}˜[úWë`,q Î÷ú)6ÞÚj/ÓžmÁ0'†­;ø^b¿Ç<ú,5~ŽÓ•yAÜKõé fxsÄYWç£LýíbÁņ[’v;ý&U—@SU‡±BŒî ^Láñ,ÕñÍÖv‡.ûvÇÛèâ÷W"¦êb15’Ö%pûŸM—·ï¯‹O+&’köú˦€aðS§Õÿã“ß{g-èÁ…xë¿ßê¾ó™Ö¿ -<´‡\¾lu rðõµî©ú“ Ð)НzÜ“”Ý&¤ªùëÊ@:[–{ÌeÂî³5ãà\¦+“¢Ù´@¤)BU e’€Ú&//ÉW ºŸ0t‘"À£«JO;2š£A£ ª¾Âê•…µ<<ø|‡êº_ü¶Hiwèm%އ?˜‚ã@'œžhOeR½ûx½?öUWõ­¬‹sÖç9*›]ÞÀí¨&¹Ou8ÑÓ²LV`·4¶ÆÌ-­Í<æûJ[WÇ?:Ú”øC$ÐÖœ²6‹91¬ü¬-k]ä%æy:³€×y’($Q¿’¨“$ê÷@už‚$ IÔoñ×”¨ÎqŸ6mZûd¿téøßÚ¥|Åß?L^š““““³žþãS)Ò×–¡tÕÇ*Ûì^^¹B’‰¾žÇcH Ü%KÔãOÆúœaï€Fg‘WÄͬ+œ43Ø#Ãjöl‹Õðíä1ÖÚÜ#Ì"Xµÿˆ|™£*¦¾ž¯pïiŽ8”mEQŽ›løÐ)£nÞ]^r ˜Ë+yÙq?„ãu¿õvjˆÄá–æŸ÷¹¯:ìÍå­¡î/åè7ÎÌkÀ0Fy^ÜîÆ†6µžšp’N‡78LsD,˜{…Ò½A.k‚aNÒ’\jLiyí©0f´I` kø­óoGzi%>¨uäxÓí¬0ZÉ¢® |lƒ°ªýο‰Üîuœ•-·üwØV…8E'ò0¬ì÷·û_ü yA·¸§yu’’hŽHõ.Í¿aS ’d5À')4Ýðe²Ïj&ê@ªnX‹bwÇù‚5D3÷ýÔûм¿mw ¸ã[÷Ž˜™uô‡@$ÆYbÄ9‹é”Ckýg]~HÉ Êø¤ãëýà‹û]zÓ”Õº±JM+¸ç·¿?ˆ¢3vHuŽ$PYôðÆ¯ªò]<·¦}«3T¼\Á_¿î×è)ùoæ´n¦¤æäkµÏRûÆw­#)9RN§V|(æÈÅ÷¦Î§”û37ïÞe®ëZï"T;óüÛRº¯Ü;Xƒ9UùõvéЉƒKÚÌ/(uݾÅob›iZ•øYuù@n“5D^^Íû:ìtªyû±²î—rKù‘¢tCLk.ßPïUxYνÜc€(Ò$ˆ:Á*"þ쓌àld,PVﲊÓ]k'µy¶ðIÅ›¾ìpYmö©ÙukÊB,µ†ßKJq‹Í[ë¬=ZãÿðÌmò%5÷Vûüû¿VFeï.{¬hC™?M>®v×á¿ÙO­#^/÷½ùà°‹8ê‰ä­u’ûÝnߨŠëÓìb‹m(õLØá^5 ´ÝúÕœd¬Rôáw:8ƒ^õQ¡4䀰Ò¬˜êİ>¤åá ììÉ ClÛNÃ)›Ù+êÕÕmÞì% e¬©h=0«g \Qé®¶ï*v׿Å5ÊíÏm7A;¿sž®—®‰"‰BÕ†sA¢b·Hî9åÆÛƒ$ª$QH¢ZíŽ$ I’¨¶œ ‰:#5°Æ7gINÎ’á×ølŸWåÛ6¦&Æ@|bjaéM§æb À’†.[pƒ£T£N”ÈÇjïÅÊठHTâºOUw¨Å,€ –úDªq“\¡Âñ ߟnQ*׿dd¬$½ª9žS×T4nW¡i}ÁâæHX¨Ë[税 ¸‚æˆ=¢¼¡8ÃYc ­€:}M½óÛŸÞ®-9Ô3m«ˆû7˜Ó¶œ8Édõ#bâO[Èôè_›_òÜ®]ßÎ\¼x¾JlŽDEV4 ^_Êm(º¾9RÒôɱ ªé-Å‹íä• (‰ëØ~±oh©gݱúàf»íë•Ëfö©m h&kÒ¢ywô ñ°îr(·±ÖèeŸ5Gd¼¸O_ŸEÇöw?º±höÚ¼»‘ô°µGêË÷7Í DúÅÊYÙÇ­<ˆì÷öÛV¢×“7"aóÆ j\Á± ›«Fÿxbjà¥ÞjœLßV§}Ú)†ZBl¹ŽÞþ £‰î6qHë{©Xãa!±­6³.ÿJ¯~,ðÃ|¬i¤“ØqËÎÓ%yAi~ùæ4͘0š¢tT,ÓÜÕÿÂp†fU¢¤2ôšR±2¼Û àôú8s#“®Õ²•*}Àa—7Œ<âÿNâ(uhZ–{uÔ×ETÊÏü}y’TTc7—Y’O¬óÛR†ûPS¼·:$±j÷!Xsǧmã2;|Äú76À†»W8W¬¯ÎÎÿµ Ýkš˜˜ä÷úß›÷اà-®kcþ•°zoó<”çV¸1 wùÁ ‹¾ ì5¬f]å‚̡ǂF¥•ÑYÿ¹my»ö½;ª/¼ýèíÈÚۿȉœ½6fÊêÇüŸ y3îþQ¸2þ²Õÿ÷Tn.ˆøèß…‹_YaðRß}Åãy)3;þ#ÔFÏÏ—½¼zñ‡ÕÇýYVzÝßWÄÍ+NŸØæø3Ë¿~ÇEûƒîµëÙo‹*ÉaËŸ D\%õëýfÓ3AÇ °jéÊ=}¯iÙ4dQåuKsïó'ÅÖò‘qyi³vpúR÷÷í{eMpEÙ¾@©;‰A®ZüQ]^ð+ &ŠäÈ‹CftܲótIRÈ-ƒ‡C‘„J’†LâàUuN–ÃjqVõÑ(8EiR"¹Ž”½Mœ‚n–Ëœ5Iê±Ê’ævö§Yë¶n:Ö cà‘üŸ9¹qqFiñ¤ƒÿݛש´Úg½ÝSQ†ùGÃNX¢ÍŽB‹§ªŠµÀÑz}_c“ó“'ësw*&¨—±'"âƒù‹ÁšAæ®Øºù­ž±Í/׳\Ÿª¾úbÞDnŽ ‰aëògo-þx¿ÿ-§º>³zÏŒ-U_δsCqáÅe!Û¿±ÌÛP.¼V\ îÕˆY‡_\ÛËß³h©&ëG?ŽÊI÷ïþèþ¦êr1‰µn<âo¿ZƯ(Æ_Í=Éù}$ÿ¥=ùìÙˆ¼˜w¼î•£Á/öŸ§Å_•ûå¿}Aƒºíˆ{|nÉM­êb4 oææå;N²ªÑßv•=º=xhQƒéÅòý*½£ÎÿÉS©`·„\¸> c‹ë©…>¯)(»,ßs’®àÍ]Gê¼A“óaØÎ6ÃuòrI’¨s@¢j©É~Bƒì/D!‰ €$Ê’($Q­@ÕL×KTç^ûöëóâë·Ã—ttŽä„àæÅeå0¼íÞŸÂm EÍå8°™c L¤p€pË"µ|¹ðÍÊD7€¤EYbŠŠ\ÿþ$6„SA¯÷ ô´{_©ñ|´-wEIÞŒjé勿bÄêÍW„ÖWΧ8gß>U«Ÿ¿64õ†ù7êÞms ™°ùÓçj³fÄÄg+J]o'$õس};YpXž}—¸êx$å‡Û¸\غËMãbÕñ®ãÃzMÞ»e5Y‰]“n]õâkÞu§)ä½_‹Íû7#cÊ5ümÃRÕÞ'<Ë7-¿ÝªÿóÚÅÒÊbê‚áG*DlÛ—7 éû~Æpy͉Ì#„4jòê·îùwtŸ…C•®üpާ¶4cèÊ7Ÿ ³'ãq>«¨ˆ,úî–[ ýdÙœä¡[V9ºþÂè¤â„LßÑ/æÝuǯü톬Ô{8Œ%a]xíÍØ¯?¡í8ê囿{ñòQ3ÞVOï]u»ý©ù¯•}òú#÷éq׫7.ÿògmû´¡Oݾ½Ç¯[]”n õxÜœ³ÁZ¶sܨË?×ÃtM""7ýœ¿¡då(ÛÈñiiÃå‘ –½÷Éõj©‰O«<…tü7=ïí°@½#Žœ]“÷àŒkö¼÷ÉÕV9>zò'™É.Õm!c~ÜP`«(Œ‹I®¤M’ ³YVIÀ ëùYëÆ9ÌžIW|÷ëw#"ìÂwoz¬—6ýîèd¸ý¶—‡\ùÖ»áoK,c×ôFýôÂ7‹_œñÅÙ5Û¯£˜†E-ýåý¹Ãî¶¿õmv|zŽªŽU%_:9ׇG‘¶a› Bö­kñõzÕË[?™š|,$4Cßøî¤…Ÿ·ßÅyAëÁC!<Áæ®jh<ÄIbXa™`yÒÂê> eÉc³9kÚ5¬UpåõI<÷Ìàé¥TÒöç6ÍsÑš~L³e2òß÷Yöí¾éíä- /¼å½Ð¼eýÌ#§ˆŸoIÿ?úõ¯ûêCË¢ŽÄõÐà›V…÷® בëvmëÛîó=ðµýÿÈÒ:âAÿ²VÔoÝ*…N}̾iµújú§œ=Ƭ‰é9ôÖçc[rÒçW\”*Q˜åˆ2bã»^y^ß×”ýŸÕú÷ÔŠ¿HŒÿá M{wƛߟ?¶6çÇž¶Ì0á­ÕáµG¼Ùoæ}e;—g±}’"o)b?ÙvÏ·•dï˜ø•7?þòš×çØžÏ]1»Ða„Ç”ÖE%x¦² žzçë;/ _­£/º`‘‡Øxˊ׿¼ìjSÒ{Ã:÷77~õŸ—#‚wѪêC_½ŠZyÇÖç>Rûͦo,ô½¹*sqù¢÷´_ÿž^îþqØÕqá™»"Ga†Ñ`ªÍHá=7m|¾ºÏ]‘ûr‰o>yÇ =Bo¸²øû×¼ÃïRó†Ü³{ܼÑ#&Ì,ütýe—-¯¸¡~Ú+½gP‘«þï…§ž¸ïf÷w7Ÿ?–52éð¾ù;ÞÁmÙ"ÉîzïÓc.Š:VÌÊ>C7<[jé¡Í£ÇËiWï¼ìYY=òÍUú\ÌÍK¸âïOÝï¦ê_ßUPðÒ+/Ëÿ…Ðø±ßø#W»iŠàÚõTl¿'_ûfÕæºÙC4î~ì…-‹Þœ–ùΤ# KI]Ñ0²6)qΦe=fsLø%vüÑ ²µ^c^ß¼{Σ|©2ìÐg^=©óOtqRÈ$Ñ\¼Y`ˆP‹EÓ ‰"@ÂNñ} ,ÿ*ô;K€Dд*¹Š^#?j°ð²€á&IœugüqÏšc»+np÷J[õ÷5S×]þº³ (~WRÿ{<Ï×'$ÕÙnaæ¦æ„¯Ë˜beŸËRf”FdS¦FÞ[™¾Ü^€>’p׈‚"FН sa®¯÷íeB3æ\¾ÃW¸7iærõú5êE¶>}·>º#ûñŦK7e­vA{⓹O]}dÅ‘ûfy^+þ(a"±aÐâëöy÷UßTå{­ôÓ J>¥¸´WñúŸ²¦÷(¿ÇÙ£Ï΄E³7¿ÛÇS³*idÔ¡g­||ô€^Îâ‘UŸ ºäù›~üWeìÅõ(]]’ÎE è¿û—ÇßÖ¿UTGÔz,éiRzï«•ß,y?>+wYÕ?_ܳ´Lxb⮺–þ0#÷ë¬×nxú£§vç<<ïÓK?øvЬ¯6<9=ïÓ‘3îÛZàäBC|®P_½rûÎWSj¤E’vÙRrwäMcέΞžAÿTýß»²©O>èÙ¿êxMÒ€ä™Ã~}'jþÊ]Ï:ck¶4sÆüêU;zLûð×÷›Då°¥W‰’kČܙç8VÚS$YN‘šXKˆN›%üÁy#˜=UEÒª!×Ï>ü™S¤Ÿ2ÿ¦¨Çöý<9*¬ÇË/ÜYžvû<ÒºvþˆžIcz~÷ø•‹Þœ½úüð>ÂD½yóãï}5ràÒ‡¿ø²ÜÞWÇ1R×b8nÖ¥>ìÒ6awþ€‚Ÿ”ZëÚÉ3–ì_Mº‡ ¿®ÏÖ¶…0‚ ‰BuîH”yÌšþ#ˆŸþñÍm/LÿòÇìj$QH¢D!‰B…$ê\•¨Îqÿc{”——ÙˆOH>Ù&‡oÛÑœfaÇë+•Ì)FŸ¾Ùަb#A’hÈÌÅâpdDEH‚Ë £GÍ ¡?üðÉ‚ÐéŸÀ]ÐWÛîàé°’²¯{³³"‹«-wþ4z_áK½FÜxøhì‰ã©)—SuôD^ûÀ›Ã¾³„ØöyrßWM#G·]ÿä†Ü×#m[÷üc¤÷Ú4ƒ{ï^z¤t]´ùûå³í÷ÁñºÂ¡>ö (IJ}'î³àPù¡7/º´>¿çÇëùÂVŽ›ú«Â¬Í2ïpãE=žŒèaÞrdWôˆ_Ê]µÃA/¹ïmI‚_óÆÄX»yõ⤡آ%ªªQDDaÉ<÷XN¿uỊ¢„„G|æ¦&\û¯Cÿžœ=ðß#§›—¿i½èŠWŠJ"=/½æ—Âvæ^qYÌ—;ö%Íû¨¦Ô2bh]Cî+÷tÕê£kB³¿ª´5.»ø˜}Õá)#¶Å9TÇΜóà8'V¶¿dÁuË1§"“³F~Y¹/ïv¿£JÒ$slZ^Ú•Ÿçåf¦©ã!D'Õ°>Sj†ì{a^ÍÞw2/šŸ÷Óäé æ¿ýiS&¬/Ü?mÉKïÿ¼ëHÊ%Ÿ;êØaƒMÛ¿œ?Â/[®ùJÑý—ûÙóÕwÉ}…±øÑq³OlýàúÕo¹¿Û20>òÛQ¼¾á†ßÐ4bsNuXÒO¬˜6Ê«ëÿóÁäwW$8¾Í¼ñÕ—/vM]}óßì;ʉ›ûăÜ{[ IDAT£òb#,¹þ?|úÄÏ×||Íãÿw×mÒL7=ºïËjTœ«pçŸFFf¦í|ç½^{rö¨šÞñl­SgHæ™ïìAÿ<÷Xèê®Ì_öÙ3¯.˜<;,T_óiyÃ×/Ýõƒã¾gOì½[sÅáÈ-¦•î=6ÿÞ³¦æ¦Šâc/,zàŸ|¯OŸ}÷¶Kfÿ489âŸß 6_R8[ÚÖPûý=ÿ7æ’Ë·•Î)ÿaû¤¿T¿Ç«{%ÜöÌ‚ˆ½øçÏ—ž4ç]Û~þ„¤I¢?^U ì”> }M…{0L°Œ*@VJ–ÀâGˆ= ÊKNßwøÛ!ôÆ“"5™—½}µ¾Q®zaóÍÊ\bJïÊÊ;#Ú˜tü1}Ì¢ÃÙ5y¿jó"ÖÊΨYœñ&Ì‚0KHß'ÆF§®,ºväâ©7ý¸{gŽ=´Çì\w°»wê½GJ –ÙÍfÛßKwågO},à5…Øû¯Âƒc/›æÞ;îîGeWÁ˜o·”HÜêÌÙT:»-Óüø×ïL˜1#ê…Í+É‘ÚgûÇe5ÌšsRãæƒeÌ›–­5Ízë„% ¨k ñë˾Wr;w×¼kP’øð+>:öëÔ'&Õ¿:mÒpʸ*tù« »2£ª(Ê}⋱·ÚÝÞÒvÇšìøyûOÆœ­è×ÌQw™rÇD|4tÛ¡*9[ý‰ÃÀ„ËæÇè1õ›÷„Æ–CûÖÞ»t’Ú¿fÇmsæR›teÞ¬‹Ïþo׫áîrZ“ŠÃÓf_?¨xçô 0ŠR#Ÿ:žq´¦oNÖEÏâ{?ŸriýÏ·M¾æÁMç¦NžèÚ5rèKsvlۦ̎1jÖgf?mÛž5w¼qpýš¨yô²_Í/—›Æga3KO¬sÑùQ}㥜ìkbÃÞCp>ôîc½Â ôŸÆö¨ä§^—²é 9edéò¨æLþ† ] ˜çè~áPiöf<@mëÿè]òr> Ë\wÛ\^‘ߨ¶¢ÿÞûaÙ[V¨Pe÷ÖÔ›bæØ‡Öüû‚‰)ã~w¨Æûõ¨k8™X›¿pþ(k¸­(iöM¦œôJü]D!‰:ç$ªzÛsWß0öð?¼x&’($QH¢D!‰BuŽJÔiÌÀúcÄ'¦BË#âåeʼn° ‡/_®?zlǦBr\‰‘n|ôJcü¤xz§ 7€o³&Aö™@ñFqÑΫÌYÕãCW]Ø +õRQ0)µ'–ÐUÜκêÞðkq¼¹DÒ¤2³ <Ÿe—ÖÝ=´ I*t1=1èx¡…}VFz¼7Ã|oóy©5Ó‘¹#Ã÷ÀWô„„~¡ÀåP)~ªê ¯ö‚ƒSQ¬Wc䎚Êþ À00<ãiÍ2³ð@yQ=ן’Äz¿,^6ní'TY3M@QÔÞŠÞo¼õZ~ý=sn|¼¹¡E)êp¯^8ôÐ œ©a.ˆ€‹3vä ƒ"ûjVåƒg@Fä"%ôÁÞ™åVeYd¢|˰ô¥ù†ë2s„a6qq³OTüzóŸÎCD´1V¶þG ¸ õ«Âì)öÁ”™1Àzáîz <ŠÖ|ü‡0¹÷†2èá ‰Ã~é14¦d¿¿ß9ØJd.˜ð~K#½.ïøo¯ô†MÖ¿‰ŸÑ<ÕÐp).¼ùɼªŒÌ¤d€K„¢±sìûÖÁ™7èqq—\®ZÁS;qF?Hî; m·á_ò(`T++{%LÐ!†(o˜ù„"x)¾Í²Jg‹ÓÎ F—ê¿`ví«™n1©ñQÇ+]Rß`(IC­žÂ¾½oÑŒâ#Ì d h—ëž=T?Zô¸Ãxh K²{¤;vÄ&–g‹ /€±›†=4æJ‹Å()ÏÌœz$¤ŸrË ¹ Ï¾G¢ÓYøüúª¤¶¬4ûÁÝw숧‹8’@âðaër²ÔÇGFÀ°«³é»Žò{n[1yh³><9tøÅÍsÈ÷^úUöÓ€:ë3ѺKQ½ô0ÌF^ïI–JBÅ1éÚ«`Ô«³MÜúýkN)X¡=zL{}aݨùjqß‚¯úÒ´FÏåöõ·Ü2ÌÿwҮƒñzý sUL˜;ìí Ê ?dÍ2å j´+C®ëe€ã§qŸ‡;y{ê… hƒòþ3$¶×ö‹îÉcЮ¾c ÜÑñ¿¡h-λný«rÉqkª6gÍC»Æ?µu;öÊ3Ð窴m_L˜{`ùÊý—Ín€A÷7yøÅ Ësìÿ ¼ÿð›Nö×§lq÷¼*?\aÐ €1+1|rqDßÑKê sÓ·>§†÷tRaöW§` œÈ œ¸T–èû—ŽŒЧ&fÜì+©™}`z€ë«×ìê?1[È8ñ­ûÅw½ ˜¨?xuvŽÓN ‰Â¿d^.©,ìSS’â1Ê)|9õŠJÍjv¯¸è8‹ýTø¹LÜcÓ WJz‰P?³HfN ¼&[¯#ïÎË:ÜKªÕë3Q‹‰I€Ò²`ƒ)ËS×m)ŠëW·µ$)¹\ Œî?ì6–½æ»wgÑßô-qA2Ö;±G……ؼhA`ÖæóRPM&ñ¿ øÜ= tsBIwl®õ­Pu˜qyó³;Wôêu›bQ#Ý%=`ôéw•f‰¯ßÙ§¬2x ÈçSˆÅĪùEï^p¬2Ì4<‚Æ`÷úÍ +© 4ÊàÚAšQÀ°¬d€/cM>C€1ɯÛLÞ6/1Ñ™ë,™Õz6ÿPè»adšqcóËÁá˧Ì9â&ŽW»i`Œ(Ý€î¹$9åsŒð/‚[.c.}µ°PÒ?Ü$5ff_¼oWMhÇ·K·™&AÍÃðþMýSü7ÂÃð±¬FôºÕÙÔ£9‚iYQâ?g.Øgeü—D²ù{ÑÕ”@?Þº)¼Õÿ‘1¢?÷ásûñû#Hÿ;M0ߜάf‰Ôýu(#®ÎKOŒVúEëéiýîn$ð“†èæ­Š6N´ŽX¥šrDz–Wt”õ³ìbõäàYÙV¦›ß‡ScHÄ$”'î´é×ö6ÝjBðlïAnl³›jêwЇˆÆ§·zEg[ží"ñòszyaHÅõÆê{Y9IÒ–}4#‰`fÀÆëÂ/r£ø¸PR²"#´ºFö “äâcí0èÎ °µnbÖÃýœû†_å¯aaX,€%Å—fOã\7f±¿«¶ÞzYÏå9|¥èŽN€ô‹ú&xŠÆŒ¾Û¨FÞ’ }'õH‹Õ½y±Á…}sCG Ýöå‚£+EŠ7¥Ç4GzÞ:yÐñµœ{G\“Õé·æ…ëë>ëY7äÖ‘@§Æ„ÿô^¿}MÿÆß)ø¸uHZBÉêáïß‚QþÛ÷õ#¦\uøÍôw‚s°¹S¦û¼aÖü@Ä`yÍQžýÅ)­¿žñÕSRE¡Ñj áìµç^\šp¹ÿSbÄפûo¹Á¿Oú=³[Äë÷²â^&"¸à•žKnïùÉ­·¡w¯‰ÜÐfÝ"ƒçSFžêå=±•™Ñtö#‹»H¼üœVRÈ^Gì¹yÏ¥^³òæ»]¢±cë%’c48Š”€#ºD1 h@ãÀJ†»Ô$PfH0e`JŒy:‰<‘2:6©¹åÖÿ€ÿE¾ïõçÿ¼©oÄý®ŠJ­I¬s€…1ݘ빕‹v±æ¿ö’+ä>CËœVHõ_xƒ5禸YSöË߸ ²Mu€>TÛœÒwJ’_=ÒÂp‰ÓÊÃÇõ•ü•úaÚQâ™7LbÙæÈs±–jÑuIBÛ¤hÕç‡0Á’Ÿï¤™ÞH3÷ðŸ[vœù@/㵡‘þÊ”‘Ôàýj\Ìüž½LJàîDã”Dâ_GµYB{§Y^Uîhþ™ø1{9ÍÉk%<–vuÚ©®­ó^1D«!¹ ñääýÁžÖ@„Ø*x^Nls)G€e>ÕüÌØà“¸bTLݽòƒ$ I’¨ö ‰B…$ªH¢Dœ×ÕU7°âGŒ Ô‘+/ T—;u(»bùQkó¢D˜ÅNc0¥ßš• Å_M4 9³šfTBkŽ4*˜Hã¬×]2:¥êÅÏl<æãÓÛÿw|ö~Ï­Fˆÿ#,õ¡¹¹µW½R uh|ŠZôÇ&Ô„Ì¡1QzMÔÑÃú˜‘FY#G»7Žx`ü —í§.Hˆ$_>b¨o'…+LJt ³í‹†¯V€æï ™¬^ð/dÌ““B¼Ž¬>Ûï®K"C”¬§t²E‚ž‡¶KlD\L󎎈ӧ5–t1=´Í— =9YëÕù¿ÉŸÉi'…Dá—\W|ÜDh@Xø0‰Æ.,"‘< þUœ9ÑHªè/RŒ¹ei¶ð&Ed5/c # jh1}4Ãupoºi@bûîÿ†uV˜24ÖßggZ.‘×%þ®I5BtêÏM~{¿IÄ7¸Kì3‡•+}ŽŽŽßÙ;l:ÕîóóäŒ/Љþaj rqUã¶””á!ÁIsYùµpßÄ¿[˜O¯DæC†ôd|UšBÒ JOZ£ó”8IWeÿ_RNÿã·¿±¾pºM š–lœF›"H¢N’¨? ’¨v ‰òÿD!‰jITóK$Qç²DuÕ#„?ïõ¥/M›6 `üÒœß.F'+/Ç`àØ»¾|î$Á €!î_ Ã*^ÃïF>)`h¦ü—c“H’´ƒãTïÿÔŽô~~uïðF ÌÆIîú|mŽ›ï›§”Uúï»UËEsiáëÀåïtÛRzÖP¾àœáúZï™þî_ú“oò6¥U$ž¿7œ¼Yf¯Ó[5mdû=;‹*ÝÝ.á{ùL5Žøãœn^°†¸±¢ú’2§€ñ4€ÉÎ3†T@°² ·„„µ¢„WK„_Üë‰7…(MXªi쪿•Ðsø¨ô5ÂÃÅÇÛ V»n¾käo–ޏ€a„ý½Í×J•Å´:eDõ†Ð+‚î2üÆlE‹EœÒ7ã».9Rm)Dø<­w6L&jâÄö{v =#]øÖ’§¡po—Ž–!‚œnRˆ VUUPS;Î$€M“‘ûˆ}Y‹ì¿HyŸÑäÁ}Âø÷Â]"nż4aõ;Ës‘Þ¤«zG6j&óIzëç|¾Ö/ïH€›M‰7—U6¿ìéTŸÏžû-@Ëu/¸öGöšÁ½††êQ´>óÔÔr^?2ž¡UoqQŒéÃp²ŸÌA«Þb¤Öy7jÇjûг÷FøNº%¢K@uDýåAuDýµAuDgtÙ ,h.DwJ“GÛ–—ó×YÄ`ÃÕccêQÇ8 h š%£•&ýcw¢ŽéÉPº‰·7G<>†2WóŒNšƒ·áäF~Ua׆q¡ AHä§ñªCUƒ¤²zL²©Çn$¸êÞ}ŠÛTu¬ª¶¸3ë³ ±TÇþèírD÷å´ò‚1¤ÑJc‡€›h‹•b )òØ>NñXÃüß@|gU8M‰ôgŠƒ ‡F{ˆÚÄ¥úgh&“¶ìõõ§²JJø3·²ß¾Í]èl„í×Cœ°ÁJs°Æ-¾QýzêX˜zªcÔR‡ê’ñ,Åå¤[#ÎCN+)$+YmmÊ~NÔ€ •„ÒzF$ÙÖÿÙ̉ºÇDеø¯ÛP¯€ñfdžãAÉÿÔ6†“p ½ÅUM±k±\(€ 1‰¼Î«ªÁo= Ø`zÇ Uo±YuŸâ4豪:Vmý}.0ë÷bŒŽýÖ.ˆó$QÛG…@Õ$QyDµIÔyFWÞÀ:-€šˆ®§E8 ÊÆÒš‰ó÷1’†N2”nk‰øDVc¦u<´G )U½@U/h€ß@ñ¬ Œ!p¾µ»‡ÌƉÁöºÔq}[¡%é¾3×â<‡‰,«qE‘>‚·MƒA7©^=Ê?¨.༅TxÍ«·LÖurvµ–·éMZBðÙfåÒKOý¸â¡½ Üø†•í~k·Ò zʬ £þû! 1P[FjiŠIÒš{ F‚JhÆF4÷ÀÉšBMYIÿÃSaŠ ²v'OGãÁ§™.PÕ ÚÏÿà{Å-½ÅSœÚöId\e 6Øuª­ý.4À}Rç—åFüÕ@…@tIÑ$QˆsŸnsKˆuu<&jþ{­²˜ÅÒÎúgðŠf`*K„Ù_¹PSB-¡3 8—ÑzŠà™¢—t©lœ±\B þ(2Ðqäq…Šò‘<Žë€G†4˜Tç7-çH7é^*Òßñ–pµAáApŸrá½?DÊýÓAQä³Ñ4ñ{Ð2O¨Mñ5rRKuÙpê¸@Ó!„ß´8I%HU`È0ñƒâ£#›Ì¤çà,ô={I‹äs¢p⯠’(¢#H¢ˆv ‰BœûtŸXÄÕ$ž0•IˆHÏRgõ¯b «¸Nˆ,´Å_C‘†Hshiªs6®z]ÏÅ̳Ð0qJHcO©÷–[Öq0ÆÄ&ÝÃDú#>œ3d+oŒÝï^JX„¹¾¦ ·'oõt‘.üýˆ³#õщšÄË÷Òq£ÁÃPvÂ?ZÎ**Aë‹›uÿ $QM…7…`!ªg¡·ÈÔõLñTºB Î H¢ˆŽ ‰B Ú$ qîsŽÞÀêXRNðÕ²aq¥˜D7Ï0”uL” Ž00Þ_šAVqœðp8T\óÍ_3—,‘[(Åàºô g“åSÇ„¢š‚î…ca&Ý þk^$yÙk1×cñoƒEE†í-q‘¶“,TŽ@t+NR¬Z2°z7ÙX\ €V ’mòr„ 󧫨‡{9œ7¨æ¡ÂXŠË£- œ‚†øÝ$QDGD!í@…莜£7°:–”“u¬Ò0±æWËÂ7в"ó8`Dl³iÉ IÑM<ªÖœ=&>Cet·†¥A¢+9I^àŒf ©sò.«À\ÂE2Åî_öC"XÍEª@áÏ6%̾e§‡²"÷BtwNR”W1â]5¬œç2 €QtÊäñð¸ #šM‹Uœa¼<Æ· Fp|­…±z´S,Š@œË ‰B :‚$ h’(Dw¤Û\eŠõ¼’\e¦ì- 7šL0†?¢ª$aj⌖¡B3ÝÇÆ-1€8?‘0†ÕÂhGµ)¿l­Œ1>·ÉhYÑF¢8Ì¥x°¨=Á!ÖzhÛŸpÆÄY†VôHh´4ž¥Z"oÖ<&ÌÄøMÁ1«Àgø#afº6„ ñ¢r<ˆó$QDGD!í@…8÷é67°dsNk¢‡ 2š#ª†So0 §¢¨4ouùZM]´éi¡2;DœŸÈ8c)‹ o,1¥&"Šƒò`æà6KxD– O±Û•ƒÜ qÂ(:ĺXbBËh9­éÁzMÀ·˜§)iã[õv›^J„øPÙ\Äù ’(¢#H¢ˆv ‰Bœûœ£v|"WÑ1R¯1Gê<9d„¶Ôy[™–¦Ò¬Ù+èXà]éº= ZGî…8è˜2NkM‘‰ [ÂúöD0'x s`¬P¡9Úëó\@ÇBz†±zS¾Ý D7§cRЊNDê%¦È‹y@ZÑ4:Ìܪ·`tÕG„˜|:´tv]o …~5ga¡5¢ËA…@tIÑ$QˆîÈ9z«ã¹ŠŽÙÕ2»Ù°{5Ç gC‚†Ñ-[˚ݢÖjÜXÝEÃÙ¢ûÓ1/$‚mR,ƒ¼%öAñÍ‹L0àVÂp/æÑí#‚ƒ‡Xd¸\‚ Uo@t{NV¾A%l\©Åo÷6ÇiMÓH›É§:<ð˜æ#­¼¨AKZ°„n˜e Poèþ ‰B :‚$ h’(Dw¤Û2hZ:˳¢G¤‚å ‹…%œæÛ7‡@tUãÔØ’#‘ðÒª¦!¼¨¶áÀHž“´Ö;šŒRÐ#!ˆó$QDGD!í@…8÷é67°T '¢kìèzt ÂZQ Þè%€g8MÔÚÜú• ¦KÏè*‚ñ¹¥p‘‘%x}TpÝà8NòÈTÓ’pŽ`Ð â<„Ö4ÚXgÇ¢uÿTvJSE"Ä,k‹²8&ÝæBÓ4Â’ÔÔ ²ˆª¬IlmZ˜F“Õ6=J¤?PÔu'Š@t!*ÁY+j-‰ˆBÒŒÏ+ÑÁÁCàM¼â‘Ûr!Ô°¡mFNˆóÊ0\ZrbCЫhMq+/+Oâ^šå¥ÍŽ‘†>- ƒ8?A…@tIÑ$QˆsŸs´VÇ’rªJ˜b¯/M'i^RT*ð°-I˜qJ—e*ðŒ.èzªaÄýSF Î:'É œ o¬ð„'J‰ªÃJ™ b&žS¼Š-¤õŽzr²Þ2Þˆ@t_:&¥«õxL’W‡–Þ‚6T0™-Ðå™0ÂGSœ"¶.Öªëq†D÷IÑ$QD;D!º#]v«|Å·|X|=~iΒΌuÇ’r`\¨ª)¸®“ çUTs whÚFP mÜËë]qfÞqæ9ݼPY:ÂUEôIÄ5’ádjºaåxMð²±­›ò¬[wN8óœnR°ºQË„&´šEÂèšHr&M tyf‚*Ìð¶nj…·ÍKâ\IÑ$QD;D!κtÖÿN¡ÿ ‰cf3PzÏ@DÓ(†Õt-8ž¥m’†Š5 º§“²‰‰®¯¡zŸïÐ(šõzuSpugÊÊršàáM'k89¤°èxÙœI×r¦ M M&#1“´'x ­÷ŒèN ‰B :‚$ h’(ÄùM·©eH€Eëˆè:ÅÐ:Á‡ÒIÊΆÖÊÆˆó‰f"¤ZK¿ø@D§(^À4-:”euŸaBî…øKÀRm“` V'¡uÍG1&=8³#)Cpª`‚ø«€$ è’(¢H¢ç>]:kíÓÓÖ@§n «¶°¼‘Ó3ÕáHƒ¦)Àä`B’ †ÖµEt'N'/L8aÔs ¼Ð(§VCH0/X Ëê"nEßI݆ÓI ZµÕÇà œ-YA“„`PI ¶aIRd0`gè|ˆ®IÑ$QD;D!ÎoÎÖ ¬Và¦^ûöëóâã罞3/ð«§ïH|ûõyñmvéXF®5‚‰·èzð1uÐi†40"8Ë—¡"h h ’ ÎQÎx^:=!˜Esš Ø‚YÀ‡p¬!’¡è; â\äŒ'-˜ì ·šýŽ>Š´¶*5Ê1”Hc¶Ö•~ˆs $QDGD!í@…ø r¶n`³ç$¿Z8þçKËÚ¦Së2r­iN3/¦…€álå^†ÎÒ„¡á¶@„Öm4¸ŽúÄ9Ê™Ï 1šœñ­ö¡*}Ñ IDATXNóá­-V–6dÚ‚òq.rÆ“‚óbM!à º…é>š0kÁGæYZ—iÌ„£ò ˆs$QDGD!í@…ø Òmj`W‡k†¹u–&€$ÂÖ¥pé°7q~2~¸K3[Û„hšÓ}|«ÁC򮄠L‡p]}rÄŸ{¼jÕÚ,äLc Ò„‰ ²¬!SÀw›8]D!A…@´Iâܧ«.½òw¼´½åÇO×ÂøQð‰\3à˜Ñ¦±˜9’Š DHÃJ`öäÓ=[¢k8ý¼À¼˜µÍwˆ ]2‡M‹ e)PlV4xˆèœvRxÍ`ÆÚ¸—Ìñdp®;G ,f?íÓE º$QDGD!í@…ø ÐUEÜã’åN¡¢ÜÉžÎU £MžàÀÒèD×@àIPƒè&œ~^¨ªao“:˲†¨Ûƒƒ‡L(G‚JÛPýQDwà´“B°mÜ‹ÂA¢1^' ¥·àTL Ý$QDGD!í@…ø Ðe«_’“³ä”·nýtnsjù|¯´Û†P(ƒÖBf,  ëh–/¢»pÚyñJû¼Ð8š6doU…—c Ð03ªË‹èœnR¼âóµÛ†!‰ÆL­„Œ5 •NGåÝ$QDGD!í@…8ÿé²XgŒ £0ÀˆV1 ,Uïý§ñgcáhd"‚ö*sg&ÉÌûGÎ&K)ͤý~þJ¦“ÉÓ™|;¿>yæ†i¨½ çB E@Q 5a<ýš,n€‚H-$¶^Ì(1úz°8™BIN†A$ ˆ†" Š(š°þ@:ˆ0Õ(@+ j/€Öpªh ’E@œ*@j˜ÊÊÊÄÄÄß^1¤Ú3Ã@gñ¿ \Ê è2@0ä r¡v®¹hhhˆ‰‰!"ª¬¬äÂÜ¿ÿýïÿô<_Žw³·g…p!ÙÂw×ß+´#ồ±q©m¼=+„‹îzŒ°ñ®ßx{V’ÝÉ(¢ºÙÆÃHøîdl\joÏ Á*++F£ÑhÄ(Y4t`€¤…ÇX’5þ|É^ÕŒ¶uŒ”Û.$»%Û0BÛº;)ïC´­c¤Ü¶p!å}ˆ¶uŒ”Û.$»%Û0BÛº;)ïC´­c:Ð6ïX’†,4t`€¤a,"ÌáX ièÀICH:°@ÒØP7 LérfÍÌÖúžgÌͺæ¸,œ¶dàâE™Éž¾f†¼m“Â,X8m^žûqZ–·mÚiáE Ç4BÑV!H"‡5rÑV!H"‡5rÑV!E"Ç4BÑV!H"‡5rÑVuf.ÐÕq!ÿ„úó|.Ò²|Ët9 ²Sçæ.J'*X8mVŽÐBÝ6¢ï@]E™§ºœY3äLX”™,™¦Šóh‘v rq„þ°úA.:¹¸BXý \t¶ÐS?EG @è«ä¢#:;¸„°›HŸ››;7ÑnW¾6m ëƒ<0M[® IËÚl›$g.ò¤99%•\ûG2; ÎBÑÈEw‡\trÑÝ!\tkEG ÝrÑ ŒÀ긼yÓ\cáB߯yF©)¾žÌ² ¥K©Ã_:;PWQFi“=ûFÒ;Mâ¤sLÏLÒÇWR;¹è,’:¬g éã+©ˆ\tIÖ3ôñ•ÔD.:…¤ŽéHúàJj"ER‡õ $}|%µ;%èÀê˜äÌE¹™Dä7oÖ@ Õ•û®xMNI ]CÚ"¥¨ËY­Í˜»(™$¾Ó$NJÇôL$}|%¶‘‹Î!±ÃÚ&I_‰í@ä¢sHì°¶IÒÇWb;¹è;¦m’ôÁ•ØD(:‡Äk›$}|%¶;)¸„ð|%gÞŸA’ š<0ÍûXWQº†œ]¨w`Á™ٔµØÝ!&;MâB}LÏ,Lޝv rÑù$pXÏ Lޝv rÑù$pXÏ Lޝv rÑÉ$pLÏ L®v BÑù$pXÏ Lޝv`§åXÝ[Y…ïcê?H\ N›W–ÐÖ½áøþ&ä¢ÂñýMÈE„ãû›‹ž÷7!=ŽïoêÌ\ «Ct9³x.É£Œ‰¡¾ ´ É&{çCÓ•{gI“IìÀ¶‚$å&q’8¦¿EÊÇW*;¹èTR9¬g%åã+•ˆ\t*©Ö³’òñ•ÊD.:TŽéYIùàJe"J*‡õ¬¤||¥²;9Leeebbbg·²Ûóܧ’H¢µj¥y? ÞÅ¡ld[m“ÀlÕ,¿¦Ic§…! ÓÖŠónrq¾¤qXý çÝ2"äâ|Iã°úA.λeDÈÅy‘Æ1õƒPœwˈŠó%Ãê¹8ï–u4 111„,&o.!ICH:°@ÒÐ’†,4t`€¤¡ $ u ³èrfÍÌÖ¥e-^”™Üö"€ž¹€PC.‚!ŠÐìn#9sÑâ¬4""mö‚,ue‰2æ"KÐC! €`È@0ä BzòÙ³gGDD„ºÐ)bFß2¤æÛüRj.´ ²kÞ—¥D”–µxÞM1¡n@È  €`È@0ä B‹E¥RSYY™˜˜êö@ç)X8m^ž÷YÆÜÜÙé!l €4  €`È@0ä BÑåbbb—vCé³çfxgÌE–ˆ € @0ä r¡t`u; }ÝÁyófåèBÙ‰@. Á €`È@„"tÐÕ½èrf¹Â”1×Õ+ì™^ C. Á €`È@„"¤ÐÕèr¸î‚1wvzútÏf.,m»B ¹€PC.‚!ŠCV·¡Ë™5Ó&"JÎ|Þ(Œk„ž ¹€PC.‚!ŠÐÃ]@ŠpBèÀICH:°@ÒÐ’†,4t`€¤¡ $ X ièÀICH:°@ÒØP7º’.gÖÌl-¥e-^”™²–,œ6/Ïõ0cnîìô5¹„PC.‚!Š ‹©¬¬LLL u3•ßÇ3 >¾Öž1KîU<¿ŒûC†ß͉67§+X¸`IžÖµw(--ãþçg§'·õòPG:[Ì…NW°ké’ü2­ç3ßÖ‡žHW³tIþY‚\tO!.g9¡ ÝrADmå¢=ë ÝrADm|æuº‚]Kwä—yK(¢´´ŒÉ÷OÏô[ ¹èž ":kE­úªZ½o÷ ECCCLL á L—3kšÛ‚·e·+øù3|xu»òµD”1Ñ]Eù=mµ¦®`¡'$m½×¬i3çùaH«Í›7³õNHŸ=7ÃýÃ쥡Þ;Еºc. –Μ—§õûÌ·ñ¡×åÌr­ÕzYþë =S …ëåg=¡ =WOÍE»²ƒ\ôX=4®UüK("­6/»u0‹ž©‡†Âß™ë¨n t`õK3LDºr-¥ týÜ.ÏSÏ:9³¦M›6sæÙº¯<Á¥´¬Å¹¹¹‹³Ü¹É›7+Gç[Ѩ¼y!ÿs=R§åµ‘Œ¹‹sssssÏÍJs/ó}¶ý‚áZon†k%mÞä$£+CÑŽ !z]š‹v®ƒ\@¨uy.Ò2²Üëøþ¹ jUE!R]² :[÷Q7 æÀº ’3åf†ºDDT°Ãsýëýaò•é¢Íž9-;ðiûºSè÷fəӳòó²µD¤ÍߥËôm'}zVšëy; f§K|D(t’î™ ÿˆ$§gÞŸ‘í>—”Uè(=Ù/iYÓÓ“‰(}úä4×w‰Ú쥙¾QÃÈEÏÓ3CqŠ©çæ¢ÙA.z¤›‹ÖÿŠ$gNÌÈÎkëŸvä¢ç鱡p¿éY»¯ˆº](ÐuaÍêÑêªØçS–z¦‰JËÈz~¶ÿ=xªœÉ­Vø9¥¥¥¥¶^£U;¼ijãrÀsãýáw¥m+®Ne"ÿžää”T"-‘¶\Gäkd²7Ý"OÐ>Ý0é³i®Ï¼_ÇnjŠçläÍEÀ¹¹èyzb(¨'/„¢G꡹hÏ:.ÈEÔ3s¸Š.g‰ç¤ØU€\ô<=3î÷tu_¥eÍœ?¯U™Ÿî t`…Œ6{æL¿gyÙ3ËÈÓÏÔEKZmžvf^yë©ÞZ¯ ÕÒ®é™mæé¬iòü0\ÀÓNØiœ<0Íõ?|wÈœ·î’ ÷åìDm ö¼‰çÓøO r>=+g†P€¿ž”‹³­ƒ\€¿‹ÖÍtÏjôöÈxtóPx»¯žÏLÞ•–×w§P`, ÑæïÒ,ôÝha±ë²WÏ…«Krtþß9¸¦˜ÊÍÍÍ]¼Ø3ŸN¼Ÿø³þÓÐúrÜÀ§í—<ÐÓmöRÿ©}ΰú„ÉîõË*~seèÂ2Þ+à‰Ò&OHö¾ð7ßι€³è&¡8Gœ]·ÍÅY×A.àìºm.Ü¿ž¶lÇ®àO>rgÑBáß}uö×w«P +dÒ³âáí¼õÌ”CÉé=wÈߥóûOX›¿« @§#¢ääôÙ‹~s’*ï¥Kmp½­7OÏAræý¾i³gºn ñ[—æ¸t‹\ø_‹| <À¹A(‚õ˜\ ;pz@.Òg»;ÜýÚ¼ì™Ýb^j¸@ºq(Ρûª{Á%„¡30Ù—¿I}¦vs-+×Q¦ïÚìyó\«¸ÇОëÇ7pèd›ÓÉà îDD”>;wñÀ… ²ó´Þ¦M¦yÙ®&EÚo €ðÏ….g–ßIf®g<ð™¯lr^Ý5ç ¡="íX¹="DD”œ>ûþŒ<׺yKr¦§·Úr^Ý5žN­ö~³ÑBXá(}öâ¹Yi­Ç/jµyó$ô DræìEî±–¹‹ͦrOîÎN;€¶I"¾áÈDiY‹}•WrJjðÚçx]!À9’v(B#lrì@ ›\tI‡ÂÛ—7Ïu¹Ó4ßzÚì™Ó¦M“N¿@gÃ,ÉñužeÜSrzæ¢ôL"N§Ûµt‰g¬ÓoÍÊ|ërÏ|r®Iê¼ïðô|yÇh¶Õå7'À™„E.üçz ZË7Ëû~~Ÿý ‘‰Èü–ðÅ9B( ºM.Ú›äÚ!üsQ°pVÅôÖ‹PDÁùÿPœ£n ŒÀ’ßå·Ù xgYÓé rΚ•££‚…³f-ô\ˆ›œž9Ý3'Û™FqxÇ~hËÏ0i[§M€LW°Ð;î1-kzpؽƒPÎv½0ôxRÏ…Îï“–17øã›+ßžÖ?Okc’ä¢ûB(\Í[¼(3¹]'„¢[C.\Í[¼(3¹]Ùñ@.º5äÂÕ<Ï/­ÍËž——ÔBQ= BájÞ9)ØBX’”œ¹hñâ¹Y­®ºMKËÈȺB2%OÌÊúQÖÜÅ‹Î|©¸·9oG—ÃêvåkÉ÷yxz¾Ò\­Ëm3g¾”vƒ4Áö¹HÎ\Ðþ´´Œ¶Zˆ\@;…}(Ú ¡€öC.‚…w.Ò§»ÚÞž"ÐNáŠsѽBÁTVV&&&†ºpÁyEuÚÄVÁ7T+ð»v€®€\@(‚!Á €Å…ÓÐÐCÕs¤Ow_«Í^s†ër»šçöŸçs_u€ó\@(‚!Á €E@V‘œù¼´å S›s»tä B ¹†\@(.<ùìÙ³#""BÝ è 1£Ç* ~.l&j.ü¹@9å–Ñ1!k‹ß4ïs¿ytTÈ=r¡†\C. ˆÅbQ©Ts`ÍŸ?Μ9V«5Ô žK£Ñ„º -„ r ¹€P;{.0„t`€¤¡ $ uÚ6þüP7@r €@0ä r¡€p$Ѭ9sæx#Z.È@„ r ¹€P@8 ËKe²F–ÝêVH‹¬¶–ݶ-Ô­F™l +ÑïiBE@0QPD4…eË.ˆx0Ô­Å·ßF<ôP¨[ !ËYöÁˆˆP·@ZPDCEHSXv`1Œ3ÔMAu ¤ÅÉ0¡n€ä ˆhŠ(€ÖPD4ItXào]…ë$»¨)’qö\0N'‰Èô,gNÐ3¡ˆ†" Š(GíÀ:û”r62*ßBó¹09åœh g9{(ì6]Û @ E@QŽÂòÂ#l¡±†ºÒrxŸÓl u#¤D<Š6 €hE@0QPD4…eCv†4´&sÚe„|ì ‰ay–¸€PDCEHSX~*âòÝ”µ@+CNœ-ZCÐQ­¡ˆi’èXgŸRN&Øä]ÖÉøùG휜œŽ.k €œ=¼Lpâl=Š(€`(¢ ˆ‚p$Ѭ³O)'kªeûvmƒ$àì¹hqòr¥ô,¿1ÿ¨¬É³ô<(¢‚¡ˆ€" ÂQXŽ ”Ëxê†Hˆ‚çXBíàc‘ËXN­ ˆ†" Š(¦ðìÀ’;ìD ƒ@ø(x«@2r üp³Èå ;ñ î¡àƒ" Š(€(¢@š$z a[WäÚ‰®G¬Ìn'"∢º´Y!ÕF.ìvR¸s¡âÌvR0€. ža¢èZb`E…ì Cr14íQÁPD@á¨Ë:°t9³ffk}Ï3ææÎN?§-pD‘®G ÖÁ‹Ä0FM'6 Î;G‘î\¨ž”r 'ëÕ™MèZç ß©‚Èʲ*^ä†p¶€ð†" Š(€(¢ ûëÒXç^où0 ïé&ëäEbµtç• ž÷~'¢q˜9FÅšêNj@¨œO(x†!ÏÙ¢`U¼È1„Ú ºQÁPD@Ý[ØLân'“÷±R.p"9ú¶@ ì&ÎûXí´pŒÊ @ÄÙ}­J¹šy§3tÍQÁPD@Ò×¥#°òæMË#¢3t ·5ç¨ï7Ö]%šDÎ’ûVP*¿ãùLÉÎêp&ç• #ïÍ…F°4Éâœ&>ÚûcQT~û-ß}„ˆ@X9¯Pð¾±îV¥<žwÚÉI~g‹ï”ÊLžÇ©ÂŠ(€`(¢ ˆ‚¬LLLìÊ·ÔåÌš™MY‹e&·kýùóçÏ™3§ÖüsŒì:×6º× ^Tëß þ?׆ÑÇĤ å¢}æ-tFsÁÇÎv,ö&^=ÚµDÓ«÷aÅEöÛƒnçZ"«ªŠ5JßÔD²°k áB²¡Ø[kãþÀ'+¢Çç_RëÇp_¢g˜Ô˜˜rƒ!ZÄŒ¤Ðù$› QB’ÍŠ(ɆE„ÐÙsÑÐÐC!¹„09óþ Ò–ëÎíUG³÷±F&r†·½Kd²2"9‘¥“ÚÐÕ:– ‹Ù3Ò×á‰'S[M¼÷§²²2’Ë«µóš Ðu: »Ãá}lQËÔv‡Íé_&“áTa E@0QPDAw6_)8ÞÉ8;‘ÓÁp¼ÁûSQVb&/ÄгØÌîÉ«ÕB¼\i3ùN<üñ2›SA¨½ 'á<µG¤°“Òé°:}ÿ”‰2•™8>lÎ}E@0QPDôuÕçO—3kaçá’<ʘxŽ7G°ÙÜuÃXÌDc·›½?mf÷Y‰,ÔÐIÍèçŸ ½û[Ñl±P/Wqßi¦e_G*®3’Bø8ïPXœ6÷†‰4“Òi· ¾/Ë›Y•,øö Š(€`(¢ ˆ‚ «¦`KNIõN(׎›{O/gãÜ_òL '’Ã.¾[êp²"‰w¢ö‚°rÞ¹àôîºÊÖd³È"x¹Š1ú*-Ç©23él²(;±ÍÔy‡ÂìpGÀÊ3œ¨ìV¿ñðeœ,’DŽÇ-u ¬ ˆ†" Š(èºìé³ssg·{í9sæx»¢Å{*-Ži² äpÈ‚¯ûWî,6_KJ""¥r‰Ãq ô픦\0ç› »Ñý­ˆ­Ñl–EÚåJ™ß eºÓ&&Jh±Å‘ò‹/ì÷Ü#ÆÄtJÓ.Œó …Õé®´,i”N‡Íá7ú]îŒ1‘•x"%-Q*¯s8ú B'5àA E@QÐý…Í%¬vOíesÖqNrØåvÑW{EÉêÍâù&×Sµú…bIZ еìžJËÐÌYäv¹ÊañMÖЫ±´…3¶¸«çÌQ¬[‚Vt!«à®½¬6gçT<çð}UX%‹3û&txA­^¢P„ •] E@0QPDô…Mï©´x¾–s2»ÜI¾sL’Âj´1V[£ë©‘¬Íò½!h%@×rz*-ƒÞje#œr…ÓꙑÔbQÛÍFEŒÙ3BÞngôûJCÓP€®ÂÛÝu•ç5œ“uÚy§ïfÏ¥IŠx“Í`wÿCÂét³<­èZ(¢‚¡ˆ€" ¤/l:°ì‚{¶QŽ«åxÆî`EÁ}F‘É*tã°ÉxÞ=G©ƒá­òCþ/W«ŸÓhžíÊt‡Å} ±6X­l¤U žÛåÈJKKhˆUakô,ú_Où¿<âTï½×• ¸Ðl÷Pv³‹°ó Ánõ|wX!“ ¬Ô¢Í$¸ë3ÑÁ”X[Õ^Ï©ÕÏj4]Ø^€®€" Š(€(¢@úºl¬s<¥œ“<÷D°5ÚÕŒÓβŒ{ '/*ÉaeE§»öbE1‰jý¯Çµ°ŒñB7à‚ Î…hs§ÀÖhµ+"¬BîY¢?pZ«Ls°*Á5úÝédHŒ<}Äÿåüv›‚yú‚·à …÷«B½Ã¦±«åÏ‹ŒkÉiNž¦U¢ÕbwÏ{â`ÅãID~g‹ Û¬`.x».$QÁPD@áH¢XÁSʉžÚËÊ7 ¼Üɳ¤v÷þ6Ê÷4µñ ¹èžâAÃP“èŒU B?×’S²’¾Œ%¶ë~€Îœ §§Òâ[Ì<«q° %çþR½ùÀé’¤´þöFÑ`""Æb1Sdß–³ÝNžëÕëêƒÝz6&, IDAT˜Ú•¿@§ …Í鮜LNíàXçEµkÉéFyZs3ilÞ3G©†Ij«#dý>lÎŒí„"   (¢ZCÒ'ÑKƒ¯È•É=ÓʼnfžS8íJ¹ÜàZ¢akK/‹ìSa#"ÓH"µŠvx_®‘‰5D‘2 $w =Í3‚0œãžèÈ/ÐI‚sÁðžÚËb¶«Ô‚’eÌî¤$6j5ýcí:µ`1Qs“M-‹8š6nÌÎ# ž—G:ͱ¢^ßÑöDN›Æ½òŠãòË;º€ó »ç¼fv2J‡Mæ´Ûeîﵑì âa…#^ÏD‘ÅÆD’˜J7ÞLPs„¬_ é"eÉBG¾B|F£.Op«¡„" Š(€(¢ I´+øŠ\ë>£0r oR9J9ë¾þ6IcÕU¥âê嬞ˆl6£¡ªíãboÜEžû&D*…j;ÅÉ÷Åw¨öjVüØ, êçW{)ËŠMËùõ:¤\x¾*$«Õ©ŠX¹ÜsûÛ«¶÷(“£PÁXMDd®±:ÙHC¿±ª}?x7+êËi`/NHîH.˜e¿”&ûÕ^êýKìߟ{üñl  ‚Ca—¹ÏkQ®teï]R– Q›÷Ê£Æs KD6›-‚Ѩ£6Œ»‰Z–lª.áÍxk‘¨>^VÝêÒUN‹Q…Ƀ Š(Q EŠ(€" EèŒYÖòæ¹su!»ˆYÖ=4Q©äí6`W°r'ÙÌ¥F†n—çp¨ ,œ¹3¥A(SÔ˜r‰ÈÁ4ꉚ+“œ²Šö½×6"ßùÃ&/*©ŸÚá¿No•YdˆaŒõ BwÓ5¹p¸¿µó3$¡pUZDÄÉ•2/<ËQ¹&B7Œýã8bS(ˆHoá4,_”9ãʆ£å1 DÉF#Ç:Õ¦ÓUªñÞ æ6*ŸOR oÄÝ®‰üê´ù÷ñîÿÌ+êMCÌ¢1*ºIÎÄ3"éƤV )·—«…Ñ _~™fpDL¾Ñ8Bæ‹ÝN–M„þš?ºŠ(Q EŠ(€" E´á¼F`,ôËR+yó‚‡9êrfµ{ä?®%®J‹ˆTJ‡“W <«‹DÔh¨±:SOvVÉ Ddw6ò¼üŸ·¬å56±ŽˆªëNŒ½nxb´ÕûÕß©ÅÂnxëæûb'5˜}‹–744h*mLe­kI%ÿÃ) S¯g+«7yWäË1 Œ£#_'ÊdåþOuöeU‚ µÿá ¹µ”îëÀÆ]ªy2ùñ¿üÜ D¼þ9Üue.žÑïj»Å©bD¹Láä‰H__oa#‹oxÔ¡”©9V»RõëÂ×›£¬eUDÔRUcRÆ8û)c}_ªß¡‹(-bš›ÞzÿW{޲£ö½½Ñ»„­(­8bWæ]R½ñèÉþ—ÚE…³Þ÷ò–[mv]Æþòõ§ºâÂ{³YVákmù;å3²dÕÕç¾y""ùž½Š…ïtìµd6S<#ve(¼µ—U©”ÛyòÔ^ M‘6Ç ûY'ïþòÔîÍB¯¯³òDTeªŽ59x}Se\´÷-×U‹FÚg ü¾gO 3¼Ø™Ûâ'´¥¦¿±np•­¼Æ=Ûè±J~ì)KJ³þd‹ïSºF§(blŒƒÎ]¹¬ÕYû`•½•°¼Ôî¿ð~Aón)uØk Õ Ï-‡º@Ï=U ˆBu6=7(¢PDЍ@(¢Î Ѝî¡ã“¸O›6-0Lsçfœé%ºœÙ©ssssssçÒ¼súè­½” AàTN^ÅÊ"2Yªm¼üÞ×"É®V)"rÊš9ŽÍº—̆8•º…ˆjË-¼LT&ôUùþê±Å…U¬¶yNÀ•×d,Ö Kðý}·3§«š'«ó]K´5«u•‘M ‘uV÷TŽ Ó Füé€Y(ç?v¿Œ©?˯#—k­v÷}LšdKêT—ÕªŸóµ¡:çHµ¢wä.ÈÀ8c‡Û»¿ZsÈ -ê…ûžõ_x\y'§þ·ß‚ö ÷l‹\^,—ù/©±-ˆˆIf˜&¿e"Ë0Ì…J™H!¿@:¹P8Ýsˆ¨VA%Y™ÒÉ‘µ¡É¦Œ°¿”L*™Êa#"2Ûx¥:ïó,kTŒ³®†ˆ,Õõfu “dìcòWO­>°6~ÚîWW¼‘|ۮ̓§E­]ë]ßX.OuVËú5sÏþ 9qÈ4¸o¹jPÑv÷ÃGËvªÕï÷}irÖÊ£üÓ_d%%®Ç§™Ç$¦Êóþtpåµ}nÛñ/_Û´Ù[÷©.ßùúºví¬ Gþø&½ú–ÿ¾¢¾nÄM¾ÆVÕ½¨½£QžŸïÿû2VkTò “ rüW“1íº*'<… ¼§ö²)Œ`žgåDTg²FðüÅ÷¾&V%KDV‡Låànʺ7‚oj’EQUm]Œ•³ÕÄêúøF°’i®=RµLøÉÖÆªŒ“§Ö§ùî]jc’̺”–¦£õe®%{*†5Vô1Õ–4ºï´ÞÀ0#Ò Í»ËÝßü7ÐÙ¾TÔÊåëíîÒjK“ìÞzÕµ¾¶ýZ_9ñDõ²Þ‘Þ%å6y¤ÉëÕÁO‹òl‹zÕ±ÿ… Ž+ßá|oÚñSQ±\^$oUØ­ª³¥EÄ4ù] °¬©;_/€" ET+R(¢$EŠ(QD„" ETQ.1V†+%¹¹³ÓÓg»æJ·+_›6Ðu“ÙäiÚòs>ÇÈ=_²‚êj×—‡6¡†ãå9½ÑfŠTÊE"bä&žWlw¬æ ½"£,Ddä´«<Íù+OdN»¶3(Á¸ëÇßë{"à¢{•잢å¨Òò‰kIl\}KMrC]¬Íé$ÌF«)Im®MRhÜ[«”yãÕëJ÷.iüѵä”ýŠcÆ«Ûü]xù‘æÈËš#f¹ž–4¼ºeKâÁæOŽšp-‘G+Þ7FÏ8œîÓ̾җ Ok8ÖÙD[½Û‘Ë÷îmúgðök­K¹È^Fî”wÉ1ýŒMÇ"cãöx—›o«hÙj¹žVó‹­IÇ Óü·s¢ñq¢V}ÒgRì¸N9a|ßöèel®—ï¯ÿƒ¯UÊo›ÔSžò¡xæíWµ¬÷ÚÈl(uŒð½cÃ;Åæ{lr߉¹Áyß.ËE9ÑXCœI‰}|±åí\¹]º$JÁýç[ã°22±¬Ràˆˆo¶Ú”š5·3¢ŒU;,D$³ñv•â]““‹Q+[ôDdo4YÕQ ²Þý1&Ai=zøºßGýøcÀªþUœÞwDóÆä®žSLeŽ8ÓiÍ࣊]K×£4ceÔ ÒíG‰ˆ©­å_˜/[0m·füÁï‘áðéšäI'?j»TÚ;ãmË¿ÞÊÅýýäðíßÿaÆîЉ2,%"r8†ÙNh§]Ûƒ¯mƒnÝ2ŸýŽ2ϯ|ê;si«3‡KeÚõ¯ôÝÄÝv¤4±^{H5öز}®%Œ^¯wE…)êÀg;\KJ'f9ÝRä;,ÚÕø…m¶_ä[}˜¼ñsõÏ–½¶Ä»dË_rVÇÞÆ~ô…o%AˆœpÕážosƒÁŠnõßÓÜ\4z†³¡Åõ´zóÑ»ç¶ùÖ©œ÷Åžaldßʲv¾ÝÁëgírq;Wn—. …uŸÚ­J…ÈØäŒàª½ 61‚çnvÚÎZmJ–ˆlŒ\m·½6É¡°ôšh"ª6Ø¢mÖñÑJžZ¬î“ÎщWT~öÓ ¾o´Oß¿~Ó-·§ÒýUa¥&>ÒXÕÇX}ÊèîO?æŒî£?ÞË\©£(×’ûªeoþò÷Q‡7ÕÖ¸–<¡å_,n{ÔI /¿£9rA£ÆõtyeÝŒÂMÕ›ß-qÿ±=JQiÛãZ˜Ã îŠhí©“×•*­ì ¿ÿ|÷Êå ÛŃu$YäôÍ¥ý^I󽻎lŽˆõ.yõ´Ù kYfrï­5üX[Äü’Vßí/.¯oש‚èŸZûu²Hƒ_]õ‰¹}[ýâ"_oÅ–ZÙÌ&õçÚVoá8ó7'[üŸnd¦Wøš“[Yûæiói›¯à›×$>³/ð†Ü%åíû èéþCm§ÞÏEŠ()QâƒÖ!A…"Ê E” Š(Q^(¢¼º¸ˆêxVZÖboŠ‚š>;xijJ²÷qYÅ9æÉUi‘šY1^%få" b3DZ³_Ð(’Ôr""¹Âjç”Â%㬆^Ñv"â…*‹U±é‡¹5óëÁÕDdµ—F±bZœNgc¶kß®­?®Íâ8"¢Ñ‰VªO;|`à‰zw]’gåúµÔö‰Šs%2 w³©r˜©¾\¯"ÚyâïFN¸iø Ú—öë¯%¢=%ï²jÃÉú²¦”•…“¾ÿiÞñýÚúz¦ò¤meþŒ£šI/þae gʈhØ€ÃÑ»ù@;¬ÿjƒý  ìÓb©¶wϠÕ/¸ë^Ûµ…ãöî³÷Ôóv;562Ûò~4F]ÏF|’³åžâCµyù+V|Z²¿¦J˧õùUÎ¥§Å)GÓ o; Zûó{Åqc"¢C%÷ï1îÞ»ø˜Bé¬3n!";÷³/ÆWr{w7sýAØtâzSÌMª>+W~úÓòO~\ñáá;*Š~XþÁCŠY_!KÊÏ_a³1¥ ›b¢ôo|0£œRUÂÙlŒÑY1$Ñ´õÓ´OÈhdd±Š?´à¡‘ýWr5629Ëÿ³­ê¢rê¿£v蚟VÛ{`ͪu?¬X¼vÕºïW¾bÒÄ«ûÎ8Q¸Íj%íš•…Í(©7m,ODe‡ú~¹Ä²­Ž¸eÏ\§“êõu ñkO’ïªZtàTM¹£ö4·ªè2¶×#?loáú•ë–-cÃÊGöìý~Ûm‡,ýóÊGý°úÕS*šš˜_ÝÝ`/Lüyÿ‰OÎís¤‹s¡ôüÑŒpš#â¢Yµ‚uUcfŽSiÄw¬ÊHÊi#"–ãJåM'>Zen!"™ÁbÓD /yØBµÇ‰hûÿ ª/­è_’¦?Þr q}ή¯^øšˆÊ÷V‹"íkóKï[~úû ×;r”ÙcÒkbS* ‘ÈÛó%õ15Äõ3+#¢Õø`˘?ìü~gÑ€ËO}ó m}*{Mjfõüï~šøÂ—÷}¸úûízœia´‡iוÚ\·ã¶»£·n ¢ÝŸï>®9yìu?þáÙwÊÖr:¿‚ˆLÕúd[¹xÓî±Í{Í&ÆÂ8kek§ÌqœàÆßXzH(úÕ¾ì£5…;ô\µlůä'\}úÄÁ¯Ž1V†ib¶f½¿úʇ ›|jÑj"bêÇÇÌø`á7‡GOªùä'"ZÿÌŠJYßåcþT|ÃSÛ¿,"‘ÄJç˜nÐßúè—3Þ_öù¦e¯ß¾îHÉQÙ¡ÓòÉ/•žZßûŠ3Þc"JüüƒåO=•ôöüÒ_ê=CDr¿)ºëJ¹ÍV”sœ±0L ³ù’'ßœòŸè¦Êãß1FæÐvýOW¿x*å¦]Ã\òúòŠcÂŽ‡–¾·þçwo\±ïHêíÖ'^Üð¯%d&³NþeÖbÇàË·$\½còsDÄ´0Cî¼fŸVÕrד˞}—lĘ™”·_Ê¿ì®C2Oí³óÕ2¡ŽùêŽÿÊþö÷“çÝÃoXsàÛwW¯ÿyïá]†/³>)öÇÜ+ÿþíüå'Y¦‘Yöȧueö¤¾Þóy«qÐÅ¡ð~yhQ±J%)•¬].#"› ªì¶ÙÖ×##•œˆì2¥Âiœ—Èxcsd$ìÅYwÎü$¥–Ûyté­vC$«¨½rp•mÍ©ƒûJö¼µjGíž$«³?½g©Î]EUõŠgÍM1¦ê:µûÅ⤾êÆ*µ±¾6*ˆÖ<¢1sßmy1¶¶è`Ü@"ÚTrÜ ×Ä”Öþñ¨þå¼=߬]®³î¯gê+å'_Û’÷ÜQͬŸ.=ÑlˆhÇÀéRËò”’\g°Ññ¾ýTõ SŠwfkÝÿAí¤ÄÔÚÝל<ð͉";Ù™Æå…[0F}ÍF½½þýÐö£;—åýTáÜ_%ÓÞׯï3yÙÿ*8â Œ¡Ü©_3<…_“W8¤—U`ˆèßåÅÑû †¯ß·°ÊÒ&#½eeçl|ߨ³=r ¶–©!¢7=µ£9öªÕÊ-«–ç-ÏÙ¼|õþgQΦeÕµh2ªd wÚÛÁƆ²¨èW¿zåNUÉJlŒ­Öæ,˜4zû{_ $`dŒ ²†'ã4³Öüë¿©ý9â™Æ¯7þøä^Ý-•âãû«×l_y¢ùÀ†¹Ë6®Ø¸kÍ×kgÖÜ/ë{ÀRh%«ÎyàåÍ{ž6G .¯eÏq"*45þ#v¨¡ÔüH=»¤`Ÿ“œ‚þÓ„¸¡-{ÿ¯°ºÜ| FV^Ëœ~)ïðÓB¯¹[ Kløõço×ÿ¸q÷ÏG ßZ·iz‘ù™‚үׯ¨ä41Mïì8dÕÛ¿HÜ¢ ì¸9W(¢PDI§ˆjÔ·$Å­*+T£ˆB…" E”ëŠ(Q’-¢:>‰û¹½BW®õ>NNImk•àiäü±r‘""µLL4ÔlmVȈˆ…‰·)&w ì(•L$"VÉÙ9Õ3Ïpkó/ŽU¯&+É”z›Eýßõcé•§ëÖÍËßïéw&ß®ˆTo-üõò”áo¹ÒÖß&ûfÙ}|Kü]1£†¾Y²Y=ñ¹w^¿ýQ6qþ쯜— âDÍ 'þqwUÛ;Ïmw‰yÏ(ü')vûg*ûO^§×&5¬z0*#ùâø!ÿypר¿}\s0UÜqɶŘë×÷_^|÷ë¯îvÕ¶‘“›~yý¿C6í-*9ô§–Â+˜#Fèf¦U-ß«-?5«n˼ÞFõûü䪗®má†ìiG~¾bÖrSQÑsUÅ«¦>õÕºe󜴿9ï½ù/¿×;ádò]ŸYÄK®ºÚZl`ëM/ªB~îDfÛ‘Óæ|±òAý¡G.}èaOr¢éê=5šCÛïµÔËŸbkñ;3‹6í?‘Ø\÷\ÍÖ+ÿô"¯8>Ád LÙU'\Üœ7næ{³ß»g ;5ëÅ Üñfå 8~ûÑø;júäÓ[75%«côÏ>õð'‹[]ûJýÖ‘ªS}6ý2ù¢KÓòV΋ùAL\ïÁ†ÛO6½º?ïîê_g]õă–ýƒ’µ×m/^U}z≭×ßÿüû{ö¤í^sÛ€±Ûyè-Ϥ+Årž¤mR|üÖãI½Í¿è¶Oßü<ý‘ǧRV½÷N„ðëcÏ~ÿÞë÷\~ÿ®]ëÇ©N\¼Æ6ú¹üó‹÷í±S~´ì"¹h[KÍ?~͆ÑI1öˆóæO_4õ]Û›2¯ã¶V«¯égÛ\£&0¿|ù§Á“~qÓ{&ñ¿«¾Ìüçß7}÷ffq"{ËÏÿø~éÝœí£xf!È…Ò3ÿ¨F° º´wõA‡k‰Ìj·+UÎ1ÎøÔ¸ÁBD žT Û 6ÅÓQqÖF"RY¬¦¸Ø?~¬.ýiଟšð§öí6'~äs+R+Ňޘ^žmcÔ/›ÌýªÃÇzË埜¼dpÞ¶×ß~*¹iÉ­ìà¿ÎÿÚur]Ó‘—¢64~t»fÜË™S¿Úz0¦®ž{V3¸dþ´MøSÞÆÿýu×¶÷#/9ñËÚ‡æômŒ-8bïžØyâ×W=:rÊüœ­ãïÕwŒþØ„¥ÿ|÷Që~Q§Ž¿\³póHš²ô±WÞ(ëµcŸ%iô·—?üý°Ö?oð=ãÍkG&]ó×!Ÿ­ëÿhÙ£ŸÅÞ~H¹0‘Q²'o¸§’|óïoÖØ¸±¬2Žé»á÷Þròçø¬©1iâ /~eSê…;Ÿ+þêõ­êò¯G/ùðõw¢G~û´qhF³nâÀ›"&¼þÈò¯#“rWŸÎ÷é»ýá Y½ëù’'­jjIÞ~[sŸK§®{ÛÁ°qBËöèɽø&ÛÐëVþå~¦Q51gõ§#«J3E™8pÔã_ÿùô¤‡ÿ´tᨚ_‡NçõS¯úËæÖÞ¯~rÔX_±î–©M¦¿·AÉŸûÖa¦Ï5Om80öÞÜۉ½ï¼qôk§Ö¯Þ7éê–-;c®Î»éóЖ—çÿí½~{4_ö‹v²ÿóˆ©<ó’?zã¹oýzZ9ò‰’Œ>ŽÄÉ3^ýüíH}¯Q‰ƒ§ó/[¯þãí·|2î¾ø˜æþÅ%[ž¸¢÷OÎúûžÌ¬_¶&ñŽ›Væ&Ü>ŒœÜ»£qÔ§ËÊ?ý)çž;_\þÏ¿>ùÅAqHÖó¼Qÿò?þ1í,ŸÃ3 A(x…œH "«Z–Ÿjà-œBND¼L¡vØÆ;ÇÛ{Ëm*ñ¬Jé°=Ã=óSüæÆh5‘•“)5¼é çúÍ-Ç+ö]“µâÉ1cïJxÚ8aÝŽå £óG èec¾]¦R7¦Lz|ÔŸÓhWÞºÔn/¼cç„IJ¾_ý.}Ôþc•U±‰ÿˆ¼{â)îðÐm³û%Ôæ9«âã>S~¨Õ_5JjÔ)õSvG$|l}P[ó—+íûTõ 6üûR/_UFS¼_™týž”k¯ÈùÏð[Ó¯=|zqõ¾(ÇQǵÿòLÉåzó‘âÏêŠz,8vñëcI©(\ýŸÔ¯¾_8áæWwŽ\~]ßS‘ÇÊ–zúågv¿tÙ3O½ÿ——_‰–?qÕ¤ç´Â¶1)GÖ4šUŠÙÇWŽ¿ÿ'gæâï¿«/9jŸòè}bÕ¥ï4èöW½¯ÝÒ¯Ž{÷o¿´iùM‹ŠeÇŽ}m®é߸óÔ/öµ—7üzØ™š¼h‹#¥lÿž˜±pÍ×W*ùæÊ§öypøW IDATK¸ìTãñ˜øßï:ôãä‡g/_4ew=§Š}à‘¿?ühŽùÁ‹oÓÿ’zIÓÄÃ?¿Vó¿íª»{ݪ‰ðœ}\aã;ÇÖŠ·ë§Ì¾Ã¶;ùöÚ©ûN¾ÕX’R·æ»ÉoL9±s쑆~—™3Ïàöw͸ùÿTÝ™5ÈY4ùËÅéÓ¬]ñìåËßþià¬_¥<-\·ÍŸÿý—SÏÿl¹¦ÿCö²(®ñ¦ƒMö½{ú–U•qq¶ˆ>W¯ø®éʉ/U÷^}Ã5ÓvVý<±ÿ­;ªe„ëv\›ríÏoÙpR¼æØ |åßß~?b·øì½÷<¹bé#wÞzno7Q(¢¤UDÅ\½œÓ¥9ŒØ¦¯FE(¢PD¡ˆB…"JºE1•••‰‰‰{ñ9ÐåÌšY~¿«ëX—3kfþäÅ‹2“óeDDóçÏŸ3gŽNT'Øš_yºêŸÙ£tÇókšN\œþ˜n·þ¸pIT´õúAÇë §û&[±hOäu7›šnûk“áD\òø¹¿ÿÏ„—ÞcYqê#ù5ÕU&O+UÑ?>ÞvMò1l…†1E¬nq䙣^Ø·côà´š IÅDtÒÞoÝÇÏ:ûÏ~ä;ÁÐrªjMïa÷½±+bľ¬[Ÿü(ÞÚls”«ãÇ~óÃØßÝt¬¾äÿ®ú:Õ(–ñð=3?¾îá;*;‹_LøE]ÝÀ«“Ýêm.~8ªïšS‡§¬L/!¢ü’'£“s~]y÷­÷å p4Ñ~çûW(ŒæîlQo¾‰ˆÌ‘½òKÙëRJKƒwÝêCÏÜ4æ%“”_v¯Íyã°Ï‰¨YXÅ©²ìjÁT3R­%b9u·:¡ ©>21.áª>»ˆè@żˆï.LéÛ[œÔÏ}_’&eâ±f&Ò<þÒÞ?ûˆFKÁ¡Š®þµwI¿ QõÆÄѬw>Üp|ªlÀžÑ½¬þ«$åm%†lüM„PTtñ”Û‰ˆ—•:¢.•;d*‹ÿÌT\¿lhÒ=®Ç"9b‰è¤þ]&~^eÑ]×\ô©ëG¿6Ž­7®eˆµº_~¼åñ&å²›ú9Œž6ì.ý8¾ßü=e}fŒØíÞxͲ¡}ݯiÙØ7îïûn9ùçÁý/®f.'¢£ú‡*öLâTï¢ÑhÎü =ç‹Òèq}ë ´/©ÒÞë[»oï¾{/{ñåþ{vÿ0c®S­˜¾ùŃ› ‡Üs?óÕ©]´òâ‘ý0kÇ·ÛSŸy¾ê‡·>R?lðËŸÙ5ìÁ#.Û ½öAã7üE)wçóçIqÞ=ôþýW]3~ó:ó3OOš=…ˆö ¹w÷Õ×§ì?Ît×ÒYŽªúS—>TöÁ û+‡hÌÛ–<¾ùÅ5ªo–DZŒÇï¸uú'¹¶“÷]Q¥}ôÝcµ[µå/¼7eãŒFMDEc§[ëùIÖí»ÞþaÜ#ב#~ÈGsþóÜk[[ê܇¥ï¤å>=ç“'Í-îÃÛÿﳖ͇&èw$Ôíóo¿`ãw|¸¹÷ØAï÷]š¡îÕgSÌôL|áF"*Ùx"*óõCïè=@3uå_‰(6.îõõ1jËEEË]­jìý;9ooZõSÚäÁÞíìúpsúÃ\+œ]¦R‘y÷ñÒ»ÿ^qñ•7¯ëZmÓŸ¾2} ò3×Þ&¢“_o7ýãíá–ãŠyÊÔ¾D´wõ)zqÞ‰ˆ‘÷ïrOXS´¾häM#]KòK‡ø½ïÆ~Lýú“„Ÿ>Ž¿l0íùóâÒõØñbÀ'P²¡[)þo{Söô'|ö†º£•5MO]4ñ‡ØÝßmäMêè…W iÔ7]Ÿú…uÑš}×ÄY^ʸ¼Î¤OHy´ê.Kɳ¹âIÃÿ²·*©éôø}#v/i‰JzûÊA¼@OkYu²Å±ÀuUé/e½G~ti"º­”Ÿ´îÃ>ÆÔ¹ÿx°\0U•ß92gþžo†þùž¬=½¬›c¬:þÃr?»nâÃüÑ[/CDW×*î\óñ²i³þG Ã{Gx‹å‡Š¾ŠJÙT3ÿwƒ\K¾–Ki—þ¸úú‡6÷sÑÓW4|¯?ÕüÝݳw$ñD4Æ™¹«tÉ”Ô"…Å;ÖzÅÖ½7L¸ØsäÓ·¹Æ×ëåqˆhCqÙ‡bê•å{›zõ}ë2÷ñ߬¼òDSZœå¯#z·:†-–U'KŸ¼r´wɆ þË&Õú«bÌîi,æ±XmÙûS¹~D’rc¹aoPEL.9øÖ„ÁDTÍË®sD‰¬£HÙj¨yaUÕ%ýÝ7’sŠ$gˆˆVT6~në}Gó¡Gç~Ó¿©‹m0þtùèÑî›tWܲ½Qùí ýš î6l;~â-uÊ ‡Jÿ|›ûU‡tUc“Ý/njç}߯÷ýºÏèOcÅAÑ }t²IWWÿÚ¤áBÉæEŠ(:CÕ¨\vs?‡EŠ(Q(¢PD¡ˆ""©Q 111ÔÑXSV¡£t÷!óÜØ. Ý=¿ãʵ õï›ìppJ†>{½äº—9;§&¢Ä˜þj†vïØ9õ^ïˆ$¢ø˜áÑ ¾ú˜&Âj5$Q|ÔHƒprćº`o¸…ˆd¤¾,æE±#ÊíoŒ›pÔRq»ëç5£¦¿ytíUVy_¢aýoŽaé†o–¹æú¦^ñR³I¤ò½OdMÂ9ìEQ$"*«é3ðªU‚,6¢UŸâUC_uÒ Ã“}G%cØŘ$+R3]K&y[ûí±ûtu ≈.“ïvß­‹+jöŽ'"ªm|utŸï”–íþ¿uì»î-¤~ï]ØKv[yQ?a«¾ÔýÓáoÙ£.ML5[ î ¼/M™«Œ^9¡LÃýàSNaY54áɾªŸABDúµÃ[ SMQ>Oâ¯Gš„Áž co±NëÌllÒ]¬¹ˆ†Ä<_a4& 3¦ p²•ÂàÊÒ¿¥%þ%àR\oáEDŒçcyQì3ñÖaù&eø]\ž*uXYÕ󱞻[Œˆû¸F¾­°~è¥{É•ƒ'z|èßÍ)¼…ù^DtÍEï½ïþotì—£c©kW.TÇßYpÍþ‹EKÒ€¸>âU"×ô®FÉÙÌñQDÔ?e F°®]ÉÅÚmŠh »bd¬½þ¥Kyh½ÑMD–ᣨnÀÈÕ7u9ÿ÷{‰(*9~ÒÅD”ñÅÃ\ÒˆZJ²ÏÿˆäqÑ-.ªZuM,[ÛÐ+™ˆ¦_½ñç[¦ö»åá²KˆhØä+c–|_{ÓÁ¨Ë†ÈåD?´w³y´ìú™†‡ÿë›j’ˆˆdjåÕ»©õ2Ò~¿.õ™—z¿p£ëé†;w{íO ÌûÑõ±?ðå–¡æ†^÷]ï}Iä¾µ:mÜ„ÁþÛ™ðäµ¾7R¹§“Œ¼rÄ€eo_<~˜÷G×}þ ,aPþMÏ]æ™Öñ¢&[òc‰8hlª{ÆßÝ:ŒnýêwNßđދˆü /"ºáµ»éµ»½O¯xæÔÅÎ+œBö3ý÷‡¯6_ÊôO 8œœ’ùÎù:¯˜«vrDoU3÷òŠ©J³ƒˆzGŶD3iŸMÙ3&:†kùöî<>®³¾ÿ÷ì³i´z—d[Îâì YªÆ)¢ˆ@ׄ@ë^øá_¡¾/@Ð4€(Ô´4m}¡¸\ð¯´-Äå&bG !‰•6 ÎæÄq<Ö2²­]£ÙÎ~îsf;gdËÚæÌèóþKztæÌ3sæ£óçœó"ºÊnäþ­GboyÓïóg‰Hdé_®¬#¢¦ÏŒjÿÙÚq'Ù'œï6Ì¡+ßxñ{[Ϧi=íÜÜz*Ì:9ØÞß9;Mõþ°'²^±zêò·}Û¸š,‹ˆ®;M´Ý*ûÌKÃÂþ¿ëêËÞfض5×r×ë®üœfMî!{–‡w^uùǤÚëÇ6í?C›ÖÑW¯áoJ~p·9üûãgh]#ýýìØÏ.Ùp\(*\îºí†Ìû¯¿(×xm=û•ñ¤£y9oï¡ÞuÍÕÿK M6µ §í9Þ|Ѷ½bxÖ¿ë_ÉÍ@ú]>õÛêmôQ±æº@aáEDonŸ"ëÚ§)»·èn¿òFŒçÆw^RCDoj ÏÆ¯j2/Yo7‰æ_MFÞ´eãþ¹Â‹È.¼ˆè®-7èVËŽü“þùU7r;¾|æ4ÕØ{‹»/ª{(Ä}öw”Ý[ܺóÒ[‰ômùGå /"*,¼ˆè×_ñ"Êî-þô’º¤VŠ(Q+UDýEŠ(Q(¢ˆEŠ("ò|µZXÍ7ïjëŽ5E‡s³Ë-œÈZw¿ëÑu/þÂO¤² õS"CÌ™‡IQbõDÄ`mmyYtβ÷ŸSMû[ƒ²<ÓDDW†~|]GÃg¿ñßoÝ ˆáRñ­<¶²?CoJ6}<óëžï^·¾nxó'æüýDÄŒj̯é'ïþo¿hS¾“™7óŒÌm¸éŸFSüËOXxã–+¿=2¹³6H)ZV8:'ݰIaƒeeç¦xu6xyûIc,?#_}ûö-§ÔOfž±Í÷ÿ’U4…ç9¬ï)¼ÕhnçLq0}õ’r¯&¶b‚ñæü3ò¯¯‘.ð£ÑB? â[…¶q½f`,—–ÿïóöÆÏYóÏ$çÀ›ESŠr\“Ÿi®)Zf£ñ‰ä²šƒ³‹µô\XÊÓwÆúý¯}ˆˆ•„ðºõ¢©|_³6*étŸˆê6VêÉ‹ŽÞõ‹”¿)DDëwÔ×X“[&*s5Íë‰è¿óÚvÕ§þ¿ñkÓµ÷\áØ8Sþ¹K¿ô±Ô[¯Êüzÿ|dý®}_r‡Ü²•ˆ®zãVë3§èŸOßÙ$?1HD—¿a3§ Ï&£µç6Þñ-¿÷‡'H_þ›¯¡øŽ¶·}æ ú5_8ÒÔqy¶åÖ¿xÃÜMÿ¸ÅMße·q·´~ú]ÜW¿Q{£ý ;žù÷…¿i›>|Gᯡ÷Þ~ËýŠÿÇ¿äZ®ÿÄíµï}÷Äçÿµp±m¿ZèLœ›o¿Ž^.𸖻䢖ã[’»¶;¯u<Ä×Üd¶¬[àúë ¯ sjèuÅ-—ÿ¬Ô­‹o\âQK…*°<ó..òjúõäSÙºÆEd˜‰I•÷…ÕY"âb,jymóÐ6ÉÇÚÿžÖMc ¥Åàf}‚ˆ>te¨Eèøæ¿¿ë ›?ðI±–Šÿ‹ýe3»[ }9i1Ûw‘¯éÚõ“m-Ó³´>ȵžÖÞúþo=,ôíoV2³8·Ž¥ƒ;~¿íL2°ÎNØ­~éë ×Üqz‚Â!ÇK‹7Tزvž‰ýòÚM_bƒ™ºÍGtCdæ™u·µ ã¹Åž *W¾¹í?N©™g|Ó–Ð[|oÖë׋…7ÆÙ$šgÞ=˜–6ä—Ùõjâ¹-«„übm5ü÷j´þ³ín!*Þ[|¢›4Ôíä»·øïó{67Ñ‚÷-|Ñc7Z܈§uE{‹ïl4ȵ·¨„]Š("QY(¢òPDŠ("Q…PD¡ˆÊªâ"j9îB¸ ͇ºé@æ^ Ô½Ð“óD†®šýŸOßØš¶ˆˆjBëD†Þýî§%ŸJ†]iÉñÍII4²‡øgUÖäå@@¹M™]þ·7ô>´£zó÷OaY7(s3¼tM®å¸òö×Ý1$'ìÿ‰“I©ýÓ_m¡í­™–©¹ÀE7˜œiÍ=dghÿÅ¢Õ*q_7Vü=Ö’,+ §fv\Zo6o¾§`)ÞJŽmÓr÷vYÒO.1¾ÁøUa˦7 |o)ëtc­ ç_ˆ–ž ÉRz6Ƕ¾0•bDT[_'Zê¯Þ•Ô´Ø""!äó‘œòéé`SËβuM¹F­kÙLDV8<×õ™]_ù³Q_«åsØü©÷¥§Ç󷻸êrkû¦Ë‡j®¼„ˆ‚—lZgN\ñû&ïûkòùˆˆ­«1XnçÉ'›Þþ{¹ùw]¿Ó8ÞüÛÎûŠØ­[$É ¾.WzñVN ¨ØBbþŸfÃ'ÿ¸vøH©\°«ÿâ®øÌTa XûÆk¤û?½îîÒ7ÀZ$I:×_«úf·h©¡PDæªØìéçn ¤-" ‰5ŠÈt¾¸GáýÆ>§À/[ÒØfYB¢ýÎ7ÆT é 1¸N²? ßÐåäžÜÆ]Zï¼mùu–uZ™kåóÛôãÇ•Ÿmº³Å´ÔµN''Ç7´Ðm‚}'—-±¹W»n˜Íßê妋ÂÇ.ßÚZüUr×Z’ÈZM…ÈíŠõÌÅõ7®Û”ká‰^±’7n³Ÿq‰…ö1.ñ• E÷zþÔæŸÊ|Ë/N»à/âkЍPD­y(¢œPD­y(¢J@UeVsÔ¬½«¯¯ka‹º§—Ÿæ7_™²ˆ'˜°D4äS·KÇØg ¥M’9N I²k¯9Y|~Ÿ^°? –vç;Ëf™ÓçüGhkV¿vqøá§7^ŸTM‹[îÞIÄÊ- $›¶·œbä;sC´,»ÃHõ¬·,äenVzIU [¶ ÷…™ŸèŽù²ì ãzÃ8ÿb°b–” ÉR†Ož¾69žb¢`ƒ(YŠöÚK~-)7Ög–I1õc£~=YŸínŠob´º°ã.²³Só™¿ý_®™h¸d!ÝØñåšw}`¬ÃÞ'NJ›î <&ýùßæˆú¶µÏñÝów¹]ÖuŸy»|çvךæqâÙ­Å• wýµâäø|‹/?žW>üáÕ{:pZR(‘‰iÑ LYÄ“(0ŠD'ÄôM¾ZÍþO͘Á¤±Ágïi¶FLH¾&Ñ.†v[Ú×oöµÎ2´€½Åþfõ¢‹Ã÷?½1sxÿÝ[G±Ü[ŒÔï¶´|„‘sÇÊšYöFê¦À‚Š¿Ú¬|–ŠvoÙ*3׿{Äò»Þ0{‹rBå„" PD•€"j­Cå„"ªÊxô áûî»/÷s&Z"CO½÷ Ë&""b-¢¸?àó¢hï?“±8^Ìš€½I¦}bíÙ€dúj·åV(Äe˜Ù…|Þ-+¬§¿qíÌ|Ü®¡Ï(©QþèJ °}«xŠQöšùÕqšöοPɲŠ÷1æåÉØÔ‚k‹;’¥ÜöÌoc:ÅDA"eÓÙüzR_gI3þ ÷)mƒ}5òŒ¯Éš¨¯3fÃ-ùÖKëÒé…äB¿í6ésŸXÿº­™…îýcímo+<¼2X·Y‰š7æZÌ Ì =¤l…ÃŽ–ÐOÿm…µÆ EdFŽì‰µþÂ/"–ˆ±h(H ¾Z¿= †O1Ó“ĺûÌó†tŠüµ1¿o—Ÿ£ãB|–ar yزééWÙ§ßz Ý®¤ Äï¤À÷¶Š70 e÷Ñ;5m/S"’ŠÏ¿˜3Ç“±ù–‡5E€Š(QP‰<:€åÆg“ie£¬gj/R-b˜FI4Ã>ûìtÅ`Èb|¼Õ´¯ª••š`ýDH°¨¶ð‚gѲÖÓ¨êžÜÏšö.Ç_7Õï Òc s+”O:›<%K4ç'"FER›‚Ã=i­Ï^Âø‚4“Ìf{‘¹@“:!ÔZ1ycÁ™·~¿µà[¢(ûXþçO|Âñ×KZˆ oYìkX§ )é bPˆˆHR­qML‰bhWZ~Å03%ñµ’}Œ½QO+¾¦XPh üÄ"ÑúO°§àLw¹Šªà¦z%H[ÎéVŠ(7Q(¢Àû*fK!Ú1Swʯ(†}µ­b‘a6I‚ÉìBJ1“U%ÞÃöQ Fo¬©qÄò;<Û¨S>œº€C…ËL!é¢ú¡IµMæ¹–Æp<¨'øf»%Å850S¾Fû`†nä&ãÜgNÅ |ïkä˜H`µH ^2¹s.îWíSµ%ÕR,5%е¼}\Ú§ê<§§E¾žì–ÖLŠëb!®†åiöwÖ)7§z¨`Ù¡ˆpCà€" ¼Ï£Xî+rU‹‡Z_ª;©B®EW$?o±aû2rUc‰“ý,™>ûÀ…Û¬¥Ž(U0Çç² ˜æ¶•Y3€S‰+Õ‰Ù>:Ö ek/•ý| d&BMÙjŒõéj]ÐJêMö•âFãúðøØ[»"•‘¹n¡÷‚X¢sš¨VŒ›36˜>-_{±ÜtÒÇ7°v¥å×tÆo%ýlÀ´¿là…Wù¦Ù:ªM­ÈŒ˜¢m&¾À*Aà†" ÀET"`¹¯ÈU-ŠM‡6ù†8Å—¹£f2 …õsÄø[3Ç)Tcù9?K&»!3ø[lÓÅ_è ex˪ĕêŒ4ò™zÐ Û·WÉ¢¦ ™¤uö©ìiÞ¯&‚JŲ'·s[šN¾8Ç×¢D‚JWbNÕòOÌ1¯ã¼’¹Ý¯¨š‚4—ðsƾǰ¤i¼Ä'ý¬ßd3‡ 7‰Á'}¢ [ØU@@à†" ÀET"öü‹xƒj1§¹ Ó84mÚWÛj&‘ž °äÏÎÅ ê¼(͈xË!®̸»«BuRɪ© M¬»8×¢¤7„(Áf«1•÷›1&s‹èŒà¶Æ¦ÔXB¨-±F€ 'ªæÖä™ðì¶K'íƒu’fJád"ÀüöA¿®‘àOÈÏÛ- ÀxM œÀ b :¡ˆpCà€" ¼¯r°Lš”ÒMMÔKöyìšÉ3$â-{¢kŠñD”½cg˜¹¤N ¤V1/à‚(¬˜«oœ|µ©‘ɵȱ‹²×‰ð>vNMÔ^M- MÊD2;ó"@5‘4«Æ73Ã\Â…í`˜>“ R [iI†n±aÏßܹ!ÌLÔ µ˜aªŠ(7Q(¢Àû*¦(ÑL&ÉÍ…¶¤ñªl ËÆ¢Ü-™uCð×$ ïa0·Ö³”R¹Õî.ÀªP±æôúõÓõe'1a%cVH²Áü2¢_H¦“\¾¥~{Cƒ>ö;o´ PDͰ6¦ÆøæfA̵ˆ\@(wKfŸ¡©|} `oÑ0§êÙÚ´êZ@5@à†" ÀExŸGçÀrO)§LPÖ4Rˆ®É´èãO¤ &t3 ÉW“JŒ˜m±¬¦z¢a‹%œÿ•¯Ä¼¼œ”L4m›®»bW¦Ec+n%¹PîÞκèRI™óçNvïhÔ¬Xª©nUz °‚JÌ?ª›ÜvÈרnßî™DÝ0¥úPÁÞÂgi®6 ¹‰}š,k¦žê‡-ÂÞ*Š(7Q(¢ ytË=¥œf2úèz¿Õ¸.s}­f°¾šXÊdrãÁ¦)ù‚³i3_{±i‹QÌ(ՠL4¥‡v)Cõ×6gr¡²WR\0_{I_:‘.8xh66†iÎðáà!TÆJñA¿R4Ûh0Åz T#Qn(¢PD÷UÌ–a0âÆ)‰˲ )]ç¤PZ6ò/£€ä3£x²Ë_k5¬fWVÊùŒXŒaÉ ‡³-’”L¦…‚C…þ@@‰+-D¤ñ¾†&'*$¦•jQEª·¬l‹®pá ¢ç– plJð4½ð>²ØZ‹ªŠ(7Q(¢Àû*h‹ m›Ñ…-¾¬èù« y6$‰¦¦Õ^ ÖÆKÌKW¯£«Hç|µ3£“µ­ù^å¤"…r-L à×Rš(| ?Ìï¼Ì$€ª#X朱µu&_W‰†‘æj‚jþæ8ŽK ¢_+º]ŽÐ`Y— PPD¸¡ˆp@ÞçÑ9°JÌ?ªñ ñ´µ5wİ8ɧ¨º{"fES•y x»i^´ò]Xqî\¬Ô8{F^×’oáDIMjRþP! øõ¤æk,| þæ7W_½¢½XîP¦6ÉohM[” @Fš u²û†Ë¥Dѯ¥ w‚·kÚE&j/¨(¢ÜPD8 ˆ‚J´jXÑÞýûz"ùß;ºûºÚç]Ú=¥Çqþ:ËäväÚ CýIC÷çk/±–ãIÑÅÂÚK–ÿz™^À²[j.ô€¸1v†¿¤ öâ%¿’4jóW¡sa‡’¾ IDAT¿_O%|­…«J}ãËÐ}€å·ÔPMnÌW×bæÏ"‘LCæü‚º*ÌŠ)Žß`UZ-ËËÐ}€" À E€Š(¨~«zÖ¹#tnœI5AK4/ε˜¦ ù ÓÌϪ( õ,GiS*µZJ.”€´þLT¼øÖ\‹!ˆ9a†ò‡ ùZÉo¦æ‚ÁR+𢥄"h™£5Á׋ùºJ°Œ´(¬½‚f9¿ŒC…PIPD¸¡ˆp@Õ­bæÀ2Uª)l\•o1I4ÉÊ×^<ß(q–¡ûK­  )‚´N_Õœk1Á§¥¨&?YƒTï÷i ¡ö‚5A2Õ‰Z±9l´)A¬±òs‹úy>-q>K/µ€*„" À E€Š(ð¾U=«ÿÀî~"šg`Ø}n!uæVfF0.Êå‰7EQ°%?Ï¢ ¬“âù@É5xÓRrÑÀˆM4%ìØ’Ë…)„‚ú¨Y—¯´|5>Ÿ)³aÜï*ÆRB!ª&[™fÁ l*K[Bˆ”Ü2’ (öê,%¡ˆpCà€" ªÛJ}ò .ÀmÛ{øPgss硾ÎÜŸìo=|¨³¹è!…WáÊÄ,-p D–Ux º(qñáüï|“ÈÀá xÔ²çB7Åš6[òÓ7 ø´Z›OA(ì“,…¯Ãwð¢e…˜f¨µàP¡D”¹Ú‚ý]@äe‘ Wb-€" À E€Š(XƒVj+Ÿžº§£çÀp”¨¹ô%ÉdÈŠ›s-–á82Ùú\‹dÖ‰ ±ö1àQËž ÅV2¾± ¼ä3Ólm>ÁZ¿HªXƒ«BÀ‹–=‚L‰mŒLßÀ²ÈŒü%ó’dª"dR+(?Qn(¢PDÁT1s`½M#cÕ¶pŒOäˆgóó,JV½@Äru®GT§ÝsL]¸¨É/út°àìw±Ö'Zª¯ßI`Mˆ¿M3Va‹È0²ÈùüþÎ/Yª@~a­@à†" ÀExßj `E{÷Èþø@?uÜr7G`˜¤eÖ ù%–8aC®…³BS¿uÉÝXKÏE*e…B…-V£(YŠ¿>_iùüiµa<„J°äP$&hÕ^ LHÙ'äZ|œ¥ ägê]ð$Qn(¢PDÁ°Z³¯5·lËM(·€›{º§—³,¿i¶¶0¦$2drë(c€'²û¨KÏ…ßonß^Øbú}>K6ó_T¤:G†X\@%Xr(ü–ÕfÝÚYdLEd‚&GÙ½E€Hç)`@e@à†" ÀE¬«vû€ö®¾¾®/]8½\&Z²üEÇ2œ. D–Õk±,GdZØÇ@¥Xr.¾èÌ…) ¢¥Zùƒ‡–ÏÇ“Nœýa©¡ø¢,;–‘8](PpDÑgYGÅT Qn(¢PDAõ«àû_2¡õC¬ÕTÐÆ3Ä\j\9å`ͪó "©ìº@þèI À³æúí~äÖ& ©dó•OD ñ—„TÀZ…" À E€Š(𚊙ÄÝ­Ù ùÌ&G3SÉ£rKTÃIiT0§ƒåó‘iZ~T‡5Jdk4¾¢SâY"Ž)WÊE€Š(Qà5<€¥Sf6¹Pq3cYȬ]:' ¤Y…çº3 1ŒÅá^!°FI:i‚kWAÄX8ûÖ.Qn(¢PD×xô8›{J97Ýby"Õ*º(]–ï5Í+Ö/€rZH.4VâI·‚Ew›R>ñ kݺë@Ù,$‚né<Ô¢Jë^YÞYµ²=(Ÿ…äâò+,bâ‹¢-ww¯lÏÊd!¡¶›OŽÛBJQV¶gåƒ" À E€Š(¨D| aÀª!""¡Ìýð’š Ápœk€eÇ,® Š(7Q(¢Àk*ø4ÃÝ€•`±È@žÁ0ˆ€Š(7Q(¢Àk*ú©aªQ€" j/€bØU”‚d8¡ˆpÀ®¼†mjj:ÿ‚eµæ–Káá^†\ÀªA(Ü 7äÀ¡p»Ð\LNN†Ãa"¢ÑÑQ¥Â}þóŸ_ô_—øp¬¼ÊV¾*…gßä2®¼Z_WyW^A*÷MÆÊ½¶ò…,P)ªuaå«¿ò…,P)<û&£ˆª²•WÊ}“±r¯­|! ¸ŽŽÆãñx<޳dÀÓ0€žVs`yÖ—¾ô%Ï^ÕŒ¾-Ž—ûV)<ûz¶c„¾U;/¿‡èÛâx¹o•ÂËï!ú¶8^î[¥ðì{èÙŽúVí¼ü¢o‹³ˆ¾åæÀÂXàiÀOÃxæÀ/ÂXP0€ž†,ð4 `€§a ùÞΛ%{‘싱?ôů-8òà F"»¥­­ãž{»Úó+,‹Sþ©ó •9Ú°Ü "*‘‹Ü¢½Ž% ž¹¨N¹BqŽ]Eás#U ¹ ¢Ò;‹htàÁûè/\f×={:KVZÈE•A.ˆhž"*:p° %A.ªÓZ E4:päÁ'ÌïJì(û­â©¨žPLNN†ÃaÂ%„+,Ú»·íà@Ùûrn(øÞy>¼Ñ#Eˆ¨ã–Lx¢#ƒTðkÆÀƒûôôçw0D‰ôØwÁ¯°½«»Ã~|σå~w`5­å\D{÷ïv-Y¹X›Ör(Î ¡X³Öj.¢½û÷í;ÐïX¦çÀ¾Ý¢ÙäbÍZùØ]œ‹»äbmªÂPd2Q´Èï žl&:…ËØ·¿ð]¨ÂP`k­xð¼a"ŠGˆ¨­5ów;\Ù_ µutîëëëë;ܽ·Ínë?Pâ_FGw_±Âß| J>`Å­r.æÎ(îØ{øp©T Pf«Šö®>§ì‡Ÿˆ¶µäV‡P@¹­b.òß~¨cïáÌR¹… ¾~ PnåÉEÛÞÃ}}}‡÷æ>þû{£ùµ PVËж޽v(òx¢þìO|áÞ¢ûp___wG&9‘Ü"DT…¡ÀX+ª¹óP_g¹;ADDOd¯½Ç¦‚³23"=ûv÷8-8é°ðüÃæöÎ{:zìG¢Tâ‚©shß³·­¿'BDýO tµ{üŒPX&k5³—Kµí½·ëçð"kÏZ …C´÷ì%…m{÷~òŠ5imæ"ó͆ˆ¨ã–ÌrÍí·tP‰ð kҚ̅ý¿àÉš;÷ì},óñM·,õ#ÛÞuh¾UD†£DvemsnUy‚…Y›¹È=[‰šr±ö¬ÍP8ŸüÁÇ7”<„bMZã¹è wO{q—ÚvÝ\ø;r±&­Å\äÇuó§©4·l#Šä—É=¹X{ª/ÎLá³+¤‚QÝÜ)ëùP8VW(0€U6‘ž}û ~ëïÙ7HÙV×-E"ý‘}ýÃÅS½/‰Ð‘=%ótÎ4e­ÓÉ9~—}Ù.QÉSûìΞs2ÏŒÖÍ­m™¤UCž`ɪ7ù–6é=ø@OîbÂûAärª7Ž¿Ï{ú•ýô¨Þ\ä”S¤gßîÇÚ:vmÌt Ä%)ȪÞ\œ›ó´^är*<Å]°¿NÏÿjs}×!‘j æÀòÈcG¢D…óäØƒçf?È\К¯ò3W÷õõõ>œ½êµ„Ünàœ;âËq¿Î§àˆ¹ã¸ óÕÍ3yoóͻ쎎D¨š\äFú{²£W™ßJ¹€s¨–PÌ÷÷Òç("pnU“‹æÎC‡sSQ$ÒŸÙc”¾rçV%¹hnÍv$Òó`ïy?êÈœCE†Âîzdð‰#Ñž÷鲪)À*›6gV²rƒ·ÙëY3³‘¸‚/ˆF‰¨¹¹½ëÐyïŒY0'®Kæisõ“ã×ùt0?(\ð•£xfÞ‚¹©xN9§jÎE®iov–R÷|Œ.k!ç=ý À¡šsxо2¤­à‹R¤gßîýØUÀ9Um.š;ïÉ—L=û2÷›sžPB…‡"û¥:;péïÙW±/.!,ŸÖæ|V ædËŸ5ë˜Ú-Ó6¥Îü"=d™ï ½ópž:Yr:¹yûE{÷ìaºç=Ÿ±¹½óÞ½ÙOã˜h‘Š®ÖX¹°wkÍ…Š8ç>A. g „â¼§_!P¬js1pp_Ñ\.ÑÞ³Gzîï½ùŠ(˜WÕæ‚Ú»ú·¼?7ÿB[Ç=»è@OfY×xr9 Êt¿ëžŽþL8ìùç½Z°´* ÎÀªDí]‡»÷¶Ÿ¿‰ôXÕÙüi—Dm{ŸûZöæ–m+ß#Xã*&ùSw ‚Qùçó‚UH(pú¬*oç"¿û;ys{gסܩÙk_–™·sADDÍ]‡²—w:ÔEÃÙ¬,}y€<Šy•üv}×V(œå9ùáÑsŽÂvjï$ŠF£Ñ#¹#sç•Í}ëòì|r™ârÏèøÕ¥pB9×RÑÞƒ¶tít &ct$)øÀ|*?ù?ù%çrçSù¡È.³Ó¯¡€©ô\\ðǹ€¨ô\”\ü‰sŒ_!p>ÞÅÀÁý#{_°_ò§`åžo|ãÆXÞ“¿ü¶çþƒ¹mÑè@ïÁýû{£4ppÿþƒÙ q›Û;÷dçd›o¬57Bžç¸Ý…\Ž-ØÁ´ut—Šü`ÿÝûs}ôÞŸÿzâÚÉ䆊Ïu½0¬y•Ÿ‹Ü+ÈÎxÍowŸv‚\ÀyU~(ˆ.äô+„¢Âs‘Ÿg—údû_˜çZ‘ Xˆ ÏE‰ÅsW–Üs p^E¤gßþƒ½çú6ß]DzˆΟXå߸qÖré?°»x*Á¶½‡u.jUí]‡÷îë‰Eúìs®•È>{Ñ5saۼǮsç~Ì3`lÉf?ÏŽ_‹í½¿`ÎDg? ^t©.–ºzäœ7…J‡\dºwøPg3µwuw 踮|/qgtä¢z!™îe>.ðô+„¢Ê!™î>ÔY0mh‰þ;÷ÈEUC.2Ý;|¨³¹è-çßœ‹êµVBADéï9ÐßãzöÜÔpÍùÝEq?ÛJL7ZM¡ÀXžÔÜyèðáî½EWݶµutì½çæfj¾eo‡ëO{»šªÜsÿ%.Úy,Bùϳã× ïýÍ÷vïíhsö°ûp‰}Lþ¨b¤ VXe炈¨½ëÐáîÂNÚ]t¹€ªôP\ÀéW,X…ç¢T÷3]ìsî- X¸ ÏE±¶y"‘y.䯻¡hßs¸Ô·iç³7wrô¿­­£T«+ÌèèhSSS¹»+.wÜbW•¯žüÑ”Žî¾sϰ „À ¹pC.Š•399‡ g`­í{öfg#=÷÷zä6³ç—¼¯:ÀŠC. 7äÀ ¹p@(V°ÖŒæÎ{½¨|˜pßt(äÀ¡pC.Ü „båq]]]@ ÜÝ€Õ¾âjqàá£3D3Go»ãŠpÙúR0cG÷·?tyÙ:krà€P¸!nÈ€B±BR©”$ITs`}éK_ºï¾ûÒét¹;k—ßï/wœ (/„À ¹pC. ·sçs`@eÀx°ÀÓørw ´/}éKåî€ç €rà†\8 P‰<:€uß}÷å~F´2 „À ¹pC. ¨Dy !Ë‹â·ËÝ oa#á»ß-w/ß§ËÝ o~ücÿg>Sî^xÈÏyþÓ>_¹{à-(¢ÜPD8 ˆoªÈ,†1ˆ¬r÷ÀcL“,ä Ï`DÀE@ (¢Š¡ˆoòèXç» W_¥~xɹsÁƪõÀ#Î ì*`mBà†" ÀET"`{J¹3Õ@Úêö ü΋ÙI­NYݔ۹CaÄ«au;à(¢ÜPD8 ˆ‚JT‘—¾ÆSìdŠœ8fÉiœê g¼ÆY*Sî^x Š(7Q(¢À›*r‹HãÊݯa5…%³Ü½ðÈÄÞÀ E€Š(QàM9€ÅÊbþQ€bŒ¦³„ò†ŒŠÜˬ Qn(¢PD7yt¬sO)ǪIΣXAç™jQW8ËÀ„‹°¦œ;*«Ø[ÀÚƒ" À E€Š(¨DýPž{J9.>ÁV·Cpî\$5…'óšÀšrîP(\ÜÀÞÖQn(¢PDA%ªÈó9VÓ‰ˆ°—Èã5•Ço ¤9–×±«(‚" À E€Š(ð¦ÊÀâtˆaÔrwÀC$%©O*r`Kqœ ‘Êà:y(¢ÜPD8 ˆoòè%„¥®ÈU‰ÄÌO,£©D )D5«Ü1€2*‘ U%ÑÎ…¤¤TUµ²-UÏŠü®‚(Î3¢J ƒ]¬-(¢ÜPD8 ˆ‚J´jXÑÞýûz"ùß;ºûºÚç]Ú}E.è–eŠ!]%b˜¸`5­PwVÅ’sQPiIrZ#ÁÁC¨lK …Ê0¢eßa-Á‘¨’Ê0$àžkPÑPD¸¡ˆp@ÕoUÏÀ:w„ÎG& e~CµˆeÂ2u  Œ–” Y¦ ŸžTHâ*ß°\](¥„"¿« J ‚¤Z*ËöPùPD¸¡ˆp@Õ­bæÀ*œ¬AäLÕ"eì€*ô)…‘´šV8Yƒ,p’j)Z»à (¢ÜPD8 ˆï[Õ3°úìî'¢E +4'ÐæÌÏgÌ™Ä3ËÜ?€rXR.æÁŽŒdŒ©±âŠyû°ê– …r‡ Sž5UÞXÞ(7Q(¢ º­ÚVs硾N"Ê\›{`ëáCÍEK”šs4O£¹ÜÙ‹>Κ4ˆ´ÙƒÁw&“ÿ›È·¬ÝXQKÍ…’Ps!𛩳ìz=©ÖæþlšÁ;ïL>ôÐòv`%-5ªVP{‰ÜzÕШ ‰èÁàÿN&±«€Š‚" À E€Š(¨~e¸ asç==†£DÅq*œF®P&fš6CœÝâg-EaX#_{±ìYžŒadËB  "-.©„š»RÝo¦dÁ§%ògú²‘ÿøã¤i$àâu¨<‹ …ªi”Ý[¤ü¬_UTÖÈÕ^gYö1ž—ÆgaFR¨H(¢ÜPD8 ˆ‚jU1s`éÚtîgCªAª2—kaÙA“X“Á„°¶$“ÙJKQtâÖ§$•Ü_ÙS§,–£Tº<(MÏýHû¿j¤Œ|(Y–7)m2¥ PµPD¸¡ˆp@Þ·ZXÑÞý²?>ÐO·\๪ËüÀ0©$‘®1ŠÏýUf_J’žf¦çy4€'-9rÜžm”I§SP9IžËïxâÏ ¥ ÑBídé¡ÈÖ^)† ¦,ÑÔÒF>§dVJ’œFíE€Š(Q°¬Ö%„Í-ÛrÊ-êæži9F5™S)"CgU-¨pŽ; FafËÓ]€U±ä\ȳví¥ÇR)&¨r3—¿NòùAüúŒìÛ´<ýXqKER—‰jˆ(EH2‚¡¥Í|í54Ç”VÂÞ*Š(7Q(¢` Xµ9°Ú»úúº¼´{z9Uµ*ìtÊ"Mg =™û«ÎO™–¦F„¡’,9Ùƒ‡òt:Å4Vd’ùÝŒqr0ÉÍé4&5ʱÔP¤ ;i… ¦,ÑÐÓzþ ɠ΄R¦¢i„½TQn(¢PDAõ+Ã$î Q8½œ=¥œn*LÓ”b¡±º•?§W´NÅ â”±Ìýs‚Á»å㺾kU; °ÂܹвµWr&b/2‰|.|gNͱaš“뉈(ô¦7¥þñÍË/_Í>¬(w(Ò†žù5•¦€bð¦¦jzn™AѪiNÉÜmí®`ð㊲K×  Š ˆpCà€" *QÅLâ®ví¥jgdƒtÓ­T.ܽQ IDATÜl\cde*ó+ÇåùGW¿“«LÏVZsÓéÔ8É(˜¬aýld–¯‹ÏÊ™_¹^à)C/V‘œ­½Òª” ÁTÃÌýõT-×Ðâº=#éQŽ{”÷è€e„" À E€Š(ð¾ŠÀR³•–¢Ž+:£kœ‘=xÈ0i«§e&-ÏfZ¦™Øß_øp–f˜ÙÕì0À*0Rv]•˜•Ó\@ãE3m·0cc1¦6)„ÒÓönFU¬ÑG"…gÇÇ)ÛNAU‘³‡ ÓŠêWuÁÔdÝ®½Ò ÷±aYNèÙ/$ÓÌ©‘¢ÚkšegœÕE€Š(Qà}4u_‘«›ví•–Ç‘Ñ4^°ì= ËžzÈLqŠnWWY~f¨ðá~ÿŸ0Œ’Hül…;°‚Jä"m‘'RªÔy‘ËÖ^Ök§^3w(¢ß˜¶—,•^~¥ðáÁ;îÐo¼1ýõ¯¯pÇVŠ;¹J+®ËM UæìZêËî8I>J%²7Ù19:á/ª´þÄïWægøN• E€Š(QP‰<:€å¾"×´ì=J*=¥ûYCή½f¹gGÒž1ì9JE˪egæ Va‡k(‰&@EsçÂÈÕ^ÓiMð¼`ÈvR&ŸŠ„wøxÝœI)ŠFBãè …+›àÒ/&W§÷+À E·2¿ÎiiŸæãLMµ¸LËÐ,·}TX9¥Ùóž(¢õR-K{ 1ÂÎÔn¯ E€Š(QP‰*æB‹ì=Š¢Ï* §«<ÃÚµWŒžž› E ²‡{ý 3Ž{)÷ð9kÆbfV¹Ï+ÍTì\豄Âûuž'ÅÎÅô‹CC¶«¼O'ˆÈ˜K%(¤êsölîárÚJÁU!PUdÃ>×U¿®ð¦¢f÷tC1j›› 9•=À˜ò3W3_â¸ÜÙ9+fáìw¨6(¢ÜPD8 ˆ齃,†ÍÖ^朦ð†&°œ=ú«+¿› ªŠ`Q’ˆF–‰^I1338pÉd-iîÕT6Ù®´Œ¹„" ^ÈÕ^ÚÉÁÉÆ‹TÑo$RD$O¥“lð¨uötþ; k©Rzbõ{ °rT² ©”ªIºÂš’=×xPW6ꃒžN É ã“éÚWR/ÌäOFÖ¹äTíê÷`e¡ˆ(E@1Qà}•3€•=×]§¸" º&°œ]KqLtúÕÍš*#‘BÓ)‹â'˜9ó×¹‡‹ŒÅ1Ì"¯ÈeÙI†‰/í,?&[iɤ&J–À1ª‹Pô”¹a“.ˆz*ID³Óéø]óµã¿x1÷p¿™ZŸ>³èggGFHU—Ð}€å—;T˜Ð,ÉH³¦ª±v5˜ÿŠ Ë²ÅQR¡`ʺ:yâŹüvâ>Æd(±Ø)H'Y6ŽéKÁ{PD¸¡ˆp@ÞçÑ9°ÜSÊå%5E24‰ã¦3¿‡¥¹èðm ;žckÓD”6Î2i/Í_©ÌÓDaö¸d\¿ˆþHÁ7kÆ•zêß Út"×øÂjrç‚É^…N©„&LžcSv˦X¤q›¨½&Q*ED³c)?ÞzMâÙä6çtÌD …ÑŸÐõ7Ìú:íyW¾)S JÒ"Ö°îPh¬½_KY¬¨§YC˵œ KAýžÝcˆ(6‚ŒÕà?òxiîá³aËi ³—IÆ"ú³[ ^¥ßÔS¹ì*`õ¡ˆpCà€" *‘G°ÜSʱœ}SO–K©qI×EŽ·[6HÚ™Ñ7_¡¼ÂósD”NæBtâ™7nÜ÷¯fö„÷`H“n>µ‰S{M2ãLò’‚+ðq?ÿ3yîÄ"Ö°8î\pšýgÒi#Pk v “N‹†¼áÊãÚc<+lj(9–¶ø µ\²î™çíU( cYƒìÖ¦—Gü7^vÁ½Ñ4KÕŽ>™ºvO¾M|ýÔíÓ÷¿µØ—paܡИìÙïÄ×s\Aí5²N¢±ç¹Í»–'¢¤š PHäúŽnÚG†¥XP¸êDú´n^¶i1ý‘'e”¡‚½Åg­ÀC~þ%ynþ,3Qn(¢PDA%ZÜ%„wïÞß]澜'dÏuçe]ö›šÀó3-›Ô¤ü®øxA%¢¹¹3²ÎœÑþh†5Yv$ó¨ÖšœbsO-îÙë,=.š¾ô„ñH‚&ýr •#ÙÚ‹—Ó¦3ŽÓT"š{u|Zl ´S3µ×¬‰3Ì —ŸÑ4Ÿ èD4•—uf{à ¿b¢ìOˆˆH!†¦£µ)õÕE<5ÃÌj,5HzacØo`°§ÕÎ…fOß *²!q¦Àð†FD#crÊ jg~cН*D”š™I Áºk¾ù=iOüÉ—‰h|4ãjφ[Ç·˜Ú+20<Êo žÌ7©jƒ>ɧqG(²Ê¡ÈTZD”æD^—SÏ´¤fµ`œynú=œ¦(¼@D±øl@Ñ^è½ëÎßN½e‰H!²ˆÙ  EteO=Ë0œÆ7]ý©3&0¡8¡ˆBn(¢PDŠ(Qà°“¸÷°sµ’CÄo_IË š¡øM]à9“ˆf¦†dúäʘª_ "J¤¦Uûȥ߬›ª™8ó(¥(³hêt3çË­e_“¤Ã%Ÿ‹¯¹Ñ(¸{ô=1¬ÒzÑ$Ê_ÍÛPG-’¹Ås ì%ÒÏ»xתäBÐ탇‚–¶$ÆXAW‰(I%„ÐXßM¦Ä šLDÊìœ"ø&R?ÞèŸ~ñù)"šx-ãëf6ë's+ä„t?‘1›®¸Î*øº1öŸÃ‘ÐÅMÓ‘\ËìoŽã/oNœZ‰WJDü/~!<¸B+‡Õ°*¡Ð¸ìÁC^d5™54•ã‰hZ™ É5¿Ñu…‰hv.åӴǯùèxËäHì Í¥¨.fÕȧ¢L¾~zeÏ3#É­|Í«FþîÑÃtѰzzX8ñà Û̹ͣ֨¾,öØUT6Q+ETÅCµÜPDU<Q+ET%ZÜXí]}}]DDwÈßf9Ò³owut÷uµ/¡[î)åÞ¾Á$êºâ·t!Ór6qz‹Æþôæ‡úvJ¼ADª6©¨ìÓoû¦0+éÌÍL“”8si}èew/Ë÷¿®¦WUßoYÁÂ'ÒØ—MöÄ öW;X{túÌ/´:~¨I¸£aãz"JpO›K3âì϶Öä®ÓU¦Rÿ¼„×mSØçYáGü5ëôç“¡]švgÒµôõÃÊ(C.xÞmÔ§¦uÃjvKjbLâƒCÇ>¾£í¨¨)D¤Ï%Áo|ý-ÓÁ0óâņÇ,±VÙXã{éhn…Ýÿ§ýÙ§={O4ô¿Ýt:ÿן¯ÿàí™ãøÉ¡—í:þhn™c?=6ÞtãÎþkÜ4){.1ÿä“üo+ß{ï¿Zà ®hwõèß=þæg¾N]ù¤_ô½ó=̉§/xå°JÊŠÜd 2/²ºÊ¦ÆóD433 5ß-‡uU"šUt¿¦üáÆK­ÙgFk8¢uSÉé:6ÀÅNÖÔäVøÔËòg_Wó~U ZE'ŒD46j²?Ò.i³?íÇgÏ´&ëæ†š†®-lщ×6n®ŸKI³[ZìuªD þ9•¢%;©°¿f…Oðï^—/À:“¡;5íýu‹9þ «EŠ(pC…" PD¡ˆ‚–tÖÀÁ‚,é?à>Í1Ú»Ág@ÞW Ó’;x( †¥‰†*ðœEDñؘ¬1—~~šÑEQ0‰H§iE៟©ON‡Y~šˆ†§"I5“ÛÖ´ÜS$RGž“é”öiÇS¿6ý•b¬ŸÿM®eZ}~r,<ç†GÊ´ žùÖÐ?1íšÊ¿”IÿMgøÞ8·Ð"ÔÜìÌÌŒô¦¢>L|ó•4Wþ©°q3÷üDúÐWî&†GŒ¿)la˜ìÔ~’{.ºu…Vîq«™ !W{éiSb,žÍ´Ä&&ÒBð[}»!1’–&"+®¨’o@üûD A9%¢Ù3c )L›ô¦Xþc E^=É´MÿðIÇSüè©'ênüןçZ‚gå¶õ¢©Pܾ6]xn¢ùâAnÛØïìiSȲwìžüûoŸï•e™ùñNþŸ'ãÿã‹…¬¼øŒp}ô›¿Ìµ¼p¨?>¥œýöohQ?ð—‰­75éú‰GFHY©V|מÔÓ+uÆ—­f(2•É¢ÀéºEªÊsD4>› (ê^÷)Î2e'¢„N>]90ý‚dLO™ 'ÕÔ”mÊ'Jßôœü£Sšã© MßüRìá`þ8Ðk±ÄÆÄé­“ñW'í={æŠÓ[b“ǦOç{ï”ÿ©³üñøB'&²·Éš%fßLÑaÌg‡Ç¯9žþ~J.lüåfî'ÓESH\1Ü7Rtó ÃDWì¶Ö§’\gb17ðª(¢PDÍET)(¢ÎET•B…"j>k³ˆZü$î»wïv†©£»»c¾‡D{ïïÙÖÝ×××××M.üÔG·Gm%ÁÔÓ~K÷ej¯¤:ª¨Ü‰Ïi)¿Ä[Dd±sª"üå6§c þ@œˆfb§’2òÍ5ñVî öõ cÏÙl°½Ž'JX¾øøŽ†ÙbÎÚÏ™>³ir20&Ó2­=µaz¬NµìèŒ~::ôü ÿØÐ—í–ø_°ìÄ|/gŒkJíËü|4þ—’ÏÂõ kOå8­þö¥g×ïl˜b;Q§ÿ0g®«Ÿ-<ŸˆŒT‰Dšš¾[fòÙ‹(z>eN¥ò·5a˜_³mØzkö÷Ĩõ¢¢3ÌÔ|ýw8©¿ë4ûºÂ–Wgÿ,E/ŒZÅ¢i¦›§R?w>x^ªã÷ 3V¶šÝ:9ó¤Æ=O‹erÇfäüËKr!fk/¿‘4yx.Ó¢LÎ¥ÅÀ×ê4‹ç}†LD”V4QœúÞ¶t8ÄMN‘rv&å«Ñã[Òù9DwÎýéewû‡9žhË«Oþîæ;¯}åá\˦ص%6(n±ßîõÆè‹ÚNa$°õÕGíà¯|×ÿóÖ_š&¥ŽŸ&"2Œ“Ÿÿûƒ,Ç6ßp¶Ï>¨}ä¾Ç¾æÄëÞŸïÛìÑ_^ó¾Ñ¯åï`Í>úȯ7¾õÄÿê+\ÍÐXékãûíñ¯ý¸°e{_‹gòż|û'ÚÞóZÔNî±O|s®÷‘‡¤ÎÆæí±á£ÑøæëM9Ÿ©Ó?P^|í…®¢ó NÞò'G?úõ®ÓmöçÏæ~ÖçÒ¤¥†;vlìᣮ-wì9f¤òB¡f§oÁ´dbŒÌô “I- ªÏ¾7a‘,‹<É&çÓdöo¾ ¥b3R LÎ…eEšÝ8ÞÈçþÕ«kzÓào¿çúX=žÖoœøÕHm͸e×%ÃlM]rxslü•1ûŸç³³é­³¯6%Ï ¦íÇuD¸ñéèmÇOýfÄŽÉœO°óî‹ï˜àEí¯7ÿöÒ÷Jb} <¡ØË?Oß2úŸ^Ü(gk£ß 'ÞøTüçW×;î_mP‰c•ršýÓ~’óuÕ·"Ê Ï§ŠçgL1Ìå|Í}£ö.8IÌF-¹x=S ®Ì¾rRÿ£³E/ö߆¦FRô«Ñ³æ)ÿ©©…\uî*ˆžžÈ‹›Q}{šãŽË‹¿ó1ÓYj%Š" ET/Q÷´Ì?³à•;¡ˆÊ@…"ªàá(¢ˆPD¡ˆ*¶EÔ²ÌÕ‘II__W{{—ý£3WÑ#EÚZ›‰ˆ¨¹µ-2|¡qÊLÖ@D>Þ2ÕÖò œEDº5!+üçÆ÷“–8‹ˆX>¥)Bë#èñúšBD)}8- 3¿UGuzuÔÞ÷_Z£~ôï¶Ö¥Tæ4)æ™L{Û¦‰ÙSð_‘à£'?šii¨ŸKNl™>»NðŸÌ´4®‹N îŒmª©#¢ óW“±ýôðøÐ‹—1Á"R™ÑÍ[¾A¡‹Ÿx­ÄÉê/Ë­?}‚¿tã¯3¿üÿõ_?ºó£ýoºx]¦eÃúÑ©“×?:ìÿÍ©ÿžišýöñç[~sV|bð#¹õº:Z»Å½þÁôMÉGŽOæO`n¬ûÁCß¼óŠMãÙ#Þú‘Îý—×ÚÿXÿkîæ!ùˆ/¼ñù‘ïfZTvð{é£'îv¯ÿ©ÁÏ>vê®þc˵\ÚÐÿòdô¹Ù÷äZ®ÜôbßC—ǵ¿Íµ<—¼òÈ9É0×2zü±×Þ76—?”óø™[òÚ¹_ J¾¦oQÅ?0È´DR7ÕÔÖ=;}‘ýÁ˜õ½=Ü5­<š{”Î̼”juT«œxÒ<žû•aÒ¾àëcÒuî%oUr!vñí7Ò¢dDA0U"Òª*úÿèŸV}zšˆxYÑ%ñWµ¼–ñQ,™ö‡f¤MƤ¥jDtúùÓiò3ïzýËöw’éá‘a\&|ËN ÛŸÿ®½/ߪœk Ôl{í»ZÚq¶9y¶¶õÌÓ/ѯö?ðXÝìüä[žnºùѯý†ˆ~ó±ÞXo<ñ듎"ÍJ›¶ýËUŸ8ö¹ˆ(98Ù oú§–ºìÉwÿ-EŸ35þ÷¾ð†SßÏ=ê÷Æ9ý¾kn:ž¯¨ÌS#âµí?üÓï8ÖŸüÏWô¿ûÚÆÏþY®¥ÿÏì[Wÿ¦·þòsöÿ„cïøØO´ëjÞóËÏ?gPNçk©»Ÿ|üëmÎüú¨Ïù™ûþƒhˆ™–Wj7ù&NÜõäàÚ°uÑÑ]# o^;†aW„üzKXññq¼®´Cû+^ž–r׸»åÊ cFì»z௟¾t²Ëˆ˜¸,—ëT»25±Íï7rw:GM³/ß×…÷G„þ¯¬ŒYµóo­Ót­ÝÊöõH²mÝ î8󗘶æå¯¿uÍ´ !ïÿtÄøÇÚlI¿Ó%®ÛŸüۚﻥ¸Û¨XðË‚Ìò?&Þïøîß;{wÙ°ðž«;|‘í\y s7ëè5dÅ¿úw«öºOÉûnþ芓yÝ¿{çÅpK’&vàgQ‡¿™|ïaŸ¼7:©û:­èÚ³úšV‰Gâ3m{¾;mê³þö¤–;.·)íÜ£U''1?}ü¬´©k¯7'}óúͽnøaC±°mùMâÆçǽuì“9O>¼»Í´Ùw/Xøƒ´qX÷çXõÍ vV­8ÜÖVQQ®+=m>¶¹¯›?—ÃeÉÁF&üòÃþ5G¿ëšó¿¸4“cÍÍQãß{ÿ“;Ýy}ÚÉ«r¹’ï3b‡ïšûúc&*–bì9£Šv}ß-ãößßÿä6³3®ÕO2“ÊÜå&.f隃¡‡bc’Ž ZÉádF§›#F1/Ýßå̪þ%ÆŠÁ·|óÓ7=Y6üšÓy:]>½U=pß›Wÿå5ÑÔzÍßf˜ú­ìЃ_öê×÷¿>â‹¥YEï൧§<=óÇÆô˜nù×⬸¶5Œâ–™ÂÃI7ÙjÓDs¡=~=²ýç~&[»î·¾¹þ“aaI{CÂ2äµïžPÿyû—9.Ù{óÐZ~âtÕÍCÕáЊÖ÷¬¦çL¢l#"Áé¨ -=Y*Ý.š­%DÄWÚzÝ‹W Ïã7¾ôËȾ׮üpiZh¦ÖùÊvÓößî™›´îO…ךü~Ø®÷:srퟯkûœ¯:ÈÝEïŽ#þ‰«îY¾¯rg·Š[µeC'Mè#¶Ç¾²ü—wŠý+üø³³[ÇUË]BÊÓ–_~çWÜ&,[òûÀ¾+cR»ßûrë’uKÚŽ+¸6ÅÁ3¦Ý®žk—n™õ²¼ýlÖVÈßò‹>þ"!zÀü¥º {wÄ;‹•ÏŸþyÉÒÔÐÌpë¿VDœÜ=þŽ7=ÞpèÓÕ7Ý´ à®âa³ Úࣖÿß«Ï?ûȤòoî²zyo—œÄÛÇmš§ Ͳsâ–÷?ÝÜ÷Úè½GD§M‘• ShJÞŽ_û p¦Ý¶ù¦¿SÈŠœw–ÿ¯ýuº±ñ·¼òÂWï)üin¯ƒߘõ¦ó¿×ïã»—êNþ’k-Ûò|ëŽÏ½õõò_O2)veúÓ¯®›òöUi™ó?u(“]ÃLLýË{gÚŒÒõøcë{zgIégúÎùõ·ÑOéó¬!= {qvŸÁõ_p™ƒÂɱU›7[µl˜É$ÉŠƒg‰ÈÁ°:—íCë‚/þ±‰,9XApÛ—~‹ûè´IOä´2ƒÃzU—ãöU¬Üû[A¾CkÊÓÓÆG¿²r誛ç”#^¿%±ÓC/Ç'ž ¬°5eIĪŒ\³øR׈¼È,ÞpF_Y¸?ªíFnãAÍÎÝñÓz<¬uĆ„—1e_mߦ Ë}KÄ&Û¡m‰7¬ãV¬^é¾6´}‡õOmÊzæ~CÈ¿Î<¼¢ì0…‹>óüm»íÞܵC—Š·Ž|?ˆ]Óíþ;¶Wn/œžxÂöVÞ§uÝ‘œ{$/ýÈêe]†·É¨´MûÍñSFýúnûŠ¢å‰9Ñ;^ܱòª}}:§—É9ñI·ë_¾gé?·îiãumòV‡´ÕEwîôÛO?z[Çõ+(Œ=5â‘õKua!¶²0Û)Ëñ›;߯»£LÇ–Ðä­›v ØZ˜5<"CXVøßiYü'¦v:±¯(±sÒ ]Ú=î»-/9ÓºÈ*æeŽW¸|S›aóúàìÿ¢÷÷é¼.½Í GÙxŠÉÙ¼?¶dT;'ê\޳¢)DŒÍãkwõÔþ~â°cùÕwŽÚùY©]øûÕãî‰~zûC¢ÃÛ¼ùêƒùiŒåÌS4ÿcÏÔľ©ß<ó—)ïŒZñµfçvÖÀ¿3é™g¶ÍŽê:ó¯_,Ì·t5 'K1göÍï?òFÓ› øÛþΗ¹Nš2bÆXÃÒEÜÑ~}çÐ  >H¢D©'‰2ö]Ù©'»ìµ¯ï{uøÂ¥Y…H¢D!‰B…$ I”Z“¨úoâ~q¯ÈÏó=f#.>©¶C¼‹oT…Ï*‡öiŠ»2s•ö²JÎ4TQÁpZ«Ã!Qf—^¢†vÿîà#Ö23õé52D˜?ÿ¹ƒaÃ+lV]ïÒÆ½~ôØWíÄ‘QG M.ë³ýÐé=ïÞ¹§õÙW IDAT})É7}bÏ]§ÄÇÞéAô)$tÛÕÏmÿòlNŽrßÏ­Ù:'*týï¯åTNLzxúÌÝy«Z¿]0꩎î;u¨ûãOMD.ö½íê;~GþŽñ“¦ÜX¼?õãÕ;láßõú“Kûs£òÁ‡w_Ûæ¹È6Æu»·´êùã±·n*f<2×á Ÿvõíùó¯+îOìÎL™ñ¸Û­f£3IzÝk­uò½Þu¹\!‘Ÿ•ó'þsÇ¿‡duýwÎpã‚wÌ×Þ2ëðѨ’ƒ©7Þþu™g6o½å¦˜…›¶'Žý¨(ÏÔ³û©Ó[g=úÑ­+ö¬ Ëúò¸yBtÓuóbbäå;G$÷\·‡yrÇ)ñ†Ñ÷/eŽmÒ\?þŽL©ËÉÌYx|û®½Ì£%'’ÃØ:mWÚ_>ßµ53Íý7=…Èœ;¼}nÑÕÛú]³«hÛ¼ÌkÇíZ6døøqs_–;põ¡?†ÍxヶìN¾þó’Sbn%g7.7nàëî¼jäw.VÚ¿z°æ÷[#téû¶í+‰~%9=¿0?Æ^®)9ñGr'ýsæ°Ö¶¶©Ž~ß÷kwvÏ⇥÷ 7”q–Ãmç?8pgþŸÛï›’B7ÛÚêzÿÐ?wkѦ×o¿§ÿŸ_~õ#‡Oq:5+>þϨî×~òNn«žO—µª(J2Å *Yôî“]Ƭ_¸ã8³pøMËì÷…GÚ ÍúÌ~ÚªÄ%ü¤ü“¨~¹WÄ… 94‡4¶"A®ìÖ§ÍÖµAvD¼ÝéµD”Ø>B'Y5yÞéuµîöãi×7¼Öjµ…™ÝƒÜùú„cGvtIùÈáÂqi*_S|ÇsŸþ!û–„Cû4?¿)—L̼a†õL̨ðé“\ðIZZùp1©Í —m¶Åœ_Øõ¸þЎ=ž³ÉÂöþ9iÉîWOmJšú·»sJ7Åõzô±ç·¾úRñ÷9oì(Öl½&çË?×*¿åßõöë‹“'dœùãÌÛÝ×5[þ‹|ì³/>\óVÆÎ=%Y]ÿó^môÔŠuF™7mß)&‹¿Ýº«M&U|ýÍ@Ó/Û(ŽëñùÚ%s?¿m@ßý¹¦ý3«è×=ÝrâvïíûìòÅ·Þ>uÊ_]w0b—˜§úæl^½·u—‡_žìrUЉu÷„1ëž|å½gFµUB>ì¹Y‡½yï_~“Ô>ÁÚO³§ÿ¨ë?¼sſʿY×5.jq/½¼æÃþôÙž¿.) O\öá¢i½*]ìêÿ|8äÝïÆ—,μ{ö›×•ºbÒß,›w>´cIì˜gﵫuTçwþGßvÐç+?¾ý™ÿ›vŸã†r¡O‡7Ýѱe‡6øiTTb¤ÍóÞOÿ}k‰%º¨]œx²TÖrÚ?~°ðؽa+>úËþ÷>{qöø!£ÂÃ䕟æŸþê~[¾/yäÅû^Uy ³ò–Qëæ§åmÛ;îáñ#‡nM±ÛŸ~uÊcÿ8¨OÿôïïÞwý¨eW%Eþã[kd¨-1BÌ;~úä·ý_ßëoÞ7:ÿûƒ—.t«)L¿ïÅ­væH¿ë~ø|AŸÁ£/î³íÑAáäØCš}ÅÌq«˜Û>¾Ãé’³^SÁT8YQë¶Q—ä.VQ³›ýÝÅ…é¥D4 CöÜá å9;?Dï¬ì uˆ.+®P,}¿þn+›Ûîøñ£–­MÜ÷´Ü÷êÃ;³Švý$\½#+£èþŒwh$…›B:<Û¯UÊw‡'æÜ?ôž¥¿m^b kó¿×6¯ºÃ:…yxèûó¾g1®==êˆåý¶eû³†>Eô–‹ÝöÏCö»iXù¶þÓŸr–ì»xÝQ‡nEæ(¾­¸!ÓøÌWóŽÊˆýê¯çr¤ÏþèßåôÈÑ9Èqæ×?i{ÿòÞφqÝï8ÃE4;WäŸþºÿÑtÓÆN´’+QqËG{úìàâÙÃgóÊ­a fÔã/'G—ø¢ß½–òÊWÓ~‹ë6¤ä‡Ë”ÑÉÒáŸ2{M3líùQ÷ ;N8³ÜËtšÎ4ð¦q1rLñ¯Û†÷a(Ý;œ|xæàR¦{§¢M÷ÃÿR"´qyµâÅ«Ýåù‚ä8ÑöϬ;»Ù<¼7ÃóÄIÜóû2öuXÒåÚ¿k¶]õròÅ?Ü7äöÇùëÖ”!ƒÊ¶ätcô¦ \£b”¢Õ™Y/„nì2f€òçê•Ñc…¾\Ç¢o6î‰ëÂÜw`U™°?ºC\IžÎYjÕšNo1(D£›¾7=â ¼¬_§'Ž.K¿±[¨¿ä—· ú£ÑC¾¢?CºÏ$¦bÏÖyYßwñ¿¡ÓSÓîZòixæªûÆè]η7,êtËÀ÷¿o]h—0ë KeQ±!¦ÄØú‰•ÿî=(¹ÿŸßì(ªüª×í:—prÿ„q½ìÌéû'®ÙðKçÜZ?‰„$ I”꒨ /ÝvW¿ÿý4îªûo@…$ I’($QH¢TšD5`ÖʼnKH¡ê%âùÇŽ%\ä x -|³xÏÞMÿJI±iÃñå£YgâÆÚ]-ÅÅ$‰ -þøÇœ'\•.µKÎ6°¤a犫Óf$"We´®Ué­G/o3¿ìT…R—”íRçÁ)©Dę–ë6Ÿ*lG‰DD?‰sÐV6qð1c&ʾjœ(Î<5½ûÁ³ŽCeÚT†Ú%\cbI™Ñ6®2ÃøpU=wŸ4 Q[s"\å]gÉññ»RG¢›‰è¸ýS·<á6Ï_0媔']æÛnSÑñNñ¤ÕRvÆ ’é†CÿË?\¬ë¤#ŽcRÙï¯ÿÏŸtýß s¦xžßVÐîí½µ¿ø¡Ñw?Su¢)ÉËôhzº†Ò‰$ŠÐi{GÑu›vY»EuÌ®ÛtADQS\a·ËÌ7»Þ‹J‰èº®ÿRLýZ¥ì&c¤b4*±±£ü4é–O•Òl+¹U«ŒnôGtîíÿÝ¡¬\K‘Õ™1–Hé~Í@ržžöXD´ Ùôó‰hH»5ǨMiHH,óc›îID”›õÁ¥W™ÙÌñ?¨>I:ÑõDDÁÝ~¼2|h+ùë¸US •2×S&=·ëDFfb‘L¤K ÃýF[þ(1_•y‘{=ÑõTvÒZqrЈŽD”Ôa4Q͈ç‘G)D#ˆ¨Ðõ]züp"™bD¢üÓ7<ë²VòúUºTZÙQü…vËö¢áŠ5&%.z_Vv¸ßÖò»=ÌLDñm“uŠmÛ¿­ËƵD”‘ÝÕâ<õ÷Å}ìåáz":žh©pLÝÔ:!?Ë>áf"ê÷·aÌ}ÿb2)Gó33‡îéèš|eŽo¿ýÉViÝLúýÅ'BÛ…vI³üùÛÔMq‘ñ%I‰(!»søª%]ÜK&!§õ¸-K˜¶Gÿû}«#‡t3’`”³“²¯«šC~»™_f½ð8É$ÑÞöƒÌ[= Wižz’ˆ£²«Ý`ÓfW|Á^ÇÄ[‰¨×ì‘;­ÿö­§r.’žz„ˆ†Í™pª×¸ ÷‘¿ì  )©‘®VO&šÜÃÓNÒ-Ä*¤p¤”¬X}×è)Çô˜{—Â+éw˜»–t;cq]}GºB ­¦û<¢ToI¹&^!EGR·]ÿ¹ºuúÆkÊêk!’n›šKSƒ{C"’2ºNØsd׫g;îS2§H£W>±eÀãÑë72³^$¢ö·¦møbà˜ÿ½ÇÍzô¦1Ù )B'ã>pÁ’ÎÌ'""…HÓ)ûžÚ:\ÎÝøúocÿáúþÏ ‘F"I!ê»è±žÙCŽDvè3£«L²Žhøú—Ü©¥|¸ev®BJ×AÚ®ƒfJÖòö’sâˆä¡ Y4:+èä®”Ìö4¼=Ñ…+·t”%“,eX\þú»•.2ðù鬟…ƒ×,Ô¾yôøA«ehrbÃ+N^³€ŸåæGVå^±­bm"³ìÐçNö¡Pù4¥'·=e`ÝŸ™‘FËJDqŒµÒš¾ûݱ]v¦; ‰ÂûF§f—bbÒˆ(ž3_cèR‘O”FDw¬;ÛñÔú£‰Iù.2QŸN=îÅÛ¿yw¤ðu‡£e”Ä´KhS`b2~ëã O2æªz^}°KÔÿØ=òóò$ãÛ &"šFôëIÛ"·L#n®Z»sKzú}.sO†Ï)?JÔFKÚñí;Þ*™âŠ7·?vŠ2ôm«¾ŒªñF-N¥GeËŠH…RõËþUvͼ汑û :µO¬Z#õaGŠì9¾ß®ÓC¢»‘L±±}‰NQ™ìªˆÎ¾–$Jêßadà§©=%_M‰¦ýqÜ–Ù+…d"Šù6þ{l°,Y5¬þ"?¡õ‚$ IÔ%N¢²ºÝK$ÇÆ#†$ I’($QH¢D©6‰jŒ=°êêÈ1ß2\ÿÉu"h”3¿ï¿Ä7z†B qa‘C¿­þU+:Ü.= \˜–H#ý)h]¤˜ˆHC¢C![#lŠ3Œˆú&Í ízpȆ± ¥m[{–%‹RjÕ‡lwå¤Y#ï®úöªˆ¹£w—³û Ë"Ò*ѲBÿøýú¤äÏÖóÜ|'S&¯0Æyn79Îdf]·}KQXð¯ÐZ¨1M.’Îh:eœí”ì×ô%6µûúÒ³mªJ©K´ý7ŒßnÖz>IÆoíegã…güO¥ñëG­íýº½~kGý‘œç77Nj«SDÉ%{öYà•ØS• V®Ž‘¾‡õ¤šÿ©)?ÃjjÙ"Sy¢•rÀ¿Äì(Ê/y¯ú;!žŽu4må$_­B¿kkü€êæêÈ¥ùÊÆ±†ÊÛ¿ò;„µVllí­ñ2%*ÌбŽoÑJ3Üï;!Ëô÷Ë”xy4,.Ç‘beÅøm"Ùu¡bxL” 8Öm´;E"²´×ËÖµ.›.LGDÉ]¢"¥SgÄ/ Ž2}k u{p ­?5¨Ë_;–nϾճ‡…b2“——5¤o骾÷{.Õæ{oJ]°DÜ^Þ*ˆÚ^Û!¾âpß>Ó•ãÖœÉYDÔap›û÷¶È]­}öÝÖ³û†¯#‡S¬ÆøÛöÜÞ{¾³ózCÛ˜ª’Ô{‡tÛ÷sçÒm=oïRUÒqå«wžú´_Ū«ïÍ!"!%&bÙû·D‚pŽvò­7_tEö“Þ3|_Ü3÷Öï´ç›ƒ­Ÿ;lïç§GŽó–(¢^*ÉÏú¢NÏ_ÏøòyGÁ!ÅïÂY?¿¢{}füÍž¿=¿z²íÞÿ¶ãkŸ¶ªN¼.ìêEk#}áÛ&ÒŒR?yÖÿá·•Qkj<·HÑë“sêúñj5È/3„¬'ï¿L‰—Gƒ‚ÂÉkN±¿OúýÆJ=cÖc,‡Àì=³ÚÁé´’“ˆt<çÐí–¼VK JyžÁÊ ä ¢Ü®ÉÔ÷…DnodrŸÖ‰UgŽ= üŸ=lû¶[z¯XÏÉ{:D~ØñÖ蔢„SeDdÒ*¬¬Œ©¸WÓã:ÉóÙK*p¶ï~¬ÔLIažÞURé/±#s·û¶¿õêUcw€ö‘ü) ókr‡ÜDOê‘®qè¤üˆþž:2ÒÔhû‡™w Ū’—Z› íe×Ç× ¿k~ˆÖ·åç¼4ÃÛiÆ‘žºeÅÿ—®côR÷(ÏΑ¼’xºòËþ1ãR#½¯º?.ü ¦TOD¦0­ŽlÇ:í]V}D(±&1”f+2:Ë"âb‰È|Çõ}’O¼þY¨ž±éÛöNçÏÓÛqÚõQ!®.ϯçY–ôzªùˆÈ¿øÂ<8GÔ š «ê~¡{6ä¤$)½þmÒ”^ó×£wÙg`%b‰Lúp‡À\søj§Éóg]I,èdçµÆêG³EœuÙE©Rkç"ê®H1í%¥ìÏmm /ÿwÅ»G†»º·ö\³3X)Qc=ÌÝoõlìšXdm•r÷KC³hãÉ$âN—µÜÐã¨o§Ï>­â6· Îüý¬Ý€ÃÖà l§p··äºg6$'g‡ø&]ŒoEØ%{r cöÈ|Bq<W#UÊå„ñyµîÑY'µ\*ˆºXΗÔGðÊy~zzZ´E5Î!IIJÎÙ„DÕIÔÅBI”§D!‰ª†$ªê[$QjN¢.×BŠ;gæÆ #"0sɹ7£#¢Ú¶—Ó2T²muþ˜ÁV…"-®%Òu,ÒŠ®JÅ“Ù:ÓVÞóq »–9qâ`ÑÉþ«B çÐRÔöÎö¢ÉéùêmÊ٠׆h=7÷"Êì3S)è#Ížœå¥¨ÊÄ[ÛE‘ ÆZ®Ö/ÙlþßN§I†„IÇŽW}›Zê~9kÌÛ‚•ª?ÇqÖ²?¢Ò“ïUÝÃähA¾¡n©åØŽ\ë$¿«Åµ1†ù\G§Žü®9Rýs£SÝ;Î>i«õH¸,DÕIÔIT-D]ÙDÕIT sÙ°¨j#º:M­¹½œgŸE†ÖÜÖ/æ”Ö.3:"†ލPäZiÝç¹wg—™ç´¼lÐ[ªJ*lZÞX¨×ʜѷX±.ŽàÖÚéÂÜîž©‡.l9‰ˆôÃôî·Û·$U”c’ …f’7À4¤q—ÿVljmnw?·»Æ;£kòb´%VA 2™y­âˆÚ»]çª0‡{þ±1:³ë´N²†Dy"¥DAg,!Ï mÅ`Þ{»sqq]ž’ñâ½â⹺k<ËFÄŽmìã"Ñwcà¸1¾Ç™u¶^¼%ÂÐ~4´®÷¨A»KÆ}8“))qÕz4´@ ‡À]=ñdò:»D:ârs”W¬µsbˆèùÛ¬³ËÆÎ a&Ïç6¬ÒÊèe:1BãKò?U¬k#8ªÃÕ¢§Ûl‘Z눜D“ —õîkܾÿ RYZoø«†!¿«Å¯îò:Nƒîçv÷sûÿ?B½ò#Š=FfÎõhqDŸI ‰ „$ꊇ$*’¨ær`5ˆ–è¨À¶*ìnÒ‘ƒHáCEA2è<ׇÄÌiy9´ºÄf7苌‚¬ kã=•ÛÝÛíîøçàªX ³ý3` YŒíÃl+s÷¯ï¯Lp8i¼³A §%w¬¨,š³±úP"V'äŒäöÜ•r´ç¦ºU£7q.½T)WOÖ-ÕYÜ'õ¡òY)Þ·¶Ùuãu_ûŽmÞ Üš5ßüÔbNËɸ7Œ;;û‘CK'qRšËમZ—«  e«®¤sJ.^± ¼™ó,ž wYÝ¢¥T/´ÒøV3õv»{×ÌxÎã[WU_-ž×Ù¨æÕ"‘‹=Ã\UV׳]@ôˆ£þå†+ ’(€`H¢ ‰õk6XN¢Ö%ì)=c—õ²œi·g^‚Ô‰ƒÑZ’‹íûÚ9«Ÿãà`´-k+´Qž›F§8ÍzŪµxr/Wx¤±¸è¬&”­ý¬ åœ0áÂ\Z§RÜêL‚äÐ;½¹—¬QNWhy ë¹[.ºÜ¬ [EQö,‰äØB>âlâVè\-2e9Ó^—EW—’(€`H¢ ‰õSéVð–r"ÛI1<6qU3 2cw²:Vaôž­œn†­ÐiHác«º$·Ž'r)ºËú \µÅ…ö”že!nƒ/÷Ò0á¹’"=Ÿy;§wVš TYaòÃDG…o;ZÆ…Öò r€f¥–ͪ S\ε'Qã â‰Hp)œx¶RÇOˆ.7£ÓTê4z…¯ºUØš×íL.žt.ÜâƒfI@0$QDAs¤Ò¬à-åœ2s\1ˆÆ£eÕ¾qÉät9õbØÖU™–ÓÅñÂY=Cn%¼*z ú ·V.—˜Kt“àrª%.4ZÉrªT_föÜ0w0Z—;Ú¨T¸,žÇ~8XQ*ãÜÄë‰19ܲnsoFîÍ]-›òº”¸²"Ñ[¦P,‘Ö%ó†Š ½ÆÀ°U™–èri´ÚJ=£¯¾U©ÓŸ4iÍR7P3$QÁD@ÍQ³ù”¹d*ÖË!I'Œ¼¥º„Ñ(g iO‰Ûͱ†³z"¥úV¡QhªU*ÜxÄ´LF+JáBI¡!ÒóØZ'£µ•[´äPªŸhãàuL™Ëªñíj‰·DÚOV¡MPc€KLpÉQtÚ*¥éE¾ºDÒ¥ cÐzn j%—†1[õ¤S<%áFádˆ6¤Ûñ@Ë„$ ’(€H¢@ýšÍ–SfJÙRsBËfT•¸%†´Å"Eñ\T\nAo.³ùM] •ÓÂX²:qïZ&§Fk:qæ¨!%Þ[â*á+£ï^d+ìVo«Ñˆd‹ÅuÚ¦Eî-Ö%Sëò&!¾ún¹ É:V¬4¾:ÓÒI.ª÷»ZXBåâ06Ćms¡eB I@$Q ~*]B¼"×%3œ\dŒ’õ\WrzJÓ©J¿LKr ¢±Ò*3ÞßJ–-aD…2r/h ‚㩤³Q §×…wèä-aJ©’5zïºPi³±:o:’.Êg÷[ÌÐÌ…à’Ù(ù¨!ê:=Gä$"Á%IB¸Ñïj¡•Ý66Ä`“©úâ`‘å3aÔ±èçÑÁ[Ê‘ÂêÂÜn6Ù[.ËœVWér½±#¡,O.kÜ«²rQãü¯¡qá…Ȳlûxo¹ÄiuÎ ·Ñ—{±f^²VŠ­ýOU±jU#T ñ54(DY9© ‹÷›E¢•%;§3Hnï%ÏÈ V–W*ýOµ¨²Æ·j‚$ ’(€H¢ å»¬3°ÎBçÇi£‘x9Õ["I¼V”dÉ7^B–6k€æ¤!qá4h[ñ©¾õ/ˆ••²Á÷tgÞ,ê$k…ÞPÛ Ô¨!Aa’5EFc&ï{–³ HVÎ`P|%FN°iX½Ï{†æI@0$QDAËÖlöÀR¢%“ÔÉ["˼VIñ-Jçx‹È*’_6в9m¤ã¤©cœ·Dæy½ËJ&_¦%„‰¢lS È½àŠ U'C´ñ&ßî$‚,Ùx­AöÍl×q¼MËêì`W $QÁD@êwYg`ýü°Ÿ‰¨^ÃîÐðÍœáÝŽS'Æé»¢p\¤–!–Ásm¡9iH\4B¤R¬Ëˆ÷Æ…ÄtîB ñÅ…hEÙ®1ãh6‚;´8F¯“©:*޵*|"9½Çˆg×2b©¾—’(€`H¢ ‰‚–íR `ù-ÀM™8wÎØ¸¸±s–Œõþè…© s猫ñ’àmäüY z ‘,û–©“,h9…a}³|µ|¤ÀÀã& ¨T£Ç+ áT"ÇûâBádu…ú¢@¢;†ÿI@=(«á´…âe¿ÙïŒbã9³ßV£:-o˜Pÿ~ÔI@0$QDÁèR `ù¢§–M0ÿ…¼|¢šá俜¿ª0«d¤RJýr/EV‘4¡ÞAÒȸƀJ5~\HºåliœßkxQ'Ù4~7MfQPœ‚ qjÔèA¡«dΆP|©/÷âÙ&°FÉ·d^d§À4ؾT I@0$QDÁ¨Ùì5À-)Fÿ†D%Žð–ˆJO¤¡ W´L²Ë$£¹F‘ èd›Þïæ¡ª§¢»Ü•h åÜf©Æƒœ†ìkà|7EQqò¤o6@€†B I@$Q ~—룗¿hê«¿üôgÐë"WäIÃ(5®1&£N`ˆã£¼%œbæ‰KRCk py4<.˜JÆ\ãŠäµ²ÃæË´Ä0‘'W¨7¡9hpPTÉÈÔȽ,dtŒžóÍu×qŠ‹'‘±4¸º—’(€`H¢ ‰‚+ÀåÚÄ=.>É»¡\v”«mu®KQjĉ†D!™$ß3ô‘B¸Æ@3Ñð¸p»K¸EQTì²ÅwóP¦ãÈ-„bÿQh."‹R#÷â5ä½ÌRõÕBOäæÈ @ó€$ ’(€H¢à pÙžB˜=cÉ’u>ÚunUhÙl³Ža]¼ÀB¦("G$˘å ÍEƒãbV`\H:APœá· ¯NdIbŒØ—š…†Å,›-à-ërŒÁ/!ÅÍ‘NÆö Ð\ ‰†$ ’(hù.ÛVãctቪÚG5 ‡ ¨ÄEK‡¸¨ÄEK‡¸¨ÄE‹† ¨EK‡¸¨ÆŽ ÌÀª¿Ÿ_V5®éÇ5Ï))Þ7’yäX>e«iÀ_= ˜ì¥ô­nU7šÊ©§OÏMÕý«ªD\4Uuë9¨ºUÕ€ˆ‹Æ¢ªn=U÷¯ªqÑ(TÕ§ç êÎUU"(‹ªºõTÝ¿ªjÀF‰ `ÕOÜØ9KÆQÕD¸¦&¨p2h~žoÅk\|RÓU¤6jjÀüE¯Ì?4`æœ8Ry£©œšúô\TÝ¿*k@ÄEãPY·ÖJÕý«²D\4•uk­TÝ¿*k@ÄE#PYŸÖJÕ«²DP4•uk­TÝ¿*kÀFŠ ,!l¨¸±*'ƒÆ%¤x¿Î?v¤é*r~MÝ€ߘ<Ÿ&Îõ H7“FS¹¦îÓsk&ý«‚D\4>të94“þUA".Ÿ ºõšIÿª L}zͤsUЀŠÆ§‚n=‡fÒ¿*hÀF‹ `µlGŽù>¦þ“ô ÊÆ7†½pdbÀX4­eCÿ^ââ „þ½ ÄÅý{Aˆ‹+ :÷‚W ôï5f\`«^òM}ccõ—ŸþLz5õ‚ÒZÄõìëÝ-?Ï»Kš*¨¢k $57šÊ©¢O/DÍý«–D\4*µtëy©¹ÕÒ€ˆ‹F¥–n=/5÷¯ZqÑxÔÒ§ç¥æÎUK"(•Zºõ¼ÔÜ¿jiÀFŽ ¦   ""¢±kÙâU?§’H¢Õ¨¥x? Þ⦬dmuSAÖ¨–_ÕÔÑhÍ ú´&EƒkF„¸h(ut«ÄEƒkF„¸h(ut«ÄEƒkF„¸huô©EƒkF„ h(ut«ÄEƒkFT߸(..6›Í„,P'ï–€ªa T X jÀUè°@Õ0€ªÆ5u ±ä/š:yþ!"¢”‰s猫½àÊ‚¸€ †¸†¸€ hz˜ÕbÄ3wb Ñ¡ù¯,Ê'¢_TÅ ˜‰X‚+â ‚ â â ‚¢é±3fÌÐëõM] hæCÛ.X{˜Îl·¶i³á…QÊĹ/\gnêª4Ä@@0Ä@0Ä@EÓ°Z­Z­–ˆ˜‚‚‚ˆˆˆ¦®4žo {ágïwf.™‘Ý„µPÄ@@0Ä@0Ä@ÅeW\\l6› K[ ì3T=`&b €qA q qAÑt0€Õâl|Ã7üó Så7eeTqA q qAÑt0€Õ²ä/šZLfV Wo/pC\@PC\C\@P4) `µ$ù‹^©z €™3²³oª~BÂä766m½šâ ‚ â â ‚¢‰a«ÅÈ_4u²/˜ˆ(nìãU…ypåB\@PC\C\@P4=<…ÔO!€æX jÀUè°@Õ0€ª†,P5 `€ªqu9¨²²R–åK]¸B¸Ýn½^¯Õjërð…°*++ÃÂÂ\+ŸÂÂÂ:`]x !æ^@£S¥ŽGb,P5 `€ªa T XÐ\,›Ìôš} e¼ \ `€ -›ÌÔÐÔCJþ£Z—r„ëÀì^žßxò²sV ÆqMß6—°@rfíW¼ÖMKmêúxåνTÕY69mzÇ¥Š¢(K'ÍZ=0µl2Ã0Cçùx`ɪãeÿ,š~;†° …Ã4;5ægUOUZ6™é5{öäÀYIþÇzõùMsòÖ*"":0»×Ðy´~zZÕ+¼“¡‚ÞqYл×ú^f÷ šaED´lñ<š42—ˆ(÷ÑY9ë.9@D”;WQ”¥“üL¶nn®çËaãrÖïÚ_K]¨nµ´ €Ja šÜ¹Þ©Yûgíê}Y?}×ȪùKë«f%˜ÝkèŽê™\Uc@~E¾×úWs¨ˆˆ(uÚº¥“<3ªÇÞqÿ,šžÆ,ö~ýZàikÔ³1-{m:Íz4·–Ÿœ·nµ´ €za Ô©jÆÓ¹fUOJ›¾žvìóL*ÊñŒä䎜DÞYIÞ/rçÎÍ¥K®ŸôTÕ ÀÔaãræ-^F5 /Nõ;¦¦w¬ñõŽ}¨ö÷"¢Ôië‚FˆˆÒÚçPõ1uPµÖÐy9ã†ÕZóóÖ(°eT X N5öÀª9À²l2sž ST5Dä™;5o¨ß(Øþ]ëÉ[6}=U^µ¾×yø×¶n‡+Š¢,í8=íâçv· €Ša š›e‹çÑù'LùHy—.4ϳˆoÒR¥æÐXõx×%ô^ççW[:×̪iís|“ª.F-- RÀ€æÆÈfÙâ =×ývC_6Ù·gyZûœœöi¹ÎÊ™÷buáÙ“g¨ZXW½v¯Öù-¸«³Zߋ퉻×Ù½†Î;ßݲÉÞ—X²p}‡ºjž!°e.ò—°@jìå÷\?¢ÔiÍ"ÏOÓ¤à— Ý1kÿÜ\"ÊÙÑ{–´…ã>š–J©ÓÖ-õ¦-l?,•ˆrçz×ÓÕ8¡Wræ ½ØÅvµ¾×yx7öZ8n¿oºÖ²ÉUÏF\?=­º!ÒÚïð-Mì¸tÝÅoßUK˨SPPqž#ÊËË-Ëe«@½,›Ì¼Ø~=Ær iœ8qâüƒNÅÅÅf³™0 TX j\SW QäÎU.ø?h–.<‹a˜ËP¸¢h4u]xáXƒaΜ9¥¥¥ «€GHHȤIµ=ÿ¹6~ !À凧@ó€,P5 `€ªa T X jÀUè°@Õ0€ª†,P5ŽˆŠ‹‹›ºµcÊËË›ºçôÿLßöè;þ¹IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/logcurve.png000066400000000000000000000403711465265754400210270ustar00rootroot00000000000000‰PNG  IHDR¤˜Zrì pHYsÄÄ•+ IDATxœíÝkl#kžß÷_‘RwŸsæœ9só̈--gwgÆ7l.0Ûn4ÌÍ‹l¼`…fÒ/˜ Aà ‚P:€ &H€  " %úEŒÍ ;/¤ž(Ʊa/¥ãf|[gw'³›]Z5;3;3=çÖ‰¬¼¨"Y¤D‰¬*Öó<êïšÙd‰âSõüŸÿÿ_å=þÜ\!gzØÀÀµ\kÉôâèê`kCûðÛbU{;ë*zýbuO;ëÙ½ºÜxº[Úld¹®f­$Ij7*Ún?¶uÛgÓÕAã±ö[Ñ2/6¿Ÿm5*Ûj ¾|€I¸ñÆŠ*«Þ¬Éü.±«nû™>|r¨V§3úq±¨âÚ=zxO¥‚-•ÙDŠãŠ*¥µGèa©éú&ë<64®˜°q‰’jͺ4ZÛÚZµ)°M€¬uÛj<ÞVtñk¨ÓQ§ÓÑvk_åzS7cѧ£NGêlo¨U,«úAMêèñ(jPõ‚†yM[e‡ &&ûIþ>í#ACYõ½šJ –K”T«—Õ W:ûª½nÃ"lC©¶Ñ ¡¨r}OÍfSÍfS{{u•‹æ¶.5ŪöÂß©ý:-ío4Ô6¹m7@ûÃ}uÂÛÅêbÀÝ“£Ñ7åû W)ÕT/¾ii»Áž8ê<Õ‘ª¨êÞŽj‘#Y¡PRm§©½jÑÀÖ-H¡¤ÚN]Ã㤄Úz:*FÖ#¢Ü8­ï4‡ *I²A§ÇáíâêJ Ûv³•VU|ÓzÊ". T ˜Ôíªýác=iu†«ºRQÅò=z¸~aŪÛ>ЇOöDzÅbPž#)’foëÃh¡mùÑÔ•âÂúŽjÁ³Om®+µÖ¸_|üw?Ôã'-u:F¿Xü¿õ¶KW<Ÿ¤n[>Ñaôý(U~ðj3OZKzX-ª5xþÖSµk¥Q|¦×¸êw“‚ìÍA 6QV,×µ39ù˜óï|™ÉfÇî~¨ÇÛ­ðùŠ*VéƒõÒ¥—hýðÔ÷þÒ}ib¼?½”`æßïª÷u¾ž n»1þ÷¨^ò™q»ÆzfÆ>«ÑFÎ ø¼Älïã%5ï­mU"ÁØðwNá3ráÕ¯yº =>Q$i®òýÅï;ûÚ~÷¶¾ù ¨ßlܨ佫g‡á#‹î…AÔ÷£ÓQ«³¡ÖñìµÇ…»kÒð™"¤˜¯1þ»IRG­í •‹êL4t&›ýæý;Ïà²íéìok#Üþ{ŠÚßûÎá3u×ì)ïýíQºaúg(Áïwñ÷˜Í¥ý )Þû¾²ZÔðórt¢®JÁû œÔÑá³®ÖÃIå<ïãµ2úŒL¾G§Ç­KöAïSg»¥ã)½O3½ÿí†*“û«NkþÆá÷ I\ý;ÇyÆÂØ8eÙŽù÷JdŽ÷êI+:ÁqêÙÃõ ŸáèØk=m«Fä€J•€¡®GjÇËõ°N/R÷Ù‰Ôè·Õˆî‘‡ŸRjtz|É$$[_Z4V2ôt‡î>Óè˜8(i«98 {1ö"eG­':èÎøâ+«£øPʯ!]†??|¦àiæý;Ϩ\½üïnáÞƒÑïß9Ô³Áï4öÞõàÞU3Ñ®F%ÛE]^y± ß/¦¸ïû´÷k¬f]Rçø4¼uªQUÊUïcP3ö7*×Ge1ÍšJ¿‡£÷(Øörµ>Ö#4þq:ÐÃ!òÜsJ̦-øKª5›‘¿—"çé_a®}¤”ößëzs¼ÿÝ=þÉ‹ªî5gê§{G')o?\Gà Lœ}ãQ-\áTa¼îsp0[ù,«>|¼=Š‘ÉA0!*é~ä@Ú ŠÝg‡£ fPþýýŠU=¤Ü ÑçV|cKðÑÉÜØ¼§XU=<@Ö/;2ÎûwžQqu´Â=>ùèèøTa À%¿S4 ¼¢|í¢5Ý½ì± ¿‹Ÿ™Ù\>¹N°]…{z0üaøFV}ËåðEuØÑŒ^ñ®Œ¿®³¨ÏÈuRmGµõȾ¤PÒú£)žç¹ÓÚ_¥²_h«Q©¨rákk®€c–÷s~sì#ÿïÛ<ïÿØbUG‡ÏÚjwƒ78è§›/cH”*Cc+™ÅU-æî*ZhstÒUWW<þ2áŠ{皇¥juåÂä t¿,µÂCÏщºZKÁÊ_ÆÞξ6‚âà ‚ßŽ>—d\æ{‰wxø»M”¬ÝÖž—î¯iò¼·óþã†eEã•6ÁóDßûA¹Òé,¥Gs˜ÿ÷›x‚K>33‰ü=Æ>c±·küïztÒ•V«¾E­>\U±%u²·•“ÑÄ.i™ÒÂ>#×¼Gá«×xyz¨£#MÔÎÇî+§9¤¾_Hb¦÷s~³î#1ÿ^1Íõþ¯ßWY­a ÑÙßÖöàáÅ¢Ê>;9ÇÐÄgˆ"ãd%Ü´æYªLSéþh5¼s¨gíh‰GY‹j½/1YÜëXmì½ßׇíñ3$½‘ïÉ¢%Ãgê‚ÏâÝ‹d$ŽNº‘³ç\Wîe³¶[ÚØÞW«ÕYø$S̼´ýïURm¯®j±xñ®NÐÆ î0/2@h¬y·s¬«ÖËÖîTÐì©äá¢X뉖.Mw¶ôáÝ Muãgê*8{Òéñ ¿Ô”íᨣÃ'O"×x8\€{?_™xòŒRaª®×H§ÒvÞ¿³tÕ~¦‰N4FÏ3yv©ÖööèAW!éRGºl±{þß/› æ8ï{P®´4ŸvŽõae…ÂðãÓ9üPOÿ9i™RÜmMA÷àI$AVVuï¡î *\ÖÔ<§y~§™Ÿ'ö~!è?¨Åxýl̶\Äßëº}üÜõ’Ö%u»]>ûPOö[ÃßçÒæç‰yQd€ÒÃH­|KOÚæÎvc{¬>ø~I;-=çvõ,:kŒ¾D­>Vû¾¿±¥F;2që¶ÕتŒNÁ7˜ _f_•Š*• mOižÅØJîp•lb¥vbuüq£=6ÅìvÛ:hli뺢än[­í õÕ©¾Æ<æý;Ïíêçk<*ªúp–‹~uÿþûÅk»¢¿okt&ë¥AQw§5šÀ­Ý"Ûzªè0´â=,®“P]l%ÆþêR&Ƭ3í#£bÿ½æÜÇÏóþ·ÚÚjDú *­?ŒôM¹¶E´¬4ÎxÂFÆo˜–¶+—¬…+7ëTuž±¢³¿­ å£EU÷†ѱó]+rŽð«©c Ï£¤‹¯Z›J³vw(º’;pa¥¶¤Ú^UGƒ÷£µ­Ëߺ‹¦ÕÞ˪m¸Mð±æû;Ïèò¿QåúÄóÌôÞOý<\~ªÄÅü~ÉÅÛ®‹ŸÿÈd½4^Ã-ÍÞ'R¸÷@ÅýÎओÚ~ð‚ë8˜xdzÓë×ã=ùº>¨%fÛ_]ÆÄ˜5`†qšÖßk¾}ü|ï§ýlO>èò HÎtÊg¼±È8Q…uíìí©^.N¬ U,WUŸ8o{©ÖÔ^µylQÅr]õ«NoX(©¶³§½zYÅÉÚÓâàuöFeJ¥Ú…×(×÷^]:h<{éËJïGµ¬ e²Å¢Êåª];ã-ªX,«ZßÓÞNíbi*¯1§9ÿγ(–Ëã§7,–Ã+ƒ_xñ g]™«™7ºâ8íÊ® øýRg»¢¿¯4ÑØ6¡Í‘(¬kg¯zñ””Åèý¿‡¥Z°_{¹²êÕtÎÒSXߙؗèúýÕåO”ý˜ÍÜ ûÈ´þ^óîãg}ÿWî«Zžò˜j=ØO>÷Ø)\é»ÂEÞóçÏ}ÓÜ4—_õ7Mì¿óX ô|WgNôºp…ùû¹ð¦!ã$1¬!ý¨ÛnŒ]©3ÍæIÜ]<‰|@ænŠÖص:û^l À 1vìŠô¢ô8 ]UCZ,×/)UÁmì ´1kˆÇêÕ;Ú| {‰ÎzàÍ6~eñèÙ£€(2@+«*'k 5¬éß!jÀ„±+Ð&¨!.¬0:óOg_[XÀÍÒV£9[X¹Nù#¦¢ÇÀµnl©ÒííÛÁ Oãÿ~^ÒÇ r-¹ðçámÿ_z~Ÿ¿ÂÛ~Ηn…_ –÷ƒÛK’îH¾ÂÇ,KþRäöíðq·%ÿ–/-/ü×Ç›ª'y¯=鵤גw6º=¼ïLÒ¹ä{Òyä¶$½ §žäõ¼ámÿ¶/ïcOêKêKž?ºíçüày}õÃ?'é“)ÛûyI?Õh,N~åÆ¿|ÏÉÏ…¯»ŽÏÁX\’ü;~ðÚËÇèí[’nIþ²/ÝoßòoðV8ŒÏWḌÕóplnû ŽGçáX Ǫz’r’÷r4>ÕS0.ûÁÏüe_Þ o4c±¯`Ì=Ÿ²}·‚×—4~ìÜ~WÒgÍËŽŸáñqðåçýàvt|.ùã·ï„ϳŽÉåÈíÁX½íS#Å9 ¾¼WÁ8ôμÑÏÎÂãÝ`ŒÃûÎu1ðˆŽÍð+çÆ§ÿE_Þÿ×ëG&Vç’ÿ_¹“ÜhÇ?˜”…·ý;¾¼?ò‚í~¥`²ŽÍó_ oÆãgã·ý/úÊýÁxŽÅWžôBêÿl_ù”}Îòá¾ÿ–‚ÏÓ—úÁs ÐËÞÜQ.ønþ{£•g8`„½³¸±9Ì>}ìOj#ÇÑüI^¹ï„“à?ò”ûQxlø¼¯ÞÏõ‚Éè]_ý•¾ú+}ù… Øè¯ôƒ É “;ÍÉ;ñ‚ñÙÍÉë·u.å' ç^°øñåprÿ§{ÒË0/öGÇÑ÷ƒñ;V=«X8Ìcww×ô&¸ã-«Ö+×?4Ê{éÉû¾”¿— V¾çiù/«ä_–þæ’ú?ßWïg{êÿ|_ýŸë¿÷ vôÜwsÊÿV^ùßÎËû}OK¿µ$ï8(áéßí«·/5zßèÉÿå`G×ÿJ¸ª$ä¿íå_›ó?ž…ï{ý—žòÏòZn.+w”Sî(§þWƒÂÿ_½oöÔûgzêýBOþWíþüæ~?§ü?É+÷{9å:¹ Xøƒœr?È©ÿ¾Îñ\z”ÎõþtOþ/ùê5\ØøZŸ}$·<Êüim¾ÿêý$Ìv}/œHŸæ”ÿN^Þß'Õ§9õ‹}éµÔÿV_½oõÔÿV?¸ýÍžÕýÞ'žrßÉ)ÿÿæ‡ÿzŸzÊ惀ènúò×|Ý? ~ö…à¸éÎî}fç\à°¹¹yåýÉùw|ù?ãK?#õÔ»üA})÷{9å?8Èç3¯åÿyYZ–r¿›Óyù\çþ\½_ìi}C¼ž–þ§%-=]Rþ·óÊÿV^ýŸí«÷§zêýÉžÎëÕÚ+ù«aº°Ù²‚2‰ÂcSÁ `î('ïŸzÊÿn^·õ¶ò¿™—<©÷ £@¢÷çzêÅÐøìKKÏ–”ÿ{yåÿ^^KÏ–ä¿çëü_8—ÿ_½{==:SÿÁd°Ý àèÿÜŸ×W &ßßÍ)ÿݼ–ÿ—åàöïæuöKgòW|ý…3ÿÒyv~ ïûž–ÿ×eåÿŸ¼–~}IÞGžú¼¯Þ·{êÿñ¾^ýùWêÿÉ`¡ oçX"§áJÉ…»ŽsZj-iùï.ëÎzGzGÃ@âìWÎ2Y\ú?—të¯ßÒÒ¯-éÕÖ+õÊ=½þw^«÷§z|êqã J$ôç¤3 îý¡§üoæ•ÿÇy-ÿ˺õßÝRïŸëéå”]OXî·szûß[ù˜×ù½sõþlOgÿú™^4^ÜÈ2`Ìí0xÿ…ÞØØ”Âcç¯/éö¯ÞÖ;Þ ˆ_>×Ù_8“ÿµÅ\'§å_[Öò¯-+÷Os:û‹g:{x¦WùU°?Ä Ð_íëuõµ^Wƒóúå~/$ný··”ûÜ^ý»¯òºÞgžnýõ[ºõ×n©ÿ•¾^ÿ[¯õÙ¯~¶×\äÍ×ù×Îuþ/V3oÿ×·õ^á=½ü¯^êõ¿ñúŠÿŽ;ÿñýÊ™>ùÛÓÎÑ ¼™ú«}½þK¯õú/½–úÒò¯/kéo-éÎyGý/õõé¯}Ôÿ§ìö_¹­å'Ëò>ñtö¯œéÅñB½{Ó3šx³ÑGŽ…ëÿ|_¯ÿí×:ûWÏ”ûî>r¾tç?¹£wþ]y'ž>ýï?Õ§ÿÛ§:û×ήÿ¿ÀîÕ_~¥¿û±òÏòúÜýÏié7»žä-yê}›I p¥œtö/ŸéÅÞ }ôÔû³=Ýþ«·S™åÿaYKgI/þê }ü>ÖËÿü%A®dEÆat:VIí«ÚÛY<¿aòÒeÙ±-ÿeåŸåõÑéGé?9ððßñõ⯼PþwòºóÜÑíÿæ¶>Ûýl1åç²äȸ£_è§‘MYî'9õ¾Ý ÎrÌÀŠÝwp:VÓ[…[Pà sY&'À½?ÑÓ§ãS-ý­%½ýo¾­íEúµÍ=ݼÓÅ‹¶¤ èN<æD©2ãçýà*…ic"¤êü—Ïåyž¼#Æ+`…E-¼11'dgA;>¯ç—x?çËë/ p`…˜,Aà€ì,*ÕÊŽH߂ƫ×÷äçôy,,cO 98 ;¬˜îX`O`N‹ÊØÈcNÈÍ]€;Èöàø K8 3 «™f"¤Œ`2ö°²³¨šiš£Ôq4À"d` d‡ÀÔTÖ c[8 ;”>î`…°<,Aà€ìÐl ¸ƒ !`yX‚À™á‚R€;8o<`yX‚ÀÙá‚R€;˜¨ö ãK8ÿqÙÝÝ5½ ˜Õ"'"·ð¼À›lQ5Õœ ˜ÍѰ…óÃæææØ÷cÅp=I€=89,A©²CéàÆ+`Æ#,Aà€ÌÐ ¸ƒæhÀ"œÎ– p@vhŽÜÁ '`Ja d‡ÀÔTÖ 9¶ p@vX1ÜAư<,Aà€ìqܱˆ‰Š~qäæC K°ûFfÖlÉŽHÝBJ#«@<œÎ– p@vuA)š£ô-b¢BàÄCÆ– p@vX1ܱ€‰ õÔ@<œÎ¶ p@vX1ܱˆñÊXâátæ°²Cs4àŽELT«@<,¼ÁÈ ÍÑ€;hŽ,B©/,Aà€ì,ª9šºi }d{q€%.¸cÍÑÔS±,,cO098 [9Iý”Ÿ“>2€=89,Aà€lqnxÀ œU °=°„ó—ÝÝ]Ó›€9 .}¥¸ÂÁdHÝBJ#«@<ô8ÀΛ››cßHXŽ‹JnXÄD…ÕM X‚R%d‹R%À «ÔSñÐ [8 [¬bn`¬ö 9– p@¶È8n 9°GN’~¥‰`s"p@¦q5Zz€ô-¤4‚I Á<,@à€l‘qÜÀ$° ×V-&#€hެ²ˆŒ=ÇOÌ‹ÀÙbÅpÍÑ€]89,@à€l‘qÜ@Y!`Æ$,@à€LÑ ¸a!ed€ø±ðÖ3AÌ… ²ÅŠ àÆ*`—´Ç$~È#d‹Œà‚|À.i?ˆÀ™ZÄÕh97<>š£ˤ80²Eùà2€]Ò“ŒGÄ@à€lQª¸æhÀ*4GÃÎO·vwwMoæ‘öŠÉ`’rEðÆ#ãØ…æhXÀùÀasssì{ ËQ£ ¸ì `š£aJ•©Ô›£Ùñ ±ˆ0^¸,@à€l¥¼bBªXNdØ…Œ,@à€lqVÀ èq ÐâK½9šŒb p@¶èqÜ@ưKÚÍÑ\ 18 [d7Ð Ø…R%X€À™â<Ô€hŽ,Cs4,@à€lÑ ¸ Àv!ã 8 [”*n Ç°JêY@2ˆÀÙ¢9pã°GÚ{š£²EÆpã°<,@à€L¥ÝMÍ4°8œÌ°<,@à€l±ãÜ‘öyã ôøhކ-R­€;˜¨Ö 96˜á#ÓV£òD«{;Z/Ä}™¶•mµ†ßU>_÷@[ûêH’ʪ7k*Å})؉àÎ؃æhXàÊŒC»QQelÂS÷DG庚ͦšÍ¦öªÒþãuƒ;uðx_kõà¾f]ÚÞ܇‡R%Àú€=äa+‡R­©f³®ò¥÷¶Õ¨TT ¿í+ž¨°®Ú(‡P¸»&uŽu*IÝg:쵺޹²ªâà>Ü84GîH½9š‰ <,³Ç¡«ƒ­mU÷‚,Á^UGÛ ];Œýï“#©¸ª•áOÖtw¬ êH'¤n&2€;Ònަ4ˆAX ÞG¦ûL‡²턳ýÂ==(îëi»¦•“-mìwÂNô2HR÷@÷;*×wT¤Ócu¢Ï]¸«µ+^zww7Ö&Ãìøw°Â X#õæhÆ#bˆ7å:=VG-mWƻʒ ë;j®Oûm56ö¥êž†•K+«*êxô$­Ny†ÍÍÍ+7ÀÂrdwPS Ø#íæhJ}C‚]ø¼g? άtTÝÓÌT IDATÎ…Ó3¥I¥á'K—pcqÜAư o°@¼‡ÒCU‹-=95"t:˜Ú—pEÐP¸§ÅŽŽÝЧÇêŒõ?à&I;ÕJÍ4°8œ7°<,på.¼Ý¨h{P´QÑ~±ª½uTÐúN]Ç• UöÃû‹UíM+Qj? Néºy¼¤bH¬ïÔƒ34I 2ë"ápC±ãÜÁyãkÈÃW~dJµ¦šµ©÷ªÖljêÝãO¤æô'šï¹à6J•wÐãØ#/éuŠÏÇÂbˆy:V &j4w!ìAs4,@à€l‘qÜA ؃ñ 8 S4GîàÊÑ€EXxƒ-v|€;hެÁà`d‹T+àš£{Ðs 8 [dw0Qì‘r Os4â p@¶˜ˆî ãØƒã',@à€LÑ ¸#õæh&*@|dìad‹àŽ´K#ôØhކ -š£wèöàp°²ÅDp>`Æ#,@à€l±ãÜA ؃æhXÀù]øîî®éMÀÒn¶$Õ ,5Õ€E8Ë,àüGfsssì{ Ë-"ã°œâ󡦰g9ƒ (UB¶(}ÜAi`yX€ÀÙb"¸ƒÒÀôÂÈ;>Àú€=ÈØÃÈÍÑ€;hŽ,ÂÂ,@à€l±ãÜAM5` š£ad‹T+à}À)GyÄAà€l1ÜA ؃ž#X€ÀÙb"8#Õ‡¾8âIpü„Ø#S©7G÷=ù9R­ÀB¤9Qa’$CÆ p@¶8/<àŽÇ+A>LêÍÑ?²E&àŽ4Ç+cH&íæh‚yÄ@à€l‘jÜA©`z`d‹àŒT›£ òdXxƒ©´¯DKªX 2€=(õ…-2€;hެAs4l@à€lå$ùáWX1‡Œ`š£açwã»»»¦7óLFÒøô1'͉ A> {XÀùÌæææØ÷H3p`2,Lª¥ŒU š£aJ•¹4¤½ž'?OªXˆ4'*¬nÉq€=.*¸!űJ=5LÚg%äø‰8=ê¦7Ð Ø#åŒÁ<â p@ö˜Œn ÈìA©,@à€ì1œjs4“ /üê§ô|?2—æd„æh`ò»±‡aÈÍÑ€ÒlŽ&ÈKµAšã'b p@ö8Å#à2€]æa²GÆpc° Á< #p@öØñNHµ,‚ì Á< #p@æhŽÁ$°KZc²¯ÑYš€98 {d7¤8V òäRËrìDLȧ“Ü@ưKJc’@q8 {d7ävIëøÉ±18 {LF'pÎxÀ2i?9v"&d.Õæè¾'?GºXJ•»q€aÈ€Ü@s4`•ÔÞ“óS®ÝÝ]Ó›€y¥¹ŠÙá/°(d»Ð Ü677Ǿ'p©VÀ d»pü„a¬Õ"{4wNH³‰‰ ŽŸ0ŒÀ™KëL-4F Fư Fà€ì±b¸!Å} ¹Ô²€?²—Öd„`±¸X#`—”Æ$<â"p@öÒšŒ°b,kìBƆ8 {d'Ð X†ã' #p@æRkŽæ<ÔÀbÑ Ø…æhFà€ì±b¸æhÀ*4GÃ4dÀÔTö 9†8 {LDw!ìÁñ†8 siõ80ñ X„Œ= #p@öRZ1¡9È+œ€=0ŒÀÙ£ôp5Õ€5RkŽæø‰˜fÚjT¶tÐMéÛ U&Ÿ¯{ ­JE•JE•JCí”^ –âp€;XáìA î ÚŠ*•mµÒzµî¶¶'Ÿ­«ƒÇûZ«7Õl6Õ¬KÛ[J+N…È8î ¦°< »2p(Õšj6ë*_zo[a– ¢Æµi‚¶‡z°7ñ|Ýg:쵺~¿²ªbçX§³þpNjÍ–ìø€…ã¼ñ€EäaXÌÝxW[Û:ªî©¹^2  µ›5•®x¼êM­Új\¸Mw ÑïtÒ•J… Ôîîn¼M†=ò’^'R­@Èö ãÃâ}lºÏtØ)ëÑN8³/ÜӃ⾞¶kZ9ÙÒÆ~'|`QÕ½ÝýpCûku5/‹*NÕ‰~_¸«µ+^zssóÊM#°pÀ’¤ÏRx&"Àâ¥USÍYЀÄ8=2L‹8œ«£–¶+ãý eI…õ5×£?íêàHRg[cߨè¸ÞTmeUEG~¢#I«±6 N`ÅpÀœÎ†%˜v•UŸZšUÐúNS£X¢­Få‰V÷v´^‚.èÉÒ¤ÉÒ%Ü(LDwPS ؃ã' ‹w‡ÒCU‹-=‰œSµ{ЈwÊÖÂ==(vt<è†>=V§¸ª•+ÿ\Fs4àš£‹Èð+wãíFEó§nT´_¬jog]´¾S×qeC•ýðþbU{ëÓžé*Ás5*U$™Œu‘p¸ÁÒJµÒ ,À”ú°+?6¥ZSÍÚÔ{Uk65õîéϪڅ.é¸Ï'q8ÀÔTÖ 9¦Å+U’ FpÀò0ŒÀÙc"¸ƒÒÀ?a2G³%àJ#‹ÈÃ0d/­ JÑ ,¥…€=0ŒÀÙcÅp5Õ€589L#p@öX1ÜAM5`NgÃ=NÇ ¸ƒ !`yFà€Ì¥ÖÍŽX8š£‹ÈÃ0d/­æhj¦Åc¢؃Œ #p@öèqÜÁYÐkp:s˜Fà€ì±b¸ƒ@°< s>ÞÜÝÝ5½ ˜¥€;8™`ŽŸ0ÌùÍæææØ÷ö£9pã°@F©²Gs4à2€=(õ…aÈ+&€;¸à` š£a²Ç &àjª{Ð Ã=2€;(ìA ù´®DK°x4G!‡aÈÀ”ö ãÃ=VLwÐ Xƒ L#p@öX1ÜAưÍÑ0ŒÀÙ£T pGZãµ/Ž8@R,¼Á0vãÈÍÑ€;R¯LR€tPê Ã=2€;Ò¯ŒU d`²GÍ4àŽ&*dt¤•±'˜G\ÈÀiúŒU iåŒ`18 {dwPª؃…7Fà€Ì¥ujN',ÍÑ€EhކaÈ+&€;È8ö 9†8 {”*îHa¼RO ¤ƒæh˜æü´kww×ô& Žœ’_аxd{Ð Ü677Ǿ'pÄ`óV‚ç ã,=€Eèq€a”*Áˆ4¤iŽ2@ư=0ŒÀf¤±jÂŽX<®ã؃“‹À0˜Á*&à® X#µæhÞÌ`pA>`´š£)õEL0#+&ÀÂÑ X„R%Fà#hŽAư o0ˆÀfÐ ¸± Ø…R_Dà3XÅÜFs4ÙA 5idì æÌ`p«›€]æaÌ ã8ÕMÀ2,¼Á ‘Æ™Z87<2€]ÒXxë‹ bác3È8nà .€]’ó;‘Ì pÜBÆzj =‰Ë ä‘Ì FpÀ. ŸòH‚ÀfqœJs4cHOÒã'< p€4GŽ 9°KÒÀñˆœ9wwwMoâ ã¸R%À.IƒyÆ#pþ£³¹¹9ö=„#èqÜ@s4`•Äåƒ,º!J•`FÒULÎA dƒŒ`š£aS/˜AªpBýH¬p)¢98Àˆ¤©VVL€ŒqìÂà`Ì଀8«`20ˆÀfPª¸!…Œ§NÒCs4L"p€d7qì’´9š@ 8À 2€¸r4`Þ`Œ 9pÍÑ€]hކA0ƒŒàJ•»Ð ƒ`©VÀ9]Œ‰šj =‰¯­Âñ 8À VLwPØ#áñ“@I8À &"€37Hèé!cƒ`ÍÑ€Cô{Ð#ƒfÚjT¶tÐMáÕÚ U*•àkë@çìhkðóJCí^ –cǸƒNÀŒGtåԫݨh»%IEU“¾R»¡Ê¶To6U»£«ƒÇûZ«7µS ·u ½u’¾&ìÅŽpG œêçtWJÜ͸2ãPª5ÕlÖU¾ôÞ¶Ã,AE+Ó]Óa§¬G;ál¿pOŠûzÚ®iådKûðEU÷v´~z¬Ž¤êMí–-5t¿YS)¼o¨pWkW¼ôîîn¬M†]ü¼/ïÀ)\Ž@H =G0ˆÀfjÜA XÃÏùòú” ˜ÁDp>`š£aÌà6€3¯pèé!‡A0"éYZX12ÄD°{Dà3Øñî 4°< "p€ìøwèÖ t&8À &"€;ô{$==2@$@à3˜ˆÎ`…°'A0"éD„ Cú€=ÈØÃ ˜ÁDpÍÑ€=8~ ˜ÁŠ à&*€5(„IÎïÊwwwMoâ Fp>`¤ÍÑ=Oý|?µÍÁ›Åù©×æææØ÷ŽHº‚ÉDÈLÒ 62^Èà J•`ÍÑ€CÈö`á 8À j¦wÐ ؃@8À R­€;ôkÐ “`Àú€=RhŽöódÌ`"8#qs4>ŽŸ0ˆÀF$nŽfÅÈÀdìaÌ଀;’–FÐ ¤‡@8À Î ¸ƒñ X#ié {$Aà3È8î`¼ö ãƒ`;>À‰z’ú’¼ð @r?aŒ Õ 8$IÆI .š£aÌ`ÅpG‚ñJ¤Œã' "p€¬˜îH2Qa’¤ŠŒ=L"p€¬˜î T °ÇODà38½#àŒDÍÑŒU ]dìaŒHœjå‚R@vÈ8ö ボ9wwwMoâ 㸃æhÀ0Èù©×æææØ÷ŽÈIòï8‰v|@vÈ8Ö 9&Qªs8S à†$c•ì .20ˆÀæ$YÅd2d&Ñ '“ ]4Gà “äL-4G"ãØƒŒ "p€9LF7$Xá$ÈÒ•´Çã'’ p€94\n  °GÂŒÁ<’ p€9d70V{Pªƒ`À 4G‰žÎ<‚y$@àchŽAư åƒ0„Àæp:VÀ 4Gváø C`+&€È8V!cS`+&€èq,Ãñ†8À2€«€]“0„ÀÆ$Jµö<ùyR­@&XÝì7p6\?o6˜ÃéX7$XݤžX€¸ÇOy$Dàsh¸Ü@ưJìŒ=‹nHˆÀæqœ¤¬± ,@Ìã'e¾HŠÀæÐܸì `—¸c’c'r~w¾»»kzS’S<²jdˆì `z`ˆóŸÍÍͱï $BÆpÍÑ€]È8ÀJ•`N’ÓÉùâÓ d…æhÀ*qûŽÈÖ#)¦^0'îd„ S4G–áø C`NÜŒ+˜@¶È8v¡T †8À˜¸ÍÑÔL£ ° ÍÑ0„ÀæqÜ ã@M5°d`Ì¡FpÀ*±3öòHˆÀæ°b8!É5W¯Àpü„!0&öd„R% [\9° ¥¾0„ÀæÄÜñÑ dŒR%À.”ú˜Ê à/üêÇø¯ÔTé£T †8ÀVLw0Q¬As4L!p€9dgГX„@†8À˜Øv|@ö˜¨öàp0d†À¡­FeKÝ„¯Ô=ÐV¥¢J¥¢ÊäóÝ×P;áKÁq›£IµÙc¢؃@†\8´U*Ûj%~™¶ûZ«7Õl6µW•ö7BWG÷5ëÒöÖ’Æ)p=€;8 ` JaÊ•C©ÖT³YWùÒ{Ûj ³5®MµºÜ*Ü{ âàÇÝg:ìŒîÓʪŠcÎø Àa¬˜î ÐìA CbÆ]lm먺§æz!(5Úh¨Ý¬©téãKº_ÞÖöFCw›5­<;T§ü(òØ5Ý-D¤“®T*\x"íîîÆÛd؇æhÀ~Î&šsÒÁxÒÇ ‰·;ï>Óa§¬G;á̾pOŠûzÚ®iådKûðEU÷v´^J÷ƒ¼ÅÓJE-Iåz6œ«}îÂ]­]ñÒ›››Wn…;hŽBư=G0$ÞÇçôXµ´]ï~(K*¬ï¨¹>ñøî¶¶‚ ¢VS­ÝPe{K«{;Z_YUQǑǞèHÒj¬ ƒSò’^ÏÿßhŽ C؃Œ I°;/«>µ4iÂé±:ZÓ£AéQé¾ÊjéøTÒŠt±4i²t 7Ò’¤Ïbü?v|@ö¨©¬As4L‰w‡ÒCU‹-=‰œSµ{И~ÊÖ•UÕÒÓAuû©Z*ë~Ia™S'"¤ È(®jeÊSáap¥€=äaÈ•»óv£¢íA5ÒFEûŪövÖUPAë;uW6TÙï/Vµ7Y¢4PX×NýX•íJxj× ÷!ÈVÏÕ¨TT‘d2ÖEÂá @Í4àŒAsôܯ@úäaÈ•ŸR­©fm꽪5›šz÷Å'Ssê“Íù\¸üœ¯\?FÒ‹‰=}Àô8Àx¥J@bNDhŽ  ´°ã†8ÀVLwÄ ô©©RÇéÌa ÌaÅpã°ÍÑ0„ÀæP3 8ƒNÀ"4GÃ÷,-ô8qìA©/ !p€9dw0QìAƆ8ÀV0wÐ XƒëªÀ˜CÆp>`¸ÍÑ”ú"!˜Céà š£‹°ðC` ÍÑ€CÈ8ö`á †8ÀVLw0^{Ð CœÿøìîîšÞÄÅ &àjªkÐ SœŸ~mnnŽ}O áV0w0^{Ä=ËYÏS?ßO}sðæ T æqœÁ '`z`Œ‰{–Î @M5`Þ`ÌaǸƒNÀ”˜ÎpÍÑ€5(„)0‡LÀú€=4GÈ# ˜C©àŒØ+œŒW },¼ÁCs4à2€=8Y !p€9dw0^{q€!0‡LÀqkªÉ©£t¦8ÀV0w°Â ؃@†8À2€3âö$1^ ‡!0&nª•ÓÉÄ™¨0IƒæhBàsX1Üg¢Â$X ŽŸ0„ÀæPª¸#ÆD…zj`1b—Ì#!˜Cs4àŽ8㕱 ,FÌã'Á<’"p€9dgÄZád¬‹Á !p€14G¡9° o0Äù¸sww×ô& .v|€;hŽìAƆ8ÿñÙÜÜûž@Â!ìøwÐ XƒëªÀJ•`å€È8ö 9†8À,À ±z’«Àbp8Bà£âLFhŽ ãØƒ ÀÁ˜g2ÂŽÈÙAÀô˜ÅE¥7Äò©§ƒæh˜Bà³È8n Èì·9šR_$D೘ŒN 9°×A‚!0*Nº•òÀš£»ä$õçü?HˆÀf‘qÜ@s4`‚y@೘ŒnˆÓM=5°0”˜Es4à‚|À.1Æ$Á<’"p€Y”*NˆuúG`qXxƒ0ŠæhÀù€]ȘÅdp«›€]擌G¤€Àf1Ü@=5`•¹›£9v"0‹ŒàzË̹ðF 48?ýÚÝÝ5½ H‚Œà‚|À.óŽIŽHó»ôÍÍͱï $Üç<Ô¬šЈ ØeÞ1I Pª³˜Œnà*µ€]hކ0‹R%À qš£9u2°0sgì 䑘E&àš£ËÌÛM 8À,R­€hŽì p€Qó¦ZiŒ ¡¬°Ë¼c’@) p€Yd7qìBÆ8À,N'¸!FÆšj`qhކ 0‹À q®¹ÂDX š£aÌ¢Fp=€]ÈØÃ5ws4+&€\¬° =‚0€Àf±ãÜ0ˆïç‰ÛYᇌ p€YìøwPS Xcî‹2²ð†8À,2€;ô{Ì9 䑆0ph«QÙÒA7§œò\ÝmU*ªT*ªTjÏzn6&"€3Xá,ÂñäÚŠ*•mµRx²éÏÕÕÁã}­Õ›j6›jÖ¥í­u¯½7ݼVLƒ˜¨ö cr¥ZSÍf]åKïn«1ÌTÔ¸&0õ¹ºÏtØ)ju%ü~eUÅαN¯»7ÀLT{pü„Wô8tu°µ­£ê^ Ø«êh;IÑšî¢ßé¤;Ë}¸Ñ¸àjªkP:¦ÇžÝg:ì”õh'œÑîéAq_OÛ5­œlic¿>°¨êÞŽÖ ÓžHÒé±:Ñï wµ6Ë}—ØÝݽâ^issóÚÇÀ"ï‡ÿÎó'û•9 ÿž¤ý9¿"é31^Eø¶¤ïk¾ñuÎǦ§ÇꨥíÊxÇBYRa}GÍõ9^eeUE¾ïžèHÒêu÷]bsss¦—œõqYØÝݵj{$¶iVlÓõlÛ‰mšÛ4Û¶É¶í‘Ø¦Y±M׳m{$¶)êšj·²êÍšJ©¼TP~Tf&Âò¤î÷°Âô‡ÒCU‹-=‰œWµ{ЈwÊÖÂ==(vt<èx>=V§¸ª•ëî`ïÿÏþE;ZT¬jog]Á‚[èéUÇݨh¶çšÌd\ußülL)ÁM|–>KH Ÿ%¤‰Ïæ±Tª5Õ¬M»»¤Z³©©wO>:ösÍ÷:²uÅéX @ààZÞóçϹ:€+‘qp-×"pp-×"pp­%Óšî¶6öÕ‘”ÆÕ§ñ¦š¸ZºŠªîíh}ÚåÒYµªlñyB2í†*ÛáªXÕÞκø8ancs&Žs˜Ý º:x¼¯µzS;%;Ö­v¨˜_÷DG庚µ ììliãñîñYBÝmm·$Mo \Ön¨²-Õ›MÆ@[Ñœ©{°¥†î²àŠÜŒR¥î3vŠZ] ¿_YU±s¬S£'ÖµSí: w×$>KH¤­ÆÆ¡ìÕU6½)pXWOZ*×™Ü! £9SáÞ–40³›8H’ÖtwlIøH']SÛ‚›¢{r$WµrýCKtu°µ-Õ)@BáÙÑ“Š*•à«Ñ6½QpSI÷Ëío4Ô–Ô}v¨Nù>)fr3J•NÃ:½Pá®Ö m nîïwT®ïP¦„XÚ í¯ÕÕ䈌¤Âã\õƒ¦v Ë–ºOy b(ÝòŸO+µ$•ë|Š0››‘qXYO³uOtdhSpS5 ªî©Æþ±tur$©µ®o«¥Žö7X)F\‘Ìzé¾Êjé)Ÿ%Ì«{ ­í#UÖTk6Õ¬—ÕÚÞÒU˜ÁÍÈ8H”&•†KÓ¥KÀ¬‚3+U÷´C} b+h}§©õá÷m5*”^q“IDATO´ÊÙKÇʪŠ:œ8ÎEzû€Y«£5=šBO%Òë¸ÎÍÈ8îéA±|è¥`PP—ŽXX(<Î> –…»OÔb q¬¬ªÍVµŸª¥²î“]Ç ¼çÏŸû¦7"ÑóïsÄ=GzD‘@‰‘q@RÑãçÞGcÇ:>K˜Ý ,Êÿ9¶Þ¬Å96µIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/mapdemo.png000066400000000000000000000464011465265754400206230ustar00rootroot00000000000000‰PNG  IHDRFü4d`â pHYsÄÄ•+ IDATxœíÝQnIׯñ빟û8ŽØ„#E‘؃5Hsá=ØŒd‰5X²ì=ø"#ïÁR4R¼ ‡\g¼T㢨Suª»¡ÿúæ{Ý]]tcêáT½ß¿/ò¿®;°/FÁÀù£ëh×óýPnž–ÿî_ÜÉíùI·€B0ÂÑ™?^ËÕÃlu»^8˜Ëüù_ùòõ‡Ìf¯mI¿/ýŸåó§r~ööGxle0–éåÙÆz~8K­·+ýYéK¿/òáï䯳y{g@ˆ`„#3—ïßfk÷̾}—ùùyÁ ÷,÷×7ò4‹,šÍd6›Éìé›ÈÝ­œŸÌåñúJVY¡ã°sOÿÉó噬?âgù/BöÑLf3‘ÙÍ•<õrñÏ¥P`[Z Á[~^§÷õÆÿưs\c„ã2ÿ.A.™}“ïssò¸Š2¾›Êtºüïn|!ƒ~;]=OòõqýàοÊ^ç¢þ…ܹó9½¿žÏÙ“<\ÝËs—}Ð9*F8*óïßd¶qïL¾}ŸË¹¥«ÁøRü³“³s¹<û(Ÿîÿ•ŸË{äüv*çͺ}ÐfÿÊóù¥«=Ë¿þTÛ¾;9“ËÛ±ÈðÆ…¹'¹¹ÿDEb¯ð7†Ý"ሬO£ yzZwåÓiK?~ÎE6®%:‘³ËËÕôQübçõòÿâNþyÿ¯|ùú$ËK–ú2ÿ#—g'"óg¹ÿòZ¥êÆrë Ìaûÿ¼ÿW¾Ü<¹Ø—þÅßòÏù™í±ÍŸåñ߯òíiö û}|þG.kÏ!=ÉÏ—rv&"Ïÿe«EóÇ{ùò-¸vKúÒïÏÿµvíV«]u&]ôå©:Yáô é˜µw¾—ÍÍåùß/òÕß§ô¥?ø,ÿuî=% û½Ø<·óçGù÷ë7yŠ\?÷ÏåGùîO]‰ˆ<ÝÈpub2žþ%?Õýd<½”w¦óL“E÷u)’ú@Á–Þ‚ŽÇZµg Ÿ.?‰<=-êÙ7ù>?/¾~döp%Ñ~ >’¿>žÉI×ÍÙÕ\­ß#O7WòcЗYp1ÓìéF®OãŒÇÚ™=ÜÈՋẋù£\_=lVÔf3yš]É“¥ ß` w|Ÿ¾>Ê_gåû×jôÈ@ž¢×iýz©¢àqÌf2»y’—ñTbÝhôØ3NÞY/èÕUÏäßÇ×`ÚÿüINÕíú2¸¯]ç³þP[~ìïN¥¿qgûÇ,¾çòøåuŸýAuœîd¼Ú鬸Z¨UûóGùº E}¹ð¯Ÿ[]oµœºZ;ƃñj½éôRlyÆrž›ìkËÇ oÁG"˜Fût&"'òñsuŸõïìr*wƒÈ@Y5ô$W×E¢ÿ¢íÒ¿X]Ü=6\ÕÝ?ý¸š6:9ÿûu€–™¼üJlèOqõ/ä¯j~áäì5ÜXãç쯋Õqzz¨©ü}þNßæòV.ý鯓39¥Ñ@íÇ^WƒcVû|?ÿëM+ äïËê8¬ëeUksóx8ðüzñª+3ùöýYžçËþŸœœÉåm¼º’óºß×0S÷<›mûXáÍb* Ç!œFso3O>~–þƒ»ö `:íäüRnÏ/e>–ïßÿ“—oá´ÐLþ}–së\Àé»Õ‹öÇÏ}y¨æ>¼_]qöéƒÄ¿#@ã*bn“øõPKóŸ?¼®?ÈÕð!ºÞìå—HÉ;'åsÿa}ÊdðIÎDÜÅéÑÞÈüù»üûß7ùñC‚kP¬ìÝd-0¸^³ Ö<ßkû쟮·zò^ü ¿åc:ãí÷ìÓ@ä)˜3;û´œâ\=¬¹©V¿/ƒ¿ÝuP¥Vû]{4-œgÝÖÞ,‚ŽÂú§Ñžäf½ˆÂþé4çääLÎÏÏDÎ/årþ,÷W7ûýQô;‘ó¿ò°ºh¥/‰¨µ¹ÄwDuhm­‚µžìØ™\ÞåôË××°V™-¯ƒ’6®ýÙÓó XŒp6¿ÔQ“ýtÚó½\ÿ÷Iþ¹Œ|Òéd½Jѽ_ò2{½õá½øÖ..î_ÈÝmù'ôT~¢ÿY>&ž?~]ûލ‹»¿äãɉœ<ßË0þÕÔ ûcÏ ¾bÀU¼¤è˜µsUÊÚyš½Hª~·|Ì5ö{r&ç·gr."óù\~}ÿW¾><­žÖOÿ=ËåY³dÔÞyÖíäXáMâ#¾µi´õ J§Ó©Lý  _ö8{º‘«ëk¹ž{/¥sy~üâ]ÓPUFº2—ç{¿zõ:}uöéõšœÙƒ|¹^&æógy¼¿–ëZW1ŸÉeu¬KWÿt9XJX±É)|ìɦ\eÃkk\•K¶zÌgy×$=É×ÇçÕEÙ­<æç{¹¾¾÷®+:‘³ó¿Ä»Oú§‘ëÞþ“纳ô<[÷µíc…7‹ŠÞÚ4Z¬b±v]…q:ÍM+ÄßÛ.¿ï¤‹OôV_°ÑŸqî“Bgryw!?ܧ¬fO7rypý‹–:ªX—¯_·Sÿ±o4ßo ãü¶º8f'rþÏ…|«öùp#W‘Ç|qWø˜=³Ù“ÜĈˆH »'öÚõyâo³ü£ä£(<Ïé}]j[mýXám¢b„·>Öÿü1R±ð?E”ùtÚÙ¥ÜÝåb°üqÑ5ý¾ô2¾»íìKàúƒÁúO’ôrqwk»&ää\nïîd|1ˆ>¶ÁàBþN̓µáìRîÆÁ'þú_>•Öä±ë­J¿?‹ñÜÝ^F¾Ë³ƒcVísÐ>ùúü«ýô{÷I.Êc¹/ÁZ?"?ÞŽ)=Ïu÷µÍc…7«÷û÷ïE× ‹³öÛð–;€nP1pFÁÀ9ªkŒþüóÏ®»XÇ£g¹–ýæÀ¶tö=F¯Ÿ6éË–¿:À¤³ŠÑÙåT¦Ó±ð£Æ`_pñ5€s? 2™L²ëŒF£ô³ƒF¹Ðc N9L¥8#g>®/"WCyè_ÈÝíyä—Ñv£³`tv9•éeW{ØÄT€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àüÑuê˜L&]w¡ƒ F£Ñhí6A ´©4‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€óGרc2™tÝp„2F£µÛ%Ц҂€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÎ]w ŽÉdÒuÀ:È`4Ön”@˜JpFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€óG«­ÍåúêAf""2ñôRÎLëöåâîVÎOZí @‘+Fsyüò ÆS™N§2‹Ü\?Ê<ºî³Ü_½®{w!òpu/Ïíu X{Áhþ]¾ÍúrúÎÝ~w*ýÙ‹üR7x]÷äãgé·Ö€zZ¾Æèƒ¼_›û!?£%£3ù4˜­ªDóïßd6ø¤O»ì@{×ýzq× 9'ïåCbõ³Oùo8”'ŒõX4™LZè @Z{ÁèÝ©ôååõöü§ü‘ÓØºóG¹¾ù±¼àúòR.Ÿïexs-§ÊØ£Ñ(¹k‚hCËSiáÔY8µæüz‘™¿ìì“ d&/úI[×^0:ù(Ÿû^¸ùõ"³þ©,¯¯žËãõP†÷îsgïN¥/Oò_õ1´çÿäIò‰‹Œ@‡Zü£9¿Ëýp(CY~ѹD¿šèä\nÇ/2¼Y^_T}¹t©÷û÷ïE×hj2™Èh4’?ÿü³ë®€ÆO‚8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀù£ëÔ1™Lºî8BŒF£ÑÚm‚hSiÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#ç®;PÇd2éº àd0Fk· J  L¥8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àüÑuê˜L&]w¡ƒ F£Ñhí6A©½Þò‹nû@W2¡}½žÈBzîßËdD@¡©Â}…ç0€R\c„ U@Iî«ÿ *FX«­Ý¿ƒ}ó†þmÙe\YHOz½U#EFÅb9}†£…¬dÛ_vý¾þØÆÈC«‹lå9”9½-íÀq" p¨ó¹ Ga~SáøÓÆ`³ëëЂDþÒêú¸àˆTÏãm|ǃ`t©°ºÓ¹mÂÅ–ÁæÐ‚H›ƒæ.{µ·2ØoÓ๿žôdóù øoå˜(C0:R»$ÚþÞòà³ËÇÞ olyçUó]O…ÖÙÿZßùŠ ‚Ñ‘ëêõ¾çýï6ûÐë嵦ӌ‡`!Þ÷P¹‹Ž·yàw{ubYp}\U-ÊU3ýcµ¼ýz¼Žô)Àˆ`t$z²¦ªû7íâ…Û×&m„‰‡ž¶¦›ÚU¨«åY‡³Çο>n±¹¾^ÍÜü°¿þ[D0:« L#!ún9Ü~+½ÒÛoëBصP£¥}©z´AûÊËúuŽÝ.™zg|©TUbo*öûhÁèX¦‹Dìïús×iì2(µNJ¦Ž±" }åBì܆!ê-}ßzü*«Áv,’€·ƒ`´ÇÂé¢m \m\к ©‡»9]²ŠîÿU!üŽ1 ùÕŸp ¿—jsÛ×õŽ]Xe­¦à¢w¦Ú€·`´§Rïêw=´‹ë”b?`›z—®}ï’¿Ýjû*E¦ý€ÛÏ!Qƒ³«8n*M9îÞ&G)¿s·ßJö"¿D"Áh._Ÿd0&íƒ} KÖêƒe0µgY_­Dª/¹O%õ"ÛøöaPÔtë53¹@P'(ÅÖ‹µµ¯rÏÓØ}¹ ÝìNË×}÷k)è‡üœ‹œ…ÉÈ…(ù:”áÍò®Áx*—JJšL&ívYû0XYÕÜ`»¡]Äž­V-ôA_­°x×K…ÁÁ@÷)$Y>e¹N©´‚ç/߇ç_SÖ©6mÝ}xNoQ{Áè׋»¶È9y/2ë^ü3•ÛqÓj÷òI¹&i4%wMpÚ®«Ô šªfÄ>†œ°ýÒjUÉÀ–›®ëz@lúX«u,S†%×(òõJuBRîù `;þ×ZKïN¥ïßžÿ”É ¼êÒÙ'È“ü÷ÜZo°#‹È½È»Ú·ö»ž¸ÿS×Õ“(÷¥¶ û¤«µmܽÞvaŠöøcë„·ÃAÝúrÏ¥Òõ»8n9–ã®çÛ÷Ǻö‚‘ˆTSg¯Â©5çÝ©ô7ÖíËé»Èº88–°´«}Çöå%€µ©Á,Ä C’«pUÿU w9ZRìqå¦á,û#Ëúû–ê<®Òm”i/|”Ïý™¼ür·½È¬*ˬ3—Çë¡ ïŸ×Öýö}™Œæ_åI Q8 V•âÅŒõ94-¤¤‚’6èKdÝh"ë÷"ËÂíbÛìZn0Ö–·”ë´ÑeP·ªþRUÌ}y\À!jñâë9¿Ëýp(CY~‘ö½DËu_†W2|éËÅ]æ;pTb@«D´²¿ Um‡•¿±Ðë[ZbmmôGÛÆU‹BÖ>ïJ¬ÿa5òZ[‡RE*f‹Ý×EPÒÖÛEذ`kÅ.lKk86#¼á§½R—äÀì]´žôd±ºÈòé j™)()ŸRËU êT‘Âû·%rÚHẕ®‚’¥­Òö¬ûkú©¶Ôz±uc@0›TM-ñ÷lÕ§ BAõ¦Z/w ‘9(¹†£^d»žäƒOjÿáý»ºV&5ÍVz’e•} J±öJÛÌí§ÉT›¶Õ$#‚¶.ö ®Nú!¯£ú|®2±¾ý¦ê±Ä¦Úü‡û) J=¯ï±/¨Œõ¹¤ŠdY›§,5(×¹6¦î”Wi0i3(ië·–JC’åüwYy¶…`„­ÚøWÃK¦¤Ú Q«SMá¢tð·Õn—T‘’ƒ¬×÷0ˆ¥úî3"RýÖîÛ†]M³¥öí+ ;m%m›¶Ûµ<'›„¤Ô6À>"a§ü)¬˜ •X·Öþ#m…/èM¦gª6´ûbU¤X;Ñv•);MjÝTె¤]$ÿ¾Ò€[§´•®ƒ’¥ÝÒ¶-U·ÒÊSn8d#tbƒ«ºo·óTH²„MjPÐÂJŠ•Šb)u;4,}õ­-–i¶’ŠGÓ~BPеmmß*ëOªI8$#lÕb!kß⼺Ïý;Uñ¨ô¤½O¿"•ªFÅÂBS4ZÐXÝ© YÚõÛ+©*ùëç¼} I¥×!¥¶m«Oáþµåmm›Óæ´`[SmÚrªIØ7#leúªºÏ¿ÐX"ëĶ· §érÓzþ~’¡ àš¨è`RU°dý‹"cû²¶]mÛdêÍ¿o¹OÛnÛ]›Ólm÷o_ƒ’¥}mÛ IM·¶`„έ VîÆªÊ´X_¯ÉWjkpM”ÿ¸«6ü°¦:SzaH ×ËíËr}R.ˆm3„ÔfÛUˆ«ìsPŠí#\¯¤:—ZÇÒ'¦ÜЂöÆÚ‹âf.R_´K·ð#ûa)º#E~?­/â©6ÖöYë“&uSa&68¥®Eòû«µ»‹*’uš­É ^Ç>%­ m?–pÙ$€2冮Œ°—RS9þýÖëcDDýÈ~ÛƒcI¨®ÁŠ…£X´ªOIXÊš”Ô”bê¾ÜvmÙçi¶˜ºÓ[–mÛêI·1Õ–k£´ ç ƒÑd2éº Øí×ònR}‘N¼Š–¼ÃÕBMà¿SøK±vrF[ÇúŽ>×~ÈRE ÷Ûo[J¦ÙÚ¬r4UR±Ém»« ÛWx_ÛU:ªIئƒ F£Ñhí6AéøÕ™ñ—më‚ÐðSwÖ/`lÔÂkœÂ•SW K–*’%0Å*|Ö¾l;$Õ½)¶í.Õ <» JZ[Ús6¶]ÓsßFE ¨d0ÂÛfвÕo%œhû´|R¸¬ »ð[éêõÝ~l;kÀ‰¨X8ÙuH²T÷išMsAIÛ_îz%‘í…¤ºíáí!¡mü쇵Š­x(¡"וÒðTÅg£O‰vÂ6µ‹¶µP˜Ø-a©äZ®\µ,¶ý.CR›Ólû0ÐSP ×kzœ™rC#ìÜ6~öÃ2ðk¡h­o‘írûÔö›[7¶¿^Õ¿šÇC 0¥aL K©êPjŠ*EÛ>ÖFÛÄ:Ͷ­) m8Ä ¤ýMÄîkÒªI° ¡s–/Z´·µòŠ,K©’êV‘D^«h«/zt+GƒËâõÚ¦…ô¤úêªÝX?rU¤TŸcËÂý”TbRç,\Þö –›fÛ÷ëR!(åŽcêyÖÆ>Ûl‡`„ÎõÜèßæÀ’œ.‰„ŠØöu^ŒK¦Úâƒno­_©êŽÿõ~¨ û U‹RáIës¬ÿþvUû©A´4$UÛïbºM{L–´Ól1û”,ÏÅÔs¸é~ÃvÛh‡…`„Ë}’k[×”¬µ„ŠÔÀž›–Êí7·VA "D I%Žo;$YÚÏ gl{kH ×-qŒÓl1û”R?¹êeÓ>PMzÛFPõ‚Wš6¦ºRmÅ^Û|±¾ë_¬/³^ßPÚ¿:S.U%MÛ®´2‘ë{ªMÂ`.4iû×¶Ý.=%¬ÓlZ@J­³r'¶Že»¶ÿvýû-ÓnMúPço‡‹`„¤¶/’Žéõ6ƒ’6è´=e¢UÂ}UË´ý—T“Ô6RI³ ô¥ÇÄ:­•{¬¹ý¥Î™´”ësî\ÅÖ+}þä¦ÙJª‚‡4 Æúj Û J¹Ài çuûÁ”Ûñ#!Jû8ø¶ö£…®Ô€ÒFHJ jZ…%7ZCRô±,â/òÖêJÝ”;Ó¥×ÛÄö[?5E¢½ó·ôÙòÌm2¨YŸ‡>ͦ©z¶”rÇÓr¼›„%¦ÜŽÁEÚ|Ç뇯Ü'Ób©Í”Ôr)Õ¯jY­”èCL“êZÝ*Ré¾JªHÚcNõÏôbÛÕyY«HZ@J­sHºJÖ¿ŸØòº±’~”´îŒUòqðå:eb)ËÇösƒ¨¿¬N¿bû¨îK$Kå©Z^'$å§(÷7 IÖ*Rª_Ú¾Rë[«HÖ>•VÂ>øm¥¤Â{*üXÖ94]¥:!)\c}±ô‡jÒá"A•û8¸6Õᯓj;üVÿcûuoKxhú.46P—T±J_,-³¤Âãß×VÉu*y©ª­ä·Ñ4\5yn¦Ú9Æ€Té*(åBõüZªJ¹>µùæ ÛE0BVnzK$= …ëúíVá(Y‘ê­ocíCl¿Ö$íy©éž:U,kˆKµU·ÂÓVI ÈMBR“©¶”Ò)6KªNàÓîÓöslƒgA©Î›)kÐÑú¤­×Ö›7lÁ­È½˜«Á  GZE*˜r+½I['Ù×pŸÞÒ\%C›*+ Iáz¥mYCRé \FšLw¶YEŠU‰,Ç*Ü®©Ã’i6Kˆ:» J¹s×ä¸[ÂRê-ïúSËSÇ0õüdšMWú«¤“zNlãØ[ƒ_› ºÿ鋞å~8”ëÇùîzƒ£¨z²$²Îê…`!âÿ¸ƒ±L/϶Ü%ªð#øþEË–wñê ã½Íï+ZòÚûhïØ¬Õ€ð¾Üþ"ë×l¹;SUKßb/ž–ªQi%)õ.=\/Ö~ª’*JI)ºC©ÊExŒ4–КZ/¶Î[¯"¤ÎK¸Ü²nêyh}Ž6kK{³@5©™²©´§>¹÷/äîö\NÚïØÚC‘á´Ú&rÿ꾞Hø ±\H½H­í»üS -dX÷’€æ‡ÍXÔúö'vì{‘ÕL¢6Ø6 I~[±çD›!) Ã6µ¾hËbûMõÑJ=GJÛ%ý-k;(…ˬëm²„%Ësëz¿ÿ6§g¹ÞÈ“º| ãé¥ìª–4™L6îFòçŸî¨hÂò.¸ç­^·äç‘ÖvØ^l?Ñå/6·³Ê ‚¹Ê‚Ÿ —ë,6¾W)Ö~Q?Ç"Ö¿ê¾Ü;ÖTŸ¬ÇËòÂ^²?Kp°„¥ÇßR5+nÄ𜥊”W Rá5¶m—!5÷œ[[×[y?~(LÁèù~(7z*rvŽ|“É„`t€L%Xª;ÉÁ-Ón“D8µ¾„Ûø·µ` k‡¤Ì>B%!)¶ÚD;©ûcí¤ö— â¢ÓÜ6m‡¤èz± j’×BµRµ}ÃcžY“ ”Ún*yÖ7Go5%¦Ò2U¢ÁXÆrcL@\¬J–ÓG¯SI "ñ˜ä4ÈB6~’¤Ú&6õTòú U´¾ø{cp úé2/l'¶ï\ßÍUŠÈú©)ƒX›¥S_±msÓ^– ˜›êÈ?óíXŽjÀ´µê;¶ü[½ëO}ÿÖ> Îû.WEô×)9—¹çß.¤ª®(½Æhãâë©L/—ÿz¾¿o¯WxS´P°ðnô‹^‚ísƒ®V%XûVëÅæzÚla~ú6«~¿dj' ½ö«¯EФK«H¥¡År¬š„$Ëq ÛKmS§’§m“°6¾Â"xׯý0ó> ·Æ&rA)ú'öçv#Œúwr{ž¿Äúìò²•áíJ .Ú”@lýØ‹ÌzÊ·©µ³¶½Ø$ƒ_°Ll]Véõ6ûo %ZµÇo+6ˆæÚÍM}•Vƒ$¸m­•¾K÷ÛÌ-Ï hÖŠQ´¶’ý ¥ž³©¿;¤åªJ–ŠR¸¼«¤ývå[”Fgr9î®'€cy¡N…ŠÔ‹L*à””ÃµûR’Á/²¯ß«ôdaü-UˆTMµ±ê׿&EÇ.Û'e¹5—B©ãØ´ŠTw C²ÏhJþ¦HõÕ JáóÆ_¾ësûíÊ·ˆo¾ÆÞ²Ëव“ªYCEjŸ1¹½hHJL‘¤B^ª_©*U®ïa–m´ ùwÝÀ’«nimçöi Æ¥U¤¦•¤hå.RQJMÇöW7øc“%(åÞ…·cçbu]Y 'ê­‡"‚@®[77è§Â¾r¸Ö¶¦Î»xm_ÚcH»Ø‹vÝ*˜¥±õsSÛ¾¤Š[fé[l±eá}¥U$­­ðþzìU¿:1³kEÉ_–}^û•dª=­ á XK̹)•ì;ïHÛ©}—†­]uªÄ]½ÊbmeËcPÄw‡ÿÑïm‡¤Õþ#·­ÇÓ2àǶ³V©Úª"UËrU$ÿÃåá2íþ\µ¡:çk÷/âÏ™°}R»,A)õ<Ó~ŸÍŒpš¤ð¶6¨”¤º/pÚ:ÑåÞ4IîÂñØý‹àÎe{ë/¬Õ;Î’w¶1–«âäÂFl]-°XÎkI•ª$”åúg©"…ÿÖú²‡¤õó^eíÒ &!©=¹¿»\Tû"ÊŒª3·ûâ5ÔÓ4 ÅîÛxWY–Ûwn:¥N›"úóÆ\­ Êî›í¤?Þ;&±~Zú–{‘·TWbÕ%kE'UEò——„¤mU‘b·k‡$¥Ê UÒ¬ýà%­}© -ã,´`Ô@8·+’<á¯åÖ‡]€¤m“,]GÚφïß±<6°7™ºPCR0 ®¾³("ö¢«UIÂ[BRI¥È6´õÃö-ýo£/ÖuëT‘¬ûÒÖ¿4ÔoCëgI‰—´íÙ8¶^ùõ.ªFMŒJ~7&5Ȅ땬2%©$…ÛäRÊ•D–5tlûÓ¯]òÛÑÚ—YªI–éžØ:±¶s¡'Ö¶¿¾å\äúb IÚ}Ö cQeHY¿joíõg¡W‰bU$K@Jõíâ:£vŒÚµÚòÕýÁíÕ‹Eb}^<ÚWòŽ;7h…÷‰rßÂûß’ÊUJé©ñÃèÏ«$¾Y<ÖOKñ÷«mëßàÔ '%•›ðþœ\¹@Q¾SUÊ’ÊPªß±7zÚs-¼m H’Yíˆ}0ƒjQ3#£°<>_×[×óX~›KkõÔ H%Ó$±ûJ*WZ{©öë 8þ·[«Qî²L}Å䎓¿}ªJ§…Ë>rAA š\`ËŒ°mU‘´¶µmRëjÔÚ&i»RÌ@9‚‘Qõîzí…s 2‹Í€…qýÍýmâù^_Ó€”ºß_»]w*$õ®=¶®UO´Åö¡Moùë¦ÂŽe?±c±­T§²”ú{·†¤’*RØ®µŠë[jëqŠÝO@ê¨=#…ùwcªwáÁÝê‹é"úÏüvÊ2þÊä*A±urƒ|õ¿¹#Ö¦¥–´É€Sªm¬¥p_%—°½T¨Ò*}Z¿,ƒ¿%xií¦B’¶MªŠö§n)×¾e]KP³$m= K£„’ßI­RRÒÚ¥²Ô®Ü‹½»,ËU‘,S3a›©>ZËÜýV¹ç›¶Ke(Ön*låÖÏõ)·V©j¼´vK«Z¹Ç’ª"ÅÚK©’,ÇÚrë] e´òÛ3‰e%a©L®ÌŸzl©æh©t ÄRÅЪ ¹}hû Û_Óóþg¡o—k«:>–ç­õïÁ,Âõrá¤´Š”Zž Xu¦ß´öJªHá:©çOIH/ [¼V¡k£Žå^R/ºM_œ-ûKR/Жð$Ê:Ú4Cé;|­–)¡pYj?¹ýV7bßœlÄÃþ¤óÜóßf¬¡4u¬R•’¿ÃX?SRÏ¥Ø:mU‘bëhÛ[Bz¸œi6ì3‚Ñž«[mŠm— Jö}Ìš¤Ø:Õ}Z@ ×͘Ôb­ÎXöÛ6Õv(WEÓ^kˆ·NÓ妿RÁ,%uü-Sm%Õ°.«Há~bû²¬Ã4Á耵š¬†ußÇ¢­€®— Hþº±Û¹A(·<µ¿m¾SÏ…˜Ò6bÁ*·¯Ü4‘¥J•ë[* æª„¥'lÓ:½e ()uCRøwÃ4öÑA£ÉdÒuö^“ÐTún¹n?EÓ€[/Ü&VI±NYú¡ ޱ门¾7Ú[ÈÚ§6Û8Ñ%©Òð’{^—Vd¬íhÛ7­ Än§ÂPuŸöXš„â’d9±>°KŒF£ÑÚm‚R™º¡©ë5‡ÀR'WÅѱܔ›6— ´ZH ÿ½Z· G }=ý’°Óô9štsJ+NÚc³T‘Rû. IÚ¾µP¢µÓ$|äBRiÿÃmrhÃA#lÏ.CSI»ûôâ— HÖE›Vˆ¤Üàœ»¾$[Éêym,Ò!i-,Öƒ[®"Qg`×úœjG«xiS:–0S²¿,Õ¿6+«MªH–}×Ù¯VÒª{á¶$” )z’ÿÙÒÛÇè«Ô€®“:¶–wÓ%ï¸-çÈ–µ€T:phÄÚfôX¸p´º¹Ð×µ ø¹ó™ÔKÏ£âRUœT{±6ÃðæoŸjG›îñ—¥Ž—ö8c•7 ÖÕú®c­”YBHØ~“Š”¿¯\Ÿ¬Ï¿Ôz@…`Q ¹k‹JË×¥ïÄÞênIU)¶,·miÖ aéCÉtMj©€d}w¼nhS[á¿cÕThiR©ñ×kúF$ Â㪽TU#Ö/KeT«ŒÄnk÷ÅÚÌ­£IU~{uBcŽåÃõsë-¼„¿éW§‚ÚDÓý¬v`t`JÞÑÖùƒh«ú´¯Œ–ãWZyÒÚ­¶­šbS0%ÇÔ:½ÓæùÎ ÚÚþ«zµ,˜’Ñ*VZµ*ÖŸT{á:±s– J±vÂû´PgiG[–º IÊôVرd˜scus¼«e‘O=jëÇîˆ}RRÝ6XÏÿM?íœl¬[…Æ=x%ë:XµÑ‡CC0:%Õ¥ÔúM÷gÙw¶¶­N*~çªlŸ MÉÁ#³™6ey÷\ç|k·£Õž` Ž b¹Pcy\±°£…®j¹V Y*Rmµ“ =© aNîù¶Ñß…íy†]í¯ú™Îª‚[íÊÒbóÍE¬Yí» DÇpáua«VÛüé.‚Ñ+ Lm?q­íícõ©NU)¶Ž¶^ê~K Û°T¤ÚH%}Ñxë ¬6ˆùmÇúï¯ :á>üe¹ÊÔ¾„$í±ÆÚ´T‘Â)&M.X¦ÖÕî_ %™ýçÖÉUõ´~­ž+^ ó§!5ÕuÕjão7|3Õò(A0zƒ¬ƒº¶n›¥úT·bTBK^Ð-ç,7@i)Õ—”XXËUm¬ƒhìþ°ÿ±6Ô«>¥–µ’Úh'þ$²ž¿®ˆlLmU•kˆLÝWWã–¿‡’×>´gÛÁJû´c]#ˆHù;¿]¾‰ÚÇꓵªÔFX²î/w¿ßŽy DÙwŽ6kU™ê›æcÛûmh}ŒÝ§UÔRÕ'­]Kà«nÂûrÕI­/ÖêT5µ• †¹ðiéO®ª0¸¥l¸ÏÔcëêbí·®iå° ÿkµµù£\‡2e8¼—gË6Ï÷2^Ëã¼Õž % å¿^ä¿®i}Íõ»­Ça=FmO-xåÞU[§#Âmê›ð1†÷WÿèÉBÖñ•å~¿ß)Ú:Úù‰mÛ‹ô#wÌbç=öXbÏXë¼ÉíÛº^ì¹mésøßFǃ…–¿]˹Ôþîüçàê£Äcڇ׼C•:¹×pq× .ÖþksʳÅ`4—Ç/òa<•ét*Ó±ÈÍõ£$óÎüQ®ožÚëv¦$tì“¶ÂSIpIµ]²nn­¤^\rr¡©É9¶¤\¸ÐŽQîqZËàšÚ¾$$åK8b}M=öp{KÿEY'÷8ýå©Ç–{7ßJþ~£Çf±ü¯ºÃH÷ùõ®KuÃUu®Vç¬Eí£ùwù6ëËé;wûÝ©ôg/òKÝàYÉç»± ZëºT4ö•%%XÇr‡~RÚ»øú׋ÌüÛ'ï僲êóý•<|ËôÌÖôd2iÖ7쥒óCýC³öÛò.Uk×rÃÀdá‘ض¹@dY§çVJýžV*Ü„ûXÿëk,4ÆŽg8ð¦ÚÅwê¦Â‘Ö\ŸbJëS¬Øú±/>Lí'| ±eá¿cû¶öÏ¿?÷7’j#µMnYÉ>êî¿-¹×C}Ýmª½`ôîTúòòz{þS~ˆÈéÆŠsùùCDf72ô//ºÊËx*—‘°4’»&8Ò°cùõ<ŽØ©µ¥…¥ÔàœjÏßg8HY«T%Á*¶<,Âu´15pû÷¥‚IØf¨$¬Æhû‰=ÎÒÇì/³†Kë·eÇž %ûÔngû'›rçª×“äµ)m½æ¤Ö¯šJöÕuø:D-\9uv¶š §ÖDDNäüv*ç«ÛÏr?ü*§wL«AW˜ŽõÝZ¥(yA-9~¥)l_h²ñ3 á7_Ç”,·†¤Tå&\ß’Âu¬•å|†­ºg­ Åög €¹cÓÓèwg÷S-³†¤U_z›•ÉÔ>cmY×O©SÉ ·µ¾a‚]{×|”Ïý™¼TW[ÿz‘YÿT–×bÏåñz(Ã{Óø³ØÜ¶6'~ì,sü–ùÿܱ ³ˆl\<N…Á$<_²X"ÿãú©mSbëhi£‰íRû/yži+µ¿Ò4×—ØßKØ—µ}øçGdí<Åú•*ù°®6ÔΕ¥ï±¿÷Ô1ë‰l|ÃuøÓ9±×œ¶_w,ËZûZÿJúœúï-h±bt"ç·c¹e(""OÏ…"vmïô¥¬Þ´Ú³¾íëZ½ÞBªïèÓ*KÕ} VHì3ÕOKE&×¾& N©}•T’´c’«ÞXªN–L ‘©†-Sh῵vcÇ5öØ­U«Ø~ŠUø;lmiòºc9O9Ús&µ}×¾Ò£×ôõu›¿‰¦îó÷ïß?.L&FòçŸvÝ ’’cÓ$,ö¼lüè§è?k£äx7DJ¶µZµ)ÕvJIÐK­£=–:1µoËþE$þûV¥hÞŽ¬äFß"ýØÉ`k\o]éòMaçØÚs«ƒóÅO‚àͳTVRë²Ô´Pjµû²vßNì¶6…”Û_ly®bn“;×¹ónÝ_Li$W¡ÊU±Â)®ê¾ØýK¥Ðß·u[m»ä6áiüm¬}¸ç«¿B€é^Q?JÛiÒ7Ëß¹i›Á´QUj‹¾‚ñ–§ã´6¶ŽÏÿwêâéÜ´KÉ e™RKUtÂpës®/m†¤\Å'’üû,Õ¢:S-Å2HRûË×OÆ•üý-¼iá=Ö½^æ‰ÙÖkÀ®^{Šß$ƒiÝ©¯èëŒò¦kÛF@’­CKÖÊEµ |¼±€"Þ}Úµ uªH©ý¥Æ³Ô`SRIµ¥µQmÔóWˆì#ü·vè[Ÿ·¹jOôñiÏKûþ”JésŲ^ðÕ§&[ü÷»L¥•?ýo8 J_/Ã7]ÛF0ZpÌÓqÚ4LÈtª*MXÑI½XÖ©"Y’u°É…$m_©6cïÀýå‚Vi%H}L½õA?SÔQ¥‚¯õï#9 š˜ÓÚ(èµ ÔÅtŽUi`ª»\˜é‰l\¤õ¥èyÕÁ &ÁØ’c›ŽË¤Ü;üjžxᨬ·ØÜ—ÖfîxÕ© åÚŽ8­jdòz]ÿÆo­?¹j•VåZÛ&2ùÛ•Ò° ?±~X§õbÏØ]¥AËB;_u‹U[¡¦­7l¯Ï‡õi-k?÷ýµ-D0vìЧã¬gêE96(WåòX&Ü>ü·%äÔ HZ[±>„rS^›ëëŸä‹½ã. K–©®Ü7Zû}²J…¤jyjª0?¥¶}a H…±6lóï^;žÙJZØÃïá6~ý;îÉ®>ñ×6‚°'i:.JCJ¸ÍrYoãû¬ƒ¤%Tæ*8M¯ÉÐÚ·ÄÔPXMK]£¡UírÓžñJÈk(ÊUK´¶Sbý Û[{ìʬÕÉØ²â0 ¹6ºþû¬X«­R´¹ÁêøFÞà¬.šÞ—Qˆ`ì±}ŸŽ‹U_šN3TmXªCÖŠ’¿¾Úèwlß±º. l 6^G{ asZ\[/gþ@fT{«ÿçí£Á“0¬$Vƒ«¥Šm«%~ÅÄ¢Ix,m?źï&Ók›Û¤j匀´oÓquÒÆÅ´nåžlü¹ ŒÖPîZœ6R¸­V¡Š­¯]÷Û>VE³^˳ ”0d#}MÅ™íŦöꞟ&A©´Bd ®kí»•,¿˜jÇ¢ÎkÄ.¦+÷ Á8"]OÇ•$í]¥¿M¬ Ë5H±¾å¦†ÚHáö¹`&"ÉïnÉUѬ!©d*n[JŸ«©)1Ë9*Ù_nßÒ+«®©½ DA…¬-–”{³Û&\ûèCF0Ž\Óqþ@ 3¹íKn§kÉôƒ–šŠí1Uüjß×ã‹V‚"ûHm»mÖë_èì?vë´iÉy²ô©¹V²´Ðj÷µÍÏ@Ý@Y­Ó”_ý=ôP$B0Þ¬]¦’jOjŸ¥Ik§« UÿèE6ˆ 0mV’ü>ù «Á×:tZúh™ÚKµ«nIp_lÝp¿Ñãç?nwÛò|, ²½ž>x'ÏIbš¯îs£N$*Ù&œ–Þ¦cD‚€5%©ÍpÓFÖ67¦6‚A/¼è7[IØ–E¤¯¯‹Öh}L…­Ò’œþ ×S*:©>æ*<–A6wücû¨.j]Ôb kûI,³*éÚE0`RzMˆvß^$O[Á§îÀ• ¥U¤\?¢ABÙw®?–Ê5$iJOÏý¿*üÖùä”víWêœd—…·EýãöŒÔVg:nÛ)µ+ËÀYwzËÚŸX8)©Z„ÛÔ 9Õ²’éʦ!©$ôhr5íË,Sm,Ûy½Wû*mŸÑe‰ŠºA0к’ÀÔv@òÿ]Ò¦vѯuß^C+…ë6©Fåª9–ªEIH ׯzJÖ/½î©Ë9ÞèÇ"½<ÚïÄ ±ž7ìÖA£ÉdÒuÔšŽK 2¥Sb¥iõ©¯Ÿ¬Yk;s­R©b™òʨ&AÇ8K§ÿ¶ ŋCQ¤/öë€6Ÿá>ò.ìÊA£Ñh´v› ®Ø@:ÖN©…mZR±2ö±n‰®—«ž¬¯^Ðöbý1‡ûÍ…$­_–í4mV’VÇÒ»3[åó–שJ•>'µ_›m—;öm\Ð ›ƒ FŽS.¸hAa#àDÚ¨;ÅÖDøÛc~ÿÖ×[·PÖ‹­+²9/§7ï’¤í+& ãªË·’” ]Øf®½h?klÓDŠQ/¸‘­‚¹ Žé£õÛ@0°w´à¢Ý¯ ‚Z@ʵW—ÿÉ¥ð¿±~úRƒ¢%,¥~J£jÃ?6¥S}–J’V݉]Ø®U KùÛº}ê¹ÓTî{ž’Û·cÏ ¿R;çaUm[ß°}lFöVi@ iÕºíYh¿, ijÁí¶«¹0†šÒë¿rÕÔ§þ²¬,ý\Þ.ÿ$á¶óA[$õœÐŽkläŒì½º©ô:‘¶RKÛÏN)6¨Lä¦ÎÚIÚµ6Öj¶ÔÕû~MN+1¥ð¸Vê|Ó[B0p0bÓaáý"é0¶®V¡Hµ—úi‰œÒ)Amûµþ4ìK¸ÿl‹õ!±“Ü—#¦$û˜˜.,µËšŠ¥Ùþkieí­#88Ú´T)Ün#×tÔ©ÌhËMáeögi;@JÃ[ØPéÇå#M˜ïÏaW;3 ›IDAT-Óì"+”\×e Oá—Nn´ÓàØ¿E#)‚Ú H±À^ÓaÁJ*­\ø«´­-×Ö ï3¤È¿ZuÇ*u\šV‹š(y,m÷Í|17aÈŒ`à 5 HþÇ—µ€´Ö]Ó‘ ¥SFM’u®;md ¯ý¯·—:Û:%hÕeØA·FŽBI@ŠU3ªwÔáºkÕ#嚎p?¡6BH[Jú˜ðÕ‹¢#íåªkZ°)íSI[Ö6ð¶Œk@ ÃMÉ…Åþ5²°| (ßfjÝhû‘Øæ5J±ý†ë”Ô¿áu\ZeO¤þEæ!‚4#GIû[n}Íjl+K-|:Í߇©ÂáMémóc×–ë”rŸD[ÝLô1w±{øíÖ±0XZe2M 68·8\#GMû´YvÄk+üÆá¦?Jêï#¹}võ4¹‹²—}Ù¼£äSX±v¬U5ë…Ù±í´ñmÒB@zKFŽÞÆôZƒ/Wg,œ¤Fç¦ãjíË×PwН$€hmnCIh /¯~ÞoÁÀ›±.lŸ²¯Õþ6…€7ù²¾’ÕôâìØ”f—±Oíwáû‹`àÍiãcñ1m·§ñ+^–PÔÕGÏs×(ù먟pkPÝê x³ê¤Ü¯¦ï$ -Ö÷e\½SÖO¾m|ëöŽ;O{ÛFÞ¼ÒO°‰Ø>eUJ+;M¿PräªJ]M·†Þ.‚8á'ØzÁ(]:XVíµñ=D±ÀpŒcw*(Eš¤á9B#ð¬}?‘ÿý9ÞÝè£ç‰oÝNµýVÇ{-(­‡¤õï9"¡‰ƒ F“ɤë.xcüä×w« Rê[·ÓÓÖ‚¦òÛu@ŒF£ÑÚm‚€]ÙFp! Õ“ûí: Žƒ F°m¹OžaøÓœœ#4E0Å6Y> Þ.ŽÚF0€c0ö×ÿºîÀ¾ 8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀù£ëÔ1™Lºî8BŒF£ÑÚm‚hSiÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFέ¶6”ë«™‰ˆÈ@ÆÓK9‹®ø,÷ÃyZÝîËÅÝ­œŸ´Ú€"-VŒæòøåA>Œ§2Ne:¹¹~”ytÕŸòc0^®7ÊÝ…ÈÃe]€i/Ϳ˷Y_Nß¹ÛïN¥?{‘_±uOÎåöòµ–tòþƒˆ¶.ÀŽ´;•&äýÚtØù99ËL‘Íþé–wÊòÉdÒRÿtí£_/îÚ"çä½|°l7”/3ŒoEËO£Ñ(ÙÁ ´¡½©´w§Ò÷oÏÊìFÏrõ rq'—ñ«´v¦åë/§Î^…Sk¾å'Ó~\ÜÉ-G{ ½`tòQ>÷gòR]AýëEfýSwÝÐ\¯‡2¼v E`ÿ´xñõ‰œßŽå~8”¡ˆ,¿Çè<~ÝÐóËï0z¸’áÃëÝ}‚èPï÷ïß‹®;ÑÔd2‘Ñh$þùg×]ŒŸpFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒœ?ºî@“ɤë.€#tÁh4­Ý&(€60•àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pþèºuL&“®»ŽÐA£Ñh´v› ÚÀT€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pFÁÀù£ëÔ1™Lºî8BŒF£ÑÚm‚hSiÁÀ!8#‡`àŒ‚€C0pFÁÀ!8#‡`àŒ‚€C0pþèlÏóG¹¾z™ˆˆ d<½”³Î:ÐYÅh._äÃx*ÓéT¦c‘›ëG™wÓé*Ϳ˷Y_Nß¹ÛïN¥?{‘_t`©ÃkŒ>ÈûÿöùIÉt¨›kŒ~½¸k‹œ“÷ò!±úd2I67²ëÄŒF£Õ¿» FïN¥//¯·ç?凈œ*«ûN±®×Äd29ªýìr_<¦ýßÏ.÷ÅcÚÿýìr_<¦ýßÏ.÷µëÇäëp*-œ: §Öv«›`tòQ>÷gòR]mýëEfýSy—Ü`»z¿ÿ^t³ëg¹ÞÈ“ˆ´ñ=F»,»¡ÎÑaà<í?ÎÑaà<†ðße°›¢èÍåñë“ ÆTËw®øoéuÝ“Ÿ¥¿õ"åìr*Óiüuípƒ‘ˆˆ|÷ko~ÈOʪw>æ?ˆôOå]~U´Âzžæòx}#2¦ä¿{Æsäç_‡2.ÿ»§ ±CÖ¿¥3ù4˜­ªDóïßd6øD˜ÝS‡{ѯ7W뜼—uRÿ|ÌåËÃLã[Êÿ»Ppžžï¯äáÃX¦¼zïVÉß’[÷⟩ܞˆ›V»—O\o¹}…¯ygŸ–µ‰ÿ†Cy‘Á˜3´¯·bôît½9ÿ)?:ê ¤æùXλËÅ\ò±æó4—Ÿ?DäéÆU"näIfòpEEbëŠÿ–¼ªÅÙ'È“üÇ9Ú¾’ó4”ë›rñ×¥\N§2äéæZ™áØK‡ŒDd³l–5±[%çcùÉ´wrË<ÍŽYÎÓ‰œßNWÈ/çâûrq7%Äî„ñoéÝ©ô7Öõ®{Á–ÏÓ¯™mØ™¼paå^:Ü`tòQ>÷½'Ö¯™qJw’çc.×C®J „¢Î't¢ä¹u¿}_ŽÎóǯòÄÄÝ(9OïN¥ïWòžÿ“'È'Þdì¥Ã½ÆHNäüv,÷á Edù|Lµ;çãù¿åG$®døðzwŸ ´üÝì¿’s´\÷eXý-õåâŽë‹v£à<œËíøE†7C÷ñðå÷qžºó|?”Õ·\ åÁûþ¯Þïß¿]v`_îT@ËFÁÀ!8#‡`àŒœþ‚GÍåñúJfË[þ—†Î¯åêuÁêËÜÀGÅÀ9‘óÛ;¹è/o;¸ê|–«P$Š(FŽÌò§""2“‡ŸåùþÆû)~2€ŽŸpœžïe¸ú1¤¥Áx*—¤" TŒ§³K¼Ûƒ1¡@ÁÀqz¾—µ‚ÑÓ\//8ÁÀñ™?Êu•ŠãUåèõblˆ#82syüò 3ÈøòLÎþº¾ˆˆÌäáê^ž»ë€=G0pDÖ¿Çh0vŸ@;9—ªÏðË“Ü\? …#1|* À¡bàŒœÿèlnY“IEND®B`‚PythonQwt-0.12.7/qwt/tests/data/multidemo.png000066400000000000000000000211451465265754400211760ustar00rootroot00000000000000‰PNG  IHDR®d÷äH pHYsÄÄ•+ IDATxœíÝOh#i~ðñ_¿›&‡×:̆Á²½ÂÝ`0™‹A M%¹D Ú–X"ÂÆY 4:îÉ1mhYÍ)ÑË „ÆšU`1¤[‡wÖŒiÀÇf ÝNŶ¼Ò!êË»— óJ%•¤’T*«TôýŒ\ª?O•~õ«çyê‘ê^«Õ˜oÿËé€óH…@*R!©„TB*!€ @H… ¤BR!ˆõTxYÜ Ø,^š^E-3ÑìcÖp÷µ˜_`q¹ÕW­©eÏÖÎ_í¬N¯PVÄò­˜³%à]65k­ž˜© N 2ß7·JRÏmôÌÒÖ­röVúŠÝÔËÞ5èj…¦,R)Ì;RáeqsëÍþy«Õjï¿ÙÊÔz§µZÇ)ùdçÕqJ"ûç­V+ß[«e6rëÇêŒë¹NŠªç.âêÒõÜÅËÕ!k·øù¾ä FE0¿F5ß¿o8ýã?µÊË—ÕzêËW«""«‘ÜI-»/"õ‹w"«"ËçEdH-¬vR’Ô±šÛbñ”lÔò±˜ˆDöÓ1mbI[Õ䋯>X—êÛK‰É`‘Fí5¯‘»ÆôŽÉz†Þ]Ô¥´(u&¤DduçÕñE@›š:î¯ öˆ¬Ýo¿º¿‘‹þ· 'š_\3¤HVv€ë®åØÔW˜R[¨ªvÖ‹å[Zc´´5²g®~ñ®ýêÝE}ðmÉæ×1_$¾fC*Œ¥÷#¥gÚ­‰Ëb¦x)RËtoVÜ_‹´+nݤ¥[<žmñÚIIRñ¾úcÏÄ5Œ]¼»Ã"˜GVÓŒ¢¶<79‰ìŸïˆ¬Æ×·´)Ù?µ*’ÞllJýÍåXþ|sC9²þJ{«žk¯ 31¦[C|ÜâbE0ŸîxâÝû÷ï]Óqæ’Ñ‹¼jtBã‹w@*{ú íÀ÷êØˆZ! €TB*!€ @H… ¤BR!©„TB*ñÎÏ1Œ÷÷ÿzSüî·~÷ûÁ·>úƒŸýé÷?™}©x‚ORáW¿P¾þÕo‡½ûáw¿/~÷›…~ôÕ_.ͲT¼bê dÝ£ÙgèŸëãŸØYüî7ÓÞ¬áÎ:sº.‹›@ Ø,~3“’8½¿À4Ü%Ö2S§ÃØÓ沸™©µÿN° a»x`žÿ1*O`âpµËâ¹õãV«ÕzµóÉÈ9ͧ°Ù';ýIµ˜…;Ö #ûçíÇgž'ªw|æåËêz<¦þÕ¦Õ2@`«du•ûgÁ‘ïww¡Õjyÿá)ï.ê>{v_,7µòêãDäÍÛž‹·ÖRÓ*[—ÅÍ­’Ôs@` kªõ³\½´Õþ«ÕbùV«uœ²TªÒ矊ü0áBµL`³XÌôÖ{ê=¥™^£ì.et™0ÜÐàR—ÅMã:Òeq³w½ÃŽð`áM|í¹¿ÑÍùw]IŒªk£÷w0$ B_Ùt›1µ8`ÅÔRa­«¯?Ð]¼k™vK­u¼žÛÈÔduçÕqª] Ë÷ÿ<;áEöÏÛ­UÑþfã;¯KŸúý_ÿçûÛÉ÷¦ž»ˆ·Z­Öù¾ä µNùÚàý7ÝçÇks§ê¹/Šý—‚­7j³g‘Ñ\jõq"¢=ï¹vRŠÈÅKu;ï.ê½yv„ ?ü³Ðm¿Õ:NÉ'º9ÿ!ˆÔ«í­×NJ‘ÄãUÃ%÷w0$ á°²[¼{ ‰Ý1ª—î@ Ø’Þ§ëÇ‹§¤t2>Hk'oW/ßJÏ6‘Àýá?~þ'2Aìî‚®.ÙOÇDDV¬K§®«Uy6rõîDmÎX<Õ÷|úË—ÕzêK5¯>ND ÀÀ†Œ–ê–¢vRJ}ùõšš k'%ómaÃÂ=&ÚŽÄò½yruçËT;fÂqû;4$†Éïù°€ÉL­¯p°ž'ÝóôþZdôzÔu«TÏm6r¥ÜưÖ8¥ï›¿úõÿÛaÔt}°§¯pp't%ìT– [ëûøî¢.¥­@7™b¸T,žª_¼S3a<¶ú@ª//åò훈ÉkÆØÂë¬î¼:NuJ0ð)Äâj.È„¦öwLHŒ‹“ " ˜Œã ëïDVEÔ³d¤X¾ÕJ7 ^¥ßn¼ž’Æ+}ßü—óÿhý¿ñ÷”'P;)IêxT‹ÝpSÇ#²ëPƒKÅâ©­“Z\J©x^Dâë[…Ú‘DÚ\&[ø^±|«•QSh&ÞŠ÷åÙËâz)’8Xã¸ýãâd‚ˆ&cÛïbñ””ž©gú¦Íðл Y»ßþ;©…zrºa\øèG¯·ãþZ¤Óøª”gèÙG‰¥÷#Ú¹,fLõéYêþZäͳg¥öbñTéÙ³7=}³V oôYÔ2Ý›÷×"튘nÎX‹öÜßèæü»Œ®$FÕµÑû;†¡¯lºÍ˜Z°bj©°VÈÕ{žÀVËl´[j­ãõÜF¦¦>a·] x0F,ßjµŽS‘ýóößÁ*ÚåÛ72®Æó7Üymú©ðƒê¹‹¸V-Ô:åÓj§o¶:gº6çqªÞ_e½,njOîYdô†—Z}œˆh—€ÚI)"êáEÞ]ôýžô°#ÑÍùéD¤ýDx£gÂÛßÁ0<†ÃÊ6nñî1&vÇTØ}\Ü–ô>WÿxÆX<%¥“ñAª>îîò­=éü²øE®>ðÄÉ~?úÃüüOd‚<ØóÄ;íôŠì§c"jE´S×Õª<¹zw¢6g,žê«²ªÏÙÑX1<2Zª[ŠÚI)õå×kj.¬”Ì·… ?ô˜h;Ë÷æÉÕ/Sí\8˜ ÇíïÐ~ 'Z¼çÃ&3µ¾Bƒ uÏÓûk‘ÑëQOÔ­R=·ØÈ•rý-¬Zf#'&øXú¾ù«_ÿ÷¿FM×{ú ‡¯¿– t*KÇ)ƒöñÝE]J[n2Åp©X‹X¼³õÀF5ñõÎjÿœ±xJŒÑØý5 1:††e¶80þyøgîÿþOõÿöä?ÿä«¿â[wSqYÜܸøÒJËßH-x¶f¶ó°ntBóÉwEdÿ§?Ùÿ)?¸`?õN1U2ø ?Ò…ÉÔ ¹:Ýtðÿ4`„Ñ Z! €TB*!€ @H… ¤BR!ÈØï ¿?þ¡šàu£¾xs‚2 €TB*!€ @H… ¤BR!©„TB*!€ @H… ¤BR!©„T2ö1OœÖ¬îí–‘ÐöÑa"8ãÍ7 ɃSǶ>3¤B` :ù¢G(ýìé“pзùÃGH…€måô`÷Ôtmª[ý‹f+é°½e³®[L“åôÄ~ÑWLUhû¨R©TŽ²Û¡ö¥ümÃÉÁ j…€‚áÄgÑr»Ñ|úº‘»´64¹`â°’pºSç×TØÓÓütéÛç/NEDBÑí§évcÅ 7z`ÒðõdŸ¦ÃAi6 ÏNÕ¢ÙC­ò¯ïi~ºômg–ÐögOáàŽð±ÝãÍjáùÙ•¢(Ú„P(´òè³'‰°Ái¥f+OnŒ§§G­Ðb!¡Y\‰(êëÿªî%GÌ¿þkùå/mÑÓƒd»ç1š­<ѯ´Ù(³ú^³Ñ‰P‘P(ª‹S'…)†7Ršê·/Îô­ûåØ5Ž f]^gåT98=¼dMë¤è0¸k¤(Š"õ'Ë뜱yì+TÎêÍ©¬G—‡®9ªöUŽ:=G§/ªM F…ú–1•dBÑí¬ºB}gÔ鋪Õ=µB«…„ˆ4…Nr=ŠÇÌÄ¡.H¢ÙJÛ˜ª“¶²fõy;†¢Ùvge´=Ky·0¶¯òN'E³ú¢½«íŽÒJ¥rt”†DmM[دÙó*ˆŒ»®§ó±J¨EÔÏÜx©åvÂ&>Ó¶¯\ßêÿׂ°S‡ˆ~6ìòN¦;Í`¸»Ê¡¥í¹¾écVh©óN)ï&“Éän7n?M§s0‡sã[­Bý,­~ Áð“î¥íuo.œÖIÑÖ­þ*gõF£Ù‘`0œ>ôRŠÿȲ¼ØŽŒ‡Q9ú5ñz:ÍFYYRƒ.üpEjˆº=GW7M wË£¶˜n_k(G\/›ÍFýÛ×gWW¢ô¶l‡”vìô1+´TH´…BÑÏž¦µKÍ4æ`nÞ\i›\^ìL .­h}•W7MÑodZ'…J·¥|pPVKÒ»ó®7©ÐµºgFùÛÆ’Œ?/…½ƒñ)w&V8q!çÞˆ»I¾=˜áôQvùù‹²þjª(§»â¶›#Ãù¿l†rÝîp¹½¶o#ÝVÄÊ’z¦t[0§cÏ‹fõ…–¶¢ÛGGG•JånÍs+œ¬É®ƒ\Zi¿R®ofÐBÎ6Ápâð°R©e·»Fý-s›çTØ9íôï(ölK߉ÞýnWz[hû‰‰ó"´ ƒúfÑ\¡ÅBˆكyúº1Ñ] ]Ž}QU59[4 {{­‹0N<é줾½.2ù~ÍÐ\7§ÓQ2’RÞM–õBѬ®Å ëxsW¶Ûó3°RkÌ®p’BbŒ‘S÷æéÁ®™ýã ‡­7ñtûl·¬ˆ(åƒÝÞÛ>²½‘ª~ðj¨}?hÈ~¹«é<ϵB‘pú¨[™E³GºÛÃÓŠF»­…Ptûè°÷óêoÚŽI2áô‘þ^u(šÝ¾Ûý?³+œ¤cäÁ &u)"¢=nŇGGÙhH·D(ÝÎÎ`üâÃíhφµ-kÁ~—ýš•{­VËé2øÐ¿kÔœêºëd—' éLWšïZ¡óºƒS]|/Â…ô ¦K‘ Õý¾‹Ï OÒ+8˜nE*t’'Î OÒ+8˜®E_!Ø[+l’{–'‚¸ÂôÙ5®P»KÚ¶i˜KÄlbW­0œ¾ó÷€ÄlÂmpî‹wù|~Ø[™Lfaaa–…qÞ½{""?üàt9fêÇS_'qÕƒ¸2ͱT˜Éd §eߺw¯¬°Š¸ê"®&AÙi„)ì@\MˆT¶¦ÙM–yJ¤I?üÀÅ|4âÊ âÊ»Ra8]©¤mZ· "®L!®&GH…@*tµ[˜.âjW<ÛdÇ| :¶#®`ž+R¡~X윆/l@\Á<È@*R¡Ñà ;W#‘ Bß6ì@\YE*R! @\2®1_°qó\‘  Û_Ušâªq5 d'ްqu¤B ©„TB*!º_ž‡ˆ«!\1®p¾Æ|1âaVˆ+˜çŠTÈPXظ‚y4€T¤BR!ˆõÛ&ÍêÞnY‰f+éð¨BÛG‡‰ Åí̵9üâjæ0®L°X+¬>/¯d+•J¥’•ƒ½j³ÿýFa·=ÃѶ”w »–Ó/Á‘ˆ+‹ˆ«;³˜ Ï”Ðò¢ˆˆ,.‡”ë[ƒYÚ3#Bˆ¹C\Á)–û W–ºm“«›þËwøaTQ/ÚÍú™}hÐÒ Wp†Å¾B¥ó*¸´b4CøaTD^'“§"ѬAÄ2䃔Î+â ³e1†:¯š7W"Ë}o7«{WÛG‡‰t:Ý($ö–z¸õßÐ#”çY¨óЏÂlYn ë/úFˆˆÜ^+‰á‡Q1îõWp†ÅTø¨Ó§}{­õt7«{ɤzOoq9$§¯ÕÛ{×§B§ŽUsö;"ÄÕŒÌY\™a±œ8Ì’ɤˆH4[ÝLf¯“ÉSuü 3ˆ+8å^«Õrº =òù|&“YXXpº 6°6øË¿CÆ>|ø0³mWÓYÊ ¬Å_¼R! @\ò+ÖŒù‚ˆ+˜çŠTȯÂïˆXE\B\õ¢ ¤Â™á ;WSB*R! @H… ¤B—Œ+dÌ× ³„¸ƒ¸ÒqE*d(,ì@\Á<È3Áµv ®¦‡T¤B € @H…žÁ#Ê`âJC*Rá 0âv ®¦ÊC¬þ ;W0Ï©oÀÄÌ£ ¤B z ã`âJD¬÷6«{»eED$š­¤Ã†ó4 ɃS‘ÐöÑa"hqK˜'Äb1VŸ—W²•ðH£Ü«Dd£êôiß^k=ÝÍêžÖŒ< )gõ¦¨݃1 !®à‹ äÄa¶L&ED¢ÙÊàØ®`â0{ÜM–E$´}4¯·üñ0!âÊâÊ÷Z­–Óeè‘Ïç3™Ì‚Ó™;BÖG§Á‡f¶-âÊu:ÄZ\ñÅ; ©Ä%?Ýʘ¯ ¨ãüÒ­c+âjsW®H…þüµáù,7 ®` d ©„TB*ô$¾<;Ìw\‘ íÁm>ظ² ©H…à’!Öþþ 7!®`ž+R¡?¿§W0²7Í÷Í>ØeŽãŠThnóÁÄ•H…@*R!©ÐÃæ¸‡6š×¸"€;ÆújÌ·ù\ƒ¸‚y®H… ……ˆ+˜GH…ž6¯=ܰ×\Æ©H…ÓEß6ì@\ÙÏj*lV÷’ªBcÄlB2¹WmZÜæq‡XL…Õçå•l¥R©T²r0,&›Õ½ƒÓ;” s‡¸‚S,¦Â3%´¼(""‹Ë!åúÖ`–Fa÷ìÑQ6j½l0Á_=ÜÄ•[ø+®Ì°<®pe)Øy}uÓ”pPÿn³ºw ÙJ"Ø( YÞ‡ã¼èЙâjq5S¡Òy\Zx·QØ-¯d+áQkÐÕóa(Ã4¥óЏÂlYL…¡Î«æÍ•Èrϛ͛+å ÙéÏÙM^g+é‘ qçXn ë/úFˆ‡•Dûu£|±|t˜ `qgX¼mò¨Ó§}{­õt7«{c†@À>êá&®\ÄGqe†ÅZaâ0[H&“""Ñl…k3}ÛÓA\õ#®få^«Õrº =òù|&“YXXpº r6d½yÂ|øðafÛ"®¼·u«¬Å_¼R¡?ÌY·fdžâŠT8 ÞlGÀ툫růX3üv ®`ž+R!?¼;W0²_ÌS·fgnâŠTxgtèÀÄÕl‘ €Tè'sÓ–ÁLÍG\‘ ï†V ì@\Í©H…à’q…Œùšµ[‡¶•ˆWS4qåŠTèÕ¡°~¯#®` d úÏ| }À¬ù=®H…VÑŠˆ+‡ €TèK~oËÀ¾Ž+R¡%´b`âÊ9¤BŸòõŽño\¹b\¡—Æ| —nÏ ®`ž+R¡W‡ÂÂ݈+˜GÙ¿üÛ–“|W¤Â ÑŠˆ+§‘ }ͧp8ÌqE*œ—nظr«·MšÕ½Ý²""ÍVÒáþ·…äÁiûuhûè0´¸Ü•·~^‰¸ò oÅ• k…Õçå•l¥R©T²r°Wmö½Ý¼¹ŠªoW޶¥ü|`/ò×ïNÄœb1ž)¡åEY\)×·}o‡Ú=¸´"ƒ3`–¼Ó³C\y‰wâÊ Ëã W–ºm“«›¦„‡4Uš7Wz´80Ýc㼸tÏqgXL…JçUpieÄ|Íêó²ÍƳ~ø«žÇBÙ+<Ò³£t^Wžà‘¸2Ãb9ÔyÕ¼¹:W£°[–í£ÁÞoñˇí~¡Î+â ³ey0ÍÕM·ËZߨéh’WÜäsoôìW^ã¸Ïb*|ÔéÓ¾½Özº›Õ½d²Ð_Å+—î"®à‹}…‰Ãl!™LŠˆD³•Àl¼>‘òn²ÜžàÕ1`>‹W×÷ìWžäú¸2ã^«Õrº =òù|&“YXXpº "â»U¹f§>|ø0³mW¶sÍNY‹+¾x7œk>Zø qåJ¤Â!|¯~éçö$âÊ­H…sÉãQ —òr\¹âW¬]7üÕÇ—î_tuF\9À³qåŠTè®^÷æi…g£Ö$âÊÞŒ+Ƚ<øÂˆ+×#êÌa¼z¹sÇ3ˆ+/ jæ0^UŒZ/!®<‚T("s¯*¯E­gWÞ‰+RáÜÇ«JZï®W⥸šûTH¼vüðƒ·.ã®F\ux$®æ8ª+âµ¢ÖÕˆ+C®+WŒ+t`ÌÁ:B'j=~ˆˆ+wqw\¹"Îz(,ñ:–z|<~ ˆ+×qq\¹"ÎŽ‹/Jnäî˸‹p”&âʸš›Tè¾Cï ˸pôŒpd¬q_\ÍA*tÓáö*÷®ó8w禸òu*tÇ!ö7®“8Ó厸òc*ìܳ'Xí \™§ƒ<‡»2§3£Aœ*rÝ#áUnyt7ìsïÞ‡™ÇqåVãÊ¥µÂŸÿüçNöÊ8q &®|Ïr\¹4JoGOG>Ÿgº §[[Ä®:nL=ÝÚ"ÖÌñTn½mbw«Šõ;»~§xý¸±~ûP+R! @\ÛW³D­H…@*!€ @\÷s ÍêÞnY‰f+éð”×Þ($NÛ¯CÛG‡‰à”7 ÛΕÍë?±g'º‡hƈ+³ëŸß¸rU*lVŸ—W²•ðH£Ü«Nùˆ5o®´¡YÝÛ}^Øñ‰4«{§"¡©¯¸­QHH¶R™öù¬­}·ý4«{»»…¥é'ŽÙ#®û,šÖ IDATL˜û¸rS¹Y?SBË‹""²¸R®o§»þ`âP;þÁ¥™úúED…ݳGGÙèô׬jV_œF³¶†Qû#F…lÜÊ WãW®J…""+KÝëéÕMÓ®Í4o®´fšk­îHÖÎʳ~¦„®^$U…ÆÔ7~UÊ»…†º©èC·]º­"®Fo¸rUùöZé¼.­Ø·¡fõyY‰f§Zí6€­òíµ"²ý´rT[4…‡Ónh„FEäu2y*ͺ0b'G\E\¹«V¸¸ê¼nÞ\Ùµ™Fa·,ÛGÓn 4o®DN’Éd2yp*Jy׎««t+8á‡Q9}=ÝM4«{WÛOÒéJ¥’žìUm«@ÍqeʼǕ›j…"jã%ܾªê5ÓbßM¸`â°’ènåŲY\É™îM»1v{­ÈÊgºSâúVÄ}7û&G\D\¹«VŒ<êôiß^+Óïs±{0‚ý‚‘G!å¬Þµ£{êgõâr¨S#h¼>WvêLЏ‹¸rß/Ót†6Ù0þK?üKDlàdÛÕ»½rûFé’KÇYB\™Yù\Ç•ÛR!8ÀM dp©H…@*!€ @H… ¤BR!©„TB*!€ @H… ¤BR!©Däÿ½ýýŒ[ºqIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/simple.png000066400000000000000000000365351465265754400205010ustar00rootroot00000000000000‰PNG  IHDRF϶Šá pHYsÄÄ•+ IDATxœíÝÏk#é½ïñ.³÷YLXm£Er sf«9šCv“³‰h1^h‘ÝLà€¤6: g#®¡%Áá&³» -<¨ÑÙ$³ c§ÁÚæ&pf¢ÝÕ{faÿ¾ IvÉÖo=õÔóT½_`°Ý¶Tþté©o}Ÿ§J™ëëë[@ÿ#î p…À…ÀÄqofÃNIÍÁøó\¹­Óbvé÷Ó,ŽL‚~]ÕîhüE¡¡^%ùsˆ…Reæ@7G.—ÓáÉsUò"FL¥!£ÑHƒfUõÎ0îM‰Y ~½¤Riò‘ú<¤…R¬ F¯§^¯§^¯­ráþ_Fƒ3õƒø¶ ¦ÒIRVÅge] ºI’Fºz/)µ3jYO{*ƽ`…°®`¨þë3] F“âIR.§ÂñsUB ƒ~G¯.Þj4…~9§\îPÇ'ÏTÜjýR ~½ªéò¨‡‹gÖNåÊjŸ—ÖtÁ°¯×g„·1—SîðXÏ+ãß¿Øùñv<òZ¯Î?TN…ÆdV0TçUSƒéÏ: -^~øøÏŸ¼Ö«æ`’mN¹ò‰žóëÕ¦kþ߬zŒðö*WPùp×ç4—×øá _¿ÒYø9•S®p¬“gE±4Ø…0õþjæ`s°ú· ¯zµú÷‰ÑHƒQUƒ«û+–Þ_Mz3?¨Ñh¤Qs «FO›_Ü”ÕÓ㜺“]\*(N‹Ÿ@—¡-?~º´˜$ÿ–ÑHº|VÔºµÄ¨[Uuö;4«z[ÈitWaLþeÐTý`þÕdógÔmªzµÆ•`üß,4ì¨ô0”Ñ@ ×éoùœ;åµè95Òh0Rsp¡rûtíÿ;󱯯gëácá$t€ª: íñº¤vCwË’fÖ$åT(7Ôž®_j7TÎÝ?ôଯm–/eŸëîaFºœ>Hp©ûº(§ã§KŽŒA_gƒûŸ-·§k¬zj·*äÿê&äï¾q9ÿo/”ïòjφµb­×¦ÿ7 cæÿ¾1[Œ>ç¬Õy꿺ÎÜÝ6¶Õ¸{Ò‘ºÕŽX&ì†Â)6PszÕUµ©é¡1W(«>Û¾Ñ}-QÖ³é|E6¯£ÐAébR©ä+§ª„§€²yOB+»·•-êdÎóÍtºf º9fºb#]\5 Æ“ÍæU9ݬã>@ÏÔ¹²“¢«±Fµ•;¸ïre‹'÷Æt­×"þ߬| Ô¨¬˜¾Ûá9·Îkø:Ô½*èän³Ê?+ßÌè •°¦Ò€Tf×çïÞÞ1êªZêÎýÍÑÝjí@ÁðR¯ß\èí[=Xk´›üQAŒËÓé´÷oB‡õ£SFù#4¸;°ºM5§N.§Â¦÷p:Ø¿;@‡§útøän½KþèPZЙo_9iZÁ½}hÑâ™ÍÿoV¾âН _ìTn?ÓÓlVÙy‹{·ÛX=+ç4˜lë Ù¼ÿ§Â‘ÖZÓÍ«xšWQRzùZgÝÁ]Çaðf¨J>η¾x¯«ÑýW‡Ow?6ù¿Yë1FWZu—†ÍžÓÌͰ6ÙÆeyXŽ )[|>»æcÐT}ºzöA—æUg8s¸ ‚¡úúýÏOåÆE‘L…캭áEØ÷O¦ò³5Š™aGõz'´®(«|ñ™ŽC˜;X5™¥@ÃNsfÍÏÒ.ضÿ7aû3ktÎî~6Ðe¸B3ùœ›Ê? íŸõ‡w‹²7Ê ÀJtŒIã6tUj†Öß¼Rÿ驊ټ*í²ÞN®D šªÎiþäÊÏì¯?ÙmSŸê8×½%@îXË.F jÎû$)WÐI ×{ºU=Ž*§B£²¢ ¶þÿÍBÙ¢ž—/î:†ó·Åðsn,«âó².¦ÏÙmª:'¯r{U^V¡cÜðrw_‡.ÎuÚn«Q.èÑòœ\N…BY'O³ãi¹Fa¶£“+¨Q6pUÚ죫ÜVÝ»èÎþ‘Ê…C¹¡öi<Ö\¡0{«€\Aåöéz÷{Z÷ÿféCœª]žýËj̽\ßÌsnlúœ…܃ŽaN¹BY îa‘¹¾¾¾{#lhfÍRAž‚ùwÖ€xÑ1¼¨š»YwÑ5`% #À73wº^ãÞE€µQž ./Bw¯æ*$0)ñkŒöööâÞ„T8??×§Ÿ~÷f¤YÛ³MÖ™—ݾHô° öëèÜÜÜĽ ^q°0ªS:Ó¡+,(ŒØDa×PmÆ©ûÝ_¥’“Ñ[€¬Á©5FùJO½^C&ïø;ÎÏÏãÞ„Ô k{ÈÚ²†+œ*Œà/ÖØCÖöµ=d Wx[µZ­•’”ÉÌ~L…ÏNRóùÃ0|8³|Îç}>oŒaÌ }¾bÜqf;üy* ;*•Jê wü%xñu«ÕR­V{´ø:“‘nû‹#7|VýáëþÜçç\Qb YÛ³*ëyãÉÃÅ×;¼¬ü¶á¸sþí·ì×ñsñõ&µÀ?ôU¯^édÉ»8µøÚ†ÛÛ T›þ¡ÓŸÛ¢zd@³‡¬íY”õ&/­ðËjÝßñÚ–ãΧ© ëÉ«Ò[ï&mAÿLƒÂ‰zë4S²EJ:ë?S~AåíTÚ.nog ¤Dš7Û 2Óp°m_ZŒ;+¤" ê×Kª÷ƒûo ;*Õû ÿÒf&S\w¡Æ] ºÆO;ù¼ÿs÷ÛèòB*?Ëß}ݯ—f·oØQéü³²tq¹pû*Œ†’J¥¦©[-™ ~ŽÄ¾MÌn8H¥n>;FdmÏìM½´w»Ë:±ù*«§Ç9B…ÄðÍ@¹ã§zÜo™%¥ùs×ö}Õ›oUn÷Ôë-»2}¤îÕÑøgÚe©ûZCiòI‡zr·1YOÛ*««Wý@ÒPæ@…Fhš-ûTǺÐå‚é©´|¥§^ÅîsN_ƒ‰éÞšþcÖ ˆé{ÈÚžpÖ&_ZŒ;Íì׉ È {ÿðKÿýæúzî÷³Åºgº Š*f‡z3Èé¸=o*«âiOÅ·l¤«÷Ò¸ÒÊ«R‘¤‡UTî¾+”}¢C]è] åß_iôè´³*>/ë¢úZ}½Õ ÐÐì¬\VOGzs÷œ³œ*Œâ’˜×`TDb¶Å—ãŽ7>«åuThêì2PñÉ rÇš[m#[ÔiãJ¥fIƒÉ· ž*»¾d¶¨ç庪ÝC5Ö\«4Ea4áýk0ê_WJÙCÖöœŸŸë_þåÓÈ^ZŒ;÷æî×Þ”ù£‚šg—ê”;nÏk´h<•VUw4ÿ1<ùŠzÓé¢aG¥fGG½£Ý68èëU÷P…Â@ÍΑzTZF!Þ¾ØhÔöµ=QESŒ;c ÷koJ˜ü‘ ͦº£‚ /ÿÚb*mØQýÝ3Ní(—“ö×ýýýåÞ¾S |¨X ÔÕÕa£§JþH*5Õ9 eÞ½ÍéàÙü‡tjñµ ¼[÷gsÀð.`{¼´€°¼Ž ’­çÙõatØ­Þ/Ò®^èøyqAGjŽG ©']«ÃƤÊ«Ò(hÐ -þ.u¡c=]ð$ÞàÑŒE7x\‡W''qlìœçdzDzŽÞtß&ë‡7xÜæyÁ†®ÌÚ›pÜcæã‚ãêÄÀúÂ~]Õ«“µ§Ë†’ÎÚ÷]ªèÍáÍÙ[\Åœ€8PÛCÖöõ;+³öf`N¨àR£‚Ž+ФÉUsƒ3õ×¹¿OÐ×Ù  “%·È¦0ZÀù× gO@$â|i1î¬à|@É5|ÝsY¼+òª4Õ­®ñ^iÕ®‹ßD¢0òS܃“ôh€â¦ƒöut¾´âÈ:­Ç~ök·ï3èfY$ireÛŠi¾u~FFK¥u€Z[( ¦ì!ëhÌ;ß ëˆOÈÖΚ£0ZÁ¹×  Ý"‘bÜâCa„ÝLFpÚàöµy‹Žûqfí\q±²N[8°ŠÂh μ>kcÊÁ²¶‡¬emÜÙ8kgf$ …‘/.Š à3^ZÂó– ­V+ÒÇç®ôp7x´'õY[ô¶ÊšàÎ׈íõçË ß—í&¢Øew¹óõÂÇdìẎmŒ™™;_§Si ­ 5|)8˜a…‘ë<œÎÏÏ ,áª43Öyi¹’u^Z®d Pm( Ô6R½Ã2²Þݺç©Í:†²²f`†AF.ó¤[4ƒ ˆ/-À £-0@=6Ó' H1å`O*³Žé„lç¬w`…‘«<ë¥vÊ!d½›M^Z®eäc¿kYÃcÃŽJ¥’:Ãí~†ÂhKI ¤”g'd00CCušoUn÷TÉ/ù±|E½vYo›=¬(Œ\äáàô¨ ΙTNï²éKËŬ“úÒr1kø'èŸiP8Q1»Æg‹:) tÖf¾Ma´ƒ¤PÛ  nYÛ“ª¬c>!3–5³aúõ’êáâaØQ©ÞW°ø—64T§TRiú1ß úªß}¿®™úe26û;./¤ò³i«h¼í3Û:ìÌè«>™.w††êt$—ºêänò*ž¶¥zU¯úOuZ|¯Ns B£wßQÊ>Õ±^é2(Þ}ÂhGÆýžŽÞ©O)‹ÈÚW³Nâ¸ãjÖIòÿ°ü-²®¯ç¿uH¶x¢B÷lR< õfÓq{Þ\UVÅÓžŠ›lTp©‹QNåçÓŠ)«b¥( ;¨ ÆôÛù#ÔÔ›aEù}Iéê½4®ÎòªT$ ßhT8Òlí•UñyYÕ×êëí¸ËÏþû“ÑÞÜ=… Y8 Ñ52ŽƒÇæ¶ÝÉÚ£Y3î̵¨ðY-¯£BSg—ŠOÞh;Öܺhï¯4R¸Ë’;ÐþÝû:ÈIW’”-ê´q¥R³¤Áä_ ž*‹ž#[Ôór]Õe+²Ç(Œ 0öä… `MûaSþ¨ æÙ¥ú‡‹¦Ñ¤­¦Òö”—;®tßÈy¯«ðãæ+êõ&¥Ð°£R³££Æ‚úzÕ=T¡0P³s4™²[ŒÅ×0‚+Jì!k{R‘µ#Õ•ñ¬Y„mVþH…QWÝAA' /ùO¥õzó?æÖ#Ù§:Î Ô¼»¡P ~§¯ ¤‚BWŒ ßh ‚Ž&ëfƒï(—;Ðþþroß=X¨ÿª«ÃFE•JC…AóÁ½‹½{›ÓÁ}kŠŽ‘3œ¶µ´ Ω­QLïlf—]Ïõ¬“ôÒr=käuTz¸†gWYOº*5UºŸSQyUÚeÕ«U•º’”S¹}:~îü‘›Óïßÿ[6(DÈÑã>OPEdå±?a£7mp{ÈÚß²öyÜñ-k$…ŒH䔃£ÈÚ²¶ÇJÖt«± #ă p¸!ÀFZxìOàèMܲ¶ÇǬ}w|ÌÉDa#˜r°‡¬í!k{¬eM·+PÙæøY›U P0ˆ—(Œ"––c?mp{ÈÚ_³~4îxP5úš5’‡ÂF0å`Y?ÕqŸ¬í±šuZÎX± #›<8k³Ž à # Òpì§ nYÛãsÖwãŽ''d>gd¡0‚L9ØCÖ³¢<=Ö³NÃ+¶Bad“gm±`€8⃸7À”V«÷&,u«Œ2™ÛÄÖFçççœ][BÖöøžõ­2ÊèV> ;¾gäÈ\__ûðšÙX«ÕR­VÓÞÞ^Ü›2–™ P‰LÛOÖAÀ-.î6™—ݾpd£wVsq'2ìææ&îMð Si6¤à…·3¦Ó 0²(ÉÇ~®(±‡¬íñ:ëÉ ™/ãŽ×Y#Q(Œ`kì!k{Èڞزö¥r„5Fp6À 5€(PEíÁèÔc?mp{ÈÚo³öpÜñ6k$…Œ`ÊÁ²¶‡¬í‰5k*GXCa·0@a L£ˆ …Q”R4zÓ·‡¬íñ2ëãŽëç^fD¢0ŠëÔ6˜r°‡¬í!k{bÏ:‰3¶Ba÷0@a‰5bÄ€Â(*)½iƒÛCÖö$-k—Ï9’–5üEa—¨mÄÞO²¶Ç»¬=>!ó.k$…Ü”´ÊFx|܇w £h¤pô¦ nYۓĬ]=ö'1kø‰Â(F®PÛ  nYÛãUÖžŸy•5€©$±b+F0"’68Ô\irˆ£!’Ö¬ã@Öp…‘iž·³·Eܲ¶Ç›¬7w\<çð&k$Þqo€)­V+îMØÊt€Ja-nb`NµÄtŒjµÚÌ슬 îâ©mÌÒ8å×1*YÇ…¬áŠÄFNHñmp{ÈÚž$gíÚ9G’³†_(ŒàÚÀ#)>!¢@a#hƒÛ“¶¬ã<î§-ë89—5g¬©Ea#"mƒ3@Í`ÊÁ²¶‡¬á #Shg°mÇq‡sà1 #Gø>@9×O0²¶‡¬íq2kßfl…ÂFDÞg€º“¦)‡¸±iÊ:nd WP™÷è [✘EaäŸ('Ûà EÖö8uÂNȜΩBa#hƒÛ“–¬]8î§%k8›µÏg¬Ø …üÁˆ…Ñ®\8­ump{ÈÚž´díÂ9GZ²†û(Œãµ gÛà DÖö8›uOȜͩCa¿øZ9b# <îÃgŒ;©}aôU/•T*•T*u4\üƒê×§?wÿÑYü ñcô¾Cܲ¶‡¬í!k¸âƒh>PÿUW‡žN󒆕ê}µO‹Ê.øB£§J>Ú­‚y´Áí!k{œÌ:¢²iS$®s='³F*EÛ1 .u1Êé`òõþr£+½ôIýG×ÃÀœÖêÉL{è­Þ‹zÐôd 3¬¶ÁS>@%}ÊÁ¥ê¤gí²†+¢-ŒÞ_iþ:ûD‡ 8«âiO½Þø£]ÎiЬ«¿ ˆjµZK?¦Â/6£ŸOFïÈß³ÏÃ\Øž$>rpe{L÷ö|úé§Îm”ÿðœ#­ÿïIû›É\__GwnôU¯^é¤WQþîë ·OU\´ÈèÎPRSÚrÍQ«ÕR­VÓÞÞÞæ¿¼ §µ.9;‡pË÷ÿÚÌËŒn_Dô0îÄËÓpnnnâÞ¯X˜J{8uöpj IÀÙ‰=dmYÛãEÖ)ŸÆO‹h £ìSçFºš®¶~¥Qî@ãµØ“Ëó§ ‰‚¾ê¡EEAÿLtÄj^°~EIЍ$_½ãÚ y’³v YÃ_®ŸUñ´¡N©¤’$© FoÁ¥úÙ':4UL¿QPc:ç×Fo0$îËö¸E»Æ(F‘®1²8jø2@…[ãK8†Å’µ%®ý—n“udkŒ>îx³_»¶“®5F›á-A`„ZB$5k7IÍÚEÞdâiü´ 0‚¿ †QmÊÅÓZxqEIBµ=Îdmy܉ãœÃ™¬‘zFŽó¥)âM<ÈÚ²¶‡¬á #øÍ—ÊKш…WwÂhŒÞ Ñ·‡¬í!k{È® 0‚´Áí!k{œÈ:¦2ÛM'²Da亶àæÄ¢0‚±¶ÁS6@%mÊÁåê¤eí2²†+(ŒÖåòèíÚàöµ=dmYÃFઘOÈRÖŒ$QyÃõŠ6¸=dmYÛãeÖ®ÌØ …Œˆ½ ž¢*ö¬ r}†:IY»Ž¬áŠâÞSZ­Vtîúè ŒHLǨV«Í|$‘ËM/Ûàž"k{bÍÚ‘2[ãû5\‘˜Âñ¢ nYÛCÖöx›µËg¬Ø …’ƒÊ+Ž4D`…Ñ*ŒÞk¡ nYÛCÖö5\AaäW›"Þ¶Á=DÖöÄ–µc'd6Æök¸‚€]¸zÆŠ­PÁgÚà) œÉzŽ5DJBÖ¾ k¸‚Âh_Fo燬í!ë{QŸs5\Aaä¡4E€ôâ„ ˆ…Œ  nYÛCÖöxŸ5g¬‰Aa#œjƒ'|€r*ë-øÔñ=kŸ5\Aa´ˆO£7Xðs@…‘·\ ¼oƒ{„¬í±žuŠOÈØ¯á #Aܲ¶‡¬íIDÖ®±b+FH&('¥¸!ÀFó0zoŒ6¸=dmYÛCÖp…ŒHDÜdmÕ¬=9!‹ªË~ WPyŒÙ"p ³÷(Œ`„“mð„PNf½O"3|ÍÚGd W|÷˜ÒjµÌ<£·hƒÛCÖöµ=d W$¦0ªÕj3_+” jžM›±m2°6¦Ò<çÊlmp{ÈÚ²¶'QY»20c+F0ÂÙ6x(g³^Â×î‚YûŠ¬á £0_Go`…ŒHTÜqdm•¬==!3ÝŒe¿†+(ŒÀ…Ù"Úàöµ=dmYÃF"åiCØ g¬Ø …Ñ£÷Nœnƒ'l€r:ë„!k{È® 0‚´Áí!k{"ÏÚó2“çì×p…QB$¬)@,(Œ`mp{|ÊÚó†ˆWYû.‘YsÆê% #á|ˆ{LiµZqoMÏX)†½˜ŽQ­V›ù€]Þ´Á°Îȇ¬“r ð!ë¤ k¸"1…ÑV’2z;€6¸=dmY¯o×s²†+Ò]%Tš"@rqB8ÂF燬í!k{Ÿ5g¬Þ 0‚^µÁ= \Ï:I ׳N²†+Ò[%iôF¤·0‚Q‰oƒ;„¬í1žuÂOÈviƲ_ÃF e{¶ˆ6¸=dmYÛCÖp…cÞvãùúÆ´ 0‚ÞµÁ= ¼ËÚcdmYÃé,Œ8­5Ž6¸=dmYonÛs²†+ÒY¥„ÇM y8!¼@a#hƒÛãjÖI<u¥&kÎXGa#¼lƒ{:@y™µ§ÈÚ²†+ÒW%ñ´âé9 iEa4ì”T*•Tê §ßþœfk€JMÜdm±¬9![‰ý®XRz÷V’r*?ËKA_õæàþŸMÕûAÔÛO燬í!k{R•5-5§-)ŒÞëj$I‡z’•‚Ë $)WV»×PAÒèâR”Fð”4D$Åê5F¹íKz?®’¤Ã'Êj_9I£+½pãŒcôŽ mp{ÈÚ²ÞÞ¦çd W|°øŸÂÅÏtZMÊìë¾›äŽV«÷&8k:@EY¦ª 3²¶ÇHÖœ­…ý®XReõô8§îh fiº¶(§ã§YiøZé®›ä‚Z­6ó5…ÀY6ÎX±•¥SiÙâ©…û¯ S³úgãB)wüTÙH7¾ðº îÙ:#ײNòØîZÖIFÖpEæúú:‘CZ«ÕR­VÓÞÞÞøI½×ò?5ÚÑÍʼÌèöE(”â?}=–º¹¹‰ü9’$}7x[R^xÖŒ$=\c4ì¨ÔŒ/É?}¢×¥¦ ~q¬ F¯¢|”[#¢žÎ>??gñ¤%dmYÛCÖp#S~hëøeF™—e^~©oâÞËÐìq)ë¤7D\Ê:éR™5-5'ÍvŒòõz•»/+½ž*s|¯v¯¦?¿ÕÅÏ$ýíKe~ÛÖw¿®ê'qoÖÃ"¥¥c”ɨý¿¥ã?}ÿ½IñòýâßZß¿××ÿDýhòõ>Ò'ÿ«¾3ñØžàŠ{ÈÚ²ÞݺM²†+–FCuêý%où¨_ïÈc(ô~IDAT—·’ý×úDþ¿¿¿+„¾ùëWúäŸþuNGç{µ;{üñåß=ÃÇúÇÃ_ÿEÿõƒÙ¿aWQvmSÙ YÛ³SÖt 7Â~ W,¹Á£¤QWÕRW…FO•ð ëé"mÔˆtóÌùÉ?ÿO}ñÇ×飯úá7úÏ¿|¢ÏÿmÞD×OTýõ­ª›<øÿUýá?êã¶pÇ}À¦ñ³ÖTÚ YR©ÞW @ýziRùæ3ýòã?ëë¿}/ýí?õÕ?׿~¸ú·Öò£ôIøëþK1ôоHDÜ“…‰ÈÚdmYÃK:FyU ¦EФ{–+?sÿRýP%þÙG_èç¿WûG_é“únÁÂèïÕþíOUûûü‡ûâó[ýîgóþe•–¯¨×{¦~½ªî(ôýBC½Šó%Ñc?û¥¾øúªýý ýáÅ¢ëŶ˜Jûð_õùkúëKúP㩵¤Ÿî¼ÁæÑµ,àExkéTZЯ«TzPIÒ ©R©¤Ž/+¯ï|¦_~,éã_ê3£ûUýéëÉ"í¯¥?¤ìR}Úàöµ=dmOª³öd?-–^•ö:\åÊj÷Ú*çî¿5húsUÚØ÷ú¯ÿ–¾øÈlY4ö™~÷âV·/nuûâw† /÷%¦ îÁåBÖiiˆ¸uZ5\±ÖâëB£§ÞiQYeU<í©×(D³5A_õRI¥RI¥’¡¢+Õqn¤«é¾¿Ò(w ý¥¿WpE‰=qf¶Zök{ÈZœ±:båâë©ýƒœ¢] Uñ´¡N©¤’¤ñÂ+Ò­Ä]QâðBÈÄeí0²¶‡¬áŠ%…Ѿr’F“bèÉ¡¤Á¤£3^ÿ#ã¼*½ž Þà‡Ï9IK§Ò¦ëŠFº¸ î×5K*U»IÊ?¥£ã1“][Úàöµ=eÍÑ~'ì×pEæúúzýWrÐW}R)7¹B-ª-ÛQ«ÕR­VÓÞÞ^Ü›â4Æò%ç"YbNæe†«ÒV`?ZÁp@777Æ+ Ö^c$IÊuÚ+F´)€cèùÏ i°ÞUiÃŽÙ7vEâ燬í!k{È®Øìr}`®(±‡¬íY;kÚi™·¾‘ý® 0J9n›Ža`Ž…ŒHlÜÁ*ެÓÚIì~í ²†+(Œ`mp{ÈÚ²¶‡¬áŠõ®JËWÔëqÛEx$­í´qÑ'\õ c4ÔËÎRÇÄlmp{ÈÚ²¶‡¬áŠGSioš%•ê}ó~X€6¸=¶³NóY=ûµ=dý€ƒëÓbþ£QWÕRIºG¤ÈÒÅ׺GXmp{ÈÚ²ŽVøœƒ¬áŠùï•~O4IRNåö©Š®¾1šÆïöï•¶™4O™¬”âpRü§¯6'Þ+m3ì_K ‡÷JÛÌŠ7‘ªSjj°ðß jô*ÊG°a»âMd7ǵDŠÃIñŸ¾…ÑÎØ¿V0…Ñf–ßÇhøfIQÜK|Ü¡uF6³NûA+ñûµCÈ®˜£aG¥ælIThôTq±5'pE‰=dmYGïþ~Fd 7<(ŒæLåÊjŸåðò" ׀ ðbiéTZ¡ÑS¢k  nYÛCÖöõMã§Åü©4ºDØP*¦i©ÙÊÚ?5v©Ø¯AÖpÅ£Â舵D ¥L¥å•§(ÂhƒÛCÖö,ÌšvšQÌÁ%Ë/×Gêl;@Ñ·‡¬í!k }(Œˆ{L©Õj3_Ï+”€HM[jŒàà-¦Ò`mp{ÈÚ²¶gYÖ¬3‚M‰éÁŽEM®(±‡¬-˜ìä$mû5\AÇH!fü€¡¥f…Œ`ÊaÂÂEÖöµ=d WPÁÚàöµ=dmϪ¬iŠÀ #lŒ ‰Æ<#jF0‚6¸=dmYÛCÖ;âŒÕ #Á”CHÄÔ®YÓYûµ=d WP¼@S6Pa+(Úàöu„´ÓÈÚ²†+(Œ`mp{ÈÚ²¶‡¬  ¥f…G(ÖÀrF0‚6¸=dmYÛ³nÖŽžs A(Œ°µðEܲŽÈœvYÛCÖp…IAKmgF0‚)‡9" ¶ÍšõE›c¿¶‡¬á #Aܲ¶‡¬íÙ$kš"ˆ…vÂ…D `⃸7À”V«÷&¤Úùù9g×–µ=dmY4=c¥ØßJæúú:‘ɵZ-Õj5íííŽ)‰Çëor`Üf0 ÌËŒn_vÔØ§WtssóÆø…©4€w˜ÆGT(Œ°3(»¸zǰ%­²¶‡¬á #À3›®Ã`Êa{¬y±‡¬ ãŒukF@Ô ÀF€g˜r°‡¬íÙ&kÎ9 #ÁeS­˜g$k{È® 0ŒõE@Šqƺ #Á”à (²¶‡¬í!k¸‚ÂF燬í!k{¶Íš¦L£0‚1 Pð óŒæ 0‚´ÁíY7kŽû»c¿¶‡¬# °1 #Á”à µÔÈÚ²¶‡¬á #éC;-Q˜Æ‡IF0bÚg€ŠSöµ=d W|ù3}Õ«]$I5zåçÿ úõªº£Ùï=UæÿB|MÓÊq‡nÅ:YÓ1ƒýÚ²†+".Œõ_uuØèé4/iØQ©ÞWû´¨ì‚ß q‰v*-¸ÔÅ(§ƒýÉ×ûÊ®ô>Ò'EÂmp¦Ó¢Å”ÃŽ6h§‘µ=»f͸S¢ŸJÓ¡žÌ´‡Þê] 崌͒“Ïéùƒ6¸=dmYÛCÖp…±ŽQЯ«T*M>êê’Þ_MÖMdŸèpá#dU<í©×´Ë9 š“Ç™£Õj-ý˜ Ÿ…ð9Ÿ;ñù·ßÞÚFñøá†ˆ¯cŸ‡ùøø|Îç»ì“X-s}}ÝÍ ¯zõJ'Ó×A_õê…ŽÛ§*.Zdtg¨N©)mÙ5jµZªÕjÚÛÛÛü—±±óóó™3>ÿ®°C@³6øÐé°áTÚ¦ŒÌËŒn_ð°©m²ž‡ýÿ±›››¸7Á+.×OÝ{8µ†$x8 1ߦv°áQ“¬í!k¸"ÚÂ(ûTǹ‘®¦«­ß_i”;Ðx-v ~½¤Rg8þ· ¯úôsIAÿLtÄ#`mœ-Àn"^|Uñ´¡N©¤’¤ñ}Œ\ªŸ}¢ÃAS¥éÊë¥÷<‚kLµÁSc‡û‘µ=dmYÃÑ®1ŠkŒâG÷b…"ó%,…ãøñ:˜Å£Íð– ˆ 댾¡0‚\º…-+ÇEYs–lûµ=d WPÁÖØCÖöµ=d WP!RL§Á ´ÓR…q» 0‚´Áí!k{ÈÚ²†+(Œ`mð-mqj;/k"Ñ`¿¶‡¬á #@â0†mQÁˆemp(³˜rØÐŽïK;È® 0‚´Áw°aåø0k¦Ñ¢Ã~mYÃFF0‚6¸=d½ÛidmOY3mPÁˆUmp(s˜r°‡¬í!k¸‚ÂpÁ–•#ë‹À¬âÞSZ­VÜ›jçççœñYBÖöµ=Qe==çàëÊ\__'rwiµZªÕjÚÛÛ‹{SµÄáç1…“y™Ñí þS\’ö×ÉÍÍMÜ›à¦ÒO¥}°€(PÁ®Þ1`ÍuFdmYÛCÖp…ŒXwmW§íŽ5/k0ÔN#k{¢Ìšq› 0˜ 0‚´Á YãÔöüüœõE–°_ÛCÖp…Œ`ÊÁ²¶‡¬í‰:k¦Ó°. #XÇ…HÑN° #AÜ •#Ç}{دí!k¸‚ÂF0å€$b¿¶ÇFÖt«± #Ä‚ ‘ `GF0‚6¸a *ÇLFúö[²¶…ýÚ²†+(Œ`Söµ=dmYÃFˆ Ói0Ši4¬q«PÁÚàÑ›÷ÉÚ²¶‡¬á #A< NmÉÚ²¶‡¬á #ÄŠ¶6Œ` `ÜÁ2F0‚6¸=dmYÛCÖp…Œ  ‘É©m¸!BÖöµ=d W|÷˜ÒjµâÞliÚÖf&[açÁw°Hb:FµZmævÑ·‡¬í!k{È®HLa„xÑNF·ºÕýJQ²¶‡¬í!k¸‚ÂNà*l…¹ì€qóPÁÚàöµ=dmYÃF0‚6x4î"¡S[²¶‡¬í!k¸‚€Ÿ˜FƒL§á! #a¢ ε¦ì!k{È®HÌ}Œ/Úàæ=jˆL*ÇOé’XÃ~mYÃtŒàºFX Óh0ˆqaF0‚6¸YËŽûdmYÛCÖpSi0‚6¸%··ú”n‰5ì×ö5\AÇΡ­¥( ÆLQÁÚàæ¬:îŸû-#¸%ì×ö5\Aa#hƒÛCÖöµ=.dM×…Å…¹˜F1 #AÜŒuŽûçççTŽ–°_ÛCÖp…Œp¡ ždmYÛãJÖœs€ÂÎb€Â ¦ÑX˜ûµZ­¸7!ÕÎÏÏ9ãóÕºÇý»¬§•#ÅBdدí!k¸"s}}ÈQµÕj©V«ioo/îMÁŽÒrìßêï$çd^ftûÂmÅbír+ÝÜÜĽ ^a* pÀÖƒ0ó`…ŒàŠ{ÈÚ²¶Çµ¬9çH/ #åÚ¨Y©[‡ãœF겎YÃF@Ìv>îS9€1F0"ê68Çþ{®M9D*æ°©Ê:f.f͸“NF0‚6øv¶9îÏÍš<ì×ö5\AaÀœs¤…Œ°Ñg€sqÊ!ÜH&5Y;€¬á #A|sÛ÷fMåhûµ=.gÍK+](Œà¨”p [ (Œ`mðÍìrÜ_š5•£Qì×ö5\Aa#l¶ÁÓ~ìwyÊÁ‡ºE‰ÏÚ!®göq'M(ŒË"?î3‚ÀÖ(Œ`„í6xšý‰žrp¨[$%µÁm3=8mœµ#¸£Ø¯í!k³(жGa„DàØï)FoxŒq'™(Œ`„ mp©(Žû[eíb8pa¿žï}ù2£ÌÝDZÚ?lû8Ûþ®Yîf½œ‹/-Î7vCa#hƒ?Õà´uÖ®àŒÞÎî×?ü—þòñtûâV·/nõÝÏ¥Z¯­ï7~ Ïô»ª~Á6nÈÙ¬‘:FH׎ýXÀƒ¢h7ß«ýÛŒ2¿ +ûr‡ÎÎVuñì³»/òáÇÒßÿªïæþð¤+ô§/ï:LÇú~ößèùÌ¥q'ñ/- (Œ`„¯mð¨D98픵K#¸¶Ïú'ªþú;µTÓ¯þô½¤oôå×_é‹Ïçug&EÔËù_þmõ³}ÿÃ_¤¤Ÿ.ü‰?«öÿ~9î0}þ…þüÇ_9W ù>†¸ðÒ¢(2#1÷1B¼\jƒ'ýÖ=;gw@ýçì–õOT-µôõü/µõ}õñtû³?÷ë[U·}šÚúÕÿ¬/>¿ÐOþÐ'j}:é0ýì—úB_é¯ÿ-É)´)—Ƥ#$Rœgo÷íK[8Võ~þÕþø±þšú2ç}ù5éçßéws‹®y~ª~Á¦€q'!(Œ`„‹mð8)ƒ“‘¬]èû{`ç¬hëWüX_|ü•~ñú›?´íTÚ7úòå/ô—Ÿ§‹^Ü+zì;ýõï›ý6¸8†l#©ãNš0•#hƒÛœŒem{JÍÃÑ{·¬¿W»WÓÇŸßêw?û¥ôòúò£Û9m¦Ò¶-Š$ýí?õ•¾ÐÖî0Ù‘¤1$îÙjì†Â‰Æµ‚­€R÷Ÿð½Ú¿ý©j?š®+úL¿ûü e¾ÎHŸÏ+Ž6ô·ÿÔW’ôÇŸ*óÇûo²°Pú³jÿ‘ÑøÍ’>Qëß.ÅÄìKÝKË‚Ìõõu"#mµZªÕjÚÛÛ‹{SRáüüÜé3¾¨›ƒS$YGùx E9ïoû¸IÖQäqQ$¹¿_'I³NÒ¸“&FH(©Ä N&J\8ÀæwüCa#|¹¢ÄÔ •ÉÄ78E–õí­Ù€0rû²_/çÎÛ~,“Œ¬ç›¾¬xiùÅ×0§6xøØ¿Í÷ÀyÖ»,ÈÞ%Xù´_û.éYO_¼´ÜGa„T RᯗIÕÀ´MõwÅx`Ó—VªÆGP!ÕHëülj, gÑt[êšÏ­+Òà"Æ·%ör}i|É>iV«ÕâÞ¯$¾cÅ1½GRxl;ËcÛ}l·Ù×Çöq›yl{‹Õ¸* `‚Â`"ñkŒhEÚAÖöµ=dmYÃtŒ&(Œ&(Œ&½Æ`tŒ&(Œ&(Œ&(Œ&(Œ&’÷&²A_õjW#IRA^Eùx·(¡†ê”šÜ}S¹}ªb6ÆMJƒaG¥æ[²ŽÚ°£Rs²wçÊjŸEܘ¯Cà†„Fú¯º:lôtš×xp«÷Ô¢¼ÓÛBC½Ê¸ì úuU_õõ”¬£ôUo$åâÞ’dvTjJ^“ªH Õ©Þ×A¿®jµ£'œÌ"fÉšJ .u1Êé`òõþr£+½u£*[Ôiå~øÊ>9”È:BCuª:n7Tˆ{S-Pÿl Bƒƒ³÷ãuöé1%?œ¬ÂH’t¨'3-‹·zĵ-é¼{+å´¿úG±±@ýzSj0͹ÉÉÕÛ³’J¥ñGg÷F%U^G…‘ºÕކ’‚Ë G¤ˆ]²¦ÒÞ_Mæª'²OtÓ¦¤JÐ׫îH…Æ)Óhvªê6Ô㈽ÉR~ÞÓiV“iµŽŽ˜Þ‰DþhÜÿ|S*i ©Ð eÄ/Y£ýƒÙVlðNocÚ”ô¯P¹­ cZ½{+iМt0šh¤n•NFtB]çü‘ è Y›ôUo¾UùYE•^O½FAƒf]}:üˆY²:F’¦Sgù»ÖÅé5˜3¾2ím¹­Sæx"’Uñ´§âÝ×CuJg:àêhì(§‹cHhÝ"Ìy¥‘uò ½z/ÑzFœ’Õ1Ê>Õqn4~aIãë^"BQ„šŒ!—ã¶EÐ?Ó€“«hì(îÆ ßh ‚Žè<#f™ëëëÛ¸7¬ðýu¸QdÂ÷y ÉQ(EŒŽQôÂc÷Ö‰ÔÌ8BÖpC #€í$k* `FFF ¼€ÕõëUuG“/Co,MÞÐsúÖß]>¼m\Y À.:F@*eU< ½!íà,tÇá¡^ßWLjX-Š ^\®¤Yø>2“®Q¸[Thôx«©ÂTfùg*çãi«Á™úϤ«i·¨ÐX»(vJšs¿ÏPa5;u¾èãi»§ºœþìÌ4^øÆ‹÷¸©(“˜JR-«âóòäÍ—GêVCwß°UThôÔëM>ãIºA³¤z??Ïi[åñiÔ}5™º[sÚ.è«>-Š »çiO ¡0Ò.[ÔóF®ül£Ïùʃ)·ü³û"èâRãåKáuM#u_5ì„ßzcñ"ëàòB£Éç…Лie‹§t‹ÅT€GFßâ<è«^íÞ'c®[ðþy³òª4 4Ò ©æô‘ë¿GÖ YÒ€÷Õ # 킾^ÝMgM šê…º@Ù¢N{Å0ïMWÜ ,_Q£0¸_“´ÆZ¦lñD…nx}ÑHÝjI]±@€YL¥©¨ÿjÚ *¨Ñž®7’ÍŽ†ë<Äðîkœ5º8ÃÎìBíAs²i™¼*½žz½Ð-¦¿~Öת߀uQ)ô_…®{¦üÌz£ÎV,Rðîí&O¨zèö“5Ú¡ÅØ«,.À # ­ÂSh¹²žOZ=ÙâÉ]ѱNÁ’}z|×ezûnòÃÃ×s¦Ñt§*y埅¯ˆ[Ü¡ úõÙ®R¸Ku (˜Ca¤ÒPÐbêÙâ"¯gw]£å‹¤ñú£IëgÔ­ªT*©ôæ@³ºÍ®9*4&‹¶t¨šõÅÓbw]*MyçTn³¾€YÜù`‚ŽÀ…ÀÄÿÆÖÍÄDz$ýIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/stylesheet.png000066400000000000000000000315501465265754400213710ustar00rootroot00000000000000‰PNG  IHDRFÓž× pHYsÄÄ•+ IDATxœíÝÏkéÚÿñþ“ö -M6ÎVš“Iâ:(ãáHx@\dV"Y(ˆ ‹\M"‚ÃãA™µ Â×F4‡Âí |‘`ȱ“™ù¾K¿‹T'ý£:éŸwÕuÝï«ÛîôþtU]}ÕÝÕgΕ/}ô_y ((ŒRF©³y°îÚ“šT—¯~Ôõç»z¤²V_ü¤›Ó! ÇÚŸwíÿ¢•[[úœë˜plAõ»šk^Lžªzÿ]ž‚qFp¤¬ÙÅ¿ëÑçUšž:¾zÿ@ƒD?|Ðæ[ fööZvQTYÑëgË*õ¸ßöú’î½ 3ÆðŽ‹Åã¿ó¸@9éoŸ]\ÑÿüPUizªå¹;ÐË;·µ¹“^¬”uíêßuõ¯ç5׺.ë@$ÑÏ/¶ô¦y[½Ó½yGÕ»z}û?¼iÀÐ(ŒàÄ‚6^ÜÕÜtÆMO©4½¬›Õª´w¸ñ½ý\[7Ò .ï06ìó—Çó>ÒcVVô¨y_èå:E’¤Ê}?-IŸô¾YUJi¡Ór]›ŽÎÛ ®Ýúé¨ ÛnJ¥ê²T—uµ­øz§{ësJÖ.K’J7þ®kÏéÍÐÄ#8PÖj[QôIï,©:ø³²þ‹¶÷ó¬ºvë¸#Ôxµ~ÜѤ-]Ÿ_RõÎ/j´\½½~øºóÛ-’4“Aû 5û2³W«]×µºö¤õpä'½¼óãÑ:Z¿ÝþÜJ’´ýê©Vš·¹ó‹¶[þwî‡ͶÞüí#=Nš.ëÁ“…QþBDŒŽì;z÷zh{ýQK›]úüvK÷Þ~е'×LøÑÁ¬]=êZ|ÒÏQšéÑí™^ÖV}9ûºÖÃŽ‹[:@zùäQF!ÔªãК$ílé}²¬¹ÌNÒ¡7/~Ñ?ªi1[Ó5½£k„QÁÒ…²ÔõžuWoî?Ræ¾zWIýnzáWmïwÔ}êœàÜvX&Ý🨲 Õ[×õ}µe>Åþ¶ÿ½®{;ÚæÜ‹¹ŒùQïg™]|¨G?\ViZ:|‡Ýý{Ãé·=íùû¤ÇóY‡0¸ßØž³úÛPcM-εLèÝiÛo¶§ß®÷ü¬×æÑkf×À\»rùøBòú”¢Hzsÿv÷••ý£¥(ÚþWÆ:±³¥Ÿ“å´»¬«‹ÒÏ;L…Ü)ÝøIÉ ©±ÿIoëŸïßéó)âcÿOÿ÷ßšKw0¥¿^ÑìóÝt\Ößþz¼Ãjüûƒ>K*÷úU½&çNOiîÆOJ.Ïwiýd[çmKÓUý­²Õõ7”nü¤ö²ìð÷¾VK17Àú»ízýµã1ÖçìÃHCiÝ™o~.T¿ÙóèË ¯žvµykI›m¿¯µ˜Í¸îHY3-u^C%­>y®›Õã¹[™½¤®OœI‡Ý¿Ö{ªÜýz ¥¿{îÊ‚ô–ùƒ sŒ`ßΖ~Nº¯.M_ÖÜ»ÚzVSòâ¡V+Rs¿òêàø†ÉÓ–¹´õ>9ž32]Õß*érÛ!»}|Ò;ím´ìŒ¶×ÓùwžÏ“¨^?SÛ;á½luçéÀó£J½’ν` }ßöôç/»³ÒÏýÆýœ ;V©}g~ ¯{=ox²~³ókàØ ¯>eÌ/ʼîÈëBK×®T]n)ФfAŸô;'hzJ¥+WÚçµøÜºþN•zÞè…Â.¼¹¿¤•WŸÚ&Á¶™¾¬›Ïž÷·h+´¦ôýÕ´'ÔÜøK§h= ³ÿ‹þÙ>®ýæÃ'=¨¦ýM§•8´2{áüñ…¬ ª©Ò…ÿ–žok{íòѬtã®ÜH-‡ 2ºS_ÿ“î„vÛÆ;Ìf5Àx3?s4º ÏYhoûg¿·Ð@ÏiÏ\³'^7Yg^wÒI0¿6g·}²´¦taFR¯pçîýëø#ù‡…Ô»î‚q§¡†ÔóüRÀièÁÏ;ï´ùü‘îÝê8d0ˆ·ÛÇ÷›^Öÿ,¶B)û<-Ãz§{wžêåþA÷MOiní'm,Žóñ<°òœõ;N+Ïè?‘J‹˜ÌÿrBÇö->Ôë+Ûzxÿ]ƧTþ£¯ûÊ>ñã‰Þ韯®Mž[»{ü_}|Béó×ß%õø„P–wÚ¼õN›’f+e•¯þ]ÿ¸qùè]ïá$Òÿ ô 4†Å¹ÁÆ;“yÎÆ1ñö¼f*êÝÉ8M¿ãâ5PºpE³ÚÕg•U¾ÐýÐ?§™Z&^/><ìØt|¿ëº6ïô>¹{ô1û¶îT¥ÔÖÙi|ÝÕáÉZKúgÆïjë€õ:ÄÙñ;AÑ1‚ ¥ê]m½x®ÅrËd˲®µ~ƒôòEÆŽ²:§ksÚ&qéñ;:utœ=Yh›:[YÐê“çz}»|XؽxØ2§dWožÿ¯>¶L¸m|ýÏé9ʹm§Ïß©:ïâ9ë{¬»Ú;jÞ¤‡x†Ñï8ûþ{ZÇ%©º¬­zMIý'=h›Ðœ%× ÃÎ/zóáS˘›s‰Êm'Ð<œu<Ö­µºx<®ÙÅÖ³«÷”ÖùZ ÎTŽÑ1‚é!‡¹µ¬ÿ<üHps>Âç÷‰7šåËzð¬v8Ÿ£õãÆ;ôq¹}nÅ~¢ÿÓWçàîÝ)}LºT½«­úÝ®[5¾þ[š¾¬Ï.§cè°ß<¹à ‡Ã`ãíëùËpÚýÆÿœ ?ÖÖy[™Ý§ƒŸ[«)YK¿/¬ßq.öÿ÷dÍ'ëm°\OvüI½ÆÑ<¡¬ë2¼}¤ÇWž§ÅÛ”n>«éfÛ 2¾neú²n®]Öͬõyÿ“÷˜+8®Ó, ^tŒ`ßÛGZ¹óT/“5:?Ö¼ Fò‹ß¹Ý~ž”-]¿“ñU!m—wµù¯OmÿÝϧnÚãG=~õ)s\ÛÉ/úùý®´·­—IÛ¼zª•[#|çS¿cê¶§=½ÆsÂý&ñœ ;ÖÖnKuN×N¹y¦~Ç9ÈßóöQÇ'0´½þcûi Z ’ëI2¿-ãºÞÜ¿­•õÎ1¯Ÿ›-_ ûÏÖç׉¶ÓŒ{. bqæ\ùÒ·¼Vsþ„¤SÏ” wZOºØytOÛI2ùrh ‰ŽÐSY«?´~•Áh_ {Þ¼8þ‚ØÒµÁN„ˆ°Ú¾­÷¡6à4F@/_NË|…øìléáÑ!ª)ݼ¿Â™” iAkÇob¯þ—71…ÐÃìÕjËÄZæ+Äêóóu½lÎu™^ÖÖ Š£béø>µä)‡<1æôÇ—_õ—‹ßå= ˆÜl"7»ÈÎ&/¹©0ZÐFýº¾Þç÷„5òyŒŽ?p ¾N…PP#Ï1zsIÕù!¿*2|ù5ï!`äf¹ÙEv6yÉÉ×y8ö#r³‰Üì";›¼ä´0JêµS¤öª“e–Yfy˜å?¿ü¦?¿üV˜ñ°Ì2ËÅ^n*Ôäë¤^Su~iôáÔ_|ÌØ ¹Ùóç—ßôMßô—‹ßéÏ/¿éÜÅKy `³ÉKnJ Èà &FäfK³jævîâ%ýùå·œG…A°ÎÙä%7 #nôêQè×ȅѵ'5%õ»šÓ”n>«)ᬰ=eËDñ‘› EQgnGv°ÎÙä%·BùÚû#“1È<"æ8 ‡ÒRFyi3Ɔ܊­WˆÜì";›¼äFa—û±!7›zåÆ\£âc³ÉKnF) £€¼´cCnÅuÒDjr³‹ìlò’…Q@^ÚŒ±!7›NÊÃiÅÆ:g“—Ü(ŒRFyi3Ɔ܊é´ó‘›]dg“—Ü(ŒòÒfŒ ¹ÙtZnN+.Ö9›¼äFa¢0 ÈK›16äV<ý|­¹ÙEv6yÉ-×ïJKêµ®ëø®4§ç÷ñÝiZÍóÁ;‹ ¬B ¥ä¥Ír+–~;<äfÙÙä%7 £€¼ÌØ ¹ÙÔon|:­xXçlò’…@ŠÂ( /mÆØ[q 2QšÜì";›¼äFa—6clÈͦArãpZ±°ÎÙä%7 #€…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3Ɔ܊aÐ1’›]dg“—Ü(ŒRFyi3ƆÜl47&`ëœM^r£0 ÈK›16äf¹ÙEv6yÉ Ea—6clÈ-ƒN¼–ÈÍ2²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹Q@Š ØÎæùàI½–çÃ÷Ç—_ÝTÔ1!7›ÈÍ.²³ÉKngΕ/}Ë{MI½¦êüRÞÃP ÃÌ/²ôxŠ…Ci) £€¼ÌØ ¹Ù4lnÌ3ÊëœM^r£0 Èñב›MäfÙÙä%7 #€…Q@^ÚŒ±!·üŒ2šÜì";›¼äFa—6clÈÍ&r³‹ìlò’…t`6/ £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£0PHœ@(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈK›16äfÓ¨¹1;?¬s6yÉ Ea—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!·ðÆ1ñšÜì";›¼äv6ÏOêµ< M®£êüRÛw^ÚŒ±!7›ÈÍ.²³ÉKnJ ÈK›16äfÓ8rã“iù`³ÉKnF) £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹…5®¯!7»ÈÎ&/¹Q¤(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈK›16äfÓ¸rã“iá±ÎÙä%7 #€…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹Q(Œq}T†•]UVôº^SR¯)©?Ôµ“~CÛmŸkµ2‘qºà¥Ír³‰Üì";›¼ä–Q•µzYõôË]×¥/V4›y÷m<;¾íÊ+éæ³S ©ˆyi3ƆÜlgn|2-,Ö9›¼äÖ]U®èûé}ÝK/ï5Ô˜.©ÜóWßöóûD  „sŒ~×ÞNëåóšÉxi3ƆÜl"7»ÈÎ&/¹uF3%•Z/ï4Nì½ùðIJ¤«õš¶nLiûûž·MŽæ"eÿ4µ>¹ž–[a<,÷·ü—‹ßå>†X–[ú;›mý"Žå°Ù±f¹UÆ3ìøÏœ+_úÖvMeE¯Ÿ•ôóü£ÃÎOeE¯ŸUõñÎmmîtÜ»óÿ*Y;¯—Y·íCR¯©:¿4ø˜WôO¤}|ƣǡ´ÎCg‡ÖR3%•Zÿïí¶¶5¥ 3㤽*k¹ÙDnv‘M^rë.Œv>èã~Kq3SRi¿¡]IRY«/jJž,þß^C ]ÖÕÅô¶‹sšÓ'½;ù[äeÆ~lÈÍ&r³‹ìlò’ÛÙî«vµyë©6ê5%k’ôIç·ô9ëÞ;[º¾^R²Ö¼í^Þ¹Íäkî4?²Ïá4À·î9F9ò>ǨuR!ì ·0Æ]tL"7 £0Xçlò’_ ‡LŒÈÍ&r³‹ìlò’…€ÜщPFy™±r³‰Üì";›¼äFa—6clÈÍ&r³‹ìlò’…ô‰/“ü£0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØ›MäfÙÙä%7 #€…Q@^ÚŒ±!·ÉšÔGõÉÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹QÀødà[ƗȆ“Ôky>|p^¾G&6äf¹ÙEv6yÉ/‘+‹_bqÌúá4€…Q@^fìdžÜl"7»ÈÎ&/¹QäáØkŒÈmr&yHŠÜì";›¼äFa¢0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØ›M“ÌsMëœM^r£0HQä¥Ír³‰Üì";›¼äFa—6clÈÍ&r³‹ìlò’…€\pöhEDa—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKnF0>²øDa—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKngó|ð¤^ËóáÚäÚ1ªÎ/µýxç¥Ír¿Õ'7»ÈÎ&/¹q(- /mÆØ›MäfÙÙä%7 #€…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl ‘ç2š Ö9›¼äFa¢0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØ›MäfÙÙä%7 #A…8‡ ‹Â( /mÆØ›MäfÙÙä%7 £€¼´cCn6‘›]dg“—Ü(Œ`|dð…Â( /mÆØ›MäfÙÙä%7 £€¼´cCn6‘›]dg“—Ü(ŒRFyi3Æ†ÜÆ'äGõÉÍ.²³ÉKngó|ð¤^ËóáƒóÒfŒ ¹ÙDnv‘M^r˵0ªÎ/µ]Ž­PÅ¡´€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹Ù27Îe4^¬s6yÉ Ea—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKnF‚y#…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹QÀð‘}À £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^rËþ®´ÊŠ^?[VI’ôIçéÍI¿eñ¡’µË‡Ëû¿håÖ–>wœ—Ñ1*kõþ²ëKªÎ/©º.=x±¢Ù^¿añ¡’5éñ|z{Š¢ž¼´cCn6‘›]dg“—ܺ £Ê}?} ¯{é彆Ó%•3ï^Öê—µ½~JG ’ü´cCn£ËãFäfÙÙä%·sŒ~×ÞNëåóš©dÜ,-¢J?Ô”Ô6'0J€º £™R:·(µÓP£×½ÓÛ~|Ò<ìöIsku­ÇÍ›ÅS¯Ÿ¦ÖvË,ç½üÇ—_s˃/·æêq[åy°¸œGv,³Ütæ\ùÒ·¶k*+zý¬¤Ÿ›®++zý¬ªwnks§ãÞG󋚇Ò´Q¿+­/éÞÛ®Ç:UR¯©:¿4øZ,_Ëß xÖãPZ硳ÎCk©½†]·m™Ÿá$€}Ý…ÑÎ}ÜŸÒ…™ôòLI¥ý†v%Ie­¾¨)y²ÐvÛï¯NÍž½}]s½Š(ôl¹£ØÈÍ&r³‹ìlò’[ÆyŒvµyë©6ê5%kÒáyŒz}ÿð¶ê?)¹!Izy‡O¨õâeÆ~lÈÍ&r³‹ìlò’[÷£1Çð)¦¹71ý­€G|%H@^ÚŒ±!·ÑäU(›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£0HQä¥Ír³‰Üì";›¼äFa—6clÈͦ¼rã\F£c³ÉKnF) £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£001œì€5Fyi3ƆÜl"7»ÈÎ&/¹Qä¥Ír³‰Üì";›¼ä–ñ%²á$õZžÐ&׎Qu~©íÇ;/mÆØ›MyæÆ¹ŒFÃ:g“—Ü8”—6clÈÍ&r³‹ìlò’…@ŠÂ( /mÆØ›MäfÙÙä%7 £€¼´cCn6‘›]dg“—Ü(ŒL'w`…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹QÀp.#À& £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£0HQä¥Ír³‰Üì";›¼äFa—6clÈmpE8‡¹ÙEv6yÉ Ea—6clÈÍ&r³‹ìlò’Û™såKßòzð¤^뺮:¿”ÃHŒS¥Ï`ËÙ<¼³Ê*”BáPZ@^ÚŒ±!7›ÈÍ.²³ÉKnFy™±r³‰Üì";›¼äFa¢0 ÈK›16ä6˜¢L6&7»ÈÎ&/¹Qä¥Ír³‰Üì";›¼äFa¢0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØ›MEÉíÜÅKúóËoyÔ¢d‡ÁxÉ Ea—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKnF) £€¼´cCný+ÊÉ%r³Œìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKnF©\ £¤^kûñÎK›16äfS‘rã\Fƒ)Rv蟗ÜΜ+_ú–÷ š’zMÕù¥¼‡`HEšcT4<7€ JHQä¥Ír³‰Üì";›¼äFa—û±!7›ÈÍ.²³ÉKnFÆ‚94< 0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØ›MäfÙÙä%7 #€…Q@^ÚŒ±!7›Š–'yì_ѲC¼äFa—6clÈÍ&r³‹ìlò’…@ŠÂ( /mÆØ›MäfÙÙä%7 £€¼´cCn§+â9ŒÈÍ.²³ÉKnÙ…QeE¯¾õþ¡®õó›*©?×je¬ã&£0*kõþ²ëKªÎ/©º.=x±¢Ù“~KeE¯×.OjŒnxi3ƆÜl"7»ÈÎ&/¹uF•+ú~ú@_÷ÒË{ 5¦K*÷ü ÚxVÕÇ;Oµ=¡Azá¥Ír³‰Üì";›¼äÖcŽÑïÚÛi½|^3™‡ÈÊZ}qWZ¿­Í¬ÿo—žËþij­:Yf™åâ/·*ÂxŠºÜy.£¼ÇÃ2Ë,woÇΜ+_úÖvÍâC%kÒãùGz#IZÐFýº¾Þé.~®=©éžªzÿ݉·ëWR¯©:¿4Ü øã˯n*ê˜ÛéŠ8ùº¨¹ñ¹*š¢f‡“yÉíl×5{ 5T:¾\)©$ék× Ëš™’4}WIýîѵsÏjº°¾¤{o'0Zã<¼`bDn6‘›]dg“—ܺ #IG‡ÎŽ:?‡Ö$iW›·–´ytyôŽ@žºçí|ÐÇý)]˜I/Ï”TÚohWÒᜢš’' ‡èG¯9(6r³‰Üì";›¼ä–Ñ1ÚÕæ­§Ú¨×”¬IÒ'=žßÒçÐ#sÈK›16äv²¢Î™!7»ÈÎ&/¹uO¾Î‘÷É×€GE-ŒŠŠç (6¾$ /mÆØ›MäfÙÙä%7 £€¼´cCn6‘›]dg“—Ü(Œ  Î“<( £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£0HQä¥Írë­È='7»ÈÎ&/¹Qä¥Ír³‰Üì";›¼äFa¢0 ÈK›16äf¹ÙEv6yÉ-ׯIêµ®ëøJÀŽ"Ï1*:ž; ˜2¾D6œÎ"(«P…Ciyi3ƆÜl"7»ÈÎ&/¹QäeÆ~lÈÍ&r³‹ìlò’…@ŠÂ( /mÆØ[¶¢O&7»ÈÎ&/¹Qä¥Ír³‰Üì";›¼äFa¢0 ÈK›16äfSÑs;wñ’þüò[ÞÃ(¤¢g‡l^r£0 ÈK›16äf¹ÙEv6yÉ Ea—6clÈÍ&r³‹ìlò’…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFVôsÀ°(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈK›16äf¹ÙEv6yÉ •ka”Ôkm?Þyi3ƆÜl²'yÌf!;tó’Û™såKßòDSR¯©:¿”÷0œ‚É×ãÃs  ‡ÒRFyi3ƆÜl"7»ÈÎ&/¹QäeÆ~lÈ­•C?äfÙÙä%7 #€…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹Q@Ž8—P,Fyi3ƆÜl"7»ÈÎ&/¹Qä¥Ír³‰Üì";›¼äFa¢0 ÈK›16äf¹ÙEv6yÉÂ( /mÆØÛ1+'w”ÈÍ2²³ÉKnF) £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹Ùd)7ÎeÔÎRv8æ%·³y>xR¯åùðmríUç—Ú~¼óÒfŒ ¹ÙDnv‘M^rãPZ@^ÚŒ±!7›ÈÍ.²³ÉKnF) £€¼´cCn‡,ÃH"7ËÈÎ&/¹Qä¥Ír³‰Üì";›¼äFa¢0 ÈK›16äf“µÜ8—Ñ1kÙá—Ü(ŒòÒfŒ ¹ÙDnv‘M^r£0HQä¥Ír³‰Üì";›¼äFa—6clÈÍ&r³‹ìlò’…€SY;‡ ‹Â( /mÆØ›MäfÙÙä%·³™×VVôúÙ²J’¤Oz<ÿHo2o¸ ú]Í]>ÐË;·µ¹3þzà¥Ír³‰Üì";›¼ä–Ñ1oyàhIDAT*kõþ²ëé·Þ¯K^¬h6ëÞ•’JÉÓÃÛÍ/iå•tó~ÛNĹŒ€üuF•+ú~ú@_÷ÒË{ 5¦K*gÝ{gK×ï¿;ºøùëïR¯ÛÂM›16äf¹ÙEv6yɭǣߵ×v8ì¼f*§ÿ²Ù ç¥ý†v{üR¯øÓÔúäzZnU„ñ°Üßò_.~—ûX|¹ÙÖ/ÊxX&;ïË­Š0žaÇæ\ùÒ·¶k*YS˼¢mÔ¯ëëis‡ÒyIõ%Ý{{ÂíNÔkªÎ/ wgçÒÂá¹òÕÝ1Úk¨Ñz¹RJ'aŸdAÏ–¥W?]Å Web‹=7«;êØs³Œìlò’[Ci‡Î:­µ:üdZéÕºþ¼×A4H~fìdžÜl"7»ÈÎ&/¹uF;ôqJfÒË3%•Žæ •µú¢¦äÉBúŸEÀŒŽÑ®6o=•ÖÒIÑkÒã[[úœuïÅ9ÍI*Ýø©mõëÛ|.-‹—6clÈÍ&r³‹ìlò’[÷äë1ù(«sŒ,ã9òÃW‚¤(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈËŒýØ›MäfÙÙä%7 #=1×@l(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈK›16äf¹ÙEv6yÉ æÜÅKúóËoyˆ…Q@^ÚŒ±!7›ÈÍ.²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹Q¤(ŒòÒfŒ ¹ÙDnv‘M^rËõ»Ò’z­ë:¾+ (Îa”/ž gó|ðÎ"(«P…Ciyi3ƆÜl"7»ÈÎ&/¹QäeÆ~lÈÍ&ë¹Å|.#ëÙÅÊKnF) £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒ ¹ÙDnv‘M^rËõSiÀ°Zç^ð‘fƒb‚^(Œúã˯n*êEÈó¤}·Ù¨Olß¹Õ[‘rêGV–1ææÇÜby#f=»XrêÔOnö f #‹,·‡cFn6‘›]dg“µÜz°& £"Vœ±¾C8Is`‹Õíû„nEÌ2+'s…QŸØ¦ÓVëíáXtæHn6‘›]dgÓI¹YÚw›*ŒŠüÄ6q¢ÀC²ê—÷ÜK6‹#…‘¥'VŠûD’½¼²´fKnÞ›]ž²‹©kä!·s/¿0²º“ÍZ¼´‡cCn6yÍ-†­×ì¼ëÌÍêþ»ð…l±º"(¶%¶YÎoô¨²¢×õš’zMIý¡®aPM–ŸX‰O7Y×ÌÜl"7»¼eC—Oò“Ûˆ…QY«÷—ÕXO¿v]zðbE³c˜õ¢¨©u…ðÞö’Y'ï¹yEnv‘MÍܬï F+Œ*Wôýô¾î¥—÷jL—TqPÖŸTÀ Ö5‘Ç×e,]#ÙaŽÑïÚÛi½|^3•Ñ~£õ'µS ‡d<¬ YbÙ˜yäy}ŠÈË:7Za4SR©õòNCnžÍEÊþij}r½,Ÿ»xIgt¦0ãa™åNEÏ8—›mý¢Œ‡e–³Þ${Z>£3Go‹0ža·‡gΕ/}뺶_•½~VÒÏóôæèrUïÜÖæÎiwî–ÔkªÎ/ =œ¢óÚUñúw5yþû<ÿmÞyÍÎëßÕäõïóôwáPZ硳ÎCkhú¦o–1ˆÜlêÕCñyÎÎóáy/¹Ví|ÐÇý)]˜I/Ï”TÚohwôq¹ô—‹ß¹[)<½Kè…OÈØDnv‘-Íý€—ÜÎŽv÷]mÞzªzMÉš$}Òãù-}ÇÈLT E-l‰å5Ù|ƒìáoõòw´á´wº7ŸžÇ¨9×™šmF/]#+D–ÖI“°ÃK[?Fdg“—ÜøJ€ZÛŒìhíðÒŽ÷ÜŒ˜³³ÌKnFyi3ƆÜl"·ü Û±$;›¼äFaL€õwì+ £€¼´cc5·ØçYÍ dg•—Ü(ŒòÒfŒ ¹Ù{nyw-G)ÌcÏÎ*/¹Q’÷Ž 08 £€¼´cCn6‘›]dg“—Ü(ŒòÒfŒÅÜbŸ_$ÙÌÍ‹Q_dg“—Ü(Œ€ âpØBa—6clÈÍ&r³[˜“M^r;›çƒ'õZžœ—6clÈÍ&rËÇ8ã’M^r˵0ªÎ/µ]Ž­PBšïÚCÍùa~ Ciyi3ƆÜl"7»ÈÎ&/¹Qä¥Í›qäfu®‡e¬o‡B¾öÆÕ­$;›¼äFa8Âa4 …Q@^ÚŒ±!7›ÈíXˆ®Ñ8‹r²³ÉKnFyi3Æf\¹q8-,Ö7»ÈÎ&/¹QNp yáµO(ŒòÒfŒÍ8s£kë[;K¯=²³ÉKnFyi3ƆÜl"7»ÈÎ&/¹QMâ;‡2Ð^{Àé(ŒòÒfŒ ¹ÙDnv‘M^r£0 ÈK›16EÏwìÙŠž›“zí‘M^rË.Œ*+z]¯)©×”ÔêZÏ»/hãèv5%õçZ­Lj¨€–&ÂÂ^{ÀÉ2 £²Vï/«±¾¤êü’ªëÒƒ+šÍºw¥¤RòôðvóKZy%ݼßã¶pÓfŒÍ¤rc5Y¬o“5ÉN%ÙÙä%·î¨rEßOèë^zy¯¡ÆtIå¬{ïléúýwG?ý]êu[¸i3Ʀȹq­·"熓‘M^rë1Çèwíí´^>¯™>‘Í^8/í7´;Ž‘ k„<Œúº£ ‡gÿÕ5?h¦¤Rë-vjôó›*+ztcJÛÿÚÒç7IÚæ#uÿ4µ¶ãXf9ïå?¾ü:Ñßß¹“ê÷¾ÍSÞÏOQ—[ó+ÂxжÜ|Ý zßÖ¢ˆìXö´Ütæ\ùÒ·¶k*+zý¬¤ŸçéÍÑåª>Þ¹­Í®û§´Q¿«Ò«uýùðý¢¤^Su~ièûV úœwì‡a^G¼öà]Ci‡Î:­µOQÄŒCjÈà¯;Š"Ä »0Úù ûSº0“^ž)©t4o¨¬Õ5%OÒÿ¤(DVËÅ*·~wRìœúÃúÖŸ"¾îÈÎ&/¹í¾jW›·žžŸhM’>éñ|yC‹sš“¤?)¹q|uƒB)“—û± [s'•µ¢(êë[ÿšÅQ¯×\ó6¡M^rëžc”#æDzÞÅSa’xÍ+Œ$µ}: ¤ŒCiù Õ5 Ý¡ ùxüm<^Ñ+ôãñ·ñxE{¬ÐÇß6¾D Ea*Ü#Ϙ\n¹ÙDnv‘M^r£c¢0HQ¤˜c¢c¢0HQ¤(ŒRF) £<,>TR®ÕJÞÁé´Q¯)9ú!·Â«¬èõQ^u-ïñ ¬gæ9Ú¯Q…VYÑëµËyýª”TJžª:¿¤êü’V^I7ï¯h6ïq¡‡²Vï/«±~˜Wu]zð‚¼ õÌ6gû5 £ ´ñ¬ªwžj;ï¡ ?;[º~ÿÝÑÅÏ_—¦K*ç8$œ rEßOèë^zy¯¡yë™aþökFÁ”µúâ®´~[›;yÚ½p^Úoh7ïà¿k¯m;¯íý˜°žYás¿v6ïx4{û¹¶nL¥—ôòÎmíÝúI7žªú6סáY¹µ­ì•=º1¥íõ-}Îc€8ÝLI¥ÖË; 5TÍk4ë™מøÜ¯QMÀçç·U}ÞzMY«S’¦ï*©ß=ºvîYMÖ—tÏًʪîÜZ-hãÙ²ôêGò*²½†­¥Qå°PúšÛ€0Ö3;Êšqº_£0 bW›·–´ytyAõëúÚÙ‘@A-h£~W¥W?êúsšûÅ—:;Z·:­¡˜XÏlñ»_cŽp"6Ö¦ì|ÐÇý)]˜I/Ï”Tb®Š¬g(:FÀIç4'I7~Rrãøêð‚ÚÕæ­§‡çÄY“¤Oz<Ï\•Âc=Cœ9W¾ô-ïAÁÿéÑhHeÍEIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/symbol.svg000066400000000000000000000307731465265754400205260ustar00rootroot00000000000000 image/svg+xml PythonQwt-0.12.7/qwt/tests/data/symbols.png000066400000000000000000001544421465265754400206760ustar00rootroot00000000000000‰PNG  IHDRB…¢œ‘ pHYsttÞfx IDATxœì½=ו6úÔ‹)pWè«–49rJ‚ ý„èˆ &¸‘@R°ÎDçTtA@‚HBÑ c ãø„Cb:Á`’é‘Ô‚Ã:œÖ ªVÕÚ»ÖþÞUµOó<­îÓÝU»v­½¾?ª¶m;œp 'œp '¼†ø_[/à„N8á„N8a+œ¡N8á„N8áµÅI:á„N8á„^[ü_[/à„n:^=½ƒG/‡o.îâÉg·q¾éŠn6ÖØïÓ;MÃiÿN( 'Eè„ëŸâþ³+ó/\\àòýðáí[‰Œø/>½ñV«0÷•ïyý /¾ú¾yy…+öñÅÅÞyç}¼÷Ỹu~gœt¸ÄÃç÷pkp #NŠÐ ¯7®®ðòê^~³¾Uz¹§lÓõõ+üôÝŸñ‡gk¯íXq pBI8)B'¼¦8Ç­÷.—“&ôÎ[“t7‡­´¼œË‡x>¸‘üC]¯ðôÎ#¼ä]=Ãý;¤Iø JÓ=gŸò¾ûêxFž‹KÜýäÞ Zpý#¾çß_¾7ÓÏÏoáüö-ܺ ØöÇ¶æŸøg—ñüCà[ïÅå]|r¯¶ëWOñÅ^âê .pùðܳ)°CnÓôì¸üHú›>ø%ê—á“oa­ô'e\>|>y*¯_àÓûϦõ û{ýê¾úÃ7øþJÍßÂÅ.Þ™¯ÿUÆývÒšÏ;RpëW_±{Ò£\âý>Ä퓱rBfœ¡^S\ãÕŸ™´¹¸‹oª‰~õ ¾¸¯ È«—xvÿ{`ôpþÞ¦¿}ùw¾¿ÄÝ÷ßûïJÊÁ9Þ}ÿÏH‚½ü^|x‹Ýã”mÿ]œø‰_âû?àSm½W/Ÿá>€‡øF Ó]áå£ûWœÏ.ü®`°ë_½|„û/¹71/ñèÎËÙ§wŸà³Ûç¸uï!._NŠòËGOñÞó{¸…k¼ø‚­ñâ.žÐüø ^r­a\þ®®ëϺßÏpÿþìCûß(x…§Ÿ>‚‰½ºz‰«G/ñͰO'œ §>B'¼F¸Â³ûwpçÎܹsÃDå[¸÷ü9^².îâÉóçxþü9žg›\ ¾ÿü›ï®{ ï]j]½Ä³gpØËO?}ŠWì2ç·?Âô'Ú=^ý™yÂ.ñ‘$Ðt¯áå3c®ÒË?¿2¬ÿ¼ÿäI¿¯Oâîû›GOÑÿ•¦`\Ò»xÂÞÑž}ñ®Ýʃ[¸÷ä.¦¥¾Ä£§¯pýâ‹ÉÓ† ÜýD¥Ù‹Ë»xø„hè9ž<ä׸³¯ {”u¿/q—öûùÃ~›ñêé¤]\>ÏÄ“»Œ¢ž}å¼Î '„à¤pÂÕ3Üÿô)^¬#å<ñ OïÒ¦þû4x¡—¸KR°ÀÕ?™þhÄ­{qyaþùÕÕK<ºÏ×¥*OWß|7*Šîò=YỸú.I\Ü}8*)ʾÿQVR.ÞÆ»ä¶:¿…Ûq­î{üx àÕWª‚ñ!)ç¸õ!Û¯«g0éÙq~Ÿ¨Z„R~q÷Å»s~û3|vï¶¶<¿uêãšöh¡ýƹ¶ß/aÔŸàúþ0’Ç%>º7µ´8¿ýS®×9á„@œBc'¼FÐÂׯðâ‹G½¼z‰g÷·nbëÅÛxw”(ïâý‹g¢(fܽϞàC!oƒãêÙ}<}«(ùWWßà»ëÛ¸}®†Å.ß3ìô;SÒù»ïãâÙä±xç­[£’ò–³óÄ›oãbü³+üðpý#Ï‚zoq7‹Ì“Pï—v~û3<üAÍêÿü¡º¾Æ«ï¾ÂŸ¿ùߣokà…ÕöÛŸ~`¿'‡ §Â†râä:áõÅÌCð:Xšƒ@‹ø»ó[÷ðÙgƒçàÉC<¼{©x—€A@À­™aia1“´(ņ0®×ˆ7ñöÅô-'€Þc5߸WO?Åû÷ñèÙK¼ú:€ýVÒNX'Ð '0”ciöyD÷¶^Æõ |úð‰–C5Vнû¶!ÉXMš¾úæ;¼xgRƒ.î~¸çM«‚{ç­sàGÛü„®¦ï.Þ~s™uðê+}oû\¥wùûxõTÉ幸|ˆO>|8?W«ñ¶€´ß^8µ8a=œ••˜«gø‚剩ž”!·æü¼Œ.åÂ~› Ð‹Å;{ýâS<½ñžÛÖÄÉ#tÂk„¾jÌÜ÷o ×¼ùö¦Ì×ßÅA¹Ç˜G“ù&Ù@eä¶ßÑÂ]ç·ñÑå³¹0¿x›èA×/ð©Ò ç£~¿Ï?ÄÝ‹—CÂôž}õïÞ»s\«™l-Lù/Ì rý_(ÉÑO𠾦y>–Šïñã+àÖ-ׯ°i´I74h¿MÐò×^>úàý‡X?¨Ë‡K-ú„×'Eè„ô‰Ô“+^Oå¿wa,Gƒz®laXàâ?™¯YoZ —­Øª@iT©¬G-â·?¹‹o(Ä÷òî¿Ôÿf^®¾^áé}Uûäö9Îñ î~35«û Ýþ—ϨïО=ʯ´{Ãk¿M8ÇíÏ⇱PßhËÈÞ ¯N¡±^o\\ ýJ´fsç·ñÙ“»JÙxß§å¼<îÑß(Óõsàü6>{þïÞÅåÅÅli—¸ûð ž|vON­ºÅËžÕ“¤/.fûÛ¿oMi£ç¼ÔŸq lÍÝxõ”wç X¯°Mëëû õ}‡æ-..â®Þji\\â®¶‡—wçûmÄ-Üû¬ïtyq¡ýìb¤·ø™€'œ0GÕ¶m·õ"N8á„› mœˆ0rã„ã†ÿh™N('Ð 'œ°®_üAõnÜØ9&'œp±â¤p áß}s5}»U’ô 'œp‚'Eè„NX×ßAÕƒÞ=…LN8á„âPTŽÐãÇñàÁƒ,תë3ìvêgMƒÙgÊϺýô=tUÿuÕaüÚ†CÛ¢®kÚö0[ë"í¡ÅY]÷÷жý÷ýuÏжœÕ5*˜_=Cƒ;LÛ À– mDÓ`¿ëø·ÃJºñ×›fº]Ÿ®mC·Ÿ.P±ëi·Ç®Û£©ö ÅògP~ÍtMåóÏmë\ßÚ¡O6þù‰^Âèó @…VÛ“ú¤ßÒé³CåE›´~ýÝ*4*lN¥Ña7¬„h–Ó& Ò§7ig@[BÝÝt¯ëš^niô)Ñ&àOŸ6~`"1Î;uúŒáÀDŸ:'mïÙu{+}yÑ'§MfÛö€ú¬žñN‰ŽF´óãPuÆ3”ëúÐæð³c Omêç”x'ÇÉ#$€ˆ³ê0}ÍÿÓg€º®Ç\×uÿï¬ÿ§£=´ý˨¦¯I¨ÚÝp ø$„*´íaR¶º »no$| ?h;ìPuý³ i¦Óc‘uTs†·þ7,O}öö0»5)]MµÇn7u £›NÂn7îß1ƒï5}]ŸõJ¯œf9}½€é“ïM…MôÙ±k}ö‚fºÈdT#}Žë¯¦¯98JôI¯wßT½ ÑÞ·D3 ‘Vég’|•Ž….h‚éó5ßg‰è úä¼S¤Ï VúähÛV¡Ïm;ФÆ;áæ:º "‘ìvsÚÔYÉ… ô9»Àn‡•wÎ~U«ë™ûÈ~˜'eµm¨5%ˆ0Z6‚é. šñ ‡®¨Ó6K.îA3ð¾6gÒ:}v¨p@; «Q)…âõáèóЪ´I×®º¹…>*éU3(%*F\Ýn0†, v;Œ4LkéõìFÌ.ÚÃЃ’n‚äõù½R!‘}Ž¡sâ;õ€= …€gÕ3ED⟜¹GH7 :}’âC_óûTŒ6Ƶ z¯íG¾¦+@UÓ ôÙÃeLÚ0î×°>Güwz¢)ÔÖü“xG4ÕsAÙ®ñÜN{3×zÜEˆÜéa[è*ÊèšTÛtŒ|d'޶mqÀ$PÈÛágð‡¶E 5´6»_}Öëÿ°ïXþCG¢·¼¡ý¹žT¡Qô•Zg Âa–t!ú;¾_!‡yüûA0£«¬‡™+7ÕÞžó¡_ ”ÃÌaͼbô0YÑuGRx€¹’>Z×铬ìšÑgÕMž˜qdù2OÒ,'h7¶_m{½£¦ð§QWïµ2{hԦߘ?¢+mz£ ÚœC5"g¹-c. €ªC hü·y“|õ¨+…>é>¾´ åï¦ðZÛ0iÛ½ Ô¶-ª!„{y;{¬cûñš´~èvÓçèþ©½bR¶:Ác)óNîMžSÏ<_Œvú2@uúó-0úd ÖŸR@Š:Àr!R'œF¹Ü»Šn½˜`n[R -€éõ „‡Ë¸“¢EKò éJ‘IÑ1atÓÚé0W öÝ0º“)Ì1zkªAÒEÆÁÃR\‰“…M5žÛÞ’™~¿ö`r;O1ðöТ‚œØT Y> uMjš…zxØa.AÐðC;}ßS §Ož?@üoP0òJö÷ºpâ .‚¸âÍ­m‰>u%À…Í(¸’ÑU…AYßMïu”ã/ ŸMk;ŒIߨ«‹§än«õ=$CÍõg³ÿ~\7ó`¢RY9š½GqÙ Ð5#}N…(XÐèüRç£Ð1›¦Ál¿¥ô]Iå4J¿S×2íÕŠzàDiô9{Eä9‚b®Ä¢”iSTmŸÃÖô÷«¨(†:F%Qw ¶ãyî‹ 4½‚U Z7ô½=ãÌ`§OºoCn°(üR{³ŸoŠj4ÀF#fÙ…¡…B=@UØ4M‡ö0YéÄÃL8h‡ÚdÕH?ç1mR°È§ÃIJ¡÷ìµgœ¬EE„¡gZ½Pv¹zõ¼º>Wøæ9Ô3ÑPõJ)v EÛ‚»A.g@=¬¡ÊgnHyjÜŠáà᪆ÌN§U3…s¥g5yCÎ(¯‚îÝÀ ‚qýz¢? ›j…>Ïç•®¤7ŠÑ¡ \RZƒÍÍn× ð´)wP+Aôü3 C@ä…Fúq<œ[‡‡aÅš‚m WÔUoú¼ÊÉ–ïE•óV~’wgž<Íò͘'µpÐÜ÷zÁ OK êʽf<žUµ‘g>«ëñQ9]×Â^Ñú¹ˆQr)5šSøüp kôF¦N]M£í8Ñ']c¸Å”4ñ¹Ùb]rm)HÞtú>^»ª±Ñ}Ê*aˆ0u¯Ò$Uk[?Ðgu=S‚ôÏûJ…þ€ðd ? cuY «(´) "Jîk†ÿQ¯†à3 ÷0ªŒHZÓ~é— }’ÊR'ËÀPéÀË›÷•æ µÓ~ñu¤âªÇ”Cÿ¿†^åH¨`ºDŸ‡¶EWA©ÒQ*u4ªºž.ˆ>yhÖ´Nª2jö½{‰ŸC}ý•ðüʵv·zÆç…êTÁ8†º*Ìh“[št¦:ô–{ :0 ƒ G÷Ñ×Òžów.• ûßsþŒ<§-e&#¦‘{JŽÆnL#‘*{õs¤ƒèTúÛño*{n˜NŸü9ˆoƲ|‰o žŸn·CÕ4¨š=ªfo\ƒ ’çikåy­h¯ÇÿzÏ×Ò#ÄÑ»÷í¿3÷„ ŸÌdÕH ÷ì,‚—9Ïþ~Ðô%FĵõÑ"4øÑ¢ÙWÃ÷àïÃp€ì¾×à üÞ²ÒHîK»ž95Âaîïtœ¢÷òïIPÜïì—ãâ•#d$!@ðMðçôILG¥«³á¿²³ï •%ïKV¤i3Ë[Ë}R΢BsþÕ¢ÜÃÐWBJ ‘és ý]1%ÈBUeÉô©{}½ÿŽ¿3–\Èi¨ç×èÄœ!‚ÍÌ•¡)íŽ{ÌçÈ)7O¢O_Úœ*çX²óžôP­úpð q–Á+;é~U³öÍÑ$íë)ôµ”òLÆ7yÓÇ‚‡áàrOüL–6%OÍ›æ “ÌšÑ LaJH:ÊyÀtô¼ Ó eÑìȽ[i "C0Å`èÇ\!Ú”#©¥ÓƒW¨™ò¥&Álóé k¨ñ{&5³j†¯K6}Æ´ÃeZè•Czv1ïr’ª z…¡«ú°…ôwVÒ•¬øœg‰yòízÌ/éÑŸ[¿R÷Þ``¡ßÊž$Ì!ZÜÂK§O®8øð^@ÝsîIQŒBvÞ%èÞ6yN˜l‡‹¶H¡p^ý‘è“”MS£EW‡n¬òò}cH=0%a Ä.Þ U·êM‰šy#¡óä)BŒõbƒN8Üêå‡N‹=óØ7ϱ‘ÜÐüsý€T¨‡RP5yîÝ—xîŒ w:¦x¿VúKa8휛’Luæ=&pkŠKÕ³Ö@‚ULžRú.³ÇWŠ xu$ðº†MØSÜ”„˜'zÐ{óÜ*®ìúežãäRžˆ~mô9Òä¾Ïªu£ë‹Ô„o?¥Ñ%hú[¹_”T¨á+lŽ#¿¾¯š)·ñ¬6‡“ô¯É›rp(06EÃv z·c…FM{Øí:Ôý,rƒdбÅtPñΞýùÔ:…ßW>¢Ò¥ådÌ£T€2ä‹ñ´WAÏBlPzß7HêÁË “‹½QšÅ:TN÷M0 gæå raù¬¹¿Ï$€l‰`½¦[¡¯X¢Õ;ÁÆ‚{…øA3]³ÚË]}eLŠ×1Z5”àGåÈ¢¢nIħdôÉÍ[QÍÙü:ÌâT«•”sb¼†¢¨›žÇmq!8MÐ(‰øp4ý³Òo­c†nH°4^ÐTÍÐlO½Wˆ°)¡J6‡þ^;æÅ•‹ªçÁÒèUiïé“B«t}Õ´=Ó¤ë4λQÐ:gÜÀÇ9{âØn?24†Ò,~ŽfÅ'M£”åWM#Ÿ}a¿|aò$7¥M„müFá°Š*Þ8Eˆ Y|ÜóÁÑ[“G‰ ÜË¡¸w™Bäµ>Ã,d«‚¥-%ËI¿Í­š‘qhûÕ'bËëØ7òìifϬ•Ó`Õð\®ŽÕª‘JåG 4%¹ÙU%»+©Œ{Ø‹a}hÞ½Öž>%o%U$Öµ4³lêòÛbðúpB7Ð'§—‘&ÇõMšÓQËöf¼~Ó(ByÊ9Q…DŸÒŒ©]·­n}¯aDŸ+÷⊺¤¤›* JÞ™à±qÞ_kî ÌÏBh„Q ¢ð{'ܫ޽‡ºiF¯;€‘aI§I:ÏgÕt-|B¡¦™y#}Îþ\¥O“dòܽw•úÄkÑfˆ7Ý·"Qÿœp#!ßáSé`*#îÖŽ Á&h$KÖácíè×ÖÝ»>]N•}hÃÊ:¼š—,ÓíÉŠ¡y@jÔƒ‡h ]ÓÄtj)¶ê¨ÙïžÉÊ0`I¨ŽïÀ3Êv õ÷æÞÊé½Ï¯; C ¡ïŒ>]xô>èˆ .¥ AË!q!Dq”ÚC„XÜzÛ úlMè ³Ÿ[R ¤p•‰¶è’@·í³/}šu@WÖ]JšËhÒùÝð)êz>|—’±×sÄÇy˜Ç8ºÈ³v$†ÎU¶µ3µ’8¸¼é>ÐuIþÞEÈ]‹–MPË[0ËjÛÑÖ5S£-`-¤Hñ—K€Çï+.À,!þlºÒ(¹wù³Öuß÷…ƒÂXÐTLØã~i úÜ'ºµïP óýoˆ*ÑQJI2‡ÔTjù`‚^}h¤MXé @ 6%Ó§í~ú~Í&s kÓ×ɽ‹Ô;ËDó³u´ýY<Ó”´þ¿“°1ZÜÃÃJŠêLØ‹O´BÒ t>$^ö†Í £a¸¶0Á”pOJ¿WÔûÏ\OkW€æùœ~²‚ú¢u…Hï'U ïÝRÕËÂgd {©×N £®(s°<Ò tøFz„¬Œš•y¦÷½B v>+YusæÊ›Ît÷®bý ½wŽÉâÎ ã:5e(ؽ (eÜzë‚¥az¿!tdôN*Ìnø¯>p”¾×ö…3¾/)ÕJÒÞòuêJz*MÍ”\|Ëp%H÷QZF –kŒÅ½%DÚ H+0^Cðèè×7aê½6…=Ç«çs…¬³ªë©=Çð~û¾;{ôdž” Ïynp“¼!‘ãC§zZÁ¸FmJ€éY茛xihîj ŸSSÔMJ: *…6Ú9ZEÈÇÅ `L8 U‚lD3ï®ê¾†­:°„O†øoÝõ‚^ï¤Êa´Æ‡ƒadLüYÙ~…™þ•âÒ‡Ùp是OVwœ{pÏt[¾t óVP 0g ”ÌÃ'Êd÷Àý¤RÖþ‘÷ãç&AÃïaÊɳÑj/`:4JŸz.í—óy(O+sÏ!hJV±†$Sq5Fò HÁåôh kô÷™Ò %‹G>yxƒBÔçÆ7Ì3JÝÄ JßÜmÂ̘¡ÏéËéaæãŠÁ:T /‘ª_ }Úªc°©"ôøñãà¿™'OÉ:‡isb<Jã6bžŽkðNÓª7g4.(3Å`~&qÍ-åÙ‡^~’wD \€)y¶3º©ý÷kk¸¼ z˜Àô>c™Ž:äT¦O]Ðs嘃 „®s^õg/R {˜„.Èô{I†§Q›`¦ÐIGôš %­€”Z~”Mô5A¢Kýséý÷“áÅÜú=L°yÒ]4ÎsŸô}2=kÝ3µyhtåáp±{QåÀi›*BEOè–arq‹«o½Ð¶­r¯þ³°÷Ê+ºB÷yôb ëW’œ….»¦½ðñîŽ×p0;“aCJ4ç>•]"ˆéç ‹Ù®´ Îð mª#¤ÚG¼ÿ™VÑëà±Ò; ¹(Œ>ÝLžqeÈôFCUhÌyè35­@ÂцÆ|`*©Ó‰Ã¥¹u(QÉÉókpA:™÷@褊íÉ=2WÉtÈæ½œ8LÌUÌ’TrøA÷Vº¬:ÝÇáK“ü^ô¹$à¥ëÛ>ó¡OÅ"zí,â qyÛÞ)7h¢+»Vhۆ°òQ>É—#?z£XlôéUõæ¼¾ÙÍÊ]ž ³’>½—GÝ‹.=a•’Û+S¹Ó ^»¡«€Êؤf¥ ®ÏDbÒÒ©Š«Ó>óµ6­·‚:øÒÞ³m,̆‡j ã k(‡Zû}fmøÂÔó(< Þç^¶ëèÞ!}fÊÁpÁgäÀüºóÇâï±f‘ÎFÚ3¯SÞ‚Ùž±·râ n÷…í].) %%ȦÙÞ;Wˆt¥ˆßC¿Æãg>ô‡°@Û:SX^ÂëC•ù`eÓûï0 O-ȉ]/0…Ĥu†ÐçQy„bæ.q„tš4 | Ã鬆ßKïV-U ¨SÜeLá;÷‹—¼$dœ‰Ì^0%ûI|ÖÜœî`n¡.ççM+G¯>>!÷t)@6úìPaïA ¶¹QQì;% «b×íÆœÒ³ÆX­1a!BX†¬MG*ŸæÕ¶¾Q'[ï2“÷€ßƒ0õi; æûzòn̶½‘Gh÷ÜÇÑ”trò)Ÿ|AB‘ŽJæ‡ÌXNm‹|˜ŒÓJe ^ïÃÒ Ÿû $ÏB^ŸÚàÐv˜Ç˜º–O½fgæÙ½„7`Þ‹crïúäJ¹½•~÷°z„´s`j*]CïNnz&SŠþY]c¯õžr æØ¢ÓL°Ýlè…Ž„äÕ,ÂZ+€îãBÈ16U&ùçWÎÔm¡©ÏU¼òÿ†Ð§‚®ßšU±š IDATöœÂòÃsöüSC2 Î,ë ñÚK×¼}Š€bò òÀÀ«C Žz±AÙÒ bptŠPjñN“6̤¬È±÷»Gð½<„µ­LåÝq6à'dºÝNm;ÏÖ)Í›OW]ÑÂFð¦@Ï¡ ©ž ÍÛñ½—Kéã-$¯(¿Ï1óm…@Þ&ý¹*tJ”JÜ­5ÿô»¬ÇVLjn6!ô&uK橉Â&ƒ I…οlù‚=ôf‡sžaz~Ó5MŸsúäPfí9º®ëÏêÕ2)@Ü 5q¦ÑR+ú¯€ñºÎpÕÄ«My…kŠ’¡bZ› 1ÕàGªÅ)@€§Ië½ ³qtH½) 5–ðHÙ+ÔØ5Úö0# ›–MP¢n>k&ÒlœYÅԟ庰Éq©ƒëäNMÊצ}6Ÿ§ÞßµB+aôçš™uu=Nœ§9u’p1?.pú÷èZÙñ^MµŸ{… †Mø»Ébqî±´™(^ƪ¼ôk„Ò§4KÑ…Ñ@6<—É«®+@â:-Š¬ÞŸˆ’Ô{>¬Ò‚iÞXˆ7\R:ŽeH° Òþúòõ£U„lpZ¿Â×sL^'†ó¹Çt(SŽ%‹Å4+ÇDzWšhé „Y3¶UQŸƒ_C´6äᨢ ñ¸‡kS,–å-n¹…Á¶nÝsèZŸ4#%‹åè‹ýõñ<‘¡>¯ó¶fÅAn¦÷¨Ÿ©^]×ÃDyÃ=÷Ž ›„LêËüJ(‚ÿlüäåsÿ½9Déõ&Ì­“øŒŠ;«ç#ƒ$ؼ¢±JmÛº4ÆÂäåòU†¦s·bá€W „·G§¹„Ÿß!ò ÜÂçßË¿ë'˜õ²vÛ\ëÄCFa2Éó5þBEèÖÄÌÂqRðLŒ5~ú¹{?c¬n#2*C±ë²ï½K|s?ý0<¯fvýVí§å{ŽôÜ[—u[þ—HÑéžÑP…ÙØ¡¼kÆ´>}-néFA“!üLGjoôŠÒxž1}BŸúsTèúÑ>3mÄ/OHÄÀ_L­ÏÛ eQo&¨{¾LôiJd—¼×¦kH- ¶®žÔ×ÓiŸ»ÖwtŠ„Ù#^×Ó^¾0Źg°0I—à´ÅÊ}ÝÉÒ™w f‚H»ž8lø>ì•çîבç~þžËVÁ<œY_ûêʔЛâ±,Ƈëkõ1hxAÂì¹92$Aøw®Mµ¸—F*}FçWáÆ‘µYa[W~¥è‰ 01¿Rã™dÌêJºþ¾cΑN;”_izL¼¯mµA®f) º©I©}œGh—+)<3§±I!ìÔB( ¼êF4Tl­ÞIm²ä‹±V75ÕBç¶jm/ڴζí›4Ú¶ç®ÚaãMñÎ,ÏÊ÷+e ¢©1Û$Lãaº†ËêvaÜ; Źõk®†k¹%é|,…!ò:oX#ÀT¿8&Ó'blö&tllÛvl§7+Õ÷Ët>LôÙ¶…¼b-nú7ž÷ê¥4ÁÖú¢þ7ÿ›©©!ÿï¼Ù¡_')E1Чûð6þîè÷ŒAì:{š´ïW>ж=Ï‹—¢>Àelq•GÈæú÷=âƒPAÔU@ÕÉVwhΉç6A1K0y†ò$ã‘ÈëÃS!VUêмRãܶCjóp„Ý#ܧ+]©J1FSÂ"êÚ8‹Kü}¢ `J´UÔ½,î…ákq¯¾]3¿2Ò\³º®•ªÒ)=aÚ[ר ÐüJéÆœ˜Öí‚Âw<èÓtVÇsÒA4bÙ¾vÿÒ çWÒg>8*EȆܳG$˜H¿ÙsaÓUþ®ãTHqnýs1#€É#Ó4À¾N¢!ν“/1νLk5z(˜ !…ÌôÎUA" óÌ%Ž ˜B‚7f)oah¢±Ñšf ™Rþ´Æðܵ±t~%‡ÓC1(@5|®nťނàœ.olÓæuÌÚdô:†»,¹R1!±Ù5,Џ±h`!ùºD~¥/n„"Ä}l˜'è~–p'žªtY"Ð\&ý¶ '¤EÂ~@€^ÚQ–ÕYÝ7Á«öSœ»Ûï€&Ô{V^œ»ðçPàq+Òñ¨){Aû)õEòúûC‹ºë×:Ä2Äâ¶ «³zò˜úVô„bÖ˜U_ßðÜKÓçšù•¹Ð¡ê“™@ôØÕ5ª¦™qz¢¾nPöz¯%°G “á`^#9sL¹D9 †%yÛ÷ ¾µÔ=n„"4ÂÜ4À²–™âÒPÆÔÒæÈòÌPDºU;TÑa‡P‹ÝuÈ(Á.Êd_<¹Ñ„¥<…3ehº)­BÖ™¤¨¢÷öL@ñV`œ]¶ª!Ägn†—&Ö¶ºu„„©ó%ÅÚÛ¥¼…%| éc–ðM>ò U{ «ò+ûNêé\Ý¿uWòX˜Bt¹›*B?öþ]ïÞ? ”TÉͽ›³­³íÚÉk:BãÜ&tûÞ+„ ÎîÀ1𵸳Ü˦¬ 9±÷ð¡OSoš.ÆèúùIݪGaxΪß\¨×o?“Å-AWԻݮ÷ݹ<¬•_™²úÁÔ)Xÿ^ÿÔ…êd6À~î_ÊpÖócÇHóžY(_®de(G~¥O…³iŸ7U„hnèMß›¼š³ÁÂàù•¶wÈ£^¦uò£¨¯iêµìûªé–Txur.þ¶†¢^¬"¤O£%ÅÖ—x$‹Î7'ÅiØ'}®º?çDg®³D¿lžim.ƒ€¯Ó7±NnkUg†J‰së˜õ÷ñ ä‚I¨ž1aDèC¶iÁcu›ð7YÜ1Ê® {”)7(—E­{,U•–¿&µÊÆÓCõ3º$?353ÌUhâ;³Î~uU÷ïpz,CÂÞ<_¬«ë1lg[´t®Gt€7ÕÕ2b)H) K@ʱ\²5ŽÏ¾…"‹±éûÞ朗ôú%S£°Πæ M/<ŠIêÒ|ßÿ'%îŽjžð§‡ƒ×µ |…•jÙ†1=_ú<úzsÍ`Ë~?ûÄP ú²i‚-ìàãäBÇ7va¶ºËðR*€l0ѺžJ¹O¬7ñ¶Ùïyæ¬ÙîáSm녡Ф‚:ªÄ¶6⫦Nø¹ P×>¦xî}a ‘»šJšËcù¿²\e!äÒ€cp{hǨ¦ï9ó쿟Çl‰ð|Öœ<ì€-ήÞ¶-ªáoè¿Òží†ÿ¡‹TŠ"@k¡¶õå%üÕõøÏŽ*šaàÒó"tôk²ç¨ôi.útyQh=m{PþQïWgfÛ“4ÃÿƳêI»nßÏŠÖ2½Ë¸ü ×y'dõ8 Ê™GùA§ûÎðùZðá5&úŒ•$˜éŒÚÎçøÞ™„çòÂë~ݨ&;òZ³äì³z*Õ¾æÿ| å¾Jt*Ñø¡mW5V— ÁíZº' Ç¼Dÿ|yÞÁ™žTufƒ~xÇü‹%‡ßu»YžP?™Y>#kt —šðg;à©aÝ èû^lz@x5R &úL·¨­ïPßÅ>,ïB¢ÏPä ½vFë7×=ô)…G}!y,—ìFL_‹Èä¨1x²tÌiüG (<ع“…&9 )M¾ÂC½4fý·† ]‚n–(49jE(g5C(xNŽýçµmMü@ý#´ožðçR‚l{áŠuÓÏ•*­N+·v¸¹ó¸kÄ&üÅ‚_/ôø*:þ ³"ã{ úÝPð®ì&!ÃK«éYõ£²ÎØøúÏ`‹¯P‹CUhBð)èXJ°Ó~ë•€ºß!4.Ÿ‘>W‰ s\©¦þt.,IŸ4û,vx®4ŸˆS ]Šó÷ÊÁŸV"W`B²¹ß}VIPó aÙ ­“3ojÚ™Ø0³º(qpKhb­dfê¸u~Ì:ÕˆîÑ@$æ"˜òL4.5t´5ÔÛò,f«Û©#ƒ¤Ž×ýì3úršðûûœP¥ |¿©ô|‰‚ c¸Ç/¡›Á€ÚW ö˜Žeˆ2ºWº‚ª˜èy­9]BkÓPäµ MŽNÒ™­õv ¥Ò¾Ä›Ã "a‡]?¾S;úÞ:ú¾–²Ÿ[&üå–ôÉ•äY2|éEp”Ðñg ±¸éoS,jÑciÀIHy*KåÊé…&!÷RZ.Àƒ}‘²Î@Õ4I‘< ߎ×04‚=[ž^!»G~½"‹ØÖ8¹ MÅ&KÛOB™ß=ò$-z .<“’‚cW{h{«bÈ‹Øw½Rdšf/ý}ÐýˆñØþŽÁÓ»Õ­îþ÷åÜ”<ÛE4­©´÷ `|÷)LÍô¬í¡íÆ ÚCë},ÛC;S¢B¬î¶=ˆ ̶ÄÕ%%üq•¿_ÞˆÈ× $74Êž›”SWå‰÷A÷5½o“2æ«d»ÞÛXyéê„)€¯9ÖêžÂyfüÅbËBøy­‡É¿îÎÐæŠÃƒ1é˜9”ò<)ô9`¦¶ð¡ëÜ–´,"–¾ÖrÿbCc6H.Ó% odŒE!†…¢)!¬Î¨!Oמ+!!EžÙ&¬Ó†˜„?ÎçR¬îX÷/צ†nS{û¸À÷–ö:”6)LTF!#Ñg èý¹hri ;äZ§ 9×iòXºfé‰Þôý˜?´LϪÐ~BóF¤Þ<1ž¸0ÚVn»P±Ÿ¥"e¯Èg|ï…yà¶ä[ðÿ£T„Ö€ëeQÇf˜= H)¬Kxk$=ªá&yCN£wŸ‰ kT>1„›ÖVxM=xLB d¶ ÷ é£cŸÍÉm·ëÐ4vâ™ G^»¦Aµ¡`ò =lJã+À÷ÙL4?KªÎÁ˜ï‚ZT<õb‚Ðu.Ñ×,×{_r| ¶NS¡I, ÝŸ"Cc©ð $%õ1ð¶4˜K•»¦sÎÒÉ•ª£ßO·«××ÝívÖÀU)V)û¹ô3˜h\Ýúæ®-åN÷ sÛ÷KÖ ÀHÁQJ»€RÃÇThÂáê­äKó³Ïµ¾R³ïø†êy ƒo_3äVxC¼÷kA*4‰÷… Ö"=B¥[8¤µm‹fÍTªâ#•Õ‡À··ÏÚûiKø'O#Á*²Í¶SbrC‡pk‡ni\°¸¦Ä¯MoRo×q¤uf´AŒXbN],J*4á8cŠào ŽïP/̀̓cè36To+4q±?¾N=lË÷/‹‡i¡YŠ¡ØºÐ¤HEhéÑ‹4sJ°xL±z}òAv”x¡›-?Är±y'€9SòÙ¯¥…jlåÂ~ªÉwMßý”¬°Ôέμ'»6\4>ë\CÑÒ±F‚|ïñ:® qA_ ×â!¤kÄPOâ!ªëÞx¥ýò¥O[_3_H³åB=¼Ò:¦=‘âI 9Ûċֈ#¢Ü/d»˜¸5Lð]g3ü^¶¯À1Y.Èë<ÀzÈ!\øH€­-¥‘“>SÛÏÇ*0£‹º›”}ÔËY] ]cè!ªúsþG|¯bÏâ",n ›…Ï+nS šTèf­~bø]“§+äzï)Õ«R_3oú4¸”ÎE4%Ô&_S_ÿœ>ùÙµ…CA|†ÏŒ­Ž9SE*B@¼Âš£:ÀåáÈþ¢¹µŠÝNml¥7º²nc¥W Bø’‚ÈÚ—(³ á­ÿK…”$:íQ7¾Þ¡®bÍéØ=ú«Ù!U•D;â|¹aš{¿Îx!“juû¢¤ýô)Õ.~Ê×I‚R SÙi> ¹÷“”¡¦ÐU›WÄ®E—ßýäŠUls× …~x™liˆÑ­X©]Z«)è5óiÓÂÕ¦ˆuTõoÞµãÌU…„:¾™¥ï=H æ¨þX²ÊÏ´URh¦o>¨=›÷5þí íèË1¼a\cžÆrÒ¥.4ç]Û×ÏÃ8æÆt€›ÆÉcÙ†Øh^bÝ ¡v >á÷õx[?–¨Ô"™H²"/6Kq„!>WмܢXæF(BR"Þ’/5öQÂt(æ‡Y·º}+ÈM‡!~î„S÷5–Oœ­› É×&H!È(æ³lsÒBŸAê¢Ë• w¸§[eŸ’Îâð·Tø ^÷,š´R¬î­»/]qËs,ûÿ†_ƒòûôëruˆgÑ£H¦m[Tu.³÷Æ4ž)%ìg«Å Ëä±g“´ìKãIÇþ*¿.Tl•G¦…hô±¾J#?¼RõU¨6“*\ðq×—ºhÐ(KIr þmzÖ”ª®Ü¡›2$¦Q>êa³N³è‰Ò€Ú£,t.W(bøŽûwæ-¦°©ü³˜:ÚfpoÐxnQÅ)ä˜dp”‚"!“$½T“pYºY”ÓpR!/U>¸ˆ&Å 2Z‘O‰´z%Ü¥o÷ä¨|0]c‰ðCHȪdÅ­=¨KÉŠü˜ZªW(F¬ó†lzÚ±… <hª°¢¼5¾Þ%½p±kµšÐ<®©|¾§1û}$¯%ÏIq¯3Œºl K—:˺âˆzQø ©ô©ðé¦YœïMk £ÿ"¡POÁë÷ElçÛL®™Žè¶ªŒët%¨Í”Ç­ÕÕ,’€gÐ-¯µúúRözɵê —'ÈÇÒ6Ñçl_ž^ֶﵕ9µ×Ërï+t(ò–Þ¿’ï^ªk‡((@¡°‘–ò³L^ËØ³ó%½SDcÕ§·|–M¡Çg»Ö˜€{ó®`òlñCFÉ„[>ƒ‰0}Úλ¯­Ë 4kV>˜\÷Akeè´Ï×x¿ú3H÷xÂ÷ýŠçÖÀ8}«Qô| —œË¨Ñ×Y²°2õûŠÁ’ÏÚ ™2€¨"1Þ3¯D_K°Ñ'/˜éÙ¶¾eiÇ—>S¼ŒU³¾ÚÿÊæŠÐƒ”ïS#±É¡f9Z÷ÜÞÓ¡õòçH’ÆÁbmÛòØrËJòŒþa3 Kµ¯´J÷X®ãV¡†ÌÞÄ< y_ñM÷t˜ Ÿç0…AM4¾fèÁK*SºòÙjDr>\#-”8Í£[žñuêC·]Þ×Üí?âŸÂP5{Ű蕢=ºº ïz¿ RXl¡XØ6WÚÈ ¢ôÆY9`ïMO ¼©!or“èG ‘MÐH°Ubù€¯yÍf) &}*®ÖÀÒ•n¦¦œ&jB Jès£b”-}LHH(1$ü°%L•¡¨#¯-l»¤”æNOSÔõÐ-`Î[­3®ðYÞ©³£F%(üü§„n—æÁ|luh?ó€Î£ÕÏܰßÒè³=´Þ ‰>¥ÐkH¡HŽÐmΊ[Šô•˜¬ä;覆\‚»Š‘›Òæv•æ˜*hÙkgžŒÕ)X£òáu­’‚þqK )”˜w‘žàÄÐ0?„4Ç…„0âÜ—ò&‡&ôºàea*(Ù˜<)aùú4V« •%Ч„ÐA¦”òAaWW®Ü,7!edÍŠÛ"!°rt‹-9¾-º\˜Ygtƒ.á+<z9åÃ)•MöV÷K@t‘< ΰí ÜmL3Ö`±ÑÁÀßIÈ}tº_2rîBûIP”˜Áx Ù«a²TÅmψPnƒ•·1•úSz …"D ÐÇX2oDVQr`Õâ/ IDATÍŠÛbCcU7¹B©“ñÖ“{] j Œá€qLqBÜ ´N:¼1•kcËʇµ°”²(‡m[P8r†nÊ/ÂJè63rx‚gaÄV )æDè¹›ý½!t:^˜ÎrÊþmQqÿWÆþñ`Ùód‚T© ¤í9 ’uᬮ“û§¥(S·ïõ±FÅm™¡\“M™+ー£u7Xdm¤@Ú+Ý‚Ii@¹´Çgëʱ“²z(vrB?w t6žèÓç©]žÂè>âýL =qJÐt-Câì‘ì'y¸Mhýó5Ý”`¼dž\ û9ÈÆƒsy…r FV䬸µýN±ŠP·ß¡Ú«ŒM„ï·¹1S‹–…I©_² ý|‡qÚ=Á4ÕžX¯$¤ô‚wµÂ~V0Ó]Q‚†äÍ¥Iksaæi‰šÖ)2b>ׂ­JPßñÒ‚†çQk[žŠÛNùÌÆö\dd°{¸×>G<…?ßòQ€BàR·La(¡â¶ØÐØMD]×SˆÏ³ò!¥¤ÝªdîEÖéĘKén:Az¶¥*Ü%`öÎlïps%†ÁöÜ´œY_G…mí¡‡Xe–ïg®„Ô¥C®uêÕLk¢ÄŠ[þ_‚òÞ…}V”‡€Ì¹aSš¥0"ýŒc¤„ }Fè~KcÉý\ºâ¶XPµï µÏàv¹ú^#KÅØ‚•©ÖiÊü/÷:ãö/§ÅSùâ©Ú²?GNú&kо'¾’ØÏ÷³÷¼Ž˜B£‡ba„ÒgIXr©ïÐ7t+aIOÊl\ nèñ9ÈŠÐõ |zÿ®—xøünÉ¿ˆŸÞdz+õÓˇÏqOþ?4 ÚO¦|¦KŸ6ŠÔÌ1•¹5$vÎ]·¾c/lë¤Ck‹¥TÄæ¤W>,‡¡ÈPÄ0Fþû©I‹#Í{Î[¢ûöô8§.þn}Ÿ+ûð^C¨fKkÅ­/}Ú”„@åqµêÏåzVž;º%Œ9SœÆt%²ÂQ(_‚"t_<Ã;Ÿã³[^=ÅO_àÉg·qn¸H²â£A®¸r]SR–I òe:c¢Ã&1,?f q_á-ÁÔhzL[ß+…iê¼e ¯§Uúܤ˜›û¡mÑ\×÷Ú®Ç=–!J­é)U(‰ ‘Rç¼F&«ó’vhºÆÙ akLϲҼ&uûNl¹O±I…%öÖ#ø*“Kx¦r\o®]‡o®.ðþ›Ã÷o¾‹«ð`T„rc¦1/|€M©+C¹Ê{(BÁwqÌ ÷%<½z˜ÂHÞÆ¿àRâ¢ØÊ‡q= W‰ø`ô ±ÄÇÔЭ Ç¢¼Åô~ñ¥O߯ƒ¡ëô¤ÇZhÛ^![³â¶̼&‰ŠmZaޔߤz,s»sÐç4^Ê™2佃·­ç{üx Ü2hB/ÝÁËáëÜÞ!–ÞHR†R›fIÊ­òa ˜rixø,HðdbJ€_Æš™+´6m‰õ,Ñy]ì“y?Sriìý» µÚV˜’¦—BÊ~ÚÚHÌœ c‰9!͈°{0¶fÒ~Î[¨Ý³—ªü#äèQVŠr° ©¸+B?ý0ä 8 ïÿü·?{ŽÛÃw×/>ÅýGŸâí'Ÿá¶ 4=~üعè›b\6+,·;=ϪÐ4 ¤QÑñT¬ 4ïç8«d=èžJ=w§$z.úÔIˆGVy¹u™»ê9A|¯ŽÁã“ÒF‚*Tc»=o˜uJ=ÀôóÁ=¼„YºW>-×'#2¿t_‹>%#a‰›p¹§fp¬EŸsEèÍ·q¦ï¯Ä÷Þö¸Øùípùì~0ÄÑ}×M1z <†”í€X˜`ª|(ÁZ13û­wz(—ç!žß»Õ—Ùõ>’‚®_ü/q‰‡+æ¥ÂôRM„2Ž"&iQÍÏY›¹Ì+€nô6óCÞ¶-*AÑÑ÷ië°í KVÊ҉Щ f:'jë¹}Æ’[Kè¡Gµ±g*],­(L<@WNÅ- ?»}O‰ßø«¦B†Òùó·ðÎËG¸C™ÒÖžCþP²Kj¦®Ì1ØÊE»Ÿjè,C» ¢0bÊ:K±6LðÝOÿëŇ"ÉÒu)CHÉ‹UФ<%_.åª)´³ÝPÈPõäj^´B*n0áNFwàIB^:‹bË,g„I•µzãVÏ=1܈L ‘ehÖS+àþ¦¼3›A³VÅ­/ ¡±[¸÷ü9îÍ>W“£Í¿wsC0Û _¡Ú¡BUgJbŽ@HeΖ(I™Zz/©m<0… ¶ÈS:¦Ê‡¦Úc·r5X¤’àXe¨©ööØu{ïœ)•î;´t-Œ¹~†á¹@XO£A§XÝ¿b9ÕŠ%XÓ6PQeÈsö4˜~øBÃò)ôÉúCi£ê€n/ü Ò+dS%ϲ A-jÜ8*n×äG§…¹W7¬t!AÒÂËÚ0¹—»ºçåívþÏz𳊶ËÏ ,-T{¥`°ì†¯Ñ­Ójß6¬¤íÔïM ÔtŸ”‘)¾ðµÚ]û™ºíaÐKÑçì<¯Ð):µâ˜” -Û:HeôK!ÖTí`TU\B¿Þp4a9[!MzÃåÔV(zú¼-ö̱¥whI¡\×gØïº‘õî›ÊËC¤Céî¼ ¶V’fu³®Ö:LBµ©öÊàêñëJÞ¹­ž7Ⱥ6ÑgÕ͆tÇ0RÚã éçpéýÌu}Ó >ĹfͪÙú(ðSˆúüþ÷»Ñ®ÂèjCJI-ƒP§uÎ SÊ3ª«zÜøåÜšáŠ#^ùz4¥®µ7’ÀªÐ{•ö耦§Ñ˜3HJåü͸uòÁYn‚ðÄÝÐðƒ ¼{qÌɉÐÖ#@}ì†Ä™¦Ú÷ Ì<Ç•D¼ò¶ ˜À+:}ølÎéµs9xÙ«ùoÑŠ©sÉØs 1H埶ÉÙrÇÒÃTñ€)gH:\KaíÞ:¥T>Ä G·ç”æ1r)iç)ƉŽ]“ØMB`k«[ç'6^âw½mZ„¢ç3ñ•E!ü$gUbʹ÷©26µ9Êá 6E€Õ@_ûŽJ"è½!R4ï%áÃ8ù&&÷²c5ÀÂcBákmĔʚ&sz{…ØÐY`bž!‚¦„nÏ>à]š¹ ð}ÖÅÀEã³ 7®9ÝRåMM4¯¦‰F—²¨1ü»zÅí²¹˜fúô«U? {­>s[î§Ø3 Ø\.©ù(k4Êr!W{oøsEOªÑ Î"lbH®Ðƒ¯p5®Óðlaó·&!¤JΔd Û– ¨SÂ~H¤ü¬¶³@ZIö–h®«X.û@>ᄘ.ïkz)s+SèÁ'­ˆŠ[À9”ÚFŸœŸìvêÚ}ž%ÅÖ7ßÏÖåÝ¥l5hVQúrÁæ9åÓ–Bî=*R²ˆ,F1s^ØAË­‰çºÄ½ë/Ô¸}CA× ð å-­†ŸË+1µµ»ÙúÀ—^¤Î¸>£ßÇGÐpH^<É*Œö÷]ì;5xë² µ¾K ?H¨¯„zæô¸¥^òˆF»¡‚ËU ÓåhÐ¥ôy_o5ejÊS“RAzk»¶­™µÎÈiƆ‰ÂK`š„jɹÎ5Hlèa댘‘<\ß&¿|!ä]§­²‘Ìø»ƒŠ­'±ÇB6V•Ô–¹i²u/>õ³hâ'KÍâÃa+ä®®—¬Š€|:“2YÚð㢡cÇd)»«Å¶t‰žÜw×íÐT³)QÎÐC óÚ¢ò`}¿ìYÈþäÜϺ>›*!=ºÙÒ}”¡ºFÕ+éSš2¨®ëÈ8s>Äì'7®zxà´}>ŽŠÛ4z eê^`©¸i²}Õ]U+aÛõXy›Ë¸ßº’UÜ¢‡KXϤ-Zlª=~üxËÛ[aŽê¿7}fÖÓ@Hó‹‰}ù9Í»¯S?A+Ž5ôÀïkVRåƒm|ƒ×½MÙ¬éÑÌi?Î\!²€%MÊÏJ_*t#@]WÀ:iÅó+KT~’0œ™öÐ2¥‘{‰ò·• ‰wvzÍmÔŠÛúäùœR(Îůsyî¥<_nµL)ZƒN7U„+!g1f¿xò¾ÊWìyk³ýl[TÚg[„n‹U„¤q @YD#XF‹Ì£¶Þô¬&צ\$¦t‰w²†2¥W>l9®€#º*RË%ºäg:“IûÛa7 Å*ÿé½KÎub܇bè–cMža³¸—êÆn‚"ÌÙç1­GJÎOÓ÷{¤Ñ(úŒîØæCÂt,B_¯‹û來b­Ð­Ž"§Ï×gõ&V^NØèжý nÅý:%“Ú‘“¡êá:"<Û´hßun Û:¥Êß™Dã»ÓÑ4ÆÄÉÒàfzèvœŽÍ¿^áŒÆÝéS²ºMëlۃج2‡¢^šcBè:›áôu,¶ X?«ksG}OäðžÙ²Ÿºâc“A6Äìg‘¡%gYù`-fAB3µ\³^ê S#»¥Œ–ª|ˆ =ô§º9×)íž8¹–¤O)tÛíw¨öbAR'\É4…‡újž8ú\)ô™;ƒ” i=dž^cC³Zá…¹Ú`Ûû¥dXJzh´$è­Gè3¤†¤‹T„R°ôØ‹\гåG°Pr0Z~Ã3m+g®¥z8ÒƒæÊë4ã3AñA˜b²j˜&Ѓ@Rb=´?îw“~àô¹Ö~¦ä-ÄZÝD§¥„l}‘³õ‡ô¾ù{ -ÔX®º¸UB_â~ Žz·9” #¹ö3挥†n‹ •ŽøÃLœ³züGa‡ú¬î•"‡Önc²®u’2P›þ»ôðƒ±™#{¢wU*RZ(ŒÿeaÛj¯†L g{h}CÃÂáë² ?´‡6‹G`ÊÃXK¶áÿôÏB1«ºõ^Ǻ¡¯Ü²Â”Vƒ!±cÙOŠô dòÅÝÈ’‡‡Âƒ¦¼‚¶Msm&—çŽ×‘÷síЕ¦ó¬¿ºßMÛv4œéËí¡õ=˜ÞÍ´ã Aë³Î¥s08JÞOŽÔÖ©y1¾(y?Ç0ÒC´—BÉûY¤"¤T„ ­3÷f-‘™¾v•Êf'MÖƒ 1Ê ‹\Ž{ý]¬q@\•>JWØ:ó½XÊû8LåóF¦  ¹à›¼îºFÈ~æ =¬ž‡‘ó0Pzëî¡°µ6=½ ݶråR÷3çX ¹s9ù;Xb¿c×úÚ‡Æl ÁK— ÜËàåq¨òÞŸ{H\ UŠz<¥ìUÌßóЃÍê^Âu«”3”¦Ä˜²Î1Ã)‘^ÞÅybßû¨øåòF;Îh.úôQ¸J¢Ok.žaÊ»‰|?zå#}/6.„÷Ì:Sþõè´ïýÁ×YZÃa‚¾Ïüë’P¤GhmðžDÜkw³æ•œ=0ìýÌyêª~Þ4À'Ÿø%-Ž®ibFƒ…ºgãx‘ºk‡Â´Ÿô>4›W3e 3h¿$¸  ¹GLø`fe0)ÛJŸ:䘰¦‡cMø„…$l])%h œ»JK¶\Çò¥XV)ã%BQ á5,K4Ò:õø|Õìƒï«$ &–€ŽeÜ ¡=ôÕ(¨Ô1"1B¦´Þ6r2ÆooWå5øa¨šLñ@¬‘L*å°ÅÑgŽPäÒ¡lÕ ’ʧ—Êá*±—Õ’(E¦ÅâF)B©8´­±?ÁÙVß±ÐÍ7aVF%èXˆzm«wíûÙB†k‡n}Ѷ= oá‘PCð™ºNaEw«ðƒé,ÚøN¬çãhÎ=[gè8 tÀ>¢²‘W÷bè¶®|æXg(ŽE™òyÆMrÖ%•­§ÅÄž 4^"ª›eæ’jÛ:sÃ’!‡5J@sÀw?·ì¦6“×ò˜,3¹‚ä0LŸéÐ4½EÒU¹mèP¡ÛíAE·Û£Cµ­— ¬|r K¡‰­é“Ÿ%òÙ:è+ßÞá»}דWÕE{ˆueÈEŸ±Fuü¦Ü Þœckú<å ËðßÐð˜£_¡zc+Œ‚9CÞÄ1–€šƒáØ’D9=®¿&aùJ¾Þ{:Zb­ÒêR ·sX²½Ã1œCm‹®šÎièY2æ9¶¦—!àƒÏcøŽÔ¦4lª=~üxËÛ°—}ñzÒb¬¡T¦3†ØàyB{´àQ”€B7ŒIî {ˆ]¡[rÑ•ÏuÒ¶ÞZN0Ýn‡1’ÀÈ—FeßÑ| ú<¶Ö#:é*õs׳˜ºÑ§´Iõ ‹¡HHS‚–k=²©"ôàÁåû-#~˜õL9ä¤ùRß_¨}~L¿ãÇÔ–8 ¹'œóƒ¼•rí'½K½ *æP¯m9®]EDáeèô©Ï rôy©€¤™_몠4…;}°vY²n,ò}ZVéìÆª×óÄ×ã£üèïÝ4š'Äk9«DlšUôX¯•âa 4&¨JOâúYÞ:¼|cBc©cr‚WéØú…ûâXÖ ‡U”º>R0bZ;„„mSgxÚ¦ ù®WŸ¸CpÞëlšM“K§ÏXHžó%»®ˆðÎð¾àJPèZueÈ¥‰ï](‹\Zq´!•>m²‚·,X³Ëz(ŠT„Jí…áÓNp¯ÙDxúK]gª2s“xšªÁ®Û.ï„ç¯Û‡m]àQš¥¼‰Æ•ärv˜Lk(ƹÕmÚ¯¥×™2öb­Ö#¦Ö !¼’ Š Å*Côµ¼Ö9}FͬËôÞcÃw¾J›m£2”0à5†>CÞk‘Šžð—#wdifGÚn]×Ñ/;±MyÛs³q¾Âq:èvê.AÐlûUÒ:9Lk–”!ßõs…Èü¾ûðCŒ¥­³+= ᫨Ǿ=çliOЖ´3öÑêÜ¡Z×:SÂ¶ä Œm=²–ÁË å3¾&/ú¬}ï¡)Æëò𼑡ªwÜOÇèÜûi3õÏ‹T„€¾ÏCÇ<òxJO˜w/Î Ö¤ÁKÑ z±®ù_úZKÜO9Ö)Ùj›ûèKHJÊ6üM°Ä x—ç’Ó¢nùÒì.S[„þwje¿·Iû¹Zˆ7\q«; L2žeØç¿å€oë—2$Á4²&|¶5K ÑÒ*nû„þFæO™»`‡z…L â1Á7t[l¡}·³ú ¥6[»9aZïu^š Kè£âAÈPs=jl=5¸Ž  ƒ ¦¾'”¨¯—¥=³)C”Ê6Û,?Ž>“­î…±4}rþó¾6ƒª³+´[d?%þí»'&”F—KžE—Òë Ýë€ªÃØóAÏ“È-„iç6‚Õ5xòøðïùy®Á±`iÏ”ëe[÷¾HÙŸqíŽùu@z S+ 7Í#jqgTîúìÜë̉œ­G{[Ï+k4M§ä-U‰¹Ä~Æ(Юܾu–Ø÷h šuÑd‘е?ßkŸ›Â>ÇÀL}2CÉdéèK•CÀ<B?`¾D´6ºyþÐÖÈr€w;„è4í¡CýÔýôaj[Ò§R‰•ø>Y- +ªàcRöXn=VXåÊMñµº¥uºBä¡‹ ¹­¥Z¸B·S²r%î×R½fB@«0Ñ'çã¾Æ½_nŸ _Zô9ʼŸã nÌi(å ðÔ‘£ñí»)Yš‡ÇF iƒ5åkD× .T€© Sq›¯£—€*¾:¦$M× ®JP4ãJ@—ê4,¨cò­Ó;Im¼žë,޹)²Ñx‹[çôÙRŸRZ¸sצuö¼2í~K柳GÄF6|«’ zÏ·¥yxê~ê¼:Æ+jº.e&e¨HEˆ^xW© 4¥yŒÌa0¿uòýà‡®TlY*¡ÛíÇnØz»‚¹Un{AX:tëB¯Ð  ú¾¤–-ŒÑ•è1`¬PíÅóçƒ%s0¤ý–¼p¡ï}«p¤íž!¡[óõÕÿX‘s?<"¡ Pè:—DˆL3•ê§@âË’2T¤"DƒðÆYTÃ燶E‹ò›µaôDD˜¶mQWuPž°ïþ—\Ú¡èK¯Šr_nÖªŸ}Þ¨é³$zæÕaô}]ŸåÕ]B*£(Á’ÓgœU5*ÍÆìgl%Ó¾”’‡q ­GxõÛMµ€…ÞMJ W€ÖjËbƒ¾NŸPä–°ñ˜£ðêBc´h½]l¿å"+Çž]ZP¼Zgõ¢}¢ˆæC=õ9QR.ª RHÖ7§o‰Š[àè¡ÀÞøÓÒ˜ïÌCÄàZ§[’ŸJë·ÙW›°2íOÔÌ3;iY1îCYÌEŸ1^PÆédHÚÏÂ’=ôPªÕ.³Xšïäl»±Öh=ϨVlnMÿEŸË™§#,Ôr–½è3S}hë¯kj|åµH––zdˆá±…­nb^„ïZõÐX‹cbBæ¤ÅR/BJ@× k»›8§-£$%;>a[p½„>Q¶w’SI‰éÌiÔF—¥œÅèÄÛ•[ô÷t¿÷à·Î0Z®³ L… Öß)d?sE+BFŒ‡aŸ¤•æ1’àSj/g XŠc è *½Q°ï+`Ô(»Î×û j™Ž—U{@ê@š²‡b™’ƒqÂÇÒzäS!zÝP´"$^~Ç¿¿‰HÍ+Ð+)ïeë9]6¬Qj³f¤œÓ~/ß(¾õˆá³-š5h<6'•p,mNü¯­°&l„±Ô0<_‚ZºÔÅS\YþTY´v (ý[í¡Í–ðXÊÀAtú<´­h\Hïö+Úþtçó{[¿ê‡ [~–÷5V<Ç1Fסm{o›§ÇMzžû}_"êúlüÇsª¦Ïâ`:Ë©H¥]¥§Öð½òy&„(sE{„rÃTídª€*A+ö ;˜S*· í;"ÍÎZºUÁV% R…}^bh¬úäpyÎ\“Kˆ2™ÖYBØès‡š®‰n®z,ˆ ÛÆ"­íF¼É©:&o­¨E2 ¸|[Û+zc!×ì,ÎØ¶ ¯q!¡ƒBu…LDW†’”  °ä­cÛã~“B´`ÉíMÔâ!!}›J3á,`ÉuêÞÔœ¬%÷3×µc¶!i6‚èÓk½÷cÚÏ"Cc!³Ù¤ I3yB°*Ñ'56­¼¬moâXšãÎ)5þüЦíWZÙi–u†ÒÎZáA‹õ}Üþú름þP¬=lu©°Áç,J‚Ý?ôàE–&Ð¥=÷]ç®Ûe;×1ð]gi{n‚•>Wh•›>Ú#”£ŸF¶L¶KÕŽ×Ú«~á·vèÁµŸ¶2Ò\“w2Ök¹š0«òZo|^‘ œ^LÊâR}m€m‹5hªúŒUƒà×°eÃ? ‹÷[*%ð¦"ÒY›rwæšÔl†\–i|Öò¤HÍXrçù¬…£V„bÁgg… b>k!'Aƒëvi…¨äýäa[ºîÖ¡[R{Íp¯Ðnסi*|òIë¯qúæMóÎf[ò¹®K¹¥)5ÇŒ ýØ ŽéònóêZíèÍÓŽ¿æÆ¸O, ˜Z‘аdަjDE}K#û½$›Î$g#<0V"tŽ»Gr(lùTbLm…–•íþزéWÊ}9=.­…ÐçRûÙ¶‡ñ‡¼jSþZ·ÛmñFÌ~¶‡V­l¬¶K”.·÷³òk9rhÛ1¢#)A@›¬”f„.¸d¯tþ¤žwÇBŸ›z„?~¼êýBfgùldÎa“±ÖÄÒ IWÉAÌï(åtkèÁ»ÝîψCÛF ¶-µº`öpUhšÎ¾åÖ%ÿ/… Û¯—Ð_(‰¿;ÿ1Ý‹·ðLf µZÎÄ8pXðõSvæû¤{}šBÒ=rìaQô9„¤ÛVîìoZ§Í£ÙïïºÏ¶©"ôàÁåû\Š‘ÕÃaÀá‡Ü/|©rЯ«1ÐÐCQÙÛ:M=IÆ1 Êß8ÙÂ8¥è4ãp z>ë~±ê=›EêLÔV@Œ¶lƒ–弚u×Iy<Äš|Ï¥HjAÂèþÆ—·I4ºUуŽvx¾è9…Ús™Zè‰D”{©‡íë\ž–Ž>GhK¡š2[‰Ü®¥uy–ö³D¥å˜•)/å`øoL0yQ £å¼sõçˆõ0¸M)ÈAŸ0ZÜKj!ô)Ñã–9lS^μú0fp)¾3áÚ9B·>X“·e‘?»ºªQr…¸¢s 6G™Š7,zHÅVÃ%cÈVʱ*).Ôu½Xy¨$Tb”! oØÖ¶ý4å>¥ÐIL~Ÿk7K%S¯™ÃæI 2ÁôÞMç®ÿ›ÃæÏRy[HçФ&¦¶ ¯°xùüg·LEîÐC ¢+]Øœ MW­”1kå±ë fPº²™¨|®ÝÖÀR(2Ñi’&å V¦.®¹ò‡8­úÒ§¤¬ðÜ ¾ÿ¡JÊ,lÛ/ÌëoS°´2¥xB¼BFd›jj´‹˜6ÉSPŠ"j{}Ç¢Dû®3**áО\sô–ØOÛùð9;Å*BFlÜí×àéò‡el ùeKH'Î{¾¥íÅ*EÀx@|ö˜ñYE*BUtUƒj2¼=¡% •AÐè£CººÞ,,¶Ãñ-mUol Ûí½ï£Ï"*Y Z ´Çê~;RKµj§¿ýíoø¯ÿú/üó?ÿóæŠþ;ùË_ð‹_ü >¡‡—¼B¦|ÁX‹Ý´–’<»[µ‰Áû)…Ëbø‰Ï>–ôÞ„ýšRZ•IÍ)à³·E*Bí¡Å¡Z­Ø>ukŒ‡Hà–úK7‰©]·+rðŽ<% ÕB#tý"/œiJ'ï¡ô‡-o…ÛvŒ‹öÈ$ˆùTxç:Íþ¯ýkŽe.†¿þõ¯Àÿ­~š‹áÚÃ%±F>`é­Gxrn©²‚ŒT2hC” ®­Ñ¬pÚÏ…› 0³í$BÆgI(R Á,×EÈy º^†ìù%…ï:lºÏ% ±Â«PúÚîŒÏ!Äð¥èØ‹Ò`¶ÌÜó“H òÆÂ‘×@ˆ#wèÁ…¼ÛZ¤y[¹Q’(G!IЬˆéÅ´Åþñ¶Mcoa•c¶­Gë Þ +ãY[˜‘¥’»{,BWYÙM×(sg’®™8®Ä¶ŸºTÂXR±M%Ø·øüƒßãïž}‰;çù®ºt'æÜëн @X¨EÏÁ@Ól®¸šhÜÞz$Ÿ/,DpÇžEŸy‚>÷^’Hù‚ôyø~wÀØxÁt¿íx[º"týŸÞ†+À%>¿‡[ÉCéB‚`êôjª„E. |éý<–Бi ßo­ ¯Ð_þóÿÃçü?ø#~G_ÿ¿b¿òíçàá‰3+31È~p +~î)?(´ËüX2ŒÈü5CÏ¢ú>Ì[,qŽm<8už`NäR¦l×๜!JÔ˜O5¯"ʾ_‰ŠÐ5^|ñ ï<|ŽÏnxõw>}'ŸÝÆÚ¼l ÷°ìAçeÃ'‰×“ÿž½­JÌ´ŸKÚ’J@%HeÞ¡{À«©JìëÄ‘…Æ­/èøÓ·¿Á¯Hº~Žßÿ1ív9±~¢·”›¦…„í,Jp…p•ßcB¦jt%7™Ažsß!îY¥°>ÿÌ”PÏ2O°´dgl²—” }S¡A¸oÉ^Li¥¯¿Ã7WxûÍáû7߯ÅÕø)}]«¡®Ï”úg) 2öÜH*wä݆«é{[b[7Yýs_å”wBöAÛ”}BôÁûpͯçwß( ù¬ÿ¡ë+"•Ï‚aOZÜšqRòx5|Íÿõø%>þø×øãïŸãzøäúÏ_Œ_WùŸð>`ÿ>ÿ–ÿìc<ÿö9>þà|ðÁçÔ_ Ï?þ|L×W¯e»ÎKl›ÇJ¿ó½U?/©­GôózîG厑¥c·´NêìL…&c§gÏ{¯Ý‹)ÖAàâM>¼«®Ïú *!úa~~¢g[;˜TdÈzo)îŸïñã5pKp =~ü8ýv 0…¤ÔßI7‰‡ µ°K ³Ú1–€nµŸíarï*V¨àÞÝZ‰ AÒ:ßû{üúËßãÏ×wpçü[üû—ÀÏÞÆÿ|I¿ð+üæë¯ñúöú9>¾û9¾Ãiÿ/ÿž}ýõàyþ~õÛÏïâëžáë;çè•¢‡øï‡ï×ùyÄ£”@Ÿÿà!¦ˆÙ/ñÃ5ð«óþëÿõÎ,üþ?ÿþ1¾þ»gø’’Œ®ÿŒ¯ÿã×ø‡/‡ïÏßÿü’…åäëlØýì• )u·ª¦C뀕!CÆ1)êÎêÞ+«{pl“ ^|è««°ÃMµ?Úu{ï¶»zë‘ý u¨€:¿b˜²—iŠÐ›oã?Lß_ÿˆï¼tÑ4øÆÇ%ÄöKXB²'Ÿå ·¥xÀbýJ*¡=a;œ¿÷~ùåŸð9þˆ_ÿýo%ÀÕ+A£'g¨ ³ã?ðÇ?¿ü˜}ôãÿà?ðG<ü@M@ú5ü±¤°R ‘m?ª±´ØïzÞ%7o´ä·—dTÃQÍy­G„8ÓÏÖ[K.,IŸÔû ˜zÎ…¤0è}~ôÏ8ÖÈïµ!ChL…顲å1º†™"«áoá²›Å[/uîÑ=LJ/õï!ÔǬI¸ðÏb×’b0¸P–·µ5Âùüï?ÀÃÿþÏ~£ýìÛ?õ•eAåc¿ÄÇÏþøïâó·¿ÆoÆ’´y…ZIØa‡ÍÌKÁ –ÒÌ< 1±pÅ!/*À‘´5oÓ!ûTì¢Oºgª¬ {-±ŸiÉÒçïâý‹+ü@ÙÑ?ý€«‹·ñ¦õV‚% .7ÆäĦqæ‰yJCÚ±ÿé?[¼/“®hÚ¨×ÀZƒ»Ýdmû‚èbV¥âYª'…Ï? CK¸錆’‰Žm‰á¿úû_ã—¼7M½õwø%þ?P6õ·‚_QÙ9îüëÇøï‡ãù5€_ýo|üË?â÷ϯÇ߸~þ9Ø·«À–?&Un†è,ÇT‚oCiÛ„ëäU³¥ÏWÌÅÛÆÂÀ¨§C]úVo-+LHôãögñôÎÜÐ÷Z·t~|¹+ÔS»!u!îø`¦ àRbRq“K@åFn5v»)dSŠºVht)OŒiŸ×Ì_ãŠyl>Øu;qtP{hJU€ˆ¡½ñÆøÅ/~ßþö·øùÏŽßýîwøùÏ>ûÇ?wýŽéç¦ëIÿ~ûÛßâ¿øÞxãèýPr¯"ò0B›Š†àèSÉa)¤ýˆ‘¶Ÿ¦u†ä®®’eE‘! r˜^BFiÄmDÕ+•¼ú€¼~ZpUüs-mIU9Àäå‡ÀZGŽL3¡6©,Ì´?G(5þh[c˜ÌzßÀØäâ•W0CeU6ŒëL°bÏ{ÉTñ0yå¨Òr²bžÛ¦t.e ç¢O¾WK¼wWSHò%{ ë ÉEl.Æ2û9<›!&%£tÄíçütÆœIÛ~Çí¹#q¸x†«ÒVÂÚTZgÛšûiñëo‰Ô½å^´øÆgJØ–r$y~ALÁËt³%}ò}§>P¾ç2o­x©…¼P—Iã b&¥ÏzÌ$¤4l%ÌŽÅéZ§O è1A§ÇºÀ•¡¨@IrØn ¿gÛé¡[„îç1ì=`_§œÃ¦†9c½µ7>GƒÕá\–’”íó»›*B®þ±0%FÇ(CÀg?¯Ç蕬°Ê3oª=xð@ù>§bdªBU†€)i1nÆ×2ìžÔƒb›…·¶ã. ‰=×K@—;ÌǪ”É û~¦Õj?ìë€6ƒˆˆ‡"÷q6Ë­WÃæ†Éóqœ­Gº¨Öû]7z.ùÜ3±„Ÿ¼ÕZë‘­¾<-”Oï°C}¦ÜTKguä+%¼Ë éÅÇ( ´oOòå–L¸dkƒ#dÇð<”¿ÓÚ!gØÖKì§ä…”¥P5"hºýÔ'bI¥ kÒç’%懶ísØ´û•&Ø]˜ç¥™Šž"))A6q†…ÃCËÁÏ)xš7ˆxÛ1 èª1sòåzÝyù “äÃÔÖœÿeB Âbk䤔ýÔÃa±ÃƒiÖÜVÝtS÷“ï)†ÆßÑóÃæ ®É3RàZgΉâ6TýlÍiK‚Nã¡-Úö0’W‚ô3ºJ¢Ï~ŸÌ²W¯´m-:CQÛÒ=¡rñ¶£ò™ò0Rrwl9ö£¨k¯nÏòõç2ü€„¾p=7ƼZ›PJm_ãrÓ±C±¥R8z‚´ÏSö"öëC§GŸ ]Y\[8å9µtWW…êdᇆiGÏPhn` ³§¨Ð4S÷ტXɰñÇ\‘ŠM;V?Vÿ{_³j»‘¬jz¾5.— ¿„š ~ƒ¡÷ªŽÁàáZúT½ƒNãw(èI×K˜ëë¯õÙ)¤ÈPDf䟔k}æà½µ×’R™‘‘ñÓÜêÇb´8LJ*êæx?ðàà) V¼j (öçǼ€l<Œ5T±‚(ß/éÿ•»J,•t®S¨T²Y,¯dn×ë*ϱ!ýs~Fc0$^‡Ü{)=b…Ä/bûÕ¢d¶¢[͵õ¬RyV× =Ó(.uCv)Õ@¦ÆRkP ð"˜ÐFíJV€‡2óìí Z ê’€R“>Kã×rúáaÎé;u¾)m溯AŸ3\UBÉ+=‚ގϵôHoÑ8ºÇsç:õ¬²ìÅV¨u¦Q¼[A¨joÂl«P øNËÈápäogøü›jE•„NÔº‡iJæ)’ÀÓ²X]‰TÖùÖÖéðLwEÏÂÔQ±Aø,nyµÒ#´Ý<%¾[ÍÂˤۣi¹ö\ŸÝ0VWΑ@öR¼{Aèl¦fÑübš€ƒa¸ÃÃx4ÌõŠÁlxýô»llòjeþb ¨âvð¾—AŸXE·füZˆéµp^C®D^ BÂ-(‰¿'2„™”– ͧFï¯Vzçvˆ†( —Ðøãñ€¡Á>©-|Jô‰£‹P$YKhß=r¿w--ÄX6>£Ÿ‰a(põà†¸ÏRÜÝ Ü0턤y¬¯ДâH­»¯{ñʨ٠ӴgW¤ i/îìºï¡ôÈlJ~ôa@a‡ó¶Ë}Êœïë½áúR$и· –¡®Óç?w”tíF܇ în» ý¹6ÎÜ 4ý5þÙÀ†n¢C¾² ^J[8ß5“eŽ ÆÏ–)Àš©Àù¦¸Ö%5ΦÏ÷Tz¤%¤€ë\!È2ç= ¸†ßH…èÚ"$msQƒÑk<@-p!ˆfÙõŠ‹  ×8¤ÃÐcD´ H­é§õýK…¬µ2ëF‰)ýöã1/=Ô¹*½¥GzCˆ·Qa(G¢ ’9GA;9P­ö…,_Ê"„RîãùLið®%£}ÛÛ3™{Š%ÈB˜-->¡‚€éNg Öy:Ó‚6 -Ãúóv- îv‡Ù‰«TU€ë½®»ó¯ï>_@Ÿ¡ôæÜ‚o\ :­‹Ôñg¥>¯…5¢Ä*tä|•X®žGvñÊZsŽ™·¡³ñl·˜)go×!^à¢ý…Ê Lõ¯¡¼aÆP+-)Y¼®t½7œMŸ;í,¢•ññJ¬1¨¶&´ _éšÅ"yV¶oIÕçÏX÷À²¾GgšÖε˜?KÏŠRXê6IôYO‚ìxTùž±ùÔk½}¦½” Ä üè¾Æµ`XçBB,Ø:5´wÁ-6γÒm4/Æ”.ØÐÃ^L©=¢aÐ"±ÅÊíe€t×$}‡‡"Ü¥ TÖ`'C­œ>%×­Ön„Òç™ñbh]z$kL¤ÎÑ‘®[ízÿli @>‡! ¨¸a®QÛ+<|‘* ­´_éÜ=Uúøñã¡Ï£“<3¢t+ Ç«t×h»A¤M[’ Ð.#§Å|ª½œBÏcñ5”; }öŽšóys7˜†©Ùk#=ŽãXäò<ÓMf7Ž1Ù^ø,hî“ OŠÐ]kú”pL­¨§è TäBâݸaÊ%5•€ÛÍŸÄÜâµÚxŸ*}øðÁû FÃéÁFµyí¸=ŒÓ‚Zãì-ô,ÄæSžv=¼ }¦ ÷Â-~gºrxoIŠa³V — ZC§i}Ö»¢Å²ÁÝñhª‰^Ã9¤Ò#¢˜¡”4Ÿ`‚ïÿ )XXÎÔkÉïÞ5æ²b>¢±gçg/h±©BL3¶‘WM5cL5-@½2œ ¬.†ÒuÔM:›vV7+q=àït[®îHá;öä?²Éຠ÷Î*ì¤j@ñ$ RÝ_V!èhZiEŸ<¤Àêì¸Üçox×ñì•ûcn‚—^Ùú8¼KAˆ›qŽà¦o.VcI”g3p€sS@k€ŽË6Ÿz h*†é÷…Ÿ¸eóf*è/pþèC¨¥yKeãkBZ÷Ã+IÛ­š4N­a¦»ÝÁ-±bhQ¡C(Û5ç %R÷CN1ÂÞÄÙôYÒ@ór€ºã¤ÖIü¹vP´5Rù­X fV8+Q hÏÿk£K‹PÓMH2tJ€Që9UWéôÝ éø(¦öÞR@5lAÐo»Xç¢Pr½g¹ocó‰4ÿ/±p” ËiX[VS÷iliñ÷mÝײÄZIã„Þ#v1® g!J sôx>ÏÃPC-ön—‚Gí¬‡”®áŠÖ(¡È]pšzBÂNOBÐ*İ å©uabȬÐ\›°•4¬b(ä¶­]µ];Ø{R½ŽÓwEbFynÍ+—±‚î?ÆAv%œXΚJ¯]é»Î²xòi1l/ ù) GÐ¥@ò=«52 ¬Bþ3°/ÌÓ °5|6Û 5˜yÅóD½¡Å`ØÆN7­¥¥.«•‰¦d$B£ÉÚÂõÚN% ჽ7!ES’B{‘òMQ² =Îã¼q¾ÛÒ#µò±8“>Sx„鬨1_¬RûN1ŒEÒ8S¿º„¤P+JJqêËÏdrtnÆñ À)‡»›ª'wôvÐhàÚ=|KSc¹0¤¢šÇYi>wJ…þ5$ —Äü>©é^Î4¬«¹=5 H¥æ³çÒ#¯2Ÿ9c„•GÔÀ«œÝ B’Æmì·BŠÃhå·L5+¦BŠO‘¦e‚é 'Gnž °·þà\턃À8C) -a™·Ü¶šàØ»ŠMàmPBŸµäª›¦S´*=’êº= ¯rø¯ÅEyIr *hÌg·‚œÑó 뵦mælàZüª™1ý+¦€ŽÊ»À0[ÅÄÀÓ,÷¤ï{NM=z^“Ëó³y)³íýô5Še9Ùñ‰l“ÓŒZÀ–»쪱ÎëYÁ×%.mŽWàqµã´+ÈPšZò¶P,çÞUïÈðÃ¥G$t+Iq’àŠü¤>G­‚ðj-xw‘!P÷ƒ6Nî6¬=WGV^ÁLÉdÈ\Å8/t“Y3rr|ÏgàL¿¥þÆÛ;ô0ÎÏ÷,Ñ1­E`ðoxë‚Gºd4¼Ê|Jãܬ—DÔëœìÜôÃ4·:Ù ¿e1lÝ Br ¨$´J}w´ƒ½×çÐÝ1sàâ49?>åûÍõ°ì!Í»“ÊØ¹Ø1Sͼ;l±BR½¦ü€Ý6è>¥ì™Tä¶wxíà ‘’M*Ådå Ì3ú™Ïš¥GjůIx•ùÔÐÛ8{žÏ®!?tu V38?óˆEÕâSb±Goãîv›Mõ,ÐèŒyËNMä™È4 Ý=l䣡½¯d¾ÏmüùJÙ4Ð.ÙíÑ®íÅféë«ôˆ†Þ÷ã«ðŒuÝ]½uoÒùì^°§€†ú\ÑLQªùž‹A^øÏ%Àœ ¯qJ‘º4¡M.¥"”GÀ´nBàøQ kë¦IlC.}ú‚\z¬Ag×ÊÙ¥%+1GóÄÜÒ#%Ö Zzd÷ Ã^tb8Fð™•Û+½R,çQJÍ6iûô%!+,}®$x5MN<Rdª%¨šZˆVó©Uε¾õÎø$¥…W6ÍçjíCWç"èe­l‡¡–rÐÜb6úL_“Ür©%(z§O-=’²¾Z÷rA§‡¹ íEZ›Ž×ýj!$Ÿ9/ßk á`3Cçô9Y{~¹öq#g.øÚ'cšXæØkSÏÇcëÝÕQ(ÅóñÛºŸíº¡}âR´jïð*ô³L=žÙm»ü÷x>^Ô:}ÏGQý5Šìút zßË%Àùå­qR«Ì·êûY§Z„>~üXå>ZŸ“"¥M!ú”â­ÐƹÎŽÚÌÍS@"Ç‚Eµ*7À8Â0§ºÍ÷Œ0óÔŠÎ=Ð' èOÕ¶wi¢‰ 4Ö>…ÎeWqZ'^h'ô¹àNž‰9½#wͶ,dÓ4Àí6¿¼5†+׎]¯ÍƒŽ¤Ï’gØéÓÁÛ8$Í“g™\öH‹þo§ B>|ð~ÏŒRû\µ&ªíB¿G˜øk1Æš=×$š‹”ùÌëæ~˜¼ß­úUãØbsÅi¯¤üzOšXå9®GËõ•h|pn˜à.?nh1œsK&< vžY¢Õ }R×-³¦÷„úäžZzÄJ«8_Ã4À=:Nï7B@»š/ï«M€uLÔýךéB 6 –Ð×>‹/|ÿû0Áwwƒû  @Ò}Ðm»Ý;Í3žÑة˳&ÎÚ=Þ‡i±Z¾&bôy»ùÿ¬àBаZ-sb{wïâH¶b×mæ\YP²‡^^߯õÿ]ŠõÑ ò53­+yX+1 ÷LÑzœ¡ûߙֆB÷¡Q~{–N\A<IƒŒ2ñ¹Ð'YI½?¥GN«G£%}¦ògqθ»6µïSeBã¶ J;1J­»!Iú[É<¼‹¬1êjàŶb ý|jmÂܺ)[Û‹Ð7­ íù#\YØzK ¥ÁÚïa›Ïœ˜³9cÏ îîn˜²Ü˜Õ“×¾]­f0á´Z+KÓ¹EAýl—ÃqqúºXéÓÝîrÓÁGNK Û|Ö¥¹l^Ïm› é`?Y’êNÕ»Ý@ιÆçE™'‰Æ¥8ßV|á]Be~56±UÛèA#ÇzK¯–ºnÐÌ4Ø,dfþ!ÒçàR‡¼¶N©1#¦l=Q0¥{!gmh ª6ß];G`gvÑI³b¥QJCké‘!íÙ%—¼ÀZTAø9›>=wzCÖ¨ êe”sa¨•rôò®±#‘BÔ©i™5aç@~~µP:¹…ºd¾ƒõ4*¸Ka‰]³¬ûtÉ‚Ôgâ¡  ×aª…Ö®+ψ)Q-ljóýXJQäÌw ·­%‚Åãñ,2ܬ¥G+G+þYºî±u ͧ¤Ük{¹%}"À9-ðn,B1à‚·X,$ŒRë(õ©Æ„“ù]ö-6LÏ€}êç{H•@×]Ò¸ÍLŸ4ÏJW÷CfÚ§©w\=ů…ö¢V £G k2Lãvu<ե޴‹í)²Zxk–ð-D©Öã#G?sl»æC§OZÈÕÁ<÷¯`‹•…ÑP!TÌgøsµÏŠ”w} AˆNN¦pº‘ŽŠ' qhëÆvþÙ+—O áIˆm5‡C¿‡ Àù”!W"¦~ê¾x™ù¶ˆ½(ak¹”Ÿ/°îšõƒºnCü8Žk=›T¬sµ-©s•RzÄʃK\·3Êãýâs0ó”Z=ä´qX[ó´„¿Y£G^ï'j±äÍÕôL[ׄUÄÑd—‚PË…ny¨–Üwa¯X4så4¥u±¦– ðU„Œ[A@z_‰‹#¶65ß¿Å|Ö²!¶fĽÏ'Åš¨á¦Yù¶"}ëgnÓ4+/1á³DHÕ ½Í5,€F{Š9Öhç~§ñd«¥£\@-GÎ^äËP ­}–š_·-$u)¥¢ÔõЧ¥©7wƒi˜D!œÇ^œiJÝ Ô¼tŸÚʾ?µŽ©#8™CצÏ¢4>§M+XwÖ¾Kæ,ãÜ2Wí‰Eµƒ×ϘOzÀ–¸níèòõP£Çz&Fzhž¹CÙÍ’Ð7Œ£, E´½@Ô§ ”˜ù°Nä3Ä8Ú§ ÇMg?ø°å±NÝ  K4Ûâ¡Jç‘Ûmoåñâ¦Ýá•XèwΚO i…Æåi[‘ý‰‡hãkt!´¾ÈEî|–XAkƒ¯ƒž‹Dq4ײÌ'îêR/-QËbi)=räÞÛÜÝiífk†o"­Ò²0ûýF+l[,•ZÌ'òÐûæî[Í2Ö¥ 4ܧ¥÷æëÉÏ!JouдÜ@¼NÂ{³L•€»8çlà0%$>Ž£§Ô¾Êz„ƹ &G³pоz -úYÂç¹Òü.wóççùÙ¯ÏöBš4ÎZ°ÞsU ˆÔÒB˜Ô¬BµßýuÜúy›£ú–t~½èyUæÓíÖ¿ÆÅ\ƒ] Bî¾ù;x`Žù%òÞa ô£®€Ó½6QÔØ 9Y¸îZ ¨[’1{²ô±Bì±Bí«úÛ÷¨=X”Ž+4¦Ô¹)žO…b°XkK’qÂáó¾Ë¨¹ƒŒ –©#³GSæ†[îk¸H­®Á.!z²ï²p:•âu=€T›ãÈùl‘ùÀ" $AÑÁà6µêÕäÌç¼á·Ï£ëÇÕ:—¶CL3¶&¹î€­´ÀfµÞíOج?þ˜÷{1Tõý,¬u´ g“–ÇK*ºm­°fŽ­°ÅΊš4™R³H'³XÒâ ±5íR’*R¦ÂŸ@Ç®9ÇÁ³2Y®Võvr°ºà\ƒ¶‘S2¬ð‚3 K3¯c ÕÑ-1S‚V‘yrëK-ÆW"ì¶ÈŽÓУ’£!n•’ßeMˆ}f'$ÇôÉóYR5ÜÖŒ[ 1·­ks}jã×xê‘‚]Û‹·qkÏá…-Çùdû&…ov)Õ˜(^Û‡«¥ÊW«–~bާ6/”!ï>ó8÷p±ºb¤Eúgμ<‡ðA“+i.¨W²ÆéÀ›Ï3@ë”äÒg«1a@r=xÓ¼kegQá­g¤¬ßªX²Z4GE¯·Fð¾±+sžŽB$PÆt¿NÑÛÎ,YR-^ëé‚ÐÇ‹ï!MˆuA-ÌE ¬5ÎWÁY™zznɺ‰Wç«`žÏ¼ïò:%µ„Ž*|I²éNÌã\?ÎOök©Î+İу6öNE }ֆ䶥×c nûõwÀZ¾“×`:u®0¾m µ,––=wª ôáÃï÷‚‘˜f ô«!…|ϵ,”i½òa&áŒâ_µæ3¤mccRJzx ¦¥‹8ƒ5`¶· o´ M.¢ -ZƒÎ]ï³çOz>µHìR¡©ëfi²9j·÷}ÒHÜ24›A¤8:«;¹Á½¨c¦utrCäÜ`‚Ɇ&˜r‹#£>OwÛÎßÚ»nW×ùÛhŒTÕÂÐÑ™®]ºÆj‚šÞd²´‘ÖM¯ÙcÏ}“R†ß›CQ+ó!çΧ úñšG´ÚµFkfËe#”ΧÔ^Äs7¨²[ù-Æã¤cÜUŽ&ç+ |ž9I,)µ)¿o ï¥ôÈ n³@ŸEŸ'IP)ôËXäI&ü3(4æ¬G¨&\+tÝ}^‰Y]5i4ÒAòDíPê8çãùšer4jϧZæCZ޳x hüóì}] ÔºÙMWÕÜØ­Àiçl«Oê^ÔøI x÷uk‘Mù^}íÅÚ'ïV0-ÿµB/óé€Ä§ üDŠ£[ëqU ÑTÔ:Ó^Ú"T£Ô0Mó‚¸ ¤|U¤¤›ç@Ò6R3Ž@H+’Ü¡ºE; ‡RÅ”ʳBHqÝŠÝÌ·3ûõŒÝÏÒZÑC`ÿ³Õ9’QÏ@sªàX¡²-G¡„>wü$v²k”—£²/%]·Ã{êD¯w)Ù¤9°åU´¤k‘¸‰h ]ISÂÜMøx,Dyp½þÔ̇Zæbñ>£<‡Ç`¬€4ÎZàBu?àóZ 'ËCÃù‡Ùù®‡T„Ò|5+sÈånÅVvCž/?†—Ùg䦸Zαƅ2n±b}ð]†²ç)D§fæÆÃJ;ÎÐ2ù¼&ðÔ@×®1 RJé°ZÝ\/|ßT Øø6®ÿh!ÂëPOšPТãüßK-a)ÂëÞõ0 ꡆ£¹°ºm{¼JÌ꽸ÂÂgY.peÖpAèn…çB³ €×R3yj¸n[ 1ÚéÅBÚŠÆsxIÆŸ¯±)º´iÐú¤¤”ãcT–Vò3+‰&´…Ø??^v\Ó6¸‰Ö³6öZÑ. 4áÀ ó…™$%) ø{Käºm%ëB+ÚÑ'tãzhMŸž”)¼®ü¤s7M©°wDÆí爧¸æ[ãh7ôK BS˜ƒ†q¯}‡¥Ö^'CeÇk°¯–ù þMpEÎõ-râ‘L0d1]‡ÿlùlÉÄbt±¦þgú]cæt€¾âs,í<8h¢ÆpŸàÄBðÐ>AŠ„ 3šô)¼Ñg)V/ "¬[i§Å\„;FøŠg w-ñ‰œ ó 0L~ã¸û4÷z³ÀDü'ioüp‘JÆ×ÄÙÌ€3ÐÜ`p( m°S–.â¡÷¬ˆšsXq/jÂF X¦5¨Z¥â ΤÏÁ ôƒiØL •W²¸jŽê‡EKH“ƹÊ¢ÔX¨÷"€äÒgŠp2–ó° }5§a7wŸ‡ ó\ëZ’@…!€Mzàn€´Š›n€Û †ûVÌÝo‹+°Á€;€Ec´ 1Á 5îÅÏ®A®T\ßZÙæÃ*ï»R¥âÁMð^§k­†–A Jm{q¹ÅöØ÷S|ß{°º–Ö‚çãnq’õ.Ç‘Üܲãî~Ûª¢vÔŠ4×’FoãÜøÏÝ7fëî7ïwó2˜m~õ`íÔwÖJäõ¯µ…è)`šCª±²¹n}ØÞ¡N¶Œšd@.xòu®½`\#jÖ¤)ɸMEˆôLŸ\xm_â mœ] B5@'CÚ̱ïöar‚BeÁsŽž7²Çl‡:ï›ú|Êé<…˜ãÙó9ŽynRž!‡HÖר™Eª:[ ”h|ß¼üšÿYûøg×mþXKh'ö]š`Q«àåºG3P꺵ç¹óYJ³Þ¹äöÂ'E)Ö¾»{ž+¯='oÌù.Ýb¥x9×ÀVùÔ– (Äð ¥iäk)¢a¶b‡ËÙñ9V´çÚû(`ŽëS¤ŽS*Ù²päÙëÍ]·šD÷"/¸)eô×/-Íõ ½+*¼6UÞá>Óg)ZïÅZ·¹˜%ã–Ž3WÀX++#ï´}Oi Îz„“Z´u/ɸm#Ï4Yúýøá/?ïð üøéÏðµüAøå‡¿ÀÏ¿úW¿ùñüYþ‚ !¤™ c^ÿª5àÊMkA­÷µc´‚÷ L„.rÒÊKA-C(góQbúóÚc‹¾öD‹1zà•Š­H¡ËíYçU$/-$‡ h\çÔy“‘J8‚g„¬A­3nù^Ö@÷} ¾üf,‰¸Õž¶Î§ ý¿üïŸáO?~‚Ÿ¾€þ¾ûáøÛOßÂÊMJ+Z´l ¢œ8‰Þ vW7)P3©zÊ|ÐcÈJNLƒœú7]ƒE«1ÎöÈëd}B5iN<#•(jÑ'òÅÿûwß}·üøüûß~‚oÿõÛ´à‹?Ÿԯßþô ¾]~ûý—à/ý¾üÛOð­ 4}øð!8˜Z‚Br=¬’nÄäšH-u85âWj1¤³y¨“9À^#Ï9J«ÛŸ³Ë2N7Ég~d]Ñ2Tâ¶•âØl՞χ?Nßõ ¶»À?Cr€úž´vKkiœžÉ4îµUuÄu{v°l­Àái’ûýåÂ’ÑgøÁg¡$vтԸ«u/ ÂÎ#}7°sG¶Àÿôé»ô%|¿m¿þþ_ðŸð¥áf_|û¿à›Ÿÿ ¿áG#Xœ¶^¨…Ò"r5¸„K‡ÒY®‡›®Ê«(™9'^! ÅÎ9€)Õ*´ë8LJ/+ê: ³ä~è]Û®#Lí™ØvÏüuE!3ø8iGv|&8!ã60„^I€°%¨F¥E~÷ˆÕS2(Mw£…duC@l>Qø¦m®p êùSÁ`ƒRGhv…mல¶H!¢’´ÇTµ-šZK¤lʹPåŒ^L»Rõ✢}õÆÃ6nAWm h¹|<ó¿D¯E£µº–Á“ Ü+”YS戜ù̦u¥,-=¢YäbãÄšBXwæ•æÓŠišûWJhÍ[ÏçZŠÕ ÊÏZüØšy—:NË|îc„¾øðo_ý¼YuþõüúÕ—0ÇN/éòú>ýùë9Íþÿü~Z‚‚~ÿå?àð üX9ƒ¬ú¡Ì4ìRí­UkiL17w?XP;ó¡'×OôuŸQŽ^³J†üó©(¥Ë#ìI;k„B;4ö ,S´ø8Ñu;¾Í‡gi&Z®0;ŽK•n%î‚kØk†cÆKbÙzʸ¥% h<Ñö‚♼-©6‘aœ¹ëW¢dÅö»—q›r_L0Qö a Kßþô#üý»ï`Žú~ü¤¤ÎñGøÓ?þ ßa¤t°æPxæC¬%¶+4ÎÿÞ©ÀØ4Üñvd {)]Ú ©™G`“âËÌÖ|n¥5Év¾‰ëŠ÷)¡ñ#ã׎܋OÂ(CŽ<¬è 0-¥¢G7D%ɽ0%9U •ÃbÓ‡œåæ%œ$4í1ãç–Ï3&>ÔD.}]A¢O=ÿJKšq›$ôÁèeÜò{Æj)Yc_ß?}‚?ï®ûÁÑúç^!"Ý6Ìùbîjß§i²ëõÖ̇^->ŸÃ7Õ&Tû™5Þ)ç-çS;DMÏ«TåYJeî¶5q¢ËošöÚvŠ…(e®¬´#Åd䢤*6¢×ŒÛÒÒ­!Åv™Zð;D`åëhfSùH o£1A¹_ž`‚Ç·È<­ë’å$†µª%Œ§g=Hè¹­@™’Ùz»n{VÌ÷òqKã e>PEךñkÉã’Lìèºu³µ$w Bh–0æ˜û!ÆÛfms@[÷b(x]ËŸÕ{½ÇŒ[ë|溭S«X¯nÛÅÀ^£tŒüœüù”<>¡€þpß n€Éï=)œ·] B´ñ›¥§š–ùàÝ“šø̸âøJ7ÐI¨½¸ ¨¥aìø¶¬ É|ÐâJ(ƒ¦×n·<·›äze=Ññµž×ꤕ(¤k}¡&˜ˆP[V‰ºÆ`…×üåk IDATŒÿrqs÷*Àk¢Å|ÒwÑ2(è<ï¯û…´Î-óùx<—9ÖŸ·k6äZƒ¬ céIئ°o´€Ö.“\I<Ÿå¯Ý`ZÃ3x›F/r6Ú¹ËTœ}V„€±4K"ÿ½—cˆgd>‘n,KN3n]BCõ.-B+Øé®(Uïɦ@w÷¦ç©“à ßcæÃ“±àÁvÈåZƒrǹ!LÁ¡ûHÖ­C X…ZÒOMú,q?¸q fšp·-Àäî;7’d…^-– hé C/ ‡Íu/² ¬•9·=5;¡F,õ9¸î5¸e^Ƚð¬Ñ ϸU«× ý6»„$÷ƒ|¥Û-m\jÖ™*Å—0£æî-öÉ!!¼5¿82ó!)ûƒ13û®ÑÃì(7ÁkÓ²+UÎþJAˆ>W­œ¶%ÌOg(ö©§CÙ‚ZY‡qÌÔ5-®¬Çã #é–rÃÓfÇ®µ@Œ>«Z !¥jÆmΰ®[„é¬XxA®ð4?#ý{tNS¦SÁ-£ÉB qÁ}@…ÑÜÂ’ðŒÐûŒhn5KÈ{ð,®Òº0«–k¤r,æ0¦¦Wäf>H𘰱¤tk)óa¾.XÏhu]å3‡`áÃ4­ k3¿£->=ƒoZRy9SN‚r”:ó骰¼•>­»IÆíÁ‰&ܪ¤Y¡[XÝCï™ûþ1ÚY-£†1H ‚çÓÚÐUÚ#ûCr¶ijȇe¼//!J5@OjŒ^c#(zË|àà™¯2Ÿ©ôyT<Å+Íg‹qrz,q?ÄÆIݶ9Ï¢Z7 i÷z]‰Ä==M‡Ðè{A‚Ôò8í¤¶Õ3ncb4~­Ñøãù€ñmT­pHÂP‹¸×w#• eƒ½’ïùììNæƒrïŠsjÕ¨sæÓw7¸ÝµìM­¨îg 1)‡BTÈ~Ëw=XŸ/•Fè±U,µXzׄqrH|'û6ZhÇ꜂5¨´Òkbz¸kÖ^À3nõÏùïÀ­Ã\PÏ…6_!\+Û4„—„ì‡Uxóª‰,Sã«=gn’#³3¦–*¢ÒºçÌéQ󹿾U¬¥­CÅCp›ÞY£ñRÔÂÁ+Åqà„ðPqÑ–ÏÕ@åi˜ÖF¾ß©5ÎRÁàòùÏù<ÇZ²%_ã¤Ñ<ÚŒÕô®‡+ •¯S… ¤Ql4k=³Ä¼–ÐøËBÖŒi2ê&¡iôwj˜?7X3jÅ’̰×ÀùÁ¯?Ûw=„2eø8wXB‡ÄbÙ£6Ë€<÷Cn@j ΦϔûK\¡Œ³•§#¡½+Ò"Æ»ä¢e=¬Zð\·üŒLD¹õ,žq›‹S¡?V¿gI:& D-Õ¶ó­AsÐÜë¤Ï½ƒÌ‡œ†»{D^ü³ÝÛžù a—1–ˆ€Þ*¶¡„>%¥âL÷ÖSž±¢ÏUã^2WÔE‹ì.;Nˆà%3nX“'ÞÆè\÷`uGÚÉ1”Vïöx³Û_³*’Þ=Í穂Ї¼ßK£qÜjÃTéŸèz°Z…B IÍV]Ñ)!Jåÿ)qöšùÀßûÊôgá þmZ»Èšù°‹ÁHˆR­•§3n&ØâÁ%¹lôyœû!˼zk|€ÛsŸ=Y‡ñ2nSî…õjÞ+|KÖÑÓ¹5·i¼±ŒÕÐ8±û{É.͸€¨žšhbI±~ïhmUŠÑçÌ_CkAè]k×{‰^cww7L«0„(!ŠÔ/ ^L[™û é´ ÄÀ×=Å}"­{«Ê½1ú ¥¯ZÌ@dW¥¶-Ö)캭dÙ»Ö­•FÀbœÚT­ñ…‡Ë8ަ3¢ÿ,uÝè‰&gÁº_!Æg{FÙ=°‘nŽ»Ì:Ÿûïí3niád¯]P¼‘Ïmü] BƒpÀóák_‘"Ê5­Û’Ò=ŽcïE†”ª•Õ(¥•×@c^ÊþdKJ ¤Ü7–½ámâ Ó}¨˜uœ[¡Ëò¸‚!®ÔbYÅõlZ:ŠîÑð ‰Y8<׳WSÛ®áªIÉÌáÞ£\·1|n#™Æ©?ç”í ÷=Zèã} ±X–øý%+M“XŸ¢[A@n~RiVq*“®µò}aH{5¨M`@îvƒAq÷lLûì¸ëY[‡,ã¦ÂI!&cr=²’-¢˜ 8’® C±qbÉú&µ eœ9®ç0‘âŠÔÆYÍõкñÙ)–J ½Ôæ©EŸgð _A}Ê{•Ɔž¸Ó„£´qÞ‡ îQ½KAˆn„]óCAe‘¼—Cž"¶€´èY]ã9z<¬hÐãäü Óª”\è~ ®šPº¿d±ôÜz'Ïgèi† ë:Ô:ΞOÚëpûÝÁä†Ð§æ~hýnVú eâwžËýRT‹‰&óßëeÜÖÂC9³ºA¡—»o;CpìR*Áê~ ²Ùï!™Ú@íªgr•ùÐò°²ºÖì‡ØºSW$ Å,–µMŸCÞ¡šZk†C´X.=¢z@ }ÒþYkн’ùfE¬¸è9|ÉŽÇã1[¢Éµ–‰&óýÛgÜJÑŽt [yžz¾³ÀåÅG²†Ï& Ðy¢†ŽTÜ—"Žn»Ÿ»„è"¯‡Ëcߨӂ5fI±îÉBÄ‘ËÔÖƒ>Ãêq¶FÝ<–¡–é!õK{@ú:®Á„‘€¿3A…¡×sþsmôy†IARµÌ7¾¦-ö]LÁïu¿ç&šÔ˸¥É&5¨[ íU'§k’‡¨ºÊ4×müíôeÓ öîRBP! ¬ÏÉ.pq°/P&WÑêqP-Ì5ìm¹©ë!«¦Z@GYýÒ)­ŠÖYŸ!Ú³( …õf¬ÂhI)ìØÂÂQc…ZÖà|aV©¹n×ba?¥eG)Âd-Þh‹ò D+¨ðûY«! ÖÔCó³ ÑŒ ³õ,>ÅÞxЩ „>fµ!aæ!æu,'‹~¶cElœÜê‘k¡8¢V$|ó3 òŸ÷ôžg?Øù8q³¦Z$¸`Â4LõÔÔBdµ¯Ñ0ME \RŒÌÂQ¢Æm'sŒfº"K€Â> C8æúL^“ ïYâš´fÜŸÁn0Ì’ñÍhÚ ?!hïÊMèõ: mšÄœóCÖ8Í/^Oˆ# )6–yëRªpº @‹Æ¢e&H’$^ ›0Mn‰‡ÙÑ4 '÷p,e8¡ù¤McxøäP ­édIq÷ÇùÖµÅO3G?—±SE`¿æÒZÄjêÓkì ®÷ŒpbE–Ûv”h’ëž=b^Ï̸ ÑHÏÒ9oÚwãÛX©g£o™“æd¥Ié‚ä) ê-Ð¥ „ЈËÊ´0+*")¯ÆFoÍ,rý¶Ö€?ñ¾ îŒÃ ™¢SŠ7¶œÏÅ’®§Ä!ÑŽÖ)@æÓ:S¦Æ|R¦6Žo;×CŠåUr=ðëG:)ϰò6É=l ­Z+W÷ínÂ7¢‰&ú~î!°ÿŒD“”gÄüøgât=yR‘æî´Ž3DZÜ:¶îߊ1­©óùߪ=ù`8ˆtÇl÷™†I­HYë&K<QJ§ÿÀA¦ôîÖÃ2uì\’®P Z>jñ¢Ð<[Çš«aýÌ~£¥2Õiù¯e6cŒ!œ•Æ^Ëõ€ µ$™Â´ÆlÉ6ÔÒ¸)Bs‡®l>;àOC0ë@¸&n¨à 3n³ÐP‹¸Ûvw1„†ãvk›K—¥®Û33im[Ñ'ßKxÍ:ß««É8ÑÒ|Z‚Dôh±òÒD“Ø8{„%Ñ„òÇãûå{ém)$´´øhÉ5bæBm‹8Ž:+SM¬sÞ¥ êuOS´6C.¶¾Pù–dŠnЩ-¸Ô!U³©ðטõàÈš—Ìuö<‘ ¦IîG*cK×+ý5´ѽ”‚Òôs€Hü´tm-é1h‡ÕÛ+XÚfxM«¾»°)o SšdƒKrwj8JØ’k¿`æ¹|¯VCl>-kÎ3n¥= ]G8ðkû¤+«ûD“>yª ôñãÇÂ;àtê¨Á[£g­Š¦‡„ÛKÄÚÈ4Ø1TI[79ˆÑˆ’jÉÚb0ÐS¨Í4~Sú™gì`ç,–ZižíCÿFqf0ó,XØ>«Ñç}˜àÎ\ð) |_Ù{€ÛÍíöHjмÍby4^%Ѥ&}æîᘎç„#}I k^¡DúéLI9{©@D÷RÊ=N„>|øàýÎ#ÕýQ`e‘˜tI±º¨›&Ó}4´,³U@*Zá¦É­¿[1¸mC܇­ŽRhœ1Ä ñ= Bs=¬ dË|k$jÁ‘Ù>g Swwó„¡Ûòû ¸=µu×H«…ûÁ’h¢ÏZÕž-èY‘LÁ6Ÿ©µxön[¼no§8BþºÇ²Xæž‹eVË]»Æjø‘®º gnÔR÷¢¤¥tðÍ›²APšž§¯;GJÀÞ‡®«¿æo0 ¼!fCMöÈ6‹…놮Ûè»±OŽìEEÂÀL§ÏǤaHë¾w=´Kùá[à0çôeÔSèR ò%®Ûœ÷«!D·ÄKx«• ±ZƒB.u©^šuî¨ ïv›n‰O§X­^J-ƒ^KÝ`ë7•`Q\ȳ–=;,fÊ|®г5îXÀµ:¥Z'h ÎÝ÷ŠÖ½ó’°ÎøÅm¸@gÍz×1%Áøå¿’ë"Ç6»n]‚µïùx¬LÞRóÈŠ’yµ H«íD¡‘–ƒž† ãMÌß'Í’i!Ê|k8ÉšMi3T+­Zs]^BDçì²]ûZÁLЩ äU¿$ØK{s°´DÄÚ=ä&{è†larU™®@%˜™xì3}T×­§:Ó s&˜–ú”÷°lÂT„îAŸ;dZâx¯Ø;ö@ˆÇãqê!³C0¦Acà4ñ $3ÄÛüƒY*v8Ï]8yÇUÛÐ-£â»>ž²  ÆŠÐ }ònîyÖ¡y>ÓžJ4±Ðw‡YM¤uçm…Z%Ñ÷EhmU¬|¼KA¨%’]ä³î~ƒá.·@hmr}äldÄJ°™7КêJ(t¤.`Äbráx§2šÅÒšòÞú¨MóAÁ‘)!¹Q.}Ò…#9 ¬V zHXbºø\ˆíj4%l±H¬µp§VL4ËMŒAФôöœ×J4Ñè­ô\h]$u?¶- b†Ýú/Õ‹K©Ñ—WÄj£åÍÕv“”Þrº„4ÂÛ"Û}èæõL€(µ=‚Ü7+¦mÇ+=×<̬‡H“im5òŒ¦G3B¨–âÊ÷:6Ž…æBÏ£ÁÙô‰Ñ§V)x¸O³OF¬Í”i-¤£4r®€„zÖÏt¡ÏHqÑŸ Ï]Š…8ôžÖžu4ë1=pè³%ÛÎWN6P/‰&VH=,ÑEÆ÷]Kþé Îg#µ¹q„!BŸh¹Ö;É€µ ùà5žRç¸kA(‹»GҸ׃Niö¶3ëBØ*”‚-€¹¬JFõM•–¹™…hœùyŒÞ¶C¨ô!Ðï„î¡­ÿø6.u8âÉÉËÁ0Ë0‹¥Vp:4®3ª¿ÂAÆÁ×Ý^ƒª­‚ÀÇ’Bã^zôVùÎäŸqR6§¹Å._‰vh¯ÀòtîpÛñ¼Cª§5GåŠÚp_ÎÑ;PKåòih¬øwžÿn‘âèVŠù¹ÒDm“¬q#vMß2cÖ‹ë à|K}fŽ0ñjk@Ó-½@ÄÀºIãFZà)¡Ò8¥ƒè~spŸs̓][€ï÷&z:®T¼ÒAÔjѧwèL“ù;wÍàvåF5×íö ¹Æ9 YDkW ymS+ÑÄÏZ·(B­b kasñδ ûAqŒ…ŒÀšÍ½ãu'³Ë|v)=óaâØUcMé³e­¼»j,ü&Ò4MêS{\! ƒŒ§€ü•ø¹S7rÈ'-+oL¾É•o‹@¼ ÙѤðZ¢YׯKâ“b.K Q7·Ò 2WÉÙ FHãœ`ì…Ÿpž›K;­¶VCáë|ÖŒ¯<*ÑÄ»wÌBaˆO<9”õóÖð’rÝëÖÏ{ü\0¨P:éRQ€*%ß³œ\C„…0LÈÐê‡O ø;tœ5Ç ÎLè¹Åç+Gh¤Â‘j­¬1®y oQ½…Ö¢O[ô¡55ì%Z8vÑ#)×Q¡Æ“–ªœ| %x©ÚS½Z4[Чõ~¾2è„k4ú¼)FºÇévî-kœ4NÉb‹/ìRÂC}‚}$¾šÆmñ)J ¾[À`Wð¼qYЪg˜8×9µü¶øü˜¤Ö±qò #5I ÝcÖùXÒ\(àÀnñIe®9AÜ) Ëš6¥Z‡{ô9–ùtu-8[)·iœ„´RM(‚㲄0 #LnÚñôV‰&½£$.y¿¿mîÎõÚÎ2˜>Ž]ãTvÛ8ý ·}aDÛXJ¬T] B)ÄA³wxMãδ ¹n£šãZQXpŒjÜȨz©*"r¤0…ä:RÊuÖì ÑÚ‘(8ÆÞ5ˆ¨ßWîY”* qa½vʳ¥Ö! ÚÁÎ!iÜ))ÍÍUC×2e/j‰&Þ SS¯j·‰& Bó©í­éhñiŠC®@,!7 žCŠŸ\­¤ Ëë72] Bjæ—Q^€/Û1{ûœ}!ëèÓäêA±¢áéŠß§Ò|R2<àÏŠU³5%Óì êº8ª–‰–4tv.› À}£WÑbyR³Ð3kЧ+¶ô¸ë!Dz¶<ZÌi’@ô6‚Ò¬_OO_¿ÖJ ¤p ë:†‚ÍE,·$ÀäZàjl5ö"µL@²@Ô¥ ”Û7Œ/8.6Õ¸{2¹†6p2qM“½æN̵ÕcÀ_al˜R|ÜX?ïin‘€¿T7ŽtÉ¿ Ïk,é÷¦[Ÿ7|ÿ½–Y´¡ZlKƒŠ–‚˜´t.‘ÿ”T¾ uìFð8‰­‰±í¡x´Méð÷¡ÇÙ)‰&ÖøÊº˜çâüž.Üjü$ø\Ex ­m<Æf (Õ¬RZ<‰e"µŠ¸Õ=TGB—‚­ãY(ŒJœÓLáTn5¹Žoó{K;^™ßÉA‹4€²µ¦¿OCÞüÑë’Ù_jܰÄIx<0ÞU[÷Ü`r“© D ¬÷ˆºÖZ¸nľ_Æa#Vp†½rµbáK“+«“{ØÐâwˆEr•kØŽÒçäÚ&šH¨a­”ÜÇV«TÈÍÎGkðŒÔçå~Sšóš FO€$‹å©‚ÐÇÕ¿í„¡ EjA«-ÃÆ¿Æ5n ᥤ`ç"–ÍV9~ît`¶@š‘Zê0Ìsz'›e(çÝW[¢Üsîp+SÎŒHwÝÖÒ·L’TK Ý©´*iÝÒuËwé=j1x «0ùB_-’š† n.^â"×bY’h¢Â( I) }J­,øõØ=R!•œH1äd?"¶.ožŒB£%ÒX‡ ÖäîTAèÇÞï\0J=p,FTÓp÷|ÏÓppº.„#|Ï9“µ`õsKde¾ƒÛiUà†ÌÞQ6!Yc˜±{Ð>SO(5÷­Óp7}®Þ¡[‰Šܶ%7€¬ˆh‡Žõ  [Ï–{¨-iÊ3(-4>€›;»GU¤ÇÁM0ƒ@C7"Ž%ÿ»¯m­ð«8ç´ á°ÄWÒß­÷XãÝP LÄvNlbv¬QqÃ4ÍÝJœXÑ¥k,«ö1,BÈ9ò¹&G‹®ö1œéçÖ|ýÓà2£ÏÍd44-äRæUR‚…ô›»g=»¤Š:"f(µV–d­IÕâs× +/·Rkj–p0Ì•ÉG] aˆ–~uÖmèY~·\iÝ€:l­ì"£0€#z©yü)³Ô €ï- õ Ô€:&ààaÜO(„yî­ål­ó÷ò‚WEÔà>“Zƒ¡ƒ9J¼Y2Z­‰©”nžžüܹHßpÝnö~ì|a×Ò ÖNF5E¡½%ñLk%€¯qç¸3ùþb϶ϖ 3« Þ<žy¾ç –ƒG†¬ã”â+5ì܈à¢ïÛ‹9µ¨®[£ÅRrÍ…?¶8Jð9žAéÀ_«Ôøœi˜àî·8Jˆî7nšõèÁínp[¬•0´ã-/!Y»´cÀ_« •Îa8[[9ÚÏÝ Ôò ¥´×.¼Ç}Öw^ ìÉsKäæïßýq\·ADö‡êʤhl­´B;hø»…„V~ÕZ)LuȺF…1‹ .tÈ„²ƒæÃnó]ÜnÃ$ CøÂºý{Ô]{W7t~¢?çÜøÊ­‹­hÖ–‰cÐýV’ Õ²ä‚”Ôr»ܧaVHa(4¾² ´!eÿ%!D”¡NøÐ Yâ¤Ú)GÁêçn• -ý.Z¥¨Y8°Bã¤=!7v·h2¡Ù}j®Dü›åe©í)ÖÊ0öœ‚-ö!ÞŸ¯»´,¶Ôø1*ÝØ“ºixÁãñÈ/:¤Ê*}:ÖWˆ¯Ü'kËã÷ãáYsjÖkì\Ün2ÀéŠÏ,Í4:ÀlÒòs­¥bûC²àÆŒ)] BÒA“D¸!Dœl·HÔ’/Õ°ð=¤³ >·©‚Õª¨¶ªB怭ikŽYw½GPˆySŸí¨²Æ¤mk€¹6M £7€p(v,¤óZFmØïg›ÏœÂ|´À&BR Ö`{á˜eµþž?6 bûëœ6‚n&iá|/ú­ìVf-}}ýÛ ÄWÖDª¢˜Ó´ã9ù~·Xà°J8VsO‘ùÖàýë=a—ëÂh—u<Êþغm~øœ„æ©KA(ã8ÎÑäHEwñž–:+ñ6pë4Z RýÜè†ÊõscWk zÔ4+éÀæB­¥s?øQÎ|æïÒLœTÆ “—ô|-Ýô(A½–õV„OÞ‹ž›2]kâ³LÒƒ…SMøŒ1ør,ÚR|¥m>]pH3éw_™ŠÇ#¯ÝM PAÆÊiKÊ?­mz¢1PÊõ7Æ¥¾}týèþÐ2¾o‘ñ纄¸)Ë÷‰ P ý7ÉF¸%^‹´êÙÏ}vü)~îä綦hsŸþ.–|.U Ûi ËÏÞ1Ž;·C*RæßM«ç‚£ävB8pz£ß”Ô󜌖í9~Á7. ÍìÂÖsFŠyñøƒðµ}PDã–÷âàí#)N€XN$;¡j»ÔâÂBr@XY}øJ ¤çG©EšÓg hÖ«dI÷â+%·|Bý>i.485¾Ò2g q#£&Àw)ñûn´áI* ·ˆÜ´¾‚_g&íSN}Ôôs·ˆ¢ 7®³Ið êv ö)ÚvÎ\¬BÌú>a; +·„i>#rj}KìE\ Û ÇžÖ‚ºjá@äY2N;rc½$·ƒ÷}+iYƒ¿:vÝZA{ª!´¶8-×çŸôˆ ÖKnbàcJ§² ÝCš¯õzDAØèSL4‘\—‚5kåAðüΨ…B\ÜaßY`fTZŸá¡`­X¿*:æ³4¢ÛºA°¥Šå]-ÌR3«æ¦êÒ&šüÄ›!HÖJ®qs÷èKw˜;"Óç0MÍiçhúD ÛÒT2¡íTÙâ®b®aK™J*„uуtЬ.á I9˜ x™?ëc4*(Wbúz­Èxζ(å4™åÅWj1•!‹%~g¨¥`UèŒÞ—P|¥U˜-¹{HJf—‚ö¢yå$¯ãücõwê‘#Í¡ÀÁTlŸGäDÔÅZYê4&†D¦JҸ尿^Â|ôqÃYêõ !V(¬$Æè3&¨#$[Óžò-‹¦€Úo*ÙšÕóßâÌŒIDAT£OrØ<À@ûD?û Ä0(ÞáÆˆQ‚A}„}p9¹Ig 1¹ -.ÊJœ_™*åZßx¦$ µ”¯QwqʺSA¶X,»„üƒÆ×Ì´NÜ¡iŽ/”×NC›(f­A°”þYÄ‘|êZa6mÁ¥ ™<-Z¤íúß)óÜùÔ‰¶;,ÂP «¦‘8a|.R E†Ì»¥°¸É&˜æ,5N¢X+["Õœžr šJüÜ›LÒw%º ÇžO-ˆRˬ†M·¯œÜ°ë=¥A;ÜЈƒá ÒvÔÖd|“­¯*è„éÀ[w:ÏÖøJí`_i†„˜Jü€¼‹µAù4«´ÐV—‚Ð\Ëü‹ ã³hRé}€iškppKE‚)7'Õ‘BbD½úÎKýÜ)>õ’Ьmñy ¥ôò{ä EÐ9¦i™ž¶$7L(~­†µ²FÛŽð„©©dÕgA½´yn*¬7=f°B|Æg…ïiFŸ¼Á-!xÍ¿¼SѳÅ2%üÝ:Ÿÿ´Vš¦Vñ3SœNCgÅš­ÉM BÝJ«q] BvŒ/Ðé˜Å.ÉzÇÓŸùl&œ(u7z†,h]B`[÷4ç R7–KBÍ»ƒ—Ù&¨ÆmUö>Vke4æÃMÓ¡Ž_®q§d?íîõx@¸°ÒñÙ))ïVÁY²,½cqL ågÚ|Yž…ŠÖ–œX!¼Wˆ¯Ìµªr>¯iV3þÇsýα#Ÿ ·– Å iʵNn.¿ç%f«Y-£!Xç¼kAHzn%ˆYƒbUzã•ðØ™Ê ¥é϶=KZ¬£‹4†¤tÔîŽÐ¼¨&™"àV…âvˆ!ÇóMiÊ׸åç è|¥¤ç¦X+5ºØÑhC!ݤEcèT’xO ú”î!h´ÔNïo˜¯5&é_xVè]‘_нœÊCüÀWÝbyfX‚*`9q;Rµ|Fù»¦¤êKk¦%ƒÄJª„°Z¡•giKË3¬gcÊ^ìZÒ|×{$~y!$FÁƒ…-.* iWÏÈñs;ÐJü‡ÓÑìŠëzt2OH2Íà!‰ó”+4nÙ?á¹¢LLxL…Å2¤2£“,–±š'´ç—#×¬ã´Æ"‰ß­›Fli@Iã8V¾c Kõ0K¬stù­8^ ÿä4Ú’.16‹&àHÝB–Œ}̧Vë&.±\Q„ß#/äßsÿW2œ*}üø±èûM8n 8#Y6–ØZƒ#e‹©¦'#·3€Xî¡÷‘‰™\åkÖ¹Çk È–à $5T-† ·ºD’e´'„Ö4vÐH…9åg°ÚRL¸¥– ~ÐHô)kÜáŠÙ¤ Ö؉|‡óH³ÕjQä ïð=è<¥‘Z½¢äøÊƒÂ $¡ ¯'Å‚*×bñ;’…Oó”X×]ÛGkülRŠ­Ï@Ðb™b™=Uúðáƒ÷; Ftbˆ÷… º¾ÉuÓ™Rj€(eF;`j){­îF+­&dÞµh’yw ÍJÐÄ ”Ù”VCÝ×Já™áC=´É¼ê«ÖŒ+&ŒÄ„tZ‡FG ÎìûT¥Âb­ì%›‡jÜôZêAã„ëÏEQAádç: ‚ÎÛhrǗΛvZ)?^ëšX(xËØ8½}± ù[ôkéˆDhmNz +(…W£ ž¡sÑšª¯­Y’ÈÎ,* QÞºß*0–´ ‰ zé¬1D,nÌ’MÌ¢·Û ªŒSº–ZÝÕ“z¡aP6Ô7ïJéš§iÕ4Ɖf{7 n¿Ir}þ±M±V R¢*°®…á 3ØAÃŽæ€ ó=õšHk¿·„–ªÅ² žÒûK¢ÏpÛ‹7€éÒ×s=ˆÞöœVþ²):ϸ¹Û<ç™DN•Vu©ÅhÖJ[‚BéóRq¼Þ­•Ä„5þ+ñ¼âa©‰Tˆ Ñ'÷’ø‰D›bÇ…" )™… é1H‹‘+á;] Bªùq Pl3ó ÉŒ)â)n1€¥£øÇñ%æÝœôiѼK4Œ5³áà†po<³ˆÍJм«¼M5<¶ºE©k`iÓ\C?K­At~ô:]ëó”2|í{Îf¤‡$¨[­ÄZ|MÌÊ—²O4‹"¥ÑP£ažÈW DQmœ ë±’ h Ò<>nôúûü¿Í‰=†ÄÀ÷Í&QažïÜÀl>KŒRÍ7 ¿]Ÿô^ i-:LSÜ„/Ùõ:˺„üðÍ»ü`‘&J\ðe#k¶ÚlSözßÏbýD„æŸkúº#k¶ÓC`e—¸K`Ób‰Æ øÿx ÷:n>%+Zª«…<ÛHz§„jõÎìCÙžkŒÍÎbN pàwóö…lûáE7øóX©?”eR«:ÔÇqT3Ò$ë?˜¹RCǰÑ'–[„–mŸ?×÷ÑAXAn¼äº¢ȹ+ ®˜®÷{sNžB4¥_N;V¾CyU6ô¸²°¿t×2‡X¥W8€§P–@ª‹†1º¡³.! Ö`]O» ”„Òµìrp0¾ ôW±(Ø}kkpÁ«ÆÑK|‡Ù¼  S¸n“F˜±øíoRÝ n~ÇMÅ5‰¿¤!LI®Z‹Æ´ 3Ĥš5hë(úÔbFôχÝc5 ÂF!E²%úÔÎt‡Ui¼Ð\yÖJ© ÷¥JyþÁnâÒ`%þÙsXŸ‰lˆOŒ–{ù¦Æ¤¹•ìu4ó0ÕÒÍé“+}ÔRt©­»wßÃϵæÔx‘¥^Zׂô¨v¶~`'ñ¸Û`šv›Lê°¥&SÜ¥ Uˆ©¯\ø0\™5â}“@¿x®Ðu’¬Ô5Pr(¯ntƒÂ¾s%ÞÝÚwÉû?hòÆŒ>ƒÅ>ùa%ÄM‚À³NºpãW¢O~Ð൴˜ƒMë=/NŸÜƒŸ¤qH¡X ÿ|ÿx ò=,nbz/>^m$R¤v_˜S¦Ï=ŸŽÔõñ|vº0_ƒ>¤o¯‚·æ²¬Ô(Øbõã–jýá–:^9ibÛ{»ð”‘ï3åƒòm¼‡[xäj‰bÏÚ êôo‹ËUΈ“åK½´.!=OöÛK¯†TK˜ؼÃtw .†£­A¡®ÆòçÁƒÆfãÚ¢`T¬(TÀ¥Ë\«zÙ !äg­öNÌ¥6ëÊô‰Ï¹,Õ“›êGd$m˜›Öw8ÃZÉéø§æôxy-%”Jànxî&ÆÀWýÙc¦Ýïm`6NZ½ÃfRŠÜë>Lp:]jðõÂ+¦;Qî²»ê½Ó§µ«–¶ÀÏH§Vú¤|OL\QÖ¯cXŠSŒ¶°‚ð8“¿¶¢KAeÜÙÁ“ÜÀRt,¡jì°ú®}†7W#¾¯ u˜îàn{­&äÎài¾GçHl)è[\Dè°‰i5œÉïüýn«#a^…Æ>kwmW3ÅïïÅH(÷ð›X:rÍ&ç¢ß ‚ú Žcž¯½µ’Ï×úi`‹UhÔ‡äªÙô=X‘4"¥gÝ|MHŸ¯‘]ç†h@‘dÚÜao0," ßÏ»ˆ…Õñ!fñ¤‡Õjq™&_pæw Í @!KUPçó1Nj) aÀfÐY.RèSþ¾¯˜"¸ ®¥ÒÓ¸G®ñýKÏ´0Ú¥ÅÓ3R(´Cû‹Åæ ·$€^! éˆ;x’~—‚jòËÞ]@r«†å@ÝiÜ`뻄ØÒuÍß½‚pÃt'X¬¾ò³‹ YªÕXû6Qð¹Ø›´¹šã-ÈxmìÅVŸhÖ§€ÀÝožEG£-»$C£Mü]«5†D3Z wHx?Ô7ð‚z.,´é`ØÖ’Ço8Ù±üÉÔÉ[<„vÖfç#©GÔ07Àd…6ai9HvŸúØ êÉ·5Ijšˆ+/¨÷ZÏü)‚QÝj¯qA=.¤Sú”è’ÖƒòJxÐq.§®ù¤ºr·¹eQ((Vé\²¦s¤XÓ9ŸëR éËJ+ 1;æ‚X`±"Ýî¦û°ê·»Û C²_0=°m˜œÇ’ € …ÌŽD®VÃ3mxvÕ‚”d þ{>^J~¬˜'Ì é>Üåkþ¬Ý=ðxÕTzaä[c]Ç®9p£oÒè÷ >c¸Ïàà&Ægx¼ÇãñôZ…ÃF,Œ¡Ö¾ÜΚ.Õ( fI²œ-¤ÈîœO cnÏ]|³YÓ×Z ®QÉr¸·\:&0n÷àtî)‘¸ÿ6<úäÐ\ŽmèôùZJd ÛŸnPŸ^ì·¾5ló-ÑGˆ>W ¤Â+‘/ ÆÝàÓp‡‘„´„2iÑJõ6Ìïx»ùç5*£¢ ŽÚÁb ŸLqn2º„¤¢MT^ðÔ,]¾ÁãñýÊ,De!Àü­®ܼÓp,C3?b$pn¶:Û´Îw,PͦnØ´Ü',&ÒhàϸŸ¸ #iëÁ¡¸ I«y7 p'Lfbeyn÷Ÿ±_;¤¿è¸hŠë¹ÁlQDÁZ¹÷<ñþw†å>8 7­KtÙ†u‘>_ Ô’ã¨XÎ.ÆMH –¢™ƒ´?·ØߥË÷}ú”îÁˆaq“ÑÍ1[^ü˜Å˜«]Êœs0 Ž±Œi9xp«Ñ&Q†˜{ÆS"§ÉÓP‰œÇ4ÁD ¯nBŒ÷@›Ôí¨+œ«ä¶­,YÓϼ¾Äikµ’Žc”>A‚oÅ\yëøá¶5Ý}n÷ÐõÁí x"}nz¦®óäÕÀáNhü€¼:–šß­ $ @3 ª?;ÜÐÀ65—ñT\¼“Wøâû{Fã}á\ëO*hjglÞWÆ °˜DK.‘ ´tOi#r­ie—ÊLî± ìshñÛÖµŒ¹×Rn7˜fúœÀÒ«®é)ðèóv[-–TÃö0Ô¾Ý=®Wsó‘àsï™^yÃÎ>Ñ\ï éñÞaš -ÞÓ&Ò±GÿãÜO­ÑøA< C—”Fï7€û´W"=—ñó!ÎR¥}o8Q.ø8†;úvˆ‰qCw_xYÓ%Ú쌟†ª¡§òNþ3Ò%_óÍJ£gZ=ð6Òï•HŠU‚}ü’†ÁÜîŒ>Þ‰ÏÝ ŠC*ÌÈÑ­ ´€è¤N¨ 3AiCS7õÍkÏà¿{n²ÏûàÆ=?Z—KHµGK‚Ï9jÂûtO9ÀPJ÷\<Çn¶Dñ`kïÃl¿qV}AF}ŸÇíîÞ3vÐ ‚ô©ÅªQHt„s5€o1ÓÜÜÍÀï™E£ËÀ{|$š“Øƒv`£O_;õçfåó¯íj>1ú”’ Ö‚Ð&wK!}â‡QPß”æûnüZƒ»ßÖ+÷IV"(ïÜs¿‰ÒÉèÊÑM Ã^‰¤{l¾g(ó!èV¥jè2ïÔ e/R·µRRÐkZòˆD»r&®DŸT‰œiîîÅ챈ä}`-G‚‘ƒóNO…´I3kù{­Jã$ w] B7¸­ç´ÿψ]0/ 2‚ ¦…Qp³1~`O¥÷i€ûM“Þ¤¢^j­‰­¶N™ñRË ÀfÎåó¶dŽd5ì3Á¸ CÜÔx_ÿ¸ía± «‹ÒT‰:Õ¬CµÀ”ÄjýQSJ—Ãæ.bïOP§AÆ!H‚ú:÷ÌúÀ³M)møVŒ©Ø§Ož©ø|<¼Ø8€%ªlÜžŠŠc]sr¾£»¯JÆ^•gÒ9¢ï¡‘µ¤DòÌ37íFª<§mö øHØW)WúuŽ]&Ã[=ªqquÍnÛQ¤ÏuHÔúDþ‚ú«äÓ'U"'F³l´ °ñÎ&€9,s…Ö 7ÒGW'úÇÏÂ… .\¸pááÇâõ.-BÚ`kâãLJ<çzÖë<çzÖë<çzÖë<çzÖë<ç½?KÃ;d.\¸páÂ… â„.\¸páÂ… Ÿ-ºŒ:ÊTvá5pÑÄ ]\pÑÅ !º¸,B.\¸páÂ…Ï— táÂ… .\ølq B.\¸páÂ…ÏÝÅ]¸páÂ… .…Ë"táÂ… .\ølq B.\¸páÂ…Ï— táÂ… .\ølq B.\¸páÂ…Ï— táÂ… .\ølÑIÓÕÂß¿ûøòo?Á·_Ë¿ÿ?üågø¾?ý¾>e|ÎÃïðËŸõ¯~óã'øóE Ÿ'.¾pÁÃÅ#.p¤É§ Bÿüûwð×|ÿîýåwøåÿ úñüô5üóïðÝ¿Àß~ú¾ntá]ãbjf\|ႌ‹G\È“)Nw}ýçOðéÓð ÿÃïÿþï¯_Á—X~ÿ×ðÕ¯¿Á¿ß… :ÂÅ.\¸@ŽLqºE(Œ?Á=5ï?á¿~øúRý>;üã¯ßÁ?–Ÿ/ÍïsÇÅ.ìqñˆ qȼã0Aè÷_~€¿¬Nܯàß¹ïŽã_¿Á¯ô÷/þj5¸ ]@¦‘/àÛŸ>Á·ô3ýaïû½ðyàâ v¸xļã0Aè‹o‚O߯?·â_ÂWðÛöûïÿÿ _ÖØ…n`¡‘/¾ý_ðÍÏ…ßþp…|†¸øÂ….qAD€wœ#Æl¶ÚÀÍZ.\øüpñ… .ä@æý B_üø·¯~¥z€Ù¬õÕ—ð‡à—.¼;üþ üð÷’_ÿþßÀÿ¼üÿŸ'.¾pãâ,ðŽÓ»Ïo©n ¾úw’ ûOøûw]à®z!Ÿ'( \tpáâ |\<↙âtAèÂ… .\¸pá,üÒIõbÄøDIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/testlauncher.png000066400000000000000000004206341465265754400217060ustar00rootroot00000000000000‰PNG  IHDRÓØ‡m pHYsttÞfx IDATxœì½y|\Çuç{ꮽ/Ø÷ à"‰«Hj1—˜¶%Ù–,Ù²D?Ëqä‰ceò’XÙ^&3‰&ÏógbybÙ¡iIv¬DòÊ&©•¢$Šâ ‚+H$–nl½ßî»Ô­zÜFck‚  Xß>øTߥúTÕ½}÷Ô©*D)ƒÁ`0 Æ¢Ñè|ÛÀ`0 ƒ±páæÛƒÁ`0ŒͨZr8‡cMa0 ƒÁX€Œó-Ì—) ƒÁ`0 !“J&“§OŸžGSŒ›šîîîòòòéo†¢(ííí»wïnkkëíííë뀒’’ÒÒÒÖÖÖ-[¶,Y²ÄétŠ¢xìf0 ÆÕA‘Hd¾m`0>L_-iš wíÚµsçή®.QeÙ&'`blb¬j*6ŒªªªÇ{lÛ¶mEEE²,ßà0 #;£jÉ ZJ&“×–¥Ô0ôþ¡à±öCm§ B¡a“˜9þ¼üܦ†%·µ®*+®D !4kæ3 †é¨%Ji(Ú»wïóÏ?æÌNÎ¢Ææuwnh]~[aqIN~!:8Ð?´;üÁþ}gOŸŠ„CO<ñĦM›rrrØíÃ`0sÏ8µNŸ>½zõê™æ¢zÿ@`÷Û¿þèØû’lkij-/­ôy}ÇG"á¾`OûÙ¶H$ÒÒ´lÛ'>[YZ%Iì-™ñqãªj‰ÒÓÓóÒK/íØ±ƒ„õîz苵ܶ I3LÝ0±iJ9„ž“D™FÛ‘ƒÿþÓï¿û1ñöíÛ¿øÅ/–••qÊÊ`0sʸž8+Ä{Fj‰Wbm'¼ùÞnJɽwo®®®L‰H|(2 Ã.»=.¿ËæèzçÝ·”„r×ÚMw,[ãõúyŽŸý1óÄÔj‰RÚÝÝý½ï}ïç?ÿyuMíc_ýÝ-Ÿz@pxÍPTCÕ Í0 ›”ðˆDÞ&IN»l—œŒ¿ñÚ/^ÜñƒË/<ôÐCßøÆ7ÊËË™‡‰Á`0æþÛßþvæCYYYYYÙŒÎêÿÍ›¿zïà[uµu›7m‘\´?r9PRqlb“˜)#SBCÑáôƆf?<üA` · ¿Èãò²}ÆÇ†X,æõz¯´7 ýøÇ?Þ¹sgKë²?ü“?¿û“÷›‚#¦šÑ¤KêE&’@ žTUƒh1˜ˆ3)'Ù‹š[ªªª»»:ß~ë I’š››Ùd ƒ1—Œª%‡Ã!Š¢aÓ?9¡ÄßÜ¿»íôáÍ÷nm]º$…£ 5f`cÃ4‰i2fY“`ÕHU”V¶<‰„+Ë«vç,ˆÁ˜'¦PKš¦íÚµëÙgŸ­¨¬úÃ?ùóÕwoIb>¦‘x G=šH ^>w‚W#±áþ`?²y0A”(ðqœ V×Öžn?¾ÿÝ}õõõ‚ dý.ƒÁ`Ì:×>ß’a'϶µŸ9¶nõúêÚŠ¸:œÒŒuŒ±iš„B  0*˜%¡D¿à"«W­¹xùü‘iº:›¥a0$Á`ðùçŸçáñ¯þîëïI(¡Ó„Fb*Ž(Z8ž<òHm]³dck•Cê¾t1KD-š2â*IèT1`ź{Ùþ»/<ÿüóÁ`p¾ËÄ`0·£ji¦ó-õö|»¨°¨¡¡>ž kX5L ›FZ*ã¥R†˜öå9«ªª><ü^Ww'!dÊñ±ÃyöKž#®C®ÃMÎCMöƒÍâ¥gæÛ(Ƶ`Æ®]»Îœ9³~ÃÝ[?ó9IŠN:‰k$¦âhRÄáÞ ¿sïÆÖ–%î\»õžõÝçÚ"q%–ÔN覢Å :’îÝö¹Õëï>sæÌ®]»fäf0 Æõ0η´zõêi†x§Ôä¡¶ñDdͪu&ÒT#e`cŒ±IˆÕG³¥¢ÉáúE5á‡ßM$ã×W„'œrÄ4€£QÊ !ø"ßóOómcÆ(вsçNNîÃ>.¹üIRMê4©›Šj$RZ<™R šPJ)!¤»·O§œ’R“š¡hfR§IRR$—ÿ³<îõçîܹSQ”ù.ƒÁ`Ü*\ã:q±xôÄéc‹š¼9®¤7°†±nš£}pWr,Y`ÓШҲdéésíáÈðõbÆì}Ê·ù¹Î±‰!À¦‰(A„ Bßý}ñýVáýVn+ÿÞ2ôî2ôî2úÎròörúÎ óÄηճMçs›}>ŸïJ”µù\›¶··wuu565/[¹FÅ bHašÂ4e¤†“ª®¤TðÿÓ^úþó?ú‡ÿõÜ˯½%¸ UÝH¦Š‰Š©jRƒ†A5¡åö5 Í»ºÚÛÛ¯öÍ ®* ã&åZâ–!ƒÃý‘hhISK<Ò±j˜:61Æ8ÓG¯,•,5V_×@¨Ùu¹s|ŸÂÞ§|cyjïµ”ëz¸†gÌì?–TÅ’K¢x " %!®Ù„ÊG­ê\òGîÖo¹?éYò5Ï’ÿË·äËþ–/úš?ï˱MÈdDlL!8®“ZWÏýÞÓÍ/G"‘Èž'k®É¼ÁîÝ»EQ\·~#'9tt“ê˜j˜hÑ SÕôÈÐ@,=t~àå×ÿò£=Ã)8Ý0uL “ê&Õ1è&h&è& ɱò΢(îÞ½{ü÷t>·yv›™‰-ƒÁHs-ëÄØèî»$IbIqñ…`»>ÙM !Sø”(¥Ô:†R@ˆß—Ó¼Œ±1~%¬•ÏI?;ŸÛ¼Â÷ÔË‘g7]soN-ÿÅ%¹b (jÑ$Áˆˆ `ýã„qóWu>·yÅÓÍ/GölØû”oÅf8rSÉŽ g®\T;ßV\7mmm²Í¶üö•Pƒ€AÀ0A7‰nàÁóÇKùØæMáHq8.*, ï?wÙ™S€MŠMŠ `딑[–¯”e[[[Û¸¯éÜý*¬\yðÕÝOÞLÌ`07×·D‰Æ"§S'šŽ5ŒLM{•&ê%J©¡c%‘RIUÕ16)¡ñTØëõÆ1LÌ+}WÍ–V¦“cßtÇw¥=÷Ô•Ý'ã·ùÁpðé™ÃGs=}l®Oýdâ)ãö^£kŒã0Ã`„ÒÿqpˆÔ¢ÑêéÑÓM}lÁ¿ûôÁí/gTæ¦g_Þ~ðé(k¥M.éÔÕ{CëjR棎²¬LFîȲq|‰öZY͑۲··WÄ¢Ò2“€IÀ0¡Ø¤Ø$¢}hÛ=Ý¿ík=üGßüúc|þ³Û6c%lÝRؤ˜PLÀ¤€ ˜L …%e¼ öööŽý–ÎݯÂßÿþ3ðêîñµ³{Róe©ÉÉ7×äÆe0Œ[—k‰["ÄL¦»ÍžHEÑp%z¥p%b’D,‹ÄuM7MBGâ¿ɨÃéL¥b^Q-íýîÓ·o›Ò±tðé³Û"‘HäÈ3VcÙôld„#Ïœzðª¿û5Oîyy;¬|æH$yvt>·ùÁSÏwú˜m‘ÈËÛ¡hÜ)÷^+ĪÕi1Æ‘d1€é¦TªžÞyþŒ¯¸M۶éóã+íåíŸþ½ç:Ç—j\EMQ½7´®&d¾÷©é^¹ÈËÍO¯˜ÐŽc3Êäså}¾±² úúúxAÈ/(&&þhºŽ†îp8¼ÓápØí”¤ß>LJ­ÿ&BÁ¤@(äæó‚Ð××7¶v¿ l©©ÙòÀx¹4¹¡§®É êŸÁ`0ni®%n !N’d]×xN0MsdÊsr¸¥ÔÄfh(šˆ+¦iNÐQ²dWUU¥Ië^Yo´>ŸÏ·kÛU«W>ó›jêšGÕÀXF +ž>˜ý€+Ó¹ûÕƒÛÿØêبÙòÀÊ»ÒÏ–ƒg/X‰MÏf1oê½ÓƒiI4Ö“DGDIÖ.ª©£–²÷be ©´MÛ¶[¯XÒ«Vï7´®öîÚ‘›¶m‡L擾úêö¬|æûóÐUEÇüen ˆ+^ògÿóÅÍ÷?Òf^$(!„`BLbštÌSz¥Ñ{¿ûtó?YP³åqªvRCO]“ ƒÁÈÆµÌ·$ð¼ÇéI(Š,Ø-Ç’if W¢”bõ‡SI5k(“×™Ç\7ÏOX0Îz£}y;ÌTÝLfïS¾É^‡isáìAØñ oTm¤ßº3['¾›O½wúX$:òGð¨·)­Ÿ´ñq1=qµ‹VftÈ(“Tí¢•W.錸Ñu5jûˆÍã¾zzöÌ%%%&Æý€q€!qˆszss­‘‹ÏwvYsQ @ Á˜ ”bRJ-!…€"€¡€‰qIIIæ+öîÚ1RÖO̪€ÆTÚ5É`0Œl\KÜÏóE…%š¦EÂQBèÈìJãô¥T×þ¾a5¥e͈œ<ÎÏ+ø¬k8lzöÈ3p宂i±wטäu˜Û_ŽŒ’vdú÷^Þ¾crïÞÔ{§ 1Æ‹¡Lœ>N3ˆDK§3ÔÔ5Oxhîݵšë&ÖÄX¡‘­¤3ãFÖÕ¨ø›$Ž®øÐ¿þÍ¥¥¥ãþÞ^ÏÇ!ÞúãÏ#žã8Q^L&“ißjb‚5ÓÐ(ÖÁÄ@1‚€r8^ãÒÒÒ‘oØ»kÇØ’¾¼=‹\SiSÔ$ƒÁ`0²q-qK÷Ôs{Ÿ ˜­]´2ý¦>rJö½3‡f´ÑH×ÕGT‘–îƒK뤑4[Û›þà™•côÇÞ§Ü1Ò+3†L¿LÖ’N‹9©«MÛ¶ÃHæcû’,ÆJÃL+_{‰f™ÖÖVMM;òÏ@à@@À#* àpp8³Â4¥&5uÀ:ƒ£&O‰€¨`ÂÁ‰£iZªµµ5}ôÞ];ÆÕGí¢•“äÒhCg­É+Ý\Yü“ ƒq rëĹžºêEç:Έàà9>#•(¥º¦GÉ`ïà•¼J€çuä·µ//­Êñç¡1ω‰¤L›Ÿë¬yòÓ½6¿lŸŽ•Póä÷ŸtÔ.˜ÞY–ΰº†jžÜóróHÕŠWm©Ø´-³Å·âÕ¾ÿdÍØS²ì½&ÒýnÆH|’6N0QmœT¢#»Æ}Ï‘gNtE=xê™±ÓŒD†=xê™#–Ï%[IP]¥¯ƒñ6Ù›éÑmåk+Ñì³eËÃ0Þ{÷m¢§DŽft€((”b á”×ã¶nI9‚‰–BÄ@só@x "Gˆž:¸ÿmÃ0¶lÙ–¼¯3k¶<щ“:kMf½¹Æ6.ƒÁ`ÜÒ H$’ù`I¥étÆ™¦yö©—ýBUUee]i8ѯ놮éºn(ñT"–<ω¢Àó<Çs‚Àó'Çs¼Àçú ’aãÈÑ£÷mypEËÊñ“-1ܽ߿ ¨™žl‰š&œNP XS1akî%¬ceño§‘÷Þ§|ßYtsM½t3ÐÝÝ]^^>y{$Ùºu«’L=ûv,^¹1¢ÒXÊŒ¤Œˆ¢†B‘ËçÚp¤_þÛ?ÿÏ…ù¡áPè/ÿÛÿ£.ð–Ô.ÉÉÍËñ{ý—ß!ylÜ™Cûþì÷·»ößþö·>Ÿoî‹É`0· ㆦ¹Hð<_]Q·jùºïóz=I]ƒšª:FY’èJçÚ%‡Å“'¶4.oª_¤RV"C~„i‚L D ™øÂ;=ók4#N§ó±Çû»¿{æ_ò/ÞÔj³ù4lÈ•y0Îß³¼¶ªâ¿Ïkù–Ü.×ï}åK§ÎœûÕ¾cbÉ£6žÊ<ÕáW_ú—h8ôŸž|ÚétÎwÉ ãVaT-YAKÉdršgÚmöÛ–®ºÜÛuäèÑšªZSEÉ„j¹‘¦8ËíôºdÛ±6·Ó·nåFÛ{=ÖŒá—þómcvEqÛ¶m¯¼òÊþwÞÜû¯lýÜ£v×P°‹HâQC]íÒ–Å<Ï«ª ²,/Y¼Ø$`;Ðîx»ˆì"ØEà©þÆk¯x÷ÍÆÆEÛ¶mc¯ ƒ1gŒó-Ó§OOßÔëÏ¿kí¦ÿØûÊù å¥n—g82@hö©&^Ì÷™wäð1jÒ{ïÞT\PšõHÆ fÓ³6ÝàœRTTôÄOüõ_ÿõ ÿòÏy…%·­ÿ„!"]â4™÷W½ùÁÑ#m' !ª¦SJEAày.œP=ùe.›ä² .‰³ p샷^ÞùÏ@ðOb“`+tI¿7§¤ "×SØs¹¯ýd»ß“w×êOÔU/’D !4Uˆ7ƒqó‹Å¼Þì¾RAŠ‹‹ !o¾ñúå®Î‚‚Ò²rŽã€š’ÝJ¨}ÉÞa%IöGRÁHr(a˜‚³´º>ÇçñºìµÜ÷Â÷ÿñâù3O|õ«>ø ÛížãÒ1 ƭ̸(ïéC±fñÆkš‰†ÛÏ;|â@\‰æ×VÕû¼~QDA âJüÂÅŽË=—xÄ/m¾£µiE®?Ïf³I’$‚ L01>\)ÊÛ‚RÚÝÝý½ï}ïç?ÿyyUÍûê†ÍŸÁ‰'ãJ2¡()UÕT“ãxQìv»Çír;`jÞúí«?ÝÑwùâzèßøFyy9»e c.UK3[²<1MÓ0 ŒqJM ÷wtž¾pé\ÿP ™R¬UP8ÄI²­0·¸ª´º¾¦©¨ Äép‰¢(Ïó‚ LZö„Á¸)™Z-!¤§§ç¥—^Ú±câ…Uë6|ús_lX²#.¥êº ›„p /‹"ÏÑŽö£¿yõ_ØÔüÊöí_üâËÊÊØ-Ã`0sÌ8µ4Ó¸%kAK3YÿUMUµ”¦©)5‰…‰iú¼96Ùn“mv›]–m–<âyžçyÖ Çø8qUµ”ÒP(´wïÞçŸþô™3^_Nmý¢ÛW¯kl]žWPìóçJCÃÃÓ'Žùð½Î޳±H¸±qÑ×¾öµM›6åää°[†Á`0æžkœoi2£ ‚Ž`š&p‡Æìçžñ±d:jÉBÓ´¾¾¾_ýêW/¾øâ¥K—Q”e™ŽãÀêâÖ5 FeeÅ—¾ô¥OúÓ%%%6›í—€Á`0ٹƸ%ƒ1é«% ]×Eiooß½{w[[[ooo €âââÒÒÒ–––-[¶´´´8I’Ø;ƒÁ`Ì#×·Ä`0 ƒq+0:ßÓI ƒÁ`0“aƒk ƒÁ`0¦‚©%ƒÁ`0Œ©>üðÃù¶Á`0 cáÂÆÄ1 ƒÁ`Lë‰c0 ƒÁ˜ ¦– ƒÁ`0¦‚©%ƒÁ`0Œ©`j‰Á`0 c*˜Zb0 ƒÁ˜ ¦– ƒÁ`0¦‚©%ƒÁ`0Œ©`j‰Á`0 c*˜Zb0 ƒÁ˜ ¦– ƒÁ`0¦‚©%ƒÁ`0Œ©¦yÆxhhH×uBÈ 5ˆ15‡#''G®Òp¬½¬½n.X{Ýš°v¿5™f»[Lë Œq___~~~^^Ç1wÔ¼A …B}}}%%%S40k¯k¯› Ö^·&¬ÝoM¦ÙîP$¹êA>Ÿ/77w6,d\/ýýý±X¬¨¨èJ°öZP°öº¹`íukÂÚýÖäªížaZ¾¥d2YUUǯÛ0Æõâv»óòò†††¦8fŽÛ‹R öç <ÙBB™ý¡P8''gì)ÄÄþ¡’âÂ1‡¥îì¼èóùÆO)ëHJéÐ@Ðéñ;ì¶É{Ç ôÊ·Ï뙸cnY€íŘ‚é·×tr‹Åb“¯Ì <Ïóvà}{N~_ /®è"ÒBîîa·ÓÆóÀU5ÊÊÊÞÞ³·¾©êùùÙ]ë—îyãĶOú­}Ù%¡««‹PÊó$£GOœ.*΋ö_îÄ\þîÊü¼êRÏÉó—Þ{{Oãò5½—.r±súÁãçÊBQ +ƒQtñòÊå-¢lóºoíÙSZYu©óŒ7·(•R޼üóå·Ý¶ï½ƒ_¸Ë|WÛM ÖSîÛÛÝîpV,=ÒÓ®¤”s]<¯ííw?ÊñÚoçZ³²ùµ}ØÄÂÅk†OïÿÌö?(òÚæÛðyƒ—“ã£@ s MuÙí*Æ.—#óp*,ÊÏ)Èoà¤)JcÓbAy))-íú»Eày¾¼¢²¼¢rò®¢Ò’¢ÒhnªpJm]]m]­.¯âùô{Šå"ª­¯«­¯Ó4/•w!„ÐÚõwZMsIFüÝר¼GÖÏ…Z2 -¥ê.§óþþ¿.¾}Mû±Cj/[¾$®¡Î‹Ý…¼zÝÚcCÁζT·,®»Ð=LeO™SË-« v¯lZv¼ýÜþý¯ª©¤M‘Âoüòý£ç<Þ¼®Îów¬¿û̇o74Ö꼫¿jj_ „tOAé@g{MëJ}°#8”ذíᵋKþñ»ÿÇ! Ü|?v‡Ä]î8ó«_ïÊoXù…Om\µaNÆCI¼tùrEÓ€¢Ž¶’¦pîÐ;œì(.-ßóî‡kZ¡”¢»ñâñŽ¾ÒªÆSÇ?غíÁ k–ö0ŸcÆû~ðb»>pQ¹ri*ì èoþº-M-nYÒvú‚¢Ä<~ü›YS8ûÅ©¡k{5²®Ò+Å5Þ÷à#m'N-nYæÏ/*((ðøósïºSt¸ƒ½Áœ¯x™Cª_,ز`¹‹¿ôØc§Î^øÂ—¹ÔüÓ?Zßq¡ç Ÿ_áÎ)X»" ¢Ã. Àq"F~YUei^B3îÁŠªJ›MÍËê›—ülçî½{Ù3Eµ5ÁÁÈÖ»¼——ŒM &ܽqƒäʹ¯¼°­ítÁíËyA¦”¬ß ö÷ö¬]³ä+‘P·dåçÖV¾r°'©(¢Ã™ìvû–æäømØWºHj»ÐÝ_ÓtÇ>±ô¿=ó?l9•…y¾Mž7Aà8®¦¶6ë^ë^ðçænÊ퀶œŸ<ÏËò­[×ÏÂ÷ÌM§CvVœÅÑÉSG.Os ØÂc<¿ÌQ}­\¿éóŸÚø“G6ݵú½÷>ܸæ¶Ë—»+›Wtvv =z´8¼1…lXs[4^u׿ÞÝ «Ë×V-ª­úÇÿñ/ýþ_ ´á®»÷½óN @óKk‹¼²ÓN?:xÈÍq¹¹§ºúyÙe¦"†)ܳyó¾÷>hjnØÿáÁb7YzÇ»ÔÔ5ÂçÉDv¸ª Ëàƒ}o ²= À¡w÷þòí£|ù±å‹,›‡ú*ᾩ45—Dbñ²ª¦º2_’7¹îËCƒUõ‹ó|ξ¼Ò ko3UZ¾8îîKJ©ËG¼µ«jÊr¦ IDATó¸Ý¿}½~ÉŽï‰øÚuëÕDhñŠ•gŽZRéV’À WK^¯0Æ<Ï#„~ô#(-„`óæd‚1ÖuaÇðx`Ý:¨®ÎþU÷Þ[ ÍKÒ*¤ª¼–4/Æg½'½^oqiÔÔÖ@YE•µ½¸`ÃØ¯…B-Ë ¬”Â~åå`·—W”Ÿ<ýçPVZݪ5wn´¾ú›Jb1xé%°Ù`ófhº§aš¿æ_“±çÎûûÐìâðæµ4ÕzróZIPd³KRuCsÓòe>AÓl^z-Y±¤¢'†dW^©Oª[¿ñãäF)V_Ûõ䀺Yzi&³0+/íüˆÎêÊ2‡Û×vìPã¢ÆÚšª®ÞÁöãG*K Š+뀳5ԔͥI÷ïÏ-Éèiúò £Ãýv›WžË—ËÊJï\·n.í™æB-•7,õW|á‘GlÎÜ?ýÃßÅïÝ´¹»ûÒ!~ü‰áHÂîòJ¿ó‰P"?ÇÅÉκ’‡ rý»zJÊËó +n_R ëîÝfóä.ª,rxó=ÞÜ‚Xhp˧ Ÿÿî?T5®ÛôéîKHö ²¹¼…y¦ª¬»÷“~‡|±«§ª¦š·KO>þPBçó¼RÊäà“Ÿ{800ìôä@iõ¢Ç-q{GEL^a1|ýÉo\„k+‹ûÃñ’‚Ç… «—7UW”œ?ßYPXR_WÀÙ6n\K55Õ?î8pç†õ^A­X´¬¬0çâåÀÆÿû{zûKŠWê„»cq½Sæí^ïTûX:: ±Ö®…—^]IšÁ¹¯½=N'üä'WRK7„ Îá¶6Xµ –.…ŸüLsfN²×^ƒ¯|~úSxôÑY¶ó‘T’<2c)FÒ[`Ä#Ó_\³­¸>9Òo°j@K} ܱl™µ±¨YݼrͲEóaæÇœï¿ßÚÚŒú|^»ÄSà“©d^®ß¾÷}N¡7¬¹­ºiEçùŽ w®oc³pøÀþ‹áM÷ÜCL|¦££¾¶&''wÿ»ûª+K÷<¾lɢ˙çïºkã|[zsÐÔ¼x(šEÁ0L¿Ï‹EMBô”RRQ“ã³)ñ¨sλÂsòr}ývwn(xÙëÏDB€çùü\Odhм9ì,«%Ó4Oëøïÿ4š©”~pz@ÃÀ¹Aï'4RÐ~p(JêÌŽÿ‹lWJl2àHùì§jZRÿÊÏþºœP „%§®C!(*ð ö^ Ý'1]ðƒ–œ˜N0$0»u§$A¯Ü¹ó½—ÿë´Í_J$´í\Ó. öƒÓºœ´~pò@sÒæ¥¿÷°a@… DÁ&#üAöJ?8`p@`dÖ”Ä/¾Ûû%ð‰ë‚ B¹¤t»W44Ntj©°ätI&InÉ KΫjþêûŸU ÷ (ñ¡^d÷È…ê—®ðÚg"m®ÀGÁ#lÚo½[¦´C)h¸\^/$éôL&Ç~K%±ù¶4;Þ>I~ðãKó\&Æûß~ýѯ}3™Lu]8¯›Ôã´+ŠŠ$ÎX¯sK<'IÒ ŠÞ¸¸5“^ÜTo%–.õ=&•JM?Cžç¥1¯Ô×`Rieuie5@CÍ„]åe3µA˜÷ß½ÙWK1¿1h[ƒ!?€UéÒ&¸ð[¨µú%€Û`à<¸*@9ôt‚Û J=Äß{ ö€C4În› Ò8 6PÖ@¬ œg%I×a$g$‡®[ ›®€]’c@ÈÎóWŠ(|·>xNî1ÉŽÿbð{½q(ô¹ PWHÑ„SçÒ…ÉχÁAÈ)€Bœ>?ZH$€ß¡ÔÔƒS3 vÄÁ愪ä¾>´±÷“’–am’¤ëÀq6„À4mÖu¨ëv+;þÝ`ÐëõÚ65À¦Ñsy ¦Ø¦iz,®ÎŠZëJËχááœÕÞ--éôÚµðÁ°iÓ¬˜suœN§¦e]¡t**`ÿþäsø0Ü~{:½r%:7…ØÐT[Ž'žÂ âv8üyøÌßÞ!°·AKtVƒPQð ñàƒ{a» ž„c¹à¬‡ì  ꣷ ¤EÉØ„Õcmðzµ‹s‹Š”îîÅ}:Ànƒ»îo>¬_)v€Sç ¢Õ@ëm°óyXû 8ûˆ6XÖª'NAím°Â ?ßkVAÛaX¹ ÞÖ®×ß‚On‚‹gàDÔÕBïDÃ88L3—g”Rkj,5™È)*Q~Ër—¢š¦žÊÉŸ…© ‚A(.ý(Š3èŒ;{–ðÁt:?¦7-ÅuA)*(È»ñüy¨«ýÈó3èŒëì„•+ÓéŠ xÿý›@-q¼p÷½÷L}ÌŋÿøEªªûˆK¼¡}3?`ófXµªøf|B\'Á`Ξ])Ë©’’s’¤Q 'NÜ%Æç>7Î CJÓ¢:@†Ãyùs=Ù`,s8B”–^syÅc"ÃÁçÐtcõêô…^R^ %ÅÅ™÷kC„±Å‘HÄÅó`·_s¶^®×Ÿ XáìØÐW­^míµÛŠó ¡¾¶ú:›íæŒ)ÇñÀ¹ââiEXΖIÁ3'‹Ï·-óÉ,«¥T*¥( ”Aìïaé?›B•†ª.¹‚K’€lÀEÁÖ Š˜«¡÷—ÐðÇðáXõyúOpßWáí­ ¯Þ˜5_g“ (`TQmFoƒL|ËØ„•Îü¯®Ÿ8QÐØµ• X²âGAÃÐRAmȵÃwBcœ½ƒ!H$ 80®]ݰ üû¿ÁÃÁO_‚‡†;àëOAè"øýpwüp@ëÃ&X•IBâñ¸Ûí¶9\EŽô»$ÀuuzY#LÓüàØ´ aœþÖ¥KáðatÇÓ2j”R”‹@)‡ñ Þ÷®aCx°ïä¹^·ÛeÍ2oåpô(÷™ÏLf ¨½.žòÎÍ|5!È4G KÈhUÌ®å“ÏÝåR©”U'”Òcdž~üc§®çšBÓ"ñ#ÓtƒÎ;;¾¾ûï/¾¥–e ”ƒÁX,7¬€h4¯µõ­ááÒTÊM&ý@)êêQ¤ee±Häèá‰ááž*ùáPÐíÌ#²d·96nœ#Íqý„ð”^}úàŠÝ†“„ãúÁk‘$c¾ c¬¥°-œ¼ú¡kfY-Ùív§ÓÙÅß‚‚ð< 6? 4äp:€ ˆ  Ä ço¡¼.ÿÜEA‚üoçOƒü Ü3 ÂûP³Ê‚ ÿúÏû$ܱ‚{À[ù&8N’q'wíØ„Õwcm‘eCÓ8]çUUe¬i@ËüÓi(ááÐ{Ñ¡À:΀á¼»Ο‚ÞAÈÏc ¡&ðÑGéÜ‹dèèƒÜœðÆ^¨o„ßü4/ÿª »ì6 BVÃFäѸíÇ݈)J3ý2ºÎ»\£‡úz8|Ö¬¹z‰¸Ýㆆùý (ÜŒ‚ÔgÚ=”_\qgn±(‰¢(†B!ëtB@–¹LZ[áßþ –.½úW AAÁ¸A¶N'Æ´^Œ¯§cëFŒ‰³Ûí>ŸB¡Ø /ˆºî€>ÚP ‡Fá_½ ²²ÿ¶ÛНœÍÇ ŒñÀÀ@w÷FëòˆD ƒÁš`°!k’w„èÈð›Ã×j˜UKVxyÚ%Y´ÞRædÒUUm®‚”ÜdºÖ0 Œ±aJ7žIš«øÐé!P£[½ÍoˆoIgœ‚’Ì.§%“ö¼¦xà}{ƒª¥àtB‡N'WN'…ZŒA0¡K.40ÀþX¿w9àÆøh,—íØ„õ’$ZU5ìó™'O´·¬XÑwøp ‚>×£ðY{vFAQzGŒ„MÐ B¨8 à´ñN'@²ì!@h¤8ÝÐk*¤Ôu”‚ ÂdÃJOYd=I5-Èø–f³%Æ3¶sÆ ²ÔäÔ= Ë—Û²x1œ< koð8QÊr[޵–çaš³©92´d±hœ;wu¥µÙ¿?–J•[iÕ,ºÄí®_¯Xqs¬c0+ƒÁdÒ9<œîØBΟ¿.k•V•B8öùý%ó£)m6)…â2€È"ä&›úKEA5IÆSÍöø&A^·b8‚ pHSUýæëלUfçZ 1g+ÈõY¾¥¬ÇŒmýLÚ0Ò=kËØÿ–(ë53aã˜Ü¨×«åæ&ss5B(ÇÏÃÉ“¹i_¥èôéüÖÖþ¶¶BÌ ¸@Ô!ãô̤ƒ9²%ó ¢0ÙU*0¶“'cØØMÞ~ƒ|KYg¤Àøê~ô¾¾ôøð ¥¥ðᇳiÞÄbé=©L?°"À®º Á„ßšxíµ›R-Y=qCCC'O&ÇŽ(²•ýØÙ ÝÝ=²<;ƒ>mmmÁ`¹9qPrzN¬OùûVU…wëŠøáæk#Ë·6g2µ4ë`ŒU•`¬;ómÊc5nÄâh>üZÌεÞB€|nG(Òhªô~7Pkv #ãœP’”@9]PØm j@ 8] $Àé% N'  †¦ v;$@¥(Ï êõÒ”FžˆA@\.ªªˆ"ò‡Š‡ ÙÐ¥`“×îá˜Òu LSêêÊ[¿¾¯]u'` (JZ=X£Ø¬Ç°Í±øý‚Û É$È2ˆ"D£àñ¥§Ã·­!xNgz£a€ €Ã‘þ(Š`€ð<F:ŸH¼^K?ÑT*e¿Ž¨É)èêâk&ᄦ&8}Z[³0J'Îßm…WÏ ' ÀéÓÐÜYÎ.Á>VO¥Ô0Æ9ÖÂÑÕc?RÊc¬Ý:j©¿¿?Ï»úq Ù.`C#¯¢˜Œú(-¹ú9 Ë·d€ H¦©~:>jÆôÀz*–ÂØ0DÑNÄbŠÇ“Ýõ0&6ˆ°LšGfG-åû $K’TTTÔÓïýE–ÕÔm6PÕ‰iIJ»—¬-™ÿ`š`š I£geÍ l6d}´Ù@U5ÍfK«*!•i­ò889h¦ªÂ»ï–¸¿½Q·çüùœxÜfm·t’•æ8°ÔU,–îDSU R)Ð4ˆÅ!дtG›1âe"dt£®~´ æy@0Nç£ë`­:Oé œ„þÌ™,cþá•WÒj >»¡A\ëò!Â8»çfî;;áþI÷´¶ÂîÝiµd€qôA$ƒ|'Ü™ ¹£×ÒÇË·”›››ŸO»ºF·2î÷ËåJÙí æµt–ø0XYT”µ{1ìW”›ÉU˜Tã²`ÁXÖì\·iÞLjÉò-É Ê!$Ý7¼[ĉˆjv»$þžžSÏ Ä$MÈ">vܳa!Îw:7Ìì!M)Ñõ´41³˜_~Q:h 3&nšLý轞sú\B!©ÃÙaX9á' Åß/?z´¸®.TX8ÜÑáíïw ,9ÌÐ0+$hF'"„¬aº½—ƒ‘$RãÈá‘$¹¡¶êŠM›D‚Øl#I-ºöwA×pçXƒ© ¾ oÀÀýp°Ó“Õs#Ës¤B‰„•ÈÚãf·ƒªú¼Õ}aãp'”„ä[ðVB÷Á}N{šš²ä<£ ™(ïåËáða¬Þ#º|¹ŠÐ<¼ÿéï_^Ppƒâ¥>èë+w»K²MÚÓÓ4ÏOËçÇy²ÓÍÏŸCD–Œ Ç1UÂMz\؈¢(  jb óX‘7xAðû|ápXÓ8Ž‹H’=Kz<óùæ“1ÉŒhtæÝ¤ydfjI õüÏç~š_àÇj¢qÕ¦{VµL8`Џ¥±}:™ô„ÄØÿÖ*°Y‡BOؘ57ëG{4CnÒè“¢¥¨£#··rs£wÜÑ—J ]]–fÊÌ…8Ù0kWÖ‡ÂÔ†MÈ3“ „ƒA¯×‡B¡¨G.wê*ÇM8td×nÈ ôÅhÅzXŸÙhÛVتƒþSøéÐéµOnªŸ|bi)ôöÂÖ M\.—ÕWP™&˜;èÎuhÝ=0:5‘Û`› ê Ü ±ÎMßüL–•½­iG‹üðíxx(¤‚©zòKÜŽÑq ÕÕþU«|P>yDUiéÀúõžy ñ>>8È!´¬ `Ös¦”¦0~§§çáE‹Žô÷÷)ÊŠ‚‚R·4Mëî–9n*©D)tu!Q„²2ÚÕyÑÎC0“x4Næåú5-ö¹çô×_Ó’D"±ÔyQBÝ”–Ï¥×ÆX59É6ÕL9¤¦®gâ%Æd¬Éb1ÊqÐÓsª°°"7wöï©™š¤i8åÐiJ8jÜV?ï&Í 3SKΜòÏ=°µ¯/W¾¨eQÕä¦ð-F–4ÆiOŒµeì+&Z¹úzÇ„ÿÌÙ>ŽMXá5£syÚ Æ5.`ÅS ®‘³\Ñ(Ølø#|äß×ç±r˜l¥p¥¹x2Å™P̱%š¼ã8kvÊêÚz‘Xknu+ÚìÄeut™`ô¾ñ­Ø¶*oÎä½HÁcO§Ž_´Ÿ\dN\ç«¶š µ45ïÚ^ÿí³¶,óØÀ¶lÿSãH—¨×ÃDÍWWçÏßjéâÅ‹C±¤ßíŒèMUÃÃÑHD–eBÈúõ@ÈÙ?,ÒõôË ÇõõO} Ãfóై*ʯϫ”eþš´¥WÇgRO¥%v€}½½Ð ~³¥C!!W¼Y0ÆAuuú6pØ…¡pÒïuõl—Ûã›c©<Ï©„Ȧ¨á'!ÅÑœÌ\0+p'IHJF ÎÁÅ Ín_ðËÝd`ŒuØl(K¢vwŸŸwi‚16’ºè‰Ž'u߹ܘZºá·_“óä‡ã­YVX·d…(MH[ƒ³(MoÉüŒÁ4á¯þªù¶Ûf+„³büÇÛ!Û«¦Iþæoö••õr:u*cÛdÃD§ÿ,2Å™PL+‘™ËÛÊ'“afÉî,°§kÏ6/lYû›(Ðà…¯´~ª»-§j}¶Ó e°ì4ú7Øjaœ2òû!™Û®Š5&.™ÌòîJþ~üÕ¦{Ny V\1‡;àŽà§.pø±âpàÀì|PJ‘K !N‡Ãáåd‘hîükåJ©¦iÖNëÖ‰--Ý4E6TVšEEn„ÐõÏ€|mÄTuHU_éè¸#?¿ÈnŸ‘KÁø|4º47û´Úši*ºN)}óÒ%+Û!EQU!‡‰|zåÎï cåjš­«yñ<ŒÜ§CCÃyyyG ¡H:Ö¨©K\ꦮSSI÷ËarœÜÀk$;à¹Yšý–‚çA| ÏÛMst¸k(¦ÔàyÑç›ëA¼©k†å{%­Rn^äçÞ¤¹g¦qKŸ—NiyÅYúh€r¥÷¼kð-%y‹êª.v‹ r/w÷@na VÂñ¤F)¥”:Ü~iÑ„J)µ–­÷æ 8)º¼‘';4%nszòrs†ú%»Ç(åDGžW&¼Ý. ¡áá’Ҳޞ˲ӛŠôFîG(’ŠŠ°ß?¬ë\gg€xUß’i^Å·”uû›Aàòe¨œÔµ v­‡õÕ%¹ÿúîO´íߟû!÷Ã"(r¨ž:0k±ÆÄ?õ“®µWà•­°µ¸ÎûÊ+°â j)¯m‡?ü2|Ù6fòwQ¼b Î#šÒÿ·ó¿üE¹ qö§Ÿz²nÊuB^¯s„Xóˆ‚1B¨-:<4ôõÆÆ’+¼5e%®ëÁTêJ¡Ú!˜aL?·jš)ÓtB2©&“s½tÉ5BiOO¯ËåJ¥R”G†ÄØ0U5×ÞÐ ~6]Sà  ~”ºgH¯à¦)\lRïÙÀ4Mkõ=Axž?{¶KÓ‹—C ©”™H$E1ÖÙ\·îî±ç½kÎŽ5IÕð‰žTž–JJgs >cRêR .Ÿî\ûåOL0I?n!m3›IVOÆ}=C¥k옜1†q¥iµÆŽúʤ­ab™-™ÿ‚Ž=BR Ó4.· ÙŠ ¼.»b ††úŠÊêÊÒBŸÏÔhCCCEeUUE©Ãnúó (Ƽd//¯()*P1"—Ë]XX¸hQCYyEmu¥ßïS5Ïë G s½IUÓ5U×4Ä Ö\GGn{{i{{A}}èöÛ{[Zúe™@Zûg«Mn\„Mæ+‘Ùk0“°|KW¯ý™sîÜD©qN:ÁY5SßZgÎ@c# @“‡?£s3Éq6:;'NpŽ”@I”M=µ0Üá‹ó[„i";òÿì¿üÕÖ{Ö¯Þpï·~÷ñÉdV>Y€Jõ‘Æ9®/9³EU5:þw#2ÆC–œ¤mŽH¥ ‚+D»/<·lÙR›ÍfwÈÈàLlš¦i¨šB¢Í`dÌ|áñåÔVW¸ÝnÞÆS.Ï@q‘ªB °:WsŠ|¬ùå«ÿ>ŽÆXQ MBŒîîKÑ(½x±«£càÝwŒ¼¦¢C‡¬éŸ!™ÄÃÃíí‡OžÔÏžMo4Mèè¸ÇÆ®ødÔ0ho*•eu¬/ÀcMÂXüGÓý'“¡áËŽ_¼|*ðÞ¿¾E:öþé±&µíyÿôIåbÛùQ“ÎuG£1:n>BSÓèÐP_V“ 3ó-ÉΜ/?þå½ðrIiö%!eY¶]¡il5Mn› ˺M@’eŽãEDýUN7”P$‰|"‰%»¬cÓ¤ ‹&|qqQ $Xëï@_ І<þ¼—­;òÅ&µË’šL8mÒP*®ÕåÅÁžKîœBHÄ“ Ø?uª0•Ÿ77÷SJ0–ΞͽªÖœ¼€]ÖíSû–.œikõšÛg4Š cs.—™‘h¸“Ç1` é:ÍGþ<÷©OŒAÀÂ:X·í¹—Þ;f?2 :W™kXmMM*gÎ_\Ü´ÈR©”Éó4“Jj{”>:R„+®[××kÖ`ŒAy9,ßÇí[GFW#ä* ÞÍý:qˆãLœŸ­°0'½ìñx\.9ÒÃÃ\Aq:ME!|p®³³·¾¾ùÀc‰„³ ;º ¤>øà\]]Nwwïи\Ѩ·±¹\>B„áá¨Ëe;qKRpãFAÓŠ‚Á°Ç»pAv:ív{’ãìee~€ðÚW¿ºL’ƙěÂbÑ;ät‰nƒä…N…°=™êW¢4¢D޾>s*P¿|YûÛïô¹‹ý¤¶¿cØä~Ø^\îêégN<ù%e|~©_UI¸{ \¹LBçí÷;M\ìŠB¬û’;ϯ"Ù/‰Zq¥Û$øÄ[¡Çÿhռτ:³ï×’‘žaí±Ç75¥³;XS>1PvŠ(ï±ëeMXÐ-³eÂJax \aJIœqPô€¢#N‹™ññt"¡»®ÛÚjwvößw_ÿ¦M£gÏvº.Z[ik+AÙ¼yûÄ„Y(h®›yðÁm‰D—!9‚tzÚó„|>ÐßßçwîÙÓš7ödYX˜cÔ-Î-*«4žgAr%ÚtI»í ýÝ÷<¼}ÓîÑK?wC1Ö" ùpWܳvõL ç¬<¿nÆž{~s[[©Ìá]ÇLN¸n+u¥®î^_¥;{ªÔ†m`m­Q ’´öï+ŒÄbÏ~õ«þÔBs&7ó©Ù¢×Ršc‘T*eYEM›_ºïS‚ø¥†|úwI‚(BU!I%>Ý2Oˆ?†RÞ¥°,zî\¦\Àïô9nýéŒ!@¡E)}©ÿCû¶Ž,—zd8\ÆÇ™rebh*ø±N)üÂß•¼išB (`¬teõ|—ª‚Rýüy]QGŽL†Ã|x88>u]âç$ù‡ ,‰ø›þ*9YçEâ;–ò©™”IóÓãb "Ëê–M½N¿sê·Þáz"{ïÝñàM.×e`oãío⛕±XýÕm©šš+¤»p×ÛxûNèêÂë¯ßqªµª$ý}ߨììèÀ©Su掎¢»{AeöœÁ™ƒ8 ¿gÏ®7k‰hºËÇNÛ ™8ó0º»,Ï+Rlø6àqžuÝIËÚ å)%„$' Ig2Æy¾âׯÍ[s]…²ÒÑ::J‹"£±xSÑMÏ\…LˆUHæsAaµÉÞu]›µ3¶PŒJÉQò,è¸YÃZ’eYÒ¥<ã :Aˆ»9;æyYùSkévA’$J%Œq€‹bà¾û¶‚žžîH$Ì9ìë )J@G‡léêüñx@KËüŸÅ’ª&.ªÒŒç¶èÑMÅp»æZÆöÇ>+èîî%Ì9¿væJÏÖVÿ+:z#@¤m 'Xp>77û×àüÊô[QiM°âësfèÒß~ÿ×{6÷>õÔ’¢·· ©éöÞ¶„yæ“rÒBåóÎ7q8‚Á%ˆ®£X,ù– £4Æ·Ÿ(-YZ®[½Vß·ÊY¡>/›ë",ñ–ƒðiF i"„crˆÂ‚ áÞéâ©~ºŸ“ê+æE0×õ=Ióêùt(ŽSÍ|R,ÆÇºŽp¸¸cÇÀ§§C©T͉mÏ›w>¡Š/ÇqJö¥¥ê”7®ßHfX‘†ÇǶô–Â^®m{DþÒÓϬÔTª¤.y /=†ÇH=W-ÑÓ™38p zØìù¾s‡(¡–á8¸UxžçÿÏ}ü?~O’åÕ[ÿè#œ¬)Їÿ3þó^ì• 55!•ª7sí@í|´u`ÿÑ#—=ãÆ¡šÕnë9ËÛ ´ò§€i˨)½Í8/ûŸLÏ3=oڲƊ”Š„¤§Kׯäó„Ãó<ÎýÀœU/š™vÎy>ßȱäƒRŒ*–m[­§ÜQz²#$¡I“62áÐ9°Ã£ ÀÂÀº{rÈ®+jQ…XT‹Ô±¤¥iHñŠŸÛ§ùü$­(¥ž' 8‡çÒB(TºóG£Q±Ø‘ª)wÚ¼ ”ÆFd1ª‰ž¨“OT©tèj†–*Sé“R¸¹-@÷æþ&ÔÝ{w”÷6È[ª|ù,·Ë·A¿§òÓßU7C£ª³¼YÙðÃI•QuËÍ+ 㼎ÿÓ?‰ëÞ£ÃÌLpz:ð¶¶âþýã¶ññH:®•Yn”«Snß½;3Aí{†=¯îî½êŠ×莎ÂO“-¢X@¡u”|»ª”ƒ™´Ö+$þ8ÿ~öžZ"š¦]»f @ )M¨¡ómåª%Ìù™­f£CeuJ-Ц•´ Ìýg“É·?8»i÷a¬×®aï^ø~ôøƒºcÀ™38qbAçb´âMhâài¤ã«µ~çúu??ÅO¿Š¯Ö³c.]*©²UZ‹v´P( º»‰Ëjôùo»²gv|8ë‰ÆÌX´cSoÇíªÑzG`z^å²5BÈìœïwÔ0¾7:º-𴬢çý`tô©®®î@ iÛP tÄ0|RÚu/ ¾俬¥º‘8¤,Ë4×ëeIhš*‰º'PÁ(rRœUŠ!KNe'"aîw†¾eºy»:4YKGÈç0ŸnÈ€<¯IYHY–u.Ï…g€{¢Ì&­hš0ÃLY²èeOÎx=ª#–M“qšºh$æ÷’$I3Ab Œe×Z#H’Dœ.'š »Qå‚´ ^Ü ¬ìzÓBÍüG_þûÿ÷Gú"+ ø–*‹J—Ûå륜lTþôŸyu©O«:Ë›•r~Ò|•¨‚Ò@1BJºÕ*æ'/‡'N‰‰H.)ùÀ@öðáqJ16Ïåt€øWèÛ²Û#bÓʉ ggÑÒ‚1>ÙŒæÊÚŒ „÷á­·XK¹\¯Lá±ïá{Œ?ÆâFÕíB.—3Mè:®áZz¤EÎÕ;ñýï/°–ffЀ¬ì‹øâñãçðÜíÖ÷6À5sÿáßÿCÿ®>öy¼vÃô éÉéÙ¶¦°Ï|’Ïç+i¶†HÕh5–Ëe¦Óžë^œs‰9À¯Çƾ”HŒf³~jÚ獵]JLq>](ø˜Èd|®¢¬i:5YÞ¸>3c¼ñ Áu˜o˜FÎÖ˜Ä5VÀg5£)oi1ôr<œ¡/[Eb8çŒI†ä$øAX¼8 &Ó`£Ê$¨I[d¾½üöÅá2aðDÖÔÞ.8à¯{¸¥‹ÖÏòFÎT==PÓjÚPËfAâ×3Í±ÙÆõJs *lr¼¿§ËóÝ×4§¦—ñdÆ,ž,6o ja­táœfŠÔ¢$-¦VûŠý·Ÿ W+â¦àsõ‹4–²Ü¹ôœ;¯’’Z¬€Ç4U%ÒÎî¥ç|±â·1ÄY´ÝÀ·Ty/-·]·t!ø=•ŸþjüºÏ…ªÎòfeÿ…V D•¨½Ó8Õ¿˜bŒ•Ê=×*ÆyΓªÃ©§Š Ç<Û¶¥»ºÒžGÆÇc©T€1V,û¿3yÃN¦ ‰ØÊ &_“_ò_>Ož_lÌÜjþFôÎ;8vlQ™*Ô6´`$ì©L*ºˆD"@ Àkx­*¹»~†YÕ!Üÿ¢b„šÆ´,'Ö[bFíäôx–¨?»÷ìšÍÙ wB-eæ“t:½+”VÑÌÚöˆat(ʵb±jטi&-+iÛ~ÿ¸eDÀŒeB|?ç<ë8žªrÎk…ûfòyÛ^"NQ—ŲL@Ô´UJ¦÷(­,ƒ!)Ц(0‹$—i•õ T¸*êv2;¦Dodò³†s# tqF3Î Á–L'¯4õɤ-cýz¶ø1¸-‘vA*JdV×.ÄÕ‡„-v)kÿ:W,Á ª‰ 2”÷‰háà¿îÐqË»ÁxAä‰h`·„­‡Kù¸ë¥)r‚Db²Ð*’8å³4 ^¥¿,˲$¹ ¸è†'D¨S²¦Œ” }”O~,6µ2OŸ1ì&N¸{Ùuz6m“Ñü`!¯À¹,L‡„XúCyó¦f½«‰Úîøàõ´-ÁŽH"Kë!IinˆÑ€ìÔäè,%…–p›’CQElޥŤáfM×b2¼p‹&vÎù_mÛÎXjÛ:Š`.Ô1s&¥óôGEô÷×a[}•ÂÜc‚F@¹¬õ­9KèaÅÖ’ oß¾}dr¬îÞ¾¥ºá¡Æ?ïjû“©)² kÊ>"îþƇ#—CÙ€÷Ýc ,ŠGðÈ x¡§ék©ÚÚ¶¤}‡Q" LoêI„c-áŠj”ë6Ë{ll,[.&6BÈ»ÙìñhÔ¨¨ÃäC ä|±˜óúèsÅ…±¼ÂÜ€ª0_y@ºX¤tivOÎyƲAˆªê…÷ÞpÉìÌHPŽIÀž½;Ä;ï°˜þçùéWÿð¹׆Ü[(Eð臉& §Ýq¬âì,µßÌå‡!j’¨S–%¤Ùsõ<ã×­ï=³ÉQEä\›¥™'B°$åjF¶%!˜·ÎpƘ!†r)éÍ äLS|¯áŽ‹Yî9DÈq®nLˆçμ¿`]6½!F©àE8±¸àˆB8¨õér¯åœËé°rhkïg¼ùÚËWFS|ö>‡ò–¦˜ãÒx0VS˜Ö#Ü1,GɃWfÒjþ¢$oiaJÊT!⊳٩Bjªpml2™ïjêÔÛ,Á‘g¬öœ0k_;ßµYœ'¢«p– ‘˜V‰ÔHJã;cìªCoИáHícÂD"K•ŒDƒÖ¹ØetÐߪ«ù§[‹ôÝx{ó›Ú¢\F>òò1g×Ãwi)ÍÜ¡ŒpO×õBš&á|Ýie•"qfZ’Ê)Q?éÛËÄŠŸEÔÔúœtœS™LÝŸâb±èÎ-y+[BU&Q²X|ùw¿“U•ö÷Ëõ~ÑÙ¼Éù²|ƒdN´ªhã³é¨*J‰–ÍtGèÎ;c‰Îÿá¿ÿKIB]Ó4EQrY’+Òh“hXžgq1GÈ…brWÓÝŠ6k“yó¤BTŠ º*ÈjSp[H9¢h?)ÓsÀӒۤк/ª~Æc٬ÊN’p²,Æšõ»5ià¢ïåó@Œ ‰º&öèÒf‰4'pÈaC¦wɶ³¢$¨R—.nI+À°§M9^iÕèá÷ÝP×q( èZz/d¤£ctz‹¨4?pîÒÙ ¡µ¨ Í-A‹1µ RŽŽMñóòX¡xQU[ 'QBÖV%èÚ—MgmG°´ w’„ÈÛö´ÅÛ›y<Ú3;+Ïäf³ž i—ŠÍÍA½¹g—¨JÝÝYùê¸91±[ŠÓ¤x,¡E› Ë;wæf†‹¶•ÖEŠô2¤ÓiJIÒ9§œ¯qjWY%·'µ‰‘ÕòÈ®C¬ØZúõ˿ɓ½請—1¶xå›g¹]¾ú=•Ÿ¾¹S7°ª³¼YÙð%W ¬Ök.Ë»®beÝj«”_«Xåz±ZÅ*eV6(¥ò"1¡G}x´î®Æ8ƒÓ_AM%€è: £Tgü•WŰÊ8ßô_šRÛo1¢1Âáȅ蛉K"d³¥`ÜË/ãÁ€ðÀß%þ©ûÜŸ¬«Ê¡xg{”°ÎwoYk]VÃPLÅÑkÅ!©Š’••ð–ñ˜L§ù•+!¤¿¿î€\Áå¼®µ„؜ﶵo Î HÒ¾}G³Ù|pUâ°ªZúv?=Ñ´¬ôŒíZ–ðØ¡`Ú<® 1~\úš£'lþ’âF$Ef²¬)¡x¨+(Ü -ðL,øVÁ£Þ W?£òC$!Þ¬}©IŸ¡<ÉA%xJ©ŠBX>– Jù„'Ua“*lBÍ?A€¦ }ªPªÖH²"Ép]WôtÑM©$l[tfEMj‰Tºmë!¸<ÖÚÉìéÎX+‡Ñ¢­HT)F‚›bvî_?7íj $â2Â!9Ò ¶´ ´´g ù|,3ÚÒç²ä––ž––J=›Šðæë×JK¬§¥>‰F{7’T I’zz¶¤R ¯“Mt‰Kë)wau±2k‰9FÇÀÎÌ•k‹=ÀÇ1ýJG5¨¼©UIåžÅ>ˆªÜ¬lÔRe-mMáW‹*VWBíÞ)V%³¢Ÿ”²æ¹761MÍ¢‰Pt¶·Ž]»øã_þ =ûµ¯5…VàXž _?€§<,ãrÿýøùÏñÀ˜m”=\ Gäý¿¤×Ûï\bÔIfŠ­-ñ©)Aê™ÝŽ{—3ëØ1¼ò Žib‘œº ìl}ϜֲôN\+ÿÞ;ï3=ñø®ÝëGâlÛ^©Èj"™l±"ãr¸~>õMf2™ ç¦ãh”ÒzÏ £@iô UÌ3‘Ø|ŠÄUR5µ5žóhQ`†€§uˆ4ÔÄÛÕ @ÃáÖø‡)fÊJXÔ”¸Ò«²²ù/«ü>UI3d_`Þ*ûÜDu^WEàö0“ȲìÅEHŠM¨¨xvNc”ÊE&(Û¢.4wtÙ ¼"q¼DØá±í%ÓGÒ¤M»š½¢%«ѵªœÁ`K(Ø ÞI—Ã{ð‰¥T’$Û†ª†µÆì©$8ºcDØ ¸w+;ǼråZy333šw¤—¯ÄÚšU5°ms¿¦iEÈ·ê¼(-ybj^~êî­Dâªaámäl¢bŒ•¢„µŠùºÖRùpê*Vf‘«é/U§½öñõñÙæH`øÂÈÖþDg{«?÷µçCª˜žš”Ä•½h|£ëàäĤišš¦UÆ8LÓ¬\Òèor.½ðB𡇲׮-ØkFåZžÛŽöLnbxd•^±*áåé““xÿýÖp8wÿýöbƒýÍéáÓßÞ×ý/¿||訃䃮ãýv8Œ™ú/ÿÒôÙÏæ&&iîÃuÝnÒýÓì”?¸æå½33ú¹smÑhúTÎ}£pùéÍ˲ö|pŽ{î½ç­†ê¾‹ø‘¸7n¬7k)“õl¸ÖÛì¢7óy…R‡RÑ0êÒ™s^×:(cfİ‹%¢˜:ñ‘Ù’* áˆtBˆ?CZ¾Âd¼ÕîOÖ”‚×ó(<(”ØZPvhÆŽê‘$"@S€3;èšÄ%ÐD7Ö«UzìÅ€*n’à÷ªª†AˆÆ¹L+ ‚ 0Æ|h<`¥ƒã i­|•x[„s…soõU✯Bñ•WøÃg¾ó¿Äâ±™© QD!²L;7ãw§󉪖hC|‘|>7ˆçÁuÃ0 e(JÉNò<¨j)¼’ùÄŠ•™O¢Q¤ÓPhŠEˆâ¼ŸîM×!I0`ÁùÊŰ ‚RD"(K¹ÛŠRÊÔEhr9ÄbÈfKêù‡É@×!Ë¥C¨l¦ Ã@±ˆbŽÃ@.ÛF±Ã@¡ÛF.À㔆, ¶ Ã(ɱ,XViLùÓ4aÛÈdJcòyø_í·M³ôW( “)}£/§XšL_½lvÁWûcLÙ,\·4ÑW¯XD&S}U‡éwúcüC(ñÅúrüoÌf‘ËR–ÏçýoKkbóŽ=]]½Ýó8çmímä¦Êe†BÁÙäŽaaP£ñf0 å fݽ[„‹ìcNhµ`:çù\ž.àÀ¼ýö_-ˆrKsüøÅ1ó]H ¿͹—Ë- «L!„ì®3ü ¯Õ ñÁÂÉ“ ?ŒS§–ÐDP4¬Ÿâ§ó:µ`ÔùÉ^«[OiÝ®‰³‰šu ¼ÜÈÈì… ¼oIæÚ5;»DÙ=j:ãù®”Õá-âKs é}kMÓ=b‹–ÜÌÂ2‹0ÁUTA T†À çÍœ·¯7S €,Ëa‚4‡•–$P•G%]R™¤rZ9H iuÝŸbù(Ýk>¯_¿^ÕS¹™žš8{ñJƒéc££µ*?‡o\½xip5U]J¥Kç>¼1:µÆŠ­¥X[wH¤;÷Ž…uMFBÁH$¢¨º®ÊhXA ÒZ-·Ëeýžò§O©VvÌ4U¹YÙð3Ä+JŽ‹@E 8â4P̯uQW±ÊF­b•º*Åa^æÂ#]´:åù÷^û?ÿÝ¿ÿáOùæ¯5šZqUî¹WΞ¹22¹ôÐz0ŠùK>ºvm¤îÞXŒÈÞÿ^[lz2•̤Ó8s‡€ ,±ò5€ 7‰dÌkž½9ͲÃ"${coãíªþéÉ‘³®Tö\¾Œ;@K¾Ã¸üñåá™ Vleöú©7ö>räøÑº± ?·«Óæn±úNÂÇ=êfsÙ|¾¾Ÿ£o©ò_nW5ª>ËŠˆZLÚœ!RÑŸ±ÐÆDµéPW1 Ž„Jù‹±êVÞk«”YnB+@ˆ°H¦å‚±µ¥íòèzý¬Ì®.¼ñÙ÷ˆÏS[oªÐÛÛwå Ù¾}¾¯µ³ FE]¸Q ©Dn6Yûûzë®]¯D_Ο'mzè¼òY|¶rWe½Ð?ÄŠR ½½xóÍFb½bb(ÀWZP”ýú¥G’yO ûgÃØÄD!›ni ³yÒPE’¤b±hYÖ %ßApΠňã‰îB‡[azÚÎírŠ[2C¯6íµ‹““Z<.é:£tú¬“Ÿø¢¼îº.µ¬ÂÔ”?·˜™3èêÀ(µrÀ9çVArk¼yÌu<$ÆÄž·î˜OlÛfžNªš BÑúšfm¯®ëÚV¡¨ ª¦RQ ç=Sj®icåÚ}b!Òº2•ÈZð`*á&¬%AÒ<3w}xìäÑýµ{ø–$ e‡z¹-Š¥ †ßSþ¬;k±ÎòfeÃ7D´;TqIÏ1ŸÔU¬\ê©V1Ç)EÜjó‹eƒ©J±J™À¼@BˆT7°·¾#ŸGÚrÈ0u¨©àìY<ýôüf-×J^Ä‹Oá)Û†mçn»ÎUˆÇ‘JáAôžÂ)Ž‚úwüÁA<ûìüæ’~~‚Ÿüþ(•BÓÊÌTá+ßø3ÎA漈Ûwíëî-…\¨)!Šb P”õøL²Ùe .ι-عGf¥¶þæ7欬DXÇñýS¿É^{’3ÙÎ¥V*e%÷3×dÙœiµÒnÛWeÏq<' „ºÅ:Ký©e1ª¯?ÏÑÒèAÖ¹h@ é„(JD`[6ÊȲ¬K’¬†\X²'ñ¸BW\ò’øwgÏœ6L³­«GWdNDÎ߀Xw}¢l~_ü ~ò,ž­;Ìóªs¼z{1<Œ¾¾:ƒ'1ET‡~éöí+ñÄÝ9ÈréW~ ý?}O×VkÛµ´”H‹kq7:x‡ ùÚ5¬°Ö9¡¶ñÎ;¿c‚zò¾¾{) C¥…Eë3Ë›sî¸¢ç© âžœ›S æ6ÂÝân+ó¡1ýGvfšZ?4¦¾ .jÆ©™·37Â5†ÕhÔÎÊNn»1}#ÔÕ劜–2¨QÇóêäóà-ÅÈÀ9»zõZww·ã¸LôˆäªŒI çíKÏ_SpÎs™¤í º*ì¢&i”Rpa‘·ŒO±JÈåRçÎ_ Y™™PS{Á4ömß 9!Ã7®·uöäM7\Õ‰3wbbâ·ÞNOO$Úï:™N§¯ÞÄ[¦¦g\ÇÅïµÆÇ¢é |KkÎ`¤¹¼¥Õç‰óå”–³¼³©ÙœE¹m"×#‰æºÿÉõ†B!„&0ÑQSéÑÿ_UáàAüë¿Ö±–8øÏñó¯ãë®]ÉK$SßFÄBª Õî Ó¬³¸çȼó>ÿùê~þ ^ñÙfFFÄï–Bˆ¢ªo½õÞ‰ûNÔî]ŸYޜò¹'(œ126ö,ËÎvÂ0·Ù˜ø*£F#|ò9jõø7æ¶8ùqsFòÜV·pQ ‡¬æYýùÑC]]Ô´+¥òP³N,Ø-8 n kÉ0 I’5M Bî ðd‘Iyh}¥¡-ƉGÝpKS±X rц'$G…äÙP?-¡tÛ`šæ,'‰•ð9vÏ‘c÷(ä2J ¢H‚k›–Ë7mÙM&“‰¯¨H›(Š•áÓ4áAW’8KÔo}s›»*#GØ<Ð_´½•[Œl5±RkI|ôég?ÿä3Ù\ýÄá¾¥Ê*qåv9ƒÇï©üdl¾DdQ•›• ßd©¸ê*VN™ªUŒsxÞ¢yK «’‰ù#-U§ †C×®ŸåÔ:7´µ?±!¬%ßïòy|þ;øÎ7ðª"ïW®`KÍê ]GÝzïgpf/öúÙÖù<8¿ã‘¸J<ŽÇ¿‹ïú¶Z%ÎÞ=Õƒc1Ôõò¼·á˜ÿOðsÃW”íZùß¾öšíXûòÁ±Ñ#÷€9½­L†ÑÝsC¸ç6ù×KÙTÀ½¨“µŒ© ÙY¢D ÏIp.d#­û-·@¹$„jÖñ-¹E›ÑȆ°3|ƒ¡`0@ ’H<"rA¸à^}ÎÍuBH¼©|;âDc’eÏ’Ô t¶nX–eS……n†ô$Š`Œ‰²”K…ìãñøJ×…TyC,Ë’‰Œ[ûËj’–ª‹ì/ Ag(®n&]F¥x¼þ;nßÒMàÎþsæò–Ö‚PªN99r=ÔÔ3¨3ÂoñÜ\øvO âA|ïÅÑÊ/âK_ªžUŸÞiœþ&¾Yî‰D"©ÔÄ$P I‚e;¶ŸÅÙ½Ø[9àúõRùƒJÔ=ÎÇøøøÅMfK²&J‹&±ù‘8ÇqÖU–·m3JeFD×fåsÖLå=§µ²Êvõ¤\Ιv® àfRT¢yFcw²;Óƒo;¹&pøœ¢ìyÕ!y+M˜§sⱆËÞÖÛúA®EU‘q…@–u„9ï^kV×u)¥<¢z9N‚”‹Ú:`æøDA’$îàê´±9Q?tõ!Iwyqªlû½.7zóÉÅœóÌìHÎVN¿óææm[%Eß±­QM…JGZ¹]^ï÷T~úëíëºßª:Ë›• ßýS)°SÁŠ•3²kóÅÖ}^6V¬Jf¹QÎ[jïXïù ÑÑÉÉRvÎ~ìÿ¾³ûTÌ»åýB絈DË!RÁsõ"^|++V~[ÐÜŒdmmp Çþÿ¸;+ "0VÿüQUØ C?ÀË|Z&\»@…€==ôÖïÎÞsxoÕ^?çºní±5DÑðDpÁ5C[j‰ucpÎ0mõöâìYÒ×Wz¹O|Ÿ|ÿ9þ\y€ ºÓ÷îÅéÓäž{JGȈ•8â<Ë(ŽN̸nO.W`ŒÝ4Ï—çyË9ðÞ^ Îçk?ŽÇ@~ð Æ?pÆÏ«ã½Ø±gÏâàÁÒæ lá-A=xþ\ÎÁØÊþóÓÉÂgºwtd´³^ч[ùoÜ9X¥ *¡†PNú2g£M%„pκ˜ÛFœ¬æd\¿07·Ó{83ÊA]FCܪ4Z9çN:B|–¸µ"˶l9(E“IØ£;×Z•Áu]*pÁS%É‹7ŠÛI’I ‘¥¯|o·ÇÖÝÍg•qóÖRk[‡Gi¼…3Ö+I"‡ ‰B{{ûèh¾(¨|ág49‚AØ6l»Êá’Ã(ñ*?Ë[àºÕÙ¾² Ç™_Yæ[B¾1äu¹!0Í’@Å"PbŒÝbiºŸFã+æWšE0Vë/õ÷Õó{ÊüLµJõ\w~]ù0ýãò ”ûýþ0ÿ>ãyÜgɹéߢ.Êd=>ËÇÍ ©b@«Bs32s+ cˆõ£ÿ,9»ûd³ˆÅPwvg'Þ|³4у÷+üêOÉŸæ¹étr6]Ô4I×u×uo¢&§A–3·£}4¯d+Z[Ðr™\Þ¶‚0=¶¶ù¬Ä–-øÑpø0¸pOáÔ·È·üŒ%Ƙa¡¿lpù‰ÈìÕSo}ýùçϾ÷~×»jw»®k,Y}ÕaÛ~ FMÝ¿º˜çÙ©eÝ驹s™îCæÌÜ¡¸Å=¢:\ÆiÀs]±¢5MÏnCcBÝõ UÓDI’eYUUQ”$Q@Ã,ïJF¼r»üªì÷”?}S©¼Œ¿¨ÊÍʆŸ$^)°ZÔÞ銕3²kóùzë*V¹ ®V±J™•Q“Uw[@î<$‰xÞ‚ž“ääYr6Oò„óçÉ®]^݉¢H8'„||ïòŒ@Bˆ()ݽmÍûúûY–ï´þ„M#¶½ çAòàÛäm“˜„sçȾ}õ'ÊréØAðyáYò¬>ÉÖ­„¬ìgvoéø·ÿæÿš:ý{R>“šIe“3S¶ëPUu–™p\„Â=SâéK…É7ÞðœeÑ0»Ó7x<;fÎÌG·9S¨1ïtá\òìw*7_`´ÓZ2-[”T™ßxY ®ëÚÑmSbTR6–SoÃ@*z6Y_UUmœø{Û\±A–wå{~¹]Õ¨üôó–êzª:ëJóc•«1WA ®b˜Ëä­U¬,¿®b•Õ)k«”YnBÖgÕÁ›yÏþ#þñOñ§££â]w5Ì9Þ olöf,Xýwå î¾ûÎêYFíïH@žÃsß¾ógø³dRX²Âä+xåEúͯ_Çã+/¨{ìþ/»ÿ åMQV¯~ô¡" ¢–Û±­7™Lf2ÏóÖœ‹»†IÆ9Ü¢X“F^>.š-‹ïV0áç}óç´/ðç"\¤†äšfþúõØŽìŒÌ™ B±”Á´ßÞ*AÕt.j!elƒ…áàW§”E¦èœzàë.'lCƒ3Ïr\I’¤¨®Î8YÝ’’ T$A„õ Òâ6[K |K•¥:(Rý¹ØÈÚÎòæbúoøùŠùÆÖbŠ•÷®H±*™åÆ­NYFUñFÊ3xæŸðOÿzßJ{;~=u޶îA5㚟žJ­jJèÐe~Wø®ˆ¯6ðE"x5÷;!"ìAuÊ*_7±ë¡F¸Ö‚UU;;;9ç–e­«5q¹¼îg¹–4ùv`ÔØ²,S©œËžÓë×gª³ÜÎ+;˜»vÍ1 9Î\ŠrPpÀã¼ÁòÑu˜åÍ=¨<$ðÛ` W€_oÏ¥\” „OÃp·®c¥³†D¸‘@Íwoðc›Ö8WVI… ‚ÌÕt|ë­ðhmlÜR$® |K‹Eâüw¿Ú€—_ùú¦#q~Ø«:w#ƒƒíè CaI ó‹*ÕUÌW{1ÅDâÊ壪"qåê”f!;>ÕDmý!Á—üÅÊ¡hÁζVY–¹Ã]œ­±g´¬Ü‚Ë9_s•Ö·Ÿž,”þäOê°ZT&2—ÛŽãøé)~Où€(Š‚ ¸®[›þ\•]Þ¬løiü”Ò²@ªªBÐÖ‚–½x¨½4KSÎmÓR%Œ1Ê›ýžÊÏÒô…¯5åÍÚ†,ËåÍÅJ$×UÌ·ÕSLÓ´ºŠU]œUú”X¬?ÞÒßH~%`q“dMMð<éi½~”;A¨æŽµíe­Û½çÏWw¦ÓˆÇ P¨ÏÜ|‡Põ0.°ÂÃpútug±è݉ÀúŒÄyÞYE8{ÒyW rë½\; ÃKÿ•ñýýôúýÎù»Ýów»æ&ò¯Ú¿9J¯Ü ­VÛ¶/mje}ëÖþ¶¶å¤ØË½ýÝííuâkUduÏžm˹¨EßÔ¿,Âàææ¦ûö-‡á>ÞߺmûrÒ½Ú:Ú÷ìÛ·V»ÿà{ÿ5™ÎúmÇãÅ¢Ê\§o],:S×rWÓ§uu†Y¶%ÍrcçR~Ø›sNMzùíñ«W’ׯdËÒ’SEÎ9«a²ó+xVªÄ=n¨9E‡Þ²‹ÆìùÙôÕÙt€@¸kÒéJOC_¥¡W®¥¯¦S×’eiùÑ<óXÕ›£Ì-®#§Æ¸}¾%Anné…è‘S³3ìÖl±ž®6‡‘L&#kÚ­“pÆDQ¼E•|PÇ–5½) 5%nQ”Qp‚ÍÍ¡hpG4ì²êÉloÇĺ*^k/^ÄÎe”’ñ)bjá;¥B¡ÐêDâÄãH§QYZéÃë$cÕ¢\¡~`Ûö*[ËíÔ;o9ÂyOûP¸!´rR=¦ß›º×½pVêË݆<&4U9@¯w{³œ ä¤ûñëÒ.làCB‚á³îG"øóÖ+g 'è¥Wå}.‘ÑÁ-t<Æ oKÛï0/÷Ç2c^’¬¼óæË'xX‘—ˆŠJ²Úܼ¬rÌŠª)ê-™ü¢$‡¤eYÒf>}ih꾓 ‹³¢Ñ宨7ÕOY·xòégÓ´%IÒšªhJ›ÎÆ<.š¹¼–›Hz“N¤'(˶뺯þè]ùãþÇïîyë/ ç›ûCÝ¡QËN] D/Œd>þÝDo$”ríí‡zcÍBPV’×2F³zúÕ1mëg6GÂÊì¥Y®HÃé ¦Ñ&¹IÛ!›áüûcýÁî*•YÐ¢Š•åÄ儉…‰yæJ:±§3fgí÷ÿïwºOönýâ¶þöýÂtNoŽ Èrn¼¾˜ŠöÇ3ÃÙ‘Sà,ÚkÚÓÒ´)ne¬ÙsS¶ðø[£’.n{j§¨Š¹¡4µhnÜPƒb¨#B]¯iKg|ø•ûŸ?¸äÿðNã6æ-‘ÎÞù¥p-M·úmj-‰º©<œÓ‚aÝ{DRô-›ê,ú» BñÞWη{öà½÷XK—/ã™g–žè‡À*ó~üöàiŒ={pîî«Xß6:º`s1ÔFñ|’Á;Y–×aÖªåHÛï ͧåR˜›pöÇökGÝAŸq>Ê Sò®—åý ®Yû#ëTÏu ðœš90"´\’ºú¼™Ýseû©ÛKö³éãîå»ÝKNK?T¡ƒp1óa÷ …p¯{„´²ì.o8K‚}tü¹Þ "‘È:¬Ã¹\!Z†#÷ QÍ|.gSÂèØ•±p<¢ìjߊ÷Î üæ…H 8>ž Ž¡ÚIKGt:™ùõ E9àÅwG IcðÔÌ$C;Éē㓯CIóS–7ñ³³‡··™–wíÆ¬¢k©á” Y¬Û8Ÿ K³ç'Úˆ ïn)¸­a¥˜§³†L·íj«Tɲ㛢‘¾h×]}SL]|áB 3XÉgn¼K‰ôFÛv[ÉÂÛýz #hq’ö[ý¶×›¶†‡_ÊN䉚¥o¤ÆÞë>ÚîydæÜ$·¹S°ƒÝÑsÿÏéPs8?i*uòƒIQb;ʦ$ÏÎZébaÂÜúÅíÁÖ5>IîÀÒõÎ~øÃtwwMçŽïìÈ{òO~øýDW÷Ødêé']kåî8ü$Í[äa]NÙèH³³„Òù›µã”ùa–˜ÞÓƒÁA ÌEáGG9uG^}mäþ{ïòWËßtÝêML$pê”@i¥ãZð¼eIhiÆÇYbÎÏxù²°iSéËošä®||x(ÜÚÖUA[©°†è3gv?d &Q.‰]2¼?±^ÝOoø6# së1ûww¹ƒ„N–z]Þé¹eüj­H˜[;¼1;½±Ï;§ÙB?'ä¿5¡q‡à€w}§1Jª²ë yÈý—Sï‰ð¬óºÎíyz•þ‹`UŒrüî{Wë»n?Z;º[;6ªò·z8¢‡‘N§SÈ-’P(¡ÑhЌĞüöÁ3¿Ë̦.wvuÄDŠ(Ÿ?Ù›ú8õÞT6É…Cûâ;›Ú!žã}œ2Ö6‘?´»=Ü/èA™zLÕ$QIàœƒaìÚ€¦ ±îpåEœ[zSViäì YõÐbj°#x÷_Ý}í—WÒƒ9jYjTNìK¸†Ûÿ™þ™³3ù‰ìô‡Éƒ±¯ûx¯Þ¢û*M¼?.kJ~*ß~ -ÔË‹Š ª’e’&ùµÂg/ÌJºXàpY·¾,Q¼ IDATµ×àÎ3oddäÒÇW‚±fŽîKÿôÆKç.]Ñ‚¡—~ðÏí{8´í&7ʧ—¿ØøÖå4€ ̯™7 „Bó›§ßu^|[·–6OŸÆÓÏlòh«®ë²,§R©[¹HV:Wš[Ö‘N#õ–9ýäI¼ü²ðä“¥Ísçðä“Ryî­Ö’ftjfz:mïÜÑŸL&]×Å8EŽ–¼pœ%«ÊþÏÍçꀕ6Kƒ¥!þĹ€w­œÊÍ…ßõXß…iðU¼7&\õ¸ÐÇóYTÇAü4¶4Zö`†€×XU •y‘ ð—?U=o³·´¬}‰üå¬öZ[pÎ-ÓÒó+õ\Ç%±lî{õOQÜ0…vc·ø®¸&$É1¬0aàDˆ ?ú¥VMWN><0|¹i`?/Ìf{ÚŽe±M±ÏmOo.¶uÍ)DEìÝÛ `ûîù´³xguƒÝ[—nJ’Ä!û‰÷>¿[TÅ­O옹8ÅR—3­{[%]в»¥iGSËöæH_¼R¥î“=Ú0¯R¸kþÚô—Ôù´*-»ÖéÊðÛo-qÎ×Í9J¾ño0NQzïÝwƒÿúóßò/ži‹‡× ß–_bd­µ¸%´´`z¾åÍ7qâÄr'* œŠ2=sEïÖà  •W¼ñNœXî›n €Êl"J«k"܈(‡[â>ó €ÿñßþÏÉd²\À¢Ü®Û911ÑÑÑ “É„ÃaÿQWÞ›ÍfƒÁ oØÕN©+Ü0 Bˆ¿~™S(¥ÅbÑÏ8©ìL§Ó­­­KBegù‹B.—ó­m¬WÒõu||ñÜД@óÌrŽÙÜÔÔžˆž¿ˆ…ó™ÂÑûïáù‰—^9Ž…NÞudðò  Þ{÷Xn¶nžD+¥4 J ™ÜVý%ƒ¦w[€ç„Ið ATšJwH%Î9¨00 ’$Å7•,¡Ömš·¶²à¿“ˆ‚Xi*}bpûo%¦iº®»nRDIñŸ\dzm[eA€{°oÓ*¹[„ã8ñøÆ>·NžÄ¯~…§ž€ÉI|æ3+˜›H”j,YÖ‚•t«VÒÇÝwã·¿Å£%ßÒr'‚H™ b1ärÝÞö>VÙQ6›|”Ûu;#‘ˆŸVYf°¼7‘H4˜RWxe>Ùò§”ÙÊ’$…B!VãC¨ì,QãCð°uƘak­Åˆ$Ú¶+Yb¹´Š8H(‰7µjš^,ƒšly-O<ùˆ@H@DŽ4-ký”Oœ°ÖZÜ ¼ƒý!i”jD«R¢²î½öƒm‚""êVûË×D¥ÕÇ9™@Ùù<99YYózrbL”ÖD+!ÈÎL*MíúšþŸg&Ç-F!ÜÖ¾föÊF|ªB0ˆ|Œad+Ks~ðA|÷»øÚ×ð‹_೟ï_µê”>âqÌÌ€s\¾\§®wc<ü0~øCüáâ¿Àãßýn MM+¦À\)¢(ÞD5„›ø¢5‡Oß´ÖZ,QV­Í*ßÚ45@ÕTjÅ{Œ(‰š®­CºâO$IÒ5¸ÌEÀæš´öë€$IRB:5©T8㢼±—šÞ4DHNo0ÖK­À¿ýmwï€m%8é‚—èˆ}<6°c‹Bó£cI´´´Ù¿ûN¨Ñ7I ÂÏ—CÒ•Ó´ôµQÛžIC’¹iïÝÛú7^¡Èº¸Å(Àò§îsøÿ’„?û³•M—$lÚ„ø´¶¢òz‹IÍ+=pBðÀøÛ¿…¢à›ßç+˜®ihoÇúOèìD ¶¡ŠAägÇüËWõHë—{x.O‰g&®ž*»õèƒmQÀÏüý»î~pl*½o×–*á„ÿïÿ®÷ð½üæ×ÿÍ_þw‹ÕûåÀÅ3¿ý홉o?ÿ•;s”kÏó8çë?÷I…ÿÿ_k-VJ)Ó lNBЪkrÂÀ Qø½5”ïÈ/ÁyÄó0ÌäçýÂÐÐø@_O~f„ʤ«£5$‡DM—\‰%ZB¡U¢š¯D?çýž £»·5 “{„{MÍ\ׄ–æe‡aÖ1Êç4çüVn˼6 üÅ_”§¬lú‰¥T§ª±±XìV®Ì•ÎíéÁ·¿ ÌUª\ÑôûïÇý÷û³næ«×éÙ‰+ׇLüÍÿõoº»Ú ‡]¼>¶sÇ…‘üµ3¯ž»4tòÄ‘áñ¤éz^Ñú_þ÷¿Ê&'Óz892”)¾t}*g‹æÔ $}h&û£ï~‡‹hvíõå_ul;ô?ýù×ņó\Ëñ$I @ÑU/ÉÓä»v¬¥o©¬’ÃmA @iÞ¶ÁjYÝ.Ü~kIÅB¡PZ:!Èõº»Ú(ýñ.Q…P°d‹”t«œ¡R M×òy;ÞÖ² Çéªô)>ÅjÂåâáý»OŸ=ÿ؉=ßýʳ¹|é‚Ý£LÙÌ3÷<¤Id`óÖ+Cc1N= ÑÙýÖkï8yó®>íêDV”Õî®vEùÿÙ{óè6®óàû¹³ì À ÜwŠÚW:’%Ùñ"ËŽ;vœÍNœ(Qš&êëºyß~ù¾öm7kÕèô¤Ç©âÚ©“4©ÛÔŠ¥ÐvìÄ»lÙÖ.Q)q_‚±c0Û÷@±‘I€œßÑÑÞ¹Ë3¸sgžyîsŸK€BmЫ¡Ôbñ¸½Æbkmå´– TµúËSIÒL¹™fŒÖ@€U(è²²ò7/ôÍ ß #³êÞ@C’f@' -ïVw1‘D$Qç$ q÷½œ0mI£Éj¥R–ÙdddòÚ¦ukÝwÞ5ÔõáwT¯Y__×¼A­f>êó)”Š`0DÓ´ "’$@EÓæG­MA\;»ž©üÈæVy^wb¸$‰Ã0„D8 F“úâ…ž¯~ãÏq ! DiÛÚ Â0$ˆ"ˆ÷}‚¸qåuÑ*ýf•‘F£c4àr¹š„ƒƒevi‰$$òN"´Ðm5 ˜åŸ•‘‘eýÌÐêt`jÿhü^/‘m7’.ÖŒˆj.úhÚ½a¢>h<ü¥ld°˜ïÜ‘•°22+‚ ¶[È~‡ORasòž\<‚ KȀ͓´$˜XɋΑ‘‘‘‘‘áy§p‰£t‚ ¤òbz:" $I’”v!Û–ddddddò‚ |>Gq´’Vˆ¢Ï· A¢{DEÂ8D ì §*¸H`–åӋЬ-ÉÈÈÈÈÈäF£Ñ˜ÍÀóÒgHÈœ>C0LØ«'",·H˾÷†<'#####“_DÔˆÙÿ;Ž„”ø?}“ÎÁ[šâN§sv ñÿ»]޾þá¼ilhÐæXºHÅ©mK222222…Aúm²(¥ªØœngMSñ;LÍB¥Öiçx"Ñ™D2Y,$¥L“aimK222222…:íV”Žü}Gš *†I_ƒV«kTÕôŠ<û‡W_K“É(’N¯TÒi2, ²¶$#####³ÀêÓå×öA F÷‰ß³ÜRäy&NFFFFFfÙ@-ãf‚l(Äñ‚ZÍæœŒnœ p‚¢Èå×–ÝÅdmIFFFFFfAE÷ [v{_¿}­¤‘ˆèš“›ãü^vÝÚú3œ-¶Ö’ÀÛÆ·Ü~ë2NE Â2‡5Y[’‘‘‘Y}tŸhézëp}ÞV¸5ç Á`pµ­Á°Ö`!¦±•Ojßµ+rPQS噜\é¢$¹ìûÓŠßRÇ!|çÑžÅ+5¿úWóøé§ËIdæÇªêùv]zVÈ(Š"Aôr£R©–[„t`&IËF|1lKóøXù_2‹Ï¾'…}Ë-Ã#5™ÕHÇ!üîcÐ~d¹%Y8Jåò¯—ɆB±-É,=GwÞ} N=Ö„ãø¡€ŽCx”C±E©Ói8~è©YE’WæPÇÌ*bÅ:á;v݉ã8þéCs–¤#î[3uýG£g’}“ÎÎÐstg\Îò)+“s–ràÄnÁø»=6pöï¿G{ŽîL#œœ=fçL5pdKZᬲ³3¤ÄËÛstg´ä¾'A8q0Ýï&e™“smiñÉÆvOdD%¼þbµß} f'Æ·‘eÎŒc>•$ñuæÿè­?üÖ‰ƒÐ~¤K„'÷AÏÑw_:Ò%‚ÐuäÒ݇:âÓáÄA(›Y$)=GwÞ}ìà !R\ë‰<ëaFͧ{žAøÕ“s–$žÔõwˆJñØ’ÝiSN<õØçöÔï ýÔs'£ÏõãÇÚØŸO™¥}I'¾/“¾¹aUŽ©%8©ˆ œ“~ðTìÖî9ùÜ©ƒ’Ë)5ãnŸ)e†“T¶ø ”¬l~<¡žŒ‚é§ãPÓst ÙZE k,Ë9×–éÁÉÆvÇ¡¦ÇÚ"öDÛcM‡bÃxªöØK4éS ûœiÌ'•$½üy?z{N>wêà·"¦úý´;½ªSÝ‘ƒ}O¦é®õ´y<’³þð“‘§ÞM‚KSïö#Ï${ÎG’õGĨol›NŒg*þáTg7ÔþÖÁh'åa-åKzöèKYvµ©Å8I™8û„hƒ1e)•<‰w{朱“\¶ø “º¤0«GAçvÎqþ¸°Æ²L°È3q¹zp$ÛÇÁÁ‘Ò±‡D|‹éÅÈ>g|ëIÇ|RI2ɟ»ó»Ÿ~’D_бԴ–ÀøzÚg\\Ç!|ö;5‡’̱þ$4´´GöˆtR^vÑ ÷%=kôe”!³`+tL-âÀÉ‚}‰=ßàÈãûRÈ3ƒ©»=sÎ…É–„,‡ê©cÇÒH“žË2yÉ"kK¹zpÌ v÷´·4$$vw&UIÅÈ>g6Ì–$³üù?z£†ÑWmÌv~âà±»³è½Ù¿GÇñc0ëšCIæSÓ7G¤“ŽæmÅX¢—tÚÛ[SQgàdET!í9ùLÿÉä™&¾ÛÒç\ l³Èv¨¶éêzà¹äÆLàX^Dr>?½xÞyážÏxyçâÁ1ƒ¸±=ý•;•˜rÏ#ûœÙ0[’,äÏËÑ;u%û?Ò~쉩»µçè¡£=‡¦ï߆–öèû,µ±¢Oï©Nî9zèhOCK{ÌäÞqüXÊ’ódêϬꇨkÌì0Á°qê±ÇŽ-PýZ–à%öö^Õcjñ4´´G‹ô}"Õ]¿ÿöcO|>¦,%•'žØÝž1g:ÙæÅ†jýágŽ\º;ÍësYƲ9b)‰÷Á\†ßp‘´¥\?8â™ÛÂTå±Äúƶ˜Ñ>6ü’Š‘}ÎŒ$•¤ ßÄû?Ò~ìþð['ÚkŠÚžkÙ_°ï@,ozîg×Ï(’”xûFÓcÐX_ø™#­æ8¤0¿ÏC’鳨?)§¢¥î¾t¤+öNßwà Äz,ÿX‚—tÓwo²7÷êSK2p þð·¢ Ÿ‡RÞØõ‡¿uðÔ©iËR2y’Ýí©rf#Û¼˜ÓPfŽ- ˜Z¯ü½YˆcY&-=×.M}vutþ“‹Ädœ;wN˜ ]G"_˜‘+‹›Žx—ΘŸnŸòþŒ/2›$Eâ‹ÍHŒå=xðàtúl1²ÏybæÙdÇI$é:Ò» òGN¤ºèÔœ;w.‡ý%#ÂÌž§ëHû<ºh‹×_‹0Öf–:x"åÝ;•Ü~äÈôOW°c*y|8óËsì÷étöœn%þ>=ø¯³Š¤’?aÎ 'Bû‘‘úî¼3ñµ˜Jž#ã5Õ`žKÎiÙ³ÍJ<1;@Ò£WtðÄô•vi‡ÄþL>Èg Óu¤=®hŠû"}¿ÇXmIf9~çãÓ<þÑ‘â5–ߤè£(KyÙ_s ÕÝ»¼¤v›„‚8yÈ<ÇòÜû=¾¡¸s¬¡/ëUŸ¤Ät9Ñ5’jK3µi»K¤ñdòDJMN«#érN'&•-¾Â¤egדp¹q¥f©6I¯™JP|w$^]|ÎT?}–ÚRžE§œŽ°ÏÊåZ仨?üV’‘_ð1£;~ô؊颬ԱVpcj…œ !Žó+*JÇmcn·_«ap¥ª÷ÆÐžÝÛS5zæÌ™E¾¬9€ãxÆYó,ûk||ü‰'þÙåZjí3Fiixÿ~îÝww;Ž‘‘¾åc®TV–?òÈdz̜MåÉÜs¿xªaû¾[v¬û§þC}c“¾¤Ú $TŒÚ`4ô÷)c|bMkã½ë·}¤÷Ü^‰yéåW6lXÏ b×%I]2ÔsžRé z ·“Äó½Ž?ÿò玞¦èM;Ú=“>Š“œR–™´A NÚJâ×5ng•EJ®¸´Úéöv_ú°¹µ•Ñš</£ íN×þ»ï¡ð¥xAk˜›ÍÍøZJ~õoOú0Í]wì „$øÆ`kniê¾~ýÊÙ÷Kë×o^×ÜuõjcóšÁëeu®Kï\ÆúÔƒû{ûmefýè¸S¥¢-%ýݖòºñáR—5Cމ×_|ñ®Ýët¹´¤øÆ¹¾ÆÚ’¶¦ºQGÀ¬§Glmë7iz¹.<›ñ•ö–¦¡¹2tõ̱ÿ8^Ó¶ýóÜIé¿vÁ‹ m é ߸2Î*Œ„ßÁ©6µÖÍÎ0põçþãw ¥æÞ»?úô¾ôÝoÿïÈOpåì)eqSM™1ÇW’5KÙï–ÔIjñ`œ&÷d÷øÈ¸¶¨#Ým-:—k’”Ä  „üA·K[lT_8ó¡µ¼2äñû\'**Jv;F){»{­p÷9]ëšÕj-I.Ù'S^àtº×rµ>>.ÀË:Ñj­€‘‘^—+ßÍ]Z­v¹EÈ=>爓%®^<{ËŽu-kÖV•—]íŒF*Àþîw'?zK{W×ÕÒ’â?¼úz‰Åè˜ô‘$éwù5zÓÉß7›õ5 ­R!„Ý÷ñû^:þËþ1…𨙠ð¼@PïŸzG¡R E!÷øØ("’ÀqÂ=ê›à€4”7¹=6±¯ûôÅîúÚòoò•Þâ"Õ¥‰`]¥Ñâ(†Zî)AˆÜ´uK×ÙÓÖµ»Þxõ¥:k‘®¬î¿Ÿ{Ž%u%mÒ¿}þ¤A…_í ø¼_j]çX»i[绯üû¿ÿº¢¬äÒ9¯B¥D~bâ•mï~ðÛ ß 8Yg5Ù£Ó‘Àõ\¹@ªÔ¥•U½Ý¯]»VcfÞ±yK‹Í!\}ËöµËý¬jÊ›6hЯwÞ|óó¿:Öoó«Ëê—¯ºHnÿîó.‰’jǺ²Wß=_m­vOº=ÞÀ'?ý‰ŽçÿGÀpŸctÈ#ݲ}M@"N½õÎ'ïÚþâ{×K_ÿ°gÍ–›·¯ox]LIS£Ò~êÌe ¤«¾yêl§¥¢±çÔïÃúÆC_yX¯\-£r…hKZExÛÚ6– š*£ªôŽÛòXJʾ ¶ÞôÇq¬·wÜq#D´‘$ «e±&h[N ³Ûít»O€Åb]·î&– v¾6QűÀ¹lÁyÅì¯d¥Öüøãɱ!‚¤>õ™‡UJÅÎ0ÏzƒñŽÛnU*(6Ì19a{óíw«Ë‹‹Z«ß{ó´©êž»nÇR©™ÉÉÉÛnÞ¦Õj?ûèWEžWihÛ˜ÇñG¾ðE•Z§ pç¤WA“Î ˜$qˆçÂŒFëõz(’"0tÓ-¬†¡AöµÚï‘$Â0L©T`ج/yeÒM­Í½×º›ëj*Ký›·¬m®{óÔû»÷Þâ ð*Á=`›¸iÇæÁ¾þ²" Â0F¥0˜KO¿öÎö[ökðÐ踻RAê &Aàý!Þ㫹i—oÒŽã¸ZI2^–Á,£ã–RkyUõàÀpÓš6в»7U)u£H¦›)“Y@€ ÷÷î¼÷KOÿëO¼e-^]sùW]’‰÷vßÐcšâæ]Û›^8ùjßµ_ì`ÆÍ_|îco¼ø?*¶È@¹'Ñ+¿ëp—Ö´þ×o_lß¶öÊÕ®íë óÃ7„Æ–‡>¾±³gðùÿ>þ¹Çÿú'ßù^s}qÕ¶Ý«GU‚•¡-uwßh"š&ÔtºA›ÊˆàvûéÌl&ô¢f5ªJ€‘8Â1IXÒ—ªL‡ò N·ìö!»}jjZhZÉó\oïAÞb?A7„ƒ}$Í¡¼˜ùZb>ìöF¨ÕêÄÓq)‘³º©?µÚé‘U\\ÜÔº.r|ë¾ñè´ºøâþÎ+¾æfµfªfÞF<£!z6Þ¿:½Oí„+œît>á÷ûÍf³ÛíÖét™s¸\pò$ìØõõÑ”ôeï¸ç¾ØqùwÀ'«êc)­n·N§Û±cG,¥¾uC}ë†l$Il·=›B}}ðÛ߆š›wÝ•m‘tíʤf¨ë|çQÍ_„(ZE“PT\üêÞÙ±±a´k¤Ø\L8‘αþ«½ÃJ’(¯iºñRÇ/ñKKIÉõNëšJ€ÔìݹíÈ/ÿøÓÏ}ñúù÷©6飣¾eËîoúTÀÑ6´¾ðŸ¿1׬©® ß{ëµÍmU:ÅjQ˜V‚¶dà ÿk^£j¤¨¼ —À˜G]iðöN,Y‹8MÐF•h’±&wþíííŠRÔÔ¬¡i…ÏçîïïZ`£a„uSÊ*.äÁžîæÇ%©–éDáz–VQÀHc6;Eá¡%y16[Oˆ4„BW #ÀÒ­sY2xž'I’¦é,­× $´´L§d_v6ËR¶¡ÊËÉ2çLß®Ü(#>€ä IDATåëúÔÓaîDöƒïþ†a³i/†ã·ß!†€úvëv@ð›·m% ǰ[?z „!Ïîù†á_{ìÿ‚€a84m¹å/7(M•ßûÛ¿Â0L„ã`— âø*úì\ Ú’%NUr»ynú¢ÆÇ'ÍæÄ—±ËűloIIc,E§*qDž ‚ùêÒ—{$^$”KgW#š)ÓñÁ0cÕãaZW>qa8iÎp8ÔÓsFÓÖ¶õÓŸþӳϖvv.hÒ°ŸT˜®’c“ÎÊ•ó¬Jy„ºIe7·5eyNЭ- KÙ"AŒHf€¬î®‘¬¶V±ØR-#’$­à²×¯ÃülÙwÞ9ïÖæÓîóþ ½w$J ’ꢦúªå !Œ ¦—ÈD N7©™ÆÆ§!5°ãqß±¼Ät6,²¸!_-Àô ÖUÂJЖâ۱¼^° ]Tò˜g, ózC MÙ餟¯ãã¾ðäò†u0ÜÓMjÍ¥¥rœÜ (Rã ”f  û]¼?:bhÍlKðû½—.½ÿ/ÿBêtÊææQ{{¯pÜ<'b&pÒ‡‰ á`/Ió­Èó Ô0@%Dz“Ó‚ñ } Ñtët‡2¥K—škk—@®¥& †Ãa˜÷œr_<û,¹iìß?Ÿâ ™Ëξl]TWçFUšS»K A3˜ÈM¸BÀœãUCCC’$²Û_´Û5à8A’Ôâ8^’’ 'бAð’%Aˆ’Ä ‚‚ @’B‚ Àq@(Äó4ŽcyžÂq¡Ï“FḟãbB ’ô…Ã8B*’ô†ÃBj’ô„Àš¦=,‹´4ífYÐÓô$Ë€Ž¦=,+Åh)ÊÇq¢$Í–_M’!Aàãå'I^¢“úBRËOaãxù1Lã>Ž‹É?}!³ä¿³¦æÁææeë÷åjx\½ú~­¥Ó2OÀDÓQ­xMe±ä÷€FÃhu&ü~`ðû#Ãî~ÐÕj5äå+ç[«ê}’ I¸–޾Íf5âŠ"5Tii5©JØ¢}(à4ÁTüƒ®ƒW•êœWFE–ÏÀ¹,½¦††è¡!;€ Ⱥº6Š¢GGûŽÑyHÅ"¬›RVs!R’ÀáÝÔŒà=4ˆì uoòûýKã28Øxýº¦®®H§Ëʶ”¯ïÇ…¢T*#ÚÒ¼©®†šåüT%™Ü³þ`X¨«*qúx%Æ"¥¬V+<ßÓóÛ®…: hiD”›”°Ðî¨ ­vpÁ± ³©DÃRÞ´Â0$Iã¸3Z 0ÍÆe X…«-ÕÔl¥Gû‚*%ËÚ¤²šXº¤Ñ`½½6ÞKYªuee ôá5 f·G2˜jZ@Ò”UéJ0{¿TdÀ¤²éØ€RYÖÛ{ÃÝSÚr›lXÈ ³ÚÓ31V}`Ä-‰‰v߀‹)ÓÅûzg„ç¹®®³`2•´´lEáúõK<ÏÍU¶>2ù¼.I<¬ØX Ã,UC¬ßòzoÏ.»K£ ê3ç-D·;KK,Ùd€‹Áh„övxá¸ùf÷ŧþâLõ‡];ï¹g±%Í=—.A[ \þÍÕËm¼´¦­m¹ÊÍ´ïØ ý:66æM¯âdGXÒ?zÊU_0™Ÿww™»Ódóss~Σ’ïÚ6Ö˜±ï¸ú/RÆŠäÅYý¤Pµ%š†(\ÎÒÒš„Soù[[›Šè¥õ îò`Ùì—Ã`:&Û¬5³ýßs75ÝNÓ+ ç@Ø¢M ;áÏmµ8M!ž`(J§ô%‘, "©™§j:11611F’Tmí’¤œNÛèhÿäRų}ò4Ü‚1™ÆJKÇÀëµi4;2eWh4î¾>©ºº*K?§<a¸×=i.2º\®P(är¹&''qG‰¢,ã¸J…®_§Ö® ¸\Ð߯øáÞzèµg~ð¥qã­¿Ù¹3 ¡Âå EŠ ‚ïÖñ2I“ÛájvΘ? ÏO[|ãceÓä”$)p<*¤$a¯¼"þýßÿ×WÿóËÿ}âæÑÝ/þý߇0 Ã0L’¤ø)¶4‰‘= MÆH,**ÊÉ;C’$˜=BÄ1 '¥ –ïœxÇg¬D0ZÄ)10R{¡eO¡jKPÓP4½½}ÆWL}ýšT5lܺ1E "!aV›Gßhɹ¶¤0«9/‹SD`Ä&F⸂Bóüâ¸ðµkçÀ`°¬Y³M’|Ïéð> ¥èh÷bs˜jÄAÓ>° šÌă Ì¸ëˆÄ0ξ¾Æ¦&fhH¿¼+JQlï耯~uA¢å¢`,*"";À`0`–&´©Ñ••4ìÙãyå•îçÿæG¿¶î™gžýýï5>ø BA J¯Òn’ ÃæÝãY–ýùÏaÓ&—ÿŸoÿù¹mlÙ´‰ùÎwö<­þ'É4rÇ.Î`0 À/ mm¥©LÅH»…²&Ž M.; Ç1„B<Ÿ*C¿ùÆ·{Ô_O_fÊEi!d¬ä¯Lgoé­9SoO“'â¥L}EÁÊtËHŇ“9VVBùþ Çm`$Ad]ô]Wm†–â…7¨ Ÿ}.ŸzpMàŽŠ– …ª›RFþÙÆQ‰Â ž†ƒœÌÄõõtv¦Ïµ{7@rœ¢··4›Z’è[¨xù‰"Ó O‹lö®ïïïë­_}ãßhhø¨Åbùæ7û¾úÕ{¾aù×ÿsäèÑùH’M» ,+Ð×ç!º?‡gûö/}ó›ŸjhhhÝûßùîw{{ŸaY¶²**²U•(ó²044äÏÅL/Šáô|€ÈüˆZš™8Y<ƒ”ùŠ »ÈÆ+hò|@¹¶¦0e:Öåç|™Ÿ "ËãôBuµÍ¬O/ð=¤â*Ný¿Ö>sºßZ¿®¹9qWÁŒ0œC¨!TÈGí²qõjÚÓÈë]  „l鶪€aƒK×ÐPÀÒ…þZbkâRÍG¸§ ¯ýýý¿úÕ‰¯|å+ñºM¼ŸÐÃXp~¢%ˆ ðàƒ Rõ |ýÕoü꧇CÌÈ‚ãø#<ò‹_üb‘ÚͬVkNžbŽ®|ifâ²A ­7g³*´¥ÑQÇÀr˰AHab‚ãÙî^º”~A[ÊH«/ÒL-Ï6pA$I¢(tu½qãòÆ»ÊËýÛÒ3DÐÝ”²HäÂA­XØäÙøýÉŒ¬)ûßdfµ&kD½¾+ò«T£ÎŒ¹5d0ÔüÏÿTxVÎfïJ¥’¢(H½*þ¹çà7¿¾ê>lþö¡ïŸ%|·|æ3°}{­òÛWt-•ögó` "$ÛÓÓ³vm;†a ñ†!N·wïÞgŸ}v1ÚÍ+4T[S8N¥õ‡•»ðÒŸaFV‹iÁŒ•ì˜,¾ 3“B:]‚Ä0QÀn?V…¶TZZd.«¹4¹Ðµ”+ž°;Hjs)×…&ü ÁÒ°yT%9Ø­ö:©è&•µ<ÛÒ’³gϾé÷{×­»Édš[èˆÎ¤ņpP³‚t¦ä3qýSÞñW®Ì­ºþ4nõÜöí¬(²6Û€l")YŽ:Ÿ¯)p9ðÖ/Hêë ¯Ó±ÿ®ö¢¢DoäÕ‰¶qãÆ—_îXù²à7¿ùÍC=”êl__mKKËé¾÷¿þõÿ¸”r-CCC\L~ñ¢È§µè4»«¿xóÄ®P†/À`.„ÉXÉA¬Âºkrßhuš<òL\ž’ô‹„¦¡uãú¸ ’°´{¢aoˆÊ•¶„€Ò*ÙÉ9ÄÂO)­2WþB×IE7¥,湆p’ÄÉIÇ… ï0ŒfÍšmjõÜ&3lÕM)U¢Øš„<€ò”‘‘èÍ–!§(ÇA$®LW$µTE¡Uªu••ƒ¡Ðµ,¥X¿þäwþæòåõÁ`ùŠYl›‰KÅ#Â<ž¿¾tß×=tàÆ p¹ c¦jÔÖÖ6::š?^Ïããð£Á¯ ### Ã$8ƒ÷öBggð÷¿€÷ß/ÛóÁ ïüãÏ^xay¤]l¬V«‹ù&Q’ÒÏ[]1uÿàeÓ{äPúz„\Ü'+ù>ê}Åôªe0Mž•1WðƱ##>%ÍŸ¿ø~È+ñ"WU[]¢a&Däô‡9ƒ¥¤®Üôþ™‹”’A ù\Z“NEYp×jTl0 ÐÖoÙTE’+P}Ìv¯k°¤Zç?'˜r}Øä³ðXŠ'h÷(‹µÁ±œY#{›´†×I‹°n¨­mù›¿éþá ããYyJóa­UÁÕ¢0¯„Åí‰ BöìÂa¸rÖ¯Eèê‚ÖÖ4ÙËËÍ¡P¶‹¹jk[:;Q0(ø|—M¦r€¹M¡æ'ÙD§|ûí·[[¿û³¶¾þõ$Ùn»í¶—_~ùÎ\Ì^f3TUÁ=÷ÀÏ~öÛ¯}íkׯéSPT ç]S?2”°};´´”ýcàL­å–-Ë,vN¸ôá{c>ACòcÚ¼>ºòZ£™8”vMür ´¦¶ŠZøš¸Œ•\ÓL¾èóSé>#I # MÜ Ñ–XV pd¶4€É_Zj …9^tº--­Á Ïã ’J¦mm‹×ÇuL ÄpD µÚª/2á¤Òïñ)ýз¦fUoy͇8ÀFbx¡·5¥Súú3û©$ „œÊ}Hñ0BlœÍª·÷ÊóÏ›ÊÊ*ÇÇ“oNg8ÈÇì6‚´e½ž® ˜A Š— ‚L^&&€a`t4½†¢s^)‹´“µ4íp¼ðÂÚ?ÿóÌÌæx ”®®® 6¤™Òìë‡#|ò$µÅÉ“'oÜà^~™,+ƒ}lAíæ¤ìéÓïÝ|óÍ¡º:øÉO’—Ä(.^p±¦&Ù†½™—€  ˆáRj€ @dçÇõ4­¦é Ç ¢¨¦éÇñ¢ÈP+¼ ¨(ŠN”$)HR˜çc ’”$‰åyƒR‰!„P#䏨‰ã$ŽÂa‚ahƦ IËâ¦$IËbƤ—e’¬Ôé<¡BHKÓîPÒE¶@‘$B9Ð*^–•$ICÓ~ŽEQCÓ)ùÕ$©§éÙò«(Š„° (I²X­ÖÓtL~š B!Ž‹h ÇA’¦åÇqÇýq³åÇRÓtD~ M{ |¬mÉnX,*†!ý¨©©Ž¥Wª"ÎÆrP*™âb€ø½J• zdi™.äÇÆü%%Kæ8‘€ð+‹ÚØHQ–hy?›ÍR¸#î¢M1Îå$7ˆW$ ½óÞÐP¤P¸B¡ÄÐëX?Aw“ ò7Ïs¢~K7n@m-\¿--pý:`XVÚ’Ý55×3„{‰¯¬f."«Õñúë¼×»rV°ÆfâR-;}ë­·>÷¹G¯]KǪº¾øEV£¡à¡‡zóÍÕê{²T•Ò´»²§OÃÖ­RçÙßÚKìÛÚ¿šôÞ™]ö®»î:yòäý÷ß?ïvó„Æúz—_`Sêaj瓉˗'Y6fŒ™ÓLy>j[šujš1  €à”ÃÃÔsê V¹kJÕ˜Œd'[d_¹4y~žÅ&ÍlicyxG(³mi–ü±ÍR\Ë­*ÁÊð[òû9†ÉÁäˆRIƒ…m*\8’$¶Ð‡¥U„Ý󼹃v¯Ò2÷è{©Ñ ¼ KòUÐÝ}¾¥es0̯„¯ˆ™HÇÇθiÖ\ƉâJ¿k`±œV(²½%(J[SÓ»p¹ò„Øš¸¤.GÃÃÃadðÁ)+‰•Õëõ£££^ïÖ .ÄÕ)UÙ3gàG?ºxໟý²ãé§!©_J|YŸÆÆÀã1º2Ü-ÚÍtFKuE©¹ÔjÒ«#)Ìì­!æ™iM\éPÃ?îD['3ì/ËäbZ0c%ß·mº{—´ËVž&a´¼&.¯˜Ÿº32â++S/†<…ˆÀò8½ ÛZY¬ÃBÆp”)‘¤Ü~SšEÎ1ËÓ¨”7„ƒ]gkj2G˜^ ˆÜåKW½^}Üáóù’GˆMî7¦÷¿K[UVÒ’”}·jM¦‹;wŽdÎXh$Õ^{íµ{ï½·º>þqص+sÙŽØ¿ÿ›ÿôÉßx£#»r‹¡-mÞ ÿëµ~kÝ}{þùo}4¹Q2¾l8 »vÇ;wî|óÍ7çÝnÞ¢R©r²òKÅô¾ÕœÊ7á¡<|†ß''Âd¬dHáGNšÅÒe%)ý*¿‚ àµ¥¡!¯Õ5E””0ccÓ¯»=02’$Ø×¶Û§ßå,+ÐtT‘gÒïz« BÁûðσÃ'ò¢²xþþ"”NvÏa)\¢~„c”.g âQ‹BC8Øz0¼›R¼®5JoK‹D+½¯1rÓæu´Bi-/U«Õ3"$˜¸(*ÊPB[WìÎfÒ£¨ºPè@–ŽäŠŠŠ5^oev™ €¤kâ&&àòeøàƒqŽãæ·úÚ5øÙϺuw¼ðÄ/^z)§‚Î…­[¡³³³ù¶¿Z³nó–-™§pFؾÖ­ƒæææ®È‚Ê•…R©äfêåjõ§ôiC­3í-·Æ§’¿¶ŽÀ°ûkëÖÇJ‡qô®yºJ§#éëhú¡ú†„˜FÜLEgGIÉÇ2͈ﯪ®×ëÓTRÊ0Ÿnh0*¦ŸÏ?6t>Ý;yÚ<ý½Ôf2Ýj­ˆ/%JR¼þ‡#t_míF³9$ŠúT}ƒ2Ÿ,Ry$Êüà81éB6§3„a(<ËýÅë ³¬ ŠR0È+•‰—o±¨z{Ý_ïÏjtú–@Dl¾ki’4ÀâE^ 5óŸË‹Çʳƒ8 \$ðbx75m8qàäÙ±ë?üêȣ߫ZÙ[ Íìi<Ðדo˜87zz ¾>ÕIšVþîw·º‚Àš*ÛXQÑÖñqðû_g˜5™´·¼'éš8Q„矂xýßøäœj»ç¨©Ùý}úü¶uCÍfc—óçÏoßþ™y,..îëë«®®ÎµDËÉÐÐPÂÛýPMm…7иnýŸìÉ£r¨Hò³* -A«™˜ «¡ià™š(ßj)^ëpAMÝ¿ÅäÐF(©Šýõ±"³ib²iÓæ×lÓZK¹V;<µÐCè1K©ßãQ·µ §˜Ã]£7ìðŦ–§ÇF’V””ªmŽæµë^»¢feQ¨$:«£$ˆÏªu” ˜´Û” ›¡(Ãb.S›-–õŽI¬ºög*URIàž"sÑÄ$USûóîlƒ,6…ª-¹Ý,Eá4'|’)Ž`Q‘ÒífkjtEEʘöÁáFþŒ¤;!£q†Ã@%Žc§ÕFØRWüYìS1…‰ 9² Þ½”óa%&@7©Húñ«-þÈÃß?_òº0brº+%'º&®§rõ²½v Óœ'Ç…žžwÌæ]z}Fm @§»6::^WgC(”…‚•_p!ÿõ[­ÕÔoó4ÔTÌÎàt‚Ù Ë0B“Á 2óÅqÔÖ²Z׌œ¾ë®\‰>ùFcÓ…±Ñ×Sî² …î/.=7’!¦ÔRR¨¯ŽîíucTT̘3Òh¨¡¡ ·›Í¸´­¬L=0àÁ0›È‹PZª¾rÅÁ0Ôj4,ç H¤FÁyçfÝ¡ H뜿a)ï+͹ñ$;K3a”ÒNF’4χyžë%f³ò쑃½òŸùìªk·ƒÅ’òlf§¶¼¼&Ô¼ÿþÖÛn˪A„Œ½½ Ÿo´¹Y§X”‰ÙE$äóŒ9œEzåÐ@ME©Ëå …B.—Ëëõâ8Žúå/©PètåÿsËÕÏþÍw®¸þïÿÅB¢(Æ;ëDrÆ#nݑđáÝwi7^¿~Ýh4‚ Äï0Ÿs Ÿ!Y«ÏÇ-YŠOŒ•MÈùâ‹/Þ~ûÆŠŠIÇ=)>,0†a†Å·ŸÉ)ŠŠ¯}ͳ{7½o_8–Ÿ3â]§P(è\ìà±4$xùœŸ˜8?‘aÇßv%n¶(ˆb¼ï¦7þ‡Ëã30ÃV¬ìüdÐ¥·GRNÙÆNÙ}&ў뽑^g0ø×Î¥¯ä¢sâ¢sÆÝ慨•\ Ù&¦–qüìZâ4k‚ß’Ÿã¾{ùRzaÞ³ÙÞË&wi)Tm JJ‚À°Y ¸ZZLñF\¿#“n^o8²h7±?cPÞÖ–n>u5ö„(Ýœµ%J§{r0}ƺºÆÔ/æ¹FU€ÖÖÍ/¾9ÇI…(6„ƒøJ‰Ž@fohP\œ.Š÷È@06&SÊl)ékmåNÚ]VÆ„2kÃÑ_]M9m^/]pÚ’¦¨¤]cÂ1hßa$Âl6»ÝnƒÁ@DdJÔ`€+ŸüAÝ-{›&ƒ6 GÁXY¨©oXöÎ?þñ>ó™ÌsañeçJª²‚ ¬]»6}Y„’M8ðàƒw¿üòî¿ÿ^—‹Nå))[(îÞ³gâæ‰ã Í“´.XúùÝãÿöAñ`OS’$2c%£ÍhÃĶ÷J:ÊûRå!0ŒÄ°BNYÀ^ÞJ%‘Mèíx×ïÈ$]ìÔlUI&B`Ì£š££7mTa´åf'TÖé§M‹øJ­Ö¹\ã¢8ýå°nJy•J9•¾bðK8‰©:]ÊýtC!‡PÜn“/Ïð Ýd0¬eYÀñWÝî÷³ÒlÞPTt«^?árâ†qˆ¦)‚¤3í"±ÿg?  ÝûÓ?üà¾UñJEÑ¥¥ª,·«Ïùš8‡Ã‘…2U»pò$¿é¥ÏÿýŸùþ÷çV6o±Z­9Ùß#ãÎ' ݇[ôÓ“¾žœlÃ’±’'Äž³'t/•¦¤¯¨ (`Û’Ìâ!ñ¢$I‰‹\¶kP)­2ì™ÿR¸øG(ÉÜ…JD§þìÏ‚?üaWA0̆a¢kÙìvA€ôq“ß{‚Axã”9ÇÇ35‹WTtûýàñ4貚åÆ) úû×´´¼p .›2ùIlM\¼ðòËïâøW_…[oͪ’¤ÚCyyù¥K—ÚÚ2Dò̹¶ôÒK/Ýwß}ó+ {÷*~ÝØ¦Y߀§pxËsm©¯óüX˜"‚S´amóää¤$IBJ‚  ‚Q’bŽó¢9$IEÇÅ©I’xQ$1LàE‘!I„(I†!„8AÀ1 ›:À _<¡Ñ‹aÀ"qœåùØBˆÂq–ç 3(‘T9P’dd£ÜXŠ‚ XA$)v@Dxê€Ä0%A¤‘Ìèñ{h ]a9ˆÈ¯"IÇyQŒÊ/8B8†…CˆÄ06r0S~„ã ò/#«âU™žíÐ-“† Í£*ÉÖ¼DjhBEåʰþáIµÕ«Ú(/¯mjÚðî»ã<¿*îÿt8, 1ˆß³mN'¤Ù•#k6lû|m>_¶.Û$É}õU3À<æþòˆXtÊ™xž|’ÎRUJÅÍ7ß|áÂ…U1/‚suMŸÉ'? ‹ÚðoS-Í?œC¹–އ;ìqŠ˜‚ù€ ’$i$‰ÅH^¢±Q"ÇS¼(FÎò’Ƀ@ü)!®ÔŒª’¶2•‡ÂqNIã2sq™Å™"qq"ÅNQ W”FþØ©©±S€E"#Ä]ì´H3¯HŒ»êù—·ÇW…m©ºZ×Ý퀆†Åz¯<ü#ËÖ*ß`VQw)]. K‹‡J¥®¯_76Öúô €UêÅ%•/BªG’$A?TVÂp²Íõ\.¨Ëlû!ˆ5s @ »ÝÄèhÀJ›4¿råJKK"£â8>‘É8çœ9sfëÖ­ ¬dxœNlt!Ï·„KÊÚ¶V»;¤&ÅÈÎ'jµ‚<„˜¯÷üü‡JRDz—n²D"yV Èq¾©ehì|EbH2ýé|T™W•4OŒÇÅgÈÌTNvÖÁ2²Z¾­ kßd2 I I(‹]PH‚Ò*üCó‰8°”45m¬¨h¸pá»=ùfº«¿ßï½—äÄk¯¥,ÓÕÝ7©|ž†ñV€ª4;:å¹sçvìØ‘“Ê÷ïßÿÎ;ï䤪,¹xñbƹ¿Œ”—ÃáÃððÃëÏK\‡Uh EuÕÖâòJ³1jƒÊÉlQÄ$“&Cýxýïônr5¥¯‡Í…0+ù[¶eÏÍÜMö²4y9–÷²32<86fw:& Àó>¯Ç3é …B¢¸… IDATÁ`Â\ØçõÙÆlÁP(èwsáÐð°- †B!–eÀ1>>éwNzF†m·; ƒ!ûX~-\\.¼.UiŒÒ¢Ar²nñ°X¬ëÖÝÔÛÛÙÕuv¹eYjìcÃã ‰ ÃDçàHÐxæd´èê‚ÌOç€Ét ûÏÄ 3çÊ{b3q‘ü¢(J’4Wƒ ‘b½Ummí‡~8¿²sjwl FFàïþnâÊÉfËJøŒí¶¶¶vÎŒQ”}Ù|Ãjµ*s±OaDÚØîc¸ïÝKEN”!V‹"Âd¬¤+ºôv:08Bdš(°Û1¡¾þ`ˆô³6»o˦Íšê±M†|ZsÑMÛ·ö^¿ÑÛßrô„D().n]ÛrñüÙ€? ¢"MoÛÔvñÂÖŠ+WÇ*Íàˆ1­š9pïþ徸å'hó˜Ö•û‡SÚ ˜r}dÜÅ0,…=AR«à ‡©Õ‚ÑHèõí##½.,éÇwþðÁ»oãºòÊòÒù¾rví‚¡!ȼ±…Ë<á0¤ŽÏ ÀmßÃÃ=%ÙÍ„ÖéõìÜŠ÷ß¿¡¡!‡–””,Б(Þx†‡;×ü`K×îO=ñÄçò“ÜTX–-  JËŽ¯hô©^ j2¸f¹^r•üsÉ• ½U=5ù>·°p [[Úö‘"Ïzƒàó„-•ÍfY·q€$r‚´{ï ÀÌ|vßyבŽçI‚Ø{ëm0<ìýèGUãã³YEQ¯ç3ùö«ÇT¥Ú¨’´8[†xz'´5&וôÛµ¦D§3îß ý?ùÉ*Õ“"ø=.Ñî÷û§U’LiŠD8w¼^È&ZÏä$\½ {öDþây˜eÐÑt¥Ëõ"ÇiDÑJÓë2Õˆü{öÜ`Y+M°Óal&.ƒñâÅ‹óc-¤pÝðù`Ïž=/¿üò|>P' e•ªìœÚexàòïýxÍúìjm[Ù4ìÞ½û­·Þºu–»ûBd^†††‚³Ã˜Í~ftÊy³43qÙ HZoΦ°gâ#h×D¨¬LM’8ÇM½F80©?sɸ9lj…'lÊ+¬+ ˜V›TÓJ³Ú?4ITºsãÓB‚FÌYsÅ0¬®®mÍšmJ¥æW¿rüä'‹´)ÿÑ›thÖ0Ÿ)¡”žÝàõ&‰c™Š±1(.ŽýuãFdŽ0®1Ô8‰óƒ) wì FGY-8ÈOb3q’$‰¢8?#Pª¯ü_ý ž~Úûî§}õÀŽ™[Ù9µ»?ˆ"˜=¼î£|üãs+›†ÆÆÆádKrbYJ–l&.Kè\Leæ¤y&.ˆhâóSǃAN¡ Ç1A(°ñ¹Øðþ°¡¹$4ÝúMU¦Ãi‚P’aOˆ±êYgÀÝ1ÊΡÑ*+àúõK¡ÐBw_Y1P´bØí#I9^ "ôu €MÁ†æjÀ9€À$€ ï½"Š0 à E¨„£õE ²à- 8Îhž’ŽÛàpü!k›$ÐòÞ{§ª«@›—b¼ÿþû _PA€VËrA¿_pg|!œ=û§¯}íŽT¡·çBˆ ˆ]—ÀÒlÍ­ôêïÓ–þÁ.Ù-)÷Yƒ©×âÉXÉ}Ϊ•Wýã6f…?u ^[ ¸È®&P\¬ógÜ!.›-P]—ÈÅݵÒ9A]i”D1r´{yânê‹Õ4ŸÙx‹VSÓ¢T2óòåÓK U1Ò}`t¼¬*ê"c°…šòbIbG˜¯CùVðúuÁÊH`›uƒ£ô“ðÁ`¨YJ°bÀwÂF;ÿ žõPnL„€zX`'€|×`û?A·PÃá°»³ó0@âʯ¡!Žã”`ÙfŒÖÞÞ¤×á³Û/]º„ƒ§Õê±Tš¦qCaì¶¿&îܹs_þò—sXùÃ@‹ó¾/¼ðûGÉaÅIðz½E¹Õ•`ïÞ½¯½öÚìɸÂbhh(°$3qåóÞÍÃçôvH§-…r!LÆJnÁLìVÛ–SÅ'™ä£VÊL\ÁkK6[ ¶ý­RIÚlQõVÄÞ^·(JÆ„"CC^–åëê¢ß©ñæÞ’flÌWR¢—+¤×+dýÉyeTab‚6¯ªLǺbxénz‘K·èT©d*+ ‚ìí½ø²¯¶¸˜´ÙrðÉʪêtŠw'=ÑGÆ’bÌ˪Õj•µò'Ð?£c°ù ”•ÂÅ‹Pb…˜‹@äÀ1 ^€€šjàÂ0p>è„[o#££`6ƒãVð€ƒ(@`Ø‚`4‚B í;@ªô RétC,ë!I…Õj¨J8;;‘$…^{ͬ×÷ëõ«uÆé~×)î D©TÆÇòžßGªR‘©‹¥ˆ¦±TÓ& 13ÄÊz<íWY¶[ZZúꫯίì2²¬$ðˆ iŠ«ÕªH±¾oNà³w?I¹ç›¿ß⮿’¾Š R†UËšŒ•üÝù…“m/¶}&ŽPNæ——BÕ–XV é$f[ C‚ â868è­«Ó;AŸ/¬VOÇköZ,*Ž#>Ý‚ âøô©PÁ`T˜œd 9ö7H¼HªiŒÄµ"¥5òKéÚrúq%)gh6jµøå/_yeÇä$;ˆIÕkm¶3¹3ñ{\eÕ µß”ÒlŠxÌ`€6€…~?lßb Û j h=À¸iàyày¨h@[?¸ªÀheôŽC¸B¡è‹ZÁçƒP0 dáÏRZ:átj}>e½Ù-„llœ°Ûw/ò’¯Üó1gm•º»¢Æž>t¨ýàÁ“'aÿÜÝfœ¨*..+))™GÙlÚýÓŸþ´wïÞù•Í&§ÏçSÇù¨çùÄÜØÀõ‹=cZ`4³uóŸÏ‘MBH ãEQ 1,Š:v@`˜8u I’ì€!I !Nq„B|܆†/Š£K¡ s"Ž!„#ĉ" 0,r@âxXT$©¦¨° ÄR€ÆñH¤Gj*…ÂqN¤¸ƒxù’Œ\Ñì ‰Hë×ò.œÄè©!ˆDÄV‘$…ã‘íM°© ‰ˆ=}€Ï”öÁ²vxÁjK‚ Úl!…‚ÐëgšÏÇŠ$¡ V…ª8Ž¿ûö[ÖÆu›Ö¯‰O÷ûý:Ÿa¬zÃ0èﮪ"I I P( ±ìv0A©„@ŒFÔ#‘FYë25˜Lá@ Ûajؼ¹áìÙì[ȼۄ§²¼Äårõ÷Ûoöm;~ü´¢ÞSçξø}ÐpG‰¢˜&Ñëõò<I!þ׋„&jkk{å•WöO)b‘ÄHÎHÙ„ÄH6„PD/áãV?Å'ÆÊ:„PìÏøœ’$Å/aÃ0 Ã0I’&''c™c‰Is®Y³æäÉ“·ß~{,Ñãñð<¯P(ò3¸€?IJ!?RiHÀq°‚€#Dá8ˆ’Dâ8L½ì‘( ¢Ñ6"¢$(FÔŽø¦ì1!I’ Ã’$)²Ïš$I8BŽ‹’Ù^-r@á¸(I!ÃQ BäP8.ˆ"Dökƒ¸ ÃDI’$‰œ:ˆ—?²§[L~ÃДü”؆E¤Èu脘ü±+š–ÄäŸ>ˆˆw“v)TmI¥"=–ey‹e†NƒãB0>î//.xŽ·æŠ¢3–•©{z\ÅÅ AÌxéZ,ªînWQ‘*âú-#èçøÅ¹]ÓLù‡'U*M}ýÚp841a‹x&9³ o_% Á˜ÀY(’Ÿ|øÑ"Cbd£é]ukjÆÇ¦!2Éâ÷Gµ% ‹JK¡¯/e%ÊÊ œ‹ÓŸ @¥P€ÏŠm½5”Y[T^‚ Ìfó–-îG½ùܽgomiÅuÙm,BH¯OœÖŒG£Ñ€Ádtd,›±]·Ûm6›5Ù’ˆCÅlÚíì„úúuOùqkÃzD5Gâ„ ‚)›ŸÛëÖ5¶–WÖ ‹HLýì‚$y>8¥ Îï!„âþœ “Ú1“Ç8$*yˆ­ZõODܧ4¢è EãÕæ+…ãé¯È:¡©·kO–A,ñT €„”WsJq!ñËHO%–”¨T¥Z«U›ó6™”GÔ™itÔWZ:mIª¯7h4‰›* „òþ»³ ó…×õ|¨ªlÃñD3E)êë×­[w“ÉT|áÂ;W¯žÏÍŽ%Á…Nå JµÖlÔ§óÿ¨¬’(CZ-0 ˜Í@ÓÐ4k…Ø,‰× óZˆe6Ãø¸ÕÄ.B"†âŠL¯jE¡ªªŠ¦éêêùÔ•)Îl6'Y¦ºð¯¿þúž©HZs-›‘ à{ßúØÏþÔÝß|òɹ•]F £Ñ©ѨCCCx.|­"ÓUi2¬u5½ß±Ó_Ÿ¾žœ“±’ÿ«ßx·çŽÑDÄx2^QAPÀÚR–h4”×UK#q•–WžÂ…"`îñ²¢çêYAˆŽ% ë«[š›7­_¿ÖnïºpáÁÁžÜ6§ÌG»þ2a0À¦ÊÙÎdJâq ccñ¡¨1,º¥nUº'f2º'&nd“O­î8à¸<Ç&ò‚ÙûÄ-{öìùÓŸþ´5ÏÃÅ;{ÊËáñÇ­®y²êð<°H,:V«5A({8AàÒšÓ®+Çžû@w‰È°CWNBef¬äÖa;«>mL' /ŠËîu´pV¾¶CÄLK dÒ±x¶%œÔj¡´´jÍšmëíö¡«WÏ ö/Ò*ŠÕc[J…?^=*)‰*@1úû£6§Ù¸\ÐÝ :‰aÓ Jëë6mš“<_íZVËÑqœ*) x®\árðBZbbÑ)š¦C¡Pέ2‹ª*ÀΠÕÂ'¾zPc¢vï^¼vj¦gúz“çoÛœoš"_h{¸ÞŽ¡85 ‹·èh¨ð_¯qÜV>½i£_ë<éu8õöXJ{±ë/[Ç‹”Áøšg„”>Q3þͶt[#•Ç[Ço*žm8!ªd›Ñó·mÎ*íôýWQï ßÄD\Ó4Œ}~æaáqOs† ÿŸ5Ž;¬Ž4Âl·¸o·¨òÈ¢¼*\s4Òíf]®PUÕ"Çn[ÑPð"¹v!`íg,ÖÀŒ˜Äúí“é2ógõø-¥bÚoi®„Ã@’P_>ߌ àóòÃu8:««1€lö°«ijb:;-]]Ö,÷ÜÈOr²’?=&“©¿¿¿zælßÛ}íµ×æ1 7v­Vëøø¸ÙlžGÙeghhˆ˜)ó'Êø ﶯ4wüÁž\3P‘üÊVRT[Þµû£³ášFž©uûÛ,“ÍŽûÚÊ·‰¸€FtJ¦UŸûŠTº‰^wü•±é)õr­vØã‰cHzÄ\á¬|dýïû&“{’m0ù׺îY_ý>©èMZ {ðàÁy”ÍÄœ:E½û®ýc›Ï§æ\Ûݵk×ñãÇ?ýéOÏ£ì²cµZ—.ŧü´—Þ]úúÉ “lÊûœ¯ÒQÂó½Í¼½^ÇB¡©I½·…Õo÷ô*Ï;j¦‹]¯vzè¨Û³Õüú—«}Ó¾¼zšždM±?C¡ ³òÌï®MÇwMàô0woõÛƒÔ[£Ó %TÒíì-{½ã¢Õš¾"òzíëqÂpÖQ#=ø|o+7uEŽãŦ)ߨº·æí}ʳãqW4“a·w»ùõ7Gç¼bñXÚ©!íŠE­|¾ÄGU®lK¾²²nܸ<0p Œ'*²‹g’mKÑ]u%)åB6·{†gR”J(/˜rcž ,kQ©®¸fǨL†stô&Ó  n®m-/±è”K€B¡M}Ä/Þ^(-…_|½¥…êí. \T† òhòeN„B!r¦÷Àùew†H4,NHÁŠÿ°çEü¿o”Åg(r•~¶Òøßü )ËûÚ¤öÚd¢:KÌT7O™ -Ažüž²„Ä„JFüª_vÏøV9loÝX¡øÿÙ{óø8®ëÎ÷W{Uï;ö…$HÜw‰¢ö¢,ÙÖÈ~±'cÙ‘9Ž­„OI;ñ$~±_2±•Qgô‰ügɉ•|&–EÓRäE%JI‰")$ˆ…±ö¾Ö^ïš  n4+ëûᇟêÛw9UU}êÜsν”pöØÇÍÕ?L?£ü•8Í §œÑtº¢ö®h™¯a Ä*Ñ–‚™Ì¥î‹±¡pScuðÊhs[›.&z.;œ6š$^X×Twüä{v›KQdQÌ8ÝR×mVad4È IiÁjs;Û½Eþž®öîÞñúÑÓª:é§tž¶%‚ 7ØlÎD"2e‹’‚ÆÓ¶´pŒ¯ÄifÊýœM¿4' %Eœ•~¯wôÄ ÃÁ”æcñxnèèØ¼cG ‹áTqÔyx—Þ¶®n÷_üE×îÝ-¹­DÊ÷èQ øÜwïûÉ Ÿü«Îÿö×=çÊwýúõ—/_nllœÏµZ’É$[ {X6MÑ,<²£¥&]µ÷ÏÚW aŠv²‘±p±¡Ó–Ó–¦C®Š\Þ+þ²$d¹©º6ÁRC±„Ýi§iÊéöø}^ЦS‰d&M«DuM}: ¸Ý6‡ †awØíN·Í*ÃÒ4H’¥¨ÞXlö`„k„÷O~0EU¼HƒÍE–DIVdI™~ñù|©J„¡Éš6{Ùÿ…ß~…{×Õ9{?©JüÉíä¹s/½F¼^5[zU×¥•¦ûNg•Ø–T{}Ý|SO,¶f"í›Ã5)K›cMÓÚ5Mò÷átyÆ—r ó{¸f)h}™«mi÷îä† žS§¶¤ÓñÙ÷»]¶%¯—O§¥Lf¹§x©©TÊY[ †™±Æ}÷M-©­Ež³gÖÍuuŒkjŠÅbÁPÈW¢I·¥å2MØÛk¯«+QÁZ.,æJÜ /8ÿÈË¿óÿåtxÝßûÛåwuß}xýõ k~u0yëG?Z1 g‡¦i‡Ã±<3Ræ Ïtv[P¼cÏ®m†axÁÅq6ŽË(Цë6ŽEÕu+ËJš¦jš…eMS4M`Í0dUÍð c†¤ªnA "œN³4MDFQr E1•–eº^âûÙ¹µBÖ[|>±iå»k×®“'OÎçZ-»ÛåZ7´´åå´HV‚Xt% Ý*Wb—‚ŠS´“ ×^ÕCÌj”WVÅJܲþs,ƒP&3œ—yo0™¼\hù 3Ì…@›L£ gOQ¿%»ÝÕÖ¶“a¸>x+™œC:Ÿåà·´º™¢‘à›o¾“ˆŒ¾îB2™L¥fÝod&-*›”²¢ˆ¢[é JÝÓÆfmo®¸´À¹ì”‹ -hnÆŸÿ9Ö®å£Ñè\Ûæsøðá{î¹gqdž‚¦Yþò/­ÿò/e¼à¸½æ†:‡Ûk³Œ?;*òƒZtŸ¡õxOxr†ûtªêfÑNþÀhÙrkê®Yw>!sç“eÇîêê\R‡ÃÃ,Ei“ÓÚ¦¥'c)Jšá‰«êzg8 gü™«m‰¢¨M›öø|5§††z+2Ü"Û–Vw œËå |¢bøÝv›Í6¾—c&õhQèí]Ïq»J¬Ì²mV«œYP‘æ®ÉW†U)Ý×?˜_>ÿýÚJ¦!¸ÿþ{92Ÿq#‘ˆÏç[™§pÇ{Ãá7>ö±²G^êëë­•ÈØN“$3«ŽÒáìýÇ7|T ófqL,™¢<«÷'ÞöœvÍ& M’«À×e¥ú-Å$ér<¾ÅïL&g2zÁ'‰Éߎ¦ÓY'îKÑèÅH¤Ùé¼竽ëÝîžX €ºâÌý•£D¿%–Õ47ï$I²£ã=M+ÓÖºp~K,«ËòÔçÎ"»I- rýú™½°[Zpá€ñ=ã¦DÃåÓÖVØ{©LÔë®{ïw$ÉH@Iö½êêꑽ¾¾xÍ%¤÷â…Á¸æqð##£u5H$"Šb$É{‚Ðu=ß‘™¢¨¢…ÑhTÓ´l¡¦iùŠMÓ¦F£Ñh4jF¶mÁšAd×Úò#ö ‚èëëkhhÈÊœm;SMŠ¢ ÃÐòÞ?I’$IÒ0ŒP(”+Ϭ™_ØÓC65>üà¯Îœq‘dÛöí+Æð›¨ÐJÜìt!óKuîÙ¶1œŸ;o‰¼íá"üȬ[”(º®/û=’‹²Rµ%'ÇÙY€¤i[üþ)߆E1&I³'ŠXçrõÄb)Yöò¼‹Ÿšhu0™ ‹bóµWbLÜæÍéO|Bøïÿ½S’2Ìo¸ù{Ö¬a­BíÙ{g¸L.m7EAÓ°xÞµTm­pFÇèh$¸±”6,ëÇÿYU×Òô -_Ù¬ÙÐn F$Emh¨£iÚï÷Çb1·Û `>®e{(;î¸ãôéÓ·ÜrKém Y…íܹŸ~ò“ŸÌªGs7‡¦ie´}í5¼õVÿ{æ'¿qqô†W¾ûÝ•ñâZ©•8¢B›NTÄñ«"˜+qKŒ›ç{b1ë4;¡‡çc’´Æé¬µÙø¡'+è½$Ðôh:ÍOKÐ'Ð4I;«¦¦X]•0…æý–tý–?û3hjUi&§‚åsr$*ØCÁžy°¿w!†+xÑVEü–f!;Ã@m-††æ!´|:mO$gI->…Þ^ÿèè²Vo ’ |n¯¦jê»Üb²aÆ‹§¦7›|ùËøÉO”t:½T{TUá‘GjßùìÿØÿ/âK"B9Ô××ÛÊÚ0q ,E_·Ò)3ÖLÿq,ƒ¢X½ˆ´«c%nkKNŽ[ãt,SwŒÊ–ç>ÚYvÓ©2V[­<žéÚRµÕZm-’®~Õà(´ê.䲕’ å¥^kjÚÐÓÓ›LRŽB{v,œ©¼àp gêa¦áJï¹"íÆý–( sM^Ÿsô®ªÂè(H•X°ŽF£^¯\º¶$I××ÖÎ+ v‘YÌì”Sðûýo½5öôÓîW^)©~CöíM¿|ï¢å£œÆ¾}°Ù¨¶»ÿï[î½ÿ¶Û–JŠ9£ªê¢V¾=°²”ç¬c±ØišÅB‹¶cï–ÝÎp‹ÍÁËt ¯$‰rWX*K"±9Ö¯Huu?°iaeª(‹—Ï}÷ÝwáÂá–Ü}÷Z ×O¸†-IL\(„wßÅÏ~VöÈK@0¬È¯KÑ•8 ·CV‰"÷KEôŠvbeÈ´]TÈÙ„!VÅ–ö×–¶ÄÓtcå7pXÙeÅplذýÒ¥sÒiêç?/ 4ÓÂÖüõÍìò¢ IDATtó§ÀJÜÖ­ãE·NÍ¿ƒl6Ì7‡XWw èó]i×]·ÒRL°øšÃ0SœÇgáw ëz÷ßæYöwæ5î<Ûº\xòÉÔw–=ò"ˆÄÇœ«««í‹²wÅß÷‡ÃÝþ"k¬¦h'_©:õ#½gÜÁYê05} gÅq­hK²¦e#ÝL¦0WÛ’Ç£üæo²½½`ÖesÓ¶´œ™šAyû–44i\;yבù†º0{÷ëÖETµ6þ)Ë^*¡‰$KÊý½|È­Ä-~4~,†Ûo¿ý¿øyöxv::ð?ÿ穇ÿþ÷ÎþÝá\®£%É @Qmù;Dôôu_8``` ¿¿TI`žÿ’’”¤"Õœñ¢ý Äbó¦”N‹ “–åh&3a–Ö<µâÕ½iõx.E£³'±¸6)öäóé©Ô¬[†Í?ÿ@ýå°MÊJ·-ÍÆ\=™²Ûž”´mÜØÓÓC?÷\õÔ̯·eJnŸ8m‰5Ëkû ðû™­ÿçÏ~oÔùÕ¯}m¶Ê›6çù?ùø_~ã›÷'&Œ†‹/óüÛ.†œÑ7&v>ù¬¢|arÊû±±1ÿä¨í)%Éd’¢(!/mG:6 #ÿ•¦h'KFGGy»\† óëƒA¯×›¿FV´“R†Îš®óåÏd2ªªÚíöÒ;)X’ÉÌ+øzž¬mÉuy½š" ‹¦È’jX. yóý^]³Ú2é´`±dÒiÁ"¤R)1#º<>-%³ö $[qÌUɇ™ï|‡ml\“]‰›±[Ó¶´ŒI¥RÎùgÇhm€›nš·8MoL$"7ß|N–W¸ÿüòƒaÐØ¨°t$Øï] —.áØ1ø|Ⱥq÷öâ¯ÿw܃±}»úì³o|äcO¶¶-­Ô+†½ûoÎÿȲlídãë”K¦Ç ÃÈ¿CKédz‰®ëS ëêêæßIg”L&EÉÏ%QÞ Ì>Ђ²´%9“<õÖÉp"Á t ¦j}m훜aT¥¡­íø/ߪ}#—/ßõÀƒƒ}]—G’š$BSuÞ²}×Î'Þ©® t~p¦÷ìYÍíÞ³·eM±•ˆÕE¶%QLó¼•a8E™Qk(h’©©aíÖµºæ•Þд-ÍŸ+q¥“[ªË¾’NËUV‘ˆÛfÛ9-Âu•°„1qŸù €†s5VãüI{{вnŽC.â­¹;wâàAxî¹ç>ýéO¿øâ’Hº¨¯DÖÔùdäʧ"ÂT¤Û|-ÐãTD˜²Y ÚÃ[o¾÷¶`ÿ¨ƒwpžcÙ›5MÓ4µuíZ–cÕ];M]»asm“d·ÛuM5 ‚¤(Š"ï¸ãNUUY–Û±O ]»]s\†Xù”§dœ?rÆm§fì¶52"¥ígçùWgÚ––˜ =ø¦`±€çëŠ×[™äVâ–ƒ~÷»ßýÜç>7“®üþûï»ÝîXÌÑÑ_Ä,²€+%ý óÊÖm²|›Þ®N…ŒtÔY»¦Êm/Þ †aœ?ßáuZâ¹~mÙïÿF÷…‡Ç{¹tóÖ,U¦Ë@凜J‘rÂQÝTå)GTÄd÷@Ðm!£"-ÍÚ}mö2¯Ì|X ~<† ‹Ehlmr5¹A )ЦiŽã,«Åj¡išx»Íf±Z=Ã0/ðϲ EQ,Ëò ¯g4A°Ôo«·ºgÞóa•R^Lœ®k†‘„M­/ºNÄbóUÐ͘¸ùS~vÊ|*^ÚÔtŠaº*Øáòd>ùç™+’$ÉÏþóÏ=÷\Áo Ã8zôè<ÐЀ?û³IªÒRɼT¹1ËæÊ¥^Òƒ)¥xÕ™©o¨ õÇ2jÿ¥¾²;¹pæã'Ît]‹GÊEŠž9ñƒw? i4^þ âÀÀÀ`w4­ôw—yF oÉÄ£}£ñàH0’ºÜ[¶0óa5hKÁg‹],9±Šw+BÙ X¡ÐÿðKá…˜²¾Ølú¶Ý›m¸™z^é¶¥y­Ä娭EåòÝ×ÖÜîU›=?·7Ÿ¬3e·½xÚ+¯€ã¸ýû÷¿ôÒK¹¯”‰_öý×}è¡OVvÜ%l»$øjý‰¤ææ¥äz÷]W –Ö$Ï<²À·n½þÆëwÔx,?;±VyþúªdRu[ËO n±Zn£Ëî@™g¤ˆ©P4áqYIÞ*0°{–&?þjX‰ l›[V_MÒHš$¨ñ[‘dH[í‚,.¬ʳ-PUâ·»º¡¡MÓô®®¦v»0ŽDÉ$ùË_ž^nú--6<žÊuW_U…B­r+q%æ=*HÙmׯÇïý^2ë5¬ª›4­ë7ž»í¶[ƒÁºÓ§ÑÞ>ÚõG·3ïþ¿~çw*9î¶]8ì3¯Ùím›çëǬYok‘zÅØ±kç<{p×}™'ûožw:v»ý£q$_Vƒ¶”Ïð‰áêÝÕÔŒ*FÄä`2û1UTÕŒj­. tË YŒˆŽF€ôhšèU(W¶’Ò‚Á÷m6ç¦M{GFúƒÁ«[†-²õÅ´-Í Ã0²‰p²ÿg_â Ã(z0©°ºš ˆl_Óë—Ñ-0Äq²®7ÍRz·Ë]SÇB‘ª¼Wê%×<ŽG"Ñú™¿oÿû®Û/>ër!ÏÔ¥FÊ›!:{Ée61Y¬Tm)Ìðn>gÊ‘¯Yü–éF£è¥(ïæ­ÕV9!³vÖÐŒüNhž¶ÕŒ7aí,I¯†•ÊÙ)Û¶”#™Œ;w¼ªª~ëÖ::Nɲˆ…4öÄ´-͉H$’U5E1 #»)G*•Ê®ÐåÂá°ÇãÉ/)±šªªš¦q7{µiÝÚÜnôõõÍTM×uI’²™i&z[¾Ž†º*G™d<îõ¸#‘ˆ(Š‘H$REÄ”üÚ¥F£Ñ\¡¦iù‰iš0Ka¶-€úzzÏß_þçãŸü£ÿÎìlo­Vâ‡ÔG~ý¿ZãñH$2Þ– ˆ¬Ûªª¹¶ù…¹Q²…†aä§G"I’$Éüqó Öœ^Çð<ÏU"'µ‰Éñáîyìë—m{àû–Oÿ¯û³Å»}ü_ÅÇÕ4­ì¶ªªfÛ.ó‰6¹FX©¶{½=«0MW•ÂáôX:ç¸ë‹ekNÁÓêÉ3¿%§*e14#1H¦FðeÇ•+W*Ø[GÇ©þþKÛ¶Ýpçmt]ÝâiL‹ž\¨ñ…ó§OŒEЄť“ñc¯¿~¦³HœZ_÷ùÿ|õ®K=³W;wúäñï÷ö^ž½ÚÛ¯ÿüÄÉSýƒ¡YêÈRüÝ7ß}÷øñãïÍ–u9@RtuÕܼ*MLL–'+Õ¶4 ŽF-\=/{ÝÐç¶Wkg9çµbû•å ÛÏÒéÄéÓoÞ¸/oæy£§ç¼®/ø d[²Û±fÖðÉ©Û'+,¶y ÕuMN{‘¬’ªª¬ß¸‘¤‹ÜMëZy‹‡9—D–šº·¬Ù‹%_ÓÒj´Ë3{5¦®¹Ž¤(ƒX1/{¹˜¸•¿Ûš˜Tœ¬-13Ä4æ«Jò}ÂaOëÕ(ž)V¥,E\;ªÒ‚Aüð9w8q†ç-íí»ô÷wÅãá…oü– œœ¦*­5ÅLœnß,:ËØðào½Ýд¶©® $ɱôÐÈhuÀ÷«_½¾mË&ŠåÒiÑÂQ:Ae2¢…gA2,%¾ûîéÖõ½—ºöì¿…£ ¨é5õEc9K]ý¸r]!K4¹˜¸eßÛ‹·ß†Û=žÎ{ÑÆ]ж&&gkKe v3Y²ÆQLŸ;w@}}Kmms:¼|ùÂB ç ÔKz*e>^ u-AW.w_:ûîH8ž’4ÞîþíÇ>­äKÿñ£±h œÓcç, âi…`­6F—¤L2©?ùÎ}·ì Æ›«ç½QÝŠ‚ ˆ¡¡¡t:L&s…š¦å[PfÿX©¶—.á­·4E¡²›Ÿp¾ò¢¨¡¡âm_fŠ¢|>LL–škB[’bÎÉM1;™,[·µv\¸‹¯ tk[ÛNŠ¢»»?Ìd’³v07’阦™ªÒ¢róM7€¡«ªF³l$cÁnán½ó€ËësÚ-A¥R‡Ý @L' ’–T}lèJ}àš{oÉ:w§R)KÞfx™L&óùÙ?Vªí–-øú×—`Üy¶51YZ® í¤IC7Ré‚9–L‚wÞíœ^˜É¤::N¹vm;Ï[ãñpe6»JT¤ŸkT2nŒ•gÕ`Y:•L€ÕjÕuM7š"Œ Û]ž£RI™a(–Ï9áõNÚTÑëñ¸îúë²¹+?ILd了&Y’XŽ x=R&M[­€¡(j6./ûU4æ›À¯Ú$gžÉù<󕃢¯ñ¶&&KË5¡-1VÆÐ e~Û÷¬V𛿖\.YÎîûîûè®]/ç;Õº¾’,C+~ÿW¢¿‚J¦"cƒ¡d :W×XîO¦26—‹€a€ÐTÔÕ×ö_ y—¨ÊrR®© lÜÔ^ú(cc„$ÇÈ@<}òÝw- Á8|6Jí Çqœ*Ë|UÕË„ƒCñ´æó6n\¿`罤èÊñ·ŽïÚ¿Ÿ-Ë=½ëü™êu›œÂœ÷ 0 ãô{ïoÛµ«¼Œ(ïŸx§uÛ^_ÎÅñ7_ß´÷F?g™‘‘ááX\Õwm™ovl“аò´%MÓN:UfãÁ2ÛƒóÝŠny¢iÚ¯ÿúƒK+C&³å·~kiE(‡ø ߤÃhhàåX—Ç]#ËÐTÁjon¨5 =-Ê,M‚¤‚ÃCœÅ²}Ïþt*Õ;0вi ˆ¹…—úýE V¹ÆëeRm³ k[T*-¼¦jR:M«‡U°®['Xa,xåbÌíúM"žL7–·¹½¡kª¬j:UVº]–!É´/gñÔÐ5U-ÏßHg2(’iRaºž¾±õÐ1`ßSGŸhyœúf{îÓ5ÌÊÓ–n¿ýö¥aõpÛmóÞÁÇdÕ‹¥º¶ ²ë^Ýú‚äMPæZãÖ½Æ]¯÷9w9t"û»GMŒB±îl#m dx ü!–3í&vÏÁ{Ëîóö»î™GÛ»Ën{Ã-w•Ýöž|¬¼†v»½¶q¥›ËÐ3_5ɱëéGm~I;z [þÈdI®uµiåiK&&&&&&&•æâùcûÚÇuÔÏh–VšåÆŠIïfbbbbb²BèzúÆûŸÅ±C­E=~Ž¼ïØ ‡³Ò‘?»ïáƒË|‰ÏÔ–LLLLLL’®Ã/{ìkY—Ÿ–ƒï{öÇãúű󳞙IA*ÖÏÃx9ei¦áö=õähÙ°g/”mÌ™¥ÿÌä×41ôñóÑòÄ×W—V„²djK+Âhrs¾–!/ÕsË÷»—Z “ÊcÞnââùcxöþñ•«ÖCÇŒÛkr¥³¬½éçÀ“Oeõ•®Ã/à©'ÌPm¡O§TÖ·ïËx0«.­ e©2ÚRwÔµp.Ûs4çk ù¾«ò4ËÐf*¨™ºÔÌðÚä±—´«Œ’<£M,Ä={IúR¡~ÆÍ;]‡_ÀU­£Ðp }:%qñü„v•U—ž^Ê’i[Z޵ïÙoNЖzôèɯþÆ÷»[nÿèõ'ÿãH/àW‡¿·ë£š+|‰“E •Ê2%F)ÿãL÷´&“þò‘·zt ÅC•GËGóÖ©ò®ÛxŠÇ¼’‰¢ÉM 2½Ÿ‰ÒI™# —«qõ8oÄ‚ Ö,ÚÿDõ«ç±oâO:¿N×…³+EYªøJ\%=ÿ'\èÑòÄ3³Øé®:á—_X\òü ‚iSŒŠÈµ*Êò0ç+¾ºž~äÐô‘&w»b:Æé>røø£_z¼Ö8¸÷{¯ŒxÞîw-ºç[UBÎèü~&1a=ÚýäIœí.à®T´Âõ_ÿÒ=pçŸÂÛ]Ýh~ü«Ÿ:þo¿èðò+ÿxýÁ»WÈ¥.…… •0-F)ïãŒ÷´&“ÿò³Ç-E­‡Ž] ­ZÍñP‹ÍU³_>«Î7ñà_TZ[ª¤çÿæ s½ƒJ ¸êdVLòR¸jŠÈ¹úω% 0çë*Go=„<ñ ¬Ô€Žqº;Nâ{Œ¯…múÆqÀÚ/ýû}þ³,ìg:/Õ3Ýà4§ ù¬kÙ›=¸çîϼ}ø•.¼úâó{ÿËíkKo¥° ¡RE™Û³+WçÈãÔt[o‰¬ðÛgј0ãLfµí:räÛ‡V޲´ ;Ÿ<öÒt+âg4í {£=þ Vl'×õíûp~îC·|xß¡y²ý<üƒ¼Ð€ÉòtÍÔy!É‹rìüE ˜áW½(“îÿæá§7?»ïáÎE¼)ÌùBî „§Ñ’Ï×üyôÓ××îünoø»ðê›?ñÅ»ÃécmÛ.tL-|õÅçñè œJ®0‰K]ÇÇn=øè#ß>òýöïíúè¹æÒ¯*qÎÔÏìÌíÙ5QçÈŸÅc/•ù»½ n“2(¼Êg´´‡v¥lK•öüo9øð¾\@e¶›õíûÆ›t=ýÍ™ÂÍJ hÙ°9gv>òãñ®æD0ÁÃD«|Ëv–U€€9_ùW¾ ª´¬ækþL,´Ýù»_ßû½¿™pšî}æ‹ßï^ýâU7êµm»ö¶5ç7)ÈÚ ­˜XÅ{õÅçsms‹k¹Âü® Wèúþ½\óï¾uüÉoücÁµ¿•È"…JÍÆž]˜Tg}û¾Üê[î~œÊ*»}LL*£--”çÿ„1ºõ6´ å‰¯<‚‡g4ÿ–pà™\ß?Æc˜¥fñs&ëM<ÙÕ"ƒÀ±C­3­5/a€€9_“çëÈŸ½:3y¬è€Ž{>ÿ­ëŸÿD6*­ås?{±õ«›²‹n·þGÛík;È•4ïþ·ƒ÷¥æIM ÷ù­ÜâÝaŒ¯©­ýÒw¾…oìž\˜ßUá Sx{¼Â'Î~ýDÎvÏÝŸ>óÀ­…›¬,1TjV1 >»¦1í/¿å‰L´Ë»ggEß>&&@D£Ñ¢•z{{·lÙ²Ò\3yœúf{eŸ®§ol=ÿµâöô3gÎ477Ïô­9_•façËõ罿_(ïZäå¯z¾ÕrâµÏMuNêúþ½›ºž”¾uçbÑü?.F¿R?Ó·æý5Gæ{ûeöû«R˜ó¾ÜXœyϱÔÙ)¯ÏÿYþæ|å³üçkþtÿÍCy’&þ-znîî#‡O¬Ê]ˬ¦ðZ¸}LV%yy“$©iEQ•¿å‰£Ú•ïveräÛ‡Ž=öRѧ‡VÌ1Μ¯Å¡Róåäɸ¤;¸¥~u)ÈÚ/ý{øKK-~õ7OžüÌ‹·.ÊXqQŸ½ÂÞ_EYE7`‰·OQŠÞ_•b)çÝd‹6ï9JZ‰v8UUU‹ IQ‚Á`, 3U0çkYQt¾î~lwƒõwö{S*“™øþ‰ÈÉþÔsÍ8æýµ¬(zU sÞ—‹6ï9¨¯|å+E+ñxÝñó½$W%Åm›w^êéðêx%œTtkÇÉ£56ß´{ëRŸÊÒÃq\}cSýÔbº±©ajÑâúÊ];,£ÝÈÐà©®35Uξ}|÷æµ—‡Ã5Mh]<úæ[4IÓ,»¹IxîßÚèµØ<¾p(¾¶­±ãÌ©_ôölÙ¸!‰‹âitƒb CsÚ…sç/Øhƒs¸{G⇶lOŠZz´7m?ÿ§mí½ IDATÙO-µ-^§Åh‰û?G¶ni>w®/šÊŒö÷ÿþ×ÿÔáp¨†•´î_½öéÝ^¿¶åý·_ãy[(qÖÂ’$5Ú¥ª~·ÀÏ_þϺºšP,ì=§dOwÅÛGB§½þ€ÓÊ+ÉпüüÍ=›Ö}pö¬Û狞ÿ ›@,)zUƒCƒ‘pdó'?þáûÝ@ùÚÒŠãø‰÷}Vò|÷ 'P'gO¾÷>Ï .·;Mô_©ª©½p¾;-+#»ÍSã"±¶±^qsÏŸ½ÜÝé T×|=ý#(šJ¾~¹oó†FY'Â#‘Þγ®ÚµÏŸ·T­yïí×)‘·ð.Š =ç:úk^9{íµÞ¦z×™³‘õ¾Ñ˜Øä·.õ%11©<Ëëg2 Å£a¥Î»÷ÆÛÞúÅ«7íj?惑ѸšŽ\¸Ô½ç†{ûþwWç_M»Ûaùð ì5¿ußöoóO{ºûnûøÇÿåŸêu;wîØ²Ôç±ÜéììLÄb¼Õ¢*ZScýàÐp,‘8Öjµlذ¡”æ<ÇDb)Š0l—"‹ÃCƒn—3¥àúÝ;Š6W¥Ô™ó]ªªZ,¼®ÃnµdDQ3±x|ÝúöúÚªRȤ’ Ï+²ÚØÜ4|e`,V¥¡¡¡µù¯ôu'ddRq–¡YN€®¥“±P,I’äu×ß Z¢š.@4¶Ú횪ÕÖVކ¢±X*#®ij\¿¾¥hóEcýæ]èîÛvÿýáH²©¡ñ'/ÿê‘Ï14ØSUÛ 86‡‹$Éš€Ç^³®¾Ês¾³ûº=»Gƒ‘G?ÿÅ+}—ÖÊPÐu0(CÕ(‹®Jº’ÙyëAZ ^ÀúÆ@œô4pÃîÝ)QpÛ]wó½ïfáòåÁ÷ß24SÄ”ËÂîºá¶ËÃÁªLªæ†›h }ûû MJÄb¬ÅÎÒ$A´ÑHÒërضîž~¯C¨Ù¹WWe¯ÏOP t5»–·ãú›Ü ­žò×Ô{½n‹À Ö56^îév{<‰´Øyöƒ­[ö.ñu/—ò|‡o»÷;퉌ba=tüÞT:CÓ´aC}úÃê#¿ñ²ª'¢ao †2”úÖš”ÒAF"»/už­jÞ¸¥}]ªÑ;Œ4?ppdˆf8‚"4Í EL;\QQtõúd2U]…#-ë[ %³GÒV6™o¹Û‰Äo·°$EZlÓzv†ºß:öÁ®=Û ’‹ï¸ç–Nwº]B4<:x%½~[ C£#ášj§ÁÚóVºM–å¥-©´mû†¦šµÍ5¬ÍÍÝS_åXCZ/užÃ¶öõÍ×Þ|C§…‡þÛ£o½uÜSUWuïƒí»÷ZòÀÁûÛÚÖ½óÎ{=úH:ÔóÁé³ûvš Ó$4M#òV'3™ HRÊdHŠJ$“Édº*àÇ¢š¦çÛ6óŸzªªæ>² O$tÝP5ÕH&Š´X¬HšœÔœ ˆÜ “ 3é”ÕjM$Ò†¡ žøh¸ Ãk€·¯j¯¯ :ê-1Fl{èFQϺD5íGBÖa{¬»A“èÁzl„SGü¿ ±¾èÀß]ÐG³.èn7465eeñX<Ä0±Nr@'l„g£á š À@ÔñÎ8@2ðZý¸ Á¯!Ö\=Çp„­Õ°AEus£á2@¨àuï„"LôF$Ž áó®ÌÔ‹V°Âžò§¬<.t^hY߉D\.—Óé,£‡¬ç‡௚äôºfÍš«¦š›šš¶oßž=v:µõ²^b³PUU3½°¶¶vnBOãZˆÉ—e™ ˆªºúúÚèû'Þ¬ÂPPijÄGúΟ=ÃùêùLŸ’àOžï±§tÑ>šrW¹ý5>Wñ®W†a°,[¼ÞrbyiKÛ÷îß>q¼¦aüö[·¦@2loÛ|Ï}Yí®»î¹7¿Õ¾ýûÜ{ߨv/„`š,ö‡š§ú¥®Âá°Õž"Œq³Mkkkþ·~@mM5I’²…Aðü¸£¨(ŠÉî^ëšñÂꚟŒ¹æX–Í-ó_ r‡cBߨ±£  j’Eån§p8l±%sò¯kYŸß¬ÊõÝ+_€œüº®ëp®_›ýhu¸¶l*ðò€&IãËg ÃäÖ(C¡hsø‰ñ_×)0PU  n²A0Lq3ÕLº–ÎH~‡]–e½¶äD„ Þ§´ ì@ôD†0œ†Þ¢/T2Z Ä0Ad½A‡È.$ôZÝàbËB"ÈI£Ê0ü¢ $Âðúz+ÊkQx‚$½^o*•ZjYL–‰g‚±eÇÆM›×$emC*c³ .Ÿç–;mWº/µÞôñt<&XƒØÍD*“àmîùf!%j/™H4ãõzƒá¾¾È/<–1'sÐ Æ#PZÆØXÐãõjš6x);ùŸu¿v'A (Â"”Ò> º\nÛÕùÊ;±0W㪦‰$Pb¾IÌHŠæõz£±pwègûˆ“~PÇaøK¼€cccqér:yþW»v3.[éòÇcQ–·x½¾Á`èÃþæ·ï²Ð!ƒð-¢Ú”H$æœâ…V¤æ0GƸRhbbb² ”¯-Ù¼>ç@Œ$àv»¨Ôh.r$I( £!eÃ#ecEЇJ#å€Ê@¡¡’Ð :H´ V­iPIXtXEX%X2$p2X´ ‰‚…„NCe!ó ˆØ” ¤I22Ò×_?C„¦¶=íêÅ^¦.@Ù-j0ÎT» Q2’X-)“6ž ài©Ó5mdd”&‰˜®…äôÅ ¨¹œ=ii³…3#fkh"ªIÐ $è62 `@¸y®"ôrò‘ÀʳsÏ|Ç£Ž(Šf"“,Á¤2“¬ññVÎÌY°\(_[âmž}û³ž…ƒq†•DF' cCREAã 0(2Ä)D}P8H,䬶¤ÊªJ)Xã Yp2X*è „$l ØÓ°d È`%„h(hYUÉ‚´ I Í@ Ŏ¤ I"IFF†2ÝiJi ôb4x† :;tö$l)Äê$l  ô,ñ½dï01Pr2Ô1˜¼iϦ¾žg ÖÇk¡Á+cvÿmwÞ«¤#oèä‘P8ÉêØ(ˆöDë¼å¬•Ýá´;œŠ¢Œ†‚~ÀeÙo¥öyøûä™ÉÖlK@lÚ¼EQMÓxRölnðßw§f"˜Nm}ƒa誦#÷z«öØ- ,a8'™è¦å8‡$V°´mX¯(J,ò¸k,üZ7{?,Èó=.º–õš¦xް7»wïaü®qùÛ'Fž9ŠÎåñº…Ê„à¢!Š€ ÖAAÑ@eµ%¢) Ò.¤d8H4DV_IÃBB÷–DC ‚–Àeõ˜¬Â$S`!`Ë*a¤UÐ$t’ ÚACµÀ°"mG¸ib¢Äõ e„¯ƒ0 6 ézÔP¨C×AÊ`³jY άi84¸R°ª  ’žÅo6?£Ùíkš½$ÅîÚ{€øX¿­ª©mM EQëÖ5ù<à CcÃ2çÚÙê¼2«Èe/UU"‘AðG;oì0W×ŸàØ˜ÝéônZëj›Ð«æ¢ˆ™tZT«-‚ÁÛXc®Ãkš … Âð8¶³ÈùVÏ¡DnÊÒÇÇì§osWç‹þ†¾{Í65ŽÛ0löñL<·¯"—½hš ²ìÊdœ Ȳ,ç«€ùE¡i:kÉ…³ÕÔÖÐoئ²¬.˘§Ï¢iZ6§*I’¹ãlÙ4Áb,°d2^Y’$#K¶s]×u]ÏÅM,{LQTuu•ªª©Ôn ‚9û ž/ÿc¾`¹˜>—Û €ÞÖªH’(ŠSäÔu='ÌÁ²KÌ Ã§$yEQQ`†ªª¹(•ü+6åhš®H0K™+qK®--«è4Í•¸k rÇu×Ñ„veøŠ×NŽ€¯©å ¿ÙŠøP&“l,E Åäá+òÆê@ú«¼¯¿ÎÊrª”¤l~§àòÖqv’ ·ìØ9<±×ÄD˜a8žãwìÚÕß;Zeãì¼@X\;ZÛxž\Ó°Îhài8.5¡žªk@MÉq‚]SÛL%ùq^ãT̶*(Áj€Ôðï:+öi ²JÌDØšÎA„øO}dN["' <4T;„–e˺4eu¦¬Ú$ƒUà8 ”ŽãŽøœ :; †$ Í€ò·~úÈ, €ÆN‚JAËêd¹QTÐ ¬ N£‚ÅU•V,˲ìx"–T2NÒ|vï°d2iÈfyI&“ª¢¸\.²$ÚlW•@GÕD¨-°q`S`e°ÙQ²1ঘ£²v ”ì@Ù!(`dˆÇãe^CWÔ‰—EÃP&›Ù3™Ìøÿ†>å+èjF’¡kQVUÕ0ŒÊ&òbX–œø±Ï¤’‰äxN<–es醱ÌcOÜ„‚BÄÈðpîûÕô“°Ùì3mfžk`dx˜˜¨Æñ<7±ŒÅ ÂLc4MÓô¸K‘™(¿*3A‡}&Ï™IŒŽæÜ˜,V+=±À'v†u4ŽãrKo‰h$#)¹ò\Ï,Ë Be KæJܵ€¹g’ã½ËÉçÞ}îÑž ¸Ô²˜\¥|Û’*§~ñÚ»wßuk$E‘ÔB6È"ÎÙÐÎC–ñ „LQ r"¢ª¶~P€ÐÆ#ƒ£ƒ¾]‡–€’AZFÂC@g¡pˆpR€Š$à0pÁ+QŒÐˆªÕI!ž*B±ƒJ€oƒå, ‘ADA©`Eð#` Ð! è dd„H0$2<c€ª"DASÀ̾wþüùP(´gÏžh$BP”Ïëîéº$8½·å¯o­wuŒJkU…ôÅÚ›±„Ä K‘¢F°$Ri‘g‰KCÑkªÕІÖ3‘hÚ_ "‘ˆ‡‡/{j[z:>ذiÇððÐþ›n({¾òEÏóêÀH%ST:c±Vkñ‰\s‚ ·mÛšJ¦HŠTU ì%¤4t=#Š,ÇѵqóE–Ri™"E»ÃISE4xUQdE N°67ÔJ’ C× #“ɸ\îœ.8«üÏsrò$@U4›­ÈÈ>€Ú†¦T2•Éd’PeEe(7ÇÔ–VæJܵ„vìµ7eؾgGzl˜ 4Øiåô¦©šJÒ´êö&R=Ý3ÒXå¾éö{ljkI„‡® Q„^™…‡£GÇF $IoÚØ6ŠDã)«ÀV[·n-Úü½S' ]í»2 ]ñø«küÞwß=Nª¯¾åwm®Š‰#G~®ªŠhŠºqóæL"208jµZÖ¬Û°©½HhÆè`ïñÓåLŒ tkËÚ+}Ý oéÖúìkZ·oX[$µÁÑ£Gƒc# Ф6¶·ñX* UŒæææ¢Wà½S' M郮x5U>ϻǪ«=vKL4î»÷β£Á:;: ]¤!E†âzßí÷yVjLœ‰‰Ia´¡ašç_í—cç;oùìB—ßÿÕ±?ûð=—ÇDšaÜÖî %dM7ðÿ³÷æqr]å™ðsÎÝ—Ú«º»z_ÔÚ÷Å’,ïØ`;61`@„ ™Lø…¬H2ä›Ì—ù’LB¶! ™™–«ÁBð†mY–-/ÚÕ’zï®®½êîË™?nw©%K¶ZØ’ûùõ¯·ªî9ç­Û]UO½ç}ŸáÔøL£aß(Œ”jZÇÀ1ãäD#‘ùðûßþÈ÷¾3:ÖHw'ÇU©{ê6ßöŸ{jïÞçüî¶¾Ž¾òý§ÚEá±göwŠþ·úþ‡?úѧùÁÌñqÚÓ—ÂÇz$9ܯ„Vºmå®Ýë_ëËòzÇ¥³¥t.ÿæ7ç¢-‘ TíhZ(µ¡ ­ÃÑÑ”àððHÔ¥?†`=ÒE€ƒ{b7T!hT^í@*‚‰="‰&<|V¤Ni¡"!ãa&¦ F1¢ )Ààƒ·AGá¦ÑU‚ªA #22b$ì4‹PF"jy‹ºê$8ŒH‰À…ØD]@N„ëAßê½z9ZŽ•’ª­\‘¡”Z9ßâþ–·Ì_™D*·yûî¨híÆmëy‘ã(óG'fßr×]'Ož\¡ó6oÞ‚0†0ðŒz57íhœk­¥Ä2[7ë—Ü•mš&Ï,”amß±£¥Ô÷}I’©R:fŒUk5×u£sÛœA`†°°O·qÓ¦ 7l¦„”4jµw¿ç½Œ±z½Þ€çϨU5šMAçopòm·Ý*B$nî¹6áú·llÓ ¢ÜšRÚª£Zº½ûæs‚À1FÑl qAšFS‹%[3‚m™1ÆŒz]\`½ OŸø~ IR²TNgRŽí0M«5œã¸Ö_ß0 *Ìùšú[(a ”6jµ÷¼÷½A„aØh4¼Ep©fì¢(P*dÛÛf&­žYÕã±Xlñ%½Xe¶t Z**‰Te®ÐžÏ_UÖv˸Lp{n»•#áÜÜôºU+©ç´®ý`ÿ†éÑã©t@Nþõp9d¸uU àú{b™¶¸®ÎLÇV„¢Ó“k×ÍTmJø{n\µÎp(§ˆ„çxQ·ì¸®9§ðèëéÕˆä·õå5¶f媢öu&+V&u cil©Vš}þà‘d6¿nÍ0GHëì^¯«a½c.¤Ìððçàˆ˜Q ´Øq¡ÔÑî(÷£ † ­®4̇êAˆ$š4"\fÔ^€sá°j¨æ1Í!H@ŸÃQ ëE¸‘Aˆø(ÆÚ1Tá”17ƒŽ&$ r´fC‰øY‰BE„,ªg²áñp¢›ŒÌë-®yr¼¸b¨wüÔ %‘˥Ϫ’Ó’mçlÞ´®Ìª5kZwªšÞzxxÅ ™³Šr+}%kúüVÎðЙYyAL—èØì8Žajl†²y Il•׈Œ±t: €’J&[Û-¶ä:NȘyø˜¾q]ô¥¥gHd25ŸTK¥R‹w"ªÁÂÐ ‚¹¦ÁÇù–ÏZ«@ ÏÏ_EÓ± pNü¦i*út+~yQýx<1ïËS·fˆâ÷}4^:’ܲ!*QZôô9ÆX:›/f’$©5¼Åu¢ XÒâý”]èéG'/~ li`p¾GfhÅåiŸ,ö^ (—¦Ý²5zì…›ï¼Ë¨VZo˸ÖÁµçs²gŒ;u ›ÞîC+-7 I@¶_¿;º?ß•oåÏ;ºz:ΖÇÍw÷ä»Ï$×·nÎ2ÆV¬x>ßÓ`õÆ­ÁZŸpó*ç×&^Æù°„×§Ý,þË7¾·aÃêÙ±£åªqËõgläãñx‚vÈ9ø IDATiœ`wb €=ÀX}#wêM' Xb<¾æ_ÖšLšFR…â"3ŠfçÚI6ÐÔ1O¢Êîs:×hÄ›Dµ “|xS˜¤™ö}|ŽúD©Èý_ê¯ÙÔ@GTº\Åè4ò jk‰ôÖ´<|¾ ûœ%X'Àôôt,+žªØ¾ô:¶i…ÕsØÒëFÃó›6{^AŽ`É‘7 YQšCyé(·vKdï5 Ûð‚i)éR’™FÃ<#ܧ“,Ar©ÃÛ1æŒØ¡ãܪA,ý3©ÑhØžÂa,ÿ±áRvâ–q5 =ßOE1ßvƒÌQ9“1 㵎h¯ H<•ø+ÖßOÎ~Óã–yù%a WMÖ³ï¼÷Ö}ÇfS™üÖ[?T¯×µ°Ü€TS¸”ÏÜûàÆìêÿÛvÂÉë§øõËüé@ù”\'ÆÐ‹…®´¨ý-„BA£ö´¨C-êVãDo\‚¹v4»0Ì‘Dýà‡ž¼áÓ»`+•vçéOìó>â\6JÕœB§MFÀ8! üâ%¢ƒˆ6q<8 *['åóy´»cîä\¹0Å •®š¤eaz²Piôõt…¨Ÿ|&¦Ž´ëwûl\$ëÀ8Ð& Û±(ãñ#/2 =òðÛ¶lDqîdqüߎ¬¼ŸÂ²! b'«7¨"J@)ŽGD‚ dÏQ"fă/>ŸÊ´%S)«Þxéè ¿»sPå‹^8(R‡Á§Hf1*‘ a# Œ`H*\£Z>22ºzå ê³#“ûbê‰ÎØý^8.q+Á†e9P‹P¦2X QiX[vl_|*•JP“Ãt‚$lâ‘Mf|–»ñ[Ã&|RÛÃsǃ⮺úT ÈxjHL @Ë"W‚Â#U˜QbI…©ÀŠlR"BS ìÙ‰)b]å&wN|äÏîuüГfS«>yóCw~~î_uߎ¹kHðhãðB̤ Dbß ‹üædØ‘oÍ„€Íë>«‰Ü¶-çê¾íÊ\ÞŸàLjl{¾-ßU«Õ\§)…²Êåxª{¶Ê†Œ„`!³)QBF(õÃ0$ ”„7Þts£Ñð\”§³m1N—ƒ0äc¡ÆBÛãD>aŒQB? RPkÖm|Ïvý²ci¹!žN¤¡Gˆ¦„ >c2¥aÈ(!ð(¥ÓâÉÛÒµZÍsÝ8—HL@÷P8ÊBF¨2Æ@}Æeð%\T¹³ýº®c{ž/xuQ ù¤Ê)Ràøð„!cCà…¼ï‡  ”†a„Tà"%ŸÎž>Ji­V+u'&é2'RpÄå= ”R„^HB8ÆB¢wrË»a˸x,+¼ð >ZËxýcIlÉô±½‡Î|Ç9ŸÅbQê@i<Ù¤cwÏöýY†U,yêsNðæôŒp/älÈ Ä§Ðå{"‹\ †ß‚YäFUÞqÔu4#6#ÂMÁ;{¸vÌÚøÕÙŸ‰q~C€„¨ÊÛ:ž½ñÅïÍýå»mȶŒ£®a•€¸0ïæK#7ߨV)bK:š:š VVa ™bnH,ËZ,i½§^Ü?È* ©äôèD{O§ãxij:úWgçWVü ƒRêû^! ²ù\‚{“@z%­ÿì³RgÝZ(ȉ\u)%®ëð<¯ÆS™ CúÊEífm¯¾©G)ußMTÛÄØ¶„{·¼Ð,”È¥Äó}Ä2m:¿E¥+€¯ºîY¸.á%™bÙÔÆ!¢.”LµÏoê‰Ù ŠDPJ#Sáˆýz|{BHPäÏÎÅ.ðºR®ºË;qo,+,c¯s,‰-qwßÿÞ/ÿËWî¿ÿ~XFí…oÛµ²Ù¬Éy %êW¹yÏç{¾‹º7¢& ,ó…Ÿ:ø¿>´ËòcÔYÆÃ,rpÊ$<€VÖ'†F ¦§׃»JÁþ-døVÕ"Š$ X®„Rljë¬yzv°œìl¢ËÁˆ4¤W%¡ÆAŒ¨Xä»Ý­¢Á¨£™EXG<Ò[ºUÀ³ kS§g¦çL*(¡5=Sˆµ÷¿NØžEzB»ïeŸOsàdà>ñNãƒ_V“¡ÑL@!Iˆ1H9þÉÝÎõÇš p“ƒšƒ~YÝ>2 í!DIº51.’AGƒÛ G†£Áï€[Þfm~–ëbX Å«€C硸pbÔêO¬·Ö6äÀAÆA—‡í>4†4‡4MEL˜‚ò@ ~/|Nÿ‚óÉ’\u3m+^¿_Îèl³i9^t\­TKÅRt\«V‹Å"Çq”RÛ2NŒœZ<œé'QBŠÅ"ÏóÇÇŸä8.zhäø±4zèÔÉ‘FÓ<'€èÌbq.Z‘çù™©©FÈn6µB¡ ³…ÂÜyãwË0íùø«ÕBa.ZÝjÖ'¦g£Õ ØÁ—£åÙŠ3 :óôÈ /`ÑC3ÓS¦1Øäx¡TyyÇÕ«e?œ¿i4ê33s­‹Y.Ï_Ìf½vzlâŠüáÆ™g¯gDT~©£…ï^›õC`³:?°Nÿ0ò瀓ÀS{'tØwŽT¿q¸4<œŽÒØxŃ þöäÖ¥ŠU;H ëîÛ8àà0úãxz˸VàXÍRõ‚n`3ÓÓW_ñöEc)=qj2.XÿøÙHf;ï¾ûNIS׬ž¯9‰\uy0;Å8jMâõ"vf; 5ÀÈòÿ¹·yßøêƒEÒêçç ÍÅ‹.˜é²è ¶póñ›ƒ_ø3¡FÀüE^¼j¤6£þÓ;›¿ÿßñ{ÿ°¢{ìç4ÀY¼è9ˆ¶="W]þZtÕM¦³­ã ðø…\H*nU0©ZlíšUçOHggçü!åÎ[¬YwF vÕê5ç\@gç…Ë2ó=ó3›;£>ÒÑ‘?wØ4ý ÕUy®\¿?žŒ'ã¶lÝ|1¸AØ’üïíëoÝß;0t¡á¹ö3±9Ž-«óñ¤ÙèÆ“©x2uE*Q–wâÞEñbº¥FþõÔB:ßÔŸ¦€É¯|é˜?Üvû |àÓ}íýÍsÂÆ>œž¨ô·‰„ ŒY'¾»/õÑmmÀ­¾~øZ>û˜öÙª{CÏ‹€ t}ôÁ7ýå]")à‚¯Àeü˜Q¯Õ˜ªÅM£! çz!ÌWUÝ0Œ€Aæ)/«V³O&=Ç®7šÉdÚ0ÇÏqœï:œ¤"pU=Öl4â‰ÄRë(=÷èß~á;º¢üò¯~´#/ϾöÀƒ»7ôï=iÞÏ­qU.—«‰TÚhÔO$)Á?|æ3o¹ë¶î[%8Uþöã/½ûí÷ÈW¦9øµÇRvâÝ|Ý ›vÞD_V¾šÍfŸàønûAöKŸQ}ð>xJ³k@X§3ØàÀåÐTžÞ`íù'ŽÜöwrâDÓ0%Q¨Õêù|G__ß«—%Ñv}Qà8N0Mc®0+©zèš!•7oZÉçØ‘£žÓãíÓ#ùLw{2ÖÖ–]î‰{#àB aˆ±ÇGøË1ÞoÞ±Õÿ“‡>Ó}ƒ¿¹çà»@§é«÷Éu¶öO¬ß²Ò™ô³óäçÿ…·¯Nozqd8+ŽŸ*µÏZŽ~û=7Þòs_{àëoëÿoÿzìo%Pßš>²5ü¼àýé›kONÅOL|îÛoýß#ÒÊ„ 0à Ð쮑»«¼øæÛoÜ{¼ê6+‡²U[Úz‡×¹S/nÞ¼¹dX‚(©"]¿cÏ?ÿõ½åþG€§û7NTêõº¤&ï¸õ†ûŸÞ2Üñg?|\€·ó¦›ÿßOýùí?¼´7¥öîþ÷¿ë§Í™£Ÿøãÿþ»ðÉþ옦Ê+6l=±¿Ù42+º¦çfäDæÆëMÓjÒS¹tat®nK¢|ÍP%,•-qïÙöäø©ÉÝÛÎl»d³Ùå{„'«HXPšÐOÃ+ÂõA XOEà¢áÂÀËÿº~úc_ž¤i”¢ÜR¤ À£,FÜ(ç@2¡r¢cnöxGØaÈU¤,(&TZ;”“¨v£¯‚©4ÖQ˜8&VÛñL½–n–ø‘‚‚I†-À#`!häa×"duˆ`@ó ðŒ‹ô–®ìEÿÉcqI„m›3ssõj%ð-žÐU¥Ù4õ-Wª•rɘp–ˆÀËg`ãã£àÄcÇ›èïïóü@QÔ©©)A('tužIá·fX@©8W©”yA²§· Y)ù!©V«ÃR¹ÚßÇ^yxàû##'E>t<ÊåsiÛ²’éÔØøOÃz½™ÐÕWžajjªÙl‚ dhhpf¦ÎfjÕj*•¬Vk½½¯€Ùlf5Ãö;•ÉÉ"gZ6ÇqzÝò—#»¦jª˜Š'R¹žöTÕ´%I¹DŸ¸e\m8¯‚ÀìÉæ¾ð¤sÏ–äM9›gÅ^yï§ïÛ ø€ü*0 €1Rþðí==â ù¾ÕƒÀcÀ–Õ]UãÞ™ÂÆÌ‘;ÖÞ.¢ðÍ·å€çÞu“€ p@(RTötÆ÷tvü‘;WÆÜ«;;ÚFFN߸ëÖÂÌD2®1Að¾|@‘*(…¡ÞÁ¡¡™±“~xíèb,-…žwË=÷{õâ¶mgù‹Årà=Ï»«v<àš‘E#ƒô1Lg¡„*ÌŒï¡è…‚Ótì\Gq&RñŽ“€@†Û".”HÀ‚ézO¡±ÿ]åßÿ§ÈQBÈ‚ƒ<‹Ý€£š‹&·`‘«|uó‘;ö¶}­ ŠdÁy8:œH“"ŒxXzê@’àøˆÍMè>x/$¶mkÚ«ä*^ÿ¨T*²j–ÐÝÓw¡ã•«xNà!¤%"ày^}l\] A×íÚóò±=Ýó/HÛž·‘E±E4gJ%aá:®^³ö¬‘Ýg½’[Ã9Žkõ—U«UI±¢ø=±çú/ ««çœZñ‡aX9©/,´iÓ¦Åóù.èë=g¸ ­¶¸J¥âÈj’0}¯ä­Ô¾Ø–ø"Ñ{&­%vè×ZRsK¡½s£'NMþÞ@ïæ·ŒÀ@<àð= la8 ¬(`I@YÝs¨Mùà"Þt=â0 œ&$Ð ld`°ïZ¡ÞµÀKÀsÀà—€Pö*°H—µ{½Œ>thÍÚµ/¿¿»·€¦ãìЀd2ù±ÿÐÓ5°ðW~ã·ª@O¤‡gÎìíí°bå*aàÿöoÿÚ…¤r/@5–Tc (™ßúõPBòÝý ¦¬Z³@ߢ݀Öq6“Ð?ty~—¯3,-ñ¢ðÐ×þWºkhÛŽm,ðÆ& ½½]Èf³\ÇN´t‡V€8PHè=ˆ“u„CèÓ`PXJüðð)Âc˜iŸÉ׫}UÐh«.úaàx<(‡Z¼;*xÊâF·6;1%ADÔÐ"épŠ0š?âL‘ÅJ4ä:â.D‰£x¸cSÅޞΫ±Š¤\.»®-icÛX**å²(IÁÔ,2i,Ý¥!ðܺa×]Ÿ¨D#—’v)—ËžçŠêè¥ÅoÍ€b¹ì%Ä`;δ¤%/)þËÄòNܵŠSÇké®Ñ‘#[·oo6„ÉñðÈ—~Pý­;fÿnŸ»aP¿cs;Ð\€[½_¿ ШSÀÇ€`5 §ûµaàV`xø#@6=ÀO‡€ï6’À ìr€ ¨ÿþ¡ðÓwÞÄãð)ÀÖï<à+@à@Ç2mºL0¨×ë†aH’ÔÛ{Q-Õ±ø|s•~üê5¬^ýÊçÇÏÖÿµ,ëLsQ¢(¾BÂù5„€(âÂ|ë¼8+€« K݉“³é¤$J (Ÿž˜(§;»üFŶmÝÖ¾·åYP ÏàyOãÔ:èU À„¤2éþF–ñQŸ ÁàƒypÊ,˜Ì ¢Ÿ€ŒDÆa`d ü­þ'A0Qƒ›ˆø×ñÍØÔÀ¨€6ÈÐm5<ÔN€ù@Ç„h1„Í£C‚--炇î*ªÕ^Hº ®º•ñS3fëìT¯ªM¹H HQÇ«L7˜VL…ìf0 .R<“y®/+ !df´é$ýÖ ÏãQÂs=ŽãTE6+µsÆ5EáÒűÎH?IQ” ôÆë¶i†Bö0X2.ÐÒøòAä 91a“O$nÚÌŵ%ÅÏ‹‚¢(MÇ=8[§imµD,å'Èš—{â®U¼`š†Ès!ˆ¦i¶mçóTûàmIÀ~ß6A$”#6`c€Ó@«kÎj@¸ È ˆƒÀQ` €2pð€ÕÀÃÀ;£ÀiàGÀ—¸H%À<à0ð- ÿõÍwðH€Ð< X€Ä°ø{ 8ÀMÀn ó"_ËXU•/ˆÇãñx¼\./¹ä# Ñlâ2 E4M²]?  T*-9߇ï/5€+erð“ÇÒØ’U›³©¶yÕôtŠLÕeB* ¿|ÝLØÂã µ\ryøXØó'€UX‡ ]Ú}zûƒ!h.WQ‘x§zÑëChÃ@”" À… !è‹wüÅ]ßÿ5F.^%6 ð,TSx-#Þ¡éôï|îm_ÎGMveP šþéC÷J›°;ZÅ‚úhœ¸ëéŽ/iàÄÈUmÙÉ‘‚xµ ·Õ«åé¹J*5gç&ÊCmérÓ:¨I×qL é¬ÀÖ(qT ÐÃТTeÌe ”Ȳ˜‘‘{úé§zzÒ™”96S)4=í€_(s¢ l_ŒN ù !4ô>­‡u‹¨2xš.Ñd^äÅþŽ‘ÇTM—µX^mnâ»~º[Sж·N+!“(Éq(ú$Ã18`:¨ËBºtÕ³ŒÃÇOåÛrœ€Ji®Y{ #U5ÝcаJ m>fD²2D Œr4† B0ÆP" œ.Ë=/¾p ½#¯êqf6O«ä —€ãõkü£BgŽ‹©~±.t¤˜í0B‰"M—ê2!H¯è*ÎÍ4,O“¥‚éZÓ¶kµLê¸élV%FX¡Ÿ§Õ)”ð BÔ£€’’¥%nÄ-ã…îГÊB(E2Õù÷P€Hócëù&™ª@Ï|š›€S€ Û8|x°èà$phMÀÖ»€ÃÀ)€ŠN¿X@Øù‹J{×;ŒßÖ!`!0À¿:·`[® ¿8ô-È””Ëå%§[ŽÇð0Ž¿œzûç¨T*KVÓGw7&&ÀØì ~=cilIÔ3YŸž)ë”xöúëç•{ŠÅb-P¦ÐGàI Q=µ [EÀ"‹\–“‡©#ˆö¼ºYóð®ñ®'¤¨{ßăZ€¡=Oày ëmÈ6d’¡¼}Ĥ tG~)¼¨Ú)rÞhSAu Ž'*u¢hœÌœŽeNé%Ùƒ €„”аé4f,(”h¢ìáµÿ³ïð  zKz&¿+sõédrí™\;€Ù¹j.“IŮӹ[Sòm€D@àüU8‘OÜžnàyžä×;Öt´ß³“… A@$kº_õE²zíºèà¥Z3ÕÞ¹-¦ ˆœ‡Dæ×p¡"*JˆKlߺ@¥2—Mw(R_F¾+­¾ Dœ™ã‚غ}€0 U1Œõ)¹;¶‹m)x‘%¬îšÿÂ{ëù®è£ …ñÉX2³3© Kܦ˜*a~erá͈eŸ¸eü™0Òâ}‘)``o&€“@ Àà% ( àÀîº (}À1@Fþ殦€C€ü ð(ðàÛ[€ýÀ$0T€¿NCÀ*€vq ô9@Æ2.ˆt:].——6¦ZÅà+P. ©TªT*-mL¡€13ßÇã{áÒØ’Ó(=sàĆ-Ü9SÙlÖæŠSÐ),RÔণQ¥è·CFC-‡@‚#ÀÛsd¤Qß|rà@"jà7AÇ0ׇ,€™Pšˆ5¡GlfüŽïÑ?Y3…ÎÈÜ-r—Ó`D¹ ¿:|†#j| `Üüý…w~û_çH¨„Ta¹Y4(rMè4òÌO=,ù&šÁ¹úõ–|ß›-€c©äŠ]!hù—]ÔÇùØØh:“Mö¦6 ƒRBhëâØ€e4ꆓ’DWÖ$Béâׂ ˜žžæšˆ¯RÈ€’3ô5G©X ¼,wuè!¤ö(']|üžçÍ ”p±øB~ÒïûË;qo\HAà2±XÌcÃÙÍû§€QÀ*fýI IDAT@ (s@H ˜›sâ¶¥%v¨amŽý î ÀQàyà6 °,àààÀÃÀ`=Ð ä€ i@:m¥³²®¿!r¯ŠKÉ-…!8+VàÄ ¬X‚Ñøyq)¹¥ˆ$Eù­%–.]¥X[Š·uo[ßÓÞ7|ΖT±XlbIŽ¦Â A#N5óG¢Jq*Œ4L¶'„wë7Ø£<¹ý€oBåá[P÷¡2Œ>à!€­Žxº‘ô¬ÙÏ“çãHpX-‹\¾¦ÁŒ£Þ2â5aç‹.§ª*h¦âCñ!žB³q–AÏ‹8ÝŽõ ĈÐÊ›ªáwrÖ{8M®~½%žººº #é:šË(`G.i­ߌÌÝæíÕ¾.ôööA¸ac ©QÃWdhÕÒQ¤”.þuÐSJçMmµ˜¢Å”z=¸Ž5oµÖÛšçœH°àOÇq\ww·eY¶s½Ï4ö9£Î & žÒ “mcŒaó*8¶å8„—Ç|Î<‘m\*•Š®CgWW¼ÙŒ{Žç0—±0 »Ô]èbŠ¢¸Ôž¸e¼aq^+rÀÀÀ PöÇ€à0`‡ LT•Ï¿0²¹Kž˜’¿$¾­ýØ ` @xØá"QB ¼»‰¼8 <|¨ëËþûþþqE‡o_ݱ.ÝŽ?sXÚ8¤¯<õð —’[ŠãôéËàRrK­Þ0ÖLKT§,ÏMJ§ OÞ¼{Ëb”Íf}ίAÀ|ˆq‘àx"uÊH#@„Å¡¡ÃÒ`HpøO!Øt˜º¹š>àB0ŽÎÒèŸÁ$~júÜ/þO|îý6þŠ!Á!aûà#B¦ÂŒ¶Ì(BV$M©£©ÁP`ÅáÈðîÿ†xà¶ÒM$ ðÈ£¨c³¦"màX¤Ù„^Ù|Ú9˜˜mB¹6rK4MÓ07uQVE`Y–mÛ-X|ìû^¡PÔu=Âq\º¿Õ.Á*•jt ƒ™Ùb~AM{fjª-ß©Ofgד¥y €ø¢‹X©T¢á*岬(Š,0š ?D"Ðh4,ËjI(Š¢( þ–‚ªŠ|NÌ®mÕ +“N`,œœ˜Š/tƒBRm9œ/€¹Ù™x¶Mà(€r©¨(ª,K*¥¢iÙº6_¯·®P«Vôx’£€i4]?L&âçãØåj½ÿå`y'îÚcìõSëÚtk  L.P¾<²¥l¹#¼õçNMüÌð鄲~Ì­}þÑ=¿{û>à(0"ö…ÚÊžÛwgR¾Ôèþúc‡~ïn h~ý õÇë”ç€1›ãÕÚï|©ûë¿Ñ¹ `ûýç­ÂzƒâRrKW"%y)¹¥7–V·L•e™ÐsGU«U7$b6’­ ¨hš°¨{_†ƒ/ÃŽ~Ú`ÛðÞù/áÿ]=*3ŠHË;ƒ"N{\ˆ¶D\+áÌöúH™P[eFQ=Sk!ŠP‰˜Y«pJ‚ÃÃ_ÌÝw‹)ÁIÁáÚp5Pp<ÄHÎÛdÜðûλ<.$8é Jç@”u¤1ÖÊ@XÐ7 ‚ Jíœ ¢x¦_ÎnqàyþB®-%ÇQ2ÿïD3¯ VÄ ·è?ðLü„.",Zå•àùV˜‚ ¶>Ã8ž§/û? -’! „ð­–ÆZ3a¨\ ª„å¸kO<üýÏ}þ‹uÃnÝócÚ‰»x`pp°è~ ø>ðŸ€MÀ¡÷®–Dö›/êÕ_ºýÀoïÞÿ±oåÞ¼^=zêàÿôER·æî\Ó ¢‹§¿ýÔ³ÍphßÔωäW~õºûžÿäÆ;—5PšÝÿÂÀßûÈ#¥† N/­-.§®:WØwà0cÁ3?z´Pµ¤R©Å9òeœKdK”Ó4­+§xé¬R|MÓå‚NÔ¼ù¯-6¯%`!BAd‘5µ°xƒI^Xl÷)Â:a¡°š0£¬·=Èí­!N3´E÷,^bq$6|2/:À¢ù[¿ßöúõŸ±Í¨¤õ̼>ñ{§ØLžy^Ë9.¸]uEQjQœbq®X®DDz¢è :œ’$§RÉó'D[ȸ€£G¶Ig²-æ‘ÎdÄ ÐÅjŸÇŽþ‚ª¦©êЊª¶fV5‘X2Ï®Vç‚ëÕJ©T2Lû•Ï_ÆU EOÜróMü¢¯²,¿N>®x`5p7°0<ð[ÀŸß=tËÚÎØÝ½âÇ¿õóÿ8õ‡¾å‰¹ßü‹{?ÖÉïú¹í‰ï¾ €÷èéÒyBüøqÀüöÉm™­ êQDתeÞÕº0¿Y«”ªÅ†éÖëõééé¥å–‚ø.wQÔÜz­Z-ÕšVÀrnéU±´×§kT,&yÕê@oÞ2jÏ<óÒ®›÷Xõºëºë<‹¢B`¨†°4\ø 8q0–_Í€¯‚×A kàïú{ñŸ?bß÷GdN) ž ǃI0Ô ’ ;)NÉ>N… 3(¥ŸX™ºX |X€lzÇOTÚ7ÆVýÂm]À–·†!±7 ¿ÆÏäu†Á¶XY'mÞ¾³½-ÎDzKK˜âØ1¬ZuÉô v(s2åÄu›wäòiž"Ò[ZÂGŽ\NW)–Æ–ÒÝÃÝÉC‰u»æVë&á2UUeY–¨©Ãåá¨5p ˜ ^•!ñàEÈ€ÌAµ`'Á|P‚@íBO—eÞ±+yanÚéA:„(BÀ«PEøæ‡¾žû?ouúx^Â:”‡'‚Óàiàe0‚*Câ „dZˆ€xN~|Ô·ý3÷à=Îî¯ :4 I„$€Ïcø4ޱí¦z²ƒ ‚rŽ€yÀáÚ£JûŸyFR”±ÑÓ¢(ªzLS”—ž.ÓÑ­ ˜.TßöŽ·‹ü+}kaÿØ£W›¶ ïì¬×k®LT’m+ú7nX÷Ê<³o_­R ©ÀQÚÙÓW/iÏeTMK&çØ’¼Sc#ÇNÏÚfM%ÂñÙd¢03!iIDZH ®Þ8Ðó*Zûö훚œEà…þþÞÉ©ÙR¥& Ô0­áC¯À3Ïì“x21Sæ9O¦d{öÙýCƒÓ33j"wÏ]w\rAŠÓ3Ù²srIÂñ‚(Ë’pY>q¯®±°Œe¼ :N€‡€9 ›·ôdÿ|æûUûKì}úXî?Ý]«Daë¯m+NmhëpÜål]Ë œØ–Ëh¥Ï—\·dh%ÈE޳$—Bùööìâ–\·Ôl¢•û×´³â¹v±Ä*﹉Ç÷]¿{®Û,)jÒAàùjµ*…v”‡+ÃU`é05¸<(ƒäB– ó ØäȦÍGµ‚téžOËóÉYõãÚ$k(¨–@ÜéyI¤nª Z¨ûhÈàyÔ9 F¼–[/ äACð2tÄBÀ=8 X„Gàu#Ý}@6o-ï[=õ|‚ãÁ4ˆf?}ªû“¿d£ Ð#Àó ,Wý'˲Zyþþþ¾ZÃØ¸iS„Ï{®û–»ïqlËv½®^x^€¨"gQ¯œëº­›íù®ñ„çûÄ4%“Í <×ÓÝ- <áÏ›æy¾Udšf«¨¨­-—ÍåU1šf"™y24¼j®0CyAàÏ §”¶ò4¶m·Žé¶vÓKÄû‚ ÊÂŽ|'AX®T}ÏM%b/€1fYV+€d*™Ïç)ãz©t*`tÓÆõ“S3¢$q”¶†s×Ú¤[|{{zLËÞØÖ廎 +®mÝûÖŸn6êk×o¬TkþÂpBÈR+yÛÚçëå¥ä¥x¼œËlé*Ák^·ôª @ô5(ûÎÞÁ+þpK®©­<žhߤcÂÄÞßÿúí~_D•–±$\zOQ„ë^š§S Kî‰ ´6Ž5 Íæ2[:j2;ÐO¤; ˆrW×¼œ‡®ë:kC•ÀV EíýQ?‡ ÚÕ² ð)XmA72Ì@Ú©)×7|Kùüæ#;È>x<ü,Ÿ~ü¦¯\÷™»(9 LePÁQ„-iJf¤« WÕ ‡ .ÄHÕ©C=rm„5ÿøÇÛÿì7Ö¹¡‚râP¦ï{亿ûñëã<²"\‚8ׯNœeY’:KY?UÓUíÜ’ VÁMë-{1[ ÃÐ8|L[3/ãØÛ×ÿò%Z_SZ3,¦;Eäšž! @®mžÄcqª¢èë8g8Çq­á–e‰ÊL?åøþóùé±ø93´âgŒ5­›7Têî:K³»«@ÿBÓßâ+ÐbK¦i–d­‡2±x"¶Ø{)ÇÂÔ4mñð+¢ pY;qáRK—ñÚà'¯ pÉ ÀÍ¿x}tœÊË×Ý+†þü¾×4®«—Þ`íZ<ý4v^ÖÞîeõÄõ÷ãé§±ðMïÆÒØ’Y™ ¤xB•ÎùÊÊó¼£ E_m m‹p"ÝH¢ÍG!‡ 6ºÌ„RÐáƒÏ=)°;Fž½{fð;« QÉìþ›uYÔ<˜¸2ê=¨ °[Mv¼H7<ÒÀô ±˜© ‡Ï!˜E]‡P†7ƒ<èü^í{pü–Ou°pNýìÉÉÎqÎCÑ_ʼn^t:°HàØªÄÂÂ\)×–«•ç<Æç2WèÛÿSS“„¼v‚²î¥þÅLOMÆI§XצfÐÙ±Ôážc•kFÃóê Ép—âJ;55ÉqQKèºO…zµ€· ÕXêRâ059:&èyÊ~ò…¸—Õ·Ì–^Çpl[¤0^'õÝËx­pY¹¥+!EqézKW(€«Kx•ºVýädyúµ¹\úœËS,Õ Ú…ÑžyqWEÈ@¢Vÿ’YƒLÀ0½{±_E€¬Þï¯oŠ?ò±ý¾2Š]Ÿ¹n/öæ0uÀM¢ÚŽ ñÖðsß|ðMð j+VDY…\AmÝ ¤#0«¿°ò{¿·OlHŽî ~wØy6—A)ê°›B©SãP hnàF®ºÁìäøèdeý®dar‚S’W[ªUË3…òÐ`¡tòøÌÃ騩v寬8À ˆ1 !9÷£•ífÿú›XLž¨L>rdÕûo§O‰kÏ2ËÏã@ !„…áË¥%NŸQcÉL:5::ñôÌ$Ú$®¢›cp• `à„ çˆÛfóøÉ±5«WVªÅã3?HÇFòêû\6!`ˆ‘Á L Á(!ç‡^z±»o ®*ǧÌâ³õݶQJéD¾c>~"ðŒ1² ªyÎÞYin¶Ú´ûzºÆçŠÇG&­\rgZ™ñ1Àƒ& ¿bü¯=Þ léRHøk±SG½óð ÏÜqçµje™3½aqY¹¥+e½¥‹Á^Ÿ„<ø²/õ®Z9“ôë&U$NäBÓ& "/övdrm%µF³ÌŸÆÇÇ¢ÑXiét3’$Sò'âQIA6›¦¦¦’INk–ˆ†ƒÑxuE`U9{ö†¶©g¨Ñd2šL7 ÐyårEmK“08ÐowºµíSûz$¼3±ü4M;gÌ  ÿ˜ÅæÐjxN'b±dI‰O»˜‚0}1£áÐðh°¦*C¥ƒ…²”•8”!ðýV$ÿ­%Û™%åĀ˹[K7²¤œ8˜)Py«³¤Ÿ¿Ž™­Ä‚Á R’Ð, (Œ4HZ™€Ô¶k"`-ÌH[ŒC€)جÀÓ*$ a7 H-Í…‰Y„¤ ‚ ÄHF@ ¨*°4HZé&m"D (˜´`& &öÄ0pZH“8…k³l¶B>PM iv˜`L3Ø[‡Ë“:¦iŠ¢§gN—+•æg2[ÓM¥ë@H3•”ÃyÍ÷ÖÔÒš:nhœsÕ/e©k`Í–é5xOZ‡Ï7g=n³åÚŒV‹IV¦+ˆšmŽj›cF0R[#Î*€Ùfgèi7Uz©òªš¹º^“¤(›aúâr»Rçm§Íá\èïʼn‰ §ÃARÔÄøˆ ”ÅbµY—Vóm…}K«e²èÖ’N>³Tß’Áü’ö”\ªo‰¦a¦*ï-ÌòÜJ=M"T3¨$(©sµ0³.`JÏeS€TÁ¢+C/¥˜µÐoÍŽÑÆy l¡ÏE‚bUËb#®ŸH¢À„g²á´©‰6Eá/-ðéôŒ<˜©DÐ ì»ÀU¶J‚¢Õ·T¹€Ø·«N$1cf¢‹ÚgR@‰D}}¬Û‰DË"/ „RqÙ’$qSSÌL ÷=’YUdQR fㆠª,‰ ægVІI­cN†ÃŒÑHc [¶nK—-‘H¬ÛЖ:Nu'Å×@c IDATI2•_FYkò;‚;îÈiüdIÖÀøØ˜·¨ˆðx<ã¤5 >¬få¤'¾i¥&m€H E˜ÑB YkÞ ÈZ½%͈ÑBˆ`µ-ryü3õ–f*^š80Ê@iþ* Ð4$À ˆfHˆÀ$ H‚įYlVLd@Ô 5 À¦JC%Á$ƒÙË­Qo ’É„$‰;Jàú_5™L©È¡ôãôî$I ½ƒô†–­ˆ Yv¦jI±$¤FÐY$’1x3=¹ç uL&$I"™!gmر-ø ‘çâ‚ØE(w› ãÂ}¢()Š4%ýÊIHXpN>ƪ((¡±sô#Ãæ&d2.XAâ$ùrL2[éÂüŠ&^•"×+ïéÉß’Îíc0•—^—jkÜ’,/ËRÅ+Ê®» êûÄåÂâë-!UôwÊêt½¥NcQj€Ôm„ „HH7 ÈV D€™”4-¶IÒˆš‚ƒª€ÂJ€ÊF€U c€R[Å©@P@(@Z€T( ‚H Q É(ÄYPØ™½~e@& "(8£ "À¨ØE`DÆÇÇ­V+•/õtu··çS ÓñÑá`8^TX âäàp·‘ò9v ÒKn@˜TQˆ‚r"bbU•'#Æ2 k`Ü`ß}çæÖõ4M‡û#ƒ¡j ©Ñ$ÉÒt}¥:"-„ ˆ43jœG(Båedd(†b*}ÎuºçñRtÀC!€ƒr™K**&×ÜFósâ+.õÇq¢¤XYƒÛÙlcÛEº„&|b0ˆl2LOÿBG!Ðja£=wßÃqBÅ%•.×–F%žDt¡K-06 €$!–Ák%´±¢"rúæ¿nÃFU‘%YMʲÍç©0kLL‘¢º)‚dA@"0°`¦¸Š B6§{Ëf7Çq‰„ä4ØM¦›±MÁU¢Hä l$`z&#@êá¹µ}»$Š Nö5§EæD¶Ø£º „Í‚(s2²å/¯¬Žãbña³ÖX­&ÆA«>šÀ€Tf ÒÊX ™+¸,JÌ¿}âVÜZÊÓ•8.IÁX(¤(j(ÒS¸o[rõ-ÍFÝÜ —.A[Û"ÈÕ·$óí§ÛÐ.À¦M‹ /X¶ï§Åj¡hJ’¤ô›{IYIú(ŠÇÙíöYçS¬‘Õ2’Ñ@ƒ5²n·!4OƒY#Ìj–jhæiƒHŠØsÏÝ »(kY–¢Ñ(&T·ÄJì&Àh §£hÎXZû#õNg M9œ.»×ëÞPO9,”cº²9™ªKI²¶‰lÊÔÐ>Á‰³M MMVÒ`#IH}ç ÓÓNwŸe‹*ŠŽD( lî3q‰l$²ÍÈo×RäQfù‰8´Å[ÀxHKUÌ Ý3¥,M†yä—$)"ÊXÅš[­¤A%{-@§êveœ~UA­B!"ð o¨—ŸÖRMã:€š2p»Ý‰Û ²NFrò-q\–½lY[m$'ß’$eY¼ÕkT.篃Á`˜W Ã0óú ³&o¯…ùEÑn·;geQT@RÛ-Õ ýÏÔoJˆóz 1ƶ]­ØaK&“©–龓Yƒ „H’ÔF0L4k¬…X$©I!‘ÖqI@Ûp†$É'™L"ñnìIœLrž· mîV« ßVO'ã ID²”ã[p8@Ó´Ûí¦c1R•0'$¯ï8Ï[Ð 2-¥î·’æ›æÚ[Iß’6ãmRVJç%'ßRWÔÕeic0ÇÁÂï<9ù–:;¡>CžÐu˜ÍCþï–‘å´–d>öúÛÇxð~z޵*U•ÞûÈŽ{î¡çø! Ï_înß±m®›íù3§h‹»©~Ž‚X¾ræ$SÒZã›+‹ øÞÛ•wîq3Ïõ-ä#E9Œ§=´<Ç1¬ h[ìJ’¶»‹$I¢(j¹ôŠ,'8.Õ ×5§L&“ZŒÕxžšœJ½„ñLÃX<&\ïN5KÍ‚ŠÇ㢠N Š)a8ŽK&¹ŒÝ±ªŠÒŒü‚L&§e–Äx‚›‘ BSS³>GˆF²¬NŸç8A˜~)™ˆó¼±»$ *ÆÚ±, ñx"u1SÝeIŒF¶cÉÐÐÐøè¨ŠñÐÐÐPoçå«]þ@pA#d`…}K$€ /ﯰy™±–òq%.ƒÁ Ç-Ý& $¦Â!Š!eNT¢ÑèØØXßRŽ%¼) aþVÃñp4¬i p‚—4²ë}}PY™]’†ŽËÞ2Y¶ï§Éb¯ª·¹ Ë­æÌkmF‹­¦ÎV^QEÑ™x:Ý^³…3˜æ+nÔÔÜLÐó,ö¡æuè¹c&HÆ´ëþ½@Îù®Íî’»ls½…[ƒô]iÃá„¶ôh±Z-3¿Xƒ±¢|ŽŠØ][Bhdt¤²j:«¿,mWÚÒÒ9 j§¯+ ö·l˜þ%dw¤võN´Ìk0¦|6$(C£ãÀšÌE3#„ˆšÚ9·ÅM p¨¤|Zþïµm}½soëkw\Û=7 0¦é¢Ö´bF³¥ÔlYPH8R(C4¡ %S,fS,K&g/ž ‚@Óô¬jrÇ]·öWÜ0gt!ÍèD"v»}¾^¹™s+€{ƒ&—6TŽgQ"Áˆ]Ê2Žªª¢(¦G `ŒyžOo¶$OžŽNûLj@'¤B[̶,õ–d¢ÑìËpë×gõî›…Qqb|d2&Ô•€ÕlËRoIQ`rªªr`Ã8q¶æSòxŽ,ï¯d³g)äHϷİF;}çúèø{åMmÃcÖ]«Ih˜y¾ûú˵›v—ØD>öÒ+ï|ò“'"ÜÙ¢ŽÈ,YÝÙßB‘uÃÚÒ²ò\šÍ Ú¾½})ÛânÞ²u)-ö¶õö¥°cÇŽ¥¼ÿÊê:XÒ¼FëºVX× %^Wúy-½-G†ÅbaçIiYñq–q(‹uÙDZô•¸Û³ÍÑ`s€¯hú'e–¸¥?\€ñA’P]=“Ñboª·€¯hzÇ·,qKgÎ,,Ó­¾:: !C1á¼fÍú~ÕÞyc0,‡''Þóc+Kׯkýàý£ëw<øÈ=›:ú­-oÿÏï?ü觬éóGçŽUº}¹Ñ±–™ðû#ÑÆ€@&)I`’¦)§Bn‡#)EÅÅFCÞ<eYVUuéãŒ÷›Ý%nûR«˜$10TU±àò¤Dì/¬n0,98)2éñ¸²Ä—½i6ú»®×´Xùì­×ò¾™/néܹÌû²ÍƒÛ ñxNQá3Ì·tá47gÞneîá ¿õ ¦5k-ÅÅ>£Ñ0OH˜2²¸Ài¦LãŒsJQTBŠwô:VUеL*…-/À‰ø¤d0Ñ4Mj•“U1 ’"34Í%“Šœ7!e¡e1UEQ Åeð:È"—ä—åêáD,Ê‹’aɦI"ÉsÜò(4 {dEOÓÉG2û–¦¦ « Ö¯_DŽTTÀä$œ87ÎW!i†Ì¾¥p:: µu1'ËÊ ‚'`ݺìÁéyšµ–`ßo~5É‹í›7Æ€ šeãÑk²P •^‘uïÿÏh6Ò‡‡ª uÇÒl–kŸ²Ãj³Yó|K¾Y,È·4WÄLÛ–íË"ŒÕj-Y¿ÀÖÝ÷,Ë8 Í­Ë2Üóà#Ùéè¬Ifû–:: §sIÑ?n7¸Ýpö,ÔÖ¼UHfû–ºº`j ìö%  ÉþGòÝ·¤£££³J Tß8Ï›î HOÑH?žµ;J.]Òg9ÚeÖì¹t™«Íü‚Ýn¨²¤ÈŠ2ËÜPE^TcH«LÅy.1«{$–¸qC0^“‰\#á°")²¢\oš!UâDT i»¦F¢ˆFc’(¾nŸ%N“±,{°äºµ¤£££³ÊÄ‚c—ƒÛ6­Ë±ýÄðÀp„¯ò9a¾¾¦"—.=]ˆdGz.¯ßu¿ÝÓ¿óòÆZ0ÐyaÛžûX2§jòï¿õæ¦íÛÞ?rê¡åZfBUäžÞM›6æØþÖÃèðÞsÿ]Ìõõ^L6Ïö;í³.zIy•ï†B Õ-e7ì¾Úº¾-÷&´ÙuÏ{èë%0XœÛ·mšµ¿|qYEaqé¬îåõÍEUò¬íZZ7(ËPw ¡[K::::«ŒÑæ()\Àæ66—«Å§ÂqoA®‘³.—+Ɖ›·n§™\oû.O •ÕD΢UÔÔŠ__ŸÃ°iQ€ñ–17$Õ“$e4fÐÔUô"fvP IR )·—A‚¤L  Cw"ŸêýeG·–ttttVŠ1–•,Àb`MÖRÓ¢nÏ\[U‹¯¨˜fXмî¡ëñj‰WÞÜg©¨ª×|¥gCTiiñ:èè¬z”·ŽŽŽÎmM22ñÝg¾˰q³ŽÎ-‹n-éèèÜÈáäÎgº³·Ó¹Pýø'öÉ·X˜‰ŽÎ²¢¯Ä鬇ßnê8úÄÂB–«û-Ì"®Œ~1W5XXÈjµVT¯¶·4kPé: eµ|K‹øåšµ‹þkx¹ Z.Ö²l:::::· ·ÒJÜÞgý·²ÎíF÷3;÷„cO6$yà0Àáä4Úßן#ÉÿxC—l3L÷L³8¯L?Ÿ6ÍÃש©ãÃÈÏÖº?üðì1ç~ ×8|€ÜùÌ3Òæî~fgÚ@ºm¬££³Ü¬Šµt“îï×ߎÓo¦‡Óo¬³†N.Ûà¶¹q¯Êx¥\;¿ïàòËv ¨¯ö‰£‡öCûÓŠ¢<»ºŸÙ¹ïâÓŠ¢(O_Üwà0@ú9E9´Нï2?‡4<ÙzHëÚúdƒv»Ÿùò“0=â¡ýÓ-»ŸÙ¹ïà~­iÇÓÐ9÷u;öä·á‡Š¢(¯|}ÿ±'¿;­“îWž?¶ÿÑÌoáÆ®<ªM~ìÉ/?Ó]ûðãíÇžeúëýâÁöÇÖ7éèè,#«b-Ýìû;\»™v< O6/¦ŽµóÞg•®ÝŽç|Ü~7îUyÏ¡”kÓhJYvÙn-õu¿òü±ýßÒ\¬µ?Þ~ðÅéì±+]ÚÁÞgsù¥8üâAØÿ¨Öcï£ûáà‹‡÷ÉÔ,×MÝþôSZÓÚ'žÇÏÛþô§_M ™f,Íõ®A›hï£ûáØ•.¨}â[û§Õ–JÓÑÑYû¬•¸e¿¿\»™ÖÖ·^w|±s–'£áÉcÚÉ9·ý{eÀ”’>õÍ’íÖR_וcppyí:L[˜©³9¸þ®§½©nú¨®©ýÆ“éS·.°*!ÀÞ§žÖ´ÖýÊóðôS{çx s’iÚòPik‰<ð¦ê,Üuªk>Ö€µt3îïY8|€œå±€¹·ý{…À™”Òu%Ë%_NÙnõM/†iLÛŠ)ÏÝ¡ý3»Hç&ey¦ëãÚÉÒL©…0mäv¿ò<\»Ø™ÞBf®‰¤©í™µ¨4=/á6d *=c¡N®¬k `ùïïósøÅƒÉcqã`.Ù2“7îÅqóÀ•’Óx¹dËkõÍ\нO=Ý~ðÛ3wÁîg<Ó pøÀµûb]Sû´©šùã>›½î‡™SNÁtàáj-k~¼=u±µ™ëšÚ§gé~æÛ瘡öáÇÛ~ûË)c)ã[Ð"ÝnÔä,?å±'Ÿ<8¯3RGG@OŠZ«h-Ý´û{VêšÚSKr©{}ÆÀm}ã^ÙpF¥ÔÖ·Þ¨”¥Êvë©oïSO·ܧùÑjŸ8z¨õɆioÛóM×ì}4u†lxþñ>Q{]—,ƒ?«ÿ‘$¹ïâÓš9º÷Ù”÷îE˜ñΦûôž„úZ¨}â[Ó'¾ ïŸk†Ú'¾µÿرkž¥Loa6Ǧ_¿&h¬”× 73©eÁ¹,7¦5Ìš~ßÁë¦ÈÖ}ö¤sdPÎ#vþåUäÂ**}.ïÑ,‘fµÔµŸá8{ö¬²Üt<­y 4Ç@úr˜¶“vfæÔõ]n$É›:˜óxf(€ýû¯5HÍ™~2ƒlO·§¤È çµnsIºdΞ={³õu3”®€k-w¥,M¶UPß èkõHÿŠ­îŒO·/Ò–[_éw<Ýžþ¡ÜèúsŠrhÿþC9\ÕCûSßíÃ}íø†kpídZ¯Cûg>óéÓ§æÍ$göIÓ¾7™¿BÈ8ý‚˜__ËÅõ¾*JÏø¼›ÿɘÇÚ_½§X5ßRíGE™Y9Iˇšö¦™9u}—I¹Ó}Œ™g†R”gŸ½Ö 5ç³^?l&A®I‘Òoºc³»óâÚû•»n¦‚Òpí¢eSʳ7¨oq²ÝêË•ëªf¤ÈþûîðÔÎ5³`9“T·¦YΜ‰…粤÷šIkÈœK1§œóN:gG&±o¼Š\XQ¥/A¶ìßÖÚ_#qK a±÷÷¬,ç /nÜ7‰›¦ •ãöQß55\fÂè÷Á¡µÿpø»OæÒV.©eŽ\–kÌDfÌ¥XX‚K3(3sËäUdc2™$[Æ“ºög“‡ûÄÕ>qTyâæ }p©­Ûî?¤,épø»OÛh­ß¸o7QA+Äm­¾ÜØû¬¢<»Š“gPÎÞgeåeY ûÝèM]ÐÃÈ}UÍÐoA~ñ ì?4ßmlæ9Y×ÔWr•3+Ç®tÔ¦ŸU€½îß÷íWži=ØþxÇ~\.…Qú"еŸ3yè[ºi¤­ßäþ)ÉœY°÷Ù…Œ¡³jèêÓYV<©%cÚD:©u“Œ¹™\²‘1ã̫ȑ•ÏdÊš…zÃøºösF·–ttttn*75iqjŸøáL.cZÞ"dJ'œ3Ã1[fb†wš)ƒry”ϸVCéY²P3ޝk?WP8ÎÚ¨¿¿ݺu+ NŽ\¸p¡²²r®Wu}­5t}å·®¾ ¿ÝÔ±Šfs ÐýÌΆ+ßZ¤Kw~}-ù¬÷5Â2keôžB÷-éèèè¬Unœ‰\¸}ò*rá6QzŠ<Ñ~NQÞA(ŠB’äÍ–F'”lÁ¬º¾Öº¾ò‹µ¥¯üϙȅ¥äUdÕ×r±rz¿=”žbqÚ_1½§Èi%n||Üf³®€@:Y ƒ‘HÄëõÎÕ@×ךB×W~¡ë+¿Èª¯åB×ûšbÅôž"§•8Ç ƒÁàÊ[s:é(Šâ÷ûý~¿Ëåš§™®¯5‚®¯üB×W~‘£¾– ]ïk„Ö{Šœ|K ËòÀÀÀÔÔÆøfˤ3$IÚíöÊÊJŠÊ²„ªëk- ë+¿Ðõ•_䮯åB×ûZ`åõ®‘«µ¤£££££££s{¢çÄéèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèè̇n-éèèèèèèèÌG®¥0eYƒ¢(ªªzSÒ™“Éär¹r©5¬ëk- ë+¿Ðõ•_ä¨/¥“Ó‡L–åÑÑÑ‚‚ÇCº;jÕPUujjjtt´¸¸xž„®¯5‚®¯üB×W~‘£¾tt–…œv> ‡Ãív¯€@:YñûýÑhÔçóÍÕ@×ךB×W~¡ë+¿Èª/e!'{<™LVVV.tèX,¶`qr&<5)ʸ ÀƒÐôE䇯üˆ¤+J‹SÍ$U0 é}ûûû**«fúÁÄØ°ÑYh1Ð7OÚù±Z­ j¯m…=OƒÅé«´~ãB»ä‚ÃåR%!Kh–WTF†xyzý¢¾¶º³»7÷ÑLV{¡Ó,+0>>.)s.‚ØN>#hÖH˜¤‘÷úŠ{{ºÕ%o…9Üyv¡]­¯›ú Ê‘©É Õá¢É{P@×{í[¸ ˆÔ×5‰X“‹‰]è¼ "ãWï&}¿Aê@¾ó–ºn+öÌq£ˆGèWÞ‚Rëê•-™Z`úùDé7ƒLJ@½Ô© @j}ƒ²¡9ã<ô¿> Àœƒç.]=€!Õf¡7·EU_::ËB®ÞK’$oª åÇÿòO\’¿ïŸ‹O •–Wõ÷÷•ùúðýï¾þ–¯Ì×;8Væ±oÛs﹓¿>×1ÒT[tµ{´©®‹Ûj} IDAT´¶¹íâ¯wÇèŸÜñY-§’v›ãÿÛ·¿÷ÉÇ}ïWoþôÏþÓ¿”xaAU+ɲ²B³ÿëÓç×oÞ~à‹îGÿö…/þÖë‡^ ÷okþÁ‹Göl¦Þ>}uå/B¾èë‰_ýøå÷i£ù¿ÿŸ(šåEáÔñý— J«-žŠÝíVÞxã;·lR±jw¸)BýÇÿû·<¢îÜ~wKSŸˆÆ ËÁüó~ùk_ó¸=‘à„ÁâøÑ?þà÷¿ùÇc—Nüý_Ù¾ó®[7hR”H$<…±h‘M–X,¦ê<ýŽänÙPí¦Y‹Ål\Éë°õ¥6·b§yΗ1–w´A‚a® …¤‡BÑ(d´r—”Ê´ H ¦¹æ‘wïššoKözfæœSÞå%}éè,|]ëEÉ«ë¾Úˆ\¢»§ &óá~\Ѳ½¥.þÑÙ³³QÆ„ÁdŽàJ`…P£—~ùrIiy¼mÓko¾SQZüþ›¯ öv°fÇDPúõ¯×¯k»ôú_ûêWûæ7Šùø'º»zkkª&FæuM­-›·ŽÜwïž —ºlFèéŒ0CýŸþì'{;/ÓF(ÜØÈHRRìrÄœN–UÕmk* $+I;Ë›Ób¾zåâ¯OŸolªOLƒŽ…Ûwìzá£2Vz6ÝÕ«a-å XUn¯œŒ¿ùÊó…Uë?¼Ð•œ(p''Æ"’áõ—_ðV¶|xæäÕŽ¬¡vË}{wl i54‹ÿí…+¡±QR‰FÈdCF,¼ñRH@ aˆLNjNŒ±¢ªf‹ùÐÏÿu8*?þñßzíUsiKÏ™·¡‚B_qeÃÅ‹— ŒØéõª¡³¿:Ô©†oÿù7VùÒ¬“hB¹¡D‘Øí78°ÕAôöªÅE×^ŠFÁj„¦ÿ4›‘߯VWÏ=ˆ—™¦‰ÇÁ`ŠšÝ ¼Œèíg\RZ4A‚†›î[ÒÑYòÕZºëžûK|#áVÆìt¹'&ü.O{üí‰íÛïDѺn½¯È'‰2k4J¢"ËÂ민tßCQ ˜M̨?d¤‰ûïÝ382þ©;ïêíêñ47Œ&UUD¢Á±M{\íw™÷ˆ|r,0vä½7…INêwâ÷Ž_y#o¨¯ºp%b QB’%Y G“Íuå、®¶âèñS.¯o°s Ë_vôìO]Nƒˆ™ÈÄxAq©‰&‚±MÕç/] ½å’)c80VT^‘ŒM%EÂʪpòÈÛ§Ž@ßÀà/刌 ø*«Ÿáå-[ÚÎ_üpµ¯ÇZ‡ç8)²äÄV¯vÒë-ôÇÅ÷ßOÓÌë@1»vné‹ð J@Ø¬Æ ¶ÞûQ뽿Ù}öý;škâ„ír× UT“ÉMÊI¦–@M& E ÂÊG'MÐÆd2i/(.`åòæ# šäUäpyëjkVéb¬>=Ä…q„î’Ecm=@–A[uÊt@ôôø‰@By'K- 76ÈeP @hÎsôEÀó@PRBt\"4ԯĕÒѹùäåÝßß¿nݺ…}cÔÅ@_Ye%`™Í¶´[h&ÉI€¢(¹»¾Ãá°ÃáÈøR<·X,ég´‘U®Nt6ÎûÅÆ)ŠŒPî’Äãñ¹ÃÚÿA,biÿÂ… óDN,N_ZÜÃZK ƒ£S CK’„g"}f©ÊfµDcÓï.G;Ű&–âIÅÔÉùãˆR#›ì¦d$ I± ÉqBÖéðõrZÌæx"‘£ÀV«%Ë ;UU;>Ê:õ,N_ã–TUMåaq*â ¯"ŒƒE¡d‘äLIFžG˜B¤™§y™ÆtBeTÀ˜T@1J¤*YÀ„‘'1°H’%ƒÉldÈx‚#H « A „ŒápÌév Ð «]¡ilÔ/s„Ñàúû¿ûß_|ê?‘BÜ¡âŠAQÑ#0ã¶Úâ$œ"Ù\f&*D¢qÒbAÉHE„(4ꪢHˆá£?|õ—_ø­O$ ‘4Ë $ œË`¥’ *&HÊ"”BK ð4PMªJÊ´ 02¢T Vdy$ ôì`DYI„@axA;¬™o7ãûµR€^¢·Z­Î½£ùã(4¦ËpšùÈ‹†™³#ÆZ&ð@Ò@e½áaŒFGÏc— ;×üO Ê\óëKGgYXQß’È'EIùd(¡é“ —”Ìñ¸¼r…¤iUQTŠ‚šͶHçÆ3),KêUt}T©ÙlžÕc<4„ ât`lrÈ]SG¤ ©|H”L„—Q‹·ðÐD£$Ëâx·´ÀÙªéÓaŒÑÈ`·Y¢¼ì0³“‘„ÇÊöû$%A´ÛÍÑp¼¾µu®7²ZXÌfšŽù ½’$ƒ“ÚI|½aCÑ4M§.Bn±»XU1Ð4®œú/Ú]^uÉà“‰I ý4ȲJßðœ=ÕÌ)9QÈ]`š¦3N!Éòüó®………pò$õæ›rO2QR1€?ûëý†;ÿܹí ï³ÝÙ†]ɆÓß?~â¡Ê±šã¾¡]/L>òZm?çúöý÷~ý;›¿ñçÜié[/…¾»ÎZvý|çè7NVÐÿý¿k³ØíÓOÔ`ýìgÊÅ€Aq]•¾üœËÔõÅß«›h«™Ä÷Ý—ð^%/ö¿BØù<û¯>}ר‰¯þê^ ?æïíùƒ žªSŸø›$q¶ý/Ý:›'ÉÓ8Oü¤PzêOaæG‹Ù4%óÓŸŠïœ#îöü¾ë¿|ç¯+…/yåÆ=±––8'žñןÛT:èz`ë{¿ýn©t˜?âÚûó»’{î}«üDØ÷“–W*îo¤žø/nÚöÐÏ’ë+¿ÄìÜ9ëê?OüËsƨk€7 ýégk¶Îa-å5ýýEþqd¦ *HÚy¿«ºZ6вS4µ¨ Â™_“ lF <1B˜M™qPX‚U÷t’ Õ*éTÃ}„Û‰½¾9¾¤ªJôõBjq162·Ñѹ% ¿ùÍofm‡µô‚Hw!h¸ (’`YVQäúzÆD(D8Äl®^%ššÀëE^/A’D(6EQ7´Ë äÞxx²¼œè½ï+ñ"·‡ %)ÆítE'Z|Ää$A’DM x<àõR„Ï—ud„@Ó`µRêî*pÙ9A2Ùžî^»Û ÇÍJUU›Ëk6.8ñGËa^^}=ý·Ï€¢ˆþ`X–eY–1ÆÑXLžFIÿGD2ÉÍü™+cI’Q¼þ´2÷?Y–eÞ—4X¢Žˆ€ÜçÊ$§’£ÀA$’ÉÏ«ªúäïXè…]´¾nü@"‘Ðü£ÿë™wïÆ-»ßä/5%»¶"jÄU~×o}¿ q§9ξf Üùù{G¨ÿh |ºêÕ‚Á=Ö“%m6ôú¾ß-þðÏïxðþšC#÷ïI>Ë~œßöú ߊÏßcmÝeïìTêêÒ§û«¿²––›>öF \Èþì·?Öd‹vùÙŽ/yìG§ÇÛ Ô …ÉÒ·Ö5T¹~±Ãû%æ‡ÌöšõÂ}]c?ÿʆ:÷‹™’óÛ~Õ<åœè®Ý¡;’÷ºß|O­¯ãµä_dúúÐc_;å÷Œ^ü­¯U7¾l庺~ÓöXo}ÃvÇëÉó¨Üh9ÔŽ,v©?üxèξø¶ý["O•ôTöáH)÷¹Ä!w…3|² ÚU•÷Õÿã›ÈnWKJR³œ?O¾óŽðŸÿ(ôž÷ûëŽ?Ræe*k3G4ߌï×"H}ºˆ®\2ãk½xP$ p8°ÇC26»Œ4+OÑ~ÞmÁ‰ š4×4ªN'V0²˜±Ã ¶š1d6Ãäj¨Sy± Ì–§‰þ~‰¨55ØéLÿIô÷ã¢"í˜eonV£ÆüúÒÑYV3nÉé„@DñzÏðÈø|Zír:!!‰é@ÂeE ™„Š €ßæVoMܰ®ª¦Œæ]&( LL@sZJmCtt@CCö ¦ZšêY†.5[`Ç]» ¢È§ J‘ãZóxÜW£VÕ¨¢$D˜Tí2Y«×kÅyüñ÷߸ÿ—m‘¶ _°ÊjzwÂj¾çB¢ëŽ3 $w„N÷†Ô½Ç+îŒÿ¼S|]Ͱ÷È™»êúI²¨ÆwìÙ;zþä[ï}@<ðNç¿Mì%N4n’Š¢áí·Å‡JŸ¥­íÌD{¯b |©¾ìÊ䋇cï~ýG|Éî6C쪣N¯[·nàsÔØ×®’Ãÿðo'ò„äÿñÉŸ?õ—UD้wïªÙ¤3õž¦k,›ì'¿x¯ïµñÊ ïñ™H`§35‹ÙÜ_±ƒº¿ø?íÛ^žø< ­c×Û?®Ü°%ˆ`u¬}T¶µà‚{xOIß+?ßB¾YûŸ~ô­xÓÔ“o¯ßSU§ûÌå š>w¥Ö4Yvo¢ùú çz\„±-í½Äbœ,3ÀÕﹿH ýŽ¥ü¯ò£f’{²7šAóÅã8A4  åe*¨Š š0È8á Q{;DùÄ…ô9F›k…V"aPWWª  ¬gùŒ’Ibl Ó´Z“9¤ ß„{µŽÎª³ …hUUMÌD44@ggÚkC(.×u*+Õ¾¾›!IWÔ_ªd±@"ÚJ‘Ëä€ †MƒªB΋2ˆ¤Xfö²Ű,MšLs&ë®:SSÙÚV¥X$Gi 'hÅ»ú a«K8–e9DßùN¢¬¬mëù­ô7TøM¦ÎrOkÏÅñ­áOs9` f³¿lkO²5y¡ú?{æŸÿ_Ùïvþñ¦îÖMOÿðSÅ¡Xìõ‡Çz\"ÛØqUB_ú\óyò÷ýã¾7¿ãß‚Þù½í?Øþ·çîßýò÷öÝÛ$GG}}_¼»÷ú“éÒîožü›Cøœ=ßø.+[!µ­½½k€áŽ xcà8tú(5&é¬QkÄ‹µDoM„“Jô|tø<ß›„¤,C(‚Âtù*ÉóÐדöŒà8¢§…ÃjM ./_­·¦£³*¬‚µD„Ù|­vE$ÍüÑßUUúX­°Ü•úfû´fÐ0ô¸õÔ)‹…öz‘‹¶‡QÌ¿uë¸É$IR?é§üª$! ÝÑg·])®*&.s¹|¾âa¦s²nòxAç„ÍVQ];øÓ–OúÌÖàæí¿øsè6Ë… ä‰U цÏw|¶çíZ›šVA+H‘'x(-Åv+žšD H@RxË. H”ê›Ôâ"ÕAØ|”­•&«#(2ÄöLÚzΞÚ:ÉÀ‚·Hày¢§…BjM ..žwf[“Õ_ר©žhl€DÌ™Š°UTÀÕ«°¬ÑÐÚšÁCDÓi'»»áú0Ži„f'ÜÀð0œ÷h¨¼ÀÖ5äo(õö$Œ¸ðdqyå•ÎÞÒ"¯Å˜…^o8Ym)t2`6+ûö]ù7ë;{×ííö6®ßj{ù#U•64Üû“ÉÖ=ñ'ÁކÁ×®>²ë‘±oþÙöxÜ»‡9z_¬·²/r:üà§?ý‹_t<¼¾U¹0Ò]zñ…‡šªc¡P©áå­÷–—;Œ§Oǽ^µª xàXùnK°Oî­µ_úR‰pvÇ£‘¡‚+Å·}ã«?ø¹½±±åq10PÖÕõ*××öÙ»Ž*G6©*p®?öÉõ}?°½óNs8ÜжëÒ®øÄº³‡˜}û ž,H$¤@@).€uëúËÊŠAaÇæ“'Ãíí÷?æ?ÎuŸøÄ‰XS{ôÅâ¶¶ÒïVíÜh3]82`*Þ´‰~^|¤åáÂWÿ ¯nßþë cÛ&ÿã#Õö›_¢ÓdÀå³ \°lÝÊ—•iIY~?Ïóžþî÷”¶)?~’lmÍ£§~«a9qPà—Í¡¶@*´¤ÀWŒ}éi¸¨H»^NèGý R ѽ ë›kÝíF~ßйYå•8H·N‚Að,`yþæáóÁØÈò\éoP^óSZŠËÊ°Ùæ°›Í.oÑÖÍ­n·Çí.öT×ÖX©*/bÕv\™ °Ú"FÒŠô1Rµ® ×*¡mzùòåæææ2Óf`YïÚÕPZ:ÂÔK={.•ú¬e[Ž ÅÃÍÍÍýwßÍ~å+q·»kØ~ùSº7–UmÛðöŸoùhg°¸4Á×0Ž$Eú"‘(Oñ=ë/VVª•• (ŠÃ¡ü»éù+W" £47ÇbUeFç=‘õÈ/l¯ZßXÛµm›‡­[GµÕnX×ÒóRq«sÇè®û›>èØIL}üò}xþc[.y`Û6ióæK¨ÿkñû‡¾rwxæéëõŽ mxõTÓ©£‘þÎw:z’w¶Üép<ÖñØf~ƒWY×Üì1Œp“Ä•D‹´y÷ƒÐ°­ºúí½{•¿‹q¥áÒOG?Õvº±¾¾>9øÑ}÷/;û³­?ï1C÷L•gŸ¯ãÓ¿7xÒq9]_ùŠäò®’Â▖‹Jµ¢® jÆÍ¨º®»Œï!zúˆ>²WÍÖã–tnIV%¼^ðûÆÇaž«ª wŠÍÏÀ̳ìîñÀä$@(óäYX­0w9¥tÉTU–jÇ$Å–•••–—••ÖÔÖù|¾²’¢…‰~;¡T Tÿµ"H©žÛ:tI’¤‘ôòË›Âa汋YN»hzdäœËE…Ãá¦ÑòuW ‡ƒ½¿ö·½v9yù4{éUgywÐ-޾uG|xØUÆLÕHSaŠºÿùBû¨ÃšL¶”…êê®|tçGìþo¡æfEUU;Õ;Oïü þS ªápX"‰ñî©¢ ÇË‚ºáèOßLþy…ë…C»ŠÇMÌ„½ñÌzI”yU|¶ì¡ñ-Û;;ãí/ Ù_êª6Mï¼áp„F˜‘py*`hh$I%Bñ+Íææxc6›Y6AÓ!A L&“óoÿÖùùÏO™ ´Akù‹T>ðÀi’üÍWFªMûBt¨m?}ÈJ‘Ö ĪÈ/͆þ_|ðBäÞ²£÷¼;ùýÇ¿¸íƒÛ¯\ÁããP]]/×G‘†††ŽŽ›­åèÑ*§3i2ì?{¹6é&ˆh;x°«·wcõ}{ÿȪ¥EĪÇî1óæ·™páè¹_=¼·0Úñ'öU6£šçøGÅOþ4ºyw ûûÝ¿#ŒnkØ?÷2TW?{ÐQ\¼¡ZUÛØú³ýoðMM.×èØX¤´Ò•t»QìøÌg¾kù^{µiü’êµÔ^:UU2ø‹{+ªÞøá³'¿öá×?o^y¥4cöU—r,{uÛ¶¯×|¼ækô&QË_ûWjr²£æÑQß–1ò«ÄWÇFGÛ6m:}ú,ÀMÙFúæ‹‚$¡X 0/‚ßO0$””©ñÂ*`‚Ud 9½j"†ÀçÃ0áG3–E¤¨H@Q!N$Q_?Q]£Ð4DÂHL"o‰ d™PÂ§Š .£q‹FDh#x\¤sªšç@P•ÙAK$:ÊìÒéÁ……8«-Û{ÐÑÉ[VÁ·„1–o  … $[A„`9vOTÕìåËËa0­RHm-tw/]žµÉü+q8Kî¹z-’ÅM·èŽ‹žn°Ù¸‡Lž­¯¯?óÙÏâöv88Y·ÓŒñÉââÏ¿Žæ·OÙèû—ïÃØëýå¶Æ÷bÁ3#˜;ºÓújÍ«îîÐeÞ>U¨ªõ ¶·_0™l6gËà®»4 ¶þä'eäè#œºóNŽ¢¨KF£}÷n@–»Oo¹ó¥ÖÖº³“Âæ/ÿ^QG#ĬRh2ÿøý6þèQ‹$Ià:„â’â‹ÔEç#§)oh >üö.©wË£±âÕŸ4âèÖwv2o¼a4NTU‘@^¸°þƒz{‹çÉ~¦ßX¦Ýt9\Ëïûpß×+¾>6F‹"HDzúGê+*Ï\}ê½OWвO}×»þx÷ò¿.ùûHEñd”yõÕMWœ˜`*+ªúæ›lggíÈÈHyˆ«{î9•ãò+£+ˆ‚0:B ¡ñ1b`É M¡ógÈã'ÈËçÉÑQäC§Ž $45‰° èì‡d_AGŽÁ qéy©‹è¾Jžùº|‰E²’%úÑèÕóÔe¥–MÃÄ ÂÈ1:DŒ qä&‚S¨ó:UËU ¦D¯4|uÊŸTðTpúi¢Ç-éÜ’¬‚o c¬(³£O¼à÷‹YÜKUUÐ×9ÎÅÀd­’oMŒPÎ,HrY¬·5a³ãIÑd â .KÛÅZ/‹¶zÉâ:®Uc)wwwß¹ýο(ü cÂ&Óè(²ÛKadøJ…þõ•Ư¿ƒÛÊŠËzø>Š$“ÖS| ©:+þöÞ;ºŽëÎóüݪz©^Î991‹IŒ’HeY–,ËíØÞ]Ûí9=Þ=svçì9{Ξ™ž9=}fÚÛÓžîžv·Ûn·å ‘2$æ D~ÀÃË9çPUwÿDQI@”(€4>‘U·n]ÔîûÕ/|Œ/²¿˜{áýÍ#Í­»çÅmmÿCõfPÐgËÛâ3žÙYjûvÀRiU¡ hºú«æ¯\NÃØ¸ÎNžÔUuƒ­Á)bŠVѳÿæètº›Ïç;¯]£¢uîéþɧޢ’ÿ¡§;Åñ"¥ö¶ö݇éGíé@gOÁŽÃd¸ º88ްÙìóóÞÌÖ­¦-[ÖÏÎv vÌ\C×¥Ò¶ÿï«€‡6¸Ê.“Ú4]˜'­J•FS¡3÷økÎ}¨qf\¦öº4çèM¯¸ÖýÎÕ¶Ÿp¯ï³l¢6ÓÅ6{[±8ð`Ëfo»Z÷뿼+~5¾ÕtÙdj€Ój“.—èó’—ü¬XÈ[R¨°B‰·óeÏÍî6ººw$‘ˆÃˆ­ï?¸øvÚÑwÓ~µù¦Mc‰åThÀä2r2ñ‡§¬æìÕ:ÖY¸ÞžÅÿz@ )V[ þ<í¦`-oi‡”°–‚ø¸À«NÉŒ¥`‰Œ¦?èŒõ©¸SáÝGH§A³Œ<’¼[&ø…ÁéêPÂ΢ OÌÙ¬æJµÖh,ª ßân‘ŠÅ7·[CËkÇðãfó†bÄ^VJQ!H$â…®2ÌG–bÑ,»e¬îÞ,îÆín¡q;qíÏ…BÑjµ$"ɫïvY»fy³SSÞ Ú …0J§É‘‘Àζ¤mÞWÔ B‚V?Þß:vÌÒ¹A â0#71Žc³±G÷»‰äÔc <5ÐWîËAnß¾¦L6áv»½Édyß>5ØL¦SÄ©nI7 l­V …äSë¬ÖØðp>šxmÀ¼K™"Éø–Q6‹ÅzkCãâÀÜ\áw¿ÓT«½6[z]Îd™ž5÷mù7×&®‰Åb±¸´}»7,µÝéÜÙŒÄà—Â_R©î‹Ý<¥,˰ñ„Ùlx:k2 øÑÙÙ4Æ*!;ßš¿B\™~bzÖ›(ýÙ;b³Y‡û^ 80OHX­ÄPÌ¡TEf*»<±,mÉ’Â6ç¢9õþIÊãàÊMÜh¢Þn.•Dµ›ã6ï‡2š'ã\¨ÌóÎq?~ö5ÖXqVÇ×|: j5dVzE«…dtw/±X ^ÚUõ ŽD„-æ æéb©†AéN™ìÊ•O¬Åoò0†Ö‡úZw“˜Í5©2ã…Û±¡¢êD~Ù¿·÷´Î·[… 4”L€¥l ^¼Ü14ÔjÍÈd¹tZÿÈ#ù‰üîôî«®zÞáµÙL?úQÒpÄ‚œ¹ m¦…ù¼bß¾±™H^ù­oñ§¦°\¾ŸyÄçóñx•þ¸qÇøŽžþž1b, öôX‹ÅæñÚÓ…Óg¦ÎÿVüÓï«4}:¥µ‘êÈõ#Ûa;ÇO½ô’Õïg³!Þ¶méŸÿ\U ¸‰ÊÈã64þùŸ…;wÎ5çòÖ|±R¬WÕjug ³ÝØ€Bhv¶¬V×LCô·ožx®oW1­¾00??âóɾö5E™Ú {ÝŒ;œÛ°›t¦T‘}„…ôzw$ÑQ-i0 …6¾ûnnýúñDÚBX:õ Ú$ª‡J¶’ØßÛÛûÖ[é¡¡•ü— †ÖEr´ƒu'PbiJehµ A ÞY¢½€|2 œŒ#–…RÕlÖB‹…ÆLPJŠSb÷Í—`d2\,¢B‘|HÆ`Y¨WÑ]ü®bÛ8[Üá0˜äÕ1ö‘ŸíYcdåâq0E¢e¤q›Lð¨Ý½‘JV»Ô JhZ¯‡¥‹è—]·úaš58˜÷‡ã©•^ ãjó·FˆÅ)~EšÍ&Gäó1ƒLÖóóŸ ü~¨ÕjB¡0H’*÷Á“'×›XÓ3'ö¹ÿò—½ry PÒ„ž`§Y"|´z¡•<)yMøš_Wð L'{FØh4†²Yá‘# À YQ&#†._š˜@ùµ×ôÅbµZu»iš>gØ:9½‰S >j÷ãQ‚˜˜ ˆÀÙ´¬ßngNB(N;fÞÖ¿eíµ¾ÙÛ;êþßOâ93CÆbµÚvn;»m]mË©SžlÖÉñU-0L&“"2™ŒZ*­[ŒúN‘Î"ø±àÇÉÿúl`hH.—OL(2™Ìú†;{öìöîNá§Ó_z}Ú=S*ýÖ§''…B‘ãñÎ?÷¥V7kÜ÷¤ß“ŽHS~b6à:¾”ÿÇq$I"[Áqù``*¨©…/#nHBW'·a#«Òb÷tq;€`ÃzÖÕÎÙ,XgÀ®6ÎâàL€rY[˜íÞgÚ¯Të±V‹=í‹— †ÙŽ^vÓ&vý «3`½;¸Ý³Dâ ¤„U‹(ÕŸÁ#XcUêPXÀá¿©‹U*Èf?Í݉¥ÜE ÞM`à÷ýÒi@ ¼՚Utÿa¦«‹©Vz§óÒÓOsmmp"¢åh±,›Éˆææd.K@ª¼ô B±øÙg/¼ ×jµõH$β}}92×x´ÁSó‚¸tÉ~âœF3Ãã©ÕjOÜóÄõ'³:j?êÐEª^7K$àGþiéôÔÜÜSOµ[,—öõ©^Ò¿Ôxdwžã$F à4"ìüõ¯e<žÊ¬ŠÚ¢Ç´Çœ}}f;ò~`Ö¯¿þì³J.îçu)ºòóqj¾ÐšLõæ›CÇŽÅãq«Õ —Svã¾}~‹¶üÕÚW7ó¶Bí¯¿Î$©’HvE£b‚pXÒ¨¿÷zvï/›Ë¯Igµ‚!xûíM>Ÿ°Õjýbîñ+cÛJ¥’Œ ¯·ÑhØí«TäìíaYþxò£.WÞ~JŠ"E• çvß’Ep§Kn\¸$ÄÂw Égvo_zôk<8¬€µt+·Ð}ösË™^² Xvacàó¡±ä ’\ùUÑRí³e5¨S.3ê÷š¦³þs§-§«PÅz},›3 Ƹ±_ÔõÔe£‘dšÛ·ÿ†7Æ*تH„ÛÚÀŒÍ¥Ît<­Ó®]Ëg³Ì£Ã®ÿ¿f6ž?ŸÏç³úkW·_¥™Â޽烑éëÛÞÙ³©¹©—¢ÊÓÓàäœû¯ì×(4…B¡··P©dÏÏæ•W4š4$ †ô~M§•fåÑðÑ"*®Ì§úÉYP¸™zý÷šÀpðñýæã/Ÿ\"ñçvƒè6 æ[v~‚·V »XRQƒÚB–÷š‚À%ŸS–·ˆ¦+†ÞhF'Wʆ¡nxuYöF‰šÁ¹ÜíóŠ>ßÝ}Sc¹ÛCÝÁe<7íí@Q±I’DQµxU2 &Ó‚o‰¢n¸™–˜œøØA|¯Åò«„»«SÞ›×çSØ<÷lÝÛ:W‡¹Ô,„æ£ ³ãš©tžD¸\.O$[ß›ùÞ´hÚãñÄã^в@=¶W*þp<çÇ_žzÙˆ3!ï“Oî8óþ™Ž¶^ÞÙŠ¿ýíô+¯ ¶:d}çâ™gÀí~´üh9].AÉd½½£Hí8>¹Ã~ûpÜÝîö/ΊDöf3Âë…ÁA›M{ýúõ/«¾ìãù,mÀ5c~åÙÞÿÛ÷ŽMçι•Jåã{hægÿSµysL«5V»æ]ŽN‡ßï—HZI6ùóžŸwø;ÆÔcb£ØzÁŠªÕÑhÔ¤TFs9™L¼gO©Õj yò .×nš¦Nïñäµùñññͽ[_ÿIk÷.“†ß@µzkhhfÝ:•J•ÉdDU8½^ñóÏONMú·û!œ™«H*ôm±X ]ƒØ]q+ñR!«†Oæg  “F-VËp$††/R[OM3Ž'%ƨ†7°—.“4 ˜ÂTñ$\ðBÞÝ-­¦>‰Z5äê`%4ÌLñ(êÚÈŽ\$5*,SàR|èêæÃµ‹d‰“<ÈÆZŒ  ¤3aŒ D.+f…¸TÀ yD«G.Îk k<¤|N¾%³ÕîisêM6­únj¯z=$KÍõ‘¶·ŸŒZí¶ïT%™\FøÃÏjˆÄý¾Ã“Yì†V9G ¾Z­H$ƒa¡@Póùhš6ð‚Gãø[¶é!倲¢ðµó-DEQTÊœšd'ËåÈИ¢†Üîþlµ†ÿø+O> ÊPŠ•ŒMsf.P|:QÉQ1^2Bd2Y60™8’7›ÓÓÓT'õ‹ÚtYÎU*•®“'ÍSS"FDa*¨Ú¢§ž:Ñ×wÉn¤©ZM¤T&õzŽ,«E­–çða¥R™Éeêå:OÏsr=Õ| F$O§ÓjF|îäó-hýæØºPh=Çq®;T¥R›°í+W¾"¼.ì· ¤ØjE~ÿ|ìâ/Ö €Ph÷]£H$ªƒÚS§¡Ã0O¦ž”F¥ÅtQBIªÕªX,èm6›¼»gè¬Vl H>æhÈåØÕÆiå¸Z… gsˆGc“k´˜aA­Äãã„©’á…ƒöu´Ê.á HиV’ äó£6›J ‡‹S¨°FÇÑŠXH¦P,ŽôN£ÁK°Ù„µZÌ´€áb ‘ÒJüqLÏMøéR¼Æ÷ÀJ+´Z7»n–Î(ú|¸iµ A%­vyµvk,LbÄÜþ·Õ ,äP}¤ÜÝoÑÞÙpS[ ’$•|¾àÐ!²­ b±˜Á`ˆÇãbƒb±žàÓ¾÷oõ›Ú•ë.KœÝ¨P(v]ªNd¿Z^pÍÈ^y«$Õ6»º$Je¹^O§­¹ëÌ of¶lMŽ¿$ScÄ¿ðOž4lÜX,…B€¬PHnÛVÊç•©ÁàÿWŸ«òx3oV¶¢¡0í ãþyn§.›ÉŠDlCE½ù=£§ë‘Úðt,¶y~¹Ý€R©<ŸoÖh.f=—þß½Ï+O  „fggŸy¦mbb‚b˜†ËU.•xRÞt÷O¶ZöiXM®oÛhUìæó…„xµÒÁ®1·B éSÿ§¸«´ÏÃô4”öï×&Ëå©o~sÈåBÃÃ[a+%¢W"ëƒòkJ€Tj$“dF»ûÖ ™Õ~ãÕñ&g¶€»³8¸V©¡(G¹6L•*VH"çÜëµ Þ±›Á˜$‹×Æ¢ÈÝÁÕªP®\ŽŸxvqò…*7&g £pûA†Áô|×Rk¬ñ°°Ò ^/´·ß|¡åé=ò8Ë.d“²iÝîet7Yl üP±²5qœ†!Ò·7QÉÅê–¥ØôðÑh4 Y©ä^~™s8à\ã\QW€BòùÁp¸T©ˆk5쇧ÿ×]Êíæ@ `F,Öòx§æŽxŸ ~:óìŒÆ©ñûýgÏZÞz‹ÖhœÔhœN§•¨H¥?Ó©¢Žl–<,5™Š‰™éG#¯ÕÊuw@º©DN£÷ßW œÇ#œ»6œ1Îêúüz}³««ë¯â²ðÞ½VK 1jÄuP}àÄm\ \[[¶Ö]û»úß1ˆ)•ðéÓ›ûú®’äˆ@§‹«Õ¶Ç€™’N…ãaƒÁP«ÉÅ´XÍW×ëõ‘#ÿÇ+€CÀ -–ù@ ·©÷òöù(doÚ†‘ÉdµÉIH¢ä¯ù_ÏO&“,Kq‘Èßܵë Mo8~<•Ji@ð¼¥O„‘ŸSóÊ—Î7Op,È5…!•¨Ö‘ÞÄíÞÍ,¡³‡uØ9`A¦Xü+«@eŽ˜[0’ŒØèæÜì î—XË[Zã¡dÕ…3–%¨tO©KËêP’H,Õ~å¡…ä‹ìf%éTk›Ý*E$·˜Š¢êu£p!B¶X”޾ p#‘ŒíÙròñ° G0ƒfúº66É XØ=+}i×—Ò‡ã]Ù.ÌaШT™LæâÐÅ¿þ5„Ã䉵þ]üZìÌ€¶¹m[±X’JeÕ`uƒnh4¸¯/˜NÏoRýö· Õ¥9ÁÜaþáS›OI$‰ÎÎÎh£isÜ1ÿd-SoooÏf³Ò|žÿ›ß€‘46õMµLͲ…¸ÅŠÞÓOîêÂ&˜XSW¹«˜-„êÊU.‡B(úƒ+Zç¸S(V˜JÍX*<ùä”Ï·}ýváqaη˜©Ý^(ˆøC§oè÷OìwFcÏž¤ÃqÑì,µx0ëp$^y¥V«143%Ê UÖ:à3'ŸWkY™K­Õ`O;ž6NgÀ:6ª”J¬Ó`³eqØœH&n÷0Øò‘ssÄ\ •Üœ{ÁHâÁ™ïµÆŸžÈ[ú0÷ÒÒÀT Å"Èî–þÊÑZ,vOc²“r½ÅݽOœD"¾ùÈ2‹È>^^Ÿ¸ ŸKÄ7¦•J%7Ÿ]F·¸ÅÂ-ëü`µp÷ú¼[nwƒïÏÂÿGÏ›ßìí}çìÀ µ ô­V@ëÐâ E ­ÝO}Aß>øþàžg<ÇF¥R–îòF4ñ¸ëÝkBƒ¡ÙÙé9~œïó˵“ÜŽ…ÀéäÖ¯?æ2¾œUd›ÒƒÕéª Ü”JÛJ¥«P©@¥‚1V©p¹\vôö^:xð”GÎhL;iŒ2LÛ¯]øö·ù|¾ðâEùà ;‘¸ºŽe‹^/8fμsx§Åe™™™1ª2•ü—½ÇøR~ó½&T*âÙÙÙ¶¶6¯×«× º»‡ù|MÓápø ûàh29±ibT~nËñ½j—Ú§ö=fx¬ûRo£ñÅLfJ­.±CCÃ_ÿº^¥Êf³ö´¬›ÍæÓ§OŸzáTx*¼b¿Àé„ÉIÈ:Kjü€Eâ–î|r3ù®æ^]èªÕâwG"¼wß ƒúºt·T[.”# Ó\¯.nÞ |>¿Õji4ž3gš€"‘®_ü¢–åö«íÝ¥îl6{íÚµ¶6†ã8$“I'&²ù<©"ÿ^ò÷UEõüyûûïó È“Ž{v–k5’ÌìØqM./…ü~ËÌ 1;û¾õýYvæç‰3gÖëõ–ˆßŸ¢i”ÉLMM=wí¹—Ï¾œÏç …ÂÈH4“ɨù|âÚ5”¾—Ôé•‚ã Z…D µX¨7 ›F©8*V ^ƒfšM¨×¡Ù„r¨R-²¤I§Ñ†ÔlÃB­õ”ó(_†z &çëc¥ÈDË7Ùòår`®ºå©6Eª­žT4›I¡LE"(A Í&dÒZM¨×a|œ(— Ò€ZâÔ¨A>™ ÂÜ=K»¬±ÆÀŠFâî€Ñcc°Ä«‘LÁàòoZ*}ÉB×`z{—?çÃÍÝÕ)×X)ŒqäÕó©xÞnS7„Îðm%c‘-^ð®_ßJÓ¥R¶•Ï;/^”"ËÁŸÂO³_Î]R*yE( 0dN&;GFH\¾Ì›OK´_ª]=0¸gÃ;Ç »\œÇ³ Nä-†¶mÞËìU«95 ­—/ ‡†”óÛ¶E#‘îóçC¡Ú¦žã]•7-¼ÎNo%øíÿ@‘\º¤á¾üeº"‘=øõãGw÷¯»tÀp@~ª¦¢(\,J‚ŸQܺ•ËåT&Ñ$ mÛ.ŽIfCe„==òf3JªÕ¼ñë×77燣i;~5uµÚe2ìr]—HáðÞëŠ^=^{6æ‚Á¹þï~÷홳٠Ž|v:xõª«»;_mü•™3ƼP¨`±³gOU.ž¼týúĺuëDV*¡Rébã"ÖcIX•Š‚< ¨j5þòË\,S©TdþìÙÏüÝÈÐ}hs^ôÏ[wüo™d©GÙC§é"_x¡ét[­žp$"ÒÓ:S¼Õ«äXòŸþÓ«ÉEµíØñJEo4&‰v‰ç…á42F“ÌdBB6qSN°éüùÿ‡Ü¼îyéï2onQªÝ+C’ÿ¶úoÇfÆ Ad{{óMQqD=ò˜éÉãÿ½¯ÑÀ6\ÜaŠ4 …¹|Þ¡S YJ 6ÖÜK¡Ùç å#ÔåmÌ`%lÈåîá,:Ž À`ÇA‹…§žeriäìd‰C¦îçÍL sæ0ÈPE-AgL hÕëÐo–«9+’Ã6+ >Ÿi4ˆ Q™糄ÞÅnƀÀ¨–‘X‚-ðy@’ØÓ†Tj–m†Š—ƒŽŽJ:> ‡Á ¡Þ»ÈÜ·ÂOp5>;VÎ^‰ÅàÓ Ä}^Á/›mž¬ÎÎ{Ð5Xãã`šCÕ»ýfR>c_²ÝñCÆ8™LŠ ó™3Š|^ÑRHA *Uº§' (Ûwöw[tïËdø¨íhÜÏd2B¡!“Aú€þ[µïjÇÇí¬=på@ÛO?ÁÇ (‘\R ôvs4 4  Èä€Hàó°Å" ×ñióŸÖXcUq·Œ±kWù«×oߢ1Ÿåû4 …P«-5»Á°LMÈLTª¥U«@Ów:)‘À]ƒ‡!+¨NÉê[dò®.ºÂÔï£Ã_$Q¥”Jye'jµ ËÉ¥Òx<¾n8ƒáìSOa»½££bD¡þþþ`Ð Äb±Úl&ž{N.ãn§ÛË ™ìÍ&L÷Mÿêo†ÉSlày_•â#¡ÐÿÅ—åܸ»ÍƵ·_m4ê"ž’ò IDAT„ÔããÚLF§ÓQÓõ÷÷€É”t öòwŒí"½žã@&“•J%c&#øû¿7ëÖJ´©A,æï|r×.s„ÏçŃƒ(„öÊö6ëÍFCtäH.oÁ‰í/Úl¶]­]â÷Åb»]ôôÓYéÞ#U{Fõ Çq C]¹ ‰Å4SSF©4KﺼK Òþ~Á¦M|Np¦Ý‘~á` ÕŠT±\+‹–n´ò ]œcÉa­ ÊO$ÇS2_ª6šI‹óqºbÕ–àwð1DãD*AÔ«(—C™ ³šü>rvŽH¥P,Ž T(¡b EÏ.[C¾ŠEQ.‡2 T®¡Jå³Ëðû"‚s;?ÍϾÆ«û‰cZÍb>ÃÜj‚,æ-ÝUÑÑfƒùyèè¸ë 4ƒaÉ•ÄbËÈGŠÅ`°oÉ©~XÁHÜ’ ŒVŸRØç˲9’‘H ž=K;{÷l<;›‡¼œÇ©DãRi½T*y“«5P© Tjjjª¿¿cjjŠ'•Ž=öéñz<ú¸!k›+—7NLxÚÛýõZ?>žsw>¬0èÎÐð0I’4CoÞZÖ”ëõúÑ݇ hǯ «^oN"‘twwG"…ž~º€±H©TFhZ!—§§ЉÈ#P©$#‘JEÂ3–sfÇ„%«›ÍÀuu¼ürWg§ÏçS6” ¦êS ¦q²ûÜ9óåu‡×uvvºÁí÷ú‡††Vösü¬`-·¼0ØÚ¤®š±™7‹ÆP­ð°q½qÉöml¥º¸?þü­ªZ-®Tÿ½aë­iÛF^ú=v5FîãwN½RÌWZÍjùßÒG´¼ïŸË(3ÿLYVÇÝ;‚1;™œlñÐxâz©cå•yî'wÒIZêª{ºì^owÏÞóíî7ù|ž¢¨z½®V'£Ñ¨B¡ðS”P.€Ÿ‹~~xððüü¼Óé,µ!Ϙ§lˆÅbƒÁïvsz½>,$i:U“„B=!+•J©çž‹ € dú€¾½½=<ÞpeCÖŸ ì œÂ¿.‹ÐœžÖÔëõzÝ'öÅÄ‹Zû™LF­VkƒZ¶ÌêD¢M¼«$éc•…@úÈP-™››zæ¹ÙŒ¹Ý‘}ûhš®V«N§,;0?PóÖrîÜ[ñw,,Ëòâq”ÉT š¦ãñ¸Ñh¬­­[s9}õuÇ`y°57×ögå›~Â7’pÄ­¶7Θ+•õë•fó¤@ ¨×ë  s9™Íf›ÝpþüáüGFœ¬Ó3#äH¥RKn>«Ûv>I¢ä1jxå Q—ªïãÒ‘øîò;_ÎÙ%·É5½¥5J$Qh¸Znf>xÉÔj6ñ‚ÿ·Ryà„e2¸Ë&€áËÎæE]=ð®%"q÷l½|¾×ݳu¶:Q(…NßO·ýTߣ?~ü¸ÙlÆ6¶Ù`KrË$þ Ñh”Ë¢#Gº2ÔÞÞyã ÷•+âK— ¬/Ÿ7DŠ’’šÕzi¡–ËVëÂäɤæÂ…÷ȈZ­>8íÈ tñ…S>ŽÓ @€ ŒtŽDʉDråŠtbbs0¨å8Î0?ïÿ¯ÿá¹ç,(ƒºl_™:ÕÊoJ÷³ZÛÞ}—‰DµtzýáÃ=×dD”x¼õ¸ä<í^h+ëƒÁt&6„OO– ÇMMyN½CZ¥¬Råÿï?~ú…p,6«’ÉL~?ùA,þ¼ñ¼ù ›Eo¾ÙIòéééFÿ¶Ó›wÌîx´õ趉m Eûµk×l =3ƒ–)YEܬ·ÄçGþ9bN„EnÎíŠð)Óêêk»¦·´ÆCÉý­‰ÓÌÖ yã«gvjT¨´«dü"ÇŽ ‹»Ëµ³EÀ‰Ew1Çq·ÏÊl†!X¿E´é–Á­D«whz¶8ãYiëîë!\—ë+PÐÊÉjêõÙì¬]ãåæ´äƒ×‘ê«9÷ûÌÆašYÖ+ô•:¿ , Ò Ôè2æcy>«Õ×Úþ•¯$ÅS;$“M(¯ñ_Ëæ7ü÷ û¿²bbB.'kL­‰DR©Tøü¡cÇx,«(NäB¥þò/ç¿û¡â“5­5]Lwttd2¡Í™ÌþÖ~ð¡*©ªTÆ3g”e4–)Ÿ¯gãÆ½½j‚ ¡¢Çù|¾ÙlþKß¿©¢ d'ORçÏë,É¡c½Ì“©žgfötìûÝåß©¨V­–êõòöíå|^×®#+dÕàí·…_ûšeròRé–r¹ìe»]ñÎ;±W_}ñ'Åb7  bª\O__'YW.—º»}B¡sl¬¾å¿>vìˆ,ËÆb±(}ïÚ´‰÷ÀêÅP¬ŽêÆJE€ N§û$2½·çÓϰÆ=÷×Z‹% Óºa\(UZ±J&¥ øtK¨xÛEÍ.Š$1 CݶǛª¼^°uÝ|ì–Á33°º›†aH’DÁ (ݽº¥’›’Щ¹ÃJnº^À/D1dC·Q>H¸Lši_P.—cÌñ?|pñ·ðù|~ëæ`ãò:Ÿðùcô‘”µÛ¸q>G-T×|0­@À¿E“-þ>Ô›¦ýØ:—µàßn–e?~ðs`zlD¢³kâf³)ëÚé¶™dDí"±X<=]îè“$'Gu¶¸¸Hˆ &¨U8'x4æQ€HE¸TD26q0ˆjyb6Öip4†²IB¥åôf.“$Ú=\©Á0ÁµRËUË(›B 5‰ Tš†Z¤\­"!&'—O!Ôë+ýÀÖXã³çþŒd"bûþƒ7îa°Ø¥ôrÝR)”JK ¢(Xê ¬Ù¼£©ô!¥ÒüìÁÒi”Äñš‰aõÌ>kšÍz1ÿ‘?Š®³Óô| 4oo/rxxã[o•'&„*ªúØ?¥^àñx­Vk}ný–ã_¡i+Æáa«Û͘=ã{Üe7<óLsóæÉ…™iš€³â­u¾6þëÌÖ·|àóÁåË&¿ßïp8¡ …n,fö€áÜ+®d8Èrèê™óc³±f9umäúŒßW,Õ^b¿x³ˆ@X6•zú‡)2‰þž}·°•¦éSY®íÖU«Uš¦+•Ea‘h4j2™víš8x° ×íóý,°l„ˆ°½á/ÂaÜö c¥A †¬J¡¨¾û®’ P½–ßóŸ;vF`këô>| cŒ{z6[-éí$ûW9" O;™œ¸TF-Š9ÄÆÒÚA-A¥‚a®…r9Äa+p« &šU”È ‰tz®Ñ€V Ñ4´šŒ#¦Œ+dÐjA>‡2y¤Vr$Zu¹$j4P&‡ZMÔl žÊ%$ 1 ШƒQƒC±»V묱ÆCÄ}ô-Uò©±@nãz'þè‹<ÇqÆ)–#Aµº”Y¥TB6» Å‚UG1“¸ùP‘¡P(‚æúÈ6yÍ››ã.Œ1´îšÀÏÑ,—g¹æGìøFƒwËJØ n T_ÂÜ¿·u~üv+‹ËÓ# ÅAðùü«Wëjõ®ÐÄŠF—.9÷î—ËV bÈÙ#,ù þ…-殪ŒI¥Çƒ ¤ž|kWlÛ6ÇI@Ò.jÏår°PR1)œ<ÙRA*vT»x‘R(š*• º¿¼³J%¥2·aCeYªÕÒ\¼ˆt:$þÈò#MH#—ÉãBnóÎmZ"çqId !Š"êM†$(Çq\¯RYù“?Ç“Ƥr›\U¤R)çn´akéС2Uhך1Ʊ9=­lkK«årÍ©S ±ÜîÔZDËìÙ“')À‘0Û.Möš{ß+¼Ççó›Í&Bô… œHD0Ø=:ZÙ¾=’ÎljP캔<7¾q É²lhîJñÊî‚5nµê—/“+ã)¼øÀ7p‘LÖÖ\.£,Öø#0-`1ø, Jg³s-Ä40ìâq¹Œã0´š‹™ÚRFP¯`ÐTÊ ÖbÌ`d?ÞcÚ ÃШÆ!,øà]tѱpÛ~Vk¬ñ s}KAÄÂÁÑë·xBägè½XÙþ\0![jÙ Ñè籚ûÌJé-a9K–þõ Â|ÆºŠ šûŠX"¥>È–ãñ@,6d1¾¼ysa¤ù<,$D—J%qgç‚+õ‰è¹x1/'AHÈçó£?þêøøl6 ˜ÏO&‘Á`H$í££ônν¾¼^b–œ¿pâ _H*Fš¦•fs*•´Z~¿hÈ Í~á ~“Éb±tÆ;ÝÈÝ9ßéû/]GŽhùB¡ÔÆ¢<ew8õ:ãÄÄP4J€€  ÙÓt<ßïÝè‘Ca6E33ˆ:âGþ…ø¬ÙŒ×­›ÈçÓƒ!«Ppz=ü³ðŸ§·L—J%+Ï*•š˜X¾CÚ1~i¼ÞWaP©:óyX»}ø«_·µ‹Ei8tùP__O“〠æ:æþœÿçëØu­J‹Ç“œ=;U­~ìA¯V ê£o¶D2‰õú›P<¸a¸LMó^b|œœœ$G®’…Ââëj³Œ tîä¢X™ˆ†ãoð&½Ä|€½F¢*ê~Ò7Kœ:MÎÌ™(Q»C–—@øá×Xã¡ç>ZK‰òßøúž]Ûn¹Bh‰ÔŸP©àƒ´„;sW™m¿íá2™¥šÒ-BÓÐh<ðÅnË$‘¼Cbü÷è_ú2NÂåYK÷ìî¿· Wkt!ŸÏW«×Ôê鉉‰½{÷ú³YAÀ_Ñunà\$±X,Õª ^¯÷{Æï¹jÑž"Q½­­\.Q©`¯×•H ÀûöùM&€dËè–¦_ˆ†£z½þjðíw=ïNÓù÷Þ³s “ÃUzÑÄ(—ˉ¤}¾]‡uAhµ±ï~Ñ^¹|Y˜LÚB×¼‰Ã”š*³;v`™¬œÍæ}î9›Û=55E‹hç¬Ó’eµZíÄG|‰¸Ä¿$®VQ8 …L&S­V£i:e³Õ¶l¡(jclãÆ×}>:“AÇ~nuÿÕß ˜ÍÒ÷O „Vl› “*•*›ÍE“N§ó‡ÆfBANN@3¨ÇÔ===ñxœ¦aÇŽòT¹•C¹ñaè*|g)]H°ÁÄÉe˜/Äf Ç6`.ˆ€á€äÀææ¦¦ˆ…êäîAV¥ÄR Öiq`Ž`8¥ŠSj°Ù„Ió>áž·¦ °ÆCÉýõ-¡OÔ6–á˹«Ìv¹ K§($“°l? ÇÝ^™ü÷ tOºwëåž­³{[ç*5— E±Xô‹ý';NÎÚgC4Í9ÐêùBñ £7ßì\ȲÕU*V³¹R©8/]ŒÄtº¹—wMˆ'ÌíæHÄ»cGR£a@j6Gºº íÄ„Ëëõ¶··[£ÑÈŠ|ay8%IÅ$‰Û WøWŽ­;615ÑÑÑ16& …píš+™tðx‰‰_ðÆ|·;,2·kÈAC=ßX¿P(ŒFe&É4¢ë:vIÒhT*“ëkë¯Tår…Ri^=?¬nA ²Ù¬J¥âü\âú¦™™Z-êÜ2{lËz“N'Ÿ›³är±›6¿Å?ÉN@³ GÒJeÿ ç_ØÕz*],†Ãá}Ù/õö[‚e*•ÏÒ½}ÿÑ`•³Îs …H$ð]UyíLK Ýà õs#6Z°Û†@¢À nkãº:¹…½Ùáá Zlµ`g×ÙÁQ€Ñ„µjÜÑÁuvqv¦>á·Äš‚À%+à)YÔò^ñ¹4‚ã¸Ï¸|vY}[V;+Øùd»@’¤T)e(¦…ZårC,–ƒF½B"×Û{}xøz__ßÉñ¯]¼,êêêúûMoó\ …}º¾ÎR§†ÖT«UšÆÕjµ‹e›•Š3U€lrò™7ßTe2†¦á;ÞïY³X´64ªU,Ä5e-YKŠD¢S§ÌøÒ—ê;6Ëå[w³4ͳZ³ø=ùóϧÓiq8 ãã¡#W¤WtfÝìlÄn¯*•¸[ÝÍ{ñ‹òM›H’ìím ÐårïÜ\%—“H>–Œ³ºáÏ͹c(Âü 4¹[c‡Œø«[Ž–÷ªÅé„ùù¥Y­pSÅÐÊ‘¸5V‚Z­Öjµ”¥%dh Œ;ƯÕ< gQ$Âçׇ†êB!C’¤HV«›£££õ® )¹½R©¤Ói@é4T*f…"‰ürë/QÇ€aü(ŠÊiµoôô”T*1§ó§ã\|º÷¬×ïÇëJ¥2W(®^Eù<¸T®úl¢(®)—ûªÕJ­^w\¾\›žŽÇ™Fƒ›œœ$Nž4ÿæ7À00lÚŠ3X¥R•©) „—Ï«Âc¥Ré7ÉßLº'½Ø{éÇãó†Ñ ¦—/íœÚ©Uh'&Š•Ê£×ljc•cþk¿cÊåxÜôöÛº±±±@I¥šŸ™q¹–P0Yà8Šßü¶YŒÏÁÎóMXÕy{(_zÐk<8¬öwš^F;[î¶íuãñ¥›È!–…å%Q- /c=¬¦Šª5B‰„¨=µžÂlaûÌŒrêo;:8@—.mzí5¯×+÷ÈOÛOûHŸËu `V­V˜8°·µW«ÕNN2€ Ù¹s´LV«Õö÷öÆzÀãIîÝ›t:¾\.üè£Áx;zjÈÙåóÍÿäô{ïIX–¥(Jé÷£p>è|ܱ£¸qcCß3acÔÈ4˜rÙ`6›£Á`ÊåZ(ì•yUš“Êd2„"ƒƒBUï™}/¼Øäñ‰ ÿåÈÜ…OØj^w±X”J¥©TJ§ÓíÙ3±gOR©“ÍŽiÆÞßò>l†Ës—uºÅÜcåÆqµZ$5«Màóù0áÀÿ*¦Çó}ùâ¿üµqrÒ`@CX(hzvûv|ç~Þ«Š”'ÉÙ<ä(Í:dó@rÈ\w›ëökÉÔ1Fá›/iÖcÈçPécÛÇB2… —AÉ̱f Ͱ ä O¢Å8ðùˆx|±ónó&ù¤hK‹›}ÿ˜ƒâ(†ržœ˜þ,ŸÅk¬4÷Wò¶,?6x½ÐÞ~×AZ-ŒÃG+D “®®Û^ð!„× ÝÝË\Ìïz.¿ê³51àU›ct? …ÇСC’ý{áܹsß@¨FäêµÓ.WõÛßfYÖ@R¦”¥n)º‹¯½–+¼8kâÍíÌíP+2hµLÊç+îÝ»0á’'ü~?Bˆ­Õ²öò[ê· ¨ðRú¥¹¹x<~€Ç»èñ´ŠÏ>;ã)m8G¡íòå¢TJºuáù‹¸èͲlÓÆÌŽÌþ;õ¿«ÕjI’$K’Ö¡¡pµŠñbѪC(<ó§Úñê«ÅJI-UÓª ©rã±Ç˜X,ÑEôrj|¶®8Z|AÖÒÊeзߦêu ‡‰á´"M6Æh쌓†¦¡^ª—}e‹ªÞTÕ&k‡‡ù4 (“é½ÖضmÖ;õbû‹­ÇÉŒLfDÜõ~QY¼4q©ÍÜ99)ïíï6OxUÁénf;è±þÌû”ÍÁr•Z8lÈúÉî>¤LZÓs¨Î6ß©'uZª´S¬*äP›3R.ï'Ün®EÁ(Áa 8H±X‚½M‘BPÈñÙ„­“Õˆ!FF-®¸vžZφB„ÙÎAÔ,¡ž!–$à7¿æõus3SHªá †x.Ã:…BåõÎ?ÿ|lp0 QˆF£†M›€âÀ¹©pÊl6×jÈ%öèj:Þ… [ßy`Ød2EªU¾@ÐH¥‘HT¯××Åã‚?û3¶ÈÚ[vÉyÉž]{Þ{/ñÔSWŽJ&0Y­YŒµZ °ÕzíÅ£V«[çî¯ô¯cÖÀȈ@3úƒÝv[UªÂùó€ Y•Je.—›™‘=Jd³RQx„ÿ´ïŸº/t‹@‹qCC–f³|È'g_z©U.ç*UC"a(Š ˆ«Â«LÃqœT*M& n–ëwâd¡¯·7NI§‚(i F&“å)êÔÞ½r·;-H?Úóè5ŸOL’À²ÔUo«î8\”×}¾ô—X(”`‰ xÙ˜aP¼åöÿgï½㸮Cïsgf{ï ,ú¢W‚Á"J”(‘U¬n¹›Ž#›zŽ-EÏ~Žâä•ØŽž?;Šä/ŽdˉÅ2ÕEŠ!)ŠI±€$ zo»‹ÝÅö>3÷ý±ˆ²($A îï`gî½sæž)gî9÷\ÄBN._lenÉ2¯O·ÜZ®ˆ§ â®`F/âãf  ¹[­\–…ÏÊåzÌ󰦆+)ærr¹ ›ÙÂ,^¡áó¬|FoÒà~Zw {Ûí,MAA§c‘ §¥ckOD¢°i3«ÐòUµl¦[‹øüN(€Œ\~ã6ÂMiX®ü4}»>e¬tOÜUsýl•EÍÔ³Z¡»ûzIpó‚¥<Š,öš¤FÎx2W1^¯W(dsrާ™L:«5+33‰üXü㎚–eÓ)ã8NJI“³ÉÖ­³ËraÄ™™î‚ ( c¬Õjm6Û]k·#à·mã·nÕø4÷Þ·Õ»•a˜²2ƒF£‰Åb#ܾ¼_"‘cŽEd‘¡¡!‹Å‡e2Yes%“`†ÉÉ᪫z½ÞxæLéáÃršvÝmŠ6ãàyþ³ŸÍÎÎv¯Ó ¿úU‹›ŸoN¯ª²¯®ÔýÔÔp ÎHÇF#KÀ`Â…¼ÉŒMi¸0ŸÇœAz<³\ž›EYzü.§ºÛ¥ë ÊFƒJ*ÅÁ0Œ¹) ët8èG*%˜ÍX®ß(%Ub»ØÑÖ-œR£H§Çéfl2c×(%¦ÀíCj5´˜f€M £«µX*£›LØhÆ=Öi±R)°Š2Y‹f|›/j˜Æ`˜‘Àçµz¡Z·ðèÓ,ôzhn†´´y ‰Å°Úò•ë3s×ZÔ'ZzË ³[Ú{²2-¡p$ÀÂÓ—‘ËeS·,Ò& 1ÆS“kÏh–Í‹2b˜˜®4Ù¬bv:aiü2Ê]ã—Ì 9'š…ùSÌu¸Ør‡£©ÕêdüóŠö—7é3ˆX?{KÃ-<Ü ÍôÕEE-ʽ{™òr¯ûý¡p8¬ñzåNälS´¦vœïX·K¥28rT<ªÿV6>ëñD£cc<ϯsž‹GóX–=cöWd„'UÍt3*D² ²òòòC‡4ÕÕ>ŸO¥R=«™h4Ì 22LYYNÇXq 8§;À!SÑh/H ‰¸\!!™#Û£wF#L°êð¿09Ÿw¹\Æ>¹r$μ+|7b”°%4M75umܸ¦±±Q’)žW«ÕÂX,ñ`wv¶!Š*,,¼xñ"MÓ,ËÀIÃI/ò‡Œþ±°ÿ¯¿)øöºpøí‘P(ºXldCo&ý:¥zRâ‰{bÁªY4:¹ $8Ue,€ÜpŽ¢tÄ9HIJÑLͧ§á„ p!ÑÃ9~.ÖkXæó¡‘Q$’!KFZ.ÐU:lsR5ŽøP8n !- €ÛNÙÝX§Æ‹-¼ IDAT‘8’ ù`B!Ä%À`˜÷‰|%‘ Âja¥Ç-@i)´´0eeó2áÒ¥©ÖÒД/´H.´¶Bqñâ%¹¹ Œ ù´´4»ÍæúE"Q LY ¯@‰Iâq!Æ8債IÁ¨ ˜ÚóšR’D<ÎÏ!áµÈ9×áVþžsêuꑎ•K§Åy9fYL$ //°sgÛØX0Û``Îã7onkûâÿxo޵)§¿zÌéT*•B¯°8P,²ÑÑÑFY£ =7z½Â‘OÄ[º„Ö­‹ŒŒ öv¥VûptWº=ý$œ¼»ón…T1ÈŽŽ2õõÌÚµ~©TšþᇉšŠŠžŽA²‹uòÚÁGÝ¢Ñt÷õét:·Ãìvª¤c|zÍéÿMNo×hú\#ù*w“`äáÏ X­Â‘‘ÌèFÖ*F¡Ð¥CoÈj7y#^Nwð 577ÈãÑb,¶^T©|Þ¡PÔßygQMÍØáF„ÆØh³¡pD"†½^OçÒwûº‹¹}}\¨¬LQဴ­Í7"•ŠÛÚÖøŽþHÞñ­Ð·JauÄ,& ;42‚32RìUâL r38š](­æÂa$b@ ŠÛ3 ,gÙ9×S(dBH ÛL † Ž¡ó Q€JCáño‰êõ¬@ñ8ˆD ÒËâ…×Ì]xaNaõ±Òã–!H$æÈ½?µÐÕA…œ òµv÷w¶·ö “Ü+”H$õÄ cŒÁkØbßÒ÷Ç‚ð’ÞØF·àÎÎìÿø KS[â8#]qËÉ[’yÀWˆãRf†Cä ‹@ „€a@(µ'Ÿm!Ð4ˆ„ G+X ‘µ€É¦Õþnª»›êõÆ™°P4B!hÔãCG"PTr±`@‚Eäû%nFnµðy£±„ÛéˆD¯§/ãFV/*ti•Z‘ì”+Š¢zYZ­Í=q¬ã¡‡R«Oeà àÄ î“Orz{#‘H›¢í·›~ëFnq~ñ‹¹kΫ«quT‘Htþ<§R©|>Ÿd"Îùo\SÜZÌ_P¯Ühï.4·ÊÚdz™Åfé=q§Í†NœFj~` äýîwA¯ÉÑQê(§åëê••¡Ü–\C¦aoÙ^©TF³³‹D"Q<–VVöˆDPÃÕðcCßýnIgÓEZ¯?öå‡~³u¯Ëè:ÍŸh4ýý84gïŸ/ ²W‚PȇB R«Y»=ù¯ÍÆj4 •…XšfY–ã¸+&y(§“Ÿ¿ÌªYß|–dNÌfÄyéòw/åØìF«{¢¢H$Â31A療Žã«Õä/++Kàþª¸ª5Þ5¬5{÷Vtwk²³³ל9µæX²…²2mnnn¯Ý©­ +•`–š ÅàšÁC†—z{{KËJ‡ŠÙâÜâÑÑQ“)˜•e,/÷¯ÿÇí-ÕÕX£ i4ýYÙYå1ˆ@K Ç09Õšê/ľ sê ƒÓé¸À0²ÜÜ@4Š=:Š´Z­××.öîÓŠ„´ÔP;X»Õ¼5Ë‘õ¥[ ùù# #Š(WºE×¾þ:}âøükoYïX~>_Z ÷Êîý«suëŸoM“¦±,[TdjooŒ1$¦ßÿžS*u– i\.7ÊåÍuuw§Ûd7±Íì†Û­Võ4Éx‘ ¹lËjAõשe ¨4œ–´œ,ØbC¶¤å4ˆgü-²ò á¦äFÄ-)Tê ̇ã<ÅÅ•Z…XÀ°,»È…u“²mmÌqH“Ñ×n÷B… « òó!𦓠ý.R¤d1ŠfÞõ“ð*Ï pí`ÀlQ”éqZLù¯ËŶ˜”K¼”ã5="`‹£L«xõ¤h¶»9Íì° IZ•Bc‘ŠÞiz§hͳ-Ĺ½³¬§LJ$”ˆ&6ôl‰¬Y³&/¯½°0ãàAï×þ7 ºÅŠ#‘ˆPèL®%¢×ë].×Ðm6#¯×»©Á yÛÕ“QðŠ[Î<..G¼ÞbÅ~u(ÿcq_ Õ‡á0þÆ7⣣Z¡öîKwÌÀsþ¼L«•1L<÷¼ûî6¼ í¼xQ£ÑŒÅ¨€eY†©©¯§8޵ð©¿ÎØìfxžW4n «ÂÀó &b±“ª÷‡¾9Tú»Ò„VÛ¼}{¶Ñ¨—ËUbU—ƒXSÝÓ³¦¬¬c‘ÞáÁ±˜åÃ…ñxÜ›î­× Ah±àûî“F"Vľ±k8KœéýCW"$ÄÌ £èîöz½c™GCÛOôÆ7– WGÄÒ$Èãí÷ë™a„1DY30梼Q0ë±Fû‡)±+å˜K ZŒQ$bïÒ›°kéuxЉ”R0q8 N;*¯âÃ4dG£TF>'ƒsɤB!;ï(¥4ÄN«z Z0~“ŒKEàó!À ˂΀ív¤PaA8Œ( 2Óx_t«#ñ'pÅÜ OœR­5õÆ´t±`ÅL—`ÙkÉOGQps/°{íž8.'Ît‹Q”bF„œ‰]ðS•—p(|e$ŠP ^Ø*å, fXˆÓ*fóWÍ\Å‘¡ž¶æ6w8á÷ºýÁH0´Ûí4MÜîæŠ‚p<þqÖÇMtÒ èë£::ÖŒŒ¤§§ËB!„PNŽ“ãü,Ëv­C›îÉ‹mï¼.äjS´I —Ë¥V—?žu^Ê |øÿTVV^¼x‘ _èèèØ¤TJ)*‰´e´½,¹}cûÈȈÅbq:å sË\.—^¯//?}ï½ñžžDãÑ0 €FFÊß~ÛÈ06—mD22†Æ ¼œ·Xš‰D–7«è?+½cX,Ýëu»ÝîªÖÖÄ믫{{©85Ǝŵq·Ûͤ§÷ÅãÙÙÙÕ§«KØ…Æär¦«+íµßUÝ:ÆÙNÒÆbT(w˜îvA<`ì!»" ð yΜ©=r$¦ÑT^/ìÛÊïÊ_°fâÌØj›²ÊÙƒg»tå "¯¹)Ÿ¤"ìó!¿Eàõ¡^:!…H*Æ¢'i¥â4DBhl E"@cð8P$ CÃH,Á.'!! B!øÜ(@þ0⢴ U1’¯ ä £†ƒæ1›Ç:;)DA,±8ø%ÄÑDW[þ*áJYs⮆–åù«H pÅäåAw÷BIÆW3ŽÑQ‘hÎ)Ö ›>*…)ÄŽâ0½".'ŽGDóTÃ*Žò¥^Þx®Ã1CÂDATÐ9§WæÒâôȸYŒQ†Ó°´g¾+ÿª}KKº%Ûa÷G±XÊ0´\.—Ëåuµµ¢×^ƒ;îx}ßß·|¥çJÓbiÐ×—p:ã>Ÿ/ÏdÊxï½àÚµðSíOÇÜ™ëêlJŸOßÜܾq#r¡â@±ä°vmôoÿv,È­« £ÑÑ<¯÷Î;ÊÊ<¶¾¾Ï?~|ãF^¥ªW 8|{âvC_uôhumíˆB¡0œ:%¸ûn›ÍÖAuÔIÎõf=ñÄ—jõ…ììJ³9Þä¼-ó¶p"tt¨Ny+z;^ÙZµÕÑë<~úÁ»ï>êt: %%G[Z²zH‘D|Ï6Ϲgþÿ¾2™¤‡BEI¥ýµµ²#Gz«kØxÔâÕj=<¯VGºG’}eöù\g΀TZï ÝÑþ™ÓŸé²õ¨TU­­iiÀVU“Jóm¶þÆþ¢[‹ŽG~} ‹eµD,»+_¤èÑ9ƒŠróÁáD&ãøu‹y‰B,k׎˜Ð>^ìÎÛçr‘ó<B âM&¡Bj€ò|f˜êЈ±ØŒ-ætlAz 4<PèÄ$n‰p“² æÄ%™c-¸éX,04ÔßÙÙ •t:!™ïjY… •® ˜Í‹& ¢‰‚(››Ü:?œ‘¥G/Ý!až¿¯à©`jkéê­ ¼œ§B—›¥Ý ¯_hŠåÄáXKfO¾ÿWrrœÎèý³/f×Ét‰#Gd2\RrÁf±èõâúz¦±^“¾VòãóUU‡¬VëˆÇÃUWà ¡d®È̱1öÒ¥p˜Õ*•£c£¥:Méo^¬H?(“Ñ_øÂPYYX¦óù âdÅÎ=Öü†‹güÜ9qc#Ï0ŒøÈ‘µÇq§Ä§Îo8HëqwÝѬiÎÈÍèííu8ÆzŒ&SÈfóùjùŸ®ùÏ{ò49âóçþ×ßèõú³¦öfºÙMÓáê¯øa¾Vl–ØY‹‡§ÆÆn´B¯–…ã–LšJÐÞAÅ过þø“ËWþñ£ŒÃΞ£»|)ÝÏŒàl}øŸ¸-Μ¦;;¨s¨³Ÿ0½”pâ£I âd„“ë’áM"ËMEMû@%qK„›’U“ËÛh§s¡B ƒ‘µ°1æpÌ^WŽ0•¤'æ¬1º_$è :Åôˆà²Á47¼’=JDyh^s£Ã½±ŒG¡™9mp¦…çþ°éqÊC'OœéqYñe0˜¦‡uúòÖêM™E™µåA°úÀêž8)8ùFåA „ÊË=œÑhüÒ™/ýãý•iijÚ°cŠ¢ZZĹ¹¹½6›jp…ÔjÉý»v ¾’Ýÿ÷/}ÉÎÓ¼J«Vk ,Ç>l>|X+•Ju§N•Ÿ8toºªW iس?’J¥æ^óZvMII¦ËèzUõªT)õù|‰„69½_QQÑ J$'þîóæÇõKÒ,=÷ÞSU‹ iê×6½¶W½W"‘46V½óNU<W¯_ÏÊRd©¾úÕ3YY^…B1ìr!©º™î‘ŒNÀ1jæÃ’c²X$©ªÒy½^àssƒVkmm<Ãr!;Kj”HÖ=+:r¤¢¢Â«õúÒ|ŒJU»N¹i“°€ËÎ*|ÿÜ*Ÿµ: ˜5¸¥uüúÏÊäã<è |I ßÖF%ã*•Z‰ –7›p{Åò™<ÀF…UZ^"Lå7i6aÀÝT÷¹'G ,«ÆZZ<üŠ'ZÔpת%9'޵Æè^âÆ˜(AQn†3/‚3MXJB» ê,5\úe7Ü$T€æ• Ømœ>AE(*÷ÈkãPÃëô¹sË¥ÇE‚!qj @ þµxò xggñ%¥|iÉøó0+—ÏLùYX¯Ç%Å|2ÓšõœÅˆ­9¸¬’«(ç“WÒÒ±5Ÿ·æâ‚ÞšÏ çð-ÖZy«kº©n'ÿœE££Rš¯æœ „•Ê2XKW·$— –íʳd!¯¹ß¿$ñ ‹îZmȪt£.ù?—g†„ˆŸömIi@€åsZ¼’£üs?_o,æS΀£<4¯žÓtÃ"KyjzlÄô,óZ"‘Hª°Üîâ{{zŠŠ:Þ»å‡N‹“++»hÊŠF•aWøžÑ{8ŽS*™[om²ZE‰Ïž5y<ƽóÒ]c‹3­Ö®¾¾öv³ç_KK/” £QYcc4JŸ?v~›m›¹¾ÏÌq550¬}o°pð_ýo$¾ùMŒ± Lw5Ý•J¤§§÷÷˪@ô§?mºxQ—ÐmØ,`yèî6›tCö¡6EÛ†Iëé– †ûìNß¾ÀT|9oH¬³¸Î²(8XV·åØ~½îÝ?ÜZÑj³å˜sòDy\ìÛ'ìí]Ëù¸ì ¸zÔüxܬNwØlk¡/\€hnôã±A<>TûPøð½û{}}‰ººBJ‹¥\k°&ƒãŒÇ^Û´É=èî¦×¡®“﯆ðÌ#N^ÑñUXy«‹úQ?$=q4øåÏB ,!Ëå}uqK —.-°ž‰Ë/*åÛtó€RùôbI7ˌij2-¡@˜f>dT)/]VâT‹$”é—õk ÕJk(Œq&^¶9¦6ËÊiF>-^{²Y¹\†æÈºbx™JÜŒ½ð*NÆgv¢ˆ-Œ2©ÃÃQ>§iÕ‚|æ—}8q¸ï¼³ÿÔ©Ïþñ6ûGŸlúÄvÞ–yá[—%Ÿ¬®¬T9ÕÕýÐ;ÎskŠÖœŠo {Åcv‘Ô+UðŽ¢·ßîÚ±c40Ú¦hKGé‡eÜuWÏ÷AfÐŒE±ö;·ˆDG^øìöõŽÑse§O·oÞüÉ–O¢T´ý\û–øÖ¾>kQQصx†ûJ6lX¿þbEÅšÆFÑhÆ ¾þO¢{îÆÝîµo½Åßzk¿'p›ñ6ÆÎ°¬B,†rá¹ ùwÏ~|¶®¦®½}ÈÕ`¹í6yÇï~÷¨\~æÂ…ÆïhÎxÏdÏØ~Ï—^{íØ†-’ʳ•‚RP(T©F S8Œ--Cçdçe•uun§¯Ý—››_Pµ²Úóç q{»6SG÷ÑǨc_©ùʯŸo(.þªÛ]_-îÓ;7”H”ÿíW:.vTœ]Cß²…]sër+s«¹ ÀÕÏÞ½a(A)ÅÒ~ÔŸ+-ફ–["a)Y1óùÁ")á1^xÄl‰9V¹å³Ÿýü /¿õ­Â Yî¨Ùç«z»ê®íwíiÛڪϰççjþüçpa!üXòcy­üö³·S÷¯gdd ÚGâO=U¬×‡Ú‡Ìfssssã'•A,¯¬ìo¡>VFOË4·Ó´íÒ%c¡5Ý¡ÑD|0pþ< DŸ|Ó30&N“öô<æ£i>ø ÿ–[Zâ½|‰³·£73ó¶<ÝÈ6W}NNqÃùxჶtt „z{lÃiûÿ®j3·¹Á{ÔPm¨­×ÕÅšš c*¿Tçpiü™ýÇ5-OÛ¿Æ¡í¾&B!,Ÿ•Â±à €V, 4 .72èg†Ó±,0 „ÃRéÌÆ\N¤7àH¢ ШfV‰'@­ŽŠ‡ID Q`!3^ ‰ß‹8À5—ƒHÀ#A‚«f½baѬ² :¸Ý ›cähxÒÓèèí…ÜÜÔ…œNÐ/Yb\£š›o*k‰çØPxá ŠP ^ÌSÑi¦)gNÌ3Ÿú Ôôãj8zhîÅ8ç6ni— QÂ蹺Š0¯à)ÛJñ$Î@­VÓ4íòüj(÷¹1º­màG®µµ%·Ýέ/àráýoÿÍfó•—·µ·§‡ ôihh7 }aWð®»Àé4Üv›¾§§§Þ\ŸþÐîÓ}›¥iæµâAq‡§ÃxïÞ>·²K2`/ùî&CØwú|H¯Ùt¸GS³û{™ç×WD3ºM&©Ë¥T*ٛ̋]SÃRÔ¤É}›yÿ±Ðc6›Íí6Ò4Íó|‰áe×ÐУºª¾OÎp[âi¼ôkÔYë;‘ó‚–èÙtã)ù©Æu¹é»GGÂöwû²-uVÑo0R)¨ÕïKÞ­‰åŸÈ/--µtw;CÎ?Ôüá/Ñ_&‰¬¬¬¾>DQJXEN40`îÖ|íçÄÙnì”Ô¿&P*ûj„¡uø%W3°éÀ­z †ÕôBwc§•2@ãYZkày.;µSEœßC˃͉ò²yŸé ØeC5u\W?ÅðPZƇý¨©’I€Ì!+p÷ :G" ûÁÂkÕx¸*-ä/õR*%nnB±*]Ëõtѹ¼;^/B1T\ÁIİÿ]AI`qw/ 0›ù`é´ØhÆ@Íû=ËÝaÂÒ³j2$IK›o6´Z™ æ±Æ0/åQÝœi*çÏN‰ÑC.sšgŠÓ%(×|ö7 ÂtÊ…P°O&gJy¸…äÕ ƒ‹æ¯H Øôi§ÀæÇ˜NÑJNö­ÐDÞ]÷ÚýÿSq¶ïÌÀÀW^Èp–—SOzƒß¨4öõõI¥yûömfGuëlë²^»PÎó ÖjC­9­¿ÎùµH$ŠF£”X,ŽÅb‚ªª¿ÿj°n°Ì½5ªÕ몙woæ³G»{á~<ç=ÀɲyM>ºA* äæ6¯³6¬ktI®[n9?š©Tf=Øðà“c1@…p(lëÍz‡ÃQU¥Y‰~¬Öé½ÅûZCØõµ¯9lžÍGޝÿ0l jÓµþ“4J¥ìñÏù =zPúôû»ßL9ÿàƒþõ·#„̽æšH Çq Ãdff:UU¹\.D£:Ž¢´Z-Àé­w·¸âðþqsâ¿ÿðüÀÀ-.×'޽(Õ%êÔG׃wú;ú¿ø°§d¨e °·‰nZne.eÄB!$xÊ€e‘J«jØXXJ¬Óó=Öhp~>Ï#œ™Í³L¬Õa·%(œÁk•¼J…ÕJ‹¢<+Ÿkårsø’2ÎbÂ4 /R✠¾­ƒ*Èã×n`¹8dfs"–ŠA¯ÅÙ9|< £TT‰Ô|zoÐñ èÍ—Ÿ€!’)Ó—¯«„ëÅê›'¥NtÂådŠr9) ]‡ÕH  ³sÉ[]~\'.õœ(OâË‹y,Áóg}zXÀ¥/ÁÊ ÂfÇèþ¹«€ ÓˆC¼bÜzKäG™áJ6•B¡P‰²Ð×’Kn;ºös—,ùžw Ì¥šŠS`}$üÄbF#_Ww‘çm&“Ißܬ˜¸:oeoÝм¡87·ýÔ©ôô±x<Þß,®©vh‹"÷¾óŽŸeÙP‹+ØÒrvvdß¾Û‡7lY÷ öÝ÷¸hÌ:ü›ÿSø+ýë2Óæšó5în·Ñh=qBÝÓ#éï_sö,X,o‹àþS÷‹y±þüù yxxxxX;ÜÃõºÀ·ÖVyEEUS»`xãF¨­õœ9³3º-+âݲµOváÂè¨ß–¨Þ¸6޷Ƭ üúªtx¸¶t¸ôÞÓºò†à8Ž“~òqÆÝòGÛòþøGæðaˆåÆ>üˆ¯å÷ÞùÇõw£VíõNÕ3ÏÐ)†såNÌõµÜ·!¢Ý¿¿,+s ó”_Ø=D -£*¯ ©ÔjXWÇéõ8?7¥a…22qQ ŸÇgfáÚN(¿é” Ó`‘j-Ö™°JÈÔ8=‹•ÍL8;4(ð—@RŠ€çàþ{YS:Öh@À€R‰#Q0±N…y 0€Ñ„ó ø´4¬Ó@vÞ°Sk°A F3ŽC¼‡êÉâ³–»³„ëÂò̉ '=êW…Õ ]])¶wwC~þÄœèï3xú° IDATOQ¨¥J—x}(¡©Þþ~ÿÒg%‚8Ätˆ“ùy=ËÌãJ›Ïç[J(˜1›/%´C€e|ò˜A!Нèï@@™ÓóÕ* Kßò=XYˆ{´ÕÐÑR®P(d¾@݉GQÝ·Û´»3£óä=÷DyŽâ½¯«2}™´×[ö/ÿR’™ÙØÖx¬ñÖSMº,[Öú[C}¨/w»ftÛ6\QÑŽ·d£‘hÐ:8û˜¢ÀëÖzNŽ¢¨ZºÖP_o4J6ßuÌ[³/˜ì³Xb[¶À¹s鯾š¯Qší²3g„N'˲\ãƒ"ÇŽ´fåӮǿ¼=Ükè>/Ú›(Ê–§§cw^" ×h4{7~ÔX|Òãõj·Ý®¿Ç¬0þXqðb§ÅbÉÉiÙ¼™ÎãQÙí;ÔÀ€ @ ‡ÕßùN‡NGQ” » 3¾µÂf^û¦YÇ ƒ-uÝ#ª•F3ø_6÷E™D"鵫O뤔²–ÂÛks¾5±u™Õ¹´p00„<>ä ÇM…CI Û å øBàõPáDâÈ1LyüÝÝ”ÃF¹½H&Áˆp‚>j؆Â1š“ºØL‡Càö¢P Ïyw  räò¹ÌªŠ…%Ï2\Ù!‰DrÕÕ) ˆÇA8åÕì÷ƒ\>=t[¡€@`Z¦€X ‚ë±*J^ôô@^Þ´ƒƒ™9G…Õ€Éhô.bŠ5âѼJ©ªÄð(qY¼”›CrñPšWpTà*ƒh»€¶¯‚9G   %_»Ô_xBo{~Z7P¶œèîõþ¦I•žÞÝÝo\oô‰}Þ˜W-ÎI.†(•*m6¿^¯·ÅÃc»v•(•îaamÑ€^¡l6—ÏøcMäRÑ%õ°úÂHG£kà¢!¿òøo¬5 äýMm‘ȃ›Ä1_ç{ëê»(Ÿ´ºé¹ÓºÓŲb¹­ÀXQ·Ý–p:»-Y–½}ïÕýèïû¬sPët†E¢h…^ø‡”·d~5çQŸ·OÓ6Óºáfqwù'|3_ê¿Ï-äýxƒÔ)éÌ>¶ÑnW¾ôRðÙgu:ß/Ó~3Äè³”þà ÃäåñßøF+#R/9.—Þ<‡3,–ŸþT¤TÞa+ûdM«~» î¬ £ç£ Ëæd¢ Ë™-}¦®âû6¶v·6}¹å¢è{ß éWôÄü˸+ò(DCf:ŽsX.ÁŽE@¥Ä˜±À ÅˆÁ‰¨”<ˆX xâ $Sc! -|""Agæ×k0ÇAºGbX©˜ùù‘€Ä 5ˆgñY“÷VCjáŠY†/i„Ð\³ÁIa!tt\þ‰1 ÎZí$;úû§¹Þ:;¡°ðZŽ;R) 4-Ôà dd\CÝ8ôÄ]5ô˘6ÇSd³¼‚íÎ<­A6'Æô®¦0ÞÅòñœÿ$þûãGOq\[›7e‡²È°Ífßñû÷×í¥Ÿÿäs÷¼8X1ñYrÛm‰5kZÜÙî¿+|N]Zêp8x>­º:üAÕEOda¸çžrßg×¾³öqùí½ÿÿoú=?*?¬Éƒáá;Cg$o×Ù½ŸkhùÞÿx㜥Ô\m¹d©iW*'¼ÞR)ÔÖ†1û{9ïÅ q÷è¨Å¢KOÿ@¶ý£6kïGëÖž{®ó}x=ôŽ™ÞÚó9uCccWžõŽŒhFVÿȃ‡_e¢§îüÇWw懷ˆN–”ôÙi¡P,ô MÈ€ãqfbRVFFÆð€M§Ð¡ Bv»A$ÊÉٳ㞖xWxËÞš×ÿ¬¸Ûú¥½ö½V蓇Fm([ÛýÍôÓÿRþÅ{oÞQr¢¬¬#åðÊdá•O@£Å&–ÉA(…Ô¬Ña ‘X %¨Ô Ôàd¦šL, P(@­Á#¦)£ +å Óa…(ä Ñ^~œ£ánªÛ†l¹|®•·NÍq@V>!Ü”¬h¿Ã<äåAk+°,$ÐÚ:s\gœ’¸t "àyhi«õúÉ“› N'$žêë¡Vûƒ¢®×¼0Ä!ÌL ›?Äû*XòW^¯W,¶ ™%ªÑØnyL­–öEûê×ÄZF,öÊjO¿~“–'ÚlB—k².Ãèü§óní¾5Ýlvÿò·íb–5%º&M­V)Í>Á tºj‡CNó^y—MÝ*±Jìii¢o<‚ñ@»»½Ù*K)ºß.Û7Ô\ÄUîiªhm<ŠFSúÏ‹þºûŠQÆo~C5·ƒb¿ÖÎKhÚ#Ì·Ùòè„P&R€Âd¬®Ôë=HT:•.£$S¶G­V8ÃNWE^ŸµðOÇJ\®Ê;›î|f·nÓÇO%‘¾újuáÉ/;‚UçÏGß|;=†ÊN}Tó£Ãö ëJe™ÙRÐ+ɈgeE£TÐUæ)“y<9¹¡ÚÚ±Ì̱vòêb$WˆÓa•·fᬕçG ,!Ëãcæy¾"®(‰L:ææú?K¥Rà8Žã8¡P<ùðC äçCŠÂaÉ™3BAA¤¿vã“…%¼¤­­mñ’LÝÎó|"‘‰Dííàp$rsBÌà R­f‹I«U ¥N¿ZP˜â%<¹.Æ:FøêWá]Ù¨Õêôôµÿöoðí9Ü¡}¶µý¢ëÌð}Þ¸5t×ë‘­þÈÅÿPò“ÜvI¨ÓétùË%%%“uòýà÷tôœŽ…¼HþÞáOÚøòÿ¬ÚeÓzê¿T.E>Þú7ß9q–W‹¾¬nA‰sŸ9Ü´ÿ`v»¼P;p‹½øá†ÆÖ -Û¿¼ùpíEI´¸aÆ¢ŠŠÉ£„B(5dZ”oÿñþ¯ÜÿËßeˆäô-Œ®2Ö"z}£«ë‘‡>ûþÀ{ƒ›{޵=}8ÜŸsÂù†áûçFàÖ Œ<Ôüêᄌ勵¿ÜWHiÞÐ ºwØê·–œ)SYE"X»–S«½‡M§™ïm{ûçyq§ëÛy·ë¼ÕëÕ¥;^ýÏC±/ÇνûI.*ýÐѳ£•«ø°~ï7¾ôè[ûn‘jD"ÔÔÜPõ]5chlaOÜu#ñ!j(yS¥óééx¡)oŸ†˜M§屖Äb±b"¢H­VOnŸëš¦³Ö*Q«ÕS¼]© «ÕjHK›YbJã ÃÈd)òD/F’©Û'¶,yù²ár¹E¢ëåÌ¢‡lAŒê§OÐÎk½i›€3Çi»&²,”+’‹æã®òÖ¸÷;T¿“¯ÏÏ®kÓ˜ÆÛ…§^ùJÙðþϧwÿ¼€UÜöÊŸÑg¿05qÖ=÷ÄЦ¥{6üêÁ/<Ðÿ‡—¿4Ü{LJŸß¼ÙóîˆXj’üiGFö‘´ZÓ;ûßôõTasÉÎs É [{¾sôú³8íƒëݦ¶ ¼„ÓþóõÀgjÚ~ºbÎßÿ¤?|¦7û)|`ëÏ#RYSöÿê©ç‹?ÌxħîÉWüê‘fäx'ãiÿgÚŽ×]ZsÜYÑ!ŽVgtJ$¢nhPÎýü“-µ´í}©¬Sgpëß­|P²%~qÿOŸVßuéPèÍÁ3yÿ3z!¿wÍYyøtÎ÷U;»˜¨ö;Û•ðèOïþšw-6ßrvÛYÍ×M¬E§…ãÀëMóýú‹c}ˆÖýͶÁ"ù¿¿ÕþèwBç{ïŸÿçŽïtÿÓéwEøŽÓâµ Ãûû‹?¸ã5á7ß>†*ÿù`Y3»nMíõÖÕRAM†L`¨?Á¤eòŒb,DCØë¥< bcØ3J¹1ˆ)GÀÆ@*`Z™â .…± Ð0ÄSq(€ÀJ`hº@ñ€À=†F/¢„X1ká”$ý}(+³,`<\S»Q/cú†íJ¹Œ¢¨ÁA“N£6¤+dbÊ•ó66 D1FýkÔÝŒ ^NvìóOçèìê‰D£)÷Î(9õg(À,Ë-XrI7£âü%y¸åc^¥RÅbq‘h‰@‡B.‹Åã"á’5(‹0ZÊ •›Ì^öà9N­VÅâñîSG ¨ãJÕ ®æª“[â‚pþlÈ–†Ó`d WÆ… ~¼€Õqˆ y!HéíÆ´Ëu“e4BXJGQ@Åùim.R\kŒÙõ7bø@¸aÜÌf³IwìÄÙX`¬¾þÔŸþðû†sg_ß÷aWËÅ7ß|³«x¹¥[ÅP•_T$¾òk‡f„%Wžò 1ëj*¯âJÕé 馫YA¹¤¤hÞn§Ã>ÜÛÙÞyøàGáKí] ®Qû¥æ‹í]}KÓ´^ºÔÖÖ±p¹EÓßÓÑÔº”« u]<ßÑÞyª±e Û¼  Òð´Q´¤92Ï?]T—ò @ û›» D‘”»`’‘RÉŸNd“`E7Õµ&DG8=íOŸ@XQÜÌYêã ùO}‹Eš­X¦V(Ueå„°kÔU˜»ÊsG.+*•J&“‹„t4z%/mD©Õj…üÊÓ¸#J"]ERµÖÀ…®&ǦB¡Ð["‹d©ÐL^WbÌÏÊå2f‰¬9½ÑŒyÞé{ê+G*sôÕ'ëŸZkÅÝKØ #°4%¬Žî‹ÇƒÆú©^šÏq¡°ž›9cw±>ÊV°ˆp(/ò„‘g”±òù &nV®£µ´ìsÇJË/Ó¦˜GeË ÌÊg¨£q¹E Lcö¤P”dæ¦,{-G)ZÚL>U5ë–´=P(Ù¹K™Z¶jýæ%líúq¥P(²`VÛÜņ»Sn-¬¿"1„›’èp @XAk‰@ a>ˆµD 0ÄZ"@˜b-ÍÅþ]ôæ»–[ŠOWÚáDA«‚Å«‰(t•BGøT°,ÖÒUÜ]7¦Ê§–O¡FV”0×ÎjWǧ“•£µ©Í’ ƒ@HÁMœoiÇËÜŽå–@ VäÉI ¤àÆ-u½¸ù¾Wàä3E4MïÚ°=Nò÷ôm4½ëßfUIÅ´*û§|!íßEo~ñÅñ½›_ìš,9ñ5«ÀÜM§:üìê]/nžÒÎJÿT»1™Z勻蟘غo¶ÖR*kÆÆÙ§<µäªÓæ Óàì~Xðæ€Tjêzq3½˜n¶t«QA)¹Z›~ò]/nž³åý»èÍ/îOjá‹»¦5;cœijÍ©ÒÌsÝÀM¤&aœo-å?u|ï°ñùvŽã^Þ]/n¾¯ùùvŽã¸öç›ï›|—o㸽O@úô*©˜Ye'Ÿi} yx¦ˆ~gòÿŸïŸQ`ï'ŸÙ9ý&N%á\íWÏ¿÷±'÷ì·ÅÞyeãc÷®à$¸7F#S«¼ú½ùúg1$™ÚíIU¦TÖìùóÊ¿ê´yƒ48G?\Å͵WÑ3å{“ —?S4ýžZà^žÝàÊWPJ®‡Öv<0y+tíÛsò‰R· pò™ŸÀnŽã¸W_NÝl׋›ï{剤žÚŸ‡Ž.Øñ27ÁœÃIn5ã,w”w×¾='ŸøáSùù÷>¶ñ•wÆï¿“ Cíxyއù,橲ñùïíÈ/,ŸösG×ô;xâr;óK˜ªý‰êùOýð‰ñÃj{,ÜÌ×?W ÀÔnoî蚣î¢48•U®Íë¦Á9úáÊo®ýï¼O<aÇOÀlÌ/ê*WPJ–HkSºsÒXš«åÏï~j¾žêÚ·çäDWCþS/' O /=sò²ŠSr3ª‰ð)f¹­¥ÎÖ“ðÊ}ôåû`ü£krëüß/ã\E•Ô”l\„„ Wßñ@òÁ°ê 7H#s÷ϵ²î•ip*«S›×Qƒ×ØSn®%³7ÎyÜ\U JÉRimÇ÷žŸüH€ç¿·ã®ÿÎÖ“P^8­3÷ï¢'»Rû¥ä&RáSÌr[KãC½IÆ?Ÿ&G|÷>ñÊã½\E•t¶¦xš¤’p¡êÉË«ò±p#42oÿ\‹)•µx NeõjóziðÚúaÊÍuy7Õ·XQW¯‚R²$Z>êÚ·.wÅU]ÿ³ìØä àçJÅM¦&§”å²–&–;¾÷üÆW~2(Ôõâ®»öïºÿWP²qü3tºƒl©«\9S}0·„É ÕÙÏ®.†“Ï<óÊU<\–…£‘)UæêŸ+`)ë¦ÖàTanmÞ ^K?Lö玞€ gßq)Ž{s((%K­µqsé';'¥9¯ÿ9$™ÞЄ…Öõâ®» J6Nzßö¿óÊÌnb5Ëc-íøÞó_¹/9´œÿÔñ½åÏï)¹7`Ç“[è¢=í~*Z•”MήrEœ¯}_óóí3>½RI¸¨ê;xf¼V*7F#3ªÌÕ?‹ %)••rã<ò¯FmÞ°{ê*úavîx9žòŽ[X׫QA)¹Zƒñ¨À“—G–óKÙìTG`Ñ3P˜ŸÿÔî ½ÑïÀBž¸›FMòz½ êë뫨¨¸Ò,ûwÑ?)i?~µ_;sUïzqsQëï÷¹šššrrræÚ»Jôuûç¸.Ú¼)ô•dÙµv#n·›H_ËÅ }*ί/aIX qKWÂå4-SY‘‰;&¦¤Üä\µFVWÿ¬.i¯ˆ+ÒàŠí‡+Øub= §òiSá&bQ¹¼)Šâ8ަéë-ÍÂä?uœ{j¹…XûþÌÉ'ö^ÇÇqó¸¡úºZ\¿þ¹\‹´+K_³¹ ®X­-¡`+]_IVÏ“p*×ãúYP_Â’°(OœÝnW*•&“éDX—ËåóùŒFã\ˆ¾VD_« ¢¯ÕÅ‚ú"–„Eyâôz½Ëår¹\ÄŠ_^8Žs8‡C«ÕÎSŒèk…@ôµº úZ],R_Â’°¨±%`Y¶¿¿ll c|½e"ÌMÓ*•*''‡ap¡}­ˆ¾VD_«‹Åë‹@¸vk-@ |:Ymsâ@ n,ÄZ"@˜b-@ ̱–@ æƒXK@ óA¬%@ „ù Ö@ Â|k‰@ a>ˆµD 0ÄZ"@˜b-@ ̱–@ æƒXK@ óA¬%@ „ù Ö@ Â|k‰@ a>ˆµD 0ÄZ"@˜b-@ ÌÇ|ÖRÏKÛÕ—yúzZ½ý¥˜ørû\ ̳{2õì@ `nk©ç¥íêµÏ–îñN°öͲ{¶½àõz_ØvE\ḛ́°–ÖàZæÛU ¹*ÎŽ@ Ÿz˜”[{^Úõ,<×à}2orÓ¶^¸Q2@ ¬RŽ-úųõ;¿?ÅTšƒCS=w³pÉ)ürÓü}—÷'½x“;炘Zùr‘Ôu==íø=/m_¸Õ˦Ÿë„ñÐÓjõc»¡þÙµjµúéC3~^ã ^Ik3ÅOÊ¢V?}hɯ­‡/ä”:I‰&6¦¬H  $•µthßnØyï:Øz^Ú~Ùs×ð\ÑŒ&Ÿ^û,<×0Ëm7­–·á¹–Ǧ¾8w?¶ ^öz½Þ=;ëŸÝ•âUÝs ý¡†‰ºðìÚyën»w'´tMZTÞJmÖ?»v¼æ¬6g³í¯wÏN¨{®Áëõ¾°mÆÏk<Á+mm*-?ÛW4Ymn®¥‡çò­‰J{JÇëô¼´ý±–ç’[÷<”²"@ +óLnYª9q‡~ñlýÎ=/½¼'Ÿœòú;ô´ú±–çÎ6MýâYx®aòU™÷äËÏÕí¾U÷ÜËÉ:Û¾û\]}{÷¬£æ=ùÂD£yO~ª1”ªî¶{wÖ¿u Y¢çÀ[õsX„;÷LHš”çg×Ys­'xE­Mã¡ï.<6xm=<Ÿ/OTÚöÝ)"–æ'·n{r1²°BX"kiîᨖŸml÷edV­‰7h’¼üÒ)/äéûR¿¨/;}Û=u{ªº—Í¥yŒ¥º"ëty®¥8ÁÅ·6•éåæäZzxn!“Þµ$kŸ­OŠú™‡êv?F|n@X…¤²–¬Eu‹C¸–¶µI=­VOqúì\°Â„¹4±D˜Ê÷0ì¼<•Òëð³å=ypÜyHL&@ ¬dª'˜Ü’ÊZÊûÌCuõÏþâJÞhsX¥ß?Øð<»6U„ðìZ=]-‹I¾ciš?jöpN’îöúÅHx'x=Z[¤ä—ۿžßÔÎ{ò ·á½›@ ,9Sc•·”÷äÁ=;w?6#Ð|yO~gýåàž—^:4uçÁÔÂ3j'.øî•ŒùL¼˜{^ÚõìbÌ€m÷î¬ëgóŽ,í~lB CO?¶»n\kÑe òÐÓ3|R3"~&.Á ^{kóJ¾0‹ëáy„|ú¥˜yý\6ñŽÖ"a™™+niÛ É9P“ñ'?+šÿµ¼íïž»Vy ¬ÓöNØ_3}0Û^˜pÎ$«=”*|.òž|yRÄ]ðòâüDÛ¾ûÔÏgcÔ=·§ègq:S#¾Nžß¾{žûíÝ-Â0àrƒÄô»A#ð{Ìà°ó°; ‘œ¡G@@¿…û>՚浩xi_Úü|ļ¬ ËÕ‚IDATï—.»oM°ÑGþÔ‹+|d½’á:÷Cƒt;­Ã>Vª_-ü¤^ŒñÛ1|V5OŠ´aÎt×ý·¼ÿ×nY”ùd#UÅIY–ª”®Ú‡F‡²¥jžLËf«è\ xY‡²¥Ñ"FÝ u¯n  ‰¶~>øO{ìa«œ^ÎIEND®B`‚PythonQwt-0.12.7/qwt/tests/data/vertical.png000066400000000000000000001024341465265754400210110ustar00rootroot00000000000000‰PNG  IHDRÍ:E:! pHYsÄÄ•+ IDATxœì½?ŒóÞzç÷}©ËÕ\ZoÄÆH½œI¨ºVÁ¼@ÒXœØÓDÀª×6ÞQ±2·Á6nV£U° º«n¢*²3âÈV…Öi˜—FšÁ6Tf,K—ß-ø_ÿHý¡þ>@øýÞ!yxÎsÏ÷<ççù¦ëúOĉ¦ •{CPÂToÀˆõ†×ˆ Ž/‚uÿ-b6ìc.ØÿÜfC²ï*ªŒtqD6<UFºØ¶þ_¬á³_† £°=Ï»¡‚ãëXømìo·#Û”9àÚhH¾¾Áìè˜è:&€“”¸oz}h`JËFºŽÏððêØi› ɾ+h RNgïý‘l¸ ªŒt˜Úíqâ&Ù1"*¸œg‹Ïð“íA1Ùp¬Ì#p öµÛñmo}hï`"ö¿3X ƶâ.B_¼ûOó) 8vÚfC²ï*¸\ưI’ w@C²Þ†ÑY3';î€g ó¹€…óg²áVŒ†Ž‰Þ9^Û‹Á¦'Ädaú]lŒÀhñßõša>F€˜ñ´­6$ûZhHJE ³4¥ãB6Œ„ÝÉ0uiÞúqªÿ²c8y¥ë]2ï]$J/>! îǾv;®M±ÿ¥ø±¤è“=ÍClDSÀ½ `tú–­¶ÙìëÂÊ9]D{%1 ÷†ìT‡>Ñ¡ObJÅC%‚ ®VvÂ.£!ùú³cGMꜤ¸Ó²L~ªCŸtPZ¾ŽyG7!"ãl¿È@LŒñcù<‚ ‚¸2Œ†Fp íìÀï1ƒÅÀ fý‹íÉfñs=Âä}}ésä—ž^i^zzq¤yééő潥Gš—ž^i^zz]?jzË17혜Â6ÑLŒ1ðÿÛ|BvË-øt¸!ôX GAÜ+a"¼³¨þð¼J€ð¿Ÿ¸Y4ˆ{ÿf>0Ùpº>Ùž±(¢JÄ‹¿Âê‹ âqDÒ/†Gõ63XøµOû¸«C¦g—§c—§k‰kÂ/”˃Q‚ .™ubÞt¬…7]»Y4Ígo'˜°¦k žOCRŽÜL|ió|¼”„v¤¤õ‰øñiÞýʼn"¥ ø ¡%!±\WÅrýòiHòymAõ³;ižw7C'Áô Ñ$Ö“ŸB×'Öáçn@‘8¨[Ò 'Ðûs/Öë‘Ù$ QDtcþ—Q9¼eç(û !ÌQÍ> )#?۶€Xû„®O ëŸ¨â¯G|QýĉåvH4ïEJƒçSP’ëíqÁ‘x( 9åyRÒëÀ´$$>·‹¢ÏÛwé Ô$dɹ6Yñ}µÓçyÏ{Д”ëµnÊ_ÇÏáŸÿðí'øßØú§KõŽùWê,J/ÆÊßó•Fõ}½ª/ÿ¼”„ì÷–¶ØÇ±…$ë×ɾ*§ƒ³~Ïбß6û¯³¯œ‚äÚ~ùÊ VD{'“¬/ýužè–òŸ¬~È|<Qœ¯ËhhÞ!åþ51îxÖpbyýð½sP$¨|ÙžÄý–‰ž3Ý%ÌÑ×'¨‰:öq]Ÿ ±Kó¼J˹ö /cÎë…9úbmêzByjݯ?ÍŸPþ°¶@éïl/ô/&Ð;¿ü,ý½_bðó[Äü³ ¼¬;&˜ÈX¼ï¡šªÌ¡÷2uï­·L`Í>Nù# j×o'Ë n ò‰ë ö˦åùw ˆ¥)tÛ~[í@S8t3s íüµ^Ì@öh ”WYŸp)M•¾gÛ~ÅDSöDwkùwj_ñÔÏ­à%‰etH4ï– •9wÊÊÄsA/ŠjjItW¦» ¼dØi,š¯žQ-ÏÏPè>x"¯> [˜!@þÄ¿ÿßÓ¹o¿ø÷(†Mçj F×4ÿˆR`?,z#¼ÈCÿòÊf¥êyûüü‹8&”§Èv\/K©3(T|ÞXHúByŽl—CÎ>þZ:­yàœÁÛwëú‡quꉚ–D·Íº×:ç´Û »>#”?*Õ‰†>®O±ËxïXJËèhƒ¦¤lo†…œc‘©~º^D«°¼¶j¢\…í=1Pê@µl®&zµøwJ÷”/9lÖ÷(ö ÃD¥ÀXkz*·4Ȉ’¾†ã)?Ñ*Å×àô¬³¦9ì˜Õ}ÁDVœy^¤û ŠÓ;€±A^åáhÞ- t›IhnÏÄà½k®ŸÆZF˜£0J.½hyÏO€Á‡»æÈAâ¹h¡Æ`$šx~´DPS“hv«çÙÞ¦¢ø¼Ìò7ú`Üô¥âòšÝjþÅo¿ÅpY@ïO0À¿Çzg…Åx°@f½›ƒÍkf^²Ág4{ PVw°OByÔ“k¼Ìðô)Yµó'˜À f×Z„ü­ƒ¢ìØØòú¥•uRøŽo)¿K„ö%˜ÈG®ŸëƒÄòxÐwšwË…Í×4Ú¢NËé³ym÷ÜïàßÀ@ÇöÊý©õ"HÛêLEq†êÒ[°ÏU¯¹4Þ`§?œZÇU¼#Rmû¸M©@˜£UH!—K[i—f¨(SÈ ýSt–·ÉŽì°Ãò'<Ï‘}µË%èÔ ß¾C‚½Î·-ÿ~ÿ©ˆió øCïþúD·ÅÇ@eã”âf¡Ë7>ñ!sàyûqZõå<l·Ïó{ ¹·€4Й ÇÞl |€J!…Üx}éÍÒpû›@_tòg Ó²…WåìûßYoG—§¨IßÁKÖ¿ó) sàyÎ-Ÿ˜£Õ0 „–¡õãa #rè©@~y@x@ý\ ôåñù¦ëúÏ8^7…Eš_Š”Z{¬]*écæ‚óäïО·Æ§yà_üþGKL©íŸ‘5õXo÷^v|AíJ¸'±ôoëÄ_æØDs>ÍSÇq!(RoΛˆâÌ{còŠPå4Šmç_ Ô†ç¬ B´$¤W e{·´SÑy «Ÿ[ážÄÒÁ™v>$šqHD‰crbépjѤ5M‚8´g.q îY,ω&A\$¢DTî=4×¹!Ñ$ˆ „qËWyhÄ@¸ïËË‚D“ ® šÊ½H,/Úˆ°&Þ ¨¾((+Q(ÜH#Îo÷]S4…ƒdG\9zÌN°KQ:6¥ÏZ»¾È›v§ÙL¼ùwØ”?¯|øö(ýùÿ¿>Úo~mçq÷¸¥±–/rûÙ^?ššŒ§|gŒ·I»÷\6$šÄÚxƒšÂ¡}{_Ðj†]‡XšnÜ74Ê=_1C¿oEÑè?=ì:,EJÎÞ©Ã)2]nMú )‰Lgq×Äœÿ°üm+Ÿî†@û-Jÿ÷cð—߀Ÿß€ÿøKä¢î›{Šò…¶Ÿíõ£)š&ZN4–]¾¹ +ßâm’X^$šÄÚxƒBù ýòj Âc¡öž}»ø<.0êíîím¢Üÿò¢d&ž kò sW¿PÞ¸÷èfâÎ?°=¡åÓ’hŽ 4ÊôßÕÑ[¢ã>EùÂØZ?¾ò {ìN¥|‡ÅC‰åuA¢y÷l‰7ÆXF}<_ݪ®í^ÌA=´wÅÔµ$^»*¾2jJ uÌ»…Úó¿SþÖ”?ñ¦¨}õãШ" àøõ³¥ý„–Kùöf¹|1ÇÛ$±¼NH4ï­ñM”ûVè§’Áu;°$xzó´žH$´$ä×ÄÊfò?Æ œN;÷€A›‹q]rw"çoCù´ƒöF…O7ÈøÇûz¯iˆÿÑßâí{Œ!ÐBÚOXùw)ßþìu;$–×ÍåôÄå"˜(W  »EÙ<‘5цÐRû¢)¤¦‰Ju½,ßðuØÃÄÒtÇMßãÍ”üm+@ôodoâiÍkÒ'::¿}Béo|^è÷¿ú“C‹µ™¥ö©~ö,ŸEüíoËÛ€DóÞÙo0/ Ôæ¾NE‘Rxˆª’D{¥ÓÙ0_™^óS›,²KëªPmOcç7[(r MÌзCMy®wKç<ùÏWXù„ò56Ç-¶Ä#æ¨àÁ»>3]Y¿R{,€j•_HÒXtÛ ´ß¾»é[ñWQåmÓŸgÊXþ"•ÏD¹5êö9¯,^ZËo—î^>ÿ4nçýCÀ¿þðõÐ%¢µŸmõOùØñ6ƒBËÛ„¢œã žŠôÝÂçyceî͵ç?Œõ廥ö·I›œŠrBœžüµz Šf\NPjEw` Ú¿RÁ¹öü‡±¡|7³g®–D}4C«ýËû€mý¤$d¿7¡&!Kö1>YaÝ+5źN’9Hîõ^®Êi7]Ia• Ü',}'Š/’œ‚ä\»„RgQz1Vþž¯Ì0ªïëm²^þ$ªÂyåÍwœOC’—ï³”)iÛ‡…l§i]ÏAUm;úEp[úZŸÆÛ€E‘÷Α} êÔ¤0P•¥ôíëyÞ«o§Nù56^¶ošç‘æyüþp†¿ÿ~‹}«¬ü‰ÄýŒ¬PâþZ:­å€Æ`àqm9 dÄÆ?6b=Z](;öL”«Fðx›uóÆóið9ívÂõäº+Ó™^²> ”@xP2€ÇLÄôw@¬MÑo+‚“§ü …žú€na†•±‡mß_­]· ³¯‰†>®OWÓ½húö<ÐÛ³Dlh„µGXÈ9™Î't[84%…æN©›¨4U Ýì}÷fQÒ7ÐèOÐöþ€ÜkÒóTω`"+ÎÐ+/q§0Q®’ _”:Pí›+g¥s-ü|ê:~7ÆÜÜ:ôîé O“ˆ/Ù¼*^óÒì54Y…å]ˆ&žmAS“hv;ßE(Ïzr—ž¾"¥ «vþxÄìj§ÁDÀzg‡Åx°@f½Škn°Þú®Æ@©û×\-¯QZY‡õ]?J.½mjy÷ÏëG)K„¤ïËÿ‡»&ÉAâ¹ÝÖomoSQV½Lo*öñßâŽkß;‡Ö?ã…@ÉEåÈ›v+Rp¢ §ÈtƒQR,+ZIgñˆ÷Ž’~¤üÅ`7 Éð5Bú!öÙvýÄ+½îQž¯n1×öŸæ ÆÕ»jI¼vÀî4š’BóضxÛ)ý5ùpû¬Ä¸Œ˜~¤ü‡åâi^÷ ž$šÄyÙ¯ÒD¹?>üDIHþéY;P²äzz3†uE- ù5ao†îñcœÀÀéôs´¹`þ$rúòw ûlË釿?RþöŒWJœ[OMâòL”+ÐÝÒé &²£ã6gMá 5MTú«ëuù†¯ÃÎ –Ž»Ùz”ô·åo…ì³ÏTìrú;Û'†ú#ÎÏ-Š'µRâ¼lˆWˆw jó_¼KEJâAªJíåx˜ªíéìüf+EN¡‰úv¨,MI­y(„½ïxþö±ÏÖ©Ø%"¥ðõañ4‰kÁ/ž×‰&qf dD½%A*·¦Èôœ5¯ï¨cŠ¡/tT¹?Eaœ D .‡–걨Uv|¡HcÑm'Ð~ûî¦oÅ÷\E•7OŸî}ÿ°ô#äoWûDË]Òߘÿ¨×Ûñ4£Ö&®[ð:)Ê q~6ÄS< ŠôÝÂç™bTžûþaXùûwƒŠÿ ¿¹È (žæms,M xšÄý±.žâ¡h,ºÕs Ö¹ï†Æâß þÿJÿ«‹LЧyû\«×Iž&AÜ´ýqi¢O“ ˆØ ÍÕ‰KÄÿ’Ð¥;W$šqwI\:þÍà/Y8I4 â†!±$® Çë¼Tá¤âFÙõ3‚¸.ù›Nò4 âÆ ï’¸.u“D“ nzч¸%.q“¦g âØk¿X‚¸.iº–³ZÇúg&£T—“aê ,Þ»H”ªˆgië‹@y£è¥y´”¦›C„½L¢JûAß]Då]ƒöy6Œ—€åypŒN´:›§g7BmÖ@c¢CŸ–Ðæèe ‚8%´vI1 )HG˜U˜ê:&Øb´—6K`bŒ²xrÂ/(a€ñúöAZ»$ˆí´¶ùcŒ²0ûßù ñ#üÒÍ¢¹È@D=çu"¶‡6Jx‰2éKÄÞwI1ó˜Ám°Îç j,J0"ÌÐn^Ó4ËèOÇà9k=Qûìo|ˆ ˆÃ µK‚8B_1ÒEi€ˆÙ°éE oº®ÿŒ7w—´w A\4K»Ã§yüüvÚ&½ÖCg†“ ®Ú{– ÎMÇÄaX³—§ýœ‘D“ Îy—q8|šÇIÖ}Ðôl\¨x> žOC:öÇ­¾´y> ^J"â^Ë"¥ ø ¡%!]r¹ö¬_ëS’ßà~êP’Ï[Öûƒ*§bËŸ"¥ƒm˜OAöÛ1ÎççPŽøüùmÌó)ÈQ7÷¾ôçㆹ°ÖxCä§Ðõ †µ¨;®¢HÜú òí´;¥jà ôþºóÎÌÆü/£rxËÎQöB˜£š}@óR#ìQ¿Þ§$¿am±ö ]Ÿ@×?QÅ^,‡Ø_•9Ô3s;´^ÈñÓ‹pÿrŠ tìôu}ŠÌ˜ó„;ÎççPŽõüiIÔG&†® ¾Ðð}ž°5ÿ—þ|Ü0$š{`’SP’;Úä–Fêa0Pü#y)é= ZŸÆÛ€EÑ7¢< 5 Yòâ}û÷Ûéó¼ç]hJÊ5‡åÏ9×É*/y;æ_©³(­ù8_™aTßw4½”9É-›u<0Ê—’ýÞÖ6ûEAc}×§ñGü¯ñŸ6NÇšÈWfì²týª§·%ÿ‡Ú_K¢Ž9úeïoB~ŠaA]a\/Ñï:m€—’{¶_Ï`áãr§ü±=?‘ž°4¶×Ÿ*§Áç0°Èùêp—ü‡? d> ~ÇÁ±Í=(÷'¨‰ tÇ ´†ö(±?^£7NEâ€Ê—;’ï·Lôœéa޾>AMôÄ'Qh(y•–7‚}sÞC'ÌÑïkS×»ÊSë~ýyhþ„òWÀÈ7&Ð;¾Nw§ü³ ¼¬;&˜ÈX¼ï¡ššÂ¡›™»£øÖ‹‰ï¸*sè½Lݼé-¶Ù/J“E¥?ÁO|ƒ®OðWÃ?FSÞÐáj ”WYŸp9×»ö¯˜ë·æÿPûÿHÀ oäC°·+·fKSô˦{,ß°=¯Ö|ÏöËའd·ãëóáùÍ_HýåèÃDqæÕ¡“vÔüð|ûC¢¹7 *s‰çƒ^”ŽUK¢»2ià%{Ä@cÑ|õF©õÑÒñü …îƒ'ò꺅™µyÅ)òçæ“ÁÀú¾Ò@FLìà}xå9²]ÎÅ¿ÖNËéðXôFyÓw†þå•9Ì~[Ë”D·myîÚe:ì'Ê IDATŽC» ªoßÝcãêÔë}×»ždàúùœ×Uûk!Ý‚0GaÄBƒ=ë"%¡Aodày§ûû=)Ë‘òŠö¹íùˆ’¿­õw,ž {êû7¥9×·ÿ$š7„¦8/°s,2ÕOw”Ú*,{&ÊU ®0(u êó® g¤?üD«_ƒžÞæþ5Šý6“Îý ~…†çAøÖíü—³¦9ì˜Õ}´`"ë÷@6\—ƒ!<X·É´Úcµ½Í§,ƒwÅ3t²,Þ£¬¹ãÚžß“ú ÎÎîχûüE¬?â:!ÑÜ›ºÍ$4·çbðÞ5×O3.#ÌQ%—Þe׌Ô|¸k*$ž‹ÖQj F¢‰çGë!×Ô$šÝ5;íÛ£iEYEGÌßÈöH45 ©¸nÍ/BþYëË,ƃŖ)»Ík6Š”‚¬2î=ðˆY7ú^²Áo4{ JVÝ~k°^öù äKÿRÄuP!?E«À (;ç[^ÓæëCòï²§ý…9ªHî¯*)G*v#É¿˜7YŒ ò/&ºÝàôräûïÃÑžŸ5¿MÏG(aõ•°üïÿ|\;çÜa޾ÓÜ› /&š¯i´D–3’d!óœ½g/|ÿX#këœrj½Èж:cQœ¡ºôÞsÕÄk.7Øé§Öq•ïˆTÛ>nSêæhRÈåì]K3T ‹)d†þ)ñ!sàyçøµê'Êy³ß¦úýkttyùÆ9ð<ç¦/fçh5 *‡Ü[º®;³Þ¾,OQ“¾ƒ—¬o½>4ÿ‡Ø?ߘÚés® †þöù¸À¨Í¢04a†l‘[é¼·Ý_‘,ûµù4€jvóóã6Úð|„=©XÓÚoö4Ï?ØO¡7¼6šÿƒžb_hïÙ=Q¤ÐÚc éÒP9H³ÀKçÈß3`½aØ{Ùñ¨3põl²¿’BñÍßñ.PêL/l5f.áùØÀµ<ÇfYKNýü‘hî”qæ½õvE¨rŶó¯å‘þéY„hIH¯@ëB¿Au¸zÁ´¹™Aà‘¸´çc…+y>ŽÍ:!Ñ$ˆ+€ö%ˆÓ²ICN-š´¦I;r+Þ%A\ —ätÑÛ³±$˜qZ.I0ò4 "4K§çÒ Ñ$ˆPÈ»$ˆÓs‰‚ Ðô,Al…“ NÏ¥ &£hòi>ð#®›Õx‹ö.%vÄ—}bzýÖ´5ªþú´—ãEwo±â^nÌ8ó0Vþ7E9q#qx{·îºëK¬ùË_Èñðú‹…må£x”Ë>‚é<¯Î2JœÄ&šúDüˆ+f]¼K•Ã+fè÷­}CûO;†.;ðúÁ@¾ŠGyq8Ö>zá<¯§˜¢éY"”uñ.Ճ³o—”ÇF½è{mzýQx îò2ú`"OÇÆ¡üˆgyl.Âþ1¥|‡Åk%މ#–×à`‘h!l‰w¹ÌèÀætèõ; ”ç@=eMÿIšcùö_6R=zþ½€Ïõñ|u+·6ç BÍA=´÷?vþÃòwìü‡±\>ŠGyvñ.ω&±­ñ.¯ª_è÷'øƒ„Ýþ?ñ¿ /íÁ5Qî[¡Í H×åì@Å^êêÍ òÃòwùß?^+q8×ä]ú!Ñ$ödMg“ÝeSëC¯? µÉ"óè­_þnçÐ}ßåq8aþåŠt·ˆŠ`"»“§xbû‡åoçü‡qÞöElæ½K?$šÄv6Ä»ÌWfÀ‡×|ÔæúxŠ›âùEº^µ§ïäã{ àosäNÇj ²+g/ÿx ` 60ðuúŠ”ZŠw™D{EΛÿmù‹–ÿ0,_hjJ ¯˜.Ùú÷?UNác)¿;¡%!½&ÐÚÐfÂò¯Êiô^&hÄUÀ3³KýäQ®iÿÀíÛw_N=SuaCæ+FMB–ü^ ëÓ’ìÑ»¬ÂçøF“¡ž %ài¥ 9žàã'0–‡(³^ç–¾Æó¿âaøŽKT… ¦¸~É´Ëÿ6`QôyDÿ¼³¾¡+u¥_‡¡%Q‡'˜ ä§ÖÔÆõýåReÏëÚtÿí^”‰ç 0þ±í?Kõ#%á&¿×ý}¸íÇk/îlBÔÙ€mõÛ^¹ ,r>u—üç+3ŒêûzC´/›íïÌšpöõT•³ì)q¾:Ú½ýúËï¶·öoÿâ·ŸÀ?ù-:}çú[iÿ‘ík?ÿ¼¯\ÄÑ!Ñ<y•Öº>®áeÌy•0G8ƒˆ…õïÇD,Pêø¼‚üº>Á°¶X›¼¦pèfæêÖ=Z/&þF  ±‰ ”F 4Á(ë󆶦ÏB~eñâæŠ—^mߊ”D¦úioÍðÑe!Ö>]Ki²¨ôë'èWL4å¤W~}‚šh £Oðß ë›FÌ,Æ/þc?@f5ß“uïrk±ôþò :¥j­ùÊýÊßþgÞ´kñ×ß w @þÿæ¿Gk8Þ2ð¨aÇú[Óþ`_âxh EóÕ…ÖGKÇ…9úÃ9FÅ4ø‹Âðk§i¡ >Ç¡ÝN¬Œx'l*Ec0à×*í#¤™ sF,4Øk“RôFžwšªô{ÆÕi´©N-‰nv [˜E›êÝ¡~Ã@FLìàûòwHûŠbÑ@Y„'%yxÌDLßGqÃú¤3+Ö¦è7 ‚•ÁG¬¿5íß#̾&ö —fpãƒÞž= ,ä‹LçºýàkJ Í¥³´,X@ñvY3ÐèOÐöþ€ÜkÒöÀ€E³Ç"û2Ås!‰×.ŽSºPYq†þ¯'Íóø%þ ·ÇÚƒðlÍ€ ½Ôƒì‹õ·§,ƒwÅ3t²,Þ`”5w\Ï5vZ#=-&ÊU@RäË€RªýííGSRh>}¡‘¯Ÿ‹&BûŠ3}w}ò…ÎDß³}ì^ÄeBžæ1ÐŒD϶`ªI4»‰à)J ¹:Ð~YgýûNoa*R ²jŸ/˜À ºÓ¯&2"ƒÑÈšÖžL`@ö)âC™7í>@u½"j“õ¦…9 `½õWR÷­ÙÂÕKþu\ÎBýß‹>Ü5Ï­®ÏØ^s`0-ÌQE2¾ª¤P¨Ø=XþÅĸÉbT01Ñí²È®¬ 1á÷ßaŽÂ(¹ô¶#»ÆÓ »Èš”í­(Ê^&€°ú‰NXþYŒ‹-SÚÊw`ûŠnÿMÓ÷¿íê÷(kÿ¡ýn#Jý­kÿ.{Ú—8*äiaŽV!…\. K3T ‹)d†_x~O!÷–@ïÿÁ¢=0ø Ÿè—yη†øüô|L Ç/Úb,è´$q…h‘9ËK?[ã žª_è÷'è÷§¨d1tþ&Êý ôá' HÖŒ8¢•{À Íw]×¼ìN¿¶¨7ÙÇñ—ÿÅ–çIv~ûQû ›rÝ3þ&Aœ‘ØDsyqŸ¸n.ï-Ù5möt›˜«M6EExºï1=N‚‰rźžhå>AÎ –âÛÜÜÉCvÉ“¼¼ó»ŒRÀ“0¡g°2ø4oýR ´dŠ8ò2ƒ¸mØþéÝýq§¨2ÒgˆÈ,"”àÉO¡ë kûH‘8¬­3;íNiÚp½?‡à;|)^æÆü/£rxËÎQöB˜cð«ä~³^$Ï>ð:¤~óS k ˆµOèúºþ‰*ðzdq8ÄþªÌ¡ž™Ûù› õ’@Ž˜^„û—ûS”` c§¯ëSdÆœ'Üq>?‡²CýåôËæšD6#”¿"•{kù„9ªÙ4c1À ò˜Á#0Q†ˆÅcø¥›ŸZó…Å]ÖJUKÖÑö{žw„5JNAQ8H®·Ç-ÔÃ` øGòRÒ{´$$>·‹¢o4eäé ¦š„,ùGñ¾);}ž÷¼ gtËKÉÐü-„UyÉ#Ø1ÿJEéÅš x’¯3ˆö÷î%’Kù—SܲYÇýž/%!û½­mö‹‚Æú®óÔLä+3`œØáú-ù?ÀþÖ½“¨cŽ~Ùû›ŸbXcPW×Kô{PNà¥äží×ÄsÿØvN°üq6m¿%Pµû—NÖ°¸ù‹R¾žŸûCÀ¼ßù–Cšçñý ˜ Ã×3Ð5Í<n§ÖÇŽ³7Æ…Ê‚;1ñ\`ЋұjItW¦# ¼d÷oà+S²‹æ«7 ­–.ÈÏPè>x"¯> [˜Yƒ òç'àMþ§°Á›4;x¾ì–çÈv9äìò¿ÖNËéðXôFy_ 4ô/¯ÌaöÛ†–D·Íº÷æù4ø‡v;T Þ¾»ÇÆÕ©×é…^!ÿ‘óÊ`À¯UÚGH7 ÌQ±Ð`ϺHIh`ÐxÞéþ~OɲA¤üÇÜ>l>l6Ö_Z](;õ'˜(WW»çRgм]ÆüË>mØóc¢aOߣó³JSwí³yĶ|a+îDÁÔ””í ±s¬7’Õ'h–G¼&ÊUØ£WJ¨Æ4 :Ï <ާ6üD«_ƒžÞæþ5Šý¶ ˜ÈŠ3Ï ô­Ûù;'gMlØ11ªû:èˆ×Çå@ÏFpªÑFí1ÈÚÞæS–Á»ÆbŒ:Yï ‹QÖÄnší÷”¾‚ƒ€³þ|l¬?â® ÑŒLÝfšÛs1xïšÁi®MsFÉ¥·EÙ5#uîš ‰ç¢u”ƒ‘hâùÑzÈ55‰fwµtFÓŠ²4ŠŽ˜¿‘í‘hjRÑ[ósÄñíÿŠÿÙÉáŸÿâ·ßb¸,”‚‰,€õƒaãÁbË”Ýæ5EJAVé,xĬûê7^²Á74{ QVÝ~±¼)â:¨Ÿ¢U`P”óîÉ¿K„ö³ÎþÂU$÷W•Š#»‘ä_LŒ›,FùÝîÒôdÔûïÃÑžŸ5½MÏÇrvVê/BþÁzù×(õ×Ì„—oÿ燈mØ™ /&š¯i´D–ã °ym÷ÜïàßkdmSîO­ÚVg,Š3T—Þ‚}®šxÍ¥ñ;ýáÔ:®rà‘j§ñ†Ÿ€ýYR©@˜£UH!—K[i—f¨(SÈ ýSxÖhš/=8ŠËŸðG4Ðiyz¾ñ‰™Ï;ǨU?QÎ@˜ýÂë7ߘ2ÞÙ D\@ÌÎÑjT¹·„u]wf½ý\ž¢&}/YÿÞz}hþ-6¶ŸëíŸoLíô9×Cû|\`ÔfQš€0C¶È­tÎÛî¯H–ýÚ|Àµ@»Œùùq mx>BëÏŒÿ¹õ"Ów¼¶©));ý4Й çyg!Á[÷ -ßAÏ•oº®ÿ<ÅœiºkE‘R@k5¤#r”OKTÒÇlç×âºÊïЗ¶—Rå4z/;¼ÀAìÇ&û+)ßüë¥Îô¦QcfÏçcçÛ()Ô1=ê}îõù9õ'w$šP¤4Þœ7Ek¤yjmªœF±íüky¤¿ž8wàY„hIH¯@kÉ{ âá—Ä>ÏÇ®øû±4C«qĶ~Çω&±Â)mUGÄ5qjѤ5Í;‡6>'‚ˆ‰æ…Ç(мI‚ ˆý Ѽ`Ž)˜$”A‡C¢y¡*˜4íJq|H4oò& ‚ â…vº@vñ2÷Ý®n5ž¢kí²²Û »d}ÓÑÔ$$7šÃnñý4…³¯M=¦¢¦±Píô×§½Or÷[â̿Ǧú±ó°Áþáå'Öòi¾ëv­ 9{ùî<^%áA¢yaD̃÷u]ÏÀXÑ:3ˆKG) 8{³§ÈtW£€h ‡æ‡‰–-d—oÆT¯˜¡ß·ö%í?=”w A0/OÑ_³Q6`å½—ñ¢ˆ´2ÉÝîsþ-6×°Ýþaååå+M7î»v<öòQ¼J†Dó‚Ø&˜ÇÜ}%ž¢*sW¿P^³we¹ïÛ`[0ñ\X:AK¢96Ð(¾H0ÑQ{ ϾÝQõöÙŸó–‚Ŏ¢ø8Eþ·ÕÏ¡ö½÷%ÔOŒD)_x¼Jâ Ѽ`≲&ž"¬ý/ë˜GÛ‚KKâµëmæ ø‘ÀL0ÐËètÍS(ÏzÊšÞ“84ÇZ‡nqvÄü‡ÖOöãØõÓö9¯ÍØñc³\>ŠWI€Dóbp¼ÌØCj­‰§?Æ œN)÷€A›[¿6¤%!¿&V6ËÖ> Ú>Ý ÝïW4*× ú…~‚~ŠJ&qQcXý\½ýí@Ë^íêM6úñ“°¼Wâv Ѽһ·/¯=ÉêyÔ’¤ãÖÙ=³ò|}ÏÆ…õ—.˜Ç"ߘ _6w¸Â@£c@¬}B׿P¡ü]ÿDI4ÐZJ+Zúú¥]3‚"qˆÔïªÞ²s”ߟdõ̺>®OÐzI ÇGL/ÂýËý)J0бÓ×õ)2cÎë˜òSèúÃÚb‡;F¿ÿAä§Öv˜@×?QÅ^׈ãîíËjOQʽµ|ÂÕìš±à2ˆ­~—Yó|܃}/•‹M>Í_…`¦ù_㟋?}^ ëÔ’l@Váó |£ÅPO†ð´ROðqŒËC”Y ¸ÏUXú YòyY+Ÿï¸ÄAU¸`Zë—<»üoEŸ7´ÉsQê,J/FÀ~uÌÑ/{òS k ê ãz‰þr©²“×äÎ÷·0ñœÆ?¶ãg©~¤¤×îunûñÚ‹;›°v6ÀD¾2³Û„Mhû ©_øðÚ1åËWfÕ÷õ†h6×3«ÂÙ×sPUÎ*g Œ‡µo§=J UYJÇú]y>"Û×îvlÛ‰M4ñs~Q¯Ñ'úÅ ¦E•–ã¥|áeÌy0G8ƒ{´þ¸€ˆJ/o´âÉh ‡nfŽ¡ëi™øO1€Æb$.P1Ð4£¬Ï£Øš> ù•ÅKËó²^zI´}g(R™ªíÉ´føè²kŸ®×¢4YTú×ìWL4å¤W~}‚šè÷ä&häו”Åx`àÅìGȬæ[x²î]nÍ –¦*ߘ SZ Öšïxï] ó¸í¿}8 òå•¿e¢çL—íuAçèw ˆµ©Û^„òÔJ¯?_=_c ¼²Èú;ÖöV¿Ð~K :´òÞÉZ7QÊ'˜ÈX¼ï¡šµ?l«á â€A¦5Á°‹@uh•±g?Ƕï|c½c`ðÆ¡>6ÐN · e¼k,Ƙ¡“eñ®°eM줙5Í/4òûC\˜(Wa{w ”:P]Z›tÖ4‡£úÃýLÁÅÜþbO@”ú%.“³‹æ5 ¦‹Æ`$šx~´¹¦&Ñì;yMI!W:Ã/ôûs þ}§·)Yu¦ÃLà ÝéW‘ÁhdMÛO&0H¸‚JÞ@¶ûÕõЍMÖ›þæ(€õÖ_5JÝ·f kÔ.ù×q×ÂàÃ]³á ñÜêú‹í5ËÂU$é«J Å‘ŠÝkå_LŒ›,FùÝîÒôdÔûïƒ0Ga”\z›‘]ãé†Ý?dÍÉöFeƒâd'?E«À (‡Õ‡/ÿ[ë7*aåc1,¶Lyo(ÿ¡í/rýlâˆí{QêwÝóá²§}‰ƒ8ëwš×&˜Þ'&s´ )äri€Xš¡ZX XL!3üÂó{ ¹·€z?€üí€ÁwHøD¿œ€Ìs¾5ÄïàßËóqF³&ÐãÀm1 tZž(š¹Óé—¿3³Sý®{>Ž`_b?Îâi^›`÷)šA—ÎÝxš× &AœA4¯ÍË$Á$‚ ÈÓ$‚ ˆˆœ\4ÉË$‚ ®ò4 ‚ ""$š /3^Vãg:°¾È-K÷GeÙ°»’¦&!¹Ñ1ŽoPÓX+Z…´9*M0þç>;ìDa“}ì|n)¿fçŸçSÇê‹ìïۅ&ìxXþ(~$q!h§g]|@cE·è̼Íãm) 8{ý§Èt¹•PTšÂ¡ùa¢åDoYÚ¡çÁ@¾ Úì)Üþ ï'ôJ4¨~¡ßŸ ßŸ¢’Iµs³ÏÙËofv§_[ Ô›lôã‘Ø3>'AMâ"È7|êp±´º9·¦pš&*ý q EÿÆ×&žÆ§óJÔ&ˆ²"<Ý÷ã=^Qì³½ükÄ&ã^®‚‰ì6Ovåø‰óG{B¢éƒ¼Ì°5>à&(r MÌзC3iJ*ð¢ˆPž¢†/éºø‰ªí©Åðfëc&h\û`]>)Æû‡•?_™¾5Vµ¹&þèùS¤ÔRüÓ$Ú>Ñ ;)¡ñ# "~H4‰c #²èmx R•×L?j,ºíÚoßÝ5±ÜÛr¬@åÖ¨Ûç¼²xi§pÕ `Zeý°ÛF¥øî~Òá ”§Èô¼5»×ñ%Oðûò±vú:¤üÂk¦~¡ê¿®|eç|4í?tÝ9O-áàãK˜–µåÅÒOwqÍ„ù™Éºßy–Ú@M£Õ·Pï¡( L¯ ÛCB¬_S% þ ³æü‡!¢¬&qÝCQÆh›chª„›å­(Xxº£ædz9²>@­@£ÝL@ýͳ ¥4ÄKë 7íqpýJßè"…×Ùªj˜wÔç?¶ª¿ˆ~ÇÂß—ÙNïÆR‚¡IheÆèš†.!×s?×ËÞî†0k¶»}9O›Ú/íUÄS{€YóÁQ.'Q«}*+@{‘­|‡^~cý÷mÿÏY½ˆQnlà(ÕGh½Úh—Ü Q¨ ÐD Oc@ÁýWÀ{ ÈÔC}9ÚãG£ÝÔœs¡t=A²Íï…~ظO£1ÿk‚—®Ûf{Õ/Dý7•_ëŽÐˉÈtè¾KÈÝÍîxMáM ³÷8¾h½p™¦X†œV·[‡âŸyNP|;lܼ…¹$3’h­ GZ¸ËŠx?ÔMCÄë£{•Zí-}^¡Øºr¯ õ+´Š£ézŒúÍë) àÚ÷C ™|b‹ìÃ¥”ÆÈ¶$äœí¬Íú,`‰xëY¨<™b¡fzNŠAí·q›’h5Äùºe9 9'¡ÑH,\±wžÍ?ëW†n@\>DýC×uµý€Y£ØaÀuQ“0 à­gáv«õ{3©i„ªÿ1ú§2F»;Fï> 9'¢Øý^¹`òÏšÝ1ún¦iý”Ÿ·PRåÀƒ…‚\g– :¾lÔœ¡ó.Ü/…^FZV‘ ¹ï‚à A•ûUêLxƒçóþ žÅë©[CK9C8"Ê9™Ê—{Oª¸|oÈF©T5€­ TJöj¡gËB­=;¡}¡^\½ç´þÓ~(6²ù‘{BõÜ·óž|f÷4»M½ªç&äòQ=Ä¡ÜZ‹CÅýM@öfÚGn²Þ }ŒÐÌŠx×Dô²ö–÷Ö½÷4¿/bÀøÑÁù<Ðÿ º°ðTÜfx™Î‚¡!uߨj‘€ž¢£ü«…âW;×êøö}90ñòÿÝ ÿ/ÿògÙ§€÷–í?̸L£ØK.=-*ú\© ø˜ßs” ÊR¸¥! —·q{== z¯­Õ“à,ÛÔ4O–¹EýzNFbèI¨÷~÷üBÔ_±‘à®ÑïLñOC±éž‹¦¦PÖ…ù:pã½çdá.»øàáÜC,ëß~kM¯úÕ÷A•Âõ¢€ûòìûAËÔnÇöWƨ ¹°~]Ká¾gáÉé$…;ýW½¢…ÂVKDvå¾ôŽý7ÈÁŽŸõýÇÐRÈUf÷íö¨þÚü¯!âõ9qðúù~ºü »_?ƒ)ׂÕmbõfÅzîiÐR÷ÀÐDÉÖQ(èò~ 9AñÎFöŸüŽFÿô?ÿןiÀü?(Ë’ç~Ç/ÈÏÀôÊzš-”ÚÃéüÆô@ËçG¨,={[±ñ˜KãòšÝáôs]‚< R çsÇC€2F½˜B.—ž–ý0B¥8Áý} ™®wošmÊ÷@Ó\¼ÊªŸr;FöÑÙ®¼…æ‹…ûç_Pñ5¿×µ¶þ ,dòÒâ½–C@/oáií‰`S ³7 ò½ó¼…fÝíú…Ú>Êdyöù/•/” Ô~bàþ-Ô†@Y‚,KóòóÙ1ê5 Š.!÷œ˜.×MŸ~. ñ¢þ‚¬NÿÞ¸|`ý§öiÿBmè”/ÍÛ ëíŸ×ô"Š]PFÈÞK+'ßMë×Ôiû5ä4¦÷½ý2¸}÷:~æüû¡¥œý“ÀÛ'PøÑèè8ýûæÊùÜ{Os:rÐvÚðõÛôùúòE”sWèË6Ì; jæ uLïâéÜ›ßëø:/iy}üñO  $Õ{ ib¬è¶X×o¦iþî÷.ɸGæ°@G9]Eæ«]Gøä´|”ªê=³ššêþ÷Îêñºõc´ðPÇ)ê ¿Y0k‹×sz9·»ðßÐŽÖµ¿–Âý³÷Ä9ÁCs»aTÚÍO9¾v9ç‹ešÔ¦ñM’«˜tÛ‡Èä×MZ*‡gŸ ‘‡¡‰Ú6¹¬ãœ‚¦¦¦ñÜqþÈO3?Þì:nT/§áÕ/_éßÊEˆ‘„úÔcúÔK³é".Ð:¾¶?çHª9\uV?±š&†k3ÍE?/ÓÜVœ(Ñ¥Úÿœ¿]¦yQ¿Ó<å`Þ@ÉJDt™.*hÆ…_eð$":!‡g÷wŒáÙ8O6Í쓈èðŽ}Þ¿˜L3Îàð-Ñ%¸˜ yN@‰ˆÎÓ…¾Mö|øÍºrŒEøÎ¯è™ÕÅoÖC“ :3Àì2â¾Ëo.ܹBÞø–g–ˆ²ÿÛx =éÔqûyL#ݾ¹uõß¼ÿVç·Ü~ËSî¿0õ´r~Jr\DÐŒûÐlXG  >ó+š„*,´w…V2ââüº„GŒÐnOß#Ú¾¹Úr*³=—ãa¸ö=®S45‰Ls„¼Ïâ†&áõÃF½î”±ÍoÜŽ±}ê¸ÿÞ»Ã<–'ßõºr~Jr\DмDQP¿ù-•Ò÷ÂüŠËô7Å[Ït¯'è½…ŸƒrßåA/KèW¾Qò{§‘ÄkßB­dyf¶Ù¢ì#lߦúí¿ÒÒTï-{«øŸzÿÕÿýs¿ù_éR0hžÃÐ ó[€¸Ú¿z¯·g÷Ùwùe ɾS%èž³›¡¥PÅxý+Å>èAp'†^Z~'ܾÀú½ÿŒ$ZYkÿé Ž¸ÿ„­ÿ¡û§b#Û‰`ú<:+g4/eh6¬½èÆù-m”ÚÓ©¶ŠHFx_.Êx>4iš˜õ ª¯n¦ðÙO 3;)ç®ÐiH Ûg|è4®Ð+:Ó…µGøxOVTÿ©pûÏx÷›±äÄöŸ×éê¿ûü¯t9Îè¬HËÖн‡q¥' hyOZ>'‹ì6ïTÜwù-)6²žL¡PóN(DæmvO骢ëÎFã Wó{NÕÌÐçþÚ†ùùB,¯¿‰&xyÚ~è­Ô¢ØOºå÷­ÅúÏÖQ^7¼i£TÕ_Ó2EÜÕ—Ÿž=ÝöÕ?pÿ96mÆÿ­­ÿúçl~Êí&‚¦KsÖ¯ÑcÐÜžœ–ÿðï÷ï`þë}êêxÐÔ_h¿N;÷gd¸}çî§ÌOynø=Š”90?´ÿE…üÇ?7KŸŠ!¢Õ±Pi_æ —ÛwæŒ$ª½êµSW„Níl3Mf™‡ÇWúѹa¦I'³î¸ËŸýT šäk9H2 %":Ó É¡ÙãcJDt¦A“N‹Y(ýT š´7f¡DôSœ]ÐäÐl¼1 %¢KYÐ<ÆDÊÌB‰(jiÙ=·DTE47eô3õ Q"Ú§I?‡r‰èÜœUÐäýÌËÆ¡\"Š»³ šôsp(—ˆâˆA“·r‰(Î&hrh–¼8”KD§p6A“håѱ0hÒÅa%¢¨0hÒÅc%¢C9‹ Éû™tH|¨ˆˆvuA“(J|¨ˆˆÂbÐ$òàP.m I´ƒ(yÅ>hò~&Å ƒ(ÑÏ&œº?^NCÕ¶ive9 YNC–SÐ ÀÐRÎß«e…+ß)SMn]ÿCÑÔ鶸èeÏv•“0Ö-¼ÓúÒó²gmYö¶“.­mÓM̹ðONË ÿÂS·ù?U‚~ÈŠš‘„ªvŸþd+ÇÛ÷h4¬P ]²·XÂB­i!ÿòÓüFI”Ò7Ló y õ¥²Â•o¡fñ°måhª=Ìu ÏÙ1JŠç¿Êª™1LsÓ ~—@NY^ˆõ—ÚC<ÀBÓ)ß4‡Èô%÷ÄSÂ4è¾L¶Xãêú›QÑÂÝ— šƒyût+Àýãv=Aû'ôþÛ…2F%{…×ÈVpz‘¶Ÿ—ÏñóÚ7.4ÃÒ“(«Þ,Et?3’P  ¬Ã“x®3ÚB¦•‚:˯'@?@˜fˆe@Àóã&¨|C\¬ÿÊÁåù\• kÒbY Ë/e‚Îö?wDÜ{²¡ÕuLiUwÖBûU1F»äþŸR¢û" ª ó,Ñ»]zyV×äÖ럲q›úŸ›¾ãµ´Ô¤{‚ܰþM™(––ߨ|ä³Þ‹£ÝêêóåÏF-$§HÐuiº=KA¤ð4B¯ºk6´Gÿ@­@£ÝÔœH¯'ÈC@¶ùí^ †0ÍéÁðèS¼¡IheÆèš†.!×ó|¡'†€^~‚‡žÃzÞ“æÆòE”EÜÕNýèe ÷°Ps¾¡©Id*_0 6`Ð!ÿò5ÏZµWOíÁüû0D”ËIÔjãéö›chª„›ö… )¢ß±pçýÒgȬž”øJõZ¯öB]¨ ÐD Oc@ÁëŸðÞ2õP_†¦J@ýæ¬ e5‰ëöÊÛïûó–à¯ÿ òÿà˜þí×4îÓhÌÿšà¥ë¶Ù^õ QÿMå׺#ôr"2ݺïr÷@³;^SxÓ¬@ÅF¶“Ä»±”%…°Wÿ<@ý÷íÿ…Úæù^BõaŒzw" ÃiÿfêÇhÞ.Jiˆ—ÖnÚ㥒|ŽŸ™=Ú—Âc¦–!âõÑ½Š¬ö–>WÆhwÇèݧ!çD»ßÓ€’R#Û’sʬͺsÀ(6²ŒÏP#ïï r(QÑ+ŽP˜H6 OòómK¢ ¥‚=__©²˜ ¶â¼å? IDATn²œ†œ“Ðh$¶¿b5ô\{ÿë# *c{" 8÷&Õ$ xëY¸ÝêäàÍ$ô+Ãp'#‰ÖÊp˜…»¬ˆ÷=n"-d¡òèüõ?Eã> 9÷_Ñùë?¬ôïð¬Ù£ÿèd&Õo.LùykzëàÀƒ…‚\g– ²É'¶Èî=ëß§î[ÿöÿüËíšE™ÖA™_TPl]¹åéWhG«Øçøqµ¯šskb‹S-‰u¦"Ê9™¦s¥‹iF÷ºô-ãSDäó@ÿS”-ï]ήd ÆûrI˜í1€ Ðñú&"{7Äm1‰Ç–³uÙüí•«Þk¯ ‹í¥¿ ÈÞMÿï&+àÝÑÇͬˆwmšiowAm¡ãF÷¯þ7ä0A>ÿ÷‘ý«¿üçÿûáßýk<àOÜ¿ OÅ$^?±î úsDÜ?#/`£TTM@¡hU ÒÞæüAÇÂL3 C@/oãöÚ ˜z¯­ÄâW´rU Ùýž\Õ_[=…©©)”uçûŠ ÜxïYÙÈäôzÓaåÆ: doBT ÙÖ•çiKú«ˆÎìOeŒ"D÷þ™!@«zîÙbzU®zïãúð1¿'#A•¥Õû+NÖ¼p1¬ŒQAr¡|]Ká¾gáɉp…;ýW½¢…ÂVKDvå¾NˆõïB£ØK.=­(údºAë_OɯÿäÿÕßÌ3Ñîßþ}4þžç¡¢?þ ¼>'^?ßÏC—DD¿3Afm_Ó>ûöϽëÀþ¿‰“mjÚš,ð?~ævl_Ú ƒfÊõ¢€\Î:}îŠ4îÝŸ€äž@GÄÛ']D£tžgÓýÙHî9Îó¯ù¡ÛymàÍ}˜'W*OnP¸É&ÐÁdz ,dá=8‚Ê·P«[x{t‡&ßîÆxè\Í4(µÇèÏ>¼ÂMq1 jCTúIÏORPËâÂIá¶b£å´Q®TºCŸLÐB&/âmé¨-Ô†(zʯö-tÛcwùë z Å[(Œí`åä°iýš*¡1ž]~À&xÿ”ÚCàÕó É£€;oýBmÿâ…ÖL`ÿÑ¥éçö;ð›óïüŸhÔþ;4þ|DŸÿÓ?Þ»~›>_¿ý"ʹ+t:WÎjÒü‚±qï}àH@/¿)Pù·ÏtýûõÏ}ë¿_ÿwú×½èé[~ªM³Íçg ²ö xÿãÀ^íKáýfšæïÇX‘œ–·úáw¬út-…*†[þ<&láä7 fmñħk)Ü?{ì šCÔ ÔáÅýE z9·»ÁV÷ú×–eÿ<%]‚ú1Ú¼]뎟¶ï99v¬`Ф9MMãÙ³Í?ŒP¯·¼g¸ÍºR@ý›OùE(VAÔHB}êíÝûÔ1ûç±éå4&xén>6VŽŸ´ï¹bÐt0h§@£KtìXÁ§g‰~NF´¿È‚æ>ïÝd–I-¾xž.IZvûoÔ±#² tPQ|0ˆÒ9ãð,ƒ(‘?M" Ä J4Å—ÐIøÎ§9›ýÁw– ç-+êôåÛÍI‚g¦‘ÕOx‰ž™f|ŠÑ“NgïÈ=´uën¿CÖoeö–?þåÒœŸþí·iý‹ó©.¾8€óER\Ä.hò! Àg>@C“P……¶óBòJFÄãÒ$Ñ¡ÝÀ4¿Ñ¾¹ ˜úkC÷…è¾ï¨¦³m4GîËî= MÂë‡zÝ)ãà¿™[¿þÀö‹¸~æ×#òNûá÷߀ßÿî—¦@Û¸~]Â}ÏB·;ý¬ý|z÷/狤˜ˆ]ФËç7 Rú^˜Os™þæ¼Boæz‚Þ[л@K/KèW¾Qò{·§‘ÄkßB­ä™¹âˆëj¿cÔoÆwÑ?þ%rÿ埣ñ?ÿ=ßõ*c÷3x«.Î%¹ß|œD‡Á IG¶a>@¸NWûãàW¤õÜ}’çÝ¢’ç÷Ó÷ÃV1^ÿвÏz'J>àÙ=pý6¶_Äõ°¶ýÌ ó¯þòÿï¿ÅÃûûôó?ûÿèf¢ÊF59_t-‰Fgiê-ÅF¶s éΈvÄ Iǵq>@¥öf÷ E$ßre<Ú4ÍÌúÕW7“ýì'Й…Ü:ž—zÓL©Ó¸B¯øå =Žðñ~¸¬(hýSëÛ/êúµßÊúÿý?ÂËÿý·èÎ2Ñ?ÿ;Àÿ_I~¡Ú·ð°2¾ã|œDÄ Iñ£Ø(=Y@Ë;üês²ÌFø²nÅFÖ“ÉjÞ  GÈ?ø¼,<ï}Ѷ›þá²¢Pë÷Ô}µý¢­Ÿ_²Ë#kÖ?Ê}øç~èoèüåÿˆÆþ÷ØÎ}J?ƒ&ךùæ…ýõ OP,<€·»ê¯>óiêN&¶æÉÖM45µ4Ÿg-‚²RâWî6øÍ׸Gý‚µ_Ôõ j¿0ë70  ƒæ_üxùŸþÂ?4-CNÿ‹€ù"‰¢« É'gÿùKõ!2óùD¡Š!ºÞ©”1žpåη™®ÜßÓßD¼ÏÚj9zyÝð¨R}TùEÜÕŸNݧ~Aël¿ˆëÜ~ëדxœýÜD½ž¾Q*,=TôŸÿ-ú¿âùÊ|ÃL¬f9aÐü!Ö̸šú ­âWLçXdýöµ<_$_°@g9¡Ÿ 0ÄK5Ͱ7Ÿ¦!¢Õ±PiÇó„ÏúíÉH¢Ú¡^sÿkÓ[Š@)*Ì4‰èâ0 ý9˜ií‰ïÊ¥¨Ä&h2Ë$¢¨p(—%6A“ˆèX¼’”¶Á ID?ÚººüÀ ID4Ça\  ID´³PZÆ ID³Pb4ùä,>Lô3Å"h3ПƒA“ˆè€xô²1hE„÷A/OdA“S÷-â0n4Ò²Û–Q?YÐ z÷#ÑOÆz8|a;ÑÂz>N4ùs""h¼ «Éû¯Û ÐÿÜôÅíìø™Î2ó¬wÚ¾Jéí’½²X©ýí¹ðX_¿°çàþ/ ,§!‡¸˜aö¹;Í(µxÉ'ÐêOPï:WÊíðþÊVS%àé{~%ß®Ûx› Ç(c´Í^òÞ+ñj…-*Y°ðTŸ-û»¾äž4”1ÚM ù—áü WJÃéúÚãÀú)¥ï…  PÀlzNº[Õ_D¿cáÎï3ÅF¶#â}‡¨ihZ™1ºóLÉFÇó¹^–ðv7œ×ͬÛXøÂ¦ö A{ñÔv·½ýd㵜ôÿ²!@{‘õ® å7ÖßöÿL™Õ O¹™ŠR}„üÃp!pjÎÈG}¼cÿðÞ2×›¾ãŠôøQÆhwGÈÃiƒë ò˜à¡ù½8²cýBŸ?öèÿ›0û܃æÁLP|C™D6n‹ÞœX$Z+Ñî²<@ ¯îUvµ·ôya„bëÊ=Hõ+´Š#ŽU¿y=ôøŸ+-dò‰-²—R#Û’s¶ÿ± 4ëcçSo= µ‚'[P,ÔLÏI1¨ý6nS­†8_·,§!ç$4‰…“bçù×ü³~eèžÔ—QÿÐu]mã#à4¡ŒQì‰0àdMj¼õ,Ünµ~o&8mƒPõ?FÿTÆhwÇèݧ!çD»ßáƒn¨ú…9õ5gh{›ëéfŸá0h^0CK9ÙˆrND¦ò5¿Ò­—3¥ PÕ´*Pñr:_j³L­û…z¸\ÌôÖŸ_ôߊl~äfžûvÞ“Ûì¾X·i£Wõ\À„\>ª‡”[kq¨Ø¡¿ È:ÙæMVÀ»!¢šY^ÖÞòÞº7ü^¼ˆãSDäó@ÿó²O žë]öž?ªZ¯Ió3—€÷–í?̸L£ØK.=-*ú\© ø˜ßs” ÊR¸¥! —·q{== z¯­Õ“à,ÛÔ4O–¹EýzNFbèI¨÷~÷üBÔ_±‘à1-¢ß™l²[OGSS(ëÂ|¸òÙÙIÙÂ]vñÁù‡XÖ¾ýÖšfjÈû JaˆzQÀ}yöý åê?·cû+cT\X¿®¥pß³ðät’Âþ«ˆ^ÑBáÎF«µ8¼zý»8Øñ³¾ÿZ ¹*Ðì~£ÝÕ_áŸâ U¿0çÝûÿ®8t»ŠAó`&(ÞÙîžz…›ú,ΜFî9áÃy:w©=^= < ¸[z ö¶b£•sÊi•îpú¹ó`Â}#çœ;„—{vNìÊõ¢€œóÙãpWœ q¿üHü4Û|~^Í2ƒê§ÜŽ‘mM·+WM òb¡ó¼xbY[ÿ2yÑXÛÐËoòÛÈlàÍýÙB® TžÜ“z¡ö…bßóùc™Ê×t.°ý‚÷o¡6D¥Ÿô<¨“‚ZžiB—Ü圇“”Ò/=iþ÷Æåƒê€ö/Ô†(zÖ_í[èzûçõ½†€â­ FÈvVïGnZ¿¦Jḣg—ûeÄÇÏœÿ1´ÔôXêˆxû ‹ht°Ø¿çÇ Ð¸_ \ÁõÛtþ˜UdŸþ¿ݺ~3Mó÷c¬HNË+?¬½¤Ÿœhj ¨ïp)nt êÇÈ÷iÀcÖA~³`Ö3½œÆÛÝ–@ÑöÖµ¿–Âý³÷Ä<ÁCs»aÔsæü·þ—wÞ;Žœ,h^VÀLãyö¤b~³=Þøý8ÒËÓ«ä© ^º§½X9‰I¨@=¦¿A½4sxB?bÜÿO<4‰ˆèìœ*x;–ðݳDD´·åÙVN=l• é({ž˜’Ó*böÊG""Š™óx`H‡$ËHÏÿ©H†|”{}>гšó莀gI‹ï ³‰ˆ(6b<M LÓÄ× põ¨…ú9ÉúáY»„öÐýS±³@¢O v7¢‰ˆ(ž¼Ã¶±²UJø®¹Ú7Y ÓG@гà¡\ ¡L2k^oFDD´^l³NÂGÈgæ=_Ⴆ áñªƒ‡qim–)/Üÿ\ýGçÍw~EϬ ~³všÕ™Áa—9÷]>êò£®ß”óÃþòòÛ€6·ÿêü”ÛÏCíö‰K³Æ¬+ÝöÛXÿ¸ÏÏz¡¢²M/ÜŸ\üÈÐ =w`UJY&*hê(ÿzF]Ԗߊåá}c„ß?:c>ó+š„*,´w…V2ââüº„GŒÐnOß#Ú¾¹Úr*³=—ºü¨ë ©Idš#,OÍØþXœÑcëy(#Þ>MM³wùv‡È´üfY¿ý‚ê÷ùY/œ7xÂìޤ߿ÍtH¹gोaÈ—FMåô=z£.ÚcÞÉü©üæ·œÎ!¸þ*Js^©6s=Aï-|¶°ïòQ—uý€ét_ýÊ7J>÷D‚Ú¿Ô^|Û{ËÞêüQo_©íy!»bã¶èS‡ Û$Lý÷›Ÿ•á´C¶:$ùÂKß[¼Å#à''ÑL¾Øàœl˜ßîÄÕþ8øÕ{½=‡øö]>êòX?CK¡Šqàœ“¡ÚßH¢•µvš.jATío$ñØr_þ„Ýþ--×?¢ù)i;‡Î:ÃÙ-`›‚¦ø†€ÎUnáÞ¤öÇ,t6Îoi£ÔžNµUD2Âûz?Ïg?NÃy{î †äÓ¾áÚßx÷›q$&Œ$Ê T–^nû÷µûü¬txG œúD‰çÜÂýÏ”ßÖ÷B«æ{o’ô´B±Qz²€–wøËçd”ÝæÅÞû.uùÑÖ¯PóÌ›Ù!ÿ0\ŸIú¶ÿÌSÔ-ˆºýu^m<µW'MÞjû}E_:¼£ ×j¾÷?ÃdL h³5ó[.ÌO úë:ž“Rái|¸ÝKõŸ_qÝü¡–w¦cÚåÉʸ×/HPûÏ↡ÙSmŸ­œÂ+Fh×,(ðN˜¾]9{Õ?p~J:…Ó ×†Ç IüçW,Õ‡ÈÌç§ü…*†èz¯VÆx•;ÿbfèsjÃü!–×ßD¼<í0ô÷úÍÊ(ûO¶¿cóÐ쉶ÏÑj$Иϋé™ûuɺí?Dýƒç§¤SŠkà<É,'|è̬™_ñ´hê/´Š_§ûs­¸×o_ç¿}q›Ÿ’ü½IèØñ„™&+ ñÒK"Ä=òã1D´:ÖV?£8ª¸×o_ç¾}FÕÞhá‰]Ч¸eœÌ4‰ˆ(öÖeœÌ4‰ˆˆ–Ä%ãdÐ$"¢³‡ÀÉ IDDƒ&Sg› šDDD!=hòÉY""ÚÇ)³MfšDDD!1hÑÙ9U¶É IDDƒ&QH šDDD!1h…Ä IDDƒ&QH šDDD!ý!ª‚Oý&z""úÒ²o¢~ã\dAsy²PQ""Š'¡&""Š!M"":;rZ^Ñ<M""¢4‰ˆè¬œ*Ë4cO/§¡jÛì&e9 YNC–SÐ ÀÐRÎß«e…+ß)SMn]ÿCÑÔ鶸èeÏv•“0Ö-¼ÓúÒó²gmYö¶“.­mÓSóîïåmÐÕHFªzØ6ÿÉVú7Ûw­SL€A3ö µÚ%{‹%,Ôšò/_0Ío”@)}Ã4¿ð·P_*+\ùjæÛV>€¦JÐÃ|Q—𜣤xþ«,¡šÃ40Íêw ääå…X©=Ä,4òMsˆL_rOl…!Ls€îËd‹5†_ÿ¾¦û€æðМnÃKþ€+Pƨd¯ðÕÄ@”ûgOÿþ í{®4£¢'QV½YŠè~f$¡:Wÿež¬Åsµ˜ÉÐ2­ÔY&x=ú Â4C,‹&˜—AåâbýW^Ïçª]“ËZX~)t¶ÿ¹#âÞ“ ­®cJ«Šx¸³Ú¯Š1Ú%÷ÿ”ÂÝUM˜g‰ÞíÒ˳º&·^ÿ”Û ÐÿÜô¯¥ý£&ÝðNë÷è?JéÛ÷B¨Ôþöœ˜××oÚ~)hš4_¬J+Yjái„^u×lhþ³±þ³QÉY^‚®;Ûá ‚{öÏYR5º¶Tþ|ÿ¸Çó<û÷­Yéß¡Û×9¾·¼XÏ:询;ü«ŒQ„èÞã2hUÏ=[L¯úUï}\_>æ÷|$¨²´zÿÆÉš.¶•1*H.”¯k)Ü÷,<9®pg£ÿ*¢W´P¸³Ñj‰È®Ü7 ±þ](c{É¥§!EŸL7hýëïYíÕBÕ/Ök†§¼·ì¥aDýÎdÃõšúïÛB·ï:쟛8Ù¦¦­É2ÿþ=·cû^¸L€A3Êõ¢€\Î:}îŠ4îÝŸ€äž@GÄÛ']D£tžg'>÷g#¹ç:Ï¿æC„îÁaoîÃ<¹*PyrƒÂM6&Óµ`! ïÁT¾…ZÝÂÛ£;4ùv7ÆCçjþ C©=FöùãnŠ‹©P¢ÒOºÃ_j jY\8éÜVl´œ6ʵ€Jwè“ ZÈäÅ¥aÁiùEOùÕ¾…n{ì.=A¯! xk…²Õû‘›Ö¯©óáÙåŸjïŸR{¼zTypç­_¨í_¼Ðš î?˜?tß÷«'ÖàúMP¼³Ý[ ênêKY·! —ߨüë?]ÿ~ýg}ýE”sWèt®œà4¤y»4î§ôì×?ý/zö½ßƒ\Ólóù¨¬}Bݿث}/A&üfšæïÇXQ\€C×R¨b¸åÏcÂ.A~³`ÖO¬º–Âý³÷Ä1ÁCsˆZÃ`ûÒÔPßü`‘^Nãín‹˜6ˆ´ÿœ’.AýmÞ®uýû€í{Nf“{„iY>ê¦ š´3MMãÙ³Í?ŒP¯·¼g¸Íº‚OâtÞýŠüȹO¾ÄHB}êíÝ÷ù1ûϱéåi–?5ÁKwsß]éßhßs´Kœ`Ð$"¢g×qì É§g‰ˆèd¶Ž=5M"":‰sdÐ$"¢£:·ìÒ‹A“ˆˆŽâœƒå ƒ&Eê‚å _n@gÁw>MÏ,~óišÕ™±#Š9/£.JôÌTã¼ýÀômTê|6‘CÎϸ4 ÎÊöÔóEþ³û–—0M:>ó š„*,´(*K“D?b„v{:ËLûæ*üÔ[!ëiùa:Hs„å©0·ßùÎë‡úl¶šþæOS“Àl–’î™–´°ýõã|‘ONËgù OÏRìiU•áÂÿ)¥o´7,£¿ (>yÞÂr=AïU «óî"êòéDÛýÊ7j×I´–> Ú~I¼ö-Ôj‡«W©ýí©ŒÛ"Ðߦ~˜ÎY}LÂ(ü¬ð_ºKŠõÃL“bnÃ|ƒp'œ®öÇÁ¯`ëEÜÝX¾¡¥PÅ8pŽÏµÛÿ™@ÂâDÏQ…I<¶Ü—凪Àù"/Œ7³¼Ô€ D4g 8ûG´“ó Ú(µ0»_("á}Åãûì'Ði8/äÏ]¡ãyé¸kýö:+ôŠ_óI¤?Þ#¸‡h$Q~L â;ô´vœ“b%Á2-ËóQ‹ì,3kÀK¿ê Pl”ž, å}XÆçdœ=äËÀ£-¿PsîCš˜Ýò^fî»ýòÞ…Û¸é6«34 ê«§vÀœ£ëêGg-Árf`šóQ»œKsºLkæ\˜Oô×+tÜî­¿ú̧éLŸµúdj°¨Ë´ýJiˆ\¹ßñ›orçú ÐÊ)¼b„vÍ‚‚ép²÷A  úMÍIqã=ŒC°<MŠ9ÿùKõ!2óùD¡Š!ºÞ‡^”1žpåη™®ÜÔßD¼<íð°LÔåÏÊ(ûÏn?l”êC êÌ÷ø(⮾8„ºsý ­F Ï\’¹çŹƒë‡óER\,ÊŸ,g8Ë Åßšù÷#@S¡UüŠhǨËß×éë÷Sç‹<'çð$ì±g9a¦IñW⥗\z¹Áž ­Ž…JT#êò÷uêúIT{#Ÿ'néÔ8»3M"":‹¬ÒçÓ$"¢£ðþðÜ‚å©0hý0çšUƃ&ÑÀ¬ò04‰ˆ.³ÊÃbÐ$"º0Ì*£Ã IDt3/c_žIDAT(ƒA“ˆèL1Pƒ&Ña <-M"¢˜c ŒM"¢b Œ'M"¢˜` Œ?M"¢b ÐYóõ0W‡¾ZžÝËù)åEQfÜË‹¢ÌŸV^eƽ¼(ÊŒ{yQ”÷ò`§â®3˜xã›ñÀdí®€ûžÓáX×òp-Ñ9r†cç–‡ký­šö-Š“ú³6ÑGg’ÁõÚˆˆˆÎ€r +ßAâÓùû³D>*ÓüÍ4Íß׬£œ¾Gð€æ †Â¾•¥X‰b¸„öÃ}OÜ/—F‡$ß;¿Ï|ÀЬÁ ±T@ФKÇAüpŸÄ÷ ÷4‰ˆˆh†A“ˆˆ($Ï…ÄL“ˆˆ($M""¢4‰ˆˆBbÐ$"" ‰A“ˆˆ($ÍŸBРÎ'-.C_ûEZjq‚c9-£vZsÚ]è}D‘à1B!0hþ4éÙ¡ s`Â÷) Ɔ%fßuþÕ¼_Šö°ý>¢Câ1Bá0hþÂ;Z‰<2³·O2È'úøÜ¸÷Ñi±ý)$ÍcyZ·åiß5$;ßvûˆÇã!yaŒ¤ê¹Ï¢B0ÖÍû%ûÙµ%((}»CNÝQ É)‡¢³Õ>¢ƒã1B!q7_eÜöÜgi£dc:Ôäý’ð^èò*x€g^UŠÆûˆ€Ç…Ä ùc,5-EÑéqÛŸ‚1hþö-ŠÏ•p¢Î$ƒkóÇç%ç{Aƒ*¹ÛÉ*xÀŸ ŒÖÆ}D‘ã1B!1hþ JßM`öà‚4¿KPü¾jß +ÞÏï‹æ®²hj(»Ê?Îûˆ"Àc„ÂáÔ`DDD!ýÿÉp¾ê‚FkIEND®B`‚PythonQwt-0.12.7/qwt/tests/test_backingstore.py000066400000000000000000000010141465265754400216350ustar00rootroot00000000000000# -*- coding: utf-8 -*- SHOW = False # Do not show test in GUI-based test launcher from qwt.tests import utils from qwt.tests.test_simple import SimplePlot class BackingStorePlot(SimplePlot): TEST_EXPORT = False def __init__(self): SimplePlot.__init__(self) self.canvas().setPaintAttribute(self.canvas().BackingStore, True) def test_backingstore(): """Test for backing store""" utils.test_widget(BackingStorePlot, size=(600, 400)) if __name__ == "__main__": test_backingstore() PythonQwt-0.12.7/qwt/tests/test_bodedemo.py000066400000000000000000000222521465265754400207470ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import os import numpy as np from qtpy.QtCore import Qt from qtpy.QtGui import QFont, QIcon, QPageLayout, QPen, QPixmap from qtpy.QtPrintSupport import QPrintDialog, QPrinter from qtpy.QtWidgets import ( QFrame, QHBoxLayout, QLabel, QMainWindow, QToolBar, QToolButton, QWidget, ) from qwt import ( QwtLegend, QwtLogScaleEngine, QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtPlotMarker, QwtPlotRenderer, QwtSymbol, QwtText, ) from qwt.tests import utils print_xpm = [ "32 32 12 1", "a c #ffffff", "h c #ffff00", "c c #ffffff", "f c #dcdcdc", "b c #c0c0c0", "j c #a0a0a4", "e c #808080", "g c #808000", "d c #585858", "i c #00ff00", "# c #000000", ". c None", "................................", "................................", "...........###..................", "..........#abb###...............", ".........#aabbbbb###............", ".........#ddaaabbbbb###.........", "........#ddddddaaabbbbb###......", ".......#deffddddddaaabbbbb###...", "......#deaaabbbddddddaaabbbbb###", ".....#deaaaaaaabbbddddddaaabbbb#", "....#deaaabbbaaaa#ddedddfggaaad#", "...#deaaaaaaaaaa#ddeeeeafgggfdd#", "..#deaaabbbaaaa#ddeeeeabbbbgfdd#", ".#deeefaaaaaaa#ddeeeeabbhhbbadd#", "#aabbbeeefaaa#ddeeeeabbbbbbaddd#", "#bbaaabbbeee#ddeeeeabbiibbadddd#", "#bbbbbaaabbbeeeeeeabbbbbbaddddd#", "#bjbbbbbbaaabbbbeabbbbbbadddddd#", "#bjjjjbbbbbbaaaeabbbbbbaddddddd#", "#bjaaajjjbbbbbbaaabbbbadddddddd#", "#bbbbbaaajjjbbbbbbaaaaddddddddd#", "#bjbbbbbbaaajjjbbbbbbddddddddd#.", "#bjjjjbbbbbbaaajjjbbbdddddddd#..", "#bjaaajjjbbbbbbjaajjbddddddd#...", "#bbbbbaaajjjbbbjbbaabdddddd#....", "###bbbbbbaaajjjjbbbbbddddd#.....", "...###bbbbbbaaajbbbbbdddd#......", "......###bbbbbbjbbbbbddd#.......", ".........###bbbbbbbbbdd#........", "............###bbbbbbd#.........", "...............###bbb#..........", "..................###...........", ] class BodePlot(QwtPlot): def __init__(self, *args): QwtPlot.__init__(self, *args) self.setTitle("Frequency Response of a 2nd-order System") self.setCanvasBackground(Qt.darkBlue) # legend legend = QwtLegend() legend.setFrameStyle(QFrame.Box | QFrame.Sunken) self.insertLegend(legend, QwtPlot.BottomLegend) # grid QwtPlotGrid.make(plot=self, enableminor=(True, False), color=Qt.darkGray) # axes self.enableAxis(QwtPlot.yRight) self.setAxisTitle(QwtPlot.xBottom, "\u03c9/\u03c90") self.setAxisTitle(QwtPlot.yLeft, "Amplitude [dB]") self.setAxisTitle(QwtPlot.yRight, "Phase [\u00b0]") self.setAxisMaxMajor(QwtPlot.xBottom, 6) self.setAxisMaxMinor(QwtPlot.xBottom, 10) self.setAxisScaleEngine(QwtPlot.xBottom, QwtLogScaleEngine()) # curves self.curve1 = QwtPlotCurve.make( title="Amplitude", linecolor=Qt.yellow, plot=self, antialiased=True ) self.curve2 = QwtPlotCurve.make( title="Phase", linecolor=Qt.cyan, plot=self, antialiased=True ) self.dB3Marker = QwtPlotMarker.make( label=QwtText.make(color=Qt.white, brush=Qt.red, weight=QFont.Light), linestyle=QwtPlotMarker.VLine, align=Qt.AlignRight | Qt.AlignBottom, color=Qt.green, width=2, style=Qt.DashDotLine, plot=self, ) self.peakMarker = QwtPlotMarker.make( label=QwtText.make( color=Qt.red, brush=self.canvasBackground(), weight=QFont.Bold ), symbol=QwtSymbol.make(QwtSymbol.Diamond, Qt.yellow, Qt.green, (7, 7)), linestyle=QwtPlotMarker.HLine, align=Qt.AlignRight | Qt.AlignBottom, color=Qt.red, width=2, style=Qt.DashDotLine, plot=self, ) QwtPlotMarker.make( xvalue=0.1, yvalue=-20.0, align=Qt.AlignRight | Qt.AlignBottom, label=QwtText.make( "[1-(\u03c9/\u03c90)2+2j\u03c9/Q]" "-1", color=Qt.white, borderradius=2, borderpen=QPen(Qt.lightGray, 5), brush=Qt.lightGray, weight=QFont.Bold, ), plot=self, ) self.setDamp(0.01) def showData(self, frequency, amplitude, phase): self.curve1.setData(frequency, amplitude) self.curve2.setData(frequency, phase) def showPeak(self, frequency, amplitude): self.peakMarker.setValue(frequency, amplitude) label = self.peakMarker.label() label.setText("Peak: %4g dB" % amplitude) self.peakMarker.setLabel(label) def show3dB(self, frequency): self.dB3Marker.setValue(frequency, 0.0) label = self.dB3Marker.label() label.setText("-3dB at f = %4g" % frequency) self.dB3Marker.setLabel(label) def setDamp(self, d): self.damping = d # Numerical Python: f, g, a and p are NumPy arrays! f = np.exp(np.log(10.0) * np.arange(-2, 2.02, 0.04)) g = 1.0 / (1.0 - f * f + 2j * self.damping * f) a = 20.0 * np.log10(abs(g)) p = 180 * np.arctan2(g.imag, g.real) / np.pi # for show3dB i3 = np.argmax(np.where(np.less(a, -3.0), a, -100.0)) f3 = f[i3] - (a[i3] + 3.0) * (f[i3] - f[i3 - 1]) / (a[i3] - a[i3 - 1]) # for showPeak imax = np.argmax(a) self.showPeak(f[imax], a[imax]) self.show3dB(f3) self.showData(f, a, p) self.replot() FNAME_PDF = "bode.pdf" class BodeDemo(QMainWindow): def __init__(self, *args): QMainWindow.__init__(self, *args) self.plot = BodePlot(self) self.plot.setContentsMargins(5, 5, 5, 0) self.setContextMenuPolicy(Qt.NoContextMenu) self.setCentralWidget(self.plot) toolBar = QToolBar(self) self.addToolBar(toolBar) btnPrint = QToolButton(toolBar) btnPrint.setText("Print") btnPrint.setIcon(QIcon(QPixmap(print_xpm))) btnPrint.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) toolBar.addWidget(btnPrint) btnPrint.clicked.connect(self.print_) btnExport = QToolButton(toolBar) btnExport.setText("Export") btnExport.setIcon(QIcon(QPixmap(print_xpm))) btnExport.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) toolBar.addWidget(btnExport) btnExport.clicked.connect(self.exportDocument) toolBar.addSeparator() dampBox = QWidget(toolBar) dampLayout = QHBoxLayout(dampBox) dampLayout.setSpacing(0) dampLayout.addWidget(QWidget(dampBox), 10) # spacer dampLayout.addWidget(QLabel("Damping Factor", dampBox), 0) dampLayout.addSpacing(10) toolBar.addWidget(dampBox) self.statusBar() self.showInfo() if utils.TestEnvironment().unattended: self.print_(unattended=True) def print_(self, unattended=False): try: mode = QPrinter.HighResolution printer = QPrinter(mode) except AttributeError: # Some PySide6 / PyQt6 versions do not have this attribute on Linux printer = QPrinter() printer.setCreator("Bode example") printer.setPageOrientation(QPageLayout.Landscape) try: printer.setColorMode(QPrinter.Color) except AttributeError: pass docName = str(self.plot.title().text()) if not docName: docName.replace("\n", " -- ") printer.setDocName(docName) dialog = QPrintDialog(printer) if unattended: # Configure QPrinter object to print to PDF file printer.setPrinterName("") printer.setOutputFileName(FNAME_PDF) dialog.accept() ok = True else: ok = dialog.exec_() if ok: renderer = QwtPlotRenderer() renderer.renderTo(self.plot, printer) def exportDocument(self): renderer = QwtPlotRenderer(self.plot) renderer.exportTo(self.plot, "bode") def showInfo(self, text=""): self.statusBar().showMessage(text) def moved(self, point): info = "Freq=%g, Ampl=%g, Phase=%g" % ( self.plot.invTransform(QwtPlot.xBottom, point.x()), self.plot.invTransform(QwtPlot.yLeft, point.y()), self.plot.invTransform(QwtPlot.yRight, point.y()), ) self.showInfo(info) def selected(self, _): self.showInfo() def test_bodedemo(): """Bode demo""" utils.test_widget(BodeDemo, (640, 480)) if os.path.isfile(FNAME_PDF): os.remove(FNAME_PDF) if __name__ == "__main__": test_bodedemo() PythonQwt-0.12.7/qwt/tests/test_cartesian.py000066400000000000000000000074171465265754400211500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import Qt from qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtPlotItem, QwtScaleDraw from qwt.tests import utils class CartesianAxis(QwtPlotItem): """Supports a coordinate system similar to http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg""" def __init__(self, masterAxis, slaveAxis): """Valid input values for masterAxis and slaveAxis are QwtPlot.yLeft, QwtPlot.yRight, QwtPlot.xBottom, and QwtPlot.xTop. When masterAxis is an x-axis, slaveAxis must be an y-axis; and vice versa.""" QwtPlotItem.__init__(self) self.__axis = masterAxis if masterAxis in (QwtPlot.yLeft, QwtPlot.yRight): self.setAxes(slaveAxis, masterAxis) else: self.setAxes(masterAxis, slaveAxis) self.scaleDraw = QwtScaleDraw() self.scaleDraw.setAlignment( ( QwtScaleDraw.LeftScale, QwtScaleDraw.RightScale, QwtScaleDraw.BottomScale, QwtScaleDraw.TopScale, )[masterAxis] ) def draw(self, painter, xMap, yMap, rect): """Draw an axis on the plot canvas""" xtr = xMap.transform ytr = yMap.transform if self.__axis in (QwtPlot.yLeft, QwtPlot.yRight): self.scaleDraw.move(round(xtr(0.0)), yMap.p2()) self.scaleDraw.setLength(yMap.p1() - yMap.p2()) elif self.__axis in (QwtPlot.xBottom, QwtPlot.xTop): self.scaleDraw.move(xMap.p1(), round(ytr(0.0))) self.scaleDraw.setLength(xMap.p2() - xMap.p1()) self.scaleDraw.setScaleDiv(self.plot().axisScaleDiv(self.__axis)) self.scaleDraw.draw(painter, self.plot().palette()) class CartesianPlot(QwtPlot): """Creates a coordinate system similar system http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg""" def __init__(self, *args): QwtPlot.__init__(self, *args) self.setTitle("Cartesian Coordinate System Demo") # create a plot with a white canvas self.setCanvasBackground(Qt.white) # set plot layout self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(True) # attach a grid QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1) # attach a x-axis xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft) xaxis.attach(self) self.enableAxis(QwtPlot.xBottom, False) # attach a y-axis yaxis = CartesianAxis(QwtPlot.yLeft, QwtPlot.xBottom) yaxis.attach(self) self.enableAxis(QwtPlot.yLeft, False) # calculate 3 NumPy arrays x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) # attach a curve QwtPlotCurve.make( x, np.pi * np.sin(x), title="y = pi*sin(x)", linecolor=Qt.green, linewidth=2, plot=self, antialiased=True, ) # attach another curve QwtPlotCurve.make( x, 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x), title="y = 4*pi*sin(x)*cos(x)**2", linecolor=Qt.blue, linewidth=2, plot=self, antialiased=True, ) self.replot() def test_cartesian(): """Cartesian plot test""" utils.test_widget(CartesianPlot, (800, 480)) if __name__ == "__main__": test_cartesian() PythonQwt-0.12.7/qwt/tests/test_cpudemo.py000066400000000000000000000307741465265754400206350ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import os import numpy as np from qtpy.QtCore import QRect, Qt, QTime from qtpy.QtGui import QBrush, QColor from qtpy.QtWidgets import QLabel, QVBoxLayout, QWidget from qwt import ( QwtLegend, QwtLegendData, QwtPlot, QwtPlotCurve, QwtPlotItem, QwtPlotMarker, QwtScaleDraw, QwtText, ) from qwt.tests import utils class CpuStat: User = 0 Nice = 1 System = 2 Idle = 3 counter = 0 dummyValues = ( (103726, 0, 23484, 819556), (103783, 0, 23489, 819604), (103798, 0, 23490, 819688), (103820, 0, 23490, 819766), (103840, 0, 23493, 819843), (103875, 0, 23499, 819902), (103917, 0, 23504, 819955), (103950, 0, 23508, 820018), (103987, 0, 23510, 820079), (104020, 0, 23513, 820143), (104058, 0, 23514, 820204), (104099, 0, 23520, 820257), (104121, 0, 23525, 820330), (104159, 0, 23530, 820387), (104176, 0, 23534, 820466), (104215, 0, 23538, 820523), (104245, 0, 23541, 820590), (104267, 0, 23545, 820664), (104311, 0, 23555, 820710), (104355, 0, 23565, 820756), (104367, 0, 23567, 820842), (104383, 0, 23572, 820921), (104396, 0, 23577, 821003), (104413, 0, 23579, 821084), (104446, 0, 23588, 821142), (104521, 0, 23594, 821161), (104611, 0, 23604, 821161), (104708, 0, 23607, 821161), (104804, 0, 23611, 821161), (104895, 0, 23620, 821161), (104993, 0, 23622, 821161), (105089, 0, 23626, 821161), (105185, 0, 23630, 821161), (105281, 0, 23634, 821161), (105379, 0, 23636, 821161), (105472, 0, 23643, 821161), (105569, 0, 23646, 821161), (105666, 0, 23649, 821161), (105763, 0, 23652, 821161), (105828, 0, 23661, 821187), (105904, 0, 23666, 821206), (105999, 0, 23671, 821206), (106094, 0, 23676, 821206), (106184, 0, 23686, 821206), (106273, 0, 23692, 821211), (106306, 0, 23700, 821270), (106341, 0, 23703, 821332), (106392, 0, 23709, 821375), (106423, 0, 23715, 821438), (106472, 0, 23721, 821483), (106531, 0, 23727, 821517), (106562, 0, 23732, 821582), (106597, 0, 23736, 821643), (106633, 0, 23737, 821706), (106666, 0, 23742, 821768), (106697, 0, 23744, 821835), (106730, 0, 23748, 821898), (106765, 0, 23751, 821960), (106799, 0, 23754, 822023), (106831, 0, 23758, 822087), (106862, 0, 23761, 822153), (106899, 0, 23763, 822214), (106932, 0, 23766, 822278), (106965, 0, 23768, 822343), (107009, 0, 23771, 822396), (107040, 0, 23775, 822461), (107092, 0, 23780, 822504), (107143, 0, 23787, 822546), (107200, 0, 23795, 822581), (107250, 0, 23803, 822623), (107277, 0, 23810, 822689), (107286, 0, 23810, 822780), (107313, 0, 23817, 822846), (107325, 0, 23818, 822933), (107332, 0, 23818, 823026), (107344, 0, 23821, 823111), (107357, 0, 23821, 823198), (107368, 0, 23823, 823284), (107375, 0, 23824, 823377), (107386, 0, 23825, 823465), (107396, 0, 23826, 823554), (107422, 0, 23830, 823624), (107434, 0, 23831, 823711), (107456, 0, 23835, 823785), (107468, 0, 23838, 823870), (107487, 0, 23840, 823949), (107515, 0, 23843, 824018), (107528, 0, 23846, 824102), (107535, 0, 23851, 824190), (107548, 0, 23853, 824275), (107562, 0, 23857, 824357), (107656, 0, 23863, 824357), (107751, 0, 23868, 824357), (107849, 0, 23870, 824357), (107944, 0, 23875, 824357), (108043, 0, 23876, 824357), (108137, 0, 23882, 824357), (108230, 0, 23889, 824357), (108317, 0, 23902, 824357), (108412, 0, 23907, 824357), (108511, 0, 23908, 824357), (108608, 0, 23911, 824357), (108704, 0, 23915, 824357), (108801, 0, 23918, 824357), (108891, 0, 23928, 824357), (108987, 0, 23932, 824357), (109072, 0, 23943, 824361), (109079, 0, 23943, 824454), (109086, 0, 23944, 824546), (109098, 0, 23950, 824628), (109108, 0, 23955, 824713), (109115, 0, 23957, 824804), (109122, 0, 23958, 824896), (109132, 0, 23959, 824985), (109142, 0, 23961, 825073), (109146, 0, 23962, 825168), (109153, 0, 23964, 825259), (109162, 0, 23966, 825348), (109168, 0, 23969, 825439), (109176, 0, 23971, 825529), (109185, 0, 23974, 825617), (109193, 0, 23977, 825706), (109198, 0, 23978, 825800), (109206, 0, 23978, 825892), (109212, 0, 23981, 825983), (109219, 0, 23981, 826076), (109225, 0, 23981, 826170), (109232, 0, 23984, 826260), (109242, 0, 23984, 826350), (109255, 0, 23986, 826435), (109268, 0, 23987, 826521), (109283, 0, 23990, 826603), (109288, 0, 23991, 826697), (109295, 0, 23993, 826788), (109308, 0, 23994, 826874), (109322, 0, 24009, 826945), (109328, 0, 24011, 827037), (109338, 0, 24012, 827126), (109347, 0, 24012, 827217), (109354, 0, 24017, 827305), (109367, 0, 24017, 827392), (109371, 0, 24019, 827486), ) def __init__(self): self.procValues = self.__lookup() def statistic(self): values = self.__lookup() userDelta = 0.0 for i in [CpuStat.User, CpuStat.Nice]: userDelta += values[i] - self.procValues[i] systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System] totalDelta = 0.0 for i in range(len(self.procValues)): totalDelta += values[i] - self.procValues[i] self.procValues = values return 100.0 * userDelta / totalDelta, 100.0 * systemDelta / totalDelta def upTime(self): result = QTime() for item in self.procValues: result = result.addSecs(int(0.01 * item)) return result def __lookup(self): if os.path.exists("/proc/stat"): for line in open("/proc/stat"): words = line.split() if words[0] == "cpu" and len(words) >= 5: return [float(w) for w in words[1:]] else: result = CpuStat.dummyValues[CpuStat.counter] CpuStat.counter += 1 CpuStat.counter %= len(CpuStat.dummyValues) return result class CpuPieMarker(QwtPlotMarker): def __init__(self, *args): QwtPlotMarker.__init__(self, *args) self.setZ(1000.0) self.setRenderHint(QwtPlotItem.RenderAntialiased, True) def rtti(self): return QwtPlotItem.Rtti_PlotUserItem def draw(self, painter, xMap, yMap, rect): margin = 5 pieRect = QRect() pieRect.setX(rect.x() + margin) pieRect.setY(rect.y() + margin) pieRect.setHeight(int(yMap.transform(80.0))) pieRect.setWidth(pieRect.height()) angle = 3 * 5760 / 4 for key in ["User", "System", "Idle"]: curve = self.plot().cpuPlotCurve(key) if curve.dataSize(): value = int(5760 * curve.sample(0).y() / 100.0) painter.save() painter.setBrush(QBrush(curve.pen().color(), Qt.SolidPattern)) painter.drawPie(pieRect, int(-angle), int(-value)) painter.restore() angle += value class TimeScaleDraw(QwtScaleDraw): def __init__(self, baseTime, *args): QwtScaleDraw.__init__(self, *args) self.baseTime = baseTime def label(self, value): upTime = self.baseTime.addSecs(int(value)) return QwtText(upTime.toString()) class Background(QwtPlotItem): def __init__(self): QwtPlotItem.__init__(self) self.setZ(0.0) def rtti(self): return QwtPlotItem.Rtti_PlotUserItem def draw(self, painter, xMap, yMap, rect): c = QColor(Qt.white) r = QRect(rect) for i in range(100, 0, -10): r.setBottom(int(yMap.transform(i - 10))) r.setTop(int(yMap.transform(i))) painter.fillRect(r, c) c = c.darker(110) class CpuCurve(QwtPlotCurve): def __init__(self, *args): QwtPlotCurve.__init__(self, *args) self.setRenderHint(QwtPlotItem.RenderAntialiased) def setColor(self, color): c = QColor(color) c.setAlpha(150) self.setPen(c) self.setBrush(c) class CpuPlot(QwtPlot): HISTORY = 60 def __init__(self, unattended=False): QwtPlot.__init__(self) self.curves = {} self.data = {} self.timeData = 1.0 * np.arange(self.HISTORY - 1, -1, -1) self.cpuStat = CpuStat() self.setAutoReplot(False) self.plotLayout().setAlignCanvasToScales(True) legend = QwtLegend() legend.setDefaultItemMode(QwtLegendData.Checkable) self.insertLegend(legend, QwtPlot.RightLegend) self.setAxisTitle(QwtPlot.xBottom, "System Uptime [h:m:s]") self.setAxisScaleDraw(QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime())) self.setAxisScale(QwtPlot.xBottom, 0, self.HISTORY) self.setAxisLabelRotation(QwtPlot.xBottom, -50.0) self.setAxisLabelAlignment(QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom) self.setAxisTitle(QwtPlot.yLeft, "Cpu Usage [%]") self.setAxisScale(QwtPlot.yLeft, 0, 100) background = Background() background.attach(self) pie = CpuPieMarker() pie.attach(self) curve = CpuCurve("System") curve.setColor(Qt.red) curve.attach(self) self.curves["System"] = curve self.data["System"] = np.zeros(self.HISTORY, float) curve = CpuCurve("User") curve.setColor(Qt.blue) curve.setZ(curve.z() - 1.0) curve.attach(self) self.curves["User"] = curve self.data["User"] = np.zeros(self.HISTORY, float) curve = CpuCurve("Total") curve.setColor(Qt.black) curve.setZ(curve.z() - 2.0) curve.attach(self) self.curves["Total"] = curve self.data["Total"] = np.zeros(self.HISTORY, float) curve = CpuCurve("Idle") curve.setColor(Qt.darkCyan) curve.setZ(curve.z() - 3.0) curve.attach(self) self.curves["Idle"] = curve self.data["Idle"] = np.zeros(self.HISTORY, float) self.showCurve(self.curves["System"], True) self.showCurve(self.curves["User"], True) self.showCurve(self.curves["Total"], False or unattended) self.showCurve(self.curves["Idle"], False or unattended) self.startTimer(20 if unattended else 1000) legend.checked.connect(self.showCurve) self.replot() def timerEvent(self, e): for data in self.data.values(): data[1:] = data[0:-1] self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic() self.data["Total"][0] = self.data["User"][0] + self.data["System"][0] self.data["Idle"][0] = 100.0 - self.data["Total"][0] self.timeData += 1.0 self.setAxisScale(QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) for key in self.curves.keys(): self.curves[key].setData(self.timeData, self.data[key]) self.replot() def showCurve(self, item, on, index=None): item.setVisible(on) self.legend().legendWidget(item).setChecked(on) self.replot() def cpuPlotCurve(self, key): return self.curves[key] class CpuDemo(QWidget): def __init__(self, parent=None, unattended=False): super(CpuDemo, self).__init__(parent) layout = QVBoxLayout() self.setLayout(layout) plot = CpuPlot(unattended=unattended) plot.setTitle("History") layout.addWidget(plot) label = QLabel("Press the legend to en/disable a curve") layout.addWidget(label) def test_cpudemo(): """CPU demo""" utils.test_widget(CpuDemo, (600, 400)) if __name__ == "__main__": test_cpudemo() PythonQwt-0.12.7/qwt/tests/test_curvebenchmark1.py000066400000000000000000000132451465265754400222530ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """Curve benchmark example""" SHOW = True # Show test in GUI-based test launcher import time import numpy as np from qtpy.QtCore import Qt from qtpy.QtWidgets import ( QApplication, QGridLayout, QLineEdit, QMainWindow, QTabWidget, QTextEdit, QWidget, ) from qwt import QwtPlot, QwtPlotCurve from qwt.tests import utils COLOR_INDEX = None def get_curve_color(): global COLOR_INDEX colors = (Qt.blue, Qt.red, Qt.green, Qt.yellow, Qt.magenta, Qt.cyan) if COLOR_INDEX is None: COLOR_INDEX = 0 else: COLOR_INDEX = (COLOR_INDEX + 1) % len(colors) return colors[COLOR_INDEX] PLOT_ID = 0 class BMPlot(QwtPlot): def __init__(self, title, xdata, ydata, style, symbol=None, *args): super(BMPlot, self).__init__(*args) global PLOT_ID self.setMinimumSize(200, 150) PLOT_ID += 1 self.setTitle("%s (#%d)" % (title, PLOT_ID)) self.setAxisTitle(QwtPlot.xBottom, "x") self.setAxisTitle(QwtPlot.yLeft, "y") self.curve_nb = 0 for idx in range(1, 11): self.curve_nb += 1 QwtPlotCurve.make( xdata, ydata * idx, style=style, symbol=symbol, linecolor=get_curve_color(), antialiased=True, plot=self, ) self.replot() class BMWidget(QWidget): def __init__(self, nbcol, points, *args, **kwargs): super(BMWidget, self).__init__() self.plot_nb = 0 self.curve_nb = 0 self.setup(nbcol, points, *args, **kwargs) def params(self, *args, **kwargs): if kwargs.get("only_lines", False): return (("Lines", None),) else: return ( ("Lines", None), ("Dots", None), ) def setup(self, nbcol, points, *args, **kwargs): x = np.linspace(0.001, 20.0, int(points)) y = (np.sin(x) / x) * np.cos(20 * x) layout = QGridLayout() col, row = 0, 0 for style, symbol in self.params(*args, **kwargs): plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol) layout.addWidget(plot, row, col) self.plot_nb += 1 self.curve_nb += plot.curve_nb col += 1 if col >= nbcol: row += 1 col = 0 self.text = QLineEdit() self.text.setReadOnly(True) self.text.setAlignment(Qt.AlignCenter) self.text.setText("Rendering plot...") layout.addWidget(self.text, row + 1, 0, 1, nbcol) self.setLayout(layout) class BMText(QTextEdit): def __init__(self, parent=None, title=None): super(BMText, self).__init__(parent) self.setReadOnly(True) library = "PythonQwt" wintitle = self.parent().windowTitle() if not wintitle: wintitle = "Benchmark" if title is None: title = "%s example" % wintitle self.parent().setWindowTitle("%s [%s]" % (wintitle, library)) self.setText( """\ %s:
(base plotting library: %s)

Click on each tab to test if plotting performance is acceptable in terms of GUI response time (switch between tabs, resize main windows, ...).


Benchmarks results: """ % (title, library) ) class CurveBenchmark1(QMainWindow): TITLE = "Curve benchmark" SIZE = (1000, 500) def __init__(self, max_n=1000000, parent=None, unattended=False, **kwargs): super(CurveBenchmark1, self).__init__(parent=parent) title = self.TITLE if kwargs.get("only_lines", False): title = "%s (%s)" % (title, "only lines") self.setWindowTitle(title) self.tabs = QTabWidget() self.setCentralWidget(self.tabs) self.text = BMText(self) self.tabs.addTab(self.text, "Contents") self.resize(*self.SIZE) # Force window to show up and refresh (for test purpose only) self.show() QApplication.processEvents() t0g = time.time() self.run_benchmark(max_n, unattended, **kwargs) dt = time.time() - t0g self.text.append("

Total elapsed time: %d ms" % (dt * 1e3)) self.tabs.setCurrentIndex(1 if unattended else 0) def process_iteration(self, title, description, widget, t0): self.tabs.addTab(widget, title) self.tabs.setCurrentWidget(widget) # Force widget to refresh (for test purpose only) QApplication.processEvents() time_str = "Elapsed time: %d ms" % ((time.time() - t0) * 1000) widget.text.setText(time_str) self.text.append("
%s:
%s" % (description, time_str)) print("[%s] %s" % (utils.get_lib_versions(), time_str)) def run_benchmark(self, max_n, unattended, **kwargs): max_n = 1000 if unattended else max_n iterations = 0 if unattended else 4 for idx in range(iterations, -1, -1): points = int(max_n / 10**idx) t0 = time.time() widget = BMWidget(2, points, **kwargs) title = "%d points" % points description = "%d plots with %d curves of %d points" % ( widget.plot_nb, widget.curve_nb, points, ) self.process_iteration(title, description, widget, t0) def test_curvebenchmark1(): """Curve benchmark example""" utils.test_widget(CurveBenchmark1, options=False) if __name__ == "__main__": test_curvebenchmark1() PythonQwt-0.12.7/qwt/tests/test_curvebenchmark2.py000066400000000000000000000052401465265754400222500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """Curve styles""" SHOW = True # Show test in GUI-based test launcher import time from qtpy.QtCore import Qt from qwt import QwtSymbol from qwt.tests import test_curvebenchmark1 as cb from qwt.tests import utils class CSWidget(cb.BMWidget): def params(self, *args, **kwargs): (symbols,) = args symb1 = QwtSymbol.make( QwtSymbol.Ellipse, brush=Qt.yellow, pen=Qt.blue, size=(5, 5) ) symb2 = QwtSymbol.make(QwtSymbol.XCross, pen=Qt.darkMagenta, size=(5, 5)) if symbols: if kwargs.get("only_lines", False): return ( ("Lines", symb1), ("Lines", symb1), ("Lines", symb2), ("Lines", symb2), ) else: return ( ("Sticks", symb1), ("Lines", symb1), ("Steps", symb2), ("Dots", symb2), ) else: if kwargs.get("only_lines", False): return ( ("Lines", None), ("Lines", None), ("Lines", None), ("Lines", None), ) else: return ( ("Sticks", None), ("Lines", None), ("Steps", None), ("Dots", None), ) class CurveBenchmark2(cb.CurveBenchmark1): TITLE = "Curve styles" SIZE = (1000, 800) def __init__(self, max_n=1000, parent=None, unattended=False, **kwargs): super(CurveBenchmark2, self).__init__( max_n=max_n, parent=parent, unattended=unattended, **kwargs ) def run_benchmark(self, max_n, unattended, **kwargs): for points, symbols in zip( (max_n / 10, max_n / 10, max_n, max_n), (True, False) * 2 ): t0 = time.time() symtext = "with%s symbols" % ("" if symbols else "out") widget = CSWidget(2, points, symbols, **kwargs) title = "%d points" % points description = "%d plots with %d curves of %d points, %s" % ( widget.plot_nb, widget.curve_nb, points, symtext, ) self.process_iteration(title, description, widget, t0) def test_curvebenchmark2(): """Curve styles benchmark example""" utils.test_widget(CurveBenchmark2, options=False) if __name__ == "__main__": test_curvebenchmark2() PythonQwt-0.12.7/qwt/tests/test_curvedemo1.py000066400000000000000000000101251465265754400212370ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import QSize, Qt from qtpy.QtGui import QBrush, QFont, QPainter, QPen from qtpy.QtWidgets import QFrame from qwt import QwtPlotCurve, QwtPlotItem, QwtScaleMap, QwtSymbol from qwt.tests import utils class CurveDemo1(QFrame): def __init__(self, *args): QFrame.__init__(self, *args) self.xMap = QwtScaleMap() self.xMap.setScaleInterval(-0.5, 10.5) self.yMap = QwtScaleMap() self.yMap.setScaleInterval(-1.1, 1.1) # frame style self.setFrameStyle(QFrame.Box | QFrame.Raised) self.setLineWidth(2) self.setMidLineWidth(3) # calculate values self.x = np.arange(0, 10.0, 10.0 / 27) self.y = np.sin(self.x) * np.cos(2 * self.x) # make curves with different styles self.curves = [] self.titles = [] # curve 1 self.titles.append("Style: Sticks, Symbol: Ellipse") curve = QwtPlotCurve() curve.setPen(QPen(Qt.red)) curve.setStyle(QwtPlotCurve.Sticks) curve.setSymbol( QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5)) ) self.curves.append(curve) # curve 2 self.titles.append("Style: Lines, Symbol: None") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkBlue)) curve.setStyle(QwtPlotCurve.Lines) self.curves.append(curve) # curve 3 self.titles.append("Style: Lines, Symbol: None, Antialiased") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkBlue)) curve.setStyle(QwtPlotCurve.Lines) curve.setRenderHint(QwtPlotItem.RenderAntialiased) self.curves.append(curve) # curve 4 self.titles.append("Style: Steps, Symbol: None") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkCyan)) curve.setStyle(QwtPlotCurve.Steps) self.curves.append(curve) # curve 5 self.titles.append("Style: NoCurve, Symbol: XCross") curve = QwtPlotCurve() curve.setStyle(QwtPlotCurve.NoCurve) curve.setSymbol( QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5)) ) self.curves.append(curve) # attach data, using Numeric for curve in self.curves: curve.setData(self.x, self.y) def shiftDown(self, rect, offset): rect.translate(0, offset) def paintEvent(self, event): QFrame.paintEvent(self, event) painter = QPainter(self) painter.setClipRect(self.contentsRect()) self.drawContents(painter) def drawContents(self, painter): # draw curves r = self.contentsRect() dy = int(r.height() / len(self.curves)) r.setHeight(dy) for curve in self.curves: self.xMap.setPaintInterval(r.left(), r.right()) self.yMap.setPaintInterval(r.top(), r.bottom()) painter.setRenderHint( QPainter.Antialiasing, curve.testRenderHint(QwtPlotItem.RenderAntialiased), ) curve.draw(painter, self.xMap, self.yMap, r) self.shiftDown(r, dy) # draw titles r = self.contentsRect() r.setHeight(dy) painter.setFont(QFont("Helvetica", 8)) painter.setPen(Qt.black) for title in self.titles: painter.drawText( 0, r.top(), r.width(), painter.fontMetrics().height(), Qt.AlignTop | Qt.AlignHCenter, title, ) self.shiftDown(r, dy) def test_curvedemo1(): """Curve demo 1""" utils.test_widget(CurveDemo1, size=(300, 600), options=False) if __name__ == "__main__": test_curvedemo1() PythonQwt-0.12.7/qwt/tests/test_curvedemo2.py000066400000000000000000000077601465265754400212530ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import QSize, Qt from qtpy.QtGui import QBrush, QColor, QPainter, QPalette, QPen from qtpy.QtWidgets import QFrame from qwt import QwtPlotCurve, QwtScaleMap, QwtSymbol from qwt.tests import utils Size = 15 USize = 13 class CurveDemo2(QFrame): def __init__(self, *args): QFrame.__init__(self, *args) self.setFrameStyle(QFrame.Box | QFrame.Raised) self.setLineWidth(2) self.setMidLineWidth(3) p = QPalette() p.setColor(self.backgroundRole(), QColor(30, 30, 50)) self.setPalette(p) # make curves and maps self.tuples = [] # curve 1 curve = QwtPlotCurve() curve.setPen(QPen(QColor(150, 150, 200), 2)) curve.setStyle(QwtPlotCurve.Lines) curve.setSymbol( QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.yellow, 2), QSize(7, 7)) ) self.tuples.append( (curve, QwtScaleMap(0, 100, -1.5, 1.5), QwtScaleMap(0, 100, 0.0, 2 * np.pi)) ) # curve 2 curve = QwtPlotCurve() curve.setPen(QPen(QColor(200, 150, 50), 1, Qt.DashDotDotLine)) curve.setStyle(QwtPlotCurve.Sticks) curve.setSymbol( QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.blue), QPen(Qt.yellow), QSize(5, 5)) ) self.tuples.append( (curve, QwtScaleMap(0, 100, 0.0, 2 * np.pi), QwtScaleMap(0, 100, -3.0, 1.1)) ) # curve 3 curve = QwtPlotCurve() curve.setPen(QPen(QColor(100, 200, 150))) curve.setStyle(QwtPlotCurve.Lines) self.tuples.append( (curve, QwtScaleMap(0, 100, -1.1, 3.0), QwtScaleMap(0, 100, -1.1, 3.0)) ) # curve 4 curve = QwtPlotCurve() curve.setPen(QPen(Qt.red)) curve.setStyle(QwtPlotCurve.Lines) self.tuples.append( (curve, QwtScaleMap(0, 100, -5.0, 1.1), QwtScaleMap(0, 100, -1.1, 5.0)) ) # data self.phase = 0.0 self.base = np.arange(0.0, 2.01 * np.pi, 2 * np.pi / (USize - 1)) self.uval = np.cos(self.base) self.vval = np.sin(self.base) self.uval[1::2] *= 0.5 self.vval[1::2] *= 0.5 self.newValues() # start timer self.tid = self.startTimer(250) def paintEvent(self, event): QFrame.paintEvent(self, event) painter = QPainter(self) painter.setClipRect(self.contentsRect()) self.drawContents(painter) def drawContents(self, painter): r = self.contentsRect() for curve, xMap, yMap in self.tuples: xMap.setPaintInterval(r.left(), r.right()) yMap.setPaintInterval(r.top(), r.bottom()) curve.draw(painter, xMap, yMap, r) def timerEvent(self, event): self.newValues() self.repaint() def newValues(self): phase = self.phase self.xval = np.arange(0, 2.01 * np.pi, 2 * np.pi / (Size - 1)) self.yval = np.sin(self.xval - phase) self.zval = np.cos(3 * (self.xval + phase)) s = 0.25 * np.sin(phase) c = np.sqrt(1.0 - s * s) u = self.uval self.uval = c * self.uval - s * self.vval self.vval = c * self.vval + s * u self.tuples[0][0].setData(self.yval, self.xval) self.tuples[1][0].setData(self.xval, self.zval) self.tuples[2][0].setData(self.yval, self.zval) self.tuples[3][0].setData(self.uval, self.vval) self.phase += 2 * np.pi / 100 if self.phase > 2 * np.pi: self.phase = 0.0 def test_curvedemo2(): """Curve demo 2""" utils.test_widget(CurveDemo2, options=False) if __name__ == "__main__": test_curvedemo2() PythonQwt-0.12.7/qwt/tests/test_data.py000066400000000000000000000061151465265754400201020ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import random import numpy as np from qtpy.QtCore import QSize, Qt from qtpy.QtGui import QBrush, QPen from qtpy.QtWidgets import QFrame from qwt import ( QwtAbstractScaleDraw, QwtLegend, QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtSymbol, ) from qwt.tests import utils class DataPlot(QwtPlot): def __init__(self, unattended=False): QwtPlot.__init__(self) self.setCanvasBackground(Qt.white) self.alignScales() # Initialize data self.x = np.arange(0.0, 100.1, 0.5) self.y = np.zeros(len(self.x), float) self.z = np.zeros(len(self.x), float) self.setTitle("A Moving QwtPlot Demonstration") self.insertLegend(QwtLegend(), QwtPlot.BottomLegend) self.curveR = QwtPlotCurve("Data Moving Right") self.curveR.attach(self) self.curveL = QwtPlotCurve("Data Moving Left") self.curveL.attach(self) self.curveL.setSymbol( QwtSymbol(QwtSymbol.Ellipse, QBrush(), QPen(Qt.yellow), QSize(7, 7)) ) self.curveR.setPen(QPen(Qt.red)) self.curveL.setPen(QPen(Qt.blue)) mY = QwtPlotMarker() mY.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) mY.setLineStyle(QwtPlotMarker.HLine) mY.setYValue(0.0) mY.attach(self) self.setAxisTitle(QwtPlot.xBottom, "Time (seconds)") self.setAxisTitle(QwtPlot.yLeft, "Values") self.startTimer(10 if unattended else 50) self.phase = 0.0 def alignScales(self): self.canvas().setFrameStyle(QFrame.Box | QFrame.Plain) self.canvas().setLineWidth(1) for axis_id in QwtPlot.AXES: scaleWidget = self.axisWidget(axis_id) if scaleWidget: scaleWidget.setMargin(0) scaleDraw = self.axisScaleDraw(axis_id) if scaleDraw: scaleDraw.enableComponent(QwtAbstractScaleDraw.Backbone, False) def timerEvent(self, e): if self.phase > np.pi - 0.0001: self.phase = 0.0 # y moves from left to right: # shift y array right and assign new value y[0] self.y = np.concatenate((self.y[:1], self.y[:-1])) self.y[0] = np.sin(self.phase) * (-1.0 + 2.0 * random.random()) # z moves from right to left: # Shift z array left and assign new value to z[n-1]. self.z = np.concatenate((self.z[1:], self.z[:1])) self.z[-1] = 0.8 - (2.0 * self.phase / np.pi) + 0.4 * random.random() self.curveR.setData(self.x, self.y) self.curveL.setData(self.x, self.z) self.replot() self.phase += np.pi * 0.02 def test_data(): """Data Test""" utils.test_widget(DataPlot, size=(500, 300)) if __name__ == "__main__": test_data() PythonQwt-0.12.7/qwt/tests/test_errorbar.py000066400000000000000000000250671465265754400210160ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import QLineF, QRectF, QSize, Qt from qtpy.QtGui import QBrush, QPen from qwt import QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtSymbol from qwt.tests import utils class ErrorBarPlotCurve(QwtPlotCurve): def __init__( self, x=[], y=[], dx=None, dy=None, curvePen=None, curveStyle=None, curveSymbol=None, errorPen=None, errorCap=0, errorOnTop=False, ): """A curve of x versus y data with error bars in dx and dy. Horizontal error bars are plotted if dx is not None. Vertical error bars are plotted if dy is not None. x and y must be sequences with a shape (N,) and dx and dy must be sequences (if not None) with a shape (), (N,), or (2, N): - if dx or dy has a shape () or (N,), the error bars are given by (x-dx, x+dx) or (y-dy, y+dy), - if dx or dy has a shape (2, N), the error bars are given by (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]). curvePen is the pen used to plot the curve curveStyle is the style used to plot the curve curveSymbol is the symbol used to plot the symbols errorPen is the pen used to plot the error bars errorCap is the size of the error bar caps errorOnTop is a boolean: - if True, plot the error bars on top of the curve, - if False, plot the curve on top of the error bars. """ QwtPlotCurve.__init__(self) if curvePen is None: curvePen = QPen(Qt.NoPen) if curveStyle is None: curveStyle = QwtPlotCurve.Lines if curveSymbol is None: curveSymbol = QwtSymbol() if errorPen is None: errorPen = QPen(Qt.NoPen) self.setData(x, y, dx, dy) self.setPen(curvePen) self.setStyle(curveStyle) self.setSymbol(curveSymbol) self.errorPen = errorPen self.errorCap = errorCap self.errorOnTop = errorOnTop def setData(self, *args): """Set x versus y data with error bars in dx and dy. Horizontal error bars are plotted if dx is not None. Vertical error bars are plotted if dy is not None. x and y must be sequences with a shape (N,) and dx and dy must be sequences (if not None) with a shape (), (N,), or (2, N): - if dx or dy has a shape () or (N,), the error bars are given by (x-dx, x+dx) or (y-dy, y+dy), - if dx or dy has a shape (2, N), the error bars are given by (x-dx[0], x+dx[1]) or (y-dy[0], y+dy[1]). """ if len(args) == 1: QwtPlotCurve.setData(self, *args) return dx = None dy = None x, y = args[:2] if len(args) > 2: dx = args[2] if len(args) > 3: dy = args[3] self.__x = np.asarray(x, float) if len(self.__x.shape) != 1: raise RuntimeError("len(asarray(x).shape) != 1") self.__y = np.asarray(y, float) if len(self.__y.shape) != 1: raise RuntimeError("len(asarray(y).shape) != 1") if len(self.__x) != len(self.__y): raise RuntimeError("len(asarray(x)) != len(asarray(y))") if dx is None: self.__dx = None else: self.__dx = np.asarray(dx, float) if len(self.__dx.shape) not in [0, 1, 2]: raise RuntimeError("len(asarray(dx).shape) not in [0, 1, 2]") if dy is None: self.__dy = dy else: self.__dy = np.asarray(dy, float) if len(self.__dy.shape) not in [0, 1, 2]: raise RuntimeError("len(asarray(dy).shape) not in [0, 1, 2]") QwtPlotCurve.setData(self, self.__x, self.__y) def boundingRect(self): """Return the bounding rectangle of the data, error bars included.""" if self.__dx is None: xmin = min(self.__x) xmax = max(self.__x) elif len(self.__dx.shape) in [0, 1]: xmin = min(self.__x - self.__dx) xmax = max(self.__x + self.__dx) else: xmin = min(self.__x - self.__dx[0]) xmax = max(self.__x + self.__dx[1]) if self.__dy is None: ymin = min(self.__y) ymax = max(self.__y) elif len(self.__dy.shape) in [0, 1]: ymin = min(self.__y - self.__dy) ymax = max(self.__y + self.__dy) else: ymin = min(self.__y - self.__dy[0]) ymax = max(self.__y + self.__dy[1]) return QRectF(xmin, ymin, xmax - xmin, ymax - ymin) def drawSeries(self, painter, xMap, yMap, canvasRect, first, last=-1): """Draw an interval of the curve, including the error bars painter is the QPainter used to draw the curve xMap is the QwtDiMap used to map x-values to pixels yMap is the QwtDiMap used to map y-values to pixels first is the index of the first data point to draw last is the index of the last data point to draw. If last < 0, last is transformed to index the last data point """ if last < 0: last = self.dataSize() - 1 if self.errorOnTop: QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last) # draw the error bars painter.save() painter.setPen(self.errorPen) # draw the error bars with caps in the x direction if self.__dx is not None: # draw the bars if len(self.__dx.shape) in [0, 1]: xmin = self.__x - self.__dx xmax = self.__x + self.__dx else: xmin = self.__x - self.__dx[0] xmax = self.__x + self.__dx[1] y = self.__y n, i = len(y), 0 lines = [] while i < n: yi = yMap.transform(y[i]) lines.append( QLineF(xMap.transform(xmin[i]), yi, xMap.transform(xmax[i]), yi) ) i += 1 painter.drawLines(lines) if self.errorCap > 0: # draw the caps cap = self.errorCap / 2 ( n, i, ) = ( len(y), 0, ) lines = [] while i < n: yi = yMap.transform(y[i]) lines.append( QLineF( xMap.transform(xmin[i]), yi - cap, xMap.transform(xmin[i]), yi + cap, ) ) lines.append( QLineF( xMap.transform(xmax[i]), yi - cap, xMap.transform(xmax[i]), yi + cap, ) ) i += 1 painter.drawLines(lines) # draw the error bars with caps in the y direction if self.__dy is not None: # draw the bars if len(self.__dy.shape) in [0, 1]: ymin = self.__y - self.__dy ymax = self.__y + self.__dy else: ymin = self.__y - self.__dy[0] ymax = self.__y + self.__dy[1] x = self.__x ( n, i, ) = ( len(x), 0, ) lines = [] while i < n: xi = xMap.transform(x[i]) lines.append( QLineF(xi, yMap.transform(ymin[i]), xi, yMap.transform(ymax[i])) ) i += 1 painter.drawLines(lines) # draw the caps if self.errorCap > 0: cap = self.errorCap / 2 n, i, _j = len(x), 0, 0 lines = [] while i < n: xi = xMap.transform(x[i]) lines.append( QLineF( xi - cap, yMap.transform(ymin[i]), xi + cap, yMap.transform(ymin[i]), ) ) lines.append( QLineF( xi - cap, yMap.transform(ymax[i]), xi + cap, yMap.transform(ymax[i]), ) ) i += 1 painter.drawLines(lines) painter.restore() if not self.errorOnTop: QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last) class ErrorBarPlot(QwtPlot): def __init__(self, parent=None, title=None): super(ErrorBarPlot, self).__init__("Errorbar Demonstation") self.setCanvasBackground(Qt.white) self.plotLayout().setAlignCanvasToScales(True) grid = QwtPlotGrid() grid.attach(self) grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) # calculate data and errors for a curve with error bars x = np.arange(0, 10.1, 0.5, float) y = np.sin(x) dy = 0.2 * abs(y) # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars dx = 0.2 # all error bars the same size errorOnTop = False # uncomment to draw the curve on top of the error bars # errorOnTop = True # uncomment to draw the error bars on top of the curve symbol = QwtSymbol( QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.black, 2), QSize(9, 9) ) curve = ErrorBarPlotCurve( x=x, y=y, dx=dx, dy=dy, curvePen=QPen(Qt.black, 2), curveSymbol=symbol, errorPen=QPen(Qt.blue, 2), errorCap=10, errorOnTop=errorOnTop, ) curve.attach(self) def test_errorbar(): """Errorbar plot example""" utils.test_widget(ErrorBarPlot, size=(640, 480)) if __name__ == "__main__": test_errorbar() PythonQwt-0.12.7/qwt/tests/test_eventfilter.py000066400000000000000000000377011465265754400215250ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import os import numpy as np from qtpy.QtCore import QEvent, QObject, QPoint, QRect, QSize, Qt, Signal from qtpy.QtGui import QBrush, QColor, QPainter, QPen from qtpy.QtWidgets import QApplication, QMainWindow, QToolBar, QWhatsThis, QWidget from qwt import ( QwtPlot, QwtPlotCanvas, QwtPlotCurve, QwtPlotGrid, QwtScaleDiv, QwtScaleDraw, QwtSymbol, ) from qwt.tests import utils QT_API = os.environ["QT_API"] class ColorBar(QWidget): colorSelected = Signal(QColor) def __init__(self, orientation, *args): QWidget.__init__(self, *args) self.__orientation = orientation self.__light = QColor(Qt.white) self.__dark = QColor(Qt.black) self.setCursor(Qt.PointingHandCursor) def setOrientation(self, orientation): self.__orientation = orientation self.update() def orientation(self): return self.__orientation def setRange(self, light, dark): self.__light = light self.__dark = dark self.update() def setLight(self, color): self.__light = color self.update() def setDark(self, color): self.__dark = color self.update() def light(self): return self.__light def dark(self): return self.__dark def mousePressEvent(self, event): if event.button() == Qt.LeftButton: pm = self.grab() color = QColor() color.setRgb(pm.toImage().pixel(event.x(), event.y())) self.colorSelected.emit(color) event.accept() def paintEvent(self, _): painter = QPainter(self) self.drawColorBar(painter, self.rect()) def drawColorBar(self, painter, rect): h1, s1, v1, _ = self.__light.getHsv() h2, s2, v2, _ = self.__dark.getHsv() painter.save() painter.setClipRect(rect) painter.setClipping(True) painter.fillRect(rect, QBrush(self.__dark)) sectionSize = 2 if self.__orientation == Qt.Horizontal: numIntervals = rect.width() / sectionSize else: numIntervals = rect.height() / sectionSize section = QRect() for i in range(int(numIntervals)): if self.__orientation == Qt.Horizontal: section.setRect( rect.x() + i * sectionSize, rect.y(), sectionSize, rect.heigh() ) else: section.setRect( rect.x(), rect.y() + i * sectionSize, rect.width(), sectionSize ) ratio = float(i) / float(numIntervals) color = QColor() color.setHsv( h1 + int(ratio * (h2 - h1) + 0.5), s1 + int(ratio * (s2 - s1) + 0.5), v1 + int(ratio * (v2 - v1) + 0.5), ) painter.fillRect(section, color) painter.restore() class Plot(QwtPlot): def __init__(self, *args): QwtPlot.__init__(self, *args) self.setTitle("Interactive Plot") self.setCanvasColor(Qt.darkCyan) grid = QwtPlotGrid() grid.attach(self) grid.setMajorPen(QPen(Qt.white, 0, Qt.DotLine)) self.setAxisScale(QwtPlot.xBottom, 0.0, 100.0) self.setAxisScale(QwtPlot.yLeft, 0.0, 100.0) # Avoid jumping when label with 3 digits # appear/disappear when scrolling vertically scaleDraw = self.axisScaleDraw(QwtPlot.yLeft) scaleDraw.setMinimumExtent( scaleDraw.extent(self.axisWidget(QwtPlot.yLeft).font()) ) self.plotLayout().setAlignCanvasToScales(True) self.__insertCurve(Qt.Vertical, Qt.blue, 30.0) self.__insertCurve(Qt.Vertical, Qt.magenta, 70.0) self.__insertCurve(Qt.Horizontal, Qt.yellow, 30.0) self.__insertCurve(Qt.Horizontal, Qt.white, 70.0) self.replot() scaleWidget = self.axisWidget(QwtPlot.yLeft) scaleWidget.setMargin(10) self.__colorBar = ColorBar(Qt.Vertical, scaleWidget) self.__colorBar.setRange(QColor(Qt.red), QColor(Qt.darkBlue)) self.__colorBar.setFocusPolicy(Qt.TabFocus) self.__colorBar.colorSelected.connect(self.setCanvasColor) # we need the resize events, to lay out the color bar scaleWidget.installEventFilter(self) # we need the resize events, to lay out the wheel self.canvas().installEventFilter(self) scaleWidget.setWhatsThis( "Selecting a value at the scale will insert a new curve." ) self.__colorBar.setWhatsThis( "Selecting a color will change the background of the plot." ) self.axisWidget(QwtPlot.xBottom).setWhatsThis( "Selecting a value at the scale will insert a new curve." ) def setCanvasColor(self, color): self.setCanvasBackground(color) self.replot() def scrollLeftAxis(self, value): self.setAxisScale(QwtPlot.yLeft, value, value + 100) self.replot() def eventFilter(self, obj, event): if event.type() == QEvent.Resize: size = event.size() if obj == self.axisWidget(QwtPlot.yLeft): margin = 2 x = size.width() - obj.margin() + margin w = obj.margin() - 2 * margin y = int(obj.startBorderDist()) h = int(size.height() - obj.startBorderDist() - obj.endBorderDist()) self.__colorBar.setGeometry(x, y, w, h) return QwtPlot.eventFilter(self, obj, event) def insertCurve(self, axis, base): if axis == QwtPlot.yLeft or axis == QwtPlot.yRight: o = Qt.Horizontal else: o = Qt.Vertical self.__insertCurve(o, QColor(Qt.red), base) self.replot() def __insertCurve(self, orientation, color, base): curve = QwtPlotCurve() curve.attach(self) curve.setPen(QPen(color)) curve.setSymbol( QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.gray), QPen(color), QSize(8, 8)) ) fixed = base * np.ones(10, float) changing = np.arange(0, 95.0, 10.0, float) + 5.0 if orientation == Qt.Horizontal: curve.setData(changing, fixed) else: curve.setData(fixed, changing) class CanvasPicker(QObject): def __init__(self, plot): QObject.__init__(self, plot) self.__selectedCurve = None self.__selectedPoint = -1 self.__plot = plot canvas = plot.canvas() canvas.installEventFilter(self) # We want the focus, but no focus rect. # The selected point will be highlighted instead. canvas.setFocusPolicy(Qt.StrongFocus) canvas.setCursor(Qt.PointingHandCursor) canvas.setFocusIndicator(QwtPlotCanvas.ItemFocusIndicator) canvas.setFocus() canvas.setWhatsThis( "All points can be moved using the left mouse button " "or with these keys:\n\n" "- Up: Select next curve\n" "- Down: Select previous curve\n" '- Left, "-": Select next point\n' '- Right, "+": Select previous point\n' "- 7, 8, 9, 4, 6, 1, 2, 3: Move selected point" ) self.__shiftCurveCursor(True) def event(self, event): if event.type() == QEvent.User: self.__showCursor(True) return True return QObject.event(self, event) def eventFilter(self, object, event): if event.type() == QEvent.FocusIn: self.__showCursor(True) if event.type() == QEvent.FocusOut: self.__showCursor(False) if event.type() == QEvent.Paint: QApplication.postEvent(self, QEvent(QEvent.User)) elif event.type() == QEvent.MouseButtonPress: self.__select(event.position()) return True elif event.type() == QEvent.MouseMove: self.__move(event.position()) return True if event.type() == QEvent.KeyPress: delta = 5 key = event.key() if key == Qt.Key_Up: self.__shiftCurveCursor(True) return True elif key == Qt.Key_Down: self.__shiftCurveCursor(False) return True elif key == Qt.Key_Right or key == Qt.Key_Plus: if self.__selectedCurve: self.__shiftPointCursor(True) else: self.__shiftCurveCursor(True) return True elif key == Qt.Key_Left or key == Qt.Key_Minus: if self.__selectedCurve: self.__shiftPointCursor(False) else: self.__shiftCurveCursor(True) return True if key == Qt.Key_1: self.__moveBy(-delta, delta) elif key == Qt.Key_2: self.__moveBy(0, delta) elif key == Qt.Key_3: self.__moveBy(delta, delta) elif key == Qt.Key_4: self.__moveBy(-delta, 0) elif key == Qt.Key_6: self.__moveBy(delta, 0) elif key == Qt.Key_7: self.__moveBy(-delta, -delta) elif key == Qt.Key_8: self.__moveBy(0, -delta) elif key == Qt.Key_9: self.__moveBy(delta, -delta) return False def __select(self, pos): found, distance, point = None, 1e100, -1 for curve in self.__plot.itemList(): if isinstance(curve, QwtPlotCurve): i, d = curve.closestPoint(pos) if d < distance: found = curve point = i distance = d self.__showCursor(False) self.__selectedCurve = None self.__selectedPoint = -1 if found and distance < 10: self.__selectedCurve = found self.__selectedPoint = point self.__showCursor(True) def __moveBy(self, dx, dy): if dx == 0 and dy == 0: return curve = self.__selectedCurve if not curve: return s = curve.sample(self.__selectedPoint) x = self.__plot.transform(curve.xAxis(), s.x()) + dx y = self.__plot.transform(curve.yAxis(), s.y()) + dy self.__move(QPoint(x, y)) def __move(self, pos): curve = self.__selectedCurve if not curve: return xData = np.zeros(curve.dataSize(), float) yData = np.zeros(curve.dataSize(), float) for i in range(curve.dataSize()): if i == self.__selectedPoint: xData[i] = self.__plot.invTransform(curve.xAxis(), pos.x()) yData[i] = self.__plot.invTransform(curve.yAxis(), pos.y()) else: s = curve.sample(i) xData[i] = s.x() yData[i] = s.y() curve.setData(xData, yData) self.__showCursor(True) self.__plot.replot() def __showCursor(self, showIt): curve = self.__selectedCurve if not curve: return symbol = curve.symbol() brush = symbol.brush() if showIt: symbol.setBrush(symbol.brush().color().darker(180)) curve.directPaint(self.__selectedPoint, self.__selectedPoint) if showIt: symbol.setBrush(brush) def __shiftCurveCursor(self, up): curves = [ curve for curve in self.__plot.itemList() if isinstance(curve, QwtPlotCurve) ] if not curves: return if self.__selectedCurve in curves: index = curves.index(self.__selectedCurve) if up: index += 1 else: index -= 1 # keep index within [0, len(curves)) index += len(curves) index %= len(curves) else: index = 0 self.__showCursor(False) self.__selectedPoint = 0 self.__selectedCurve = curves[index] self.__showCursor(True) def __shiftPointCursor(self, up): curve = self.__selectedCurve if not curve: return if up: index = self.__selectedPoint + 1 else: index = self.__selectedPoint - 1 # keep index within [0, curve.dataSize()) index += curve.dataSize() index %= curve.dataSize() if index != self.__selectedPoint: self.__showCursor(False) self.__selectedPoint = index self.__showCursor(True) class ScalePicker(QObject): clicked = Signal(int, float) def __init__(self, plot): QObject.__init__(self, plot) for axis_id in QwtPlot.AXES: scaleWidget = plot.axisWidget(axis_id) if scaleWidget: scaleWidget.installEventFilter(self) def eventFilter(self, object, event): if event.type() == QEvent.MouseButtonPress: self.__mouseClicked(object, event.position()) return True return QObject.eventFilter(self, object, event) def __mouseClicked(self, scale, pos): rect = self.__scaleRect(scale) margin = 10 rect.setRect( rect.x() - margin, rect.y() - margin, rect.width() + 2 * margin, rect.height() + 2 * margin, ) if rect.contains(pos): value = 0.0 axis = -1 sd = scale.scaleDraw() if scale.alignment() == QwtScaleDraw.LeftScale: value = sd.scaleMap().invTransform(pos.y()) axis = QwtPlot.yLeft elif scale.alignment() == QwtScaleDraw.RightScale: value = sd.scaleMap().invTransform(pos.y()) axis = QwtPlot.yRight elif scale.alignment() == QwtScaleDraw.BottomScale: value = sd.scaleMap().invTransform(pos.x()) axis = QwtPlot.xBottom elif scale.alignment() == QwtScaleDraw.TopScale: value = sd.scaleMap().invTransform(pos.x()) axis = QwtPlot.xBottom self.clicked.emit(axis, value) def __scaleRect(self, scale): bld = scale.margin() mjt = scale.scaleDraw().tickLength(QwtScaleDiv.MajorTick) sbd = scale.startBorderDist() ebd = scale.endBorderDist() if scale.alignment() == QwtScaleDraw.LeftScale: return QRect( scale.width() - bld - mjt, sbd, mjt, scale.height() - sbd - ebd ) elif scale.alignment() == QwtScaleDraw.RightScale: return QRect(bld, sbd, mjt, scale.height() - sbd - ebd) elif scale.alignment() == QwtScaleDraw.BottomScale: return QRect(sbd, bld, scale.width() - sbd - ebd, mjt) elif scale.alignment() == QwtScaleDraw.TopScale: return QRect( sbd, scale.height() - bld - mjt, scale.width() - sbd - ebd, mjt ) else: return QRect() class EventFilterWindow(QMainWindow): def __init__(self, parent=None): super(EventFilterWindow, self).__init__(parent=parent) toolBar = QToolBar(self) toolBar.addAction(QWhatsThis.createAction(toolBar)) self.addToolBar(toolBar) plot = Plot() self.setCentralWidget(plot) plot.setWhatsThis( "An useless plot to demonstrate how to use event filtering.\n\n" "You can click on the color bar, the scales or move the slider.\n" "All points can be moved using the mouse or the keyboard." ) CanvasPicker(plot) scalePicker = ScalePicker(plot) scalePicker.clicked.connect(plot.insertCurve) def test_eventfilter(): """Event filter example""" utils.test_widget(EventFilterWindow, size=(540, 400)) if __name__ == "__main__": test_eventfilter() PythonQwt-0.12.7/qwt/tests/test_highdpi.py000066400000000000000000000020351465265754400206020ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import os import pytest from qwt.tests import utils from qwt.tests.test_simple import SimplePlot class HighDPIPlot(SimplePlot): NUM_POINTS = 5000000 # 5 million points needed to test high DPI support @pytest.mark.skip(reason="This test is not relevant for the automated test suite") def test_highdpi(): """Test high DPI support""" # Performance should be the same with "1" and "2" scale factors: # (as of today, this is not the case, but it has to be fixed in the future: # https://github.com/PlotPyStack/PythonQwt/issues/83) os.environ["QT_SCALE_FACTOR"] = "2" utils.test_widget(HighDPIPlot, (800, 480)) if __name__ == "__main__": test_highdpi() PythonQwt-0.12.7/qwt/tests/test_image.py000066400000000000000000000146251465265754400202600ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import Qt from qtpy.QtGui import QPen, qRgb from qwt import ( QwtInterval, QwtLegend, QwtLegendData, QwtLinearColorMap, QwtPlot, QwtPlotCurve, QwtPlotGrid, QwtPlotItem, QwtPlotMarker, QwtScaleMap, toQImage, ) from qwt.tests import utils def bytescale(data, cmin=None, cmax=None, high=255, low=0): if (hasattr(data, "dtype") and data.dtype.char == np.uint8) or ( hasattr(data, "typecode") and data.typecode == np.uint8 ): return data high = high - low if cmin is None: cmin = min(np.ravel(data)) if cmax is None: cmax = max(np.ravel(data)) scale = high * 1.0 / (cmax - cmin or 1) bytedata = ((data * 1.0 - cmin) * scale + 0.4999).astype(np.uint8) return bytedata + np.asarray(low).astype(np.uint8) def linearX(nx, ny): return np.repeat(np.arange(nx, typecode=np.float32)[:, np.newaxis], ny, -1) def linearY(nx, ny): return np.repeat(np.arange(ny, typecode=np.float32)[np.newaxis, :], nx, 0) def square(n, min, max): t = np.arange(min, max, float(max - min) / (n - 1)) # return outer(cos(t), sin(t)) return np.cos(t) * np.sin(t)[:, np.newaxis] class PlotImage(QwtPlotItem): def __init__(self, title=""): QwtPlotItem.__init__(self) self.setTitle(title) self.setItemAttribute(QwtPlotItem.Legend) self.xyzs = None def setData(self, xyzs, xRange=None, yRange=None): self.xyzs = xyzs shape = xyzs.shape if not xRange: xRange = (0, shape[0]) if not yRange: yRange = (0, shape[1]) self.xMap = QwtScaleMap(0, xyzs.shape[0], *xRange) self.plot().setAxisScale(QwtPlot.xBottom, *xRange) self.yMap = QwtScaleMap(0, xyzs.shape[1], *yRange) self.plot().setAxisScale(QwtPlot.yLeft, *yRange) self.image = toQImage(bytescale(self.xyzs)).mirrored(False, True) for i in range(0, 256): self.image.setColor(i, qRgb(i, 0, 255 - i)) def updateLegend(self, legend, data): QwtPlotItem.updateLegend(self, legend, data) legend.find(self).setText(self.title()) def draw(self, painter, xMap, yMap, rect): """Paint image zoomed to xMap, yMap Calculate (x1, y1, x2, y2) so that it contains at least 1 pixel, and copy the visible region to scale it to the canvas. """ assert isinstance(self.plot(), QwtPlot) # calculate y1, y2 # the scanline order (index y) is inverted with respect to the y-axis y1 = y2 = self.image.height() y1 *= self.yMap.s2() - yMap.s2() y1 /= self.yMap.s2() - self.yMap.s1() y1 = max(0, int(y1 - 0.5)) y2 *= self.yMap.s2() - yMap.s1() y2 /= self.yMap.s2() - self.yMap.s1() y2 = min(self.image.height(), int(y2 + 0.5)) # calculate x1, x2 -- the pixel order (index x) is normal x1 = x2 = self.image.width() x1 *= xMap.s1() - self.xMap.s1() x1 /= self.xMap.s2() - self.xMap.s1() x1 = max(0, int(x1 - 0.5)) x2 *= xMap.s2() - self.xMap.s1() x2 /= self.xMap.s2() - self.xMap.s1() x2 = min(self.image.width(), int(x2 + 0.5)) # copy image = self.image.copy(x1, y1, x2 - x1, y2 - y1) # zoom image = image.scaled( int(xMap.p2() - xMap.p1() + 1), int(yMap.p1() - yMap.p2() + 1) ) # draw painter.drawImage(int(xMap.p1()), int(yMap.p2()), image) class ImagePlot(QwtPlot): def __init__(self, *args): QwtPlot.__init__(self, *args) # set plot title self.setTitle("ImagePlot") # set plot layout self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(True) # set legend legend = QwtLegend() legend.setDefaultItemMode(QwtLegendData.Clickable) self.insertLegend(legend, QwtPlot.RightLegend) # set axis titles self.setAxisTitle(QwtPlot.xBottom, "time (s)") self.setAxisTitle(QwtPlot.yLeft, "frequency (Hz)") colorMap = QwtLinearColorMap(Qt.blue, Qt.red) interval = QwtInterval(-1, 1) self.enableAxis(QwtPlot.yRight) self.setAxisScale(QwtPlot.yRight, -1, 1) self.axisWidget(QwtPlot.yRight).setColorBarEnabled(True) self.axisWidget(QwtPlot.yRight).setColorMap(interval, colorMap) # calculate 3 NumPy arrays x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) y = np.pi * np.sin(x) z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve QwtPlotCurve.make( x, y, title="y = pi*sin(x)", linecolor=Qt.green, linewidth=2, plot=self ) # attach another curve QwtPlotCurve.make( x, z, title="y = 4*pi*sin(x)*cos(x)**2", linewidth=2, plot=self ) # attach a grid grid = QwtPlotGrid() grid.attach(self) grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) # attach a horizontal marker at y = 0 QwtPlotMarker.make( label="y = 0", linestyle=QwtPlotMarker.HLine, align=Qt.AlignRight | Qt.AlignTop, plot=self, ) # attach a vertical marker at x = pi QwtPlotMarker.make( np.pi, 0.0, label="x = pi", linestyle=QwtPlotMarker.VLine, align=Qt.AlignRight | Qt.AlignBottom, plot=self, ) # attach a plot image plotImage = PlotImage("Image") plotImage.attach(self) plotImage.setData( square(512, -2 * np.pi, 2 * np.pi), (-2 * np.pi, 2 * np.pi), (-2 * np.pi, 2 * np.pi), ) legend.clicked.connect(self.toggleVisibility) # replot self.replot() def toggleVisibility(self, plotItem, idx): """Toggle the visibility of a plot item""" plotItem.setVisible(not plotItem.isVisible()) self.replot() def test_image(): """Image plot test""" utils.test_widget(ImagePlot, size=(600, 400)) if __name__ == "__main__": test_image() PythonQwt-0.12.7/qwt/tests/test_loadtest.py000066400000000000000000000031431465265754400210060ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015-2021 Pierre Raybaut # (see LICENSE file for more details) """Load test""" SHOW = True # Show test in GUI-based test launcher import time # Local imports from qwt.tests import test_curvebenchmark1 as cb from qwt.tests import utils NCOLS, NROWS = 6, 5 NPLOTS = NCOLS * NROWS * 5 * 3 class LTWidget(cb.BMWidget): def params(self, *args, **kwargs): return tuple([("Lines", None)] * NCOLS * NROWS) class LoadTest(cb.CurveBenchmark1): TITLE = "Load test [%d plots]" % NPLOTS SIZE = (1600, 700) def __init__(self, max_n=100, parent=None, unattended=False, **kwargs): super(LoadTest, self).__init__( max_n=max_n, parent=parent, unattended=unattended, **kwargs ) def run_benchmark(self, max_n, unattended, **kwargs): points, symbols = 100, False iterator = range(0, 1) if unattended else range(int(NPLOTS / (NCOLS * NROWS))) for _i_page in iterator: t0 = time.time() symtext = "with%s symbols" % ("" if symbols else "out") widget = LTWidget(NCOLS, points, symbols, **kwargs) title = "%d points" % points description = "%d plots with %d curves of %d points, %s" % ( widget.plot_nb, widget.curve_nb, points, symtext, ) self.process_iteration(title, description, widget, t0) def test_loadtest(): """Load test""" utils.test_widget(LoadTest, options=False) if __name__ == "__main__": test_loadtest() PythonQwt-0.12.7/qwt/tests/test_logcurve.py000066400000000000000000000021511465265754400210130ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np np.seterr(all="raise") from qtpy.QtCore import Qt from qwt import QwtLogScaleEngine, QwtPlot, QwtPlotCurve from qwt.tests import utils class LogCurvePlot(QwtPlot): def __init__(self): super(LogCurvePlot, self).__init__( "LogCurveDemo.py (or how to handle -inf values)" ) self.enableAxis(QwtPlot.xBottom) self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) x = np.arange(0.0, 10.0, 0.1) y = 10 * np.cos(x) ** 2 - 0.1 QwtPlotCurve.make(x, y, linecolor=Qt.magenta, plot=self, antialiased=True) self.replot() def test_logcurve(): """Log curve demo""" utils.test_widget(LogCurvePlot, size=(800, 500)) if __name__ == "__main__": test_logcurve() PythonQwt-0.12.7/qwt/tests/test_mapdemo.py000066400000000000000000000065371465265754400206230ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import random import time import numpy as np from qtpy.QtCore import QSize, Qt from qtpy.QtGui import QBrush, QPen from qtpy.QtWidgets import QMainWindow, QToolBar from qwt import QwtPlot, QwtPlotCurve, QwtSymbol from qwt.tests import utils def standard_map(x, y, kappa): """provide one interate of the inital conditions (x, y) for the standard map with parameter kappa.""" y_new = y - kappa * np.sin(2.0 * np.pi * x) x_new = x + y_new # bring back to [0,1.0]^2 if (x_new > 1.0) or (x_new < 0.0): x_new = x_new - np.floor(x_new) if (y_new > 1.0) or (y_new < 0.0): y_new = y_new - np.floor(y_new) return x_new, y_new class MapDemo(QMainWindow): def __init__(self, *args): QMainWindow.__init__(self, *args) self.plot = QwtPlot(self) self.plot.setTitle("A Simple Map Demonstration") self.plot.setCanvasBackground(Qt.white) self.plot.setAxisTitle(QwtPlot.xBottom, "x") self.plot.setAxisTitle(QwtPlot.yLeft, "y") self.plot.setAxisScale(QwtPlot.xBottom, 0.0, 1.0) self.plot.setAxisScale(QwtPlot.yLeft, 0.0, 1.0) self.setCentralWidget(self.plot) # Initialize map data self.count = self.i = 1000 self.xs = np.zeros(self.count, float) self.ys = np.zeros(self.count, float) self.kappa = 0.2 self.curve = QwtPlotCurve("Map") self.curve.attach(self.plot) self.curve.setSymbol( QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.blue), QSize(5, 5)) ) self.curve.setPen(QPen(Qt.cyan)) toolBar = QToolBar(self) self.addToolBar(toolBar) # 1 tick = 1 ms, 10 ticks = 10 ms (Linux clock is 100 Hz) self.ticks = 10 self.tid = self.startTimer(self.ticks) self.timer_tic = None self.user_tic = None self.system_tic = None self.plot.replot() def setTicks(self, ticks): self.i = self.count self.ticks = int(ticks) self.killTimer(self.tid) self.tid = self.startTimer(ticks) def moreData(self): if self.i == self.count: self.i = 0 self.x = random.random() self.y = random.random() self.xs[self.i] = self.x self.ys[self.i] = self.y self.i += 1 chunks = [] self.timer_toc = time.time() if self.timer_tic: chunks.append("wall: %s s." % (self.timer_toc - self.timer_tic)) print(" ".join(chunks)) self.timer_tic = self.timer_toc else: self.x, self.y = standard_map(self.x, self.y, self.kappa) self.xs[self.i] = self.x self.ys[self.i] = self.y self.i += 1 def timerEvent(self, e): self.moreData() self.curve.setData(self.xs[: self.i], self.ys[: self.i]) self.plot.replot() def test_mapdemo(): """Map demo""" utils.test_widget(MapDemo, size=(600, 600)) if __name__ == "__main__": test_mapdemo() PythonQwt-0.12.7/qwt/tests/test_multidemo.py000066400000000000000000000047421465265754400211740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import Qt from qtpy.QtGui import QPen from qtpy.QtWidgets import QGridLayout, QWidget from qwt import QwtPlot, QwtPlotCurve from qwt.tests import utils def drange(start, stop, step): start, stop, step = float(start), float(stop), float(step) size = int(round((stop - start) / step)) result = [start] * size for i in range(size): result[i] += i * step return result def lorentzian(x): return 1.0 / (1.0 + (x - 5.0) ** 2) class MultiDemo(QWidget): def __init__(self, *args): QWidget.__init__(self, *args) layout = QGridLayout(self) # try to create a plot for SciPy arrays # make a curve and copy the data numpy_curve = QwtPlotCurve("y = lorentzian(x)") x = np.arange(0.0, 10.0, 0.01) y = lorentzian(x) numpy_curve.setData(x, y) # here, we know we can plot NumPy arrays numpy_plot = QwtPlot(self) numpy_plot.setTitle("numpy array") numpy_plot.setCanvasBackground(Qt.white) numpy_plot.plotLayout().setCanvasMargin(0) numpy_plot.plotLayout().setAlignCanvasToScales(True) # insert a curve and make it red numpy_curve.attach(numpy_plot) numpy_curve.setPen(QPen(Qt.red)) layout.addWidget(numpy_plot, 0, 0) numpy_plot.replot() # create a plot widget for lists of Python floats list_plot = QwtPlot(self) list_plot.setTitle("Python list") list_plot.setCanvasBackground(Qt.white) list_plot.plotLayout().setCanvasMargin(0) list_plot.plotLayout().setAlignCanvasToScales(True) x = drange(0.0, 10.0, 0.01) y = [lorentzian(item) for item in x] # insert a curve, make it red and copy the lists list_curve = QwtPlotCurve("y = lorentzian(x)") list_curve.attach(list_plot) list_curve.setPen(QPen(Qt.red)) list_curve.setData(x, y) layout.addWidget(list_plot, 0, 1) list_plot.replot() def test_multidemo(): """Multiple plot demo""" utils.test_widget(MultiDemo, size=(400, 300)) if __name__ == "__main__": test_multidemo() PythonQwt-0.12.7/qwt/tests/test_simple.py000066400000000000000000000044531465265754400204650ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher import os import numpy as np from qtpy.QtCore import Qt, QTimer import qwt from qwt.tests import utils FNAMES = ("test_simple.svg", "test_simple.pdf", "test_simple.png") class SimplePlot(qwt.QwtPlot): NUM_POINTS = 100 TEST_EXPORT = True def __init__(self): qwt.QwtPlot.__init__(self) self.setTitle("Really simple demo") self.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.RightLegend) self.setAxisTitle(qwt.QwtPlot.xBottom, "X-axis") self.setAxisTitle(qwt.QwtPlot.yLeft, "Y-axis") self.enableAxis(self.xBottom) self.setCanvasBackground(Qt.white) qwt.QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine) # insert a few curves x = np.linspace(0.0, 10.0, self.NUM_POINTS) qwt.QwtPlotCurve.make(x, np.sin(x), "y = sin(x)", self, linecolor="red") qwt.QwtPlotCurve.make(x, np.cos(x), "y = cos(x)", self, linecolor="blue") # insert a horizontal marker at y = 0 qwt.QwtPlotMarker.make( label="y = 0", align=Qt.AlignRight | Qt.AlignTop, linestyle=qwt.QwtPlotMarker.HLine, color="darkGreen", plot=self, ) # insert a vertical marker at x = 2 pi qwt.QwtPlotMarker.make( xvalue=2 * np.pi, label="x = 2 pi", align=Qt.AlignRight | Qt.AlignTop, linestyle=qwt.QwtPlotMarker.VLine, color="darkGreen", plot=self, ) if self.TEST_EXPORT and utils.TestEnvironment().unattended: QTimer.singleShot(0, self.export_to_different_formats) def export_to_different_formats(self): for fname in FNAMES: self.exportTo(fname) def test_simple(): """Simple plot example""" utils.test_widget(SimplePlot, size=(600, 400)) for fname in FNAMES: if os.path.isfile(fname): os.remove(fname) if __name__ == "__main__": test_simple() PythonQwt-0.12.7/qwt/tests/test_stylesheet.py000066400000000000000000000016661465265754400213700ustar00rootroot00000000000000# -*- coding: utf-8 -*- SHOW = True # Show test in GUI-based test launcher import os import numpy as np import pytest import qtpy from qtpy.QtCore import Qt import qwt from qwt.tests import utils class StyleSheetPlot(qwt.QwtPlot): def __init__(self): super().__init__() self.setTitle("Stylesheet test (Issue #63)") self.setStyleSheet("background-color: #19232D; color: #E0E1E3;") qwt.QwtPlotGrid.make(self, color=Qt.white, width=0, style=Qt.DotLine) x = np.arange(-5.0, 5.0, 0.1) qwt.QwtPlotCurve.make(x, np.sinc(x), "y = sinc(x)", self, linecolor="green") # Skip the test for PySide6 on Linux @pytest.mark.skipif( qtpy.API_NAME == "PySide6" and os.name == "posix", reason="Fails on Linux with PySide6 for unknown reasons", ) def test_stylesheet(): """Stylesheet test""" utils.test_widget(StyleSheetPlot, size=(600, 400)) if __name__ == "__main__": test_stylesheet() PythonQwt-0.12.7/qwt/tests/test_symbols.py000066400000000000000000000127471465265754400206710ustar00rootroot00000000000000# -*- coding: utf-8 -*- SHOW = True # Show test in GUI-based test launcher import os.path as osp import numpy as np from qtpy import QtCore as QC from qtpy import QtGui as QG from qtpy import QtWidgets as QW import qwt from qwt.tests import utils class BaseSymbolPlot(qwt.QwtPlot): TITLE = "Base Symbol Example" SYMBOL_CLASS = qwt.QwtSymbol def __init__(self): super().__init__() self.setTitle(self.TITLE) self.setAxisScale(self.yLeft, -20, 20) self.setAxisScale(self.xBottom, -20, 20) self.setup_plot() def setup_plot(self): samples = ([-15, 0, 15, -15], [0, 15, 0, 0]) self.add_curve(self.TITLE, samples, self.SYMBOL_CLASS()) self.resize(400, 400) def add_curve(self, title, samples, symbol=None): """Add a curve to the plot""" curve = qwt.QwtPlotCurve(title) curve.setSamples(*samples) if symbol is not None: curve.setSymbol(symbol) curve.attach(self) self.replot() class BuiltinSymbolPlot(BaseSymbolPlot): TITLE = "Built-in Symbol Example" def setup_plot(self): colors = (QC.Qt.red, QC.Qt.green, QC.Qt.blue, QC.Qt.yellow, QC.Qt.magenta) for index, symbol_name in enumerate( ( "Ellipse", "Rect", "Diamond", "Triangle", "DTriangle", "UTriangle", "LTriangle", "RTriangle", "Cross", "XCross", "HLine", "VLine", "Star1", "Star2", "Hexagon", ) ): symbol = qwt.symbol.QwtSymbol(getattr(qwt.QwtSymbol, symbol_name)) symbol.setSize(7, 7) symbol.setPen(QG.QPen(colors[index % 3])) symbol.setBrush(QG.QBrush(QG.QColor(colors[index % 3]).lighter(150))) x = np.linspace(-10, 10, 100) y = np.sin(x + index * np.pi / 10) samples = (x, y) qwt.plot_marker.QwtPlotMarker.make( xvalue=index * 2 - 10, yvalue=index * 2 - 10, label=qwt.text.QwtText.make( "Marker", color=QC.Qt.black, borderradius=2, brush=QC.Qt.lightGray, ), symbol=symbol, plot=self, ) self.add_curve(symbol_name, samples, symbol) self.setAxisAutoScale(self.yLeft, True) self.setAxisAutoScale(self.xBottom, True) class CustomGraphicSymbol(qwt.QwtSymbol): def __init__(self): super(CustomGraphicSymbol, self).__init__(qwt.QwtSymbol.Graphic) # Use a built-in Qt icon as QPixmap for demonstration icon = QW.QApplication.style().standardIcon(QW.QStyle.SP_FileIcon) pixmap = icon.pixmap(20, 20) # Convert the QPixmap to a QwtGraphic graphic = qwt.graphic.QwtGraphic() graphic.setDefaultSize(pixmap.size()) painter = QG.QPainter(graphic) painter.drawPixmap(0, 0, pixmap) painter.end() # Set the QwtGraphic as the graphic for the symbol self.setGraphic(graphic) class GraphicPlot(BaseSymbolPlot): TITLE = "Custom QwtGraphic Symbol Example" SYMBOL_CLASS = CustomGraphicSymbol class CustomPixmapSymbol(qwt.QwtSymbol): def __init__(self): super(CustomPixmapSymbol, self).__init__(qwt.QwtSymbol.Pixmap) # Use a built-in Qt icon as QPixmap for demonstration icon = QW.QApplication.style().standardIcon(QW.QStyle.SP_DialogYesButton) pixmap = icon.pixmap(20, 20) # Set the QPixmap for the symbol self.setPixmap(pixmap) class PixmapPlot(BaseSymbolPlot): TITLE = "Custom QPixmap Symbol Example" SYMBOL_CLASS = CustomPixmapSymbol class CustomPathSymbol(qwt.QwtSymbol): def __init__(self): super(CustomPathSymbol, self).__init__(qwt.QwtSymbol.Path) path = QG.QPainterPath() path.moveTo(0, -10) # Top vertex of the triangle path.lineTo(-10, 10) # Bottom-left vertex path.lineTo(10, 10) # Bottom-right vertex path.closeSubpath() # Close the triangle self.setPath(path) self.setSize(20, 20) class PathPlot(BaseSymbolPlot): TITLE = "Custom Path Symbol Example" SYMBOL_CLASS = CustomPathSymbol class CustomSvgSymbol(qwt.QwtSymbol): FNAME = osp.join(osp.dirname(__file__), "data", "symbol.svg") def __init__(self): super(CustomSvgSymbol, self).__init__(qwt.QwtSymbol.SvgDocument) # Load the SVG document from the given file self.setSvgDocument(self.FNAME) class SvgDocumentPlot(BaseSymbolPlot): TITLE = "Custom SVG Symbol Example" SYMBOL_CLASS = CustomSvgSymbol def test_base(): """Base symbol test""" utils.test_widget(BaseSymbolPlot, size=(600, 400)) def test_builtin(): """Built-in symbol test""" utils.test_widget(BuiltinSymbolPlot, size=(600, 400)) def test_graphic(): """Graphic symbol test""" utils.test_widget(GraphicPlot, size=(600, 400)) def test_pixmap(): """Pixmap test""" utils.test_widget(PixmapPlot, size=(600, 400)) def test_path(): """Path symbol test""" utils.test_widget(PathPlot, size=(600, 400)) def test_svg(): """SVG test""" utils.test_widget(SvgDocumentPlot, size=(600, 400)) if __name__ == "__main__": # test_base() test_builtin() # test_graphic() # test_pixmap() # test_path() # test_svg() PythonQwt-0.12.7/qwt/tests/test_vertical.py000066400000000000000000000063251465265754400210050ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """Simple plot without margins""" SHOW = True # Show test in GUI-based test launcher import numpy as np from qtpy.QtCore import Qt from qtpy.QtGui import QColor, QPalette, QPen from qwt import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText from qwt.tests import utils class VerticalPlot(QwtPlot): def __init__(self, parent=None): super(VerticalPlot, self).__init__(parent) self.setWindowTitle("PythonQwt") self.enableAxis(self.xTop, True) self.enableAxis(self.yRight, True) y = np.linspace(0, 10, 500) curve1 = QwtPlotCurve.make(np.sin(y), y, title="Test Curve 1") curve2 = QwtPlotCurve.make(y**3, y, title="Test Curve 2") curve2.setAxes(self.xTop, self.yRight) for item, col, xa, ya in ( (curve1, Qt.green, self.xBottom, self.yLeft), (curve2, Qt.red, self.xTop, self.yRight), ): item.attach(self) item.setPen(QPen(col)) for axis_id in xa, ya: palette = self.axisWidget(axis_id).palette() palette.setColor(QPalette.WindowText, QColor(col)) palette.setColor(QPalette.Text, QColor(col)) self.axisWidget(axis_id).setPalette(palette) ticks_font = self.axisFont(axis_id) self.setAxisFont(axis_id, ticks_font) self.marker = QwtPlotMarker.make(0, 5, plot=self) def resizeEvent(self, event): super(VerticalPlot, self).resizeEvent(event) self.show_layout_details() def show_layout_details(self): text = ( "plotLayout().canvasRect():\n%r\n\n" "canvas().geometry():\n%r\n\n" "plotLayout().scaleRect(QwtPlot.yLeft):\n%r\n\n" "axisWidget(QwtPlot.yLeft).geometry():\n%r\n\n" "plotLayout().scaleRect(QwtPlot.yRight):\n%r\n\n" "axisWidget(QwtPlot.yRight).geometry():\n%r\n\n" "plotLayout().scaleRect(QwtPlot.xBottom):\n%r\n\n" "axisWidget(QwtPlot.xBottom).geometry():\n%r\n\n" "plotLayout().scaleRect(QwtPlot.xTop):\n%r\n\n" "axisWidget(QwtPlot.xTop).geometry():\n%r\n\n" % ( self.plotLayout().canvasRect().getCoords(), self.canvas().geometry().getCoords(), self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(), self.axisWidget(QwtPlot.yLeft).geometry().getCoords(), self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(), self.axisWidget(QwtPlot.yRight).geometry().getCoords(), self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(), self.axisWidget(QwtPlot.xBottom).geometry().getCoords(), self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(), self.axisWidget(QwtPlot.xTop).geometry().getCoords(), ) ) self.marker.setLabel(QwtText.make(text, family="Courier New", color=Qt.blue)) def test_vertical(): """Vertical plot example""" utils.test_widget(VerticalPlot, size=(300, 650)) if __name__ == "__main__": test_vertical() PythonQwt-0.12.7/qwt/tests/utils.py000066400000000000000000000244161465265754400172760ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # Copyright (c) 2015 Pierre Raybaut # (see LICENSE file for more details) """ PythonQwt test utilities ------------------------ """ import argparse import inspect import os import os.path as osp import platform import subprocess import sys from qtpy import QtCore as QC from qtpy import QtGui as QG from qtpy import QtWidgets as QW import qwt from qwt import QwtPlot from qwt import qthelpers as qth QT_API = os.environ["QT_API"] if QT_API.startswith("pyside"): from qtpy import PYSIDE_VERSION PYTHON_QT_API = "PySide v" + PYSIDE_VERSION else: from qtpy import PYQT_VERSION PYTHON_QT_API = "PyQt v" + PYQT_VERSION TEST_PATH = osp.abspath(osp.dirname(__file__)) class TestEnvironment: UNATTENDED_ARG = "unattended" SCREENSHOTS_ARG = "screenshots" UNATTENDED_ENV = "PYTHONQWT_UNATTENDED_TESTS" SCREENSHOTS_ENV = "PYTHONQWT_TAKE_SCREENSHOTS" def __init__(self): self.parse_args() @property def unattended(self): return os.environ.get(self.UNATTENDED_ENV) is not None @property def screenshots(self): return os.environ.get(self.SCREENSHOTS_ENV) is not None def parse_args(self): """Parse command line arguments""" parser = argparse.ArgumentParser(description="Run PythonQwt tests") parser.add_argument( "--mode", choices=[self.UNATTENDED_ARG, self.SCREENSHOTS_ARG], required=False, ) args, _unknown = parser.parse_known_args() if args.mode is not None: self.set_env_from_args(args) def set_env_from_args(self, args): """Set appropriate environment variables""" for name in (self.UNATTENDED_ENV, self.SCREENSHOTS_ENV): if name in os.environ: os.environ.pop(name) if args.mode == self.UNATTENDED_ARG: os.environ[self.UNATTENDED_ENV] = "1" if args.mode == self.SCREENSHOTS_ARG: os.environ[self.SCREENSHOTS_ENV] = os.environ[self.UNATTENDED_ENV] = "1" def get_tests(package): """Return list of test filenames""" test_package_name = "%s.tests" % package.__name__ _temp = __import__(test_package_name) test_package = sys.modules[test_package_name] tests = [] test_path = osp.dirname(osp.realpath(test_package.__file__)) for fname in sorted( [ name for name in os.listdir(test_path) if name.endswith((".py", ".pyw")) and not name.startswith(("_", "conftest")) ] ): module_name = osp.splitext(fname)[0] _temp = __import__(test_package.__name__, fromlist=[module_name]) module = getattr(_temp, module_name) if hasattr(module, "SHOW") and module.SHOW: tests.append(osp.abspath(osp.join(test_path, fname))) return tests def run_test(fname, wait=True): """Run test""" os.environ["PYTHONPATH"] = os.pathsep.join(sys.path) args = " ".join([sys.executable, '"' + fname + '"']) if TestEnvironment().unattended: print(" " + args) (subprocess.call if wait else subprocess.Popen)(args, shell=True) def run_all_tests(wait=True): """Run all PythonQwt tests""" for fname in get_tests(qwt): run_test(fname, wait=wait) def get_lib_versions(): """Return string containing Python-Qt versions""" from qtpy.QtCore import __version__ as qt_version return "Python %s, Qt %s, %s on %s" % ( platform.python_version(), qt_version, PYTHON_QT_API, platform.system(), ) class TestLauncher(QW.QMainWindow): """PythonQwt Test Launcher main window""" COLUMNS = 5 def __init__(self, parent=None): super(TestLauncher, self).__init__(parent) self.setObjectName("TestLauncher") icon = QG.QIcon(osp.join(TEST_PATH, "data", "PythonQwt.svg")) self.setWindowIcon(icon) self.setWindowTitle("PythonQwt %s - Test Launcher" % qwt.__version__) self.setCentralWidget(QW.QWidget()) self.grid_layout = QW.QGridLayout() self.centralWidget().setLayout(self.grid_layout) self.test_nb = None self.fill_layout() self.statusBar().show() self.setStatusTip("Click on any button to run a test") def get_std_icon(self, name): """Return Qt standard icon""" return self.style().standardIcon(getattr(QW.QStyle, "SP_" + name)) def fill_layout(self): """Fill grid layout""" for fname in get_tests(qwt): self.add_test(fname) toolbar = QW.QToolBar(self) all_act = QW.QAction(self.get_std_icon("DialogYesButton"), "", self) all_act.setIconText("Run all tests") all_act.triggered.connect(lambda checked: run_all_tests(wait=False)) folder_act = QW.QAction(self.get_std_icon("DirOpenIcon"), "", self) folder_act.setIconText("Open tests folder") def open_test_folder(checked): return os.startfile(TEST_PATH) folder_act.triggered.connect(open_test_folder) about_act = QW.QAction(self.get_std_icon("FileDialogInfoView"), "", self) about_act.setIconText("About") about_act.triggered.connect(self.about) for action in (all_act, folder_act, None, about_act): if action is None: toolbar.addSeparator() else: toolbar.addAction(action) toolbar.setToolButtonStyle(QC.Qt.ToolButtonTextBesideIcon) self.addToolBar(toolbar) def add_test(self, fname): """Add new test""" if self.test_nb is None: self.test_nb = 0 self.test_nb += 1 column = (self.test_nb - 1) % self.COLUMNS row = (self.test_nb - 1) // self.COLUMNS bname = osp.basename(fname) button = QW.QToolButton(self) button.setToolButtonStyle(QC.Qt.ToolButtonTextUnderIcon) shot = osp.join( TEST_PATH, "data", bname.replace(".py", ".png").replace("test_", "") ) if osp.isfile(shot): button.setIcon(QG.QIcon(shot)) else: button.setIcon(self.get_std_icon("DialogYesButton")) button.setText(bname) button.setToolTip(fname) button.setIconSize(QC.QSize(130, 80)) button.clicked.connect(lambda checked=None, fname=fname: run_test(fname)) self.grid_layout.addWidget(button, row, column) def about(self): """About test launcher""" QW.QMessageBox.about( self, "About " + self.windowTitle(), """%s

Developped by Pierre Raybaut
Copyright © 2020 Pierre Raybaut

%s""" % (self.windowTitle(), get_lib_versions()), ) class TestOptions(QW.QGroupBox): """Test options groupbox""" def __init__(self, parent=None): super(TestOptions, self).__init__("Test options", parent) self.setLayout(QW.QFormLayout()) self.hide() def add_checkbox(self, title, label, slot): """Add new checkbox to option panel""" widget = QW.QCheckBox(label, self) widget.stateChanged.connect(slot) self.layout().addRow(title, widget) self.show() return widget class TestCentralWidget(QW.QWidget): """Test central widget""" def __init__(self, widget_name, parent=None): super(TestCentralWidget, self).__init__(parent) self.widget_name = widget_name self.plots = None self.widget_of_interest = self.parent() self.setLayout(QW.QVBoxLayout()) self.options = TestOptions(self) self.add_widget(self.options) def add_widget(self, widget): """Add new sub-widget""" self.layout().addWidget(widget) if isinstance(widget, QwtPlot): self.plots = [widget] else: self.plots = widget.findChildren(QwtPlot) for index, plot in enumerate(self.plots): plot_name = plot.objectName() if not plot_name: plot_name = "Plot #%d" % (index + 1) widget = self.options.add_checkbox( plot_name, "Enable new flat style option", plot.setFlatStyle ) widget.setChecked(plot.flatStyle()) if len(self.plots) == 1: self.widget_of_interest = self.plots[0] def take_screenshot(widget): """Take screenshot and save it to the data folder""" bname = (widget.objectName().lower() + ".png").replace("window", "") bname = bname.replace("plot", "").replace("widget", "") qth.take_screenshot(widget, osp.join(TEST_PATH, "data", bname), quit=True) def close_widgets_and_quit() -> None: """Close Qt top level widgets and quit Qt event loop""" QW.QApplication.processEvents() for widget in QW.QApplication.instance().topLevelWidgets(): assert widget.close() QC.QTimer.singleShot(0, QW.QApplication.instance().quit) def test_widget(widget_class, size=None, title=None, options=True): """Test widget""" widget_name = widget_class.__name__ app = QW.QApplication.instance() if app is None: app = QW.QApplication([]) test_env = TestEnvironment() if inspect.signature(widget_class).parameters.get("unattended") is None: widget = widget_class() else: widget = widget_class(unattended=test_env.unattended) window = widget if options: if isinstance(widget, QW.QMainWindow): widget = window.centralWidget() widget.setParent(None) else: window = QW.QMainWindow() central_widget = TestCentralWidget(widget_name, parent=window) central_widget.add_widget(widget) window.setCentralWidget(central_widget) widget_of_interest = central_widget.widget_of_interest else: widget_of_interest = window widget_of_interest.setObjectName(widget_name) if title is None: title = 'Test "%s" - PythonQwt %s' % (widget_name, qwt.__version__) window.setWindowTitle(title) if size is not None: width, height = size window.resize(width, height) window.show() if test_env.screenshots: QC.QTimer.singleShot(1000, lambda: take_screenshot(widget_of_interest)) elif test_env.unattended: QC.QTimer.singleShot(0, close_widgets_and_quit) if QT_API == "pyside6": app.exec() else: app.exec_() return app PythonQwt-0.12.7/qwt/text.py000066400000000000000000001223251465265754400157560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ Text widgets ------------ QwtText ~~~~~~~ .. autoclass:: QwtText :members: QwtTextLabel ~~~~~~~~~~~~ .. autoclass:: QwtTextLabel :members: Text engines ------------ QwtTextEngine ~~~~~~~~~~~~~ .. autoclass:: QwtTextEngine :members: QwtPlainTextEngine ~~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPlainTextEngine :members: QwtRichTextEngine ~~~~~~~~~~~~~~~~~ .. autoclass:: QwtRichTextEngine :members: """ import math import os import struct from qtpy.QtCore import QObject, QRectF, QSize, QSizeF, Qt from qtpy.QtGui import ( QAbstractTextDocumentLayout, QColor, QFont, QFontInfo, QFontMetrics, QFontMetricsF, QPainter, QPalette, QPixmap, QTextDocument, QTextOption, QTransform, ) from qtpy.QtWidgets import QApplication, QFrame, QSizePolicy, QWidget from qwt.painter import QwtPainter from qwt.qthelpers import qcolor_from_str QWIDGETSIZE_MAX = (1 << 24) - 1 QT_API = os.environ["QT_API"] def taggedRichText(text, flags): richText = text if flags & Qt.AlignJustify: richText = '

' + richText + "
" elif flags & Qt.AlignRight: richText = '
' + richText + "
" elif flags & Qt.AlignHCenter: richText = '
' + richText + "
" return richText class QwtRichTextDocument(QTextDocument): def __init__(self, text, flags, font): super(QwtRichTextDocument, self).__init__(None) self.setUndoRedoEnabled(False) self.setDefaultFont(font) self.setHtml(text) option = self.defaultTextOption() if flags & Qt.TextWordWrap: option.setWrapMode(QTextOption.WordWrap) else: option.setWrapMode(QTextOption.NoWrap) option.setAlignment(flags) self.setDefaultTextOption(option) root = self.rootFrame() fm = root.frameFormat() fm.setBorder(0) fm.setMargin(0) fm.setPadding(0) fm.setBottomMargin(0) fm.setLeftMargin(0) root.setFrameFormat(fm) self.adjustSize() class QwtTextEngine(object): """ Abstract base class for rendering text strings A text engine is responsible for rendering texts for a specific text format. They are used by `QwtText` to render a text. `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the `PythonQwt` library. .. seealso:: :py:meth:`qwt.text.QwtText.setTextEngine()` """ def __init__(self): pass def heightForWidth(self, font, flags, text, width): """ Find the height for a given width :param QFont font: Font of the text :param int flags: Bitwise OR of the flags used like in QPainter::drawText :param str text: Text to be rendered :param float width: Width :return: Calculated height """ pass def textSize(self, font, flags, text): """ Returns the size, that is needed to render text :param QFont font: Font of the text :param int flags: Bitwise OR of the flags like in for QPainter::drawText :param str text: Text to be rendered :return: Calculated size """ pass def mightRender(self, text): """ Test if a string can be rendered by this text engine :param str text: Text to be tested :return: True, if it can be rendered """ pass def textMargins(self, font): """ Return margins around the texts The textSize might include margins around the text, like QFontMetrics::descent(). In situations where texts need to be aligned in detail, knowing these margins might improve the layout calculations. :param QFont font: Font of the text :return: tuple (left, right, top, bottom) representing margins """ pass def draw(self, painter, rect, flags, text): """ Draw the text in a clipping rectangle :param QPainter painter: Painter :param QRectF rect: Clipping rectangle :param int flags: Bitwise OR of the flags like in for QPainter::drawText() :param str text: Text to be rendered """ pass ASCENTCACHE = {} def get_screen_resolution(): """Return screen resolution: tuple of floats (DPIx, DPIy)""" try: desktop = QApplication.desktop() return (desktop.logicalDpiX(), desktop.logicalDpiY()) except AttributeError: screen = QApplication.primaryScreen() return (screen.logicalDotsPerInchX(), screen.logicalDotsPerInchY()) def qwtUnscaleFont(painter): if painter.font().pixelSize() >= 0: return dpix, dpiy = get_screen_resolution() pd = painter.device() if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy: try: pixelFont = QFont(painter.font(), QApplication.desktop()) except AttributeError: pixelFont = QFont(painter.font()) pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize()) painter.setFont(pixelFont) class QwtPlainTextEngine(QwtTextEngine): """ A text engine for plain texts `QwtPlainTextEngine` renders texts using the basic `Qt` classes `QPainter` and `QFontMetrics`. """ def __init__(self): self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) self._fm_cache = {} self._fm_cache_f = {} def fontmetrics(self, font): fid = font.toString() try: return self._fm_cache[fid] except KeyError: return self._fm_cache.setdefault(fid, QFontMetrics(font)) def fontmetrics_f(self, font): fid = font.toString() try: return self._fm_cache_f[fid] except KeyError: return self._fm_cache_f.setdefault(fid, QFontMetricsF(font)) def heightForWidth(self, font, flags, text, width): """ Find the height for a given width :param QFont font: Font of the text :param int flags: Bitwise OR of the flags used like in QPainter::drawText :param str text: Text to be rendered :param float width: Width :return: Calculated height """ fm = self.fontmetrics_f(font) rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), flags, text) return rect.height() def textSize(self, font, flags, text): """ Returns the size, that is needed to render text :param QFont font: Font of the text :param int flags: Bitwise OR of the flags like in for QPainter::drawText :param str text: Text to be rendered :return: Calculated size """ fm = self.fontmetrics_f(font) rect = fm.boundingRect(self.qrectf_max, flags, text) return rect.size() def effectiveAscent(self, font): global ASCENTCACHE fontKey = font.key() ascent = ASCENTCACHE.get(fontKey) if ascent is not None: return ascent return ASCENTCACHE.setdefault(fontKey, self.findAscent(font)) def findAscent(self, font): dummy = "E" white = QColor(Qt.white) fm = self.fontmetrics(font) boundingr = fm.boundingRect(dummy) pm = QPixmap(boundingr.width(), boundingr.height()) pm.fill(white) p = QPainter(pm) p.setFont(font) p.drawText(0, 0, pm.width(), pm.height(), 0, dummy) p.end() img = pm.toImage() w = pm.width() linebytes = w * 4 for row in range(img.height()): if QT_API.startswith("pyside"): line = bytes(img.scanLine(row)) else: line = img.scanLine(row).asstring(linebytes) for col in range(w): color = struct.unpack("I", line[col * 4 : (col + 1) * 4])[0] if color != white.rgb(): return fm.ascent() - row + 1 return fm.ascent() def textMargins(self, font): """ Return margins around the texts The textSize might include margins around the text, like QFontMetrics::descent(). In situations where texts need to be aligned in detail, knowing these margins might improve the layout calculations. :param QFont font: Font of the text :return: tuple (left, right, top, bottom) representing margins """ left = right = 0 fm = self.fontmetrics(font) top = fm.ascent() - self.effectiveAscent(font) bottom = fm.descent() return left, right, top, bottom def draw(self, painter, rect, flags, text): """ Draw the text in a clipping rectangle :param QPainter painter: Painter :param QRectF rect: Clipping rectangle :param int flags: Bitwise OR of the flags like in for QPainter::drawText() :param str text: Text to be rendered """ painter.save() qwtUnscaleFont(painter) painter.drawText(rect, flags, text) painter.restore() def mightRender(self, text): """ Test if a string can be rendered by this text engine :param str text: Text to be tested :return: True, if it can be rendered """ return True class QwtRichTextEngine(QwtTextEngine): """ A text engine for `Qt` rich texts `QwtRichTextEngine` renders `Qt` rich texts using the classes of the Scribe framework of `Qt`. """ def __init__(self): pass def heightForWidth(self, font, flags, text, width): """ Find the height for a given width :param QFont font: Font of the text :param int flags: Bitwise OR of the flags used like in QPainter::drawText :param str text: Text to be rendered :param float width: Width :return: Calculated height """ doc = QwtRichTextDocument(text, flags, font) doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX)) return doc.documentLayout().documentSize().height() def textSize(self, font, flags, text): """ Returns the size, that is needed to render text :param QFont font: Font of the text :param int flags: Bitwise OR of the flags like in for QPainter::drawText :param str text: Text to be rendered :return: Calculated size """ doc = QwtRichTextDocument(text, flags, font) option = doc.defaultTextOption() if option.wrapMode() != QTextOption.NoWrap: option.setWrapMode(QTextOption.NoWrap) doc.setDefaultTextOption(option) doc.adjustSize() return doc.size() def draw(self, painter, rect, flags, text): """ Draw the text in a clipping rectangle :param QPainter painter: Painter :param QRectF rect: Clipping rectangle :param int flags: Bitwise OR of the flags like in for QPainter::drawText() :param str text: Text to be rendered """ txt = QwtRichTextDocument(text, flags, painter.font()) painter.save() unscaledRect = QRectF(rect) if painter.font().pixelSize() < 0: dpix, dpiy = get_screen_resolution() pd = painter.device() if pd.logicalDpiX() != dpix or pd.logicalDpiY() != dpiy: transform = QTransform() transform.scale( dpix / float(pd.logicalDpiX()), dpiy / float(pd.logicalDpiY()) ) painter.setWorldTransform(transform, True) invtrans, _ok = transform.inverted() unscaledRect = invtrans.mapRect(rect) txt.setDefaultFont(painter.font()) txt.setPageSize(QSizeF(unscaledRect.width(), QWIDGETSIZE_MAX)) layout = txt.documentLayout() height = layout.documentSize().height() y = unscaledRect.y() if flags & Qt.AlignBottom: y += unscaledRect.height() - height elif flags & Qt.AlignVCenter: y += (unscaledRect.height() - height) / 2 context = QAbstractTextDocumentLayout.PaintContext() context.palette.setColor(QPalette.Text, painter.pen().color()) painter.translate(unscaledRect.x(), y) layout.draw(painter, context) painter.restore() def taggedText(self, text, flags): return taggedRichText(text, flags) def mightRender(self, text): """ Test if a string can be rendered by this text engine :param str text: Text to be tested :return: True, if it can be rendered """ try: return Qt.mightBeRichText(text) except AttributeError: return True def textMargins(self, font): """ Return margins around the texts The textSize might include margins around the text, like QFontMetrics::descent(). In situations where texts need to be aligned in detail, knowing these margins might improve the layout calculations. :param QFont font: Font of the text :return: tuple (left, right, top, bottom) representing margins """ return 0, 0, 0, 0 class QwtText_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.renderFlags = Qt.AlignCenter self.borderRadius = 0 self.borderPen = Qt.NoPen self.backgroundBrush = Qt.NoBrush self.paintAttributes = 0 self.layoutAttributes = 0 self.textEngine = None self.text = None self.font = None self.color = None class QwtText_LayoutCache(object): def __init__(self): self.textSize = None self.font = None def invalidate(self): self.textSize = None class QwtText(object): """ A class representing a text A `QwtText` is a text including a set of attributes how to render it. - Format: A text might include control sequences (f.e tags) describing how to render it. Each format (f.e MathML, TeX, Qt Rich Text) has its own set of control sequences, that can be handles by a special `QwtTextEngine` for this format. - Background: A text might have a background, defined by a `QPen` and `QBrush` to improve its visibility. The corners of the background might be rounded. - Font: A text might have an individual font. - Color A text might have an individual color. - Render Flags Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in `QPainter.drawText()`. ..seealso:: :py:meth:`qwt.text.QwtTextEngine`, :py:meth:`qwt.text.QwtTextLabel` Text formats: * `QwtText.AutoText`: The text format is determined using `QwtTextEngine.mightRender()` for all available text engines in increasing order > PlainText. If none of the text engines can render the text is rendered like `QwtText.PlainText`. * `QwtText.PlainText`: Draw the text as it is, using a QwtPlainTextEngine. * `QwtText.RichText`: Use the Scribe framework (Qt Rich Text) to render the text. * `QwtText.OtherFormat`: The number of text formats can be extended using `setTextEngine`. Formats >= `QwtText.OtherFormat` are not used by Qwt. Paint attributes: * `QwtText.PaintUsingTextFont`: The text has an individual font. * `QwtText.PaintUsingTextColor`: The text has an individual color. * `QwtText.PaintBackground`: The text has an individual background. Layout attributes: * `QwtText.MinimumLayout`: Layout the text without its margins. This mode is useful if a text needs to be aligned accurately, like the tick labels of a scale. If `QwtTextEngine.textMargins` is not implemented for the format of the text, `MinimumLayout` has no effect. .. py:class:: QwtText([text=None], [textFormat=None], [other=None]) :param str text: Text content :param int textFormat: Text format :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored) """ # enum TextFormat AutoText, PlainText, RichText = list(range(3)) OtherFormat = 100 # enum PaintAttribute PaintUsingTextFont = 0x01 PaintUsingTextColor = 0x02 PaintBackground = 0x04 # enum LayoutAttribute MinimumLayout = 0x01 # Optimization: a single text engine for all QwtText objects # (this is not how it's implemented in Qwt6 C++ library) __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()} def __init__(self, text=None, textFormat=None, other=None): if text is None: text = "" if textFormat is None: textFormat = self.AutoText if other is not None: text = other if isinstance(text, QwtText): self.__data = text.__data self.__layoutCache = text.__layoutCache else: self.__data = QwtText_PrivateData() self.__data.text = text self.__data.textEngine = self.textEngine(text, textFormat) self.__layoutCache = QwtText_LayoutCache() @classmethod def make( cls, text=None, textformat=None, renderflags=None, font=None, family=None, pointsize=None, weight=None, color=None, borderradius=None, borderpen=None, brush=None, ): """ Create and setup a new `QwtText` object (convenience function). :param str text: Text content :param int textformat: Text format :param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` :param font: Font :type font: QFont or None :param family: Font family (default: Helvetica) :type family: str or None :param pointsize: Font point size (default: 10) :type pointsize: int or None :param weight: Font weight (default: QFont.Normal) :type weight: int or None :param color: Pen color :type color: QColor or str or None :param borderradius: Radius for the corners of the border frame :type borderradius: float or None :param borderpen: Background pen :type borderpen: QPen or None :param brush: Background brush :type brush: QBrush or None .. seealso:: :py:meth:`setText()` """ item = cls(text=text, textFormat=textformat) if renderflags is not None: item.setRenderFlags(renderflags) if font is not None: item.setFont(font) elif family is not None or pointsize is not None or weight is not None: family = "Helvetica" if family is None else family pointsize = 10 if pointsize is None else pointsize weight = QFont.Normal if weight is None else weight item.setFont(QFont(family, pointsize, weight)) if color is not None: item.setColor(qcolor_from_str(color, Qt.black)) if borderradius is not None: item.setBorderRadius(borderradius) if borderpen is not None: item.setBorderPen(borderpen) if brush is not None: item.setBackgroundBrush(brush) return item def __eq__(self, other): return ( self.__data.renderFlags == other.__data.renderFlags and self.__data.text == other.__data.text and self.__data.font == other.__data.font and self.__data.color == other.__data.color and self.__data.borderRadius == other.__data.borderRadius and self.__data.borderPen == other.__data.borderPen and self.__data.backgroundBrush == other.__data.backgroundBrush and self.__data.paintAttributes == other.__data.paintAttributes and self.__data.textEngine == other.__data.textEngine ) def __ne__(self, other): return not self.__eq__(other) def isEmpty(self): """ :return: True if text is empty """ return len(self.text()) == 0 def setText(self, text, textFormat=None): """ Assign a new text content :param str text: Text content :param int textFormat: Text format .. seealso:: :py:meth:`text()` """ if textFormat is None: textFormat = self.AutoText self.__data.text = text self.__data.textEngine = self.textEngine(text, textFormat) self.__layoutCache.invalidate() def text(self): """ :return: Text content .. seealso:: :py:meth:`setText()` """ return self.__data.text def setRenderFlags(self, renderFlags): """ Change the render flags The default setting is `Qt.AlignCenter` :param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()` .. seealso:: :py:meth:`renderFlags()`, :py:meth:`qwt.text.QwtTextEngine.draw()` """ renderFlags = Qt.AlignmentFlag(renderFlags) if renderFlags != self.__data.renderFlags: self.__data.renderFlags = renderFlags self.__layoutCache.invalidate() def renderFlags(self): """ :return: Render flags .. seealso:: :py:meth:`setRenderFlags()` """ return self.__data.renderFlags def setFont(self, font): """ Set the font. :param QFont font: Font .. note:: Setting the font might have no effect, when the text contains control sequences for setting fonts. .. seealso:: :py:meth:`font()`, :py:meth:`usedFont()` """ self.__data.font = font self.setPaintAttribute(self.PaintUsingTextFont) def font(self): """ :return: Return the font .. seealso:: :py:meth:`setFont()`, :py:meth:`usedFont()` """ return self.__data.font def usedFont(self, defaultFont): """ Return the font of the text, if it has one. Otherwise return defaultFont. :param QFont defaultFont: Default font :return: Font used for drawing the text .. seealso:: :py:meth:`setFont()`, :py:meth:`font()` """ if self.__data.paintAttributes & self.PaintUsingTextFont: return self.__data.font return defaultFont def setColor(self, color): """ Set the pen color used for drawing the text. :param QColor color: Color .. note:: Setting the color might have no effect, when the text contains control sequences for setting colors. .. seealso:: :py:meth:`color()`, :py:meth:`usedColor()` """ self.__data.color = QColor(color) self.setPaintAttribute(self.PaintUsingTextColor) def color(self): """ :return: Return the pen color, used for painting the text .. seealso:: :py:meth:`setColor()`, :py:meth:`usedColor()` """ return self.__data.color def usedColor(self, defaultColor): """ Return the color of the text, if it has one. Otherwise return defaultColor. :param QColor defaultColor: Default color :return: Color used for drawing the text .. seealso:: :py:meth:`setColor()`, :py:meth:`color()` """ if self.__data.paintAttributes & self.PaintUsingTextColor: return self.__data.color return defaultColor def setBorderRadius(self, radius): """ Set the radius for the corners of the border frame :param float radius: Radius of a rounded corner .. seealso:: :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`, :py:meth:`setBackgroundBrush()` """ self.__data.borderRadius = max([0.0, radius]) def borderRadius(self): """ :return: Radius for the corners of the border frame .. seealso:: :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`, :py:meth:`backgroundBrush()` """ return self.__data.borderRadius def setBorderPen(self, pen): """ Set the background pen :param QPen pen: Background pen .. seealso:: :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()` """ self.__data.borderPen = pen self.setPaintAttribute(self.PaintBackground) def borderPen(self): """ :return: Background pen .. seealso:: :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()` """ return self.__data.borderPen def setBackgroundBrush(self, brush): """ Set the background brush :param QBrush brush: Background brush .. seealso:: :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()` """ self.__data.backgroundBrush = brush self.setPaintAttribute(self.PaintBackground) def backgroundBrush(self): """ :return: Background brush .. seealso:: :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()` """ return self.__data.backgroundBrush def setPaintAttribute(self, attribute, on=True): """ Change a paint attribute :param int attribute: Paint attribute :param bool on: On/Off .. note:: Used by `setFont()`, `setColor()`, `setBorderPen()` and `setBackgroundBrush()` .. seealso:: :py:meth:`testPaintAttribute()` """ if on: self.__data.paintAttributes |= attribute else: self.__data.paintAttributes &= ~attribute def testPaintAttribute(self, attribute): """ Test a paint attribute :param int attribute: Paint attribute :return: True, if attribute is enabled .. seealso:: :py:meth:`setPaintAttribute()` """ return self.__data.paintAttributes & attribute def setLayoutAttribute(self, attribute, on=True): """ Change a layout attribute :param int attribute: Layout attribute :param bool on: On/Off .. seealso:: :py:meth:`testLayoutAttribute()` """ if on: self.__data.layoutAttributes |= attribute else: self.__data.layoutAttributes &= ~attribute def testLayoutAttribute(self, attribute): """ Test a layout attribute :param int attribute: Layout attribute :return: True, if attribute is enabled .. seealso:: :py:meth:`setLayoutAttribute()` """ return self.__data.layoutAttributes & attribute def heightForWidth(self, width, defaultFont=None): """ Find the height for a given width :param float width: Width :param QFont defaultFont: Font, used for the calculation if the text has no font :return: Calculated height """ if defaultFont is None: defaultFont = QFont() font = QFont(self.usedFont(defaultFont)) h = 0 if self.__data.layoutAttributes & self.MinimumLayout: (left, right, top, bottom) = self.__data.textEngine.textMargins(font) h = self.__data.textEngine.heightForWidth( font, self.__data.renderFlags, self.__data.text, width + left + right ) h -= top + bottom else: h = self.__data.textEngine.heightForWidth( font, self.__data.renderFlags, self.__data.text, width ) return h def textSize(self, defaultFont): """ Returns the size, that is needed to render text :param QFont defaultFont Font, used for the calculation if the text has no font :return: Caluclated size """ font = QFont(self.usedFont(defaultFont)) if ( self.__layoutCache.textSize is None or not self.__layoutCache.textSize.isValid() or self.__layoutCache.font is not font ): self.__layoutCache.textSize = self.__data.textEngine.textSize( font, self.__data.renderFlags, self.__data.text ) self.__layoutCache.font = font sz = self.__layoutCache.textSize if self.__data.layoutAttributes & self.MinimumLayout: (left, right, top, bottom) = self.__data.textEngine.textMargins(font) sz -= QSizeF(left + right, top + bottom) return sz def draw(self, painter, rect): """ Draw a text into a rectangle :param QPainter painter: Painter :param QRectF rect: Rectangle """ if self.__data.paintAttributes & self.PaintBackground: if ( self.__data.borderPen != Qt.NoPen or self.__data.backgroundBrush != Qt.NoBrush ): painter.save() painter.setPen(self.__data.borderPen) painter.setBrush(self.__data.backgroundBrush) if self.__data.borderRadius == 0: painter.drawRect(rect) else: painter.setRenderHint(QPainter.Antialiasing, True) painter.drawRoundedRect( rect, self.__data.borderRadius, self.__data.borderRadius ) painter.restore() painter.save() if self.__data.paintAttributes & self.PaintUsingTextFont: painter.setFont(self.__data.font) if self.__data.paintAttributes & self.PaintUsingTextColor: if self.__data.color.isValid(): painter.setPen(self.__data.color) expandedRect = rect if self.__data.layoutAttributes & self.MinimumLayout: font = QFont(painter.font()) (left, right, top, bottom) = self.__data.textEngine.textMargins(font) expandedRect.setTop(rect.top() - top) expandedRect.setBottom(rect.bottom() + bottom) expandedRect.setLeft(rect.left() - left) expandedRect.setRight(rect.right() + right) self.__data.textEngine.draw( painter, expandedRect, self.__data.renderFlags, self.__data.text ) painter.restore() def textEngine(self, text=None, format_=None): """ Find the text engine for a text format In case of `QwtText.AutoText` the first text engine (beside `QwtPlainTextEngine`) is returned, where `QwtTextEngine.mightRender` returns true. If there is none `QwtPlainTextEngine` is returned. If no text engine is registered for the format `QwtPlainTextEngine` is returned. :param str text: Text, needed in case of AutoText :param int format: Text format :return: Corresponding text engine """ if text is None: return self.__map.get(format_) elif format_ is not None: if format_ == QwtText.AutoText: for key, engine in list(self.__map.items()): if key != QwtText.PlainText: if engine and engine.mightRender(text): return engine engine = self.__map.get(format_) if engine is not None: return engine return self.__map[QwtText.PlainText] else: raise TypeError( "%s().textEngine() takes 1 or 2 argument(s) (none" " given)" % self.__class__.__name__ ) def setTextEngine(self, format_, engine): """ Assign/Replace a text engine for a text format With setTextEngine it is possible to extend `PythonQwt` with other types of text formats. For `QwtText.PlainText` it is not allowed to assign a engine to None. :param int format_: Text format :param qwt.text.QwtTextEngine engine: Text engine .. seealso:: :py:meth:`setPaintAttribute()` .. warning:: Using `QwtText.AutoText` does nothing. """ if format_ == QwtText.AutoText: return if format_ == QwtText.PlainText and engine is None: return self.__map.setdefault(format_, engine) class QwtTextLabel_PrivateData(QObject): def __init__(self): QObject.__init__(self) self.indent = 4 self.margin = 0 self.text = QwtText() class QwtTextLabel(QFrame): """ A Widget which displays a QwtText .. py:class:: QwtTextLabel(parent) :param QWidget parent: Parent widget .. py:class:: QwtTextLabel([text=None], [parent=None]) :noindex: :param str text: Text :param QWidget parent: Parent widget """ def __init__(self, *args): if len(args) == 0: text, parent = None, None elif len(args) == 1: if isinstance(args[0], QWidget): text = None (parent,) = args else: parent = None (text,) = args elif len(args) == 2: text, parent = args else: raise TypeError( "%s() takes 0, 1 or 2 argument(s) (%s given)" % (self.__class__.__name__, len(args)) ) super(QwtTextLabel, self).__init__(parent) self.init() if text is not None: self.__data.text = text def init(self): self.__data = QwtTextLabel_PrivateData() self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) def setPlainText(self, text): """ Interface for the designer plugin - does the same as setText() :param str text: Text .. seealso:: :py:meth:`plainText()` """ self.setText(QwtText(text)) def plainText(self): """ Interface for the designer plugin :return: Text as plain text .. seealso:: :py:meth:`setPlainText()` """ return self.__data.text.text() def setText(self, text, textFormat=QwtText.AutoText): """ Change the label's text, keeping all other QwtText attributes :param text: New text :type text: qwt.text.QwtText or str :param int textFormat: Format of text .. seealso:: :py:meth:`text()` """ if isinstance(text, QwtText): self.__data.text = text else: self.__data.text.setText(text, textFormat) self.update() self.updateGeometry() def text(self): """ :return: Return the text .. seealso:: :py:meth:`setText()` """ return self.__data.text def clear(self): """ Clear the text and all `QwtText` attributes """ self.__data.text = QwtText() self.update() self.updateGeometry() def indent(self): """ :return: Label's text indent in pixels .. seealso:: :py:meth:`setIndent()` """ return self.__data.indent def setIndent(self, indent): """ Set label's text indent in pixels :param int indent: Indentation in pixels .. seealso:: :py:meth:`indent()` """ if indent < 0: indent = 0 self.__data.indent = indent self.update() self.updateGeometry() def margin(self): """ :return: Label's text indent in pixels .. seealso:: :py:meth:`setMargin()` """ return self.__data.margin def setMargin(self, margin): """ Set label's margin in pixels :param int margin: Margin in pixels .. seealso:: :py:meth:`margin()` """ self.__data.margin = margin self.update() self.updateGeometry() def sizeHint(self): """ Return a size hint """ return self.minimumSizeHint() def minimumSizeHint(self): """ Return a minimum size hint """ sz = self.__data.text.textSize(self.font()) mw = 2 * (self.frameWidth() + self.__data.margin) mh = mw indent = self.__data.indent if indent <= 0: indent = self.defaultIndent() if indent > 0: align = self.__data.text.renderFlags() if align & Qt.AlignLeft or align & Qt.AlignRight: mw += self.__data.indent elif align & Qt.AlignTop or align & Qt.AlignBottom: mh += self.__data.indent sz += QSizeF(mw, mh) return QSize(math.ceil(sz.width()), math.ceil(sz.height())) def heightForWidth(self, width): """ :param int width: Width :return: Preferred height for this widget, given the width. """ renderFlags = self.__data.text.renderFlags() indent = self.__data.indent if indent <= 0: indent = self.defaultIndent() width -= 2 * self.frameWidth() if renderFlags & Qt.AlignLeft or renderFlags & Qt.AlignRight: width -= indent height = math.ceil(self.__data.text.heightForWidth(width, self.font())) if renderFlags & Qt.AlignTop or renderFlags & Qt.AlignBottom: height += indent height += 2 * self.frameWidth() return height def paintEvent(self, event): painter = QPainter(self) if not self.contentsRect().contains(event.rect()): painter.save() painter.setClipRegion(event.region() & self.frameRect()) self.drawFrame(painter) painter.restore() painter.setClipRegion(event.region() & self.contentsRect()) self.drawContents(painter) def drawContents(self, painter): """ Redraw the text and focus indicator :param QPainter painter: Painter """ r = self.textRect() if r.isEmpty(): return painter.setFont(self.font()) painter.setPen(self.palette().color(QPalette.Active, QPalette.Text)) self.drawText(painter, QRectF(r)) if self.hasFocus(): m = 2 focusRect = self.contentsRect().adjusted(m, m, -m + 1, -m + 1) QwtPainter.drawFocusRect(painter, self, focusRect) def drawText(self, painter, textRect): """ Redraw the text :param QPainter painter: Painter :param QRectF textRect: Text rectangle """ self.__data.text.draw(painter, textRect) def textRect(self): """ Calculate geometry for the text in widget coordinates :return: Geometry for the text """ r = self.contentsRect() if not r.isEmpty() and self.__data.margin > 0: r.setRect( r.x() + self.__data.margin, r.y() + self.__data.margin, r.width() - 2 * self.__data.margin, r.height() - 2 * self.__data.margin, ) if not r.isEmpty(): indent = self.__data.indent if indent <= 0: indent = self.defaultIndent() if indent > 0: renderFlags = self.__data.text.renderFlags() if renderFlags & Qt.AlignLeft: r.setX(r.x() + indent) elif renderFlags & Qt.AlignRight: r.setWidth(r.width() - indent) elif renderFlags & Qt.AlignTop: r.setY(r.y() + indent) elif renderFlags & Qt.AlignBottom: r.setHeight(r.height() - indent) return r def defaultIndent(self): if self.frameWidth() <= 0: return 0 if self.__data.text.testPaintAttribute(QwtText.PaintUsingTextFont): fnt = self.__data.text.font() else: fnt = self.font() return QFontMetrics(fnt).boundingRect("x").width() / 2 PythonQwt-0.12.7/qwt/toqimage.py000066400000000000000000000032731465265754400166000ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the MIT License # (see LICENSE file for more details) """ NumPy array to QImage --------------------- .. autofunction:: array_to_qimage """ import numpy as np from qtpy.QtGui import QImage def array_to_qimage(arr, copy=False): """ Convert NumPy array to QImage object :param numpy.array arr: NumPy array :param bool copy: if True, make a copy of the array :return: QImage object """ # https://gist.githubusercontent.com/smex/5287589/raw/toQImage.py if arr is None: return QImage() if len(arr.shape) not in (2, 3): raise NotImplementedError("Unsupported array shape %r" % arr.shape) data = arr.data ny, nx = arr.shape[:2] stride = arr.strides[0] # bytes per line color_dim = None if len(arr.shape) == 3: color_dim = arr.shape[2] if arr.dtype == np.uint8: if color_dim is None: qimage = QImage(data, nx, ny, stride, QImage.Format_Indexed8) # qimage.setColorTable([qRgb(i, i, i) for i in range(256)]) qimage.setColorCount(256) elif color_dim == 3: qimage = QImage(data, nx, ny, stride, QImage.Format_RGB888) elif color_dim == 4: qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32) else: raise TypeError("Invalid third axis dimension (%r)" % color_dim) elif arr.dtype == np.uint32: qimage = QImage(data, nx, ny, stride, QImage.Format_ARGB32) else: raise NotImplementedError("Unsupported array data type %r" % arr.dtype) if copy: return qimage.copy() return qimage PythonQwt-0.12.7/qwt/transform.py000066400000000000000000000135501465265754400170040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Licensed under the terms of the Qwt License # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ Coordinate tranformations ------------------------- QwtTransform ~~~~~~~~~~~~ .. autoclass:: QwtTransform :members: QwtNullTransform ~~~~~~~~~~~~~~~~ .. autoclass:: QwtNullTransform :members: QwtLogTransform ~~~~~~~~~~~~~~~ .. autoclass:: QwtLogTransform :members: QwtPowerTransform ~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPowerTransform :members: """ import numpy as np class QwtTransform(object): """ A transformation between coordinate systems QwtTransform manipulates values, when being mapped between the scale and the paint device coordinate system. A transformation consists of 2 methods: - transform - invTransform where one is is the inverse function of the other. When p1, p2 are the boundaries of the paint device coordinates and s1, s2 the boundaries of the scale, QwtScaleMap uses the following calculations:: p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) ) s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) ) """ def __init__(self): pass def bounded(self, value): """ Modify value to be a valid value for the transformation. The default implementation does nothing. """ return value def transform(self, value): """ Transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`invTransform()` """ raise NotImplementedError def invTransform(self, value): """ Inverse transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`transform()` """ raise NotImplementedError def copy(self): """ :return: Clone of the transformation The default implementation does nothing. """ raise NotImplementedError class QwtNullTransform(QwtTransform): def transform(self, value): """ Transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`invTransform()` """ return value def invTransform(self, value): """ Inverse transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`transform()` """ return value def copy(self): """ :return: Clone of the transformation """ return QwtNullTransform() class QwtLogTransform(QwtTransform): """ Logarithmic transformation `QwtLogTransform` modifies the values using `numpy.log()` and `numpy.exp()`. .. note:: In the calculations of `QwtScaleMap` the base of the log function has no effect on the mapping. So `QwtLogTransform` can be used for logarithmic scale in base 2 or base 10 or any other base. Extremum values: * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic scales: 1.0e-150 * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic scales: 1.0e150 """ LogMin = 1.0e-150 LogMax = 1.0e150 def bounded(self, value): """ Modify value to be a valid value for the transformation. :param float value: Value to be bounded :return: Value modified """ return np.clip(value, self.LogMin, self.LogMax) def transform(self, value): """ Transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`invTransform()` """ return np.log(self.bounded(value)) def invTransform(self, value): """ Inverse transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`transform()` """ return np.exp(value) def copy(self): """ :return: Clone of the transformation """ return QwtLogTransform() class QwtPowerTransform(QwtTransform): """ A transformation using `numpy.pow()` `QwtPowerTransform` preserves the sign of a value. F.e. a transformation with a factor of 2 transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform` can be used for scales including negative values. """ def __init__(self, exponent): self.__exponent = exponent super(QwtPowerTransform, self).__init__() def transform(self, value): """ Transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`invTransform()` """ if value < 0.0: return -np.pow(-value, 1.0 / self.__exponent) else: return np.pow(value, 1.0 / self.__exponent) def invTransform(self, value): """ Inverse transformation function :param float value: Value :return: Modified value .. seealso:: :py:meth:`transform()` """ if value < 0.0: return -np.pow(-value, self.__exponent) else: return np.pow(value, self.__exponent) def copy(self): """ :return: Clone of the transformation """ return QwtPowerTransform(self.__exponent) PythonQwt-0.12.7/scripts/000077500000000000000000000000001465265754400152675ustar00rootroot00000000000000PythonQwt-0.12.7/scripts/build_dist.bat000066400000000000000000000012231465265754400200770ustar00rootroot00000000000000@echo off REM This script was copied from PythonQwt project REM ====================================================== REM Package build script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetLibName LIBNAME call %FUNC% GetModName MODNAME call %FUNC% SetPythonPath call %FUNC% UsePython if exist MANIFEST ( del /q MANIFEST ) %PYTHON% -m build rmdir /s /q %LIBNAME%.egg-info call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/build_doc.bat000066400000000000000000000011041465265754400176770ustar00rootroot00000000000000@echo off REM ====================================================== REM Documentation build script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetLibName LIBNAME call %FUNC% GetModName MODNAME call %FUNC% SetPythonPath call %FUNC% UsePython sphinx-build -b html doc build\doc start build\doc\index.html call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/clean_up.bat000066400000000000000000000030221465265754400175420ustar00rootroot00000000000000@echo off REM ====================================================== REM Clean up repository REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetLibName LIBNAME cd %SCRIPTPATH%\..\ @REM Removing files/directories related to Python/doc build process if exist %LIBNAME%.egg-info ( rmdir /s /q %LIBNAME%.egg-info ) if exist %LIBNAME%\%LIBNAME%.chm ( del /q %LIBNAME%\%LIBNAME%.chm ) if exist MANIFEST ( del /q MANIFEST ) if exist build ( rmdir /s /q build ) if exist dist ( rmdir /s /q dist ) if exist doc\_build ( rmdir /s /q doc\_build ) @REM Removing files produced by tests del *.h5 del *.json del *.pickle @REM Removing cache files/directories related to Python execution del /s /q *.pyc 1>nul 2>&1 del /s /q *.pyo 1>nul 2>&1 FOR /d /r %%d IN ("__pycache__") DO @IF EXIST "%%d" rd /s /q "%%d" @REM Removing directories related to public repository upload set TEMP=%SCRIPTPATH%\..\..\%LIBNAME%_temp set PUBLIC=%SCRIPTPATH%\..\..\%LIBNAME%_public if exist %TEMP% ( rmdir /s /q %TEMP% ) if exist %PUBLIC% ( rmdir /s /q %PUBLIC% ) @REM Removing files/directories related to Coverage if exist .coverage ( del /q .coverage ) if exist coverage.xml ( del /q coverage.xml ) if exist htmlcov ( rmdir /s /q htmlcov ) del /q .coverage.* 1>nul 2>&1 if exist sitecustomize.py ( del /q sitecustomize.py )PythonQwt-0.12.7/scripts/preview_doc.bat000066400000000000000000000011071465265754400202640ustar00rootroot00000000000000@echo off REM ====================================================== REM Documentation build script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% SetPythonPath call %FUNC% UsePython cd %SCRIPTPATH%\..\ if exist build\doc ( rmdir /s /q build\doc ) sphinx-build -b html doc build\doc start build\doc\index.html call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/run_coverage.bat000066400000000000000000000011211465265754400204310ustar00rootroot00000000000000@echo off REM ====================================================== REM Test coverage script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% SetPythonPath call %FUNC% UsePython set COVERAGE_PROCESS_START=%SCRIPTPATH%\..\.coveragerc coverage run -m pytest coverage combine coverage html start htmlcov\index.html call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/run_pylint.bat000066400000000000000000000012441465265754400201630ustar00rootroot00000000000000@echo off REM This script was derived from PythonQwt project REM ====================================================== REM Run pylint analysis REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetModName MODNAME call %FUNC% SetPythonPath set PYLINT_ARG=%* if "%PYLINT_ARG%"=="" set PYLINT_ARG=--disable=fixme %PYTHON% -m pylint --rcfile=%SCRIPTPATH%\..\.pylintrc %PYLINT_ARG% %MODNAME% call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/run_pytest.bat000066400000000000000000000015411465265754400201740ustar00rootroot00000000000000@echo off REM This script was derived from PythonQwt project REM ====================================================== REM Run pytest script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== setlocal enabledelayedexpansion call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetModName MODNAME call %FUNC% SetPythonPath :: Iterate over all directories in the grandparent directory :: (WinPython base directories) call %FUNC% GetPythonExeGrandParentDir DIR0 for /D %%d in ("%DIR0%*") do ( set WINPYDIRBASE=%%d call !WINPYDIRBASE!\scripts\env.bat echo Running pytest from "%%d": pytest --ff -q %MODNAME% echo ---- ) call %FUNC% EndOfScript PythonQwt-0.12.7/scripts/run_ruff.bat000066400000000000000000000010571465265754400176100ustar00rootroot00000000000000@echo off REM This script was derived from PythonQwt project REM ====================================================== REM Run Ruff analysis REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% GetModName MODNAME call %FUNC% SetPythonPath call %FUNC% UsePython ruff check call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/run_test_launcher.bat000066400000000000000000000007501465265754400215050ustar00rootroot00000000000000@echo off REM ====================================================== REM Test launcher script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% SetPythonPath call %FUNC% UsePython python -m qwt.tests.__init__ call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/run_test_venv.bat000066400000000000000000000020471465265754400206630ustar00rootroot00000000000000@echo off REM ====================================================== REM Virtual environment test script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see PythonQwt LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH set UNATTENDED=1 call %SCRIPTPATH%\build_dist set PYTHONPATH= call %FUNC% UsePython call :TestEnv PyQt5 call :TestEnv PyQt6 call :TestEnv PySide6 set UNATTENDED= call %FUNC% EndOfScript exit /B %ERRORLEVEL% :TestEnv call %FUNC% GetLibName LIBNAME call %FUNC% ShowTitle "Testing in %~1-based Python virtual environment" set VENVPATH=%SCRIPTPATH%\..\build\testenv if exist %VENVPATH% ( rmdir /s /q %VENVPATH% ) python -m venv %VENVPATH% call %VENVPATH%\Scripts\activate python -m pip install --upgrade pip pip install %~1 for %%f IN ("%SCRIPTPATH%\..\dist\%LIBNAME%-*.whl") DO ( pip install %%f[test] ) pytest call %VENVPATH%\Scripts\deactivate exit /B 0 PythonQwt-0.12.7/scripts/run_unattended_tests.bat000066400000000000000000000020401465265754400222140ustar00rootroot00000000000000@echo off REM ====================================================== REM Unattended test script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% SetPythonPath cd %SCRIPTPATH%\..\ if not defined WINPYDIRBASE ( goto :no ) choice /t 5 /c yn /cs /d n /m "Do you want to run tests only from %WINPYDIRBASE% (y/n)?" if errorlevel 2 goto :no :yes call :test %WINPYDIRBASE% pause exit /B %ERRORLEVEL% :no for /d %%d in (C:,C:\Apps,%localappdata%\Programs,%programfiles%,%ProgramFiles(x86^^^)%) do ( for /f %%f in ('dir /b %%d\w*') do ( call :test %%d\%%f ) ) pause exit /B %ERRORLEVEL% :test set ENV=%~1\scripts\env.bat if exist %ENV% ( @echo: @echo ************************** Testing with %~1 ************************** @echo: call %ENV% pytest ) exit /B 0 PythonQwt-0.12.7/scripts/take_screenshots.bat000066400000000000000000000011211465265754400213160ustar00rootroot00000000000000@echo off REM ====================================================== REM Screenshots update script REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== setlocal call %~dp0utils GetScriptPath SCRIPTPATH call %FUNC% SetPythonPath call %FUNC% UsePython cd %SCRIPTPATH%\..\ python qwt/tests/__init__.py --mode screenshots python doc/plot_example.py python doc/symbol_path_example.py call %FUNC% EndOfScriptPythonQwt-0.12.7/scripts/utils.bat000066400000000000000000000061101465265754400171150ustar00rootroot00000000000000@echo off set FUNC=%0 call:%* goto Exit REM ====================================================== REM Utilities for deployment, test and build scripts REM ====================================================== REM Licensed under the terms of the MIT License REM Copyright (c) 2020 Pierre Raybaut REM (see LICENSE file for more details) REM ====================================================== :GetScriptPath set _tmp_=%~dp0 if %_tmp_:~-1%==\ set %1=%_tmp_:~0,-1% EXIT /B 0 :GetLibName pushd %~dp0.. for %%I in (.) do set %1=%%~nxI popd goto:eof :GetModName pushd %~dp0.. for /D %%I in (*) DO ( if exist %%I\__init__.py ( set %1=%%I goto :found_module ) ) :found_module popd goto:eof :GetVersion call:GetModName MODNAME call:SetPythonPath echo import %MODNAME%;print(%MODNAME%.__version__) | python > _tmp_.txt set /p %1=<_tmp_.txt del _tmp_.txt goto:eof :GetVersionWithoutAlphaBeta call:GetModName MODNAME call:SetPythonPath echo import %MODNAME%;ver=%MODNAME%.__version__;print(ver.split("b")[0] if "b" in ver else ver.split("a")[0] if "a" in ver else ver) | python > _tmp_.txt set /p %1=<_tmp_.txt del _tmp_.txt goto:eof :SetPythonPath set ORIGINAL_PYTHONPATH=%PYTHONPATH% cd %~dp0.. for /F "tokens=*" %%A in (.env) do ( set %%A ) set PYTHONPATH=%PYTHONPATH%;%ORIGINAL_PYTHONPATH% goto:eof :GetPythonExeGrandParentDir for %%i in (%PYTHON%) do set DIR2=%%~dpi set DIR2=%DIR2:~0,-1% for %%j in (%DIR2%) do set DIR1=%%~dpj set DIR1=%DIR1:~0,-1% for %%k in (%DIR1%) do set %1=%%~dpk goto:eof :UsePython if defined WINPYVER (goto:eof) if not defined PYTHON (goto :nopython) for %%a in ("%PYTHON%") do set "p_dir=%%~dpa" if exist "%p_dir%\activate.bat" (goto :venvpython) for %%a in (%p_dir:~0,-1%) do set "WINPYDIRBASE=%%~dpa" if exist "%WINPYDIRBASE%\scripts\env.bat" (goto :nopython) goto :python :venvpython call "%p_dir%\activate.bat" call :ShowTitle "Using Python Virtual Environment from %p_dir%" goto:eof :python set PATH=%p_dir%;%PATH% call :ShowTitle "Using Python from %p_dir%" goto:eof :nopython if defined WINPYDIRBASE ( call %WINPYDIRBASE%\scripts\env.bat call :ShowTitle "Using WinPython from %WINPYDIRBASE%" ) else ( echo Warning: WINPYDIRBASE environment variable is not defined, switching to system Python echo ******** echo (if nothing happens, that's probably because Python is not installed either: echo please set the WINPYDIRBASE variable to select WinPython directory, or install Python) ) goto:eof :ShowTitle @echo: @echo ========= %~1 ========= @echo: goto:eof :EndOfScript @echo: @echo ********************************************************************************** @echo: if not defined UNATTENDED ( @echo End of script pause ) goto:eof :Exit exit /b